44
ディジタル回路 #07 タイミング ディジタル回路#07 1 “Digital Design and Computer Architecture, Second Edition”, Lecture Slide より

ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

ディジタル回路#07

タイミング

ディジタル回路#07 1

“Digital Design and Computer Architecture, Second Edition”, Lecture Slide より

Page 2: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

前回のディジタル回路

•FSMの作り方

•状態遷移図→状態遷移表→回路

•ミーリマシンとムーアマシン

ディジタル回路#07 2

Page 3: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

今日のおしながき

タイミング

ディジタル回路#07 3

・タイミング制約

・クロック・スキュー

・メタ・ステーブル

Page 4: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

タイミング制約

ディジタル回路#07 4

Page 5: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

順序回路 (Sequential Logic)

•写真のぶれ

– シャッター時の手ぶれ,被写体ブレ

– シャッターが開いている間は安定させないといけない

•シャッターって意外と長い

•フリップ・フロップも同様

– 値を取り込むクロックエッジ周辺で入力を安定させないといけない

– さもないと準安定を引き起こす可能性(metastability)

ディジタル回路#07 5

Page 6: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

FF使用時のタイミング設計規約

•同期式順序回路(synchronous sequential circuit)のフリップ・フロップへの入力は開口時間中に安定しなければならない

•具体的には,以下の間安定させる– クロックエッジ前の少なくともtsetup の間

– クロックエッジ後の少なくともthold の間

ディジタル回路#07 6

Page 7: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

FF入力のタイミング制約

• セットアップ・タイム: tsetup = クロックエッジのどれだけ前までに入力値を安定(変化しない状態)させないといけないか

• ホールド・タイム: thold = クロックエッジの後どれだけ入力値を安定させておかないといけないか

• 開口時間(aperture time): ta = クロックエッジの周辺で入力値をどれだけ安定させておかないといけないか (ta = tsetup + thold)

ディジタル回路#07 7

CLK

tsetup

D

thold

ta

Page 8: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

同期式順序回路のタイミング設計

•レジスタ間には,FFと組み合わせ回路の最小遅延と最大遅延が入る

ディジタル回路#07 8

CL

CLKCLK

R1 R2

Q1 D2

(a)

CLK

Q1

D2(b)

Tcクロック周期

FF出力のtcd ~ tpd

組み合わせ回路のtcd ~ tpd

Page 9: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

FF出力の遅延

• 伝搬遅延(propagation delay): tpcq = クロックエッジの後,FF出力値が安定するまでの(最大)時間

• 混入時間(contamination delay): tccq = クロックエッジの後,FF出力値が変化を始めるまでの(最小)時間

ディジタル回路#07 9

CLK

tccqtpcq

Q

Page 10: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

セットアップ・タイムの制約

•R1からR2への最大遅延が問題となる– クリティカルパス

•R2への入力(D2)は少なくともクロックエッジのtsetup 前に安定しなければならない

ディジタル回路#07 10

CLK

Q1

D2

Tc

tpcq tpd tsetup

CL

CLKCLKQ1 D2

R1 R2Tc ≥

Page 11: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

セットアップ・タイムの制約

•R1からR2への最大遅延が問題となる– クリティカルパス

•R2への入力(D2)は少なくともクロックエッジのtsetup 前に安定しなければならない

ディジタル回路#07 11

CLK

Q1

D2

Tc

tpcq tpd tsetup

CL

CLKCLKQ1 D2

R1 R2Tc ≥ tpcq + tpd + tsetup

tpd ≤

Page 12: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

セットアップ・タイムの制約

•R1からR2への最大遅延が問題となる– クリティカルパス

•R2への入力(D2)は少なくともクロックエッジのtsetup 前に安定しなければならない

ディジタル回路#07 12

CLK

Q1

D2

Tc

tpcq tpd tsetup

CL

CLKCLKQ1 D2

R1 R2Tc ≥ tpcq + tpd + tsetup

tpd ≤ Tc – (tpcq + tsetup)

(tpcq + tsetup): FFによるオーバヘッド

Page 13: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

ホールド・タイムの制約

•R1からR2への最小遅延が問題となる– ショートパス

•レジスタR2への入力は少なくともクロックエッジ後thold

以上安定しなければならない

