”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タブ)

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

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

Portsタブでclock_generator_0 のCLKINがCLK_P, CLK_Nの差動入力になっていた。これをシングルエンド入力に変更する。
・CLK_Pをクリックして、clock_generator_0_CLKIN_pin を選択した。(これは必要なかったようだ。後で消してしまった)

・CLK_Nを削除した。

・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を選択した。

・External Ports のLEDS_TRI_O をLed に名前を変更した。
・これでCLKのGUIでの変更は終了した。

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

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

下に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を終了した。

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

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

・Systhesis -> Run Synthesis をクリックして、論理合成を実行した。
・Implementation -> Run Implementation をクリックして、インプリメントを実行した。
・Program and Debug -> Generate Bitstream をクリックして、ビットファイルの生成を行った。

Messages に以前のエラーやワーニングが通算して表示されているのは頂けないと思う。今回の実行した分だけ表示するようにできないのかな?
前回、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 をクリックした。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

”
PlanAhead14.1のExampleのBFT Core を試してみた3(Implementation編)”の続き。
今回は、PlanAhead14.1プロジェクト最後のProgram and Debug をやってみた。FPGAボードが無いので、Generate Bitstream で終了なのが残念だ。
・Program and Debug -> Generate Bitstream をクリックした。ビットファイルが生成された。

成功したら、ChipScope Analyzer とiMPACT がハイドされた状態から選択できるようになった。残念ながら、FPGAボードが無いので、ここで終了となる。
右のウインドウを見るとわかるが、インプリメント後の動作周波数は198.452Mhz となった。
かなり使いやすくなっていると思う。これでXPSを入れてインプリメント出来て、テストベンチファイルを作る時にテンプレートを挿入してくれれば、全面的にPlanAhead プロジェクトに乗り換えたいと思う。
昨日、1人で
宇宙兄弟を見てきました。小栗旬さんのムッタ役がはまり役でした。モーニングで漫画を読んでいるので、物足りないところは有りましたが、楽しく見ることができました。
”
PlanAhead14.1のExampleのBFT Core を試してみた2(Synthesis編)”の続き。
今回は、Implementationを行った。
・Implementation -> Run Implementation をクリックした。
・Implementation が成功したというダイアログが表示されたが、誤って消してしまった。デザインを表示させる場合は、FlowメニューからOpen Implemented Design -> を選択する。

・Implementation -> Implemented Design -> Edi Timing Constrains は、Synthesisの時と変わりが無いので省略。
・Implementation -> Implemented Design -> Run TRCEをクリックした。Run TRCE ダイアログが表示された。OKボタンをクリックした。

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

・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ボタンをクリックした。

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

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

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

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