FPGAプログラミング大全 Xilinx編でZyboを使うとはまるところ
- 作者: 小林優
- 出版社/メーカー: 秀和システム
- 発売日: 2016/12/15
- メディア: 単行本
- この商品を含むブログ (1件) を見る
5章、6章はソフトマクロCPU MicroBlaze の解説になっています。その解説は、ArtyとBasys3向けの説明になっており、Zyboを使う場合は、適宜読み替える必要があります。Zybo用の設定はAppendixに記載されているのでそれに従えばよいです。ですが、書籍には明示的に記載されていない読み替え(実際は、読み飛ばし!)が必要でした。
書籍の手順通りに進めると下記のようなメッセージがでました。
メッセージの一部をテキスト化しました。
[Place 30-58] IO placement is infeasible. Number of unplaced terminals (1) is greater than number of available sites (0). The following are banks with available pins: IO Group: 0 with : SioStd: LVCMOS18 VCCO = 1.8 Termination: 0 TermDir: In RangeId: 1 has only 0 sites available on device, but needs 1 sites. Term: RXD
[Place 30-374] IO placer failed to find a solution Below is the partial placement that can be analyzed to see if any constraint modifications will make the IO placement problem easier to solve. +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | IO Placement : Bank Stats | +----+-------+-------+------------------------------------------------------------------------+------------------------------------------+--------+--------+--------+-----+ | Id | Pins | Terms | Standards | IDelayCtrls | VREF | VCCO | VR | DCI | +----+-------+-------+------------------------------------------------------------------------+------------------------------------------+--------+--------+--------+-----+ | 0 | 0 | 0 | | | | | | | | 13 | 0 | 0 | | | | | | | | 34 | 50 | 1 | LVCMOS33(1) | | | +3.30 | YES | | | 35 | 50 | 5 | LVCMOS33(5) | | | +3.30 | YES | | +----+-------+-------+------------------------------------------------------------------------+------------------------------------------+--------+--------+--------+-----+ | | 100 | 6 | | | | | | | +----+-------+-------+------------------------------------------------------------------------+------------------------------------------+--------+--------+--------+-----+ IO Placement: +--------+----------------------+-----------------+----------------------+----------------------+----------------------+ | BankId | Terminal | Standard | Site | Pin | Attributes | +--------+----------------------+-----------------+----------------------+----------------------+----------------------+ | 34 | RST | LVCMOS33 | IOB_X0Y36 | Y16 | | +--------+----------------------+-----------------+----------------------+----------------------+----------------------+ | 35 | CLK | LVCMOS33 | IOB_X0Y78 | L16 | | | | LED[0] | LVCMOS33 | IOB_X0Y54 | M14 | | | | LED[1] | LVCMOS33 | IOB_X0Y53 | M15 | | | | LED[2] | LVCMOS33 | IOB_X0Y99 | G14 | | | | LED[3] | LVCMOS33 | IOB_X0Y93 | D18 | | +--------+----------------------+-----------------+----------------------+----------------------+----------------------+
端子の数が合わないってどういうことなんでしょうか?
結論から言えば、Zyboでは、UARTブロックの追加をする必要がないということでした。 5章P.195に「UARTを接続」がありますが、この部分をまるっと無視する必要があります。
理由は、Appendixに「Zyboボード上のUSBシリアルインターフェースは、PSのMIOに接続されているので、PL側の回路では使用できません。(中略)JTAG経由でシリアル出力しますので、RDXやTXDなどの端子は不要です。」と説明されています。
なのでブロック図は下記のようになります。
UARTを接続をせずに手順通りに進めるとHelloWorldがだせました。
記念にHello FPGA Worldとしてみました。
つまらないところで、嵌ってしまいました。