【QuartusII入門】LED点灯回路の作成2(テストベンチの作成とシミュレーション)

今回は前回作成した回路をシミュレーション上でテストする環境を作っていきます。

まずはテストベンチを作成します。テストベンチというのはテストしたい回路に入力する信号を用意するための回路です。
図にするとこんなイメージ。

quartusii_ele_1_17

テストしたい回路(LED_BLINK)に対して、クロックとリセット信号を入力してやる回路(TB_LED_BLINK)を作成します。
テストベンチは実際にFPGAに書込むわけではないので、入出力はありません。
また、Verilogにはシミュレーションの時にだけ使える文法がありますので、それを利用して波形を作成していきます。
quartusii_ele_1_08 quartusii_ele_1_09

前回同様、File→NewからVerilog HDL Fileを選択。

下記コードを入力後、保存します。

`timescale 1 ns/ 1 ps
module tb_led_blink();

reg clk;
reg reset_n;
wire [7:0] led;

led_blink i1 (
.clk(clk),
.led(led),
.reset_n(reset_n)
);

always #10 clk <= !clk;

initial
begin
clk <= 1'b0;
reset_n <= 1'b1;
#100 reset_n <= 1'b0;
#100 reset_n <= 1'b1;

end
endmodule

quartusii_ele_1_18

Project NavigatorのCyclone IVを右クリックしてSettingをクリック。

 

quartusii_ele_1_19

左のメニューからSimulationを選択します。
その後 Format for output netlist をVerilog HDL,
Time scale を 1ns,
NativeLink settingsでCompile test benchを選択し、Test Benches…をクリックします。

 

quartusii_ele_1_20

Newをクリックします。

 

quartusii_ele_1_21

Test bench name, Top level module in test bench に tb_led_blink と入力します。
End simulation at に 0を入力し、File name 横の…をクリックします。

 

quartusii_ele_1_22

先ほど作成したtb_led_blink.vを選択し、Openをクリックします。

 

quartusii_ele_1_23

File nameにtb_led_blink.vが入力されますので、Addをクリックします。

 

quartusii_ele_1_24

下のリストにtb_led_blink.vが入力されたことを確認して、OKをクリックします。

 

quartusii_ele_1_25

OKをクリックします。

 

quartusii_ele_1_26

OKをクリックします。

 

quartusii_ele_1_27

QuartusIIのTools→Optionをクリックします。

 

quartusii_ele_1_28

EDA Tool OptionsのModelSim-Alteraの欄に、ModelSim Alteraの実行ファイルのフォルダを入力し、OKをクリックします。
デフォルトだと下記になります。最後に\が必要になるようです。
C:\altera\13.1\modelsim_ase\win32aloem\

 

quartusii_ele_1_29

ToolからRun Simulation Tool→RTL Simulationをクリックします。

 

quartusii_ele_1_30

quartusii_ele_1_31

ModelSim が起動し、上記2つのウィンドウが開きます。

quartusii_ele_1_32

図のようにSim-defaultのi1 (led_blinkのモジュール)を選択します。
右の信号一覧が更新されますので、 ctr を右クリックして Add Waveをクリック。

 

quartusii_ele_1_33

Waveウィンドウに ctr が追加されます。

上の入力欄に2msと入力し、隣のRunボタンをクリックします。
quartusii_ele_1_34

シミュレーションが実行され、波形が表示されます。
一部しか結果が見えていないので、赤枠で囲ったZoom fullをクリックします。
quartusii_ele_1_35

シミュレーション結果の全体が表示されます。
一定間隔でledの値が変化しているのが分かります。

 

 quartusii_ele_1_36

clkやctrの動きが見えないので、拡大します。
マウスホイールを押しながらドラッグすると、図のような青い線が現れ、マウスホイールを離すとドラッグした範囲を拡大することができます。

 

quartusii_ele_1_37

quartusii_ele_1_38

何回か拡大を繰り返します。
quartusii_ele_1_39

ある程度拡大すると、clkとctrが動いている部分が見えるようになります。
ctrの値が表示し切れていないので、表示形式を変更します。

quartusii_ele_1_40

名前欄でclkを右クリックし、Radix→Unsignedを選択します。

 

quartusii_ele_1_41

これで、ある程度ctrの値が読めるようになりました。

quartusii_ele_1_42

数字が見切れている部分もポインターを上に持って行くと値を見ることができます。

以上でシミュレーションでの波形の確認は終了です。

 


シミュレーションでの波形観測は上手くできましたでしょうか?
回路を設計する際には、実際の動作を確認しながら修正していく事になります。
いきなり実機で動かす前に、シミュレーションで確認できる部分は修正しておきましょう。

次回は今回までに作成した回路のソースについて解説する予定です。

1件のコメント

  1. 大変、分かりやすく丁寧に解説されていて、為になりました。ありがとうございます。これからも、宜しくお願いします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です