Vivado

 Vivado 2012.2
Vivado 2012.2 を立ちあげてサンプルプロジェクトをやってみた。

Vivado 2013.1 でIDE を試す(とっても残念)
Vivado™ Integrated Development Environment (IDE) というツールが新しく出来たようなので試して見ることにしたが、まだ使えなかった。次回に期待する。

Vivado 2013.2 が出た
Vivado 2013.2 が出た。今回のリリースからIP Integrator が使えるということでインストールして見てみた。IP Integrator はISEのXPSのようなものらしい。

PlanAheadプロジェ クトでUCF を XDC 制約/コマンドに変換する方法
PlanAheadプロジェクトでUCF を XDC 制約/コマンドに変換する方法を試してみた。

Vivado IP Integrator のチュートリアル(Lab1)1(Vivado プロジェクトの生成)
Vivado Design Suite Tutorial: Embedded Processor HardwareDesignUG940 (v 2013.2) June 19, 2013”のチュートリアルをやってみることにした。 Vivadoが立ち上がるまで。
Vivado IP Integrator のチュートリアル(Lab1)2(IP Integrator デザインの生成1)
ZynqのProcessing System IPをインスタンスして、FIXED_IO and DDR の外部インターフェースを生成するまで。
Vivado IP Integrator のチュートリアル(Lab1)3(IP Integrator デザインの生成2)
IP Integrator でIPを接続して、完成させた。
Vivado IP Integrator のチュートリアル(Lab1)4(Using MARK_DEBUG)
デザイン・ルール・チェックを行った。
Vivado IP Integrator のチュートリアル(Lab1)5(Generate HDL Design Files)
Generate Output Products とラッパー・ファイル生成
Vivado IP Integrator のチュートリアル(Lab1)6(Setup Debug)
Run Synthesis、デバック信号をセットした(ChipScopeのようなもの)
Vivado IP Integrator のチュートリアル(Lab1)7(インプリメント)
インプリメントを行った。Implemented Design を観察した。
Vivado IP Integrator のチュートリアル(Lab1)8(Export Hardware to SDK)
ハードウェアをエクスポートして、SDKを立ちあげた。
Vivado IP Integrator のチュートリアル(Lab2)1(SDK)
SDKで Application Project を生成し、デバックを行った。SDKのターミナルは使えなかったので、Tera Termを使用した。
Vivado IP Integrator のチュートリアル(Lab2)2(Vivado Logic Analyzer)
Vivado Logic Analyzer を起動して、SDKでデバックモードで動かし、Vivado Logic Analyzer のトリガが掛かる行まで実行した。すると、Vivado Logic Analyzer で波形をキャプチャすることが出来た。

Vivado チュートリアル Designing with IP Lab1 1(FIFOコアの生成)
今度は、Vivado Design Suite Tutorial Designing with IP UG939 (v 2013.2) June 26, 2013 をやっていこうと思う。プロジェクトの生成。char_fifo の追加。IPのカスタマイズ方法を説明。IPコアを生成。
Vivado チュートリアル Designing with IP Lab2 1(IP Project の生成)
Vivadoのスタート画面からManage IPをクリックして、IPのプロジェクトの生成を行った。char_fifoをカスタマイズして生成した。
Vivado チュートリアル Designing with IP Lab2 2(IP Project)
char_fifo で、Generate Output Products 時に、Generate Synthesized Design Checkpoint (.dcp)をチェックして、.dcpファイルなどを生成した。 axi_ethernetlite をカスタマイズしてプロジェクトに追加した。

Vivado チュートリアル Designing with IP Lab3 (IP Packager)1
Vivado Design Suite Tutorial Designing with IP UG939 (v 2013.2) June 26, 2013” の 32ページの Lab3 をやってみる。なお、Xilinxのサイトからダウンロードすることができるデザインファイル(ug939-design-files.zip) は、ライセンスの懸念から使用しない。以前、AXI VDMAの検証用に使用した custom_vtc を使用する。
プロジェクトを生成してPackage IP... を実行して、プロジェクトをIPにパッケージした。
Vivado チュートリアル Designing with IP Lab3 (IP Packager)2
マニュアルを追加。custom_vtc が、Base IP とVideo & Image Processing カテゴリに登録された。
Vivado チュートリアル Designing with IP Lab3 (IP Packager)3
今回は、前回のカスタムIPを新しいプロジェクトで使用するためのチュートリアルとなる。新し いプロジェクトを作り、前回作成したIPをIP Integrator にインスタンスした。

AXI4 Master, AXI4 Lite Slaveバスを持つプロジェクトをVivado IP Packager でIPにする1
AXI4 Master, AXI4 Slave Liteバスを持つISEプロジェクトをVivado のプロジェクトとしてインポートして、そのプロジェクトをIPとして登録してみる。その場合にAXI4バスをグループ化する。 bitmap_disp_cntrler_axi_master by marsee をIPとして登録してみた。
AXI4 Master, AXI4 Lite Slaveバスを持つプロジェクトをVivado IP Packager でIPにする2
前回で一応、AXI4 Master, AXI4 Lite Slaveバスを持つプロジェクトをVivado IP Packager でIPにすることは出来たが、XPSと同じというわけではない。それは、MPDファイルのみのパラメータや、パラメータのレンジ、パラメータ同士の依存関 係が書けていないことだ。つまりMPDファイルに書いてあるパラメータの属性を設定できていない。それを設定することにしよう。
AXI4 Master, AXI4 Lite Slaveバスを持つプロジェクトをVivado IP Packager でIPにする3
前回は失敗はあったが、パラメータを設定する方法についてブログに書いた。今回は、IPをイン スタンスして、パラメータを設定する画面の構成について書こうと思う。

