FC2カウンター FPGAの部屋 Vivado
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Vivado 2018.2 が出た

昨日、Vivado 2018.2 が出ていた。

Vivado HLS のAnalysis にSchedule Viewer が追加されたということでやってみることにした。

MNISTのCNNの特徴マップが 3 個の場合で確かめてみた。
Vivado 2018.2 で mnist_conv_nn3_hlss_k_org82 フォルダのVivado HLS プロジェクトをC コードの合成を行った。結果を示す。
下に 2018.1 の結果も示す。
vivado_2018_1_1_180620.pngtensorflow_keras_111_180618.png

同じ結果だった。

Analysis モードにすると、Schedule Viewer が起動した。新しいモードだ。
vivado_2018_1_2_180620.png

conv_layer1 > conv_layer_template を選択した。
赤い部分があるが、これはタイミング違反のブロックということだ。
どこからデータが来て、どこに行くのかが矢印で示されているのだと思う。
vivado_2018_1_3_180620.png

affine_layer1 > affine_layer_templat_1 を示す。
vivado_2018_1_4_180620.png

見やすくなった気がするが、どこの演算をしているのかがいまいち分からない?

Export RTLの結果を示す。2018.1 の結果も示す。
vivado_2018_1_5_180620.pngtensorflow_keras_112_180618.png

特に FF と SLICE の使用量が 2018.2 の方が少なくなっている。
CP achieved post-implementation が 9.525 ns から 8.846 ns に改善されているが、これはVivado の改善のようだ。


次に、Vivado 2018.2 を”Kerasを使用したMNIST CNNで手書き文字認識1(以前のVivado プロジェクトをVivado 2017.4に変換)”のVivado 2017.4 と比較してみよう。

Vivado 2018.2 の PYNQ ボードのMNIST のCNN プロジェクトを示す。
vivado_2018_1_6_180620.png

Vivado 2018.2 の結果を示す。 2017.4 の結果も示す。
vivado_2018_1_7_180620.pngvivado_2018_1_8_180620.png

LUT は少し 2018.2 の方が少なく、LUT RAM と FF がやはり、2018.2 の方が少なくなった。
今度から 2018.2 を使ってみようか?
  1. 2018年06月20日 04:50 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

Vivado スタートアップ・チュートリアル2日目

今日はVivado スタートアップ・チュートリアルの2日目です。

今日のお題目は、

Vivadoプロジェクトの新規作成
論理合成用Verilog-HDLコードの作成
ブロックデザインの作成
テストベンチ用Verilog-HDLコードの作成
RTLシミュレーション
論理合成
制約ファイルの作成(配置制約とタイミング制約)
インプリメンテーション、ビット・ファイルの生成
Implemented Design(FPGA内部素子への割り当ての確認)
Project Summary
実機テスト(Lチカ)


です。

なお、Vivado スタートアップ・チュートリアル1日目のお題は、
Vivadoプロジェクトの新規作成

論理合成用Verilog-HDLコードの作成
テストベンチ用Verilog-HDLコードの作成
RTLシミュレーション
論理合成
制約ファイルの作成
インプリメンテーション、ビット・ファイルの生成
Implemented Design(FPGA内部素子への割り当ての確認)
Project Summary
実機テスト(AND回路)


でした。

今回は、ブロックデザインを作成して、RTL IP を作成する手順と、制約ファイルを作るところでタイミング制約を GUI で作成する方法が追加されています。
今回のVivado スタートアップ・チュートリアルはVivado HLS を使う前に初めてVivado を使う人のためのチュートリアルとしてFPGAの内部構造を覚えることを目的としています。言わば、Vivado HLS を使うための第一歩としてのチュートリアルとなります。この後、Vivado をもっと勉強しても良いですし、Vivado HLS を使って C 言語でIP を作成するようになっても良いと思います。

Vivado HLS のチュートリアルも去年受講した元B4 生に聞いたところ、AXI4 MasterとAXI4-Streamで急に例題が難しくなって分からなくなったという声があったので、初心者用のAXI4 MasterとAXI4-Stream のチュートリアルを追加しようと思います。
  1. 2018年05月02日 06:09 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

Ubuntu 16.04.3 LTS 上のVivado 2017.3 のLaunch Runs ダイアログが透明になってしまう

Ubuntu 16.04.3 LTS 上のVivado 2017.3 のLaunch Runs ダイアログが透明になってしまうバグがあって、論理合成ができなくなってしまった。

