ZyboをTutorialで試す その4 ビットストリームの生成

前回の続きです。引き続きTutorialFPGAの部屋を参考にします。

zybo_bsd.xprを開いているVivadoの画面に戻り、"Flow Navigator"の"IP Integrator"から"Open Block Design"を選択してダイアグラムを開きます。適当に空いている箇所を右クリックして"Add IP..."を選択するとダイアログが表示されます。検索窓に"my"と入力すると、先ほど作成したmyLed_v1.0が表示されますのでこれを選択し、エンターを押すとダイアグラム上にmyLed_0が追加されます。

先の手順でLEDを削除したあたりにドラッグします。チュートリアルでは "Run connection automation" が表示されるとありますが、表示されませんので、"myLed_0"の"S_AXI"を右クリックして"Make Connection..."を選択します。表示されたダイアログで "M00_AXI" を選択して"OK"をクリックすると、ダイアログ上でも結線されます。

"myLed_0"の"s_axi_aclk"と"s_axi_aresetn"も結線します。ダイアログ上の"myLed_0"のそれぞれから出ている横線の上にカーソルを移動すると鉛筆アイコンになるので、その状態でそれぞれ他のIPのaclkとaresetnが接続されている配線までドラッグして結線します。

ダイアグラム上に残っている"LEDs_4Bits"を右クリック→"Delete"で削除します。

"myLed_0"の"led[3:0]"を右クリックし、"Create Port..."を選択します。デフォルトの入力値のまま"OK"をクリックするとダイアグラムに"led[3:0]"というポートが作成され、"myLed_0"の同名のポートに自動的に接続されます。

※ここの記述はチュートリアルにはありません。この時点で、"myLed_0"にアドレスが割り当てられていないそうです。ダイアグラムのペインの"Address Editor"タブを開いてみますと、確かに"Unmapped Slaves"に表示されています。この"myLed_0"を右クリックして "Auto Assign Address" を選択すると自動でアドレスが割り当てられ、割り当て完了のダイアログが表示されますので"OK"で閉じます。

ここで一旦保存します。

続いて、"Sources"ペインの"Sources"タブを選択して"Constraints"→"constrs_1"→"base.xdc (target)"と選択してbase.xdcをダブルクリックして開きます。右側のペインにソースコードが表示されますので、7行目から11行目の"leds_4bits_tri_o"を"led"に置換します。

set_property PACKAGE_PIN M14 [get_ports {led[0]}]
set_property PACKAGE_PIN M15 [get_ports {led[1]}]
set_property PACKAGE_PIN G14 [get_ports {led[2]}]
set_property PACKAGE_PIN D18 [get_ports {led[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[*]}]

編集を終えたら保存し、ビットストリームを生成します。"Flow Navigation"ペインの"Program and Debug"にある"Generate Bitstream"を選択します。"No Implementation Results Available"ダイアログが表示されますので"Yes"を選択すると、"Generate Bitstream"ダイアログが表示されてビットストリームの生成が始まります。

少し待つと"Launch Run Critical Messages"ダイアログが表示されますが、気にせず"OK"で閉じます。ここからしばらく時間が掛かります。動いているか分からないと不安な時は、下部ペインの"Log"タブを開いてログを眺めてみましょう。

ビットストリームの生成に成功すると、"Bitstream Generation Completed"ダイアログが表示されます。"Open Implemented Design"にチェックを入れて"OK"をクリックして内容を確認してみます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です