3.3 タイミング制御
2
同期式回路と非同期式回路
1.同期式回路:
– 回路全体で共通なクロックに合わせてデータの受
け渡しをする
– 通信における例:I
2C(1対N通信)
2.非同期式回路:
– 同一のクロックを使用せず、データを受け渡す回
路間の制御信号を用いてデータの受け渡しをす
– 通信における例:UART(1対1通信)
3.3.1 ハザード
4
1出力回路のハザード
T=0 a b c 0 0 0 0 1 0 1 0 1 1 1 0 真理値表 0 0 0 0 1 1 遅延を考慮しな い場合のcの値 0 1 1 1 0 1 T=0 0 1 0 T=0 c a b inv and invの遅延 invの遅延 andの遅延 ハザード2入力以上の組合せ回路は遅延時間が経過する
まで、誤った演算結果(ハザード)が出力される。
多出力回路のハザード
5ハザード(
Hazard)
正しい値
正しい値
出力端子毎に遅延時間が異なる
組合わせ回路
6
順序制御(重要)
• ハザードを避ける方法
– クロックによる同期回路を構成すると、組合せ回路が出すハザードを取り
除くことができる
– 論理合成を行う回路は原則としてクロックによる同期回路となる
組合せ回路 ain a D-FF bin clk D-FF cout D-FF b c c a b ハザード0 0 clk c b a clk cout clk 0 0 bin ain clk7
応用例(レジスタ)
入出力レジスタ
パイプラインレジスタ
命令・アドレスレジスタ
演算回路(組合せ回路)
の動作をクロックに同期さ
せる働き
D Q CLK D Q CLK D Q CLK D Q CLK D0 D1 DN-2 DN-1 CLK Q0 Q1 QN-2 QN-1 Add REG REG REGX
Y
Z
CLK
N bit Register
D-FF D-FF D-FF D-FF 入力レジスタ 出力レジスタ (結果を1周期 保持する) N N 加算器(Add)のハザードを取り除く8
(参考)レジスタファイルと
SRAM
• メモリ機能を実現するには2種類の方法がある
– レジスタファイル
• レジスタを多数並べてaddressでアクセスするレジスタを指定する。HDLが書 ければ論理合成により作成できるが、回路の面積が大きいため数kbit程度 まで。– SRAM(Static Random Access Memory)
• 通常は、メーカから供給された部品(コア)をチップ上に配置して利用する。 SRAMは自分でも設計できるが、論理合成ができないためトランジスタレベ ルの回路設計に関する知識が必要。 data_out data_in address wr_en rd_en clk Single-Port Memory wr_en =1 : 書き込みモード
rd_en =1 and wr_en =0 : 読み出しモード rd_en =0 and wr_en =0 : 出力は変化しない
3.3.2 クロック周波数
10
最大遅延制約
REG REG組合せ回路
F(x)
X1
X2
D2
D1
CLK
X1入力からX2出力までに
t
dの
遅
延時間(=ハザードのない正しい
結果が出力されるまでの時間)
が
ある(最も
t
dの長い信号伝達経路
を
クリティカルパス
と呼ぶ)
CLK D1 X1 X2 D2 0 1 2 3 0 1 2 3 F(0) F(1) F(2) td td F(0) F(1) F(2) X常に
1周期後に演算
結果が出力される
ただし、
t
d< T
clkでなければならない
T clk Tclk11
クリティカルパスを決める要因
R E G R E G CLK td 組合せ回路 組合せ回路の中で最も入出力間の遅延時間が長い経路=クリティカルパス。 クリティカルパスの遅延時間は td < 1/fclk = Tclk でなければならない。 同期式回路では、クリティカルパスの遅延が、最高クロック周波数を決定している ことに注意 クリティカルパスを決める要因 ・ ゲート段数が多い ・ 途中の配線のファンアウト数が大きい ・ 配線が長い(これは配置配線してみな いとわからない) ファンアウト数が多い ゲート段数が多い この経路が危険クロックスキュー
12入力レジスタと出力レジスタの間の
CLKタイミングのずれ
= クロックスキュー
t
skew R E G R E G td 組合せ回路 CLKt
skewt
d< t
skew:同じクロックエッジで演算結果を出力してしまう。
実際には、
1サイクル後のクロックエッジで処理結果を出
力しなければならないので、エラーとなる。この状態は、レ
ーシング(クロックと処理の競合)と呼ばれる。
レーシングの回避
13 R E G R E G td 組合せ回路 CLK-t
skewt
d> 0 > -t
skewとなるため、レーシングを起こさない。
実際には、
D-FFのCLK端子-出力端子間の遅延、ハザ
ードの発生期間、レジスタのホールドタイムなども考慮す
る必要がある。詳しくは、
3.3.3節を参照。
D1
Q1
D2
Q2
タイミングチャートのまとめ
14T
clk> t
d- t
skewt
d> t
skew(正常)
T
clk> t
d- t
skewt
d< t
skew(エラー)
本来は、1サイクル後で出力 [注] スライド13の回路ではtskewは負15
クリティカルパスの短縮方法
= =B
A
B
A
B
A
B
A
ド・モルガンの定理の記号表現 正論理と負論理を 使い分ける 4段 2段(注)クリティカルパスの最適化は論理合
成ツールが行う。人手で行うことは危険。
ゲート段数の短縮16
STA (Static Timing Analysis)
• クリティカルパスをゲート段数とファンアウト数から求める
手法は、
STA (Static Timing Analysis)と呼ばれる
– STAは論理シミュレーションや回路シミュレーションをしなくてもクリ
ティカルパスの遅延時間が算出できるので短時間で実行できる
– クリティカルパスを短くするような回路を合成するために、論理合
成の際に使用される
• STAでは、ゲートの遅延時間と配線の遅延時間(第7章で
扱う)を別々に求める
– ゲートの遅延時間は各ゲートの実測値から求められる(半導体
メーカが測定)
– 配線の遅延時間は配線長と遅延時間の関係を統計的に求めた遅
延モデル(半導体メーカが作成)を利用する
3.3.3 タイミング制約の詳細
18
同期式回路のタイミング(1)
R E G R E G clk td 組合せ回路t
skewt
dFFt
st
dFF:
レジスタ
(D-FF)の遅延時間
t
d:
クリティカルパスの遅延時間
t
skew:
クロックの配線遅延(クロックスキュー)
[注]3.3.2節と向きが逆
t
s:
セットアップタイム
T
C クロックは出力レ ジスタ側から入力T
C> t
dFF+ t
d+ t
skew+ t
sの場合に正しい結果が得られる
組合せ回路が大きい回路では、tdが支配的 クロックが高速な回路では、tskewにも注意が必要 セットアップタイムに対する制約D
1Q
1D
2Q
219
同期式回路のタイミング(2)
R E G R E G clk thaz 組合せ回路t
skewt
dFFt
ht
dFF:
レジスタ
(D-FF)の遅延時間
t
haz:
ハザードが出始める
最短の
時間
t
skew:
クロックの配線遅延(クロックスキューと呼ばれる)
t
h:
ホールドタイム
t
h< t
dFF+ t
haz+ t
skewの場合に正しい結果が得られる
ホールドタイムに対する制約t
skew< 0 (入力レジスタ側からクロックを入力)の場合は危険。
この条件による誤動作をクロックと信号の「レーシング」と呼ぶ
D
1Q
1D
2Q
220
タイミングチャート(詳細)
t
skewclk(入力側)
clk(出力側)
t
dFFt
dt
dFFt
st
ht
st
hT
C タイミング余裕がなくなると誤動作する D1 D2 Q2 Q1t
st
h D2の変化がこれより速くなると誤動作する hazardt
haz3.3.4 クロックの生成
22
基準周波数
• コルピッツ発振回路のインダクタLを水晶振動子に置き換えたもの
• 水晶振動子は特定の周波数で非常にQが大きいインダクタとして動作
• 水晶振動子のQは100000以上、共振周波数の精度は6桁以上
– ディジタル回路の基準クロック – 時間の基準周波数(32.768kHz) – 無線通信回路の基準周波数(各種) – オーディオのオーバサンプリングクロック(5.6448MHz)コルピッツ発振回路
水晶発振回路
(水晶
/セラミック振動子はLとして働く)
+ -L C1 C2 反転増幅回路 反転増幅回路 制限抵抗23
基準クロックと内部クロック
• LSI外部と内部の回路全体の動作タイミング基準となるクロックを与える – 外部クロック発生回路に周波数が正確な水晶発振回路やそこそこ周波数が正確で安 価なセラミック発振回路が使用できる • 外部クロックは、1MHz~100MHz程度と周波数が低いため、高速集積回路内部 にはクロック周波数を定数倍するPLLまたはDLLという回路を置く • 低速で動作させる回路には、クロック周波数を「1/整数」にする分周回路を使用し てクロック周波数を下げることができる(次スライド) 内部クロック 基準クロックPLL: Phase Locked Loop DLL: Delay Locked Loop
水晶/セラミック
発振回路 DLL or PLL
高速ロジック
LSI内部
24
2
i
分周回路
Clear (Reset) CLR CLK1 CLK2 CLK4 CLK8 TC 2TC 4TC 8TC練習問題(1)
• 遅延時間から最高クロック周波数を求めよ
25回路例
1
Q D Q Q D Q Q D Q Q D Q Q D Q Q D Q Q D Q Q D Q Clock Q D Q Q D Q Q D Q Q D Q Q D Q Q D Q Q D Q Q D Q Clock回路例
2
回路例
3
回路例
4
tdEXOR= 2ns tdEXOR = 2ns26