状況はUltraZed-EG Starter Kit のVivado プロジェクトを新規作成して、IP Integrator でブロック・デザインを作成した。
Vivado2017_3_bug_1_171129.png

出来上がったので、Flow Navigator からGenarate Bitstream をクリックして、論理合成、インプリメント、ビットストリームの生成を行おうとした。

No Implementation Results Available ダイアログが表示された。Yes ボタンをクリックした。
Vivado2017_3_bug_2_171129.png

次に、Launch Runs ダイアログが表示された。このダイアログが透明で何も選べなかった。
Vivado2017_3_bug_3_171129.png

解決方法がわかる方は情報をお待ちしています。コメント欄でお知らせください。よろしくお願いいたします。
もしかして、パッケージが何か足りないのかな?

(追記)
その後、Ubuntu を使っていたら、全く反応しなくなって、どうしようもなくなり電源OFF。
再度、電源ONして、Ubuntu を起動し、Vivado を起動して、もう一度、やってみたら、Launch Runs の表示が正常にできました。
Vivado2017_3_bug_4_171129.png

何かUbuntu がおかしくなっていたようです。皆さん、ありがとうございました。自己解決できました。
ダイアログの中が透明になったら、リブートしたほうが良さそうです。。。
  1. 2017年11月29日 05:00 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

Windows 10 Fall Creators Update をかけるとVivado 2017.3 が起動しない

今朝、Windows のUpdate があって、Vivado 2017.3 が動かなくなった。
今回のアップデートは、Windows 10 Fall Creators Update がかかってしまい、Vivado 2017.3 が起動しなかった。
これはなひたふさんのツィートで知ったのだが、Windows 10 Fall Creators Update をかけてしまうと、Vivado 2017.3 が起動しないということだ。
解決策はツィートにあるように、”AR# 69908 2017.3 - Windows 10 Fall Creators Update で Vivado が起動しない”を参照のこと。
AR#69908 を引用しておく。

1.(Vivado インストール ディレクトリ)\2017.3\bin\unwrapped\win64.o に移動する。
2.vivado.exe を vivado.exe.backup に名前を変更してバックアップをとる。
3.vivado-vg.exe をコピーして同じフォルダーに貼り付ける。
4.vivado-vg - Copy.exe を vivado.exe に名前を変更する。

  1. 2017年11月16日 14:40 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

白線追従走行用畳み込みニューラルネットワーク・システムをVivado 2017.3にアップデート

白線追従走行用畳み込みニューラルネットワーク・システムの製作7(白線間を走行)”で白線間を走行した白線間走行用畳み込みニューラルネットワークをVivado 2017.2 からVivado 2017.3 にアップデートしてみた。

ZYBO_0_172_8 フォルダのZYBO_0_153 プロジェクトをZYBO_0_173_8 フォルダにコピーして、Vivado 2017.3 でプロジェクトを読み込んだ。
IP Status 画面からIP をアップグレードして、論理合成、インプリメントしたところでエラー発生。
Vivado_2017_3_1_171022.png

エラー内容を貼っておく

[Place 30-640] Place Check : This design requires more Slice LUTs cells than are available in the target device. This design requires 19586 of such cell types but only 17600 compatible sites are available in the target device. Please analyze your synthesis results and constraints to ensure the design is mapped to Xilinx primitives as expected. If so, please consider targeting a larger device. Please set tcl parameter "drc.disableLUTOverUtilError" to 1 to change this error to warning.



結局、LUTのリソース使用量が 100 % を超えているということだった。

Vivado 2017.2 を立ち上げてみてみるとLUT は87 % だった。
Vivado_2017_3_2_171022.png

正確には 87.36 % だった。
Vivado_2017_3_3_171022.png

どのIP がそんなに増えてしまったのか?調査するためにOpen Synthesized Design をクリックして、Tools -> Report -> Report Utilization... をクリックして各IP のリソース使用量を調査した。
その画面を示す。
Vivado_2017_3_4_171022.png

ps7_0_axi_periph が 6043 LUTs は多い。
Vivado 2017.2 のプロジェクトと比べてみよう。
Vivado_2017_3_5_171022.png

Vivado 2017.2 はps7_0_axi_periph の使用LUT 数は1379 だった。
Vivado 2017.3 のps7_0_axi_periph のリソース使用量はVivado 2017.2 の ps7_0_axi_periph のリソース使用量に比べて約4.4 倍だった。

