FC2カウンター FPGAの部屋 Vivado

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

FPGAの部屋

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

Vivado 2016.2 からVivado 2016.4 へアップグレード

昨日、Vivado 2016.4 が出たので、インストールを行った。

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

まずは、ZYBO_0_162_7 フォルダのプロジェクトをコピー&ペーストして、ZYBO_0_164_7 フォルダと名前を変えた。

プロジェクトファイル xpr ファイルをダブルクリックして起動するとVivado 2016.4 が立ち上がった。

IP のアップグレードを行った。
Vivado_2016_4_ZYBO_0_1_161220.png

このまま、ビットストリームの生成を行った。やはり、リソース使いすぎエラーが出た。Vivado 2016.3 と同じようだ。この辺は直す気がないのかな?
Vivado_2016_4_ZYBO_0_2_161220.png

まずは、ブロックデザインを作り直してみようと思う。ブロックデザインをTCLスクリプトにエクスポートしてから、いったん削除して、TCLスクリプト起動して再度作り直してみよう。

File メニューからExport -> Export Block Design を選択してTCLスクリプトを作成する。
Vivado_2016_4_ZYBO_0_3_161220.png

Export Block Design ダイアログ。
Vivado_2016_4_ZYBO_0_4_161220.png

これでTCLスクリプトがエクスポートしできたので、ZYBO_0_wapper.v とZYBO_0 ブロックデザインを削除しよう。その2つを選択して、右クリックメニューからRemove File form Project... を選択した。
Vivado_2016_4_ZYBO_0_5_161220.png

Remove Sources ダイアログで、Also delete project local files/directories from disk にチェックを入れておくとファイルもディスクから消してくれる。
Vivado_2016_4_ZYBO_0_6_161220.png

さて次にTCLスクリプトを起動してZYBO_0 ブロックデザインを作成する。
Tcl Console を選択して、 cd でプロジェクトのあるフォルダに移動する。
Vivado_2016_4_ZYBO_0_7_161220.png

次に source ZYBO_0.tcl コマンドでZYBO_0 ブロックデザインを再生成する。
Vivado_2016_4_ZYBO_0_8_161220.png

無事にブロックデザインが再生成された。
Vivado_2016_4_ZYBO_0_9_161220.png

Address Editor も前のままだ。
Vivado_2016_4_ZYBO_0_10_161220.png

これでビットストリームの生成を行ったところ、同様のエラーになってしまった。
やはりだめか。。。それじゃ、AXI4-Lite 用のAXI Interconnect を作り直してみよう。

AXI4-Lite 用のAXI Interconnect を削除した。
Vivado_2016_4_ZYBO_0_11_161220.png

Run Connection Automation をクリックして、表示されたダイアログで、All Automation をチェックした。
Vivado_2016_4_ZYBO_0_12_161220.png

AXI4-Lite 用のAXI Interconnect が生成された。
Vivado_2016_4_ZYBO_0_13_161220.png

しかし、Address Editor のアドレスが変わっているので、修正した。最初にアドレスがかち合うと変更できないので、すべて43DX_0000 に変更してから、以前のアドレスに修正した。
Vivado_2016_4_ZYBO_0_14_161220.png

修正後にビットストリームの生成を行った。成功した。
Vivado_2016_4_ZYBO_0_15_161220.png

最初のブロックデザインの再生成が無駄か?というと、そうではない。実は、前に一度Vivado 2016.2 から Vivado 2016.4 へのアップグレードをやっていて、逆の手順でやったのだが、AXI4-Lite 用のAXI Interconnect を消してから再度生成しても、違うエラーが出てしまっていた。それでブロックデザインを消して、再生成したのだった。

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

これで、最初はベアメタル・アプリケーションでテストしたが、GDB でRun してもエラーが出てRun できなかった。System Debugge を選択しないとRun ができなかった。

SDK でFSBL を作り、BOOT.bin を作成した。devicetree.dtb はそのままで、Micro SD カードの BOOT.bin だけ入れ替えて、ZYBO に挿入して電源ON した。Ubuntu 上でも超音波距離センサのアプリケーションが起動して正常に距離を測定できた。カメラも表示できたので、完璧だ。
これでVivado 2016.2 からVivado 2016.4 にアップグレードできたようだ。
  1. 2016年12月21日 04:56 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

