Altifigence Academy

22 / 63 · 概念

同期式の状態遷移とクロックの役割

同じ以前の状態を読むレジスタの集合として、同期システムを解釈します。

一つのエッジで状態全体を一緒に更新します

同期回路の状態ベクトルを QkQ_k、入力を XkX_k とすると、中心となる仕様は次の式です。

Qk+1=F(Qk,Xk),Yk=G(Qk,Xk)Q_{k+1}=F(Q_k,X_k),\qquad Y_k=G(Q_k,X_k)

F は次状態関数、G は出力関数です。クロックは計算内容ではなく、計算した次状態をいつ記憶するかを決めます。複数のレジスタレジスタ 複数ビットの状態を記憶する回路です。このコースの同期式レジスタは、クロックエッジで定められた入力を記憶します。 詳しく見るはすべて、同じ以前の状態を基に次の値を決めると考えます。

Q が組合せ関数 F を通り、次状態入力を作ります。記憶された結果は次の期間の Q として戻り、エッジ間の計算とエッジでの記憶を分けます。

以前の状態から次状態を計算
  1. 現在状態 Q: クロックエッジ間で保持
  2. F(Q, X): 入力と以前の状態から計算
  3. エッジで記憶: 計算結果を次の Q に

最も遅い経路にも十分なクロック周期が必要です

送出側レジスタから新しい値が出るまでにも、組合せ回路を通って次のレジスタへ届くまでにも時間がかかります。次のエッジ前にセットアップセットアップ 取り込みクロックエッジの前に、入力データが安定していなければならない最小時間です。違反すると記憶結果を保証できません。 詳しく見る時間も確保する必要があります。コードを短く書けば高いクロック周波数が可能になるわけではありません。

クロック周期 10 ns は 100 MHz です。

f=1Tf=\frac{1}{T}

単位変換を省略しないでください。1 ns の逆数は 1 GHz、1 ps の逆数は 1 THz です。シミュレーションで指定した周期は入力のスケジュールであり、物理回路がその周波数で動くという測定結果ではありません。

エッジ間の信号を解釈する

レジスタ出力は次の有効エッジまで論理状態を保持しますが、組合せ出力はエッジ間でも変わり得ます。リセットリセット 状態を仕様で定めた初期値に戻す制御です。同期式か非同期式か、他の制御より優先されるかを合わせて定めます。 詳しく見るが同期式か非同期式かで、この説明の例外も変わります。提供する実習は単一クロックと同期リセットを使います。

入力の有効時点、状態更新時点、出力観測時点を先に定めてから、波形を読んでください。「クロックごとにコードが一行ずつ実行される」というソフトウェア的な理解より、状態方程式が正確です。

自分で考えてみましょう

200 MHz クロックの周期はいくらですか。同じクロックの二つのレジスタ a、b で a<=d; b<=a; とすると、b はそのエッジで更新された a を受け取りますか。

解説を見る

周期は 5 ns です。b はエッジ直前の a を受け取ります。両レジスタは同じ以前の状態から次の値を計算するので、新しい d は一つのエッジで二段とも通過しません。

選択はこのブラウザに適用されます。フッターからいつでも変更できます。