VivadoでAXI VDMAのシミュレーション1(IP Integrator)
AXI VDMAのシミュレーションをVivado で IP Integrator を使用してIPを接続して、Vivado Simulator でシミュレーションしてみようと思った。
IPをVivado IP Packager でカスタムIPにして、接続して論理合成を試みたがエラーだった。
VivadoでAXI VDMAのシミュレーション2(ISEプロジェクトをインポート)
今回は、VDMA_test2 プロジェクトをISEプロジェクトとして、Vivado にインポートして、シミュレーションすることができのかを調べてみることにした。
FIFO GENERATORが見つからないというエラーが発生した。

custom_vtc IP をテストする1
今回は、原点に戻って、チュートリアルに使用した custom_vtc IP をIP Integrator でインスタンスして、論理合成、インプリメント、シミュレーションできるかどうか?を調べてみることにした。
問題なく成功した。
mt9d111_inf_axis IP をテストする
今回は、NGCファイル、つまり、CoreGen で生成したFIFO IPが含まれているIPをIP Integrator でインスタンスして、問題なくシミュレーション、論理合成、インプリメントできるかどうかを確認する。
シミュレーションと論理合成をしてみたがエラーになってしまった。

Vivado 2013.2 の IP Packager でAXI4-Stream にクロックを関連付ける
今まで、Vivado 2013.2 の IP Packager では、AXI4-Stream Interface を作った時にクロックが無いと言われてIP Interface にワーニングが発生していた。それを回避する方法を ikwzm さんに教えて頂いたので、書いておこうと思う。

Vivadoで配置されたロ ジックと配線を見る1
Vivado では、FPGA Editor が無くなってしまった。今まで、配置されたロジックや配線遅延を見てきたのだが、無くなってしまうととっても困る。今日は、Vivado で、FPGA Editor と同様に配置配線の結果を見る方法を探ってみることにした。Vivado 2013.2 使用。
FPGA Editor の様な画面が出た。
Vivadoで配置されたロ ジックと配線を見る2
前回は、画面がFPGA Editor ぽくなったので、今回は、更に使い込んでみた。配線遅延もみることができた。

Vivado Design Suite のチュートリアルをやってみた1(Tclスクリプト)
Vivado はチュートリアルをやってみてやり方を学びたいと思った。そこで、”Vivado Design Suite チュートリアル デザイン フローの概要 UG888 (v2013.2) 2013 年 6 月 19 日”をやってみることにした。使用するVivado のバージョンは、2013.2
TCLスクリプトでのチュートリアル。
Vivado Design Suite のチュートリアルをやってみた2(Tclスクリプト2)
TCLスクリプトでのチュートリアルの続き。デザインの合成。
Vivado Design Suite のチュートリアルをやってみた3(Tclスクリプト3)
Vivado IDE の起動、タイミング制約と I/O 配置の定義、I/O プランニング
Vivado Design Suite のチュートリアルをやってみた4(Tclスクリプト4)
コマンドを実行しながら、ビットストリームの生成まで。
Vivado Design Suite のチュートリアルをやってみた5(Tclスクリプト5)
手順 8 : デザイン チェックポイントを開く、手順 9 : インプリメンテーション結果の解析、手順 10 : Vivado ツールの終了
Vivado Design Suite のチュートリアルをやってみた6(ジャーナルファイル)
”Vivado Design Suite チュートリアル デザイン フローの概要 UG888 (v2013.2) 2013 年 6 月 19 日”(以下、Vivadoチュートリアル)の43ページ、”手順 13 : ジャーナル ファイルからの Tcl スクリプトの作成”にも書かれているが、Vivado を使用すると、その使用したTclスクリプトをVivadoジャーナルファイル(vivado.jou) に書くそうだ。
その様子を、21ページの”演習2 : プロジェクトデザインフローの使用”をやりながら、観察してみようと思う。
Vivado Design Suite のチュートリアルをやってみた7(ジャーナルファイルからTclコマンド実行)
Vivadoチュートリアルの21ページの”演習2 : プロジェクトデザインフローの使用”をやった後で、C:\Users\<ユーザー名>\AppData\Roaming\Xilinx\Vivadoの ジャーナルファイル( vivado.jou)を見ると、GUIで行った操作のTclコマンドが書かれていた。
今日は、このTclコマンドを一部変更して、CUIで実行できるTclスクリプトファイルを作製して、動作させた。
手順 13 : ジャーナル ファイルからの Tcl スクリプトの作成、手順 14 : デザイン ステータスの確認

mt9d111_inf_axis を Vivado 2013.4 IP Integrator に移行する1(ISEプロジェクトからインポート)
Xilinx社のビデオ信号用DMA IPのAXI VDMAをシミュレーションをしたことがあった。そのためにカスタムIPを作っていたが、その内のAXI4 Stream用のカメラ・インターフェースIPの mt9d111_inf_axis を手始めに Vivado IP Integrator でカスタムIPにしてみることにした。
mt9d111_inf_axis を Vivado 2013.4 IP Integrator に移行する2(IPの使用)
前回は、mt9d111_inf_axisのIPを作製した。今回は、 mt9d111_inf_axis IP を使ってみた。
論理合成でエラー発生。どうやら、ディレクトリが作れないと言っている。パス名が260文字を超えているからのようだ。
mt9d111_inf_axis を Vivado 2013.4 IP Integrator に移行する3(新規プロジェクトでIP化)
前々回、前回とISEプロジェクトからインポートしてVivado 2013.4のプロジェクトを作製して、IP化した。そして、そのIPを使用するプロジェクトを作製してインプリメントを試みたが、パスが長すぎて?エラーが発生した。
今回は、Vivado 2013.4のプロジェクトを新規で作製してIP化して、IPを使用するプロジェクトを作製してインプリメントを試みたところ、成功した。

