vivado design suite ユー ザー ユーザー ガイド€¢vcd...

126
Vivado Design Suite ユー Vivado Design Suite ユーザー ガイド ロジック シミュレーション UG900 (v2013.2) 2013 6 19

Upload: vodang

Post on 08-May-2019

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Vivado Design Suite ユーザー ガイ ド

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

UG900 (v2013.2) 2013 年 6 月 19 日

Vivado Design Suite ユーザー ガイ ド

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

UG900 (v2013.2) 2013 年 6 月 19 日

Page 2: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

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

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

Page 3: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

日付バー

ジ ョ ン改訂内容

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

• 非プロ ジェ ク ト モー ド : コ マン ド およびバ ッ チ ス ク リ プ ト オプシ ョ ンの追記Tcl コマン ド の使用に関する情報

を追加シ ミ ュ レーシ ョ ン ラ イブラ リ パスおよび <Vivado_Install_Dir> を Vivado 用に変更UNISIM ラ イブ

ラ リ モジ ュール例を追加

• SECUREIP シ ミ ュ レーシ ョ ン ラ イブラ リ にコ ンテンツ を追加Aldec の Riviera-PRO/Active HDL を追加 • SECUREIP ラ イブラ リ を使用する際の注意項目と Verilog 要件の注記を追加

• 「方法 1 : ラ イブ ラ リ またはフ ァ イル コ ンパイル順の使用 (推奨)」 の IES および VCS の例を変更 • VCD 機能の使用について追加 「ASYNC_REG 制約の使用」 を変更

• 「VHDL の GSR および GTS」 に情報を追加

• システム レベルの説明 の ZIP フ ァ イルのデ ィ レ ク ト リ を修正 • SIM_COLLISION_CHECK 文字列の WARN_ALL を WARNING_ALL に変更 • 「xelab コマン ド 構文オプシ ョ ン」 に -O オプシ ョ ンを追加 • 図 4-6 を置き換え 「[Project Settings] ダ イ ア ロ グ ボ ッ ク スのターゲ ッ ト シ ミ ュ レータ オプシ ョ ン 」 を置換

• [Add Sources] ダ イ ア ロ グ ボ ッ ク ス を置換シ ミ ュ レーシ ョ ンの メ ニ ュー オプシ ョ ンの置換 • relaunch オプシ ョ ンの説明を追加[Simulation] ツールバーのの図を置換

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

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

シ ミ ュ レータ を使用し たシ ミ ュ レーシ ョ ンの実行」 に追加 • サード パーテ ィ シ ミ ュ レータのデバ ッ グ方法に関する図を追加

2013/06/19 2013.2 • 全体で次を変更 : Tcl コマン ド を標準形式に変更Vivado シ ミ ュ レーシ ョ ン チュー ト リ アルに リ フ ァ レ ン ス を追

• 「レ ジス タ ト ラ ン ス フ ァー レベルのビヘイ ビアー シ ミ ュ レーシ ョ ン」 の記述を変更

• 11 ページの 「テス ト ベンチおよびステ ィ ミ ュ ラ ス フ ァ イルの使用」 のタ イ ト ルを変更 • 12 ページの表 2-1で ラ イブ ラ リ 情報の表を ま と めて、 compile_simlib の使用に関する注記を追加 • 16 ページの表 2-4の 「ザイ リ ン ク ス シ ミ ュ レーシ ョ ン ラ イブ ラ リ の使用」 に注記を追加 • 15 ページの「XILINXCORELIB ラ イブ ラ リ 」 の XILINXCORELIB 情報を明確化例の ISE へのパス を修正18 ペー

ジの 「GTHE2_CHANNEL/GTHE2_COMMON」 の GHTE のスペル ミ ス を GTHE に修正 • xsim の表に76 ページの 「-nosignalhandlers」 オプシ ョ ンを追加 • 34 ページの 「シ ミ ュ レーシ ョ ン設定」 のシ ミ ュ レーシ ョ ン設定オプシ ョ ンをア ッ プデー ト • -mt オプシ ョ ンの説明、 SDF 遅延の説明、 高速シ ミ ュ レーシ ョ ン モデルのイ ネーブルに関する情報を追加

37 ページの図 3-4 を追加38 ページの図 3-5および Design Under Test イ ン ス タ ン スおよび SAIF フ ァ イル名の説

明を追加38 ページの図 3-6 を追加 • 83 ページの 「シ ミ ュ レーシ ョ ン モー ド の実行」 で XSim を起動する Tcl コ マン ド を34 ページの 「シ ミ ュ レー

シ ョ ン設定」 の XSim および ModelSim の両方に追加 • 第 3 章 「Vivado IDE か らの Vivado シ ミ ュ レータの使用」 のセ ク シ ョ ンを修正 • 第 7 章 「サー ド パーテ ィ シ ミ ュ レータ の使用」 でサード パーテ ィ シ ミ ュ レータの情報をセ ク シ ョ ンに分割 • 97 ページの 「Vivado IDE で ModelSim/QuestaSim を使用するための設定」 を追加105 ページの 「コマン ド ラ イ

ン モー ド での ModelSim の使用」 を追加50 ページの 「post.tcl バ ッ チ フ ァ イルの追加」 を追加

• ソース レベルでのデバ ッ グを第 6 章 「Vivado シ ミ ュ レータ を使用し たデザイ ンのデバ ッ グ」 に移動 • 50 ページの 「シ ミ ュ レーシ ョ ンの終了」 の close_xsim コマン ド か ら -force 引数を削除 • 51 ページの 「コ ンパイルまたはシ ミ ュ レーシ ョ ンのス キ ッ プ」 の説明を追加 • 付録 A 「シ ミ ュ レーシ ョ ン Tcl コマン ド の値の規則」 を追加 • 116 ページの 「混合言語シ ミ ュ レーシ ョ ンの使用」 を 付録 B 「Vivado シ ミ ュ レータ の混合言語サポー ト および

例外」 に移動

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

Page 4: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

目次

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

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

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

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

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

暗号化サポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

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

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

テス ト ベンチおよびステ ィ ミ ュ ラ ス フ ァ イルの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

ザイ リ ン ク ス シ ミ ュ レーシ ョ ン ラ イブラ リ の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

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

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

ネ ッ ト リ ス ト の生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

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

グ ローバル リ セ ッ ト と ト ラ イ ステー ト の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

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

ASYNC_REG 制約の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

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

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

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

消費電力解析のための SAIF フ ァ イルのダンプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

第 3 章 : Vivado IDE からの Vivado シ ミ ュ レータの使用概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

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

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

Vivado シ ミ ュ レータの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

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

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

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

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

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

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

post.tcl バッチ フ ァ イルの追加. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

コ ンパイルまたはシ ミ ュ レーシ ョ ンのスキ ッ プ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

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

Page 5: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

第 4 章 : Vivado シ ミ ュ レータ波形を使用し た解析概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

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

前に保存し たシ ミ ュ レーシ ョ ン run を開 く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

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

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

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

波形の分類 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

波形の解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

第 5 章 : Vivado シ ミ ュ レータのコ マン ド ラ イ ンおよび Tcl概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

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

デザイ ン スナッ プシ ョ ッ ト のエラ ボレー ト および生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

デザイ ン スナッ プシ ョ ッ ト のシ ミ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

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

プロ ジェ ク ト フ ァ イル (.prj) の構文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

定義済みマ ク ロ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

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

シ ミ ュ レーシ ョ ン モード の実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

-tclbatch を使用し たシ ミ ュ レーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Tcl コ ン ソールからの Vivado シ ミ ュ レータの起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

その他の Tcl 情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

第 6 章 : Vivado シ ミ ュ レータ を使用し たデザイ ンのデバッ グ概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

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

ステ ィ ミ ュ ラ スの生成 (force) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Vivado シ ミ ュ レータ を使用し た消費電力解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

Tcl コマン ド report_driver の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

VCD 機能の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

第 7 章 : サー ドパーテ ィ シ ミ ュ レータの使用概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

ModelSim/QuestaSim を使用し たザイ リ ン ク ス デザイ ンのシ ミ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

Cadence IES シ ミ ュ レーシ ョ ンの実行. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Synopsys VCS シ ミ ュ レーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

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

付録 A : シ ミ ュ レーシ ョ ン Tcl コ マン ド の値の規則概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

文字列の値の解釈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

Vivado シ ミ ュ レーシ ョ ン ロジ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

付録 B : Vivado シ ミ ュ レータの混合言語サポー ト および例外概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

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

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

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

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

Page 6: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

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

参照資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

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

Page 7: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

第 1 章

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

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

この章では、 シ ミ ュ レーシ ョ ン プロセスの概要および Vivado® Design Suite のシ ミ ュ レーシ ョ ン オプシ ョ ンについて 記述し ます。Vivado™ Integrated Design Environment (IDE) には、Vivado シ ミ ュ レータ を使用するための統合シ ミ ュ レー シ ョ ン環境が提供されています。

Vivado IDE および Vivado Design Suite フ ローの詳細は、 次を参照し て く ださ い。

• 『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893) [参照 2]

• 『Vivado Design Suite ユーザー ガイ ド : システム レベル デザイ ン入力』 (UG895) [参照 9]

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

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

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

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

Page 8: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

シ ミ ュ レーシ ョ ン フ ロー

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

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

• RTL コード

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

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

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

• SECUREIP ラ イブラ リ

RTL シ ミ ュ レーシ ョ ンでは、 合成またはイ ンプ リ メ ンテーシ ョ ン ツールを実行する前にデザイ ンをシ ミ ュ レーシ ョ ンおよび検証でき ます。 デザイ ンは、 モジュールまたはエンテ ィ テ ィ 、 ブロ ッ ク、 デバイ ス と し て、 またはシステムレベルで検証でき ます。

X-Ref Target - Figure 1-1

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

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

Page 9: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

シ ミ ュ レーシ ョ ン フ ロー

RTL シ ミ ュ レーシ ョ ンは、 通常コード構文を検証し、 コード が予測どお り に機能し ているかど う かを確認する ために 実行されます。 この段階では、 デザイ ンは主に RTL で記述されるので、 タ イ ミ ング情報は必要ああ り ません。

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

デザイ ンをビヘイ ビアー RTL で検証する場合は、 早めに必要な変更をする こ と で、 デザイ ン サイ クルを節約でき ま す。

ヒ ン ト : Vivado 合成でラ イブラ リ コ ンポーネン ト が推論不可能な箇所に RTL が記述されている場合は、 コ ンポーネ ン ト を イ ンス タ ンシエー ト する必要のあ る こ と があ り ます。

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

• よ り 読みやすいコード

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

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

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

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

合成済みのネ ッ ト リ ス ト をシ ミ ュ レーシ ョ ンする と、 合成後のデザイ ンが論理要件を満た し ているか、 予測どお り に動作するかど う かが検証でき ます。 一般的ではあ り ませんが、 このシ ミ ュ レーシ ョ ン段階でも、 概算された タ イ ミ ング数値を使用し て タ イ ミ ング シ ミ ュ レーシ ョ ンを実行でき ます。

論理シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト は、 階層状になってお り 、 プ リ ミ テ ィ ブ モジュールおよびエンテ ィ テ ィ レベル に展開されます。 階層の 下位にはプ リ ミ テ ィ ブおよびマ ク ロ プ リ ミ テ ィ ブが含まれます。

これらのプ リ ミ テ ィ ブは Verilog の場合は UNISIMS_VER ラ イブラ リ に、 VHDL の場合は UNISIM ラ イブラ リ に含ま れます。 詳細は、 14 ページの 「UNISIM ラ イブラ リ 」 を参照し て く ださ い。

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

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

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

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

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

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

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

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

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

• 非同期パスの操作

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

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

Page 10: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

サポー ト されるシ ミ ュ レータVivado では、次のシ ミ ュ レータがサポー ト されます。Vivado シ ミ ュ レータ (Vivado IDE に統合。詳細は第 3 章 「Vivado IDE からの Vivado シ ミ ュ レータの使用」 を参照)

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

• Synopsys VCS および VCS MX

• Cadence Incisive Enterprise Simulator (IES)

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

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

サード パーテ ィ シ ミ ュ レータに関する詳細は、 第 7 章 「サードパーテ ィ シ ミ ュ レータの使用」 を参照し て く だ さい。

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

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

• VHDL IEEE-STD-1076-1993

• Verilog IEEE-STD-1364-2001

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

暗号化サポー トIEEE-P1735 暗号化がサポー ト されています。

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

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

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

Page 11: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

第 2 章

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

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

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

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

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

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

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

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

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

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

• デザイ ンを イ ンス タ ンシエー ト および初期化

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

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

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

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

• サブルーチン呼び出し

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

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

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 11UG900 (v2013.2) 2013 年 6 月 19 日

Page 12: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

次は、 効率的なテス ト ベンチを作成する際の推奨事項です。

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

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

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

• グ ローバル セ ッ ト / リ セ ッ ト (GSR) が解除される前に ク ロ ッ ク ソース を開始し ます。 詳細は、 23 ページの 「グ ローバル リ セ ッ ト と ト ラ イ ステー ト の使用」 を参照し て く だ さい。

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

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

データ信号は、 論理シ ミ ュ レーシ ョ ンの場合でも、 ク ロ ッ ク エ ッ ジで変更し ないよ う にし て く ださ い。 シ ミ ュ レータ は、 同じ シ ミ ュ レータ時刻で変更される信号同士の間にユニ ッ ト 遅延を追加し ます。

データが ク ロ ッ ク と同時刻に変更される場合は、シ ミ ュ レータでデータ入力が ク ロ ッ ク エ ッ ジ後に発生する よ う にス ケジュールでき ます。 初のク ロ ッ ク エ ッ ジ よ り 前にデータ を ク ロ ッ ク入力させる よ う にはでき ますが、データは次 の ク ロ ッ ク エ ッ ジまで通過し ません。

推奨 : こ のよ う な意図し ないシ ミ ュ レーシ ョ ン結果にな ら ないよ う にする ため、 データ信号と ク ロ ッ ク信号は同時に 切 り 替えないよ う にし て く だ さい。

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

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

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

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

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

UNISIM UNISIMS_VER

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

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

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

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

該当なし SIMPRIMS_VER (2)

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 12UG900 (v2013.2) 2013 年 6 月 19 日

Page 13: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

次に注意し て く だ さい。

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

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

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

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

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

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

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

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

SECUREIP SECUREIP

注記 : 1.compile_simlib オプシ ョ ンを使用する と 、 ザイ リ ン ク ス プ リ ミ テ ィ ブ と 前から あ る ISE Design Suite ザイ リ ン ク ス コ アのみがコ ン

パイルさ れます。 IP が生成される と 、 ザイ リ ン ク スの Vivado IP コ アのシ ミ ュ レーシ ョ ン モデルは出力フ ァ イル と し て提供されるので、 compile_simlib を使用し て作成された コ ンパイル済みラ イブ ラ リ には含まれません。

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

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

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

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

UNISIM UNIFAST UNIMACRO XILINXCORELIB モデル

SECUREIP SIMPRIMS(Verilog のみ) SDF

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

可能 可能 可能 可能 可能 該当な し 不可能

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

可能 可能 該当なし 該当な し 可能 不可能 不可能

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

該当な し 該当な し 該当なし 該当な し 可能 可能 可能

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

可能 可能 該当なし 該当な し 可能 該当な し 該当なし

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

該当な し 該当な し 該当なし 該当な し 可能 可能 可能

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

ラ イブ ラ リ HDL タ イプ デ ィ レ ク ト リ

UNISIM Verilog <Vivado_Install_Dir>/data/verilog/src/unisims

VHDL <Vivado_Install_Dir>/data/vhdl/src/unisims

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 13UG900 (v2013.2) 2013 年 6 月 19 日

Page 14: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

UNISIM ラ イブ ラ リ

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

VHDL UNISIM ラ イブ ラ リ

VHDL UNISIM ラ イブラ リ は、 ザイ リ ン ク ス デバイ ス フ ァ ミ リ のプ リ ミ テ ィ ブを指定する次のフ ァ イルに分割され ています。

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

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

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

library UNISIM;use UNISIM.Vcomponents.all;

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

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

Verilog UNISIM ラ イブ ラ リ

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

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

例 :

• BUFG モジュールは BUFG.v

• IBUF モジュールは IBUF.v

-y オプシ ョ ンの使用例は、 18 ページの 「Verilog UNIFAST ラ イブラ リ の使用」 および 第 7 章 「サード パーテ ィ シ ミ ュ レータの使用」 を参照し て く だ さい。

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

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

-L unisims_ver

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

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

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

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

ラ イブ ラ リ HDL タ イプ デ ィ レ ク ト リ

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 14UG900 (v2013.2) 2013 年 6 月 19 日

Page 15: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

UNIMACRO ラ イ ブ ラ リ

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

VHDL UNIMACRO ラ イ ブ ラ リ

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

library UNIMACRO;

use UNIMACRO.Vcomponents.all;

Verilog UNIMACRO ラ イ ブ ラ リ

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

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

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

XILINXCORELIB ラ イブ ラ リ

古いバージ ョ ンのザイ リ ン ク ス IP (ISE® Design Suite 14.x) を含むデザイ ンの RTL ビヘイ ビア シ ミ ュ レーシ ョ ンには、 XILINXCORELIB を使用し ます。 どのラ イブラ リ が適切なのかは、 該当する IP コ アのデータ シー ト または製品ガ イ ド を参照し て く だ さい。

重要 : compile_simlib オプシ ョ ンを使用する と、ザイ リ ン ク ス プ リ ミ テ ィ ブ と前から あ る ISE Design Suite ザイ リ ン ク ス コ アのみがコ ンパイルされます。 IP が生成される と、 ザイ リ ン ク スの Vivado IP コ アのシ ミ ュ レーシ ョ ン モデ ルは出力フ ァ イル と し て提供されるので、 compile_simlib を使用し て作成されたコ ンパイル済みラ イブラ リ には 含まれません。

SIMPRIMS ラ イ ブ ラ リ

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

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

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

-L SIMPRIMS_VER

説明 :

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 15UG900 (v2013.2) 2013 年 6 月 19 日

Page 16: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

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

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

ザイ リ ン ク スでは、 Verilog IEEE-P1735 の暗号化手法を使用し ています。 ラ イブラ リ コ ンパイル プロセスでは、 自動 的に暗号化が されます。

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

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

重要 : 7 シ リ ーズ デバイ スのデザイ ンでは、Verilog IEEE-P1735 暗号化に準拠し たシ ミ ュ レータが必要です。 サポー ト される シ ミ ュ レータは、 次の とお り です。 - Mentor Graphics ModelSim - Cadence IES (Verilog のみ) - Synopsys VCS および VCS MX (Verilog のみ) - Aldec Riviera-PRO および Active-HDL* (* Aldec シ ミ ュ レータは互換性はあ り ますが、 ザイ リ ン ク ス テ ク ニカル サポー ト ではサポー ト されません。 サポー ト に関する問題については、 Aldec にお尋ね く ださ い)。

VHDL SECUREIP ラ イブ ラ リ

UNISIM ラ イブ ラ リ には、 VHDL SECUREIP のラ ッ パーが含まれます。 次の 2 行を各フ ァ イルの 初に追加する と、 シ ミ ュ レータでエンテ ィ テ ィ がバイ ン ド でき ます。

Library UNISIM;use UNISIM.vcomponents.all;

Verilog SECUREIP ラ イブ ラ リ

Verilog コー ド を使用し てシ ミ ュ レーシ ョ ンを実行する場合、 ほ と んどのシ ミ ュ レータで SECUREIP ラ イブラ リ を参 照する必要があ り ます。

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

-L SECUREIP

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

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

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

ModelSim PE

ModelSim DE

QuestaSim

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

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

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

Riviera-PRO*

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 16UG900 (v2013.2) 2013 年 6 月 19 日

Page 17: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

Verilog SECUREIP ラ イ ブ ラ リ は、 コ ンパ イ ル時に -f オプシ ョ ン を付け る と 使用で き ます。 フ ァ イ ル リ ス ト は、 <Vivado_Install_Dir>/data/secureip/secureip_cell.list.f から入手でき ます。

