86
Vivado Design Suite ユーザー ガイド ロジック シミュレーション UG900 (v2012.2) 2012 7 25

Vivado Design Suite ユーザー ガイド - Xilinx...ロジック シミュレーション japan.xilinx.com 7 UG900 (v2012.2) 2012 年 7 月 25 日 シミュレーション フロー

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Vivado Design Suite ユーザー ガイ ド

ロジ ッ ク シ ミ ュ レーシ ョ ン

UG900 (v2012.2) 2012 年 7 月 25 日

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 2UG900 (v2012.2) 2012 年 7 月 25 日

Notice of Disclaimer The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use of 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 OF MERCHANTABILITY, 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 other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, 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 loss or damage suffered as a result of any action brought by a third party) even if such damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same.Xilinx assumes no obligation to correct any errors contained in the Materials or to notify you of updates to the Materials or to product specifications.You may not reproduce, modify, distribute, or publicly display the Materials without prior written consent.Certain products are subject to the terms and conditions of the Limited Warranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject to warranty and support terms contained in a license issued to you by Xilinx.Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk and liability for use of Xilinx products in Critical Applications:http://www.xilinx.com/warranty.htm#critapps.© Copyright 2012 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, 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.

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

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

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

日付 バージ ョ ン 改訂内容

2012 年 7 月 25 日 2012.2 初版

目次

改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

第 1 章 : ロジ ッ ク シ ミ ュ レーシ ョ ンの概要

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

シ ミ ュ レーシ ョ ン フ ロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

シ ミ ュ レーシ ョ ン モード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

サポー ト される シ ミ ュ レータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Vivado シ ミ ュ レータの機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

言語サポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

OS サポー ト および リ リ ースの変更点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

シ ミ ュ レーシ ョ ン ラ イブラ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

第 2 章 : Vivado シ ミ ュ レーシ ョ ン コ ンポーネン ト の理解

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

テス ト ベンチまたはステ ィ ミ ュ ラ ス フ ァ イル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

シ ミ ュ レーシ ョ ン ラ イブラ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

