16
XAPP1204 (v1.0) 2014 6 18 japan .xilinx.com 1 © Copyright 2014 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners. 概要 Vivado® IP インテグレーターは高度な次世代のグラフィカル デザイン ツールで、 各種 IP ブロックの 統合に使用で き ます。IP ブロックどうし、または IP ブロックとインターコネクト ロ ジ ッ ク の統合では、 ロジック アダプター ( グルー ロジックまたはシムとも呼ぶ) が必要 と な る こ と が あ り ま す。 こ の文書で は、 こ う したシムを簡単に作成する方法と して、 Vivado HLS (高位合成) AXI4 ペ リ フ ェ ラ ル作成機 (Create and Package IP ウ ィ ザー ド ) 2 つについて説明します。 これらの方法を示したサンプル ザインも付属しています。 このアプリケーション ノートのリファレンス デザインは、次のリンクからダウンロードできます。 https://secure.xilinx.com/webreg/clickthrough.do?cid=359071 はじめに こ の文書で説明する AXI4 の統合方法は多 く のデザ イ ンに適用で き ますが、 こ こ では具体的に 1 つのサ ンプル デザインを例にとって説明します。使用するサンプル デザインは、 D/A コンバーター (DAC) の正弦波データ パターンをマイクロプロセッサによる介入なしに生成する自律型システムです。生成し たデータは、アナログ ミックスド シグナル (AMS) 評価カード (AMS101) [参照 1] の入力デー タ と し て 使用します。 ターゲッ ト ハードウェア プラットフォームには Zynq®-7000 All Programmable SoC ZC702 評価キ ッ ト [参照 2] を使用します。 1 に、 このサンプル デザインのブロック図を示します。 ZC702 評価キ ッ ト の Zynq-7000 AP SoC AMS 評価カー ド 間の通信 リ ン ク には、SPI バスを使用しま す。 DDS 周波数を動的に増減で き る よ う に、 プ ッ シ ュ ボ タ ン インターフェイスも用意しています。 AMS ボードには Analog Devices 社の AD5065 DAC [参照 9] が実装されています。 AD5065 の最大 SPI クロックは 50MHz です。 このデザインでは、 37.5MHz SPI ク ロ ッ ク周波数を使用し ます。 AD5065 では、 DAC のデー タ 更新間隔 と し て 2s の待ち時間が必要で、 この待ち時間をデザインで確保する必 要があ り ます。AD5065 への SPI アクセスは 32 ビ ッ ト 単位で行われる ため、37.5MHz のクロック レー ト では約 0.850s のアクセス時間が必要です。 よって、 このデザインでは DAC 更新レートを 3s (2 + 0.850 + マージン = 3) と しています。つま り、サポート される DAC サンプル レートは 333KS/s す。 アプリケーション ノート : Vivado IP インテグレーター XAPP1204 (v1.0) 2014 6 18 Vivado IP インテグレーターを使用した AXI4 ベースの IP の統合方法 著者 : Christopher StilloDuncan MackayMike Mitchell X-Ref Target - Figure 1 1 : サンプル デザインのブロック図

Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 1

© Copyright 2014 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners.

概要 Vivado® IP インテグレーターは高度な次世代のグラフ ィカル デザイン ツールで、 各種 IP ブロ ッ クの統合に使用できます。IP ブロ ッ クど う し、または IP ブロ ッ ク と インターコネク ト ロジッ クの統合では、ロジッ ク アダプター (グルー ロジッ クまたはシムと も呼ぶ) が必要となるこ とがあ り ます。 この文書では、 こ う したシムを簡単に作成する方法と して、 Vivado HLS (高位合成) と AXI4 ペリ フェラル作成機能 (Create and Package IP ウ ィザード ) の 2 つについて説明します。 これらの方法を示したサンプル デザインも付属しています。

このアプリ ケーシ ョ ン ノートの リ ファレンス デザインは、 次のリ ンクからダウンロードできます。

https://secure.xilinx.com/webreg/clickthrough.do?cid=359071

はじめに この文書で説明する AXI4 の統合方法は多くのデザインに適用できますが、 こ こでは具体的に 1 つのサンプル デザインを例にとって説明します。使用するサンプル デザインは、D/A コンバーター (DAC) 用の正弦波データ パターンをマイクロプロセッサによる介入なしに生成する自律型システムです。生成したデータは、アナログ ミ ッ クス ド シグナル (AMS) 評価カード (AMS101) [参照 1] の入力データ と して使用し ます。 ターゲッ ト ハード ウ ェア プラ ッ ト フ ォームには Zynq®-7000 All Programmable SoCZC702 評価キッ ト [参照 2] を使用します。 図 1 に、 このサンプル デザインのブロ ッ ク図を示します。