これはおかしいので、ps7_0_axi_periph をいったん削除して、もう一度、入れなおした。
その後、論理合成、インプリメント、ビットストリームの生成を行った。
成功した。レポートを示す。
Vivado_2017_3_6_171023.png

ハードウェアをエクスポートして、SDK を立ち上げて、cam_disp3_axis アプリケーション・プロジェクトを作成した。
Vivado_2017_3_7_171023.png

Program FPGA してから、cam_disp3_axis.elf を走らせたところカメラ画像が表示された。動作した。成功だ。

しかし、Vivado 2017.2 から Vivado 2017.3 へのアップデートでも危ないということが分かった。
2016 でもそうだったし、.2 から .3 へのアップデートが危ないということだろうか?
  1. 2017年10月23日 04:58 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

Vivado 2017.3 をインストールした

遅ればせながら、Vivado 2017.3 をインストールした。
白線間走行畳み込みニューラルネットワーク・システムをZYBO Z7-20で動作させる3(ガボール・フィルタの追加)”のZYBO_Z7_0 プロジェクトをインプリメントしてみたが、問題なかった。
VirtualBox 上の Ubuntu 16.04 にもインストールしたが問題なくインストールできた。下はWindows のVivado 2017.3 のZYBO_Z7_0 プロジェクトと右側にVirtualBox 上の Ubuntu 16.04 にインストールしたVivado 2017.3 が見えているところだ。
Vivado_2017_3_1_171016.png

今のところ別に問題はないが、Vivado HLS の性能はCNN のコンパイルに関する限りでは、まだ Vivado HLS 2016.4 の方が良いと思う。
  1. 2017年10月16日 05:16 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

Bash on Windows 10にVivado WebPACK 2017.2をインストールした2(日本語表示)

Bash on Windows 10にVivado WebPACK 2017.2をインストールした”の続き。

前回は、Xmingを起動してから、Bash on Windows 10 からVivado を起動したところ GUI 上でLinux バージョンのVivado を起動することができた。今回は、日本語を表示できるようにしてみた。

Xming の日本語表示についてはXfont をインストールしたり、いろいろとやってみたが、うまく行かなかった。ツィッターで聞いたところ、tethys さんが教えてくれた。ありがとうございました。

その方法は、「 [WSL]BashOnWindows(WSL)のGUIの日本語表示」の Windows10 に入ってる Windows フォントを使う方法だ。
下の2つのコマンドをBash on Windows 10 上で実行する。
sudo ln -s /mnt/c/Windows/Fonts /usr/share/fonts/WindowsFonts
sudo fc-cache -fv

Win10_Ubuntu_Vivado_14_170718.png

その後、vivado を立ち上げたところ、日本語が表示できるようになった。
Win10_Ubuntu_Vivado_15_170718.png

次に、X サーバーだが、Xming だとVivado を立ち上げてもWindow 10 のタスクバーに表示されるアイコンはXming のX のアイコンなのだが、VcXsrv というX サーバーを使用すると、Vivado のアイコンがタスクバーに表示されるようになった。(「WindowsでリモートのLinuxのGUIアプリを表示させる-Xサーバ VcXsrv」参照)
これも善し悪しで、Windows のアイコンと見分けがつかなくなるという欠点はあるのだが、VcXsrv を使うことにした。

次に日本語入力だが、結論から言うと、GUI 上での日本語入力は諦めて、Windows の方からSublime text 上で日本語入力することにした。
Bash on Windows 10 のroot は「【シェル芸人への道】Bash on Windowsを探検する」によると、

C:\Users\Masaaki\AppData\Local\lxss

にありました。
Win10_Ubuntu_Vivado_16_170719.png

Vivado のトップHDL のあるC:\Users\Masaaki\AppData\Local\lxss\home\marsee\HDL\project_1\project_1.srcs\sources_1\bd\base_zynq\hdl フォルダに行った。
Win10_Ubuntu_Vivado_17_170719.png

base_zynq_wrapper.vhd をWindow 10 上のSublime text で編集し、日本語を書きこんだ。
Win10_Ubuntu_Vivado_18_170719.png

Vivado 2017.2 上でbase_zynq_wrapper.vhd を開いてみると、Sublime text で編集した日本語が表示されている。
Win10_Ubuntu_Vivado_19_170719.png

日本語はWindow 10 上のSublime text で入力してもよいと思った。ただし、入力してもVivado には追加入力されたということを認識できないので、自分で論理合成結果をクリアする必要があるようだ。
  1. 2017年07月19日 05:06 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0
»