24
仕様書、設計書の書き方 - 大規模なシステムを作るために 仕様 (Specification) 何を作るか 設計・実現 (Implementation) どのように作るか。 1 By 小林春夫 2011年7月20

仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

仕様書、設計書の書き方- 大規模なシステムを作るために

仕様 (Specification)

何を作るか

設計・実現 (Implementation)

どのように作るか。

1

By 小林春夫

2011年7月20日

Page 2: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

• 仕様 (Specification)

• 設計・実現 (Implementation)

両者は分けてかく。

仕様記述の中に

実現法に関する記述を含めてはいけない。

2

Page 3: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

設計書

設計変更があることを前提。

記述の変更が容易となるようにする。

トップダウン、階層構造に記述

各モジュールと

インターフェースの入出力信号を

全て記述

3

Page 4: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

仕様書、設計書の例

By 小川智彦

4

Page 5: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

5

試作SAR ADCの目標仕様

コンパレータ1個を用いた,

一般化非2進探索アルゴリズム SAR ADC

● 分解能: 10ビット

● 電源電圧:1.5V

● 消費電力:1mW

● サンプリング周波数:10MS/s

● プロセス: TSMC 0.18um CMOS

● 比較サイクル10~17ステップ可変

Page 6: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

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

ラッチ

リセット

Page 7: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

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

Page 8: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

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

Page 9: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

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

Page 10: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

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から出力。

Page 11: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

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

Page 12: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

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

Page 13: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

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

Page 14: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

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出力との差電圧を出力

Page 15: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

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

Page 16: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

1616

Comparator_block(仕様)

目標仕様

・電源電圧:1.5V

・消費電力:

・差動入力電圧範囲:0.25~1.25V (2.0 Vppd)

・コンパレータ動作はリセットモードとラッチモードの2フェーズで行う。・Comp_startで比較動作開始・Comp_endでリセット動作開始

Page 17: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

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

比較時間

Page 18: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

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

出典:

Page 19: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

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

Page 20: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

2020

SAR_Logic(仕様)

目標仕様

・電源電圧:1.5V

・消費電力:

・冗長アルゴリズムを記憶するMemory_Block(RAM),・比較値を計算する加算器,減算器で構成されるAdd_Sub_Block・2進コードを温度計コードに直すThermometer_code_Decoder・出力を保持するAD_out_Registerで構成される。

・比較値とADC出力の計算し、DAC入力の温度計コードを作る。

・Memory_Blockには任意の非2進アルゴリズムを書き込むことができる。

Page 21: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

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

Page 22: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

2222

Memory_Block(仕様)

目標仕様

・電源電圧:1.5V

・消費電力:

・電源を入れた後にA/D変換の動作を開始する前に、メモリーに冗長アルゴリズムを書き込む。・書き込み動作はA/D変換動作とは独立して行われる。・MW_Resetでメモリーをリセットする。・MW_inからシフトレジスタに書き込むデータを入力する。・MW_CLKで入力データをシフトして書き込んでいく。

・A/D変換動作時にaddress1~address16にしたがって、データを読み出す。

・address_lastがHighのとき加算器に0を入力し、減算器に1を入力する。

Page 23: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

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

Page 24: 仕様書、設計書の書き方 大規模なシステムを作る ... - Gunma ......art Comp_e nd K Comp_out 10 10 10 10 10 34 34 ラ ッ チ リセット 7 7 SAR_ADC(インターフェース)

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(十進)のデータを送る。

以下 省略