ZC702 評価キッ トの Zynq-7000 AP SoC と AMS 評価カード間の通信リ ンクには、SPI バスを使用します。 DDS 周波数を動的に増減できるよ うに、 プッシュボタン インターフェイスも用意しています。

AMS ボードには Analog Devices 社の AD5065 DAC [参照 9] が実装されています。AD5065 の最大 SPIク ロ ッ クは 50MHz です。 このデザインでは、 37.5MHz の SPI ク ロ ッ ク周波数を使用します。 AD5065では、 DAC のデータ更新間隔と して 2s の待ち時間が必要で、 この待ち時間をデザインで確保する必要があ り ます。AD5065 への SPI アクセスは 32 ビッ ト単位で行われるため、37.5MHz のクロ ッ ク レート では約 0.850s のアクセス時間が必要です。 よって、 このデザインでは DAC 更新レー ト を 3s(2 + 0.850 + マージン = 3) と しています。つま り、サポート される DAC サンプル レートは 333KS/s です。

アプリケーシ ョ ン ノート : Vivado IP インテグレーター

XAPP1204 (v1.0) 2014 年 6 月 18 日

Vivado IP インテグレーターを使用した AXI4 ベースの IP の統合方法著者 : Christopher Stillo、 Duncan Mackay、 Mike Mitchell

X-Ref Target - Figure 1

図 1 : サンプル デザインのブロック図

Page 2: Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

インプリ メンテーシ ョ ン

XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2

システムの中心となるのが DDS (Direct Digital Synthesizer) ブロ ッ クで、 こ こでルッ クアップ テーブル方式を用いて正弦波データを生成します。 DDS コンフ ィギュレーシ ョ ン ブロ ッ クには、 初期化 ( リセッ トのディアサート ) 時に DDS のコンフ ィギュレーシ ョ ンを実行する以外に、プッシュボタン入力をデバウンスし、ボタンの押下検出時に新しいワードをス ト リーム出力する機能があ り ます。DDS-to-SPIシム ブロ ッ クは、正弦波データに必要なデータ操作、および SPI インターフェイスのコンフ ィギュレーシ ョ ンを実行します。

ク ロ ッ ク / リ セ ッ ト ブロ ッ クは、 ZC702 の 200MHz オンボード ク ロ ッ クから合成した 150MHz のFPGA ク ロ ッ クを生成します。 FPGA ロジッ クのリセッ ト信号も このブロ ッ クで生成します。

このアプリ ケーシ ョ ン ノートでは、Vivado IP インテグレーター、System Generator、高位合成 (HLS)、Create and Package IP ウ ィザードを使用してサンプル デザインをインプ リ メ ン トおよび統合する手順を説明します。また、手順の説明に合わせて各段階のサンプル デザインのブロ ッ ク図も示していきます。

Vivado HLS を使用してロジッ ク シムを作成する場合、バス レベルの詳細なハンドシェイ ク処理をインプ リ メ ン トする必要があ り ません。 HLS ベースのアプローチでは、 各バス ト ランザクシ ョ ンに必要なデータ とアドレスを C、 C++、 SystemC 言語で記述するだけでインプリ メン トが完了します。

HLS を使用する以外に、 RTL ベースの Create and Package IP ウ ィザードでも AXI シムをインプ リ メン トできます。たとえば今回のサンプル デザインのよ うにプッシュボタンのデバウンス処理が必要な場合などは、 RTL (合成可能な VHDL または Verilog) の方がデザイン入力に適しているこ とがあ り ます。Create and Package IP ウ ィザードはサンプル インターフェイス コードのほか、デザインを IP インテグレーターで使用できるよ うにパッケージ化する機能も備えており、 AXI4 インターフェイス デザインを簡単に作成できます。

インプリ メンテーシ ョ ン

このセクシ ョ ンでは、サンプル デザインのインプリ メンテーシ ョ ンおよび統合の手順について説明します。 DDS (Direct Digital Synthesizer)、 SPI I/F、 ク ロ ッ ク / リセッ トの各ブロ ッ クは、 ザイ リ ンクスから提供される既製の IP を使用してロジッ クを生成できるため、 インプリ メン トが比較的容易です。

DDS Compiler