ネ ッ ト リ ス ト 生成プロセス (非プロジェ ク ト モード ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

グ ローバル リ セ ッ ト および ト ラ イ ステー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

第 3 章 : Vivado IDE でのシ ミ ュ レーシ ョ ンの実行

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

シ ミ ュ レーシ ョ ン設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

シ ミ ュ レーシ ョ ン ソースの管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Vivado シ ミ ュ レータの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

シ ミ ュ レーシ ョ ンの一時停止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

シ ミ ュ レーシ ョ ン結果の保存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

シ ミ ュ レーシ ョ ンの終了 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

第 4 章 : デザイ ンのコ ンパイルと シ ミ ュ レーシ ョ ン

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

デザイ ン フ ァ イルの解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

xelab を使用し たスナッ プシ ョ ッ ト のエラ ボレーシ ョ ンおよび生成 . . . . . . . . . . . . . . . . . . . . . . . . 39

xsim によ るデザイ ン スナッ プシ ョ ッ ト のシ ミ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

プロジェ ク ト フ ァ イルの構文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

定義済み XILINX_SIMULATOR マ ク ロ (Verilog シ ミ ュ レーシ ョ ン用) . . . . . . . . . . . . . . . . . . . . 45

非プロジェ ク ト モード でのデザイ ン シ ミ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

ラ イブラ リ マ ッ プ フ ァ イル (xsim.ini). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

xelab、 xvhd、 xvlog コマン ド オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

混合言語シ ミ ュ レーシ ョ ンの使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Vivado IDE の使用 japan.xilinx.com 3UG893 (v2012.2) 2012 年 7 月 25 日

第 5 章 : 波形を使用し た解析およびデバッ グ

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Vivado シ ミ ュ レータの起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

波形コ ンフ ィ ギュ レーシ ョ ンへの HDL オブジェ ク ト の追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

非プロジェ ク ト モード の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

波形コ ンフ ィ ギュ レーシ ョ ンの HDL オブジェ ク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

波形コ ンフ ィ ギュ レーシ ョ ン と波形ビ ュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

波形表示の制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

波形コ ンフ ィ ギュ レーシ ョ ンのカス タマイ ズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

前のシ ミ ュ レーシ ョ ン設定からのシ ミ ュ レーシ ョ ン データの表示 (ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン) 73

ソース レベルでのデバッ グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

付録 A : Vivado IDE 外でサー ドパーテ ィ シ ミ ュ レータ を使用し たシ ミ ュ レーシ ョ ンの実行

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

RTL/ビヘイ ビア シ ミ ュ レーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

ネ ッ ト リ ス ト シ ミ ュ レーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

タ イ ミ ング シ ミ ュ レーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

付録 B : Verilog および VHDL の例外

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

VHDL 言語サポー ト の例外 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Verilog 言語サポー ト の例外 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

付録 C : その他のリ ソース

ザイ リ ン ク ス リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

ソ リ ューシ ョ ン セン ター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

参照資料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

4 japan.xilinx.com Vivado IDE の使用

UG893 (v2012.2) 2012 年 7 月 25 日

第 1 章

ロジ ッ ク シ ミ ュ レーシ ョ ンの概要

概要シ ミ ュ レーシ ョ ンは、 現実のデザイ ン ビヘイ ビアを ソ フ ト ウ ェ ア ツールでエ ミ ュ レー ト するプロセスです。 シ ミ ュ レーシ ョ ンをする と、 ステ ィ ミ ュ ラ ス を挿入し てデザイ ン出力を観察する こ と で、 デザイ ンの機能を検証でき ます。シ ミ ュ レータでは、 VHDL または Verilog コード が回路機能に変換され、 論理結果が表示されます。

本書では、 ザイ リ ン ク ス Vivado™ Integrated Design Environment (IDE) を使用し た場合に使用でき る シ ミ ュ レーシ ョ ン オプシ ョ ンについて説明し ます。

この章では、シ ミ ュ レーシ ョ ン プロセスの概要および Vivado IDE のシ ミ ュ レーシ ョ ン ツール オプシ ョ ンについて記 述し ます。 Vivado IDE では、 プロ グ ラ マブル ロジ ッ ク デザイ ンの ソ リ ューシ ョ ンを提供する複数の HDL シ ミ ュ レー シ ョ ン ツールを使用でき ます。

シ ミ ュ レーシ ョ ン フ ロー シ ミ ュ レーシ ョ ンは、 デザイ ン フ ローの さ まざ まな段階で実行でき ます。 デザイ ン入力後の 初の段階の 1 つであ り 、 イ ンプ リ メ ンテーシ ョ ン後の 後の段階の 1 つ ( 終的な機能とデザイ ン パフ ォーマン スの検証の一部) で も あ り ます。

シ ミ ュ レーシ ョ ンは、 対話型プロセスで、 デザイ ン機能と タ イ ミ ングの両方の条件が満た される まで繰 り 返す必要のあ る こ と も あ り ます。

図 1-1 は、 典型的なデザイ ンのシ ミ ュ レーシ ョ ン フ ローを示し ています。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 5UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン フ ロー

X-Ref Target - Figure 1-1

レジス タ ト ラ ンスフ ァー レベルのビヘイ ビア シ ミ ュ レーシ ョ ン

レジス タ ト ラ ン ス フ ァー レベル (RTL) のビヘイ ビア シ ミ ュ レーシ ョ ンには、 次が含まれます。

• RTL コード

• イ ンス タ ンシエー ト 済み UNISIM ラ イブラ リ コ ンポーネン ト

• イ ンス タ ンシエー ト 済み UniMacro コ ンポーネン ト

• XilinxCoreLib および UNISIM ゲー ト レベル モデル (Vivado ロジ ッ ク アナラ イザー用)

• SecureIP ラ イブラ リ

RTL レベルのシ ミ ュ レーシ ョ ンでは、システム またはチ ッ プ レベルで記述を検証またはシ ミ ュ レーシ ョ ンでき ます。

X-Ref Target - Figure 1-2

図 1-1 : シ ミ ュ レーシ ョ ン フ ロー

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 6UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン フ ロー

初のパス シ ミ ュ レーシ ョ ンは、通常コード構文を検証し、 コード が予測どお り に機能し ているかど う かを確認する ために実行されます。 こ の段階では、 タ イ ミ ング情報は提供されておらず、 シ ミ ュ レーシ ョ ンはレース競合の可能性を回避する ため、 ユニ ッ ト 遅延モード で実行されます。

RTL シ ミ ュ レーシ ョ ンは、デザイ ンにイ ンス タ ンシエー ト された UNISIM または Lab Analyzer コ ンポーネン ト が含ま れない限 り 、 アーキテ クチャ ご と に異なる こ と はあ り ません。 ザイ リ ン ク スでは、 これらのイ ン ス タ ンシエーシ ョ ンをサポー ト する ため、 UNISIM および XilinxCoreLib ラ イブラ リ を提供し ています。 合成ツールのモジ ュール生 成機能に依存し た く ない場合や、 デザイ ンによ り 大き な構造が必要と される場合は、 Vivado Lab Analyzer を使用でき ます。

デザイ ンがビヘイ ビア RTL でイ ンプ リ メ ン ト される よ り 前に検証する場合は、 早めに必要な変更をする こ と で、 デ ザイ ン サイ クルを節約でき ます。

ヒ ン ト : 初にデザイ ンを作成する場合は、 コード ビヘイ ビアを維持する必要があ り ます。 必要でない限 り 、 特定コ ンポーネン ト はイ ンス タ ンシエー ト し ないで く だ さい。 コ ンポーネン ト が推論可能ではない場合、 コ ンポーネン ト をイ ンス タ ンシエー ト する必要のあ る こ と があ り ます。

初のデザイ ン作成をビヘイ ビア コード にのみ限定する と、 次が可能にな り ます。

• よ り 読みやすいコード

• よ り 高速でシンプルなシ ミ ュ レーシ ョ ン

• コード ポータ ビ リ テ ィ (別のデバイ ス フ ァ ミ リ へ移行可能)

• コード 再利用性 (今後別のデザイ ンに同じ コード を使用可能)

合成後のシ ミ ュ レーシ ョ ン

合成済みのネ ッ ト リ ス ト をシ ミ ュ レーシ ョ ンする と、 合成後のデザイ ンが論理要件を満た し ているか、 予測どお り に動作するかど う かが検証でき ます。

一般的ではあ り ませんが、 こ のシ ミ ュ レーシ ョ ン段階でも、概算されたタ イ ミ ング数値を使用し てタ イ ミ ング シ ミ ュ レーシ ョ ンを実行する こ と はでき ます。

論理シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト は、 階層状になってお り 、 プ リ ミ テ ィ ブ モジュールおよびエンテ ィ テ ィ レベル に展開されます。 階層の 下位にはプ リ ミ テ ィ ブおよびマ ク ロ プ リ ミ テ ィ ブが含まれます。 これらのプ リ ミ テ ィ ブは Verilog の場合は UNISIMS_VER ラ イブラ リ に、 VHDL の場合は UNISIM ラ イブラ リ に含まれます。 詳細は、 16 ペー ジの 「UNISIM ラ イブラ リ 」 を参照し て く だ さい。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 7UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン モー ド

イ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ン イ ンプ リ メ ンテーシ ョ ン後は論理シ ミ ュ レーシ ョ ンまたはタ イ ミ ング シ ミ ュ レーシ ョ ンを実行でき ます。タ イ ミ ング シ ミ ュ レーシ ョ ンは、 実際にデバイ スにダウ ン ロード されるデザイ ンに一番近いエ ミ ュ レーシ ョ ンで、 イ ンプ リ メ ント 済みデザイ ンが論理要件およびタ イ ミ ング要件を満た し、デバイ スで予測どお り のビヘイ ビアになる こ と が確認でき ます。

タ イ ミ ング シ ミ ュ レーシ ョ ン全体を実行する と、 終了し たデザ イ ンはエ ラーのない状態にな り ます (次の よ う なエ ラーが発見されない場合を除 く )。

• 次が原因で、 合成後およびイ ンプ リ メ ンテーシ ョ ン後に機能が変更された場合 :

° 不一致を作成する合成属性または制約 (full_case および parallel_case など)

° ザイ リ ン ク ス デザイ ン制約 (XDC) フ ァ イルへの UNISIM 属性の適用

° 異なる シ ミ ュ レータによ る合成中の言語変換

• デュ アル ポー ト RAM の競合

• タ イ ミ ング制約の適用がないか、 不正適用

• 非同期パスの操作

• 適化手法によ る論理問題

詳細は、48 ページの「合成後およびイ ンプ リ メ ンテーシ ョ ン後のタ イ ミ ング シ ミ ュ レーシ ョ ン」 を参照し て く だ さい。

シ ミ ュ レーシ ョ ン モー ドVivado シ ミ ュ レータには、 プロ ジェ ク ト モード と非プロ ジェ ク ト モード の 2 つのモード があ り ます。

プロジ ェ ク ト モー ド : GUI の使用

Vivado IDE でプロ ジェ ク ト を使用し てシ ミ ュ レーシ ョ ンを実行する と、Vivado シ ミ ュ レータのグ ラ フ ィ カル ユーザー イ ン ターフ ェ イ ス (GUI) が開き、シ ミ ュ レーシ ョ ン データが画像表示されます。 メ ニュー コマン ドおよびツールバー ボ タ ンを使用し てシ ミ ュ レーシ ョ ンを実行し、 デザイ ンを検証し、 データ をデバ ッ グ し ます。

プロジェ ク ト モード の場合、 次が実行でき ます。

• プロジェ ク ト を開 く 、 または作成し ます。

• テス ト ベンチを作成、 または追加し ます。

詳細は、 「テス ト ベンチまたはステ ィ ミ ュ ラ ス フ ァ イル」 を参照し て く ださ い。

• Vivado IDE の Flow Navigator の [Simulation] セ ク シ ョ ンから、 [Simulation Settings] を ク リ ッ ク し、 シ ミ ュ レーシ ョ ン オプシ ョ ンを選択および設定し ます。

詳細は、 「シ ミ ュ レーシ ョ ン設定」 および第 3 章の 「シ ミ ュ レーシ ョ ン ソースの管理」 を参照し て く ださ い。

• Flow Navigator の [Run Simulation] を ク リ ッ ク し、 ビヘイ ビア RTL シ ミ ュ レーシ ョ ンを開始し ます。

• Vivado IDE の実行、 エラー、 ロ グ メ ッ セージを参照し て く だ さい。

詳細は、 第 3 章 「Vivado IDE でのシ ミ ュ レーシ ョ ンの実行」 を参照し て く ださ い。

• デザイ ンを Vivado IDE の波形ビ ューアーで解析およびデバッ グ し ます。

詳細は、 第 5 章 「波形を使用し た解析およびデバ ッ グ」 を参照し て く ださい。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 8UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン モー ド

図 1-2 は、 プロ ジェ ク ト モード のシ ミ ュ レーシ ョ ン フ ローを示し ています。

非プロジ ェ ク ト モー ド : コ マン ド およびバッ チ スク リ プ ト オプシ ョ ン

非プロジェ ク ト モード の場合、 次が実行でき ます。

• 論理 RTL、 合成後、 またはイ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ン用のテス ト ベンチを作成または追加し ます。

注記 : 合成後およびイ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ンは、非プロ ジェ ク ト モード でのみサポー ト さ れます。

• ソース フ ァ イル、 ラ イブラ リ 、 フ ァ イル コ ンパイル順を指定し ます。

• Vivado シ ミ ュ レータ コマン ド を使用し てデザイ ンを解析およびエラ ボレー ト し ます。

詳細は、 第 4 章 「デザイ ンのコ ンパイル と シ ミ ュ レーシ ョ ン」 を参照し て く ださい。

• Vivado シ ミ ュ レータ を実行し ます。

• Vivado シ ミ ュ レータ波形ビ ューアーを使用し てデザイ ンをデバッ グ し ます。

詳細は、 第 4 章 「デザイ ンのコ ンパイル と シ ミ ュ レーシ ョ ン」 を参照し て く ださい。

詳細は、 付録 A 「Vivado IDE 外でサード パーテ ィ シ ミ ュ レータ を使用し たシ ミ ュ レーシ ョ ンの実行」 を参照し て く だ さい。

重要 : 非プロ ジェ ク ト モード の場合、 ユーザーがソース フ ァ イルを管理する必要があ り ます。

図 1-3 は、 非プロ ジェ ク ト モード のシ ミ ュ レーシ ョ ン フ ローを示し ています。

X-Ref Target - Figure 1-2

図 1-2 : Vivado シ ミ ュ レーシ ョ ンのプ ロ ジ ェ ク ト モー ド フ ロー

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 9UG900 (v2012.2) 2012 年 7 月 25 日

サポー ト されるシ ミ ュ レータ

X-Ref Target - Figure 1-3

サポー ト されるシ ミ ュ レータサポー ト される シ ミ ュ レータは次の とお り です。

• Vivado シ ミ ュ レータ

• Mentor Graphics QuestaSim/ModelSim (Vivado IDE に統合)

• Cadence Incisive Enterprise Simulator (IES)

• Synopsys VCS および VCS MX

• Aldec Active-HDL*

• Aldec Rivera-PRO*

注記 : (* Aldec シ ミ ュ レータは互換性はあ り ますが、ザイ リ ン ク ス テ ク ニカル サポー ト ではサポー ト されません。 サポー ト に関する問題については、 Aldec にお尋ね く ださ い)。

図 1-3 : 非プ ロ ジ ェ ク ト モー ド のシ ミ ュ レーシ ョ ン フ ロー

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 10UG900 (v2012.2) 2012 年 7 月 25 日

Vivado シ ミ ュ レータの機能

Vivado シ ミ ュ レータの機能Vivado シ ミ ュ レータでは、 次の機能がサポー ト されます。

• ソース コード のデバッ グ

• SDF ア ノ テーシ ョ ン

• VCD ダンプ

• SAIF ダンプ (電力解析および 適化用)

• HardIP ブロ ッ ク (MGT、 PPC、 PCIe® など) のネイ テ ィ ブ サポー ト

• マルチス レ ッ ド コ ンパイル

• 混合言語 (VHDL および Verilog) の使用

• 1 ク リ ッ ク でシ ミ ュ レーシ ョ ンを再コ ンパイルおよび再起動

• 1 ク リ ッ ク でコ ンパイルおよびシ ミ ュ レーシ ョ ン

• ビル ト イ ン ザイ リ ン ク ス シ ミ ュ レーシ ョ ン ラ イブラ リ

サポー ト さ れる シ ミ ュ レータのバージ ョ ンについては、 『ザ イ リ ン ク ス デザイ ン ツール : リ リ ース ノ ー ト ガ イ ド』 (UG631)[参照 1] を参照し て く ださ い。

注記 : サード パーテ ィ シ ミ ュ レータは Vivado IDE の外部で実行する必要があ り ます (Vivado IDE から選択し て起動可 能な QuestaSim/ModelSim は例外)。

言語サポー ト次の言語がサポー ト されます。

• VHDL IEEE-STD-1076-1993

• Verilog IEEE-STD-1364-2001

• 標準遅延フ ォーマ ッ ト (SDF) バージ ョ ン 2.1

• VITAL-2000

OS サポー ト および リ リースの変更点新の リ リ ースでの変更点については、『ザイ リ ン ク ス デザイ ン ツール : リ リ ース ノ ー ト ガイ ド』 (UG631)[参照 1] を

参照し て く だ さい。

OS サポー ト については、 『ザイ リ ン ク ス デザイ ン ツール : イ ンス ト ールおよびラ イセンス ガ イ ド』 (UG798) [参照 2] を参照し て く だ さい。

シ ミ ュ レーシ ョ ン ラ イブ ラ リシ ミ ュ レーシ ョ ン フ ローをサポー ト する ために必要な ラ イブラ リ は、 次の とお り です。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 11UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン ラ イブ ラ リ

• SIMPRIM_VER : タ イ ミ ングを含む Verilog UNISIM

• XILINXCORELIB : VHDL IP

• XILINXCORELIB_VER : Verilog IP

• UNISIM : VHDL UNISIM

• UNISIMS_VER : Verilog UNISIM

• UNIMACRO : VHDL UNIMACRO

• UNIMACRO_VER : Verilog UNIMACRO

• SECUREIP : Verilog Hard IP

• UNIFAST : 高速シ ミ ュ レーシ ョ ン VHLD ラ イブラ リ

• UNIFAST_VER : 高速シ ミ ュ レーシ ョ ン Verilog ラ イブラ リ

シ ミ ュ レーシ ョ ン ラ イブラ リ については、 第 2 章の 「シ ミ ュ レーシ ョ ン ラ イブラ リ 」 を参照し て く ださ い。

また、 『7 シ リ ーズ FPGA ラ イブラ リ ガイ ド (HDL 用)』 (UG768) [参照 6] を参照し て く だ さい。

注記 : Vivado シ ミ ュ レータでは、 プ リ コ ンパイル済みのシ ミ ュ レーシ ョ ン デバイ ス ラ イ ブラ リ が使用され、 ア ッ プ デー ト がイ ンス ト ールされる と自動的に これらのラ イブラ リ がア ッ プデー ト されます。

表 1-1 は、 シ ミ ュ レーシ ョ ン ポイ ン ト と どのシ ミ ュ レーシ ョ ン ラ イブラ リ がどのシ ミ ュ レーシ ョ ン ポ イ ン ト で使用 されるかを リ ス ト し ています。

シ ミ ュ レーシ ョ ン ラ イブラ リ の詳細は、 第 2 章 「Vivado シ ミ ュ レーシ ョ ン コ ンポーネン ト の理解」 を参照し て く だ さい。

表 1-1 : シ ミ ュ レーシ ョ ン ポイ ン ト と関連ラ イブ ラ リ

UNISIM Unifast UniMacro XilinxCoreLib モデル

SecureIP SIMPRIM(Verilog のみ)

標準遅延フ ォーマ ッ ト

(SDF)

1. レ ジ ス タ ト ラ ン ス フ ァ ー レ ベル (RTL)

○ ○ ○ ○ ○ 該当なし ○

2.合成後 シ ミ ュ レーシ ョ ン

○ ○ 該当な し 該当な し ○ ○ ○

3. イ ン プ リ メ ンテーシ ョ ン後 シ ミ ュ レーシ ョ ン

○ ○ 該当な し 該当な し ○ ○ ○

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 12UG900 (v2012.2) 2012 年 7 月 25 日

第 2 章

Vivado シ ミ ュ レーシ ョ ン コ ンポーネン ト の理解

概要本章では、 ザイ リ ン ク ス FPGA を Vivado™ Integrated Design Environment (IDE) でシ ミ ュ レーシ ョ ンする際に必要なコ ンポーネン ト について説明し ます。

注記 : シ ミ ュ レーシ ョ ン ラ イブラ リ は、 Vivado シ ミ ュ レータで使用するために Vivado Design Suite でプ リ コ ンパイル されます。 サード パーテ ィ シ ミ ュ レータ を使用する場合は、 必ずラ イブラ リ を コ ンパイルする必要があ り ます。

シ ミ ュ レーシ ョ ン プロセスには、 次が含まれます。

• 実行する シ ミ ュ レーシ ョ ン ア ク シ ョ ンを反映する テス ト ベンチを作成

• 使用する必要のあ る ラ イブラ リ を選択し て宣言

• ラ イブラ リ を コ ンパイル (サード パーテ ィ シ ミ ュ レータ を使用する場合)

• ネ ッ ト リ ス ト を記述 (合成後またはイ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ンを実行する場合)

• ザイ リ ン ク ス デバイ スのグ ローバル リ セ ッ ト と ト ラ イ ステー ト の使用を理解

次のセ ク シ ョ ンでは、 これらの必要なコ ンポーネン ト について説明し ます。

テス ト ベンチまたはステ ィ ミ ュ ラス フ ァ イルテス ト ベンチは、 次を実行する シ ミ ュ レータ用に記述されるハード ウ ェ ア記述言語 (HDL) コード です。

• デザイ ンを イ ンス タ ンシエー ト

• デザイ ンを初期化

• ステ ィ ミ ュ ラ ス を生成および適用

• デザイ ン出力結果を監視および論理精度を確認 (オプシ ョ ン)

テス ト ベンチは、 フ ァ イル、 波形または表示画面へのシ ミ ュ レーシ ョ ン出力を表示する ために も設定でき ます。 テスト ベンチの構造はシンプルにし、 特定入力にステ ィ ミ ュ ラ ス を順次適用する こ と ができ ます。

テス ト ベンチは、 複雑にする こ と もでき ます。 こ の場合、 次を含める こ と ができ ます。

• サブルーチン呼び出し

• 外部フ ァ イルから読み出される ステ ィ ミ ュ ラ ス

• 条件付き ステ ィ ミ ュ ラ ス

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 13UG900 (v2012.2) 2012 年 7 月 25 日

テス ト ベンチまたはステ ィ ミ ュ ラス フ ァ イル

• その他のよ り 複雑な構造

テス ト ベンチを使用する と、 対話型シ ミ ュ レーシ ョ ンに比べて次のよ う な利点があ り ます。

• デザイ ン プロセスでの反復シ ミ ュ レーシ ョ ンが可能にな り ます。

• テス ト 条件の資料が提供されます。

ヒ ン ト : GUI でターゲ ッ ト シ ミ ュ レータに Vivado シ ミ ュ レータ を選択し (第 3 章の 「シ ミ ュ レーシ ョ ン設定」 参照)、 [Run Simulation] を ク リ ッ ク し ます。 これによ り 、デザイ ンをシ ミ ュ レーシ ョ ンするために必要なすべてのソースが含 まれる project/project.sim/sim_1 デ ィ レ ク ト リ に <testbench>.prj フ ァ イルが作成されます。 こ のフ ァ イ ルは、 フ ァ イルを集める際の開始点と な り ます。 次は、 効率的なテス ト ベンチを作成する際の推奨事項です。

• テス ト ベンチ フ ァ イルで メ イ ン モジュールまたはエンテ ィ テ ィ 名に対し て名前を testbench と指定し ます。

• Verilog テス ト ベンチ フ ァ イルで `timescale を常に指定し ます。

• テス ト ベンチ内でデザイ ンへのすべての入力をシ ミ ュ レーシ ョ ン タ イ ム 0 で初期化し て、既知の値でシ ミ ュ レー シ ョ ンが正し く 開始される よ う にし ます。

• UNISIM および SIMPRIM ベースのシ ミ ュ レーシ ョ ンで使用されるデフ ォル ト のグ ローバル セ ッ ト / リ セ ッ ト (GSR) パルスのため、 ステ ィ ミ ュ ラ ス データ を 100ns 後に適用し ます。

• グ ローバル セ ッ ト / リ セ ッ ト (GSR) が解除される前に ク ロ ッ ク ソース を開始し ます。

詳細は、 23 ページの 「グ ローバル リ セ ッ ト および ト ラ イ ステー ト 」 を参照し て く ださ い。

テス ト ベンチの詳細は、 ザイ リ ン ク ス アプ リ ケーシ ョ ン ノー ト 『Writing Efficient TestBenches』 (XAPP199)[参照 5] を 参照し て く だ さい。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 14UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン ラ イブ ラ リ

シ ミ ュ レーシ ョ ン ラ イブ ラ リデザイ ンにコ ンポーネン ト を イ ンス タ ンシエー ト する際、 シ ミ ュ レータでコ ンポーネン ト の機能を記述し た ラ イブラリ が参照されていない と、 シ ミ ュ レーシ ョ ンが正し く 実行されません。

表 2-1 は、 ザイ リ ン ク スの提供する シ ミ ュ レーシ ョ ン ラ イブラ リ を リ ス ト し ています。

次に注意し て く だ さい。

• シ ミ ュ レーシ ョ ン ポ イ ン ト によ って異なる シ ミ ュ レーシ ョ ン ラ イブラ リ を指定する必要があ り ます。

• イ ンプ リ メ ンテーシ ョ ン前と イ ンプ リ メ ンテーシ ョ ン後のネ ッ ト リ ス ト のゲー ト レベル セルは異な り ます。

表 2-2 は、 各シ ミ ュ レーシ ョ ン ポ イ ン ト で必要なシ ミ ュ レーシ ョ ン ラ イ ブ ラ リ が リ ス ト さ れます。

注記 : Verilog SIMPRIM では、 UNISIM と同じ ソースに加え、 タ イ ミ ング ア ノ テーシ ョ ン用に特別なブロ ッ ク も使用 されます。 これは、 UNISIM ソース コード の `ifdef XIL_TIMING でイ ネーブルにでき ます。

表 2-1 : シ ミ ュ レーシ ョ ン ラ イブ ラ リ

ラ イブ ラ リ名 説明 VHDL Verilog

UNISIM ザ イ リ ン ク ス プ リ ミ テ ィ ブの論理シ ミ ュ レー シ ョ ン

unisim unisims_ver

UniMacro ザイ リ ン ク ス マ ク ロの論理シ ミ ュ レーシ ョ ン unimacro unimacro_ver

UniFast 高速シ ミ ュ レーシ ョ ン ラ イブラ リ unifast unifast_ver

XilinxCoreLib ザイ リ ン ク ス コ アの論理シ ミ ュ レーシ ョ ン xilinxcorelib xilinxcorelib_ver

SIMPRIM ザイ リ ン ク ス プ リ ミ テ ィ ブのタ イ ミ ング シ ミ ュ レーシ ョ ン

該当な し SIMPRIM_VER

SecureIP 次のよ う なザイ リ ン ク ス デバイ ス機能の論理シ ミ ュ レーシ ョ ンお よ び タ イ ミ ン グ シ ミ ュ レー シ ョ ン両方のシ ミ ュ レーシ ョ ン ラ イブラ リ

• PowerPC® プロセ ッ サ

• PCIe® テ ク ノ ロ ジ

• ギガビ ッ ト ト ラ ンシーバー• Ethernet MAC

secureip -lib secureip

表 2-2 : シ ミ ュ レーシ ョ ン ポイン ト で必要なラ イブラ リ

シ ミ ュ レーシ ョ ン ポイ ン ト 必要なラ イブ ラ リ

レ ジ ス タ ト ラ ン ス フ ァ ー レ ベル (RTL)

UNISIM UnifastUniMacro XilinxCoreLibSecureIP

合成後のシ ミ ュ レーシ ョ ン UNISIM (論理ネ ッ ト リ ス ト ) SIMPRIM (タ イ ミ ング ネ ッ ト リ ス ト )SecureIP

イ ンプ リ メ ンテーシ ョ ン後の シ ミ ュ レーシ ョ ン

UNISIM (論理ネ ッ ト リ ス ト )SIMPRIM (タ イ ミ ング ネ ッ ト リ ス ト )SecureIP

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 15UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン ラ イブ ラ リ

表 2-3 は、 ラ イブラ リ のデ ィ レ ク ト リ を リ ス ト し ています。

次のセ ク シ ョ ンでは、 これらのラ イブラ リ について さ らに詳細に説明し ます。

UNISIM ラ イブ ラ リ

UNISIM は、 論理シ ミ ュ レーシ ョ ンで使用される ラ イブラ リ で、 すべてのデバイ ス プ リ ミ テ ィ ブまたは下位の構築ブ ロ ッ クの記述を含みます。

VHDL UNISIM ラ イブ ラ リ

VHDL UNISIM ラ イブラ リ は、 次のフ ァ イルに分割されています。

• コ ンポーネン ト 宣言 (unisimVCOMP.vhdl)

• パッ ケージ フ ァ イル (unisim_VPKG.vhd)

• エンテ ィ テ ィ およびアーキテ クチャ宣言 (unisim_VITAL.vhdl)

ザイ リ ン ク ス デバイ ス フ ァ ミ リ のプ リ ミ テ ィ ブはこれらのフ ァ イルで指定されています。

これらのプ リ ミ テ ィ ブを使用するには、 各フ ァ イルの 初に次の 2 行を追加する必要があ り ます。

library UNISIM;use UNISIM.Vcomponents.all;

ラ イブラ リ を コ ンパイルし、シ ミ ュ レータにマップする必要も あ り ます。この方法はシ ミ ュ レータによ って異な り ます。

注記 : Vivado シ ミ ュ レータの場合、 ラ イブラ リ のコ ンパイル と マ ッ プはビル ト イ ン されています。

Verilog UNISIM ラ イブ ラ リ

Verilog の場合は、 各ラ イブ ラ リ コ ンポーネン ト を別のフ ァ イルで指定し ます。 これで、 Verilog の -y ラ イブラ リ 指 定オプシ ョ ンでラ イブラ リ 展開が自動で実行される よ う にな り ます。

Verilog モジュール名と フ ァ イル名を大文字で指定し ます。

た と えば、 モジュール BUFG は BUFG.v、 モジュール IBUF は IBUF.v と指定し ます。

-y オプシ ョ ンの使用例は、 付録 A 「Vivado IDE 外でサード パーテ ィ シ ミ ュ レータ を使用し たシ ミ ュ レーシ ョ ンの実 行」 を参照し て く だ さい。

表 2-3 : シ ミ ュ レーシ ョ ン ラ イブ ラ リのデ ィ レ ク ト リ

ラ イブ ラ リHDL タ イ

プ デ ィ レ ク ト リ

UNISIM Verilog <Xilinx Install>/PlanAhead/data/verilog/unisims

VHDL <Xilinx Install>/PlanAhead/data/vhdl/unisims

UNIFAST Verilog <Xilinx Install>/PlanAhead/data/verilog/unifast

VHDL <Xilinx Install>/PlanAhead/data/vhdl/unifast

UNIMACRO Verilog <Xilinx Install>/PlanAhead/data/verilog/unimacro

VHDL <Xilinx Install>/PlanAhead/data/vhdl/unimacro

SecureIP Verilog <Xilinx Install> /PlanAhead/data/secureip/<simulator>/<simulator>_cell.list

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 16UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン ラ イブ ラ リ

注記 : Verilog では大文字/小文字が区別されるので、UNISIM プ リ ミ テ ィ ブのイ ン ス タ ンシエーシ ョ ンではすべて大文 字の命名規則に従 う よ う にし て く だ さい。

プ リ コ ンパイル ラ イブラ リ を使用する場合は、 正しいシ ミ ュ レータ コマン ド ラ イ ン オプシ ョ ンを使用し て、 そのプ リ コ ンパイル ラ イブラ リ を指定する よ う にし て く だ さい。 次は、 Vivado シ ミ ュ レータの例です。

-L unisims_ver

UniMacro ラ イブ ラ リ

UniMacro は、 論理シ ミ ュ レーシ ョ ンで使用される ラ イブラ リ で、 選択デバイ ス プ リ ミ テ ィ ブのマ ク ロ記述を含みま す。 UniMacro ラ イブラ リ は、 『7 シ リ ーズ ラ イブラ リ ガイ ド (HDL 用)』 (UG768)[参照 6] に リ ス ト されるデバイ ス マ ク ロ を含める場合は常に指定する必要があ り ます。

VHDL UniMacro ラ イブ ラ リ

次のラ イブラ リ 宣言を HDL フ ァ イルの一番上に追加し ます。

library UNIMACRO;

use UNIMACRO.Vcomponents.all;

Verilog UniMacro ラ イブ ラ リ

Verilog の場合は、 各ラ イブラ リ コ ンポーネン ト を別のフ ァ イルに指定し ます。 これによ り 、 -y ラ イブラ リ 指定オプ シ ョ ンを使用し て ラ イブラ リ が自動的に拡張される よ う にな り ます。

重要 : Verilog モジ ュール名 と フ ァ イル名は大文字です。 た と えば、 モジュール BUFG は BUFG.v、 モジ ュール IBUF は IBUF.v と指定し ます。UNISIM プ リ ミ テ ィ ブ イ ン ス タ ンシエーシ ョ ンが大文字の命名規則に従 う よ う にし て く だ さい。

ラ イブラ リ を コ ンパイルおよびマ ッ プする必要も あ り ます。 こ の方法は、 シ ミ ュ レータによ って異な り ます。

次は、 Vivado シ ミ ュ レータのコ ンパイルおよびマ ッ プの例です。

-L unimacro_ver

XilinxCoreLib ラ イブ ラ リ

XilinxCoreLib ラ イブラ リ は、 ザイ リ ン ク ス IP カ タ ロ グで作成された特定のコ アを含むデザイ ンの RTL ビヘイ ビ ア シ ミ ュ レーシ ョ ンで使用し ます。

SIMPRIM ラ イ ブ ラ リ

SIMPRIM ラ イブラ リ は、 合成またはイ ンプ リ メ ンテーシ ョ ン後に生成される タ イ ミ ング シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト をシ ミ ュ レーシ ョ ンする際に使用し ます。

重要 : タ イ ミ ング シ ミ ュ レーシ ョ ンは Verilog でのみサポー ト されます。 VHDL バージ ョ ンの SIMPRIM ラ イブラ リ は あ り ません。

このラ イブラ リ は次のよ う に指定し ます。

-L SIMPRIM_VER

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 17UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン ラ イブ ラ リ

説明 :

° -L はラ イブラ リ 指定コマン ド です。

° SIMPRIM_VER は Verilog UniMacro がマ ッ プされている論理ラ イブラ リ 名です。

SecureIP シ ミ ュ レーシ ョ ン ラ イブ ラ リ

SecureIP ラ イ ブ ラ リ は PPC および GT などの複雑な FPGA コ ンポーネン ト の論理およびタ イ ミ ン グ シ ミ ュ レー シ ョ ンに使用し ます。

注記 : IP ブロ ッ クは Vivado シ ミ ュ レータで完全にサポー ト されています。 追加で設定をする必要はあ り ません。

Verilog LRM - IEEE Std 1364.2001 で指定された暗号化手法が使用さ れています。 ラ イ ブラ リ コ ンパイル プロ セスで は、 自動的に暗号化が されます。

Verilog コード を使用し てシ ミ ュ レーシ ョ ンを実行する場合は、 SecureIP ラ イブラ リ を参照する必要があ り ます。 こ のラ イブラ リ は、ほ と んどのシ ミ ュ レータで、次のよ う に -L をシ ミ ュ レータへの引数と して使用する と参照でき ます。

-L SECUREIP_VER

注記 : シ ミ ュ レータでラ イブラ リ を指定する コマン ド ラ イ ン オプシ ョ ンについては、それぞれのシ ミ ュ レータの資料 を参照し て く だ さい。

表 2-4 は、 これらのラ イブラ リ を使用する際にシ ミ ュ レータ ベンダーご と に注意する点を リ ス ト し ています。

VHDL SecureIP ラ イブ ラ リ

SecureIP を VHDL で使用するには、 各フ ァ イルの 初に次の 2 行を追加する必要があ り ます。

Library UNISIM;

use UNISIM.vcomponents.all;

Verilog SecureIP ラ イブ ラ リ

Verilog SecureIP ラ イブラ リ は、 コ ンパイル時に -f オプシ ョ ンを付け る と使用でき ます。 次は、 VCS のコマン ド ラ イ ンの例です。

vcs -f <Xilinx Install>/PlanAhead/data/secureip/VCS/vcs_cell.list.f \ <other simulation commands>

プ リ コ ンパイル ラ イブラ リ を使用する場合は、 正しい指示子でそのプ リ コ ンパイル ラ イブラ リ を指定する必要があ り ます。 次は、 Vivado シ ミ ュ レータの例です。

-L SECUREIP_VER

表 2-4 : SecureIP ラ イブ ラ リ を使用する際の考慮事項

シ ミ ュ レータ名 ベンダー 要件

ModelSim SE Mentor Graphics デザイ ン入力が VHDL の場合は、 混合言語ラ イセン ス または SecureIP OP が必要です。 詳細はベンダーにお尋ね く ださい。 ModelSim PE

ModelSim DE

QuestaSim

IUS Cadence 輸出管理規制ラ イセン スが必要です。

VCS Synopsys VCS コマン ド に -lca オプシ ョ ンを付け る必要があ り ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 18UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン ラ イブ ラ リ

UNIFAST ラ イブ ラ リ

UNIFAST ラ イ ブ ラ リ は RTL ビヘイ ビ ア シ ミ ュ レーシ ョ ンで使用で き る オプシ ョ ンの ラ イ ブ ラ リ で、 シ ミ ュ レー シ ョ ン ラ ン タ イ ム を速 く し ます。 シ ミ ュ レーシ ョ ン ラ ン タ イ ムの高速化は、 シ ミ ュ レーシ ョ ン モデルのプ リ ミ テ ィ ブ機能のサブセ ッ ト をサポー ト する こ と で達成 さ れます。

高速 MMCME2 UNISIM シ ミ ュ レーシ ョ ン モデル

シ ミ ュ レーシ ョ ン ラ ン タ イ ムを減らすため、 高速の MMCME2 シ ミ ュ レーシ ョ ン モデルではフルモデルに比べて次が 変更されています。

1. 高速シ ミ ュ レーシ ョ ン モデルには基本的な ク ロ ッ ク生成フ ァ ン ク シ ョ ン しかあ り ません。 DRP、 精密位相シフ ト 、 ク ロ ッ ク停止およびク ロ ッ ク カス ケード などのその他のフ ァ ン ク シ ョ ンはサポー ト されません。

2. 入力ク ロ ッ クは周波数および位相変更がな く て も安定し ている と仮定されます。入力ク ロ ッ ク周波数サンプルはLOCKED が high になる と停止し ます。

3. 出力ク ロ ッ ク周波数、位相、デューテ ィ サイ クルおよびその他の機能は入力ク ロ ッ ク周波数と パラ メ ーター設定 から直接計算されます。

注記 : 出力ク ロ ッ ク周波数は入力から VCO ク ロ ッ ク まで、 VCO から出力ク ロ ッ ク までは生成されません。

4. LOCKED のアサー ト 時間は標準および高速 MMCME2 シ ミ ュ レーシ ョ ン モデル間で異な り ます。

° 標準モデルは M および D 設定によ って異な り ます。 M および D の値が大きい と、 標準 MMCME2 シ ミ ュ レー シ ョ ン モデルのロ ッ ク時間は比較的長 く な り ます。

° 高速シ ミ ュ レーシ ョ ン モデルの場合、 この時間は短 く な り ます。

RAMB18E1/RAMB36E1

シ ミ ュ レーシ ョ ン ラ ン タ イ ムを削減する ため、高速ブロ ッ ク RAM シ ミ ュ レーシ ョ ン モデルでは次の機能がフルモデ ルから削除されています。

• エラー修正コード (ECC)

• 競合チェ ッ ク

• カス ケード モード

FIFO18E1/FIFO36E1

シ ミ ュ レーシ ョ ン ラ ン タ イ ムを削減する ため、高速 FIFO シ ミ ュ レーシ ョ ン モデルでは次の機能がフルモデルから削 除されています。

• ECC

• RESET のデザイ ン ルール チェ ッ ク (DRC)

• almostempty および almostfull オフセ ッ ト の DRC チェ ッ ク

• 出力パデ ィ ング : データ出力の場合は X、 カ ウ ン タ-の場合は1

• 初のワード 中断

• almostempty および almostfull フ ラ グ

DSP48E1

シ ミ ュ レーシ ョ ン ラ ン タ イ ムを削減する ため、 高速 DSP48E1 シ ミ ュ レーシ ョ ン モデルでは次の機能がフルモデルか ら削除されています。

• ALU

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 19UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン ラ イブ ラ リ

• パターン検出

OverFlow/UnderFlow

シ ミ ュ レーシ ョ ン ラ ン タ イ ムを削減する ため、 高速 OverFlow/UnderFlow シ ミ ュ レーシ ョ ン モデルでは次の機能がフ ルモデルから削除されています。

• PLLE2_ADV

• DRP イ ン ターフ ェ イ スのサポー ト

Verilog UNIFAST ラ イブ ラ リの使用

手法 1 : Verilog でのコ ン フ ィ ギュ レーシ ョ ン

手法 1 では、 次を config.v フ ァ イルで指定し ます。

• 上位モジュールまたはコ ンフ ィ ギュ レーシ ョ ンの名前を指定し ます。 例 : config cfg_xilinx;

• デザイ ン コ ンフ ィ ギュ レーシ ョ ンを適用する名前を指定し ます。 例 : design testbench;

• 明示的に呼び出されないセルまたはイ ンス タ ンスのラ イブラ リ 検索順を定義し ます。 例 : default liblist unisims_ver unifast_ver;

• 特定の CELL または INSTANCE を特定のラ イブラ リ にマ ッ プし ます。 例 : instance testbench.inst.O1 use unifast_ver.OR2;

注記 : ModelSim (vsim) の場合のみ : genblk が階層名に追加されます。 例 : instance testbench.genblk1.inst.genblk1.O1 use unifast_ver.OR2; - VSIM

config.v の例

config cfg_xilinx;design testbench;default liblist unisims_ver unifast_ver;cell AND2 use unifast_ver.AND2;instance testbench.inst.O1 use unifast_ver.OR2;(instance testbench.genblk1.inst.genblk1.O1 use unifast_ver.OR2; - VSIM)endconfig

手法 2 : ラ イ ブ ラ リ またはフ ァ イル コ ンパイル順の使用

この手法では、 コ ンパイル順をシ ミ ュ レータおよびコード タ イプ別に リ ス ト し ます。

• Vivado Simulator : Verilog の -L または -sourcelibdir 順で all fast / no fast を選択

xelab -L unifast_ver -L unisims_ver testbench glbl -s mysim

xvlog -sourcelibdir ../verilog/src/unifast -sourcelibext .v -sourcelibdir ../verilog/src/unisims; xelab testbench glbl -s mysim

• Modelsim : Verilog の -L または -y 順で all fast / no fast を選択

vsim -c -L unifast_ver -L unisims_ver testbench glbl

vlog -y ../verilog/src/unifast +libext+.v -y ../verilog/src/unisims; vsim -c testbench glbl

• NCSIM : Verilog - 異なる コマン ド ラ イ ンで同じ結果

ncelab -libname unifast_ver -libname unisims_ver

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 20UG900 (v2012.2) 2012 年 7 月 25 日

ネ ッ ト リ ス ト 生成プロセス (非プロジ ェ ク ト モー ド )

ncverilog -y ../verilog/src/unifast +libext+.v -y ../verilog/src/unisims +libext+.v \

• VCS : Verilog の -lib では順序が暗示でき ない- synopsys_sim.setup を変更し て ラ イブラ リ を順序付け

vcs -work work -y ../Verilog/src/unifast +libext+.v -y ../verilog/src/unisims +libext+.v ../netlist.v testbench glbl

VHDL UniFast ラ イブ ラ リの使用

VHDL UniFast ラ イブラ リ は、 Verilog と同じ基本構造を持つので、 アーキテ クチャ またはラ イブラ リ と も使用でき ます。 こ の ラ イブ ラ リ はテス ト ベンチ フ ァ イルに含める こ と ができ ます。 次の例では、 for 呼び出しで掘 り 下げた 階層を使用し ています。

library work;

library unisim;

library unifast; -- (different libs use case)

configuration cfg_xilinx of testbench is for xilinx for inst:netlist use entity work.netlist(inst); for inst

for all:AND2 use entity unifast.AND2; -- could be unisim.AND2(fast) (architecture use case) end for;

for O1:OR2 use entity unifast.OR2; -- could be unisim.OR2(fast) (architecture use case)

end for;

end for; end for; end for;

end cfg_xilinx;

シ ミ ュ レーシ ョ ン ラ イ ブ ラ リのコ ンパイル

デザイ ンをシ ミ ュ レーシ ョ ンする前に、 適用可能な ラ イブラ リ を コ ンパイルし て、 シ ミ ュ レータにマ ッ プし てお く 必要があ り ます。

Vivado Design Suite の Tcl コ ン ソールに Tcl コマン ド の compile_simlib を入力し、 ザイ リ ン ク スの HDL ベースの シ ミ ュ レーシ ョ ン ラ イブラ リ をサード パーテ ィ のシ ミ ュ レーシ ョ ン ベンダー用にコ ンパイルし ます。 ラ イブラ リ は、 通常新しいシ ミ ュ レータ バージ ョ ンがイ ン ス ト ールされる と コ ンパイル (または リ コ ンパイル) されます。

詳細は、 『Vivado Tcl コマン ド リ フ ァ レ ン ス ガ イ ド』 (UG835)[参照 4] を参照し て く ださ い。

ヒ ン ト : テス ト ベンチ名に testbench を使用し た場合、 Vivado IDE から シ ミ ュ レーシ ョ ンを実行するためにコ ンパ イルを変更する必要があ り ます。

ネ ッ ト リ ス ト 生成プロセス (非プロジ ェ ク ト モー ド )合成済みまたはイ ンプ リ メ ン ト 済みデザイ ンのシ ミ ュ レーシ ョ ンを実行するには、ネ ッ ト リ ス ト 生成プロセス を実行する必要があ り ます。 Tcl のネ ッ ト リ ス ト 生成コマン ド は合成済みまたはイ ンプ リ メ ン ト 済みデザイ ン データベース を使用し、 デザイ ン全体に対し て 1 つのネ ッ ト リ ス ト を書き出し ます。

ネ ッ ト リ ス ト 生成コ マン ド では、 シ ミ ュ レーシ ョ ン、 STA、 およびデザイ ン ネ ッ ト リ ス ト を書き出すこ と ができ ま す。 Vivado Design Suite では、 次のネ ッ ト リ ス ト コマン ド が提供されています。

• write_verilog : Verilog ネ ッ ト リ ス ト

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 21UG900 (v2012.2) 2012 年 7 月 25 日

ネ ッ ト リ ス ト 生成プロセス (非プロジ ェ ク ト モー ド )

• write_vhdl : VHDL ネ ッ ト リ ス ト

• write_sdf : SDF 生成

これらのコマン ド は、 デザイ ン プロセスのどの段階ででも論理およびタ イ ミ ング シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト を 生成でき ます。

ヒ ン ト : SDF 値はデザイ ン プロ セスの早期段階 (合成中など) では概算にすぎ ません。 デザイ ン プロ セスが進む と、 データベースによ り 多 く の情報が含まれる よ う にな り 、 タ イ ミ ング数値の精度も増し ます。

シ ミ ュ レーシ ョ ン用論理ネ ッ ト リ ス ト の生成

Vivado Design Suite では論理シ ミ ュ レーシ ョ ン用の Verilog または VHDL 構造ネ ッ ト リ ス ト の書き出しがサポー ト さ れています。 こ のネ ッ ト リ ス ト の目的は、 シ ミ ュ レーシ ョ ンを タ イ ミ ング情報な しで実行し て、 Vivado IDE でイ ンプ リ メ ン ト された構造ネ ッ ト リ ス ト のビヘイ ビアが予測さ れる ビヘイ ビア モデル (RTL) シ ミ ュ レーシ ョ ン と 一致する かど う かチェ ッ クする こ と にあ り ます。

論理シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト は階層構造で、モジュールまたはエンテ ィ テ ィ レベル (プ リ ミ テ ィ ブおよびマ ク ロ プ リ ミ テ ィ ブを含む下位階層) に展開可能なネ ッ ト リ ス ト です。 これらのプ リ ミ テ ィ ブは、 次のラ イブラ リ に含ま れます。

• Verilog シ ミ ュ レーシ ョ ンの場合は UNISIM_VER シ ミ ュ レーシ ョ ン ラ イブラ リ

• VHDL シ ミ ュ レーシ ョ ンの場合は UNISIM シ ミ ュ レーシ ョ ン ラ イブラ リ

多 く の場合、 ビヘイ ビア シ ミ ュ レーシ ョ ンで使用し たの と 同じ テス ト ベンチを使用し て、 さ ら に精度の高いシ ミ ュ レーシ ョ ンを実行でき ます。

次は、 論理シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト を生成する Verilog および VHDL 構文です。

write_verilog –mode funcsim <verilogNetlistName>

write_vhdl –mode funcsim <vhdlNetlistName>

シ ミ ュ レーシ ョ ン用タ イ ミ ング ネ ッ ト リ ス ト の生成

Verilog タ イ ミ ング シ ミ ュ レーシ ョ ンを使用する と、 ワース ト ケースの配置配線遅延の計算後に回路動作を検証でき ます。

多 く の場合、 論理シ ミ ュ レーシ ョ ンで使用し たの と同じ テス ト ベンチを使用し て、 さ らに精度の高いシ ミ ュ レーシ ョンを実行でき ます。

2 つのシ ミ ュ レーシ ョ ンから の結果を比較し、 デザイ ンが 初に指定し た とお り に実行されているかど う かを検証し ます。

注記 : Vivado IDE では、 Verilog タ イ ミ ング シ ミ ュ レーシ ョ ン しかサポー ト されません。

次は、 タ イ ミ ング シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト を生成する構文です。

write_verilog –mode timesim –sdf_anno true <VerilogNetlistName>

SDF フ ァ イルのア ノ テーシ ョ ン

次は、 SDF フ ァ イルをア ノ テーシ ョ ンする ための構文です。

write_sdf –process_corner fast test.sdf

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 22UG900 (v2012.2) 2012 年 7 月 25 日

グローバル リ セ ッ ト および ト ラ イステー ト

セ ッ ト ア ッ プおよびホールド チ ェ ッ クの実行

SDF フ ァ イルには、 指定し たプロセス コーナーに基づいて異なる min および max 数値が含まれます。 2 つの異なる シ ミ ュ レーシ ョ ンを実行し て、 セ ッ ト ア ッ プおよびホール ド違反をチェ ッ クする こ と をお勧めし ます。

セ ッ ト ア ッ プ チェ ッ ク を実行するには、 –process コーナーを slow にし て SDF を作成し、 SDF からの max 列を使用し ます。

た と えば、 ModelSim では次のよ う に指定し ます。

–sdfmax

ホール ド チェ ッ ク を実行するには、 –process コーナーを fast にし て SDF を作成し、 SDF からの min 列を使用し ます。 た と えば、 ModelSim では次のよ う に指定し ます。

-sdfmin

4 つのタ イ ミ ング シ ミ ュ レーシ ョ ンすべてを確認するには、 次のよ う に指定し ます。

· slow コーナー : SDFMIN および SDFMAX

· fast コーナー : SDFMIN および SDFMAX

ヒ ン ト : イ ン ターコネ ク ト 間でパルスがフ ィ ルターされないよ う にするには、シ ミ ュ レータ設定ダ イ ア ロ グ ボ ッ ク ス で次のオプシ ョ ンを使用し て Vivado IDE タ イ ミ ング シ ミ ュ レーシ ョ ンを実行する必要があ り ます。

グローバル リ セ ッ ト および ト ラ イステー トザイ リ ン ク ス® デバイ スには、 デバイ スのすべてのレジス タに接続される専用の配線および回路が含まれます。

グローバル セ ッ ト / リ セ ッ ト ネ ッ ト

専用グ ローバル セ ッ ト / リ セ ッ ト (GSR) ネ ッ ト をアサー ト する と、 そのネ ッ ト はデバイ スのコ ンフ ィ ギュ レーシ ョ ン 直後に解除されます。 すべてのフ リ ッ プフ ロ ッ プおよびラ ッ チはこ の リ セ ッ ト を受信し、 レジス タがどのよ う に定義されているかによ って、 セ ッ ト または リ セ ッ ト のいずれかにな り ます。

コ ンフ ィ ギュ レーシ ョ ン後に GSR ネ ッ ト にア ク セスはでき ますが、 手動 リ セ ッ ト の代わ り に GSR 回路を使用するの はお勧めし ません。これは FPGA デバイ スがシステム リ セ ッ ト のよ う なフ ァ ンアウ ト の大きい信号に対し て高速バッ ク ボーン配線を提供し ている ためです。 こ のバッ ク ボーン配線は専用 GSR 回路よ り も高速で、 GSR 信号を転送する 専用グ ローバル配線よ り も解析が簡単です。

合成後およびイ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ンでは、GSR 信号には自動的に 初の 100ns 間パルスが送 られ、 コ ンフ ィ ギュ レーシ ョ ン後に発生し た リ セ ッ ト がシ ミ ュ レーシ ョ ン されます。 GSR パルスはオプシ ョ ンで早期 (合成前) 論理シ ミ ュ レーシ ョ ンで提供されますが、すべてのレジス タ を リ セ ッ ト する ローカル リ セ ッ ト がデザイ ンに 含まれる場合は必要あ り ません。

ヒ ン ト : テス ト ベンチを作成する場合は、GSR パルスが合成後およびイ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ン で自動的に発生し ます。 これによ り 、 すべてのレジス タがシ ミ ュ レーシ ョ ンの 初の 100ns 間 リ セ ッ ト 状態に保持さ れます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 23UG900 (v2012.2) 2012 年 7 月 25 日

グローバル リ セ ッ ト および ト ラ イステー ト

グローバル ト ラ イステー ト ネ ッ ト

専用グ ローバル GSR だけでな く 、 専用グ ローバル ト ラ イ ステー ト (GTS) ネ ッ ト を使用し てコ ンフ ィ ギュ レーシ ョ ン モード 中に出力バッ フ ァーをハイ イ ンピーダン ス ス テー ト に設定する こ と もでき ます。 すべての汎用目的出力は通 常操作中にそれが標準、 ト ラ イ ステー ト 、 双方向出力のいずれであ るかによ って変わ り ます。 これによ り 、 FPGA が コ ンフ ィ ギュ レーシ ョ ン された と きに出力が間違ってほかのデバイ ス を駆動する こ と はな く な り ます。

シ ミ ュ レーシ ョ ンでは、 GTS 信号は通常駆動されません。 GTS を駆動する回路は、 合成後およびイ ンプ リ メ ンテー シ ョ ン後のシ ミ ュ レーシ ョ ンで使用でき ます。 早期 (合成前) 論理シ ミ ュ レーシ ョ ンにはオプシ ョ ンで追加でき ます が、 GTS パルス幅はデフ ォル ト で 0 に設定されます。

グローバル ト ラ イステー ト (GTS) およびグローバル セ ッ ト / リセ ッ ト (GSR) 信号の使用

図 2-1 は、 グ ローバル ト ラ イ ステー ト (GTS) およびグ ローバル セ ッ ト / リ セ ッ ト (GSR) 信号が FPGA デバイ スでどの よ う に使用されているかを示し ています。

Verilog の GSR および GTSグ ローバル セ ッ ト / リ セ ッ ト (GSR) およびグ ローバル ト ラ イ ステー ト (GTS) 信号は $XILINX/PLANAHEAD/data/verilog/src/glbl.v モジュールで定義されています。 ほ と んどの場合、 GSR および GTS をテス ト ベンチで定義する必要はあ り ません。

glbl.v フ ァ イルはグ ローバル GSR および GTS 信号を宣言し、 自動的に GSR に 100 ns 間パルス を送 り ます。

X-Ref Target - Figure 2-1

図 2-1 : ビル ト イン FPGA 初期化回路図

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 24UG900 (v2012.2) 2012 年 7 月 25 日

第 3 章

Vivado IDE でのシ ミ ュ レーシ ョ ンの実行

概要本章では、 Vivado™ Integrated Design Environment (IDE) シ ミ ュ レー タ のグ ラ フ ィ カル ユーザー イ ン タ ーフ ェ イ ス (GUI) について説明し ます。 このシ ミ ュ レータは、Vivado IDE で混合言語シ ミ ュ レータ を設定する際に選択でき ます。

Vivado IDE には、 ビヘイ ビア シ ミ ュ レーシ ョ ンに Vivado シ ミ ュ レータ を使用するための統合シ ミ ュ レーシ ョ ン環境 が提供されています。

シ ミ ュ レーシ ョ ン設定 Flow Navigator で [Simulation Settings] を ク リ ッ クする と、 Vivado IDE でシ ミ ュ レーシ ョ ン設定ができ ます。 図 3-1 は Flow Navigator の [Simulation] を示し ています。

• [Simulation Settings] : Vivado シ ミ ュ レータの選択および設定ができ る [Simulation Settings] ダ イ ア ロ グ ボ ッ ク ス を 開き ます。

• [Run Simulation] : シ ミ ュ レーシ ョ ン設定に基づいてデザイ ンを コ ンパイル、 エラ ボレー ト 、 シ ミ ュ レーシ ョ ンす る コマン ド オプシ ョ ンを設定し ます。 Vivado シ ミ ュ レータによ り 波形ウ ィ ン ド ウが開かれ、 信号およびバスの 値を含めて HDL オブジェ ク ト がデジ タルまたはアナロ グ形式のいずれかで表示されます。 詳細は、 図 3-2 を参 照し て く だ さい。

• [Open Static Simulation] : 前に作成し た波形コ ンフ ィ ギュ レーシ ョ ン (WDB) フ ァ イルを開 く こ と ができ ます。詳細 は、 第 5 章の 「前のシ ミ ュ レーシ ョ ン設定からのシ ミ ュ レーシ ョ ン データの表示 (ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン)」 を参照し て く だ さい。

X-Ref Target - Figure 3-1

図 3-1 : Flow Navigator の [Simulation]

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 25UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン設定

[Simulation Settings] を選択する と、 図 3-2 に示すよ う な [Project Settings] ダ イ ア ロ グ ボ ッ ク スが開き ます。

[Project Settings] ダ イ ア ロ グ ボ ッ ク スの [Target simulator] では、[Vivado simulator] または [QuestaSim/ModelSim] を選択 でき ます。

シ ミ ュ レータ を選択し てプロジェ ク ト 設定でオプシ ョ ンを適用し た ら、 27 ページの図 3-3 に示すページを開き ます。

重要 : Vivado シ ミ ュ レータにはプ リ コ ンパイル ラ イ ブラ リ が含まれているので、 ラ イブラ リ デ ィ レ ク ト リ を指定す る必要はあ り ません。 [Simulation] ページには、 [QuestaSim/ModelSim] を選択し た場合、 ラ イ ブラ リ デ ィ レ ク ト リ 用 の追加フ ィ ール ド が表示されます。

X-Ref Target - Figure 3-2

図 3-2 : [Project Settings] ダイアログ ボ ッ クスのターゲッ ト シ ミ ュ レータ オプシ ョ ン

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 26UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン設定

[Simulation] ページでは、 次が設定でき ます。

• [Simulation set] : 既存のシ ミ ュ レーシ ョ ン設定を選択するか、[Create simulation set] を使用し ます (30 ページの 「シ ミ ュ レーシ ョ ン セ ッ ト の編集」 を参照)。

• [Simulation top module name] : シ ミ ュ レーシ ョ ン 上位モジュールを設定し ます。

• [Compiled library location] : [QuestaSim/ModelSim] を [Target simulator] で選択する と、こ のフ ィ ール ド にプ リ コ ンパ イル済みのラ イブラ リ が表示されます。

- シ ミ ュ レーシ ョ ン ラ イブラ リ を指定する方法については、15 ページの 「シ ミ ュ レーシ ョ ン ラ イブラ リ 」 を参照し て く だ さい。

- QuestaSim/ModelSim に関する詳細は、 付録 A 「Vivado IDE 外でサード パーテ ィ シ ミ ュ レータ を使用し たシ ミ ュ レーシ ョ ンの実行」 を参照し て く だ さい。

• [Compilation View] タブ : よ く 使用される コ ンパイル オプシ ョ ンのオプシ ョ ンを参照および選択でき ます。

° [Verilog options] : 使用する Verilog コード のバージ ョ ンを選択し ます。

° [Generics/Parameters options] : 必要な VHDL ジェネ リ ッ ク または Verilog パラ メ ーターを選択し ます。

° [Command options] :

- -snapshot : シ ミ ュ レーシ ョ ンで使用するプ リ コ ンパイル済みシ ミ ュ レーシ ョ ンのスナッ プシ ョ ッ ト の名前を指定し ます。 スナッ プシ ョ ッ ト は、シ ミ ュ レータのコ ンパイル プロセスからの実行可能な出力 です。

- -debug : シ ミ ュ レーシ ョ ンを高速に実行する ため、 デフ ォル ト で typical に設定されています。

- -rangecheck : シ ミ ュ レーシ ョ ンを高速に実行する ため、 デフ ォル ト で off に設定されています。

• [Simulation] タブ : 使用可能なシ ミ ュ レーシ ョ ン オプシ ョ ンを提供し ます。 オプシ ョ ンを ク リ ッ クする と、 その 説明が表示されます。 図 3-4 に、 [Simulation] タブを示し ます。

X-Ref Target - Figure 3-3

図 3-3 : [Project Settings] ダイアログ ボ ッ クス : [Simulation] ページのコ ンパイル設定

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 27UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン ソースの管理

[Simulation] タブでは次のオプシ ョ ンを選択でき ます。

• [Simulation Run Time] : シ ミ ュ レーシ ョ ンが開始される際に自動で実行される シ ミ ュ レーシ ョ ン時間を指定し ま す。 デフ ォル ト は 1000 ns です。

• -view : 前に保存し た波形コ ンフ ィ ギュ レーシ ョ ン (WCFG) フ ァ イルを開 く こ と ができ ます。 波形コ ンフ ィ ギュ レーシ ョ ンは、 波形ウ ィ ン ド ウで表示する HDL オブジェ ク ト の リ ス ト です。

• [More Simulation Options] : さ らに多 く のシ ミ ュ レーシ ョ ン オプシ ョ ンがあ り ます。

オプシ ョ ンを ク リ ッ クする と、 その説明が表示されます。

ヒ ン ト : 初の run か ら の WCFG フ ァ イルには、 指定し た信号を仕切 り 付きのアナロ グまたはデ ジ タ ル波形で保存で き ま す。 後の run で -view オプ シ ョ ン を使用 し て GUI を開 く と 、 こ の WCFG フ ァ イルが開 く ので、 シ ミ ュ レーシ ョ ン波形を設定する時間が節約でき ます。

シ ミ ュ レーシ ョ ン ソースの管理

Vivado Design Suite では、 RTL ビヘイ ビアー シ ミ ュ レーシ ョ ン用にシ ミ ュ レーシ ョ ン ソース を追加でき ます。 シ ミ ュ レーシ ョ ン ソース フ ァ イルには、 シ ミ ュ レーシ ョ ンのス テ ィ ミ ュ ラ ス と し て使用する HDL ベースのテ ス ト ベンチ フ ァ イルが含まれます。

X-Ref Target - Figure 3-4

図 3-4 : [Project Settings] ダイアログ ボ ッ ク ス : [Simulation] ページ : [Simulation] タ ブ

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 28UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン ソースの管理

Vivado Design Suite では、 シ ミ ュ レーシ ョ ン ソース フ ァ イルは simsets と い う シ ミ ュ レーシ ョ ン セ ッ ト に格納され、 [Sources] ビ ューにフ ォルダーと し て表示されます。 リ モー ト のものを参照するか、 ローカル プロジェ ク ト デ ィ レ ク ト リ に保存されている ものを使用でき ます。

simsets によ り 、 デザイ ンの異なる段階に異なる ソース を使用でき ます。 た と えば、 エラ ボレー ト 済みデザイ ン または デザイ ンのモジ ュールのビヘイ ビアー シ ミ ュ レーシ ョ ン用にステ ィ ミ ュ ラ ス を供給する シ ミ ュ レーシ ョ ン ソース を 使用し、イ ンプ リ メ ン ト 済みデザイ ンのタ イ ミ ング シ ミ ュ レーシ ョ ン用にステ ィ ミ ュ ラ ス を供給する別のテス ト ベン チを使用でき ます。

シ ミ ュ レーシ ョ ン ソース をプロ ジェ ク ト に追加する際、 ソース を追加する シ ミ ュ レーシ ョ ン ソース セ ッ ト を指定で き ます。

シ ミ ュ レーシ ョ ン ソース フ ァ イルの追加または作成

シ ミ ュ レーシ ョ ン ソース をプロ ジェ ク ト に追加するには、 次の手順に従います。

1. [File] → [Add Sources] を ク リ ッ ク し ます。

Add Sources ウ ィ ザード が表示されます。

2.[Add or Create Simulation Sources] をオンにし、 [Next] を ク リ ッ ク し ます。

図 3-5 に示す [Add or Create Simulation Sources] ページが表示されます。

[Add or Create Simulation Sources] ページでは、 次のオプシ ョ ンが設定でき ます。

• [Specify simulation set] : シ ミ ュ レーシ ョ ン セ ッ ト の名前をテス ト ベンチ フ ァ イルおよびデ ィ レ ク ト リ に入力し ま す。 1 つま たは複数のシ ミ ュ レーシ ョ ン セ ッ ト が既に定義さ れてい る場合は、 ド ロ ッ プダ ウ ン メ ニ ューか ら [Create Simulation Set] コマン ド を選択し て、 新しいシ ミ ュ レーシ ョ ン セ ッ ト を定義し ます。

• [Add Files] : プロ ジェ ク ト に追加する シ ミ ュ レーシ ョ ン ソース フ ァ イルを選択し ます。

X-Ref Target - Figure 3-5

図 3-5 : [Add or Create Simulation Sources] ページ

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 29UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン ソースの管理

• [Add Directories] : 選択し たデ ィ レ ク ト リ に含まれるすべてのシ ミ ュ レーシ ョ ン ソース フ ァ イルを追加し ます。指 定し たデ ィ レ ク ト リ にあ る有効な ソース フ ァ イルがすべてプロ ジェ ク ト に追加されます。

• [Create File] : 新規シ ミ ュ レーシ ョ ン フ ァ イルを作成する [Create Source File] ダ イ ア ロ グ ボ ッ ク スが開き ます。 プ ロジェ ク ト ソース フ ァ イルの詳細は、『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893)[参照 3] の 「ソース フ ァ イルの追加と作成」 を参照し て く だ さい。

