FPGA:MicroBlaze

 ソフトマクロCPU MicroBlaze

File-NewからXDCファイルと空の.Vファイルを作るところまではこれまでを参考に。

新しい機能としてIP INTEGRATORを使う。Create Block Designを選択する。

Block Designのダイヤログが開く。nameを適当に変更する


真っ白な枠が表示されるが、上の方に+のマーク(Add IP)が出るので押しIPを追加する。


リストの中からMicroBlazeを選んで選択するとMicroBlazeの箱が現れる。


上の緑の部分にRun Block Automationと文字があるのでクリックする。設定画面が出てくるので設定を行う。

Presetが選べるが調べると以下
マイクロコントローラー: ベアメタル コードの実行する時
リアルタイム プロセッサ: RTOS 上でリアルタイム処理したい時
アプリケーション プロセッサ: 組み込み Linux を使う時

Okを押すと上のように箱が自動で追加される。この箱のなかClock Wizardというのがあるのでダブルクリックする。

CLK_1N1がCustomになっているのとsysclockに変更する。
またOutpu Clocksのタブをひらき
クロックが100MHz、リセットがActiveHighとしておく(デフォルトでなっているはず)


入力ポートをつける事をする。このClock箱にCLK_IN1_Dの左にカーソルをもっていくペンの形になるが右クリックーMake Externalとすると外部接続端子が生成される。
CLKとRST側も同じく外部端子を作る。
外部端子をつけたあとは下のようになる。



GPIOのIPをさらに追加する。同じように上の+ボタンAdd IPから選択する。

AXI GPIOの箱がおかれるのでダブルクリックする。
追加するGPIOのポート数32になっているのを適当な数に変更しOKを押す。
すると上の方に緑のバーが出て、Run Connection Automationが現れるのでクリック


S-AXIにチェックいれてOKを押すと、自動では配線される。
配線された様子が以下

ポート名の修正を行う。ポートCLK_IN1_D_0といったような名前になっていて制約ファイルと一致しないのでが変更する。右クリックし、External Interface Propertiesを選択すると窓が開くので名前を変更する。CLKにする。

Validate Design:デザインの検証を行う。上の方に、四角にレ点のマークがあるのでクリックすると検証が始まる。


問題なければ、successfulと表示される。

design_1.bdというファイルができているが、bitファイルにする時に作ってくれないので、もう一層上位層をつくらないといけない。
右クリックして、Create HDL Wrapperを選択する。Wrapperはそのままの意味でラッパー、上包みという意味。

Let Vivado manage wrapper and auto-updateのチェックでOKを押す。


制約ファイルを編集する。ベンダーの標準から必要分をコピー
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を押してコンパイルする。

プラットフォームファイルの生成を続いて行う。
include bitstreamにチェックを入れてNext

保存先を次に聞かれるので適当に保存する。

Vitis IDEを立ち上げる。Tools-Launch Vitis IDEを選択する。


Create Platform Projectを選択する。

Platform project name:に適当な名前を入れる。blink_microblaze_plattformとした。


XSAファイルのありかを聞かれるので、Browseのボタンを押して先ほどVivadoで保存した、.xsaを指定しFinish。Vivadoのprojectフォルダーの直下に通常はある。

EclipseベースのIDEが立ち上がってくる。使いなれたIDEで少し安心する・・・
File-New-Appication-project













コメント

このブログの人気の投稿

Attiny85とAQM0802A(LCD)のI2C接続

CH9329で日本語キーボード109で正しく表示する方法