DDS のインプリ メン ト用に、ザイ リ ンクスは DDS Compiler [参照 3] を提供しています。DDS Compilerは、 Vivado IP カタログ、 IP インテグレーター、 System Generator で利用できます。 サンプル デザインでは、機能検証に Mathworks 社のシ ミ ュレーシ ョ ン環境を利用するため、そしてザイ リ ンクスの SystemGenerator と IP インテグレーターを使用した統合の手順を説明するため、 System Generator の DDSCompiler を選択しました。 図 2 に、 このデザインでインプ リ メン ト した DDS の System Generator モデルを示します。

System Generator モデルのシ ミ ュレーシ ョ ンを実行して結果に問題がなければ、次にこのモデルを統合します。 System Generator デザインを IP インテグレーター デザインにモジュールと して統合する手順の詳細は、 UG948 [参照 4] の Lab 9 で紹介している例を参照してください。

注記 : DDS ブロ ッ クは 150MHz のコア ク ロ ッ クに基づいて 150MS/s のデータを生成します。

X-Ref Target - Figure 2

図 2 : DDS の System Generator モデル

Page 3: Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

インプリ メンテーシ ョ ン

XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 3

AXI Quad SPI

AD5065 DAC の SPI ポート との通信を処理する SPI インターフェイスには、 AXI Quad SPI コア [参照 5] が適しています。アナログ ミ ッ クス ド シグナル (AMS) ターゲッ ト リ ファレンス デザイン (TRD)[参照 6] には、 このコアをこの用途に使用する場合のサンプルが用意されています。

ク ロ ッ ク / リ セッ ト ブロ ッ クのインプ リ メン トに必要なのは、 IP インテグレーターの Clocking Wizard[参照 7] ブロ ッ ク と Processor System Reset [参照 8] ブロ ッ クのみです。

注記 : Processor System Reset ブロ ッ クにはプロセッサは不要です。

図 3 に、 こ こまで説明したブロ ッ クのインプリ メ ン トが完了した時点のサンプル デザインを示します。こ こからは、 残りのブロ ッ クのインプ リ メ ンテーシ ョ ンについて詳し く説明します。 DDS のコンフ ィギュレーシ ョ ンおよび DDS-to-SPI シムの機能を実行する既製の IP ブロ ッ クは存在しないため、カスタム ロジッ クが必要です。

DDS コンフ ィギュレーシ ョ ン ブロック

まず、 DDS コンフ ィギュレーシ ョ ン ブロ ッ クから見ていきます。 DDS コアにはコンフ ィギュレーシ ョン用の AXI4-Stream スレーブ入力があ り ます。このコンフ ィギュレーシ ョ ン ポート を使用して DDS コアの周波数を動的に変更できます。 周波数の制御には、 前述のプッシュボタンを使用するのが適しています。 したがって、 プッシュボタン入力と AXI-Stream マスター出力を持つ IP ブロ ッ クを作成する と、DDS コンフ ィギュレーシ ョ ン機能をインプ リ メ ン ト できます。 プッシュボタン入力のデバウンスにはRTL によるインプリ メンテーシ ョ ンが適しているため、こ こでは RTL ベースのデザインを選択します。また、AXI インターフェイスを含むブロッ クの RTL テンプレート を生成するツールと して、Create andPackage IP ウ ィザードを使用します。

図 4 に、 dds_config_v1_0 IP インテグレーター ブロッ クを IP インテグレーターに追加したブロ ッ ク図を示します。config_register_value[31:0] 入力ポートは、周波数コンフ ィギュレーシ ョ ン データの開始値を指定します。 config_register_delta[31:0] ポートは、 プッシュボタンの 1 回の押下検出で周波数コンフ ィギュレーシ ョ ン データに加算/減算する値を指定します。incr_freq_pb と decr_freq_pb は、プッシュボタンからの入力です。 M00_AXIS ポートは DDS IP のコンフ ィギュレーシ ョ ンに使用する AXI ス トリームです。incr_freq_det と decr_freq_det はデバウンス回路からの出力で、デバッグでのみ使用します。

X-Ref Target - Figure 3

図 3 : サンプル デザインのインプリ メン ト (途中経過)

Page 4: Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

インプリ メンテーシ ョ ン

XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 4

図 5 に、 DDS コンフ ィギュレーシ ョ ン ブロ ッ クを追加したサンプル デザインを示します。

DDS-to-SPI シム ブロック

最後にインプ リ メン トが必要なのが、 DDS-to-SPI シム ブロ ッ クです。 DDS-to-SPI シム ブロ ッ クの要件を次に示します。