Vivado 2016.2 からVivado 2016.3 へアップグレード

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

ブロックデザインを新規作成するととっても面倒なので、ブロックデザインを作成するTCLスクリプトを出力して、ブロックデザインを自動生成してもらおう。

最初に、Vivado 2016.2 のZYBO_0_162_6 フォルダのプロジェクトを開き、ブロックデザインを開いた。

File メニュー -> Export -> Export Block Design... を選択した。
vivado_2016_3_35_161024.png

Export Block Design ダイアログ。ZYBO_0.tcl という名前で出力される。
vivado_2016_3_36_161024.png

Vivado 2016.3 で ZYBO_0_163_6 プロジェクトを新規作成した。
vivado_2016_3_37_161024.png

先ほど出力したZYBO_0.tcl をZYBO_0_163_6 フォルダにコピー&ペーストした。
vivado_2016_3_38_161024.png

ZYBO_0.tcl を開いて、「set scripts_vivado_version 2016.2」を「set scripts_vivado_version 2016.3」に変更して、セーブした。
vivado_2016_3_39_161024.png

Vivado 2016.2 のZYBO_0_162_6 フォルダのIP フォルダをすべてZYBO_0_163_6 フォルダにコピーした。
vivado_2016_3_40_161024.png

IP Catalog を開いて、Add Repository を行った。先ほどコピー&ペーストしたIP をすべて選択した。
vivado_2016_3_41_161024.png

IP Catalog にすべてのIP が登録できた。
vivado_2016_3_42_161024.png

Tcl Console を開いて、ZYBO_0_163_6 フォルダに cd し、

source ZYBO_0.tcl

を起動した。
vivado_2016_3_43_161024.png

ZYBO_0 ブロックデザインが完成した。
vivado_2016_3_44_161024.png

Refresh IP Catalog をクリックした。
IP Status が表示された。すべてUpgrade できているのかな?
vivado_2016_3_45_161024.png

ZYBO_0 ブロックデザインのHDL Wapper を生成した。
vivado_2016_3_46_161024.png

ZYBO_0.xdc を新規作成して、ZYBO_0_162_6 フォルダのプロジェクトのXDC ファイルの中身をコピー&ペーストした。
vivado_2016_3_47_161024.png

論理合成、インプリメント、ビットストリームの生成を行った。
論理合成は、multiple block runs が最初に走って、各IP ごとに論理合成しているようだ。後で、AXI_IIC IP を更新して論理合成すると、そのIP だけを合成しているようだった。更新時の論理合成時間の短縮が図れているようだった。
vivado_2016_3_48_161024.png

インプリメントでエラー発生。LUT が足りないと言われている。どこかで見たエラーだ。
vivado_2016_3_49_161024.png

Utilization を見てみるとやはりAXI Interconnect のLUT 占有率が大きい。
vivado_2016_3_50_161024.png

Vivado 2016.2 のプロジェクトをVivado 2016.3 にアップグレードすると動作しなかった2(解決編)”と同様に、AXI Interconnect を削除して、もう一度、Run Connection Automation でAXI Interconnect を入れなおすとインプリメントが通った。ビットストリームの生成も行った。結果を示す。
vivado_2016_3_51_161024.png

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

cam_disp_lgh.c を作成した。

ZYBO にビットストリームをダウンロードして、cam_disp_lgh.elf を起動したところ、カメラ画像が表示された。
vivado_2016_3_52_161024.png

長かったが、やっとVivado 2016.3 に移行できた。
IP を更新したときの論理合成が速くなっているようなので、やはりVivado 2016.3 を使いたい。でもバグがたくさんあるものとして注意深く使うことにしよう。

最後に、cam_disp_lgh.c を貼っておく。

/* * cam_disp_lgh.c * *  Created on: 2016/10/22 *      Author: Masaaki */

#include <stdio.h>
#include <stdlib.h>
#include "xil_io.h"
#include "xparameters.h"
#include "sleep.h"

#include "xdmaw4gabor.h"

#define NUMBER_OF_WRITE_FRAMES    3 // Note: If not at least 3 or more, the image is not displayed in succession.