ディジタル回路#07 13

CLK

Q1

D2tccq tcd

thold

CL

CLKCLKQ1 D2

R1 R2thold <

Page 14: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

ホールド・タイムの制約

•R1からR2への最小遅延が問題となる– ショートパス

•レジスタR2への入力は少なくともクロックエッジ後thold

以上安定しなければならない

ディジタル回路#07 14

CLK

Q1

D2tccq tcd

thold

CL

CLKCLKQ1 D2

R1 R2thold < tccq + tcd

tcd >

Page 15: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

ホールド・タイムの制約

•R1からR2への最小遅延が問題となる– ショートパス

•レジスタR2への入力は少なくともクロックエッジ後thold

以上安定しなければならない

ディジタル回路#07 15

CLK

Q1

D2tccq tcd

thold

CL

CLKCLKQ1 D2

R1 R2thold < tccq + tcd

tcd > thold - tccq

Page 16: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

タイミング解析

ディジタル回路#07 16

CLK CLKA

B

C

D

X'

Y'

X

Y

Timing Characteristics

tccq = 30 ps

tpcq = 50 ps

tsetup = 60 ps

thold = 70 ps

tpd = 35 ps

tcd = 25 pstpd =

tcd =

セットアップ・タイム制約:Tc ≥

fc =

ホールド・タイム制約:tccq + tcd > thold ?

per g

ate

Page 17: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

タイミング解析

ディジタル回路#07 17

CLK CLKA

B

C

D

X'

Y'

X

Y

Timing Characteristics

tccq = 30 ps

tpcq = 50 ps

tsetup = 60 ps

thold = 70 ps

tpd = 35 ps

tcd = 25 pstpd = 3 x 35 ps = 105 ps

tcd = 25 ps

セットアップ・タイム制約:Tc ≥ (50 + 105 + 60) ps = 215 ps

fc = 1/Tc = 4.65 GHz

ホールド・タイム制約:tccq + tcd > thold ?

(30 + 25) ps > 70 ps ? 違反?

per g

ate

Page 18: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

タイミング解析

ディジタル回路#07 18

Timing Characteristics

tccq = 30 ps

tpcq = 50 ps

tsetup = 60 ps

thold = 70 ps

tpd = 35 ps

tcd = 25 pstpd =

tcd =

セットアップ・タイム制約:Tc ≥

fc =

ホールド・タイム制約:tccq + tcd > thold ?

per g

ate

CLK CLKA

B

C

D

X'

Y'

X

Y

ショート・パスにバッファを挿入して対策

Page 19: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

タイミング解析

ディジタル回路#07 19

Timing Characteristics

tccq = 30 ps

tpcq = 50 ps

tsetup = 60 ps

thold = 70 ps

tpd = 35 ps

tcd = 25 pstpd = 3 x 35 ps = 105 ps

tcd = 2 x 25 ps = 50 ps

セットアップ・タイム制約:Tc ≥ (50 + 105 + 60) ps = 215 ps

fc = 1/Tc = 4.65 GHz

ホールド・タイム制約:tccq + tcd > thold ?

(30 + 50) ps > 70 ps ? OK!pe

r gat

e

CLK CLKA

B

C

D

X'

Y'

X

Y

ショート・パスにバッファを挿入して対策

Page 20: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

クロック・スキュー

ディジタル回路#07 20

Page 21: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

クロック・スキュー (clock skew)

•クロックは全てのレジスタに同時に到達するわけではない

•スキュー: 二つのクロックエッジの差

•最悪の場合でも全てのレジスタについてタイミング規約が満たさせるようにする(worst case analysis)

ディジタル回路#07 21

t skew

CLK1

CLK2

CL

CLK2CLK1

R1 R2

Q1 D2

CLKdelay

CLK

Page 22: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

セットアップ・タイム制約(スキュー有り)

•最悪の場合:CLK2がCLK1よりも早い

ディジタル回路#07 22

CLK1

Q1

D2

Tc

tpcq tpd tsetuptskew

CL

CLK2CLK1

R1 R2

Q1 D2

CLK2Tc ≥

Page 23: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

セットアップ・タイム制約(スキュー有り)

•最悪の場合:CLK2がCLK1よりも早い

ディジタル回路#07 23