• AXI Quad SPI コアのコンフ ィギュレーシ ョ ンを実行する。 AXI Quad SPI は、 コンフ ィギュレーシ ョ ンとデータの両方に AXI スレーブ インターフェイスを使用します。 したがって、 このシム ブロ ッ クにはコンフ ィギュレーシ ョ ン データ と正弦波データ ソースを 「仮想的に多重化」 する機能が必要です。

X-Ref Target - Figure 4

図 4 : dds_config_v1_0 IPI ブロック

X-Ref Target - Figure 5

図 5 : DDS コンフ ィギュレーシ ョ ン ブロックを追加したサンプル デザイン

Page 5: Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

インプリ メンテーシ ョ ン

XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 5

• レジスタ設定は、 アナログ ミ ッ クス ド シグナル (AMS) ターゲッ ト リ ファレンス デザイン (TRD)[参照 6] に付属の C コードに基づきます。 コンフ ィギュレーシ ョ ン データは、 リセッ トがディアサート された後に送信されます。

• DDS データの間引き (デシメーシ ョ ン)。DDS ブロッ クは 150MS/s のレートでデータを生成しますが、DAC に入力できる最大データ レートは、更新レート を 3s に設定したため 333KS/s となっており、データの間引きが必要です。この処理は System Generator モジュールで実行するこ と も可能ですが、 こ こでは説明の便宜上、 HLS シムで実行します。

• DDS ブロ ッ クからの AXI4-Stream スレーブ出力を SPI ブロ ッ クの AXI4-Lite マスター入力に変換するブリ ッジ機能を実装する。

• 双極形式の DDS データを単極形式の DAC データに変換する。

• 入力ス ト リームからのデータをシフ ト して制御コードを追加し、 DAC のデータ ワード形式に揃える。 データ ワードのフォーマッ トは、 AD5065 DAC の仕様書 [参照 9] に記載されています。

この IP ブロ ッ クは、 Vivado HLS を使用して作成できます。 HLS の関数は、 C、 C++、 SystemC のいずれかでモジュールをコーディングして作成します。 このサンプル デザインでは、 C++ を使用しています。各種 AXI4 ポート を推論するためのコーディング コンス ト ラ ク トの詳細は、『Vivado Design Suiteユーザー ガイ ド : 高位合成』 (UG902) [参照 10] の 「インターフェイス合成」 を参照してください。

ソース コード

このセクシ ョ ンでは、 HLS の関数のソース コードを示します。

機能は、主に switch 文のコードで記述しています。 また、内部カウンターおよび状態変数もいくつか定義しています。 これらが使用するデータ型は、 コードの冒頭でインクルード してあるヘッダー ファ イルspi_axi_merge.h で定義しています。 これらのデータ型の詳細は、 サンプル デザインを参照して ください。

機能以外に、 このコードには Vivado HLS による最適化を指示するプラグマもいくつか記述してあ り ます。 具体的には、 次のとおりです。

• INTERFACE プラグマは、 デザインで使用する I/O プロ ト コルを指定します。

• 一部、 I/O プロ ト コルの指定のないポート もあ り ます (単純なデータ ポート )。

• 変数 m に対するインターフェイスは、 AXI-Master と指定されます。

• 変数 data_i に対するインターフェイスは、 AXI-Stream と指定されます。

• PIPELINE プラグマを使用する とデザインがパイプライン化され、 現在の入力が出力される前に次の入力を受け取るこ とができます。

• RESET プラグマは、特定のスタティ ッ ク変数を リセッ ト ポートに接続するよ う指定します (デフォルトの動作ではない)。

これら最適化の詳細は、『Vivado Design Suite ユーザー ガイ ド : 高位合成』 (UG902) [参照 10] を参照して ください。

//// spi_axi_merge.c//// This HLS function generates AXI-4 master transactions to initialize and// feed data to Xilinx IP core Quad SPI via its AXI-4-Lite port.See PG153// for info on the core.//// The SPI port for this application is connected to AD5065 DAC on AMS Eval.Board.// After initializing the SPI core, this function reads an input AXI data stream, formats// the data word for use by AD5065 on AMS Eval.Board. and sends the formatted// data word to the SPI core.

#include "spi_axi_merge.h"