#define HORIZONTAL_PIXELS    800
#define VERTICAL_LINES        600
#define PIXEL_NUM_OF_BYTES    4

#define FRAME_BUFFER_ADDRESS 0x10000000
#define ALL_DISP_ADDRESS    (HORIZONTAL_PIXELS*VERTICAL_LINES*PIXEL_NUM_OF_BYTES)

void cam_i2c_init(volatile unsigned *mt9d111_i2c_axi_lites) {
    mt9d111_i2c_axi_lites[64] = 0x2// reset tx fifo ,address is 0x100, i2c_control_reg
    mt9d111_i2c_axi_lites[64] = 0x1// enable i2c
}

void cam_i2x_write_sync(void) {
    // unsigned c;

    // c = *cam_i2c_rx_fifo;
    // while ((c & 0x84) != 0x80)
        // c = *cam_i2c_rx_fifo; // No Bus Busy and TX_FIFO_Empty = 1
    usleep(1000);
}

void cam_i2c_write(volatile unsigned *mt9d111_i2c_axi_lites, unsigned int device_addr, unsigned int write_addr, unsigned int write_data){
    mt9d111_i2c_axi_lites[66] = 0x100 | (device_addr & 0xfe);   // Slave IIC Write Address, address is 0x108, i2c_tx_fifo
    mt9d111_i2c_axi_lites[66] = write_addr;
    mt9d111_i2c_axi_lites[66] = (write_data >> 8)|0xff;         // first data
    mt9d111_i2c_axi_lites[66] = 0x200 | (write_data & 0xff);        // second data
    cam_i2x_write_sync();
}

int main(){
    XDmaw4gabor xdma4g;

    // axis_switch_1, 1to2 ,Select M00_AXIS
    // Refer to http://marsee101.blog19.fc2.com/blog-entry-3177.html
    Xil_Out32((XPAR_CAMERA_INTERFACE_AXIS_SWITCH_1_BASEADDR+0x40), 0x0);
    Xil_Out32((XPAR_CAMERA_INTERFACE_AXIS_SWITCH_1_BASEADDR+0x44), 0x80000000); // disable
    Xil_Out32((XPAR_CAMERA_INTERFACE_AXIS_SWITCH_1_BASEADDR+0x48), 0x80000000); // disable
    Xil_Out32((XPAR_CAMERA_INTERFACE_AXIS_SWITCH_1_BASEADDR+0x4C), 0x80000000); // disable
    Xil_Out32((XPAR_CAMERA_INTERFACE_AXIS_SWITCH_1_BASEADDR), 0x2); // Commit registers

    // axis_switch_0, 2to1, Select S00_AXIS
    // Refer to http://marsee101.blog19.fc2.com/blog-entry-3177.html
    Xil_Out32((XPAR_CAMERA_INTERFACE_AXIS_SWITCH_0_BASEADDR+0x40), 0x0);
    Xil_Out32((XPAR_CAMERA_INTERFACE_AXIS_SWITCH_0_BASEADDR), 0x2); // Commit registers

    XDmaw4gabor_Initialize(&xdma4g, 0);
    XDmaw4gabor_Set_frame_buffer0(&xdma4g, FRAME_BUFFER_ADDRESS);
    XDmaw4gabor_Set_frame_buffer1(&xdma4g, FRAME_BUFFER_ADDRESS);
    XDmaw4gabor_Start(&xdma4g);
    XDmaw4gabor_EnableAutoRestart(&xdma4g);

    // mt9d111_inf_axis_0, axi_iic_0, bitmap_disp_cntrler_axi_master_0
    volatile unsigned int *bmdc0_axi_lites;
    volatile unsigned int *bmdc1_axi_lites;
    volatile unsigned int *mt9d111_axi_lites;
    volatile unsigned int *mt9d111_i2c_axi_lites;

    bmdc0_axi_lites = (volatile unsigned *)XPAR_BITMAP_DISP_CNTRLER_AXI_MASTER_0_BASEADDR;
    bmdc1_axi_lites = (volatile unsigned *)XPAR_BITMAP_DISP_CNTRLER_AXI_MASTER_1_BASEADDR;
    mt9d111_axi_lites = (volatile unsigned *)XPAR_CAMERA_INTERFACE_MT9D111_INF_AXIS_0_BASEADDR;
    mt9d111_i2c_axi_lites = (volatile unsigned *)XPAR_CAMERA_INTERFACE_AXI_IIC_0_BASEADDR;

    bmdc0_axi_lites[0] = (volatile unsigned int)FRAME_BUFFER_ADDRESS; // Bitmap Display Controller 0 start
    bmdc1_axi_lites[0] = (volatile unsigned int)FRAME_BUFFER_ADDRESS; // Bitmap Display Controller 1 start
    mt9d111_axi_lites[0] = (volatile unsigned int)FRAME_BUFFER_ADDRESS; // Camera Interface start (Address is dummy)

    // CMOS Camera initialize, MT9D111
    cam_i2c_init(mt9d111_i2c_axi_lites);

    cam_i2c_write(mt9d111_i2c_axi_lites, 0xba, 0xf00x1);      // Changed regster map to IFP page 1
    cam_i2c_write(mt9d111_i2c_axi_lites, 0xba, 0x970x20);        // RGB Mode, RGB565

    mt9d111_axi_lites[1] = 0// One_shot_mode is disabled

    return(0);
}

  1. 2016年10月25日 04:30 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

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

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

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

