XPS入りのPlanAhead14.1プロジェクトを作る2(XPSの設定、インプリメント) 

”XPS入りのPlanAhead14.1プロジェクトを作る1(プロジェクトの生成)”の続き。

前回は、XPS (Xilinx Platform Studio) のプロジェクトが出来たところまでだったが、PlanAhead14.1でインプリメントをしてみた。
XPSプロジェクト入りPlanAhead14.1のマニュアルがあった。それは、”PlanAhead User Guide UG632 (v14.1) April 24, 2012”だ。まだUSのXilinxサイトにしかなかった。これの82ページの”Managing Embedded Processor Sources”にやり方が書いてある。

・前回の最後の図はXPSのプロジェクトだった。(Bus Interfacesタブ)
PlanAhead141_67_120516.png

・Portsタブをクリックした。External Ports にCLK(CLK_PとCLK_Nがあって差動入力になっているので後で修正する)RESET、それにLEDが出力されている。microblaze_0_intcとLEDSにはクロックが接続されていた。

・Portsタブの下半分。axi_timer にもAXIバスのクロックが接続されたいた。
PlanAhead141_69_120516.png

・Addressesタブ。すべてのモジュールにアドレスが割り振られている。
PlanAhead141_70_120516.png

Portsタブでclock_generator_0 のCLKINがCLK_P, CLK_Nの差動入力になっていた。これをシングルエンド入力に変更する。

・CLK_Pをクリックして、clock_generator_0_CLKIN_pin を選択した。(これは必要なかったようだ。後で消してしまった)
PlanAhead141_71_120517.png

・CLK_Nを削除した。
PlanAhead141_72_120517.png

・External Ports のCLK_Nを右クリックメニューのDelete External Port を選択して削除する。

・External Ports のclock_generator_0_CLKIN_pin もDelete External Port を選択して削除した。

・CLK_PをCLKに名前を変更して、Connected Portの辺りをクリックして、clock_generator_0のCLKINを選択した。
PlanAhead141_73_120517.png

・External Ports のLEDS_TRI_O をLed に名前を変更した。

・これでCLKのGUIでの変更は終了した。
PlanAhead141_74_120517.png

・system.mhs を左上のProjectウインドウから起動した。system.mhs の16行目にDIFFERENTIAL_POLARITY = P,という記述があったので削除した。
PlanAhead141_75_120517.png

・次にucfファイルを下のように設定した。
PlanAhead141_76_120517.png

下にUCFファイルを示す。

NET "CLK" TNM_NET = sys_clk_pin;
TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 100000 kHz;

NET "CLK" LOC = "L15" | IOSTANDARD = LVCMOS33; # Bank = 1, Pin name = IO_L42P_GCLK7_M1UDM, Type = GCLK, Sch name = GCLK
NET "RESET" LOC = "T15" | IOSTANDARD = LVCMOS33; # Bank = 2, Pin name = IO_L1N_M0_CMPMISO_2, Sch name = M0/RESET
NET "Led<0>" LOC = "U18" | IOSTANDARD = LVCMOS33; # Bank = 1, Pin name = IO_L52N_M1DQ15, Sch name = LD0
NET "Led<1>" LOC = "M14" | IOSTANDARD = LVCMOS33; # Bank = 1, Pin name = IO_L53P, Sch name = LD1
NET "Led<2>" LOC = "N14" | IOSTANDARD = LVCMOS33; # Bank = 1, Pin name = IO_L53N_VREF, Sch name = LD2
NET "Led<3>" LOC = "L14" | IOSTANDARD = LVCMOS33; # Bank = 1, Pin name = IO_L61P, Sch name = LD3
NET "Led<4>" LOC = "M13" | IOSTANDARD = LVCMOS33; # Bank = 1, Pin name = IO_L61N, Sch name = LD4
NET "Led<5>" LOC = "D4" | IOSTANDARD = LVCMOS33; # Bank = 0, Pin name = IO_L1P_HSWAPEN_0, Sch name = HSWAP/LD5
NET "Led<6>" LOC = "P16" | IOSTANDARD = LVCMOS33; # Bank = 1, Pin name = IO_L74N_DOUT_BUSY_1, Sch name = LD6
NET "Led<7>" LOC = "N12" | IOSTANDARD = LVCMOS33; # Bank = 2, Pin name = IO_L13P_M1_2, Sch name = M1/LD7