UNIFAST ラ イブ ラ リ

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

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

推奨 : デザイ ンの 初の検証には 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)

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 17UG900 (v2013.2) 2013 年 6 月 19 日

Page 18: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

• 初のワード 中断

• almostempty および almostfull フ ラ グ

DSP48E1

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

• パターン検出

• OverFlow/UnderFlow

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

GTHE2_CHANNEL/GTHE2_COMMON

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

• 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 シ ミ ュ レータ または ModelSim 用に Vivado プロ ジェ ク ト 環境でサポー ト される UNIFAST を イ ネーブルにする には、 図 2-1 のよ う に [Enable fast simulation models] をオンにし ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 18UG900 (v2013.2) 2013 年 6 月 19 日

Page 19: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

IES および VCS シ ミ ュ レータの場合は、 次を使用し て UNIFAST ラ イブラ リ を指定し ます。

-y ../verilog/src/unifast

詳細は、 サード パーテ ィ シ ミ ュ レータのユーザー ガイ ド を参照し て く ださ い。

方法 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)

X-Ref Target - Figure 2-1

図 2-1 : [Simulation] 設定 : [Compilation] タグ

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 19UG900 (v2013.2) 2013 年 6 月 19 日

Page 20: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

config.v の例

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

VHDL UNIFAST ラ イブ ラ リの使用

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

library unisim;

library unifast;

configuration cfg_xilinx of testbench

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

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

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

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

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

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

.......end for;

...end for;

..end for;

end for;

end cfg_xilinx;

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

ザイ リ ン ク スの HDL ベースのシ ミ ュ レーシ ョ ン ラ イブ ラ リ をサー ド パーテ ィ のシ ミ ュ レーシ ョ ン ベンダー用にコ ンパイルするには、 次を使用し ます。

• Tcl コマン ド : compile_simlib

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

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

Page 21: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

重要 : compile_simlib オプシ ョ ンを使用する と、ザイ リ ン ク ス プ リ ミ テ ィ ブ と前から あ る ISE Design Suite ザイ リ ン ク ス コ アのみがコ ンパイルされます。 IP が生成される と、 ザイ リ ン ク スの Vivado IP コ アのシ ミ ュ レーシ ョ ン モデ ルは出力フ ァ イル と し て提供されるので、 compile_simlib を使用し て作成されたコ ンパイル済みラ イブラ リ には 含まれません。

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

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

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

推奨 : ザイ リ ン ク スでは、 すべての HDL シ ミ ュ レーシ ョ ンで ps を使用する こ と をお勧めし ています。 シ ミ ュ レータ の中には数値を丸めた り 、 切 り 捨てた り する もの も あ り ます。

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

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

• Tcl コマン ド :

° write_verilog : Verilog ネ ッ ト リ ス ト

° write_vhdl : VHDL ネ ッ ト リ ス ト

° write_sdf : SDF 生成

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 21UG900 (v2013.2) 2013 年 6 月 19 日

Page 22: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

これらのプ リ ミ テ ィ ブは、 次のラ イブラ リ に含まれます。

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

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

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

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

• Tcl コマン ド : write_verilog –mode funcsim <Verilog_Netlist_Name>

• Tcl コマン ド : write_vhdl –mode funcsim <VHDL_Netlist_Name>

タ イ ミ ング ネ ッ ト リ ス ト の生成

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

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

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

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

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

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

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

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

• Tcl コ マン ド : write_verilog –mode timesim –sdf_anno true <Verilog_Netlist_Name>

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

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

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 22UG900 (v2013.2) 2013 年 6 月 19 日

Page 23: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

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

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

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

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

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

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

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 23UG900 (v2013.2) 2013 年 6 月 19 日

Page 24: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

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

Verilog の GSR および GTSグ ローバル セ ッ ト / リ セ ッ ト (GSR) およびグ ローバル ト ラ イ ステー ト (GTS) 信号は <Vivado_Install_Dir>/data/verilog/src/glbl.v モジュールで定義されています。

ほ と んどの場合、 GSR および GTS をテス ト ベンチで定義する必要はあ り ません。

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

VHDL の GSR および GTS グ ローバル セ ッ ト / リ セ ッ ト (GSR) およびグ ローバル ト ラ イ ステー ト (GTS) 信号は <Vivado_Install_Dir>/data/vhdl/src/glbl.vhd モジュールで定義されています。

このコ ンポーネン ト を使用するには、 それら をテス ト ベンチにイ ンス タ ンシエー ト する必要があ り ます。

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

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

GLBL_VHD inst:GLBL_VHD generic map (ROC_WIDTH => 90000);

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

X-Ref Target - Figure 2-2

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 24UG900 (v2013.2) 2013 年 6 月 19 日

Page 25: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

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

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

end if;end process;

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

end if;end process;

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

• clk

• clk_b

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

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

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

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

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

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

end process;

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

end if;end process;

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

-- the value is in ps

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 25UG900 (v2013.2) 2013 年 6 月 19 日

Page 26: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

ASYNC_REG 制約の使用

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

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

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

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

• HDL コード の属性

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

ASYNC_REG が適用されている レジス タは、 タ イ ミ ング シ ミ ュ レーシ ョ ン中に前の値を保持し、 シ ミ ュ レーシ ョ ン に X を出力し ません。 新しい値も ク ロ ッ ク入力された可能性があ るので、 注意し て く ださ い。

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

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

同期エレ メ ン ト の X 伝搬のデ ィ スエーブルタ イ ミ ング シ ミ ュ レーシ ョ ン中にタ イ ミ ング エラーが発生する と、 ラ ッチ、 レジス タ、 RAM またはその他の同期エ レ メ ン ト はデフ ォル ト で X をシ ミ ュ レータに出力し ます。 これは、 実際の出力値が未知のためです。 レジス タの出力 は、 次のよ う にな り ます。

• 前の値を保持

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

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

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

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

生成された X を修正するには、 次の手順に従います。

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 26UG900 (v2013.2) 2013 年 6 月 19 日

Page 27: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

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

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

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

デバイス SelectMAP シ リ アル SPI BPI

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

○ ○ X X

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 27UG900 (v2013.2) 2013 年 6 月 19 日

Page 28: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

このモデルでは制御信号の動作と ビ ッ ト フ ァ イルのダウ ン ロード が処理されます。 CRC、 IDCODE のよ う な内部レジ ス タ設定と ステータ ス レジス タが含まれます。Sync Word がデバイ スに入力され、 ス ター ト ア ッ プ シーケン スで処理 される と こ ろ も監視でき ます。 図 2-3 は、 システムをハード ウ ェ アから シ ミ ュ レーシ ョ ン環境にマ ッ プする方法を示 し ています。

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

システム レベルの記述

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 フ ァ イルのダウ ン ロード中、 モデルは各コマン ド を実 行し、 ハード ウ ェ アの変更を監視する レジス タ設定を変更し ます。

X-Ref Target - Figure 2-3

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 28UG900 (v2013.2) 2013 年 6 月 19 日

Page 29: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 29UG900 (v2013.2) 2013 年 6 月 19 日

Page 30: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

シ ミ ュ レーシ ョ ンでのブロ ッ ク 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 イ ン ターフ ェ イ スの設定を変更で き ます。

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

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

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

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

表 2-7 : SIM_COLLISION_CHECK 文字列

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

ALL ○ ○

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

GENERATE_X_ONLY X ○

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 30UG900 (v2013.2) 2013 年 6 月 19 日

Page 31: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

消費電力解析のための SAIF フ ァ イルのダンプ

消費電力解析のための SAIF フ ァ イルのダンプSAIF (Switching Activity Interchange Format) は、 シ ミ ュ レータ ツールで生成されたス イ ッ チング ア ク テ ィ ビテ ィ を抽 出し て並び替え る こ と のでき る ASCII 形式のレポー ト です。

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

詳細は、 該当する シ ミ ュ レータの項目を参照し て く だ さい。

• Vivado シ ミ ュ レータ : 37 ページの 「[Enable fast simulation models] :」

• 106 ページの 「ModelSim/QuestaSim での SAIF のダンプ」

• 109 ページの 「IES での消費電力解析用の SAIF のダンプ」

• 111 ページの 「VCS の消費電力解析用の SAIF のダンプ」

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 31UG900 (v2013.2) 2013 年 6 月 19 日

Page 32: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

第 3 章

Vivado IDE からの Vivado シ ミ ュ レータの使用

概要本章では、 Vivado Integrated Design Environment (IDE) で使用可能なプ ッ シュ ボタ ンで波形を ト レースおよびデバ ッ グ でき る Vivado® シ ミ ュ レータ機能について説明し ます。

Vivado シ ミ ュ レータは、 ハード ウ ェ ア記述言語 (HDL) のイベン ト ド リ ブン シ ミ ュ レータで、 VHDL、 Verilog、 およ び VHDL/Verilog 混合言語の論理およびタ イ ミ ング シ ミ ュ レーシ ョ ンがサポー ト されます。

Vivado シ ミ ュ レーシ ョ ン を実行する詳細な手順は、 『Vivado Design Suite チュー ト リ アル : ロ ジ ッ ク シ ミ ュ レーシ ョ ン』 (UG937) [参照 8] を参照し て く だ さい。

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

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

• SDF ア ノ テーシ ョ ン

• VCD ダンプ

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

• HardIP ブロ ッ ク (シ リ アル ト ラ ンシーバーおよび PCIe® など) のネイ テ ィ ブ サポー ト

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

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

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

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 32UG900 (v2013.2) 2013 年 6 月 19 日

Page 33: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

シ ミ ュ レーシ ョ ン ソース フ ァ イルの追加または作成シ ミ ュ レーシ ョ ン ソース を Vivado プロ ジェ ク ト に追加するには、 次の手順に従います。

1. [File] → [Add] を ク リ ッ クするか、 または [Add Sources] ボタ ンを ク リ ッ ク し ます。

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

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

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

° [Specify Simulation Set] : シ ミ ュ レーシ ョ ン ソース を保存する シ ミ ュ レーシ ョ ン セ ッ ト の名前 (デフ ォル ト は sim_1、 sim_2...) を入力し ます。

ド ロ ッ プダウ ン リ ス ト から [Create Simulation Set] を選択する と、 新規シ ミ ュ レーシ ョ ン セ ッ ト を定義でき ます。 複数のシ ミ ュ レーシ ョ ン セ ッ ト が使用可能な場合は、 Vivado シ ミ ュ レータによ り 、 どのシ ミ ュ レー シ ョ ン セ ッ ト がア ク テ ィ ブな (現在使用中の) セ ッ ト であ るかが表示されます。

こ の機能の詳細は、http://japan.xilinx.com/training/vivado/index.htm のオン ラ イ ン ビデオを参照し て く ださ い。

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

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

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

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

• [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] :シ ミ ュ レーシ ョ ン用にデザイ ン ソースすべてを含めます。

シ ミ ュ レーシ ョ ン セ ッ ト の操作

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 33UG900 (v2013.2) 2013 年 6 月 19 日

Page 34: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

ンチ ソース を使用し、 イ ンプ リ メ ン ト 済みデザイ ンのタ イ ミ ング シ ミ ュ レーシ ョ ン用にステ ィ ミ ュ ラ ス を供給する 別のテス ト ベンチを使用でき ます。

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

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

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

[Add or Create Simulation Sources] ページが表示されます。

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

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

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

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

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

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

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

X-Ref Target - Figure 3-1

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

X-Ref Target - Figure 3-2

図 3-2 : Flow Navigator のシ ミ ュ レーシ ョ ン オプシ ョ ン

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 34UG900 (v2013.2) 2013 年 6 月 19 日

Page 35: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

付いた HDL オブジェ ク ト がデジタルまたはアナロ グ形式で表示されます。

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

正しい Tcl コマン ド を使用するには、 次を入力し ます。

° Tcl コマン ド : launch_xsim

ヒ ン ト : このコマン ド に -scripts_only オプシ ョ ンを使用する と、 Vivado シ ミ ュ レータ を実行する ス ク リ プ ト が書き出 されます。

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

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

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

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

X-Ref Target - Figure 3-3

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 35UG900 (v2013.2) 2013 年 6 月 19 日

Page 36: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

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

サード パーテ ィ シ ミ ュ レーシ ョ ンの情報については、 第 7 章 「サー ド パーテ ィ シ ミ ュ レータの使用」 を参照し て く だ さい。

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

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

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

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

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

- QuestaSim/ModelSim に関する詳細は、 第 7 章 「サード パーテ ィ シ ミ ュ レータの使用」 を参照し て く だ さい。

• [Clean up simulation files] : オンにする と、 /sim デ ィ レ ク ト リ に格納されていないシ ミ ュ レーシ ョ ン フ ァ イルが 削除されます。

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

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

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

° [Command options] :

- -debug :シ ミ ュ レーシ ョ ン を高速に実行する ため、 デフ ォル ト で typical に設定 さ れてい ます。 その他に off および all と い う オプシ ョ ン も あ り ます。 typical 設定には、 wave および line オプシ ョ ンが含まれます。

- -mt : デフ ォル ト では auto に設定 さ れます。 こ のオプシ ョ ン を使用する と 、 並列実行 さ れる サブ コ ンパ イ ル ジ ョ ブの数を指定で き ます。 オプシ ョ ン を選択する と 、 37 ページの図 3-4の よ う に、 ド ロ ッ プダ ウ ン メ ニ ューに off、 2、 4、 8、 16、 および 32 と いっ た選択肢が表示 さ れる よ う にな り ます。

-mt レベルは、 次のよ う に設定する こ と もでき ます。

- Tcl コマン ド : set_property XELAB.MT_LEVEL off [get_filesets sim_1]

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 36UG900 (v2013.2) 2013 年 6 月 19 日

Page 37: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

- [SDF Delay] :

デフ ォル ト で sdfmax に設定されます。 こ のオプシ ョ ンを使用する と、タ イ ミ ング シ ミ ュ レーシ ョ ン用 に読み出される SDF タ イ ミ ング遅延タ イプが指定でき ます。 ド ロ ッ プダウ ン メ ニ ューから sdfmin を 選択する こ と もでき ます。

- -rangecheck :

シ ミ ュ レーシ ョ ンを高速に実行する ため、 デフ ォル ト でオフになっています。 こ のオプシ ョ ンを使用する と、 VHDL のラ ン タ イ ム値の範囲チェ ッ クがイネーブルまたはデ ィ スエーブルにでき ます。

- [Enable fast simulation models] :

デフ ォル ト でオフになっています。 オンにする と、 UNIFAST シ ミ ュ レーシ ョ ン ラ イブラ リ がイ ネーブ ルにな り ます。 このラ イブラ リ の詳細は、 17 ページの 「UNIFAST ラ イブラ リ 」 を参照し て く ださい。

• [Simulation] タブ :使用可能なシ ミ ュ レーシ ョ ン オプシ ョ ンを提供し ます。 オプシ ョ ンを ク リ ッ クする と、 その説 明が表示されます。 [Simulation] タブでは次のオプシ ョ ンを選択でき ます。

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

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

° [Design Under Test Instance] : Design Under Test のイ ン ス タ ン ス名を指定でき ます。 デフ ォル ト は /uut です。

° [SAIF Filename] : SAIF フ ァ イルが消費電力の 適化および概算 (タ イ ミ ング シ ミ ュ レーシ ョ ンのみ) 用に作 成される場合に、 そのフ ァ イル名を指定でき ます。

図 3-5 は、 [Simulation] 設定ページの [Simulation] タブを示し ています。

X-Ref Target - Figure 3-4

図 3-4 : シ ミ ュ レーシ ョ ン設定の -m オプシ ョ ン : [Compilation] タ ブ

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 37UG900 (v2013.2) 2013 年 6 月 19 日

Page 38: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

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

• [Netlist] タブ : シ ミ ュ レーシ ョ ンの write_verilog ネ ッ ト リ ス ト 設定が リ ス ト されます。 オプシ ョ ンを ク リ ッ クする と、 その説明が表示されます。 ネ ッ ト リ ス ト オプシ ョ ンは次の とお り です。

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

- -process_corner :デフ ォル ト で slow に設定されます。 ド ロ ッ プダウ ンには、 fast も含まれます。

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

図 3-6 は、 [Simulation] 設定ページの [Netlist] タブを示し ています。

° -sdf_anno : このコマン ド を選択するチェ ッ ク ボ ッ ク スが表示されます。

- Tcl コマン ド : write_sdf –process_corner <fast|slow> test.sdf

° -process_corner : -process_corner は、 fast または slow.に指定でき ます。

X-Ref Target - Figure 3-5

図 3-5 : [Simulation] 設定ページ : [Simulation] タ ブ

X-Ref Target - Figure 3-6

図 3-6 : [Simulation] 設定ページ :[Netlist] タ ブ

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 38UG900 (v2013.2) 2013 年 6 月 19 日

Page 39: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Vivado シ ミ ュ レータの実行

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

Vivado シ ミ ュ レータの実行Flow Navigator から [Run Simulation] を ク リ ッ ク し、 Vivado シ ミ ュ レータの GUI を表示し ます (40 ページの図 3-8)。

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

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

2. 「[Run] メ ニュー」

3. 「[Objects] ビ ュー」

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

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

6. 「波形ビ ュー」

7. 「[Scopes] ビ ュー」

8. 「[Sources] ビ ュー」

X-Ref Target - Figure 3-7

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 39UG900 (v2013.2) 2013 年 6 月 19 日

Page 40: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Vivado シ ミ ュ レータの実行

メ イ ン ツールバー

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

[Run] メ ニュー

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

X-Ref Target - Figure 3-8

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 40UG900 (v2013.2) 2013 年 6 月 19 日

Page 41: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Vivado シ ミ ュ レータの実行

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

Vivado シ ミ ュ レーターの [Run] メ ニュー オプシ ョ ンは次の とお り です。

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

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

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

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

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

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

• [Relaunch Simulation] : シ ミ ュ レーシ ョ ン フ ァ イルを リ コ ンパイルし て run を再実行し ます。

[Objects] ビ ュー

HDL オブジェ ク ト が表示されます (図 3-10)。

HDL オブジ ェ ク ト の横には、 言語ま たはプ ロ セス タ イ プが表示さ れます。 こ のビ ューにはシ ミ ュ レーシ ョ ン オブ ジェ ク ト の名前、 値、 ブロ ッ ク タ イプなどが リ ス ト されます。 表 3-1 は、 [Objects] ビ ューの上部のボタ ンを簡単に説 明し ています。

X-Ref Target - Figure 3-9

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

X-Ref Target - Figure 3-10

図 3-10 : [Objects] ビ ュー

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 41UG900 (v2013.2) 2013 年 6 月 19 日

Page 42: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Vivado シ ミ ュ レータの実行

また、 ボ タ ンの上にカーソルを置 く と、 詳細が表示されます。

[Simulation] ツールバー

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

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

表 3-1 : [Objects] ビ ューのボタ ン

ボタ ン 説明

[Search] ボタ ンを ク リ ッ クする と、 検索するオブジェ ク ト 名を入力でき る フ ィ ール ド が開き ます。

入力信号

出力信号

入力/出力信号

内部信号

定数信号

変数信号

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 42UG900 (v2013.2) 2013 年 6 月 19 日

Page 43: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Vivado シ ミ ュ レータの実行

波形オブジ ェ ク ト

Vivado IDE 波形ビ ューは、 多 く の Vivado Design Suite ツールで共通し て使用されます。 次の図 3-11 は、 波形コ ンフ ィ ギ ュ レーシ ョ ンに含まれる波形オブジ ェ ク ト の例を示し ています。

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

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

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

波形の詳細は、 第 4 章 「Vivado シ ミ ュ レータ波形を使用し た解析」 を参照し て く だ さい。

波形ビ ュー

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

X-Ref Target - Figure 3-11

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 43UG900 (v2013.2) 2013 年 6 月 19 日

Page 44: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Vivado シ ミ ュ レータの実行

各 HDL オブジェ ク ト やオブジェ ク ト セ ッ ト を波形ビ ューに追加するには、 次を入力し ます。