まずは、論理合成後の使用率を比べてみた。
Vivado 2016.3 の論理合成後の使用率を示す。
vivado_2016_3_14_161019.png

LUT、LUTRAM と FF の使用率が高い。

次に、Vivado 2016.2 の論理合成後の使用率を示す。
vivado_2016_3_15_161019.png

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

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 程度にしかならなかった。
vivado_2016_3_18_161019.png

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

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

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

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

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

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

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

ZYBO にビットストリームをダウンロードして、アプリを起動すると、待望のカメラ画像がディスプレイに表示された。
やっと、うまく行った。

今回のAXI Interconnect は、Master ポートが14 で、Slave ポートが 1 の大きいものだったので、アップグレードしたときにおかしくなったのかもしれない?
ポート数が少ないものはうまく行っていた。いずれにせよ。アップグレード・ツールのバグなんじゃないか?と思う。
  1. 2016年10月20日 04:56 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

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

Vivado 2016.2 で作ってある
Zybot で Gabor filter を使うためのZYBO_0_5 プロジェクト1
Zybot で Gabor filter を使うためのZYBO_0_5 プロジェクト2
のプロジェクトをフォルダごと丸ごとコピーして、ペーストし、フォルダの名前を ZYBO_0_162_5 から ZYBO_0_163_5 に変更した。

ブロックデザインを示す。
vivado_2016_3_13_161018.png

ZYBO_0_163_5 のフォルダのVivado のプロジェクト・ファイルをVivado 2016.3 で開いて、IP をアップグレードした。IP のアドレスも同一だった。
Vivado 2016.2 のAddress Editor を示す。
vivado_2016_3_11_161018.png

Vivado 2016.3 のAddress Editor を示す。
vivado_2016_3_10_161017.png

Vivado 2016.3 で論理合成、インプリメント、ビットストリームの生成を行った。
ハードウェアをエクスポートして、SDK を起動した。
ハードウェアプラットフォームが新規作成されていたので、cam_disp3_axis アプリケーション・プロジェクトを作り直した。
ビットストリームをダウンロードして、ソフトウェアをRun したが動作しなかった。
ZYBO の電源をOFFして、もう一度、ビットストリームをダウンロードして、ソフトウェアをDebug Run したが、やはり動かない。
どうやら、ビットマップ・ディスプレイ・コントローラ 0 のレジスタに値を書き込むところでエラーになっているようだ。
vivado_2016_3_9_161017.png

もう一度、Vivado 2016.2 のSDKを立ち上げて、ビットストリームをダウンロードして、ソフトウェアをRun したら、問題なく動作してカメラ画像をVGA 出力で見ることができている。
vivado_2016_3_12_161018.png

なんででしょう?
もっと他のプロジェクトをアップグレードして、動作するかどうか?を見る必要があるだろう?
Vivado 2016.3 で新規にプロジェクトを作ってみて、動作するかを見る必要もあるだろう?
  1. 2016年10月18日 04:35 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

Vivado 2016.3が出ました

Vivado 2016.3 が出ました。

