前回の【ARTY】MicroBlazeでLEDを点灯させるプログラムを作成し、elfファイルも合わせてFPGAにプログラムして実行、さらにelfファイルも合わせてシミュレーションを行う(2)の続きです。
開発環境
- Vivado v2022.1
- Xilinx Vitis IDE v2022.1
- Windows10
- Tera Term
VIVADOを起動
VIVADOが前々回の【ARTY】MicroBlazeでLEDを点灯させるプログラムを作成し、elfファイルも合わせてFPGAにプログラムして実行、さらにelfファイルも合わせてシミュレーションを行う(1)のときに開いたままなら、そのまま続けます。閉じた場合は同じプロジェクトを開きます。
前回elfファイルが生成されたので、それを組み込んでシミュレーションを行いたいと思います。
File -> Add Sourcesをクリック。
Add or create simulation sourcesを設定してNextをクリック。
Create Fileをクリック。ここではFile nameをsimとして空のファイルを生成。
sim.vが生成されるので、これをダブルクリック。
module sim;
reg clk_100MHz;
wire [3:0] gpio_rtl_0_tri_o;
reg reset_rtl_0;
wire uart_rtl_0_rxd;
wire uart_rtl_0_txd;
parameter PERIOD = 10;
design_1_wrapper design_1_wrapper_inst(
.clk_100MHz(clk_100MHz),
.gpio_rtl_0_tri_o(gpio_rtl_0_tri_o),
.reset_rtl_0(reset_rtl_0),
.uart_rtl_0_rxd(uart_rtl_0_rxd),
.uart_rtl_0_txd(uart_rtl_0_txd)
);
always #(PERIOD/2) begin
clk_100MHz <= ~clk_100MHz;
end
initial begin
clk_100MHz = 0;
reset_rtl_0 = 1;
@(posedge clk_100MHz);
@(posedge clk_100MHz);
reset_rtl_0 <= 0;
@(posedge clk_100MHz);
#200;
reset_rtl_0 <= 1;
#10000;
$stop;
end
endmodule
上のようなシミュレーションプログラムにします。
Tools -> Associate ELF filesをクリック。Simulation Sourceの右下の...をクリック。
Add Filesをクリック。
階層を変更し、前回生成したelfファイル、ここではArty_led_00.elfを選択しOKをクリック。
該当するelfファイルが選択されていることを確認してOKをクリック。
Flow NavigatorでSIMULATION -> Run Simulationを選択し、更にRun Behaviral Simulationをクリック。
シミュレーションでGPIOから0xaが出力されました。
Tools -> Associate ELF filesの設定で、もちろんbit fileの中にelfファイルを組み込んで実装もできます。