ZYBOで遊ぶ01:簡易タイマーIPの自作(2)

ZYBOで遊ぶ01:簡易タイマーIPの自作(1) - ThuruThuruToru’s blog の続き


ZYBOで遊ぶ01:簡易タイマーIPの自作(1) - ThuruThuruToru’s blog
ZYBOで遊ぶ01:簡易タイマーIPの自作(2) - ThuruThuruToru’s blog
ZYBOで遊ぶ01:簡易タイマーIPの自作(3) - ThuruThuruToru’s blog
ZYBOで遊ぶ01:簡易タイマーIPの自作(4) - ThuruThuruToru’s blog


4. Create Block Design

左側のIP Integrator -> Create Block Design をクリックし,Design nameを適当に決めてOKボタンをクリックする.

Diagram というタブが現れるので,ここにPS部, 自作したIP, IO を追加・接続してデザインを作っていく.

4.1. PS部

Diagram タブ内で右クリック->Add IPを選択.
現れたWindowから「ZYNQ7 Processing System」をダブルクリックする. f:id:ThuruThuruToru:20151031221917p:plain

現れたブロックを右クリック->Customize Blockを選択.
Re-customize IPという画面が現れるので以下の設定をする.

  • Import XPS Settings をクリックし,ZYBO用の設定ファイルを指定する

  • 左側のInterruptsをクリック

    • Fabric Interruptsにチェック
    • Fabric Interruptsの左側●をクリックすると表示されるPL-PS Interrupt PortsIRQ_F2Pにチェック
  • OKをクリックして Re-customize IPを閉じる

正しく設定できていれば,以下の図の様になる. f:id:ThuruThuruToru:20151031223444p:plain

Diagramタブの上の方に「Run Block Automation」という青文字がでているのでクリックする.
Run Block Automationという画面がでるのでOKをクリック.
以下の図の様にDDRとFIXED_IOというポートが作成される. f:id:ThuruThuruToru:20151031223622p:plain

4.2 自作したタイマーIPをPS部と接続する

Diagramタブ内で右クリック->Add IPを選択.
myTimerを探してダブルクリック. f:id:ThuruThuruToru:20151031224155p:plain

Diagramタブの上の方に「Run Connection Automation」という青文字がでているのでクリック,表示された画面のOKボタンをクリックし,タイマーIPとPS部を自動接続する.

右クリック->Regenerate Layoutを選択すると以下の様になった.
Processor System ResetとAXI Interconnectというブロックが自動で追加され,AXI IF, Clock, Resetが自動で接続されている. f:id:ThuruThuruToru:20151031224625p:plain

myTimerを見ると,interruptとledがまだどこにもつながっていない.

interruptはZYNQ7 Processing SystemのIRQ_F2Pにつなげば良いので,マウスで2つの信号をつなぐようにドラッグする.

ledはIOへの接続なので,Diagramタブ内の白い部分で右クリック->Create PortをクリックしてOutputポートを作成する.Port nameをLED, DirectionをOutput, TypeをDataとしてOKボタンをクリック.
LEDポートが作られるので,マウスを使ってmyTimerのledポートと接続する. f:id:ThuruThuruToru:20151031225523p:plain

Diagramタブ内の白い部分で右クリック->Validate Designをクリックしてデザインに問題がないことを確認する.

5. Constraints 設定

Flow Navigator内のProject Manager->Add Sourcesをクリック.
「Add or create constraints」を選択する.
Add Filesを選び,ZYBO_Master.xdc(digilentのZYBOのページ下部からダウンロード)を選択し,Finishボタンをクリック.

SourcesタブからConstraints->constrs_1->ZYBO_Master.xdcをダブルクリック.
全ての設定がコメントアウトされた状態になっているので, IO_L23P_T3_35を探し,

set_property PACKAGE_PIN M14 [get_ports {LED}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED}]

と修正する.

6. Create HDL Wrapper

SourcesタブからDesign Sources->design_1を右クリックし,Create HDL Wrapperを選択して,TopとなるHDLを作成する.

7. Synthesis, Implementation, Generate Bitstream

Flow Navigator内のProgram and Debug->Generate Bitstreamをクリックし,Synthesis, Implementation, Generate Bitstream をいっきに実行.

BitStreamの生成まで無事完了したら,File->Export->Export Hardwareをクリック.
Include bitstream にチェックを入れてOKをクリック.

File->Launch SDK クリックし,Eclipseを起動する.
ここからは,Eclipse上でFarmwareを書いていく.

ZYBOで遊ぶ01:簡易タイマーIPの自作(3) - ThuruThuruToru’s blog に続く