112
Vivado Design Suite ユーザー ガイド ロジック シミュレーション UG900 (v2013.1) 2013 3 20

Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

Vivado Design Suite ユーザー ガイ ド

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

UG900 (v2013.1) 2013 年 3 月 20 日

Page 2: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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-2013 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.

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 2UG900 (v2013.1) 2013 年 3 月 20 日

Page 3: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

日付 バージ ョ ン 改訂内容

2013/03/20 2013.1 • Tcl コマン ド を文書全体に追加

• 12 ページの 「非プロジェ ク ト モード の使用 : コマン ドおよびバッ チ ス ク リ プ ト オプシ ョ ン」 . に情報を追加

• 15 ページの 「概要」 に Tcl コマン ド の使用に関する情報を追加亜 • シ ミ ュ レーシ ョ ン ラ イブラ リ パスおよび <Vivado_Install_Area> を Vivado 用に変更

• UNISIM ラ イブラ リ モジュール例を追加

• 20 ページの 「SECUREIP シ ミ ュ レーシ ョ ン ラ イブラ リ 」 へ内容を追加

• Aldec の Riviera-PRO/Active HDL を20 ページの表 2-4 に追加 • 20 ページの 「SECUREIP ラ イブラ リ を使用する際の考慮事項」 を Verilog 要件に関する注記も

含めて追加

• 23 ページの 「方法 1 : ラ イブラ リ またはフ ァ イル コ ンパイル順の使用 (推奨)」 の IES および VCS の例を変更

• VCD 機能の使用について29 ページの 「VCD 機能の使用」 に追加

• 33 ページの 「ASYNC_REG 制約の使用」 を変更 • 31 ページの 「VHDL の GSR および GTS」 に情報を追加

• 36 ページの 「システム レベルの記述」 の ZIP フ ァ イルのデ ィ レ ク ト リ を修正 • 38 ページの 「SIM_COLLISION_CHECK 文字列」 の WARN_ALL を WARNING_ALL に変更 • 42 ページの 「xelab コマン ド構文オプシ ョ ン」 に -O オプシ ョ ンを追加 • 65 ページの図 4-6 を置換

• [Project Settings] ダ イ ア ロ グ ボ ッ ク スのターゲ ッ ト シ ミ ュ レータ オプシ ョ ン (図 4-2) を置換

• [Add Sources] ダ イ ア ロ グ ボ ッ ク ス (図 4-4) を置換 • [Simulation] メ ニューのオプシ ョ ン (図 4-7) を置換 • relaunch オプシ ョ ンの説明を追加 • 67 ページの 「[Simulation] ツールバー」 の図を置換

• 77 ページの 「Tcl コマン ド report_driver の使用」 を追加

• 77 ページの 「Tcl コマン ド add_force の使用」 を追加 • 105 ページの 「サード パーテ ィ シ ミ ュ レータでのデバッ グ」 を追加 • ラ イブラ リ コ ンパイル順の検証に関する注記を追加 • 「混合言語シ ミ ュ レーシ ョ ンの使用」 へ内容を追加

• サード パーテ ィ シ ミ ュ レータの設定および実行方法に関する情報を付録 A 「Vivado IDE 外で サード パーテ ィ シ ミ ュ レータ を使用し たシ ミ ュ レーシ ョ ンの実行」 に追加

• サード パーテ ィ シ ミ ュ レータのデバッ グ方法に関する図を105 ページの図 A-2 に追加

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 3UG900 (v2013.1) 2013 年 3 月 20 日

Page 4: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

目次

改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

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

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

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

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

言語サポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

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

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

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

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

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

シ ミ ュ レーシ ョ ン ラ イブラ リ の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

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

VCD 機能の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

グ ローバル リ セ ッ ト および ト ラ イ ステー ト の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

ザイ リ ン ク ス ラ イブラ リ を使用し た RTL シ ミ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

同期エレ メ ン ト の X 伝搬のデ ィ スエーブル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

コ ンフ ィ ギュ レーシ ョ ン イ ン ターフ ェ イ スのシ ミ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

シ ミ ュ レーシ ョ ンでのブロ ッ ク RAM の競合チェ ッ ク のデ ィ スエーブル方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

第 3 章 : デザイ ンのコ ンパイルと シ ミ ュ レーシ ョ ン概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

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

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

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

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

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

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

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

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

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

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

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

第 4 章 : Vivado IDE でのシ ミ ュ レーシ ョ ンの実行およびソース コー ドのデバッ グ概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 4UG900 (v2013.1) 2013 年 3 月 20 日

Page 5: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

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

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

合成後のシ ミ ュ レーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

イ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

シ ミ ュ レーシ ョ ンの種類 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

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

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

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

Vivado シ ミ ュ レータのス タ ン ド ア ロ ン フ ローの例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

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

シ ミ ュ レーシ ョ ン Tcl コマン ド の値に関する規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

第 5 章 : 波形を使用し た解析概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

波形コ ンフ ィ ギュ レーシ ョ ン と波形ビ ューの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

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

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

波形のカ ス タマイ ズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

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

波形の分類 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

波形の解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

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

シ ミ ュ レーシ ョ ンのサード パーテ ィ ツール設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

modelsim.ini フ ァ イル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

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

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

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

サード パーテ ィ シ ミ ュ レータでの SAIF のダンプ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

サード パーテ ィ シ ミ ュ レータでのデバ ッ グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

付録 B : Verilog および VHDL の例外概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

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

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

付録 C : その他のリ ソースザイ リ ン ク ス リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

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

ト レーニング ビデオ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

参照資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 5UG900 (v2013.1) 2013 年 3 月 20 日

Page 6: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

第 1 章

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

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

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

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

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 6UG900 (v2013.1) 2013 年 3 月 20 日

Page 7: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン フ ロー

X-Ref Target - Figure 1-1

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 7UG900 (v2013.1) 2013 年 3 月 20 日

Page 8: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン フ ロー

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

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

• RTL コード

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

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

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

• SECUREIP ラ イブラ リ

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

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

RTL シ ミ ュ レーシ ョ ンは、 デザイ ンにイ ン ス タ ンシエー ト された UNISIM ラ イブラ リ が含まれない限 り 、 アーキテ クチャ ご と に異な る こ と は あ り ま せん。 ザ イ リ ン ク ス では、 こ の イ ン ス タ ン シ エーシ ョ ン を サ ポー ト す る た め、 UNISIM お よ び XILINXCORELIB ラ イブラ リ を提供し ています。

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

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

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

• よ り 読みやすいコード

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

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

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

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

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

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

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

合成後のシ ミ ュ レーシ ョ ンについては、 次を参照し て く ださ い。

• 72 ページの 「合成後の論理シ ミ ュ レーシ ョ ンの実行」 .

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

• 50 ページの 「タ イ ミ ング シ ミ ュ レーシ ョ ンのア ノ テーシ ョ ン コマン ド」 .

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 8UG900 (v2013.1) 2013 年 3 月 20 日

Page 9: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

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

重要 : タ イ ミ ング シ ミ ュ レーシ ョ ン全体を実行する と 、 終了し たデザ イ ンはエ ラーのない状態にな り ます ( 次の よ う なエ

ラーが発見さ れない場合を除 く )。

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

° 不一致になる合成プロパテ ィ または制約 (full_case および parallel_case など)

° ザイ リ ン ク ス デザイ ン制約 (XDC) フ ァ イルへの UNISIM プロパテ ィ の適用

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

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

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

• 非同期パスの操作

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

詳細は、 次を参照し て く ださ い。

• 73 ページの 「イ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ンの実行」

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

• 50 ページの 「タ イ ミ ング シ ミ ュ レーシ ョ ンのア ノ テーシ ョ ン コマン ド」

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

• Vivado シ ミ ュ レータ (Vivado IDE に統合)

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

• Cadence Incisive Enterprise Simulator (IES)

• Synopsys VCS および VCS MX

• Aldec Active-HDL および Rivera-PRO*

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

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

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

• SDF ア ノ テーシ ョ ン

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 9UG900 (v2013.1) 2013 年 3 月 20 日

Page 10: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

言語サポー ト

• VCD ダンプ

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

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

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

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

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

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

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

• リ アルタ イ ムの波形ア ッ プデー ト

現在サポー ト される シ ミ ュ レータのバージ ョ ンについては、 『Vivado Design Suite ユーザー ガ イ ド : リ リ ース ノ ー ト 、 イ ン ス ト ールおよびラ イセン ス』 (UG973) [参照 1] を参照し て く ださ い。

注記 : サー ド パーテ ィ シ ミ ュ レー タ は Vivado IDE の外部で実行する 必要があ り ます (Vivado IDE か ら 選択し て起動可能な QuestaSim/ModelSim は例外)。 詳細は、 付録 A 「Vivado IDE 外でサード パーテ ィ シ ミ ュ レータ を使用し たシ ミ ュ レーシ ョ ンの 実行」 を参照し て く ださ い。

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

• VHDL IEEE-STD-1076-1993

• Verilog IEEE-STD-1364-2001

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

• VITAL-2000

OS サポー ト および リ リースの変更点新の リ リ ースの変更点、 OS サポー ト 、 ラ イセンス要件については、 『Vivado Design Suite ユーザー ガ イ ド : リ リ ース ノー ト 、

イ ン ス ト ールおよびラ イセン ス』 (UG973) [参照 1] を参照し て く ださ い。

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

• SIMPRIMS_VER : タ イ ミ ングを含む Verilog UNISIM ラ イブラ リ

• XILINXCORELIB : VHDL IP と共に使用

• XILINXCORELIB_VER : Verilog IP と共に使用

• UNISIM : VHDL UNISIM ラ イブラ リ

• UNISIMS_VER : Verilog UNISIM ラ イブラ リ

• UNIMACRO : VHDL UNIMACRO ラ イブラ リ

• UNIMACRO_VER : Verilog UNIMACRO ラ イブラ リ

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 10UG900 (v2013.1) 2013 年 3 月 20 日

Page 11: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン モー ド

• SECUREIP : Verilog ハード IP

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

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

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

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

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

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

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

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

プロジ ェ ク ト モー ド : グラ フ ィ カル ユーザー イ ン ターフ ェ イス (GUI) の使用

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

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

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

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

• デザイ ン フ ァ イルを追加し ます。

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

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

UNISIM UNIFAST UNIMACRO XILINXCORELIB モデル

SECUREIP SIMPRIMS(Verilog のみ) SDF

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

○ ○ ○ ○ ○ 該当なし X

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

(論理)○ ○ 該当な し 該当な し ○ X X

3.合成後のシ ミ ュ レーシ ョ ン (タ イ ミ ング)

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

4.イ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ン (論理)

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

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

(タ イ ミ ング)該当なし 該当な し 該当な し 該当な し ○ ○ ○

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 11UG900 (v2013.1) 2013 年 3 月 20 日

Page 12: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン モー ド

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

詳細は、「シ ミ ュ レーシ ョ ン設定」 および第 4 章の 「Vivado IDE でのシ ミ ュ レーシ ョ ンの実行およびソース コード のデバッ グ」 を参照し て く ださ い。

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

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

詳細は、 第 4 章 「Vivado IDE でのシ ミ ュ レーシ ョ ンの実行およびソース コード のデバッ グ」 を参照し て く ださ い。

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

詳細は、 第 5 章 「波形を使用し た解析」 を参照し て く ださ い。

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

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

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

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

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

X-Ref Target - Figure 1-2

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 12UG900 (v2013.1) 2013 年 3 月 20 日

Page 13: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン モー ド

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

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

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

詳細は、 第 3 章 「デザイ ンのコ ンパイル と シ ミ ュ レーシ ョ ン」 および付録 A 「Vivado IDE 外でサード パーテ ィ シ ミ ュ レー タ を使用し たシ ミ ュ レーシ ョ ンの実行」 を参照し て く ださ い。

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

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

非プロジ ェ ク ト モー ドの Tcl オブジ ェ ク ト

バッチ モード またはコマン ド ラ イ ン モード のいずれかで Tcl コマン ド言語を使用する場合、 さ まざまなオブジェ ク ト (シ ミ ュ レーシ ョ ン オブジェ ク ト 、 HDL オブジェ ク ト 、 HDL ス コープ、 波形コ ンフ ィ ギュ レーシ ョ ンおよび波形デザイ ン オブジェ ク ト などのさ まざまな波形オブジェ ク ト ) のプロパテ ィ を定義でき ます。

X-Ref Target - Figure 1-3

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 13UG900 (v2013.1) 2013 年 3 月 20 日

Page 14: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン モー ド

使用可能な Tcl コ マン ド の多 く は、 本書で説明されます。 これら のコ マン ド は、 Tcl コ ン ソールから実行でき、 Vivado IDE で

選択し た操作に使用される コマン ド です。

Tcl コ マ ン ド の使用方法につい て は、 Tcl コ ン ソ ールに <command_name> -help と 入力す る か、 Vivado Design Suite Tcl Command Reference Guide (UG835) [参照 6] を参照し て く ださ い。

特定のシ ミ ュ レーシ ョ ンのプロパテ ィ は、 report_property [current_sim] コマン ド で表示でき ます。

た と えば、 Tcl コ ン ソールに次のよ う に表示されます。

プロパテ ィ の制限は、 次の例のよ う に指定する と変更でき ます。

% set_property ARRAY_DISPLAY_LIMIT 1024 [current_sim]

ARRAY_DISPLAY_LIMIT int false true 128

LINE_TRACING bool false true 0

PRECISION string true true 1 ps

PROCESS_TRACING bool false true 0

RADIX string false true bin

TIME string true true 1 us

TIME_UNIT string false true ns

TRACE_LIMIT int false true 65536

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 14UG900 (v2013.1) 2013 年 3 月 20 日

Page 15: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

第 2 章

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

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

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

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

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

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

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

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

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

本章では、 Tcl コ ン ソールから実行可能な Tcl コマン ド と、 Vivado IDE で選択し た操作に使用される コマン ド につい

て説明し ます。

Tcl コマン ド の使用方法については、Tcl コ ン ソールに <command_name> -help と入力するか、『Vivado Design Suite Tcl コマン ド リ フ ァ レ ンス ガ イ ド』 (UG835) [参照 6] を参照し て く だ さい。

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

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

• デザイ ンを初期化

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

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 15UG900 (v2013.1) 2013 年 3 月 20 日

Page 16: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

• サブルーチン呼び出し

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

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

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

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

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

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

ヒ ン ト : GUI でターゲ ッ ト シ ミ ュ レータに Vivado シ ミ ュ レータ を選択し (第 4 章 「シ ミ ュ レーシ ョ ン設定」 参照)、[Run Simulation] を ク リ ッ ク し ます。

これによ り 、 デザイ ンをシ ミ ュ レーシ ョ ンする ために必要なすべてのソースが含まれる project/project.sim/sim_1 デ ィ レ ク ト リ に <testbench>.prj フ ァ イルが作成されます。 このフ ァ イルは、フ ァ イルを集める際の開始点と な り ます。 次は、 効率的なテス ト ベンチを作成する際の推奨事項です。

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

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

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

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

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

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

テス ト ベンチの詳細は、 『Writing Efficient Testbenches』 (XAPP199)[参照 4] を参照し て く ださい、。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 16UG900 (v2013.1) 2013 年 3 月 20 日

Page 17: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン ラ イブ ラ リの使用

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

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

次に注意し て く だ さい。

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

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

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

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

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

ラ イブ ラ リ名 説明 VHDL ラ イブ ラ リ名 Verilog ラ イブ ラ リ名

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

UNISIM UNISIMS_VER

UNIMACRO ザイ リ ン ク ス マ ク ロの論理シ ミ ュ レーシ ョ ン UNIMACRO UNIMACRO_VER

UNIFAST 高速シ ミ ュ レーシ ョ ン ラ イブラ リ UNNIFAST UNIFAST_VER

XILINXCORELIB ザイ リ ン ク ス コ アの論理シ ミ ュ レーシ ョ ン XILINXCORELIB XILINXCORELIB_VER

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

該当な し SIMPRIMS_VER

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

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

SECUREIP SECUREIP

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

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

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

UNISIM UNIFASTUNIMACROXILINXCORELIBSECUREIP

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

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

UNISIM (論理ネ ッ ト リ ス ト )SIMPRIMS_VER (タ イ ミ ング ネ ッ ト リ ス ト )SECUREIP

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 17UG900 (v2013.1) 2013 年 3 月 20 日

Page 18: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン ラ イブ ラ リの使用

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

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

UNISIM ラ イブ ラ リ

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

VHDL UNISIM ラ イブ ラ リ

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

• コ ンポーネン ト 宣言 (unisim_VCOMP.vhd)

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

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

これらのプ リ ミ テ ィ ブを使用するには、 各フ ァ イルの 初に次の 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 <Vivado_Install_Area>/data/verilog/xsim/unisims

VHDL <Vivado_Install_Area>/data/vhdl/xsim/unisims

UNIFAST Verilog <Vivado_Install_Area>/data/verilog/src/unifast

VHDL <Xilinx_Install_Diry>/data/vhdl/src/unifast

UNIMACRO Verilog <Vivado_Install_Area>/data/verilog/src/unimacro

VHDL <Vivado_Install_Area>/data/vhdl/src/unimacro

SECUREIP Verilog <Vivado_Install_Area>/data/secureip/<simulator>/ <simulator>_secureip_cell.list.f

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 18UG900 (v2013.1) 2013 年 3 月 20 日

Page 19: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン ラ イブ ラ リの使用

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

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

-L unisims_ver

UNIMACRO ラ イ ブ ラ リ

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

VHDL UNIMACRO ラ イブ ラ リ

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

library UNIMACRO;

use UNIMACRO.Vcomponents.all;

Verilog UNIMACRO ラ イブ ラ リ

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

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

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

XILINXCORELIB ラ イブ ラ リ

XILINXCORELIB ラ イブラ リ は、 ザイ リ ン ク ス IP カ タ ロ グで作成された特定のコ アを含むデザイ ンの RTL ビヘイ ビ ア シ ミ ュ レーシ ョ ンで使用し ます。 どのラ イブラ リ が適切なのかは、 該当する IP コ アのデータ シー ト を参照し て く だ さい。

SIMPRIMS ラ イ ブ ラ リ

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

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

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

-L SIMPRIMS_VER

説明 :

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 19UG900 (v2013.1) 2013 年 3 月 20 日

Page 20: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン ラ イブ ラ リの使用

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

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

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

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

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

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

-L SECUREIP

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

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

重要 : 7 シ リ ーズ デバイ ス デザイ ンには、 Verilog LRM-IEEE 1364-2005 の暗号化に互換性のあ る シ ミ ュ レータが必要 です。 このコ アでは、 次のシ ミ ュ レータがサポー ト されます。 - Mentor Graphics ModelSim - Cadence IES (Verilog のみ) - Synopsys VCS および VCS MX (Verilog のみ) - Aldec Riviera-PRO および Active-HDL

VHDL SECUREIP ラ イブ ラ リ

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

Library UNISIM;

use UNISIM.vcomponents.all;

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

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

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

ModelSim PE

ModelSim DE

QuestaSim

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

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

Active-HDL Aldec デザ イ ン 入力が VHDL のみの場合、 言語に中立的な SECUREIP ラ イ セン スが必要にな り ます。 詳細はベンダーに お尋ね く ださ い。

Riviera-PRO

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 20UG900 (v2013.1) 2013 年 3 月 20 日

Page 21: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン ラ イブ ラ リの使用

Verilog SECUREIP ラ イブ ラ リ

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

vcs -lca -f <Vivado_Install_Area>/data/secureip/secureip_cell.list.f \-y <Vivado_Install_Area>/data/verilog/xsim/unisims \-y <Vivado_Install_Area>/data/verilog/src/XILINXCORELIB \-y <Vivado_Install_Area>/data/verilog/src/retarget \+incdir+<Vivado_Install_Area>/data/verilog/src +libext+.v \<Vivado_Install_Area>/data/verilog/src/glbl.v \-Mupdate -R <testfixture>.v <design>.v

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

-L SECUREIP

UNIFAST ラ イブ ラ リ

UNIFAST ラ イ ブ ラ リ は RTL ビヘイ ビ ア シ ミ ュ レーシ ョ ンで使用で き る オプシ ョ ンの ラ イ ブ ラ リ で、 シ ミ ュ レー シ ョ ン ラ ン タ イ ム を速 く し ます。

重要 : こ のモデルは、 タ イ ミ ング ド リ ブン シ ミ ュ レーシ ョ ンには使用でき ません。

注記 : デザイ ンの 初の検証には UNIFAST ラ イブラ リ を使用し、 完全な検証は UNISIM ラ イブラ リ を使用する こ と をお勧めし ます。

シ ミ ュ レーシ ョ ン ラ ン タ イ ムの高速化は、 シ ミ ュ レーシ ョ ン モード のプ リ ミ テ ィ ブ機能のサブセ ッ ト をサポー ト す る こ と で達成されます。

注記 : このシ ミ ュ レーシ ョ ン モデルでは、 サポー ト されない属性のみがチェ ッ ク されます。

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

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

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

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

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

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 21UG900 (v2013.1) 2013 年 3 月 20 日

Page 22: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン ラ イブ ラ リの使用

RAMB18E1/RAMB36E1

シ ミ ュ レーシ ョ ン ラ ン タ イ ムを削減する ため、 高速ブロ ッ ク RAM シ ミ ュ レーシ ョ ン モデルではフルモデル と比べ て、 次の機能がデ ィ スエーブルになっています。

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

• 競合チェ ッ ク

• カス ケード モード

FIFO18E1/FIFO36E1

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

• ECC

• RESET、 almostempty、 almostfull オフセ ッ ト のデザイ ン ルール チェ ッ ク (DRC)

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

• 初のワード 中断

• almostempty および almostfull フ ラ グ

DSP48E1

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

• パターン検出

• OverFlow/UnderFlow

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

GHTE2_CHANNEL/GHTE2_COMMON

シ ミ ュ レーシ ョ ン ラ ン タ イ ムを削減する ため、 高速 GHTE2 シ ミ ュ レーシ ョ ン モデルでは次の機能が異なっていま す。

• GTH リ ン クは、 近 く のエン ド リ ン ク パー ト ナーと遠 く のエン ド リ ン ク パー ト ナー間に違いのない Parts Per Million (PPM) レー ト と同期する必要があ り ます。