void spi_axi_merge (volatile DT *m, STREAM_DT data_i[N],unsigned short decimation_factor, unsigned short *sample_count_out ) {

#pragma HLS PIPELINE II=1 enable_flush

Page 6: Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

インプリ メンテーシ ョ ン

XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 6

// Define the RTL interfaces#pragma HLS interface ap_stable port=sample_count_out#pragma HLS interface ap_stable port=decimation_factor#pragma HLS interface ap_ctrl_none port=return#pragma HLS interface m_axi port=m

// AXI4-Stream slave interface#pragma HLS interface axis port=data_i

STREAM_DT ddfs_data_bipolar;DT ddfs_data_unipolar;DT ddfs_data_unipolar_fmt;

static unsigned short sample_count = 1;#pragma HLS RESET variable=sample_countstatic unsigned char state = 0;#pragma HLS RESET variable=state

switch (state){case 0:// SPI Control Register setup*(m+SPICR_OFFSET) = 0x4 | 0x8 | 0x2; // Master, CPOL, SPEstate++;break;

case 1:// SPI Slave select Register setup (active low)*(m+SPISSR_OFFSET) = 0xFFFE;state++;break;

default:// read DDFS stream and decimate to meet DAC SPI bandwidth limitddfs_data_bipolar = data_i[0];// convert bipolar DDFS output to unipolar for DACddfs_data_unipolar = ddfs_data_bipolar + 32768;// shift by 4 for DAC SPI formatddfs_data_unipolar_fmt = ddfs_data_unipolar << 4;

if (sample_count < decimation_factor) {sample_count++;

} else {sample_count = 1;*(m+SPIDTR_OFFSET) = (0x03000000 | ddfs_data_unipolar_fmt); // format

input stream for DAC: write to channel A}

break;} // end switch

*sample_count_out = sample_count;

} // end of function

注記 : DDS-to-SPI シムには、spi_axi_merge ブロ ッ クの AXI4-Full マスター インターフェイスを QuadSPI コアに接続できるよ うに AXI4-Lite インターフェイスへ変換する AXI プロ ト コル コンバーターが必要です。 HLS は現在、 AXI4-Lite マスター インターフェイスをサポート していません。

Page 7: Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

リファレンス デザインまたはサンプル アプリケーシ ョ ン

XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 7

図 6 に、 インプ リ メン トが完了したサンプル デザインを示します。

リ ファレンス デザインまたはサンプル アプリケーシ ョ ン

このアプリ ケーシ ョ ン ノートに付属する ZIP ファ イルには、ZC702 評価キッ ト と AMS101 評価カードをターゲッ トにしたインプ リ メ ン ト済みサンプル デザインのファ イルが含まれます。 リ ファレンス デザインは次のウェブ サイ トから入手できます。https://secure.xilinx.com/webreg/clickthrough.do?cid=359071

表 1 に、 リ ファレンス デザインの詳細を示します。

X-Ref Target - Figure 6

図 6 : インプリ メン トが完了したサンプル デザイン

表 1 : リファレンス デザインの詳細

パラメーター 説明

全般

開発者 Christopher Stillo

ターゲッ ト デバイス (ステッピング レベル、ES、プロダクシ ョ ン、 スピード グレード )

Zynq-7000 AP SoC (ZC702)

ソース コードの提供 あ り

ソース コードの形式 VHDL/Verilog、 HLS、 SysGen

既存のザイ リ ンク ス アプ リ ケーシ ョ ン ノー ト /リ フ ァレンス デザイン、 サードパーティのソースからデザインへのコード /IP の使用

なし

シミ ュレーシ ョ ン

論理シ ミ ュレーシ ョ ンの実施 あ り

タイ ミ ング シ ミ ュレーシ ョ ンの実施 シ ミ ュレーシ ョ ンはサポートせず

論理シ ミ ュレーシ ョ ンおよびタイ ミ ング シ ミ ュレーシ ョ ンでのテス トベンチの利用

あ り

テス トベンチの形式 Verilog

使用したシ ミ ュレータ /バージ ョ ン Vivado Simulator 2014.1

SPICE/IBIS シ ミ ュレーシ ョ ンの実施 なし

インプリ メンテーシ ョ ン

使用した合成ツール/バージ ョ ン Vivado Design Suite 2014.1

Page 8: Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

リファレンス デザインまたはサンプル アプリケーシ ョ ン

XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 8

図 7 に、 IP インテグレーターのブロ ッ ク図でキャプチャしたデザインの最上位ブロ ッ ク図を示します。次に、 このサンプル デザインを再生成する手順について説明します。

1. 次の手順に従って、 3 つの IP コアを生成します。