CLK1

Q1

D2

Tc

tpcq tpd tsetuptskew

CL

CLK2CLK1

R1 R2

Q1 D2

CLK2Tc ≥ tpcq + tpd + tsetup + tskew

tpd ≤

Page 24: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

セットアップ・タイム制約(スキュー有り)

•最悪の場合:CLK2がCLK1よりも早い

ディジタル回路#07 24

CLK1

Q1

D2

Tc

tpcq tpd tsetuptskew

CL

CLK2CLK1

R1 R2

Q1 D2

CLK2Tc ≥ tpcq + tpd + tsetup + tskew

tpd ≤ Tc – (tpcq + tsetup + tskew)

Page 25: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

ホールド・タイムの制約(スキュー有り)

•最悪の場合:CLK2がCLK1よりも遅い

ディジタル回路#07 25

tccq tcd

thold

Q1

D2

tskew

CL

CLK2CLK1

R1 R2

Q1 D2

CLK2

CLK1tccq + tcd >

Page 26: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

ホールド・タイムの制約(スキュー有り)

•最悪の場合:CLK2がCLK1よりも遅い

ディジタル回路#07 26

tccq tcd

thold

Q1

D2

tskew

CL

CLK2CLK1

R1 R2

Q1 D2

CLK2

CLK1tccq + tcd > thold + tskew

tcd >

Page 27: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

ホールド・タイムの制約(スキュー有り)

•最悪の場合:CLK2がCLK1よりも遅い

ディジタル回路#07 27

tccq tcd

thold

Q1

D2

tskew

CL

CLK2CLK1

R1 R2

Q1 D2

CLK2

CLK1tccq + tcd > thold + tskew

tcd > thold + tskew – tccq

Page 28: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

余談:等長配線

ディジタル回路#07 28

Page 29: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

タイミング制約を満たせないと…?

•タイミングエラー

– そのサイクルで生成するはずの値と異なる値がFFに取り込まれる

•変化が間に合わなかった

•次のサイクルの値が混入した

•回路遅延は熱や電圧,プロセスばらつきで変化

– e.g. 熱暴走

– 設計時に最悪値/統計的にマージンをいれる

•値の変化だけでなく,メタ・ステーブルの危険性

ディジタル回路#07 29

Page 30: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

メタ・ステーブル

ディジタル回路#07 30

Page 31: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

避けづらいタイミング規約違反

•同期回路部分は設計でカバーできるとして…

•非同期入力はタイミング規約違反の可能性が避けられない– ユーザの押すスイッチ

– 異なるクロックで動く機器同士の通信

ディジタル回路#07 31

CLK

tsetup thold

taperture

D

Q

D

Q

D

Q ???

Cas

e I

Cas

e II

Cas

e III

D Q

CLK

butto

n

Page 32: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

準安定 (metastability)

•バイステーブル装置: 二つの安定状態とその間の準安定状態

•フリップ・フロップ: 二つの安定状態(1と0)と一つの準安定状態

– 変化中の値を取り込んでしまうことで起こる

– もし準安定状態になってしまうと,バランスがくずれるまでしばらくの間中間電位で落ち着いてしまう

•いつまでに落ち着く,という保証はなし

•確率的に持続

ディジタル回路#07 32

metastable

stablestable

Page 33: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

内部イメージ

•セットアップの途中で変化があった場合

– 例えば下のRSラッチでQが0の状態のときに一瞬S=1, R=0となってからS=0に戻ったとする

– Q,Qにロジックレベルの範囲外の値が与えられたまま保持状態へ

– 中間値付近が入力されるNOTのループ状態になる

– 微小に揺れ続け,なにかのきっかけで1か0へ安定する

ディジタル回路#07 33

R

S

Q

Q

N1

N2

Page 34: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

入力変化に対してFF出力が安定するまでの時間 tres

•入力変化がaperture time外で行われていれば– 出力変化にかかる時間はFFの伝搬時間: tpcq

•もしセットアップやホールドの制約を満たせず,メタステーブルを引き起こした場合– 長くなる:時間経過とともに確率的に治まる

•入力変化タイミングがランダムなときの見積もり