• Tcl コマン ド : add_wave <HDL_objects>

add_wave コマン ド を使用する と、 HDL オブジェ ク ト への絶対パス または相対パス を指定でき ます。

た と え ば、 現在の ス コ ープが /bft_tb/uut の場合、 uut の下の リ セ ッ ト レ ジ ス タ への絶対パ ス は /bft_tb/uut/reset、 相対パスは reset にな り ます。

ヒ ン ト : add_wave コマン ド には、 HDL ス コープおよび HDL オブジェ ク ト が指定でき ます。 add_wave にス コープ を指定し た場合、 [Sources] ビ ューの [Add To Wave Window] コマン ド と同じ動作にな り ます。

波形の保存

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

波形コ ンフ ィ ギュ レーシ ョ ンを WCFG フ ァ イルに保存するには、 次を入力し ます。

• Tcl コマン ド : save_wave_config <filename.wcfg>

指定し たコマン ド引数の名前で WCFG フ ァ イルが保存されます。

X-Ref Target - Figure 3-12

図 3-12 : 波形ビ ュー

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 44UG900 (v2013.2) 2013 年 6 月 19 日

Page 45: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Vivado シ ミ ュ レータの実行

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

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

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

[Scopes] ビ ュー

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

X-Ref Target - Figure 3-13

図 3-13 : [Scopes] ビュー

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 45UG900 (v2013.2) 2013 年 6 月 19 日

Page 46: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Vivado シ ミ ュ レータの実行

[Sources] ビ ュー

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

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

[Scopes] ビ ューまたは [Sources] ビ ューのいずれかで [Show Search] ボタ ン を ク リ ッ クする と、検索フ ィ ール ド が 表示されます。

Vivado シ ミ ュ レータでの [Scopes] ビ ューの使用方法については、 66 ページの 「カーソルの使用」 を参照し て く だ さ い。 [Scopes] および [Objects] ビ ューを使用する代わ り に、 Tcl コ ン ソールに次を入力し て HDL デザイ ンを表示する こ と もでき ます。

• Tcl コマン ド : current_scope

• Tcl コマン ド : report_scopes

• Tcl コマン ド : report_values

ヒ ン ト : ソース フ ァ イルにア ク セス し て編集するには、 図 3-15 に示す [Go to Source Code] を ク リ ッ ク し て、 [Scopes] または [Objects] ビ ューから フ ァ イルを開き ます。

ヒ ン ト : ソース コード を編集し た ら、 [Relaunch] ボタ ンを ク リ ッ ク し て、 シ ミ ュ レーシ ョ ンを閉じ て再び開 く こ と な く 、 シ ミ ュ レーシ ョ ンを リ コ ンパイルおよび再起動し ます。

X-Ref Target - Figure 3-14

図 3-14 : [Sources] ビ ュー

X-Ref Target - Figure 3-15

図 3-15 : [Go to Source Code] コ ンテキス ト メ ニュー

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 46UG900 (v2013.2) 2013 年 6 月 19 日

Page 47: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

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

• SECUREIP

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

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

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

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

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

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

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

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

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

合成後には、 シ ミ ュ レーシ ョ ン情報がさ らに増え るので、 デザイ ン論理がどれ く らい要件を満た し ているかど う かが詳細にチェ ッ ク でき ます。合成後の論理シ ミ ュ レーシ ョ ンを選択する と、論理ネ ッ ト リ ス ト が生成され、その UNISIM ラ イブラ リ がシ ミ ュ レーシ ョ ンに使用されます。

X-Ref Target - Figure 3-16

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 47UG900 (v2013.2) 2013 年 6 月 19 日

Page 48: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

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

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

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

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

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

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

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

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

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

X-Ref Target - Figure 3-17

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

X-Ref Target - Figure 3-18

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 48UG900 (v2013.2) 2013 年 6 月 19 日

Page 49: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

シ ミ ュ レーシ ョ ンの種類

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

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

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

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

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

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

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

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

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

X-Ref Target - Figure 3-19

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

X-Ref Target - Figure 3-20

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 49UG900 (v2013.2) 2013 年 6 月 19 日

Page 50: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

シ ミ ュ レーシ ョ ンの終了

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

シ ミ ュ レーシ ョ ンの終了シ ミ ュ レーシ ョ ンを閉じ るには、 Vivado IDE で次を実行し ます。

• [File] → [Exit] を ク リ ッ クするか、 プロ ジェ ク ト ビ ューの右上の X マーク を ク リ ッ ク し ます。

Tcl コ ン ソールから シ ミ ュ レーシ ョ ンを閉じ るには、 次を入力し ます。

• Tcl コマン ド : close_sim

保存し ていない波形コ ン フ ィ ギ ュ レーシ ョ ンがないかど う かがまずチェ ッ ク され、 あった場合は、 エ ラー メ ッ セージが表示されます。

post.tcl バッ チ フ ァ イルの追加プロジェ ク ト を作成し てデザイ ンをシ ミ ュ レーシ ョ ン し てから実行する コマン ド を追加でき ます。 これには、 次を実行し ます。

1. シ ミ ュ レーシ ョ ン ソース フ ァ イルに追加する シ ミ ュ レーシ ョ ン コマン ド を使用し て Tcl フ ァ イルを作成し ます。 た と えば、 元々 1000ns 実行される シ ミ ュ レーシ ョ ンに さ らに時間を追加する フ ァ イルを作成し ます。

run 5us

2. フ ァ イルの名前を post.tcl にし て、 使用可能なデ ィ レ ク ト リ に保存し ます。

3. [Add Sources] ボタ ン を使用し て Add Sources ウ ィ ザード を起動し、 [Add or Create Simulation Sources] を選択 し ます。

4. post.tcl フ ァ イルをシ ミ ュ レーシ ョ ン ソース と し て Vivado プロ ジェ ク ト に追加し ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 50UG900 (v2013.2) 2013 年 6 月 19 日

Page 51: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

コ ンパイルまたはシ ミ ュ レーシ ョ ンのスキ ッ プ

[Simulation Sources] フ ォルダーに post.tcl フ ァ イルが表示されます (図 3-21)。

5. [Simulation] ツールバーから [Relaunch] ボタ ンを ク リ ッ ク し ます。

post.tcl の指定時間 (元の時間に追加された時間) でシ ミ ュ レーシ ョ ンが再実行されます。

Vivado シ ミ ュ レータは自動的に post.tcl フ ァ イルを読み込み、シ ミ ュ レーシ ョ ンが追加時間分実行されます。

コ ンパイルまたはシ ミ ュ レーシ ョ ンのスキ ッ プ xelab を使用し た コ ンパイルおよび xsim を使用し たシ ミ ュ レーシ ョ ンは、 飛ばすこ と ができ ます。

• Tcl コマン ド : set_property skip_compilation 1 [get_filesets sim_1]

Vivado ツールでは、Vivado シ ミ ュ レータのコ ンパイル段階が飛ばされて、既存のコ ンパイル済みの結果を使用し てシ ミ ュ レーシ ョ ンが実行されます。

注記 : このプロパテ ィ を設定する と、 後にコ ンパイルし た後のデザイ ン フ ァ イルへの変更はシ ミ ュ レーシ ョ ンには 反映されません。

• Tcl コマン ド : set_property skip_simulation 1 [get_filesets sim_1]

Vivado ツールでシ ミ ュ レーシ ョ ン段階の実行が飛ばされます。

X-Ref Target - Figure 3-21

図 3-21 :

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 51UG900 (v2013.2) 2013 年 6 月 19 日

Page 52: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

第 4 章

Vivado シ ミ ュ レータ波形を使用し た解析

概要Vivado® シ ミ ュ レータ GUI では、 波形ウ ィ ン ド ウ を使用し てデザイ ンを解析し、 コード をデバ ッ グでき ます。 シ ミ ュ レータは、 [Objects] ビ ューおよび [Scopes] ビ ューなどの GUI のほかのエ リ アでデザイ ン データ を生成し ます。

通常、 シ ミ ュ レーシ ョ ンはシ ミ ュ レーシ ョ ンをする HDL オブジェ ク ト を定義する テス ト ベンチで設定し ます。 テス ト ベンチの詳細は、 『Writing Efficient Testbenches』 (XAPP199)[参照 4] を参照し て く ださ い、。

Vivado シ ミ ュ レータ を起動する と、 上位 HDL オブジ ェ ク ト を含む波形コ ン フ ィ ギ ュ レーシ ョ ンが表示されます。 Vivado シ ミ ュ レータは、 [Objects] ビ ューおよび [Scopes] ビ ューなどの GUI のほかのエ リ アでデザイ ン データ を生成 し ます。 こ の後、 別の HDL オブジェ ク ト を追加し た り 、 シ ミ ュ レーシ ョ ンを実行し た り でき ます。 詳細は、 52 ペー ジの 「波形コ ンフ ィ ギュ レーシ ョ ン と波形ビ ューの使用」 を参照し て く ださい。

波形コ ン フ ィ ギュ レーシ ョ ン と波形ビ ューの使用波形コ ンフ ィ ギュ レーシ ョ ンおよび WCFG フ ァ イルの両方がカス タマイ ズ された波形 リ ス ト を参照し ますが、こ の 2 つの概念は異な り ます。

• 波形コ ンフ ィ ギュ レーシ ョ ンは、 作業可能な メ モ リ に読み込まれたオブジェ ク ト です。

• WCFG フ ァ イルはデ ィ ス ク の波形コ ンフ ィ ギュ レーシ ョ ンが保存された ものです。

波形コ ンフ ィ ギュ レーシ ョ ンには名前が付 く か、Untitled# が付き ます。名前は波形コ ンフ ィ ギュ レーシ ョ ン ビ ューの タ イ ト ルバーに表示されます。

波形コ ン フ ィ ギュ レーシ ョ ンの新規作成

波形を表示する ために新しい波形コ ンフ ィ ギュ レーシ ョ ンを作成し ます。

1. [File] → [New Waveform Configuration] を ク リ ッ ク し ます。

新しい波形ビ ューが開いて、 新規のタ イ ト ルのない波形コ ンフ ィ ギュ レーシ ョ ンが表示されます。

Tcl コマン ド : add_wave <HDL_Object>

2. 54 ページの 「波形コ ンフ ィ ギュ レーシ ョ ンの HDL オブジェ ク ト 」 に示す方法で HDL オブジェ ク ト を波形コ ン フ ィ ギュ レーシ ョ ンに追加し ます。

注記 : WCFG に、 HDL デザイ ン階層が開いた と きにシ ミ ュ レーシ ョ ンに存在し ない HDL オブジェ ク ト への参照が含 まれる と、Vivado シ ミ ュ レータではこれらの HDL オブジェ ク ト が無視され、読み込まれた波形コ ンフ ィ ギュ レーシ ョ ンから削除されます。

波形波形の新規作成の詳細は、 第 3 章 「Vivado IDE からの Vivado シ ミ ュ レータの使用」 を参照し て く だ さい。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 52UG900 (v2013.2) 2013 年 6 月 19 日

Page 53: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

前に保存し たシ ミ ュ レーシ ョ ン run を開 く

WCFG フ ァ イルを開 く

WCFG フ ァ イルを開いて、 ス タテ ィ ッ ク シ ミ ュ レーシ ョ ン と一緒に使用し ます。

1. [File] → [Open Waveform Configuration] を ク リ ッ ク し ます。

[Specify Simulation Results] ダ イ ア ロ グ ボ ッ ク スが表示されます。

2. WCFG フ ァ イルを選択し ます。

注記 : WCFG フ ァ イルにス タ テ ィ ッ ク シ ミ ュ レーシ ョ ンの HDL デザイ ン階層にはない HDL オブジ ェ ク ト への 参照が含まれる場合、 Vivado シ ミ ュ レータではこれらの HDL オブジェ ク ト が無視され、 読み込まれた波形コ ン フ ィ ギュ レーシ ョ ンから削除されます。

波形ビ ューが開き、WCFG フ ァ イルの リ ス ト された波形オブジェ ク ト 用にシ ミ ュ レータで検出された波形データ が表示されます。

• Tcl コマンド : open_wave_config <waveform_name>

波形コ ン フ ィ ギュ レーシ ョ ンの保存

波形コ ンフ ィ ギュ レーシ ョ ンを WCFG フ ァ イルに保存するには、 [File] → [Save Waveform Configuration As] を ク リ ッ ク し、 波形コ ンフ ィ ギュ レーシ ョ ンの名前を入力し ます。

• Tcl コマンド : save_wave_config <waveform_name>

前に保存し たシ ミ ュ レーシ ョ ン run を開 くシ ミ ュ レーシ ョ ンを実行し て HDL オブジェ ク ト を波形ビ ューで表示する場合、シ ミ ュ レーシ ョ ンを実行する こ と で、 表示されている HDL オブジェ ク ト の波形ア ク テ ィ ビテ ィ を含む波形データベース (WDB) フ ァ イルが作成されます。

WDB フ ァ イルには、シ ミ ュ レーシ ョ ン されたデザイ ンの HDL ス コープ と オブジェ ク ト すべてに関する情報も含まれ ます。

「ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン」 は Vivado シ ミ ュ レータのモード で、 シ ミ ュ レーシ ョ ンを実行し て得たデータの代 わ り に、 WDB フ ァ イルからのデータがビ ューに表示されます。

こ のモー ド の場合、 下位に制御する ラ イ ブ シ ミ ュ レーシ ョ ン モデルがないので、 run コ マン ド のよ う なシ ミ ュ レー シ ョ ンを制御または監視する コマン ド は使用でき ません。

重要 : WDB フ ァ イルには後方置換性はな く 、OS 互換性も あ り ません。WDB フ ァ イルは、作成し たの と同じバージ ョ ンで、 同じ タ イプの OS で開 く 必要があ り ます。 WCFG フ ァ イルには後方互換性も OS 互換性も あ り ます。

ただし、 波形および HDL デザイ ン階層を表示する こ と はでき ます。 シ ミ ュ レータで波形コ ンフ ィ ギュ レーシ ョ ンが デフ ォル ト で作成される こ と はないので、 新しい波形コ ン フ ィ ギ ュ レーシ ョ ンを作成するか、 既存の WCFG フ ァ イ ルを開 く 必要があ り ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 53UG900 (v2013.2) 2013 年 6 月 19 日

Page 54: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

波形コ ン フ ィ ギュ レーシ ョ ンの HDL オブジ ェ ク ト HDL オブジェ ク ト を波形コ ンフ ィ ギュ レーシ ョ ンに追加する と、 波形ビ ューアーで HDL オブジェ ク ト の 「波形オブ ジェ ク ト 」 が作成されます。 波形オブジェ ク ト は、 HDL オブジェ ク ト に リ ン クはされますが、 別のものです。

同じ HDL オブジェ ク ト から複数の波形オブジェ ク ト を作成でき、 各波形オブジェ ク ト の表示プロパテ ィ を別々に設 定でき ます。

た と えば、 myBus と い う HDL オブジェ ク ト の波形オブジェ ク ト の 1 つの値を 16 進数で表示し、 myBus の別の波形 オブジェ ク ト を 10 進数で表示させる こ と ができ ます。

仕切 り 、 グループ、 仮想バスなどの別の種類の波形オブジェ ク ト も波形コ ンフ ィ ギュ レーシ ョ ンに表示でき ます。

HDL オブジ ェ ク ト から作成さ れた波形オブジェ ク ト は、 特に 「デザイ ン波形オブジ ェ ク ト 」 と 呼ばれます。 これら のオブジェ ク ト は、 それを示すア イ コ ンで表示されます。 デザイ ン波形オブジェ ク ト の場合、 アイ コ ンの背景でそのオブジェ ク ト がス カ ラー なのか、 Verilog ベク ターや VHDL レ コード などの複合型 なのかがわか り ます。

図 4-1 に、 波形コ ンフ ィ ギュ レーシ ョ ン ビ ューの HDL オブジェ ク ト の例を示し ます。

デザイ ン オブジェ ク ト には、 名前と値が表示されます。

• [Name] : デフ ォル ト では、 HDL オブジェ ク ト の名前が表示されます。 表示されるのは名前だけで、 オブジェ ク ト の階層パスは表示されません。 階層パスすべてを含めて名前を表示する、 または表示する テキ ス ト を指定し てカス タ ム名を割 り 当てる よ う に変更する こ と もでき ます。

• [Value] : オブジェ ク ト の値を波形ビ ューの メ イ ン カーソルに示される時間で表示し ます。 値のフ ォーマ ッ ト は、 同じ HDL オブジ ェ ク ト に リ ン ク さ れたほかのデザ イ ン波形オブジ ェ ク ト のフ ォーマ ッ ト に関係な く 、 および [Objects] ビ ューおよびソース コード ビ ューに表示される値のフ ォーマ ッ ト に関係な く 、 変更でき ます。

X-Ref Target - Figure 4-1

図 4-1 : 波形 HDL オブジ ェ ク ト

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 54UG900 (v2013.2) 2013 年 6 月 19 日

Page 55: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

[Scopes] ビ ューの使用

図 4-2 は、 Vivado シ ミ ュ レータの [Scopes] ビ ューを示し ています。

[Scopes] ビ ュー内でス コープをフ ィ ルターするには、 次のいずれかの方法を使用し ます。

• 一部のス コープを表示させないよ う にするには、 次を実行し ます。 1 つまたは複数のス コープ フ ィ ルター ボタ ンを ク リ ッ ク し ます。

• 特定の文字列を含むス コープに表示を限定するには、 [Zoom] ボタ ンを ク リ ッ ク し ます。 テキス ト ボ ッ ク スに文字列を入力し ます。

ス コープを ク ッ ク し て も [Scopes] ビ ュー内のオブジェ ク ト を フ ィ ルターでき ます。 ス コープを選択する と、 [Scopes] ポ ッ プア ッ プ メ ニューには次のオプシ ョ ンが含まれます。

• [Add to Wave Window] : 選択し たス コープの表示可能な HDL オブジェ ク ト すべてを波形コ ンフ ィ ギュ レーシ ョ ン に追加し ます。

または、 オブジェ ク ト を [Objects] ビ ューから波形ビ ューの [Name] 列まで ド ラ ッ グ アン ド ド ロ ッ プし ます。

重要 : オブジェ ク ト の波形には、 オブジェ ク ト がビ ューに追加された と きのシ ミ ュ レーシ ョ ン時間のみが表示されま す。 波形コ ンフ ィ ギュ レーシ ョ ンの作成や HDL オブジェ ク ト の追加など、 波形コ ンフ ィ ギュ レーシ ョ ンへの変更は、 WCFG フ ァ イルを保存する まで永久ではあ り ません。

• [Go To Source Code] : 選択し たス コープの定義でソース コード を開き ます。

• [Go To Instantiation Source code] : Verilog モジュールおよび VHDL エンテ ィ テ ィ イ ンス タ ンスの場合、選択し たイ ンス タ ンスのイ ンス タ ンシエーシ ョ ン時点でソース コード を開き ます。

ソ ース コ ー ド テ キ ス ト エデ ィ タ ーで フ ァ イ ルの識別子にカー ソ ルを置 く と 値が表示 さ れます (56 ページの 図 4-3)。

重要 : こ の機能を使用するには、 [Scopes] ビ ューで正しいス コープが選択されている必要があ り ます。

X-Ref Target - Figure 4-2

図 4-2 : [Scopes] ビュー

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 55UG900 (v2013.2) 2013 年 6 月 19 日

Page 56: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

[Objects] ビ ューの使用

図 4-4 は、 Vivado シ ミ ュ レータの [Objects] ビ ューを示し ています。

一部の HDL オブジェ ク ト タ イプは、 次の方法で非表示にでき ます。 1 つまたは複数のオブジェ ク ト フ ィ ルター ボタ ンを ク リ ッ ク し ます。ボ タ ンの上にカーソルを置 く と、オブジェ ク ト タ イプを示すツール ヒ ン ト が表示されます。

X-Ref Target - Figure 4-3

図 4-3 : 識別子が表示されたソース コー ド

X-Ref Target - Figure 4-4