ダ イ ア ロ グ ボ ッ ク スには、 次のよ う なボタ ンがあ り ます。

• [Remove] : 選択し た ソース フ ァ イルを リ ス ト から削除し ます。

• [Move Selected File Up] : フ ァ イルを リ ス ト の上方向へ移動し ます。

• [Move Selected File Down] : フ ァ イルを リ ス ト の下方向へ移動し ます。

ウ ィ ザード のチェ ッ ク ボ ッ ク スには、 次のオプシ ョ ンがあ り ます。

• [Scan and Add RTL Include Files into Project] : 追加し た RTL フ ァ イルを スキ ャ ン し て、 参照された イ ン クルード フ ァ イルを追加し ます。

• [Copy Sources into Project] : ソース フ ァ イルをプロ ジェ ク ト デ ィ レ ク ト リ にコ ピーし ます。プロ ジェ ク ト ではロー カルにコ ピーされたバージ ョ ンが使用されます。

[Add Directories] ボタ ンを ク リ ッ ク し て ソース フ ァ イルのデ ィ レ ク ト リ を追加し た場合は、 フ ァ イルがローカル のプロジェ ク ト にコ ピーされる際にデ ィ レ ク ト リ 構造も そのま ま保持されます。

• [Add Sources from Subdirectories] : [Add Directories] で指定し たデ ィ レ ク ト リ のサブデ ィ レ ク ト リ に含まれる ソー ス フ ァ イルをすべて追加し ます。

シ ミ ュ レーシ ョ ン セ ッ ト の編集

シ ミ ュ レーシ ョ ン セ ッ ト を変更するには、 次を実行し ます。

1. [Sources] ビ ューで [Simulation Sources] を右ク リ ッ ク し、 [Edit Simulation Sets] を ク リ ッ ク し ます (図 3-6)。

Add Sources ウ ィ ザード が表示されます。

2. [Specify simulation set] ド ロ ッ プダウ ン リ ス ト から [Create Simulation Set] を選択し ます (図 3-7)。

X-Ref Target - Figure 3-6

図 3-6 : [Edit Simulation Sets] オプシ ョ ン

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 30UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ン ソースの管理

プロジェ ク ト に関連する ソースが新し く 作成される シ ミ ュ レーシ ョ ン セ ッ ト に追加されます。

3. 必要に応じ てほかのフ ァ イルも追加し ます。

重要 : 定義 さ れたシ ミ ュ レーシ ョ ン セ ッ ト の コ ンパ イ ルおよびシ ミ ュ レーシ ョ ン設定は新し く 定義 さ れたシ ミ ュ レーシ ョ ン セ ッ ト には適用されません。 た と えば、 sim_1 のコ ンパイルおよびシ ミ ュ レーシ ョ ン設定は sim_2 には 適用されません。

X-Ref Target - Figure 3-7

図 3-7 : [Add or Create Simulation Sources] ページ : [Create Simulation Set]

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 31UG900 (v2012.2) 2012 年 7 月 25 日

Vivado シ ミ ュ レータの使用

Vivado シ ミ ュ レータの使用Vivado シ ミ ュ レータ を選択し、Flow Navigator から [Run Simulation] を選択する と、図 3-8 のよ う な Vivado シ ミ ュ レー タの GUI が開いて、 シ ミ ュ レーシ ョ ンが表示されます。

Vivado IDE シ ミ ュ レータのビ ュー

次の説明は、 Vivado シ ミ ュ レータの図の番号に対応し ています。

1. メ ニュー

Flow Navigator で [Simulation] を選択し た場合の メ ニューです。 詳細は、 25 ページの 「シ ミ ュ レーシ ョ ン設定」 を参照 し て く だ さい。

2. [Run] メ ニュー

メ ニューは Vivado IDE と同じですが、 シ ミ ュ レーシ ョ ンを実行し た後には [Run] メ ニューが追加されます。

Vivado IDE の メ ニューの詳細は、『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893)[参照 3] を参照し て く だ さい。 シ ミ ュ レーシ ョ ンの [Run] メ ニューは、 図 3-9 のよ う にな り ます。

X-Ref Target - Figure 3-8

図 3-8 : Vivado シ ミ ュ レータの GUI

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 32UG900 (v2012.2) 2012 年 7 月 25 日

Vivado シ ミ ュ レータの使用

[Simulation] メ ニ ュー オプシ ョ ンは次の とお り です。

• [Restart] : 既存のシ ミ ュ レーシ ョ ン時間を 0 に戻し て再開し ます。

• [Run All] : 開いている シ ミ ュ レーシ ョ ンを 後まで実行し ます。

• [Run For] : 実行する シ ミ ュ レーシ ョ ン時間を指定し ます。

• [Step] : 次の HDL ソース ラ イ ンまでシ ミ ュ レーシ ョ ンを実行し ます。

• [Break] : 実行中のシ ミ ュ レーシ ョ ンを停止し ます。

• [Delete All Breakpoints] : すべてのブレーク ポ イ ン ト を削除し ます。

3. [Objects] ビ ュー

HDL オブジェ ク ト が表示されます。

ビ ューの詳細は、 『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893)[参照 3] を参照し て く ださ い。

HDL オブジ ェ ク ト の横には、 言語またはプロセス タ イプが表示されます。 このビ ューにはシ ミ ュ レーシ ョ ン オブジ ェ ク ト の名前、 デザイ ン ユニ ッ ト 、 ブロ ッ ク タ イプなどがリ ス ト されます。 [Object] ボタ ンの上にカーソルを置く と、 詳細が表示されます。

4. [Simulation] ツールバー

Vivado シ ミ ュ レータ を実行する と、 シ ミ ュ レーシ ョ ン専用の ツールバーが Vivado ツールバーの横に表示されます。

ツールバー ボタ ンの上にカーソルを置 く と、 そのボ タ ンの機能を示すツール ヒ ン ト が表示されます。 ボ タ ンは、 図 3-9 と同じ名前にな り ます。

X-Ref Target - Figure 3-9

図 3-9 : シ ミ ュ レーシ ョ ンのメ ニュー オプシ ョ ン

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 33UG900 (v2012.2) 2012 年 7 月 25 日

Vivado シ ミ ュ レータの使用

5/6. HDL オブジ ェ ク ト および波形ビ ュー

Vivado IDE 波形ビ ューは、 多 く の Vivado Design Suite ツールで共通し て使用されます。

波形の詳細は、 第 5 章 「波形を使用し た解析およびデバ ッ グ」 を参照し て く ださい。

波形ビ ューの例は、 図 3-10を参照し て く ださい。

波形ビ ューには、 HDL オブジェ ク ト と その値および波形に加え、 グループ、 仕切 り 、 仮想バスなどの HDL オブジェ ク ト を整頓する ためのア イ テム も表示されます。

HDL オブジ ェ ク ト および整頓さ れたア イ テムは 「波形オブジ ェ ク ト 」 と 呼ばれます。 波形ビ ューの波形部分には、 カーソル、 マーカー、 時間軸などの時間尺度のア イ テム も表示されます。

Vivado IDE ではシ ミ ュ レーシ ョ ン中に波形コ ンフ ィ ギュ レーシ ョ ンの HDL オブジェ ク ト が ト レース されるので、 波 形コ ンフ ィ ギュ レーシ ョ ンを使用し てシ ミ ュ レーシ ョ ン結果を検証し ます。デザイ ン階層および波形は波形コ ンフ ィギュ レーシ ョ ンの一部ではな く 、 別の WDB データベース フ ァ イルに格納されます。

シ ミ ュ レータ を起動する と、 シ ミ ュ レーシ ョ ンで ト レース可能な HDL オブジェ ク ト の 上位モジ ュールを含む新し い波形コ ンフ ィ ギュ レーシ ョ ンを表示する波形ビ ューがデフ ォル ト で表示されます。

新規波形コ ン フ ィ ギ ュ レーシ ョ ンはデ ィ ス ク に自動的には保存されません。 [File] → [ave Waveform Configuration As] を ク リ ッ ク し て、 フ ァ イル名を指定し て、 WCFG フ ァ イルを作成し ます。

シ ミ ュ レーシ ョ ン セ ッ シ ョ ンで複数の波形コ ンフ ィ ギ ュ レーシ ョ ン (それぞれ独自の波形ビ ューあ り ) を作成および 使用でき ます。 複数の波形ビ ューが表示されている場合は、 一番 近に作成し たビ ューまたは 近使用し たビ ューが「ア ク テ ィ ブ ビ ュー」 にな り ます。 ア ク テ ィ ブ ビ ューは、 現在表示されている ビ ューだけでな く 、 ビ ューに対する外 部コマン ド ([HDL Objects] → [Add to Wave Window] など) が使用される と表示される波形ビ ューです。

別の波形ビ ューもそのビ ューのタ イ ト ルを ク リ ッ クする と、 ア ク テ ィ ブ ビ ューにでき ます。

X-Ref Target - Figure 3-10

図 3-10 : 波形ビ ュー

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 34UG900 (v2012.2) 2012 年 7 月 25 日

Vivado シ ミ ュ レータの使用

7. [Sources] ビ ュー

[Sources] ビ ューには階層ツ リ ーでシ ミ ュ レーシ ョ ン ソースが [Hierarchy]、 [IP Sources]、 [Libraries]、 [Compile Order] などのタブで表示されます ( 図 3-11)。

[Sources] ビ ューのボタ ンの上にカーソ ルを置 く と、 その説明がツール ヒ ン ト と し て表示されます。 ボタ ンを使用す る と、 フ ァ イルの検証、 展開/非展開、 追加、 開 く 、 フ ィ ルターおよびス ク ロールなどができ ます。

8. [Scopes] ビ ュー