Vivado 2013.4 Simulator でのROMまたはRAMの初期化ファイルの使用方法
現在、AXI VDMAのレジスタ設定用AXI Lite Master IPのシミュレーションをしているが、ROMの初期化ファイルの取り扱いに困っていた。それを書いておこうと思う。

Vivado 2013.4 の IP Integrator で net_vcc, net_gnd を入力する
XPSプロジェクトでは、IPのポートに net_gnd, net_vcc を接続して、'0'や'1'を入力することができた。Vivado のIP Integrator ではどうやるのか謎だったのだが、ようやくわかったので忘れないために書いておく。これで2日位悩んでしまった。

Vivado 2013.4 IP Integrator での[BD 41-237] Bus Interface property FREQ_HZ Error
Vivado 2013.4のIP Integrator で、AXI VDMAのシミュレーションをしようとしている。AXI VDMAのシミュレーションは、当初 ISim で行ったが、最後までシミュレーションすることができずに断念した。次に、Questaでシミュレーションを行ったら、最後までシミュレーションすることができた。今度 は、AXI VDMAのシミュレーションをVivado 2013.4のシミュレータでやってみようと思っている。そのため、IP Integrator でIPを接続しているが、ToolsメニューからValidate Design でエラーが出てしまった。

Vivado 2013.4 で AXI VDMA をシミュレーションする
Vivado 2013.4のIP Integrator で、AXI VDMAのシミュレーションをしようとしている。AXI VDMAのシミュレーションは、当初 ISim で行ったが、最後までシミュレーションすることができずに断念した。次に、Questaでシミュレーションを行ったら、最後までシミュレーションすることができた。今度 は、AXI VDMAのシミュレーションをVivado 2013.4のシミュレータでやってみた。

Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製1
Vivado 2013.4のIP Integrator でAXI VDMAを使ったカメラ表示回路を作製してみようと思う。
IP Integrator で Zynq のPSをインスタンスしたところまで。
Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製2
IP Integrator で回路を構築中
Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製3
IP Integrator での回路構築終了
Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製4
制約ファイルを作製、論理合成
Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製5(タイミング制約)
タイミング制約を作製
Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製6(配置制約)
配置制約を作製
Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製7(インプリメント)
論理合成、インプリメント、ビットストリームの生成を行った。
Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製8(Propertiesの検証)
HDLに記述した制約(Properties)がどうなっているか検証した。
Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製9(False Pathの設定)
タイミングエラーが出たので、False Path を設定して、タイミング制約をかけないパスを指定する。なお、クロック間にFalse Path を指定するが、クロック間の乗り換えは2段FFでインターフェースしてあるので問題ないはずだ。
Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製10(IPの更新)
IP Integrator でIPを接続して回路を作っているが、自作カスタムIP自体の回路を変更したいときに、自作カスタムIPのブロジェクトでIPを再生成しても、すでに作製済みのIP Integrator のBlock Design では変更されていなかった。自作カスタムIP自体の回路を変更した時に、すでに作製済みのIP Integrator のBlock Design に反映させる方法を探ってみた。
Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製11(ハードウェアのエクスポート)
ハードウェアをSDKにエクスポートしたらエラーになった。
エラーを回避するには、CamD_VDMA_i のダイアグラム(IP配線図)を開いておいて、Export Hardware for SDK... を選択すれば良いようだ。
Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製12(実機でテスト)
実機でテストしたが動作しなかった。残念。。。
Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製13(ハードウェアのデバック1)
ディスプレイが真っ暗だったので、Vivado Logic Analyzer でデバックしてみることにした。
インプリメントが終了した時点で、ILAコアのタイミングエラーが出た。
Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製14(ハードウェアのデバック2)
クロック間のタイミング制約を設定して、インプリメントを行い、ハードウェアをエクスポートし てSDKを立ち上げた。
Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製15(ハードウェアのデバック3)
Hardware Manager を立ちあげて、実際の波形を観測した。
Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製16(ハードウェアのデバック4)
AXI IICの出力がなくなっていたので、これを修正することにした。最初にiic_3state_buf IP のコードをIOBUFプリミティブを使用するように変更した。
Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製17(ハードウェアのデバック5)
間がずいぶん離れてしまったが、Vivado 2013.4に戻って、AXI VDMAを使ったカメラ画像表示システムのデバックを継続しようと思う。Vivado Logic Analyzerで波形の観察をしている。

Vivado 2013.4でAXI IIC v2.0 を使用した時のIOBUF
今回は、一時今やっているシリーズを離れて、”Vivado 2013.4でAXI VDMAを使ったカメラ表示回路の作製3”で使用した iic_3state_buf について書いておこうと思う。更に、ikwzm さんに教えてもらった方法についてもやってみることにする。
Vivado Logic AnalyzerでTCP番号60001番を使用するソフトウェア
Vivado Logic Analyzerを使っていて、Vivadoが反応しなくなるので、vivado.exeをタスクマネージャーから落とすのだが、TCP番号60001を使用していて、 60001番を開放されない時がある。
TCP番号60001番をどんなプロセスが使っているか調べるには、コマンドプロンプトで”netstat -ano”を実行する。そうすると、TCP番号60001番を使用しているPID (Process ID) がわかる。下の図の場合は、7080のPIDのプロセスがTCP番号60001番を使用している。
Vivado 2013.4でHardware Manager を強制終了させた時にやること
Vivado 2013.4で、どうしようも無くなってHardware Manager を強制終了させた時は、次の2つのプロセスも強制終了させる必要があります。