図 4-4 : [Objects] ビ ュー

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 56UG900 (v2013.2) 2013 年 6 月 19 日

Page 57: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

波形のカス タ マイズ

オブジェ ク ト を選択する と、 ポ ッ プア ッ プ メ ニューには 次のオプシ ョ ンが含まれます。

• [Add to Wave Window] : 選択し たオブジェ ク ト を波形コ ンフ ィ ギュ レー シ ョ ンに追加し ます。

または、 オブジェ ク ト を [Objects] ビ ューから波形ビ ューの [Name] 列ま で ド ラ ッ グ アン ド ド ロ ッ プし ます。

• [Radix] : 選択し たオブジェ ク ト の値を [Objects] ビ ューおよびソース コード ビ ューで表示する際に使用する数形式を選択し ます。

• [Go To Source Code] : 選択し たオブジェ ク ト の定義でソース コード を開 き ます。

ヒ ン ト : Verilog イベン ト 、 Verilog パラ メ ーター、 VHDL 定数、 大 ト レース可能サイ ズ ( 『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド』 (UG835)[参照 6]の trace_limit プロパテ ィ を参照) よ り も多いエレ メ ン ト など 、 波 形と し ては表示でき ない HDL オブジェ ク ト も あ り ます。 または、 Tcl コ ン ソールに trace_limit -help と入力し ます。

波形のカス タ マイズ次のセ ク シ ョ ンでは、 波形をカス タマイ ズする際に使用でき るオプシ ョ ンについて説明し ます。

アナログ波形の使用

こ こ では、 アナロ グ波形の機能および要件について説明し ます。

基数およびアナログ波形の使用

バスの値が数値と し て処理される方法は、 バス波形オブジェ ク ト の基数設定によ って決ま り ます。

• 2 進数、 8 進数、 16 進数、 ASCII、 および符号な しの 10 進数の基数を使用する と、 バスの値が符号なしの整数と し て処理されます。

• 0 または 1 以外のビ ッ ト を使用する と、 全体の値が 0 と し て解釈されます。

• 符号付きの 10 進数基数を使用する と、 バスの値が符号付き整数と し て処理されます。

• 実数基数を使用する と、 バス の値は固定小数点ま たは浮動小数点の実数 と し て処理 さ れます。 こ れは、 [RealSettings] ダ イ ア ロ グ ボ ッ ク スの設定によ って決ま り ます。

波形オブジェ ク ト の基数を実数に設定する手順は、 次の とお り です。

1. [Real Settings] ダ イ ア ロ グ ボ ッ ク ス を開き ます (58 ページの図 4-5)。

2. 波形コ ンフ ィ ギュ レーシ ョ ン ビ ューで HDL オブジェ ク ト を選択し、右ク リ ッ クのポ ッ プア ッ プ メ ニ ューから開 き ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 57UG900 (v2013.2) 2013 年 6 月 19 日

Page 58: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

波形のカス タ マイズ

波形の基数を [Real] に設定する と、オブジェ ク ト の値が実数で表示される よ う にでき ます。この基数を選択する前に、 その値のビ ッ ト の変換方法を波形ビ ューアーで指定し てお く 必要があ り ます。

[Real Setting] ダ イ ア ロ グ ボ ッ ク スでは、 次のオプシ ョ ンを設定でき ます。

• [Fixed Point] :選択し たバス波形オブジェ ク ト のビ ッ ト が固定小数点の符号付き または符号なしの実数と し て処理 されます。

• [Binary Point] :2 進数小数点の右側のビ ッ ト 数を指定し ます。 [Binary Point] で指定する値が波形オブジェ ク ト の ビ ッ ト 幅よ り も大きい場合、 波形オブジェ ク ト の値は固定小数点と し ては処理されず、 波形オブジェ ク ト がデジタル波形で表示された と きにすべての値が <Bad Radix> と 表示さ れます。 アナロ グ波形 と し て表示される場 合、 すべての値は 0 と し て処理されます。

• [Floating Point] :選択し たバス波形オブジェ ク ト のビ ッ ト が IEEE 浮動小数点の実数と し て処理されます。

注記 : 単精度および倍精度 (および単/倍精度に設定されている値のカス タ ム精度) のみがサポー ト されています。

その他の値は、 [Fixed Point] を使用し た場合と同様 <Bad Radix> 値にな り ます。 [Exponent Width] および [Fraction Width] は、 波形オブジェ ク ト のビ ッ ト 幅に必ず追加される必要があ り 、 追加さ れない場合は <Bad Radix> 値にな り ます。

ヒ ン ト : 行番号を分け る ラ イ ンが表示されない場合は、 62 ページの 「[Waveform Options] ス ラ イ ド ア ウ ト 」 でオンに し て、 表示される よ う にし ます。

波形のアナログ表示

HDL バス オブジェ ク ト をアナロ グ波形で表示し て予測される波形を出力する場合、 HDL オブジェ ク ト のデータの性 質と一致する基数を選択する こ と が重要にな り ます。

X-Ref Target - Figure 4-5

図 4-5 : [Real Settings] ダイアログ ボ ッ ク ス

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 58UG900 (v2013.2) 2013 年 6 月 19 日

Page 59: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

波形のカス タ マイズ

例 :

• バスでエン コード されるデータが 2 の補数の符号付き整数の場合は、 符号付きの基数を選択する必要があ り ま す。

• データが IEEE 形式にエン コード される浮動小数点の場合は、 基数に real を選択する必要があ り ます。

アナログ波形表示のカス タ マイズ

アナロ グ波形の表示は次のよ う にカス タマイ ズでき ます。

1. 波形ビ ューの [Name] でバス を右ク リ ッ ク し ます。

2. [Waveform Style] を ク リ ッ ク し、 次のいずれかを ク リ ッ ク し ます。

° [Analog] : デジタル波形をアナロ グに設定し ます。

° [Digital] : アナロ グ波形オブジェ ク ト をデジ タルに設定し ます。

° [Analog Settings] : 59 ページの図 4-6 に、 アナロ グ波形表示を設定する [Analog Settings] ダ イ ア ロ グ ボ ッ ク ス を示し ます。

[Analog Settings] ダ イ ア ロ グ ボ ッ ク スでは、 次のオプシ ョ ンを設定でき ます。

• [Row Height] : 選択し た波形オブジェ ク ト の高さ を ピ ク セルで指定し ます。 行の高さ を変更し て も波形の垂直方 向の表示域は変わ り ませんが、 波形の高さの伸縮が変わ り ます。

アナロ グ とデジ タルを切 り 替え る と き、 行の高さはそれぞれに合った適切なデフ ォル ト の高さ に設定されます ( デジ タルの場合は 20、 アナロ グの場合は 100)。

• [Y Range] : 波形エ リ アに表示される数値の範囲を指定し ます。

° [Auto] : 表示されている時間の範囲の値が現在の範囲を超えた と きに、 表示範囲が拡大されます。

° [Fixed] : 時間範囲を一定にし ます。

° [Min] : 波形エ リ アの一番下に表示される値を指定し ます。

° [Max] : 波形エ リ アの一番上に表示される値を指定し ます。

X-Ref Target - Figure 4-6

図 4-6 : [Analog Settings] ダイアログ ボ ッ クス

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 59UG900 (v2013.2) 2013 年 6 月 19 日

Page 60: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

波形のカス タ マイズ

どち らの値も浮動小数点と し て指定でき ますが、 波形オブジェ ク ト の基数が整数の場合、 値は整数に切 り 捨て られます。

• [Interpolation Style] : データ ポイ ン ト を接続する ラ イ ンの描画方法を指定し ます。

° [Linear] : 2 つのデータ ポイ ン ト 間のラ イ ンを直線にし ます。

° [Hold] : 2 つのデータ ポ イ ン ト の う ち、 左のポ イ ン ト から右のポ イ ン ト の X 軸に向かって水平ラ イ ンを描画 し、 そのラ イ ンから右のポ イ ン ト に向かって別のラ イ ンを L 字型に描画し ます。

• [Off Scale] : 波形エ リ アの Y 軸を超えた値を どのよ う に描画するかを指定し ます。

° [Hide] : 範囲外にあ る値を非表示にし ます。 波形エ リ アの上下の範囲外にあ る ものは、 範囲内に戻る までは 非表示にな り ます。

° [Clip] : 範囲外にあ る値は変更され、波形エ リ アの上下境界線を超え る と範囲内に戻る までは水平ラ イ ン と し て表示されます。

° [Overlap] : 波形エ リ アの境界線を越えていて、 ほかの波形と重なっていて も、 波形ウ ィ ン ド ウの境界に達す る までは波形の値がど こにあって も波形が描画されます。

• [Horizontal Line] : 指定し た値で水平方向のラ イ ンを描画するかど う か指定し ます。 こ のチェ ッ ク ボ ッ ク スがオン の場合、 グ リ ッ ド ラ イ ンが指定し た Y 軸の位置で描画されます (値が波形の Y 軸の範囲内にあ る場合)。

[Min] および [Max] の場合と同様、 Y 軸の値には浮動小数点値を指定でき ますが、 選択し た波形オブジェ ク ト の 基数が整数の場合は、 整数値に切 り 捨て られます。

重要 : ズーム設定は波形コ ンフ ィ ギュ レーシ ョ ンには保存されません。

基数

バスのデータ型を理解する こ と は重要です。 デジタルおよびアナロ グの波形オプシ ョ ンを効果的に使用するには、 基数設定 とデータ型の関係を知ってお く 必要があ り ます。 基数設定およびそのアナロ グ波形解析への影響については、58 ページの 「波形のアナロ グ表示」 を参照し て く ださ い。

デフ ォル ト 基数の変更

デフ ォル ト の波形基数では、 明示的に設定し ていない基数の波形オブジェ ク ト すべての値が数形式で制御されます。デフ ォル ト の波形基数は、 binary です。

デフ ォル ト の波形基数を変更するには、 次の手順に従って く だ さい。

1. 波形ビ ューのサイ ドバーで [Waveform Options] ボタ ンを ク リ ッ ク し、 波形オプシ ョ ンのビ ューを開き ます。

2.[General] ページで [Default Radix] ド ロ ッ プダウ ン メ ニューを ク リ ッ ク し ます。

3.ド ロ ッ プダウ ン リ ス ト から基数を選択し ます。

波形オブジ ェ ク ト ご との基数の変更

各波形オブジェ ク ト の基数を次のよ う に変更でき ます。

1. [Objects] ビ ューでバス を選択し ます。

2. [Radix] を ク リ ッ ク し、 ド ロ ッ プダ ウ ン メ ニ ューから フ ォーマ ッ ト を選択し ます。

° [Binary] (2 進数)

° [Hexadecimal] (16 進数)

° [Unsigned Decimal] (符号な し 10 進数)

° [Signed Decimal] (符号付き 10 進数)

° [Octal] (8 進数)

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 60UG900 (v2013.2) 2013 年 6 月 19 日

Page 61: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

波形のカス タ マイズ

° [ASCII] (デフ ォル ト )

Tcl コ ン ソールから表示された値を数値の形式に変更するには、 次を入力し ます。

set_property radix <radix> [current_sim]

<radix> は、 bin、 unsigned、 hex、 dec、 ascii、 oct のいずれかにな り ます。

重要 : [Objects] ビ ューで基数を変更し て も、波形ビ ューまたは [Tcl Console] の値は変更されません。波形ビ ューで個々 の波形オブジェ ク ト の基数を変更するには、 波形ビ ューのポ ッ プア ッ プ メ ニューを使用し て く だ さい。

波形オブジ ェ ク ト の命名

オブジェ ク ト 名は変更し た り 、 表示し た り 、 表示を変更し た り でき ます。

オブジ ェ ク ト 名の変更

デザ イ ン波形オブジ ェ ク ト 、 仕切 り 、 グループ、 仮想バス などの波形コ ン フ ィ ギ ュ レーシ ョ ンに含まれる波形オブジェ ク ト の名前は変更でき ます。

1. [Name] 列でオブジェ ク ト 名を選択し ます。

2. 右ク リ ッ ク し、 [Rename] を ク リ ッ ク し ます。

[Rename] ダ イ ア ロ グ ボ ッ ク スが開き ます。

3. [Rename] ダ イ ア ロ グ ボ ッ ク スに新しい名前を入力し、 [OK] を ク リ ッ ク し ます。

波形コ ンフ ィ ギュ レーシ ョ ンのデザイ ン波形オブジェ ク ト の名前を変更し て も、 その下位の HDL オブジェ ク ト の名 前は変わ り ません。

ヒ ン ト : 波形オブジェ ク ト の名前を変更する と、 名前表示モード が [Custom] に変わ り ます。 元の表示モード に戻すに は、 表示モード を次のセ ク シ ョ ンで説明する よ う に [Long] または [Short] に戻す必要があ り ます。

オブジ ェ ク ト 名の表示変更

完全な階層名 (long name)、 信号またはバス名のみ (short name)、 または各デザイ ン波形オブジ ェ ク ト のカ ス タ ム名を 表示でき ます。 オブジェ ク ト 名は、 波形コ ンフ ィ ギ ュ レーシ ョ ンの [Name] 列に表示されます。 名前が非表示になっ ている場合は、 次の操作を実行し ます。

1. 名前全体が表示される よ う に [Name] 列の幅を調整し ます。

2. [Name] 列でス ク ロール バーを使用し て名前を表示し ます。

表示名を変更するには、 次の手順に従います。

1. 信号名またはバス名を 1 つ以上選択し ます。複数の信号を選択する場合は、Shift キーまたは Ctrl キーを押し なが ら ク リ ッ ク し ます。

2. [Name] を ク リ ッ ク し、 次を選択し ます。

° [Long] : 完全な階層名を表示し ます。

° [Short] : 信号名またはバス名のみを表示し ます。

° [Custom] : 信号のカ ス タ ム名を表示し ます。 詳細は、 61 ページの 「オブジェ ク ト 名の変更」 を参照し て く だ さい。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 61UG900 (v2013.2) 2013 年 6 月 19 日

Page 62: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

波形のカス タ マイズ

注記 : [Long] および [Short] の名前はデザイ ン波形オブジェ ク ト に対し てのみ意味があ り ます。その他のオブジェ ク ト (仕切 り 、 グループ、 仮想バス) はデフ ォル ト で [Custom] 名で表示され、 [Long] および [Short] 名に対する ID 文字列が 表示されます。

バス ビ ッ ト 順の反転

波形コ ンフ ィ ギュ レーシ ョ ンでバス ビ ッ ト 順を反転し て、MSB の 上位バイ ト (ビ ッ グ エンデ ィ アン) および LSB の 下位バイ ト のビ ッ ト 順を切 り 替え る こ と で、 バス値を表示でき ます。

ビ ッ ト 順序を逆にするには、 次の手順に従います。

1. バス を選択し ます。

2. 右ク リ ッ ク し、 [Reverse Bit Order] を ク リ ッ ク し ます。

これでバス ビ ッ ト の順序が逆にな り ます。 [Reverse Bit Order] コマン ド の横にチェ ッ ク マーク が表示され、 適用 されている こ と が示されます。

[Waveform Options] スラ イ ド アウ ト

[Waveforms Options] ボタ ン を ク リ ッ クする と、 [Waveforms Options] ス ラ イ ド ア ウ ト が開き ます (図 4-7)。

[General Waveform Options] には、 次のオプシ ョ ンがあ り ます。

• [Default Radix] : 新し く 作成し た波形オブジェ ク ト に使用する数値形式を設定し ます。

• [Draw Waveform Shadow] :影付きの波形が作成されます。

• [Show signal indices] : オンにする と、 波形オブジェ ク ト 名の左に行番号を表示でき ます。 行番号を分けている ラ イ ンを ド ラ ッ グする と、 波形オブジェ ク ト の高さ を変更でき ます。

• [Colors] ページでは、 波形ビ ュー内のア イ テムの色を設定でき ます。

X-Ref Target - Figure 4-7

図 4-7 : [Waveform Options] スラ イ ド アウ ト

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 62UG900 (v2013.2) 2013 年 6 月 19 日

Page 63: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

波形表示の制御

波形表示の制御 波形表示は、 次のよ う に制御でき ます。

• [Objects] ビ ューのサイ ド バーにあ る ズーム ボタ ン

• マウ ス ホ イールを使用し たズームの組み合わせ

• Vivado IDE Y 軸のズーム機能

• Vivado シ ミ ュ レーシ ョ ンの X 軸のズーム機能Vivado IDE の X 軸の拡大に関する詳細は、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 2] を参照し て く ださ い。

注記 : ほかの Vivado のグ ラ フ ィ ッ ク ビ ューと は異な り 、 波形ビ ューの拡大/縮小は Y 軸に関係な く 、 X (時間) 軸にの み適用されます。このため、ビ ューを拡大/縮小する範囲を指定する [Zoom Range X] が、ほかの Vivado ビ ューの [Zoom to Area] の代わ り に使用されます。

ズーム機能の使用

波形コ ンフ ィ ギュ レーシ ョ ンのズーム機能には、 ツールバー ボタ ン を使用し ます。

マウス ホイールを使用し たズーム

波形を ク リ ッ ク し て Ctrl キーを押し ながら マウ ス ホ イールを使用する と、 オシ ロ ス コープのダ イ ヤル操作の よ う にズーム表示をする こ と もでき ます。

Y 軸のズーム機能

X 軸方向のズームでサポー ト されている機能に加え、 アナロ グ波形の場合は、 図 4-8 に示す追加のズーム機能があ り ます。

X-Ref Target - Figure 4-8

図 4-8 : アナログ ズームのオプシ ョ ン

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 63UG900 (v2013.2) 2013 年 6 月 19 日

Page 64: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

波形の分類

ズーム機能を使用するには、 マウ スの左ボタ ンを押し たま ま、 図で示されている方向にマウ ス を ド ラ ッ グ し ます。 この図の中央がマウ スの位置です。

次の追加ズーム機能があ り ます。

• [Zoom Out Y] : 開始点から マウ ス ボタ ンを放し た位置までの距離によ り 、2 のべき乗分 Y 軸方向にズーム アウ ト し ます。 開始点のマウ ス位置の Y 値をそのま ま維持し てズームが実行されます。

• [Zoom Y Range] : 縦方向にラ イ ンを描き、 マウ ス ボタ ンを離し た位置までの Y 軸の範囲を表示し ます。

• [Zoom In Y] : 開始点からマウ ス ボタ ンを放し た位置までの距離によ り 、 2 のべき乗分 Y 軸方向にズーム イ ン し ます。 開始点のマウ ス位置の Y 値をそのま ま維持し てズームが実行されます。

• [Reset Zoom Y] : [Reset Zoom Y] : 波形ウ ィ ン ド ウに現在表示されている値に Y の範囲を リ セ ッ ト し、 Y の範囲 モード を [Auto] に設定し ます。

Y 軸の方向のズーム機能はすべて Y の範囲のアナロ グ値を設定し ます。 [Reset Zoom Y] は Y の範囲を [Auto] に設定 し ますが、 ほかのズーム機能は [Fixed] に設定し ます。

次の制限に注意し て く だ さい。

• 実数での 大バス幅は 64 ビ ッ ト です。

• Verilog real および VHDL real はアナロ グ波形のよ う にサポー ト されません。

• 浮動小数点では 32 ビ ッ ト および 64 ビ ッ ト の配列のみがサポー ト されています。

波形の分類こ こ では、 波形内の情報を分類するオプシ ョ ンについて説明し ます。

グループの使用

グループ と は、 波形コ ンフ ィ ギュ レーシ ョ ンに波形オブジェ ク ト を追加する ための拡張可能な入れ物の こ と で、 これによ り 関連し た波形オブジェ ク ト セ ッ ト が整頓でき ます。 グループ自体は波形データ を表示し ませんが、その内容の 表示/非表示を切 り 替え る こ と ができ ます。 グループは追加、 変更、 削除でき ます。

グループを追加するには、 次の手順に従います。

1. 波形ビ ューで、 グループに追加する波形オブジェ ク ト を 1 つまたは複数選択し ます。

