FC2カウンター FPGAの部屋 2012年06月18日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Xilinx Simulation Library Compilation Wizard でQuesta 用のライブラリをコンパイル

Questa をISE14.1 のシミュレータとして使用するには、XilinxのプリミティブやCoregen 用のライブラリをコンパイルする必要がある。そのためにXilinxからSimulation Library Compilation Wizard が提供されている。今回はこの使い方を説明用に書いておく。(Windows7 pro 64ビット版使用)

・Windows のスタートメニューからXilinx Design Tools -> ISE Design Suite 14.1 -> ISE Design Tools -> 64-bit Tools -> Simulation Library Compilation Wizard を起動する。
compxlib_1_120618.png

・Xilinx Simulation Library Compilation Wizard が起動した。Select Simulator でQuesta Simulator を選択する。
compxlib_2_120618.png

・次の画面は、VHDL, Verilog どちらのライブラリを生成するかを選択するが、両方を選択しておく。
compxlib_3_120618.png

・どのデバイス・ファミリのライブラリを生成するかを選択する画面だが、チェックの外し方によっては不正終了してしまったので、そのままとする。
compxlib_4_120618.png

・Launch Compile Process > ボタンをクリックする。
compxlib_6_120618.png

・ライブラリのコンパイルが開始された。
compxlib_7_120618.png

・コンパイルが終了した。
compxlib_8_120618.png

・Summary を表示で終了。
compxlib_9_120618.png

・Xilinx\14.1\ISE_DS\ISE\vhdl\questasim\10.1b\nt64の下と、Xilinx\14.1\ISE_DS\ISE\verilog\questasim\10.1b\nt64の下にQuestaのライブラリができた。
compxlib_10_120618.png
compxlib_11_120618.png

・、Xilinx\14.1\ISE_DS\ISE\verilog\questasim\10.1b\nt64にmodelsim.ini があるので、これを開いた。
compxlib_12_120618.png

・[Library] 部分のパスをQuesta のインストールフォルダのmodelsim.ini にコピーして追加する。

これで終了だが、ライブラリパスが多すぎるので、最初は下に示すくらいのライブラリパスを書いておけば良いと思う。ないと言われたら追加すれば?と思う。

unisim = D:\HDL\Xilinx\14.1\ISE_DS\ISE\vhdl\questasim\10.1b\nt64/unisim
unimacro = D:\HDL\Xilinx\14.1\ISE_DS\ISE\vhdl\questasim\10.1b\nt64/unimacro
unisims_ver = D:\HDL\Xilinx\14.1\ISE_DS\ISE\verilog\questasim\10.1b\nt64/unisims_ver
unimacro_ver = D:\HDL\Xilinx\14.1\ISE_DS\ISE\verilog\questasim\10.1b\nt64/unimacro_ver
simprim = D:\HDL\Xilinx\14.1\ISE_DS\ISE\vhdl\questasim\10.1b\nt64/simprim
simprims_ver = D:\HDL\Xilinx\14.1\ISE_DS\ISE\verilog\questasim\10.1b\nt64/simprims_ver
xilinxcorelib = D:\HDL\Xilinx\14.1\ISE_DS\ISE\vhdl\questasim\10.1b\nt64/xilinxcorelib
xilinxcorelib_ver = D:\HDL\Xilinx\14.1\ISE_DS\ISE\verilog\questasim\10.1b\nt64/xilinxcorelib_ver
uni9000_ver = D:\HDL\Xilinx\14.1\ISE_DS\ISE\verilog\questasim\10.1b\nt64/uni9000_ver
cpld = D:\HDL\Xilinx\14.1\ISE_DS\ISE\vhdl\questasim\10.1b\nt64/cpld
cpld_ver = D:\HDL\Xilinx\14.1\ISE_DS\ISE\verilog\questasim\10.1b\nt64/cpld_ver


  1. 2012年06月18日 13:10 |
  2. シミュレーション
  3. | トラックバック:0
  4. | コメント:0

キャラクタROMをAXI4 Lite Slave として実装する7(SDK1)

