仕様書、設計書の書き方 大規模なシステムを作る ... - gunma ......art comp_e nd...
TRANSCRIPT
仕様書、設計書の書き方- 大規模なシステムを作るために
仕様 (Specification)
何を作るか
設計・実現 (Implementation)
どのように作るか。
1
By 小林春夫
2011年7月20日
• 仕様 (Specification)
• 設計・実現 (Implementation)
両者は分けてかく。
仕様記述の中に
実現法に関する記述を含めてはいけない。
2
設計書
設計変更があることを前提。
記述の変更が容易となるようにする。
トップダウン、階層構造に記述
各モジュールと
インターフェースの入出力信号を
全て記述
3
仕様書、設計書の例
By 小川智彦
4
5
試作SAR ADCの目標仕様
コンパレータ1個を用いた,
一般化非2進探索アルゴリズム SAR ADC
● 分解能: 10ビット
● 電源電圧:1.5V
● 消費電力:1mW
● サンプリング周波数:10MS/s
● プロセス: TSMC 0.18um CMOS
● 比較サイクル10~17ステップ可変
66
概要ブロック図
サンプルホールド
C_array
メモリー(RAM)
+ +加算器
- +減算器
アナログ入力
デジタル出力
10 10
AD
_ou
tレジスタ
DAC
Aレジスタ
MUX1 0
タイミング発生回路
address1~address16, address_last
sample_CLK
AD_out_CLK
Tレジスタ
AD_start(Reset)
CLK
比較3Comp_start
sample_CLK
CLK
Comp_end
サンプリング
比較値2の計算
比較値3の計算
比較2のDAC整定
比較3のDAC整定
AD_out_CLK
比較1のDAC整定レジスタリセット
前のAD結果を出力
AD出力計算
17
Re
g_R
ese
t
Reg_Reset
address1
address2
address_last
連続動作時タイミングチャート
ホールド
Vref
温度計コードデコーダ
Reg_CLK
counter_CLK
Comp_CLK ラッチ
ラッチ
ラッチ
ラッチ
リセット リセット リセット リセットリセット
比較2比較1
ホールド
Comp_start
Comp_end
Reg
_CLK
Comp_out
1010
10
10
10
3434
ラッチ
リセット
77
SAR_ADC(インターフェース)
SAR_ADC
outM1~outM10Vinp
Vinn
Vrefp Vrefn
CLK
AD_start(Reset)
Mem_DinMem_CLK
Vinp, VinnVrefp, Vrefn, VrefmCLKAD_start(Reset)Mem_DinMW_CLKcycle_M1~cycle_M3sample_timeComp_delayDec_delayoutM1~outM10AD_out_CLKMem_Dout
入力アナログ:
デジタル:
出力デジタル:
:ADC差動入力:DAC差動参照電圧:基準クロック:ADC動作開始のリセット:Memory書き込み入力:Memory書き込みシフトクロック:比較サイクル数可変2進コード:サンプル時間制御 (0のとき2CLK、1のとき5CLK):コンパレータ比較時間遅延(0のとき1倍、1のとき2倍):デコーダ動作時間遅延( 0のとき1倍、1のとき2倍):10ビットADCデジタル出力:AD出力タイミングクロック:Memoryシフトレジスタの最後の出力
3cycle_M1~cycle_M3
sample_time
10
AD_out_CLK
VrefmMem_Dout
Comp_delay Dec_delay
0
Mem_outM1~Mem_outM9
9
Mem_outM10_add
Mem_outM10_sub
88
SAR_ADC(構成)
out_M1~
out_M10Vinp
Vrefp Vrefn
CLK
SAR_LogicC_array
Comparator_blockVinn
Comp_inp
Comp_inn
Comp_out
col1~col15row1~row15
MSB9,MSB10
Timing_Gnerator
AD
_ou
t_C
LK
Co
mp
_sta
rt
Sam
ple
_CLK
16
15152
Mem_Din Mem_CLK
cycle_M1~cycle_M3
sample_time
3
Mem_Dout
add
ress
_las
t
add
ress
1~
add
ress
16
Sam
ple
_CL
K
Re
g_R
ese
t AD_out_CLK
AD_start(Reset)
Co
mp
_en
d
Reg_CLK
Vrefm
Comp_delay Dec_delay
0
99
C_array(インターフェース)
Vinp Vrefp Vrefn Sample_CLKVinn
Columun1
row1 Comp_inp
Comp_inn
MSB9 MSB10
row2
Columun2Columun15
C_arrayrow15
Vinp, VinnVrefp,VrefnSample_CLKcolumun1~columun15row1~row15MSB9, MSB100Comp_inp, Comp_inn
入力アナログ
デジタル
出力アナログ
:ADC差動入力:DAC差動参照電圧:入力サンプリングタイミングクロック:セグメントDAC制御縦列:セグメントDAC制御横列:LSB2進容量DAC制御:デジタル入力0:コンパレータへの差動入力
0
1010
C_array(仕様)
・電源電圧:1.5V
・消費電力:
・最小容量20 fF (mim_cap 4um×4um)
・C_cell容量80 fF(4個セット), 255個を温度計コード(col1~col16,row1~row16)で制御
・LSB_C_cell容量, 40fF(2個セット), 20fF,20fFを2進コード(MSB9, MSB10)で制御
・差動構成で合計容量:約40pF
・sample_CLKが1のときサンプリング動作Vinp, Vinnを全容量セルにサンプリング
・ sample_CLKが0のときDAC動作DAC入力(columun1~columun16,row1~row16,MSB9, MSB10)にしたがって、サンプリング電圧との差電圧をComp_inp, Comp_innから出力。
1111
C_array レイアウトでのcell選択方法
15 31
1 33 17
13 29
3 35 19
11 27
5 37 21
9 41 25
7 39 23
24 40 8
26 10
22 38 6
28 12
20 36 4
30 14
18 34 2
32 16
row1
row2
row3
row4
row5
row6
row12
row7
row8
row9
row10
row11
row13
row14
row15
row16
col1
co
l2co
l1
co
l3
co
l4
col5
co
l6
co
l7
co
l8
co
l9
co
l10
co
l11
co
l12
co
l13
co
l14
co
l15
co
l16
1 co
l2
反対向きに配線
co
l3
co
l4
co
l5
col6
co
l7
co
l8
co
l9
co
l10
co
l11
co
l12
co
l13
co
l14
co
l15
co
l16
1212
C_array差動電荷再配分の動作8ビットセグメント 2ビット2進荷重
2C
2C
C C4C4C4C4C
4C4C4C4C
255個Vinp,Vrefp,Vefnのいずれかに接続
Vinn,Vrefp,Vefnのいずれかに接続
C C
Thermometer
code
Sampling→Vinp
比較→Vrefn
MUX MUX MUX MUX MUX MUX MUX
MUX MUX MUX MUX MUX MUX MUX
Vrefm
1313
C_array差動電荷再配分の動作8ビットセグメント 2ビット2進荷重
sampling
Vinp
Vinn
V0
V0
)(2 0
10
inpp VVCQ
)(2 0
10
innn VVCQ
2C C C4C4C4C4C
2C4C4C4C4C C C
MUX MUX MUX MUX MUX MUX MUX
MUX MUX MUX MUX MUX MUX MUX
Vrefm
1414
C_array差動電荷再配分の動作8ビットセグメント 2ビット2進荷重
Vrefp
Vmp
Vmn
)(1024
1024
inprefm
refnmprefpmpp
VVC
VVCnVVnCQ
Vrefn
Vrefn Vrefp
nC (1024-n)C
nC
refnrefnrefpinprefmmp VVV
nVVV
1024
(1024-n)C
)(512
512
innrefm
refpmnrefnmnn
VVC
VVCnVVnCQ
refprefprefninnrefmmn VVV
nVVV
1024
refnrefpinninpmnmp VVn
VVVV
1
512
10230: ~n ~比較電圧: LSB511512
比較
Vrefm
サンプリング電圧とDAC出力との差電圧を出力
1515
Comparator_block(インターフェース)
Comp_inp
Comp_innComparator_block
Comp_start
Comp_out
Comp_inp, Comp_inpVrefp, Vrefm, VrenComp_startComp_endSample_CLKComp_out
入力アナログ
デジタル
出力デジタル
:コンパレータ差動入力:参照電圧:コンパレータ動作開始クロック:コンパレータ動作終了クロック:入力サンプリングクロック:コンパレータ比較終了信号
sample_CLK
Vrefp VrefnVrefm
Comp_end
1616
Comparator_block(仕様)
目標仕様
・電源電圧:1.5V
・消費電力:
・差動入力電圧範囲:0.25~1.25V (2.0 Vppd)
・コンパレータ動作はリセットモードとラッチモードの2フェーズで行う。・Comp_startで比較動作開始・Comp_endでリセット動作開始
1717
Comparator_block(動作)
・C_arrayで生成された入力電圧とDAC電圧の差電圧(Comp_inp, Comp_inn)の正負を判定する。・判定終了信号(Valid)が1になったところ比較判定結果をレジスタに保持。
・sample_CLKが1のときComp_inp, Comp_innをVrefp, Vrefnの中間電位にする。
・コンパレータはリセットモードとラッチモードの2フェーズで動作する。
T=27℃ T=100℃
ff 0.4ns 0.4ns
tt 0.5ns 0.5ns
ss 1.0ns 1.0ns
リセット時間
T=27℃ T=100℃
ff 0.44ns 0.48ns
tt 0.58ns 0.64ns
ss 0.79ns 0.86ns
比較時間
1818
Comparator(構成)
Comp_inp
Comp_inn
Comp_outn
Comp_outp
VDD
GND
Comp_CLK
W=4u W=4u
W=40u W=40u
W=20u
W=8u W=8u
W=10.5u W=10.5u
W=8u W=8u
W=4u W=4u
W=1.5u W=1.5u
W=0.5u W=0.5u
Comp_CLK
リセットモード ラッチモード
M.van Elzakker, Ed van Tujil, P.Geraedts, D.Schinkel, E.Klumperink, B.Nauta,“A 1.9uW 4.4f J/Conversion-step 10b 1MS/s Charge-Redistribution ADC,”IEEE ISSCC2008, Dig. of Tech. Papers, pp.244-245, Feb.2008
latch_platch_n
出典:
1919
SAR_Logic(インターフェース)
Mem_Din Mem_CLK
address1~address16
col1~col15 row1~row15MSB9,MSB10 out_M1~
out_M10
AD_Out_CLK
Comp_out
SAR_Logic
16 16 2 10
16
Mem_DinMem_CLKaddress1~address16address_lastReg_CLKReg_ResetComp_outAD_out_CLKcolumun1~columun15row1~row15MSB9, MSB10out_M1~out_M10Mem_Dout
入力デジタル
出力デジタル
:Memory書き込み入力:Memory書き込みクロック:Memory読み出しアドレス:最終Memory読み出しアドレス:加算器, 温度計コードデコーダ後のレジスタクロック:加算器, 温度計コードデコーダ後のレジスタリセットクロック:加算器出力と減算器出力を選択する信号:ADC出力タイミングクロック:セグメントDAC制御縦列:セグメントDAC制御横列: LSB2進容量DAC制御:ADCデジタル出力:Memoryシフトレジスタ最後の出力
Mem_Doutaddress_last
Reg_CLK
Reg_Reset
2020
SAR_Logic(仕様)
目標仕様
・電源電圧:1.5V
・消費電力:
・冗長アルゴリズムを記憶するMemory_Block(RAM),・比較値を計算する加算器,減算器で構成されるAdd_Sub_Block・2進コードを温度計コードに直すThermometer_code_Decoder・出力を保持するAD_out_Registerで構成される。
・比較値とADC出力の計算し、DAC入力の温度計コードを作る。
・Memory_Blockには任意の非2進アルゴリズムを書き込むことができる。
2121
Memory_Block(インターフェース)
Mem_DinMem_CLKaddress1~address16address_lastMem_out_M1~M9Mem_out_Add_M10Mem_out_Sub_M10Mem_Dout
入力デジタル
出力デジタル
:Memory書き込み入力:Memory書き込みクロック:Memory読み出しアドレス:最終Memory読み出しアドレス:Memory出力データMSB1~MSB9:加算器入力加算値MSB10:減算器入力減算値MSB10:Memoryシフトレジスタの最後の出力
Memoryblock
Mem_out_M1~Mem_out_M9
Mem_out_Add_M10
Mem_out_Sub_M10
address_last
16address1~address16 Mem_Din Mem_CLK
Mem_Dout
9
2222
Memory_Block(仕様)
目標仕様
・電源電圧:1.5V
・消費電力:
・電源を入れた後にA/D変換の動作を開始する前に、メモリーに冗長アルゴリズムを書き込む。・書き込み動作はA/D変換動作とは独立して行われる。・MW_Resetでメモリーをリセットする。・MW_inからシフトレジスタに書き込むデータを入力する。・MW_CLKで入力データをシフトして書き込んでいく。
・A/D変換動作時にaddress1~address16にしたがって、データを読み出す。
・address_lastがHighのとき加算器に0を入力し、減算器に1を入力する。
2323
Memory_Block(構成)10個
Mem_Din
address1
Mem_out_M1
address2
address16
16個
Mem_CLK
Mem_Dout
DFFCLK
D QDFF
CLK
D QDFF
CLK
D QDFF
CLK
D Q
DFFCLK
D QDFF
CLK
D QDFF
CLK
D QDFF
CLK
D Q
DFFCLK
D QDFF
CLK
D QDFF
CLK
D QDFF
CLK
D Q
DFFCLK
D QDFF
CLK
D QDFF
CLK
D QDFF
CLK
D Q
address15
no
r
nan
d
Mem_out_M2 Mem_out_M9Mem_out_add_M10
Mem_out_sub_M10
address_last
2424
Memory_Block(動作)
・電源を入れた後にA/D変換の動作を開始する前に、メモリーに冗長アルゴリズムを書き込む。・A/D変換動作前にMem_Din, Mem_CLKでメモリーに冗長アルゴリズムを書き込む。・Mem_Dinからシフトレジスタに書き込むデータを入力する。・Mem_CLKで入力データをシフトして書き込んでいく。
・A/D変換動作時に(address1~address16)にしたがって、加算器と減算器に入力するデータ(Mem_out_M1~Mem_out_M9, Mem_out_Add_M10, Mem_out_Sub_M10)を出力する。
・最終のaddress_lastでは加算器に0(十進)を減算器に1(十進)のデータを送る。
以下 省略