注記 : グループには、 仕切 り 、 仮想バス、 ほかのグループを含める こ と ができ ます。

2. [Edit] → [New Group] を ク リ ッ クするか、 右ク リ ッ ク し て [New Group] を ク リ ッ ク し ます。

これによ り 、 選択し た波形オブジェ ク ト を含むグループが波形コ ンフ ィ ギュ レーシ ョ ンに追加されます。

Tcl コ ン ソールで add_wave_group を入力する と、 新しいグループが追加されます。

グループは、 グループ ア イ コ ンで表されます。 HDL オブジ ェ ク ト を ド ラ ッ グ アン ド ド ロ ッ プし て、 グループに 信号やバス を追加する こ と もでき ます。

波形コ ンフ ィ ギュ レーシ ョ ン フ ァ イルを保存する と、新しいグループ と それに含まれる波形オブジェ ク ト も保存され ます。

グループは、 次の方法で移動または削除でき ます。

• グループを移動するには、 [Name] 列のグループ名を別の位置に ド ラ ッ グ アン ド ド ロ ッ プし ます。

• グループを削除するには、 グループを選択し て [Edit] → [Wave Objects] → [Ungroup] を ク リ ッ クするか、グループ を右ク リ ッ ク し て [Ungroup] を ク リ ッ ク し ます。グループに含まれていた波形オブジェ ク ト は、波形コ ンフ ィ ギュ レーシ ョ ンの一番上に配置されます。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 64UG900 (v2013.2) 2013 年 6 月 19 日

Page 65: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

波形の分類

グループ名も変更でき ます。 詳細は、 61 ページの 「オブジェ ク ト 名の変更」 を参照し て く ださ い。

注意 : Delete キーを押す と、 グループ と、 それに含まれている波形オブジェ ク ト が波形コ ンフ ィ ギュ レーシ ョ ンから 削除されます。

仕切りの使用

仕切 り は、 HDL オブジ ェ ク ト を見やす く 区切 り ます。 波形コ ンフ ィ ギュ レーシ ョ ンに仕切 り を追加するには次の手 順に従います。

1. 波形ビ ューの [Name] 列で、 下に仕切 り を追加する信号を ク リ ッ ク し ます。

2. [Edit] → [New Divider] を ク リ ッ クするか、 右ク リ ッ ク し て [New Divider] を ク リ ッ ク し ます。

新しい仕切 り マークは、 波形コ ンフ ィ ギュ レーシ ョ ン フ ァ イルを保存し た と きに保存されます。

• Tcl コマンド : add_wave_divider

仕切 り は、 次の方法で移動または削除でき ます。

• 仕切 り を移動するには、 名前を別の位置に ド ラ ッ グ アン ド ド ロ ッ プし ます。

• 仕切 り を削除するには、 Delete キーを押すか、 または右ク リ ッ ク し てポ ッ プア ッ プ メ ニューから [Delete] を ク リ ッ ク し ます。

仕切 り の名前も変更でき ます。 詳細は、 61 ページの 「オブジェ ク ト 名の変更」 を参照し て く ださ い。

仮想バスの使用

仮想バス を波形コ ンフ ィ ギュ レーシ ョ ンに追加する と、 論理ス カ ラーおよびベク ターを追加でき ます。

仮想バスはバス波形を表示し ます。 バス波形の値は、 仮想バスの下に表示される上から順番に、 追加されたスカ ラー および配列から対応する値を取 り 出し て、 1 次元のベク ターに平坦化する こ と で作成されます。

仮想バス を追加するには、 次の手順に従います。

1. 波形コ ンフ ィ ギュ レーシ ョ ンで、 仮想バスに追加する波形オブジェ ク ト を 1 つまたは複数選択し ます。

2. [Edit] → [New Virtual Bus] を ク リ ッ クするか、 右ク リ ッ ク し て [New Virtual Bus] を ク リ ッ ク し ます。

仮想バスは、 仮想バス ア イ コ ン で表されます。

• Tcl コマンド : add_wave_virtual_bus

信号名やバス名を ド ラ ッ グ アン ド ド ロ ッ プする と、 仮想バスに論理ス カ ラーおよび配列を移動でき ます。

波形コ ンフ ィ ギュ レーシ ョ ン フ ァ イルを保存する と、 新しい仮想バス と それに含まれる ものも保存されます。 また、 仮想バスの名前を波形の別位置に ド ラ ッ グ アン ド ド ロ ッ プし て移動でき ます。

仮想バスの名前を変更するには、 61 ページの 「オブジェ ク ト 名の変更」 を参照し て く ださ い。

仮想バス を削除し、 その中に含まれる も のをグループ解除する には、 仮想バス を選択し、 [Edit] → [Wave Objects] → [Ungroup] を ク リ ッ クするか、 または右ク リ ッ ク し てポ ッ プア ッ プ メ ニューの [Ungroup] を ク リ ッ ク し ます。

注意 : Delete キーを押すと、仮想バス と、 それに含まれている HDL オブジェ ク ト が波形コ ンフ ィ ギュ レーシ ョ ンから 削除されます。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 65UG900 (v2013.2) 2013 年 6 月 19 日

Page 66: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

波形の解析

波形の解析こ こ では、 波形内のデータ を解析する機能について説明し ます。

カーソルの使用

カーソルは、 時間を一時的に示すために使用し ます。 2 つの波形エ ッ ジ間の距離 (時間) を計測する場合には、 カーソ ルを頻繁に移動し ます。

ヒ ン ト : WCFG フ ァ イルには、 カーソ ル位置は記録さ れません。 複数の計測の時間軸を設定する場合やシ ミ ュ レー シ ョ ンでの重要な イベン ト を示す場合な ど、 一時的ではない イ ンジケーターを設定する必要があ る場合は、 波形ビ ューにマーカーを追加し ます。 詳細は、 67 ページの 「マーカーの使用」 を参照し て く ださ い。

メ イ ン カーソルと 2 つ目のカーソル

波形を 1 回ク リ ッ クする と、 メ イ ン カーソルが配置されます。

2 つ目のカーソルを配置するには、 Ctrl キーを押し ながら ク リ ッ ク し、 マウ ス を左または右に ド ラ ッ グ し ます。 カー ソルの上に位置を示すフ ラ グが表示されます。 または、 Shift キーを押し たま ま波形のど こ かを ク リ ッ ク し ます。

2 つ目のカーソルがオンになっていない場合、 こ の動作によ り 2 つ目のカーソルが メ イ ン カーソルの現在の位置に設 定され、 メ イ ン カーソルが ク リ ッ ク し た位置に配置されます。

注記 : 2 つ目のカーソルの位置を保持し ながら メ イ ン カーソルの位置を変更するには、Shift キーを押し ながら ク リ ッ ク し ます。 2 つ目のカーソルを ド ラ ッ グ し て配置する場合、 小間隔以上ド ラ ッ グ し ない と 2 つ目のカーソルは表示 されません。

カーソルの移動

カーソ ルを移動する には、 ポ イ ン ターが手のひら のマーク にな る までマウ ス を動かし、 ク リ ッ ク し て次の位置までカーソルを ド ラ ッ グ し ます。

カーソルを ド ラ ッ グする際、 [Snap to Transtion] がオンになっている と (デフ ォル ト )、 中が塗 り つぶされていない丸ま たは中が塗 り つぶされた丸が表示されます。

• 中が塗 り つぶされていない丸 は、 選択し た信号の波形の遷移間にあ る こ と を示し ます。

• 中が塗 り つぶされた丸 は、カーソルがマウ スの下またはマーカーの波形の遷移でロ ッ ク されている こ と を示 し ます。

カーソル、マーカー、フ ロー ト し ているルーラーがない場所を ク リ ッ クする と、2 つ目のカーソルが非表示にな り ます。

次または前の遷移の検索

波形ビ ューのサイ ド バーには、メ イ ン カーソルを現在の位置から選択し た波形の次または前の遷移に移動させる ため のボ タ ンが含まれます。

メ イ ン カーソルを波形の次または前の遷移に移動するには、 次を実行し ます。

1. 波形の波形オブジェ ク ト 名を ク リ ッ ク し てア ク テ ィ ブにし ておき ます。

これで波形オブジェ ク ト が選択され、 オブジェ ク ト の波形が通常よ り も太いラ イ ンで表示されます。

2. サイ ド バーの [Next Transition] または [Previous Transition] ボタ ン を ク リ ッ クするか、 キーボード の右矢印ま たは左矢印キーを使用し て、 次または前の遷移に移動し ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 66UG900 (v2013.2) 2013 年 6 月 19 日

Page 67: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

波形の解析

ヒ ン ト : 複数の波形オブジェ ク ト を一緒に選択する と、 波形セ ッ ト の一番近い遷移に移動し ます。

フ ロー ト ルーラーの使用

波形ウ ィ ン ド ウの上部にあ る標準ルーラーの絶対シ ミ ュ レーシ ョ ン時間以外の時間ベース を使用し て時間を計測するには、 フ ロー ト ルーラーを使用する と便利です。

フ ロー ト ルーラーは表示 (または非表示) にでき、 ド ラ ッ グ し て波形ウ ィ ン ド ウで垂直方向の位置に変更する こ と が でき ます。 こ のルーラーの時間ベース (時間 0) は 2 番目のカーソルで、 こ のカーソルがない場合は、 選択されたマー カーにな り ます。

フ ロー ト ルーラー ボタ ン およびフ ロー ト ルーラーは、 2 番目のカーソルまたはたマーカーがあ る場合にのみ表 示されます。

1. ルーラーの表示/非表示を切 り 替え るには、 次のいずれかを実行し ます。

° 2 番目のカーソルを配置

° マーカーを選択

2. [Floating Ruler] ボタ ンを ク リ ッ ク し ます。

この操作は 初に 1 回だけ実行し、繰 り 返す必要はあ り ません。 フ ロー ト ルーラーは 2 番目のカーソルが置 く た び、 またはマーカーが選択される たびに表示されます。

ルーラーを非表示にするには、 このコマン ド を も う 一度ク リ ッ ク し ます。

マーカーの使用

波形内の重要イベン ト を恒久的にマークする必要があ る場合はマーカーを使用し ます。 マーカーを使用する と、 マーカーが付け られた イベン ト に関連し た時間を計測でき ます。

マーカーは、 次のよ う に追加、 移動、 削除でき ます。

• メ イ ン カーソルの位置に波形コ ンフ ィ ギュ レーシ ョ ンにマーカーを追加し ます。

a. 波形ビ ューの時間または遷移を ク リ ッ ク し て、 マーカーを追加する時間の箇所に メ イ ン カーソルを置き ま す。

b. [Edit] → [Add Marker] を ク リ ッ クするか、 または [Add Marker] ボタ ンを ク リ ッ ク し ます。

カーソル位置にマーカーが配置されます。マーカーがその位置に既にあ る場合は、若干オフセ ッ ト されます。マーカーの時間が上部に表示されます。

新しい波形マーカーを作成するには、 次を入力し ます。

• Tcl コマン ド : add_wave_marker <-filename> <-line_number>

• マーカーを波形ビ ューの別の位置に移動するには、 ド ラ ッ グ アン ド ド ロ ッ プし ます。マーカー ラベル (マーカー 上部またはマーカー ラ イ ン) を ク リ ッ ク し て ド ラ ッ グ し ます。

° ド ラ ッ グ シンボル は、 マーカーが移動可能であ る こ と を示し ます。 マーカーを ド ラ ッ グする際、 [Snap to Transtion] がオンになっている と (デフ ォル ト )、 中が塗 り つぶされていない丸または中が塗 り つぶされた 丸が表示されます。

° 中が塗 り つぶされている丸 は、 選択し た信号の波形の遷移地点、 または別のマーカー上であ る こ と を 示し ます。

° マーカーの場合は、 丸は白 く 塗 り つぶされています。

° 中が塗 り つぶされていない丸 は、 マーカーがマウ スの下またはマーカーの波形の遷移でロ ッ ク されて いる こ と を示し ます。

新しい位置にマーカーを ド ロ ッ プするには、 マウ スのボタ ンを放し ます。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 67UG900 (v2013.2) 2013 年 6 月 19 日

Page 68: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

波形の解析

• 1 つのコマン ド でマーカーを 1 つ、 またはすべて削除でき ます。 マーカーを右ク リ ッ ク し て、 次のいずれかの操 作を実行し ます。

° マーカーを 1 つ削除するには、 ポ ッ プア ッ プ メ ニューから [Delete Marker] を ク リ ッ ク し ます。

° マーカーをすべて削除するには、 ポ ッ プア ッ プ メ ニューから [Delete All Markers] を ク リ ッ ク し ます。

注記 : また、 Delete キーを使用し て選択し たマーカーを削除する こ と もでき ます。

コマン ド の使用方法については、Vivado ヘルプまたは『Vivado Design Suite Tcl コマン ド リ フ ァ レ ン ス ガ イ ド』 (UG835) [参照 6] を参照し て く だ さい。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 68UG900 (v2013.2) 2013 年 6 月 19 日

Page 69: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

第 5 章

Vivado シ ミ ュ レータのコマン ド ラ イ ンおよび Tcl

概要本章では、 コ マン ド ラ イ ンのコ ンパイルおよびシ ミ ュ レーシ ョ ン プロ セスについて説明し、 Vivado Design Suite シ ミ ュ レータの実行フ ァ イルおよび対応するオプシ ョ ン、 およびシ ミ ュ レーシ ョ ンを実行する Tcl コマン ド を リ ス ト し ています。

Vivado シ ミ ュ レータの Tcl コマン ド の リ ス ト は、 次を入力する と表示されます。

• Tcl コマン ド : help -category sim

Tcl コマン ド の使用方法については、 『Vivado Design Suite Tcl コマン ド リ フ ァ レ ン ス ガイ ド』 (UG835) [参照 6] を参照

し て く だ さい。

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

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

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

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

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

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

• 第 2 章の 「タ イ ミ ング ネ ッ ト リ ス ト の生成」

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

デザイ ン フ ァ イルの解析

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 69UG900 (v2013.2) 2013 年 6 月 19 日

Page 70: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

xvhdl

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

xvhdl の構文

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

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

xvhdl の例

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

xvlog

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

xvlog の構文

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

xvlog の例

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 70UG900 (v2013.2) 2013 年 6 月 19 日

Page 71: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

デザイン スナ ッ プシ ョ ッ ト のエラボレー ト および生成

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