XilinxのFPGAツー ルを Linux環境に移行します
Vivadoのプロジェクトでは、パスの階層が深くなって、すぐに256文字のパス制限に引っ かかってしまいます。(”ZYBO用LEDテストプロジェクトの試し方(Vivado 2013.4使用)”を参照ください)
そこで、XilinxのFPGAツールをすべてLinux環境に移行しようと思っています。
思っていたのですが、面倒なので、まだWindowsで短いプロジェクト名でやっています。(2014/07/20)

Vivado 2014.1 が出ました
今日、@Vengineerの戯言さんの”Vivado HLS 2014.1でOpenCLをサポート”の記事で知ったのですが、Vivado 2014.1 が出てました。GUIが変わったとの情報もあったので、楽しみですね。。。

Vivado 2014.1で Vivado_ZYBO_LED_test2をインプリメントした
Vivado 2014.1で、Github に上げてあるVivado 2013.4で作ったVivado_ZYBO_LED_test2プロジェクトをインプリメントしてみた。

Vivado Simulator用のOVL2.8.1のOVLライブラリをコンパイルして登録した
Vivado Simulator で、OVLライブラリを使うためにコンパイルを行った。

VivadoでZYBOの AXI4 Slave キャラクタ・ディスプレイ・コントローラ IP1(新規プロジェクトの生成)
”ZYBO用キャラクタ・ディスプレイ・コントローラ IPの単体テスト(VGAポート専用)”のVivado 2014.1版を作ろうと思う。Vivado 2014.1 のチュートリアルをかねようとしているので、丁寧に図をキャプチャして書くつもりだ。
VivadoでZYBOの AXI4 Slave キャラクタ・ディスプレイ・コントローラ IP2(FIFOの生成)
前回はプロジェクトを作るところまでだったが、今回はFIFOを生成する。
VivadoでZYBOの AXI4 Slave キャラクタ・ディスプレイ・コントローラ IP3(単体シミュレーション)
今回は、OVL(Open Verification Library)を使用した単体シミュレーションを行う。
VivadoでZYBOの AXI4 Slave キャラクタ・ディスプレイ・コントローラ IP4(IP化)
単体シミュレーションが終了したZYBOのAXI4 Slave キャラクタ・ディスプレイ・コントローラをIPにする。
VivadoでZYBOの AXI4 Slave キャラクタ・ディスプレイ・コントローラ1(新規プロジェクトの作製)
”VivadoでZYBOのAXI4 Slave キャラクタ・ディスプレイ・コントローラ IP4(IP化)”で、ZYBOのAXI4 Slave キャラクタ・ディスプレイ・コントローラの IP化が終了したので、今回はZYBOのAXI4 Slave キャラクタ・ディスプレイ・コントローラの回路全体を作製する。
Vivado 2014.1を使用して、IPにした ZYBOのAXI4 Slave キャラクタ・ディスプレイ・コントローラをインスタンスして、動作する様に、他のIPもインスタンスし、回路全体を構成する。
なお、Vivado 2014.1のチュートリアルとしても使用できるように、1つ1つの手順を図入りで紹介する。
VivadoでZYBOの AXI4 Slave キャラクタ・ディスプレイ・コントローラ2(IPリポジトリへの追加)
VivadoでZYBOの AXI4 Slave キャラクタ・ディスプレイ・コントローラ3(PSのインポートと設定)
VivadoでZYBOの AXI4 Slave キャラクタ・ディスプレイ・コントローラ4(PS以外のブロックデザイン)
VivadoでZYBOの AXI4 Slave キャラクタ・ディスプレイ・コントローラ5(ブロック・デザインの生成)
VivadoでZYBOの AXI4 Slave キャラクタ・ディスプレイ・コントローラ6(ブロック・デザインのデバック)
ブロック・デザインの生成でエラーがでているので、デバックをしていた。日曜日の1日中いろい ろなことを試したが、やっとわかってきたと思うので、ブログに書いておく。
因みに、プロジェクト名を短くしないとWinodwsのパス名260文字問題に引っかかってしまうので、プロジェクトを作りなおした。
うまく行った。
VivadoでZYBOの AXI4 Slave キャラクタ・ディスプレイ・コントローラ7(配置制約の生成)
前回、ブロック・デザインが終了して、ラッパー Verilog HDLファイルを作製した。今回は、論理合成し、出力端子の出力レベルと配置を制約した。
VivadoでZYBOの AXI4 Slave キャラクタ・ディスプレイ・コントローラ8(インプリメント)
インプリメントを行い、成功した。
VivadoでZYBOの AXI4 Slave キャラクタ・ディスプレイ・コントローラ9(SDK、実機テスト)
実機テストは成功した。

Vivado 2014.2 が出ました
Vivado 2014.2が出たのでいろいろとやってみた。
Vivado 2014.2 で論理シミュレーション1(エラー発生)
今回は、Vivado 2014.2にプロジェクトを変換しても”VivadoでZYBOのAXI4 Slave キャラクタ・ディスプレイ・コントローラ IP3(単体シミュレーション)”と同様にシミュレーション出来るかどうかを確かめてみることにした。
エラーが出たが、原因が後で分かった。Vivado 2014.2 は問題無さそうだ。
Vivado 2014.2 で論理シミュレーション2(Vivado 2014.1とVivado 2014.2を比較)
VivadoでZYBOのAXI4 Slave キャラクタ・ディスプレイ・コントローラ IPをVivado 2014.1で作っていたが、Vivado 2014.2が出たので、今まで Vivado 2014.1で作ってきたプロジェクトをVivado 2014.2に変更した。そうしたら、論理シミュレーションがエラーになってしまった。今回は、プロジェクト変換を行ったので、エラーが出たのかを検証するために Vivado 2014.2で新規プロジェクトを作製して確かめてみる。
エラーだったが、後に原因がわかる。

