チャレンジ - パリティパイプライン
CoddyのVerilogジャーニー「RTL設計と検証」セクションの一部。レッスン 36/38。
チャレンジ
中級2段階のパリティパイプラインを構築してください。まずバイトデータと in_valid を取り込みます。次の非リセットエッジで、前の有効信号がHighの場合は、前に取り込んだバイトに対するリダクションXORをパリティとして出力し、それ以外の場合はゼロを出力します。out_valid は遅延された有効信号です。同期 rst によって、両方の段と出力をクリアします。出力列は parity、out_valid です。各立ち上がりクロックエッジの前に、すべての制御信号とデータは安定しています。結果はその後に観測されます。
design.v を完成させ、モジュール名とポートを維持してください。ロックされた testbench.v が入力の変化を供給し、安定した後に出力を表示します。シミュレータ引数(+CASE=1 など)を使用してシナリオを選択します。標準入力は必要ありません。デザインに表示、遅延、またはシミュレーション終了処理を追加しないでください。期待される出力は、各観測結果につき10進値の行が1行ずつ出力され、値は1つの空白で区切られ、改行で終わります。
自分で試してみよう
module dut (input clk, input rst, input in_valid, input [7:0] data, output reg parity, output reg out_valid);
// このプレースホルダーをあなたの設計に置き換えてください。
initial parity = 0;
initial out_valid = 0;
endmoduleRTL設計と検証のすべてのレッスン
自分で練習してみよう: Verilogオンラインコンパイラ