43 / 63 · 理解度チェック
設計確認:遅延・整列・入力の保存
シフト方向に加え、有効データの移動回数と観測基準を確認します。
レッスンは無料で読めます。受講登録すると進捗を保存できます。
遅延を数える基準を固定します
3 ビットレジスタレジスタ 複数ビットの状態を記憶する回路です。このコースの同期式レジスタは、クロックエッジで定められた入力を記憶します。 詳しく見るは有効入力のときだけ q <= {q[1:0], din} を実行し、valid=0 なら q を保持します。リセットリセット 状態を仕様で定めた初期値に戻す制御です。同期式か非同期式か、他の制御より優先されるかを合わせて定めます。 詳しく見る直後の 0 から、異なる立上りエッジ立上りエッジ クロックが 0 から 1 に変わる瞬間です。CLK=1 の区間全体を指すレベルとは区別します。 詳しく見るに (valid,din) = (1,1), (0,0), (1,0), (1,1) を順に与えます。
総エッジ数は 4 ですが、実際の移動は 3 回です。状態追跡と「何サイクル遅延」という説明が矛盾しないか確認してください。
下の各列は立上りエッジの記録です。入力はエッジ直前、「更新後」の状態は更新直後です。並びはサンプル順で、物理的な伝搬遅延伝搬遅延 入力が変わってから、出力が正しい値に安定するまでの時間です。論理式の等価性と時間特性は別の性質です。 詳しく見るではありません。問題の入力列を展開しています。valid=0 の二列目では状態を保持します。q の更新回数とクロック列数を混同しないでください。
波形データを表示
| 信号 | 波形 | バスの値 |
|---|---|---|
| エッジ | 2345 | E0 → E1 → E2 → E3 |
| valid | 101. | |
| din | 10.1 | |
| 受入数 | 2.34 | 1 → 2 → 3 |
| 更新後 q | 2.34 | 001 → 010 → 101 |
追加の設計問題
入力ごとに 8 ビットを受け取るパイプラインパイプライン 計算をレジスタで区切った段に分け、複数入力を重ねて処理する構造です。データ・valid・制御信号の段をそろえる必要があります。 詳しく見るへ広げるなら、データレジスタだけ 3 段、valid の遅延を 1 段にする実装は誤りです。データと valid に同じ移動規則を適用するか、停止可能なバッファの受付・転送規則を一緒に設計する必要があります。
自分で考えてみましょう
回路を valid に関係なく毎エッジ移動させると、この入力列の最後の q はどう変わりますか。
解説を見る
invalid サイクルの din=0 も記憶するため、001 → 010 → 100 → 001 になります。最後は 001 で、有効入力だけを移動する元の設計の 101 と異なります。invalid データを無視する取り決めを実装が守る必要があります。
本文の valid 付き入力列を適用した後、最後の q と実際の移動回数は何ですか。
状態列は 000 → 001 → 001 → 010 → 101 です。valid=0 の二つ目のエッジでは保持します。正解には、シフト方向・移動条件・移動回数をすべて満たす必要があります。