図 3-12 は、 [Scopes] ビ ューを示し ています。 こ のビ ューでは上部のフ ィ ルター ア イ コ ンを使用し て HDL オブジェ ク ト を タ イプ別にフ ィ ルターでき ます。 ア イ コ ンの上にカーソルを置 く と、 オブジェ ク ト タ イプを示すツール ヒ ン ト が表示されます。

Vivado IDE の メ ニューの詳細は、『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893)[参照 3] を参照し て く だ さい。

Vivado シ ミ ュ レータでの [Scopes] ビ ューの使用方法については、 61 ページの 「波形コ ンフ ィ ギュ レーシ ョ ンの HDL オブジェ ク ト 」 を参照し て く だ さい。

X-Ref Target - Figure 3-11

図 3-11 : [Sources] ビ ュー

X-Ref Target - Figure 3-12

図 3-12 : [Scopes] ビュー

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 35UG900 (v2012.2) 2012 年 7 月 25 日

シ ミ ュ レーシ ョ ンの一時停止

シ ミ ュ レーシ ョ ンの一時停止シ ミ ュ レーシ ョ ンを実行中に一時停止するには、[Break] コマン ド を使用し ます。 これによ り 、シ ミ ュ レーシ ョ ン セ ッ シ ョ ンは開いたま まにな り ます。

シ ミ ュ レーシ ョ ンを一時停止するには、 [Simulation] → [Break] を ク リ ッ クするか、 [Break] ボタンを ク リ ッ ク し ます。

シ ミ ュ レータは次の実行可能な HDL 行で停止し ます。 シ ミ ュ レーシ ョ ンの停止し た行がテキ ス ト エデ ィ ターで表示 されます。

注記 : このビヘイ ビアは -debug <kind> オプシ ョ ンでコ ンパイルし たデザイ ンにも適用されます。

シ ミ ュ レーシ ョ ンは [Run All]、 [Run]、 または [Step] コマン ド を使用する と いつでも再開でき ます。 詳細は、 Chapter 5 の 「Stepping Through a Simulation」 を参照し て く ださい。

シ ミ ュ レーシ ョ ン結果の保存Vivado シ ミ ュ レータは、 project/simset デ ィ レ ク ト リ の波形データベース (WDB) フ ァ イル (<filename>.wdb) にオブジェ ク ト (VHDL 信号や Verilog reg または wire など) のシ ミ ュ レーシ ョ ン結果を保存し ます。

オブジェ ク ト を波形ビ ューに追加し てシ ミ ュ レーシ ョ ンを実行する と、終了し たデザイ ンの階層と追加し たオブジェク ト の ト ラ ンザク シ ョ ンが自動的に WDB フ ァ イルに保存されます。

信号順、 名前形式、 基数、 色などの波形コ ン フ ィ ギ ュ レーシ ョ ン設定は必要に応じ て波形コ ン フ ィ ギ ュ レーシ ョ ン(WCFG) フ ァ イルに保存されます。 詳細は、 第 5 章 「波形を使用し た解析およびデバ ッ グ」 を参照し て く ださい。

シ ミ ュ レーシ ョ ンの終了シ ミ ュ レーシ ョ ンを終了するには、[File] → [Exit] を ク リ ッ クするか、プロジェ ク ト ビ ューの右上の X マーク を ク リ ッ ク し ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 36UG900 (v2012.2) 2012 年 7 月 25 日

第 4 章

デザイ ンのコ ンパイルと シ ミ ュ レーシ ョ ン

概要ビヘイ ビアまたはタ イ ミ ング シ ミ ュ レーシ ョ ンのいずれかを コマン ド ラ イ ンから実行するには、 次を実行する必要 があ り ます。

1. デザイ ン フ ァ イルの解析

2. シ ミ ュ レーシ ョ ン スナッ プシ ョ ッ ト のエラ ボレーシ ョ ン と生成

3. デザイ ンのシ ミ ュ レーシ ョ ン

次のセ ク シ ョ ンでは、 これらの手順について説明し ます。

次のセ ク シ ョ ンに示すよ う に、 タ イ ミ ング シ ミ ュ レーシ ョ ンにはさ らに要件があ り ます。

• 第 2 章の 「シ ミ ュ レーシ ョ ン用タ イ ミ ング ネ ッ ト リ ス ト の生成」

• 47 ページの 「合成後およびイ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ン」

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 37UG900 (v2012.2) 2012 年 7 月 25 日

デザイン フ ァ イルの解析

デザイ ン フ ァ イルの解析xvhdl および xvlog コ マン ド は、 それぞれ VHDL および Verilog フ ァ イルを解析し ます。 各オプシ ョ ンの詳細は、 49 ページの表 4-2を参照し て く ださ い。 コマン ド の詳細は、 それぞれの リ ン ク を ク リ ッ ク し て く ださ い。

注記 : PDF リ ーダーで、た と えば [View] → [Toolbars] → [More Tools] → [Previous View] および [Next View] ボタ ンを ク リ ッ ク し て、 前後のページを表示しやす く し てお く こ と をお勧めし ます。

xvhdl xvhdl コマン ド は VHDL アナラ イザー (パーサー ) です。

xvhdl の構文

