103
Vivado ユーザー ガイド ロジック シミュレーション UG900 (v2012.4) 2012 12 18

Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

Vivado ユーザー ガイ ド

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

UG900 (v2012.4) 2012 年 12 月 18 日

Page 2: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

Notice of Disclaimer The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use of Xilinx products.To the maximum extent permitted by applicable law:(1) Materials are made available "AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, the Materials (including your use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage (including loss of data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if such damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same.Xilinx assumes no obligation to correct any errors contained in the Materials or to notify you of updates to the Materials or to product specifications.You may not reproduce, modify, distribute, or publicly display the Materials without prior written consent.Certain products are subject to the terms and conditions of the Limited Warranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject to warranty and support terms contained in a license issued to you by Xilinx.Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk and liability for use of Xilinx products in Critical Applications:http://www.xilinx.com/warranty.htm#critapps.© Copyright 2012 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries.All other trademarks are the property of their respective owners.

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

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

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

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

Page 3: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

日付 バージ ョ ン 改訂内容

2012 年 7 月 25 日 2012.2 初版

2012 年 10 月 16 日 2012.3 2012.3 での変更点は次の とお り です。

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

° 合成後およびイ ンプ リ メ ンテーシ ョ ン後の機能に関する概要情報を追加

° 「シ ミ ュ レーシ ョ ン モー ド 」 を移動

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

° GTXE2_CHANNEL/GTXE2_COMMON を追加

° GLBL_VHD 情報を 「グ ローバル ト ラ イ ステー ト およびグ ローバル セ ッ ト / リ セ ッ ト 信号の使用」

へ追加

• 第 3 章 「Vivado シ ミ ュ レータ の使用」 :

° 番号付きの GUI 部分の表記方法を基準に合わせて、 説明を追加

° 「シ ミ ュ レーシ ョ ン設定」 の ModelSim 情報を明確化

° 「シ ミ ュ レーシ ョ ン ソース フ ァ イルの追加または作成」 のア ク テ ィ ブ シ ミ ュ レーシ ョ ン

セ ッ ト の説明を明確化

° 「合成後のシ ミ ュ レーシ ョ ンの実行」 および 「イ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ン

の実行」 を追加

° 章全体のア ク テ ィ ブ シ ミ ュ レーシ ョ ン セ ッ ト の説明を明確化

• 第 4 章 「デザイ ンのコ ンパイル と シ ミ ュ レーシ ョ ン」 の Vivado シ ミ ュ レータ のスナ ッ プシ ョ ッ ト

ビヘイ ビアに関する説明を追加

• 第 5 章 「波形を使用し た解析」 :

° 機能や使用状況でセ ク シ ョ ンを分類

° プロ ジ ェ ク ト モード および非プロ ジ ェ ク ト モー ド の情報を分類

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

° 「modelsim.ini フ ァ イル」 を追加

° 「タ イ ミ ング シ ミ ュ レーシ ョ ンの実行」 の情報をア ッ プデー ト

• 付録 B 「Verilog および VHDL の例外」 で、 該当するパラ メ ーター関連付けでス ラ イ ス、 イ ンデッ

ク ス、 フ ォーマルの選択などがサポー ト されない関数にそれを記述

2012 年 12 月 18 日 2012.4 2012.4 での変更点 :

• 11 ページの表 1-1 に合成後およびイ ンプ リ メ ンテーシ ョ ン後の論理およびタ イ ミ ング シ ミ ュ レー

シ ョ ン情報を追加

• 18 ページの 「UNISIM ラ イブラ リ 」 の構文を修正

• 22 ページの 「GHTE2_CHANNEL/GHTE2_COMMON」 を追加

• 25 ページの 「SAIF のダンプ」 を追加

• -snapshot コ ンパイル オプシ ョ ンを削除

• XELAB オプシ ョ ンか ら -vcdfile および -vcdunit を削除

• 30 ページの 「ザイ リ ン ク ス ラ イブ ラ リ を使用し た RTL シ ミ ュ レーシ ョ ン」、 32 ページの 「同期エ

レ メ ン ト の X 伝搬のデ ィ スエーブル」、 33 ページの 「コ ンフ ィ ギ ュ レーシ ョ ン イ ン ターフ ェ イ ス

のシ ミ ュ レーシ ョ ン」、 36 ページの 「シ ミ ュ レーシ ョ ンでのブロ ッ ク RAM の競合チェ ッ ク のデ ィ

スエーブル方法」 を追加

• 50 ページの 「合成後の論理シ ミ ュ レーシ ョ ンの実行」、 50 ページの 「合成後のタ イ ミ ング シ ミ ュ

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

ジの 「イ ンプ リ メ ンテーシ ョ ン後のタ イ ミ ング シ ミ ュ レーシ ョ ンの実行」 、 52 ページの 「シ ミ ュ

レーシ ョ ンの種類」、 53 ページの 「Vivado シ ミ ュ レータのス タ ン ド ア ロ ン フ ローの例」 を追加

• 66 ページの表 4-2 で set_property コ マン ド に -mt オプシ ョ ンを使用する方法に説明を追加

• 96 ページの 「サード パーテ ィ シ ミ ュ レータでの SAIF のダンプ」 を追加

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

Page 4: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

目次

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

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

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

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

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

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

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

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

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

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

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

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

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

Page 5: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

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

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

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

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

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

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

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

第 5 章 : 波形を使用し た解析

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

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

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

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

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

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

波形の分類 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

波形の解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

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

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

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

modelsim.ini フ ァ イル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

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

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

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

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

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

概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

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

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

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

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

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

参照資料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

5 japan.xilinx.com ロジ ッ ク シ ミ ュ レーシ ョ ン

UG900 (v2012.4) 2012 年 12 月 18 日

Page 6: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

第 1 章

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

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

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

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

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

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

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

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

Page 7: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

シ ミ ュ レーシ ョ ン フ ロー

X-Ref Target - Figure 1-1

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

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

• RTL コード

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

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

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

• SECUREIP ラ イブラ リ

X-Ref Target - Figure 1-2

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

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

Page 8: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

シ ミ ュ レーシ ョ ン フ ロー

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

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

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

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

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

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

• よ り 読みやすいコード

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

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

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

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

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

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

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

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

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

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

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

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

Page 9: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

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

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

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

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

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

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

• 非同期パスの操作

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

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

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

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

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

サポー ト されるシ ミ ュ レータ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 にお尋ね く ださ い)。

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

Page 10: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

Vivado シ ミ ュ レータの機能

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

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

• SDF ア ノ テーシ ョ ン

• VCD ダンプ

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

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

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

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

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

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

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

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

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

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

• VHDL IEEE-STD-1076-1993

• Verilog IEEE-STD-1364-2001

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

• VITAL-2000

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

参照し て く だ さい。

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

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

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

Page 11: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

• 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

• SECUREIP : Verilog Hard IP

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

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

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

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

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

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

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

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

UNISIM Unifast UNIMACRO XILINXCORELIB モデル

SECUREIP SIMPRIMS(Verilog のみ)

標準遅延フ ォーマ ッ ト (SDF)

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

○ ○ ○ ○ ○ 該当な し X

2. 合成後シ ミ ュレーシ ョ ン (論理)

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

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

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

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

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

5. イ ン プ リ メ ン テーシ ョ ン後シミ ュ レ ーシ ョ ン(タ イ ミ ング)

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

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

Page 12: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

シ ミ ュ レーシ ョ ン モー ド

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Page 13: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

シ ミ ュ レーシ ョ ン モー ド

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

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

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

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

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

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

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

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

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

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

X-Ref Target - Figure 1-2

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

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

Page 14: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

シ ミ ュ レーシ ョ ン モー ド

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

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

X-Ref Target - Figure 1-3

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

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

Page 15: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

第 2 章

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

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

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

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

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

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

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

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

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

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

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

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

• デザイ ンを初期化

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

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

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

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

• サブルーチン呼び出し

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

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

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

Page 16: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Page 17: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

表 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 (v2012.4) 2012 年 12 月 18 日

Page 18: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

UNISIM ラ イブ ラ リ

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

VHDL UNISIM ラ イブ ラ リ

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

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

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

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

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

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

library UNISIM;use UNISIM.Vcomponents.all;

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

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

Verilog UNISIM ラ イブ ラ リ

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

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

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

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

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

ラ イブ ラ リHDL タ イ

プ デ ィ レ ク ト リ

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

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

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

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

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

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

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

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

Page 19: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

-L unisims_ver

UNIMACRO ラ イ ブ ラ リ

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

VHDL UNIMACRO ラ イブ ラ リ

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

library UNIMACRO;

use UNIMACRO.Vcomponents.all;

Verilog UNIMACRO ラ イブ ラ リ

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

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

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

XILINXCORELIB ラ イブ ラ リ

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

SIMPRIMS ラ イ ブ ラ リ

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

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

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

-L SIMPRIMS_VER

説明 :

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

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

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

Page 20: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

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

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

-L SECUREIP

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

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

VHDL SECUREIP ラ イブ ラ リ

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

Library UNISIM;

use UNISIM.vcomponents.all;

Verilog SECUREIP ラ イブ ラ リ

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

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

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

-L SECUREIP

UNIFAST ラ イブ ラ リ

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

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

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

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

ModelSim DE

QuestaSim

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

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

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

Page 21: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

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

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

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

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

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

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

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

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

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

RAMB18E1/RAMB36E1

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

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

• 競合チェ ッ ク

• カス ケード モード

FIFO18E1/FIFO36E1

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

• ECC

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

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

• 初のワード 中断

• almostempty および almostfull フ ラ グ

DSP48E1

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

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

Page 22: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

• パターン検出

• 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 モデルを使用し てシ ミ ュ レーシ ョ ンする場合に推奨さ れる方法です。 方法 2 : UNIFAST モデル と 一緒に使用する モ ジュールを指定 (ア ド バン ス ユーザー用)

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

• 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

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

ncelab -libname unifast_ver -libname unisims_ver

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

Page 23: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

• VCS

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

ncelab -libname unifast_ver -libname unisims_ver

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

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

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

vcs -work work -y ../Verilog/src/unifast +libext+.v -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

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

Page 24: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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;

end for;

end cfg_xilinx;

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

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

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

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

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

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

• write_verilog : Verilog ネ ッ ト リ ス ト

• write_vhdl : VHDL ネ ッ ト リ ス ト

• write_sdf : SDF 生成

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

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

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

Page 25: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

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

• VHDL シ ミ ュ レーシ ョ ンの場合は 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 タ イプをダンプし ま す。

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

Page 26: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

• Verilog :

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

° 内部ワ イヤ宣言

