VirtualBox内LinuxのVivado2017.3でZYBO-Z7-10でLチカ


このエントリーをはてなブックマークに追加

引き続きXilinxのFPGAを動かしてみる

FPGAのZYBO-Z7をディスプレイに接続してみる | ぬわーーーーーーー!!!

MacのVirtualbox内linuxにVivado2017.3をインストールする | ぬわーーーーーーー!!!

今回FPGAプログラミング大全の書籍を参考にLチカを行った

注意点としては


というわけでLチカやっていく

Vivadoを立ち上げた状態から始める


Create Projectからプロジェクトを作成


Next>


プロジェクト名とディレクトリを設定する、 “Create project subdirectory” にチェックを入れておく

  • 自分は /media/sf_virtualboxshare/Vivado 内に workspace ディレクトリを作成してその中に blink プロジェクトを作成した
  • Next>


RTL Projectを選択、 “Do nots specify sources at this time” を選択しておく

  • このチェックを外しておくとxdcファイルやHDLプログラムをインポートすることも出来るが、一旦プロジェクトを作成しておき後で追加できるのでひとまずチェックしておく
  • 参考にした書籍(FPGAプログラミング大全)がこの設定だったので倣った


ボードファイルを選ぶ、SelectでBoardsを選択して自分のボードは ZYBO Z7-10 だったので “Zybo Z7-10” を選択して Next>

  • ボードファイルは下記からダウンロード可能
  • Vivado Version 2015.1 and Later Board File Installation [Reference.Digilentinc]
  • 一番上のほうにある Board Files: Download をクリックすればよい
  • ダウンロードされたファイルの中身のうち、今回用いたのが zybo-z7-10 の中にはいってるファイル群
    • 先述した通り、自分のボードが ZYBO Z7-10 だったため
    • 自分の購入したボードがどれか確認して使用すること
  • 自分は/media/sf_virtualboxshare/にVivadoをインストールしたので
  • /media/sf_virtualboxshare/Vivado/2017.3/data/boards/board_fileszybo-z7-10 をいれた


で、Boards選択画面で Zybo Z7-10 を選択して Next>


プロジェクトの設定詳細画面になるので Finish



xdcファイルを追加する


  • プロジェクトが作成されプロジェクトの画面になるのでファイルをインポートしていく
  • Add Sourcesをクリック


  • Add or create constraintsを選択
  • Next>


  • Add Filesをクリック


  • xdcファイルを選択する
  • xdcファイルは下記からダウンロード可能
  • Zybo-Z7-Master.xdc ファイルを元に、自分は下記のようにファイルを修正して用いた、ファイル名は Zybo-Z7-Master-test.xdc にしておいたのでそれをaddした
    • 先述したとおり、ここも自分のボードがどれかによって使用するxdcファイルが異なってくるので注意
    • その他使用しない部分は # を使えばコメントアウトとなる
  • 今回は書籍のやり方に倣ってやるので、例えば本来 sysclk となってる部分が CLK となっていたり、 led となってる部分が LED となっていたりしているので注意
  • よくわからない場合は下記をコピペして適当に hogehoge.xdc みたいな名前にして保存したものを用いてもひとまず動きます
1
2
3
4
5
6
7
8
9
10
11
12
##Clock signal
set_property -dict { PACKAGE_PIN K17 IOSTANDARD LVCMOS33 } [get_ports { CLK }]; #IO_L12P_T1_MRCC_35 Sch=sysclk
create_clock -add -name sys_clk_pin -period 8.00 -waveform {0 4} [get_ports { CLK }];
##Reset
set_property -dict { PACKAGE_PIN Y16 IOSTANDARD LVCMOS33} [get_ports { RST }]
##LEDs
set_property -dict { PACKAGE_PIN M14 IOSTANDARD LVCMOS33 } [get_ports { LED[0] }]; #IO_L23P_T3_35 Sch=led[0]
set_property -dict { PACKAGE_PIN M15 IOSTANDARD LVCMOS33 } [get_ports { LED[1] }]; #IO_L23N_T3_35 Sch=led[1]
set_property -dict { PACKAGE_PIN G14 IOSTANDARD LVCMOS33 } [get_ports { LED[2] }]; #IO_0_35 Sch=led[2]
set_property -dict { PACKAGE_PIN D18 IOSTANDARD LVCMOS33 } [get_ports { LED[3] }]; #IO_L3N_T0_DQS_AD1N_35 Sch=led[3]