xvhdl 「-f [-file] <filename>」 [ 「-encryptdumps」 ] [ 「-h [-help]」 [ 「-initfile <init_filename>」 ] [ 「-L [-lib] <library_name>[=<library_dir>]」 ] [ 「-log <filename>」 ] [ 「-nolog」 ] [ 「-prj <filename>」 ] [ 「-relax」 ] [ 「-v [verbose] [0|1|2]」 ] [ 「-work <library_name>[=<library_dir>]」 …

このコマン ド は VHDL ソース フ ァ イルを解析し、 解析済みデータ をデ ィ ス ク の HDL ラ イブラ リ に保存し ます。

xvhdl の例

xvhdl file1.vhd file2.vhdxvhdl -work worklib file1.vhd file2.vhdxvhdl -prj files.prj

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 38UG900 (v2012.2) 2012 年 7 月 25 日

xelab を使用し たスナ ッ プシ ョ ッ ト のエラボレーシ ョ ンおよび生成

xvlog xvlog コ マン ド は Verilog パーサーです。 xvlog コ マン ド は Verilog ソース フ ァ イルを解析し、 解析済みデータ を デ ィ ス クの HDL ラ イブラ リ に保存し ます。

xvlog の構文

xvlog [ 「-d [define] <name>[=<val>]」 ] [ 「-encryptdumps」 ] [ 「-f [-file] <filename>」 [ 「-h [-help]」 ] [ 「-i [include] <directory_name」 ] [ 「-initfile <init_filename>」 ] [ 「-L [-lib] <library_name>[=<library_dir>]」 ] [ 「-log <filename>」 ] [ 「-nolog」 ] [ 「-relax」 ] [ 「-prj <filename>」 ] [ 「-sourcelibdir <sourcelib_dirname>」 ] [ 「-sourcelibext <file_extension>」 ] [ 「-sourcelibfile <filename>」 ] [ 「-v [verbose] [0|1|2]」 ] [ 「-version]」 ]

xvlog の例

xvlog file1.v file2.vxvlog -work worklib file1.v file2.vxvlog -prj files.prj

xelab を使用し たスナ ッ プシ ョ ッ ト のエラボレーシ ョ ンおよび生成xelab コマン ド は、 指定し た 上位ユニ ッ ト に対し て次を実行し ます。

• 言語結合規則および –L <library> コマン ド ラ イ ンで指定し た HDL ラ イブラ リ のどち ら かを使用し て、 子デ ザイ ン ユニ ッ ト を読み込みます。

• デザイ ンのス タテ ィ ッ ク エ ラ ボレーシ ョ ン (パラ メ ータ、 ジェネ リ ッ ク の処理、 generate 文の実行など) を実行し ます。

• 実行可能なコード を生成し ます。

• 生成された実行可能コード をシ ミ ュ レーシ ョ ン カーネル ラ イブラ リ に リ ン ク し て、 実行可能なシ ミ ュ レーシ ョ ン スナッ プシ ョ ッ ト を作成し ます。

このあ と、 出力された実行可能なシ ミ ュ レーシ ョ ンのスナッ プシ ョ ッ ト 名を xsim コマン ド のオプシ ョ ン と し て、 別 のオプシ ョ ン と共に使用し ます。

ヒ ン ト : xelab は解析コ マン ド の xvlog および xvhdl を暗示的に呼び出す こ と がで き ます。 解析手順は xelab -prj オプシ ョ ンで組み込めます。 プロジェ ク ト フ ァ イルの詳細は、 44 ページの 「プロジェ ク ト フ ァ イルの構文」 を 参照し て く だ さい。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 39UG900 (v2012.2) 2012 年 7 月 25 日

xelab を使用し たスナ ッ プシ ョ ッ ト のエラボレーシ ョ ンおよび生成

xelab コ マン ド構文オプシ ョ ン

各オプシ ョ ンの詳細は、 49 ページの表 4-2を参照し て く ださ い。 コマン ド の詳細は、 それぞれの リ ン ク を ク リ ッ ク し て く だ さい。

注記 : PDF リ ーダーで、た と えば [View] → [Toolbars] → [More Tools] → [Previous View] および [Next View] ボタ ンを ク リ ッ ク し て、 前後のページを表示しやす く し てお く こ と をお勧めし ます。

xelab [ 「-d [define] <name>[=<val>]」 [ 「-debug <kind>」 ] [ 「-f [-file] <filename>」 ] [ 「- generic_top <value>」 ] [ 「-h [-help]」 [ 「-i [include] <directory_name」 ] [ 「-initfile <init_filename>」 ] [ 「-log <filename>」 ] [ 「-L [-lib] <library_name>[=<library_dir>]」 [ 「-maxdesigndepth arg」 ] [ 「-mindelay」 ] [ 「-typdelay」 ] [ 「-maxdelay」 ] [ 「-mt arg」 ] [ 「-nolog」 ] [ 「-notimingchecks」 ] [ 「-nosdfinterconnectdelays」 ] [ 「-nospecify」 ] [ 「-override_timeunit」 ] [ 「-override_timeprecision」 ] [ 「-prj <filename>」 ] [ 「-pulse_e arg」 ] [ 「-pulse_r arg」 ] [ 「-pulse_int_e arg」 ] [ 「-pulse_int_r arg」 ] [ 「-pulse_e_style arg」 ] [ 「-r [-run]」 ] [ 「-R [-runall」 [ 「-rangecheck」 ] [ 「-relax」 ] [ 「-s [-snapshot] arg」 ] [ 「-sdfnowarn」 ] [ 「-sdfnoerror」 ] [ 「-sdfroot <root_path>」 ] [ 「-sdfmin arg」 ] [ 「-sdftyp arg」 ] [ 「-sdfmax arg」 ] [ 「-sourcelibdir <sourcelib_dirname>」 ] [ 「-sourcelibext <file_extension>」 ] [ 「-sourcelibfile <filename>」 ] [ 「-timescale」 ] [ 「-timeprecision_vhdl arg」 ] [ 「-transport_int_delays」 ] [ 「-v [verbose] [0|1|2]」 ] [ 「-version]」

xelab の例

xelab work.top1 work.top2 -s cpusim

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 40UG900 (v2012.2) 2012 年 7 月 25 日

xelab を使用し たスナ ッ プシ ョ ッ ト のエラボレーシ ョ ンおよび生成

xelab lib1.top1 lib2.top2 -s fftsim

xelab work.top1 work.top2 -prj files.prj -s pciesim

xelab lib1.top1 lib2.top2 -prj files.prj -s ethernetsim

Verilog 検索順

xelab コマン ド は次の検索順を使用し て、イ ン ス タ ンシエー ト された Verilog デザイ ン ユニ ッ ト を検索および結合し ます。

1. Verilog コード の ‘uselib 指示子で指定された ラ イブラ リ 。 次に例を示し ます。

module full_adder(c_in, c_out, a, b, sum)input c_in,a,b;output c_out,sum;wire carry1,carry2,sum1;`uselib lib = adder_libhalf_adder adder1(.a(a),.b(b),.c(carry1),.s(sum1));half_adder adder1(.a(sum1),.b(c_in),.c(carry2),.s(sum));c_out = carry1 | carry2;endmodule

2. -lib|-L オプシ ョ ンを使用し てコマン ド ラ イ ンで指定された ラ イブラ リ

3. 親デザイ ン ユニ ッ ト のラ イブラ リ

4. work ラ イブラ リ

Verilog イ ンス タ ンシエーシ ョ ン ユニ ッ ト

Verilog デザイ ンにコ ンポーネン ト がイ ン ス タ ンシエーシ ョ ン される と、 xelab コマン ド によ り 、 コ ンポーネン ト 名 が Verilog ユニ ッ ト と し て処理され、 ユーザーの指定し たユニフ ァ イ ド 論理ラ イブラ リ の リ ス ト から ユーザーの指定 し た順序で Verilog モジュールが検索されます。

• 検出される と、 xelab はユニ ッ ト を結合し て、 検索を停止し ます。

• xelab で Verilog ユニ ッ ト が検出でき なかった場合は、イ ンス タ ンシエーシ ョ ン されたモジュールが VHDL エン テ ィ テ ィ 名と し て処理され、 大文字/小文字の区別のない検索が続行されます。

xelab コマン ド は、 ユーザーの指定し た リ ス ト でユニフ ァ イ ド 論理ラ イブ ラ リ 順に、 イ ン ス タ ンシエー ト され たモジュール名と同じ名前のエンテ ィ テ ィ を検索し、 初に一致し た名前のモジュールを選択し、 検索を停止します。

• 大文字/小文字の区別のあ る検索が う ま く いかなかった場合、xelab は今度は区別のない検索を実行し、ユーザー の指定し た リ ス ト と ユニフ ァ イ ド論理ラ イブラ リ の順序で、拡張識別子と し てコ ンス ト ラ ク ト された VHDL デザ イ ン ユニ ッ ト 名を検出し ます。

• xelab で 1 つのラ イブラ リ に対する独自の結合が見つかった場合は、 その名前を選択し て、 検索を停止し ます。

注記 : 混合言語デザイ ンの場合、Verilog モジュールでイ ンス タ ンシエー ト される VHDL エンテ ィ テ ィ への関連付けに 使用されるポー ト 名では、常に大文字/小文字が区別されます。また、VHDL ジェネ リ ッ ク を変更するのに defparam 文は使用でき ない こ と に も注意し て く だ さい。 詳細は、 51 ページの 「混合言語シ ミ ュ レーシ ョ ンの使用」 を参照し て く だ さい。

VHDL イ ンス タ ンシエーシ ョ ン ユニ ッ ト

VHDL デザ イ ンに コ ンポーネ ン ト が イ ン ス タ ン シエー ト さ れ る と、 xelab コ マン ド はその コ ン ポーネ ン ト 名を VHDL ユニ ッ ト と し て処理し、 論理 work ラ イブラ リ でそれを検索し ます。

• VHDL ユニ ッ ト が検出される と、 xelab コマン ド でそれが結合されて、 検索が停止されます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 41UG900 (v2012.2) 2012 年 7 月 25 日

xelab を使用し たスナ ッ プシ ョ ッ ト のエラボレーシ ョ ンおよび生成

• xelab で VHDL ユニ ッ ト が検出されない場合、大文字/小文字の維持されたコ ンポーネン ト 名が Verilog モジュー ル名と し て処理され、ユーザーの指定し た リ ス ト およびユニフ ァ イ ド論理ラ イブラ リ の順で大文字/小文字の区別のあ る検索が続行されます。 初に一致する名前が見つかる と、 検索は停止されます。

• 大文字/小文字の区別のあ る検索が う ま く いかなかった場合、 xelab は今度は区別のない検索をユーザーの指定 し た リ ス ト と ユニフ ァ イ ド論理ラ イブラ リ の順序で実行し ます。 1 つのラ イブラ リ に対し て独自の結合が見つか れば、 検索は停止されます。

Verilog の `uselib 指示子

ラ イブラ リ 検索順を設定する Verilog の `uselib 指示子がサポー ト されています。

`uselib の構文

<uselib compiler directive> ::= `uselib [<Verilog-XL uselib directives>|<lib directive>]

<Verilog-XL uselib directives> :== dir = <library_directory> | file = <library_file> | libext = <file_extension>

<lib directive>::= <library reference> { <library reference>}

<library reference> ::= lib = <logical library name>

`uselib lib 指示子

`uselib lib 指示子は、 Verilog-XL の `uselib 指示子と は一緒に使用でき ません。 た と えば、 次のコード は不正 にな り ます。

`uselib dir=./ file=f.v lib=newlib

1 つの `uselib ラ イブラ リ で複数のラ イブラ リ が指定でき ます。

ラ イブラ リ が指定される順が検索順にな り ます。 次に例を示し ます。

`uselib lib=mylib lib=yourlib

これは、 イ ン ス タ ンシエー ト されたモジュールの検索が mylib で 初に実行され、 次に yourlib で実行され る よ う にし ています。

`uselib dir、 `uselib file、 `uselib libext などの指示子と同様、 `uselib lib 指示子も HDL フ ァ イル 全体で指定し た分析および解析があ る と、 処理さ れ続けます。 別の `uselib 指示子があ る までは、 HDL ソースの `uselib (すべての Verilog XL `uselib を含む) 指示子が使用されます。

引数な しで `uselib を使用する と、 現在ア ク テ ィ ブな状態が削除されます。 `uselib <lib|file|dir|libext>.

次のモジ ュール検索 メ カニズムは、 Verific の Verilog エ ラ ボ レーシ ョ ン アルゴ リ ズムで イ ン ス タ ンシエー ト 済みモ ジュールまたは UDP の決定に使用されます。

• まず、 イ ンス タ ンシエー ト 済みモジュールを現在ア ク テ ィ ブな `uselib lib の論理ラ イブラ リ の順序 リ ス ト で検索し ます。

• 見つから ない場合は、 xelab コマン ド ラ イ ンで検索ラ イブラ リ と し て提供されている ラ イブラ リ の順序 リ ス ト でイ ンス タ ンシエー ト 済みモジュールを検索し ます。

• 見つから ない場合は、親モジュールのラ イブラ リ でイ ンス タ ンシエー ト 済みモジュールを検索し ます。た と えば、work ラ イブラ リ のモジュール A が mylib ラ イブラ リ のモジュール B を イ ン ス タ ンシエー ト し、 モジュール B がモジ ュール C を イ ン ス タ ンシエー ト する場合、 mylib ラ イ ブ ラ リ (C の親モジ ュール B の ラ イ ブ ラ リ ) でモ ジュール C を検索し ます。

• 見つからない場合は、 次のいずれかの work ラ イブラ リ でイ ンス タンシエー ト されたみモジュールを検索し ます。

° HDL ソースがコ ンパイルされる ラ イブラ リ

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 42UG900 (v2012.2) 2012 年 7 月 25 日

xsim によるデザイン スナ ッ プシ ョ ッ ト のシ ミ ュ レーシ ョ ン

° work ラ イブラ リ と し て明示的に設定される ラ イブラ リ

° work と い う 名前のデフ ォル ト の作業ラ イブラ リ

`uselib の例

xsim によるデザイ ン スナ ッ プシ ョ ッ ト のシ ミ ュ レーシ ョ ンxsim コマン ド は、 シ ミ ュ レーシ ョ ン スナッ プシ ョ ッ ト を読みこ んで、 バッ チ モード のシ ミ ュ レーシ ョ ンを実行する か、 GUI または Tcl ベースの対話型シ ミ ュ レーシ ョ ン環境を提供し ます。

xsim の構文

コマン ド 構文は、 次のよ う にな り ます。

xsim <options> <snapshot>

説明 :

• xsim はコマン ド です。

• <options> はオプシ ョ ンです (表 4-1)。

• <snapshot> はシ ミ ュ レーシ ョ ン スナッ プシ ョ ッ ト です。

xsim のオプシ ョ ン

adder_lib とい う名前の論理ラ イブ ラ リにコ ンパイルされる half_adder.v フ ァイル

work と い う名前の論理ラ イブ ラ リ にコ ンパイルされる full_adder.v フ ァ イル

module half_adder(a,b,c,s);input a,b;output c,s;s = a ^ b;c = a & b;endmodule

module full_adder(c_in, c_out, a, b, sum)input c_in,a,b;output c_out,sum;wire carry1,carry2,sum1;`uselib lib = adder_libhalf_adderadder1(.a(a),.b(b),. c(carry1),.s(sum1)); half_adder adder1(.a(sum1),.b(c_in),.c (carry2),.s(sum)); c_out = carry1 | carry2; endmodule

表 4-1 : xsim コマン ド のオプシ ョ ン

xsim オプシ ョ ン 説明

-f [-file] <filename> フ ァ イルから コマン ド ラ イ ン オプシ ョ ンを読み込みます。

-g [-gui] 対話型 GUI で実行し ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 43UG900 (v2012.2) 2012 年 7 月 25 日

プロジ ェ ク ト フ ァ イルの構文

プロジ ェ ク ト フ ァ イルの構文プロジェ ク ト フ ァ イルを使用し てデザイ ン フ ァ イルを解析するには、<proj_name>.prj と い う フ ァ イル名を作成 し、 そのプロジェ ク ト フ ァ イル内で次の構文を使用し ます。

verilog <work_library> <file_names>...[-d <macro>]... [-i <include_path>]...

vhdl <work_library> <file_name>

説明 :

- <work_library> : 指定し た行の HDL フ ァ イルがコ ンパイルされる ラ イブラ リ

- <file_names> : Verilog ソース フ ァ イル。 各行に複数の Verilog フ ァ イルを指定でき ます。

- <file_name> : VHDL ソース フ ァ イル。 各行に複数の VHDL フ ァ イルを指定でき ます。

- Verilog の場合、 [-d <macro>] を使用する と、 オプシ ョ ンで 1 つまたは複数のマ ク ロ を定義でき ます。

- VHDL の場合、 [-i <include_path>] を使用する と、 オプシ ョ ンで 1 つまたは複数の <include_path> デ ィ レ ク ト リ を定義でき ます。

-h [-help] ヘルプ メ ッ セージを画面に表示し ます。

-log <filename> ロ グ フ ァ イルの名前を指定し ます。

-maxdeltaid arg (=-1) 大デルタ値を指定し ます。同時に 大シ ミ ュ レーシ ョ ン ループを上 回る場合はエラーを レポー ト し ます。

-nolog ロ グ フ ァ イルが生成されないよ う にし ます。

-onfinish <quit|stop> シ ミ ュ レーシ ョ ン終了時のビヘイ ビアを指定し ます。

-onerror <quit|stop> シ ミ ュ レーシ ョ ン ラ ン タ イ ム エラーの発生し た場合のビヘイ ビアを 指定し ます。

-t [-tclbatch] <filename> バッ チ モード実行用の Tcl フ ァ イルを指定し ます。

-R [-runall] シ ミ ュ レーシ ョ ンを 後まで実行し ます (例 : do 'run all;quit’)。

-testplusarg <arg> plusargs が $test$plusargs および $value$plusargs システ ム関数で使用される よ う に指定し ます。

-vcdfile <vcd_filename> VCD 出力フ ァ イルを指定し ます。

-vcdunit <vcd_unit> VCD 出力単位を指定し ます。デフ ォル ト はエンジンの精度単位と同じ にな り ます。

-view <wavefile.wcfg> 波形コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イルを開き ます。 こ のオプシ ョ ン は、 -gui オプシ ョ ン と一緒に使用する必要があ り ます。

-wdb <filename.wdb> 波形データベース出力フ ァ イルを指定し ます。

-tp 実行されているプロセスの階層名が画面に表示される よ う にな り ます。

-tl 実行 さ れてい る文のフ ァ イ ル名および行番号が画面に表示さ れる よう にな り ます。

表 4-1 : xsim コマン ド のオプシ ョ ン (続き)

xsim オプシ ョ ン 説明

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 44UG900 (v2012.2) 2012 年 7 月 25 日

定義済み XILINX_SIMULATOR マク ロ (Verilog シ ミ ュ レーシ ョ ン用)

定義済み XILINX_SIMULATOR マク ロ (Verilog シ ミ ュレーシ ョ ン用)XILINX_SIMULATOR は Verilog の定義済みマ ク ロです。 こ のマ ク ロの値は 1 です。 定義済みマ ク ロでは、 ツール専用 の関数が実行されるか、 デザイ ン フ ローで使用する ツールが認識されます。 次は使用例です。

`ifdef VCS

// VCS specific code

`endif

`ifdef INCA

// NCSIM specific code

`endif

`ifdef MODEL_TECH

// MODELSIM specific code

`endif

`ifdef XILINX_ISIM

// ISE Simulator (ISim) specific code

`endif

`ifdef XILINX_SIMULATOR

// Vivado Simulator (XSim) specific code

`endif

非プロジ ェ ク ト モー ド でのデザイ ン シ ミ ュ レーシ ョ ンシ ミ ュ レーシ ョ ン コマン ド を Tcl フ ァ イルに入力し、 その Tcl フ ァ イルを -tclbatch オプシ ョ ンを付けて呼び出す こ と ができ ます。

-tclbatch オプシ ョ ンは、 フ ァ イル内にコマン ド を含め、 シ ミ ュ レーシ ョ ン開始時にそれらのコマン ド を実行する ために使用でき ます。

た と えば、 次を含む run.tcl と い う フ ァ イルがあ る と し ます。

run 20nscurrent_timequit

次に、 シ ミ ュ レーシ ョ ンを次のよ う に実行し ます。

xsim <snapshot> -tclbatch run.tcl

シ ミ ュ レーシ ョ ン コマン ド を表す変数を設定し てお く と、 よ く 使用される シ ミ ュ レーシ ョ ン コ マン ド を素早 く 実行 でき ます。

Tcl の使用方法については、 次を参照し て く ださ い。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 45UG900 (v2012.2) 2012 年 7 月 25 日

非プロジ ェ ク ト モー ド でのデザイン シ ミ ュ レーシ ョ ン

• http://www.tcl.tk/

• 『Vivado Design Suite Tcl コマン ド リ フ ァ レ ンス ガ イ ド』 (UG835) [参照 4]

• 『Vivado Design Suite ユーザー ガイ ド : Tcl ス ク リ プ ト 機能の使用』 (UG894) [参照 7]

• 『Tcl および SDC チュー ト リ アル : PlanAhead デザイ ン ツール 』 (UG760) [参照 8]

xelab を使用し てデザイ ンを解析し てシ ミ ュ レーシ ョ ン実行フ ァ イルを作成し た ら、 論理シ ミ ュ レーシ ョ ン または タ イ ミ ング シ ミ ュ レーシ ョ ンが実行でき ます。

ビヘイ ビア シ ミ ュ レーシ ョ ンの実行

図 4-1 は、 ビヘイ ビア シ ミ ュ レーシ ョ ン プロセス を示し ています。

Tcl コ ン ソールでビヘイ ビア シ ミ ュ レーシ ョ ンを実行するには、 次を入力し ます。

launch_xsim -mode behavioral

X-Ref Target - Figure 4-1

図 4-1 : ビヘイ ビア シ ミ ュ レーシ ョ ン プロセス

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 46UG900 (v2012.2) 2012 年 7 月 25 日

非プロジ ェ ク ト モー ド でのデザイン シ ミ ュ レーシ ョ ン

合成後およびイ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ン

合成後およびイ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ンでは、 論理シ ミ ュ レーシ ョ ンまたは Verilog タ イ ミ ング シ ミ ュ レーシ ョ ンが実行でき ます。

図 4-2 は、 合成後およびイ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ン プロセス を示し ています。

次は、 コマン ド ラ イ ンから合成後の論理シ ミ ュ レーシ ョ ンを実行する例です。

synth_design -top top -part xc7k70tfbg676-2 -flatten_hierarchy none

open_run synth_1 -name netlist_1

write_verilog -mode funcsim test_synth.v

xvlog -work work test_synth.v

X-Ref Target - Figure 4-2

図 4-2 : 合成後およびイ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ン

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 47UG900 (v2012.2) 2012 年 7 月 25 日

ラ イブ ラ リ マ ッ プ フ ァ イル (xsim.ini)

xvlog -work work testbench.v

xelab -L unisms_ver testbench glbl -s test

xsim test -gui

合成後およびイ ンプ リ メ ンテーシ ョ ン後のタ イ ミ ング シ ミ ュ レーシ ョ ン

合成後およびイ ンプ リ メ ンテーシ ョ ン後のタ イ ミ ング シ ミ ュ レーシ ョ ンを実行する場合、 write_verilog の後に write_sdf コマン ド を実行する必要があ り ます。 また、 エ ラ ボレーシ ョ ンおよびシ ミ ュ レーシ ョ ンには適切なア ノ テー ト コマン ド が必要です。

Vivado シ ミ ュ レータでは、 イ ン ターコ ネ ク ト 遅延が使用されるので、 タ イ ミ ング シ ミ ュ レーシ ョ ンが正し く 実行さ れるには、 次のよ う なコマン ド が追加で必要にな り ます。

-transport_int_delays -pulse_r 0 -pulse_int_r 0

ラ イブ ラ リ マ ッ プ フ ァ イル (xsim.ini)HDL コ ンパイ ラ プロ グ ラ ムの xvhl、 xvlog、 xelab では、 xisim.ini コ ンフ ィ ギュ レーシ ョ ン フ ァ イルを 使用し て、 VHDL および Verilog 論理ラ イブラ リ の定義および物理的な位置が検出されます。

コ ンパイ ラはこれらの位置から次の順序で xisim.ini を読み出そ う と し ます。

1. $XILINX/PLANAHEAD/data/xsim/vhdl/<platform>

2. ユーザー フ ァ イルは -initfile オプシ ョ ンで指定し ます。 -initfile が指定されない場合、 プロ グ ラ ム は現在の作業デ ィ レ ク ト リ で xsim.ini を検索し ます。

xsim.ini フ ァ イルの構文は、 次の とお り です。

<logical_library1> = <physical_dir_path1><logical_library2> = <physical_dir_path2><logical_libraryn> = <physical_dir_pathn>

次は xisim.ini フ ァ イルの例です。

VHDL std=C:/libs/vhdl/hdl/stdieee=C:/libs/vhdl/hdl/ieeework=C:/workVerilog unisims_ver=$XILINX/PLANAHEAD/data/verilog/hdl/nt/unisims_verxilinxcorelib_ver=C:/libs/verilog/hdl/nt/xilinxcorelib_vermylib=./mylibwork=C:/work

xsim.ini フ ァ イルの機能および制限は、 次の とお り です。

• xsim.ini フ ァ イルでは、 各行のラ イブラ リ パスは 1 つだけです。

• こ のフ ァ イルは、 物理パス に対応するデ ィ レ ク ト リ がない場合、 コ ンパイ ラ が 初に書き込も う と する際に、xvhd または xvlog で作成されます。

• 物理パスは環境変数の観点から説明でき ます。 環境変数は $ 文字で開始する必要があ り ます。

• 論理ラ イブラ リ のデフ ォル ト の物理デ ィ レ ク ト リ は、 xsim/<logical_library_name> です。

フ ァ イル コ メ ン ト は -- で開始する必要があ り ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 48UG900 (v2012.2) 2012 年 7 月 25 日

xelab、 xvhd、 xvlog コマン ド オプシ ョ ン

xelab、 xvhd、 xvlog コ マン ド オプシ ョ ン表 4-2 は、 xelab、 xvhdl、 xvlog コマン ド のオプシ ョ ンを リ ス ト し ています。

表 4-2 : xelab、 xvhd、 xvlo コマン ド オプシ ョ ン

コマン ド オプシ ョ ン 説明

-d [define] <name>[=<val>] Verilog マク ロ を定義し ます。 各 Verilog マ ク ロに対し て -d|--define を使用 し ます。 マ ク ロのフ ォーマ ッ ト は <name>[=<val>] で、 <name> はマ ク ロの 名前、 <value> はマ ク ロのオプシ ョ ンの値を示し ます。

-debug <kind> 指定し たデバッ グ機能をオンにし て コ ンパイルし ます。<kind> オプシ ョ ンに は、 次のいずれかを指定でき ます。 • line : HDL のブレーク ポイ ン ト

• wave : 波形生成、 条件付き実行、 強制値

• xlibs : ザイ リ ン ク スによ り プ リ コ ンパイルされた ラ イブラ リ の可視化

• typical : も よ く 使用される機能 : line および wave • off : すべてのデバッ グ機能をオフにし ます (デフ ォル ト )。

-encryptdumps コ ンパイルされるデザイ ン ユニ ッ ト の解析済みダンプを暗号化し ます。

-f [-file] <filename> 指定し たフ ァ イルから追加オプシ ョ ンを読み出し ます。

- generic_top <value> 上位デザイ ン ユニ ッ ト のジ ェネ リ ッ ク またはパラ メ ーターを指定し た値で 上書き し ます。

例 : -generic_top "P1=10"

-h [-help] こ のヘルプ メ ッ セージを表示し ます。

-i [include] <directory_name Verilog の `include を使用し て、 含まれる フ ァ イルを検索するデ ィ レ ク ト リ を指定し ます。 指定検索デ ィ レ ク ト リ ご と に -i|--include を使用し ます。

-initfile <init_filename> デフ ォル ト のxsim.ini フ ァ イルで提供さ れる設定へ追加ま たは上書きする ユーザー定義のシ ミ ュ レータ初期化フ ァ イルを指定し ます。

-incremental 後にコ ンパイルし ててから変更されたフ ァ イルのみを コ ンパイルし ます。

-L [-lib] <library_name>[=<library_dir>] イ ン ス タ ンシエー ト された VHDL 以外のデザイ ン ユニ ッ ト (Verilog デザイ ン ユニ ッ ト など) の検索ラ イブラ リ を指定し ます。 検索 ラ イ ブ ラ リ ご と に -L|--lib を 使用 し ま す。 引数の フ ォ ーマ ッ ト は <name>[=<dir>] で、 <name> はラ イブラ リ の論理名、 <library_dir> は ラ イブラ リ のオプシ ョ ンの物理デ ィ レ ク ト リ を表し ます。

-log <filename> ロ グ フ ァ イルの名前を指定し ます。デフ ォル ト は xvlog|xvhdl|xelab.log です。

-maxdelay Verilog デザイ ン ユニ ッ ト を 小遅延でコ ンパイルし ます。

-mindelay Verilog デザイ ン ユニ ッ ト を 大遅延でコ ンパイルし ます。

-mt arg 並列実行可能なサブ コ ンパイ ル ジ ョ ブの数を指定し ます。 使用で き る値は、 auto、 off、 または 1 よ り 大きい整数です。 auto が指定される と、 xelab でホス ト マシンの CPU 数に基づいて並列ジ ョ ブ の数が選択されます (デフ ォル ト = auto)。

-maxdesigndepth arg エ ラ ボレーターで許容される 大のデザイ ン階層の深さ (デフ ォル ト = 5000) を上書き し ます。

-nolog ロ グ フ ァ イルが生成されないよ う にし ます。

-notimingchecks Verilog 指定ブロ ッ ク でタ イ ミ ング チェ ッ ク コ ン ス ト ラ ク ト を無視し ます。

-nosdfinterconnectdelays SDF の SDF ポー ト およびイ ン ターコネ ク ト 遅延コ ンス ト ラ ク ト を無視し ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 49UG900 (v2012.2) 2012 年 7 月 25 日

xelab、 xvhd、 xvlog コマン ド オプシ ョ ン

-nospecify Verilog パス遅延と タ イ ミ ング チェ ッ ク を無視し ます。

-override_timeunit -timescale オプシ ョ ンで指定し た値で、 すべての Verilog モジュールの時間 単位を上書き し ます。

-override_timeprecision -timescale オプシ ョ ンで指定し た時間精度で、 すべての Verilog モジュールの時 間精度を上書き し ます。

-pulse_e arg パス遅延のパーセン ト でパス パルス エラー制限を指定し ます。 使用でき る値 は 0 ~ 100 です (デフ ォル ト は 100)。

-pulse_r arg パス遅延のパーセン ト でパス パルス拒否制限を指定し ます。 使用でき る値は 0 ~ 100 です (デフ ォル ト は 100)。

-pulse_int_e arg 遅延のパーセン ト でイ ン ターコ ネ ク ト パルス拒否制限を指定し ます。 使用で き る値は 0 ~ 100 です (デフ ォル ト は 100)。

-pulse_int_r arg 遅延のパーセン ト でイ ン ターコ ネ ク ト パルス拒否制限を指定し ます。 使用で き る値は 0 ~ 100 です (デフ ォル ト は 100)。

-pulse_e_style arg パルスがモジ ュール パス遅延よ り も短いエラーを処理すべきかど う かを指定 し ます。 選択肢は次の とお り です。

ondetect : 違反が検出される と エラーを レポー ト onevent : モジュールのパス遅延後にエラーを レポー ト

(デフ ォル ト : onevent)

-prj <filename> vhdl|verilog <work lib> <HDL file name> の入力が 1 つまたは複数 含まれる XSim プロ ジェ ク ト フ ァ イルを指定し ます。

-rangecheck ラ ン タ イ ム値の範囲のチェ ッ ク を イ ネーブルにし ます (VHDL)。

-r [-run] コマン ド ラ イ ンの対話型モード で生成し た実行フ ァ イルを実行し ます。

-R [-runall シ ミ ュ レーシ ョ ンの 後まで生成し た実行フ ァ イルを実行し ます。

-relax 厳密な言語規則を緩めます。

-s [-snapshot] arg 出力される実行可能なシ ミ ュ レーシ ョ ン スナッ プシ ョ ッ ト の名前を指定し ま す。 デフ ォル ト は <worklib>.<unit> です (例 : work.top)。 追加のユニ ッ ト 名は # で連結し ます (例 : work.t1#work.t2)。

-sdfnowarn SDF 警告を出力し ません。

-sdfnoerror SDF フ ァ イルで見つかったエラーを警告と し て処理し ます。

-sdfmin arg <root=file> SDF は <file> を 小遅延を含めて <root> でア ノ テー ト し ます。

-sdftyp arg <root=file> SDF は <file> を通常遅延を含めて <root> でア ノ テー ト し ます。

-sdfmax arg <root=file> SDF は <file> を 大遅延を含めて <root> でア ノ テー ト し ます。

-sdfroot <root_path> SDF ア ノ テーシ ョ ンが適用されるデフ ォル ト デザイ ン階層

-sourcelibdir <sourcelib_dirname> コ ンパイルされていないモジュールの Verilog ソース フ ァ イルのデ ィ レ ク ト リ 。 ソース デ ィ レ ク ト リ ご と に -sourcelibdir <sourcelib_dirname> を使 用し ます。

-sourcelibext <file_extension> コンパイルされていないモジュールの Verilog ソース フ ァ イルのフ ァ イル拡張子。 ソース フ ァ イル拡張子に -sourcelibext <file extension> を使用し ます。

-sourcelibfile <filename> コ ンパ イ ル さ れていないモジ ュ ールを使用 し た Verilog ソ ース フ ァ イ ルの フ ァ イル名。 –sourcelibfile <filename> を使用し ます。

表 4-2 : xelab、 xvhd、 xvlo (続き)コマン ド オプシ ョ ン (続き)

コマン ド オプシ ョ ン 説明

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 50UG900 (v2012.2) 2012 年 7 月 25 日

混合言語シ ミ ュ レーシ ョ ンの使用

混合言語シ ミ ュ レーシ ョ ンの使用 Vivado シ ミ ュ レータでは、 混合言語プロジェ ク ト フ ァ イルおよび混合言語シ ミ ュ レーシ ョ ンがサポー ト されるので、 Verilog モジュールを VHDL デザイ ンに含めた り 、 VHDL モジュールを Verilog デザイ ンに含めた り でき ます。

シ ミ ュ レーシ ョ ンでの混合言語の制限

• VHDL および Verilog の混合は、 モジュール イ ン ス タ ン ス またはコ ンポーネン ト にのみ制限されます。

• VHDL デザイ ンは Verilog モジュールを イ ン ス タ ンシエー ト でき、 Verilog デザイ ンは VHDL コ ンポーネン ト を イ ンス タ ンシエー ト でき ます。 それ以外の VHDL および Verilog の混合はサポー ト されません。

• Verilog 階層参照では VHDL ユニ ッ ト は参照できず、 VHDL 拡張/選択名では Verilog ユニ ッ ト は参照でき ません。

• VHDL の型、 ジェネ リ ッ ク、 ポー ト の小さ いサブセ ッ ト のみが Verilog モジュールへのバウ ンダ リ 上で使用でき ます。 同様に、 Verilog の型、 パラ メ ーター、 ポー ト の小さ いサブセ ッ ト のみが VHDL デザイ ン ユニ ッ ト へのバ ウ ンダ リ 上で使用でき ます。

• Verilog モジュール と VHDL デザイ ン ユニ ッ ト の結合には、コ ンポーネン ト イ ン ス タ ンシエーシ ョ ン ベースのデ フ ォル ト の結合が使用されます。特に、VHDL デザイ ン ユニ ッ ト 内にイ ン ス タ ンシエー ト される Verilog モジュー ルでは、 コ ンフ ィ ギュ レーシ ョ ン仕様、 直接イ ン ス タ ンシエーシ ョ ン、 およびコ ンポーネン ト コ ンフ ィ ギュ レー シ ョ ンがサポー ト されません。

混合言語シ ミ ュ レーシ ョ ンでの重要な手順 1. 混合言語プロジェ ク ト のデザイ ン ラ イブラ リ 内で VHDL エンテ ィ テ ィ または Verilog モジュールの検索順を指定

でき ます (オプシ ョ ン)。

2. xelab -L を使用する と、混合言語プロジェ ク ト のデザイ ン ラ イブラ リ 内で VHDL エンテ ィ テ ィ または Verilog モジュールの結合順を指定でき ます。

注記 : Verilog モジュール と別の Verilog モジュールの結合にも、-L で指定し た ラ イブラ リ 検索順が使用されます。

混合言語の結合と検索

VHDL コ ンポーネン ト または Verilog モジュールを イ ン ス タ ンシエー ト するには、 xelab コマン ド を使用し ます。

-timescale Verilog モ ジ ュ ールのデ フ ォ ル ト の時間単位 を 指定 し ま す。 デ フ ォ ル ト は 1ns/1ps です。

-timeprecision_vhdl arg VHDL デザイ ンの時間精度を指定し ます。 デフ ォル ト は 1ps です。

-transport_int_delays イ ン ターコ ネ ク ト 遅延に転送モデルを使用し ます。

-typdelay Verilog デザイ ン ユニ ッ ト を通常遅延 (デフ ォル ト ) でコ ンパイルし ます。

-v [verbose] [0|1|2] 表示 メ ッ セージの詳細レベルを指定し ます。 デフ ォル ト は 0 です。

-version] コ ンパイ ラ バージ ョ ンを画面に表示し ます。

-work <library_name>[=<library_dir>] work ラ イブラ リ を指定し ます。こ の引数のフ ォーマ ッ ト は <name>[=<dir>] です。 • <name> : ラ イブラ リ の論理名 • <library_dir> : ラ イブラ リ のオプシ ョ ンの物理デ ィ レ ク ト リ

表 4-2 : xelab、 xvhd、 xvlo (続き)コマン ド オプシ ョ ン (続き)

コマン ド オプシ ョ ン 説明

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 51UG900 (v2012.2) 2012 年 7 月 25 日

混合言語シ ミ ュ レーシ ョ ンの使用

• まず、 イ ンス タ ンシエー ト するデザイ ン ユニ ッ ト と し て同じ言語のユニ ッ ト を検索し ます。

• 同じ言語のユニ ッ ト が見つから ない場合は、xelab を使用し、-lib オプシ ョ ンで指定し た ラ イブラ リ 内で両方 の言語のデザイ ン ユニ ッ ト を検索し ます。

この検索順は、 xelab コマン ド ラ イ ンでラ イブラ リ が表示される順序 と同じです。 詳細を参照し て く だ さい。

注記 : Vivado IDE を使用する場合、 ラ イブラ リ 検索順は自動的に指定されます。ユーザーは設定する必要がないので、 設定でき ません。

混合言語コ ンポーネン ト のイ ンス タ ンシエーシ ョ ン

混合言語デザイ ンの場合、 次のセ ク シ ョ ンで説明する よ う に、 Verilog モジュールを VHDL デザイ ン ユニ ッ ト に、 ま たは VHDL モジュールを Verilog デザイ ン ユニ ッ ト にイ ンス タ ンシエー ト でき ます。

混合言語のバウンダ リ と マ ッ プ規則

VHDL および Verilog デザイ ン ユニ ッ ト /モジ ュール間のバウ ンダ リ には、 次の制限が適用されます。

• VHDL および Verilog 間のバウ ンダ リ はデザイ ン ユニ ッ ト レベルにな り ます。

• VHDL デザイ ンには 1 つ以上の Verilog モジュールを イ ン ス タ ンシエー ト でき ます。

• VHDL デザイ ン内への Verilog UDP のイ ンス タ ンシエーシ ョ ンはサポー ト されません。

• Verilog デザイ ンには、VHDL エンテ ィ テ ィ に対する VHDL コ ンポーネン ト のみを イ ンス タ ンシエー ト でき ます。

• Verilog デザイ ン内への VHDL コ ンフ ィ ギュ レーシ ョ ンのイ ン ス タ ンシエーシ ョ ンはサポー ト されません。

VHDL デザイ ン ユニ ッ ト への Verilog モジュールのイ ンス タ ンシエーシ ョ ン

1. VHDL コ ンポーネン ト を イ ン ス タ ンシエー ト する Verilog モジュール と同じ名前 (大文字/小文字の区別あ り ) を付 けて宣言し ます。 次に例を示し ます。

COMPONENT MY_VHDL_UNIT PORT (Q : out STD_ULOGIC;D : in STD_ULOGIC;C : in STD_ULOGIC );END COMPONENT;

2. 名づけた関連付けを使用し、 Verilog モジ ュールを イ ン ス タ ンシエー ト ます。 次に例を示し ます。

UUT :MY_VHDL_UNIT PORT MAP(Q => O,D => I,C => CLK);

ポー ト タ イプが一致し ているかど う かは、「ポー ト マ ッ プおよびサポー ト されるポー ト タ イプ」を参照し て く だ さい。

ポー ト マ ッ プおよびサポー ト されるポー ト タ イ プ

表 4-3 は、 サポー ト されるポー ト タ イプを リ ス ト し ています。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 52UG900 (v2012.2) 2012 年 7 月 25 日

混合言語シ ミ ュ レーシ ョ ンの使用

表 4-4 は、混合言語デザイ ンのバウ ンダ リ でサポー ト されるポー ト の VHDL および Verilog データ型を示し ています。

注記 : Verilog 出力ポー ト の reg 型は、混合言語バウ ンダ リ でサポー ト されます。 バウ ンダ リ 上では、出力ポー ト reg が出力ネ ッ ト (ワ イヤ) ポー ト のよ う に処理されます。 これ以外の型が混合言語バウ ンダ リ で使用される と、 エラーと な り ます。

ジ ェ ネ リ ッ ク (パラ メ ーター ) のマ ッ プ

Vivado シ ミ ュ レータでは、 次の VHDL ジェネ リ ッ ク タ イプ (および Verilog の対応する もの) がサポー ト されます。

• integer

• real

• string

• boolean

注記 : これ以外のジェネ リ ッ ク型が混合言語バウ ンダ リ で使用される と、 エラー と な り ます。

VHDL および Verilog 値のマ ッ プ

表 4-5 は、 std_logic および bit への Verilog ステー ト のマ ッ プを リ ス ト し ています。

注記 : Verilog の駆動電流は無視されます。 VHDL には、 これに対応するマ ッ プがあ り ません。

表 4-3 : サポー ト されるポー ト タ イプ

VHDL 1 Verilog 2

IN INPUT

OUT OUTPUT

INOUT INOUT

1. VHDL のバ ッ フ ァおよび リ ンケージ ポー ト はサポー ト されません。

2. Verilog の双方向パス オプシ ョ ンへの接続はサポー ト されません。 名前の付いていない Verilog ポー ト

は混合デザイ ンのバウ ンダ リ では使用でき ません。

表 4-4 : サポー ト される VHDL および Verilog データ型

VHDL ポー ト Verilog ポー ト

bit net

std_ulogic net

std_logic net

bit_vector vector net

std_ulogic_vector vector net

std_logic_vector vector net

表 4-5 : std_logic および bit へマ ッ プ される Verilog ステー ト

Verilog std_logic bit

Z Z 0

0 0 0

1 1 1

X X 0

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 53UG900 (v2012.2) 2012 年 7 月 25 日

混合言語シ ミ ュ レーシ ョ ンの使用

表 4-6 は、 Verilog ステー ト にマ ッ プされる VHDL 型 bit を リ ス ト し ています。

表 4-7 は、 Verilog ステー ト にマ ッ プされる VHDL 型 std_logic を リ ス ト し ています。

Verilog では大文字/小文字が区別さ れる ので、 コ ンポーネン ト 宣言で使用する関連付けおよびローカル ポー ト 名は Verilog ポー ト 名の大文字/小文字と一致し ている必要があ り ます。

Verilog デザイ ン ユニ ッ ト への VHDL モジュールのイ ンス タ ンシエーシ ョ ン

Verilog デザ イ ン ユニ ッ ト に VHDL モジ ュールを イ ン ス タ ン シエー ト する には、 VHDL エンテ ィ テ ィ を Verilog モ ジュールのよ う にイ ンス タ ンシエー ト する必要があ り ます。 次に例を示し ます。

module testbench ;wire in, clk;wire out;FD FD1(.Q(Q_OUT),.C(CLK);.D(A););

表 4-6 : Verilog ステー ト にマ ッ プ される VHDL の bit

bit Verilog

0 0

1 1

表 4-7 : Verilog ステー ト にマ ッ プ される VHDL の std_logic

std_logic Verilog

U X

X X

0 0

1 1

Z Z

W X

L 0

H 1

- X

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 54UG900 (v2012.2) 2012 年 7 月 25 日

第 5 章

波形を使用し た解析およびデバッ グ

概要Vivado™ Integrated Design Environment (IDE) シ ミ ュ レータ GUI を開 く と、 波形ウ ィ ン ド ウ を使用し てデザイ ンを解析 し、 コード をデバッ グでき ます。 シ ミ ュ レータは、 [Objects] ビ ューおよび [Scopes] ビ ューなどの GUI のほかのエ リ ア でデザイ ン データ を生成し ます。

通常、 シ ミ ュ レーシ ョ ンはシ ミ ュ レーシ ョ ンをする HDL オブジェ ク ト を定義する テス ト ベンチで設定し ます。 テス ト ベンチの詳細は、 『Writing Efficient Testbenches』 (XAPP199)[参照 5] を参照し て く ださ い、。

Vivado IDE からのシ ミ ュ レーシ ョ ン

Vivado シ ミ ュ レータ を起動する と、 上位 HDL オブジ ェ ク ト を含む波形コ ン フ ィ ギ ュ レーシ ョ ンが表示されます。 Vivado シ ミ ュ レータは、 [Objects] ビ ューおよび [Scopes] ビ ューなどの GUI のほかのエ リ アでデザイ ン データ を生成 し ます。 こ の後、 別の HDL オブジェ ク ト を追加し た り 、 [Run] コマン ド を使用し てシ ミ ュ レーシ ョ ンを実行し た り で き ます。 詳細は、 「Vivado シ ミ ュ レータの起動」 を参照し て く ださ い。

非プロジ ェ ク ト モー ド での GUI の使用

xsim -gui <snapshot_name> コマン ド を使用し て Vivado シ ミ ュ レータ を起動する と、空のコ ンフ ィ ギュ レーシ ョ ンが表示されます。

Vivado シ ミ ュ レータの起動Vivado シ ミ ュ レータの波形を開 く オプシ ョ ンは次の とお り です。

• Flow Navigator の [Simulation] セ ク シ ョ ンで次を ク リ ッ ク し ます。

° [Run Simulation] (第 3 章の 「シ ミ ュ レーシ ョ ン設定」 )

° [Open Static Simulation] (73 ページの 「前のシ ミ ュ レーシ ョ ン設定からのシ ミ ュ レーシ ョ ン データの表示 (ス タテ ィ ッ ク シ ミ ュ レーシ ョ ン)」 )

• コマン ド ラ イ ンで xsim コマン ド を入力 (第 4 章の 「xsim によ るデザイ ン スナッ プシ ョ ッ ト のシ ミ ュ レーシ ョ ン」 )

デザイ ン データは [Scopes] ビ ューおよび [Objects] ビ ューなどの Vivado IDE のほかのエ リ アで生成されます。 Vivado シ ミ ュ レータでシ ミ ュ レーシ ョ ンを実行する前に、 波形コ ンフ ィ ギュ レーシ ョ ンに HDL オブジェ ク ト を追加する必 要があ り ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 55UG900 (v2012.2) 2012 年 7 月 25 日

波形コ ン フ ィ ギュ レーシ ョ ンへの HDL オブジ ェ ク ト の追加

波形コ ン フ ィ ギュ レーシ ョ ンへの HDL オブジ ェ ク トの追加デザイ ンから HDL オブジェ ク ト を含む波形ビ ューを生成するには、 Vivado IDE の メ ニュー コマン ド または ド ラ ッ グ アン ド ド ロ ッ プ機能を使用するか、 Tcl コ ン ソールにツール コマン ド言語 (Tcl) コマン ド を入力し ます。

注記 : 波形コ ンフ ィ ギュ レーシ ョ ンの作成や HDL オブジェ ク ト の追加など、 波形コ ンフ ィ ギ ュ レーシ ョ ンへの変更 は、 WCFG フ ァ イルを保存する まで永久ではあ り ません。 詳細は、 第 3 章の 「シ ミ ュ レーシ ョ ン結果の保存」 を参照 し て く だ さい。

Vivado IDE でのシ ミ ュ レーシ ョ ン HDL オブジ ェ ク ト の追加 Vivado IDE でシ ミ ュ レーシ ョ ン HDL オブジェ ク ト を波形に追加するには、 次を実行し ます。

1. [Scopes] ビ ューでデザイ ン階層を展開し ます。

選択し た イ ンス タ ンス またはプロセスに対応するオブジェ ク ト が [Objects] ビ ューに表示されます。

2. 1 つまたは複数のオブジェ ク ト を選択し ます。

3. 右ク リ ッ ク でポ ッ プア ッ プ メ ニューから [Add to Wave Window] を ク リ ッ ク し、 波形コ ンフ ィ ギュ レーシ ョ ンに オブジェ ク ト を追加し ます。

または、 オブジェ ク ト を [Objects] ビ ューから波形ビ ューの [Name] 列まで ド ラ ッ グ アン ド ド ロ ッ プし ます。

ヒ ン ト : Verilog イベン ト 、Verilog パラ メ ーター、VHDL 定数、 大 ト レース可能サイ ズ ( 『Vivado Tcl コマン ド リ フ ァ レ ン ス ガ イ ド』 (UG835)[参照 4] の trace_limit プロパテ ィ を参照) よ り も多いエレ メ ン ト など 、 波形と し ては表 示でき ない HDL オブジェ ク ト も あ り ます。 または、 Tcl コ ン ソールに trace_limit -help と入力し ます。

Vivado シ ミ ュ レータ を起動する と、 上位 HDL オブジェ ク ト を含む波形コ ンフ ィ ギュ レーシ ョ ンが表示されます (図 5-1)。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 56UG900 (v2012.2) 2012 年 7 月 25 日

波形コ ン フ ィ ギュ レーシ ョ ンへの HDL オブジ ェ ク ト の追加

デザイ ン データは [Scopes] ビ ューおよび [Objects] ビ ューなどの Vivado シ ミ ュ レータの GUI のほかのエ リ アで生成さ れます。 この後、 別の HDL オブジェ ク ト を追加し た り 、 [Run Simulation] コマン ド を使用し てシ ミ ュ レーシ ョ ンを実 行し た り でき ます。

図 5-2 は、 Vivado シ ミ ュ レータの [Scopes] ビ ューを示し ています。

X-Ref Target - Figure 5-1

図 5-1 : 波形ビ ューの例

X-Ref Target - Figure 5-2

図 5-2 : [Scopes] ビュー

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 57UG900 (v2012.2) 2012 年 7 月 25 日

波形コ ン フ ィ ギュ レーシ ョ ンへの HDL オブジ ェ ク ト の追加

重要 : オブジェ ク ト の波形には、 オブジェ ク ト がビ ューに追加された と きのシ ミ ュ レーシ ョ ン時間のみが表示されま す。 波形コ ンフ ィ ギュ レーシ ョ ンの作成や HDL オブジェ ク ト の追加など、 波形コ ンフ ィ ギュ レーシ ョ ンへの変更は、 WCFG フ ァ イルを保存する まで永久ではあ り ません。

[Scopes] ビ ュー内でス コープをフ ィ ルターするには、 次のいずれかの方法を使用し ます。

• 一部のス コープを表示させないよ う にするには、 次を実行し ます。 1 つまたは複数のス コープ フ ィ ルター ボタ ンを ク リ ッ ク し ます。

• 特定の文字列を含むス コープに表示を限定するには、 [Zoom] ボタ ンを ク リ ッ ク し ます。 表示される テキス ト ボ ッ ク スに文字列を入力し ます。

ス コープを ク ッ ク し て も [Scopes] ビ ュー内のオブジェ ク ト を フ ィ ルターでき ます。 ス コープを選択する と、 [Scopes] ポ ッ プア ッ プ メ ニューには次のオプシ ョ ンが含まれます。

• [Add to Wave Window] : 選択し たス コープの表示可能な HDL オブジェ ク ト すべてを波形コ ンフ ィ ギュ レーシ ョ ン に追加し ます。

• [Go To Source Code] : 選択し たス コープの定義でソース コード を開き ます。

• [Go To Instantiation Source code] : Verilog モジュールおよび VHDL エンテ ィ テ ィ イ ンス タ ンスの場合、選択し たイ ンス タ ンスのイ ンス タ ンシエーシ ョ ン時点でソース コード を開き ます。

ソース コード テキ ス ト エデ ィ ターでフ ァ イルの識別子にカーソルを置 く と値が表示されます (図 5-3)。

重要 : こ の機能を使用するには、 [Scopes] ビ ューで正しいス コープが選択されている必要があ り ます。

X-Ref Target - Figure 5-3

図 5-3 : 識別子が表示されたソース コー ド

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 58UG900 (v2012.2) 2012 年 7 月 25 日

波形コ ン フ ィ ギュ レーシ ョ ンへの HDL オブジ ェ ク ト の追加

ヒ ン ト : 表示された値の数形式を変更するには、 Tcl コ ン ソールに次を入力し ます。 set_property radix <radix> [current_sim] (<radix> は bin, unsigned、 hex、 dec、 ascii、 または oct のいずれかにな り ます)

[Objects] ビ ューの使用

図 5-4 は、 Vivado シ ミ ュ レータの [Objects] ビ ューを示し ています。

一部の HDL オブジェ ク ト タ イプは、 次の方法で非表示にでき ます。 1 つまたは複数のオブジェ ク ト フ ィ ルター ボタ ンを ク リ ッ ク し ます。 ア イ コ ンの上にカーソルを置 く と、オブジェ ク ト タ イプを示すツール ヒ ン ト が表示されます。

オブジェ ク ト を選択する と、 ポ ッ プア ッ プ メ ニューには 次のオプシ ョ ンが含まれます。

• [Add to Wave Window] : 選択し たオブジェ ク ト を波形コ ンフ ィ ギュ レー シ ョ ンに追加し ます。

• [Radix] : 選択し たオブジェ ク ト の値を [Objects] ビ ューおよびソース コー ド ビ ューで表示する際に使用する数形式を選択し ます。

• [Go To Source Code] : 選択し たオブジェ ク ト の定義でソース コード を開き ます。

X-Ref Target - Figure 5-4

図 5-4 : [Objects] ビ ュー

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 59UG900 (v2012.2) 2012 年 7 月 25 日

非プロジ ェ ク ト モー ドの使用

非プロジ ェ ク ト モー ドの使用次は、 Tcl コ ン ソールまたはバッ チ ス ク リ プ ト ないで使用でき る コマン ド の一部です。 これらのコマン ド の詳細につ いては、 『Vivado Tcl コマン ド リ フ ァ レ ン ス ガ イ ド』 (UG835)[参照 4] を参照し て く だ さい。

デザイ ン階層の表示

[Scopes] および [Objects] ビ ューを使用する代わ り に、 Tcl コ ン ソールに current_scope と入力し て現在のス コープ を設定または表示する こ と もでき ます。

ス コープおよびオブジェ ク ト を リ ス ト するには、 現在のス コープ内で report_scopes および report_values コ マン ド をそれぞれ使用し ます。

波形ビ ューへの HDL オブジ ェ ク ト の追加

各 HDL オブジェ ク ト やオブジェ ク ト セ ッ ト を波形ビ ューに追加するには、 Tcl コ ン ソールに次を入力し ます。

add_wave <HDL_objects>

add_wave コマン ド を使用する と、 HDL オブジェ ク ト への絶対パス または相対パス を指定でき ます。

た と え ば、 現在の ス コ ープが /bft_tb/uut の場合、 uut の下の リ セ ッ ト レ ジ ス タ への絶対パ ス は /bft_tb/uut/reset、 相対パスは reset にな り ます。

ヒ ン ト : add_wave コ マ ン ド には、 HDL ス コ ープお よ び HDL オブ ジ ェ ク ト が指定で き ま す。 add_wave にス コープを指定し た場合、[Sources] ビ ューの [Add To Wave Window] コマン ド と 同 じ動作にな り ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 60UG900 (v2012.2) 2012 年 7 月 25 日

波形コ ン フ ィ ギュ レーシ ョ ンの HDL オブジ ェ ク ト

波形コ ン フ ィ ギュ レーシ ョ ンの HDL オブジ ェ ク ト HDL オブジェ ク ト を波形コ ンフ ィ ギュ レーシ ョ ンに追加する と、 波形ビ ューアーで HDL オブジェ ク ト の 「波形オブ ジ ェ ク ト 」 が作成さ れます。 波形オブジ ェ ク ト は、 HDL オブジ ェ ク ト に リ ン ク はさ れますが、 別の も のです。 同じ HDL オブジェ ク ト か ら複数の波形オブジ ェ ク ト を作成でき、 各波形オブジェ ク ト の表示プロパテ ィ を別々に設定で き ます。

た と えば、 myBus と い う HDL オブジェ ク ト の波形オブジェ ク ト の 1 つの値を 16 進数で表示し、 myBus の別の波形 オブジェ ク ト を 10 進数で表示させる こ と ができ ます。

仕切 り 、 グループ、 仮想バスなどの別の種類の波形オブジェ ク ト も波形コ ンフ ィ ギュ レーシ ョ ンに表示でき ます。

HDL オブジェ ク ト から作成された波形オブジェ ク ト は、 特に 「デザイ ン波形オブジェ ク ト 」 と呼ばれます。

波形オブジェ ク ト には、 それを示すア イ コ ンで表示されます。

デザイ ン波形オブジェ ク ト の場合、 ア イ コ ンの背景でそのオブジ ェ ク ト がス カ ラー なのか、 Verilog ベク ターや VHDL レ コード などの複合型 なのかがわか り ます。

図 5-5 に、 波形コ ンフ ィ ギュ レーシ ョ ン ビ ューの HDL オブジェ ク ト の例を示し ます。

デザイ ン オブジェ ク ト には、 名前と値が表示されます。

• [Name] : デフ ォル ト では、 HDL オブジェ ク ト の名前が表示されます。 表示されるのは名前だけで、 オブジェ ク ト の階層パスは表示されません。 階層パスすべてを含めて名前を表示する、 または表示する テキ ス ト を指定し てカス タ ム名を割 り 当てる よ う に変更する こ と もでき ます。

• [Value] : オブジェ ク ト の値を波形ビ ューの メ イ ン カーソルに示される時間で表示し ます。 値のフ ォーマ ッ ト は、 同じ HDL オブジ ェ ク ト に リ ン ク さ れたほかのデザ イ ン波形オブジ ェ ク ト のフ ォーマ ッ ト に関係な く 、 および [Objects] ビ ューおよびソース コード ビ ューに表示される値のフ ォーマ ッ ト に関係な く 、 変更でき ます。

X-Ref Target - Figure 5-5

図 5-5 : 波形 HDL オブジ ェ ク ト

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 61UG900 (v2012.2) 2012 年 7 月 25 日

波形コ ン フ ィ ギュ レーシ ョ ン と波形ビ ュー

波形コ ン フ ィ ギュ レーシ ョ ン と波形ビ ュー波形コ ンフ ィ ギュ レーシ ョ ンおよび WCFG フ ァ イルの両方がカス タマイ ズ された波形 リ ス ト を参照し ますが、こ の 2 つの概念は異な り ます。

• 波形コ ンフ ィ ギュ レーシ ョ ンは、 作業可能な メ モ リ に読み込まれたオブジェ ク ト です。

• WCFG フ ァ イルはデ ィ ス ク の波形コ ンフ ィ ギュ レーシ ョ ンが保存された ものです。

波形コ ンフ ィ ギュ レーシ ョ ンには名前が付 く か、Untitled# が付き ます。名前は波形コ ンフ ィ ギュ レーシ ョ ン ビ ューに 表示されます。

波形コ ン フ ィ ギュ レーシ ョ ンの保存

波形コ ンフ ィ ギュ レーシ ョ ンを WCFG フ ァ イルに保存するには、 次を実行し ます。

• Vivado シ ミ ュ レータ GUI で [File] → [Save Waveform Configuration As] を ク リ ッ ク し、 波形コ ンフ ィ ギュ レーシ ョ ンの名前を入力し ます。

• Tcl コ ン ソールに次を入力し ます。

save_wave_config <filename.wcfg>

WCFG フ ァ イルにコマン ド引数で指定し た名前が付け られ、 保存されます。

波形コ ン フ ィ ギュ レーシ ョ ンおよび波形データベースを開 く

現在のアプ リ ケーシ ョ ン バージ ョ ンで同じ OS プラ ッ ト フ ォームで作成された前のシ ミ ュ レーシ ョ ン run からの波形 コ ンフ ィ ギ ュ レーシ ョ ン (WCFG) フ ァ イルがあ る場合は、 次のいずれかの方法を使用し て WCFG と関連する シ ミ ュ レーシ ョ ン データ (WDB) を開 く こ と ができ ます。

• 波形コ ンフ ィ ギュ レーシ ョ ンおよび波形データベース を開 く には、 [File] → [Open] を ク リ ッ ク し、 フ ァ イル フ ィ ルター リ ス ト から .wcfg フ ァ イル タ イプを選択し、 前のシ ミ ュ レーシ ョ ンから の波形コ ン フ ィ ギ ュ レーシ ョ ン (WCFG) フ ァ イルを選択し ます。

ス タテ ィ ッ ク シ ミ ュ レータには、 波形コ ンフ ィ ギュ レーシ ョ ン と共に、 前に ト レース された HDL オブジェ ク ト すべて と関連する波形データベースが表示されます。

• 前のシ ミ ュ レーシ ョ ンからの WDB を開いて WSFG は開かない場合は、 [File] → [Open] を ク リ ッ ク し、 フ ァ イル フ ィ ルター リ ス ト から .wdb フ ァ イル タ イ プを選択し、 前のシ ミ ュ レーシ ョ ンから の波形データベース (WDB) フ ァ イルを選択し ます。

ス タ テ ィ ッ ク ビ ュ アーは [Objects] ビ ューに前のシ ミ ュ レーシ ョ ンからのデータ を表示し ます。 波形ビ ューには 波形データは開かれません。

波形表示の制御波形表示は、 次のよ う に制御でき ます。

• [Objects] ビ ューのサイ ド バーにあ る ズーム ボタ ン

• マウ ス ホ イールを使用し たズームの組み合わせ

• Vivado IDE X 軸のズーム機能

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 62UG900 (v2012.2) 2012 年 7 月 25 日

波形表示の制御

• Vivado シ ミ ュ レーシ ョ ンの Y 軸のズーム機能Vivado IDE の X 軸のズーム機能の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893)[参照 3] を参照し て く だ さい。

注記 : ほかの Vivado のグ ラ フ ィ ッ ク ビ ューと は異な り 、 波形ビ ューの拡大/縮小は Y 軸に関係な く 、 X (時間) 軸にの み適用されます。このため、ビ ューを拡大/縮小する範囲を指定する [Zoom Range X] が、ほかの Vivado ビ ューの [Zoom to Area] の代わ り に使用されます。

ズーム機能の使用

波形コ ンフ ィ ギュ レーシ ョ ンのズーム機能には、 ツールバー ボタ ン を使用し ます。

マウス ホイールを使用し たズーム

波形を ク リ ッ ク し て Shift または Ctrl キーを押し ながら マウ ス ホ イールを使用する と、オシ ロ ス コープのダ イ ヤル操作のよ う にズーム表示をする こ と もでき ます。

Y 軸のズーム機能 X 軸方向のズームでサポー ト されている機能に加え、 アナロ グ波形の場合は、 図 5-6 に示す追加のズーム機能があ り ます。

ズーム機能を使用するには、 マウ スの左ボタ ンを押し たま ま、 図で示されている方向にマウ ス を ド ラ ッ グ し ます。 この図の中央がマウ スの位置です。

次の追加ズーム機能があ り ます。

X-Ref Target - Figure 5-6

図 5-6 : アナログ ズームのオプシ ョ ン

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 63UG900 (v2012.2) 2012 年 7 月 25 日

波形表示の制御

• [Zoom Out Y] : 開始点から マウ ス ボタ ンを放し た位置までの距離によ り 、2 のべき乗分 Y 軸方向にズーム アウ ト し ます。 開始点のマウ ス位置の Y 値をそのま ま維持し てズームが実行されます。

• [Zoom Y Range] : 縦方向にラ イ ンを描き、 マウ ス ボタ ンを離し た位置までの Y 軸の範囲を表示し ます。

• [Zoom In Y] : 開始点からマウ ス ボタ ンを放し た位置までの距離によ り 、 2 のべき乗分 Y 軸方向にズーム イ ン し ます。 開始点のマウ ス位置の Y 値をそのま ま維持し てズームが実行されます。

• [Reset Zoom Y] : [Reset Zoom Y] : 波形ウ ィ ン ド ウに現在表示されている値に Y の範囲を リ セ ッ ト し、 Y の範囲 モード を [Auto] に設定し ます。

Y 軸の方向のズーム機能はすべて Y の範囲のアナロ グ値を設定し ます。 [Reset Zoom Y] は Y の範囲を [Auto] に設定 し ますが、 ほかのズーム機能は [Fixed] に設定し ます。

次の制限に注意し て く だ さい。

• 実数での 大バス幅は 64 ビ ッ ト です。

• Verilog real および VHDL real はアナロ グ波形のよ う にサポー ト されません。

• 浮動小数点では 32 ビ ッ ト および 64 ビ ッ ト の配列のみがサポー ト されています。

波形のアナログ表示

HDL バス オブジェ ク ト をアナロ グ波形で表示し て予測される波形を出力する場合、 HDL オブジェ ク ト のデータの性 質と一致する基数を選択する こ と が重要にな り ます。

次に例を示し ます。

• バスでエン コード されるデータが 2 の補数の符号付き整数の場合は、符号付きの基数を選択する必要があ り ます。

• データが IEEE 形式にエン コード される浮動小数点の場合は、 基数に real を選択する必要があ り ます。

基数およびアナログ波形

バスの値が数値と し て処理される方法は、 バス波形オブジェ ク ト の基数設定によ って決ま り ます。

• 2 進数、 8 進数、 16 進数、 ASCII、 および符号な しの 10 進数の基数を使用する と、 バスの値が符号なしの整数と し て処理されます。

• 0 または 1 以外のビ ッ ト を使用する と、 全体の値が 0 と し て解釈されます。

• 符号付きの 10 進数基数を使用する と、 バスの値が符号付き整数と し て処理されます。

• 実数基数を使用する と、 バスの値は固定小数点または浮動小数点の実数と し て処理されます。 これは、 図 5-7 に 示す [Real Settings] ダ イ ア ロ グ ボ ッ ク スの設定によ って決ま り ます。

波形の基数を [Real] に設定する と、オブジェ ク ト の値が実数で表示される よ う にでき ます。この基数を選択する前に、 その値のビ ッ ト の変換方法を波形ビ ューアーで指定し てお く 必要があ り ます。

波形オブジェ ク ト を Real 基数に設定するには、 [Real Settings] ダ イ ア ロ グ ボ ッ ク ス を使用し ます。

波形コ ンフ ィ ギュ レーシ ョ ン ビューで HDL オブジェ ク ト を選択し、右ク リ ッ クのポップア ップ メ ニューから開き ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 64UG900 (v2012.2) 2012 年 7 月 25 日

波形表示の制御

[Real Setting] ダ イ ア ロ グ ボ ッ ク スでは、 次のオプシ ョ ンを設定でき ます。

• [Fixed Point] : 選択し たバス波形オブジェ ク ト のビ ッ ト が固定小数点の符号付き または符号なしの実数と し て処 理されます。

• [Binary Point] : 2 進数小数点の右側のビ ッ ト 数を指定し ます。 [Binary Point] で指定する値が波形オブジェ ク ト の ビ ッ ト 幅よ り も大きい場合、 波形オブジェ ク ト の値は固定小数点と し ては処理されず、 波形オブジェ ク ト がデジタル波形で表示された と きにすべての値が <Bad Radix> と 表示さ れます。 アナロ グ波形 と し て表示される場 合、 すべての値は 0 と し て処理されます。

• [Floating Point] : 選択し たバス波形オブジェ ク ト のビ ッ ト が IEEE 浮動小数点の実数と し て処理されます。

注記 : 単精度および倍精度 (および単/倍精度に設定されている値のカス タ ム精度) のみがサポー ト されています。

その他の値は、[Fixed Point] を使用し た場合 と同様 <Bad Radix> 値にな り ます。 [Exponent Width] および [Fraction Width] は、 波形オブジェ ク ト のビ ッ ト 幅に必ず追加される必要があ り 、 追加されない場合は <Bad Radix> 値に な り ます。

ヒ ン ト : 行番号を分け る ラ イ ンが表示されない場合は、 68 ページの 「[Waveform Options] ス ラ イ ド ア ウ ト 」 でオンに し て、 表示される よ う にし ます。

アナログ波形表示のカス タ マイズ

アナロ グ波形の表示は次のよ う にカス タマイ ズでき ます。

1. 波形ビ ューの [Name] でバス を右ク リ ッ ク し ます。

2. [Waveform Style] を ク リ ッ ク し、 次のいずれかを ク リ ッ ク し ます。

° [Analog] : デジタル波形をアナロ グに設定し ます。

° [Digital] : アナロ グ波形オブジェ ク ト をデジ タルに設定し ます。

° [Analog Settings] : [Analog Settings] ダ イ ア ロ グ ボ ッ ク ス を開き ます。 図 5-8 に、 アナロ グ波形表示を設定する [Analog Settings] ダ イ ア ロ グ ボ ッ ク ス を示し ます。

X-Ref Target - Figure 5-7

図 5-7 : [Real Settings] ダイアログ ボ ッ ク ス

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 65UG900 (v2012.2) 2012 年 7 月 25 日

波形表示の制御

[Analog Settings] ダ イ ア ロ グ ボ ッ ク スでは、 次のオプシ ョ ンを設定でき ます。

• [Row Height] : 選択し た波形オブジェ ク ト の高さ を ピ ク セルで指定し ます。 行の高さ を変更し て も波形の垂直方 向の表示域は変わ り ませんが、 波形の高さの伸縮が変わ り ます。

アナロ グ とデジ タルを切 り 替え る と き、 行の高さはそれぞれに合った適切なデフ ォル ト の高さ に設定されます (デジ タルの場合は 20、 アナロ グの場合は 100)。

• [Y Range] : 波形エ リ アに表示される数値の範囲を指定し ます。

° [Auto] : 表示されている時間の範囲の値が現在の範囲を超えた と きに、 表示範囲が拡大されます。

° [Fixed] : 時間範囲を一定にし ます。

° [Min] : 波形エ リ アの一番下に表示される値を指定し ます。

° [Max] : 波形エ リ アの一番上に表示される値を指定し ます。

どち らの値も浮動小数点と し て指定でき ますが、 波形オブジェ ク ト の基数が整数の場合、 値は整数に切 り 捨て られます。

• [Interpolation Style] : データ ポイ ン ト を接続する ラ イ ンの描画方法を指定し ます。

° [Linear] : 2 つのデータ ポイ ン ト 間のラ イ ンを直線にし ます。

° [Hold] : 2 つのデータ ポ イ ン ト の う ち、 左のポ イ ン ト から右のポ イ ン ト の X 軸に向かって水平ラ イ ンを描画 し、 そのラ イ ンから右のポ イ ン ト に向かって別のラ イ ンを L 字型に描画し ます。

• [Off Scale] : 波形エ リ アの Y 軸を超えた値を どのよ う に描画するかを指定し ます。

° [Hide] : 範囲外にあ る値を非表示にし ます。 波形エ リ アの上下の範囲外にあ る ものは、 範囲内に戻る までは 非表示にな り ます。

° [Clip] : 範囲外にあ る値は変更され、波形エ リ アの上下境界線を超え る と範囲内に戻る までは水平ラ イ ン と し て表示されます。

° [Overlap] : 波形エ リ アの境界線を越えていて、 ほかの波形と重なっていて も、 波形ウ ィ ン ド ウの境界に達す る までは波形の値がど こにあって も波形が描画されます。

• [Horizontal Line] : 指定し た値で水平方向のラ イ ンを描画するかど う か指定し ます。 こ のチェ ッ ク ボ ッ ク スがオン の場合、 グ リ ッ ド ラ イ ンが指定し た Y 軸の位置で描画されます (値が波形の Y 軸の範囲内にあ る場合)。

[Min] および [Max] の場合と同様、 Y 軸の値には浮動小数点値を指定でき ますが、 選択し た波形オブジェ ク ト の 基数が整数の場合は、 整数値に切 り 捨て られます。

X-Ref Target - Figure 5-8

図 5-8 : [Analog Settings] ダイアログ ボ ッ クス

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 66UG900 (v2012.2) 2012 年 7 月 25 日

波形表示の制御

重要 : アナロ グ設定は波形コ ンフ ィ ギュ レーシ ョ ンに保存されますが、Y 軸方向のズーム コ ン ト ロールは非常にイ ン タ ラ ク テ ィ ブであ る ため、 基数などのほかの波形プロパテ ィ と は異な り 、 波形コ ンフ ィ ギュ レーシ ョ ンの変更には影響し ません。 このため、 ズーム設定は波形コ ンフ ィ ギュ レーシ ョ ンには保存されません。

カーソルの使用

カーソルは、 時間を一時的に示すために使用し ます。 2 つの波形エ ッ ジ間の距離 (時間) を計測する場合には、 カーソ ルを頻繁に移動し ます。

ヒ ン ト : WCFG フ ァ イルには、 カーソ ル位置は記録さ れません。 複数の計測の時間軸を設定する場合やシ ミ ュ レー シ ョ ンでの重要な イベン ト を示す場合な ど、 一時的ではない イ ンジケーターを設定する必要があ る場合は、 波形ビ ューにマーカーを追加し ます。 詳細は、 69 ページの 「マーカーの使用」 を参照し て く ださ い。

メ イ ン カーソルと 2 つ目のカーソル

波形を 1 回ク リ ッ クする と、 メ イ ン カーソルが配置されます。

2 つ目のカーソルを配置するには、 Ctrl キーを押し ながら ク リ ッ ク し、 マウ ス を左または右に ド ラ ッ グ し ます。 カー ソルの上に位置を示すフ ラ グが表示されます。 または、 Shift キーを押し たま ま波形のど こ かを ク リ ッ ク し ます。

2 つ目のカーソルがオンになっていない場合、 こ の動作によ り 2 つ目のカーソルが メ イ ン カーソルの現在の位置に設 定され、 メ イ ン カーソルが ク リ ッ ク し た位置に配置されます。

注記 : 2 つ目のカーソルの位置を保持し ながら メ イ ン カーソルの位置を変更するには、Shift キーを押し ながら ク リ ッ ク し ます。 2 つ目のカーソルを ド ラ ッ グ し て配置する場合、 小間隔以上ド ラ ッ グ し ない と 2 つ目のカーソルは表示 されません。

カーソルの移動

カーソ ルを移動する には、 ポ イ ン ターが手のひら のマーク にな る までマウ ス を動かし、 ク リ ッ ク し て次の位置までカーソルを ド ラ ッ グ し ます。

カーソルを ド ラ ッ グする際、 [Snap to Transtion] がオンになっている と (デフ ォル ト )、 中が塗 り つぶされていない丸ま たは中が塗 り つぶされた丸が表示されます。

• 中が塗 り つぶされていない丸 は、 選択し た信号の波形の遷移間にあ る こ と を示し ます。

• 中が塗 り つぶされた丸 は、カーソルがマウ スの下またはマーカーの波形の遷移でロ ッ ク されている こ と を示 し ます。

カーソル、マーカー、フ ロー ト し ているルーラーがない場所を ク リ ッ クする と、2 つ目のカーソルが非表示にな り ます。

次または前の遷移の検索

波形ビ ューのサイ ド バーには、メ イ ン カーソルを現在の位置から選択し た波形の次または前の遷移に移動させる ため のボ タ ンが含まれます。

メ イ ン カーソルを波形の次または前の遷移に移動するには、 次を実行し ます。

1. 波形の波形オブジェ ク ト 名を ク リ ッ ク し てア ク テ ィ ブにし ておき ます。

これで波形オブジェ ク ト が選択され、 オブジェ ク ト の波形が通常よ り も太いラ イ ンで表示されます。

2. サイ ド バーの [Next Transition] または [Previous Transition] ボタ ン を ク リ ッ クするか、 キーボード の右矢印ま たは左矢印キーを使用し て、 次または前の遷移に移動し ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 67UG900 (v2012.2) 2012 年 7 月 25 日

波形表示の制御

ヒ ン ト : 複数の波形オブジェ ク ト を一緒に選択する と、 波形セ ッ ト の一番近い遷移に移動し ます。

[Waveform Options] スラ イ ド アウ ト

[Waveforms Options] ボタ ン を ク リ ッ クする と、 [Waveforms Options] ス ラ イ ド ア ウ ト が開き ます (図 5-9)。

[General Waveform Options] を設定し ます。

• [Default Radix] : 新し く 作成し た波形オブジェ ク ト に使用する数値形式を設定し ます。

• [Show signal indices] : オンにする と、 波形オブジェ ク ト 名の左に行番号を表示でき ます。 行番号を分けている ラ イ ンを ド ラ ッ グする と、 波形オブジェ ク ト の高さ を変更でき ます。

[Colors] ページでは、 波形ビ ュー内のア イ テムの色を設定でき ます。

フ ロー ト ルーラーの使用

波形ウ ィ ン ド ウの上部にあ る標準ルーラーの絶対シ ミ ュ レーシ ョ ン時間以外の時間ベース を使用し て時間を計測するには、 フ ロー ト ルーラーを使用する と便利です。

フ ロー ト ルーラーは表示 (または非表示) にでき、 ド ラ ッ グ し て波形ウ ィ ン ド ウで垂直方向の位置に変更する こ と が でき ます。 こ のルーラーの時間ベース (時間 0) は 2 番目のカーソルで、 こ のカーソルがない場合は、 選択されたマー カーにな り ます。

フ ロー ト ルーラー ボタ ン およびフ ロー ト ルーラーは、 2 番目のカーソルまたはたマーカーがあ る場合にのみ表 示されます。

1. ルーラーの表示/非表示を切 り 替え るには、 次のいずれかを実行し ます。

° 2 番目のカーソルを配置

° マーカーを選択

2. [View] → [Floating Ruler] を ク リ ッ クするか、 または [Floating Ruler] ボタ ンを ク リ ッ ク し ます。

この操作は 初に 1 回だけ実行し、繰 り 返す必要はあ り ません。 フ ロー ト ルーラーは 2 番目のカーソルが置 く た び、 またはマーカーが選択される たびに表示されます。

X-Ref Target - Figure 5-9

図 5-9 : [Waveform Options] スラ イ ド アウ ト

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 68UG900 (v2012.2) 2012 年 7 月 25 日

波形コ ン フ ィ ギュ レーシ ョ ンのカス タ マイズ

ルーラーを非表示にするには、 このコマン ド を も う 一度ク リ ッ ク し ます。

バス ビ ッ ト 順の反転

波形コ ンフ ィ ギュ レーシ ョ ンでバス ビ ッ ト 順を反転し て、MSB の 上位バイ ト (ビ ッ グ エンデ ィ アン) および LSB の 下位バイ ト のビ ッ ト 順を切 り 替え る こ と で、 バス値を表示でき ます。

ビ ッ ト 順序を逆にするには、 次の手順に従います。

1. バス を選択し ます。

2. 右ク リ ッ ク し、 [Reverse Bit Order] を ク リ ッ ク し ます。

これでバス ビ ッ ト の順序が逆にな り ます。 [Reverse Bit Order] コマン ド の横にチェ ッ ク マーク が表示され、 適用 されている こ と が示されます。

波形コ ン フ ィ ギュ レーシ ョ ンのカス タ マイズ表 5-1 に リ ス ト されている機能を使用し て、 波形コ ンフ ィ ギュ レーシ ョ ンをカス タマイ ズでき ます。 こ の表には機能 が簡単に説明されてお り 、 機能名を ク リ ッ クするその機能を説明するセ ク シ ョ ンに移動でき ます。

注記 : PDF リ ーダーで、た と えば [View] → [Toolbars] → [More Tools] → [Previous View] および [Next View] ボタ ンを ク リ ッ ク し て、 前後のページを表示しやす く し てお く こ と をお勧めし ます。

マーカーの使用

波形内の重要イベン ト を恒久的にマークする必要があ る場合はマーカーを使用し ます。 マーカーを使用する と、 マーカーが付け られた イベン ト に関連し た時間を計測でき ます。

マーカーは、 次のよ う に追加、 移動、 削除でき ます。

• メ イ ン カーソルの位置に波形コ ンフ ィ ギュ レーシ ョ ンにマーカーを追加し ます。

表 5-1 : 波形コ ン フ ィ ギュ レーシ ョ ンのカス タ マイズ機能

機能 説明

「マーカーの使用」 マーカーを追加し て波形をナビゲー ト し、 特定時の波形値を表示でき ます。

「仕切 り の使用」 波形オブジェ ク ト を見やす く 分ける ため仕切 り を追加でき ます。

「グループの使用」 関連し た HDL オブジェ ク ト セ ッ ト を整頓する手段 と し て、波形オブ ジ ェ ク ト をグループにま と め、 波形コ ン フ ィ ギ ュ レーシ ョ ンに追加でき ます。

「仮想バスの使用」 論理ス カ ラーおよび配列を追加でき る仮想バス を波形コ ン フ ィ ギ ュレーシ ョ ンに追加でき ます。

「オブジェ ク ト 名の変更」 波形オブジェ ク ト およびグループの名前を変更でき ます。

「オブジ ェ ク ト 名の表示と 名前表示 モ ー ド の 変更」

完全な階層名、 信号またはバス名のみ、 または各信号のカ ス タ ム名を表示でき ます。

「基数」 デフ ォル ト 基数は、 波形コ ンフ ィ ギュ レーシ ョ ン、 [Objects] ビ ュー、 およびコ ン ソールに表示されるバスの基数を指定し ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 69UG900 (v2012.2) 2012 年 7 月 25 日

波形コ ン フ ィ ギュ レーシ ョ ンのカス タ マイズ

a. 波形ビ ューの時間または遷移を ク リ ッ ク し て、 マーカーを追加する時間の箇所に メ イ ン カーソルを置き ま す。

b. [Edit] → [Add Marker] を ク リ ッ クするか、 または [Add Marker] ボタ ンを ク リ ッ ク し ます。

カーソル位置にマーカーが配置されます。マーカーがその位置に既にあ る場合は、若干オフセ ッ ト されます。マーカーの時間が上部に表示されます。

• マーカーを波形ビ ューの別の位置に移動するには、 ド ラ ッ グ アン ド ド ロ ッ プし ます。マーカー ラベル (マーカー 上部またはマーカー ラ イ ン) を ク リ ッ ク し て ド ラ ッ グ し ます。

° ド ラ ッ グ シンボル は、 マーカーが移動可能であ る こ と を示し ます。 マーカーを ド ラ ッ グする際、 [Snap to Transtion] がオンになっている と (デフ ォル ト )、 中が塗 り つぶされていない丸または中が塗 り つぶされた 丸が表示されます。

° 中が塗 り つぶされている丸 は、 選択し た信号の波形の遷移地点、 または別のマーカー上であ る こ と を 示し ます。

° マーカーの場合は、 丸は白 く 塗 り つぶされています。

° 中が塗 り つぶされていない丸 は、 マーカーがマウ スの下またはマーカーの波形の遷移でロ ッ ク されて いる こ と を示し ます。

新しい位置にマーカーを ド ロ ッ プするには、 マウ スのボタ ンを放し ます。

• 1 つのコマン ド でマーカーを 1 つ、 またはすべて削除でき ます。 マーカーを右ク リ ッ ク し て、 次のいずれかの操 作を実行し ます。

° マーカーを 1 つ削除するには、 ポ ッ プア ッ プ メ ニューから [Delete Marker] を ク リ ッ ク し ます。

° マーカーをすべて削除するには、 ポ ッ プア ッ プ メ ニューから [Delete All Markers] を ク リ ッ ク し ます。

注記 : また、 Delete キーを使用し て選択し たマーカーを削除する こ と もでき ます。

仕切りの使用

仕切 り は、 HDL オブジ ェ ク ト を見やす く 区切 り ます。 波形コ ンフ ィ ギュ レーシ ョ ンに仕切 り を追加するには次の手 順に従います。

1. 波形ビ ューの [Name] 列で、 下に仕切 り を追加する信号を ク リ ッ ク し ます。

2. [Edit] → [New Divider] を ク リ ッ クするか、 右ク リ ッ ク し て [New Divider] を ク リ ッ ク し ます。

新しい仕切 り マークは、 波形コ ンフ ィ ギュ レーシ ョ ン フ ァ イルを保存し た と きに保存されます。

仕切 り は、 次の方法で移動または削除でき ます。

• 仕切 り を移動するには、 名前を別の位置に ド ラ ッ グ アン ド ド ロ ッ プし ます。

• 仕切 り を削除するには、 Delete キーを押すか、 または右ク リ ッ ク し てポ ッ プア ッ プ メ ニューから [Delete] を ク リ ッ ク し ます。

仕切 り の名前も変更でき ます。 詳細は、 71 ページの 「オブジェ ク ト 名の変更」 を参照し て く ださ い。

グループの使用

グループ と は、 波形コ ンフ ィ ギュ レーシ ョ ンに波形オブジェ ク ト を追加する ための拡張可能な入れ物の こ と で、 これによ り 関連し た波形オブジェ ク ト セ ッ ト が整頓でき ます。 グループ自体は波形データ を表示し ませんが、その内容の 表示/非表示を切 り 替え る こ と ができ ます。 グループは追加、 変更、 削除でき ます。

グループを追加するには、 次の手順に従います。

1. 波形ビ ューで、 グループに追加する波形オブジェ ク ト を 1 つまたは複数選択し ます。

注記 : グループには、 仕切 り 、 仮想バス、 ほかのグループを含める こ と ができ ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 70UG900 (v2012.2) 2012 年 7 月 25 日

波形コ ン フ ィ ギュ レーシ ョ ンのカス タ マイズ

2. [Edit] → [New Group] を ク リ ッ クするか、 右ク リ ッ ク し て [New Group] を ク リ ッ ク し ます。

これによ り 、 選択し た波形オブジェ ク ト を含むグループが波形コ ンフ ィ ギュ レーシ ョ ンに追加されます。

グループは、 グループ ア イ コ ンで表されます。 HDL オブジ ェ ク ト を ド ラ ッ グ アン ド ド ロ ッ プし て、 グループに 信号やバス を追加する こ と もでき ます。

波形コ ンフ ィ ギュ レーシ ョ ン フ ァ イルを保存する と、新しいグループ と それに含まれる波形オブジェ ク ト も保存され ます。

グループは、 次の方法で移動または削除でき ます。

• グループを移動するには、 [Name] 列のグループ名を別の位置に ド ラ ッ グ アン ド ド ロ ッ プし ます。

• グループを削除するには、 グループを選択し て [Edit] → [Wave Objects] → [Ungroup] を ク リ ッ クするか、グループ を右ク リ ッ ク し て [Ungroup] を ク リ ッ ク し ます。グループに含まれていた波形オブジェ ク ト は、波形コ ンフ ィ ギュ レーシ ョ ンの一番上に配置されます。

グループ名も変更でき ます。 詳細は、 71 ページの 「オブジェ ク ト 名の変更」 を参照し て く ださ い。

注意 : Delete キーを押す と、 グループ と、 それに含まれている波形オブジェ ク ト が波形コ ンフ ィ ギュ レーシ ョ ンから 削除されます。

仮想バスの使用

仮想バス を波形コ ンフ ィ ギュ レーシ ョ ンに追加する と、 論理ス カ ラーおよびベク ターを追加でき ます。 仮想バスはバス波形を表示し ます。 バス波形の値は、 仮想バスの下に表示される上から順番に、 追加されたスカ ラーおよび配列か ら対応する値を取 り 出し て、 1 次元のベク ターに平坦化する こ と で作成されます。

仮想バス を追加するには、 次の手順に従います。

1. 波形コ ンフ ィ ギュ レーシ ョ ンで、 仮想バスに追加する波形オブジェ ク ト を 1 つまたは複数選択し ます。

2. [Edit] → [New Virtual Bus] を ク リ ッ クするか、 右ク リ ッ ク し て [New Virtual Bus] を ク リ ッ ク し ます。

仮想バスは、 仮想バス ア イ コ ン で表されます。

信号名やバス名を ド ラ ッ グ アン ド ド ロ ッ プする と、 仮想バスに論理ス カ ラーおよび配列を移動でき ます。 波形コ ン フ ィ ギュ レーシ ョ ン フ ァ イルを保存する と、 新しい仮想バス と それに含まれる もの も保存されます。 また、 仮想バス の名前を波形の別位置に ド ラ ッ グ アン ド ド ロ ッ プし て移動でき ます。

仮想バスの名前を変更するには、 「オブジェ ク ト 名の変更」 を参照し て く ださ い。

仮想バス を削除し、 その中に含まれる も のをグループ解除する には、 仮想バス を選択し、 [Edit] → [Wave Objects] → [Ungroup] を ク リ ッ クするか、 または右ク リ ッ ク し てポ ッ プア ッ プ メ ニューの [Ungroup] を ク リ ッ ク し ます。

注意 : Delete キーを押すと、仮想バス と、 それに含まれている HDL オブジェ ク ト が波形コ ンフ ィ ギュ レーシ ョ ンから 削除されます。

オブジ ェ ク ト 名の変更

デザ イ ン波形オブジ ェ ク ト 、 仕切 り 、 グループ、 仮想バス などの波形コ ン フ ィ ギ ュ レーシ ョ ンに含まれる波形オブジェ ク ト の名前は変更でき ます。

1. [Name] 列でオブジェ ク ト 名を選択し ます。

2. 右ク リ ッ ク し、 [Rename] を ク リ ッ ク し ます。

[Rename] ダ イ ア ロ グ ボ ッ ク スが開き ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 71UG900 (v2012.2) 2012 年 7 月 25 日

波形コ ン フ ィ ギュ レーシ ョ ンのカス タ マイズ

3. [Rename] ダ イ ア ロ グ ボ ッ ク スに新しい名前を入力し、 [OK] を ク リ ッ ク し ます。

波形コ ンフ ィ ギュ レーシ ョ ンのデザイ ン波形オブジェ ク ト の名前を変更し て も、 その下位の HDL オブジェ ク ト の名 前は変わ り ません。

ヒ ン ト : 波形オブジェ ク ト の名前を変更する と、 名前表示モード が [Custom] に変わ り ます。 元の表示モード に戻すに は、 表示モード を次のセ ク シ ョ ンで説明する よ う に [Long] または [Short] に戻す必要があ り ます。

オブジ ェ ク ト 名の表示と名前表示モー ドの変更

完全な階層名 (long name)、 信号またはバス名のみ (short name)、 または各デザイ ン波形オブジ ェ ク ト のカ ス タ ム名を 表示でき ます。 オブジェ ク ト 名は、 波形コ ンフ ィ ギ ュ レーシ ョ ンの [Name] 列に表示されます。 名前が非表示になっ ている場合は、 次の操作を実行し ます。

1. 名前全体が表示される よ う に [Name] 列の幅を調整し ます。

2. [Name] 列でス ク ロール バーを使用し て名前を表示し ます。

表示名を変更するには、 次の手順に従います。

1. 信号名またはバス名を 1 つ以上選択し ます。複数の信号を選択する場合は、Shift キーまたは Ctrl キーを押し なが ら ク リ ッ ク し ます。

2. [Name] を ク リ ッ ク し、 次を選択し ます。

° [Long] : 完全な階層名を表示し ます。

° [Short] : 信号名またはバス名のみを表示し ます。

° [Custom] : 信号のカ ス タ ム名を表示し ます。 詳細は、 71 ページの 「オブジェ ク ト 名の変更」 を参照し て く だ さい。

注記 : [Long] および [Short] の名前はデザイ ン波形オブジェ ク ト に対し てのみ意味があ り ます。その他のオブジェ ク ト (仕切 り 、 グループ、 仮想バス) はデフ ォル ト で [Custom] 名で表示され、 [Long] および [Short] 名に対する ID 文字列が 表示されます。

基数

バスのデータ型を理解する こ と は重要です。 デジタルおよびアナロ グの波形オプシ ョ ンを効果的に使用するには、 基数設定 とデータ型の関係を知ってお く 必要があ り ます。 基数設定およびそのアナロ グ波形解析への影響については、64 ページの 「波形のアナロ グ表示」 を参照し て く ださ い。

デフ ォル ト 基数の変更

デフ ォル ト の波形基数では、 明示的に設定し ていない基数の波形オブジェ ク ト すべての値が数形式で制御されます。デフ ォル ト の波形基数は、 binary です。

デフ ォル ト の波形基数を変更するには、 次の手順に従って く だ さい。

1. 波形ビ ューのサイ ドバーで [Waveform Options] ボタ ンを ク リ ッ ク し、 波形オプシ ョ ンのビ ューを開き ます。

2. [General] ページで [Default Radix] ド ロ ッ プダウ ン メ ニューを ク リ ッ ク し ます。

3. ド ロ ッ プダウ ン リ ス ト から基数を選択し ます。

波形オブジ ェ ク ト ご との基数の変更

[Objects] ビ ューでは、 各波形オブジェ ク ト の基数を次のよ う に変更でき ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 72UG900 (v2012.2) 2012 年 7 月 25 日

前のシ ミ ュ レーシ ョ ン設定からのシ ミ ュ レーシ ョ ン データの表示 (ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン)

1. [Objects] ビ ューでバス を選択し ます。

2. [Radix] を ク リ ッ ク し、 ド ロ ッ プダ ウ ン メ ニ ューから フ ォーマ ッ ト を選択し ます。

° [Binary] (2 進数)

° [Hexadecimal] (16 進数)

° [Unsigned Decimal] (符号な し 10 進数)

° [Signed Decimal] (符号付き 10 進数)

° [Octal] (8 進数)

° [ASCII] (デフ ォル ト )

重要 : [Objects] ビ ューで基数を変更し て も、波形ビ ューまたは [Tcl Console] の値は変更されません。波形ビ ューで個々 の波形オブジェ ク ト の基数を変更するには、 波形ビ ューのポ ッ プア ッ プ メ ニューを使用し て く だ さい。

前のシ ミ ュ レーシ ョ ン設定からのシ ミ ュ レーシ ョ ン データの表示 (ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン)シ ミ ュ レーシ ョ ンを実行し て HDL オブジェ ク ト を波形ビ ューで表示する場合、シ ミ ュ レーシ ョ ンを実行する こ と で、 表示されている HDL オブジェ ク ト の波形ア ク テ ィ ビテ ィ を含む波形データベース (WDB) フ ァ イルが作成されます。 WDB フ ァ イルには、シ ミ ュ レーシ ョ ン されたデザイ ンの HDL ス コープ と オブジェ ク ト すべてに関する情報も含まれ ます。

「ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン」 は Vivado シ ミ ュ レータのモード で、 シ ミ ュ レーシ ョ ンを実行し て得たデータの代 わ り に、 WDB フ ァ イルからのデータがビ ューに表示されます。

こ のモー ド の場合、 下位に制御する ラ イ ブ シ ミ ュ レーシ ョ ン モデルがないので、 run コ マン ド のよ う なシ ミ ュ レー シ ョ ンを制御または監視する コマン ド は使用でき ません。

ただし、 波形および HDL デザイ ン階層を表示する こ と はでき ます。 シ ミ ュ レータで波形コ ンフ ィ ギュ レーシ ョ ンが デフ ォル ト で作成される こ と はないので、 波形を表示する前に、 新しい波形コ ンフ ィ ギュ レーシ ョ ンを作成するか、WCFG フ ァ イルを開 く 必要があ り ます。

重要 : WDB フ ァ イルには後方置換性はな く 、OS 互換性も あ り ません。WDB フ ァ イルは、作成し たの と同じバージ ョ ンで、 同じ タ イプの OS で開 く 必要があ り ます。 WCFG フ ァ イルには後方互換性も OS 互換性も あ り ます。

WDB フ ァ イルの表示

WDB フ ァ イルを開いて、 ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン と し て表示するには、 次の手順に従って く ださ い。

1. Vivado IDE を開き ます。

2. Vivado プロ ジェ ク ト を開き ます。 [Open Static Simulation] の機能を使用するには、 こ の手順が必ず必要です。

3. Flow Navigator の [Simulation] セ ク シ ョ ンで [Open Static Simulation] を ク リ ッ ク し ます。

図 5-10 に示す [Specify Simulation Results] ダ イ ア ロ グ ボ ッ ク スが表示されます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 73UG900 (v2012.2) 2012 年 7 月 25 日

前のシ ミ ュ レーシ ョ ン設定からのシ ミ ュ レーシ ョ ン データの表示 (ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン)

4. WDB フ ァ イルを選択し ます。

波形ビ ューのない [Simulation] ビ ューが表示されます。 波形を表示するには、 次の 2 つのセ ク シ ョ ンのいずれか の手順を使用し て く だ さい。

WCFG フ ァ イルを開 く

WDB フ ァ イルを開いた ら、 WCFG フ ァ イルを開いて、 ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン と一緒に使用でき ます。

1. [File] → [Open Waveform Configuration] を ク リ ッ ク し ます。

図 5-10 に示す [Specify Simulation Results] ダ イ ア ロ グ ボ ッ ク スが表示されます。

2. 開いている WDB フ ァ イルの HDL オブジェ ク ト を参照する WCFG フ ァ イルを選択し ます。

注記 : 開 く WCFG フ ァ イルにス タ テ ィ ッ ク シ ミ ュ レーシ ョ ンの HDL デザイ ン階層にはない HDL オブジェ ク ト への 参照が含まれる場合、 Vivado シ ミ ュ レータではこれらの HDL オブジェ ク ト が無視され、 読み込まれた波形コ ンフ ィ ギュ レーシ ョ ンから削除されます。

波形ビ ューが開き、 WDB フ ァ イル (WCFG フ ァ イルの リ ス ト された波形オブジェ ク ト 用にシ ミ ュ レータで検出) からの波形データが表示されます。

注記 : 波形コ ン フ ィ ギ ュ レーシ ョ ンには HDL デザイ ンのス タ テ ィ ッ ク シ ミ ュ レーシ ョ ンから のどの HDL オブジェ ク ト でも含める こ と ができ ますが、波形が表示されるのは WDB に波形データが含まれる場合のみです。それ以外は、 空の波形で表示されます。

X-Ref Target - Figure 5-10

図 5-10 : [Specify Simulation Results] ダイアログ ボ ッ ク ス

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 74UG900 (v2012.2) 2012 年 7 月 25 日

ソース レベルでのデバッ グ

波形コ ン フ ィ ギュ レーシ ョ ンの新規作成

WDB フ ァ イルを開 く と、 波形を表示する ために新しい波形コ ンフ ィ ギュ レーシ ョ ンを作成でき ます。

1. [File] → [New Waveform Configuration] を ク リ ッ ク し ます。

新しい波形ビ ューが開いて、 新規のタ イ ト ルのない波形コ ンフ ィ ギュ レーシ ョ ンが表示されます。

2. 次に示す方法で HDL オブジェ ク ト を波形コ ンフ ィ ギュ レーシ ョ ンに追加し ます。

注記 : 波形コ ン フ ィ ギ ュ レーシ ョ ンには HDL デザイ ンのス タ テ ィ ッ ク シ ミ ュ レーシ ョ ンから のどの HDL オブジェ ク ト でも追加でき ますが、 波形が表示されるのは WDB に波形データが含まれる HDL オブジェ ク ト のみです。 それ 以外は、 空の波形で表示されます。

波形波形の新規作成の詳細は、 第 3 章 「Vivado IDE でのシ ミ ュ レーシ ョ ンの実行」 を参照し て く ださ い。

重要 : ス タ テ ィ ッ ク波形コ ンフ ィ ギ ュ レーシ ョ ン フ ァ イルには後方置換性はな く 、 OS 互換性も あ り ません。 WCFG フ ァ イルは、 作成し たの と同じバージ ョ ンで、 同じ タ イプの OS で開 く 必要があ り ます。

ソース レベルでのデバッ グHDL ソース コード をデバッ グする と、 予測されないビヘイ ビアを検出でき ます。 デバッ グでは、 ソース コード の実 行を制御する こ と で、 問題の原因を見つけます。 デバ ッ グで使用可能なス ト ラ テジは、 次の とお り です。

• [Step through the code line by line] : どの開発段階でも、 [Step] コマン ド を使用し て HDL ソース コード を 1 行ずつデバッ グ し て、 デザイ ンが予測ど お り かど う かを検証でき ます。 コード の各行で [Step] コマン ド を再び使用し て、 解析を続行し ます。 詳細は、 「シ ミ ュ レーシ ョ ンのステ ッ プ実行」 を参照し て く だ さい。

• [Set breakpoints on the specific lines of HDL code, and run the simulation until a breakpoint is reached] : 大きいデザイ ン の場合、 HDL ソース コード の各行が実行される たびに停止する と時間がかか り すぎ るため、 HDL ソース コード の任意の位置にブレーク ポイ ン ト を設定し、 シ ミ ュ レーシ ョ ンの実行時に (テス ト ベンチの 初からか、 現在の 地点から ) 各ブレーク ポ イ ン ト で停止する よ う にし ます。 停止後にシ ミ ュ レーシ ョ ンを進めるには、 [Step]、 [Run All]、 または [Run For] コ マン ド を使用し ます。 詳細は、 76 ページの 「ブレーク ポ イ ン ト の使用」 を参照し て く だ さい。

シ ミ ュ レーシ ョ ンのステ ッ プ実行

HDL ソース コード を 1 行ずつ実行する [Step] コマン ド を使用する と、デザイ ンが予測どお り かど う か検証でき ます。

黄色の矢印は、 現在実行されている行を示し ます。

ブレーク ポ イ ン ト を作成し て、 ステ ッ プ実行中に停止する箇所を増やすこ と もでき ます。 シ ミ ュ レータでのス ト ラ テジのデバッ グについては、 76 ページの 「ブレーク ポ イ ン ト の使用」 を参照し て く ださ い。

1. シ ミ ュ レーシ ョ ンでステ ッ プ実行するには、 次の手順に従って く ださい。

° 現在の実行時間から [Run] → [Step] を ク リ ッ クするか、 [Step] ボタ ンを ク リ ッ ク し ます。

上位デザイ ン ユニ ッ ト に関する HDL が波形ビ ューに新しいビ ューと し て開き ます。

° ス ター ト 地点 (0ns) から シ ミ ュ レーシ ョ ンを再開し ます。 [Restart] コマン ド を使用する と、 テス ト ベンチの 開始地点に時間を リ セ ッ ト でき ます。 詳細は、 第 3 章 「Vivado IDE でのシ ミ ュ レーシ ョ ンの実行」 を参照し て く だ さい。

2. 波形および HDL コード を同時に表示するには、[Window] → [Tile Horizontally] または [Window] → [Tile Vertically] を ク リ ッ ク し ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 75UG900 (v2012.2) 2012 年 7 月 25 日

ソース レベルでのデバッ グ

3. デバッ グが終了する まで、 [Step] を繰 り 返し ます。

行が実行されるにつれ、 黄色の矢印がコード の下方に移動し ていき ます。 シ ミ ュ レータが別のフ ァ イルの行を実行する場合は、 そのフ ァ イルが開いて、 黄色の矢印でコード がステ ッ プ実行されます。 大抵のシ ミ ュ レータで、 [Step] コ マン ド を実行する と複数フ ァ イルが開かれる こ と がよ く あ り ます。Tcl コ ン ソールに も step コマン ド で HDL コード が どれ く らい進んだかが示されます。

ブレークポイ ン ト の使用

ブレーク ポ イ ン ト は、ユーザーの指定する ソース コード内の停止地点で、デザイ ンをデバッ グする際に使用でき ます。

ヒ ン ト : ブレーク ポ イ ン ト は、 [Step] コマン ド で 1 行ずつ停止する と時間がかか り すぎて し ま う よ う な大規模デザイ ンをデバッ グする場合に使用する と、 特に便利です。

HDL フ ァ イルの実行可能な行にブレーク ポ イ ン ト を設定し てお く こ と で、 ブレーク ポ イ ン ト に到達する までコー ド が実行され続けます。

注記 : ブレーク ポ イ ン ト は実行可能なコード にのみ設定でき ます。 実行不可能なコード の行にブレーク ポイ ン ト を設 定し て も、 ブレーク ポ イ ン ト は追加されません。

ブレーク ポ イ ン ト を設定するには、 次の手順に従います。

1. [View] → [Breakpoint] → [Toggle Breakpoint] を ク リ ッ ク し ます。 または、 [Toggle Breakpoint] ボタ ンを ク リ ッ ク し ます。

2. HDL フ ァ イルで行番号の右側のコード行を ク リ ッ ク し ます。

[Breakpoint] ボタ ン が行の横に表示されます。

注記 : または、 コード行を右ク リ ッ ク し、 [Toggle Breakpoint] を選択し ます。

終了する と、 シ ミ ュ レーシ ョ ン ブレーク ポイ ン ト ボタ ンがコード行の横に表示され、[Breakpoints] ビ ューに使用 可能なブレーク ポ イ ン ト が リ ス ト されます。

ブレーク ポ イ ン ト を使用し てデザイ ンをデバ ッ グするには、 次の手順に従って く ださい。

1. HDL ソース フ ァ イルを開き ます。

2. 76 ページの 「ブレーク ポイ ン ト の使用」 に示すよ う に、 HDL ソース フ ァ イルの実行可能な行にブレーク ポイ ン ト を設定し ます。

3. すべてのブレーク ポ イ ン ト が設定される まで手順 1 および 2 を繰 り 返し ます。

4. 次の実行オプシ ョ ンを使用し てシ ミ ュ レーシ ョ ンを実行し ます。

° 初から実行する場合は、 [Run] → [Restart] を ク リ ッ ク し ます。

° [Run] → [Run All] または [Run] → [Run for Specified Time] コマン ド を使用し ます。

ブレーク ポ イ ン ト に到達する までシ ミ ュ レーシ ョ ンが実行されて、 停止し ます。

HDL ソース フ ァ イルが表示され、 黄色の矢印でブレーク ポ イ ン ト の停止地点が示されます。

5. 手順 4 を繰 り 返し て、 結果に満足する までシ ミ ュ レーシ ョ ンをブレーク ポ イ ン ト ご と に進めていき ます。

シ ミ ュ レーシ ョ ンは、 HDL ソース フ ァ イルに設定し た各ブレーク ポイ ン ト で停止し ます。

デザイ ン デバ ッ グ中には、 [Run] → [Step] コマン ド を実行し て 1 行ご と にコード を検証する こ と で、 さ らに詳細 にデザイ ンを検証する こ と もでき ます。

HDL ソース コード から 1 つのブレーク ポイ ン ト またはすべてのブレーク ポイ ン ト を削除でき ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 76UG900 (v2012.2) 2012 年 7 月 25 日

ソース レベルでのデバッ グ

1 つのブレーク ポイ ン ト を削除するには、 [Breakpoint] ボタ ンを ク リ ッ ク し ます。

すべてのブレーク ポ イ ン ト を削除するには、 [Run] → [Breakpoint] → [Delete All Breakpoints] を ク リ ッ クするか、 [Delete All Breakpoints] ボタ ンを ク リ ッ ク し ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 77UG900 (v2012.2) 2012 年 7 月 25 日

付録 A

Vivado IDE 外でサー ドパーテ ィ シ ミ ュ レータ を使用し たシ ミ ュ レーシ ョ ンの実行

概要ザ イ リ ン ク ス では、 サー ド パーテ ィ シ ミ ュ レ ー タ がサ ポー ト さ れ ま す。 ModelSim は Vivado™ Integrated Design Environment (IDE) から もサポー ト されます。 使用方法の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の 使用』 (UG893)[参照 3] を参照し て く ださ い。

この付録では、 Vivado IDE 外でシ ミ ュ レーシ ョ ンを実行する方法を簡単に説明し ます。

サポー ト されるサード パーテ ィ シ ミ ュ レーシ ョ ン ツールおよびベンダーについては、 『ザイ リ ン ク ス デザイ ン ツー ル : リ リ ース ノ ー ト ガ イ ド』 (UG631)[参照 1] を参照し て く ださ い。

RTL/ビヘイ ビア シ ミ ュ レーシ ョ ンの実行次は、 ザイ リ ン ク ス デザイ ンをシ ミ ュ レーシ ョ ンする際の手順です。

1. compile_simlib コマン ド を使用し てシ ミ ュ レーシ ョ ン ラ イブラ リ を コ ンパイルし ます。

2. ソース フ ァ イルを集めて、 テス ト ベンチを作成し ます。デザイ ンに IP が含まれる場合は、『Vivado Design Suite ユーザー ガイ ド : IP を使用し たデザイ ン』 (UG896)[参照 9] を参照し て く だ さい。

3. Verilog を使用する場合は、 glbl.v を コ ンパイルし ます。 詳細は、 第 2 章の 「グ ローバル リ セ ッ ト および ト ラ イ ステー ト 」 を参照し て く だ さい。

4. デザイ ンに SeureIP が含まれる場合は、 次を実行し ます。

a. ModelSim の場合 : プ リ コ ンパイル ラ イブラ リ を使用するには、 VSIM で -L オプシ ョ ンを使用し て ラ イブラ リ を指定し ます。 次に例を示し ます。

vsim -t ps -L secureip -L unisims_ver work.<testbench> work.glbl

b. IES の場合 : 次のいずれかを使用し ます。

° IES の 1 ステ ッ プ プロセス

こ の場合、 ザイ リ ン ク ス ラ イブ ラ リ を コ ンパイルするのに、 compxlib を実行する必要はあ り ません。 次 の例に示すよ う に、 1 つのオプシ ョ ンのみを追加する必要があ り ます。

-f $XILINX_PLANAHEAD/data/secureip/ncsim/ies_secureip_cell.list.f

IES の 1 ステ ッ プ プロセスの例

irun design>.v testbench>.v $XILINX_PLANAHEAD/data/verilog/src/glbl.v \

-f $XILINX_PLANAHEAD/data/secureip/ncsim/ies_secureip_cell.list.f \ \b>

-y $XILINX_PLANAHEAD/data/verilog/src/unisims +libext+.v \

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 78UG900 (v2012.2) 2012 年 7 月 25 日

ネ ッ ト リ ス ト シ ミ ュ レーシ ョ ンの実行

-y $XILINX_PLANAHEAD/data/verilog/src/simprims +libext+.v \

+access+r+w

° IES の 3 ステ ッ プ プロセス

SecureIP ラ イブラ リ を コ ンパイルし、 CDS.lib および HDL.var に加えます。

c. VCS の後に次のコマン ド をシ ミ ュ レーシ ョ ン コマン ド ラ イ ンに追加し、 SecureIP フ ァ イルがシ ミ ュ レータ で使用される よ う にし ます。

-f $XILINX_PLANAHEAD/data/secureip/vcs/vcs_secureip_cell.list.f

VCS の例

vcs -f $XILINX_PLANAHEAD/data/secureip/vcs/vcs_secureip_cell.list.f \

-y $XILINX_PLANAHEAD/data/verilog/src/unisims\

-y $XILINX_PLANAHEAD/data/verilog/src/xilinxcorelib\

+incdir+$XILINX_PLANAHEAD/data/verilog/src +libext+.v\

$XILINX_PLANAHEAD/data/verilog/src/glbl.v \

-Mupdate -R <testfixture>.v <design>.v

5. デザイ ンをコンパイルしてシ ミ ュ レーシ ョ ンし ます。指定したシ ミ ュ レータのユーザー ガイ ド を参照して く ださい。

注記 : 正し く シ ミ ュ レーシ ョ ン されるには、UNISIM、XilinxCorelib、SecureIP、UniMacro、および UniFast ラ イブラ リ が参照されている必要があ り ます。 詳細は、 第 2 章の 「シ ミ ュ レーシ ョ ン ラ イブラ リ 」 を参照し て く だ さい。

ネ ッ ト リ ス ト シ ミ ュ レーシ ョ ンの実行

ネ ッ ト リ ス ト シ ミ ュ レーシ ョ ン プロセスの手順は 「RTL/ビヘイ ビア シ ミ ュ レーシ ョ ンの実行」 と同じにな り ます。

1. シ ミ ュ レーシ ョ ン ラ イブラ リ を コ ンパイルし ます。

2. シ ミ ュ レーシ ョ ン用のフ ァ イルを集めます (例 : 47 ページの図 4-2)。

a. RTL シ ミ ュ レーシ ョ ンに使用されたシ ミ ュ レーシ ョ ン テス ト ベンチは、 ほ と んどのデザイ ンで再利用でき ます。

b. write_verilog または write_VHDL を使用し、 シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト を生成し ます。

- 論理ネ ッ ト リ ス ト の場合は、 write_verilog -mode funcsim を使用し ます。

- タ イ ミ ング ネ ッ ト リ ス ト の場合は write_sdf を使用し ます。

次は、 その具体例です。

synth_design -top top -part xc7k70tfbg676-2 -flatten_hierarchy none

open_run synth_1 -name netlist_1

write_verilog -mode funcsim test_synth.v

write_verilog -mode timesim -sdf_file test.sdf test_synth_timing.v

write_sdf test.sdf

これで、 test.sdf を使用し、 論理シ ミ ュ レーシ ョ ンには test_synth.v、 タ イ ミ ング シ ミ ュ レーシ ョ ンには test_synth_timing.v を使用でき る よ う にな り ま し た。

3. Verilog を使用する場合は、 glbl.v を コ ンパイルし ます。 詳細は、 第 2 章の 「グ ローバル リ セ ッ ト および ト ラ イ ステー ト 」 を参照し て く だ さい。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 79UG900 (v2012.2) 2012 年 7 月 25 日

タ イ ミ ング シ ミ ュ レーシ ョ ンの実行

4. SecureIP ラ イブラ リ を使用する場合は 78 ページの手順 4 を参照し て く ださ い。

5. デザイ ンを コ ンパイルし てシ ミ ュ レーシ ョ ン し ます。使用する シ ミ ュ レータのユーザー ガイ ド を参照し て く ださ い。

注記 : 正し く シ ミ ュ レーシ ョ ン されるには、 UNISIM、 XilinxCorelib、 SecureIP、 および UniFast ラ イブ ラ リ が参照されている必要があ り ます。詳細は、第 2 章の 「シ ミ ュ レーシ ョ ン ラ イブラ リ 」 を参照し て く ださ い。

タ イ ミ ング シ ミ ュ レーシ ョ ンの実行タ イ ミ ング シ ミ ュ レーシ ョ ンでは SIMPRIM ラ イブラ リ が使用されます。 タ イ ミ ング シ ミ ュ レーシ ョ ン プロセス中 は、 正しいラ イブラ リ を参照する必要があ り ます。

重要 : Unimacro、 Xilinxcorelib、 Unifast、 または UNISIM ラ イ ブ ラ リ は、 タ イ ミ ング シ ミ ュ レーシ ョ ンには必要ああ り ません。

次は、 サポー ト される シ ミ ュ レータでタ イ ミ ング シ ミ ュ レーシ ョ ンを実行する コマン ド ラ イ ン オプシ ョ ンです。

• MentorGraphics QuestaSim/ModelSim および Synopsys VCS

+transport_int_delays +pulse_int_e/0 +pulse_int_r/0

• Cadence IES/IUS

-pulse_r 0 -pulse_int_r

重要 : Vivado シ ミ ュ レーシ ョ ン モデルでは、 イ ン ターコ ネ ク ト 遅延が使用されます。 タ イ ミ ング シ ミ ュ レーシ ョ ン には、 追加でオプシ ョ ンが必要と な り ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 80UG900 (v2012.2) 2012 年 7 月 25 日

付録 B

Verilog および VHDL の例外

概要この付録では、 Verilog および VHDL サポー ト の例外について リ ス ト し ます。

VHDL 言語サポー ト の例外Vivado™ Integrated Design Environment (IDE) では、 次がサポー ト されます。

• VHDL IEEE-STD-1076-1993

• Verilog IEEE-STD-1364-2001

例外については、 次の表の [例外] の列を参照し て く ださ い。

.

Table B -1: VHDL 言語サポー ト の例外

サポー ト される VHDL コ ンス ト ラク ト

例外

abstract_literal 底付き定数と し て表示される浮動小数点はサポー ト されません。

aggregate aggregate 内での choice 指示の混合はサポー ト されません。

alias_declaration オブジェ ク ト 以外へのエイ リ アスは通常、 特に次の場合サポー ト されません。

• エイ リ アスのエイ リ アス

• subtype_indication なしのエイ リ アス宣言 • エイ リ アス宣言のシグナチャ

• alias_designator と し ての演算子シンボル • 演算子シンボルのエイ リ アス • エイ リ アス宣言と し ての文字 リ テ ラル

alias_designator alias_designator と し ての operator_symbol alias_designator と し ての character_literal

association_element 結合エレ メ ン ト の実際のス ラ イ スについては、グ ローバル、ローカルな固定範囲を使用でき ます。

attribute_name 接頭語の後のシグナチャはサポー ト されません。

binding_indication entity_aspect を使用し ない binding_indication はサポー ト さ れません。

bit_string_literal 空の bit_string_literal ( "" ) はサポー ト されません。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 81UG900 (v2012.2) 2012 年 7 月 25 日

VHDL 言語サポー ト の例外

block_statement guard_expression はサポー ト されません。 た と えば、 保護付 きブロ ッ ク、 保護付き信号、 保護付き ターゲ ッ ト および保護付き代入はサポー ト されません。

choice case 文での choice と し ての aggregate の使用はサポー ト され ません。

concurrent_assertion_statement postponed はサポー ト されていません。

concurrent_signal_assignment_statement

postponed はサポー ト されていません。

concurrent_statement wait 文を含む並列手続き呼び出しはサポー ト されません。

conditional_signal_assignment オプシ ョ ンの一部であ る キーワー ド guarded は、 保護付き 信号代入がサポー ト されないため、 サポー ト されません。

configuration_declaration コ ン フ ィ ギ ュ レーシ ョ ンで使用される generate イ ンデッ ク スのローカルではない固定範囲はサポー ト されません。

entity_class エンテ ィ テ ィ ク ラ ス と し ての リ テ ラル、 ユニ ッ ト 、 フ ァ イ ル、 グループはサポー ト されません。

entity_class_entry グループ テンプレー ト と 共に使用する目的ではオプシ ョ ンの < > はサポー ト されません。

file_logical_name file_logical_name では、ワ イル ド カード を使用し てス ト リ ン グ値を評価でき ますが、 リ テ ラル文字列および識別子のみがフ ァ イル名と し て使用でき ます。

function_call function_call slicing の指定し たパラ メ ータ結合では、フ ォー マルのイ ンデッ ク ス または選択がサポー ト されません。

instantiated_unit ダ イ レ ク ト コ ン フ ィ ギ ュ レ ーシ ョ ン イ ン ス タ ン シエー シ ョ ンはサポー ト されません。

mode リ ン ケージおよびバ ッ フ ァ ポー ト は完全にはサポー ト さ れません。

options guarded はサポー ト されません。

primary primary が使用された場所で、ア ロケーターが拡張されます。

procedure_call procedure_call slicing の指定したパラ メータ結合では、フ ォー マルのイ ンデッ ク ス または選択がサポー ト されません。

process_statement postponed プロセスはサポー ト されません。

selected_signal_assignment オプシ ョ ンの一部であ る キーワー ド guarded は、 保護付き 信号代入がサポー ト されないため、 サポー ト されません。

signal_declaration signal_kind はサポー ト されません。 signal_kind はサポー ト されない保護付き信号を宣言するために使用されます。

subtype_indicationd 分解された複合体 (配列およびレ コード ) のサブタ イプはサ ポー ト されません。

waveform unaffected はサポー ト されていません。

waveform_element 空の waveform エレ メ ン ト は、保護付き信号にのみ関連する ため、 サポー ト されません。

Table B -1: VHDL 言語サポー ト の例外 (続き)

サポー ト される VHDL コ ンス ト ラク ト

例外

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 82UG900 (v2012.2) 2012 年 7 月 25 日

Verilog 言語サポー ト の例外

Verilog 言語サポー ト の例外 次の表では、 Verilog の言語サポー ト の例外について リ ス ト し ます。

Table B -2: Verilog 言語サポー ト の例外

Verilog コ ンス ト ラ ク ト 例外

コ ンパイ ラー指示子のコ ンス ト ラ ク ト

`celldefine サポー ト な し

`endcelldefine サポー ト な し

`undefs パラ メ ーター指定可能な `define マ ク ロ をサポー ト

`unconnected_drive サポー ト な し

`nounconnected_drive サポー ト な し

属性

attribute_instance サポー ト な し

attr_spec サポー ト な し

attr_name サポー ト な し

プ リ ミ テ ィ ブ ゲー ト およびス イ ッチ タ イプ

cmos_switchtype サポー ト な し

mos_switchtype サポー ト な し

pass_en_switchtype サポー ト な し

生成されたイ ン ス タ ンシエーシ ョ ン

generated_instantiation module_or_generate_item 選択肢はサポー ト されません。 1364-2001 Verilog 規格からの出力 generate_item_or_null ::= generate_conditonal_statement | generate_case_statement | generate_loop_statement | generate_block | module_or_generate_item

シ ミ ュ レータでサポー ト される出力 generate_item_or_null ::= generate_conditional_statement| generate_case_statement | generate_loop_statement | generate_blockgenerate_condition

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 83UG900 (v2012.2) 2012 年 7 月 25 日

Verilog 言語サポー ト の例外

genvar_assignment 部分的にサポー ト 。 すべての generate ブロ ッ ク に名前を付け る必要があ り ま す。 1364-2001 Verilog 規格からの出力 generate_block ::= begin [ : generate_block_identifier ] { generate_item } end

シ ミ ュ レータでサポー ト される出力 generate_block ::= begin: generate_block_identifier { generate_item } end

ソース テキス ト コ ンス ト ラ ク ト

ラ イブラ リ ソース テキス ト

library_text サポー ト な し

library_descriptions サポー ト な し

library_declaration サポー ト な し

include_statement ラ イ ブ ラ リ マ ッ プ フ ァ イ ル内の文を含め る こ と を示し ます (IEEE 1364-2001、セ ク シ ョ ン 13.2).。これは、 `include コ ンパイ ラー指示子は参照し ません。

コ ンフ ィ ギュ レーシ ョ ン ソース テキス ト

config_declaration サポー ト な し

design_statement サポー ト な し

config_rule_statement サポー ト な し

default_clause サポー ト な し

システム タ イ ミ ング チェ ッ ク コマン ド

$skew_timing_check サポー ト な し

$timeskew_timing_check サポー ト な し

$fullskew_timing_check サポー ト な し

$nochange_timing_check サポー ト な し

システム タ イ ミ ング チェ ッ ク コマン ド の引数

checktime_condition サポー ト な し

PLA モデ リ ング タ ス ク

$async$nand$array サポー ト な し

$async$nor$array サポー ト な し

$async$or$array サポー ト な し

$sync$and$array サポー ト な し

Table B -2: Verilog 言語サポー ト の例外 (続き)

Verilog コ ンス ト ラ ク ト 例外

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 84UG900 (v2012.2) 2012 年 7 月 25 日

Verilog 言語サポー ト の例外

$sync$nand$array サポー ト な し

$sync$nor$array サポー ト な し

$sync$or$array サポー ト な し

$async$and$plane サポー ト な し

$async$nand$plane サポー ト な し

$async$nor$plane サポー ト な し

$async$or$plane サポー ト な し

$sync$and$plane サポー ト な し

$sync$nand$plane サポー ト な し

$sync$nor$plane サポー ト な し

$sync$or$plane サポー ト な し

Value Change Dump (VCD) フ ァ イル

$dumpportson$dumpports$dumpportsoff, $dumpportsflush, $dumpportslimit$vcdplus

サポー ト な し

Table B -2: Verilog 言語サポー ト の例外 (続き)

Verilog コ ンス ト ラ ク ト 例外

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 85UG900 (v2012.2) 2012 年 7 月 25 日

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 86UG900 (v2012.2) 2012 年 7 月 25 日

付録 C

その他のリ ソース

ザイ リ ン クス リ ソースアンサー、 資料、 ダウ ン ロード、 フ ォーラ ムなどのサポー ト リ ソースは、 次のザイ リ ン ク ス サポー ト サイ ト を参照 し て く だ さい。 http://japan.xilinx.com/support

ザイ リ ン ク ス資料で使用される用語集は、 次を参照し て く だ さい。 http://japan.xilinx.com/company/terms.htm

ソ リ ューシ ョ ン セン ターデバイ ス、 ツール、 IP のサポー ト については、 ザイ リ ン ク ス ソ リ ューシ ョ ン セン ターを参照し て く だ さい。 ト ピ ッ クには、 デザイ ン アシス タ ン ト 、 ア ド バイザ リ 、 ト ラブルシュー ト ヒ ン ト などが含まれます。

参照資料Vivado Design Suite 2012.2 の資料

1. 『ザイ リ ン ク ス デザイ ン ツール : リ リ ース ノ ー ト ガ イ ド』 (UG631)

2. 『ザイ リ ン ク ス デザイ ン ツール : イ ン ス ト ールおよびラ イセン ス ガ イ ド』 (UG798)

3. 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893)

4. 『Vivado Design Suite Tcl コマン ド リ フ ァ レ ンス ガ イ ド』 (UG835)

5. 『Writing Efficient Testbenches』 (XAPP199)

6. 『7 シ リ ーズ ラ イブラ リ ガ イ ド』 (HDL 用) (UG768)

7. 『Vivado Design Suite ユーザー ガイ ド : Tcl ス ク リ プ ト 機能の使用』 (UG894)

8. 『Tcl および SDC チュー ト リ アル : PlanAhead デザイ ン ツール 』 (UG760)

9. 『Vivado ユーザー ガ イ ド : IP を使用し たデザイ ン』 (UG896)