とあるエンジニアの備忘log
2013年12月27日金曜日
Zynq 事始め1
[前回](/2013/12/ise-vivado-on-ubuntu.html)、ISE/Vivado 等のツール類のセットアップは済ませました。 では何から始めましょうか。 例えば、Zynq の評価ボードを渡され、「じゃ、立ち上げよろしく!」と言われたとしましょう。 (私が言われたみたいに。。) 膨大な資料を前に途方にくれてしまうかもしれません。 似たような状況にある人の手助けになるかどうかわかりませんが、私のたどったステップを記録しておこうと思う。 進めるには、何らかの Zynq ボードが必要となります。 私は ZC706 というボードを使っていますが、他のボードでも似たような感じだと思います。 ### まずはツールに慣れる Zynq を手にとっているということは FPGA ぐらいは経験があるという人が多いと思います。 ISE は使ったことはあるが、Vivado は初めてという人もいるかもしれませんが、 今後のことを考えれば Vivado を使いこなせた方がよいと思います。 とりあえず、ISE および Vivado で簡単な RTL のプロジェクトを作成し、FPGA を Configuration するところまでやってみます。 すでに知っている人は飛ばしてください。 まずは、 ARM は動かさずに、Zynq を純粋な FPGA として使います。 (Zynq の通常の使い方としては、ARM が最初に起動し、ARM から FPGA を Configuration するのですが、それはもうちょっと先に回します。) #### まずは planAhead でやってみる ISE のインストールディレクトリに `settings64.sh` (または `settings64.csh`) というのがあるので、それを `source` したあと、 $ planAhead で起動。 「Create New Project」→「RTL Project」を選択。 「Add File...」 か 「Create File...」 で RTL (Verilog or VHDL) を追加。 とりあえず練習ですので、プッシュボタンを押すと LED が点灯するぐらいの RTL でよいです。 ウィザードの最後で Parts で Zynqチップ名 (xc7z0xx) か評価ボード名を選ぶ。 制約ファイルは自分でいちいち書くのは面倒ですが、大抵はすでに用意してくれている。 自分の場合は、 ZC706 ボードなので、Xilinx のサイトから `zc706-ucf-xdc-rdf0207-rev1-0.zip` というのをダウンロード。 RTL と制約ファイル(UCF)を追加できたら、Synthesis, Implement, Generate Bitstream と進む。 PC とボードの JTAG ポートをつなぐ。 ZC706 の場合は、ボード上に JTAG <-> USB 変換チップが載っているので、USBケーブルでつなぐだけです。 iMPACT を起動すると、「zynq7000_arm_xxx」(=ARM) というのと「xc7z0xx」(=FPGA) というが見えるはず。 2つ見えるのは、Zynq のパッケージ内で ARM コアと FPGA が JTAGデイジーチェーンで繋がっているためです。 FPGA の方を選んで、bit ファイルをダウンロードすると、うまくいくはず。 LED が光ることを確認して下さい。 #### Vivado でもやってみる Vivado のインストールディレクトリに `settings64.sh` (または `settings64.csh`) というのがあるので、それを `source` したあと、 $ vivado で起動。 planAhead と操作手順はほぼ同じですが、制約ファイルが従来のUCF ではなくて、 XDC というファイルです。 Tcl の文法で書かれている。 Synthesis, Implement, Generate Bitstream と進み、最後は、 iMPACT ではなくて、 「Open Hardware Session」というのを選ぶ。 「Open Hardware Session」→「Open a new hardware target」を選び、 `Server name
` で PC の IPアドレスを入力する(普通はデフォルトでそうなっているはず)。 ポート番号はそのままでよい。 あとは、「Program device」を選べば、 FPGA を Configuration できる。 ちなみに、「Launch iMPACT」というのも選べますが、Vivado 自体は iMPACT を含んでいませんので、 iMPACT を使いたいならば、ISE もインストールし、 `impact` が PATH に含まれていないといけません。 「Open Hardware Session」 というのは、ISE の時の iMPACT と ChipScope の置き換えで、たぶんこっちの方が便利だと思います。 サーバー&クライアントで使用できます。 このやり方は[後日](/2014/01/vivado-fpga.html)紹介します。 ### もうちょっと RTL を足してみる 上記ができたら、クロックを入れて、LED 点滅とかもやってみます。 クロックラインを BUFG に通す、タイミング制約の追加とかが必要です。 特に Vivado が初めての場合は、 XDC でのタイミング制約の書き方を確認しておきます。 「Project Manager」 → 「Templates」とたどれば、書き方がわかるので、コピペでいけますが。
2 件のコメント:
Unknown
2014年3月11日 11:37
planAheadを使ってのデバッグなのですが受託頂く事は可能でしょうか?
返信
削除
返信
返信
Masahiro Yamada
2014年3月14日 1:01
会社を通しての受託ということでしたら、聞いてみます。
プライベートではお受けできません。就労規則で副業禁止となっています。
返信
削除
返信
返信
コメントを追加
もっと読み込む...
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
planAheadを使ってのデバッグなのですが受託頂く事は可能でしょうか?
返信削除会社を通しての受託ということでしたら、聞いてみます。
返信削除プライベートではお受けできません。就労規則で副業禁止となっています。