– 𝑃𝑃(𝑡𝑡𝑟𝑟𝑟𝑟𝑟𝑟 > 𝑡𝑡) = 𝑇𝑇𝑜𝑜𝑇𝑇𝑐𝑐𝑟𝑟−

𝑡𝑡𝜏𝜏

•メタステーブルが治まるまでの時間tresがある時間tよりも長くなる確率

– 時間が増えれば指数的に確率は減少

– Tc:クロック周期,T0,τ: FFの特性で決まってくる値

– T0/TC :入力変化が悪いタイミングで起きる確率τ:FFがどの程度の時間でメタステーブルから回復するかの特性

ディジタル回路#07 34

Page 35: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

ダブル・シンクロナイズ

•非同期入力は不可避

– ユーザ・インタフェース

– 異なるクロックのシステム同士の通信

•回路設計ではメタ・ステーブルの可能性を極力小さくしなくてはならない→ダブル・シンクロナイズ

– 何もしないでもう一段FFで同期させる

– 1段目のFFでメタ・ステーブルが生じても,2段目までの時間で治まることを期待

•それでもだめなら3段,4段と増やしていく

– 可能性を0にはできないが,削減することはできるディジタル回路#07 35

Page 36: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

ダブル・シンクロナイズの効果

•一段いれた場合メタステーブルが伝搬する確率はP(failure) = (T0/Tc ) e-(Tc - tsetup)/τ

ディジタル回路#07 36

D

Q

D2 Q

D2

Tc

tsetup tpcq

CLK CLK

CLK

tres

metastable

F1 F2

Page 37: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

ダブル・シンクロナイズのMTBF

•Mean Time Between Failure

– 平均故障間隔:システムでよく用いられる信頼性指標の1つ

•もし入力が一秒にN回変化するとすれば– P(failure)/second = (NT0/Tc) e-(Tc - tsetup)/τ

•メタステーブルの発生は1/[P(failure)/second]

• MTBF = 1/[P(failure)/second] = (Tc/NT0) e(Tc - tsetup)/τ

ディジタル回路#07 37

Page 38: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

ダブル・シンクロナイズの例

ディジタル回路#07 38

D D2 Q

CLK CLK

F1 F2

• パタメタを以下とする

Tc = 1/500 MHz = 2 ns τ = 200 psT0 = 150 ps tsetup = 100 psN = 10 events / second

• メタ・ステーブル発生確率とMTBFは?

Page 39: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

ダブル・シンクロナイズの例

ディジタル回路#07 39

D D2 Q

CLK CLK

F1 F2

• パタメタを以下とする

Tc = 1/500 MHz = 2 ns τ = 200 psT0 = 150 ps tsetup = 100 psN = 10 events / second

• メタ・ステーブル発生確率とMTBFは?

P(failure) = (150 ps/2 ns) e-(1.9 ns)/200 ps

= 5.6 × 10-6

P(failure)/second = 10 × (5.6 × 10-6 )= 5.6 × 10-5 / second

MTBF = 1/[P(failure)/second] ≈ 5 hours

Page 40: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

実践として

• T0やτはトランジスタやFPGAのデータシートなど

にのっている

– システムが要求するMTBFを満たすように他の設計パラメタを合わせる

•実験などでは

– FPGAなどで非同期信号を受ける回路を設計するときにはFFを一つ余分にはさむ

– それでも安定しないときはさらに追加していく

ディジタル回路#07 40

Page 41: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

今回のまとめ

ディジタル回路#07 41

Page 42: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

本日のディジタル回路

1. タイミング制約

2. クロック・スキュー

3. メタ・ステーブル

ディジタル回路#07 42

Page 43: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

更にディジタルな者達

•SPICE等の回路シミュレーションで任意の回路について安全なクロックを供給し,安定稼働を確かめよう– クロックを早めていくとどのようにエラーが生じるか?

•異なるクロックドメインで動く回路間の通信を行う回路を設計してダブル・シンクロナイズの効果を確かめよう

ディジタル回路#07 43

Page 44: ディジタル回路ディジタル回路#07 30 metastable stable stable 内部イメージ •セットアップの途中で変化があった場合 – 例えば下のRSラッチでQが0の状態のときに

次回予告

•ディジタル数値表現

– 或いはどうしてマリオの残機が一瞬にしてマイナスになったのか

ディジタル回路#07 44