Verilogでテストファイルコードの書き方_いくつかの一般的な形式をまとめます
1307 ワード
Verilogに触れ始めた初心者向けです.
試験信号の比変化と試験過程を記述するモジュールは試験プラットフォーム(testbench)とも呼ばれ、回路モジュールに対して全面的な動的試験を行うことができ、試験モジュールは一般的に2つの部分から構成され、一部は励起信号の初期化である.もう1つの部分は、励起信号の持続と繰返しである.
テスト時に注意する必要がある:一般的に、データ型宣言時に、被測定モジュールの入力ポートに接続された信号はregタイプとして定義され、initial文とalways文ブロックで値を割り当てるのが容易である.被測定モジュールの出力ポートに接続された信号はwireタイプとして定義され、検出が容易である.この文の意味は,被インタフェースモジュールの元のデータ型を気にしないことを意味する.
1つ目は、while文を使用してループ付与を実現することです.もちろん、このブロックはループを追加せずに、1回のみ付与することもできます.
2つ目は、initialを使用して初期化タスクを完了し、always文を使用してループを実現することです.
もちろんまだまだたくさんありますが、どんどん探しています...
試験信号の比変化と試験過程を記述するモジュールは試験プラットフォーム(testbench)とも呼ばれ、回路モジュールに対して全面的な動的試験を行うことができ、試験モジュールは一般的に2つの部分から構成され、一部は励起信号の初期化である.もう1つの部分は、励起信号の持続と繰返しである.
テスト時に注意する必要がある:一般的に、データ型宣言時に、被測定モジュールの入力ポートに接続された信号はregタイプとして定義され、initial文とalways文ブロックで値を割り当てるのが容易である.被測定モジュールの出力ポートに接続された信号はwireタイプとして定義され、検出が容易である.この文の意味は,被インタフェースモジュールの元のデータ型を気にしないことを意味する.
1つ目は、while文を使用してループ付与を実現することです.もちろん、このブロックはループを追加せずに、1回のみ付与することもできます.
initial
begin
while (1)
begin
a=0;
b=0;
s=0;
#100;
a=1;
b=0;
s=0;
#100;
a=0;
b=0;
s=1;
#100;
a=0;
b=1;
s=1;
#100;
a=1;
b=1;
s=1;
end
end
2つ目は、initialを使用して初期化タスクを完了し、always文を使用してループを実現することです.
initial
begin
a=4'b0001;
end
always #2
begin
a[0]=~a[0];
end
always #4
begin
a[1]=~a[1];
end
always #6
begin
a[2]=~a[2];
end
always #8
begin
a[3]=~a[3];
end
もちろんまだまだたくさんありますが、どんどん探しています...