【ARTY】MicroBlazeでLEDを点灯させるプログラムを作成し、elfファイルも合わせてFPGAにプログラムして実行、さらにelfファイルも合わせてシミュレーションを行う(3)

前回の【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ファイルを組み込んで実装もできます。



© 2024 サニーサイド