”
Vivado 2016.2 のプロジェクトをVivado 2016.3 にアップグレードすると動作しなかった”の続き。
前回は、ZYBO_0_5 プロジェクトをVivado 2016.2 からVivado 2016.3 にアップグレードすると、回路が動作しなかった。今回は原因を追究してみた。
まずは、論理合成後の使用率を比べてみた。
Vivado 2016.3 の論理合成後の使用率を示す。

LUT、LUTRAM と FF の使用率が高い。
次に、Vivado 2016.2 の論理合成後の使用率を示す。

hiyuh さんのアドバイスで各IP ごとの使用率を見た。
Open Synthesized Design をクリックして、Report Utilization をクリックした。
上の図がVivado 2016.3 、下の図がVivado 2016.2 のReport Utilization を示している。


AXI Interconnect の prcessing_system7_0_axi_periph の使用率が全く違う。Vivado 2016.3 では、Silce LUTsは8057、Slice Resisters は11112 だが、Vivado 2016.2 では、Silce LUTsは910、Slice Resisters は743 だ。違いすぎる。
そこで、prcessing_system7_0_axi_periph をダブルクリックしてMinimize Area にしてみたが、Silce LUTs が 6000 程度にしかならなかった。

次に、 prcessing_system7_0_axi_periph をいったん削除して、Run Connection Automation をクリックして、もう一度、インスタンスすることにした。下の図は、削除したところだ。

Run Connection Automation ダイアログで、All Automation にチェックを入れて、すべてのAXI4 Lite インターフェースを接続した。

ブロックデザインの完成図。prcessing_system7_0_axi_periph は名前が ps7_0_axi_periph になった。

論理合成後の使用率は正常に戻ったようだ。それでも多少、Vivado 2016.2 よりも使用率が大きい。

AXI Interconnect の ps7_0_axi_periph の使用率も正常に戻った。

インプリメント、ビットストリームの生成を行った。正常に終了した。使用率も正常だ。

ハードウェアをエクスポートして、SDK を立ちあがた。
ハードウエア・プラットフォームが新しく生成されたので、古いハードウエア・プラットフォームとアプリケーション・プロジェクトを削除して、cam_disp_axis プロジェクトを新規作成した。

ZYBO にビットストリームをダウンロードして、アプリを起動すると、待望のカメラ画像がディスプレイに表示された。
やっと、うまく行った。
今回のAXI Interconnect は、Master ポートが14 で、Slave ポートが 1 の大きいものだったので、アップグレードしたときにおかしくなったのかもしれない?
ポート数が少ないものはうまく行っていた。いずれにせよ。アップグレード・ツールのバグなんじゃないか?と思う。
- 2016年10月20日 04:56 |
- Vivado
-
| トラックバック:0
-
| コメント:0