Vivado 2014.2 で IP の更新のやり方を試してみた
Vivado 2014.2 を使用して、Vivado プロジェクトで、IP Integrator(ブロック・デザイン)を使用している時に、IPを修正する方法を試してみた。

Xilinxツール用フロー ティング・ライセンス・サーバーの設定(パソコンにXilinxツールがインストールされていない場合)
新しい Vivado が入っていないパソコンで、ライセンス・サーバーを立ち上げるためには、”Visual Studio 2012 更新プログラム 3 の Visual C++ 再頒布可能パッケージ ”をインストールする必要があります。

Vivado 2014.3 が出た(Vivado 2014.2 のプロジェクトをVivado 2014.3 に変換)
Vivado 2014.3 が出たので、今やっているVivado 2014.2 で作製したビットマップ・ディスプレイ・コントローラのプロジェクトを Vivado 2014.3 のプロジェクトに変換した。

Vivado のライセンス

Vivado のライセンスですが、いつの間にか、Certificate Based Licenses と Activation Based Licenses に分かれているようです。
このActivation Based Licenses では、Vivado HLS Evaluation License のライセンス期限が365日になっていました。つまり1年間使えるみたいですね。使わない手はないと思います。
VirtualBox上の Ubuntu14.04LTSにVivado 2014.4 をインストールし起動する時の覚書
VirtualBox上のUbuntu14.04LTSにVivado 2014.4 をインストールし起動する時の覚書です。
手順を踏まないとインストールできません。
IP Packager で AXI4 peripheral を作成すると、Internal Exception が発生する
VirtualBoxに Ubuntu 14.04LTS をインストールして Vivado 2014.4 を使用している。
その環境で、IP Packager を使ってIPを作る時のダイアログでAXI4 peripheral を選ぶと、Vivado で Internal Errorが発生した。
Vivado 2014.4 でLED4ビットのAXI4 Lite Slave IPをウィザードで作る1(仕様)
勉強会用のLED4ビットをカウントしていくAXI Lite SlaveバスのIPをウィ ザードで作ることにした。今回は仕様を策定した。

Vivado HLS 2014.1で生成したラプラシアンフィルタIPをシミュレーション1(mem_sim_axi_slave IP の作製)
前回、Vivado HLS 2014.1 で作製したラプラシアンフィルタ IP が動作しなかったので、シミュレーションを行う。シミュレーションをしたのはZedBoardの時で、AXI4 Slave を持った汎用メモリモデル IP の mem_sim_axi_slave と設定レジスタを設定する AXI Lite Master IP の reg_set_axi_lite_master を使用する。
Vivado HLS 2014.1で生成したラプラシアンフィルタIPをシミュレーション2(reg_set_axi_lite_master IP の作製)
設定レジスタを設定する AXI Lite Master IP の reg_set_axi_lite_master を作製した。
Vivado HLS 2014.1で生成したラプラシアンフィルタIPをシミュレーション3( mem_sim_axi_slave IP の変更1)
”Vivado HLS 2014.1で生成したラプラシアンフィルタIPをシミュレーション1”で作った mem_sim_axi_slave IP のコードを少し修正することにした。
次に、Vivado HLS 2014.1 で作製したラプラシアンフィルタIP のシミュレーションをする予定なのだが、ラプラシアンフィルタIP のレジスタを設定する reg_set_axi_lite_master IP とメモリIP の mem_sim_axi_slave だけでは、メモリの値を書き換えるIP が存在しない。現在では、mem_sim_axi_slave の memory_8bit.v の中でメモリの初期値はオール 0 にクリアされているので、ラプラシアンフィルタIP でカメラデータを Read するために DMA しても、ラプラシアンフィルタ処理後のデータを Write するために DMA しても全て 0 のみとなる。これでは寂しいので、せめて、メモリの初期値を変更できるように、memory_8bit.v のメモリの初期値を変更できるようにした。
Vivado HLS 2014.1で生成したラプラシアンフィルタIPをシミュレーション4(mem_sim_axi_slave IP の変更2)
”Vivado HLS 2014.1で生成したラプラシアンフィルタIPをシミュレーション3”の mem_sim_axi_slave プロジェクトで IP を再IP化した。
Vivado HLS 2014.1で生成したラプラシアンフィルタIPをシミュレーション5(シミュレーション用プロジェクトの作製)
これで必要なIPが揃ったので、Vivado 2014.1 で作製したラプラシアンフィルタIP をシミュレーションするためのVivado 2014.4 のプロジェクトを作製した。