不思議なことに2016/10/15 AM7:30 時点では、まだXilinx Japan のサイトには2016.3 は出ていなくて、www.xilinx.com のダウンロード・サイトにしかVivado 2016.3 ないことです。どうしてでしょう?日本はそう重要ではないということでしょうか?

中国のサイトにもVivado 2016.3 がありました。となると、そういうことかもしれません?

Vivado 2016.3 で何が一番変わったか?というと、と言ってもVivado HLS 2016.3 しかまだ触っていませんが。。。

私的には、プロジェクトを作るときのDevice Selection Dialog で、ARMプロセッサ・シングルコアのxc7z014s, xc7z007s がダイアログに現れるようになったことです。
vivado_2016_3_1_161015.png

Spartan-7 はダイアログになかったので、まだしばらくは出ないのだと思います。

これから、Vivado 2016.3 を使っていこうと思います。
リリース・ノートです。
Vivado Design Suite User Guide Release Notes, Installation, and Licensing
UG973 (v2016.3) October 5, 2016
  1. 2016年10月15日 07:46 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:2

Vivado 2016.2 が出ました

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

リリースノートによると、デバイスサポートが増えたくらいのようです。

Vivado HLS 2016.2 もリリースノートの新機能に記述がなかったので、変更点は無いようです。
Vivado_HLS_2016_2_160610.png

たぶん、多少、バグフィックスはされていると思うので、2016.2 を使うことにしようと思います。
  1. 2016年06月10日 04:15 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0

Z-turn Board のPS設定をサンプル・プロジェクトからコピーする

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

Z-turn Board についてくるDVD の 05-ProgrammableLogic_Source\7Z020 に mys-xc7z020-trd.rar があって、これを解凍すると mys-xc7z020-trd フォルダができる。
Vivado_PS_settings_1_160603.png

mys-xc7z020-trd.xpr をダブルクリックして、Vivado を起動した。Vivado 2016.1 が起動するので、IP アップグレードを行って、ブロックデザインを表示したところだ。ZYNQ7 Processing System はたくさん接続されているので、いい具合だ。
processing_system7_0 をダブルクリックして、設定画面を出すことにする。
Vivado_PS_settings_2_160603.png

PS の設定画面が開いたら、Presets -> Save Configuration... を選択した。
Vivado_PS_settings_3_160603.png

Save Current Configuration... ダイアログが開く。
Preset Name と File name に mys-xc7x020_trd と入力して、OKボタンをクリックした。
Vivado_PS_settings_4_160603.png

そうすると、mys-xc7z020-trd フォルダに、mys-xc7x020_trd.tcl ファイルができた。
Vivado_PS_settings_5_160603.png

mys-xc7x020_trd.tcl ファイルを開いてみるとこんな感じだった。
Vivado_PS_settings_6_160603.png

さて、このTCL ファイルを読み込んでみたいということで、test_proj プロジェクトを作成した。
ブロックデザインを作成して、ZYNQ7 Processing System をAdd IP した。
Vivado_PS_settings_7_160603.png

processing_system7_0 をダブルクリックして、設定画面を出した。
Presets -> Apply Configuration... を選択した。
Vivado_PS_settings_8_160603.png

mys-xc7x020_trd.tcl ファイルを指定した。
Vivado_PS_settings_9_160603.png

mys-xc7x020_trd.tcl ファイルの設定がPS設定としてロードされている。
Vivado_PS_settings_10_160603.png

PS 設定画面を終了すると、processing_system7_0 が設定されている。成功だ。
Vivado_PS_settings_11_160603.png

自分でデフォルトのPS 設定として、良かれと思う様に設定した。
Vivado_PS_settings_12_160603.png

そして、PS 設定画面から Presets -> Save Configuration... でファイルとしてセーブした。
ファイル名は、def_z_turn_board_20_ps_settings.tcl で、Preset Name は、default_z-turn_board_20_PS_settings とした。
Vivado_PS_settings_13_160603.png

def_z_turn_board_20_ps_settings.tcl を開いてみた。
Vivado_PS_settings_14_160603.png

これで、def_z_turn_board_20_ps_settings.tcl を使用して、Z-turn Board でPS を使ったVivado プロジェクトを作ることができる様になった。
  1. 2016年06月04日 04:45 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:0
»