xelab [ 「-d [define] <name>[=<val>]」 [ 「-debug <kind>」 ] [ 「-f [-file] <filename>」 ] [ 「-generic_top <value>」 ] [ 「-h [-help]」

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 71UG900 (v2013.2) 2013 年 6 月 19 日

Page 72: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

デザイン スナ ッ プシ ョ ッ ト のエラボレー ト および生成

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

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 指示子で指定された ラ イブラ リ 。 次はその例です。

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 72UG900 (v2013.2) 2013 年 6 月 19 日

Page 73: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

デザイン スナ ッ プシ ョ ッ ト のエラボレー ト および生成

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

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

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

4. work ラ イブラ リ

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

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

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

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

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

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

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

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

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

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

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

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

`uselib の構文

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 73UG900 (v2013.2) 2013 年 6 月 19 日

Page 74: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

デザイン スナ ッ プシ ョ ッ ト のエラボレー ト および生成

<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 と い う 名前のデフ ォル ト の作業ラ イブラ リ

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 74UG900 (v2013.2) 2013 年 6 月 19 日

Page 75: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

`uselib の例

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

xsim の構文

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

xsim <options> <snapshot>

説明 :

• xsim はコマン ド です。

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

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

xsim オプシ ョ ン 説明

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

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

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 75UG900 (v2013.2) 2013 年 6 月 19 日

Page 76: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

-nosignalhandlers OS レベルの信号ハン ド ラーのイ ン ス ト ールがシ ミ ュ レーシ ョ ンでデ ィ スエーブル にな り ます。 シ ミ ュ レータはパフ ォーマンスの理由から、 0 での整数除算など、 OS レベルの致命的ラ ン タ イ ム エ ラーにな る可能性のあ る よ う な一部の状況を明確に はチェ ッ ク し ません。 その代わ り に、 シ ミ ュ レータは信号ハン ド ラーを イ ン ス ト ールし て、 こ う いったエラーを検出し てユーザーにレポー ト し ます。 信号ハン ド ラーをデ ィ スエーブルにする場合、セキ ュ リ テ ィ ソ フ ト ウ ェ アがあ る と シ ミ ュ レーシ ョ ンが実行でき て も、 OS レベルの致命的エ ラーによ り 、 エ ラーの原 因がはっ き り と示されないま ま突然シ ミ ュ レーシ ョ ンが停止し てし ま う こ と があ ります。

注意 : このオプシ ョ ンは、 セキ ュ リ テ ィ ソ フ ト ウ ェ アによ り シ ミ ュ レータが う ま く

動作し ない場合にのみ使用し て く ださ い。

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

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

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

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

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

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

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

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

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

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

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

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

xsim オプシ ョ ン 説明

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 76UG900 (v2013.2) 2013 年 6 月 19 日

Page 77: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

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

コマン ド オプシ ョ ン 説明 コマン ド で使用

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

「xelab」

「xvlog」

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

れる機能 • line : HDL のブレーク ポイ ン ト

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

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

• off : すべてのデバッ グ機能をオフにし ます (デフ ォ ル ト )。

• all : すべてのデバッ グ オプシ ョ ンを使用し ます。

「xelab」

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

「xvhdl」

「xvlog」

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

「xvhdl」

「xvlog」

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

「xelab」

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

「xvhdl」

「xvlog」

-i [include] <directory_name>

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

「xelab」

「xvlog」

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

「xelab」

「xvhdl」

「xvlog」

-L [-lib] <library_name> [=<library_dir>]

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

「xelab」

「xvhdl」

「xvlog」

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 77UG900 (v2013.2) 2013 年 6 月 19 日

Page 78: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

「xelab」

「xvhdl」

「xvlog」

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

「xelab」

「xvhdl」

「xvlog」

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

「xelab」

「xvhdl」

「xvlog」

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

「xelab」

「xvhdl」

「xvlog」

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

° Tcl コマン ド : set_property XELAB.MT_LEVEL off|N [get_filesets_sim_1]

「xelab」

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

「xvhdl」

「xvlog」

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

「xelab」

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

「xelab」

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

-O arg 適化を イ ネーブルまたはデ ィ スエーブルにし ます。 -O0 = 適化をデ ィ スエーブル

-O1 = 基本的な 適化を イネーブル

-O2 = も よ く 必要 と さ れ る 適化を イ ネーブル (デ フ ォル ト )-O3 = ア ド バン ス 適化を イネーブル

注記 : 値が低い と シ ミ ュ レーシ ョ ンが遅 く な り 、 値が高 い と コ ンパイルは遅 く な り ますがs、 シ ミ ュ レーシ ョ ンは速 く な り ます。

「xelab」

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

「xelab」

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

「xelab」

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

コマン ド オプシ ョ ン 説明 コマン ド で使用

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 78UG900 (v2013.2) 2013 年 6 月 19 日

Page 79: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

「xelab」

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

「xelab」

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

「xelab」

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

「xelab」

-pulse_e_style arg パルスがモジ ュール パス遅延よ り も短いエラーを処理 すべき かど う かを指定し ます。 選択肢は次の と お り です。 ondetect : 違反が検出される と エラーを レポー ト onevent : モジ ュールのパス遅延後にエ ラーを レポー ト (デフ ォル ト : onevent)

「xelab」

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

「xelab」

-r [-run] コ マン ド ラ イ ンの対話型モー ド で生成し た実行可能ス ナッ プシ ョ ッ ト フ ァ イルを実行し ます。

「xelab」

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

「xelab」

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

「xelab」

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

「xvhdl」

「xvlog」

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

「xelab」

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

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

「xelab」

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

「xelab」

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

「xelab」

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

「xelab」

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

「xelab」

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

コマン ド オプシ ョ ン 説明 コマン ド で使用

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 79UG900 (v2013.2) 2013 年 6 月 19 日

Page 80: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

-sourcelibdir <sourcelib_dirname>

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

「xelab」

-sourcelibext <file_extension>

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

「xelab」

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

「xelab」

-stat CPU、 メ モ リ 使用量、 デザイ ン統計を表示し ます。 「xelab」

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

「xelab」

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

「xelab」

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

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

「xelab」

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

「xelab」

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

「xvhdl」

「xvlog」

-work <library_name> [=<library_dir>]

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

デ ィ レ ク ト リ

「xvhdl」

「xvlog」

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

コマン ド オプシ ョ ン 説明 コマン ド で使用

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 80UG900 (v2013.2) 2013 年 6 月 19 日

Page 81: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

プロジ ェ ク ト フ ァ イル (.prj) の構文

プロジ ェ ク ト フ ァ イル (.prj) の構文プロジェ ク ト フ ァ イルを使用し てデザイ ン フ ァ イルを解析するには、 <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 の定義済みマ ク ロです。 こ のマ ク ロの値は 1 です。 定義済みマ ク ロでは、 ツール専用 の関数が実行されるか、 デザイ ン フ ローで使用する ツールが認識されます。 次は使用例です。

`ifdef VCS // VCS specific code`endif`ifdef INCA // NCSIM specific code`endif`ifdef MODEL_TECH // MODELSIM specific code`endif`ifdef XILINX_ISIM // ISE Simulator (ISim) specific code`endif`ifdef XILINX_SIMULATOR // Vivado Simulator (XSim) specific code`endif

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

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

1. <Vivado_Install_Dir>/data/xsim

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 81UG900 (v2013.2) 2013 年 6 月 19 日

Page 82: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

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

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

VHDL std=C:/libs/vhdl/hdl/stdieee=C:/libs/vhdl/hdl/ieeework=C:/workVerilog unisims_ver=<Vivado_Install_Area>/data/verilog/hdl/nt/unisims_verxilinxcorelib_ver=C:/libs/verilog/hdl/nt/xilinxcorelib_vermylib=./mylibwork=C:/work

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

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

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

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

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

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 82UG900 (v2013.2) 2013 年 6 月 19 日

Page 83: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

シ ミ ュ レーシ ョ ン モー ドの実行

シ ミ ュ レーシ ョ ン モー ド の実行シ ミ ュ レーシ ョ ン モード はすべてコマン ド ラ イ ンから実行でき ます。 次は、 コマン ド ラ イ ンから実行される場合の シ ミ ュ レーシ ョ ン モード について説明し ています。

ビヘイ ビアー シ ミ ュ レーシ ョ ン

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

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

• Tcl コマン ド : launch_xsim -mode behavioral

X-Ref Target - Figure 5-1

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 83UG900 (v2013.2) 2013 年 6 月 19 日

Page 84: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

シ ミ ュ レーシ ョ ン モー ドの実行

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

合成後およびイ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ンでは、 論理シ ミ ュ レーシ ョ ンまたは Verilog タ イ ミ ング シ ミ ュ レーシ ョ ンが実行でき ます。 図 5-2 は、合成後およびイ ンプ リ メ ンテーシ ョ ン後のシ ミ ュ レーシ ョ ン プロセス を示し ています。

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

• Tcl コマンド

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

X-Ref Target - Figure 5-2

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 84UG900 (v2013.2) 2013 年 6 月 19 日

Page 85: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

-tclbatch を使用し たシ ミ ュ レーシ ョ ンの実行

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

-tclbatch を使用し たシ ミ ュ レーシ ョ ンの実行シ ミ ュ レーシ ョ ン コマン ド を Tcl フ ァ イルに入力し、 その Tcl フ ァ イルを次のよ う に参照する こ と ができ ます。

-tclbatch <filename>

-tclbatch オプシ ョ ンは、 フ ァ イル内にコマン ド を含め、 シ ミ ュ レーシ ョ ン開始時にそれらのコマン ド を実行する ために使用でき ます。 た と えば、 次を含む run.tcl と い う フ ァ イルがあ る と し ます。

run 20nscurrent_timequit

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

xsim <snapshot> -tclbatch run.tcl

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

Tcl コ ン ソールからの Vivado シ ミ ュ レータの起動次は、 プロ ジェ ク ト を作成し、 ソース フ ァ イルを読み込み、 Vivado シ ミ ュ レータ を起動し、 配置配線を実行し、 SDF フ ァ イルを書き出し て、 シ ミ ュ レーシ ョ ンを再実行する Tcl コマン ド の例です。

Vivado -mode TclVivado% create_project prj1Vivado% read_verilog dut.vVivado% synth_design -top dutVivado% launch_xsim -simset sim_1 -mode post-synthesis -type functionalVivado% place_designVivado% route_designVivado% write_verilog -mode timesim -sdf_anno true -sdf_file postRoute.sdf postRoute_netlist.vVivado% write_sdf postRoute.sdfVivado% launch_xsim -simset sim_1 -mode post-implementation -type timingVivado% close_project

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

• http://www.tcl.tk/

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 85UG900 (v2013.2) 2013 年 6 月 19 日

Page 86: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

その他の Tcl 情報

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

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

ロジ ッ ク シ ミ ュ レーシ ョ ン www.xilinx.com 86UG900 (v2013.2) 2013 年 6 月 19 日

Page 87: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

第 6 章

Vivado シ ミ ュ レータ を使用し たデザイ ンのデバッ グ

概要ソース コード から、 またはブレーク ポ イ ン ト を設定し、ブレーク ポイ ン ト に到達する までシ ミ ュ レーシ ョ ンを実行す る こ と で、 Vivado® Design Suite シ ミ ュ レータでデザイ ンをデバッ グでき ます。

本章では、 デバッ グ方法のほか、 デバッ グ プロセスで有効な Tcl コマン ド について も説明し ます。 サード パーテ ィ シ ミ ュ レータでのデバッ グ プロセス を描いたフ ロー図も含まれます。

ソース レベルでのデバッ グ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] コ マン ド を使用し ます。 詳細は、 88 ページの 「ブレーク ポ イ ン ト の使用」 を参照し て く だ さい。

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

Page 88: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

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

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

ブレーク ポ イ ン ト を作成し て、 ステ ッ プ実行中に停止する箇所を増やすこ と もでき ます。 シ ミ ュ レータでのス ト ラ テジのデバッ グについては、 88 ページの 「ブレーク ポ イ ン ト の使用」 を参照し て く ださ い。

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

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

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

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

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] ビ ューに使用 可能なブレーク ポ イ ン ト が リ ス ト されます。

Tcl コ ン ソールに ad_bps コマン ド を入力する と、 <file_name> の <line_number> にブレーク ポ イ ン ト を追 加でき ます。 {condition_expression} を使用する場合、 condition_expression が真の場合にのみ、 コ マン ド の実行が停止されます。

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

Page 89: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

ステ ィ ミ ュ ラスの生成 (force)

コ マン ド の使用方法については、 Vivado ヘルプまたは 『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド』 (UG835) [参照 6] を参照し て く だ さい。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

すべてのブレーク ポ イ ン ト を削除するには、 次を入力し ます。

• Tcl コマン ド : remove_bps

ブレーク ポ イ ン ト オブジェ ク ト の指定し た リ ス ト に関するブレーク ポ イ ン ト 情報を取得し ます。

• Tcl コマン ド : report_bps <list>

ステ ィ ミ ュ ラスの生成 (force) add_force コマン ド を使用する と、 signal、 wire、 reg の値を強制的に指定し た値にでき ます。

• Tcl コマン ド : add_force

• Tcl コマン ド の構文 :

add_force [-radix <arg>] [-repeat_every <arg>] [-cancel_after <arg>] [-quiet] [-verbose] <hdl_object> <values>...

次のコマン ド を使用し て add_force を適用する と図 6-1 のよ う にな り ます。

add_force mySig {0 t1} {1 t2} {0 t3} {1 t4} {0 t5} -repeat_every tr -cancel_after tc

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

Page 90: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

ステ ィ ミ ュ ラスの生成 (force)

さ らに詳細を表示するには、 Tcl コ ン ソールに次を入力し ます。

add_force -help

Verilog コー ドへの force の追加 次のコード 部分は、 force を追加する Verilog の例を示し ています。

module bot(input in1, in2,output out1);reg sel;assign out1 = sel? in1: in2;endmodule

module top;reg in1, in2;wire out1;bot I1(in1, in2, out1);initialbegin #10 in1 = 1'b1; in2 = 1'b0; #10 in1 = 1'b0; in2 = 1'b1;endinitial $monitor("out1 = %b\n", out1);endmodule

コマン ド例

add_force の効果を観察するには、 次のコマン ド を入力し ます。

xelab -vlog tmp.v -debug allxsim work.top

X-Ref Target - Figure 6-1

図 6-1 : -add_force オプシ ョ ンを使用し た結果

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

Page 91: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

ステ ィ ミ ュ ラスの生成 (force)

コマン ド プロ ンプ ト に次を入力し ます。

add_force /top/I1/sel 1run 10add_force /top/I1/sel 0run all

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

Page 92: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

ステ ィ ミ ュ ラスの生成 (force)

add_force と remove_force の使用 次は、 カ ウ ン タ を イ ンス タ ンシエー ト する Verilog フ ァ イル top.v の例です。 こ のフ ァ イルは、 次のコマン ド例で使 用でき ます。

module counter(input clk,reset,updown,output [4:0] out1);

reg [4:0] r1;

always@(posedge clk)begin if(reset) r1 <= 0; else if(updown) r1 <= r1 + 1; else r1 <= r1 - 1;end

assign out1 = r1;endmodule

module top;reg clk;reg reset;reg updown;wire [4:0] out1;

counter I1(clk, reset, updown, out1);

initialbegin reset = 1; #20 reset = 0;end

initialbegin updown = 1; clk = 0;end

initial #500 $finish;

initial $monitor("out1 = %b\n", out1);endmodule

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

Page 93: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

ステ ィ ミ ュ ラスの生成 (force)

Tcl バッ チ フ ァ イルでの add_force と remove_force の実行

1. 次のコマン ド を使用し て add_force.tcl と い う フ ァ イルを作成し ます。

