610
UltraScale アーキテクチャ ライブラリ ガイド UG974 (v2018.1) 2018 4 4 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資 料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報 につきましては、必ず最新英語版をご参照ください。

UltraScale アーキテクチャ ライブラリ ガイド (UG974)...UltraScale アーキテクチャ ライブラリ ガイド UG974 (v2018.1) 2018 年 4 月 4 日 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資

  • Upload
    others

  • View
    17

  • Download
    0

Embed Size (px)

Citation preview

  • UltraScale アーキテクチャ ライブラリ ガイドUG974 (v2018.1) 2018 年 4 月 4 日

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

    https://www.xilinx.com

  • 第 1 章

    はじめに概要HDL 用ライブラリ ガイドは、Vivado® Design Suite の資料の 1 つです。次の内容が含まれます。• はじめに• 各マクロの詳細説明• このアーキテクチャでサポートされるプリミティブとマクロのファンクション別リスト• 各プリミティブの詳細説明

    デザイン エレメントについてこのバージョンのライブラリ ガイドでは、UltraScale™ および UltraScale+™ ファミリを含む UltraScale アーキテクチャ ベースのデバイスのデザイン エレメントの説明とそのインスタンシエーション コード例を示します。インスタンシエーション テンプレートは、https://japan.xilinx.com から個別の ZIP ファイルとしてダウンロードするか、Vivado®Design Suite の言語テンプレートから使用できます。デザイン エレメントは、次のカテゴリに分類されます。• マクロ: ザイリンクス ツールのザイリンクス パラメーター指定マクロ ライブラリに含まれ、プリミティブだけでは複雑すぎてインスタンシエートしにくいエレメントをインスタンシエートする際に使用します。マクロは、合成ツールで自動的に下位プリミティブに展開されます。

    重要: 以前のジェネレーションのザイリンクス FPGA アーキテクチャからの UniMacro は UltraScale アーキテクチャではサポートされておらず、ザイリンクス パラメーター指定マクロに置き換えられています。• プリミティブ: ザイリンクスターゲットにしているアーキテクチャ用のザイリンクス コンポーネントです。

    デザインの入力方法ザイリンクスでは各デザイン エレメントに対して次の使用方法を評価しており、このガイドではどの使用方法が適切であるかを示します。• インスタンシエーション: コンポーネントはデザインに直接インスタンシエートできます。これは、各ブロックの使用、インプリメンテーション、または配置を厳密に制御する場合に有効な方法です。

    • 推論: コンポーネントはサポートされる合成ツールで推論されます。コードは柔軟性および移植性に優れているので、複数のアーキテクチャで使用できます。推論を使用すると、パフォーマンス、エリア、消費電力など、合成ツールでの指定に基づいて最適化できます。

    • IP および IP インテグレーター カタログ コンポーネントは IP カタログからインスタンシエートできます。IP カタログは、複雑なファンクションを実行するために複数のプリミティブから構築された IP コアと、複雑なプリミティブをインスタンシエートするためのインターフェイスのライブラリです。このガイドで IP カタログと言った場合は通常は後者を指しており、IP カタログを特定のプリミティブをデザインに組み込むために使用します。

    第 1 章: はじめに

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 2

    https://japan.xilinx.comhttps://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=2

  • 第 2 章

    ザイリンクス パラメーター指定マクロザイリンクス パラメーター指定マクロについてこのセクションでは、UltraScale™ アーキテクチャ ベースのデバイスで使用可能なザイリンクス パラメーター指定マクロについて説明します。マクロは、アルファベット順に並べられています。重要: 以前のジェネレーションのザイリンクス FPGA アーキテクチャからの UniMacro は UltraScale アーキテクチャではサポートされておらず、ザイリンクス パラメーター指定マクロに置き換えられています。各マクロについて、次の情報を示します。• 名前、説明、マクロ グループ、マクロ サブグループ、およびファミリ• 回路図シンボル• 概要• ロジック図• ポートの説明• デザインの入力方法• 使用可能な属性• インスタンシエーション テンプレートの例• その他のリソースへのリンクザイリンクス パラメーター指定マクロのイネーブルVivado で XPM ライブラリを使用できるようにするには、次の手順に従います。1. Vivado で XPM が認識されるようにします。

    • IDE またはプロジェクト フローを使用している場合、プロジェクトに追加されたファイルが解析され、Vivadoで XPM を認識できるよう設定されます。

    • 非プロジェクト フローを使用している場合は、auto_detect_xpm コマンドを実行する必要があります。2. 使用する XPM テンプレートを選択します。3. テンプレートの内容をコピーし、ソース ファイルに貼り付けます。4. コードのコメントの説明に従って、パラメーター/ジェネリックを設定し、ポートを接続します。注記: XPM を正しく使用するため、テンプレートのコード コメントをすべて読み、それに従ってください。

    テストベンチXPM CDC マクロのテストベンチは、XPM CDC テストベンチ ファイルに含まれています。

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 3

    https://www.xilinx.com/cgi-bin/docs/ctdoc?cid=17338181-de44-49ab-8ef5-1605d5ec5f75;d=xpm-cdc-testbench.ziphttps://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=3

  • XPM FIFO マクロのテストベンチは、XPM FIFO テストベンチ ファイルに含まれています。

    インスタンシエーション テンプレートザイリンクス パラメーター指定マクロのインスタンシエーション テンプレートは、Vivado 内およびダウンロード可能な ZIP ファイルで提供されています。PDF にはヘッダーおよびフッターも含まれているので、複数ページにまたがるコードをコピーする必要がある場合は、Vivado またはダウンロード可能な ZIP ファイルからテンプレートをコピーしてください。インスタンシエーション テンプレートは、ザイリンクス ウェブサイトのザイリンクス パラメーター指定マクロのインスタンシエーション テンプレート ファイルから入手できます。

    ザイリンクス パラメーター指定マクロのリスト

    デザイン エレメント 説明 マクロ サブグループXPM_CDC_ARRAY_SINGLE パラメーター指定マクロ: Single-bit Array Synchronizer CDCXPM_CDC_ASYNC_RST パラメーター指定マクロ: Asynchronous Reset Synchronizer CDCXPM_CDC_GRAY パラメーター指定マクロ: Synchronizer via Gray Encoding CDCXPM_CDC_HANDSHAKE パラメーター指定マクロ: Bus Synchronizer with Full

    HandshakeCDC

    XPM_CDC_PULSE パラメーター指定マクロ: Pulse Transfer CDCXPM_CDC_SINGLE パラメーター指定マクロ: Single-bit Synchronizer CDCXPM_CDC_SYNC_RST パラメーター指定マクロ: Synchronous Reset Synchronizer CDCXPM_FIFO_ASYNC パラメーター指定マクロ: Asynchronous FIFO FIFOXPM_FIFO_AXIS パラメーター指定マクロ: AXI4-Stream FIFO FIFOXPM_FIFO_SYNC パラメーター指定マクロ: Synchronous FIFO FIFOXPM_MEMORY_DPDISTRAM パラメーター指定マクロ: Dual Port Distributed RAM メモリXPM_MEMORY_DPROM パラメーター指定マクロ: Dual Port ROM メモリXPM_MEMORY_SDPRAM パラメーター指定マクロ: Simple Dual Port RAM メモリXPM_MEMORY_SPRAM パラメーター指定マクロ: Single Port RAM メモリXPM_MEMORY_SPROM パラメーター指定マクロ: Single Port ROM メモリXPM_MEMORY_TDPRAM パラメーター指定マクロ: True Dual Port RAM メモリ

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 4

    https://www.xilinx.com/cgi-bin/docs/ctdoc?cid=83286225-e634-450f-b026-c9ef5aec870d;d=xpm-fifo-testbench.ziphttps://www.xilinx.com/cgi-bin/docs/rdoc?v=2018.1;d=XPM_Library_Guide_2018.1_HDL_Templates.ziphttps://www.xilinx.com/cgi-bin/docs/rdoc?v=2018.1;d=XPM_Library_Guide_2018.1_HDL_Templates.ziphttps://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=4

  • XPM_CDC_ARRAY_SINGLEパラメーター指定マクロ: Single-bit Array Synchronizer

    MACRO_GROUP: XPM

    マクロ サブグループ: XPM_CDCファミリ: 7 シリーズ、UltraScale、UltraScale+

    XPM_CDC_ARRAY_SINGLE

    src_in[n:0] dest_out[n:0]

    dest_clk

    src_clk

    X15897-031116

    概要ソース クロック ドメインからデスティネーション クロック ドメインに 1 ビット信号の配列を合成します。正しく動作させるため、入力データをデスティネーション クロックで複数回サンプリングする必要があります。シンクロナイザーで使用するレジスタの段数を定義できます。オプションの入力レジスタを使用すると、ソース クロックドメインの入力を同期化する前にレジスタに取り込むことができます。また、シミュレーション機能をイネーブルにし、マクロの誤った使用をレポートするメッセージを生成することもできます。注記: このマクロでは、ソース配列の各ビットが独立しており、保持する必要のある関連性が定義されていないことが必要です。配列の各ビットに保持する必要のある関連性がある場合は、XPM_CDC_HANDSHAKE またはXPM_CDC_GRAY マクロを使用してください。ポートの説明

    ポート 方向 幅 ドメイン 認識されるエッジ/ステート使用しない場合の処理 機能

    dest_clk 入力 1 なし EDGE_RISING

    アクティブ デスティネーション クロック ドメインのクロック信号。dest_out 出力 WIDTH dest_clk なし アクティブ デスティネーション クロック ドメインに同期化された src_in。この出力はレジスタに取り込まれます。src_clk 入力 1 なし EDGE

    _RISING0 SRC_INPUT_REG が 0 の場合は使用されません。SRC_INPUT_REG が 1 の場合は src_inの入力クロック信号となります。

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 5

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=5

  • ポート 方向 幅 ドメイン 認識されるエッジ/ステート使用しない場合の処理 機能

    src_in 入力 WIDTH src_clk なし アクティブ デスティネーション クロック ドメインに同期化される入力 1 ビット配列。配列の各ビットはほかのビットと関連性がないと想定されます。これは、このマクロの制約で指定されています。2 つのクロック ドメイン間で 2 進値をロスレスで転送するには、XPM_CDC_GRAY マクロを使用してください。

    デザインの入力方法インスタンシエーション 可推論 不可IP および IP インテグレーター カタログ 不可

    使用可能な属性

    属性 データ型 有効な値 デフォルト 説明DEST_SYNC_FF 10 進数 2 ~ 10 4 デスティネーション クロック ドメインの信号に同期化するのに使用するレジスタの段数を指定します。INIT_SYNC_FF 10 進数 0、1 0 0: 同期化レジスタのビヘイビアー シミュレーション初期値をディスエーブルにします。

    1: 同期化レジスタのビヘイビアー シミュレーション初期値をイネーブルにします。SIM_ASSERT_CHK 10 進数 0、1 0 0: シミュレーション メッセージのレポートをディスエーブルにします。誤った使用に関するメッセージはレポートされません。

    1: シミュレーション メッセージのレポートをイネーブルにします。誤った使用に関するメッセージがレポートされます。SRC_INPUT_REG 10 進数 1、0 1 0: 入力 (src_in) をレジスタに取り込みません。

    1: 入力 (src_in) を src_clk を使用してレジスタに取り込みます。WIDTH 10 進数 1 ~ 1024 2 デスティネーション クロック ドメインに同期化する

    1 ビット配列 (src_in) の幅を指定します。

    VHDL インスタンシエーション テンプレート次の 2 つの文が存在しない場合は、コピーしてエンティティ宣言の前に貼り付けます。Library xpm;use xpm.vcomponents.all;

    -- xpm_cdc_array_single: Single-bit Array Synchronizer-- Xilinx Parameterized Macro, version 2018.1

    xpm_cdc_array_single_inst : xpm_cdc_array_singlegeneric map ( DEST_SYNC_FF => 4, -- DECIMAL; range: 2-10 INIT_SYNC_FF => 0, -- DECIMAL; integer; 0=disable simulation init values, 1=enable simulation init -- values

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 6

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=6

  • SIM_ASSERT_CHK => 0, -- DECIMAL; integer; 0=disable simulation messages, 1=enable simulation messages SRC_INPUT_REG => 1, -- DECIMAL; 0=do not register input, 1=register input WIDTH => 2 -- DECIMAL; range: 1-1024)port map ( dest_out => dest_out, -- WIDTH-bit output: src_in synchronized to the destination clock domain. This -- output is registered.

    dest_clk => dest_clk, -- 1-bit input: Clock signal for the destination clock domain. src_clk => src_clk, -- 1-bit input: optional; required when SRC_INPUT_REG = 1 src_in => src_in -- WIDTH-bit input: Input single-bit array to be synchronized to destination clock -- domain. It is assumed that each bit of the array is unrelated to the others. -- This is reflected in the constraints applied to this macro. To transfer a binary -- value losslessly across the two clock domains, use the XPM_CDC_GRAY macro -- instead.

    );

    -- End of xpm_cdc_array_single_inst instantiation

    Verilog インスタンシエーション テンプレート

    // xpm_cdc_array_single: Single-bit Array Synchronizer// Xilinx Parameterized Macro, version 2018.1

    xpm_cdc_array_single #( .DEST_SYNC_FF(4), // DECIMAL; range: 2-10 .INIT_SYNC_FF(0), // DECIMAL; integer; 0=disable simulation init values, 1=enable simulation init // values .SIM_ASSERT_CHK(0), // DECIMAL; integer; 0=disable simulation messages, 1=enable simulation messages .SRC_INPUT_REG(1), // DECIMAL; 0=do not register input, 1=register input .WIDTH(2) // DECIMAL; range: 1-1024)xpm_cdc_array_single_inst ( .dest_out(dest_out), // WIDTH-bit output: src_in synchronized to the destination clock domain. This // output is registered.

    .dest_clk(dest_clk), // 1-bit input: Clock signal for the destination clock domain. .src_clk(src_clk), // 1-bit input: optional; required when SRC_INPUT_REG = 1 .src_in(src_in) // WIDTH-bit input: Input single-bit array to be synchronized to destination clock // domain. It is assumed that each bit of the array is unrelated to the others. This // is reflected in the constraints applied to this macro. To transfer a binary value // losslessly across the two clock domains, use the XPM_CDC_GRAY macro instead.

    );

    // End of xpm_cdc_array_single_inst instantiation

    詳細情報• XPM CDC テストベンチ ファイル• UltraScale デバイスの資料

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 7

    https://www.xilinx.com/cgi-bin/docs/ctdoc?cid=17338181-de44-49ab-8ef5-1605d5ec5f75;d=xpm-cdc-testbench.ziphttps://japan.xilinx.com/cgi-bin/docs/ndoc?t=user+guides+ultrascalehttps://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=7

  • XPM_CDC_ASYNC_RSTパラメーター指定マクロ: Asynchronous Reset Synchronizer

    MACRO_GROUP: XPM

    マクロ サブグループ: XPM_CDCファミリ: 7 シリーズ、UltraScale、UltraScale+

    XPM_CDC_ASYNC_RST

    src_arst dest_arst

    dest_clk

    X15902-031116

    概要非同期リセット信号をデスティネーション クロック ドメインに同期化します。出力されるリセット出力は入力に対して非同期にアサートされますが、出力のディアサートはデスティネーション クロック ドメインに同期します。アサート時のリセット信号の極性と最小出力パルス幅を定義できます。最小出力パルス幅は、シンクロナイザーで使用するレジスタの段数により制御されます。注記: 最小入力パルスのアサートは、レジスタのリセットまたはセット ピンのセットアップおよびホールド要件に依存します。ターゲット アーキテクチャの DC 特性およびスイッチ特性データシートを参照してください。ポートの説明

    ポート 方向 幅 ドメイン 認識されるエッジ/ステート使用しない場合の処理 機能

    dest_arst 出力 1 dest_clk なし アクティブ デスティネーション クロック ドメインに同期化された src_arst 非同期リセット信号。この出力はレジスタに取り込まれます。注記: この信号は非同期にアサートされますが、ディアサートは dest_clk に同期します。リセット信号の幅は、(DEST_SYNC_FF*dest_clk) 周期以上である必要があります。

    dest_clk 入力 1 なし EDGE_RISING

    アクティブ デスティネーション クロック。

    src_arst 入力 1 なし なし アクティブ ソース非同期リセット信号。

    デザインの入力方法インスタンシエーション 可

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 8

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=8

  • 推論 不可IP および IP インテグレーター カタログ 不可

    使用可能な属性

    属性 データ型 有効な値 デフォルト 説明DEST_SYNC_FF 10 進数 2 ~ 10 4 デスティネーション クロック ドメインの信号に同期化するのに使用するレジスタの段数を指定します。このパラメーターは、アサートされたリセット信号の最小幅も制御します。INIT_SYNC_FF 10 進数 0、1 0 0: 同期化レジスタのビヘイビアー シミュレーション初期値をディスエーブルにします。

    1: 同期化レジスタのビヘイビアー シミュレーション初期値をイネーブルにします。RST_ACTIVE_HIGH 10 進数 0、1 0 非同期リセット信号の極性を定義します。

    • 0: アクティブ Low の非同期リセット信号• 1: アクティブ High の非同期リセット信号

    VHDL インスタンシエーション テンプレート次の 2 つの文が存在しない場合は、コピーしてエンティティ宣言の前に貼り付けます。Library xpm;use xpm.vcomponents.all;

    -- xpm_cdc_async_rst: Asynchronous Reset Synchronizer-- Xilinx Parameterized Macro, version 2018.1

    xpm_cdc_async_rst_inst : xpm_cdc_async_rstgeneric map ( DEST_SYNC_FF => 4, -- DECIMAL; range: 2-10 INIT_SYNC_FF => 0, -- DECIMAL; 0=disable simulation init values, 1=enable simulation init values RST_ACTIVE_HIGH => 0 -- DECIMAL; 0=active low reset, 1=active high reset)port map ( dest_arst => dest_arst, -- 1-bit output: src_arst asynchronous reset signal synchronized to destination -- clock domain. This output is registered. NOTE: Signal asserts asynchronously -- but deasserts synchronously to dest_clk. Width of the reset signal is at least -- (DEST_SYNC_FF*dest_clk) period.

    dest_clk => dest_clk, -- 1-bit input: Destination clock. src_arst => src_arst -- 1-bit input: Source asynchronous reset signal.);

    -- End of xpm_cdc_async_rst_inst instantiation

    Verilog インスタンシエーション テンプレート

    // xpm_cdc_async_rst: Asynchronous Reset Synchronizer// Xilinx Parameterized Macro, version 2018.1

    xpm_cdc_async_rst #( .DEST_SYNC_FF(4), // DECIMAL; range: 2-10 .INIT_SYNC_FF(0), // DECIMAL; 0=disable simulation init values, 1=enable simulation init values .RST_ACTIVE_HIGH(0) // DECIMAL; 0=active low reset, 1=active high reset)xpm_cdc_async_rst_inst ( .dest_arst(dest_arst), // 1-bit output: src_arst asynchronous reset signal synchronized to destination // clock domain. This output is registered. NOTE: Signal asserts asynchronously

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 9

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=9

  • // but deasserts synchronously to dest_clk. Width of the reset signal is at least // (DEST_SYNC_FF*dest_clk) period.

    .dest_clk(dest_clk), // 1-bit input: Destination clock. .src_arst(src_arst) // 1-bit input: Source asynchronous reset signal.);

    // End of xpm_cdc_async_rst_inst instantiation

    詳細情報• XPM CDC テストベンチ ファイル• UltraScale デバイスの資料

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 10

    https://www.xilinx.com/cgi-bin/docs/ctdoc?cid=17338181-de44-49ab-8ef5-1605d5ec5f75;d=xpm-cdc-testbench.ziphttps://japan.xilinx.com/cgi-bin/docs/ndoc?t=user+guides+ultrascalehttps://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=10

  • XPM_CDC_GRAYパラメーター指定マクロ: Synchronizer via Gray Encoding

    MACRO_GROUP: XPM

    マクロ サブグループ: XPM_CDCファミリ: 7 シリーズ、UltraScale、UltraScale+

    XPM_CDC_GRAY

    src_in_bin[n:0] dest_out_bin[n:0]

    dest_clk

    src_clk

    X15898-031116

    概要ソース クロック ドメインからの 2 進入力をグレイ コードを使用してデスティネーション クロック ドメインに同期化します。正しく動作させるため、入力データをデスティネーション クロックで複数回サンプリングする必要があります。このモジュールは、入力 2 進信号をグレイ コードに変換してレジスタに取り込み、デスティネーション クロック ドメインに同期化した後、2 進信号に変換し戻します。シンクロナイザーで使用するレジスタの段数を定義できます。また、シミュレーション機能をイネーブルにし、マクロの誤った使用をレポートするメッセージを生成することもできます。このマクロはグレイ エンコードを使用するので、マクロに入力された 2 進値は 1 だけインクリメントまたはデクリメントし、同期化される信号が 1 ビットだけ異なる連続した 2 つの値になるようにする必要があります。これにより、グレイ コード バスがロスレスで同期化されます。2 進値の動作がグレイ エンコードに互換していない場合は、XPM_CDC_HANDSHAKE マクロを使用するか、別の方法を使用してデータをデスティネーション クロック ドメインに同期化してください。SIM_LOSSLESS_GRAY_CHK を使用すると、2 つの連続する値が 1 だけインクリメントまたはデクリメントする必要があるグレイ コードの規則に従っていない 2 進入力値が検出された場合にエラー メッセージが表示されます。注記: XPM_CDC_GRAY モジュールが使用されているデザインで report_cdc を実行すると、このモジュールのシンクロナイザーが複数ビットで同期化され、ASYNC_REG プロパティが設定されているという CDC-6 警告が表示されます。同期化されるバスはグレイ コードでエンコードされているので、この警告は無視しても問題ありません。report_cdc を実行して CDC 構造を特定し、クリティカル警告がレポートされないことを確認するのに加え、dest_clkで src_in_bin[n:0] を複数回サンプリングできることを検証する必要があります。

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 11

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=11

  • ポートの説明

    ポート 方向 幅 ドメイン 認識されるエッジ/ステート使用しない場合の処理 機能

    dest_clk 入力 1 なし EDGE_RISING

    アクティブ デスティネーション クロック。

    dest_out_bin 出力 WIDTH dest_clk なし アクティブ デスティネーション クロック ドメインに同期化されたバイナリ入力バス (src_in_bin)。REG_OUTPUT が 1 に設定されている場合以外は、この出力は組み合わせ出力です。

    src_clk 入力 1 なし EDGE_RISING

    アクティブ ソース クロック。

    src_in_bin 入力 WIDTH src_clk なし アクティブ デスティネーション クロック ドメインに同期化される 2 進入力バス。

    デザインの入力方法インスタンシエーション 可推論 不可IP および IP インテグレーター カタログ 不可

    使用可能な属性

    属性 データ型 有効な値 デフォルト 説明DEST_SYNC_FF 10 進数 2 ~ 10 4 デスティネーション クロック ドメインの信号に同期化するのに使用するレジスタの段数を指定します。INIT_SYNC_FF 10 進数 0、1 0 0: 同期化レジスタのビヘイビアー シミュレーション初期値をディスエーブルにします。

    1: 同期化レジスタのビヘイビアー シミュレーション初期値をイネーブルにします。REG_OUTPUT 10 進数 0、1 0 0: 出力にレジスタを付けません。

    1: 出力にレジスタを付けます。SIM_ASSERT_CHK 10 進数 0、1 0 0: シミュレーション メッセージのレポートをディスエーブルにします。誤った使用に関するメッセージはレポートされません。

    1: シミュレーション メッセージのレポートをイネーブルにします。誤った使用に関するメッセージがレポートされます。SIM_LOSSLESS_GRAY_CHK

    10 進数 0、1 0 0: src_in_bin が 1 だけインクリメントまたはデクリメントされており、グレイ コード バスがロスレスで同期化されるようになっているかどうかをレポートするシミュレーション メッセージをディスエーブルにします。1: src_in_bin が 1 だけインクリメントまたはデクリメントされており、グレイ コード バスがロスレスで同期化されるようになっているかどうかをレポートするシミュレーション メッセージをイネーブルにします。

    WIDTH 10 進数 2 ~ 32 2 デスティネーション クロック ドメインに同期化される 2 進入力バスの幅を指定します。

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 12

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=12

  • VHDL インスタンシエーション テンプレート次の 2 つの文が存在しない場合は、コピーしてエンティティ宣言の前に貼り付けます。Library xpm;use xpm.vcomponents.all;

    -- xpm_cdc_gray: Synchronizer via Gray Encoding-- Xilinx Parameterized Macro, version 2018.1

    xpm_cdc_gray_inst : xpm_cdc_graygeneric map ( DEST_SYNC_FF => 4, -- DECIMAL; range: 2-10 INIT_SYNC_FF => 0, -- DECIMAL; integer; 0=disable simulation init values, 1=enable simulation -- init values REG_OUTPUT => 0, -- DECIMAL; integer; 0=disable registered output, 1=enable registered output SIM_ASSERT_CHK => 0, -- DECIMAL; integer; 0=disable simulation messages, 1=enable simulation -- messages SIM_LOSSLESS_GRAY_CHK => 0, -- DECIMAL; integer; 0=disable lossless check, 1=enable lossless check WIDTH => 2 -- DECIMAL; range: 2-32)port map ( dest_out_bin => dest_out_bin, -- WIDTH-bit output: Binary input bus (src_in_bin) synchronized to -- destination clock domain. This output is combinatorial unless REG_OUTPUT -- is set to 1.

    dest_clk => dest_clk, -- 1-bit input: Destination clock. src_clk => src_clk, -- 1-bit input: Source clock. src_in_bin => src_in_bin -- WIDTH-bit input: Binary input bus that will be synchronized to the -- destination clock domain.

    );

    -- End of xpm_cdc_gray_inst instantiation

    Verilog インスタンシエーション テンプレート

    // xpm_cdc_gray: Synchronizer via Gray Encoding// Xilinx Parameterized Macro, version 2018.1

    xpm_cdc_gray #( .DEST_SYNC_FF(4), // DECIMAL; range: 2-10 .INIT_SYNC_FF(0), // DECIMAL; integer; 0=disable simulation init values, 1=enable simulation // init values .REG_OUTPUT(0), // DECIMAL; integer; 0=disable registered output, 1=enable registered output .SIM_ASSERT_CHK(0), // DECIMAL; integer; 0=disable simulation messages, 1=enable simulation // messages .SIM_LOSSLESS_GRAY_CHK(0), // DECIMAL; integer; 0=disable lossless check, 1=enable lossless check .WIDTH(2) // DECIMAL; range: 2-32)xpm_cdc_gray_inst ( .dest_out_bin(dest_out_bin), // WIDTH-bit output: Binary input bus (src_in_bin) synchronized to // destination clock domain. This output is combinatorial unless REG_OUTPUT // is set to 1.

    .dest_clk(dest_clk), // 1-bit input: Destination clock. .src_clk(src_clk), // 1-bit input: Source clock. .src_in_bin(src_in_bin) // WIDTH-bit input: Binary input bus that will be synchronized to the // destination clock domain.

    );

    // End of xpm_cdc_gray_inst instantiation

    詳細情報• XPM CDC テストベンチ ファイル• UltraScale デバイスの資料

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 13

    https://www.xilinx.com/cgi-bin/docs/ctdoc?cid=17338181-de44-49ab-8ef5-1605d5ec5f75;d=xpm-cdc-testbench.ziphttps://japan.xilinx.com/cgi-bin/docs/ndoc?t=user+guides+ultrascalehttps://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=13

  • XPM_CDC_HANDSHAKEパラメーター指定マクロ: Bus Synchronizer with Full Handshake

    MACRO_GROUP: XPM

    マクロ サブグループ: XPM_CDCファミリ: 7 シリーズ、UltraScale、UltraScale+

    XPM_CDC_HANDSHAKE

    src_in[n:0] dest_out[n:0]

    dest_clk

    src_send

    dest_ack

    src_clk

    dest_req

    src_rcv

    X15899-031116

    概要ハンドシェイク信号を使用して、入力バスをソース クロック ドメインからデスティネーション クロック ドメインに転送します。このマクロの使用例として、転送するデータがグレイ エンコードを使用する XPM_CDC_GRAY マクロと互換性がない場合があります。このマクロが正しく機能するようにするには、別のデータの転送が開始する前に、ハンドシェーク (転送データの受信を確認、ハンドシェイク信号のリセットを確認) が完全に終了していることが必要です。クロック ドメイン間でハンドシェイク信号を転送するためのシンクロナイザーで使用するレジスタの段数を定義できます。デスティネーション クロック ドメインでのデータの受信を確認するため、内部ハンドシェーク ロジックを含めることもできます。この機能をイネーブルにした場合、データ Valid (dest_req) がアサートされた直後に出力(dest_out) が使用される必要があります。また、シミュレーション機能をイネーブルにし、マクロの誤った使用をレポートするメッセージを生成することもできます。マクロに供給される信号が上記の使用ガイダンスに違反している場合に、エラー メッセージが生成されます。注記: XPM_CDC_HANDSHAKE モジュールが使用されているデザインで report_cdc を実行すると、このモジュールで同期化されるデータ バスに対して「 Clock Enable Controlled CDC」という CDC-15 警告が表示されます。この警告メッセージは、無視しても問題ありません。report_cdc を実行して CDC 構造を特定し、クリティカル警告がレポートされないことを確認するのに加え、dest_clkで src_in[n:0] を複数回サンプリングできることを検証する必要があります。

    外部ハンドシェーク次の波形は、外部ハンドシェークを使用した場合に連続したデータがどのように送信されるかを示します。

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 14

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=14

  • 内部ハンドシェーク次の波形は、内部ハンドシェークを使用した場合に連続したデータがどのように送信されるかを示します。

    ポートの説明

    ポート 方向 幅 ドメイン 認識されるエッジ/ステート使用しない場合の処理 機能

    dest_ack 入力 1 dest_clk LEVEL_HIGH

    0 DEST_EXT_HSK が 1 の場合はデスティネーション ロジックの肯定応答 (ACK) で、DEST_EXT_HSK が 0 の場合は使用されません。この信号がアサートされると、dest_out のデータがデスティネーション ロジックでキャプチャされたことを示します。dest_req がディアサートされ、デスティネーション クロック ドメインでハンドシェークが完了し、デスティネーション ロジックで新しいデータ転送の準備ができると、この信号はディアサートされます。

    dest_clk 入力 1 なし EDGE_RISING

    アクティブ デスティネーション クロック。

    dest_out 出力 WIDTH dest_clk なし アクティブ デスティネーション クロック ドメインに同期化された入力バス (src_in)。この出力はレジスタに取り込まれます。

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 15

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=15

  • ポート 方向 幅 ドメイン 認識されるエッジ/ステート使用しない場合の処理 機能

    dest_req 出力 1 dest_clk LEVEL_HIGH

    アクティブ 新しい dest_out データが受信され、デスティネーション ロジックで使用またはキャプチャできるようになったことを示します。• DEST_EXT_HSK が 1 の場合、ソース ハンドシェークによりデスティネーションクロック ドメインで転送データが受信されたことが確認されるとディアサートされます。

    • DEST_EXT_HSK が 0 の場合、dest_out バスが有効になったときに 1 クロック周期間アサートされます。

    この出力はレジスタに取り込まれます。src_clk 入力 1 なし EDGE

    _RISINGアクティブ ソース クロック。

    src_in 入力 WIDTH src_clk なし アクティブ デスティネーション クロック ドメインに同期化される入力バス。src_rcv 出力 1 src_clk LEVEL

    _HIGHアクティブ デスティネーション ロジックで src_in が受信されたことを示す肯定応答 (ACK)。

    デスティネーション ハンドシェークが完了し、データ転送が完全に終了するとディアサートされます。この出力はレジスタに取り込まれます。src_send 入力 1 src_clk LEVEL

    _HIGHアクティブ src_in バスがデスティネーション クロックドメインに同期化されるように設定します。

    • src_rcv がディアサートされて前のデータ転送が完了したことが示されている場合にのみアサートされます。

    • src_rcv がアサートされてデスティネーション ロジックで src_in が受信されたことが示された場合にのみディアサートされます。

    デザインの入力方法インスタンシエーション 可推論 不可IP および IP インテグレーター カタログ 不可

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 16

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=16

  • 使用可能な属性

    属性 データ型 有効な値 デフォルト 説明DEST_EXT_HSK 10 進数 1、0 1 0: デスティネーション クロック ドメインでのデータ受信の肯定応答 (ACK) を送信するため、マクロに内部ハンドシェーク ロジックをインプリメントします。このオプションを使用した場合、データの損失を回避するため、有効な dest_out 出力はすぐに使用する必要があります。

    1: デスティネーション クロック ドメインでのデータ受信の肯定応答 (ACK) を送信するため、内部ハンドシェーク ロジックをインプリメントします。DEST_SYNC_FF 10 進数 2 ~ 10 4 デスティネーション クロック ドメインの信号に同期化するのに使用するレジスタの段数を指定します。INIT_SYNC_FF 10 進数 0、1 0 0: 同期化レジスタのビヘイビアー シミュレーション初期値をディスエーブルにします。

    1: 同期化レジスタのビヘイビアー シミュレーション初期値をイネーブルにします。SIM_ASSERT_CHK 10 進数 0、1 0 0: シミュレーション メッセージのレポートをディスエーブルにします。誤った使用に関するメッセージはレポートされません。

    1: シミュレーション メッセージのレポートをイネーブルにします。誤った使用に関するメッセージがレポートされます。SRC_SYNC_FF 10 進数 2 ~ 10 4 ソース クロック ドメインの信号に同期化するのに使用するレジスタの段数を指定します。WIDTH 10 進数 1 ~ 1024 1 デスティネーション クロック ドメインに同期化されるバスの幅を指定します。

    VHDL インスタンシエーション テンプレート次の 2 つの文が存在しない場合は、コピーしてエンティティ宣言の前に貼り付けます。Library xpm;use xpm.vcomponents.all;

    -- xpm_cdc_handshake: Bus Synchronizer with Full Handshake-- Xilinx Parameterized Macro, version 2018.1

    xpm_cdc_handshake_inst : xpm_cdc_handshakegeneric map ( DEST_EXT_HSK => 1, -- DECIMAL; 0=internal handshake, 1=external handshake DEST_SYNC_FF => 4, -- DECIMAL; range: 2-10 INIT_SYNC_FF => 0, -- DECIMAL; 0=disable simulation init values, 1=enable simulation init values SIM_ASSERT_CHK => 0, -- DECIMAL; 0=disable simulation messages, 1=enable simulation messages SRC_SYNC_FF => 4, -- DECIMAL; range: 2-10 WIDTH => 1 -- DECIMAL; range: 1-1024)port map ( dest_out => dest_out, -- WIDTH-bit output: Input bus (src_in) synchronized to destination clock domain. -- This output is registered.

    dest_req => dest_req, -- 1-bit output: Assertion of this signal indicates that new dest_out data has been -- received and is ready to be used or captured by the destination logic. When -- DEST_EXT_HSK = 1, this signal will deassert once the source handshake -- acknowledges that the destination clock domain has received the transferred -- data. When DEST_EXT_HSK = 0, this signal asserts for one clock period when -- dest_out bus is valid. This output is registered.

    src_rcv => src_rcv, -- 1-bit output: Acknowledgement from destination logic that src_in has been -- received. This signal will be deasserted once destination handshake has fully -- completed, thus completing a full data transfer. This output is registered.

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 17

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=17

  • dest_ack => dest_ack, -- 1-bit input: optional; required when DEST_EXT_HSK = 1 dest_clk => dest_clk, -- 1-bit input: Destination clock. src_clk => src_clk, -- 1-bit input: Source clock. src_in => src_in, -- WIDTH-bit input: Input bus that will be synchronized to the destination clock -- domain.

    src_send => src_send -- 1-bit input: Assertion of this signal allows the src_in bus to be synchronized -- to the destination clock domain. This signal should only be asserted when -- src_rcv is deasserted, indicating that the previous data transfer is complete. -- This signal should only be deasserted once src_rcv is asserted, acknowledging -- that the src_in has been received by the destination logic. .

    );

    -- End of xpm_cdc_handshake_inst instantiation

    Verilog インスタンシエーション テンプレート

    // xpm_cdc_handshake: Bus Synchronizer with Full Handshake// Xilinx Parameterized Macro, version 2018.1

    xpm_cdc_handshake #( .DEST_EXT_HSK(1), // DECIMAL; 0=internal handshake, 1=external handshake .DEST_SYNC_FF(4), // DECIMAL; range: 2-10 .INIT_SYNC_FF(0), // DECIMAL; 0=disable simulation init values, 1=enable simulation init values .SIM_ASSERT_CHK(0), // DECIMAL; 0=disable simulation messages, 1=enable simulation messages .SRC_SYNC_FF(4), // DECIMAL; range: 2-10 .WIDTH(1) // DECIMAL; range: 1-1024)xpm_cdc_handshake_inst ( .dest_out(dest_out), // WIDTH-bit output: Input bus (src_in) synchronized to destination clock domain. // This output is registered.

    .dest_req(dest_req), // 1-bit output: Assertion of this signal indicates that new dest_out data has been // received and is ready to be used or captured by the destination logic. When // DEST_EXT_HSK = 1, this signal will deassert once the source handshake // acknowledges that the destination clock domain has received the transferred data. // When DEST_EXT_HSK = 0, this signal asserts for one clock period when dest_out bus // is valid. This output is registered.

    .src_rcv(src_rcv), // 1-bit output: Acknowledgement from destination logic that src_in has been // received. This signal will be deasserted once destination handshake has fully // completed, thus completing a full data transfer. This output is registered.

    .dest_ack(dest_ack), // 1-bit input: optional; required when DEST_EXT_HSK = 1 .dest_clk(dest_clk), // 1-bit input: Destination clock. .src_clk(src_clk), // 1-bit input: Source clock. .src_in(src_in), // WIDTH-bit input: Input bus that will be synchronized to the destination clock // domain.

    .src_send(src_send) // 1-bit input: Assertion of this signal allows the src_in bus to be synchronized to // the destination clock domain. This signal should only be asserted when src_rcv is // deasserted, indicating that the previous data transfer is complete. This signal // should only be deasserted once src_rcv is asserted, acknowledging that the src_in // has been received by the destination logic. .

    );

    // End of xpm_cdc_handshake_inst instantiation

    詳細情報• XPM CDC テストベンチ ファイル• UltraScale デバイスの資料

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 18

    https://www.xilinx.com/cgi-bin/docs/ctdoc?cid=17338181-de44-49ab-8ef5-1605d5ec5f75;d=xpm-cdc-testbench.ziphttps://japan.xilinx.com/cgi-bin/docs/ndoc?t=user+guides+ultrascalehttps://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=18

  • XPM_CDC_PULSEパラメーター指定マクロ: Pulse Transfer

    MACRO_GROUP: XPM

    マクロ サブグループ: XPM_CDCファミリ: 7 シリーズ、UltraScale、UltraScale+

    XPM_CDC_PULSE

    src_pulse dest_pulse

    dest_clk

    src_rst

    dest_rst

    src_clk

    X15900-031116

    概要ソース クロック ドメインのパルスをデスティネーション クロック ドメインに同期化します。パルスが正しく生成されていれば、ソース クロック ドメインの任意のサイズのパルスからデスティネーション クロックの 1 周期のパルスが生成されます。正しく動作させるため、入力データをデスティネーション クロックで複数回サンプリングする必要があります。シンクロナイザーで使用するレジスタの段数を定義できます。オプションでソース リセットおよびデスティネーションリセットを使用して、パルス転送ロジックをリセットできます。また、シミュレーション機能をイネーブルにし、マクロの誤った使用をレポートするメッセージを生成することもできます。このマクロのインプリメンテーションには、フィードバック ロジックが必要です。オプションのリセット信号を使用しないマクロをシミュレーションする場合は、未定義の値 (X) がマクロを介して伝搬される状態から回復するためのリセット ロジックがないので、入力パルス信号 (src_pulse) が常に定義されるようにする必要があります。このマクロでは、連続するパルス入力間に次の最小ギャップが必要です。2*(larger(src_clk period, dest_clk period))

    最小ギャップは、src_pulse の立ち上がりエッジから次の src_pulse の立ち下がりエッジまでの時間です。この最小ギャップにより、src_pulse の各立ち上がりエッジにより、デスティネーション クロック ドメインの 1 dest_clk 周期のサイズのパルスが生成されます。オプションのリセット信号を使用する場合は、マクロのすべてのロジックが完全にリセットされるようにするため、src_rst と dest_rst を同時に次の期間以上アサートする必要があります。((DEST_SYNC_FF+2)*dest_clk_period) + (2*src_clk_period)

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 19

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=19

  • リセットがアサートされている間は、入力パルス信号をトグルさせるべきではなく、出力パルス信号は無効なので無視する必要があります。次に、マクロをリセットし、各パルス間の最小ギャップ要件に従って連続パルスを転送する波形を示します。

    ポートの説明

    ポート 方向 幅 ドメイン 認識されるエッジ/ステート使用しない場合の処理 機能

    dest_clk 入力 1 なし EDGE_RISING

    アクティブ デスティネーション クロック。

    dest_pulse 出力 1 dest_clk LEVEL_HIGH

    アクティブ src_pulse 入力でパルス転送が正しく開始された場合に、1 dest_clk 周期のパルスを出力します。REG_OUTPUT が 1 に設定されている場合以外は、この出力は組み合わせ出力です。dest_rst 入力 1 dest_clk LEVEL

    _HIGH0 RST_USED が 0 の場合は未使用。RST_USEDが 1 の場合はデスティネーション リセット信号。

    デスティネーション クロック ドメインのすべてのロジックをリセットします。マクロを完全にリセットするには、src_rst とdest_rst を同時に (DEST_SYNC_FF+2)*dest_clk_period) + (2*src_clk_period)の期間以上アサートする必要があります。

    src_clk 入力 1 なし EDGE_RISING

    アクティブ ソース クロック。

    src_pulse 入力 1 src_clk EDGE_RISING

    アクティブ この信号の立ち上がりエッジでデスティネーション クロック ドメインへのパルス転送が開始します。各パルス間の最小ギャップは2*(larger(src_clk period, dest_clk period))以上である必要があります。最小ギャップは、src_pulse の立ち上がりエッジから次のsrc_pulse の立ち下がりエッジまでの時間です。この最小ギャップにより、src_pulse の各立ち上がりエッジにより、デスティネーション クロック ドメインの 1 dest_clk 周期のサイズのパルスが生成されます。RST_USED が 1 の場合、src_rst またはdest_rst がアサートされている間のパルス転送は確実に実行されるとは限りません。

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 20

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=20

  • ポート 方向 幅 ドメイン 認識されるエッジ/ステート使用しない場合の処理 機能

    src_rst 入力 1 src_clk LEVEL_HIGH

    0 RST_USED が 0 の場合は未使用。RST_USEDが 1 の場合はソース リセット信号。ソース クロック ドメインのすべてのロジックをリセットします。マクロを完全にリセットするには、src_rst と dest_rst を同時に(DEST_SYNC_FF+2)*dest_clk_period) +(2*src_clk_period) の期間以上アサートする必要があります。

    デザインの入力方法インスタンシエーション 可推論 不可IP および IP インテグレーター カタログ 不可

    使用可能な属性

    属性 データ型 有効な値 デフォルト 説明DEST_SYNC_FF 10 進数 2 ~ 10 4 デスティネーション クロック ドメインの信号に同期化するのに使用するレジスタの段数を指定します。INIT_SYNC_FF 10 進数 0、1 0 0: 同期化レジスタのビヘイビアー シミュレーション初期値をディスエーブルにします。

    1: 同期化レジスタのビヘイビアー シミュレーション初期値をイネーブルにします。REG_OUTPUT 10 進数 0、1 0 0: 出力にレジスタを付けません。

    1: 出力にレジスタを付けます。RST_USED 10 進数 1、0 1 0: リセットをインプリメントしません。

    1: リセットをインプリメントします。RST_USED が 0 の場合、マクロを介して未定義の値(X) が伝搬される状態から回復するためのリセット ロジックがないので、src_pulse が常に定義されるようにする必要があります。

    SIM_ASSERT_CHK 10 進数 0、1 0 0: シミュレーション メッセージのレポートをディスエーブルにします。誤った使用に関するメッセージはレポートされません。1: シミュレーション メッセージのレポートをイネーブルにします。誤った使用に関するメッセージがレポートされます。

    VHDL インスタンシエーション テンプレート次の 2 つの文が存在しない場合は、コピーしてエンティティ宣言の前に貼り付けます。Library xpm;use xpm.vcomponents.all;

    -- xpm_cdc_pulse: Pulse Transfer-- Xilinx Parameterized Macro, version 2018.1

    xpm_cdc_pulse_inst : xpm_cdc_pulse

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 21

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=21

  • generic map ( DEST_SYNC_FF => 4, -- DECIMAL; range: 2-10 INIT_SYNC_FF => 0, -- DECIMAL; 0=disable simulation init values, 1=enable simulation init values REG_OUTPUT => 0, -- DECIMAL; 0=disable registered output, 1=enable registered output RST_USED => 1, -- DECIMAL; 0=no reset, 1=implement reset SIM_ASSERT_CHK => 0 -- DECIMAL; 0=disable simulation messages, 1=enable simulation messages)port map ( dest_pulse => dest_pulse, -- 1-bit output: Outputs a pulse the size of one dest_clk period when a pulse -- transfer is correctly initiated on src_pulse input. This output is -- combinatorial unless REG_OUTPUT is set to 1.

    dest_clk => dest_clk, -- 1-bit input: Destination clock. dest_rst => dest_rst, -- 1-bit input: optional; required when RST_USED = 1 src_clk => src_clk, -- 1-bit input: Source clock. src_pulse => src_pulse, -- 1-bit input: Rising edge of this signal initiates a pulse transfer to the -- destination clock domain. The minimum gap between each pulse transfer must -- be at the minimum 2*(larger(src_clk period, dest_clk period)). This is -- measured between the falling edge of a src_pulse to the rising edge of the -- next src_pulse. This minimum gap will guarantee that each rising edge of -- src_pulse will generate a pulse the size of one dest_clk period in the -- destination clock domain. When RST_USED = 1, pulse transfers will not be -- guaranteed while src_rst and/or dest_rst are asserted.

    src_rst => src_rst -- 1-bit input: optional; required when RST_USED = 1);

    -- End of xpm_cdc_pulse_inst instantiation

    Verilog インスタンシエーション テンプレート

    // xpm_cdc_pulse: Pulse Transfer// Xilinx Parameterized Macro, version 2018.1

    xpm_cdc_pulse #( .DEST_SYNC_FF(4), // DECIMAL; range: 2-10 .INIT_SYNC_FF(0), // DECIMAL; 0=disable simulation init values, 1=enable simulation init values .REG_OUTPUT(0), // DECIMAL; 0=disable registered output, 1=enable registered output .RST_USED(1), // DECIMAL; 0=no reset, 1=implement reset .SIM_ASSERT_CHK(0) // DECIMAL; 0=disable simulation messages, 1=enable simulation messages)xpm_cdc_pulse_inst ( .dest_pulse(dest_pulse), // 1-bit output: Outputs a pulse the size of one dest_clk period when a pulse // transfer is correctly initiated on src_pulse input. This output is // combinatorial unless REG_OUTPUT is set to 1.

    .dest_clk(dest_clk), // 1-bit input: Destination clock. .dest_rst(dest_rst), // 1-bit input: optional; required when RST_USED = 1 .src_clk(src_clk), // 1-bit input: Source clock. .src_pulse(src_pulse), // 1-bit input: Rising edge of this signal initiates a pulse transfer to the // destination clock domain. The minimum gap between each pulse transfer must be // at the minimum 2*(larger(src_clk period, dest_clk period)). This is measured // between the falling edge of a src_pulse to the rising edge of the next // src_pulse. This minimum gap will guarantee that each rising edge of src_pulse // will generate a pulse the size of one dest_clk period in the destination // clock domain. When RST_USED = 1, pulse transfers will not be guaranteed while // src_rst and/or dest_rst are asserted.

    .src_rst(src_rst) // 1-bit input: optional; required when RST_USED = 1);

    // End of xpm_cdc_pulse_inst instantiation

    詳細情報• XPM CDC テストベンチ ファイル• UltraScale デバイスの資料

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 22

    https://www.xilinx.com/cgi-bin/docs/ctdoc?cid=17338181-de44-49ab-8ef5-1605d5ec5f75;d=xpm-cdc-testbench.ziphttps://japan.xilinx.com/cgi-bin/docs/ndoc?t=user+guides+ultrascalehttps://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=22

  • XPM_CDC_SINGLEパラメーター指定マクロ: Single-bit Synchronizer

    MACRO_GROUP: XPM

    マクロ サブグループ: XPM_CDCファミリ: 7 シリーズ、UltraScale、UltraScale+

    XPM_CDC_SINGLE

    src_in dest_out

    dest_clk

    src_clk

    X15896-031116

    概要ソース クロック ドメインからの 1 ビット信号をデスティネーション クロック ドメインに同期化します。正しく動作させるため、入力データをデスティネーション クロックで複数回サンプリングする必要があります。シンクロナイザーで使用するレジスタの段数を定義できます。オプションの入力レジスタを使用すると、ソース クロックドメインの入力を同期化する前にレジスタに取り込むことができます。また、シミュレーション機能をイネーブルにし、マクロの誤った使用をレポートするメッセージを生成することもできます。

    ポートの説明

    ポート 方向 幅 ドメイン 認識されるエッジ/ステート使用しない場合の処理 機能

    dest_clk 入力 1 なし EDGE_RISING

    アクティブ デスティネーション クロック ドメインのクロック信号。dest_out 出力 1 dest_clk なし アクティブ デスティネーション クロック ドメインに同期化された src_in。この出力はレジスタに取り込まれます。src_clk 入力 1 なし EDGE

    _RISING0 SRC_INPUT_REG が 1 の場合は src_in の入力クロック信号となります。

    SRC_INPUT_REG が 0 の場合は使用されません。src_in 入力 1 src_clk なし アクティブ dest_clk ドメインに同期化される入力信号。

    デザインの入力方法インスタンシエーション 可推論 不可IP および IP インテグレーター カタログ 不可

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 23

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=23

  • 使用可能な属性

    属性 データ型 有効な値 デフォルト 説明DEST_SYNC_FF 10 進数 2 ~ 10 4 デスティネーション クロック ドメインの信号に同期化するのに使用するレジスタの段数を指定します。INIT_SYNC_FF 10 進数 0、1 0 0: 同期化レジスタのビヘイビアー シミュレーション初期値をディスエーブルにします。

    1: 同期化レジスタのビヘイビアー シミュレーション初期値をイネーブルにします。SIM_ASSERT_CHK 10 進数 0、1 0 0: シミュレーション メッセージのレポートをディスエーブルにします。誤った使用に関するメッセージはレポートされません。

    1: シミュレーション メッセージのレポートをイネーブルにします。誤った使用に関するメッセージがレポートされます。SRC_INPUT_REG 10 進数 1、0 1 0: 入力 (src_in) をレジスタに取り込みません。

    1: 入力 (src_in) を src_clk を使用してレジスタに取り込みます。

    VHDL インスタンシエーション テンプレート次の 2 つの文が存在しない場合は、コピーしてエンティティ宣言の前に貼り付けます。Library xpm;use xpm.vcomponents.all;

    -- xpm_cdc_single: Single-bit Synchronizer-- Xilinx Parameterized Macro, version 2018.1

    xpm_cdc_single_inst : xpm_cdc_singlegeneric map ( DEST_SYNC_FF => 4, -- DECIMAL; range: 2-10 INIT_SYNC_FF => 0, -- DECIMAL; integer; 0=disable simulation init values, 1=enable simulation init -- values SIM_ASSERT_CHK => 0, -- DECIMAL; integer; 0=disable simulation messages, 1=enable simulation messages SRC_INPUT_REG => 1 -- DECIMAL; integer; 0=do not register input, 1=register input)port map ( dest_out => dest_out, -- 1-bit output: src_in synchronized to the destination clock domain. This output -- is registered.

    dest_clk => dest_clk, -- 1-bit input: Clock signal for the destination clock domain. src_clk => src_clk, -- 1-bit input: optional; required when SRC_INPUT_REG = 1 src_in => src_in -- 1-bit input: Input signal to be synchronized to dest_clk domain.);

    -- End of xpm_cdc_single_inst instantiation

    Verilog インスタンシエーション テンプレート

    // xpm_cdc_single: Single-bit Synchronizer// Xilinx Parameterized Macro, version 2018.1

    xpm_cdc_single #( .DEST_SYNC_FF(4), // DECIMAL; range: 2-10 .INIT_SYNC_FF(0), // DECIMAL; integer; 0=disable simulation init values, 1=enable simulation init // values .SIM_ASSERT_CHK(0), // DECIMAL; integer; 0=disable simulation messages, 1=enable simulation messages .SRC_INPUT_REG(1) // DECIMAL; integer; 0=do not register input, 1=register input)xpm_cdc_single_inst ( .dest_out(dest_out), // 1-bit output: src_in synchronized to the destination clock domain. This output is // registered.

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 24

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=24

  • .dest_clk(dest_clk), // 1-bit input: Clock signal for the destination clock domain. .src_clk(src_clk), // 1-bit input: optional; required when SRC_INPUT_REG = 1 .src_in(src_in) // 1-bit input: Input signal to be synchronized to dest_clk domain.);

    // End of xpm_cdc_single_inst instantiation

    詳細情報• XPM CDC テストベンチ ファイル• UltraScale デバイスの資料

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 25

    https://www.xilinx.com/cgi-bin/docs/ctdoc?cid=17338181-de44-49ab-8ef5-1605d5ec5f75;d=xpm-cdc-testbench.ziphttps://japan.xilinx.com/cgi-bin/docs/ndoc?t=user+guides+ultrascalehttps://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=25

  • XPM_CDC_SYNC_RSTパラメーター指定マクロ: Synchronous Reset Synchronizer

    MACRO_GROUP: XPM

    マクロ サブグループ: XPM_CDCファミリ: 7 シリーズ、UltraScale、UltraScale+

    XPM_CDC_SYNC_RST

    src_rst dest_rst

    dest_clk

    X15901-031116

    概要リセット信号をデスティネーション クロック ドメインに同期化します。XPM_CDC_ASYNC_RST マクロとは異なり、生成される出力はデスティネーション クロック ドメインに同期してアサートおよびディアサートします。正しく動作させるため、入力データをデスティネーション クロックで複数回サンプリングする必要があります。シンクロナイザーで使用するレジスタの段数とこれらのレジスタのコンフィギュレーション後の初期値を定義できます。オプションの入力レジスタを使用すると、ソース クロック ドメインの入力を同期化する前にレジスタに取り込むことができます。また、シミュレーション機能をイネーブルにし、マクロの誤った使用をレポートするメッセージを生成することもできます。

    ポートの説明

    ポート 方向 幅 ドメイン 認識されるエッジ/ステート使用しない場合の処理 機能

    dest_clk 入力 1 なし EDGE_RISING

    アクティブ デスティネーション クロック。

    dest_rst 出力 1 dest_clk なし アクティブ デスティネーション クロック ドメインに同期化された src_rst。この出力はレジスタに取り込まれます。src_rst 入力 1 なし なし アクティブ ソース リセット信号。

    デザインの入力方法インスタンシエーション 可推論 不可IP および IP インテグレーター カタログ 不可

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 26

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=26

  • 使用可能な属性

    属性 データ型 有効な値 デフォルト 説明DEST_SYNC_FF 10 進数 2 ~ 10 4 デスティネーション クロック ドメインの信号に同期化するのに使用するレジスタの段数を指定します。INIT 10 進数 1、0 1 0: 同期化レジスタを 0 に初期化します。

    1: 同期化レジスタを 1 に初期化します。同期化レジスタを初期化するオプションは、このマクロでは X 伝搬の動作は完全にモデル化されいないことを意味します。X 伝搬が完全にモデル化されている必要がある場合は、xpm_cdc_single マクロを使用してください。

    INIT_SYNC_FF 10 進数 0、1 0 0: 同期化レジスタのビヘイビアー シミュレーション初期値をディスエーブルにします。1: 同期化レジスタのビヘイビアー シミュレーション初期値をイネーブルにします。

    SIM_ASSERT_CHK 10 進数 0、1 0 0: シミュレーション メッセージのレポートをディスエーブルにします。誤った使用に関するメッセージはレポートされません。1: シミュレーション メッセージのレポートをイネーブルにします。誤った使用に関するメッセージがレポートされます。

    VHDL インスタンシエーション テンプレート次の 2 つの文が存在しない場合は、コピーしてエンティティ宣言の前に貼り付けます。Library xpm;use xpm.vcomponents.all;

    -- xpm_cdc_sync_rst: Synchronous Reset Synchronizer-- Xilinx Parameterized Macro, version 2018.1

    xpm_cdc_sync_rst_inst : xpm_cdc_sync_rstgeneric map ( DEST_SYNC_FF => 4, -- DECIMAL; range: 2-10 INIT => 1, -- DECIMAL; 0=initialize synchronization registers to 0, 1=initialize -- synchronization registers to 1 INIT_SYNC_FF => 0, -- DECIMAL; integer; 0=disable simulation init values, 1=enable simulation init -- values SIM_ASSERT_CHK => 0 -- DECIMAL; integer; 0=disable simulation messages, 1=enable simulation messages)port map ( dest_rst => dest_rst, -- 1-bit output: src_rst synchronized to the destination clock domain. This output -- is registered.

    dest_clk => dest_clk, -- 1-bit input: Destination clock. src_rst => src_rst -- 1-bit input: Source reset signal.);

    -- End of xpm_cdc_sync_rst_inst instantiation

    Verilog インスタンシエーション テンプレート

    // xpm_cdc_sync_rst: Synchronous Reset Synchronizer// Xilinx Parameterized Macro, version 2018.1

    xpm_cdc_sync_rst #( .DEST_SYNC_FF(4), // DECIMAL; range: 2-10 .INIT(1), // DECIMAL; 0=initialize synchronization registers to 0, 1=initialize synchronization // registers to 1 .INIT_SYNC_FF(0), // DECIMAL; integer; 0=disable simulation init values, 1=enable simulation init

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 27

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=27

  • // values .SIM_ASSERT_CHK(0) // DECIMAL; integer; 0=disable simulation messages, 1=enable simulation messages)xpm_cdc_sync_rst_inst ( .dest_rst(dest_rst), // 1-bit output: src_rst synchronized to the destination clock domain. This output // is registered.

    .dest_clk(dest_clk), // 1-bit input: Destination clock. .src_rst(src_rst) // 1-bit input: Source reset signal.);

    // End of xpm_cdc_sync_rst_inst instantiation

    詳細情報• XPM CDC テストベンチ ファイル• UltraScale デバイスの資料

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 28

    https://www.xilinx.com/cgi-bin/docs/ctdoc?cid=17338181-de44-49ab-8ef5-1605d5ec5f75;d=xpm-cdc-testbench.ziphttps://japan.xilinx.com/cgi-bin/docs/ndoc?t=user+guides+ultrascalehttps://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=28

  • XPM_FIFO_ASYNCパラメーター指定マクロ: Asynchronous FIFO

    MACRO_GROUP: XPM

    マクロ サブグループ: XPM_FIFOファミリ: 7 シリーズ、UltraScale、UltraScale+

    XPM_FIFO_ASYNC

    dout[(READ_DATA_WIDTH – 1):0]wr_data_count[(WR_DATA_COUNT_WIDTH – 1):0]

    sbiterrdbiterr

    wr_clkwr_en

    sleep

    rst

    din[(WRITE_DATA_WIDTH - 1):0]

    rd_data_count[(RD_DATA_COUNT_WIDTH – 1):0]

    injectsbiterrinjectdbiterr

    rd_rst_busywr_rst_busy

    fullempty

    overflowunderflowprog_full

    prog_empty

    rd_clkrd_en

    wr_ackdata_valid

    almost_fullalmost_empty

    X17928-092617

    概要このマクロは、非同期 FIFO をインスタンシエートするために使用します。XPM_FIFO インスタンスの基本的な読み出しおよび書き込み操作は、次のとおりです。FIFO タイプ、クロック ドメイン、または読み出しモードは区別されません。• ユーザーがリセットを発行した後、別のリセットを発行するには、Busy 信号が Low になるのを待つ必要があります。

    • すべての同期信号は wr_clk/rd_clk の立ち上がりエッジで認識されます。wr_clk/rd_clk は、ターゲット デバイスおよび FIFO/メモリ プリミティブ要件に従って動作するバッファー付きのトグル クロック信号です。

    • 書き込みは、FIFO がフルではなく、wr_en がアサートされている各 wr_clk サイクルで実行されます。

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 29

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=29

  • • 読み出しは、FIFO が空ではなく、rd_en がアサートされている各 rd_clk サイクルで実行されます。• XPM FIFO が dout、full、および empty の変化に反応するのにかかるクロック サイクル数は、CLOCK_DOMAIN、

    READ_MODE、および FIFO_READ_LATENCY の設定によって異なります。○ 書き込み (wr_en = 1) により empty がディアサートされるのに、1 rd_clk サイクル以上かかる可能性があります。

    ○ rd_en がアサートされた後 dout ポートに読み出しデータが現れるのに、1 rd_clk サイクル以上かかる可能性があります。

    ○ 読み出し (rd_en = 1) により full がディアサートされるのに、1 wr_clk サイクル以上かかる可能性があります。• すべての書き込みは、開始 wr_clk サイクルでの wr_en および full の値によりゲーティングされます。• すべての読み出しは、開始 rd_clk サイクルでの rd_en および empty の値によりゲーティングされます。• full がアサートされた wr_clk サイクルでは、wr_en 入力は無視されます。• empty がアサートされた rd_clk サイクルでは、rd_en 入力は無視されます。• モジュール入力に値が駆動されていない場合、または不明な値が供給された場合は、出力ポートの動作が不定なものになります。

    • reset (rst)、wr_rst_busy、または rd_rst_busy がアサートされているときには、wr_en/rd_en をトグルしないでください。

    • prog_full のアサート/ディアサートは、full がアサートされている場合にのみ発生します。• prog_empty のアサート/ディアサートは、empty がアサートされている場合にのみ発生します。注記: 非同期 FIFO に RELATED_CLOCKS 属性が設定されている場合、wr_clk および rd_clk は同じソースから生成される必要があり、これに違反するとタイミング警告が発生し、デザインはハードウェアで正しく機能しない可能性があります。

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 30

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=30

  • タイミング図図 1: リセット動作

    RST

    WR_CLK

    RD_CLK

    D Reset/Previous value D

    D Reset/Previous value DD

    WR_EN

    FULLPROG_FULL

    ALMOST_FULL

    RD_EN

    EMPTYPROG_EMPTY

    ALMOST_EMPTY

    DOUT**(Standard)

    DOUT(FWFT)

    WR_RST_BUSY

    RD_RST_BUSY

    D

    Full Flag Reset Value = 1

    D D

    D D

    No Access Zone

    CDC_SYNC_STAGES*RD_CLK

    D

    D

    ** à FIFO_READ_LATENCY = 1

    X20501-031318

    図 2: 標準書き込みFIFO_WRITE_DEPTH=16、PROG_FULL_THRESH=6

    wr_clk

    wr_en

    D2din D0 D1 D5D3 D4 D8D6 D7 D11D9 D10 D14D12 D13 D15 D16

    wr_data_count 0 1 1542 3 75 6 108 9 1311 12 14

    program_full

    full

    overflow

    X17947-092016

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 31

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%2312450%3B%26%2312540%3B%26%2312461%3B%26%2312486%3B%26%2312463%3B%26%2312481%3B%26%2312515%3B%20%26%2312521%3B%26%2312452%3B%26%2312502%3B%26%2312521%3B%26%2312522%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2018.1&docPage=31

  • 図 3: 標準読み出しFIFO_WRITE_DEPTH=16、PROG_EMPTY_THRESH=3、FIFO_READ_LATENCY=1

    rd_clk

    rd_en

    D2 D14dout D0 D1 D5D3 D4 D8D6 D7 D11D9 D10 D12 D13

    rd_data_count 15 14 01113 12 810 9 57 6 24 3 1

    empty

    program_empty

    underflow

    X17948-092016

    図 4: 標準読み出しFIFO_WRITE_DEPTH=16、PROG_EMPTY_THRESH=3、FIFO_READ_LATENCY=3

    rd_clk

    rd_en

    D2 D14dout D0 D1 D5D3 D4 D8D6 D7 D11D9 D10 D12 D13

    rd_data_count 15 14 01113 12 810 9 57 6 24 3 1

    empty

    program_empty

    underflow

    X17949-092016

    第 2 章: ザイリンクス パラメーター指定マクロ

    UG974 (v2018.1) 2018 年 4 月 4 日 japan.xilinx.comUltraScale アーキテクチャ ライブラリ ガイド 32

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Libraries_Guide&docId=UG974&Title=UltraScale%20%26%