a. DDS コンフ ィギュレーシ ョ ン ブロ ッ クを AXI4 ペリ フェラルと して作成する詳しい手順は、付録 A で説明します。 サンプルと して、 このブロ ッ クの完成した IP を ./vivado/ip_repoディ レク ト リに置いています。生成した IP は、./axi_peripheral/dds_config_1.0 ディレク ト リにあ り ます。

b. System Generator で DDS IP を生成するには、 MATLAB® Simulink® R2013a で./SysGen/dds.slx モデルを開きます。 モデルを開いたら、 System Generator トークンをダブルク リ ッ ク して [Generate] をク リ ッ ク します。 生成した IP は、./SysGen/dds_netlist/ip ディ レク ト リにあ り ます。

c. HLS spi_axi_merge IP を生成するには、 ./HLS ディ レク ト リに移動して Vivado HLS をインタラ クティブ モードで起動します。Vivado HLS のコマンド プロンプ トが表示されたら、sourceコマンドで spi_axi_merge Tcl スク リプ ト を読み込みます。 生成した IP は、./HLS/spi_axi_merge_prj/solution1/impl/ip ディ レク ト リにあ り ます。

2. Vivado Design Suite プロジェク ト を作成します。プロジェク トおよび IP インテグレーター ブロ ック図を生成するには、 次の手順に従います。

a. Vivado Design Suite 2014.1 を起動します。

b. Tcl コンソールから、 ディ レク ト リ を ./vivado に変更します。

c. source コマンドを実行して ./tcl/create_and_sim.tcl スク リプ ト を読み込みます。

使用したインプリ メンテーシ ョ ン ツール/バージ ョ ン

Vivado Design Suite 2014.1

スタティ ッ ク タイ ミ ング解析の実施あ り (Vivado インプ リ メ ンテーシ ョ ン ツールでタイ ミ ング検証に合格)

ハードウェア検証

ハードウェア検証の実施 あ り

使用したハード ウェア プラ ッ ト フォーム ZC702 評価キッ ト

表 1 : リファレンス デザインの詳細 (続き)

パラメーター 説明

X-Ref Target - Figure 7

図 7 : IPI に表示したインプリ メン ト完了後のサンプル デザイン

Page 9: Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

リファレンス デザインまたはサンプル アプリケーシ ョ ン

XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 9

このスク リプ トは次のタスクを実行します。

• ZC702 評価キッ ト をターゲッ トにした Vivado Design Suite プロジェク ト を作成する。

• 手順 1 で生成した 3 つの IP ブロ ッ クの IP リ ポジ ト リ を Vivado Design Suite プロジェク トに追加する。

• dac_stim_bd.tcl スク リプ ト を呼び出して、 IP インテグレーターのブロ ッ ク図および HDLラ ッパー ファ イルを作成する。

• テス トベンチ ファ イルを追加する。

• Vivado シ ミ ュレーシ ョ ン用にデザインをコンパイルして実行する。

テス トベンチには、 AMS 評価カード上の DAC の SPI インターフェイスをモデル化した SPI バススレーブ モデル (spi_slave.v) が含まれます。 このモデルには、 DAC に渡すデータ ワードの値を表現するレジスタ 「data_reg」 が含まれます。 シ ミ ュレーシ ョ ンで data_reg の値を ト レースするこ とによ り、 ハード ウェアで発生する DAC の動作を予測できます。

図 8 に、シ ミ ュレーシ ョ ン出力のスナップシ ョ ッ ト を示します。こ こには、SPI バス信号と data_regの値を示しています。 data_reg 信号の出力が正弦波の波形であるこ とに注意してください。 シ ミ ュレーシ ョ ンが完了したら、 波形に [Zoom Fit] を適用する と正弦波が表示されます。

3. サンプル デザインのインプ リ メンテーシ ョ ンの最後の手順と して、BIT ファ イルを作成し、ZC702プラ ッ ト フォームでテス ト します。手順 2 で作成した Vivado プロジェク トで [Generate Bitstream]をク リ ッ ク して BIT ファ イルを作成し、[Hardware Manager] ページでこの BIT ファ イルを ZC702FPGA に書き込みます。

表 2 に、 ZC702 の関連するボタン、 スイ ッチ、 LED を示します。

X-Ref Target - Figure 8

図 8 : シミ ュレーシ ョ ン波形

表 2 : ZC702 評価キッ トのピン、 ボタン、 スイッチ

FPGA ピン名 ZC702 参照番号 部品タイプ サンプル デザインの機能

GPIO_DIP_SW0 U12:1 DIP スイ ッチ システム リセッ ト (アクティブ High)