create_project add_forceadd_files top.vset_property top top [get_filesets sim_1]set_property -name xelab.more_options -value {-debug all} -objects [get_filesets sim_1]set_property runtime {0} [get_filesets sim_1]launch_xsim -simset sim_1 -mode behavioraladd_wave /top/*

2. Vivado をバッ チ モード で起動し て、 add_force.tcl フ ァ イルを読み込みます。

3. Tcl コ ン ソールに次を入力し ます。

add_force clk {0 1} {1 2} –repeat_every 3 –cancel_after 500add_force updown {0 10} {1 20} –repeat_every 30 run 100

out1 の値の増加および減少を波形ビ ューで確認し ます。

updown 信号の値を波形ビ ューで確認し ます。

4. Tcl コ ン ソールに次を入力し ます。

remove_force force2

updown 信号の値がデフ ォル ト 値になった こ と を確認し ます。

5. Tcl コ ン ソールに次を入力し ます。

run 100

out1 の値だけが増加し た こ と を確認し ます。

6. Tcl コ ン ソールに次を入力し ます。

remove_force force1run 100

clk 信号が ト グルし ないので、 out1 の値は変更し ない こ と を確認し ます。

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

Page 94: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Vivado シ ミ ュ レータ を使用し た消費電力解析

Vivado シ ミ ュ レータ を使用し た消費電力解析SAIF ダンプは、 ザイ リ ン ク ス消費電力ツール用に 適化され、 次の HDL タ イプをダンプし ます。

• 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 ダンプを開始し ます。

° Tcl コマン ド : open_saif <saif_file_name>

3. 次のコマン ド のいずれかを入力し て生成する範囲および信号を追加し ます。

° Tcl コマン ド : log_saif [get_objects]

すべてのイ ンス タ ンス を繰 り 返し記録するには、 次を入力し ます。

° Tcl コマン ド : log_saif [get_objects -r *]

4. シ ミ ュ レーシ ョ ン データ を SAIF 形式にイ ンポー ト し ます。

° Tcl コマンド : read_saif

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

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

° Tcl コマンド : close_saif

SAIF コ マン ドの例

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

• Tcl コマン ド : /tb: log_saif /tb/*

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

• Tcl コマン ド : /tb/UUT

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

• Tcl コマン ド : log_saif [get_objects -filter {type == port} -regexp {^a[0-9]+b$}]

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

Page 95: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Tcl コマン ド report_driver の使用

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

• Tcl コマン ド : log_saif [get_objects -r *]

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

• Tcl コマン ド : log_saif * or log_saif [get_objects]

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

• Tcl コマン ド : log_saif [get_objects -filter { type == port } /tb/UUT/* ]

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

• Tcl コマン ド : log_saif [get_objects -filter { type == internal_signal } /tb/UUT/* ]

Tcl シ ミ ュ レーシ ョ ン バッ チ フ ァ イルを使用し た SAIF のダンプ sim.tcl:open_saif xsim_dump.saiflog_saif /tb/dut/*run allclose_saifquit

Tcl コ マン ド report_driver の使用Tcl コマン ド の report_driver を使用する と、HDL オブジェ ク ト の値を駆動し ている信号が何かがレポー ト されま す。 コマン ド 構文は、 次のよ う にな り ます。

• Tcl コマン ド : report_drivers <hdl_object>

Tcl コ ン ソールには ド ラ イバーが表示され、wire または signal 型の HDL オブジェ ク ト への代入の右側には現在の駆動 値が表示されます。

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

• Tcl コマン ド : VCD 機能の場合、 次のコマン ド で Verilog システム タ ス クが記述されます (表 6-1)

表 6-1 : VCD の Tcl コマン ド

Tcl コマン ド 説明

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

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

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

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

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

Page 96: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

VCD 機能の使用

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

詳細は、 付録 B の 「Verilog 言語サポー ト の例外」 を参照し て く だ さい。

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

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

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

close_vcd VCD の生成を閉じ ます。

表 6-1 : VCD の Tcl コマン ド (続き)

Tcl コマン ド 説明

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

Page 97: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

第 7 章

サー ドパーテ ィ シ ミ ュ レータの使用

概要本章では、Vivado® デザイ ン環境でサード パーテ ィ シ ミ ュ レータ を使用し てシ ミ ュ レーシ ョ ンを実行する概要につい て説明し ます。

重要 : 使用する シ ミ ュ レータは、 サポー ト されるサード パーテ ィ シ ミ ュ レータのバージ ョ ンにし て く ださ い。 サポー ト される シ ミ ュ レータおよび OS の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : リ リ ース ノ ー ト 、 イ ン ス ト ールお よびラ イセンス』 (UG973) [参照 1] の 「互換性のあ るサードパーテ ィ ツール」 の表を参照し て く だ さい。

ModelSim/QuestaSim を使用し たザイ リ ン クス デザイ ンのシ ミ ュ レーシ ョ ン

Mentor Graphics 社の ModelSim/QuestaSim は、 Vivado® Integrated Design Environment (IDE) から サポー ト されます。 こ れらのシ ミ ュ レータは、 直接起動でき ます。

Vivado IDE の使用方法については、 『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 2] を参 照し て く だ さい。

ModelSim/QuestaSim シ ミ ュ レータの詳細については、 次を参照し て く ださ い。

• http://www.mentor.com/products/fv/questa/

• http://www.mentor.com/products/fv/modelsim/

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

Vivado IDE で ModelSim/QuestaSim を使用するための設定

次では、 シ ミ ュ レーシ ョ ンに ModelSim/QuestaSim を使用する ために Vivado IDE を どのよ う に設定するかについて説 明し ます。

ModelSim/QuestaSim シ ミ ュ レータのイ ンス ト ール オプシ ョ ンの指定

[Tools] → [Options] → [General] を ク リ ッ ク し (図 7-1)、 ModelSim/QuestaSim のパス を定義し ます。

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

Page 98: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

ModelSim/QuestaSim を使用し たザイ リ ン ク ス デザインのシ ミ ュ レーシ ョ ン

[Miscellaneous] フ ィ ールド

チェ ッ ク ボ ッ ク スおよびス ピナー フ ィ ール ド で、 次のオプシ ョ ンを指定でき ます。

• 起動時に ソ フ ト ウ ェ アのア ッ プデー ト を xilinx.com で自動的にチェ ッ ク

• リ ス ト される 近のプロジェ ク ト の数

• リ ス ト される 近のデ ィ レ ク ト リ の数

• リ ス ト される 近のフ ァ イルの数

• コ ンフ ィ ギュ レーシ ョ ン モード設定後に [Package Pins] ビ ューを並べ替え

• コ ンフ ィ ギュ レーシ ョ ン モード設定後にパッ ケージ ピンに禁止制約を付け る

[3rd Party Tools] フ ィ ールド

フ ィ ール ド に QuestaSim/ModelSim へのパス を指定し ます。

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

シ ミ ュ レーシ ョ ンを始める前に、 Tcl コマン ド の compile_simlib を実行し て、 ターゲ ッ ト シ ミ ュ レータに対する ザイ リ ン ク ス シ ミ ュ レーシ ョ ン ラ イブラ リ を コ ンパイルする必要があ り ます。

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

• TCl コマン ド :

X-Ref Target - Figure 7-1

Figure 7-1: [Vivado Options] ダイアログ ボ ッ ク スの [General] ページ

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

Page 99: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

ModelSim/QuestaSim を使用し たザイ リ ン ク ス デザインのシ ミ ュ レーシ ョ ン

compile_simlib -simulator questa -directory <library_output_directory> -simulator_exec_path <questa_install_location>

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

ラ イブラ リ がコ ンパイルされる と、 シ ミ ュ レーターは modelsim.ini フ ァ イルを使用し て これらのコ ンパイル済み ラ イ ブ ラ リ を 参照 し ま す。 compile_simlib コ マ ン ド を 実行す る と、 modelsim.ini フ ァ イ ルが <library_output_directory> にコ ピーされます。

重要 : compile_simlib オプシ ョ ンを使用する と、 ザイ リ ン ク ス プ リ ミ テ ィ ブ と前から あ る ISE® Design Suite ザイ リ ン ク ス コ アのみがコ ンパイルされます。 IP が生成される と、 ザイ リ ン ク スの Vivado IP コ アのシ ミ ュ レーシ ョ ン モ デルは出力フ ァ イル と し て提供されるので、 compile_simlib を使用し て作成されたコ ンパイル済みラ イブラ リ に は含まれません。

modelsim.ini フ ァ イルは、 デフ ォル ト の初期化フ ァ イルで、 リ フ ァ レ ン ス ラ イ ブ ラ リ パス、 適化、 コ ンパイ ラー、 シ ミ ュ レーターの設定を指定する制御変数が含まれます。

重要 : 正しい modelsim.ini フ ァ イルがこれらのデ ィ レ ク ト リ にない場合は、 ザイ リ ン ク ス プ リ ミ テ ィ ブを含めるデザ イ ンをシ ミ ュ レーシ ョ ンでき ません。

ModelSim/QuestaSim シ ミ ュ レーシ ョ ンの実行

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

• [Simulation Settings] : シ ミ ュ レータの選択および設定ができ る [Simulation] 設定ページを開き ます。

X-Ref Target - Figure 7-2

図 7-2 : Flow Navigator のシ ミ ュ レーシ ョ ン オプシ ョ ン

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

Page 100: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

ModelSim/QuestaSim を使用し たザイ リ ン ク ス デザインのシ ミ ュ レーシ ョ ン

ModelSim/QuestaSim シ ミ ュ レーシ ョ ン オプシ ョ ン [Compilation] タブが表示された [Simulation] 設定ページが開き ます (図 7-3)。

選択し たオプシ ョ ンが次のよ う に表示されます。

• [Target Simulator] : 選択し たシ ミ ュ レータが表示されます。

• [Simulation set] :選択し たシ ミ ュ レーシ ョ ン セ ッ ト が表示されます。

• [Simulation top module name] : 上位モジュールのパス を選択または入力でき ます。

• [Clean up simulation files] : オンにする と、 シ ミ ュ レーシ ョ ン フ ァ イルが削除されます。

• [Compiled library location] : コ ンパイル済みラ イブラ リ のデ ィ レ ク ト リ が指定でき ます。

コ ンパイル オプシ ョ ンの選択

使用でき る コ ンパイル オプシ ョ ンは次の とお り です。

• [Verilog] および [Generics/Parameters] のパス選択オプシ ョ ン

• [VHDL Syntax] : VHDL 言語バージ ョ ンを選択でき ます。 オプシ ョ ンは、 93、 87、 2002、 および 2008 です。

• [Explicit Declarations] : 明示的な宣言をオンおよびオフにするチェ ッ ク ボ ッ ク スです。

• [Enable fast simulation options] : 高速シ ミ ュ レーシ ョ ン モデルを イ ネーブルまたはデ ィ スエーブルにし ます。

• [More VLOG Options] : 追加の VLOG オプシ ョ ンを入力でき ます。

• [More VCOM Options] : 追加の VCOM オプシ ョ ンを入力でき ます。

X-Ref Target - Figure 7-3

図 7-3 : シ ミ ュ レーシ ョ ン オプシ ョ ン

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

Page 101: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

ModelSim/QuestaSim を使用し たザイ リ ン ク ス デザインのシ ミ ュ レーシ ョ ン

シ ミ ュ レーシ ョ ン オプシ ョ ンの選択

[Simulation] タブは、 図 7-4 のよ う に表示されます。

使用でき るオプシ ョ ンは次の とお り です。

• [Simulation Run Time] : デフ ォル ト のシ ミ ュ レーシ ョ ン ラ ン タ イ ムが表示されます。

• [Log All Signals] : すべてのシ ミ ュ レーシ ョ ン信号のロ グが生成されます。

• [SDF Delay] : ド ロ ッ プダウ ンのオプシ ョ ンは、 sdfmax (デフ ォル ト ) および sdfmin です。 詳細は、 107 ページ の 「ModelSim/QuestaSim での SDF フ ァ イルのア ノ テー ト 」 を参照し て く ださ い。

• [Design Under Test Instance] : デザイ ン名を指定し ます。

• [SAIF Filename] : 使用する SAIF フ ァ イルの名前を指定し ます。 詳細は、 106 ページの 「ModelSim/QuestaSim での SAIF のダンプ」 を参照し て く だ さい。

• [More VSIM Options] : さ らに多 く の ModelSim/QuestaSim オプシ ョ ンを入力でき ます。

ネ ッ ト リ ス ト オプシ ョ ンの選択

図 7-5 のよ う に、 使用可能なネ ッ ト リ ス ト オプシ ョ ンが表示されます。

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

• -sdf_anno : このコマン ド を選択するチェ ッ ク ボ ッ ク スが表示されます。

• -process_corner : -process_corner は、 fast または slow.に指定でき ます。

SDF の詳細は、 107 ページの 「ModelSim/QuestaSim での SDF フ ァ イルのア ノ テー ト 」 を参照し て く ださ い。

X-Ref Target - Figure 7-4

図 7-4 : シ ミ ュ レーシ ョ ン オプシ ョ ン

X-Ref Target - Figure 7-5

図 7-5 : ネ ッ ト リ ス ト オプシ ョ ン

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

Page 102: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

ModelSim/QuestaSim を使用し たザイ リ ン ク ス デザインのシ ミ ュ レーシ ョ ン

ア ドバンス シ ミ ュ レーシ ョ ン オプシ ョ ンの選択

[Advanced] ビ ューは、 図 7-6 のよ う に表示されます。

このタブには、 シ ミ ュ レーシ ョ ンにすべてのデザイ ン ソース を含めるオプシ ョ ンがあ り ます。 オフにする と、 シ ミ ュ レーシ ョ ンする フ ァ イルのみを含める こ と ができ ます。

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

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

1. [File] → [Add] を ク リ ッ クするか、 または [Add Sources] ボタ ンを ク リ ッ ク し ます。

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

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

[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] ダ イ ア ロ グ ボ ッ ク スが開き ます。

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

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

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

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

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

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

X-Ref Target - Figure 7-6

図 7-6 : ア ドバンス オプシ ョ ン

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

Page 103: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

ModelSim/QuestaSim を使用し たザイ リ ン ク ス デザインのシ ミ ュ レーシ ョ ン

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

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

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

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

シ ミ ュ レーシ ョ ン セ ッ ト の操作

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

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

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

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

1. [Sources] ビ ューで [Simulation Sources] を右ク リ ッ ク し、 [Edit Simulation Sets] を ク リ ッ ク し ます (103 ページの 図 7-7)。

[Add or Create Simulation Sources] ページが表示されます。

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

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

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

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

X-Ref Target - Figure 7-7

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

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

Page 104: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

ModelSim/QuestaSim を使用し たザイ リ ン ク ス デザインのシ ミ ュ レーシ ョ ン

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

また、 デザイ ンの Verilog または VHDL ネ ッ ト リ ス ト を記述し てシ ミ ュ レータにエク スポー ト し、 ベンダーから提供 されるサード パーテ ィ シ ミ ュ レーシ ョ ン ラ イブラ リ を使用し てシ ミ ュ レーシ ョ ンする必要があ り ます。 シ ミ ュ レー シ ョ ンの設定および実行に関する詳細は、 該当するサードパーテ ィ シ ミ ュ レータの資料を参照し て く だ さい。

重要 : サード パーテ ィ シ ミ ュ レーシ ョ ンを実行する前にラ イブラ リ のコ ンパイル順を確認し て く ださ い。

ModelSim/QuestaSim シ ミ ュ レーシ ョ ンの実行

[Run Simulation] ボタ ンを ク リ ッ クする と、 シ ミ ュ レーシ ョ ン設定に基づいてデザイ ンを コ ンパイル、 エラ ボレー ト 、 シ ミ ュ レーシ ョ ンする コマン ド オプシ ョ ンが設定されます。

デザイ ンの合成前にシ ミ ュ レーシ ョ ンを実行する と、ModelSim/QuestaSim シ ミ ュ レータでビヘイ ビア シ ミ ュ レーシ ョ ンが実行されます。

正しい Tcl コマン ド を使用するには、 次を入力し ます。

° Tcl コマン ド : launch_modelsim

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

ヒ ン ト : こ のコマン ド に -scripts_only オプシ ョ ンを使用する と、 ModelSim/QuestaSim を起動する ために Vivado IDE シ ミ ュ レータで使用される .do フ ァ イルが書き出されます。

ModelSim/QuestaSim での合成後の論理シ ミ ュ レーシ ョ ン

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

X-Ref Target - Figure 7-8

図 7-8 : Flow Navigator のシ ミ ュ レーシ ョ ン オプシ ョ ン

X-Ref Target - Figure 7-9

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

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

Page 105: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

ModelSim/QuestaSim を使用し たザイ リ ン ク ス デザインのシ ミ ュ レーシ ョ ン

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

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

ModelSim/QuestaSim での合成後のタ イ ミ ング シ ミ ュ レーシ ョ ン

合成が問題な く 終了す る と、 [Run Simulation] → [Post-Synthesis Timing Simulation] が使用で き る よ う に な り ま す (105 ページの図 7-10)。

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

コマン ド ラ イ ン モー ド での ModelSim の使用

次のセ ク シ ョ ンでは、 Vivado IDE 外で ModelSim/QuestaSim を実行する方法について説明し ます。

ModelSim/QuestaSim での RTL/ビヘイ ビア シ ミ ュ レーシ ョ ンの実行

次は、 ザイ リ ン ク ス デザイ ンをシ ミ ュ レーシ ョ ンする際の手順です。

1. シ ミ ュ レーシ ョ ン ラ イブラ リ を コ ンパイルし ます。

2. ソース フ ァ イルを集めて、 テス ト ベンチを作成し ます。

3. Verilog を使用する場合は、 glbl.v を コ ンパイルし ます。 詳細は、 第 2 章の 「グ ローバル リ セ ッ ト と ト ラ イ ス テー ト の使用」 を参照し て く だ さい。

4. デザイ ンに SECUREIP が含まれる場合、 VSIM で -L オプシ ョ ンを使用し てプ リ コ ンパイルされた ラ イブラ リ を 指定し ます。

次はその例です。

vsim -t ps -L secureip -L unisims_ver work.<testbench> work.glbl

ModelSim/QuestaSim でのタ イ ミ ング シ ミ ュ レーシ ョ ンの実行

タ イ ミ ング シ ミ ュ レーシ ョ ンでは SIMPRIM ラ イブラ リ が使用されます。 タ イ ミ ング シ ミ ュ レーシ ョ ン プロセス中 は、 正しいラ イブラ リ を参照する必要があ り ます。

重要 : UNIMACRO、 XILINXCORELIB、 UNIFAST、 または UNISIM ラ イ ブ ラ リ は、 タ イ ミ ング シ ミ ュ レーシ ョ ンに は必要ああ り ません。

X-Ref Target - Figure 7-10

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

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

Page 106: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

ModelSim/QuestaSim を使用し たザイ リ ン ク ス デザインのシ ミ ュ レーシ ョ ン

タ イ ミ ング シ ミ ュ レーシ ョ ンでは、ほかのオプシ ョ ンを使用し て、シ ミ ュ レータでパルスが正し く 処理される よ う に する必要があ り ます。

シ ミ ュ レータ コマン ド には、 次のオプシ ョ ンを追加する必要があ り ます。

+transport_int_delays +pulse_int_e/0 +pulse_int_r/0

ModelSim/QuestaSim でのネ ッ ト リ ス ト シ ミ ュ レーシ ョ ンの実行

ネ ッ ト リ ス ト シ ミ ュ レーシ ョ ン プロセスの手順は 「ModelSim/QuestaSim でのタ イ ミ ング シ ミ ュ レーシ ョ ンの実行」

と同じにな り ます。

1. シ ミ ュ レーシ ョ ン ラ イブラ リ を コ ンパイルし ます。

2. シ ミ ュ レーシ ョ ン用のフ ァ イルを集めます。

a. RTL シ ミ ュ レーシ ョ ンに使用されたシ ミ ュ レーシ ョ ン テス ト ベンチは、 ほ と んどのデザイ ンで再利用でき ます。

b. シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト を生成し ます。

- Verilog を使用する場合は、 glbl.v を コ ンパイルし ます。 詳細は、 第 2 章の 「グ ローバル リ セ ッ ト と ト ラ イ ステー ト の使用」 を参照し て く だ さい。

° SECUREIP ラ イブラ リ を使用する場合は 105 ページの手順 4 を参照し て く ださい。

3. デザイ ンを コ ンパイルし てシ ミ ュ レーシ ョ ン し ます。 使用する ModelSim/QuestaSim シ ミ ュ レータのユーザー ガ イ ド を参照し て く だ さい。

注記 : 正し く シ ミ ュ レーシ ョ ン されるには、UNISIM、XILINXCORELIB、SECUREIP、および UNIFAST ラ イブラ リ が参照されている必要があ り ます。 詳細は、 第 2 章の 「ザイ リ ン ク ス シ ミ ュ レーシ ョ ン ラ イブラ リ の使用」 を参照し て く だ さい。

ModelSim/QuestaSim での SAIF のダンプ

SAIF (Switching Activity Interchange Format) に関する詳細は、 31 ページの 「消費電力解析のための SAIF フ ァ イルのダ ンプ」 を参照し て く だ さい。

ModelSim/QuestaSim では、 専用の消費電力コマン ド を使用し て、 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

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

Page 107: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Cadence IES シ ミ ュ レーシ ョ ンの実行

ModelSim/QuestaSim での SDF フ ァ イルのア ノ テー ト

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

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

–sdfmax

ホール ド チェ ッ ク を実行するには、 –process コーナーを fast にし て SDF を作成し、 SDF から の min 列を使用し ます。 これには、 次を指定し ます。

-sdfmin

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

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

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

ModelSim/QuestaSim での Verilog UNIFAST ラ イブ ラ リの使用

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

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

• [Simulation] 設定ページで [Enable fast simulation models] をオンにし、 Mode l Sim の Vivado プロ ジェ ク ト 環境で UNIFAST サポー ト を イ ネーブルにし ます。 詳細は、 17 ページの 「UNIFAST ラ イブラ リ 」 を参照し て く ださ い。

• シ ミ ュ レーシ ョ ンを開始する前に次の Tcl プロパテ ィ も実行でき ます。

° Tcl コマン ド : set_property XELAB.UNIFAST true [current_fileset -simset]

方法 2 は、 ア ド バンス ユーザー用で、 UNIFAST モデル と一緒に使用するモジュールを指定し ます。 この方法につい ては、 19 ページの 「方法 2 : Verilog でのコ ンフ ィ ギュ レーシ ョ ン」 を参照し て く ださ い。

Cadence IES シ ミ ュ レーシ ョ ンの実行ザイ リ ン ク ス Vivado デザイ ン ツールでは、 Cadence 社の IES シ ミ ュ レータがサポー ト されます。 次のセ ク シ ョ ンで は、 Vivado ツールで IES シ ミ ュ レータ を使用する方法について説明し ます。

注記 : このシ ミ ュ レータは、 Vivado IDE には統合されていません。 IES のサポー ト されるバージ ョ ンに関する詳細は、 『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893) [参照 1] を参照し て く ださい。

IES で コ ンパイル タ イム オプシ ョ ンを使用し たラ イブ ラ リ ソース フ ァ イル

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

IES の使用をサポー ト する ためには、これらのシ ミ ュ レーターで使用でき る よ う にザイ リ ン ク ス シ ミ ュ レーシ ョ ン ラ イブラ リ を コ ンパイルする必要があ り ます。 IES 用のシ ミ ュ レーシ ョ ン ラ イブラ リ を コ ンパイルするには、 次を入力 し ます。

compile_simlib -simulator ies -library unisims -directory <output_dir>

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

Page 108: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Cadence IES シ ミ ュ レーシ ョ ンの実行

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

重要 : compile_simlib オプシ ョ ンを使用する と、 ザイ リ ン ク ス プ リ ミ テ ィ ブ と前から あ る ISE® Design Suite ザイ リ ン ク ス コ アのみがコ ンパイルされます。 IP が生成される と、 ザイ リ ン ク スの Vivado IP コ アのシ ミ ュ レーシ ョ ン モ デルは出力フ ァ イル と し て提供されるので、 compile_simlib を使用し て作成されたコ ンパイル済みラ イブラ リ に は含まれません。

ラ イ ブラ リ を コ ンパイルし た ら、 シ ミ ュ レータは cds.lib および hdl.var フ ァ イルを使用し て これら のラ イブ ラ リ を参照し ます。

デザイ ンに含まれる も の(ザイ リ ン ク スのイ ン ス タ ンシエー ト 済みプ リ ミ テ ィ ブまたは IP カ タ ロ グ コ ンポーネン ト ) によ って、 レジス タ ト ラ ン ス フ ァー レベル (RTL) シ ミ ュ レーシ ョ ンの場合は、 次を コマン ド ラ イ ンで指定し ます。

irun を使用し た IES 論理シ ミ ュ レーシ ョ ン コマン ド

irun +access+rw -64bit -f $XILINX_VIVADO/data/secureip/secureip_cell.list.f \-f filelist.f $XILINX_VIVADO/data/verilog/src/glbl.v \-f <Vivado Install>/data/secureip/axi_bfm_cell.list.f \-y $XILINX_VIVADO/data/verilog/src/unisims +libext+.v \-y $XILINX_VIVADO/data/verilog/src/unimacro +libext+.v \-y $XILINX_VIVADO/data/verilog/src/retarget +libext+.v

irun オプシ ョ ンの注記

• -y : 下位デ ィ レ ク ト リ を含みます。

• -f : フ ァ イル リ ス ト を含みます。

ラ イ ブ ラ リの注記

表 7-3 は、 VCS で使用される主な ラ イブラ リ と フ ァ イルを リ ス ト し ています。

ヒ ン ト : ヒ ン ト :デザイ ンに secureip コ ンポーネン ト または AXI BFM コ ンポーネン ト が含まれない場合、 次を コマン ド ラ イ ンから削除し ます。 -f <Vivado Install>/data/secureip/secureip_cell.list.f \ -f <Vivado Install>/data/secureip/axi_bfm/axi_bfm_cell.list.f これによ り 、 シ ミ ュ レーシ ョ ン ラ ン タ イ ムが削減されます。

IES タ イ ミ ング シ ミ ュ レーシ ョ ン タ イ ミ ング シ ミ ュ レーシ ョ ンは、 次の 3 つのプロセスから成 り 立っています。

表 7-1 : VCS ラ イブラ リ と フ ァ イル

unisims ザイ リ ン ク ス プ リ ミ テ ィ ブの機能モデル

unimacro 大規模プ リ ミ テ ィ ブのマ ク ロ モデル

retarget 古いアーキテ クチャの unisim/simprim リ ターゲ ッ ト ラ イブラ リ

XilinxCoreLib ISE の IP モデル

secureip_cell.lis 含まれる SECUREIP コ ンポーネン ト の リ ス ト

axi_bfm_cell.list オプシ ョ ンの暗号化された AXI BFM モデル (ラ イセンスが必要)

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

Page 109: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Synopsys VCS シ ミ ュ レーシ ョ ンの実行

1. シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト の生成 (timesim.v 生成)

2. タ イ ミ ング情報のネ ッ ト リ ス ト へのア ノ テー ト (SDF フ ァ イル生成)

3. IES を使用し た タ イ ミ ング ネ ッ ト リ ス ト および SDF の解析、 エラ ボレー ト 、 シ ミ ュ レーシ ョ ン

Vivado でのタ イ ミ ング ネ ッ ト リ ス ト /SDF の生成

Vivado でのタ イ ミ ング ネ ッ ト リ ス ト /SDF の生成

次の Tcl コマン ド を使用する と、 ネ ッ ト リ ス ト および SDF フ ァ イルを生成でき ます。

write_verilog -mode timesim -sdf_anno -sdf_file <sdf_file>.sdf <sim_netlist>.vwrite_sdf <sdf_file>.sdf

irun を使用し た IES タ イ ミ ング シ ミ ュ レーシ ョ ン コ マン ド

irun -sdf_file <sdf_file>.sdf -y $XILINX/verilog/src/unisims \$XILINX/verilog/src/glbl.v \-f $XILINX_VIVADO/data/secureip/secureip_cell.list.f \<testfixture>.v <sim_netlist>.v

Vivado IP を使用し たデザイ ンのシ ミ ュ レーシ ョ ン実行

ザイ リ ン ク ス IP カ タ ロ グか らのデザイ ンを使用し ている場合は、 アンサー 56287 の推奨される手法およびス ク リ プ ト 例を参照し て く だ さい。

IES での消費電力解析用の SAIF のダンプ

IES には、 SAIF を特定要件で生成する ための消費電力コ マン ド が含まれます。 IES では、 Vivado シ ミ ュ レー タ の dumpvars コマン ド に似た dumpsaif コマン ド が使用されます。

1. 次のよ う に入力し、 ダンプする範囲と出力する SAIF フ ァ イルの名前を指定し ます。

dumpsaif -scope hdl_objects -output filename.saif

2. シ ミ ュ レーシ ョ ンを実行し ます。

3. 次のよ う に入力し て SAIF ダンプを終了し ます。

dumpsaif -end

各コマン ド の使用方法や詳細については、 IES のユーザー ガ イ ド を参照し て く だ さい。

Synopsys VCS シ ミ ュ レーシ ョ ンの実行このセ ク シ ョ ンでは、 Vivado Design Suite での VCS シ ミ ュ レータの使用方法について説明し ます。

各セ ク シ ョ ンで、 VCS でのさ まざ まなシ ミ ュ レーシ ョ ン モード の実行方法について説明し ます。

注記 : このシ ミ ュ レータは、Vivado IDE には統合されていません。VCS のサポー ト されるバージ ョ ンに関する詳細は、 『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 (UG893) [参照 1] を参照し て く ださい。

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

Page 110: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Synopsys VCS シ ミ ュ レーシ ョ ンの実行

VCS でコ ンパイル タ イム オプシ ョ ンを使用し たラ イブ ラ リ ソース フ ァ イル

デザイ ンに含まれる も の(ザイ リ ン ク スのイ ン ス タ ンシエー ト 済みプ リ ミ テ ィ ブまたは IP カ タ ロ グ コ ンポーネン ト ) によ って、 レジス タ ト ラ ン ス フ ァー レベル (RTL) シ ミ ュ レーシ ョ ンの場合は、 次を コマン ド ラ イ ンで指定し ます。

VCS を使用し た論理シ ミ ュ レーシ ョ ン コ マン ド

vcs -y <Vivado Install>/data/verilog/src/unisims \-y <Vivado Install>/data/verilog/src/unimacro \-y <Vivado Install>/data/verilog/src/retarget \-y <Vivado Install>/ids_lite/ISE/verilog/src/XilinxCoreLib \ -f <Vivado Install>/data/secureip/secureip_cell.list.f \-f <Vivado Install>/data/secureip/axi_bfm/axi_bfm_cell.list.f \+incdir+<Vivado_Install>/verilog/src +libext+.v \<Vivado Install>/verilog/src/glbl.v \+verilog2001ext+.vp -lca -Mupdate -R <testfixture>.v <design>.v

VCS オプシ ョ ン

表 7-2 は、 VCS オプシ ョ ンを リ ス ト し ています。

ラ イ ブ ラ リの注記

表 7-3 は、 VCS で使用される主な ラ イブラ リ と フ ァ イルを リ ス ト し ています。

表 7-2 : VCS オプシ ョ ン

オプシ ョ ン 説明

-y 下位デ ィ レ ク ト リ を含みます。

-f フ ァ イル リ ス ト を含みます。

-R コ ンパイル後にシ ミ ュ レーシ ョ ン実行フ ァ イルを自動的にア ッ プデー ト し ます。

+verilog2001ext+.vp SecureIP を verilog 2001 構文と し て処理される よ う に指定し ます。

-Mupdate イ ン ク リ メ ン タル コ ンパイルを イ ネーブルにし ます。 モジ ュールは、 階層 リ フ ァ レ ン スの変更、 パラ メ ーターなどのコ ンパイル タ イ ム定数の変更、 モジ ュールにイ ン ス タ ンシエー ト されたモジュールのポー ト の変更、モジュールのイ ン ラ イ ン化などのいずれかの理由から コ ンパイルされます。 た と えば、モジ ュール グループの定義を よ り 大き なモジ ュールの定義に VCS 内部で統合する こ と で、 シ ミ ュ レーシ ョ ンを高速 にでき ます。 これらの影響のあ るモジュールは、 再び リ コ ンパイルされます。 これが実行されるのは、 1 回のみです。

表 7-3 : VCS ラ イブラ リ と フ ァ イル

unisims ザイ リ ン ク ス プ リ ミ テ ィ ブの機能モデル

unimacro 大規模プ リ ミ テ ィ ブのマ ク ロ モデル

retarget 古いアーキテ クチャの unisim/simprim リ ターゲ ッ ト ラ イブラ リ

XilinxCoreLib ISE の IP モデル

secureip_cell.lis 含まれる SECUREIP コ ンポーネン ト の リ ス ト

axi_bfm_cell.list オプシ ョ ンの暗号化された AXI BFM モデル (ラ イセンスが必要)

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

Page 111: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Synopsys VCS シ ミ ュ レーシ ョ ンの実行

ヒ ン ト : ヒ ン ト :デザイ ンに secureip コ ンポーネン ト または AXI BFM コ ンポーネン ト が含まれない場合、 次を コマン ド ラ イ ンから削除し ます。 -f <Vivado Install>/data/secureip/secureip_cell.list.f \ -f <Vivado Install>/data/secureip/axi_bfm/axi_bfm_cell.list.f これによ り 、 シ ミ ュ レーシ ョ ン ラ ン タ イ ムが削減されます。

VCS を使用し た タ イ ミ ング シ ミ ュ レーシ ョ ン コマン ド

タ イ ミ ング シ ミ ュ レーシ ョ ンは、 次の 3 つのプロセスから成 り 立っています。

1. シ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト の生成 (timesim.v 生成)

2. タ イ ミ ング情報のネ ッ ト リ ス ト へのア ノ テー ト (SDF フ ァ イル生成)

3. VCS を使用し た タ イ ミ ング ネ ッ ト リ ス ト および SDF の解析、 エラ ボレー ト 、 シ ミ ュ レーシ ョ ン

Vivado でのタ イ ミ ング ネ ッ ト リ ス ト /SDF の生成

次の Tcl コマン ド を使用する と、 ネ ッ ト リ ス ト および SDF フ ァ イルを生成でき ます。

write_verilog -mode timesim -sdf_anno -sdf_file <sdf_file>.sdf <sim_netlist>.vwrite_sdf <sdf_file>.sdf

VCS でのタ イ ミ ング シ ミ ュ レーシ ョ ン コマン ド

vcs +compsdf -y $XILINX/verilog/src/unisims \$XILINX/verilog/src/glbl.v \-f <Vivado Install>/data/secureip/secureip_cell.list.f \+libext+.v +transport_int_delays +pulse_int_e/0 +pulse_int_r/0 \-Mupdate -R <testfixture>.v <sim_netlist>.v

Vivado IP を使用するデザイ ンのシ ミ ュ レーシ ョ ン実行

ザイ リ ン ク ス IP カ タ ロ グか らのデザイ ンを使用し ている場合は、 アンサー 56287 の推奨される手法およびス ク リ プ ト 例を参照し て く だ さい。

VCS の消費電力解析用の SAIF のダンプ

VCS には、 SAIF を特定要件で生成するための消費電力コマン ド が含まれます。

1. 次のよ う に入力し、 生成する範囲または信号を指定し ます。

power <hdl_objects>

2. SAIF ダンプを イネーブルにし ます。 シ ミ ュ レータ GUI のコマン ド ラ イ ンを使用でき ます。

power -enable

3. 特定時間、 シ ミ ュ レーシ ョ ンを実行し ます。

4. 次のよ う に入力し、 消費電力のダンプをデ ィ スエーブルにし、 SAIF を レポー ト し ます。

power -disablepower -report filename.saif

各コマン ド の使用方法や詳細については、 VCS のユーザー ガ イ ド を参照し て く ださい。

• Tcl コマン ド フ ァ イルの例

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

Page 112: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Synopsys VCS シ ミ ュ レーシ ョ ンの実行

power tb/fpga/*power -enablerun 500uspower -disablepower -report routed.saif

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

Page 113: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

サー ド パーテ ィ シ ミ ュ レータ でのデバッ グ次の図は、 サード パーテ ィ シ ミ ュ レータ を使用し たデバッ グのフ ローを示し ています。

X-Ref Target - Figure 7-11

図 7-11 : デバッ グ フ ロー

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

Page 114: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

付録 A

シ ミ ュ レーシ ョ ン Tcl コ マン ドの値の規則

概要この付録には、 Tcl コマン ド の add_force および set_value の両方に適用される値の規則が含まれます。

文字列の値の解釈文字列の値は、 HDL オブジェ ク ト の宣言型と -radix コマン ド ラ イ ン オプシ ョ ンで決ま り ます。 -radix を使用す る と、 HDL オブジェ ク ト 型で決定されたデフ ォル ト の基数が常に上書き されます。

• logic 型の HDL オブジェ ク ト の場合、 値は or で、 1 次元配列の logic 型の場合、 値は指定し た基数の桁数の 文字列です。

° 文字列の指定する ビ ッ ト が予測される型よ り も小さい場合、文字列はその型の長さ に一致する よ う に暗示的にゼロ拡張 (符号拡張ではない) にな り ます。

° 文字列の指定する ビ ッ ト が予測されるがた よ り も大きい場合、 MSB 側の余分ビ ッ ト が 0 になっていない と、 サイ ズの不一致エラーにな り ます。

た と えば、 基数が 16 進数で 6 ビ ッ ト の logic 配列を使用する場合、 値 3F は 8 ビ ッ ト (16 進数の桁ご と に 4 ビ ッ ト ) にな り ます。 これは、 2 進数では 0011 1111 です。 しかし、 3 の う ち上位 2 ビ ッ ト が 0 なので、 値は HDL オブジェ ク ト に代入でき ます。反対に、7F の場合、上位 2 ビ ッ ト が 0 ではないので、エラーにな り ます。

° scalar (array または record ではない) の logic の HDL オブジェ ク ト の暗示的長さは 1 ビ ッ ト です。

° a [left:right] (Verilog) または a(left TO/DOWNTO right) と宣言される logic 配列の場合、一番左 の値のビ ッ ト (拡張/切 り 捨て後) が a[left] に代入され、 一番右のビ ッ ト が a[right] に代入されます。

Vivado シ ミ ュ レーシ ョ ン ロジ ッ クlogic は、 HDL で定義される概念ではあ り ませんが、 Vivado シ ミ ュ レータで使用される発見的な ものです。

• Verilog オブジェ ク ト は、 暗示的な Verilog の bit 型の場合は wire および reg オブジェ ク ト や整数、 時間を含めた logic 型の一部と し て考え られます。

• VHDL オブジェ ク ト は、 オブジェ ク ト 型が bit、 std_logic、 または列挙型 (列挙子が std_logic の列挙型のサ ブセ ッ ト で少な く と も 0 および 1 が含まれる ) の場合、 またはオブジェ ク ト の型がこ のよ う な型の 1 次元配列で あ る場合は、 logic 型の一部と し て考え られます。

• VHDL 列挙型の HDL オブジェ ク ト の場合、 値は列挙子文字列のいずれかにな り ます。 列挙子が文字ではない場 合シングル ク ォーテーシ ョ ン (') は含めません。 基数は無視されます。

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

Page 115: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

• 整数型の VHDL オブジェ ク ト の場合、 その型の範囲内で値は符号付きの 10 進数の整数にでき ます。 基数は無視 されます。

• VHDL および Verilog の浮動小数点型の場合、 値は浮動小数点にな り ます。 基数は無視されます。

• すべての型の HDL オブジェ ク ト で Tcl コマン ド set によ る値の設定はサポー ト されません。

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

Page 116: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

付録 B

Vivado シ ミ ュ レータの混合言語サポー ト および例外

概要Vivado™ Integrated Design Environment (IDE) では、 次の言語がサポー ト されます。

• VHDL IEEE-STD-1076-1993

• Verilog IEEE-STD-1364-2001

• Verilog IEEE-P1735

こ の付録では、 Vivado シ ミ ュ レータで適用される混合言語と、 Verilog および VHDL サポー ト に対する例外について 説明し ます。

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

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

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

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

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

次のコード 例では、const1 は Verilog モジュール top で参照される VHDL の定数です。 こ のタ イプの Verilog 階 層 リ フ ァ レ ンスは、 Vivado シ ミ ュ レータでは使用でき ません。

entity bot is end entity bot;

architecture arch of bot isconstant cons1 : natural := 10;

beginend architecture arch;

module top(input in1,output reg out1);bot I1();

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

Page 117: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

always@(in1)begin if(I1.cons1 >= 10) out1 = in1; else out1 = ~in1;endendmodule

• VHDL の型、 ジェネ リ ッ ク、 ポー ト の小さ いサブセ ッ ト のみが Verilog モジュールへのバウ ンダ リ 上で使用でき ます。 同様に、 Verilog の型、 パラ メ ーター、 ポー ト の小さ いサブセ ッ ト のみが VHDL コ ンポーネン ト に対する バウ ンダ リ 上で使用でき ます。 詳細は、 118 ページの表 2を参照し て く ださ い。

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

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

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

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

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

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

混合言語の結合と検索

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

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

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

この検索順は、 xelab コマン ド ラ イ ンでラ イブラ リ が表示される順序と同じです。 詳細は、 方法 1 : ラ イブラ リ また はフ ァ イル コ ンパイル順の使用 (推奨), page 18を参照し て く だ さい。

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

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

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

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

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

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

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

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

Page 118: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

• 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);

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

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

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

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

表 B -1: サポー ト されるポー ト タ イプ

VHDL 1 Verilog 2

IN INPUT

OUT OUTPUT

INOUT INOUT

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

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

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

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

VHDL ポー ト Verilog ポー ト

bit net

std_logic net

std_logic net

bit_vector vector net

signed vector net

unsigned vector net

std_ulogic_vector vector net

std_logic_vector vector net

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

Page 119: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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

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

注記 : XSim では、 混合 ド メ イ ンに イ ン ス タ ンシエー ト される Verilog モジ ュールのポー ト マ ッ プで actual と し てレ コード エレ メ ン ト がサポー ト されます。 VHDL ポー ト でサポー ト される これらのタ イプ (表 2) はすべてレ コード エ レ メ ン ト と し て もサポー ト されます。

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

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

• integer

• real

• string

• boolean

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

VHDL および Verilog 値のマ ッ プ

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

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

表 4 は、 Verilog ステー ト にマ ッ プされる VHDL 型 bit を リ ス ト し ています。

表 5 は、 Verilog ステー ト にマ ッ プされる VHDL 型 std_logic を リ ス ト し ています。

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

Verilog std_logic bit

Z Z 0

0 0 0

1 1 1

X X 0

表 B -4: Verilog ステー ト にマ ッ プ される VHDL の bit

bit Verilog

0 0

1 1

表 B -5: Verilog ステー ト にマ ッ プ される VHDL の std_logic

std_logic Verilog

U X

X X

0 0

1 1

Z Z

W X

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

Page 120: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

VHDL 言語サポー ト の例外

Verilog では大文字/小文字が区別さ れる ので、 コ ンポーネン ト 宣言で使用する関連付けおよびローカル ポー ト 名は Verilog ポー ト 名の大文字/小文字と一致し ている必要があ り ます。

Verilog デザイ ン ユニ ッ ト への VHDL コ ンポーネン ト のイ ンス タ ンシエーシ ョ ン

Verilog デザイ ン ユニ ッ ト に VHDL コ ンポーネン ト を イ ン ス タ ンシエー ト するには、 VHDL コ ンポーネン ト を Verilog モジュールのよ う にイ ンス タ ンシエー ト する必要があ り ます。

次はその例です。

module testbench ;wire in, clk;wire out;FD FD1(.Q(Q_OUT),.C(CLK);.D(A););

VHDL 言語サポー ト の例外言語のコ ン ス ト ラ ク ト の中には、 Vivado シ ミ ュ レータでサポー ト さ れない も の も あ り ます。 表 6 は、 VHDL 言語サ ポー ト の例外を リ ス ト し ています。

.

L 0

H 1

- X

表 B -6: VHDL 言語サポー ト の例外

サポー ト される VHDL コ ンス ト ラ ク ト 例外

abstract_literal 底付き定数と し て表示される浮動小数点はサポー ト されません。

alias_declaration オブジェ ク ト 以外へのエイ リ アスは通常、 特に次の場合サポー ト されません。

エイ リ アスのエイ リ アス

subtype_indication な しのエイ リ アス宣言 エイ リ アス宣言のシグナチャ

alias_designator と し ての演算子シンボル 演算子シンボルのエイ リ アス エイ リ アス宣言と し ての文字 リ テ ラル

alias_designator alias_designator と し ての operator_symbolalias_designator と し ての character_literal

association_element 結合エレ メ ン ト の実際のス ラ イ スについては、グ ローバル、ローカルな固定範囲を使用でき ます。

attribute_name 接頭語の後のシグナチャはサポー ト されません。

表 B -5: Verilog ステー ト にマ ッ プ される VHDL の std_logic

std_logic Verilog

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

Page 121: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

VHDL 言語サポー ト の例外

binding_indication entity_aspect を使用し ない binding_indication はサポー ト さ れません。

bit_string_literal 空の bit_string_literal (" ") はサポー ト されません。

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 は サポー ト されない保護付き信号を宣言する ために使用されます。

表 B -6: VHDL 言語サポー ト の例外 (続き)

サポー ト される VHDL コ ンス ト ラ ク ト 例外

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

Page 122: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Verilog 言語サポー ト の例外

Verilog 言語サポー ト の例外 表 7 では、 Verilog の言語サポー ト の例外について リ ス ト し ます。

subtype_indication 分解された複合体 (配列およびレ コード ) のサブタ イプはサ ポー ト されません。

waveform unaffected はサポー ト されていません。

waveform_element 空の waveform エレ メ ン ト は、保護付き信号にのみ関連する ため、 サポー ト されません。

表 B -7: Verilog 言語サポー ト の例外

Verilog コ ンス ト ラ ク ト 例外

コ ンパイ ラー指示子のコ ンス ト ラ ク ト

`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 -6: VHDL 言語サポー ト の例外 (続き)

サポー ト される VHDL コ ンス ト ラ ク ト 例外

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

Page 123: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

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 コ ンパイ ラー指示子は参照し ません。

システム タ イ ミ ング チェ ッ ク コマン ド

$skew_timing_check サポー ト な し

$timeskew_timing_check サポー ト な し

$fullskew_timing_check サポー ト な し

$nochange_timing_check サポー ト な し

システム タ イ ミ ング チェ ッ ク コマン ド の引数

checktime_condition サポー ト な し

PLA モデ リ ング タ ス ク

$async$nand$array サポー ト な し

$async$nor$array サポー ト な し

$async$or$array サポー ト な し

$sync$and$array サポー ト な し

$sync$nand$array サポー ト な し

$sync$nor$array サポー ト な し

$sync$or$array サポー ト な し

$async$and$plane サポー ト な し

$async$nand$plane サポー ト な し

表 B -7: Verilog 言語サポー ト の例外 (続き)

Verilog コ ンス ト ラ ク ト 例外

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

Page 124: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

Verilog 言語サポー ト の例外

$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 -7: Verilog 言語サポー ト の例外 (続き)

Verilog コ ンス ト ラ ク ト 例外

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

Page 125: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

付録 C

その他のリ ソース

ザイ リ ン クス リ ソースアンサー、 資料、 ダウ ン ロード、 フ ォーラ ムなどのサポー ト リ ソースは、 次のザイ リ ン ク ス サポー ト サイ ト を参照 し て く だ さい。 http://japan.xilinx.com/support

ザイ リ ン ク ス資料で使用される用語集は、 次を参照し て く だ さい。 http://japan.xilinx.com/company/terms.htm

ソ リ ューシ ョ ン セン ターデバイ ス、 ツール、 IP のサポー ト については、 ザイ リ ン ク ス ソ リ ューシ ョ ン セン ターを参照し て く だ さい。 ト ピ ッ クには、 デザイ ン アシス タ ン ト 、 ア ド バイザ リ 、 ト ラブルシュー ト ヒ ン ト などが含まれます。

ト レーニング ビデオ• http://japan.xilinx.com/training/vivado/index.htm

参照資料1. 『Vivado Design Suite ユーザー ガイ ド : リ リ ース ノ ー ト 、 イ ン ス ト ールおよびラ イセン ス』 (UG973)

2. 『Vivado Design Suite ユーザー ガイ ド : Vivado IDE の使用』 E(UG893)

3. Vivado Design Suite ユーザー ガ イ ド : Tcl ス ク リ プ ト 機能の使用』 (UG894)

4. 『Writing Efficient Testbenches』 (XAPP199)

5. 『Vivado Design Suite 7 シ リ ーズ FPGA ラ イブラ リ ガ イ ド』 (UG953)

6. 『Vivado Design Suite Tcl コマン ド リ フ ァ レ ンス ガ イ ド』 (UG835)

7. 『Vivado Design Suite ユーザー ガイ ド : 制約の使用』 (UG903)

8. 『Vivado Design Suite チュー ト リ アル : ロジ ッ ク シ ミ ュ レーシ ョ ン』 (UG937)

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

Page 126: Vivado Design Suite ユー ザー ユーザー ガイド€¢VCD 機能の使用について追加「ASYNC_REG 制約の使用」を変更 • 「VHDL の GSR および GTS」に情報を追加

参照資料

9. 『Vivado Design Suite ユーザー ガイ ド : デザイ ン フ ローの概要』 (UG892)

Vivado Design Suite 資料ページ (http://japan.xilinx.com/support/documentation/dt_vivado2013-2.htm)

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