Menu
Coddy logo textTech

サンプルを蓄積する

CoddyのVerilogジャーニー「RTL設計と検証」セクションの一部。レッスン 31/38。

符号なしサンプルのストリーム用に、再利用可能なモニターを構築します。値を累積し、enable と clear の制御を尊重し、受け入れたサンプル数をカウントして、しきい値に達したかどうかを報告します。5つのステップすべてで同じモジュールインターフェースと固定されたテストベンチを維持します。予約済みの出力には、後のステップで動作が追加されます。

challenge icon

チャレンジ

難しい

5 つのステップで 1 つの Sample Monitor を構築します。立ち上がりエッジごとに、同期 rst によって total をクリアし、それ以外の場合は符号なしの data を total に加算します。16 ビットの total レジスタを使用します。この最初のステップでは en と clear は使用せず、各シナリオでは en=1、clear=0 の状態を維持します。count と alarm は予約済みの出力で、常にゼロのままです。すべての入力値は既知です。シナリオに含まれるエッジは最大 40 個なので、total は 16 ビットに収まります。固定されたテストベンチは、シナリオ 1~9 では total、シナリオ 10~12 では total と count、シナリオ 13~15 では total、count、alarm を出力します。このステップで有効なシナリオのみが採点されます。

design.v を完成させ、モジュール名とポートを保持してください。ロックされた testbench.v は入力の変化を提供し、入力が安定した後に出力を表示します。+CASE=1 のようなシミュレーター引数を使用してシナリオを選択します。標準入力は必要ありません。design に出力、遅延、またはシミュレーション終了処理を追加しないでください。期待される出力は、観測ごとに 1 行の 10 進値で構成され、値は 1 個のスペースで区切られ、改行で終わります。

自分で試してみよう

module dut(input clk,rst,en,clear, input [7:0] data, input [15:0] limit, output reg [15:0] total, output reg [3:0] count, output alarm);
    initial begin total=0;count=0;end
    assign alarm=0;
endmodule

RTL設計と検証のすべてのレッスン

自分で練習してみよう: Verilogオンラインコンパイラ