Vivado 2014.4でのVerilog HDLで記述したROM の初期化データの扱い
”Vivado HLS 2014.1で生成したラプラシアンフィルタIPをシミュレーション5(シミュレーション用プロジェクトの作製)”でシミュレーション用のプロジェクトが完成したので、シ ミュレーションを行った。
しかし、”Vivado HLS 2014.1で生成したラプラシアンフィルタIPをシミュレーション2(reg_set_axi_lite_master IP の作製)”で、Vivado のIPとしたreg_set_axi_lite_master.v のrom 配列にラプラシアンフィルタIP を初期化して、ラプラシアンフィルタ処理をスタートする処理を書き込むことが出来ない。これは、”AXI VDMAのレジスタ設定用AXI Lite Master IPの作製2(シミュレーション)”に詳しく書かれているが、rom という2次元配列に initial 文で $readmemh("vdma_reg_set.txt", rom, 0, 255); を使用して、vdma_reg_set.txt に書いたアドレスとデータを読み込むようになっている。
今回は、vdma_reg_set.txt では、名前が良くないので、reg_set.txt に変更してある。
reg_set.txt をシミュレーションの時の work フォルダに置けば読まれるはずなのだが、プロジェクト内の何処においても読まれない。とっても困ってしまった。
解決方法としては、絶対パスのフルパスを書くことだった。

Vivado HLS 2014.1で生成したラプラシアンフィルタIPをシミュレーション6(シミュレーション)
前回はシミュレーション用プロジェクトを作成できたので、シミュレーションを行った。
Vivado HLS 2014.1 で高位合成したラプラシアンフィルタIPに設定することはできて、lap_fil_hls_sim_i -> lap_filter_axim_0 -> inst -> lap_filter_axim_LiteS_if_U の I_ap_start は 1 になったのだが、その後の cam_fb のAXIバスのReadが始まらない。

Vivado 2014.4 でインプリメント時にStrategy を変更してインプリメント結果を改善する
タイミング制約のエラーを無くす方法だが、少しくらいのタイミング制約エラーならば、インプリ メント時のStrategy を変更してインプリメントを行う方法があるので、試してみた。

IP Integrator のブロックデザインで使うと便利なIP
IP Integrator のブロックデザインで使うと便利なIP がある。それは、ISEのXPS 時代からも存在していた。
わかっている限りでは、Utility Vector Logic, Utility Reduced Logic, Concat, Constant, Slice だ。

Vivado プロジェクトを配布する方法
Vivado プロジェクトを配布する方法には2つあると思う。
1つ目は、File メニュー -> Archive Project.... を選択して、プロジェクトをアーカイブする方法だ。
パブリックにダウンロードさせる方法としては、2つ目の tcl スクリプトでプロジェクトやブロックデザインを生成する方法がある。
Vivado や Vivado HLS が Visual Studio 2012 Visual C++ Runtimeのインストールダイアログが出て起動できない
Vivado 2014.4 WebPACK と Vivado HLS 2014.4 1年間評価版がインストールしてあるノートパソコンが、Vivado や Vivado HLS を起動しても、 Visual Studio 2012 Visual C++ Runtime のインストールダイアログが出て起動できなくなりました。対処方法を示しています。

Vivado 2015.4 が出ました
無料の WebPACK でもVivado HLS がつかえるようになりました。凄いです~~~。Xilinxさん、太っ腹ですね。。。
しかも今回のバージョンは、Spartan3, Spartan6, Virtex4, Virtex5, Virtex6 もVivado HLS が使えるそうです。更に、ロジック・アナライザ機能(Vivado Analyzer)も使えるようになりました。

Vivado のImplemented Design で Report CDC を確認する
”set_clock_groups -asynchronous 制約”で論理合成、インプリメント、ビットストリームの生成を行った後で、Report CDC (Clock Domain Crossing) を見る方法。
ビットマップ・ディスプレ イ・コントローラのReport CDC unsafe 箇所を確認し、修正する
”Vivado のImplemented Design で Report CDC を確認する”で確認されたビットマップ・ディスプレイ・コントローラのReport CDC unsafe 箇所を確認して修正した。

Vivado HL WebPACK 2015.4 で Vivado Analyzer や Vivado Serial IO Analyzer が使えるようになりました
無料で使用できるVivado HL WebPACK 2015.4 で Vivado Analyzer や Vivado Serial IO Analyzer が使えるようになっているようです。

Vivado のIP Integrator のちょっとしたTips
・VivadoのIP Integrator のブロックデザインのMark Debugを一挙に外す方法
・VivadoのIP Integrator のブロックデザインでクロック配線などの多数に供給される配線の1本だけを削除する方法

Vivado のSDKのハードウェア・プラットフォームによる動作不良
SDK (Software Development Kit) を使用したVivado のプロセッサ・ベースのFPGA回路で、いろいろと検証して動かないはず無いんだけど、動かない時があります。分かってはいたのですが、相当、悩んでしまったので、その時 の対処を書いておきます。

Digilent社のボード・ファイルのインストール
ZYBO のPS (Processing System) の定義ファイル ZYBO_zynq_def.xml が、いつの間にかDigilent 社からダウンロードすることができなくなってしまった。これでは、新しくZYBO をやる方が困るので、やり方を探ってみることにした。
調べてみると、ボード・ファイル (Board Files) というファイルをDigilent 社からダウンロードすることができて、Vivado の所定のフォルダに入れておけば、プロジェクトを作製するときのBoard の選択肢として表示することができるようになるようだ。

Vivado 2015.4による組み合わせ回路の場合の消費電力解析
組み合わせ回路をVivado 2015.4でインプリメントすると消費電力解析でとんでもない値が出てしまう。それを解消する方法を探っていく。

Z-turn Board のPS設定をサンプル・プロジェクトからコピーする
Z-turn Board のVivado プロジェクトを作ろうと思ったが、PS(Processing System つまり、ARM SoC の設定です) の設定はどうするんだろうと思っていた。ZYBO では、ボード・ファイルをVivado のボード・ファイルのフォルダにコピーしたが、Z-turn Board では、そのようなファイルは見当たらない。そこで、サンプル・プロジェクトのPS設定をエクスポートできて、新しく作るVivado プロジェクトのPS の設定として読み込めないかな?と探ってみた。