GPIO_DIP_SW1 U12:2 DIP スイ ッチ MMCM リセッ ト (アクティブ Low)

GPIO_SW_N SW5 プッシュボタン スイ ッチ

周波数増加

Page 10: Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

リファレンス デザインまたはサンプル アプリケーシ ョ ン

XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 10

サンプル デザインの通常動作中は、 リセッ ト スイ ッチをそれぞれ非アクティブな状態にします (U12:1 = オフ、 U12:2 = オン)。

サンプル デザインのハード ウェア検証を実行するには、 AMS101 評価カードの DAC 出力ピン J5-1 にプローブを接続し (図 9)、オシロスコープで観測します。出力の正弦波をオシロスコープに表示した後、周波数を微調整できます。 SW5 または SW7 ボタンを押して周波数を増減します。

GPIO_SW_P SW7 プッシュボタン スイ ッチ

周波数減少

PMOD1_0 DS19 ユーザー LED MMCM ロ ッ ク (アクティブ High)

PMOD1_1 DS20 ユーザー LEDシステム リセッ ト アクティブ

(アクティブ Low)

PMOD1_2 DS21 ユーザー LED周波数減少ボタンの

押下を検出する と ト グル

PMOD1_3 DS22 ユーザー LED周波数増加ボタンの

押下を検出する と ト グル

X-Ref Target - Figure 9

図 9 : AMS 評価カードの DAC 出力にプローブを接続

表 2 : ZC702 評価キッ トのピン、 ボタン、 スイッチ (続き)

FPGA ピン名 ZC702 参照番号 部品タイプ サンプル デザインの機能

Page 11: Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

まとめ

XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 11

図 10 に、 オシロスコープで観測した DAC 出力を示します。

まとめ このアプリ ケーシ ョ ン ノートでは、 Vivado HLS、 System Generator、 Create and Package IP ウ ィザードで生成した AXI ベースの IP の統合方法について説明しました。この文書で説明したサンプル デザインの生成手順を参考にすれば、さまざまな方法で作成した IP を Vivado IP インテグレーターで統合できます。Vivado HLS、System Generator、Create and Package IP ウ ィザードを使用する と、AXI インターフェイスを用いた IP を簡単に作成できます。 さ らに、 IP インテグレーターを使用する と各種 AXI インターフェイスを容易に接続できるため、 これらの接続を RTL でハンド コーディングした場合に比べ、生産性が飛躍的に向上します。

X-Ref Target - Figure 10

図 10 : AMS 評価カードの DAC 出力をオシロスコープで観測

Page 12: Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

付録 A : Create and Package IP ウィザードの例

XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 12

付録 A : Create and Package IP ウィザードの例

次に、 AXI4 ペリ フェラルを作成する手順の例を示します。

1. Vivado Design Suite で [Tools] → [Create and Package IP] をク リ ッ ク し、 Create and Package IPウ ィザードを開きます。 図 11 に、 このウ ィザードの最初の画面を示します。

2. 次の画面で [Create new AXI4 Peripheral] をオンにします (図 12)。

X-Ref Target - Figure 11

図 11 : AXI4 ペリフェラルの作成

X-Ref Target - Figure 12

図 12 : AXI4 ペリフェラルの作成

Page 13: Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

付録 A : Create and Package IP ウィザードの例

XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 13

3. ペリ フェラルの詳細が表示されます (図 13)。

4. 表示されているデフォルトのインターフェイスをマスター AXI-Stream インターフェイスに変更します (図 14)。

X-Ref Target - Figure 13

図 13 : 作成する AXI4 ペリフェラルに関する IP パッケージャーのデータ

X-Ref Target - Figure 14

図 14 : 作成する AXI4 ペリフェラルのインターフェイス コンフ ィギュレーシ ョ ン

Page 14: Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

付録 A : Create and Package IP ウィザードの例

XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 14

5. [Edit IP] をオンにして [Finish] をク リ ッ ク します (図 15)。

6. 図 16 は、 作成した AXI4 ペリ フェラルの IP プロジェク ト を開いた画面です。 [Sources] ビューには、 作成された 2 つの Verilog ファ イルが表示されています。 1 つは IP の最上位である dds_config_v1_0.v で、 も う 1 つは AXI マスター ス ト リームのテンプレート ロジッ クを含む dds_config_v1_0_M00_AXIS.v です。 このブロ ッ クの機能を実装するため、dds_config_v1_0.v を編集画面で開いてプッシュボタンのポート とデバウンス機能を追加します。 次に、 dds_config_v1_0_M00_AXIS.v を編集画面で開き、 プッシュボタンの押下を検出するたびに新しいデータ ワードがス ト リームに送信されるよ うにします。 添付のサンプル デザインには、 完成した Verilog ファ イルが含まれています。