• GTH を介し たレ イ テンシは正確には記述されません。

GTXE2_CHANNEL/GTXE2_COMMON を追加

シ ミ ュ レーシ ョ ン ラ ン タ イ ムを削減する ため、 高速 GTXE2 シ ミ ュ レーシ ョ ン モデルでは次の機能が異なっていま す。

• GTX リ ン クは、 近 く のエン ド リ ン ク パー ト ナーと遠 く のエン ド リ ン ク パー ト ナー間に違いのない Parts Per Million (PPM) レー ト と同期する必要があ り ます。

• GTX を介し たレ イ テンシは正確には記述されません。

Verilog UNIFAST ラ イブ ラ リの使用

UNIFAST モデルを使用し てシ ミ ュ レーシ ョ ンするには、 次の 2 つの方法があ り ます。

• 方法 1 は、 すべての UNIFAST モデルを使用し てシ ミ ュ レーシ ョ ンする場合に推奨される方法です。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 22UG900 (v2013.1) 2013 年 3 月 20 日

Page 23: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン ラ イブ ラ リの使用

• 方法 2 : UNIFAST モデル と一緒に使用するモジュールを指定 (ア ド バン ス ユーザー用)

これらのシ ミ ュ レーシ ョ ン方法については、 次のセ ク シ ョ ンで説明し ます。

方法 1 : ラ イ ブ ラ リ またはフ ァ イル コ ンパイル順の使用 (推奨)

Vivado IDE または Tcl のいずれかを使用し て、Vivado シ ミ ュ レータ または ModelSim 用に Vivado プロ ジェ ク ト 環境で UNIFAST サポー ト をオンにし、 シ ミ ュ レーシ ョ ンの実行前に次の Tcl プロパテ ィ を設定し ます。

set_property XELAB.UNIFAST true [current_fileset -simset]

• Vivado シ ミ ュ レータ

プ リ コ ンパイル ラ イブラ リ を使用し た例 :

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

イ ン ラ イ ン コ ンパイルを使用し た例 :

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

• ModelSim

プ リ コ ンパイル ラ イブラ リ を使用し た例 :

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

• IES

プ リ コ ンパイル ラ イブラ リ を使用し た例 :

irun design>.v testbench>.v <Vivado_Install_Area>/data/verilog/src/glbl.v \-f <Vivado_Install_Area>/data/secureip/src/ies_secureip_cell.list.f \-y <Vivado_Install_Area>/data/verilog/xsim/unisims +libext+.v \-y <Vivado_Install_Area>/data/verilog/src/unimacro +libext+.v \-y <Vivado_Install_Area>/data/verilog/src/retarget +libext+.v \

イ ン ラ イ ン コ ンパイルを使用し た例 :

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

• VCS

プ リ コ ンパイル ラ イブラ リ を使用し た例 :

ncelab -lca -libname unifast_ver -libname unisims_ver

イ ン ラ イ ン コ ンパイルを使用し た例 :

ncverilog -lca -y ../verilog/src/unifast +libext+.v

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

• VCS

UNIFAST ラ イブラ リ を使用し た例 :

vcs -lca -work work -y ../Verilog/src/unifast +libext+.v

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 23UG900 (v2013.1) 2013 年 3 月 20 日

Page 24: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン ラ イブ ラ リの使用

-y ../verilog/src/unisims +libext+.v

../netlist.v -top testbench -top glbl"

方法 2 : Verilog でのコ ン フ ィ ギュ レーシ ョ ン

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

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

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

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

• 特定の CELL または INSTANCE を特定のラ イブラ リ のマ ッ プ 例 : instance testbench.inst.O1 use unifast_ver.MMCME2;)

注記 : ModelSim (vsim) の場合のみ : genblk が階層名に追加されます。

例 :instance testbench.genblk1.inst.genblk1.O1 use unifast_ver.MMCME2; - VSIM)

config.v の例

config cfg_xilinx;design testbench;default liblist unisims_ver unifast_ver;//Use fast MMCM for all MMCM blocks in designcell MMCME2 use unifast_ver.MMCME2;//use fast dSO48E1for only this specific instance in the designinstance testbench.inst.O1 use unifast_ver.DSP48E1;//If using ModelSim or Questa, add in the genblk to the name(instance testbench.genblk1.inst.genblk1.O1 use unifast_ver.DSP48E1)endconfig

VHDL UNIFAST ラ イブ ラ リの使用

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

library unisim;

library unifast;

configuration cfg_xilinx of testbench

is for xilinx .. for inst:netlist ... use entity work.netlist(inst); .......for inst

.........for all:MMCME2

..........use entity unifast.MMCME2;

.........end for;

.......for O1 inst:DSP48E1;

.........use entity unifast.DSP48E1;

.......end for;

...end for;

..end for;

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 24UG900 (v2013.1) 2013 年 3 月 20 日

Page 25: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

end for;

end cfg_xilinx;

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

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

Vivado Design Suite の Tcl コ ン ソールに Tcl コマン ド の compile_simlib を入力し、 ザイ リ ン ク スの HDL ベースの シ ミ ュ レーシ ョ ン ラ イブラ リ をサード パーテ ィ のシ ミ ュ レーシ ョ ン ベンダー用にコ ンパイルし ます。

ラ イブラ リ は、通常新しいシ ミ ュ レータ バージ ョ ンがイ ン ス ト ールされる と、 または新しいバージ ョ ンの Vivado IDE にア ッ プデー ト される と、 コ ンパイル (または リ コ ンパイル) されます。

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

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

• write_verilog :Verilog ネ ッ ト リ ス ト

• write_vhdl :VHDL ネ ッ ト リ ス ト

• write_sdf :SDF 生成

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

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

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

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

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

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 25UG900 (v2013.1) 2013 年 3 月 20 日

Page 26: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

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

write_verilog –mode funcsim <verilogNetlistName>

write_vhdl –mode funcsim <vhdlNetlistName>

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

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

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

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

タ イ ミ ング シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト を生成する手順は、 次の とお り です。

1. デザイ ンのネ ッ ト リ ス ト フ ァ イルを生成

2. タ イ ミ ング遅延すべてをア ノ テー ト し た遅延フ ァ イルを生成

次のセ ク シ ョ ンでは、 必要なフ ァ イルについて説明し ます。

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

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

write_verilog –mode timesim –sdf_anno true <VerilogNetlistName>

SAIF のダンプ

SAIF (Switching Activity Interchange Format) は、 EDA ツールで生成されたス イ ッ チング ア ク テ ィ ビテ ィ を抽出し て並 び替え る こ と のでき る ASCII 形式のレポー ト です。

このス イ ッ チング ア ク テ ィ ビテ ィ は、ザイ リ ン ク スの消費電力解析および 適化ツールにア ノ テー ト し戻し て消費電 力の測定および概算に使用でき ます。

Vivado シ ミ ュ レータでは、Vivado の report_power コマン ドおよび XPE ツールでそれぞれ使用可能な SAIF ダンプ がサポー ト されます。 SAIF ダンプは、 ザイ リ ン ク ス消費電力ツール用に 適化され、 次の HDL タ イプをダンプし ま す。

• Verilog :

° 入力、 出力、 入出力ポー ト

° 内部ワ イヤ宣言

• VHDL :

° std_logic、 std_ulogic、 および bit (ス カ ラー、 ベク ター、 配列) 型の入力、 出力、 入出力ポー ト

注記 : タ イ ミ ング シ ミ ュ レーシ ョ ン用の VHDL ネ ッ ト リ ス ト は、Vivado で生成されませんので、VHDL ソースは RTL レベルのコード 専用で、 ネ ッ ト リ ス ト シ ミ ュ レーシ ョ ンには使用でき ません。

RTL レベルのシ ミ ュ レーシ ョ ンの場合、 ブロ ッ ク レベルのポー ト のみが生成され、 内部信号は生成されません。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 26UG900 (v2013.1) 2013 年 3 月 20 日

Page 27: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

SAIF ダンプの生成

log_saif コマン ド を使用する前に、 open_saif を呼び出す必要があ り ます。 log_saif ではオブジェ ク ト または 値が戻されません。 オプシ ョ ンは、 log_wave コマン ド で使用される もの と同じです。

1. RTL コード を -debug typical オプシ ョ ンでコ ンパイルし て、 SAIF ダンプを イ ネーブルにし ます。

xelab -debug typical top -s mysim

2. 次の Tcl コマン ド を使用し て SAIF ダンプを開始し ます。

° open_saif コマン ド を次のよ う に入力し て SAIF フ ァ イルを指定し ます。

open_saif <saif_file_name>

° log_saif コマン ド を次のよ う に入力し て生成する範囲および信号を追加し ます。

log_saif hdl_objects

° SAIF フ ォーマ ッ ト のシ ミ ュ レーシ ョ ン データ を イ ンポー ト し ます。

read_saif

3. run コマン ド のいずれかを使用し てシ ミ ュ レーシ ョ ンを実行し ます。

4. 次のよ う に入力し て SAIF フ ァ イルを閉じ ます。

close_saif

次は、 log_saif コマン ド の例です。

SAIF コ マン ドの例

範囲内の信号すべての SAIF を記録するには、 次を入力し ます。

