前提条件
QuartusとModelSimがパソコンにインストールされていること。
環境
OS: Windows 10
Quartus Prime Version: Lite, Version 17
Verilog コード
今回は3ビットカウンタを実装することにします。メインのプログラムのファイル名はcoinc.v
、テストするプログラムのファイル名はcoinc_TEST.v
とします。
coinc.v
module coinc (RESD, CLK, C);
input RESD, CLK;
output [2:0] C;
reg [2:0] C;
always @(posedge CLK or negedge RESD)
begin
if (RESD == 1'b0) C <= 3'b000;
else C <= C + 3'b001;
end
endmodule
coinc_TEST.v
module coinc_TEST;
reg RESD, CLK;
wire [2:0] C;
coinc tcounter4 (RESD, CLK, C);
initial
begin
CLK = 0;
forever #50 CLK = !CLK;
end
initial
begin
RESD = 1;
#10 RESD = 0;
#20 RESD = 1;
end
initial
$monitor (" %3d, %d, %d, %d", $stime, RESD, CLK, C);
endmodule
Start Analysis and Synthesis
Quartusに上記の二つのソースコードの記述が終わったら、coinc_TEST.v
にいるまま、上の画面でstart analysis and synthesis
を押します。
終わったらModelSimを開きます。
ModelSimにてシミュレーションまで
ModelSimをまず開き、File
を開いてchange directory
を押してソースコードがおかれているディレクトリを選びます。
そのあと、もう一度File
を開いてLibrary
を押します。
(もうすでにworkというライブラリがあれば、この手続きは必要ないです。スキップして次のステップへ行きましょう。)
a new library and a logical mapping to it
を選択し、work
という名前を割り振ります。
ここでtranscript
に# Errors: 0, Warnings: 0
というメッセージが現れればオーケーです。
次に上のsimulateを押します。
coinc_TEST.vを選び、OKを選びます。
これで新たなウィンドウがポップアップします。Objectsのすべての値を選び、Waveの中にドラッグします。(ここでWaveが存在しない場合、上のViewから選択して表示させる必要があります。)
最後に以下の青い〇で囲まれているrun
を押してシミュレーション結果が出ます。下のtranscript
に run 1000
などと打ち込めば、1000psのシミュレーションを行えたりと実行時間を調整できます。
こちらが run 1000
としたときのシミュレーション結果です。たしかに3ビットの数字をカウントしているのがわかります。