キャラクタROMをAXI4 Lite Slave として実装する6(シミュレーション)”の続き。

前回、PlanAheadで論理合成、インプリメントが終了したが、microblaze_0 のメモリ領域が8Kバイトだったので、getc() を使用するため32Kバイトまで増やした。これで論理合成、インプリメントが終了した。
次に、ハードウェア情報をExportしてSDKを起動する。

・PlanAheadのFileメニューからExport -> Export Hardware... を選択した。

・ダイアログが開く。Launch SDKにチェックを入れて、OKボタンをクリックした。
PlanAhead141_82_120518.png

・SDKが起動する。以前のプロジェクトが入っている。”XPS入りのPlanAhead14.1プロジェクトを作る3(SDK)”参照。
AXI_Lite_Slave_32_120617.png

system_hw_platform -> system.xml はchar_rom_axi_lite_0 の項目が入っているが、以前作成したAtlys_bsp_0 のxparameters.h にはchar_rom_axi_lite_0 の情報はない。もう一度、NewメニューからXilinx Board Support Package を作る必要があるようだ。

・FileメニューからNew -> Xilinx Board Support Package を選択する。

・New Board Support Package Project ダイアログが出る。Project name にAtlys_CharR_bsp_0 と入力して、Finishボタンをクリックした。
AXI_Lite_Slave_33_120617.png

・Board Support Package Settings ダイアログが開いた。
AXI_Lite_Slave_34_120617.png

・左のペインからstandalone をクリックすると、stdin, stdout にaxi_uartlite_0 が割り当てられていることがわかる。OKボタンをクリックした。
AXI_Lite_Slave_35_120617.png

・Atlys_CharR_bsp_0 が生成された。こちらのxparameters.h を開くと、CHAR_ROM_AXI_LITE_0の定義が見つかった。
AXI_Lite_Slave_36_120617.png

・次にCプロジェクトを作成する。FileメニューからNew -> Xilinx C Project を選択する。

・New Xilinx C Project でSelect Project Templete でEmpty Application を選択し、Project Name にchar_rom_axi_lite_test と入力して、Next > ボタンをクリックした。
AXI_Lite_Slave_37_120617.png

・Target an existing Board Support Package のラジオボタンをクリックして、Atlys_CharR_bsp_0 を指定した。Finishボタンをクリックした。
AXI_Lite_Slave_38_120617.png

・char_rom_axi_lite_test のプロジェクトが作成された。
AXI_Lite_Slave_39_120617.png

・次にCファイルを新規作成する。FileメニューからNew -> Source File を選択した。

・New Source File ダイアログのSource file にchar_rom_axi_lite_test.c を入力して、Finishボタンをクリックした。
AXI_Lite_Slave_40_120617.png

・char_rom_axi_lite_test.c が生成された。Cコードを書いてみた。
AXI_Lite_Slave_41_120617.png

SDKのProgram FPGAダイアログからFPGAをコンフィグ使用としたが、やはりエラーだったので、PlanAheadでiMPACTを立ちあげてコンフィグした。(”AXI Performance Monitor IPを試してみた2(SDK)”参照)

・SDKのProject Explorerで、char_rom_axi_lite_testの下のBinariesの下のchar_rom_axi_lite_test.elfで右クリックして、右クリックメニューからDebug As -> Lanunch on Hardware を選択する。
AXI_Lite_Slave_42_120618.png

・ダイアログが2つ出てOKバタンをクリックしていくと、デバック画面になる。

・真ん中上のウインドウにXMDウインドウがあるので、そのタブをクリックしてXMDウインドウにした。

・mrd 0x7f800600, mrd 0x7f800604 コマンドを入れてキャラクタROMをReadしてみた。
AXI_Lite_Slave_43_120618.png

結果は0x00000018と0x00000024で、”キャラクタROMをAXI4 Lite Slave として実装する6(シミュレーション)”の最後のシミュレーション波形の結果と同様になった。
AXI_Lite_Slave_31_120616.png
  1. 2012年06月18日 05:34 |
  2. AX4 Lite Slave IPの作製
  3. | トラックバック:0
  4. | コメント:0