Vivado 2016.2 が出ました
Vivado 2016.2 が出たので、インストールしました。
Vivado 2016.3が出ました
Vivado 2016.3 が出ました。

Vivado 2016.2 のプロジェクトをVivado 2016.3 にアップグレードすると動作しなかった

Vivado 2016.2 のプロジェクトをVivado 2016.3 にアップグレードすると動作しなかった2(解決編)
前回は、ZYBO_0_5 プロジェクトをVivado 2016.2 からVivado 2016.3 にアップグレードすると、回路が動作しなかった。今回は原因を追究してみた。

Vivado 2016.2 からVivado 2016.3 へアップグレード
”Vivadoを使用してZYBO_0_163_6フォルダのプロジェクトにRGB2HSV IPを追加3(SDK2)”でVivado 2016.3 への乗り換えはあきらめたはずだったが、ツィッターで複数に人に新規作成してアップグレードすることを勧められたのもあって、プロジェクトを新規作成してVivado 2016.3 へアップグレードすることにした。道のりは結構長かったです。。。

Vivado 2016.2 からVivado 2016.4 へアップグレード
Vivado 2016.4 をインストールしたので、超音波距離センサで使っていたZYBO_0_162_7 フォルダのプロジェクトをVivado 2016.2 からVivado 2016.4 にアップグレードしてみることにした。Vivado 2016.2 から Vivado 2016.3 へのアップグレードは失敗しているので慎重に進めた。
成功した。

Ubuntu16.04にVivado 2016.4をインストール
今日はUbuntu16.04にVivado 2016.4をインストールする覚書を書いておこうと思う。

Vivado 2016.4 のSDKでデバイスツリーのソース(DTS)を生成する
Linux 上のISE のSDK からデバイスツリーのソース(DTS)を生成する方法は”SDKでDevice Treeを生成する2(SDKでxilinx.dtsを生成)”に書いた。今回は、Windows 10 上で、Vivado 2016.4 のSDKでデバイスツリーのソース(DTS)を生成してみよう。

Vivado WebPACK 2016.1 からWebPACKではラインセンスファイルは必要ありません
Vivado WebPACK 2016.1 からWebPACK では、ライセンスファイルは必要無くなりました。

Vivado 2017.1 の新機能1(概要)
昨日、Vivado 2017.1 が出た。早速、インストールしてみたのだが、GUI が新しくなっていた。Windows と Linux のルック・アンド・フィールを統一してあるそうだ。
Vivado 2016.4 から Vivado 2017.1 へアップグレード
Vivado 2016.2 とVivado 2016.3 の間にはアップグレードの壁がある。
Vivado 2016.4 から Vivado 2017.1 へは簡単にアップグレードできるかどうかを確かめてみた。それにVivado 2017.1 ではルック&フィールが違っているので、確かめてみた。
Vivado 2017.1 の新機能2(AXI Verification IPの概要)
前回は、Vivado 2017.1 の新機能の概要を書いた。今回は、AXI Verification IPの概要を調査しよう。
Vivado 2017.1 の新機能3(AXI Verification IPのサンプル・デザイン1)
前回は、AXI Verification IP の概要を調べた。今回は、AXI Verification IP のサンプル・デザインをやってみよう。
Vivado 2017.1 の新機能4(AXI Verification IPのサンプル・デザイン2)
前回は、AXI Verification IPをIPI にAdd IP してサンプル・デザインを呼び出した。今回は、サンプル・デザインをシミュレーションしてみよう。
Vivado 2017.1 の新機能5(AXI Verification IPの使い方の覚書)
”AXI Verification IP v1.0 LogiCORE IP Product Guide Vivado Design Suite PG267 April 5, 2017”の 48 ページ、”Useful Coding Guidelines and Examples”を読みながら覚書を書いておく。
Vivado 2017.1 の新機能6(AXI Verification IPの使い方の覚書2)
AXI Verification IPの使い方の覚書2です。大体AXI Verification IPの使い方が分かってきた。
今回は、シミュレーションの下から2番目の sim_adv_mst_active__pt_passive__slv_mem をやってみます。
Vivado 2017.1 の新機能7(AXI Verification IPの使い方の覚書3)
前回、AXI Verification IPのWrite トランザクションについて記事を書いたが、どうしてもWVALID をディアサートする方法が分からなかった。本当はランダムにできれば良かったのだが、WVALID を変化させる方法が分かったので、覚書を書いておく。
Vivado 2017.1 の新機能8(Zynq-7000 VIP)
Vivado 2017.1 からZynq-7000 VIP のライセンスが無料になって、Zynq のPS 込みでシミュレーションできるようになったようだ。(Vivado 2016.4 でPS 込みのシミュレーションをしたところ、AXI BFM のライセンスエラーになってしまった)

Vivado やVivado HLS がVisual C++ 2015 再頒布可能パッケージのエラーで起動しないときの対処法
Vivado や Vivado HLS がVisual C++ 再頒布パッケージのエラーで起動しないときがある。その対処方法を書いた。

Linux 版Vivado のアンインストール方法

SDK における inbyte() の使用
Vivado のSDK でベアメタルのアプリケーションソフトを作っているときに、キー入力を使用するが、その際にfgetc() , scanf() などを使用してキー入力すると、リターンキーが押されるまで処理が戻ってこなかったりする。それだと都合が悪い場合は、fflush(stdin) を使用すると思う。
Xilinx のSDKでは inbyte() という、1バイトのキー入力ルーチンがある。ブロックされて、1文字入力するまで戻ってこないが、リターンキーを待ってはいないので、一文字入力すると関数コールから帰っ てくる。