/tb: log_saif /tb/*

範囲内のポー ト すべての SAIF を記録するには、 次を入力し ます。

/tb/UUT

a で始ま って b で終わ り 、 ab 間に数字が入る よ う な名前のオブジェ ク ト の SAIF を記録するには、 次を入力し ます。

log_saif [ get_objects -filter {type == port} -regexp {^a[0-9]+b$} ]

current_scope および children_scope に含まれるオブジェ ク ト の SAIF を記録するには、 次を入力し ます。

log_saif [get_objects -r *]

current_scope に含まれるオブジェ ク ト の SAIF を記録するには、 次を入力し ます。

log_saif * or log_saif [ get_objects ]

scope /tb/UUT 内のポー ト のみの SAIF を記録するには、 次を入力し ます。

log_saif [get_objects -filter { type == port } /tb/UUT/* ]

scope /tb/UUT 内の内部信号のみの SAIF を記録するには、 次を入力し ます。

log_saif [get_objects -filter { type == internal_signal } /tb/UUT/* ]

Tcl シ ミ ュ レーシ ョ ン フ ァ イルの例

sim.tcl:

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 27UG900 (v2013.1) 2013 年 3 月 20 日

Page 28: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

open_saif xsim_dump.saiflog_saif /tb/dut/*run allclose_saifquit

sim.tcl フ ァ イルを使用し たシ ミ ュ レーシ ョ ン実行

sim.tcl フ ァ イルを使用し てシ ミ ュ レーシ ョ ンを実行するには、 次を入力し ます。

xsim mysim -tcl sim.tcl

SAIF フ ァ イル ダンプの例

(SAIFILE (SAIFVERSION "2.0") (DIRECTION "backward") (DESIGN ) (DATE "Thu Nov 8 07:08:55 2012") (VENDOR "Xilinx, Inc") (PROGRAM_NAME "Vivado Simulator") (VERSION "2012.3") (DIVIDER /) (TIMESCALE 1 ps) (DURATION 1010000) (INSTANCE tb (INSTANCE dut (NET (a (T0 500000) (T1 510000) (TX 0) (TZ 0) (TB 0) (TC 48)) (b (T0 520000) (T1 490000) (TX 0) (TZ 0) (TB 0) (TC 52)) (ci (T0 450000) (T1 560000) (TX 0) (TZ 0) (TB 0) (TC 44)) (co (T0 470000) (T1 540000) (TX 0) (TZ 0) (TB 0) (TC 44)) (sum (T0 530000) (T1 480000) (TX 0) (TZ 0) (TB 0) (TC 48))Brief description about the Timing/Toggle attributes in the SAIF file:T0: the total time the design object has value 0.T1: the total time the design object has value 1.TX: the total time the design object has unknown value.TZ: the total time the design object is in a floating bus state.Floating bus is defined as the state during which all drivers on a particular bus are disabled and the bus has a floating logic value.TB: the total time the design object is in a bus contention state.Bus contention is defined as the state during which two or more drivers simultaneously drive a bus to different logic levels.TC: the number of 0 to 1 and 1 to 0 transitions.This is usually referred to as the toggle count.

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

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

write_sdf –process_corner fast test.sdf

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 28UG900 (v2013.1) 2013 年 3 月 20 日

Page 29: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

VCD 機能の使用

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

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 タ イ ミ ング シ ミ ュ レーシ ョ ンを実行する必要があ り ます。

VCD 機能の使用 シ ミ ュ レーシ ョ ン出力を取得するには、 Value Change Dump (VCD) フ ァ イルを使用し ます。 Tcl コマン ド は、 ダンプさ れる値に関連する Verilog システム タ ス クに基づき ます。

Tcl コ ン ソールでは、 こ の VCD 機能に関し て次のコマン ド を使用でき ます。

詳細は、 『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド』 (UG835) [参照 6] を参照する か、 Tcl コ ン ソ ールに <command> -help と入力し て く だ さい。

表 2-5 : シ ミ ュ レーシ ョ ン VCD の Tcl コマン ド

Tcl コマン ド 説明

open_vcd シ ミ ュ レーシ ョ ン出力を取得する ために VCD フ ァ イルを開き ます。 こ の Tcl コマン ド は、 $dumpfile Verilog システム タ ス クのビヘイ ビアーを 記述し ます。

checkpoint_vcd $dumpall Verilog システム タ ス ク のビヘイ ビアーを記述し ます。

start_vcd $dumpon Verilog システム タ ス ク のビヘイ ビアーを記述し ます。

log_vcd 指定し た HDL オブジェ ク ト の VCD フ ァ イルを記録し ます。 こ の Tcl コマ ン ド は、$dumpvars Verilog システム タ ス ク のビヘイ ビアーを記述し ま す。

flush_vcd $dumpflush Verilog システム タ ス ク のビヘイ ビアーを記述し ます。

limit_vcd $dumplimit Verilog システム タ ス ク のビヘイ ビアーを記述し ます。

stop_vcd $dumpoff Verilog システム タ ス ク のビヘイ ビアーを記述し ます。

close_vcd VCD の生成を閉じ ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 29UG900 (v2013.1) 2013 年 3 月 20 日

Page 30: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

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

グローバル セ ッ ト およびリ セ ッ ト ネ ッ ト

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

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

合成後およびイ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ンでは、GSR 信号には自動的に 初の 100ns 間パルスが送 られ、 コ ンフ ィ ギュ レーシ ョ ン後に発生し た リ セ ッ ト がシ ミ ュ レーシ ョ ン されます。

GSR パルスはオプシ ョ ンで早期 (合成前) 論理シ ミ ュ レーシ ョ ンで提供されますが、 すべてのレジス タ を リ セ ッ ト す る ローカル リ セ ッ ト がデザイ ンに含まれる場合は必要あ り ません。

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

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 30UG900 (v2013.1) 2013 年 3 月 20 日

Page 31: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

ザイ リ ン クス ラ イブラ リ を使用し た RTL シ ミ ュ レーシ ョ ン

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

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

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

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

VHDL の GSR および GTS グ ローバル セ ッ ト / リ セ ッ ト (GSR) およびグ ローバル ト ラ イ ステー ト (GTS) 信号は <Vivado_Install_Area>/data/vhdl/src/glbl.vhd モジュールで定義されています。 このコ ンポーネン ト を使用するには、 それら をテス ト ベンチにイ ンス タ ンシエー ト する必要があ り ます。

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

次のコード は、 テス ト ベンチに GLBL_VHD を イ ンス タ ンシエー ト し、 Reset on Configuration のパルス を 90ns に変更する例を示し ています。

GLBL_VHD inst:GLBL_VHD generic map (ROC_WIDTH => 90000; -- the value is in ps

ザイ リ ン ク ス ラ イブ ラ リ を使用し た RTL シ ミ ュ レーシ ョ ンザイ リ ン ク ス シ ミ ュ レーシ ョ ン ラ イブラ リ は、 VHDL-93 および Verilog-2001 言語規格をサポー ト する シ ミ ュ レータ を使用する と シ ミ ュ レーシ ョ ンでき ます。 ラ イブラ リ にはザイ リ ン ク ス ハー ド ウ ェ ア デバイ ス を正し く シ ミ ュ レー シ ョ ンするのに必要な特定の遅延およびモデル情報がビル ト イ ン されています。

X-Ref Target - Figure 2-1

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 31UG900 (v2013.1) 2013 年 3 月 20 日

Page 32: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

ザイ リ ン クス ラ イブラ リ を使用し た RTL シ ミ ュ レーシ ョ ン

データ信号は、 論理シ ミ ュ レーシ ョ ンの場合でも、 ク ロ ッ ク エ ッ ジで変更し ないよ う にし て く ださ い。 シ ミ ュ レータ は、 同じ シ ミ ュ レータ時刻で変更される信号同士の間にユニ ッ ト 遅延を追加し ます。 データがク ロ ッ ク と同時刻に変更される場合は、シ ミ ュ レータでデータ入力がク ロ ッ ク エ ッ ジ後に発生する よ う にス ケジュールでき ます。 初の ク ロ ッ ク エ ッ ジよ り 前にデータ を ク ロ ッ ク入力させる よ う にはでき ますが、 データは次の ク ロ ッ ク エ ッ ジまで通過し ません。 こ のよ う な意図し ないシ ミ ュ レーシ ョ ン結果にな ら ないよ う にする ため、 データ信号と ク ロ ッ ク信号は同時に切 り 替えないよ う にし て く だ さい。

デルタ サイ クルと レース コ ンデ ィ シ ョ ン

ザイ リ ン ク スでは、 イベン ト ベースのシ ミ ュ レータ をサポー ト し ています。 イベン ト シ ミ ュ レータでは、 指定し たシ ミ ュ レーシ ョ ン時刻に複数のイベン ト を処理でき ます。 こ れら の イベン ト が処理中は、 シ ミ ュ レータはシ ミ ュ レーシ ョ ン時間を早める こ と はでき ません。 この時間は、 通常 「デルタ サイ クル」 と呼ばれます。 指定し たシ ミ ュ レー ョ ン時間には複数のデルタ サイ クルが含まれる こ と も あ り ます。

シ ミ ュ レーシ ョ ン時間は、 処理する ト ラ ンザ ク シ ョ ンがない場合にのみ早める こ と ができ ます。 このために、 シ ミ ュレータが予測し ない結果を出力する可能性があ り ます。次の VHDL コード は、予測し ない結果になる例を示し ていま す。

予測し ない結果になる VHDL コー ド 例

clk_b <= clk;clk_prcs : process (clk)beginif (clk'event and clk='1') thenresult <= data;

end if;end process;

clk_b_prcs : process (clk_b)beginif (clk_b'event and clk_b='1') thenresult1 <= result;

end if;end process;

この例には、 2 つの同期プロセスがあ り ます。

• clk

• clk_b

シ ミ ュ レータは、シ ミ ュ レーシ ョ ン時間を進める前に clk <= clk_b 代入を実行し ます。こ の結果、2 ク ロ ッ ク エ ッ ジ内で発生するはずのイベン ト が 1 ク ロ ッ ク エ ッ ジ内で発生し、 レース コ ンデ ィ シ ョ ンにな り ます。

このよ う な状況を回避するには、 次に注意し て く だ さい。

• ク ロ ッ ク とデータは同時に変更し ないで く だ さい。 出力ご と に遅延を挿入し ます。

• 同じ ク ロ ッ ク を使用し ます。

• 次の例に示すよ う に一時的な信号を使用し てデルタ遅延を強制的に使用し ます。

clk_b <= clk;clk_prcs : process (clk)beginend if;

end process;

result_temp <= result;clk_b_prcs : process (clk_b)begin

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 32UG900 (v2013.1) 2013 年 3 月 20 日

Page 33: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

ザイ リ ン クス ラ イブラ リ を使用し た RTL シ ミ ュ レーシ ョ ン

if (clk_b'event and clk_b='1') thenresult1 <= result_temp;

end if;end process;

ほ と んどのイベン ト ベース シ ミ ュ レータは、 デルタ サイ クルを表示でき る よ う になっています。 シ ミ ュ レーシ ョ ン 問題をデバッ グする場合はこの表示を使用し て く だ さい。

推奨されるシ ミ ュ レーシ ョ ン解像度

ザイ リ ン ク スでは、 シ ミ ュ レーシ ョ ン解像度 1ps でシ ミ ュ レーシ ョ ンを実行する こ と をお勧めし ています。 DCM な どのザイ リ ン ク スのプ リ ミ テ ィ ブ コ ンポーネン ト の中には、 論理またはタ イ ミ ング シ ミ ュ レーシ ョ ンのいずれかで 正し く 動作する ためには 1ps の解像度が必要な ものがあ り ます。

ザイ リ ン ク ス シ ミ ュ レーシ ョ ン モデルではこれよ り 荒い解像度を使用し て も シ ミ ュ レータ パフ ォーマン スが良 く な る こ と はあ り ません。多 く のシ ミ ュ レーシ ョ ン時間がデルタ サイ クルで使われる ため、デルタ サイ クルがシ ミ ュ レー シ ョ ン解像度によ って影響を受ける こ と はな く 、 シ ミ ュ レーシ ョ ン パフ ォーマン スはあま り 取得でき ません。

ザイ リ ン ク スでは、 fs のよ う なよ り 精度の高い解像度で実行する こ と をお勧めし ていません。 シ ミ ュ レータの中には 数値を丸めた り 、 切 り 捨てた り する もの も あ り ます。

重要 : テス ト ツールはタ イ ミ ングをすべて一番近いピ コ秒 (ps) に対し てのみ計測するので、 小解像度と し てはピ コ 秒が使用されます。 ザイ リ ン ク スでは、 すべての HDL シ ミ ュ レーシ ョ ンで ps を使用する こ と をお勧めし ています。

ASYNC_REG 制約の使用

ASYNC_REG 制約には、 次のよ う な特徴があ り ます。

• デザイ ンの非同期レジス タ を識別し ます。

• これらのレジス タの X 伝搬をデ ィ スエーブルにし ます。

ASYNC_REG 制約は、 次を使用し てフ ロ ン ト エン ド デザイ ンのレジス タに適用でき ます。

• HDL コード の属性

または

• ザイ リ ン ク ス デザイ ン制約 (XDC) の制約

ASYNC_REG が適用されている レジス タは、 タ イ ミ ング シ ミ ュ レーシ ョ ン中に前の値を保持し、 シ ミ ュ レーシ ョ ン に X を出力し ません。

注記 : タ イ ミ ング違反エラーは、 まだ発生する可能性があ り ます。新しい値も ク ロ ッ ク入力された可能性があ るので、 注意し て く だ さい。

ASYNC_REG 制約は CLB および入出力ブロ ッ ク (IOB) レジス タおよびラ ッチにのみ適用でき ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 33UG900 (v2013.1) 2013 年 3 月 20 日

Page 34: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

同期エレ メ ン ト の X 伝搬のデ ィ スエーブル

推奨 : 非同期データの ク ロ ッ ク入力を回避でき ない場合は、 IOB または CLB レジス タにのみ ASYNC_REG 制約を適 用する こ と をお勧めし ます。 RAM、 シフ ト レジス タ LUT (SRL)、 またはその他の同期エレ メ ン ト への非同期信号へ ク ロ ッ ク入力し て も、 決定的な結果にはな り に く いので、 入力し ないよ う にし て く ださ い。 まず、 レジス タ、 ラ ッチまたは FIFO の非同期信号を正し く 同期し てから、 RAM、 シフ ト レジス タ LUT (SRL) またはその他の同期エレ メ ン ト へ書き込むこ と をお勧めし ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 8] を 参照し て く だ さい。

同期エレ メ ン ト の X 伝搬のデ ィ スエーブルタ イ ミ ング シ ミ ュ レーシ ョ ン中にタ イ ミ ング エラーが発生する と、 ラ ッチ、 レジス タ、 RAM またはその他の同期エ レ メ ン ト はデフ ォル ト で X をシ ミ ュ レータに出力し ます。

これは、 実際の出力値が未知のためです。 レジス タの出力は、 次のよ う にな り ます。

• 前の値を保持

• 新しい値へア ッ プデー ト

• 同期エレ メ ン ト の ク ロ ッ ク供給後しばら く 経つまで値が決定されない メ タ ステーブル状態

この値は決定でき ないので、正確なシ ミ ュ レーシ ョ ン結果は保証でき ません。 エレ メ ン ト は未知の値を示す X を出力 し ます。 X 出力は次の ク ロ ッ ク サ イ ク ルまでそのま ま保持されます。 出力は、 別の違反が発生し ない場合、 次の ク ロ ッ ク付きの値でア ッ プデー ト されます。

X の生成はシ ミ ュ レーシ ョ ンに大き く 影響し ます。 た と えば、1 つのレジス タで生成された X は続 く ク ロ ッ ク サイ ク ルのほかのレジス タに伝搬される可能性があ り ます。 これによ り 、 テス ト 中のデザイ ンの大部分が未知の状態になって し まいます。

これを修正するには、 次の手順に従います。

• 同期パスでは、 パス を解析し、 このパスおよびほかのパスに関する タ イ ミ ング問題を修正し、 問題な く 動作する回路にし ます。

• 非同期パスでは、 タ イ ミ ング違反をほかの方法で回避でき ない場合にのみ、 タ イ ミ ング違反中に同期エレ メ ン トの X 伝搬をデ ィ スエーブルにし ます。

X 伝搬がデ ィ スエーブルになる と、、 レジス タの出力には前の値が保持されます。 実際のシ リ コ ンでは、 レジス タは 新しい値に変更される こ と も あ り ます。 X 伝搬をデ ィ スエーブルにする と、 シ リ コ ン ビヘイ ビア と は一致し ないシ ミ ュ レーシ ョ ン結果になる こ と があ り ます。

注意 : こ のオプシ ョ ンを使用するには、 注意が必要です。 タ イ ミ ング違反を これ以外の方法で回避でき ない場合にの み使用し て く だ さい。

コ ン フ ィ ギュ レーシ ョ ン イ ン ターフ ェ イスのシ ミ ュレーシ ョ ンこのセ ク シ ョ ンでは、 次のコ ンフ ィ ギュ レーシ ョ ン イ ン ターフ ェ イ スのシ ミ ュ レーシ ョ ンについて説明し ます。

• JTAG シ ミ ュ レーシ ョ ン

• SelectMAP シ ミ ュ レーシ ョ ン

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 34UG900 (v2013.1) 2013 年 3 月 20 日

Page 35: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

コ ン フ ィ ギュ レーシ ョ ン イン ターフ ェ イスのシ ミ ュ レーシ ョ ン

JTAG シ ミ ュ レーシ ョ ン

BSCAN コ ンポーネン ト のシ ミ ュ レーシ ョ ンはすべてのデバイ スでサポー ト されます。

シ ミ ュ レーシ ョ ンでは、 JTAG ポー ト と一部の JTAG 操作コマン ド がサポー ト されます。 スキ ャ ン チェーンへのイ ン ターフ ェ イ ス も含め、 JTAG イ ン ターフ ェ イ スは完全にはサポー ト されていません、 こ のイ ン ターフ ェ イ ス をシ ミ ュ レーシ ョ ンするには、 次を実行し ます、

1. BSCANE2 コ ンポーネン ト を イ ン ス タ ンシエー ト し、 デザイ ンに接続し ます。

2. JTAG_SIME2 コ ンポーネン ト をデザイ ンではな く 、 テス ト ベンチにイ ンス タ ンシエー ト し ます。

この結果、 次にな り ます。

• 外部 JTAG 信号 (TDI、 TDO、 TCK など) へのイ ン ターフ ェ イ ス

• BSCAN コ ンポーネン ト への通信チャネル

コ ンポーネン ト 間の通信は VPKG VHDL パッ ケージ フ ァ イルまたは Verilog グ ローバル モジ ュール glbl で発生し ま す。従って、特定の JTAG_SIME2 とデザイ ン間、または特定の BSCANE2 シンボル間に暗示的接続は必要あ り ません。

ステ ィ ミ ュ ラ スはテス ト ベンチ内の特定の JTAG_SIME2 コ ンポーネン ト から駆動および表示でき ます。 これによ り 、 JTAG/BSCAN の動作が理解で き ます。 こ れ ら の コ ンポーネン ト 両方の イ ン ス タ ン シエーシ ョ ン テンプレー ト は、 Vivado Design Suite テンプレー ト およびそのデバイ スのラ イブラ リ ガ イ ド から入手でき ます。

SelectMAP シ ミ ュ レーシ ョ ン

イ ン ス タ ンシエーシ ョ ン テンプレー ト を含むコ ン フ ィ ギ ュ レーシ ョ ン シ ミ ュ レーシ ョ ン モデル (SIM_CONFIGE2) を使用する と、サポー ト される コ ンフ ィ ギュ レーシ ョ ン イ ン ターフ ェ イ スがシ ミ ュ レーシ ョ ンでき る よ う にな り 、 終的に DONE ピ ンが High にな り ます。 これは、 サポー ト される コ ンフ ィ ギュ レーシ ョ ン イ ン ターフ ェ イ スでサポー ト さ れるデバイ スがス テ ィ ミ ュ ラ スにどの よ う に反応する かを示すモデルです。 表 2-6 には、 サポー ト さ れる イ ン ターフ ェ イ スおよびデバイ ス を リ ス ト し ています。

このモデルでは制御信号の動作と ビ ッ ト フ ァ イルのダウ ン ロード が処理されます。

CRC、 IDCODE のよ う な内部レ ジス タ設定 と ス テータ ス レジ ス タが含まれます。 Sync Word がデバイ スに入力され、 ス ター ト ア ッ プ シーケン スで処理される と こ ろ も監視でき ます。

図 2-2 は、 システムをハード ウ ェ アから シ ミ ュ レーシ ョ ン環境にマ ッ プする方法を示し ています。

表 2-6 : サポー ト される コ ン フ ィ ギュ レーシ ョ ン デバイスおよびモー ド

デバイス SelectMAP シ リ アル SPI BPI

7 シ リ ーズ および Zynq-7000™ AP SoC デバイ ス

○ ○ X X

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 35UG900 (v2013.1) 2013 年 3 月 20 日

Page 36: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

コ ン フ ィ ギュ レーシ ョ ン イン ターフ ェ イスのシ ミ ュ レーシ ョ ン

コ ンフ ィ ギュ レーシ ョ ン プロセスの概要は、 各デバイ スのコ ンフ ィ ギュ レーシ ョ ン ユーザー ガイ ド に記載されてい ます。 これら のガ イ ド には、 コ ンフ ィ ギ ュ レーシ ョ ン シーケン スおよびコ ンフ ィ ギュ レーシ ョ ン イ ン ターフ ェ イ ス に関する情報が含まれます。

システム レベルの記述

SIM_CONFIGE2 モデルを使用する と、 ハード ウ ェアが使用可能になる よ り も前にコ ンフ ィ ギュ レーシ ョ ン イ ン ター フ ェ イ ス制御ロジ ッ ク をテス ト でき、デバイ ス全体をシ ミ ュ レーシ ョ ンでき、次のアプ リ ケーシ ョ ンのシステム レベ ルで使用でき ます。

• ワ イヤ、 制御信号処理、 データ入力ア ラ イ メ ン ト が正し く 実行される よ う 、 コ ンフ ィ ギュ レーシ ョ ン ロ ジ ッ ク を 制御する ためにプロセ ッ サを使用する アプ リ ケーシ ョ ン

• データ ア ラ イ メ ン ト が正し く 実行される よ う CS (SelectMAP Chip Select) または CLK 信号を使用し てデータ読み 込みプロセス を制御する アプ リ ケーシ ョ ン

• SelectMAP ABORT または Readback を実行する必要のあ る システム

このモデルに関連する ZIP フ ァ イルは、 次から入手でき ます。

http://www.xilinx.com/txpatches/pub/documentation/misc/config_test_bench.zip

この ZIP フ ァ イルには、SelectMAP ロ ジ ッ ク を実行するプロセ ッ サをシ ミ ュ レーシ ョ ンするサンプル テス ト ベンチが 含まれます。 これら のテス ト ベンチには、 SelectMAP イ ン ターフ ェ イ ス を制御するプロセ ッ サをエ ミ ュ レー ト する制 御ロジ ッ クが含まれ、 フル コ ンフ ィ ギュ レーシ ョ ン、 ABORT、 および IDCODE と ステータ ス レジス タの リ ード バッ ク などの機能があ り ます。

シ ミ ュ レーシ ョ ン されたホス ト システムには、 フ ァ イル配信および制御信号管理などの機能が必要です。 これらの制 御信号はデバイ スのコ ンフ ィ ギュ レーシ ョ ン ユーザー ガイ ド で説明される よ う にデザイ ンする必要があ り ます。

SIM_CONFIGE2 モデルは、 ビ ッ ト フ ァ イルがデバイ スに読み込まれた と き に、 コ ン フ ィ ギ ュ レーシ ョ ン プロ シー ジャー中にデバイ ス内で何が発生し ているかも示し ます。 BIT フ ァ イルのダウ ン ロード中、 モデルは各コマン ド を実 行し、 ハード ウ ェ アの変更を監視する レジス タ設定を変更し ます。

CRC レジス タ を監視し て、 CRC 値が累積されてい く のを監視でき ます。 こ のモデルは、 デバイ スが さ ま ざまなコ ン フ ィ ギュ レーシ ョ ン状態を通過し てい く のに合わせて、 設定されたス テータ ス レジス タ ビ ッ ト がどのよ う に変更す るかも示し ます。

X-Ref Target - Figure 2-2

図 2-2 : モデルの相互作用を示すブロ ッ ク図

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 36UG900 (v2013.1) 2013 年 3 月 20 日

Page 37: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

コ ン フ ィ ギュ レーシ ョ ン イン ターフ ェ イスのシ ミ ュ レーシ ョ ン

モデルを使用し たデバッ グ

SIM_CONFIGE2 モデルには、 正しいコ ンフ ィ ギ ュ レーシ ョ ン例が含まれます。 問題が発生し た と きに こ の例を使用 する と、 デバッ グがしやす く な り ます。

ステータ ス レジス タは iMPACT ツールを使用する と、 JTAG を介し て読み出すこ と ができ ます。 レジス タには、 デバ イ スの現在のステータ スに関連し た情報が含まれるので、 リ ソースのデバッ グに役立ちます。 ボード で問題があ る場合は、 まず iMPACT にステータ ス レジス タ を読み込んでデバッ グを始めます。

ステータ ス レジス タが読み込まれた ら、シ ミ ュ レーシ ョ ンにマ ッ プし て、デバイ スのコ ンフ ィ ギュ レーシ ョ ン段階を 指定し ます。

た と えば、 GHIGH ビ ッ ト はデータの読み込み後に設定されます。 こ のビ ッ ト が設定されていない と、 データの読み込 みは完了し ません。 ス ター ト ア ッ プ シーケン スで リ リ ース される BitGen で設定された GTW、 GWE および DONE 信号 も監視でき ます。

SIM_CONFIGE2 モデルでは、 エラー挿入もでき ます。 データの読み込みが一時停止され、 問題がそのま まで再開さ れる と、 ア ク テ ィ ブな CRC ロジ ッ クで問題が検出されます。 BIT フ ァ イルに手動で挿入されたビ ッ ト フ リ ッ プも検 出され、 デバイ スが このエラーを処理するの と同じ よ う に処理されます。

サポー ト される機能 サポー ト される各コ ンフ ィ ギュ レーシ ョ ン イ ン ターフ ェ イ ス同士の関係については、各デバイ スのコ ンフ ィ ギュ レー シ ョ ン ユーザー ガ イ ド を参照し て く だ さ い。 表 2-7 は、 コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド で説明さ れる サ ポー ト される機能を示し ています。

SIM_CONFIGE2 モデルには、 次のよ う な特徴があ り ます。

• コ ンフ ィ ギュ レーシ ョ ン データの リ ード バッ クはサポー ト されません。

• 提供される コ ンフ ィ ギュ レーシ ョ ン データは格納されませんが、 CRC 値は計算されます。

• リ ード バッ クは特定のレジス タでのみ実行でき、有効なコマン ド シーケン スおよび信号処理がデバイ スに対し て 提供される よ う にな り ます。

• リ ード バッ ク データ フ ァ イルが生成される よ う にする ためのモデルではあ り ません。

表 2-7 : モデルをサポー ト するスレーブ SelectMAP およびシ リ アルの機能

スレーブ SelectMAP およびシ リ アルの機能 サポー ト あり

マス ター モード X

デイ ジー チェーン - ス レーブ パラ レル デイ ジー チェーン X

SelectMAP データ読み込み ○

継続 SelectMAP データ読み込み ○

非継続 SelectMAP データ読み込み ○

SelectMAP ABORT ○

SelectMAP リ コ ンフ ィ ギュ レーシ ョ ン X

SelectMAP データ順序付け ○

リ コ ンフ ィ ギュ レーシ ョ ンおよびマルチブー ト X

コ ンフ ィ ギュ レーシ ョ ン CRC : コ ンフ ィ ギュ レーシ ョ ン中の CRC チェ ッ ク

コ ンフ ィ ギュ レーシ ョ ン CRC : コ ンフ ィ ギュ レーシ ョ ン後のCRC X

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 37UG900 (v2013.1) 2013 年 3 月 20 日

Page 38: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ンでのブロ ッ ク RAM の競合チ ェ ッ クのデ ィ スエーブル方法

シ ミ ュ レーシ ョ ンでのブロ ッ ク RAM の競合チ ェ ックのデ ィ スエーブル方法ザイ リ ン ク ス ブロ ッ ク RAM メ モ リ は True デュ アル ポー ト RAM で、 どち らのポー ト もいつでも どの メ モ リ ロ ケー シ ョ ンから でも ア ク セスでき ますが、 同じ ア ド レ ス空間が同時に読み出しおよび書き込みされる と、 ブロ ッ ク RAM ア ド レ スの競合が発生し ます。 これらは有効な競合で、 読み出し ポー ト から読み出されるデータが有効ではないために発生し ます。

ハード ウ ェ アでは、 読み出された値が古いデータか、 新しいデータか、 古いデータ と新しいデータの混合し た ものであ る可能性があ り ます。 シ ミ ュ レーシ ョ ンでは、 読み出される値が未知のために、 X が出力されます。 ブロ ッ ク RAM の競合の詳細については、 デバイ スのユーザー ガ イ ド を参照し て く だ さい。

一部のアプ リ ケーシ ョ ンでは、 こ の状態が回避または設計変更でき ない こ と も あ り ます。 こ の場合、 ブロ ッ ク RAM はこれらの違反を検出し ないよ う に設定でき ます。 これは、 ブロ ッ ク RAM プ リ ミ テ ィ ブのジェネ リ ッ ク (VHDL) ま たはパラ メ ーター (Verilog) の SIM_COLLISION_CHECK で制御でき ます。

SIM_COLLISION_CHECK 文字列

表 2-8 は、競合が発生し た と きのシ ミ ュ レーシ ョ ン ビヘイ ビアを制御する SIM_COLLISION_CHECK に合わせて使用 でき る文字列オプシ ョ ンを示し ています。

イ ンス タ ンス レベルで SIM_COLLISION_CHECK を使用する と、 各ブロ ッ ク RAM イ ン ターフ ェ イ スの設定を変更で き ます。

表 2-8 : SIM_COLLISION_CHECK 文字列

文字列 書き込み競合メ ッ セージ 出力での X の書き込み

ALL ○ ○

WARNING_ONLY ○ X

競合発生時にのみ適用 さ れ、 同じア ド レ ス空間の次に続 く 読み出しが X を出力する可能性あ り

GENERATE_X_ONLY X ○

な し X X

競合発生時にのみ適用 さ れ、 同じア ド レ ス空間の次に続 く 読み出しが X を出力する可能性あ り

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 38UG900 (v2013.1) 2013 年 3 月 20 日

Page 39: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

第 3 章

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

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

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

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

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

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

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

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

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

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

注記 : PDF リ ーダーで、た と えば [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>]

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 39UG900 (v2013.1) 2013 年 3 月 20 日

Page 40: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

デザイン フ ァ イルの解析

[-relax] [-v [verbose] [0|1|2]] [-version] [-work <library_name> [=<library_dir>]…

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

xvhdl の例

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

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] [-work <library_name> [=<library_dir>]…

xvlog の例

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 40UG900 (v2013.1) 2013 年 3 月 20 日

Page 41: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

xelab を使用し たスナ ッ プシ ョ ッ ト のエラボレーシ ョ ンおよび生成Vivado シ ミ ュ レータ を使用するシ ミ ュ レーシ ョ ンは、 次の 2 段階で実行されます。

• 初の段階では、 シ ミ ュ レータ コ ンパイ ラーの xelab によ り 、 HDL モデルがスナッ プシ ョ ッ ト にコ ンパイルさ れます。 スナッ プシ ョ ッ ト は、 シ ミ ュ レータが実行でき る形式でモデルを表記し た ものです。

• 次の段階では、 xsim コマン ド によ り 、 スナッ プシ ョ ッ ト が読み込まれて実行され、 モデルがシ ミ ュ レーシ ョ ン されます。 非プロジェ ク ト モード の場合は、 初の段階を飛ばし て次の段階を繰 り 返すこ と で、 スナッ プシ ョ ッ ト を再利用でき ます。

シ ミ ュ レータでスナッ プシ ョ ッ ト が作成される と、モデルの 上位モジュールの名前に基づいてスナッ プシ ョ ッ ト 名が割 り 当て られますが、 コ ンパイ ラーに対するオプシ ョ ン と し てスナッ プシ ョ ッ ト 名を指定する と、 こ のデフ ォル トを上書きでき ます。 スナッ プシ ョ ッ ト 名は、 デ ィ レ ク ト リ または SIMSET 内で重複し ないよ う にし ます。 デフ ォル ト でも カス タ ムでも、 同じ スナッ プシ ョ ッ ト 名を使用する と、 前に構築し たスナッ プシ ョ ッ ト がその名前で上書き されて し まいます。

重要 : 同じデ ィ レ ク ト リ または SIMSET 内で同じ スナッ プシ ョ ッ ト 名を使用し て、 2 つのシ ミ ュ レーシ ョ ンを実行す る こ と はでき ません。

xelab コマン ド は、 指定し た 上位ユニ ッ ト に対し て次を実行し ます。

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

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

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

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 41UG900 (v2013.1) 2013 年 3 月 20 日

Page 42: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

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

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

注記 : PDF リ ーダーで、た と えば [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] [-O arg] [-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>] [-stat] [-timescale] [-timeprecision_vhdl arg] [-transport_int_delays] [-v [verbose] [0|1|2]] [-version]

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 42UG900 (v2013.1) 2013 年 3 月 20 日

Page 43: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

xelab の例

xelab work.top1 work.top2 -s cpusim 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 は今度は区別のない検索を実行し、ユーザー の指定し た リ ス ト と ユニフ ァ イ ド論理ラ イブラ リ の順序で、拡張識別子と し てコ ンス ト ラ ク ト された VHDL デザ イ ン ユニ ッ ト 名を検出し ます。 初に一致する名前が見つかる と、 検索は停止されます。

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

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

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

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 43UG900 (v2013.1) 2013 年 3 月 20 日

Page 44: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

• 大文字/小文字の区別のあ る検索が う ま く いかなかった場合、 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 ソースがコ ンパイルされる ラ イブラ リ

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 44UG900 (v2013.1) 2013 年 3 月 20 日

Page 45: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

`uselib の例

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

xsim の構文

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

xsim <options> <snapshot>

説明 :

• xsim はコマン ド です。

• <options> はオプシ ョ ンです (表 3-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

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

xsim オプシ ョ ン 説明

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

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

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 45UG900 (v2013.1) 2013 年 3 月 20 日

Page 46: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

プロジ ェ ク ト フ ァ イルの構文プロジェ ク ト フ ァ イルを使用し てデザイ ン フ ァ イルを解析するには、 <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> デ ィ レ ク ト リ を定義でき ます。

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

`ifdef VCS

// VCS specific code

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

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

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

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

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

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

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

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

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

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

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

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

xsim オプシ ョ ン 説明

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 46UG900 (v2013.1) 2013 年 3 月 20 日

Page 47: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

`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 の使用方法については、 次を参照し て く ださ い。

• http://www.tcl.tk/

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

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

xelab を使用し てデザイ ン を解析し てシ ミ ュ レーシ ョ ンの実行可能なスナッ プシ ョ ッ ト を作成し た ら、 論理シ ミ ュ レーシ ョ ンまたはタ イ ミ ング シ ミ ュ レーシ ョ ンが実行でき ます。

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 47UG900 (v2013.1) 2013 年 3 月 20 日

Page 48: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

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

launch_xsim -mode behavioral

X-Ref Target - Figure 3-1

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 48UG900 (v2013.1) 2013 年 3 月 20 日

Page 49: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

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

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

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

synth_design -top top -part xc7k70tfbg676-2open_run synth_1 -name netlist_1write_verilog -mode funcsim test_synth.vxvlog -work work test_synth.v xvlog -work work testbench.vxelab -L unisims_ver testbench glbl -s test

X-Ref Target - Figure 3-2

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 49UG900 (v2013.1) 2013 年 3 月 20 日

Page 50: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

xsim test -gui

タ イ ミ ング シ ミ ュ レーシ ョ ンのア ノ テーシ ョ ン コマン ド

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

タ イ ミ ング シ ミ ュ レーシ ョ ンのイ ン ターコネク ト 遅延

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

-transport_int_delays -pulse_r 0 -pulse_int_r 0

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

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

1. <Vivado_Install_Area>/data/xsim

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

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

<logical_library1> = <physical_dir_path1><logical_library2> = <physical_dir_path2>

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

VHDL std=C:/libs/vhdl/hdl/stdieee=C:/libs/vhdl/hdl/ieeework=C:/workVerilog unisims_ver=<Vivado_Install_Area>/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> です。 次は論理ラ イブラ リ 名 の例です。

<Vivado_Install_Area>/data/verilog/src/glbl.v

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 50UG900 (v2013.1) 2013 年 3 月 20 日

Page 51: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

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

表 3-2 : xelab、 xvhd、 xvlog コ マン ド オプシ ョ ン

コマン ド オプシ ョ ン 説明

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

-debug <kind> 指定し たデバ ッ グ機能をオンに し て コ ンパイルし ます。 <kind> オプシ ョ ンに は、 次のいずれかを指定でき ます。 • typical : line および wave などの も よ く 使用される機能 • line : HDL のブレーク ポイ ン ト

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

• xlibs : ザイ リ ン ク ス プ リ コ ンパイル ラ イブラ リ の可視性。こ のコマン ド は、 コマン ド ラ イ ンでのみ使用でき ます。

• off : すべてのデバッ グ機能をオフにし ます (デフ ォル ト )。 • all : すべてのデバッ グ オプシ ョ ンを使用し ます。

-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 フ ァ イ ルで提供 さ れ る 設定へ追加ま たは上書 き する ユーザー定義のシ ミ ュ レータ初期化フ ァ イルを指定し ます。

-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 デザイ ン ユニ ッ ト を 大遅延でコ ンパイルし ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 51UG900 (v2013.1) 2013 年 3 月 20 日

Page 52: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

-mt arg 並列実行可能なサブ コ ンパ イ ル ジ ョ ブの数を指定 し ます。 使用で き る 値は、 auto、 off、 または 1 よ り 大きい整数です。

auto が指定される と、 xelab でホス ト マシンの CPU 数に基づいて並列ジ ョ ブ の数が選択されます(デフ ォル ト = auto)。

-mt オプシ ョ ンを さ ら に詳細に制御するには、 Tcl プロパテ ィ を次のよ う に設定 し ます。 set_property XELAB.MT_LEVEL off|N [get_filesets_sim_1]

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

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

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

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

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

-O arg 適化を イ ネーブルまたはデ ィ スエーブルにし ます。 -O0 = 適化をデ ィ スエーブル

-O1 = 基本的な 適化を イネーブル

-O2 = も よ く 必要と される 適化を イネーブル (デフ ォル ト )-O3 = ア ド バン ス 適化を イネーブル

注記 : 値が低い と シ ミ ュ レーシ ョ ンが遅 く な り 、値が高い と コ ンパイルは遅 く な り ますがs、 シ ミ ュ レーシ ョ ンは速 く な り ます。

-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] コマン ド ラ イ ンの対話型モー ド で生成し た実行可能スナッ プシ ョ ッ ト フ ァ イル を実行し ます。

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

コマン ド オプシ ョ ン 説明

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 52UG900 (v2013.1) 2013 年 3 月 20 日

Page 53: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

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

-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> を使用し ます。

-stat CPU、 メ モ リ 使用量、 デザイ ン統計を表示し ます。

-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> : ラ イブラ リ のオプシ ョ ンの物理デ ィ レ ク ト リ

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

コマン ド オプシ ョ ン 説明

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 53UG900 (v2013.1) 2013 年 3 月 20 日

Page 54: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

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

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

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

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

次のコード 例では、const1 は Verilog モジュール top で参照される VHDL の定数です。 こ のタ イプの Verilog 階 層 リ フ ァ レ ンスは、 Vivado シ ミ ュ レータでは使用でき ません。

entity bot is end entity bot;

architecture arch of bot isconstant cons1 : natural := 10;

beginend architecture arch;

module top(input in1,output reg out1);bot I1();always@(in1)begin if(I1.cons1 >= 10) out1 = in1; else out1 = ~in1;endendmodule

• VHDL の型、 ジェネ リ ッ ク、 ポー ト の小さ いサブセ ッ ト のみが Verilog モジュールへのバウ ンダ リ 上で使用でき ます。 同様に、 Verilog の型、 パラ メ ーター、 ポー ト の小さ いサブセ ッ ト のみが VHDL コ ンポーネン ト に対する バウ ンダ リ 上で使用でき ます。 詳細は、 56 ページ目の表 3-4を参照し て く ださ い。

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

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

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

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

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

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

混合言語の結合と検索

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 54UG900 (v2013.1) 2013 年 3 月 20 日

Page 55: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

この検索順は、 xelab コマン ド ラ イ ンでラ イブラ リ が表示される順序と同じです。 詳細は、 23 ページ目の 「方法 1 : ラ イブラ リ またはフ ァ イル コ ンパイル順の使用 (推奨)」 を参照し て く ださ い。

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

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

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

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

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

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

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

• 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);

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

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

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

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

VHDL 1 Verilog 2

IN INPUT

OUT OUTPUT

INOUT INOUT

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 55UG900 (v2013.1) 2013 年 3 月 20 日

Page 56: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

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

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

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

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

• integer

• real

• string

• boolean

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

VHDL および Verilog 値のマ ッ プ

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

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

表 3-6 は、 Verilog ステー ト にマ ッ プされる VHDL 型 bit を リ ス ト し ています。

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

VHDL ポー ト Verilog ポー ト

bit net

std_logic net

std_logic net

bit_vector vector net

符号付き vector net

符号な し vector net

std_ulogic_vector vector net

std_logic_vector vector net

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

Verilog std_logic bit

Z Z 0

0 0 0

1 1 1

X X 0

表 3-6 : Verilog ステー ト にマ ッ プ される VHDL の bit

bit Verilog

0 0

1 1

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 56UG900 (v2013.1) 2013 年 3 月 20 日

Page 57: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

表 3-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););

表 3-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 57UG900 (v2013.1) 2013 年 3 月 20 日

Page 58: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

第 4 章

Vivado IDE でのシ ミ ュ レーシ ョ ンの実行およびソース コー ドのデバッ グ

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

本章では、 75 ページ目の 「ソース レベルでのデバッ グ」 について も説明し ます。

Vivado IDE には、 Vivado シ ミ ュ レータ を使用する ための統合シ ミ ュ レーシ ョ ン環境が提供されています。 Vivado IDE に関する詳細は、 『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893) [参照 2] を参照し て く だ さ い。

Vivado シ ミ ュ レータ GUI の機能に関する説明では、 Tcl コ ン ソールから実行可能な Tcl コマン ド と、 Vivado IDE で選 択し た操作に使用される コマン ド について説明し ます。

Tcl コ マン ド の使用方法については、 Tcl コ ン ソ ールに <command_name> -help と 入力する か、 『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 6] を参照し て く だ さ い。

Tcl コ マ ン ド の list_features を 実行す る と、 board、 ipintegrator、 ipservices、 labtools お よ び simulator. などの機能の リ ス ト が表示されます。

load_features [list_features] コマン ド を実行する と、 使用される時点で機能が読み込まれるので、 その機 能が必要になる まではソ フ ト ウ ェ アの メ モ リ フ ッ ト プ リ ン ト を削減でき ます。

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

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

X-Ref Target - Figure 4-1

図 4-1 : Flow Navigator の [Simulation]

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 58UG900 (v2013.1) 2013 年 3 月 20 日

Page 59: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン設定

• [Run Simulation] : シ ミ ュ レーシ ョ ン設定に基づいてデザイ ンを コ ンパイル、 エラ ボレー ト 、 シ ミ ュ レーシ ョ ンす る コマン ド オプシ ョ ンを設定し ます。 デザイ ンの合成前にシ ミ ュ レーシ ョ ンを実行する と、 Vivado シ ミ ュ レー タではビヘイ ビア シ ミ ュ レーシ ョ ンが実行され、 波形ビ ューが開き (59 ページ目の図 4-2)、 信号およびバスの値 の付いた HDL オブジェ ク ト がデジタルまたはアナロ グ形式で表示されます。

各デザイ ン段階 (合成後と イ ンプ リ メ ンテーシ ョ ン後) ご と に、 論理シ ミ ュ レーシ ョ ンおよびタ イ ミ ング シ ミ ュ レーシ ョ ンを実行でき ます。

対応する Tcl コマン ド を使用するには、 Tcl コ ン ソールで launch_xsim と入力し ます。

また、 既存の WDB フ ァ イルを開 く こ と ができ ます。 Tcl コ ン ソールに open_wave_database <file_name> と入力する と、 既存の WDB フ ァ イルを開 く こ と ができ ます。

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

[Project Settings] ダ イ ア ロ グ ボ ッ ク スには、 次のオプシ ョ ンが表示されます。

• [Target Simulator] : シ ミ ュ レーターをビヘイ ビア シ ミ ュ レーシ ョ ンまたはタ イ ミ ング シ ミ ュ レーシ ョ ン用に起動 する よ う に指定し ます。 使用でき るオプシ ョ ンは次の とお り です。

° [Vivado Simulator] : ターゲ ッ ト シ ミ ュ レータ を Vivado シ ミ ュ レータに指定し ます。

重要 : Vivado シ ミ ュ レータにはプ リ コ ンパイル ラ イ ブラ リ が含まれているので、 ラ イブラ リ デ ィ レ ク ト リ を指定す る必要はあ り ません。

° [QuestaSim/ModelSim] : ターゲ ッ ト シ ミ ュ レーターを Mentor Graphics® ModelSim または Questa® Advanced Simulator ツールに指定し ます。

シ ミ ュ レータはイ ン ス ト ールされて $PATH パスに表示されていない と、 シ ミ ュ レーシ ョ ンを実行し た と き に起動されません。

X-Ref Target - Figure 4-2

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

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 59UG900 (v2013.1) 2013 年 3 月 20 日

Page 60: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン設定

[Simulation] ページには、 [QuestaSim/ModelSim] を選択し た場合、 ラ イブ ラ リ デ ィ レ ク ト リ 用の追加フ ィ ー ル ド が表示されます。

Tcl コ ン ソ ールか ら ModelSim を 起動す る には、 ラ イ ブ ラ リ お よ び コ ン パ イ ル順 を 指定 し た後に launch_modelsim と入力し ます。

コマン ド の使用方法については、 Vivado ヘルプまたは 『Vivado Design Suite Tcl コマン ド リ フ ァ レ ン ス ガイ ド』 (UG835) [参照 6] を参照し て く ださ い。

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

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

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

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

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

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

• [Clean up simulation files] :オンにする と、/sim デ ィ レ ク ト リ に格納されていないシ ミ ュ レーシ ョ ン フ ァ イルが削 除されます。

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

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

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

° [Command options] :

- -debug : シ ミ ュ レーシ ョ ンを高速に実行する ため、 デフ ォル ト で typical に設定されています。 その 他に off および all と い う オプシ ョ ン も あ り ます。 typical 設定には、 wave および line オプシ ョ ンが含まれます。

- [SDF Delay] : デフ ォル ト で sdfmax に設定されます。 ド ロ ッ プダウ ン メ ニ ューから sdfmin を選択す る こ と もでき ます。

- -rangecheck : シ ミ ュ レーシ ョ ンを高速に実行する ため、 デフ ォル ト でオフになっています。

• [Simulation] タブ : 使用可能なシ ミ ュ レーシ ョ ン オプシ ョ ンを提供し ます。 オプシ ョ ンを ク リ ッ クする と、 その 説明が表示されます。 [Simulation] タブでは次のオプシ ョ ンを選択でき ます。

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

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

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

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

• [Netlist] タブ : シ ミ ュ レーシ ョ ンの write_verilog ネ ッ ト リ ス ト 設定が リ ス ト されます。 オプシ ョ ンを ク リ ッ クする と、 その説明が表示されます。

• ネ ッ ト リ ス ト の write_verilog オプシ ョ ンは、 次の とお り です。

° -sdf_anno : オンにする と、 SDF ア ノ テーシ ョ ンがイネーブルにな り ます。

° -process_corner : デフ ォル ト で slow に設定されます。その他の ド ロ ッ プダウ ン オプシ ョ ンには、fast があ り ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 60UG900 (v2013.1) 2013 年 3 月 20 日

Page 61: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

• [Advanced] タブ : 図 4-3 に示すよ う に、 シ ミ ュ レーシ ョ ンにすべてのデザイ ン ソース を含めるオプシ ョ ンがあ り ます。 オフにする と、 シ ミ ュ レーシ ョ ンする フ ァ イルのみを含める こ と ができ ます。

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

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

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

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

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

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

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

1. [File] → [Add] を ク リ ッ クするか、 または [Add Sources] ボタ ンを ク リ ッ ク し ます。

図 4-4 に示す Add Sources ウ ィ ザード が表示されます。

X-Ref Target - Figure 4-3

図 4-3 : ア ドバンス シ ミ ュ レーシ ョ ン設定

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 61UG900 (v2013.1) 2013 年 3 月 20 日

Page 62: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

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

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

• [Specify Simulation Set] :テス ト ベンチ フ ァ イルを含むシ ミ ュ レーシ ョ ン セ ッ ト の名前とデ ィ レ ク ト リ (デフ ォル ト は sim_1、 sim_2...) を入力し ます。 ド ロ ッ プダウ ン メ ニ ューから [Create Simulation Set] コマン ド を選択する と、 新し いシ ミ ュ レーシ ョ ン セ ッ ト が定義で き ます。 複数のシ ミ ュ レーシ ョ ン セ ッ ト が使用可能な場合は、 Vivado シ ミ ュ レータによ り 、 どのシ ミ ュ レーシ ョ ン セ ッ ト がア ク テ ィ ブな (現在使用中の) セ ッ ト であ るかが表 示されます。

この機能の詳細は、 http://www.youtube.com/watch?v=ccul5UWpvSA のオン ラ イ ン ビデオを参照し て く だ さい。

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

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

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

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

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

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

X-Ref Target - Figure 4-4

図 4-4 : Add Sources ウ ィ ザー ド : [Add or Create Design Sources] ページ

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 62UG900 (v2013.1) 2013 年 3 月 20 日

Page 63: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

• [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] で指定し たデ ィ レ ク ト リ のサブデ ィ レ ク ト リ に含まれる ソース フ ァ イルをすべて追加し ます。

• [Include all design sources for simulation] :シ ミ ュ レーシ ョ ン用にデザイ ン ソースすべてを含めます。

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

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

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

[Add or Create Simulation Sources] ページが表示されます。

2. [Add Files] を ク リ ッ ク し てフ ァ イルを選択し ます。

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

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

選択し たシ ミ ュ レーシ ョ ン セ ッ ト がア ク テ ィ ブなデザイ ン run に使用されます。

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

X-Ref Target - Figure 4-5

図 4-5 : [Edit Simulation Sets] オプシ ョ ン

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 63UG900 (v2013.1) 2013 年 3 月 20 日

Page 64: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

Vivado シ ミ ュ レータの使用

Vivado シ ミ ュ レータの使用Flow Navigator から [Run Simulation] を ク リ ッ ク し、 Vivado シ ミ ュ レータの GUI を表示し ます (65 ページ目の図 4-6)。 Vivado IDE の メ ニ ューの詳細は、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 2] を参照 し て く だ さい。

Tcl コ ン ソ ールか ら Vivado シ ミ ュ レータ を起動する には、 次を入力し ます。

xsim -gui -s <snapshot_name>

空の波形コ ン フ ィ ギ ュ レーシ ョ ンが表示さ れます。

Vivado シ ミ ュ レータの GUI の主な コ ンポーネン ト は、 次の とお り です。

1. 「 メ イ ン ツールバー」 Vivado IDE で も よ く 使用される コマン ド に 1 ク リ ッ ク でア ク セスでき ます。オプシ ョ ンの上にカーソルを置 く と、 詳細を示すツール ヒ ン ト が表示されます。

2. 「[Run] メ ニュー」

3. 「[Objects] ビ ュー」

4. 「[Simulation] ツールバー」

5. 「波形オブジェ ク ト 」

6. 「波形ビ ュー」

7. 「[Scopes] ビ ュー」

8. 「[Sources] ビ ュー」

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 64UG900 (v2013.1) 2013 年 3 月 20 日

Page 65: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

Vivado シ ミ ュ レータの使用

メ イ ン ツールバー

Vivado IDE で も よ く 使用される コマン ド に 1 ク リ ッ ク でア ク セスでき ます。 オプシ ョ ンの上にカーソルを置 く と、 詳細を示すツール ヒ ン ト が表示されます。

[Run] メ ニュー

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

シ ミ ュ レーシ ョ ンの [Run] メ ニューは、 図 4-7 のよ う にな り ます。

X-Ref Target - Figure 4-6

図 4-6 : Vivado シ ミ ュ レータの GUI

X-Ref Target - Figure 4-7

図 4-7 : シ ミ ュ レーシ ョ ンの [Run] のメ ニュー オプシ ョ ン

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 65UG900 (v2013.1) 2013 年 3 月 20 日

Page 66: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

Vivado シ ミ ュ レータの使用

Vivado シ ミ ュ レーターの [Run] メ ニュー オプシ ョ ンは次の とお り です。

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

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

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

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

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

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

• [Relaunch Simulation] : シ ミ ュ レーシ ョ ン フ ァ イルを リ コ ンパイルし て run を再実行し ます。

[Objects] ビ ュー

HDL オブジェ ク ト が表示されます (図 4-8)。

HDL オブジ ェ ク ト の横には、 言語ま たはプ ロ セス タ イ プが表示さ れます。 こ のビ ューにはシ ミ ュ レーシ ョ ン オブ ジェ ク ト の名前、 値、 ブロ ッ ク タ イプなどが リ ス ト されます。 表 4-1 は、 [Objects] ビ ューの上部のボタ ンを簡単に説 明し ています。

X-Ref Target - Figure 4-8

図 4-8 : [Objects] ビ ュー

表 4-1 : [Objects] ビ ューのボタ ン

ボタ ン 説明

[Search] ボタ ンを ク リ ッ クする と、 検索するオブジェ ク ト 名を入力でき る フ ィ ール ド が開き ます。

入力信号

出力信号

入力/出力信号

内部信号

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 66UG900 (v2013.1) 2013 年 3 月 20 日

Page 67: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

Vivado シ ミ ュ レータの使用

また、 ボ タ ンの上にカーソルを置 く と、 詳細が表示されます。

[Simulation] ツールバー

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

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

定数信号

変数信号

表 4-1 : [Objects] ビ ューのボタ ン

ボタ ン 説明

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 67UG900 (v2013.1) 2013 年 3 月 20 日

Page 68: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

Vivado シ ミ ュ レータの使用

波形オブジ ェ ク ト

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

波形の詳細は、 第 5 章 「波形を使用し た解析」 を参照し て く ださい。

次の図 4-9 は、 波形コ ンフ ィ ギュ レーシ ョ ンに含まれる波形オブジェ ク ト の例を示し ています。

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

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

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

X-Ref Target - Figure 4-9

図 4-9 : 波形コ ン フ ィ ギュ レーシ ョ ンの HDL オブジ ェ ク ト

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 68UG900 (v2013.1) 2013 年 3 月 20 日

Page 69: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

Vivado シ ミ ュ レータの使用

波形ビ ュー

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

各 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] コマン ド と同じ動作にな り ます。

波形の保存

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

波形コ ン フ ィ ギ ュ レーシ ョ ン を WCFG フ ァ イ ルに保存する には、 Tcl コ ン ソ ールに次を入力し ます。

save_wave_config <filename.wcfg>

指定し たコマン ド引数の名前で WCFG フ ァ イルが保存されます。

複数波形コ ン フ ィ ギュ レーシ ョ ンの作成と使用

シ ミ ュ レーシ ョ ン セ ッ シ ョ ンで複数の波形コ ンフ ィ ギ ュ レーシ ョ ン (それぞれ独自の波形ビ ューあ り ) を作成および 使用でき ます。 複数の波形ビ ューが表示されている場合は、 一番 近に作成し たビ ューまたは 近使用し たビ ューが

X-Ref Target - Figure 4-10

図 4-10 : 波形ビ ュー

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 69UG900 (v2013.1) 2013 年 3 月 20 日

Page 70: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

Vivado シ ミ ュ レータの使用

「ア ク テ ィ ブ ビ ュー」 にな り ます。 ア ク テ ィ ブ ビ ューは、 現在表示されている ビ ューだけでな く 、 ビ ューに対する外 部コマン ド ([HDL Objects] → [Add to Wave Window] など) が使用される と表示される波形ビ ューです。

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

[Scopes] ビ ュー

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

[Sources] ビ ュー

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

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

X-Ref Target - Figure 4-11

図 4-11 : [Scopes] ビュー

X-Ref Target - Figure 4-12

図 4-12 : [Sources] ビ ュー

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 70UG900 (v2013.1) 2013 年 3 月 20 日

Page 71: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

ス コープまたは [Scope] ビ ューのいずれかで [Show Search] ボタ ン を ク リ ッ クする と、 検索フ ィ ール ド が表示さ れます。

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

• Vivado シ ミ ュ レータでの [Scopes] ビ ューの使用方法については、 95 ページ目の 「カーソルの使用」 を参照し て く だ さい。

[Scopes] お よ び [Objects] ビ ュ ーを使用す る 代わ り に、 Tcl コ ン ソ ールに current_scope と 入力 し て現在の ス

コープを設定ま たは表示する こ と も で き ます。

ス コープおよびオブジ ェ ク ト を リ ス ト する には、現在のス コープ内で report_scopes および report_values コ マン ド をそれぞれ使用し ます。

合成後およびイ ンプ リ メ ンテーシ ョ ン後のタ イ ミ ング シ ミ ュ レーシ ョ ンの実行合成後と イ ンプ リ メ ンテーシ ョ ン後のタ イ ミ ング シ ミ ュ レーシ ョ ンには、オプシ ョ ンで次のいずれかを含める こ と が でき ます。

• simprim ラ イブラ リ コ ンポーネン ト を含むゲー ト レベルのネ ッ ト リ ス ト

• SECUREIP

• 標準遅延フ ォーマ ッ ト (SDF) フ ァ イル

合成後のタ イ ミ ング シ ミ ュ レーシ ョ ンでは、 合成後の概算のタ イ ミ ング数値が使用されます。

イ ンプ リ メ ンテーシ ョ ン後のタ イ ミ ング シ ミ ュ レーシ ョ ンは、 Vivado IDE でイ ンプ リ メ ンテーシ ョ ン (配置配線) プ ロセスが完了し てから実行されます。 これによ り 、 デザイ ンが実際の回路でどのよ う に動作するのか確認する こ と ができ ます。 デザイ ンの全体的な機能は 初に定義されていますが、 イ ンプ リ メ ン ト されたデザイ ンをシ ミ ュ レーシ ョンする場合は、 実際のタ イ ミ ング情報が使用でき ます。

Vivado IDE ではネ ッ ト リ ス ト ラ イ ター (write_verilog -mode timesim) および SDF ア ノ テーター (write_sdf) が呼び出され、 ネ ッ ト リ ス ト および SDF が作成されます。

こ れ ら の オプ シ ョ ン は、 58 ページ目の 「シ ミ ュ レ ーシ ョ ン 設定」 で説明 さ れ る [Simulation Settings] から変更でき ます。

重要 : 合成後 と イ ンプ リ メ ン テーシ ョ ン後の タ イ ミ ン グ シ ミ ュ レーシ ョ ンは、 Verilog でのみサポー ト さ れます。 VHDL のタ イ ミ ング シ ミ ュ レーシ ョ ンはサポー ト されません。

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

重要 : タ イ ミ ング シ ミ ュ レーシ ョ ンを実行する前に50 ページ目の 「タ イ ミ ング シ ミ ュ レーシ ョ ンのイ ン ターコ ネ ク ト 遅延」 をお読み く だ さい。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 71UG900 (v2013.1) 2013 年 3 月 20 日

Page 72: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

合成後のシ ミ ュ レーシ ョ ンの実行問題な く 合成が終了した ら、 合成後のシ ミ ュ レーシ ョ ン (論理シ ミ ュ レーシ ョ ンまたはタ イ ミ ング シ ミ ュ レーシ ョ ン) を実行でき ます。

合成後の論理シ ミ ュ レーシ ョ ンの実行 合成が問題な く 終了する と、 [Run Simulation] → [Post-Synthesis Functional Simulation] が使用でき る よ う にな り ます (図 4-13)。

合成後には、 シ ミ ュ レーシ ョ ン情報がさ らに増え るので、 デザイ ン論理がどれ く らい要件を満た し ているかど う かが詳細にチェ ッ ク でき ます。

合成後の論理シ ミ ュ レーシ ョ ンを選択する と、 論理ネ ッ ト リ ス ト が生成され、 その UNISIM ラ イブラ リ がシ ミ ュ レー シ ョ ンに使用されます。

合成後のタ イ ミ ング シ ミ ュ レーシ ョ ンの実行

合成が問題な く 終了する と、 [Run Simulation] → [Post-Synthesis Timing Simulation] が使用でき る よ う にな り ます (図 4-14)。

合成後のタ イ ミ ング シ ミ ュ レーシ ョ ンを選択する と、タ イ ミ ング ネ ッ ト リ ス ト と SDF フ ァ イルが生成されます。ネ ッ ト リ ス ト フ ァ イルには $sdf_annotate コマン ド が含まれるので、 生成された SDF フ ァ イルが自動的に指定されま す。

X-Ref Target - Figure 4-13

図 4-13 : 合成後の論理シ ミ ュ レーシ ョ ンの実行

X-Ref Target - Figure 4-14

図 4-14 : 合成後のタ イ ミ ング シ ミ ュ レーシ ョ ンの実行

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 72UG900 (v2013.1) 2013 年 3 月 20 日

Page 73: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

インプ リ メ ンテーシ ョ ン後のシ ミ ュレーシ ョ ンの実行問題な く イ ンプ リ メ ンテーシ ョ ンが終了し た ら、 イ ンプ リ メ ンテーシ ョ ン後の論理シ ミ ュ レーシ ョ ン またはタ イ ミ ング シ ミ ュ レーシ ョ ンを実行でき ます。

イ ンプ リ メ ンテーシ ョ ン後の論理シ ミ ュ レーシ ョ ンの実行

イ ンプ リ メ ンテーシ ョ ンが問題な く 終了する と、 [Run Simulation] → [Post-Implementation Functional Simulation] が使用 でき る よ う にな り ます (図 4-15)。

イ ンプ リ メ ンテーシ ョ ン後には、 シ ミ ュ レーシ ョ ン情報がさ らに増え るので、 デザイ ン論理がどれ く らい要件を満たし ているかど う かが詳細にチェ ッ ク でき ます。

イ ンプ リ メ ンテーシ ョ ン後の論理シ ミ ュ レーシ ョ ンを選択する と、 論理ネ ッ ト リ ス ト が生成され、 その UNISIM ラ イ ブラ リ がシ ミ ュ レーシ ョ ンに使用されます。

イ ンプ リ メ ンテーシ ョ ン後のタ イ ミ ング シ ミ ュ レーシ ョ ンの実行

イ ンプ リ メ ンテーシ ョ ンが問題な く 終了する と、 [Run Simulation] → [Post-Implementation Timing Simulation] が使用で き る よ う にな り ます (図 4-16)。

イ ンプ リ メ ンテーシ ョ ン後のタ イ ミ ング シ ミ ュ レーシ ョ ンを選択する と、 タ イ ミ ング ネ ッ ト リ ス ト と SDF フ ァ イル が生成されます。 ネ ッ ト リ ス ト フ ァ イルには $sdf_annotate コマン ド が含まれるので、 生成された SDF フ ァ イル が自動的に指定されます。

シ ミ ュ レーシ ョ ンの種類デザイ ンに対し て複数のシ ミ ュ レーシ ョ ンを実行し た場合、 Vivado シ ミ ュ レータでは、 現在ハイ ラ イ ト されている ビ ューのシ ミ ュ レーシ ョ ン タ イプを GUI 上部に示し ます (図 4-17)。

X-Ref Target - Figure 4-15

図 4-15 : イ ンプ リ メ ンテーシ ョ ン後の論理シ ミ ュ レーシ ョ ンの実行

X-Ref Target - Figure 4-16

図 4-16 : 合成後のタ イ ミ ング シ ミ ュ レーシ ョ ンの実行

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 73UG900 (v2013.1) 2013 年 3 月 20 日

Page 74: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

シ ミ ュ レーシ ョ ンの一時停止シ ミ ュ レーシ ョ ン を実行中に [Break] コ マン ド を使用する と、 シ ミ ュ レーシ ョ ン セ ッ シ ョ ン を開いた ま までシ ミ ュ レーシ ョ ン を一時停止でき ます。 シ ミ ュ レーシ ョ ン を一時停止するには、 [Simulation] → [Break] を ク リ ッ クする か、 [Break] ボタ ンを ク リ ッ ク し ます。

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

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

シ ミ ュ レーシ ョ ンは [Run All]、 [Run]、 または [Step] コマン ド を使用する と いつでも再開でき ます。 詳細は、 75 ペー ジ目の 「シ ミ ュ レーシ ョ ンのステ ッ プ実行」 を参照し て く だ さい。

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

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

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

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

[Tcl Console] ビ ューに close_sim と入力し ます。 保存し ていない波形コ ンフ ィ ギュ レーシ ョ ンがないかど う かがま ずチェ ッ ク され、 あった場合は、 エラー メ ッ セージが表示されます。 -force オプシ ョ ンを付けて こ のコマン ド を実行 する と、 保存されていない波形コ ンフ ィ ギ ュ レーシ ョ ンが無視され、 その波形を保存し ないで Vivado シ ミ ュ レータ が閉じ られます。

Vivado シ ミ ュ レータのス タ ン ド アロン フ ローの例Tcl コ ン ソールに Tcl コマン ド を入力する と、 ス タ ン ド ア ロ ン フ ローは次の例のよ う にな り ます。

Vivado -mode TclVivado% create_project -force prj1

X-Ref Target - Figure 4-17

図 4-17 : アク テ ィ ブなシ ミ ュ レーシ ョ ン タ イプ

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 74UG900 (v2013.1) 2013 年 3 月 20 日

Page 75: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

Vivado% read_verilog dut.vVivado% synth_design -top dutVivado% launch_xsim -simset sim_1 -mode post-synthesis -type functionalVivado% place_designVivado% route_designVivado% write_verilog -mode timesim -sdf_anno true -sdf_file postRoute.sdf postRoute_netlist.vVivado% write_sdf postRoute.sdfVivado% launch_xsim -simset sim_1 -mode post-implementation -type timingVivado% close_project

統合フ ロー

詳細は 『Vivado Design Suite Tcl コマン ド リ フ ァ レ ンス ガイ ド』 (UG835) [参照 6] の Tcl コマン ド 、 launch_xsim お よび launch_modelsim に関する記述を参照し て く ださ い。

ソース レベルでのデバッ グ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] コマン ド を使用する と、 テス ト ベンチの 開始地点に時間を リ セ ッ ト でき ます。 詳細は、 第 4 章 「Vivado IDE でのシ ミ ュ レーシ ョ ンの実行およびソー ス コード のデバッ グ」 を参照し て く だ さい。

2. 波形および HDL コード を同時に表示するには、[Window] → [Tile Horizontally] または [Window] → [Tile Vertically] を ク リ ッ ク し ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 75UG900 (v2013.1) 2013 年 3 月 20 日

Page 76: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

3. デバッ グが終了する まで、 [Step] を繰 り 返し ます。

行が実行 さ れる につれ、 黄色の矢印が コー ド の下方に移動 し てい き ます。 シ ミ ュ レータ が別のフ ァ イ ルの行を実

行す る 場合は、 その フ ァ イ ルが開いて、 黄色の矢印で コ ー ド が ス テ ッ プ実行 さ れます。 大抵のシ ミ ュ レータ で、

[Step] コ マン ド を実行する と 複数フ ァ イ ルが開かれる こ と が よ く あ り ます。 Tcl コ ン ソ ールに も step コ マン ド で

HDL コー ド がどれ く ら い進んだかが示さ れます。

ブレークポイ ン ト の使用

ブレー ク ポ イ ン ト は、 ユーザーの指定する ソ ース コー ド 内の停止地点で、 デザ イ ン をデバ ッ グする際に使用でき

ます。

ヒ ン ト : ブレーク ポ イ ン ト は、 [Step] コマン ド で 1 行ずつ停止する と時間がかか り すぎて し ま う よ う な大規模デザイ ンをデバッ グする場合に使用する と、 特に便利です。

HDL フ ァ イ ルの実行可能な行にブレーク ポ イ ン ト を設定し てお く こ と で、 ブレー ク ポ イ ン ト に到達する まで コー

ド が実行 さ れ続け ます。

注記 : ブレーク ポ イ ン ト は実行可能なコード にのみ設定でき ます。 実行不可能なコード の行にブレーク ポイ ン ト を設 定し て も、 ブレーク ポ イ ン ト は追加されません。

ブレー ク ポ イ ン ト を設定する には、 次の手順に従います。

1. [View] → [Breakpoint] → [Toggle Breakpoint] を ク リ ッ ク し ます。 または、 [Toggle Breakpoint] ボタ ンを ク リ ッ ク し ます。

2. HDL フ ァ イルで行番号の右側のコード行を ク リ ッ ク し ます。

[Breakpoint] ボタ ン が行の横に表示されます。

注記 : または、 コード行を右ク リ ッ ク し、 [Toggle Breakpoint] を選択し ます。

終了する と、 シ ミ ュ レーシ ョ ン ブレーク ポイ ン ト ボタ ンがコード行の横に表示され、[Breakpoints] ビ ューに使用 可能なブレーク ポ イ ン ト が リ ス ト されます。

Tcl コ ン ソールに ad_bps コマン ド を入力する と、 <file_name> の <line_number> にブレーク ポ イ ン ト を追 加でき ます。 {condition_expression} を使用する場合、 condition_expression が真の場合にのみ、 コ マン ド の実行が停止されます。

コ マン ド の使用方法については、 Vivado ヘルプまたは 『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド』 (UG835) [参照 6] を参照し て く だ さい。

ブレー ク ポ イ ン ト を使用し てデザ イ ン をデバ ッ グする には、 次の手順に従っ て く だ さ い。

1. HDL ソース フ ァ イルを開き ます。

2. HDL ソース フ ァ イルの実行可能な行にブレーク ポイ ン ト を設定し ます。

3. すべてのブレーク ポ イ ン ト が設定される まで手順 1 および 2 を繰 り 返し ます。

4. 次の実行オプシ ョ ンを使用し てシ ミ ュ レーシ ョ ンを実行し ます。

° 初から実行する場合は、 [Run] → [Restart] を ク リ ッ ク し ます。

° [Run] → [Run All] または [Run] → [Run for Specified Time] コマン ド を使用し ます。

ブレーク ポ イ ン ト に到達する までシ ミ ュ レーシ ョ ンが実行されて、 停止し ます。

HDL ソース フ ァ イルが表示され、 黄色の矢印でブレーク ポ イ ン ト の停止地点が示されます。

5. 手順 4 を繰 り 返し て、 結果に満足する までシ ミ ュ レーシ ョ ンをブレーク ポ イ ン ト ご と に進めていき ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 76UG900 (v2013.1) 2013 年 3 月 20 日

Page 77: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

シ ミ ュ レーシ ョ ンは、 HDL ソース フ ァ イルに設定し た各ブレーク ポイ ン ト で停止し ます。

デザイ ン デバ ッ グ中には、 [Run] → [Step] コマン ド を実行し て 1 行ご と にコード を検証する こ と で、 さ らに詳細 にデザイ ンを検証する こ と もでき ます。

HDL ソ ース コー ド か ら 1 つのブレー ク ポ イ ン ト ま たはすべてのブレーク ポ イ ン ト を削除で き ます。

1 つのブレー ク ポ イ ン ト を削除する には、 [Breakpoint] ボ タ ン を ク リ ッ ク し ます。

すべてのブレー ク ポ イ ン ト を削除する には、 [Run] → [Breakpoint] → [Delete All Breakpoints] を ク リ ッ クする か、 [Delete All Breakpoints] ボ タ ン を ク リ ッ ク し ます。

Tcl コ ン ソ ールに次を入力し ます。

• remove_bps : すべてのブレーク ポ イ ン ト が削除されます。

• report_bps <list> : ブレーク ポ イ ン ト オブジェ ク ト の指定し た リ ス ト に関するブレーク ポイ ン ト 情報を取 得し ます。

Tcl コマン ド report_driver の使用

Tcl コ マン ド の report_driver を使用する と 、 HDL オブジ ェ ク ト の値を駆動し てい る信号が何かがレ ポー ト さ

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

report_drivers <hdl_object>

Tcl コ ン ソ ールには ド ラ イ バーが表示 さ れ、 wire ま たは signal 型の HDL オブジ ェ ク ト への代入の右側には現在の

駆動値が表示さ れます。

Tcl コマン ド add_force の使用

add_force コ マン ド を使用する と 、 signal、 wire、 reg の値を強制的に指定し た値にで き ます。

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

add_force [-radix <arg>] [-repeat_every <arg>] [-cancel_after <arg>] [-quiet] [-verbose] <hdl_object> <values>...

次の コ マン ド を使用し て -add_force を適用する と 図 4-18 の よ う にな り ます。

add_force mySig {0 t1} {1 t2} {0 t3} {1 t4} {0 t5} -repeat_every tr -cancel_after tc

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 77UG900 (v2013.1) 2013 年 3 月 20 日

Page 78: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

詳細については、 Vivado の Tcl コ ン ソ ールで次を入力し て く だ さ い。

add_force -help

コー ド 例 :

module bot(input in1, in2,output out1);reg sel;assign out1 = sel? in1: in2;endmodule

module top;reg in1, in2;wire out1;bot I1(in1, in2, out1);initialbegin #10 in1 = 1'b1; in2 = 1'b0; #10 in1 = 1'b0; in2 = 1'b1;endinitial $monitor("out1 = %b\n", out1);endmodule

コ マン ド例

xelab -vlog tmp.v -debug allxsim work.top

Xsim コ ン ソール :add_force /top/I1/sel 1run 10

X-Ref Target - Figure 4-18

図 4-18 : -add_force オプシ ョ ンを使用し た結果

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 78UG900 (v2013.1) 2013 年 3 月 20 日

Page 79: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ン Tcl コマン ドの値に関する規則

add_force /top/I1/sel 0run all

シ ミ ュ レーシ ョ ン Tcl コ マン ドの値に関する規則次の値に関する規則は、 Tcl コマン ド の add_force および set_value の両方に適用されます。

値の文字列は、 HDL オブジェ ク ト の宣言型と -radix コマン ド ラ イ ン オプシ ョ ンで決ま り ます。 -radix を使用す る と、 HDL オブジェ ク ト 型で決定されたデフ ォル ト の基数が常に上書き されます。

• logic 型の HDL オブジェ ク ト の場合、 値は or で、 1 次元配列の logic 型の場合、 値は指定し た基数の桁数の 文字列です。

° 文字列の指定する ビ ッ ト が予測される型よ り も小さい場合、文字列はその型の長さ に一致する よ う に暗示的にゼロ拡張 (符号拡張ではない) にな り ます。

° 文字列の指定する ビ ッ ト が予測される型よ り も大きい場合、MSB 側の余分ビ ッ ト が 0 になっていない と、サ イ ズの不一致エラーにな り ます。

た と えば、 基数が 16 進数で 6 ビ ッ ト の logic 配列を使用する場合、 値 3F は 8 ビ ッ ト (16 進数の桁ご と に 4 ビ ッ ト ) にな り ます。 これは、 2 進数では 0011 1111 です。 しかし、 3 の う ち上位 2 ビ ッ ト が 0 なので、 値は HDL オブジェ ク ト に代入でき ます。反対に、7F の場合、上位 2 ビ ッ ト が 0 ではないので、エラーにな り ます。

° scalar (array または record ではない) の logic の HDL オブジェ ク ト の暗示的長さは 1 ビ ッ ト です。

° a [left:right] (Verilog) または a(left TO/DOWNTO right) と宣言される logic 配列の場合、一番左 の値のビ ッ ト (拡張/切 り 捨て後) が a[left] に代入され、 一番右のビ ッ ト が a[right] に代入されます。

° logic は、 HDL で定義される概念ではあ り ませんが、 Vivado シ ミ ュ レータで使用される発見的な ものです。

- Verilog オブジェ ク ト は、暗示的な Verilog の bit 型の場合は wire および reg オブジェ ク ト や整数、時間を 含めた logic 型の一部と し て考え られます。

- VHDL オブジェ ク ト は、 オブジェ ク ト 型が bit、 std_logic、 または列挙型 (列挙子が std_logic の列 挙型のサブセ ッ ト で少な く と も 0 および 1 が含まれる ) の場合、 またはオブジェ ク ト の型が このよ う な 型の 1 次元配列であ る場合は、 logic 型の一部と し て考え られます。

• VHDL 列挙型の HDL オブジェ ク ト の場合、 値は列挙子文字列のいずれかにな り ます。 列挙子が文字ではない場 合シングル ク ォーテーシ ョ ン (') は含めません。 基数は無視されます。

• 整数型の VHDL オブジェ ク ト の場合、 その型の範囲内で値は符号付きの 10 進数の整数にでき ます。 基数は無視 されます。

• VHDL および Verilog の浮動小数点型の場合、 値は浮動小数点にな り ます。 基数は無視されます。

• すべての型の HDL オブジェ ク ト で Tcl コマン ド set によ る値の設定はサポー ト されません。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 79UG900 (v2013.1) 2013 年 3 月 20 日

Page 80: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

第 5 章

波形を使用し た解析

概要Vivado™ Integrated Design Environment (IDE) シ ミ ュ レータ GUI では、 波形ウ ィ ン ド ウ を使用し てデザイ ンを解析し、 コード をデバッ グでき ます。 シ ミ ュ レータは、 [Objects] ビ ューおよび [Scopes] ビ ューなどの GUI のほかのエ リ アでデ ザイ ン データ を生成し ます。

通常、 シ ミ ュ レーシ ョ ンはシ ミ ュ レーシ ョ ンをする HDL オブジェ ク ト を定義する テス ト ベンチで設定し ます。 テス ト ベンチの詳細は、 『Writing Efficient Testbenches』 (XAPP199)[参照 4] を参照し て く ださ い、。

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

Vivado IDE からのシ ミ ュ レーシ ョ ン

Vivado シ ミ ュ レータ を起動する と、 上位 HDL オブジ ェ ク ト を含む波形コ ン フ ィ ギ ュ レーシ ョ ンが表示されます。 Vivado シ ミ ュ レータは、 [Objects] ビ ューおよび [Scopes] ビ ューなどの GUI のほかのエ リ アでデザイ ン データ を生成 し ます。 こ の後、 別の HDL オブジェ ク ト を追加し た り 、 シ ミ ュ レーシ ョ ンを実行し た り でき ます。 詳細は、 80 ペー ジ目の 「波形コ ンフ ィ ギュ レーシ ョ ン と波形ビ ューの使用」 を参照し て く ださい。

本章には、 Tcl コ ン ソールで使用可能な Tcl コマン ドや GUI と同等の機能を実行するバッ チ ス ク リ プ ト 内で使用可能 な Tcl コマン ド が リ ス ト されています。

Tcl コ マン ド に関する詳細については、 Tcl コ ン ソールに <command_name> -help と 入力する か、 『Vivado Design Suite Tcl コマン ド リ フ ァ レン ス ガイ ド』 (UG835) [参照 6] を参照し て く だ さい。

波形コ ン フ ィ ギュ レーシ ョ ン と波形ビ ューの使用波形コ ンフ ィ ギュ レーシ ョ ンおよび WCFG フ ァ イルの両方がカス タマイ ズ された波形 リ ス ト を参照し ますが、こ の 2 つの概念は異な り ます。

• 波形コ ンフ ィ ギュ レーシ ョ ンは、 作業可能な メ モ リ に読み込まれたオブジェ ク ト です。

• WCFG フ ァ イルはデ ィ ス ク の波形コ ンフ ィ ギュ レーシ ョ ンが保存された ものです。

波形コ ンフ ィ ギュ レーシ ョ ンには名前が付 く か、Untitled# が付き ます。名前は波形コ ンフ ィ ギュ レーシ ョ ン ビ ューに 表示されます。

波形コ ン フ ィ ギュ レーシ ョ ンに対する Tcl コ マン ドの使用

Tcl コ ン ソールでは、 波形コ ンフ ィ ギュ レーシ ョ ンの操作に次のコマン ド を使用でき ます。 表 5-1 は、 Vivado シ ミ ュ レータの GUI で使用可能なオプシ ョ ンに対応する コマン ド を リ ス ト し ています。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 80UG900 (v2013.1) 2013 年 3 月 20 日

Page 81: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

波形コ ン フ ィ ギュ レーシ ョ ン と波形ビ ューの使用

コマン ド の使用方法については、Vivado ヘルプまたは『Vivado Design Suite Tcl コマン ド リ フ ァ レ ン ス ガ イ ド』 (UG835) [参照 6] を参照し て く だ さい。

波形コ ン フ ィ ギュ レーシ ョ ンの新規作成

波形を表示する ために新しい波形コ ンフ ィ ギュ レーシ ョ ンを作成し ます。

1. [File] → [New Waveform Configuration] を ク リ ッ ク し ます。

新しい波形ビ ューが開いて、 新規のタ イ ト ルのない波形コ ンフ ィ ギュ レーシ ョ ンが表示されます。

Tcl コ ン ソールで add_wave <HDL_Object> を入力する と、 新しい波形が追加されます。

2. 83 ページ目の 「波形コ ンフ ィ ギュ レーシ ョ ンの HDL オブジェ ク ト 」 に示す方法で HDL オブジェ ク ト を波形コ ンフ ィ ギュ レーシ ョ ンに追加し ます。

注記 : WCFG に、 HDL デザイ ン階層が開いた と きにシ ミ ュ レーシ ョ ンに存在し ない HDL オブジェ ク ト への参照が含 まれる と、Vivado シ ミ ュ レータではこれらの HDL オブジェ ク ト が無視され、読み込まれた波形コ ンフ ィ ギュ レーシ ョ ンから削除されます。

波形波形の新規作成の詳細は、第 4 章 「Vivado IDE でのシ ミ ュ レーシ ョ ンの実行およびソース コード のデバッ グ」 を 参照し て く だ さい。

WCFG フ ァ イルを開 く

WCFG フ ァ イルを開いて、 ス タテ ィ ッ ク シ ミ ュ レーシ ョ ン と一緒に使用し ます。

1. [File] → [Open Waveform Configuration] を ク リ ッ ク し ます。

[Specify Simulation Results] ダ イ ア ロ グ ボ ッ ク スが表示されます。

2. WCFG フ ァ イルを選択し ます。

注記 : WCFG フ ァ イルにス タ テ ィ ッ ク シ ミ ュ レーシ ョ ンの HDL デザイ ン階層にはない HDL オブジェ ク ト への参照 が含まれる場合、 Vivado シ ミ ュ レータではこれらの HDL オブジェ ク ト が無視され、 読み込まれた波形コ ンフ ィ ギュ レーシ ョ ンから削除されます。

波形ビ ューが開き、WCFG フ ァ イルの リ ス ト された波形オブジェ ク ト 用にシ ミ ュ レータで検出された波形データ が表示されます。

Tcl コ ン ソールに open_wave_config <waveform_name> と 入力する と、 指定し た波形コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イルが開き ます。

表 5-1 : 波形コ ン フ ィ ギュ レーシ ョ ンの Tcl コマン ド

Tcl コ マン ド 説明

open_wave_config 波形コ ンフ ィ ギュ レーシ ョ ン フ ァ イルを開き ます。

create_wave_config 波形コ ンフ ィ ギュ レーシ ョ ン フ ァ イルを新規作成し ます。

get_wave_configs 指定し たオプシ ョ ンに一致する波形コ ン フ ィ ギ ュ レーシ ョ ンを取得し ます。

current_wave_config 現在の WCFG オブジ ェ ク ト を取得 し、 指定 し た WCFG オブ ジェ ク ト があ る場合はそれに設定し ます。

save_wave_config 指定し たま たは現在の波形コ ン フ ィ ギ ュ レーシ ョ ン オブジ ェ ク ト を指定し たフ ァ イル名で保存し ます。

close_wave_config 波形コ ンフ ィ ギュ レーシ ョ ンを閉じ ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 81UG900 (v2013.1) 2013 年 3 月 20 日

Page 82: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

波形コ ン フ ィ ギュ レーシ ョ ンの保存

波形コ ンフ ィ ギュ レーシ ョ ンを WCFG フ ァ イルに保存するには、 [File] → [Save Waveform Configuration As] を ク リ ッ ク し、 波形コ ンフ ィ ギュ レーシ ョ ンの名前を入力し ます。

Tcl コ ン ソールに save_wave_config <waveform_name> と 入力する と、 指定し た波形コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イルが保存されます。

前のシ ミ ュ レーシ ョ ン設定からのシ ミ ュ レーシ ョ ン データの表示 (ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン) シ ミ ュ レーシ ョ ンを実行し て HDL オブジェ ク ト を波形ビ ューで表示する場合、シ ミ ュ レーシ ョ ンを実行する こ と で、 表示されている HDL オブジェ ク ト の波形ア ク テ ィ ビテ ィ を含む波形データベース (WDB) フ ァ イルが作成されます。

WDB フ ァ イルには、シ ミ ュ レーシ ョ ン されたデザイ ンの HDL ス コープ と オブジェ ク ト すべてに関する情報も含まれ ます。

「ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン」 は Vivado シ ミ ュ レータのモード で、 シ ミ ュ レーシ ョ ンを実行し て得たデータの代 わ り に、 WDB フ ァ イルからのデータがビ ューに表示されます。

こ のモー ド の場合、 下位に制御する ラ イ ブ シ ミ ュ レーシ ョ ン モデルがないので、 run コ マン ド のよ う なシ ミ ュ レー シ ョ ンを制御または監視する コマン ド は使用でき ません。

重要 : WDB フ ァ イルには後方置換性はな く 、OS 互換性も あ り ません。WDB フ ァ イルは、作成し たの と同じバージ ョ ンで、 同じ タ イプの OS で開 く 必要があ り ます。 WCFG フ ァ イルには後方互換性も OS 互換性も あ り ます。

ただし、 波形および HDL デザイ ン階層を表示する こ と はでき ます。 シ ミ ュ レータで波形コ ンフ ィ ギュ レーシ ョ ンが デフ ォル ト で作成される こ と はないので、新しい波形コ ンフ ィ ギュ レーシ ョ ンを作成するか、 WCFG フ ァ イルを開 く 必要があ り ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 82UG900 (v2013.1) 2013 年 3 月 20 日

Page 83: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

波形コ ン フ ィ ギュ レーシ ョ ンの HDL オブジ ェ ク ト HDL オブジェ ク ト を波形コ ンフ ィ ギュ レーシ ョ ンに追加する と、 波形ビ ューアーで HDL オブジェ ク ト の 「波形オブ ジェ ク ト 」 が作成されます。 波形オブジェ ク ト は、 HDL オブジェ ク ト に リ ン クはされますが、 別のものです。

同じ HDL オブジェ ク ト から複数の波形オブジェ ク ト を作成でき、 各波形オブジェ ク ト の表示プロパテ ィ を別々に設 定でき ます。

た と えば、 myBus と い う HDL オブジェ ク ト の波形オブジェ ク ト の 1 つの値を 16 進数で表示し、 myBus の別の波形 オブジェ ク ト を 10 進数で表示させる こ と ができ ます。

仕切 り 、 グループ、 仮想バスなどの別の種類の波形オブジェ ク ト も波形コ ンフ ィ ギュ レーシ ョ ンに表示でき ます。

HDL オブジ ェ ク ト から作成さ れた波形オブジェ ク ト は、 特に 「デザイ ン波形オブジ ェ ク ト 」 と 呼ばれます。 これら のオブジェ ク ト は、 それを示すア イ コ ンで表示されます。 デザイ ン波形オブジェ ク ト の場合、 アイ コ ンの背景でそのオブジェ ク ト がス カ ラー なのか、 Verilog ベク ターや VHDL レ コード などの複合型 なのかがわか り ます。

図 5-1 に、 波形コ ンフ ィ ギュ レーシ ョ ン ビ ューの HDL オブジェ ク ト の例を示し ます。

デザイ ン オブジェ ク ト には、 名前と値が表示されます。

• [Name] : デフ ォル ト では、 HDL オブジェ ク ト の名前が表示されます。 表示されるのは名前だけで、 オブジェ ク ト の階層パスは表示されません。 階層パスすべてを含めて名前を表示する、 または表示する テキ ス ト を指定し てカス タ ム名を割 り 当てる よ う に変更する こ と もでき ます。

• [Value] : オブジェ ク ト の値を波形ビ ューの メ イ ン カーソルに示される時間で表示し ます。 値のフ ォーマ ッ ト は、 同じ HDL オブジ ェ ク ト に リ ン ク さ れたほかのデザ イ ン波形オブジ ェ ク ト のフ ォーマ ッ ト に関係な く 、 および [Objects] ビ ューおよびソース コード ビ ューに表示される値のフ ォーマ ッ ト に関係な く 、 変更でき ます。

X-Ref Target - Figure 5-1

図 5-1 : 波形 HDL オブジ ェ ク ト

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 83UG900 (v2013.1) 2013 年 3 月 20 日

Page 84: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

[Scopes] ビ ューの使用

図 5-2 は、 Vivado シ ミ ュ レータの [Scopes] ビ ューを示し ています。

[Scopes] ビ ュー内でス コープをフ ィ ルターするには、 次のいずれかの方法を使用し ます。

• 一部のス コープを表示させないよ う にするには、 次を実行し ます。 1 つまたは複数のス コープ フ ィ ルター ボタ ンを ク リ ッ ク し ます。

• 特定の文字列を含むス コープに表示を限定するには、 [Zoom] ボタ ンを ク リ ッ ク し ます。 テキス ト ボ ッ ク スに文字列を入力し ます。

ス コープを ク ッ ク し て も [Scopes] ビ ュー内のオブジェ ク ト を フ ィ ルターでき ます。 ス コープを選択する と、 [Scopes] ポ ッ プア ッ プ メ ニューには次のオプシ ョ ンが含まれます。

• [Add to Wave Window] : 選択し たス コープの表示可能な HDL オブジェ ク ト すべてを波形コ ンフ ィ ギュ レーシ ョ ン に追加し ます。

または、 オブジェ ク ト を [Objects] ビ ューから波形ビ ューの [Name] 列まで ド ラ ッ グ アン ド ド ロ ッ プし ます。

重要 : オブジェ ク ト の波形には、 オブジェ ク ト がビ ューに追加された と きのシ ミ ュ レーシ ョ ン時間のみが表示されま す。 波形コ ンフ ィ ギュ レーシ ョ ンの作成や HDL オブジェ ク ト の追加など、 波形コ ンフ ィ ギュ レーシ ョ ンへの変更は、 WCFG フ ァ イルを保存する まで永久ではあ り ません。

• [Go To Source Code] : 選択し たス コープの定義でソース コード を開き ます。

• [Go To Instantiation Source code] : Verilog モジュールおよび VHDL エンテ ィ テ ィ イ ンス タ ンスの場合、選択し たイ ンス タ ンスのイ ンス タ ンシエーシ ョ ン時点でソース コード を開き ます。

ソース コード テキス ト エデ ィ ターでフ ァ イルの識別子にカーソルを置 く と値が表示されます (85 ページ目の図 5-3)。

重要 : こ の機能を使用するには、 [Scopes] ビ ューで正しいス コープが選択されている必要があ り ます。

X-Ref Target - Figure 5-2

図 5-2 : [Scopes] ビュー

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 84UG900 (v2013.1) 2013 年 3 月 20 日

Page 85: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

[Objects] ビ ューの使用

図 5-4 は、 Vivado シ ミ ュ レータの [Objects] ビ ューを示し ています。

一部の HDL オブジェ ク ト タ イプは、 次の方法で非表示にでき ます。 1 つまたは複数のオブジェ ク ト フ ィ ルター ボタ ンを ク リ ッ ク し ます。ボ タ ンの上にカーソルを置 く と、オブジェ ク ト タ イプを示すツール ヒ ン ト が表示されます。

X-Ref Target - Figure 5-3

図 5-3 : 識別子が表示されたソース コー ド

X-Ref Target - Figure 5-4

図 5-4 : [Objects] ビ ュー

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 85UG900 (v2013.1) 2013 年 3 月 20 日

Page 86: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

波形のカス タ マイズ

オブジェ ク ト を選択する と、 ポ ッ プア ッ プ メ ニューには 次のオプシ ョ ンが含まれます。

• [Add to Wave Window] : 選択し たオブジェ ク ト を波形コ ンフ ィ ギュ レー シ ョ ンに追加し ます。

または、 オブジェ ク ト を [Objects] ビ ューから波形ビ ューの [Name] 列ま で ド ラ ッ グ アン ド ド ロ ッ プし ます。

• [Radix] : 選択し たオブジェ ク ト の値を [Objects] ビ ューおよびソース コード ビ ューで表示する際に使用する数形式を選択し ます。

• [Go To Source Code] : 選択し たオブジェ ク ト の定義でソース コード を開 き ます。

ヒ ン ト : Verilog イベン ト 、 Verilog パラ メ ーター、 VHDL 定数、 大 ト レース可能サイ ズ ( 『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ンス ガ イ ド』 (UG835)[参照 6] の trace_limit プロパテ ィ を参照) よ り も多いエレ メ ン ト など 、 波 形と し ては表示でき ない HDL オブジェ ク ト も あ り ます。 または、 Tcl コ ン ソールに trace_limit -help と入力し ます。

波形のカス タ マイズ次のセ ク シ ョ ンでは、 波形をカス タマイ ズする際に使用でき るオプシ ョ ンについて説明し ます。

アナログ波形の使用

こ こ では、 アナロ グ波形の機能および要件について説明し ます。

基数およびアナログ波形の使用

バスの値が数値と し て処理される方法は、 バス波形オブジェ ク ト の基数設定によ って決ま り ます。

• 2 進数、 8 進数、 16 進数、 ASCII、 および符号な しの 10 進数の基数を使用する と、 バスの値が符号なしの整数と し て処理されます。

• 0 または 1 以外のビ ッ ト を使用する と、 全体の値が 0 と し て解釈されます。

• 符号付きの 10 進数基数を使用する と、 バスの値が符号付き整数と し て処理されます。

• 実数基数を使用する と、 バス の値は固定小数点ま たは浮動小数点の実数 と し て処理 さ れます。 こ れは、 [RealSettings] ダ イ ア ロ グ ボ ッ ク スの設定によ って決ま り ます。

波形オブジェ ク ト の基数を実数に設定する手順は、 次の とお り です。

1. [Real Settings] ダ イ ア ロ グ ボ ッ ク ス を開き ます (87 ページ目の図 5-5)。

2. 波形コ ンフ ィ ギュ レーシ ョ ン ビ ューで HDL オブジェ ク ト を選択し、右ク リ ッ クのポ ッ プア ッ プ メ ニ ューから開 き ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 86UG900 (v2013.1) 2013 年 3 月 20 日

Page 87: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

波形のカス タ マイズ

波形の基数を [Real] に設定する と、オブジェ ク ト の値が実数で表示される よ う にでき ます。この基数を選択する前に、 その値のビ ッ ト の変換方法を波形ビ ューアーで指定し てお く 必要があ り ます。

[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> 値にな り ます。

ヒ ン ト : 行番号を分ける ラ イ ンが表示されない場合は、 91 ページ目の 「[Waveform Options] ス ラ イ ド アウ ト 」 でオン にし て、 表示される よ う にし ます。

波形のアナログ表示

HDL バス オブジェ ク ト をアナロ グ波形で表示し て予測される波形を出力する場合、 HDL オブジェ ク ト のデータの性 質と一致する基数を選択する こ と が重要にな り ます。

• バスでエン コード されるデータが 2 の補数の符号付き整数の場合は、 符号付きの基数を選択する必要があ り ま す。

• データが IEEE 形式にエン コード される浮動小数点の場合は、 基数に real を選択する必要があ り ます。

X-Ref Target - Figure 5-5

図 5-5 : [Real Settings] ダイアログ ボ ッ ク ス

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 87UG900 (v2013.1) 2013 年 3 月 20 日

Page 88: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

波形のカス タ マイズ

アナログ波形表示のカス タ マイズ

アナロ グ波形の表示は次のよ う にカス タマイ ズでき ます。

1. 波形ビ ューの [Name] でバス を右ク リ ッ ク し ます。

2. [Waveform Style] を ク リ ッ ク し、 次のいずれかを ク リ ッ ク し ます。

° [Analog] : デジタル波形をアナロ グに設定し ます。

° [Digital] : アナロ グ波形オブジェ ク ト をデジ タルに設定し ます。

° [Analog Settings] : 88 ページ目の図 5-6 に、 アナロ グ波形表示を設定す る [Analog Settings] ダ イ ア ロ グ ボ ッ ク ス を示し ます。

[Analog Settings] ダ イ ア ロ グ ボ ッ ク スでは、 次のオプシ ョ ンを設定でき ます。

• [Row Height] : 選択し た波形オブジェ ク ト の高さ を ピ ク セルで指定し ます。 行の高さ を変更し て も波形の垂直方 向の表示域は変わ り ませんが、 波形の高さの伸縮が変わ り ます。

アナロ グ とデジ タルを切 り 替え る と き、 行の高さはそれぞれに合った適切なデフ ォル ト の高さ に設定されます ( デジ タルの場合は 20、 アナロ グの場合は 100)。

• [Y Range] : 波形エ リ アに表示される数値の範囲を指定し ます。

° [Auto] : 表示されている時間の範囲の値が現在の範囲を超えた と きに、 表示範囲が拡大されます。

° [Fixed] : 時間範囲を一定にし ます。

° [Min] : 波形エ リ アの一番下に表示される値を指定し ます。

° [Max] : 波形エ リ アの一番上に表示される値を指定し ます。

どち らの値も浮動小数点と し て指定でき ますが、 波形オブジェ ク ト の基数が整数の場合、 値は整数に切 り 捨て られます。

X-Ref Target - Figure 5-6

図 5-6 : [Analog Settings] ダイアログ ボ ッ クス

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 88UG900 (v2013.1) 2013 年 3 月 20 日

Page 89: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

波形のカス タ マイズ

• [Interpolation Style] : データ ポイ ン ト を接続する ラ イ ンの描画方法を指定し ます。

° [Linear] : 2 つのデータ ポイ ン ト 間のラ イ ンを直線にし ます。

° [Hold] : 2 つのデータ ポ イ ン ト の う ち、 左のポ イ ン ト から右のポ イ ン ト の X 軸に向かって水平ラ イ ンを描画 し、 そのラ イ ンから右のポ イ ン ト に向かって別のラ イ ンを L 字型に描画し ます。

• [Off Scale] : 波形エ リ アの Y 軸を超えた値を どのよ う に描画するかを指定し ます。

° [Hide] : 範囲外にあ る値を非表示にし ます。 波形エ リ アの上下の範囲外にあ る ものは、 範囲内に戻る までは 非表示にな り ます。

° [Clip] : 範囲外にあ る値は変更され、波形エ リ アの上下境界線を超え る と範囲内に戻る までは水平ラ イ ン と し て表示されます。

° [Overlap] : 波形エ リ アの境界線を越えていて、 ほかの波形と重なっていて も、 波形ウ ィ ン ド ウの境界に達す る までは波形の値がど こにあって も波形が描画されます。

• [Horizontal Line] : 指定し た値で水平方向のラ イ ンを描画するかど う か指定し ます。 こ のチェ ッ ク ボ ッ ク スがオン の場合、 グ リ ッ ド ラ イ ンが指定し た Y 軸の位置で描画されます (値が波形の Y 軸の範囲内にあ る場合)。

[Min] および [Max] の場合と同様、 Y 軸の値には浮動小数点値を指定でき ますが、 選択し た波形オブジェ ク ト の 基数が整数の場合は、 整数値に切 り 捨て られます。

重要 : ズーム設定は波形コ ンフ ィ ギュ レーシ ョ ンには保存されません。

基数

バスのデータ型を理解する こ と は重要です。 デジタルおよびアナロ グの波形オプシ ョ ンを効果的に使用するには、 基数設定 とデータ型の関係を知ってお く 必要があ り ます。 基数設定およびそのアナロ グ波形解析への影響については、87 ページ目の 「波形のアナロ グ表示」 を参照し て く ださ い。

デフ ォル ト 基数の変更

デフ ォル ト の波形基数では、 明示的に設定し ていない基数の波形オブジェ ク ト すべての値が数形式で制御されます。デフ ォル ト の波形基数は、 binary です。

デフ ォル ト の波形基数を変更するには、 次の手順に従って く だ さい。

1. 波形ビ ューのサイ ドバーで [Waveform Options] ボタ ンを ク リ ッ ク し、 波形オプシ ョ ンのビ ューを開き ます。

2.[General] ページで [Default Radix] ド ロ ッ プダウ ン メ ニューを ク リ ッ ク し ます。

3.ド ロ ッ プダウ ン リ ス ト から基数を選択し ます。

波形オブジ ェ ク ト ご との基数の変更

各波形オブジェ ク ト の基数を次のよ う に変更でき ます。

1. [Objects] ビ ューでバス を選択し ます。

2. [Radix] を ク リ ッ ク し、 ド ロ ッ プダ ウ ン メ ニ ューから フ ォーマ ッ ト を選択し ます。

° [Binary] (2 進数)

° [Hexadecimal] (16 進数)

° [Unsigned Decimal] (符号な し 10 進数)

° [Signed Decimal] (符号付き 10 進数)

° [Octal] (8 進数)

° [ASCII] (デフ ォル ト )

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 89UG900 (v2013.1) 2013 年 3 月 20 日

Page 90: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

波形のカス タ マイズ

Tcl コ ン ソールから表示された値を数値の形式に変更するには、 次を入力し ます。

set_property radix <radix> [current_sim]

<radix> は、 bin、 unsigned、 hex、 dec、 ascii、 oct のいずれかにな り ます。

重要 : [Objects] ビ ューで基数を変更し て も、波形ビ ューまたは [Tcl Console] の値は変更されません。波形ビ ューで個々 の波形オブジェ ク ト の基数を変更するには、 波形ビ ューのポ ッ プア ッ プ メ ニューを使用し て く だ さい。

波形オブジ ェ ク ト の命名

オブジェ ク ト 名は変更し た り 、 表示し た り 、 表示を変更し た り でき ます。

オブジ ェ ク ト 名の変更

デザ イ ン波形オブジ ェ ク ト 、 仕切 り 、 グループ、 仮想バス などの波形コ ン フ ィ ギ ュ レーシ ョ ンに含まれる波形オブジェ ク ト の名前は変更でき ます。

1. [Name] 列でオブジェ ク ト 名を選択し ます。

2. 右ク リ ッ ク し、 [Rename] を ク リ ッ ク し ます。

[Rename] ダ イ ア ロ グ ボ ッ ク スが開き ます。

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] : 信号のカ ス タ ム名を表示し ます。 詳細は、 90 ページ目の 「オブジェ ク ト 名の変更」 を参照し て く だ さい。

注記 : [Long] および [Short] の名前はデザイ ン波形オブジェ ク ト に対し てのみ意味があ り ます。その他のオブジェ ク ト (仕切 り 、 グループ、 仮想バス) はデフ ォル ト で [Custom] 名で表示され、 [Long] および [Short] 名に対する ID 文字列が 表示されます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 90UG900 (v2013.1) 2013 年 3 月 20 日

Page 91: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

波形のカス タ マイズ

バス ビ ッ ト 順の反転

波形コ ンフ ィ ギュ レーシ ョ ンでバス ビ ッ ト 順を反転し て、MSB の 上位バイ ト (ビ ッ グ エンデ ィ アン) および LSB の 下位バイ ト のビ ッ ト 順を切 り 替え る こ と で、 バス値を表示でき ます。

ビ ッ ト 順序を逆にするには、 次の手順に従います。

1. バス を選択し ます。

2. 右ク リ ッ ク し、 [Reverse Bit Order] を ク リ ッ ク し ます。

これでバス ビ ッ ト の順序が逆にな り ます。 [Reverse Bit Order] コマン ド の横にチェ ッ ク マーク が表示され、 適用 されている こ と が示されます。

[Waveform Options] スラ イ ド アウ ト

[Waveforms Options] ボタ ン を ク リ ッ クする と、 [Waveforms Options] ス ラ イ ド ア ウ ト が開き ます (図 5-7)。

[General Waveform Options] には、 次のオプシ ョ ンがあ り ます。

• [Default Radix] : 新し く 作成し た波形オブジェ ク ト に使用する数値形式を設定し ます。

• [Draw Waveform Shadow] : 影付きの波形が作成されます。

• [Show signal indices] : オンにする と、 波形オブジェ ク ト 名の左に行番号を表示でき ます。 行番号を分けている ラ イ ンを ド ラ ッ グする と、 波形オブジェ ク ト の高さ を変更でき ます。

• [Colors] ページでは、 波形ビ ュー内のア イ テムの色を設定でき ます。

X-Ref Target - Figure 5-7

図 5-7 : [Waveform Options] スラ イ ド アウ ト

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 91UG900 (v2013.1) 2013 年 3 月 20 日

Page 92: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

波形表示の制御

波形表示の制御 波形表示は、 次のよ う に制御でき ます。

• [Objects] ビ ューのサイ ド バーにあ る ズーム ボタ ン

• マウ ス ホ イールを使用し たズームの組み合わせ

• Vivado IDE Y 軸のズーム機能

• Vivado シ ミ ュ レーシ ョ ンの X 軸のズーム機能。 Vivado IDE の X 軸の拡大に関する詳細は、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 2] を参照し て く ださ い。

注記 : ほかの Vivado のグ ラ フ ィ ッ ク ビ ューと は異な り 、 波形ビ ューの拡大/縮小は Y 軸に関係な く 、 X (時間) 軸にの み適用されます。このため、ビ ューを拡大/縮小する範囲を指定する [Zoom Range X] が、ほかの Vivado ビ ューの [Zoom to Area] の代わ り に使用されます。

ズーム機能の使用

波形コ ンフ ィ ギュ レーシ ョ ンのズーム機能には、 ツールバー ボタ ン を使用し ます。

マウス ホイールを使用し たズーム

波形を ク リ ッ ク し て Ctrl キーを押し ながら マウ ス ホ イールを使用する と、 オシ ロ ス コープのダ イ ヤル操作の よ う にズーム表示をする こ と もでき ます。

Y 軸のズーム機能

X 軸方向のズームでサポー ト されている機能に加え、 アナロ グ波形の場合は、 図 5-8 に示す追加のズーム機能があ り ます。

X-Ref Target - Figure 5-8

図 5-8 : アナログ ズームのオプシ ョ ン

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 92UG900 (v2013.1) 2013 年 3 月 20 日

Page 93: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

波形の分類

ズーム機能を使用するには、 マウ スの左ボタ ンを押し たま ま、 図で示されている方向にマウ ス を ド ラ ッ グ し ます。 この図の中央がマウ スの位置です。

次の追加ズーム機能があ り ます。

• [Zoom Out Y] : 開始点から マウ ス ボタ ンを放し た位置までの距離によ り 、2 のべき乗分 Y 軸方向にズーム アウ ト し ます。 開始点のマウ ス位置の Y 値をそのま ま維持し てズームが実行されます。

• [Zoom Y Range] :縦方向にラ イ ンを描き、 マウ ス ボ タ ンを離し た位置までの Y 軸の範囲を表示し ます。

• [Zoom In Y] : 開始点からマウ ス ボタ ンを放し た位置までの距離によ り 、 2 のべき乗分 Y 軸方向にズーム イ ン し ます。 開始点のマウ ス位置の Y 値をそのま ま維持し てズームが実行されます。

• [Reset Zoom Y] : 波形ウ ィ ン ド ウに現在表示されている値に Y の範囲を リ セ ッ ト し、 Y の範囲モード を [Auto] に 設定し ます。

Y 軸の方向のズーム機能はすべて Y の範囲のアナロ グ値を設定し ます。 [Reset Zoom Y] は Y の範囲を [Auto] に設定 し ますが、 ほかのズーム機能は [Fixed] に設定し ます。

次の制限に注意し て く だ さい。

• 実数での 大バス幅は 64 ビ ッ ト です。

• Verilog real および VHDL real はアナロ グ波形のよ う にサポー ト されません。

• 浮動小数点では 32 ビ ッ ト および 64 ビ ッ ト の配列のみがサポー ト されています。

波形の分類こ こ では、 波形内の情報を分類するオプシ ョ ンについて説明し ます。

グループの使用

グループ と は、 波形コ ンフ ィ ギュ レーシ ョ ンに波形オブジェ ク ト を追加する ための拡張可能な入れ物の こ と で、 これによ り 関連し た波形オブジェ ク ト セ ッ ト が整頓でき ます。 グループ自体は波形データ を表示し ませんが、その内容の 表示/非表示を切 り 替え る こ と ができ ます。 グループは追加、 変更、 削除でき ます。

グループを追加するには、 次の手順に従います。

1. 波形ビ ューで、 グループに追加する波形オブジェ ク ト を 1 つまたは複数選択し ます。

注記 : グループには、 仕切 り 、 仮想バス、 ほかのグループを含める こ と ができ ます。

2. [Edit] → [New Group] を ク リ ッ クするか、 右ク リ ッ ク し て [New Group] を ク リ ッ ク し ます。

これによ り 、 選択し た波形オブジェ ク ト を含むグループが波形コ ンフ ィ ギュ レーシ ョ ンに追加されます。

Tcl コ ン ソールで add_wave_group を入力する と、 新しいグループが追加されます。

グループは、 グループ ア イ コ ンで表されます。 HDL オブジ ェ ク ト を ド ラ ッ グ アン ド ド ロ ッ プし て、 グループに 信号やバス を追加する こ と もでき ます。

波形コ ンフ ィ ギュ レーシ ョ ン フ ァ イルを保存する と、新しいグループ と それに含まれる波形オブジェ ク ト も保存され ます。

グループは、 次の方法で移動または削除でき ます。

• グループを移動するには、 [Name] 列のグループ名を別の位置に ド ラ ッ グ アン ド ド ロ ッ プし ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 93UG900 (v2013.1) 2013 年 3 月 20 日

Page 94: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

波形の分類

• グループを削除するには、 グループを選択し て [Edit] → [Wave Objects] → [Ungroup] を ク リ ッ クするか、グループ を右ク リ ッ ク し て [Ungroup] を ク リ ッ ク し ます。グループに含まれていた波形オブジェ ク ト は、波形コ ンフ ィ ギュ レーシ ョ ンの一番上に配置されます。

グループ名も変更でき ます。 詳細は、 90 ページ目の 「オブジェ ク ト 名の変更」 を参照し て く ださ い。

注意 : Delete キーを押す と、 グループ と、 それに含まれている波形オブジェ ク ト が波形コ ンフ ィ ギュ レーシ ョ ンから 削除されます。

仕切りの使用

仕切 り は、 HDL オブジ ェ ク ト を見やす く 区切 り ます。 波形コ ンフ ィ ギュ レーシ ョ ンに仕切 り を追加するには次の手 順に従います。

1. 波形ビ ューの [Name] 列で、 下に仕切 り を追加する信号を ク リ ッ ク し ます。

2. [Edit] → [New Divider] を ク リ ッ クするか、 右ク リ ッ ク し て [New Divider] を ク リ ッ ク し ます。

新しい仕切 り マークは、 波形コ ンフ ィ ギュ レーシ ョ ン フ ァ イルを保存し た と きに保存されます。

Tcl コ ン ソールで add_wave_divider を入力する と、 新しい分周器が追加されます。

仕切 り は、 次の方法で移動または削除でき ます。

• 仕切 り を移動するには、 名前を別の位置に ド ラ ッ グ アン ド ド ロ ッ プし ます。

• 仕切 り を削除するには、 Delete キーを押すか、 または右ク リ ッ ク し てポ ッ プア ッ プ メ ニューから [Delete] を ク リ ッ ク し ます。

仕切 り の名前も変更でき ます。 詳細は、 90 ページ目の 「オブジェ ク ト 名の変更」 を参照し て く ださ い。

仮想バスの使用

仮想バス を波形コ ンフ ィ ギュ レーシ ョ ンに追加する と、 論理ス カ ラーおよびベク ターを追加でき ます。

仮想バスはバス波形を表示し ます。 バス波形の値は、 仮想バスの下に表示される上から順番に、 追加されたスカ ラー および配列から対応する値を取 り 出し て、 1 次元のベク ターに平坦化する こ と で作成されます。

仮想バス を追加するには、 次の手順に従います。

1. 波形コ ンフ ィ ギュ レーシ ョ ンで、 仮想バスに追加する波形オブジェ ク ト を 1 つまたは複数選択し ます。

2. [Edit] → [New Virtual Bus] を ク リ ッ クするか、 右ク リ ッ ク し て [New Virtual Bus] を ク リ ッ ク し ます。

仮想バスは、 仮想バス ア イ コ ン で表されます。

Tcl コ ン ソールで add_wave_virtual_bus を入力する と、 新しい仮想バスが追加されます。

信号名やバス名を ド ラ ッ グ アン ド ド ロ ッ プする と、 仮想バスに論理ス カ ラーおよび配列を移動でき ます。

波形コ ンフ ィ ギュ レーシ ョ ン フ ァ イルを保存する と、 新しい仮想バス と それに含まれる ものも保存されます。 また、 仮想バスの名前を波形の別位置に ド ラ ッ グ アン ド ド ロ ッ プし て移動でき ます。

仮想バスの名前を変更するには、 90 ページ目の 「オブジェ ク ト 名の変更」 を参照し て く ださ い。

仮想バス を削除し、 その中に含まれる も のをグループ解除する には、 仮想バス を選択し、 [Edit] → [Wave Objects] → [Ungroup] を ク リ ッ クするか、 または右ク リ ッ ク し てポ ッ プア ッ プ メ ニューの [Ungroup] を ク リ ッ ク し ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 94UG900 (v2013.1) 2013 年 3 月 20 日

Page 95: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

波形の解析

注意 : Delete キーを押すと、仮想バス と、 それに含まれている HDL オブジェ ク ト が波形コ ンフ ィ ギュ レーシ ョ ンから 削除されます。

波形の解析こ こ では、 波形内のデータ を解析する機能について説明し ます。

カーソルの使用

カーソルは、 時間を一時的に示すために使用し ます。 2 つの波形エ ッ ジ間の距離 (時間) を計測する場合には、 カーソ ルを頻繁に移動し ます。

ヒ ン ト : WCFG フ ァ イルには、 カーソ ル位置は記録さ れません。 複数の計測の時間軸を設定する場合やシ ミ ュ レー シ ョ ンでの重要な イベン ト を示す場合な ど、 一時的ではない イ ンジケーターを設定する必要があ る場合は、 波形ビ ューにマーカーを追加し ます。 詳細は、 96 ページ目の 「マーカーの使用」 を参照し て く ださ い。

メ イ ン カーソルと 2 つ目のカーソル

波形を 1 回ク リ ッ クする と、 メ イ ン カーソルが配置されます。

2 つ目のカーソルを配置するには、 Ctrl キーを押し ながら ク リ ッ ク し、 マウ ス を左または右に ド ラ ッ グ し ます。 カー ソルの上に位置を示すフ ラ グが表示されます。 または、 Shift キーを押し たま ま波形のど こ かを ク リ ッ ク し ます。

2 つ目のカーソルがオンになっていない場合、 こ の動作によ り 2 つ目のカーソルが メ イ ン カーソルの現在の位置に設 定され、 メ イ ン カーソルが ク リ ッ ク し た位置に配置されます。

注記 : 2 つ目のカーソルの位置を保持し ながら メ イ ン カーソルの位置を変更するには、Shift キーを押し ながら ク リ ッ ク し ます。 2 つ目のカーソルを ド ラ ッ グ し て配置する場合、 小間隔以上ド ラ ッ グ し ない と 2 つ目のカーソルは表示 されません。

カーソルの移動

カーソ ルを移動する には、 ポ イ ン ターが手のひら のマーク にな る までマウ ス を動かし、 ク リ ッ ク し て次の位置までカーソルを ド ラ ッ グ し ます。

カーソルを ド ラ ッ グする際、 [Snap to Transtion] がオンになっている と (デフ ォル ト )、 中が塗 り つぶされていない丸ま たは中が塗 り つぶされた丸が表示されます。

• 中が塗 り つぶされていない丸 は、 選択し た信号の波形の遷移間にあ る こ と を示し ます。

• 中が塗 り つぶされた丸 は、カーソルがマウ スの下またはマーカーの波形の遷移でロ ッ ク されている こ と を示 し ます。

カーソル、マーカー、フ ロー ト し ているルーラーがない場所を ク リ ッ クする と、2 つ目のカーソルが非表示にな り ます。

次または前の遷移の検索

波形ビ ューのサイ ド バーには、メ イ ン カーソルを現在の位置から選択し た波形の次または前の遷移に移動させる ため のボ タ ンが含まれます。

メ イ ン カーソルを波形の次または前の遷移に移動するには、 次を実行し ます。

1. 波形の波形オブジェ ク ト 名を ク リ ッ ク し てア ク テ ィ ブにし ておき ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 95UG900 (v2013.1) 2013 年 3 月 20 日

Page 96: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

波形の解析

これで波形オブジェ ク ト が選択され、 オブジェ ク ト の波形が通常よ り も太いラ イ ンで表示されます。

2. サイ ド バーの [Next Transition] または [Previous Transition] ボタ ン を ク リ ッ クするか、 キーボード の右矢印ま たは左矢印キーを使用し て、 次または前の遷移に移動し ます。

ヒ ン ト : 複数の波形オブジェ ク ト を一緒に選択する と、 波形セ ッ ト の一番近い遷移に移動し ます。

フ ロー ト ルーラーの使用

波形ウ ィ ン ド ウの上部にあ る標準ルーラーの絶対シ ミ ュ レーシ ョ ン時間以外の時間ベース を使用し て時間を計測するには、 フ ロー ト ルーラーを使用する と便利です。

フ ロー ト ルーラーは表示 (または非表示) にでき、 ド ラ ッ グ し て波形ウ ィ ン ド ウで垂直方向の位置に変更する こ と が でき ます。 こ のルーラーの時間ベース (時間 0) は 2 番目のカーソルで、 こ のカーソルがない場合は、 選択されたマー カーにな り ます。

フ ロー ト ルーラー ボタ ン およびフ ロー ト ルーラーは、 2 番目のカーソルまたはたマーカーがあ る場合にのみ表 示されます。

1. ルーラーの表示/非表示を切 り 替え るには、 次のいずれかを実行し ます。

° 2 番目のカーソルを配置

° マーカーを選択

2. [Floating Ruler] ボタ ンを ク リ ッ ク し ます。

この操作は 初に 1 回だけ実行し、繰 り 返す必要はあ り ません。 フ ロー ト ルーラーは 2 番目のカーソルが置 く た び、 またはマーカーが選択される たびに表示されます。

ルーラーを非表示にするには、 このコマン ド を も う 一度ク リ ッ ク し ます。

マーカーの使用

波形内の重要イベン ト を恒久的にマークする必要があ る場合はマーカーを使用し ます。 マーカーを使用する と、 マーカーが付け られた イベン ト に関連し た時間を計測でき ます。

マーカーは、 次のよ う に追加、 移動、 削除でき ます。

• メ イ ン カーソルの位置に波形コ ンフ ィ ギュ レーシ ョ ンにマーカーを追加し ます。

a. 波形ビ ューの時間または遷移を ク リ ッ ク し て、 マーカーを追加する時間の箇所に メ イ ン カーソルを置き ま す。

b. [Edit] → [Add Marker] を ク リ ッ クするか、 または [Add Marker] ボタ ンを ク リ ッ ク し ます。

カーソル位置にマーカーが配置されます。マーカーがその位置に既にあ る場合は、若干オフセ ッ ト されます。マーカーの時間が上部に表示されます。

Tcl コ ン ソールで add_wave_marker <-filename> <-line_number> と入力する と、新しい波形マーカーが 作成されます。

• マーカーを波形ビ ューの別の位置に移動するには、 ド ラ ッ グ アン ド ド ロ ッ プし ます。マーカー ラベル (マーカー 上部またはマーカー ラ イ ン) を ク リ ッ ク し て ド ラ ッ グ し ます。

° ド ラ ッ グ シンボル は、 マーカーが移動可能であ る こ と を示し ます。 マーカーを ド ラ ッ グする際、 [Snap to Transtion] がオンになっている と (デフ ォル ト )、 中が塗 り つぶされていない丸または中が塗 り つぶされた 丸が表示されます。

° 中が塗 り つぶされている丸 は、 選択し た信号の波形の遷移地点、 または別のマーカー上であ る こ と を 示し ます。

° マーカーの場合は、 丸は白 く 塗 り つぶされています。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 96UG900 (v2013.1) 2013 年 3 月 20 日

Page 97: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

波形の解析

° 中が塗 り つぶされていない丸 は、 マーカーがマウ スの下またはマーカーの波形の遷移でロ ッ ク されて いる こ と を示し ます。

新しい位置にマーカーを ド ロ ッ プするには、 マウ スのボタ ンを放し ます。

• 1 つのコマン ド でマーカーを 1 つ、 またはすべて削除でき ます。 マーカーを右ク リ ッ ク し て、 次のいずれかの操 作を実行し ます。

° マーカーを 1 つ削除するには、 ポ ッ プア ッ プ メ ニューから [Delete Marker] を ク リ ッ ク し ます。

° マーカーをすべて削除するには、 ポ ッ プア ッ プ メ ニューから [Delete All Markers] を ク リ ッ ク し ます。

注記 : また、 Delete キーを使用し て選択し たマーカーを削除する こ と もでき ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン japan.xilinx.com 97UG900 (v2013.1) 2013 年 3 月 20 日

Page 98: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

付録 A

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

概要ザイ リ ン ク スでは、 次のサードパーテ ィ シ ミ ュ レータがサポー ト されます。

• Mentor Graphics QuestaSim/ModelSim

• Cadence Incisive Enterprise Simulator (IES)

• Synopsys VCS および VCS MX

• Aldec Active-HDL および Rivera-PRO*

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

Mentor Graphics 社の ModelSim/QuestaSim は、 Vivado™ Integrated Design Environment (IDE) を使用する と サポー ト され ます。 これらのシ ミ ュ レータは、直接起動でき ます。 Vivado から ModelSim または QuestaSim を起動するには、 Vivado IDE を起動する前にシ ミ ュ レータへのパス を設定する必要があ り ます。

Vivado IDE の使用方法については、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 2] を参 照し て く だ さい。

ModelSim/QuestaSim シ ミ ュ レータの詳細については、 次を参照し て く ださ い。

• http://www.mentor.com/products/fv/questa/

• http://www.mentor.com/products/fv/modelsim/

この付録では、 Vivado IDE 外でシ ミ ュ レーシ ョ ンを実行する方法を簡単に説明し、 Vivado IDE でどのよ う に特定のプ ロジェ ク ト を特定のサードパーテ ィ シ ミ ュ レータに設定するかについて説明し ます。

サポー ト されるサードパーテ ィ シ ミ ュ レーシ ョ ン ツールおよびバージ ョ ンに関する詳細は、『Vivado Design Suite ユー ザー ガ イ ド : リ リ ース ノー ト 、 イ ン ス ト ールおよびラ イセン ス』 (UG973) [参照 1] を参照し て く だ さい。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 98UG900 (v2013.1) 2013 年 3 月 20 日

Page 99: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

シ ミ ュ レーシ ョ ンのサー ドパーテ ィ ツール設定

シ ミ ュ レーシ ョ ンのサー ド パーテ ィ ツール設定シ ミ ュ レーシ ョ ンをサードパーテ ィ ツールに設定するには、 次のいずれかを実行し ます。

• $PATH 環境変数を使用し て手動でパス を ModelSim/QuestaSim に設定し ます。

• [Tools] → [Options] → [General] から、 Vivado IDE でシ ミ ュ レータへのパス を定義し ます (図 A-1)。

シ ミ ュ レータは、 Flow Navigator の [Simulation Settings] → [Simulation] → [More Simulation Options] から も設定でき ま す (59 ページの図 4-2)。

サード パーテ ィ シ ミ ュ レータはプロ ジェ ク ト ご と に設定する必要があ り ます。 デフ ォル ト は Vivado シ ミ ュ レータで す。

これらは、 Tcl コマン ド の launch_xsim または launch_modelsim を使用し て直接実行する こ と もでき ます。

その他のサード パーテ ィ シ ミ ュ レータの場合、 そのシ ミ ュ レータ を $PATH 環境変数に追加し、 その他必要なイ ン ス ト ール手順を実行する必要があ り ます。

また、 デザイ ンの Verilog または VHDL ネ ッ ト リ ス ト を記述し てシ ミ ュ レータにエク スポー ト し、 ベンダーから提供 されるサード パーテ ィ シ ミ ュ レーシ ョ ン ラ イブラ リ を使用し てシ ミ ュ レーシ ョ ンする必要があ り ます。 シ ミ ュ レー シ ョ ンの設定および実行に関する詳細は、 該当するサードパーテ ィ シ ミ ュ レータの資料を参照し て く だ さい。

重要 : サード パーテ ィ シ ミ ュ レーシ ョ ンを実行する前にラ イブラ リ のコ ンパイル順を確認し て く ださ い。

X-Ref Target - Figure A-1

図 A-1 : [Vivado Options] ダイアログ ボ ッ クスの [General] ページ

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 99UG900 (v2013.1) 2013 年 3 月 20 日

Page 100: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

modelsim.ini フ ァ イル

modelsim.ini フ ァ イルModelSim または QuestaSim の使用をサポー ト する ためには、 これら のシ ミ ュ レーターで使用でき る よ う にザイ リ ン ク ス シ ミ ュ レ ーシ ョ ン ラ イ ブ ラ リ を コ ン パ イ ルす る 必要が あ り ま す。 Vivado IDE の Tcl コ マ ン ド に compile_simlib と入力し、ModelSim および QuestaSim シ ミ ュ レータのシ ミ ュ レーシ ョ ン ラ イブラ リ を コ ンパイル し ます。

Tcl コマン ド に関する詳細は、『Vivado Design Suite Tcl コマン ド リ フ ァ レ ン ス ガイ ド』 (UG835) [参照 6] を参照するか、 Vivado IDE の Tcl コ ン ソールで compile_simlib -h と入力し ます。

ラ イブラ リ がコ ンパイルされる と、 シ ミ ュ レーターは modelsim.ini フ ァ イルを使用し て これらのコ ンパイル済み ラ イブラ リ を参照し ます。

modelsim.ini フ ァ イルは、 デフ ォル ト の初期化フ ァ イルで、 リ フ ァ レ ン ス ラ イ ブ ラ リ パス、 適化、 コ ンパイ ラー、 シ ミ ュ レーターの設定を指定する制御変数が含まれます。

[Simulation] ページには、 [QuestaSim/ModelSim] を選択し た場合、 ラ イ ブラ リ デ ィ レ ク ト リ 用の追加フ ィ ール ド が表 示されます。

Vivado ツールの検索順は、 次の とお り です。

• [Simulation Settings] の [Compiled library location] オプシ ョ ンで指定し たデ ィ レ ク ト リ

こ の オプ シ ョ ン は、 [Project Settings] ダ イ ア ロ グ ボ ッ ク ス の [Simulation] ページ で [Target simulator] に [QuestaSim/ModelSim] が設定されている場合にのみ表示されます。

• compxlib compile_simlib の実行時に設定された compxlib.compiled_library_dir 変数で指定される パス

• MODELSIM 環境変数で定義されたパス

重要 : 正しい modelsim.ini フ ァ イルがこれらのデ ィ レ ク ト リ にない場合は、 ザイ リ ン ク ス プ リ ミ テ ィ ブを含める デザイ ンをシ ミ ュ レーシ ョ ンでき ません。

RTL/ビヘイ ビア シ ミ ュ レーシ ョ ンの実行次は、 ザイ リ ン ク ス デザイ ンをシ ミ ュ レーシ ョ ンする際の手順です。

1. compile_simlib コマン ド を使用し てシ ミ ュ レーシ ョ ン ラ イブラ リ を コ ンパイルし ます。 詳細は、 『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド』 (UG835) [参照 6] を参照するか、 Vivado IDE の Tcl コ ン ソールで compile_simlib -h と入力し ます。

2. ソース フ ァ イルを集めて、 テス ト ベンチを作成し ます。 デザイ ンに IP が含まれる場合は、 Vivado Design Suite User Guide: Designing with IP (UG896) [参照 7] を参照し て く ださ い。

3. Verilog を使用する場合は、 glbl.v を コ ンパイルし ます。 詳細は、 第 2 章の 「グ ローバル リ セ ッ ト および ト ラ イ ステー ト の使用」 を参照し て く だ さい。

4. デザイ ンに SECUREIP が含まれる場合は、 次を実行し ます。

a. ModelSim : プ リ コ ンパイル ラ イブラ リ を使用するには、 VSIM で -L オプシ ョ ンを使用し て ラ イブラ リ を指 定し ます。 次はその例です。

vsim -t ps -L secureip -L unisims_ver work.<testbench> work.glbl

b. IES次のいずれかを使用し ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 100UG900 (v2013.1) 2013 年 3 月 20 日

Page 101: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

- IES の 1 ステ ッ プ プロセス

こ の場合、 ザイ リ ン ク ス ラ イブ ラ リ を コ ンパイルするのに、 compxlib を実行する必要はあ り ません。 次 の例に示すよ う に、 1 つのオプシ ョ ンのみを追加する必要があ り ます。

-f <Vivado_Install_Area>/data/secureip/ncsim/ies_secureip_cell.list.f

- IES の 1 ステ ッ プ プロセスの例

irun design>.v testbench>.v <Vivado_Install_Area>/data/verilog/src/glbl.v \ -f <Vivado_Install_Area>/data/secureip/ncsim/ies_secureip_cell.list.f\

-y <Vivado_Install_Area>/data/verilog/src/unisims +libext+.v \-y <Vivado_Install_Area>/data/verilog/src/unimacro +libext+.v \-y <Vivado_Install_Area>/data/verilog/src/retarget +libext+.v \+access+r+w

° IES の 3 ステ ッ プ プロセス

SecureIP ラ イブラ リ を コ ンパイルし、 CDS.lib および HDL.var に加えます。

c. VCS : 次のコマン ド をシ ミ ュ レーシ ョ ン コマン ド ラ イ ンに追加し、SecureIP フ ァ イルがシ ミ ュ レータで使用 される よ う にし ます。

-f <Vivado_Install_Area>/data/secureip/vcs/vcs_secureip_cell.list.f

VCS の例 :

vcs -f <Vivado_Install_Area>/data/secureip/vcs/vcs_secureip_cell.list.f \-y <Vivado_Install_Area>/data/verilog/xsim/unisims\-y <Vivado_Install_Area>/data/verilog/src/XILINXCORELIB\+incdir+<Vivado_Install_Area>/data/verilog/src +libext+.v\<Vivado_Install_Area>/data/verilog/src/glbl.v \-Mupdate -R <testfixture>.v <design>.v

5. デザイ ンを コ ンパイルし てシ ミ ュ レーシ ョ ン し ます。指定し たシ ミ ュ レータのユーザー ガイ ド を参照し て く ださ い。

注記 : 正し く シ ミ ュ レーシ ョ ン さ れる には、 UNISIM、 XILINXCORELIB、 SECUREIP、 UNIMACRO、 および UNNIFAST ラ イブラ リ が参照されている必要があ り ます。 詳細は、 第 2 章の 「シ ミ ュ レーシ ョ ン ラ イ ブラ リ の使用」 を参照し て く だ さい。

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

ネ ッ ト リ ス ト シ ミ ュ レーシ ョ ン プロセスの手順は 「RTL/ビヘイ ビア シ ミ ュ レーシ ョ ンの実行」 と同じにな り ます。

1. シ ミ ュ レーシ ョ ン ラ イブラ リ を コ ンパイルし ます。

2. シ ミ ュ レーシ ョ ン用のフ ァ イルを集めます (例 : 49 ページの図 3-2)。

a. RTL シ ミ ュ レーシ ョ ンに使用されたシ ミ ュ レーシ ョ ン テス ト ベンチは、 ほ と んどのデザイ ンで再利用でき ます。

b. write_verilog または write_vhdl を使用し、 シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト を生成し ます。

- 論理ネ ッ ト リ ス ト の場合は、 write_verilog -mode funcsim を使用し ます。

- タ イ ミ ング ネ ッ ト リ ス ト の場合は、 write_verilog -mode timesim を使用し ます。

- SDF には、 write_sdf を使用し ます。

次は、 その例です。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 101UG900 (v2013.1) 2013 年 3 月 20 日

Page 102: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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

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 章の 「グ ローバル リ セ ッ ト および ト ラ イ ステー ト の使用」 を参照し て く だ さい。

4. SECUREIP ラ イブラ リ を使用する場合は 100 ページの手順 4 を参照し て く ださい。

5. デザイ ンを コ ンパイルし てシ ミ ュ レーシ ョ ン し ます。使用する シ ミ ュ レータのユーザー ガイ ド を参照し て く ださ い。

注記 : 正し く シ ミ ュ レーシ ョ ン されるには、UNISIM、XILINXCORELIB、SECUREIP、および UNIFAST ラ イブラ リ が参照されている必要があ り ます。 詳細は、 第 2 章の 「シ ミ ュ レーシ ョ ン ラ イブラ リ の使用」 を参照 し て く だ さい。

タ イ ミ ング シ ミ ュ レーシ ョ ンの実行タ イ ミ ング シ ミ ュ レーシ ョ ンでは SIMPRIM ラ イブラ リ が使用されます。 タ イ ミ ング シ ミ ュ レーシ ョ ン プロセス中 は、 正しいラ イブラ リ を参照する必要があ り ます。

重要 : UNIMACRO、 XILINXCORELIB、 UNIFAST、 または UNISIM ラ イ ブ ラ リ は、 タ イ ミ ング シ ミ ュ レーシ ョ ンに は必要ああ り ません。

タ イ ミ ング シ ミ ュ レーシ ョ ンでは、ほかのオプシ ョ ンを使用し て、シ ミ ュ レータでパルスが正し く 処理される よ う に する必要があ り ます。 シ ミ ュ レータ コマン ド には、 次のオプシ ョ ンを追加する必要があ り ます。

• Mentor Graphics の QuestaSim/ModelSim および Synopsys VCS の場合

+transport_int_delays +pulse_int_e/0 +pulse_int_r/0

• Cadence の IES の場合

-pulse_r 0 -pulse_int_r

サー ド パーテ ィ シ ミ ュ レータ での SAIF のダンプSAIF (Switching Activity Interchange Format) に関する詳細は、 26 ページの 「SAIF のダンプ」 を参照し て く ださ い。

ModelSimModelSim では、 専用の消費電力コマン ド を使用し て、 SAIF フ ァ イルをダンプし ます。

1. 次のよ う に入力し、 ダンプする範囲または信号を指定し ます。

power add <hdl_objects>

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 102UG900 (v2013.1) 2013 年 3 月 20 日

Page 103: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

サー ドパーテ ィ シ ミ ュ レータ での SAIF のダンプ

2. 特定時間 (または run -all)、 シ ミ ュ レーシ ョ ンを実行し ます。

3. 次のよ う に入力し、 消費電力レポー ト をダンプし ます。

power report -all filename.saif

各コマン ド の使用方法や詳細については、 ModelSim のユーザー ガ イ ド を参照し て く だ さい。

do フ ァ イルの例

power add tb/fpga/*run 500uspower report -all -bsaif routed.saifquit

VCSVCS には、 SAIF を特定要件で生成するための消費電力コマン ド が含まれます。

1. 次のよ う に入力し、 生成する範囲または信号を指定し ます。

power <hdl_objects>

2. SAIF ダンプを イネーブルにし ます。 シ ミ ュ レータ GUI のコマン ド ラ イ ンを使用でき ます。

power -enable

3. 特定時間、 シ ミ ュ レーシ ョ ンを実行し ます。

4. 次のよ う に入力し、 消費電力のダンプをデ ィ スエーブルにし、 SAIF を レポー ト し ます。

power -disablepower -report filename.saif

各コマン ド の使用方法や詳細については、 VCS のユーザー ガ イ ド を参照し て く ださい。

Tcl コ マン ド フ ァ イルの例

power tb/fpga/*power -enablerun 500uspower -disablepower -report routed.saif

IESIES では、 Vivado シ ミ ュ レータの dumpvars コマン ド に似た dumpsaif コマン ド が使用されます。

1. 次のよ う に入力し、 ダンプする範囲と出力する SAIF フ ァ イルの名前を指定し ます。

dumpsaif -scope hdl_objects -output filename.saif

2. シ ミ ュ レーシ ョ ンを実行し ます。

3. 次のよ う に入力し て SAIF ダンプを終了し ます。

dumpsaif -end

各コマン ド の使用方法や詳細については、 IES のユーザー ガ イ ド を参照し て く だ さい。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 103UG900 (v2013.1) 2013 年 3 月 20 日

Page 104: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

サー ドパーテ ィ シ ミ ュ レータ での SAIF のダンプ

Tcl コ マン ド フ ァ イルの例

dumpsaif -scope /tb/fpga/* -output routed.saifrun 500nsdumpsaif -endquit

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 104UG900 (v2013.1) 2013 年 3 月 20 日

Page 105: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

サー ドパーテ ィ シ ミ ュ レータ でのデバッ グ

サー ド パーテ ィ シ ミ ュ レータ でのデバッ グ図 A-2 は、 サードパーテ ィ シ ミ ュ レータ を使用し たデバッ グのフ ローを示し ています。

X-Ref Target - Figure A-2

図 A-2 : デバッ グ フ ロー

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 105UG900 (v2013.1) 2013 年 3 月 20 日

Page 106: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

付録 B

Verilog および VHDL の例外

概要この付録では、 Verilog および VHDL サポー ト の例外について リ ス ト し ます。

VHDL 言語サポー ト の例外Vivado™ Integrated Design Environment (IDE) では、 次がサポー ト されます。

• VHDL IEEE-STD-1076-1993

• Verilog IEEE-STD-1364-2001

これらの言語のコ ンス ト ラ ク ト の中には、 Vivado シ ミ ュ レータでサポー ト されない もの も あ り ます。 次の表は、 これ らの例外を リ ス ト し ています。

.

表 B -1: VHDL 言語サポー ト の例外

サポー ト される VHDL コ ンス ト ラ ク ト 例外

abstract_literal 底付き定数と し て表示される浮動小数点はサポー ト されません。

alias_declaration オブジェ ク ト 以外へのエイ リ アスは通常、 特に次の場合サポー ト されません。

エイ リ アスのエイ リ アス

subtype_indication な しのエイ リ アス宣言 エイ リ アス宣言のシグナチャ

alias_designator と し ての演算子シンボル 演算子シンボルのエイ リ アス エイ リ アス宣言と し ての文字 リ テ ラル

alias_designator alias_designator と し ての operator_symbolalias_designator と し ての character_literal

association_element 結合エレ メ ン ト の実際のス ラ イ スについては、グ ローバル、ローカルな固定範囲を使用でき ます。

attribute_name 接頭語の後のシグナチャはサポー ト されません。

binding_indication entity_aspect を使用し ない binding_indication はサポー ト さ れません。

bit_string_literal 空の bit_string_literal (" ") はサポー ト されません。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 106UG900 (v2013.1) 2013 年 3 月 20 日

Page 107: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

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 内のパラ メ ーター関連付けでは、 ス ラ イ ス、 イ ンデッ ク スおよびフ ォーマルの選択がサポー ト されません。

instantiated_unit ダ イ レ ク ト コ ン フ ィ ギ ュ レ ーシ ョ ン イ ン ス タ ン シエー シ ョ ンはサポー ト されません。

mode リ ン ケージおよびバ ッ フ ァ ポー ト は完全にはサポー ト さ れません。

options guarded はサポー ト されません。

primary primary が使用 さ れた場所で、 ア ロ ケーターが拡張さ れま す。

procedure_call procedure_call 内のパラ メ ーター関連付けでは、ス ラ イ ス、 イ ンデッ ク スおよびフ ォーマルの選択がサポー ト されません。

process_statement postponed プロセスはサポー ト されません。

selected_signal_assignment オプシ ョ ンの一部であ る キーワー ド guarded は、 保護付 き信号代入がサポー ト されないため、サポー ト されません。

signal_declaration signal_kind はサポー ト さ れません。 signal_kind は サポー ト されない保護付き信号を宣言する ために使用されます。

subtype_indication 分解された複合体 (配列およびレ コード ) のサブタ イプはサ ポー ト されません。

表 B -1: VHDL 言語サポー ト の例外 (続き)

サポー ト される VHDL コ ンス ト ラ ク ト 例外

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 107UG900 (v2013.1) 2013 年 3 月 20 日

Page 108: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

Verilog 言語サポー ト の例外

Verilog 言語サポー ト の例外 次の表では、 Verilog の言語サポー ト の例外について リ ス ト し ます。

waveform unaffected はサポー ト されていません。

waveform_element 空の waveform エレ メ ン ト は、保護付き信号にのみ関連する ため、 サポー ト されません。

表 B -2: Verilog 言語サポー ト の例外

Verilog コ ンス ト ラ ク ト 例外

コ ンパイ ラー指示子のコ ンス ト ラ ク ト

`unconnected_drive サポー ト な し

`nounconnected_drive サポー ト な し

属性

attribute_instance サポー ト な し

attr_spec サポー ト な し

attr_name サポー ト な し

プ リ ミ テ ィ ブ ゲー ト およびス イ ッチ タ イプ

cmos_switchtype サポー ト な し

mos_switchtype サポー ト な し

pass_en_switchtype サポー ト な し

生成された イ ン ス タ ンシエーシ ョ ン

表 B -1: VHDL 言語サポー ト の例外 (続き)

サポー ト される VHDL コ ンス ト ラ ク ト 例外

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 108UG900 (v2013.1) 2013 年 3 月 20 日

Page 109: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

Verilog 言語サポー ト の例外

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

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 コ ンパイ ラー指示子は参照し ません。

システム タ イ ミ ング チェ ッ ク コマン ド

$skew_timing_check サポー ト な し

$timeskew_timing_check サポー ト な し

$fullskew_timing_check サポー ト な し

$nochange_timing_check サポー ト な し

システム タ イ ミ ング チェ ッ ク コマン ド の引数

checktime_condition サポー ト な し

表 B -2: Verilog 言語サポー ト の例外 (続き)

Verilog コ ンス ト ラ ク ト 例外

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 109UG900 (v2013.1) 2013 年 3 月 20 日

Page 110: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

Verilog 言語サポー ト の例外

PLA モデ リ ング タ ス ク

$async$nand$array サポー ト な し

$async$nor$array サポー ト な し

$async$or$array サポー ト な し

$sync$and$array サポー ト な し

$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

サポー ト な し

表 B -2: Verilog 言語サポー ト の例外 (続き)

Verilog コ ンス ト ラ ク ト 例外

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 110UG900 (v2013.1) 2013 年 3 月 20 日

Page 111: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

付録 C

その他のリ ソース

ザイ リ ン クス リ ソースアンサー、 資料、 ダウ ン ロード、 フ ォーラ ムなどのサポー ト リ ソースは、 次のザイ リ ン ク ス サポー ト サイ ト を参照 し て く だ さい。 http://japan.xilinx.com/support

ザイ リ ン ク ス資料で使用される用語集は、 次を参照し て く だ さい。 http://japan.xilinx.com/company/terms.htm

ソ リ ューシ ョ ン セン ターデバイ ス、 ツール、 IP のサポー ト については、 ザイ リ ン ク ス ソ リ ューシ ョ ン セン ターを参照し て く だ さい。 ト ピ ッ クには、 デザイ ン アシス タ ン ト 、 ア ド バイザ リ 、 ト ラブルシュー ト ヒ ン ト などが含まれます。

ト レーニング ビデオ• http://japan.xilinx.com/training/vivado/index.htm

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 111UG900 (v2013.1) 2013 年 3 月 20 日

Page 112: Vivado Design Suite - Xilinx...• シミュレーション ライブラリ パスおよび  を Vivado 用に変更 • UNISIM ライブラリ モジュール例を追加

参照資料

参照資料1. 『Vivado Design Suite ユーザー ガイ ド : リ リ ース ノ ー ト 、 イ ン ス ト ールおよびラ イセン ス』 (UG973)

2. 『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893)

3. Vivado Design Suite ユーザー ガ イ ド : Tcl ス ク リ プ ト 機能の使用』 (UG894)

4. 『Writing Efficient Testbenches』 (XAPP199)

5. 『Vivado Design Suite 7 シ リ ーズ FPGA ラ イブラ リ ガ イ ド』 (UG953)

6. 『Vivado Design Suite Tcl コマン ド リ フ ァ レ ンス ガ イ ド』 (UG835)

7. 『Vivado Design Suite ユーザー ガイ ド : IP を使用し たデザイ ン』 (UG896)

8. 『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903)

• Vivado Design Suite 2013.1 の資料

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 112UG900 (v2013.1) 2013 年 3 月 20 日