・ProjectメニューからDesgin Rule Check を実行したら問題なく通った。これでXPSを終了した。
PlanAhead141_77_120517.png

・PlanAheadに戻って、systemを選択して右クリックメニューからGenerate... を選んだらHDLじゃないとエラーになってしまった。そこで、systemを選択して右クリックメニューからCreate Top HDL を選択した。
PlanAhead141_78_120517.png

・system_stub.v という名前のトップのVerilogファイルが生成された。
PlanAhead141_79_120517.png

・Systhesis -> Run Synthesis をクリックして、論理合成を実行した。

・Implementation -> Run Implementation をクリックして、インプリメントを実行した。

・Program and Debug -> Generate Bitstream をクリックして、ビットファイルの生成を行った。
PlanAhead141_80_120517.png

Messages に以前のエラーやワーニングが通算して表示されているのは頂けないと思う。今回の実行した分だけ表示するようにできないのかな?

 XPS入りのPlanAhead14.1プロジェクトを作る1(プロジェクトの生成) 

前回、XPS入りのISE14.1のプロジェクトをPlanAhead14.1にインポートしたら失敗してしまった。(”PlanAhead14.1で、XPS入りのISE14.1のプロジェクトをインポートしてみた”参照)

そこで、今度は自分で1からXPS入りのPlanAhead14.1プロジェクトを作ってみることにした。ターゲットのFPGAボードはDigilent社のAtlysボードとする。
AtlysボードのEDKプロジェクトについては、”AtlysボードでXPSプロジェクトを試す1(XPSのプロジェクト作成、インプリメント)”でやってみた。その際に使用したAtlys™ Spartan-6 FPGA Development BoardのWebページにあるProject Peripheral RepositoryサンプルはEDK13用ののため一度、今回のEDK14.1で使用してみたのだが、おかしくなってしまった。そのため、Project Peripheral Repositoryサンプルを使用せずに、1からBSBフローで作ってみることにした。

・スタートメニューからXilinx Design Tools -> ISE Desgin Suite 14.1 -> PlanAhead -> PlanAhead を起動する。

・PlanAhead 14.1 が開く。Create New Project をクリックした。
PlanAhead141_1_120511.png

・New Projectダイアログが開く。Next>ボタンをクリックした。
PlanAhead141_2_120511.png

・Project location を設定して、Project Name にAtlys_EDK_test_PA と入力して、Next>ボタンをクリックした。
PlanAhead141_51_120515.png

・RTL Project のラジオボタンをクリックして、Do not specify soruces at this time にチェックを入れる。Next>ボタンをクリックした。(新しいRTLプロジェクトを作るが、最初にHDLファイルは指定しないモード?)
PlanAhead141_52_120515.png

・FPGAの型番を指定した。Filterで絞っていって、xc6slx45csg324-2 を指定した。Next>ボタンをクリックした。
PlanAhead141_53_120515.png

・New Project Summary が表示された。Finishボタンをクリックした。
PlanAhead141_54_120515.png

・PlanAhead14.1のプロジェクトが新規作成された。
PlanAhead141_55_120515.png

・Sourcesウインドウで右クリックメニューからAdd Sources... を選択した。
PlanAhead141_56_120515.png

・追加するソースの種類を選ぶ。Add or Create Embedded Sources のラジオボタンをクリックした。Next>ボタンをクリックした。
PlanAhead141_57_120515.png

・XPSプロジェクトを新規作製するため、Create Sub-Design... ボタンをクリックした。
PlanAhead141_58_120515.png

・新規作作製するEmbedded Sourceの名前を聞いてくるので、system と入力した。OKボタンをクリックした。
PlanAhead141_59_120515.png

・Embedded Sourceの用意が出来たので、Finishボタンをクリックした。
PlanAhead141_60_120515.png

・XPSが立ち上がり、BSB Wizardを使用するか?と聞いてくるので、OKボタンをクリックした。
PlanAhead141_61_120515.png

・AXI Systemが選択されているので、そのままOKボタンをクリックした。
PlanAhead141_62_120515.png

・次のダイアログもSingle MicroBlaze Processor System が選択されているし、変更するところが無いので、Next>ボタンをクリックした。
PlanAhead141_63_120516.png

