ZYNQ-7010 評価ボード
Zynq-7010 は Xilinx社 (いまはAMD社) が出している デュアルコアARM Cortex-A9とFPGAを統合したSoC です。簡単にいえば CPU と FPGA が同居しているので、それぞれの強みを生かした処理分担することができます。
今回の遊び道具は、DIGILENT社が出している Zynq-7010 評価ボードです。秋月で買えます。ZYBO Zynq-7010評価ボード Z7-10: 開発ツール・ボード 秋月電子通商-電子部品・ネット通販
私は3年ほど前に 2.5万円ほどで購入しました。

DIGILENT社のホームページからスペックを見ます。Zybo Z7 – Digilent Reference
以下HPからの引用になります。

Callout | Description | Callout | Description | Callout | Description |
---|---|---|---|---|---|
1 | Power Switch | 12 | High-speed Pmod ports * | 23 | Ethernet port |
2 | Power select jumper | 13 | User buttons | 24 | External power supply connector |
3 | USB JTAG/UART port | 14 | User RGB LEDs * | 25 | Fan connector (5V, three-wire) * |
4 | MIO User LED | 15 | XADC Pmod port | 26 | Programming mode select jumper |
5 | MIO Pmod port | 16 | Audio codec ports | 27 | Power supply good LED |
6 | USB 2.0 Host/OTG port | 17 | Unique MAC address label | 28 | FPGA programming done LED |
7 | USB Host power enable jumper | 18 | External JTAG port | 29 | Processor reset button |
8 | Standard Pmod port | 19 | HDMI input port | 30 | FPGA clear configuration button |
9 | User switches | 20 | Pcam MIPI CSI-2 port | 31 | Zynq-7000 |
10 | User LEDs | 21 | microSD connector (other side) | 32 | DDR3L Memory |
11 | MIO User buttons | 22 | HDMI output port | * denotes difference between Z7-10 and Z7-20 |
インターフェースまわり、
- 6個のpushボタン (内、2個はCPU接続): #13のボタン4つがFPGAでは利用
- 4個のスライドスイッチ: #9
- 5個のLED (内、1個はCPU接続): #10の4個をFPGAでは使用
あたりを使って、FPGA界の"Hello World" 、LEDチカチカをやってみます。
まず Zynq-7010 評価ボードに入力する電源について、こちらも メーカーホームページの reference-manual に記載がありました。

図解で分かりやすく説明されています。さらにその下の部分に、

2.1 mm のジャック (4.5V – 5.5V 2.5A以上) からの電源供給がおすすめとありますので、それも準備しました。中国 Merryking社製の電源で約1000円ほどでした。

電源を入れる前に、JP6のジャンパーピンがUSB側になっていましたので、ジャック側にさしなおします。

説明図にあるように、本体電源スイッチをONにすると、ADP5052 (ステップダウンレギュレータ) を通って降圧・分配された電気が各チップに行くようです。ユーザーからわかる目線でいえば、LD13が点灯するということになります。実際に確認してみましょう。
右側の赤いLEDがLD13ですので問題なさそうです。LD6がカラフルでビカビカひかっていますが不明です。左下でLD0~LD3が順番に点灯していますが、動作確認用で書き込まれたFPGA初期ファームによるものでしょう。
電源の確認はすみましたので、実際にファームを書いて “Hello World!" してみようと思います。
Vivadoの起動とプロジェクトの作成をします。
- Vivadoを起動して、Quick Sart の Create Project をおします。

- 適当にプロジェクト名と保存先を指定します。

- RTL Project にチェックが入っていることを確認して Next を押します。

- Create File を押してソースコードを新規に追加します。ファイル名を適当に決めます。

- 制約ファイルも同様に新規作成します。

- FPGAを指定します。”Zynq XC7Z010-1CLG400C” っぽいものを探して選びます。

これでプロジェクトの初期設定は完了ですので Finish で閉じます。
次にソースコードの作成をしていきます。先のウィザードで指定したようにVerilogで書いていきます。
- 2個のスイッチと2個のLEDを使って遊びたいと思います。ポート名として、"SW0_IN", “SW1_IN", “LED0_OUT", “LED1_OUT" を登録します。1ビットだけなのでバスにチェックは不要です。

- プロジェクトウィンドウが表示されました。ISE以来なので懐かしい。

- HelloWorld.v をダブルクリックで開いて中身を編集していきます。

- 今回のソースコードは以下です。LED0_OUT は単に SW0_IN とSW1_IN の AND演算に応じて、LED1_OUTは SW0_IN と SW1_IN の OR演算に応じて、点灯するように記載したいと思います。
module HelloWorld(
input wire SW0_IN,
input wire SW1_IN,
output wire LED0_OUT,
output wire LED1_OUT
);
assign LED0_OUT = SW0_IN & SW1_IN;
assign LED1_OUT = SW0_IN | SW1_IN;
endmodule
- (必要ならば) RTL analysisを実行し、Schematic を確認することもできます。Run Linter を押します。期待通りにAND と OR になっていますね。

- 論理合成を行います。Run Synthesis を押します。計算が終わると完了表示が出ます。

- Run Implementation を押しましょう。これも完了するとウィンドウがでます。Open Implemented Designを選択してプロジェクト画面に戻ります。


- 小さいのでよくわからないと思いますので拡大してみます。図でいう右下の部分を使って実装されたことがわかります。また、実装の観点での Schematic も表示することができます。


- メニュー > Layout > I/O Planning を選びます。reference manual より、スライドスイッチ SW0 とつなぐには “G15" ピン、スライドスイッチSW1 とつなぐには"P15″、LED0 は “M14″、LED1は “M15" と接続する必要があります。信号種類は LVCMOS18 でよいと思います。



- もういちど Run Synthesis, Run implementation をやりなおします。エラーがないことを確認します。

- ここまで来たら、FPGAに流すためのビットストリームファイルを生成します。Generate Bitstreamを押します。Open Hardware Manager を押して FPGAに流してみましょう。

パソコンと MicroUSB で接続して、FPGAの電源をいれます。そしてパソコン側では Open Target > Auto Connect を押して認識できるようにします。接続できると Program Device が選択できるようになるので、対象のFPGAを選びます。

そして “Program" ボタンで書き込みを開始しましょう。

無事に期待通りの動作 (LD0 はスイッチのAND, LD1はスイッチのOR) が確認できました!
ディスカッション
コメント一覧
まだ、コメントがありません