FPGA:MicroBlaze
ソフトマクロCPU MicroBlaze
File-NewからXDCファイルと空の.Vファイルを作るところまではこれまでを参考に。
新しい機能としてIP INTEGRATORを使う。Create Block Designを選択する。
Block Designのダイヤログが開く。nameを適当に変更する
真っ白な枠が表示されるが、上の方に+のマーク(Add IP)が出るので押しIPを追加する。
リストの中からMicroBlazeを選んで選択するとMicroBlazeの箱が現れる。
上の緑の部分にRun Block Automationと文字があるのでクリックする。設定画面が出てくるので設定を行う。
マイクロコントローラー: ベアメタル コードの実行する時
リアルタイム プロセッサ: RTOS 上でリアルタイム処理したい時
アプリケーション プロセッサ: 組み込み Linux を使う時
Okを押すと上のように箱が自動で追加される。この箱のなかClock Wizardというのがあるのでダブルクリックする。
またOutpu Clocksのタブをひらき
クロックが100MHz、リセットがActiveHighとしておく(デフォルトでなっているはず)
入力ポートをつける事をする。このClock箱にCLK_IN1_Dの左にカーソルをもっていくペンの形になるが右クリックーMake Externalとすると外部接続端子が生成される。
CLKとRST側も同じく外部端子を作る。
外部端子をつけたあとは下のようになる。
GPIOのIPをさらに追加する。同じように上の+ボタンAdd IPから選択する。
AXI GPIOの箱がおかれるのでダブルクリックする。
S-AXIにチェックいれてOKを押すと、自動では配線される。
ポート名の修正を行う。ポートCLK_IN1_D_0といったような名前になっていて制約ファイルと一致しないのでが変更する。右クリックし、External Interface Propertiesを選択すると窓が開くので名前を変更する。CLKにする。
Validate Design:デザインの検証を行う。上の方に、四角にレ点のマークがあるのでクリックすると検証が始まる。
design_1.bdというファイルができているが、bitファイルにする時に作ってくれないので、もう一層上位層をつくらないといけない。
右クリックして、Create HDL Wrapperを選択する。Wrapperはそのままの意味でラッパー、上包みという意味。
Rsetは追記
## Clock signal
set_property -dict { PACKAGE_PIN E3 IOSTANDARD LVCMOS33 } [get_ports { CLK }]; #IO_L12P_T1_MRCC_35 Sch=gclk[100]
create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports { CLK }];
#Reset
set_property -dict { PACKAGE_PIN B8 IOSTANDARD LVCMOS33 } [get_ports { RST }]; # BTN[3]
## RGB LEDs
set_property -dict { PACKAGE_PIN E1 IOSTANDARD LVCMOS33 } [get_ports { LED_RGB[0] }]; #IO_L18N_T2_35 Sch=led0_b
set_property -dict { PACKAGE_PIN F6 IOSTANDARD LVCMOS33 } [get_ports { LED_RGB[1] }]; #IO_L19N_T3_VREF_35 Sch=led0_g
set_property -dict { PACKAGE_PIN G6 IOSTANDARD LVCMOS33 } [get_ports { LED_RGB[2] }]; #IO_L19P_T3_35 Sch=led0_r
Generate Bitstreamを押してコンパイルする。
プラットフォームファイルの生成を続いて行う。
保存先を次に聞かれるので適当に保存する。
Vitis IDEを立ち上げる。Tools-Launch Vitis IDEを選択する。
Create Platform Projectを選択する。
EclipseベースのIDEが立ち上がってくる。使いなれたIDEで少し安心する・・・
File-New-Appication-project

コメント
コメントを投稿