• VHDL :

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

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

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

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

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/* ]

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

Page 27: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

sim.tcl: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.

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

Page 28: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

write_sdf –process_corner fast test.sdf

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

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

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

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

–sdfmax

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

-sdfmin

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

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

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

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

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

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

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

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

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

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

Page 29: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

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

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

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

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

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

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

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

X-Ref Target - Figure 2-1

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

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

Page 30: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

次のコード は、 テス ト ベンチに 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 言語規格をサポー ト する シ ミ ュ レータ を使用する と シ ミ ュ レーシ ョ ンでき ます。 ラ イブラ リ にはザイ リ ン ク ス ハー ド ウ ェ ア デバイ ス を正し く シ ミ ュ レー シ ョ ンするのに必要な特定の遅延およびモデル情報がビル ト イ ン されています。

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

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

ザイ リ ン ク スでは、 イベン ト ベースのシ ミ ュ レータ をサポー ト し ています。 イベン ト シ ミ ュ レータでは、 指定し たシ ミ ュ レーシ ョ ン時刻に複数のイベン ト を処理でき ます。 こ れら の イベン ト が処理中は、 シ ミ ュ レータはシ ミ ュ レーシ ョ ン時間を早める こ と はでき ません。 この時間は、 通常 「デルタ サイ クル」 と呼ばれます。 指定し たシ ミ ュ レー ョ ン時間には複数のデルタ サイ クルが含まれる こ と も あ り ます。シ ミ ュ レーシ ョ ン時間は、処理する ト ラ ンザク シ ョ ン がない場合にのみ早める こ と ができ ます。このために、シ ミ ュ レータが予測し ない結果を出力する可能性があ り ます。次の 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 ク ロ ッ ク エ ッ ジ内で発生し、 レース コ ンデ ィ シ ョ ンにな り ます。

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

Page 31: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

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

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

end process;result_temp <= result;clk_b_prcs : process (clk_b)beginif (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 を出力し ません。

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

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

Page 32: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

推奨 : 非同期データの ク ロ ッ ク入力を回避でき ない場合は、 IOB または CLB レジス タにのみ ASYNC_REG 制約を適 用する こ と をお勧めし ます。 RAM、 シフ ト レジス タ LUT (SRL)、 またはその他の同期エレ メ ン ト への非同期信号へ ク ロ ッ ク入力し て も、 決定的な結果にはな り に く いので、 入力し ないよ う にし て く ださい。

まず、 レジス タ、 ラ ッ チまたは FIFO の非同期信号を正し く 同期し てから、 RAM、 シフ ト レジス タ LUT (SRL) また はその他の同期エレ メ ン ト へ書き込むこ と をお勧めし ます。 詳細は、 『Vivado Design Suite チュー ト リ アル : 制約の使 用』 (UG945)[参照 9] を参照し て く ださ い。

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

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

• 前の値を保持

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

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

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

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

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

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

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

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

X 伝搬をデ ィ スエーブルにする と、 シ リ コ ン ビヘイ ビア と は一致し ないシ ミ ュ レーシ ョ ン結果にな る こ と があ り ま す。

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

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

Page 33: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

• JTAG シ ミ ュ レーシ ョ ン

• SelectMAP シ ミ ュ レーシ ョ ン

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-5 には、 サポー ト さ れる イ ン ターフ ェ イ スおよびデバイ ス を リ ス ト し ています。

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

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

図 2-2 は、 システムをハード ウ ェ アから シ ミ ュ レーシ ョ ン環境にマ ッ プする方法を示し ています。 コ ンフ ィ ギュ レー シ ョ ン プロセスの概要は、 各デバイ スのコ ンフ ィ ギュ レーシ ョ ン ユーザー ガイ ド に記載されています。 これらのガ

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

デバイス SelectMAP シ リ アル SPI BPI

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

○ ○ X X

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

Page 34: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

イ ド には、 コ ンフ ィ ギュ レーシ ョ ン シーケン スおよびコ ンフ ィ ギ ュ レーシ ョ ン イ ン ターフ ェ イ スに関する情報が含 まれます。

システム レベルの記述

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 34UG900 (v2012.4) 2012 年 12 月 18 日

Page 35: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

マス ター モード X

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

SelectMAP データ読み込み ○

継続 SelectMAP データ読み込み ○

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

SelectMAP ABORT ○

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

SelectMAP データ順序付け ○

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

コ ンフ ィ ギュ レーシ ョ ン CRC - コ ンフ ィ ギュ レーシ ョ ン中の CRC ○

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

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

Page 36: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

SIM_COLLISION_CHECK 文字列

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

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

表 2-7 : SIM_COLLISION_CHECK 文字列

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

ALL ○ ○

WARN_ONLY ○ X

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

GENERATE_X_ONLY X ○

な し X X

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

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

Page 37: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

第 3 章

Vivado IDE でのシ ミ ュ レーシ ョ ンの実行およびソース コー ドのデバッ グ

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

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

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

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

• [Run Simulation] : シ ミ ュ レーシ ョ ン設定に基づいてデザイ ンを コ ンパイル、 エラ ボレー ト 、 シ ミ ュ レーシ ョ ンす る コマン ド オプシ ョ ンを設定し ます。 デザイ ンの合成前にシ ミ ュ レーシ ョ ンを実行する と、 Vivado シ ミ ュ レー タではビヘイ ビア シ ミ ュ レーシ ョ ンが実行され、 波形ビ ューが開き (38 ページの図 3-2)、 信号およびバスの値の 付いた HDL オブジェ ク ト がデジタルまたはアナロ グ形式で表示されます。

各デザイ ン段階 (合成後 と イ ンプ リ メ ンテーシ ョ ン後) ご と に、 論理シ ミ ュ レーシ ョ ンおよびタ イ ミ ング シ ミ ュ レーシ ョ ンを実行でき ます。

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

X-Ref Target - Figure 3-1

図 3-1 : Flow Navigator の [Simulation]

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

Page 38: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

シ ミ ュ レーシ ョ ン設定

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

[Project Settings] ダ イ ア ロ グ ボ ッ ク スには、 次のオプシ ョ ンが表示されます。

• [Target Simulator] : シ ミ ュ レーターをビヘイ ビア シ ミ ュ レーシ ョ ンまたはタ イ ミ ング シ ミ ュ レーシ ョ ン用に起動 する よ う に指定し ます。 使用でき るオプシ ョ ンは次の とお り です。

° [Vivado Simulator] : ターゲ ッ ト シ ミ ュ レータ を Vivado シ ミ ュ レータに指定し ます。

重要 : Vivado シ ミ ュ レータにはプ リ コ ンパイル ラ イ ブラ リ が含まれているので、 ラ イブラ リ デ ィ レ ク ト リ を指定す る必要はあ り ません。

° [QuestaSim/ModelSim] : ターゲ ッ ト シ ミ ュ レーターを Mentor Graphics® ModelSim または Questa® Advanced Simulator ツールに指定し ます。

シ ミ ュ レータはイ ン ス ト ールされて $PATH パスに表示されていない と、 シ ミ ュ レーシ ョ ンを実行し た と き に起動されません。

[Simulation] ページには、 [QuestaSim/ModelSim] を選択し た場合、 ラ イブ ラ リ デ ィ レ ク ト リ 用の追加フ ィ ー ル ド が表示されます。

X-Ref Target - Figure 3-2

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

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

Page 39: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

シ ミ ュ レーシ ョ ン設定

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

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

• [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 フ ァ イルが開 く ので、 シ ミ ュ レーシ ョ ン波形を設定する時間が節約でき ます。

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

Page 40: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

シ ミ ュ レーシ ョ ン設定

• [Netlist] タブ : 図 3-3 のよ う に、 シ ミ ュ レーシ ョ ンの write_verilog ネ ッ ト リ ス ト 設定が リ ス ト されます。 オ プシ ョ ンを ク リ ッ クする と、 その説明が表示されます。

• ネ ッ ト リ ス ト の write_verilog オプシ ョ ンは、 次の とお り です。

° -sdf_anno :オンにする と、 SDF ア ノ テーシ ョ ンがイ ネーブルにな り ます。

° -process_corner :デフ ォル ト で slow に設定されます。 その他の ド ロ ッ プダウ ン オプシ ョ ンには、 fast があ り ます。

• [Advanced] タブ : 41 ページの図 3-4 に示すよ う に、 シ ミ ュ レーシ ョ ンにすべてのデザイ ン ソース を含めるオプ シ ョ ンがあ り ます。 オフにする と、 シ ミ ュ レーシ ョ ンする フ ァ イルのみを含める こ と ができ ます。

X-Ref Target - Figure 3-3

図 3-3 : [Netlist] ビ ュー

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

Page 41: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

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

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

X-Ref Target - Figure 3-4

図 3-4 : ア ドバンス シ ミ ュ レーシ ョ ン設定

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

Page 42: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

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

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

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

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

• [Specify Simulation Set] : テス ト ベンチ フ ァ イルを含むシ ミ ュ レーシ ョ ン セ ッ ト の名前とデ ィ レ ク ト リ (デフ ォル ト は sim_1、 sim_2...) を入力し ます。 ド ロ ッ プダウ ン メ ニ ューから [Create Simulation Set] コマン ド を選択する と、 新し いシ ミ ュ レーシ ョ ン セ ッ ト が定義で き ます。 複数のシ ミ ュ レーシ ョ ン セ ッ ト が使用可能な場合は、 Vivado シ ミ ュ レータによ り 、 どのシ ミ ュ レーシ ョ ン セ ッ ト がア ク テ ィ ブな (現在使用中の) セ ッ ト であ るかが表 示されます。

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

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

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

X-Ref Target - Figure 3-5

図 3-5 : Add Sources ウ ィ ザー ド : [Add or Create Design Sources] ページ

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

Page 43: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

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

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

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

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

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

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

• [Include all design sources for simulation] : シ ミ ュ レーシ ョ ン用にデザイ ン ソースすべてを含めます。

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

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

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

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

2. [Add Files] を ク リ ッ ク し てフ ァ イルを選択し ます。

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

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

選択し たシ ミ ュ レーシ ョ ン セ ッ ト がア ク テ ィ ブなデザイ ン run に使用されます。

X-Ref Target - Figure 3-6

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

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

Page 44: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

Vivado シ ミ ュ レータの使用

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

Vivado シ ミ ュ レータの使用Flow Navigator か ら [Run Simulation] を ク リ ッ ク し、 Vivado シ ミ ュ レータ の GUI を表示し ます (44 ページの図 3-7)。 Vivado IDE の メ ニューの詳細は、『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893)[参照 3] を参照し て く だ さい。

Vivado シ ミ ュ レータの GUI の主な コ ンポーネン ト は、 次の とお り です。

1. 「 メ イ ン ツールバー」

2. 「[Run] メ ニュー」

3. 「[Objects] ビ ュー」

4. 「[Simulation] ツールバー」

5. 「波形オブジェ ク ト 」

6. 「波形ビ ュー」

7. 「[Scopes] ビ ュー」

8. 「[Sources] ビ ュー」X-Ref Target - Figure 3-7

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

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

Page 45: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

Vivado シ ミ ュ レータの使用

メ イ ン ツールバー

Vivado IDE で も よ く 使用される コマン ド に 1 ク リ ッ ク でア ク セスでき ます。 オプシ ョ ンの上にカーソルを置 く と、 詳細を示すツール ヒ ン ト が表示されます。

[Run] メ ニュー

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

シ ミ ュ レーシ ョ ンの [Run] メ ニューは、 図 3-8 のよ う にな り ます。

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

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

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

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

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

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

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

[Objects] ビ ュー

HDL オブジ ェ ク ト が表示 さ れます。 ビ ュ ーの詳細は、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893)[参照 3] を参照し て く ださ い。

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

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

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

X-Ref Target - Figure 3-8

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

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

Page 46: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

Vivado シ ミ ュ レータの使用

波形オブジ ェ ク ト

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

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

次の図 3-9 は、 波形コ ンフ ィ ギュ レーシ ョ ンに含まれる波形オブジェ ク ト の例を示し ています。

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

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

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

X-Ref Target - Figure 3-9

図 3-9 : 波形コ ン フ ィ ギュ レーシ ョ ンの HDL オブジ ェ ク ト

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

Page 47: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

Vivado シ ミ ュ レータの使用

波形ビ ュー

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

波形の保存

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

複数波形コ ン フ ィ ギュ レーシ ョ ンの作成と使用

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

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

[Scopes] ビ ュー

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

X-Ref Target - Figure 3-10

図 3-10 : 波形ビ ュー

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

Page 48: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

Vivado シ ミ ュ レータの使用

[Sources] ビ ュー

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

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

ス コープまたは [Scope] ビ ューのいずれかで [Show Search] ボタ ン を ク リ ッ クする と、 検索フ ィ ール ド が表示さ れます。 Vivado IDE の メ ニューの詳細は、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893)[参照 3] を参照し て く だ さ い。 Vivado シ ミ ュ レータでの [Scopes] ビ ューの使用方法については、 90 ページの 「カーソルの使 用」 を参照し て く だ さい。

X-Ref Target - Figure 3-11

図 3-11 : [Scopes] ビュー

X-Ref Target - Figure 3-12

図 3-12 : [Sources] ビ ュー

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

Page 49: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

合成後およびイ ンプ リ メ ンテーシ ョ ン後のタ イ ミ ング シ ミ ュ レーシ ョ ン合成後と イ ンプ リ メ ンテーシ ョ ン後のタ イ ミ ング シ ミ ュ レーシ ョ ンには、オプシ ョ ンで次のいずれかを含める こ と が でき ます。

• simprim ラ イブラ リ コ ンポーネン ト を含むゲー ト レベルのネ ッ ト リ ス ト

• SECUREIP

• 標準遅延フ ォーマ ッ ト (SDF) フ ァ イル

合成後のタ イ ミ ング シ ミ ュ レーシ ョ ンでは、 合成後の概算のタ イ ミ ング数値が使用されます。

イ ンプ リ メ ンテーシ ョ ン後のタ イ ミ ング シ ミ ュ レーシ ョ ンは、 Vivado IDE でイ ンプ リ メ ンテーシ ョ ン (配置配線) プ ロセスが完了し てから実行されます。 これによ り 、 デザイ ンが実際の回路でどのよ う に動作するのか確認する こ と ができ ます。 デザイ ンの全体的な機能は 初に定義されていますが、 イ ンプ リ メ ン ト されたデザイ ンをシ ミ ュ レーシ ョンする場合は、 実際のタ イ ミ ング情報が使用でき ます。

Vivado IDE ではネ ッ ト リ ス ト ラ イ ター (write_verilog -mode timesim) および SDF ア ノ テーター (write_sdf) が呼び出され、 ネ ッ ト リ ス ト および SDF が作成されます。

これらのオプシ ョ ンは、37 ページの 「シ ミ ュ レーシ ョ ン設定」 で説明される [Simulation Settings] から変更でき ます。

重要 : 合成後 と イ ンプ リ メ ン テーシ ョ ン後の タ イ ミ ン グ シ ミ ュ レーシ ョ ンは、 Verilog でのみサポー ト さ れます。 VHDL のタ イ ミ ング シ ミ ュ レーシ ョ ンはサポー ト されません。

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

重要 : タ イ ミ ング シ ミ ュ レーシ ョ ンを実行する前に67 ページの 「タ イ ミ ング シ ミ ュ レーシ ョ ンのイ ン ターコネ ク ト 遅延」 をお読み く だ さい。

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

Page 50: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

合成後のシ ミ ュ レーシ ョ ンの実行問題な く 合成が終了し た ら、 合成後のシ ミ ュ レーシ ョ ン (論理シ ミ ュ レーシ ョ ン またはタ イ ミ ング シ ミ ュ レーシ ョ ン ) を実行でき ます。

合成後の論理シ ミ ュ レーシ ョ ンの実行 合成が問題な く 終了する と、 [Run Simulation] → [Post-Synthesis Functional Simulation] が使用でき る よ う にな り ます (図 3-13)。

合成後には、 シ ミ ュ レーシ ョ ン情報がさ らに増え るので、 デザイ ン論理がどれ く らい要件を満た し ているかど う かが詳細にチェ ッ ク でき ます。

合成後の論理シ ミ ュ レーシ ョ ンを選択する と、 論理ネ ッ ト リ ス ト が生成され、 その UNISIM ラ イブラ リ がシ ミ ュ レー シ ョ ンに使用されます。

合成後のタ イ ミ ング シ ミ ュ レーシ ョ ンの実行

合成が問題な く 終了する と、 [Run Simulation] → [Post-Synthesis Timing Simulation] が使用でき る よ う にな り ます (図 3-14)。

合成後のタ イ ミ ング シ ミ ュ レーシ ョ ンを選択する と、タ イ ミ ング ネ ッ ト リ ス ト と SDF フ ァ イルが生成されます。ネ ッ ト リ ス ト フ ァ イルには $sdf_annotate コマン ド が含まれるので、 生成された SDF フ ァ イルが自動的に指定されま す。

X-Ref Target - Figure 3-13

図 3-13 : 合成後の論理シ ミ ュ レーシ ョ ンの実行

X-Ref Target - Figure 3-14

図 3-14 : 合成後のタ イ ミ ング シ ミ ュ レーシ ョ ンの実行

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

Page 51: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

インプ リ メ ンテーシ ョ ン後のシ ミ ュレーシ ョ ンの実行問題な く イ ンプ リ メ ンテーシ ョ ンが終了し た ら、 イ ンプ リ メ ンテーシ ョ ン後の論理シ ミ ュ レーシ ョ ン またはタ イ ミ ング シ ミ ュ レーシ ョ ンを実行でき ます。

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

イ ンプ リ メ ンテーシ ョ ンが問題な く 終了する と、 [Run Simulation] → [Post-Implementation Functional Simulation] が使用 でき る よ う にな り ます (図 3-15)。

イ ンプ リ メ ンテーシ ョ ン後には、 シ ミ ュ レーシ ョ ン情報がさ らに増え るので、 デザイ ン論理がどれ く らい要件を満たし ているかど う かが詳細にチェ ッ ク でき ます。

イ ンプ リ メ ンテーシ ョ ン後の論理シ ミ ュ レーシ ョ ンを選択する と、 論理ネ ッ ト リ ス ト が生成され、 その UNISIM ラ イ ブラ リ がシ ミ ュ レーシ ョ ンに使用されます。

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

イ ンプ リ メ ンテーシ ョ ンが問題な く 終了する と、 [Run Simulation] → [Post-Implementation Timing Simulation] が使用で き る よ う にな り ます (図 3-16)。

イ ンプ リ メ ンテーシ ョ ン後のタ イ ミ ング シ ミ ュ レーシ ョ ンを選択する と、 タ イ ミ ング ネ ッ ト リ ス ト と SDF フ ァ イル が生成されます。 ネ ッ ト リ ス ト フ ァ イルには $sdf_annotate コマン ド が含まれるので、 生成された SDF フ ァ イル が自動的に指定されます。

X-Ref Target - Figure 3-15

図 3-15 : イ ンプ リ メ ンテーシ ョ ン後の論理シ ミ ュ レーシ ョ ンの実行

X-Ref Target - Figure 3-16

図 3-16 : 合成後のタ イ ミ ング シ ミ ュ レーシ ョ ンの実行

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

Page 52: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

シ ミ ュ レーシ ョ ンの種類

シ ミ ュ レーシ ョ ンの種類デザイ ンに対し て複数のシ ミ ュ レーシ ョ ンを実行し た場合、 Vivado シ ミ ュ レータでは、 現在ハイ ラ イ ト されている ビ ューのシ ミ ュ レーシ ョ ン タ イプを GUI 上部に示し ます (図 3-17)。

シ ミ ュ レーシ ョ ンの一時停止シ ミ ュ レーシ ョ ン を実行中に [Break] コ マン ド を使用する と、 シ ミ ュ レーシ ョ ン セ ッ シ ョ ン を開いた ま までシ ミ ュ レーシ ョ ン を一時停止でき ます。 シ ミ ュ レーシ ョ ン を一時停止するには、 [Simulation] → [Break] を ク リ ッ クする か、 [Break] ボタ ンを ク リ ッ ク し ます。

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

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

シ ミ ュ レーシ ョ ンは [Run All]、 [Run]、 または [Step] コマン ド を使用する と いつでも再開でき ます。 詳細は、 53 ペー ジの 「シ ミ ュ レーシ ョ ンのステ ッ プ実行」 を参照し て く だ さい。

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

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

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

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

X-Ref Target - Figure 3-17

図 3-17 : アク テ ィ ブなシ ミ ュ レーシ ョ ン タ イプ

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

Page 53: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

Vivado シ ミ ュ レータのス タ ン ド アロン フ ローの例コマン ド ラ イ ンに Tcl コマン ド を入力する と、 ス タ ン ド ア ロ ン フ ローは次の例のよ う にな り ます。

Vivado -mode Tclvivavdo% create_project -force prj1vivavdo% read_verilog dut.vvivavdo% synth_design -top dutvivavdo% place_designvivavdo% route_designvivavdo% write_verilog -mode simprimvivado% postRoute_netlist.v -sdf_file vivavdo% postRoute.sdfvivavdo% write_sdf postRoute.sdfvivavdo% close_project

Vivado シ ミ ュ レーシ ョ ン コマン ド を実行する と、 フ ローは次の例のよ う にな り ます。

vivavdo% xvlog postSynth_netlist.vvivavdo% xvlog tb.vvivavdo% xelab tb glbl -L simprims_ver -s Testvivavdo% xsim Test -R

統合フ ロー

詳細は、 『Vivado Design Suite Tcl コマン ド リ フ ァ レン ス ガ イ ド』 (UG835)[参照 4] から 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] コ マン ド を使用し ます。 詳細は、 54 ページの 「ブレーク ポ イ ン ト の使用」 を参照し て く だ さい。

シ ミ ュ レーシ ョ ンのステ ッ プ実行

HDL ソ ース コー ド を 1 行ずつ実行する [Step] コ マン ド を使用する と 、デザ イ ンが予測どお り かど う か検証で き ま

す。

黄色の矢印は、 現在実行さ れてい る行を示し ます。

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

Page 54: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

ブレー ク ポ イ ン ト を作成し て、 ス テ ッ プ実行中に停止する箇所を増やす こ と も で き ます。 シ ミ ュ レータ での ス ト

ラ テジのデバ ッ グについては、 54 ページの 「ブレー ク ポ イ ン ト の使用」 を参照し て く だ さ い。

1. シ ミ ュ レーシ ョ ンでステ ッ プ実行するには、 次の手順に従って く ださい。

° 現在の実行時間から [Run] → [Step] を ク リ ッ クするか、 [Step] ボタ ンを ク リ ッ ク し ます。

上位デザイ ン ユニ ッ ト に関する HDL が波形ビ ューに新しいビ ューと し て開き ます。

° ス ター ト 地点 (0ns) から シ ミ ュ レーシ ョ ンを再開し ます。 [Restart] コマン ド を使用する と、 テス ト ベンチの 開始地点に時間を リ セ ッ ト でき ます。 詳細は、 第 3 章 「Vivado IDE でのシ ミ ュ レーシ ョ ンの実行およびソー ス コード のデバッ グ」 を参照し て く だ さい。

2. 波形および HDL コード を同時に表示するには、[Window] → [Tile Horizontally] または [Window] → [Tile Vertically] を ク リ ッ ク し ます。

3. デバッ グが終了する まで、 [Step] を繰 り 返し ます。

行が実行 さ れる につれ、 黄色の矢印が コー ド の下方に移動 し てい き ます。 シ ミ ュ レータ が別のフ ァ イ ルの行を実

行す る 場合は、 その フ ァ イ ルが開いて、 黄色の矢印で コ ー ド が ス テ ッ プ実行 さ れます。 大抵のシ ミ ュ レータ で、

[Step] コ マン ド を実行する と 複数フ ァ イ ルが開かれる こ と が よ く あ り ます。 Tcl コ ン ソ ールに も step コ マン ド で

HDL コー ド がどれ く ら い進んだかが示さ れます。

ブレークポイ ン ト の使用

ブレー ク ポ イ ン ト は、 ユーザーの指定する ソ ース コー ド 内の停止地点で、 デザ イ ン をデバ ッ グする際に使用でき

ます。

ヒ ン ト : ブレーク ポ イ ン ト は、 [Step] コマン ド で 1 行ずつ停止する と時間がかか り すぎて し ま う よ う な大規模デザイ ンをデバッ グする場合に使用する と、 特に便利です。

HDL フ ァ イ ルの実行可能な行にブレーク ポ イ ン ト を設定し てお く こ と で、 ブレー ク ポ イ ン ト に到達する まで コー

ド が実行 さ れ続け ます。

注記 : ブレーク ポ イ ン ト は実行可能なコード にのみ設定でき ます。 実行不可能なコード の行にブレーク ポイ ン ト を設 定し て も、 ブレーク ポ イ ン ト は追加されません。

ブレー ク ポ イ ン ト を設定する には、 次の手順に従います。

1. [View] → [Breakpoint] → [Toggle Breakpoint] を ク リ ッ ク し ます。 または、 [Toggle Breakpoint] ボタ ンを ク リ ッ ク し ます。

2. HDL フ ァ イルで行番号の右側のコード行を ク リ ッ ク し ます。

[Breakpoint] ボタ ン が行の横に表示されます。

注記 : または、 コード行を右ク リ ッ ク し、 [Toggle Breakpoint] を選択し ます。

終了する と、 シ ミ ュ レーシ ョ ン ブレーク ポイ ン ト ボタ ンがコード行の横に表示され、[Breakpoints] ビ ューに使用 可能なブレーク ポ イ ン ト が リ ス ト されます。

ブレー ク ポ イ ン ト を使用し てデザ イ ン をデバ ッ グする には、 次の手順に従っ て く だ さ い。

1. HDL ソース フ ァ イルを開き ます。

2. HDL ソース フ ァ イルの実行可能な行にブレーク ポイ ン ト を設定し ます。

3. すべてのブレーク ポ イ ン ト が設定される まで手順 1 および 2 を繰 り 返し ます。

4. 次の実行オプシ ョ ンを使用し てシ ミ ュ レーシ ョ ンを実行し ます。

° 初から実行する場合は、 [Run] → [Restart] を ク リ ッ ク し ます。

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

Page 55: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

° [Run] → [Run All] または [Run] → [Run for Specified Time] コマン ド を使用し ます。

ブレーク ポ イ ン ト に到達する までシ ミ ュ レーシ ョ ンが実行されて、 停止し ます。

HDL ソース フ ァ イルが表示され、 黄色の矢印でブレーク ポ イ ン ト の停止地点が示されます。

5. 手順 4 を繰 り 返し て、 結果に満足する までシ ミ ュ レーシ ョ ンをブレーク ポ イ ン ト ご と に進めていき ます。

シ ミ ュ レーシ ョ ンは、 HDL ソース フ ァ イルに設定し た各ブレーク ポイ ン ト で停止し ます。

デザイ ン デバ ッ グ中には、 [Run] → [Step] コマン ド を実行し て 1 行ご と にコード を検証する こ と で、 さ らに詳細 にデザイ ンを検証する こ と もでき ます。

HDL ソ ース コー ド か ら 1 つのブレー ク ポ イ ン ト ま たはすべてのブレーク ポ イ ン ト を削除で き ます。

1 つのブレー ク ポ イ ン ト を削除する には、 [Breakpoint] ボ タ ン を ク リ ッ ク し ます。

すべてのブレー ク ポ イ ン ト を削除する には、 [Run] → [Breakpoint] → [Delete All Breakpoints] を ク リ ッ クする か、 [Delete All Breakpoints] ボ タ ン を ク リ ッ ク し ます。

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

Page 56: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

第 4 章

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

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

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

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

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

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

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

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

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

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

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

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

Page 57: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

デザイン フ ァ イルの解析

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

xvhdl の構文

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

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

xvhdl の例

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

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

xvlog の構文

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

xvlog の例

xvlog file1.v file2.v

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

Page 58: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

xelab [ 「-d [define] <name>[=<val>]」

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

Page 59: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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 指示子で指定された ラ イブラ リ 。 次に例を示し ます。

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

Page 60: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

4. work ラ イブラ リ

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

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

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

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

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

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

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

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

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

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

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

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

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

Verilog の `uselib 指示子

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

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

Page 61: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

`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 61UG900 (v2012.4) 2012 年 12 月 18 日

Page 62: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

`uselib の例

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

xsim の構文

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

xsim <options> <snapshot>

説明 :

• xsim はコマン ド です。

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

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

xsim のオプシ ョ ン

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

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

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

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

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

xsim オプシ ョ ン 説明

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

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

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

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

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

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

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

Page 63: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

`endif

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

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

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

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

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

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

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

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

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

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

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

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

xsim オプシ ョ ン 説明

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

Page 64: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

`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) [参照 4]

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

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

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

Page 65: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

launch_xsim -mode behavioral

X-Ref Target - Figure 4-1

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

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

Page 66: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

X-Ref Target - Figure 4-2

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

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

Page 67: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

synth_design -top top -part xc7k70tfbg676-2

open_run synth_1 -name netlist_1

write_verilog -mode funcsim test_synth.v

xvlog -work work test_synth.v

xvlog -work work testbench.v

xelab -L unisims_ver testbench glbl -s test

xsim test -gui

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

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

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

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

-transport_int_delays -pulse_r 0 -pulse_int_r 0

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

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

1. $XILINX_PLANAHEAD/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=$XILINX_PLANAHEAD/data/verilog/hdl/nt/unisims_verxilinxcorelib_ver=C:/libs/verilog/hdl/nt/xilinxcorelib_vermylib=./mylibwork=C:/work

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

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

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

Page 68: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

$XILINX_PLANAHEAD/data/verilog/src/glbl.v

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

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

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

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

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

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

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

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

Page 69: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

-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 パス遅延と タ イ ミ ング チェ ッ ク を無視し ます。

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

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

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

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

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

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

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

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

(デフ ォル ト : onevent)

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

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

-r [-run] コ マン ド ラ イ ンの対話型モード で生成し た実行可能スナ ッ プシ ョ ッ ト フ ァ イ ルを実行し ます。

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

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

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

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

コマン ド オプシ ョ ン 説明

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

Page 70: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

-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> を使用し ます。

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

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

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

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

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

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

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

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

コマン ド オプシ ョ ン 説明

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

Page 71: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

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

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

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

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

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

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

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

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

混合言語の結合と検索

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

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

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

こ の検索順は、 xelab コ マン ド ラ イ ンで ラ イブ ラ リ が表示される順序 と同じです。 詳細は、 22 ページの 「方法 1 : ラ イブラ リ またはフ ァ イル コ ンパイル順の使用 (推奨)」 を参照し て く ださ い。

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

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

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

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

Page 72: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VHDL 1 Verilog 2

IN INPUT

OUT OUTPUT

INOUT INOUT

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

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

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

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

VHDL ポー ト Verilog ポー ト

bit net

std_logic net

std_logic net

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

Page 73: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

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

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

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

• integer

• real

• string

• boolean

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

VHDL および Verilog 値のマ ッ プ

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

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

表 4-6 は、 Verilog ステー ト にマ ッ プされる VHDL 型 bit を リ ス ト し ています。

表 4-7 は、 Verilog ステー ト にマ ッ プされる VHDL 型 std_logic を リ ス ト し ています。

bit_vector vector net

std_ulogic_vector vector net

std_logic_vector vector net

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

Verilog std_logic bit

Z Z 0

0 0 0

1 1 1

X X 0

表 4-6 : Verilog ステー ト にマ ッ プ される VHDL の bit

bit Verilog

0 0

1 1

表 4-7 : Verilog ステー ト にマ ッ プ される VHDL の std_logic

std_logic Verilog

U X

X X

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

VHDL ポー ト Verilog ポー ト

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

Page 74: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

Verilog では大文字/小文字が区別さ れる ので、 コ ンポーネン ト 宣言で使用する関連付けおよびローカル ポー ト 名は Verilog ポー ト 名の大文字/小文字と一致し ている必要があ り ます。

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

Verilog デザ イ ン ユニ ッ ト に VHDL モジ ュールを イ ン ス タ ン シエー ト する には、 VHDL エンテ ィ テ ィ を Verilog モ ジュールのよ う にイ ンス タ ンシエー ト する必要があ り ます。 次に例を示し ます。

module testbench ;wire in, clk;wire out;FD FD1(.Q(Q_OUT),.C(CLK);.D(A););

0 0

1 1

Z Z

W X

L 0

H 1

- X

表 4-7 : Verilog ステー ト にマ ッ プ される VHDL の std_logic

std_logic Verilog

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

Page 75: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

第 5 章

波形を使用し た解析

概要Vivado™ Integrated Design Environment (IDE) シ ミ ュ レータ GUI を開 く と、 波形ウ ィ ン ド ウ を使用し てデザイ ンを解析 し、 コード をデバッ グでき ます。 シ ミ ュ レータは、 [Objects] ビ ューおよび [Scopes] ビ ューなどの GUI のほかのエ リ ア でデザイ ン データ を生成し ます。

通常、 シ ミ ュ レーシ ョ ンはシ ミ ュ レーシ ョ ンをする HDL オブジェ ク ト を定義する テス ト ベンチで設定し ます。 テス ト ベンチの詳細は、 『Writing Efficient Testbenches』 (XAPP199)[参照 5] を参照し て く ださ い、。

Vivado IDE からのシ ミ ュ レーシ ョ ン

Vivado シ ミ ュ レータ を起動する と、 上位 HDL オブジ ェ ク ト を含む波形コ ン フ ィ ギ ュ レーシ ョ ンが表示されます。 Vivado シ ミ ュ レータは、 [Objects] ビ ューおよび [Scopes] ビ ューなどの GUI のほかのエ リ アでデザイ ン データ を生成 し ます。 こ の後、 別の HDL オブジェ ク ト を追加し た り 、 [Run] コマン ド を使用し てシ ミ ュ レーシ ョ ンを実行し た り で き ます。 詳細は、 76 ページの 「波形コ ンフ ィ ギュ レーシ ョ ン と波形ビ ュー」 を参照し て く ださ い。

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

非プロジェ ク ト モード でのシ ミ ュ レーシ ョ ン波形と GUI コマン ド については、 次を参照し て く ださ い。

• 92 ページの 「非プロ ジェ ク ト モード の使用」

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

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

Page 76: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

波形コ ン フ ィ ギュ レーシ ョ ン と波形ビ ュー波形コ ンフ ィ ギュ レーシ ョ ンおよび WCFG フ ァ イルの両方がカス タマイ ズ された波形 リ ス ト を参照し ますが、こ の 2 つの概念は異な り ます。

• 波形コ ンフ ィ ギュ レーシ ョ ンは、 作業可能な メ モ リ に読み込まれたオブジェ ク ト です。

• WCFG フ ァ イルはデ ィ ス ク の波形コ ンフ ィ ギュ レーシ ョ ンが保存された ものです。

波形コ ンフ ィ ギュ レーシ ョ ンには名前が付 く か、Untitled# が付き ます。名前は波形コ ンフ ィ ギュ レーシ ョ ン ビ ューに 表示されます。

波形コ ン フ ィ ギュ レーシ ョ ンの新規作成

波形を表示する ために新しい波形コ ンフ ィ ギュ レーシ ョ ンを作成し ます。

1. [File] → [New Waveform Configuration] を ク リ ッ ク し ます。

新しい波形ビ ューが開いて、 新規のタ イ ト ルのない波形コ ンフ ィ ギュ レーシ ョ ンが表示されます。

2. 78 ページの 「波形コ ンフ ィ ギュ レーシ ョ ンの HDL オブジェ ク ト 」 に示す方法で HDL オブジェ ク ト を波形コ ン フ ィ ギュ レーシ ョ ンに追加し ます。

注記 : WCFG に、 HDL デザイ ン階層が開いた と きにシ ミ ュ レーシ ョ ンに存在し ない HDL オブジェ ク ト への参照が含 まれる と、Vivado シ ミ ュ レータではこれらの HDL オブジェ ク ト が無視され、読み込まれた波形コ ンフ ィ ギュ レーシ ョ ンから削除されます。

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

WCFG フ ァ イルを開 く

WCFG フ ァ イルを開いて、 ス タテ ィ ッ ク シ ミ ュ レーシ ョ ン と一緒に使用し ます。

1. [File] → [Open Waveform Configuration] を ク リ ッ ク し ます。

[Specify Simulation Results] ダ イ ア ロ グ ボ ッ ク スが表示されます。

2. WCFG フ ァ イルを選択し ます。

注記 : WCFG フ ァ イルにス タ テ ィ ッ ク シ ミ ュ レーシ ョ ンの HDL デザイ ン階層にはない HDL オブジェ ク ト への参照 が含まれる場合、 Vivado シ ミ ュ レータではこれらの HDL オブジェ ク ト が無視され、 読み込まれた波形コ ンフ ィ ギュ レーシ ョ ンから削除されます。

波形ビ ューが開き、WCFG フ ァ イルの リ ス ト された波形オブジェ ク ト 用にシ ミ ュ レータで検出された波形データ が表示されます。

波形コ ン フ ィ ギュ レーシ ョ ンの保存

波形コ ンフ ィ ギュ レーシ ョ ンを WCFG フ ァ イルに保存するには、 [File] → [Save Waveform Configuration As] を ク リ ッ ク し、 波形コ ンフ ィ ギュ レーシ ョ ンの名前を入力し ます。

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

Page 77: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

前のシ ミ ュ レーシ ョ ン設定からのシ ミ ュ レーシ ョ ン データの表示 (ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン)シ ミ ュ レーシ ョ ンを実行し て HDL オブジェ ク ト を波形ビ ューで表示する場合、シ ミ ュ レーシ ョ ンを実行する こ と で、 表示されている HDL オブジェ ク ト の波形ア ク テ ィ ビテ ィ を含む波形データベース (WDB) フ ァ イルが作成されます。 WDB フ ァ イルには、シ ミ ュ レーシ ョ ン されたデザイ ンの HDL ス コープ と オブジェ ク ト すべてに関する情報も含まれ ます。

「ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン」 は Vivado シ ミ ュ レータのモード で、 シ ミ ュ レーシ ョ ンを実行し て得たデータの代 わ り に、 WDB フ ァ イルからのデータがビ ューに表示されます。

こ のモー ド の場合、 下位に制御する ラ イ ブ シ ミ ュ レーシ ョ ン モデルがないので、 run コ マン ド のよ う なシ ミ ュ レー シ ョ ンを制御または監視する コマン ド は使用でき ません。

重要 : WDB フ ァ イルには後方置換性はな く 、OS 互換性も あ り ません。WDB フ ァ イルは、作成し たの と同じバージ ョ ンで、 同じ タ イプの OS で開 く 必要があ り ます。 WCFG フ ァ イルには後方互換性も OS 互換性も あ り ます。

ただし、 波形および HDL デザイ ン階層を表示する こ と はでき ます。 シ ミ ュ レータで波形コ ンフ ィ ギュ レーシ ョ ンが デフ ォル ト で作成される こ と はないので、新しい波形コ ンフ ィ ギュ レーシ ョ ンを作成するか、 WCFG フ ァ イルを開 く 必要があ り ます。

波形データベース フ ァ イルの表示

波形データベース (WDB) フ ァ イルを開いて、 シ ミ ュ レーシ ョ ン と し て表示するには、 次の手順に従って く ださい。

1. Vivado IDE を開き ます。

2. シ ミ ュ レーシ ョ ンを実行し た既存の Vivado プロ ジェ ク ト を開き ます。 [Open Static Simulation] の機能を使用する には、 この手順が必ず必要です。

3. Flow Navigator の [Simulation] セ ク シ ョ ンで [Open Static Simulation] を ク リ ッ ク し ます。

78 ページの図 5-1 に示す [Specify Simulation Results] ダ イ ア ロ グ ボ ッ ク スが表示されます。

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

Page 78: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

4. WDB フ ァ イルを選択し ます。

波形ビ ューのない [Simulation] ビ ューが表示 さ れます。 波形を表示する には、 76 ページの 「波形コ ン フ ィ ギ ュ レーシ ョ ンの新規作成」 および76 ページの 「WCFG フ ァ イルを開 く 」 の手順に従って く だ さい。

波形コ ン フ ィ ギュ レーシ ョ ンの HDL オブジ ェ ク ト HDL オブジェ ク ト を波形コ ンフ ィ ギュ レーシ ョ ンに追加する と、 波形ビ ューアーで HDL オブジェ ク ト の 「波形オブ ジェ ク ト 」 が作成されます。 波形オブジェ ク ト は、 HDL オブジェ ク ト に リ ン クはされますが、 別のものです。

同じ HDL オブジェ ク ト から複数の波形オブジェ ク ト を作成でき、 各波形オブジェ ク ト の表示プロパテ ィ を別々に設 定でき ます。

た と えば、 myBus と い う HDL オブジェ ク ト の波形オブジェ ク ト の 1 つの値を 16 進数で表示し、 myBus の別の波形 オブジェ ク ト を 10 進数で表示させる こ と ができ ます。

仕切 り 、 グループ、 仮想バスなどの別の種類の波形オブジェ ク ト も波形コ ンフ ィ ギュ レーシ ョ ンに表示でき ます。

HDL オブジ ェ ク ト から作成さ れた波形オブジェ ク ト は、 特に 「デザイ ン波形オブジ ェ ク ト 」 と 呼ばれます。 これら のオブジェ ク ト は、 それを示すア イ コ ンで表示されます。 デザイ ン波形オブジェ ク ト の場合、 アイ コ ンの背景でそのオブジェ ク ト がス カ ラー なのか、 Verilog ベク ターや VHDL レ コード などの複合型 なのかがわか り ます。

X-Ref Target - Figure 5-1

図 5-1 : [Specify Simulation Results] ダイアログ ボ ッ ク ス

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

Page 79: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

図 5-2 に、 波形コ ンフ ィ ギュ レーシ ョ ン ビ ューの HDL オブジェ ク ト の例を示し ます。

デザイ ン オブジェ ク ト には、 名前と値が表示されます。

• [Name] : デフ ォル ト では、 HDL オブジェ ク ト の名前が表示されます。 表示されるのは名前だけで、 オブジェ ク ト の階層パスは表示されません。 階層パスすべてを含めて名前を表示する、 または表示する テキ ス ト を指定し てカス タ ム名を割 り 当てる よ う に変更する こ と もでき ます。

• [Value] :オブジェ ク ト の値を波形ビ ューの メ イ ン カーソルに示される時間で表示し ます。 値のフ ォーマ ッ ト は、 同じ HDL オブジ ェ ク ト に リ ン ク さ れたほかのデザ イ ン波形オブジ ェ ク ト のフ ォーマ ッ ト に関係な く 、 および [Objects] ビ ューおよびソース コード ビ ューに表示される値のフ ォーマ ッ ト に関係な く 、 変更でき ます。

[Scopes] ビ ューの使用

図 5-3 は、 Vivado シ ミ ュ レータの [Scopes] ビ ューを示し ています。

[Scopes] ビ ュー内でス コープをフ ィ ルターするには、 次のいずれかの方法を使用し ます。

X-Ref Target - Figure 5-2

図 5-2 : 波形 HDL オブジ ェ ク ト

X-Ref Target - Figure 5-3

図 5-3 : [Scopes] ビュー

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

Page 80: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

• 一部のス コープを表示させないよ う にするには、 次を実行し ます。 1 つまたは複数のス コープ フ ィ ルター ボタ ンを ク リ ッ ク し ます。

• 特定の文字列を含むス コープに表示を限定するには、 [Zoom] ボタ ンを ク リ ッ ク し ます。 テキス ト ボ ッ ク スに文字列を入力し ます。

ス コープを ク ッ ク し て も [Scopes] ビ ュー内のオブジェ ク ト を フ ィ ルターでき ます。 ス コープを選択する と、 [Scopes] ポ ッ プア ッ プ メ ニューには次のオプシ ョ ンが含まれます。

• [Add to Wave Window] : 選択し たス コープの表示可能な HDL オブジェ ク ト すべてを波形コ ンフ ィ ギュ レーシ ョ ン に追加し ます。

または、 オブジェ ク ト を [Objects] ビ ューから波形ビ ューの [Name] 列まで ド ラ ッ グ アン ド ド ロ ッ プし ます。

重要 : オブジェ ク ト の波形には、 オブジェ ク ト がビ ューに追加された と きのシ ミ ュ レーシ ョ ン時間のみが表示されま す。 波形コ ンフ ィ ギュ レーシ ョ ンの作成や HDL オブジェ ク ト の追加など、 波形コ ンフ ィ ギュ レーシ ョ ンへの変更は、 WCFG フ ァ イルを保存する まで永久ではあ り ません。

• [Go To Source Code] : 選択し たス コープの定義でソース コード を開き ます。

• [Go To Instantiation Source code] : Verilog モジュールおよび VHDL エンテ ィ テ ィ イ ンス タ ンスの場合、選択し たイ ンス タ ンスのイ ンス タ ンシエーシ ョ ン時点でソース コード を開き ます。

ソ ース コ ー ド テ キ ス ト エデ ィ タ ーで フ ァ イ ルの識別子にカー ソ ルを置 く と 値が表示 さ れます (80 ページの 図 5-4)。

重要 : こ の機能を使用するには、 [Scopes] ビ ューで正しいス コープが選択されている必要があ り ます。

X-Ref Target - Figure 5-4

図 5-4 : 識別子が表示されたソース コー ド

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

Page 81: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

波形のカス タ マイズ

[Objects] ビ ューの使用

図 5-5 は、 Vivado シ ミ ュ レータの [Objects] ビ ューを示し ています。

一部の HDL オブジェ ク ト タ イプは、 次の方法で非表示にでき ます。 1 つまたは複数のオブジェ ク ト フ ィ ルター ボタ ンを ク リ ッ ク し ます。ボ タ ンの上にカーソルを置 く と、オブジェ ク ト タ イプを示すツール ヒ ン ト が表示されます。

オブジェ ク ト を選択する と、 ポ ッ プア ッ プ メ ニューには 次のオプシ ョ ンが含まれます。

• [Add to Wave Window] : 選択し たオブジェ ク ト を波形コ ンフ ィ ギュ レー シ ョ ンに追加し ます。

または、 オブジェ ク ト を [Objects] ビ ューから波形ビ ューの [Name] 列まで ド ラ ッ グ アン ド ド ロ ッ プし ます。

• [Radix] : 選択し たオブジェ ク ト の値を [Objects] ビ ューおよびソース コー ド ビ ューで表示する際に使用する数形式を選択し ます。

• [Go To Source Code] : 選択し たオブジェ ク ト の定義でソース コード を開き ます。

ヒ ン ト : Verilog イベン ト 、Verilog パラ メ ーター、VHDL 定数、 大 ト レース可能サイ ズ ( 『Vivado Tcl コマン ド リ フ ァ レ ン ス ガ イ ド』 (UG835)[参照 4] の trace_limit プロパテ ィ を参照) よ り も多いエレ メ ン ト など 、 波形と し ては表 示でき ない HDL オブジェ ク ト も あ り ます。 または、 Tcl コ ン ソールに trace_limit -help と入力し ます。

波形のカス タ マイズ次のセ ク シ ョ ンでは、 波形をカス タマイ ズする際に使用でき るオプシ ョ ンについて説明し ます。

アナログ波形の使用

こ こ では、 アナロ グ波形の機能および要件について説明し ます。

X-Ref Target - Figure 5-5

図 5-5 : [Objects] ビ ュー

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

Page 82: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

波形のカス タ マイズ

基数およびアナログ波形

バスの値が数値と し て処理される方法は、 バス波形オブジェ ク ト の基数設定によ って決ま り ます。

• 2 進数、 8 進数、 16 進数、 ASCII、 および符号な しの 10 進数の基数を使用する と、 バスの値が符号なしの整数と し て処理されます。

• 0 または 1 以外のビ ッ ト を使用する と、 全体の値が 0 と し て解釈されます。

• 符号付きの 10 進数基数を使用する と、 バスの値が符号付き整数と し て解釈されます。

• 実数基数を使用する と、 バスの値は固定小数点または浮動小数点の実数と し て処理されます。 これは、 82 ページ の図 5-6 に示す [Real Settings] ダ イ ア ロ グ ボ ッ ク スの設定によ って決ま り ます。

波形の基数を [Real] に設定する と、オブジェ ク ト の値が実数で表示される よ う にでき ます。この基数を選択する前に、 その値のビ ッ ト の変換方法を波形ビ ューアーで指定し てお く 必要があ り ます。

波形オブジェ ク ト の基数を実数に設定する手順は、 次の とお り です。

1. [Real Settings] ダ イ ア ロ グ ボ ッ ク ス を開き ます。

2. 波形コ ンフ ィ ギュ レーシ ョ ン ビ ューで HDL オブジェ ク ト を選択し、右ク リ ッ クのポ ッ プア ッ プ メ ニ ューから開 き ます。

[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> 値に な り ます。

X-Ref Target - Figure 5-6

図 5-6 : [Real Settings] ダイアログ ボ ッ ク ス

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

Page 83: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

波形のカス タ マイズ

ヒ ン ト : 行番号を分け る ラ イ ンが表示されない場合は、 86 ページの 「[Waveform Options] ス ラ イ ド ア ウ ト 」 でオンに し て、 表示される よ う にし ます。

波形のアナログ表示

HDL バス オブジェ ク ト をアナロ グ波形で表示し て予測される波形を出力する場合、 HDL オブジェ ク ト のデータの性 質と一致する基数を選択する こ と が重要にな り ます。

次に例を示し ます。

• バスでエン コード されるデータが 2 の補数の符号付き整数の場合は、 符号付きの基数を選択する必要があ り ま す。

• データが IEEE 形式にエン コード される浮動小数点の場合は、 基数に real を選択する必要があ り ます。

アナログ波形表示のカス タ マイズ

アナロ グ波形の表示は次のよ う にカス タマイ ズでき ます。

1. 波形ビ ューの [Name] でバス を右ク リ ッ ク し ます。

2. [Waveform Style] を ク リ ッ ク し、 次のいずれかを ク リ ッ ク し ます。

° [Analog] :デジ タル波形をアナロ グに設定し ます。

° [Digital] : アナロ グ波形オブジェ ク ト をデジ タルに設定し ます。

° [Analog Settings] : [Analog Settings] ダ イ ア ロ グ ボ ッ ク ス を開き ます。 図 5-7 に、 アナロ グ波形表示を設定する [Analog Settings] ダ イ ア ロ グ ボ ッ ク ス を示し ます。

[Analog Settings] ダ イ ア ロ グ ボ ッ ク スでは、 次のオプシ ョ ンを設定でき ます。

• [Row Height] : 選択し た波形オブジェ ク ト の高さ を ピ ク セルで指定し ます。 行の高さ を変更し て も波形の垂直方 向の表示域は変わ り ませんが、 波形の高さの伸縮が変わ り ます。

アナロ グ とデジ タルを切 り 替え る と き、 行の高さはそれぞれに合った適切なデフ ォル ト の高さ に設定されます (デジ タルの場合は 20、 アナロ グの場合は 100)。

• [Y Range] : 波形エ リ アに表示される数値の範囲を指定し ます。

° [Auto] : 表示されている時間の範囲の値が現在の範囲を超えた と きに、 表示範囲が拡大されます。

° [Fixed] : 時間範囲を一定にし ます。

X-Ref Target - Figure 5-7

図 5-7 : [Analog Settings] ダイアログ ボ ッ クス

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

Page 84: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

波形のカス タ マイズ

° [Min] : 波形エ リ アの一番下に表示される値を指定し ます。

° [Max] : 波形エ リ アの一番上に表示される値を指定し ます。

どち らの値も浮動小数点と し て指定でき ますが、 波形オブジェ ク ト の基数が整数の場合、 値は整数に切 り 捨て られます。

• [Interpolation Style] : データ ポイ ン ト を接続する ラ イ ンの描画方法を指定し ます。

° [Linear] : 2 つのデータ ポイ ン ト 間のラ イ ンを直線にし ます。

° [Hold] : 2 つのデータ ポ イ ン ト の う ち、 左のポ イ ン ト から右のポ イ ン ト の X 軸に向かって水平ラ イ ンを描画 し、 そのラ イ ンから右のポ イ ン ト に向かって別のラ イ ンを L 字型に描画し ます。

• [Off Scale] : 波形エ リ アの Y 軸を超えた値を どのよ う に描画するかを指定し ます。

° [Hide] : 範囲外にあ る値を非表示にし ます。 波形エ リ アの上下の範囲外にあ る ものは、 範囲内に戻る までは 非表示にな り ます。

° [Clip] : 範囲外にあ る値は変更され、波形エ リ アの上下境界線を超え る と範囲内に戻る までは水平ラ イ ン と し て表示されます。

° [Overlap] : 波形エ リ アの境界線を越えていて、 ほかの波形と重なっていて も、 波形ウ ィ ン ド ウの境界に達す る までは波形の値がど こにあって も波形が描画されます。

• [Horizontal Line] : 指定し た値で水平方向のラ イ ンを描画するかど う か指定し ます。 こ のチェ ッ ク ボ ッ ク スがオン の場合、 グ リ ッ ド ラ イ ンが指定し た Y 軸の位置で描画されます (値が波形の Y 軸の範囲内にあ る場合)。

[Min] および [Max] の場合と同様、 Y 軸の値には浮動小数点値を指定でき ますが、 選択し た波形オブジェ ク ト の 基数が整数の場合は、 整数値に切 り 捨て られます。

重要 : ズーム設定は波形コ ンフ ィ ギュ レーシ ョ ンには保存されません。

基数

バスのデータ型を理解する こ と は重要です。 デジタルおよびアナロ グの波形オプシ ョ ンを効果的に使用するには、 基数設定 とデータ型の関係を知ってお く 必要があ り ます。 基数設定およびそのアナロ グ波形解析への影響については、83 ページの 「波形のアナロ グ表示」 を参照し て く ださ い。

デフ ォル ト 基数の変更

デフ ォル ト の波形基数では、 明示的に設定し ていない基数の波形オブジェ ク ト すべての値が数形式で制御されます。デフ ォル ト の波形基数は、 binary です。

デフ ォル ト の波形基数を変更するには、 次の手順に従って く だ さい。

1. 波形ビ ューのサイ ドバーで [Waveform Options] ボタ ンを ク リ ッ ク し、 波形オプシ ョ ンのビ ューを開き ます。

2. [General] ページで [Default Radix] ド ロ ッ プダウ ン メ ニューを ク リ ッ ク し ます。

3. ド ロ ッ プダウ ン リ ス ト から基数を選択し ます。

波形オブジ ェ ク ト ご との基数の変更

各波形オブジェ ク ト の基数を次のよ う に変更でき ます。

1. [Objects] ビ ューでバス を選択し ます。

2. [Radix] を ク リ ッ ク し、 ド ロ ッ プダ ウ ン メ ニ ューから フ ォーマ ッ ト を選択し ます。

° [Binary] (2 進数)

° [Hexadecimal] (16 進数)

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

Page 85: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

波形のカス タ マイズ

° [Unsigned Decimal] (符号な し 10 進数)

° [Signed Decimal] (符号付き 10 進数)

° [Octal] (8 進数)

° [ASCII] (デフ ォル ト )

重要 : [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] : 信号のカ ス タ ム名を表示し ます。 詳細は、 85 ページの 「オブジェ ク ト 名の変更」 を参照し て く だ さい。

注記 : [Long] および [Short] の名前はデザイ ン波形オブジェ ク ト に対し てのみ意味があ り ます。その他のオブジェ ク ト (仕切 り 、 グループ、 仮想バス) はデフ ォル ト で [Custom] 名で表示され、 [Long] および [Short] 名に対する ID 文字列が 表示されます。

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

Page 86: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

波形表示の制御

バス ビ ッ ト 順の反転

波形コ ンフ ィ ギュ レーシ ョ ンでバス ビ ッ ト 順を反転し て、MSB の 上位バイ ト (ビ ッ グ エンデ ィ アン) および LSB の 下位バイ ト のビ ッ ト 順を切 り 替え る こ と で、 バス値を表示でき ます。

ビ ッ ト 順序を逆にするには、 次の手順に従います。

1. バス を選択し ます。

2. 右ク リ ッ ク し、 [Reverse Bit Order] を ク リ ッ ク し ます。

これでバス ビ ッ ト の順序が逆にな り ます。 [Reverse Bit Order] コマン ド の横にチェ ッ ク マーク が表示され、 適用 されている こ と が示されます。

[Waveform Options] スラ イ ド アウ ト

[Waveforms Options] ボタ ン を ク リ ッ クする と、 [Waveforms Options] ス ラ イ ド ア ウ ト が開き ます (図 5-8)。

[General Waveform Options] には、 次のオプシ ョ ンがあ り ます。

• [Default Radix] : 新し く 作成し た波形オブジェ ク ト に使用する数値形式を設定し ます。

• [Draw Waveform Shadow] : 影付きの波形が作成されます。

• [Show signal indices] : オンにする と、 波形オブジェ ク ト 名の左に行番号を表示でき ます。 行番号を分けている ラ イ ンを ド ラ ッ グする と、 波形オブジェ ク ト の高さ を変更でき ます。

• [Colors] ページでは、 波形ビ ュー内のア イ テムの色を設定でき ます。

波形表示の制御 波形表示は、 次のよ う に制御でき ます。

• [Objects] ビ ューのサイ ド バーにあ る ズーム ボタ ン

X-Ref Target - Figure 5-8

図 5-8 : [Waveform Options] スラ イ ド アウ ト

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

Page 87: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

波形表示の制御

• マウ ス ホ イールを使用し たズームの組み合わせ

• Vivado IDE Y 軸のズーム機能

• Vivado シ ミ ュ レーシ ョ ンの X 軸のズーム機能Vivado IDE の X 軸のズーム機能の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893)[参照 3] を参照し て く だ さい。

注記 : ほかの Vivado のグ ラ フ ィ ッ ク ビ ューと は異な り 、 波形ビ ューの拡大/縮小は Y 軸に関係な く 、 X (時間) 軸にの み適用されます。このため、ビ ューを拡大/縮小する範囲を指定する [Zoom Range X] が、ほかの Vivado ビ ューの [Zoom to Area] の代わ り に使用されます。

ズーム機能の使用

波形コ ンフ ィ ギュ レーシ ョ ンのズーム機能には、 ツールバー ボタ ンを使用し ます。

マウス ホイールを使用し たズーム

波形を ク リ ッ ク し て Ctrl キーを押し ながら マウ ス ホ イールを使用する と、 オシ ロ ス コープのダ イ ヤル操作の よ う にズーム表示をする こ と もでき ます。

Y 軸のズーム機能

X 軸方向のズームでサポー ト されている機能に加え、 アナロ グ波形の場合は、 図 5-9 に示す追加のズーム機能があ り ます。

ズーム機能を使用するには、 マウ スの左ボタ ンを押し たま ま、 図で示されている方向にマウ ス を ド ラ ッ グ し ます。 この図の中央がマウ スの位置です。

次の追加ズーム機能があ り ます。

• [Zoom Out Y] : 開始点から マウ ス ボタ ンを放し た位置までの距離によ り 、2 のべき乗分 Y 軸方向にズーム アウ ト し ます。 開始点のマウ ス位置の Y 値をそのま ま維持し てズームが実行されます。

X-Ref Target - Figure 5-9

図 5-9 : アナログ ズームのオプシ ョ ン

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

Page 88: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

波形の分類

• [Zoom Y Range] : 縦方向にラ イ ンを描き、 マウ ス ボタ ンを離し た位置までの Y 軸の範囲を表示し ます。

• [Zoom In Y] : 開始点からマウ ス ボタ ンを放し た位置までの距離によ り 、 2 のべき乗分 Y 軸方向にズーム イ ン し ます。 開始点のマウ ス位置の Y 値をそのま ま維持し てズームが実行されます。

• [Reset Zoom Y] : [Reset Zoom Y] : 波形ウ ィ ン ド ウに現在表示されている値に Y の範囲を リ セ ッ ト し、 Y の範囲 モード を [Auto] に設定し ます。

Y 軸の方向のズーム機能はすべて Y の範囲のアナロ グ値を設定し ます。 [Reset Zoom Y] は Y の範囲を [Auto] に設定 し ますが、 ほかのズーム機能は [Fixed] に設定し ます。

次の制限に注意し て く だ さい。

• 実数での 大バス幅は 64 ビ ッ ト です。

• Verilog real および VHDL real はアナロ グ波形のよ う にサポー ト されません。

• 浮動小数点では 32 ビ ッ ト および 64 ビ ッ ト の配列のみがサポー ト されています。

波形の分類こ こ では、 波形内の情報を分類するオプシ ョ ンについて説明し ます。

グループの使用

グループ と は、 波形コ ンフ ィ ギュ レーシ ョ ンに波形オブジェ ク ト を追加する ための拡張可能な入れ物の こ と で、 これによ り 関連し た波形オブジェ ク ト セ ッ ト が整頓でき ます。 グループ自体は波形データ を表示し ませんが、その内容の 表示/非表示を切 り 替え る こ と ができ ます。 グループは追加、 変更、 削除でき ます。

グループを追加するには、 次の手順に従います。

1. 波形ビ ューで、 グループに追加する波形オブジェ ク ト を 1 つまたは複数選択し ます。

注記 : グループには、 仕切 り 、 仮想バス、 ほかのグループを含める こ と ができ ます。

2. [Edit] → [New Group] を ク リ ッ クするか、 右ク リ ッ ク し て [New Group] を ク リ ッ ク し ます。

これによ り 、 選択し た波形オブジェ ク ト を含むグループが波形コ ンフ ィ ギュ レーシ ョ ンに追加されます。

グループは、 グループ ア イ コ ンで表されます。 HDL オブジ ェ ク ト を ド ラ ッ グ アン ド ド ロ ッ プし て、 グループに 信号やバス を追加する こ と もでき ます。

波形コ ンフ ィ ギュ レーシ ョ ン フ ァ イルを保存する と、新しいグループ と それに含まれる波形オブジェ ク ト も保存され ます。

グループは、 次の方法で移動または削除でき ます。

• グループを移動するには、 [Name] 列のグループ名を別の位置に ド ラ ッ グ アン ド ド ロ ッ プし ます。

• グループを削除するには、 グループを選択し て [Edit] → [Wave Objects] → [Ungroup] を ク リ ッ クするか、グループ を右ク リ ッ ク し て [Ungroup] を ク リ ッ ク し ます。グループに含まれていた波形オブジェ ク ト は、波形コ ンフ ィ ギュ レーシ ョ ンの一番上に配置されます。

グループ名も変更でき ます。 詳細は、 85 ページの 「オブジェ ク ト 名の変更」 を参照し て く ださ い。

注意 : Delete キーを押す と、 グループ と、 それに含まれている波形オブジェ ク ト が波形コ ンフ ィ ギュ レーシ ョ ンから 削除されます。

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

Page 89: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

波形の解析

仕切りの使用

仕切 り は、 HDL オブジ ェ ク ト を見やす く 区切 り ます。 波形コ ンフ ィ ギュ レーシ ョ ンに仕切 り を追加するには次の手 順に従います。

1. 波形ビ ューの [Name] 列で、 下に仕切 り を追加する信号を ク リ ッ ク し ます。

2. [Edit] → [New Divider] を ク リ ッ クするか、 右ク リ ッ ク し て [New Divider] を ク リ ッ ク し ます。

新しい区切 り マークは、 波形コ ンフ ィ ギュ レーシ ョ ン フ ァ イルを保存し た と きに保存されます。

仕切 り は、 次の方法で移動または削除でき ます。

• 仕切 り を移動するには、 名前を別の位置に ド ラ ッ グ アン ド ド ロ ッ プし ます。

• 仕切 り を削除するには、 Delete キーを押すか、 または右ク リ ッ ク し てポ ッ プア ッ プ メ ニューから [Delete] を ク リ ッ ク し ます。

仕切 り の名前も変更でき ます。 詳細は、 85 ページの 「オブジェ ク ト 名の変更」 を参照し て く ださ い。

仮想バスの使用

仮想バス を波形コ ンフ ィ ギュ レーシ ョ ンに追加する と、 論理ス カ ラーおよびベク ターを追加でき ます。

仮想バスはバス波形を表示し ます。 バス波形の値は、 仮想バスの下に表示される上から順番に、 追加されたスカ ラー および配列から対応する値を取 り 出し て、 1 次元のベク ターに平坦化する こ と で作成されます。

仮想バス を追加するには、 次の手順に従います。

1. 波形コ ンフ ィ ギュ レーシ ョ ンで、 仮想バスに追加する波形オブジェ ク ト を 1 つまたは複数選択し ます。

2. [Edit] → [New Virtual Bus] を ク リ ッ クするか、 右ク リ ッ ク し て [New Virtual Bus] を ク リ ッ ク し ます。

仮想バスは、 仮想バス ア イ コ ン で表されます。

信号名やバス名を ド ラ ッ グ アン ド ド ロ ッ プする と、 仮想バスに論理ス カ ラーおよび配列を移動でき ます。 波形コ ン フ ィ ギュ レーシ ョ ン フ ァ イルを保存する と、 新しい仮想バス と それに含まれる もの も保存されます。 また、 仮想バス の名前を波形の別位置に ド ラ ッ グ アン ド ド ロ ッ プし て移動でき ます。

仮想バスの名前を変更するには、 85 ページの 「オブジェ ク ト 名の変更」 を参照し て く ださ い。

仮想バス を削除し、 その中に含まれる ものをグループ解除するには、 仮想バス を選択し、 [Edit] → [Wave Objects] → [Ungroup] を ク リ ッ クするか、 または右ク リ ッ ク し てポ ッ プア ッ プ メ ニューの [Ungroup] を ク リ ッ ク し ます。

注意 : Delete キーを押すと、仮想バス と、 それに含まれている HDL オブジェ ク ト が波形コ ンフ ィ ギュ レーシ ョ ンから 削除されます。

波形の解析こ こ では、 波形内のデータ を解析する機能について説明し ます。

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

Page 90: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

波形の解析

カーソルの使用

カーソルは、 時間を一時的に示すために使用し ます。 2 つの波形エ ッ ジ間の距離 (時間) を計測する場合には、 カーソ ルを頻繁に移動し ます。

ヒ ン ト : WCFG フ ァ イルには、 カーソ ル位置は記録さ れません。 複数の計測の時間軸を設定する場合やシ ミ ュ レー シ ョ ンでの重要な イベン ト を示す場合な ど、 一時的ではない イ ンジケーターを設定する必要があ る場合は、 波形ビ ューにマーカーを追加し ます。 詳細は、 91 ページの 「マーカーの使用」 を参照し て く ださ い。

メ イ ン カーソルと 2 つ目のカーソル

波形を 1 回ク リ ッ クする と、 メ イ ン カーソルが配置されます。

2 つ目のカーソルを配置するには、 Ctrl キーを押し ながら ク リ ッ ク し、 マウ ス を左または右に ド ラ ッ グ し ます。 カー ソルの上に位置を示すフ ラ グが表示されます。 または、 Shift キーを押し たま ま波形のど こ かを ク リ ッ ク し ます。

2 つ目のカーソルがオンになっていない場合、 こ の動作によ り 2 つ目のカーソルが メ イ ン カーソルの現在の位置に設 定され、 メ イ ン カーソルが ク リ ッ ク し た位置に配置されます。

注記 : 2 つ目のカーソルの位置を保持し ながら メ イ ン カーソルの位置を変更するには、Shift キーを押し ながら ク リ ッ ク し ます。 2 つ目のカーソルを ド ラ ッ グ し て配置する場合、 小間隔以上ド ラ ッ グ し ない と 2 つ目のカーソルは表示 されません。

カーソルの移動

カーソ ルを移動する には、 ポ イ ン ターが手のひら のマーク にな る までマウ ス を動かし、 ク リ ッ ク し て次の位置までカーソルを ド ラ ッ グ し ます。

カーソルを ド ラ ッ グする際、 [Snap to Transtion] がオンになっている と (デフ ォル ト )、 中が塗 り つぶされていない丸ま たは中が塗 り つぶされた丸が表示されます。

• 中が塗 り つぶされていない丸 は、 選択し た信号の波形の遷移間にあ る こ と を示し ます。

• 中が塗 り つぶされた丸 は、カーソルがマウ スの下またはマーカーの波形の遷移でロ ッ ク されている こ と を示 し ます。

カーソル、マーカー、フ ロー ト し ているルーラーがない場所を ク リ ッ クする と、2 つ目のカーソルが非表示にな り ます。

次または前の遷移の検索

波形ビ ューのサイ ド バーには、メ イ ン カーソルを現在の位置から選択し た波形の次または前の遷移に移動させる ため のボ タ ンが含まれます。

メ イ ン カーソルを波形の次または前の遷移に移動するには、 次を実行し ます。

1. 波形の波形オブジェ ク ト 名を ク リ ッ ク し てア ク テ ィ ブにし ておき ます。

これで波形オブジェ ク ト が選択され、 オブジェ ク ト の波形が通常よ り も太いラ イ ンで表示されます。

2. サイ ド バーの [Next Transition] または [Previous Transition] ボタ ン を ク リ ッ クするか、 キーボード の右矢印ま たは左矢印キーを使用し て、 次または前の遷移に移動し ます。

ヒ ン ト : 複数の波形オブジェ ク ト を一緒に選択する と、 波形セ ッ ト の一番近い遷移に移動し ます。

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

Page 91: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

波形の解析

フ ロー ト ルーラーの使用

波形ウ ィ ン ド ウの上部にあ る標準ルーラーの絶対シ ミ ュ レーシ ョ ン時間以外の時間ベース を使用し て時間を計測するには、 フ ロー ト ルーラーを使用する と便利です。

フ ロー ト ルーラーは表示 (または非表示) にでき、 ド ラ ッ グ し て波形ウ ィ ン ド ウで垂直方向の位置に変更する こ と が でき ます。 こ のルーラーの時間ベース (時間 0) は 2 番目のカーソルで、 こ のカーソルがない場合は、 選択されたマー カーにな り ます。

フ ロー ト ルーラー ボタ ン およびフ ロー ト ルーラーは、 2 番目のカーソルまたはたマーカーがあ る場合にのみ表 示されます。

1. ルーラーの表示/非表示を切 り 替え るには、 次のいずれかを実行し ます。

° 2 番目のカーソルを配置

° マーカーを選択

2. [Floating Ruler] ボタ ンを ク リ ッ ク し ます。

この操作は 初に 1 回だけ実行し、繰 り 返す必要はあ り ません。 フ ロー ト ルーラーは 2 番目のカーソルが置 く た び、 またはマーカーが選択される たびに表示されます。

ルーラーを非表示にするには、 このコマン ド を も う 一度ク リ ッ ク し ます。

マーカーの使用

波形内の重要イベン ト を恒久的にマークする必要があ る場合はマーカーを使用し ます。 マーカーを使用する と、 マーカーが付け られた イベン ト に関連し た時間を計測でき ます。

マーカーは、 次のよ う に追加、 移動、 削除でき ます。

• メ イ ン カーソルの位置に波形コ ンフ ィ ギュ レーシ ョ ンにマーカーを追加し ます。

a. 波形ビ ューの時間または遷移を ク リ ッ ク し て、 マーカーを追加する時間の箇所に メ イ ン カーソルを置き ま す。

b. [Edit] → [Add Marker] を ク リ ッ クするか、 または [Add Marker] ボタ ンを ク リ ッ ク し ます。

カーソル位置にマーカーが配置されます。マーカーがその位置に既にあ る場合は、若干オフセ ッ ト されます。マーカーの時間が上部に表示されます。

• マーカーを波形ビ ューの別の位置に移動するには、 ド ラ ッ グ アン ド ド ロ ッ プし ます。マーカー ラベル (マーカー 上部またはマーカー ラ イ ン) を ク リ ッ ク し て ド ラ ッ グ し ます。

° ド ラ ッ グ シンボル は、 マーカーが移動可能であ る こ と を示し ます。 マーカーを ド ラ ッ グする際、 [Snap to Transtion] がオンになっている と (デフ ォル ト )、 中が塗 り つぶされていない丸または中が塗 り つぶされた 丸が表示されます。

° 中が塗 り つぶされている丸 は、 選択し た信号の波形の遷移地点、 または別のマーカー上であ る こ と を 示し ます。

° マーカーの場合は、 丸は白 く 塗 り つぶされています。

° 中が塗 り つぶされていない丸 は、 マーカーがマウ スの下またはマーカーの波形の遷移でロ ッ ク されて いる こ と を示し ます。

新しい位置にマーカーを ド ロ ッ プするには、 マウ スのボタ ンを放し ます。

• 1 つのコマン ド でマーカーを 1 つ、 またはすべて削除でき ます。 マーカーを右ク リ ッ ク し て、 次のいずれかの操 作を実行し ます。

° マーカーを 1 つ削除するには、 ポ ッ プア ッ プ メ ニューから [Delete Marker] を ク リ ッ ク し ます。

° マーカーをすべて削除するには、 ポ ッ プア ッ プ メ ニューから [Delete All Markers] を ク リ ッ ク し ます。

注記 : また、 Delete キーを使用し て選択し たマーカーを削除する こ と もでき ます。

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

Page 92: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

非プロジ ェ ク ト モー ドの使用次は、 Tcl コ ン ソールまたはバッ チ ス ク リ プ ト ないで使用でき る コマン ド の一部です。 これらのコマン ド の詳細につ いては、 『Vivado Tcl コマン ド リ フ ァ レ ン ス ガ イ ド』 (UG835)[参照 4] を参照し て く だ さい。

Vivado シ ミ ュ レータの GUI の起動

Vivado シ ミ ュ レータ を起動する には、 次を入力し ます。

xsim -gui -s <snapshot_name>

空の波形コ ンフ ィ ギュ レーシ ョ ンが表示されます。

デザイ ン階層の表示

[Scopes] および [Objects] ビ ューを使用する代わ り に、 Tcl コ ン ソールに current_scope と入力し て現在のス コープ を設定または表示する こ と もでき ます。

ス コープおよびオブジェ ク ト を リ ス ト するには、 現在のス コープ内で report_scopes および report_values コ マン ド をそれぞれ使用し ます。

波形ビ ューへの HDL オブジ ェ ク ト の追加

各 HDL オブジェ ク ト やオブジェ ク ト セ ッ ト を波形ビ ューに追加するには、 Tcl コ ン ソールに次を入力し ます。

add_wave <HDL_objects>

add_wave コマン ド を使用する と、 HDL オブジェ ク ト への絶対パス または相対パス を指定でき ます。

た と え ば、 現在の ス コ ープが /bft_tb/uut の場合、 uut の下の リ セ ッ ト レ ジ ス タ への絶対パ ス は /bft_tb/uut/reset、 相対パスは reset にな り ます。

ヒ ン ト : add_wave コマン ド には、 HDL ス コープおよび HDL オブジェ ク ト が指定でき ます。 add_wave にス コープ を指定し た場合、 [Sources] ビ ューの [Add To Wave Window] コマン ド と同じ動作にな り ます。

波形コ ン フ ィ ギュ レーシ ョ ンの保存

波形コ ンフ ィ ギュ レーシ ョ ンを WCFG フ ァ イルに保存するには、 Tcl コ ン ソールに次を入力し ます。

save_wave_config <filename.wcfg>

指定し たコマン ド引数の名前で WCFG フ ァ イルが保存されます。

表示された値の数形式の変更

表示された値の数形式を変更するには、 Tcl コ ン ソールに次を入力し ます。

set_property radix <radix> [current_sim]

<radix> は、 bin、 unsigned、 hex、 dec、 ascii、 oct のいずれかにな り ます。

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

Page 93: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

付録 A

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

概要ザイ リ ン ク スでは、 次のサードパーテ ィ シ ミ ュ レータがサポー ト されます。

• Mentor Graphics QuestaSim/ModelSim

• Cadence Incisive Enterprise Simulator (IES)

• Synopsis VCS および VCS MX

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

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

ModelSim は、 Vivado™ Integrated Design Environment (IDE) から もサポー ト されます。 Vivado IDE の使用については、 『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893)[参照 3] を参照し て く ださ い。

この付録では、 Vivado IDE 外でシ ミ ュ レーシ ョ ンを実行する方法を簡単に説明し ます。

サポー ト されるサード パーテ ィ シ ミ ュ レーシ ョ ン ツールおよびベンダーについては、 『ザイ リ ン ク ス デザイ ン ツー ル : リ リ ース ノ ー ト ガ イ ド』 (UG631)[参照 1] を参照し て く ださ い。

modelsim.ini フ ァ イルModelSim または QuestaSim の使用をサポー ト する ためには、 これら のシ ミ ュ レーターで使用でき る よ う にザイ リ ン ク ス シ ミ ュ レ ーシ ョ ン ラ イ ブ ラ リ を コ ン パ イ ルす る 必要が あ り ま す。 Vivado IDE の Tcl コ マ ン ド に compile_simlib と入力し、ModelSim および QuestaSim シ ミ ュ レータのシ ミ ュ レーシ ョ ン ラ イブラ リ を コ ンパイル し ます。

ラ イブラ リ がコ ンパイルされる と、 シ ミ ュ レーターは modelsim.ini フ ァ イルを使用し て これらのコ ンパイル済み ラ イブラ リ を参照し ます。 modelsim.ini フ ァ イルは、 デフ ォル ト の初期化フ ァ イルで、 リ フ ァ レ ン ス ラ イブラ リ パス、 適化、 コ ンパイ ラー、 シ ミ ュ レーターの設定を指定する制御変数が含まれます。

[Simulation] ページには、 [QuestaSim/ModelSim] を選択し た場合、 ラ イ ブラ リ デ ィ レ ク ト リ 用の追加フ ィ ール ド が表 示されます。

Vivado ツールの検索順は、 次の とお り です。

• [Simulation Settings] の [Compiled library location] オプシ ョ ンで指定し たデ ィ レ ク ト リ

• このオプシ ョ ンは、 [General] ページで [QuestaSim/ModelSim] がターゲ ッ ト シ ミ ュ レータ と し て設定されている 場合のみ [Simulation] ページに表示されます。

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

Page 94: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

• compxlib compile_simlib の実行時に設定された compxlib.compiled_library_dir 変数で指定される パス

• MODELSIM 環境変数で定義されたパス

重要 : modelsim.ini フ ァ イルがこれらのデ ィ レ ク ト リ にない場合は、 ザイ リ ン ク ス プ リ ミ テ ィ ブを含めるデザイ ンをシ ミ ュ レーシ ョ ンでき ません。

RTL/ビヘイ ビア シ ミ ュ レーシ ョ ンの実行次は、 ザイ リ ン ク ス デザイ ンをシ ミ ュ レーシ ョ ンする際の手順です。

1. compile_simlib コマン ド を使用し てシ ミ ュ レーシ ョ ン ラ イブラ リ を コ ンパイルし ます。

2. ソース フ ァ イルを集めて、 テス ト ベンチを作成し ます。デザイ ンに IP が含まれる場合は、『Vivado Design Suite ユーザー ガイ ド : IP を使用し たデザイ ン』 (UG896)[参照 8] を参照し て く ださ い。

3. Verilog を使用する場合は、 glbl.v を コ ンパイルし ます。 詳細は、 第 2 章の 「グ ローバル リ セ ッ ト および ト ラ イ ステー ト 」 を参照し て く だ さい。

4. デザイ ンに SeureIP が含まれる場合は、 次を実行し ます。

a. ModelSim の場合 :プ リ コ ンパイル ラ イブラ リ を使用するには、 VSIM で -L オプシ ョ ンを使用し て ラ イブラ リ を指定し ます。

例 :

vsim -t ps -L secureip -L unisims_ver work.<testbench> work.glbl

b. IES次のいずれかを使用し ます。

° IES の 1 ステ ッ プ プロセス

こ の場合、 ザイ リ ン ク ス ラ イブ ラ リ を コ ンパイルするのに、 compxlib を実行する必要はあ り ません。 次 の例に示すよ う に、 1 つのオプシ ョ ンのみを追加する必要があ り ます。

-f $XILINX_PLANAHEAD/data/secureip/ncsim/ies_secureip_cell.list.f

- IES の 1 ステ ッ プ プロセスの例

irun design>.v testbench>.v $XILINX_PLANAHEAD/data/verilog/src/glbl.v \-f $XILINX_PLANAHEAD/data/secureip/ncsim/ies_secureip_cell.list.f \-y $XILINX_PLANAHEAD/data/verilog/src/unisims +libext+.v \-y $XILINX_PLANAHEAD/data/verilog/src/unimacro +libext+.v \-y $XILINX_PLANAHEAD/data/verilog/src/retarget +libext+.v \+access+r+w

° IES の 3 ステ ッ プ プロセス

SecureIP ラ イブラ リ を コ ンパイルし、 CDS.lib および HDL.var に加えます。

c. VCS : 次のコマン ド をシ ミ ュ レーシ ョ ン コマン ド ラ イ ンに追加し、SecureIP フ ァ イルがシ ミ ュ レータで使用 される よ う にし ます。

-f $XILINX_PLANAHEAD/data/secureip/vcs/vcs_secureip_cell.list.f

VCS の例

vcs -f $XILINX_PLANAHEAD/data/secureip/vcs/vcs_secureip_cell.list.f \-y $XILINX_PLANAHEAD/data/verilog/src/unisims\-y $XILINX_PLANAHEAD/data/verilog/src/XILINXCORELIB\+incdir+$XILINX_PLANAHEAD/data/verilog/src +libext+.v\

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

Page 95: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

$XILINX_PLANAHEAD/data/verilog/src/glbl.v \-Mupdate -R <testfixture>.v <design>.v

5. デザイ ンを コ ンパイルし てシ ミ ュ レーシ ョ ン し ます。指定し たシ ミ ュ レータのユーザー ガイ ド を参照し て く ださ い。

注記 : 正し く シ ミ ュ レーシ ョ ン さ れる には、 UNISIM、 XILINXCORELIB、 SECUREIP、 UNIMACRO、 および UNNIFAST ラ イブラ リ が参照されている必要があ り ます。 詳細は、 第 2 章の 「シ ミ ュ レーシ ョ ン ラ イ ブラ リ 」 を参照し て く だ さい。

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

ネ ッ ト リ ス ト シ ミ ュ レーシ ョ ン プロセスの手順は 「RTL/ビヘイ ビア シ ミ ュ レーシ ョ ンの実行」 と同じにな り ます。

1. シ ミ ュ レーシ ョ ン ラ イブラ リ を コ ンパイルし ます。

2. シ ミ ュ レーシ ョ ン用のフ ァ イルを集めます (例 : 66 ページの図 4-2)。

a. RTL シ ミ ュ レーシ ョ ンに使用されたシ ミ ュ レーシ ョ ン テス ト ベンチは、 ほ と んどのデザイ ンで再利用でき ます。

b. write_verilog または write_vhdl を使用し、 シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト を生成し ます。

- 論理ネ ッ ト リ ス ト の場合は、 write_verilog -mode funcsim を使用し ます。

- タ イ ミ ング ネ ッ ト リ ス ト の場合は、 write_verilog -mode timesim を使用し ます。

- SDF には、 write_sdf を使用し ます。

次は、 その具体例です。

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

open_run synth_1 -name netlist_1

write_verilog -mode funcsim test_synth.v

write_verilog -mode timesim -sdf_file test.sdf test_synth_timing.v

write_sdf test.sdf

これで、 test.sdf を使用し、 論理シ ミ ュ レーシ ョ ンには test_synth.v、 タ イ ミ ング シ ミ ュ レーシ ョ ンには test_synth_timing.v を使用でき る よ う にな り ま し た。

3. Verilog を使用する場合は、 glbl.v を コ ンパイルし ます。 詳細は、 第 2 章の 「グ ローバル リ セ ッ ト および ト ラ イ ステー ト 」 を参照し て く だ さい。

4. SECUREIP ラ イブラ リ を使用する場合は 94 ページの手順 4 を参照し て く ださ い。

5. デザイ ンを コ ンパイルし てシ ミ ュ レーシ ョ ン し ます。使用する シ ミ ュ レータのユーザー ガイ ド を参照し て く ださ い。

注記 : 正し く シ ミ ュ レーシ ョ ン されるには、UNISIM、XILINXCORELIB、SECUREIP、および UNIFAST ラ イブラ リ が参照されている必要があ り ます。 詳細は、 第 2 章の 「シ ミ ュ レーシ ョ ン ラ イブラ リ 」 を参照し て く だ さい。

タ イ ミ ング シ ミ ュ レーシ ョ ンの実行タ イ ミ ング シ ミ ュ レーシ ョ ンでは SIMPRIM ラ イブラ リ が使用されます。 タ イ ミ ング シ ミ ュ レーシ ョ ン プロセス中 は、 正しいラ イブラ リ を参照する必要があ り ます。

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

Page 96: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

重要 : UNIMACRO、 XILINXCORELIB、 UNIFAST、 または UNISIM ラ イ ブ ラ リ は、 タ イ ミ ング シ ミ ュ レーシ ョ ンに は必要ああ り ません。

タ イ ミ ング シ ミ ュ レーシ ョ ンでは、ほかのオプシ ョ ンを使用し て、シ ミ ュ レータでパルスが正し く 処理される よ う に する必要があ り ます。 シ ミ ュ レータ コマン ド には、 次のオプシ ョ ンを追加する必要があ り ます。

• Mentor Graphics QuestaSim/ModelSim および Synopsys VCS

+transport_int_delays +pulse_int_e/0 +pulse_int_r/0

• Cadence IES/IUS

-pulse_r 0 -pulse_int_r

サー ド パーテ ィ シ ミ ュ レータ での SAIF のダンプSAIF (Switching Activity Interchange Format) に関する詳細は、 25 ページの 「SAIF のダンプ」 を参照し て く ださ い。

ModelSimModelSim では、 専用の消費電力コマン ド を使用し て、 SAIF フ ァ イルをダンプし ます。

1. 次のよ う に入力し、 ダンプする範囲または信号を指定し ます。

power add <hdl_objects>

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 を レポー ト し ます。

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

Page 97: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

サー ドパーテ ィ シ ミ ュ レータ での 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 のユーザー ガ イ ド を参照し て く だ さい。

Tcl コ マン ド フ ァ イルの例

dumpsaif -scope /tb/fpga/* -output routed.saifrun 500nsdumpsaif -endquit

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

Page 98: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

付録 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 底付き定数と し て表示される浮動小数点はサポー ト されません。

aggregate aggregate 内での choice 指示の混合はサポー ト されません。

alias_declaration オブジェ ク ト 以外へのエイ リ アスは通常、 特に次の場合サポー ト されません。

エイ リ アスのエイ リ アス

subtype_indication な しのエイ リ アス宣言 エイ リ アス宣言のシグナチャ

alias_designator と し ての演算子シンボル 演算子シンボルのエイ リ アス エイ リ アス宣言と し ての文字 リ テ ラル

alias_designator alias_designator と し ての operator_symbol alias_designator と し ての character_literal

association_element 結合エレ メ ン ト の実際のス ラ イ スについては、グ ローバル、ローカルな固定範囲を使用でき ます。

attribute_name 接頭語の後のシグナチャはサポー ト されません。

binding_indication entity_aspect を使用し ない binding_indication はサポー ト さ れません。

bit_string_literal 空の bit_string_literal (" ") はサポー ト されません。

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

Page 99: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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_indicationd 分解された複合体 (配列およびレ コード ) のサブタ イプはサ ポー ト されません。

表 B -1: VHDL 言語サポー ト の例外 (Cont’d)

サポー ト される VHDL コ ンス ト ラ ク ト 例外

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

Page 100: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

Verilog 言語サポー ト の例外

Verilog 言語サポー ト の例外 次の表では、 Verilog の言語サポー ト の例外について リ ス ト し ます。

waveform unaffected はサポー ト されていません。

waveform_element 空の waveform エレ メ ン ト は、保護付き信号にのみ関連する ため、 サポー ト されません。

表 B -2: Verilog 言語サポー ト の例外

Verilog コ ンス ト ラ ク ト 例外

コ ンパイ ラー指示子のコ ンス ト ラ ク ト

`celldefine サポー ト な し

`endcelldefine サポー ト な し

`undefs パラ メ ーター指定可能な `define マ ク ロ をサポー ト

`unconnected_drive サポー ト な し

`nounconnected_drive サポー ト な し

属性

attribute_instance サポー ト な し

attr_spec サポー ト な し

attr_name サポー ト な し

プ リ ミ テ ィ ブ ゲー ト およびス イ ッチ タ イプ

cmos_switchtype サポー ト な し

mos_switchtype サポー ト な し

pass_en_switchtype サポー ト な し

生成されたイ ン ス タ ンシエーシ ョ ン

generated_instantiation module_or_generate_item 選択肢はサポー ト されません。 1364-2001 Verilog 規格からの出力 generate_item_or_null ::= generate_conditonal_statement | generate_case_statement | generate_loop_statement | generate_block | module_or_generate_item

シ ミ ュ レータでサポー ト される出力 generate_item_or_null ::= generate_conditional_statement| generate_case_statement | generate_loop_statement | generate_blockgenerate_condition

表 B -1: VHDL 言語サポー ト の例外 (Cont’d)

サポー ト される VHDL コ ンス ト ラ ク ト 例外

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

Page 101: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

Verilog 言語サポー ト の例外

genvar_assignment 部分的にサポー ト 。 すべての generate ブロ ッ ク に名前を付け る必要があ り ま す。 1364-2001 Verilog 規格からの出力 generate_block ::= begin [ : generate_block_identifier ] { generate_item } end

シ ミ ュ レータでサポー ト される出力 generate_block ::= begin: generate_block_identifier { generate_item } end

ソース テキス ト コ ンス ト ラ ク ト

ラ イブラ リ ソース テキス ト

library_text サポー ト な し

library_descriptions サポー ト な し

library_declaration サポー ト な し

include_statement ラ イ ブ ラ リ マ ッ プ フ ァ イ ル内の文を含め る こ と を示し ます (IEEE 1364-2001、セ ク シ ョ ン 13.2).。これは、 `include コ ンパイ ラー指示子は参照し ません。

コ ンフ ィ ギュ レーシ ョ ン ソース テキス ト

config_declaration サポー ト な し

design_statement サポー ト な し

config_rule_statement サポー ト な し

default_clause サポー ト な し

システム タ イ ミ ング チェ ッ ク コマン ド

$skew_timing_check サポー ト な し

$timeskew_timing_check サポー ト な し

$fullskew_timing_check サポー ト な し

$nochange_timing_check サポー ト な し

システム タ イ ミ ング チェ ッ ク コマン ド の引数

checktime_condition サポー ト な し

PLA モデ リ ング タ ス ク

$async$nand$array サポー ト な し

$async$nor$array サポー ト な し

$async$or$array サポー ト な し

表 B -2: Verilog 言語サポー ト の例外 (Cont’d)

Verilog コ ンス ト ラ ク ト 例外

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

Page 102: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

Verilog 言語サポー ト の例外

$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 言語サポー ト の例外 (Cont’d)

Verilog コ ンス ト ラ ク ト 例外

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

Page 103: Vivado Design Suite ユーザー ガイド : ロジック シ …...ロジック シミュレーション japan.xilinx.com 3 UG900 (v2012.4) 2012 年 12 月 18 日 日付 バージョン

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

付録 C

その他のリ ソース

ザイ リ ン クス リ ソースアンサー、 資料、 ダウ ン ロード、 フ ォーラ ムなどのサポー ト リ ソースは、 次のザイ リ ン ク ス サポー ト サイ ト を参照 し て く だ さい。 http://japan.xilinx.com/support

ザイ リ ン ク ス資料で使用される用語集は、 次を参照し て く だ さい。 http://japan.xilinx.com/company/terms.htm

ソ リ ューシ ョ ン セン ターデバイ ス、 ツール、 IP のサポー ト については、 ザイ リ ン ク ス ソ リ ューシ ョ ン セン ターを参照し て く だ さい。 ト ピ ッ クには、 デザイ ン アシス タ ン ト 、 ア ド バイザ リ 、 ト ラブルシュー ト ヒ ン ト などが含まれます。

参照資料Vivado Design Suite 2012.4 の資料

1. 『ザイ リ ン ク ス デザイ ン ツール : リ リ ース ノ ー ト ガ イ ド』 (UG631)

2. 『ザイ リ ン ク ス デザイ ン ツール : イ ン ス ト ールおよびラ イセン ス ガ イ ド』 (UG798)

3. 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893)

4. 『Vivado Design Suite Tcl コマン ド リ フ ァ レ ンス ガ イ ド』 (UG835)

5. 『Writing Efficient Testbenches』 (XAPP199)

6. 『7 シ リ ーズ ラ イブラ リ ガ イ ド』 (HDL 用) (UG768)

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

8. 『Vivado ユーザー ガ イ ド : IP を使用し たデザイ ン』 (UG896)

9. 『Vivado Design Suite チュー ト リ アル : 制約の使用』 (UG945)