X-Ref Target - Figure 15

図 15 : AXI4 ペリフェラルの作成

X-Ref Target - Figure 16

図 16 : AXI4 ペリフェラルの RTL を編集

Page 15: Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

参考資料

XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 15

7. RTL の編集が完了したら、 このデザインを IP インテグレーターで使用できるよ うにパッケージ化します。 IP ブロ ッ クにポート を追加したため、 [Package IP] タブを開いてポートの設定を再確認します。 [Merge changes from IP Ports and Interfaces Wizard] をク リ ッ クする と、 パッケージャーのポート リ ス トが自動的に更新されます。 図 17 に、 [IP Ports] タブを示します。

8. これで AXI4 ペリ フェラルのパッケージ化の準備ができました。 [Review and Package] をク リ ッ クして IP インテグレーター用の IP ブロ ッ クを作成します (図 18)。

参考資料 この文書の参考資料は次のとおりです。

1. 『AMS101 評価カード ユーザー ガイ ド』 (UG886)

2. 『ZC702 評価ボード ユーザー ガイ ド』 (UG850)

3. 『Vivado Design Suite 用 LogiCORE IP DDS Compiler v6.0 製品ガイ ド』 (PG141)

4. 『Vivado Design Suite チュート リ アル : System Generator を使用したモデル ベース DSP デザイン』(UG948)

5. 『Vivado Design Suite 用 LogiCORE IP AXI Quad SPI v3.1 製品ガイ ド』 (PG153)

X-Ref Target - Figure 17

図 17 : AXI4 ペリフェラルのパッケージ済みポート リス ト を更新

X-Ref Target - Figure 18

図 18 : AXI4 ペリフェラルのパッケージ化

Page 16: Vivado IP AXI4 IP - Xilinx...インプリメンテーション XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 2システムの中心となるのが DDS (Direct Digital Synthesizer

改訂履歴

XAPP1204 (v1.0) 2014 年 6 月 18 日 japan.xilinx.com 16

6. アナログ ミ ッ クス ド シグナル (AMS) ターゲッ ト リ ファレンス デザイン (RDF0277)

7. 『Vivado Design Suite 用 LogiCORE IP Clocking Wizard v5.1 製品ガイ ド』 (PG065)

8. 『Vivado Design Suite 用 LogiCORE IP Processor System Reset Module v5.0 製品ガイ ド』 (PG164)

9. AD5065 DAC データシート (Analog Devices 社ウェブサイ ト )

10. 『Vivado Design Suite ユーザー ガイ ド : 高位合成』 (UG902)

改訂履歴 次の表に、 この文書の改訂履歴を示します。

Notice of Disclaimer

The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and useof Xilinx products. To the maximum extent permitted by applicable law: (1) Materials are made available"AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND CONDITIONS,EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OFMERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE;and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any othertheory of liability) for any loss or damage of any kind or nature related to, arising under, or in connectionwith, the Materials (including your use of the Materials), including for any direct, indirect, special,incidental, or consequential loss or damage (including loss of data, profits, goodwill, or any type of lossor damage suffered as a result of any action brought by a third party) even if such damage or loss wasreasonably foreseeable or Xilinx had been advised of the possibility of the same. Xilinx assumes noobligation to correct any errors contained in the Materials or to notify you of updates to the Materials orto product specifications. You may not reproduce, modify, distribute, or publicly display the Materialswithout prior written consent. Certain products are subject to the terms and conditions of the LimitedWarranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject towarranty and support terms contained in a license issued to you by Xilinx. Xilinx products are notdesigned or intended to be fail-safe or for use in any application requiring fail-safe performance; youassume sole risk and liability for use of Xilinx products in Critical Applications: http://www.xilinx.com/warranty.htm#critapps.

本資料は英語版 (v1.0) を翻訳したもので、 内容に相違が生じる場合には原文を優先します。資料によっては英語版の更新に対応していないものがあ り ます。日本語版は参考用と してご使用の上、 最新情報につきましては、 必ず最新英語版をご参照ください。

この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、[email protected] までお知らせください。 いただきましたご意見を参考に早急に対応させていただきます。 なお、 このメール アドレスへのお問い合わせは受け付けており ません。 あらかじめご了承ください。

日付 バージョ ン 内容

2014 年 6 月 18 日 1.0 初版