SDKのベアメタル・アプリ ケーションで時間を計測する方法(Zynq)
SDKのベアメタル・アプリケーションで時間を計測する方法とPYNQボードでのテストについ て書いておく。

Ubuntu 16.04 にVivado Design Edition がインストールできない
Ubuntu 16.04 にVivado のDesign Edition がインストールできない。(現在のバージョンは、2017.2)
インストールの方法をコメント欄で教えて頂きました。ありがとうございました。

Bash on Windows 10にVivado WebPACK 2017.2をインストールした
「Vengineerの戯言」ブログの「Bash on Windows 10でVivado 2017.2」でWindows 10のPowerShell で動作するUbuntu 16.04 上でVivado 2017.2 をインストールするという記事が載っていた。それを参照して、自分でもWindows 10 のUbuntu 16.04 にVivado WebPACK 2017.2 をインストールしてみた。
Bash on Windows 10にVivado WebPACK 2017.2をインストールした2(日本語表示)
前回は、Xmingを起動してから、Bash on Windows 10 からVivado を起動したところ GUI 上でLinux バージョンのVivado を起動することができた。今回は、日本語を表示できるようにしてみた。
Bash on Windows 10にVivado WebPACK 2017.2をインストールした3(Vivado HLS)
前回は、Bash on Windows 10 の日本語表示について書いた。今回は、Bash on Windows 10 でVivado_HLSを使ってみよう。   

Vivado シミュレータのDPI-C その1
Vivado シミュレータでDPI (Direct Programming Interface)をやってみることにした。
Vivado シミュレータのDPI-C その2
前回は、DPI のexample の simple_import をやってみた。今回は、simple_export をやってみよう。
Vivado シミュレータでDPI-C を使用してZynq VIPを使う1
”Vivado シミュレータのDPI-C その1”と”Vivado シミュレータのDPI-C その2”でVivado シミュレータでDPI-C を実行する方法をXilinx社のサンプルで見てきた。
それでは、Zynq VIP を使用するときにDPI-C を使用することができるかどうか?をやってみた。
Vivado シミュレータでDPI-C を使用してZynq VIPを使う2
前回は、Vivado 2017.2 で Base Zynq サンプル・プロジェクトを作成して、一度シミュレーションを実行し、テストベンチをSystemVerilog ファイルに変更し、シミュレーション用のディレクトリにDPI-C を実行するC ファイルを追加した。今回は、コンパイル、エラボレートを行う。
Vivado シミュレータでDPI-C を使用してZynq VIPを使う3
前回は、コンパイルとエラボレートを行った。今回はいよいよxsim を走らせて、シミュレーション波形を出してみよう。
Vivado シミュレータでDPI-C を使用してZynq VIPを使う4(Export Simulation)
昨日、「SystemVerilogによるテストベンチ実践会(2017夏)」で、 Venginner さんに、Export Simulation のことを聞いたので、自分でもやってみた。

Vivado 2017.3 をインストールした
遅ればせながら、Vivado 2017.3 をインストールした。
”白線間走行畳み込みニューラルネットワーク・システムをZYBO Z7-20で動作させる3(ガボール・フィルタの追加)”のZYBO_Z7_0 プロジェクトをインプリメントしてみたが、問題なかった。
白線追従走行用畳み込み ニューラルネットワーク・システムをVivado 2017.3にアップデート
”白線追従走行用畳み込みニューラルネットワーク・システムの製作7(白線間を走行)”で白線 間を走行した白線間走行用畳み込みニューラルネットワークをVivado 2017.2 からVivado 2017.3 にアップデートしてみた。
やはり、AXI Interconnectがネックになった。

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 が起動しない”を参照のこと。

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

TCF agent を使ってLinaro Ubuntu14.04LTSが動作してるZYBO へパソコンのSDK からリモートデバッグする1
以前、”Linaro Ubuntu14.04LTSが動作してるZYBOへWindowsのSDKからリモートデバッグする”で、Linaro Ubuntu14.04LTSが動作してるZYBOへWindowsのSDKからリモートデバッグをトライしてみたが、うまく行かなかった。最近、それは、TCF (Target Communication Framwork) agent が無いからだというのをK林さんから聞いたので、やってみようと思う。
TCF agent を使ってLinaro Ubuntu14.04LTSが動作してるZYBO へパソコンのSDK からリモートデバッグする2
前回は、Linaro Ubuntu14.04LTSが動作してるZYBO上に tcf-agent をインストールした。今回は、パソコンのSDK でZYBO 上にSFTP したアプリケーションソフトをリモートデバッグすることができた。

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

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

Vivado 2019.1 WebPACK Edition をUbuntu 18.04 にインストールした
Vivado 2019.1 が出たので、WebPACK Edition を Ubuntu 18.04 の /tools ディレクトリにインストールした。
Vivado 2018.3 のプロジェクトを Vivado 2019.1 に変換してみた
Vivado 2018.3 の cam_dp_183 プロジェクトをVivado 2019.1 に変換してみた。問題なく変換できた。

なひたふさんの 「Vivadoのプロジェクトをgitで管理する最小限は何か」を参考にしてVivado のプロジェクトをTCLファイルで復元した
Vivado プロジェクトを送る時に最小限のファイルで遅れればとっても良い。そこで、なひたふさんの「Vivadoのプロジェクトをgitで管理する最小限は何か」を参考にして最小 限のファイルでVivado プロジェクトを復元してみた。



inserted by FC2 system