・axi_timer をクリックして選択し、Addボタンをクリックして、右のIncluded Peripherals for microblaze_0に追加する。Use Interruptにチェックを入れておく。更にLED用のGPIOペリフェラルを入れるためにAdd Device...ボタンをクリックした。
PlanAhead141_64_120516.png

・IO Interface Type からGPIOを選択し、Device でLEDSを選択する。OKボタンをクリックした。
PlanAhead141_65_120516.png

・LEDSペリフェラルがIncluded Peripherals for microblaze_0に追加された。今回はUse Interrupt のチェックは行わない。Finishボタンをクリックした。
PlanAhead141_66_120516.png

・XPSプロジェクトが生成された。LEDSもaxt_timer もAXI4_Liteバスに接続されていた。
PlanAhead141_67_120516.png

 PlanAhead14.1のExampleのBFT Core を試してみた4(Program and Debug編) 

PlanAhead14.1のExampleのBFT Core を試してみた3(Implementation編)”の続き。

今回は、PlanAhead14.1プロジェクト最後のProgram and Debug をやってみた。FPGAボードが無いので、Generate Bitstream で終了なのが残念だ。

・Program and Debug -> Generate Bitstream をクリックした。ビットファイルが生成された。
PlanAhead141_50_120514.png

成功したら、ChipScope Analyzer とiMPACT がハイドされた状態から選択できるようになった。残念ながら、FPGAボードが無いので、ここで終了となる。
右のウインドウを見るとわかるが、インプリメント後の動作周波数は198.452Mhz となった。
かなり使いやすくなっていると思う。これでXPSを入れてインプリメント出来て、テストベンチファイルを作る時にテンプレートを挿入してくれれば、全面的にPlanAhead プロジェクトに乗り換えたいと思う。

 宇宙兄弟(映画)を見てきました 

昨日、1人で宇宙兄弟を見てきました。小栗旬さんのムッタ役がはまり役でした。モーニングで漫画を読んでいるので、物足りないところは有りましたが、楽しく見ることができました。

 PlanAhead14.1のExampleのBFT Core を試してみた3(Implementation編) 

PlanAhead14.1のExampleのBFT Core を試してみた2(Synthesis編)”の続き。

今回は、Implementationを行った。

・Implementation -> Run Implementation をクリックした。

・Implementation が成功したというダイアログが表示されたが、誤って消してしまった。デザインを表示させる場合は、FlowメニューからOpen Implemented Design -> を選択する。
PlanAhead141_42_120514.png

・Implementation -> Implemented Design -> Edi Timing Constrains は、Synthesisの時と変わりが無いので省略。

・Implementation -> Implemented Design -> Run TRCEをクリックした。Run TRCE ダイアログが表示された。OKボタンをクリックした。
PlanAhead141_43_120514.png

・Timing TRCE結果が下のウインドウに表示された。
PlanAhead141_44_120514.png

・Implementation -> Implemented Design -> Report Clock Interaction もSynthesisの時と変わりが無いので省略。

・Implementation -> Implemented Design -> Run DRC もSynthesisの時と変わりが無いので省略。

・Implementation -> Implemented Design -> Report Noise もSynthesisの時と変わりが無いので省略。

・Implementation -> Implemented Design -> Report Utilization もSynthesisの時と変わりが無いので省略。

・Implementation -> Implemented Design -> XPower Analyzer をクリックした。Launch XPower Analyzerダイアログが表示された。何も指定せずに、OKボタンをクリックした。
PlanAhead141_45_120514.png

・XPower Analyzer が立ち上がって、消費電力の計算結果を表示した。
PlanAhead141_46_120514.png

・Implementation -> Implemented Design -> FPGA Editor をクリックした。FPGA Editorが起動した。
PlanAhead141_47_120514.png

・Implementation -> Implemented Design -> Run Timing Simulation をクリックした。Launch Timing Simulationダイアログが表示された。Launchボタンをクリックした。
PlanAhead141_48_120514.png

・ISimが立ち上がり、タイミング・シミュレーション結果が表示された。(タイミング・シミュレーションは時間がかかるので、余りやらない。論理シミュレーションと静的タイミング解析で終わりにしてしまう)
PlanAhead141_49_120514.png