ファイルを選択したら OK をクリック

  • Copy constraints files into projectはチェックを外しておく

    • チェックを付けておくと、プロジェクト内にコピーしたファイルもコンパイル対象となってしまい、ファイルを修正しても不具合が解消しないなどの原因となるので最初はチェックを外しておくのをおすすめされていた
  • で、Finish



回路記述ファイルを追加する


  • FPGAプログラミング大全のサポートファイルをダウンロードしてやってみる、下記からダウンロード可能
  • FPGAプログラミング大全 Xilinx編|サポート|秀和システム
  • XilinxFPGA/Zybo/dai2-3sho/blink/HDL/blink.v というディレクトリ構成で blink.v ファイル があるのでこれをaddしてやる
  • Flow NavigatorのPROJECT MANAGERから再び Add Sourcesをクリック
  • Add or create design sourcesを選択する


  • Add Filesをクリック
  • さきほどのblink.vを適当なディレクトリに置いておいておいて、選択してOK
  • xdcファイルの時と同様に、 Copy sources into project のチェックは外しておく
  • Scan and add RTL include files into project のチェックは付けておく
    • 理由は不明、プロジェクトに追加する前になにかしらチェックするのだとは思う、要調査
  • Finishをクリック



コンパイルする


  • Flow NavigatorのPROGRAM AND DEBUG から “Generate Bitstream” をクリック


  • 確認画面が出るので “Yes” をクリック


  • コンパイルが走るのでしばし待つ、環境にもよるが数分かかる
  • 右上にコンパイルの状況が、Design RunsにStatusなどが表示されている


  • コンパイルが終わったら結果が表示される
  • 成功した場合、その後どうするか確認されるのでまずは “Cancel” をクリック



ピンの状態を確認


FPGAのZYBO-Z7をディスプレイに接続してみるでは

ボードにデフォルトで書き込まれているプログラムを起動させるために

ピンをQSPIの接続で使用していたが

今回はVivadoからのプログラムを実行してあげるため

下画像のようにジャンパーをJTAGのほうに接続してあげること



プログラムを書き込む


あとはUSBケーブルを接続して電源をいれてあげて、書き込んでいけば良いが

自分の場合、VirtualBoxのLinuxから書き込むために

FPGAのドライバをちゃんとVirtualBoxのほうでも認識させてあげないといけない

最初これで戸惑っていたが

下記を参考に、VirtualBoxに入れたLinuxの設定をおこなってやることで

ちゃんと認識されるようになった

VirtualBoxでのUSBデバイス認識 - Qiita

これをまずやっておくようにして

いざ書き込みを行う


USBケーブルをパソコンに接続、ZYBO Z7-10 の電源をONにして

起動させると、PGOODのLED(LD13)が赤く点灯する

下画像は電源を入れた状態


この状態で、Vivadoの Flow NavigatorのPROGRAM AND DEBUGにある

“Open Hardware Manager” をクリック


Open Targetをクリック -> Auto Connectをクリック


無事認識されたらハードウェア名が出て来る

Program deviceをクリックして書き込むデバイスを選択してクリック(1個しかでてこないはず)


Program Deviceダイアログが出て来るので、Programをクリック

書き込みが始まる


DONEのLED(LD12) が緑色に点灯して

LED0~LED3(LD0~LD3)が順番に点滅しだしたら成功

以上、Lチカが出来た

書籍ではこれ以外にも色々と手を動かせる内容があるみたいなので

初学者の入門におすすめです


このエントリーをはてなブックマークに追加