Comments
Description
Transcript
Xilinx ISim ユーザー ガイド (UG660)
ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Xilinx is disclosing this user guide, manual, release note, and/or specification (the “Documentation”) to you solely for use in the development of designs to operate with Xilinx hardware devices.You may not reproduce, distribute, republish, download, display, post, or transmit the Documentation in any form or by any means including, but not limited to, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of Xilinx.Xilinx expressly disclaims any liability arising out of your use of the Documentation.Xilinx reserves the right, at its sole discretion, to change the Documentation without notice at any time.Xilinx assumes no obligation to correct any errors contained in the Documentation, or to advise you of any corrections or updates.Xilinx expressly disclaims any liability in connection with technical support or assistance that may be provided to you in connection with the Information. THE DOCUMENTATION IS DISCLOSED TO YOU “AS-IS” WITH NO WARRANTY OF ANY KIND.XILINX MAKES NO OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THE DOCUMENTATION, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT OF THIRD-PARTY RIGHTS.IN NO EVENT WILL XILINX BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOSS OF DATA OR LOST PROFITS, ARISING FROM YOUR USE OF THE DOCUMENTATION. © Copyright 2012 Xilinx, Inc. XILINX, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, 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.PCI, PCIe and PCI Express are trademarks of PCI-SIG and used under license 本資料は英語版 (v14.2) を翻訳 し た も ので、 内容に相違が生 じ る 場合には原文を優先 し ます。 資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。 日本語版は参考用 と し て ご使用の上、 最新情報につ き ま し ては、 必ず最新英語版を ご参照 く だ さ い。 こ の資料に関す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の問題につ き ま し ては、 [email protected] ま でお知 ら せ く だ さ い。 いただ き ま し た ご意見を参考に早急に対応 さ せていただ き ます。 なお、 こ の メ ール ア ド レ スへのお問い合わせは受け 付けてお り ません。 あ ら か じ めご了承 く だ さ い。 改訂履歴 次の表は、 こ のマニ ュ アルの改訂履歴を表示 し てい ます。 日付 バージ ョ ン 2011/10/19 13.3 改訂内容 リ リ ース に合わせて変更 • 追加事項 : • 改訂履歴 • 付録 「その他の リ ソ ース」 • イ ーサネ ッ ト の決定 • チ ュ ー ト リ アルの リ フ ァ レ ン ス • 更新事項 : • 「シ ミ ュ レーシ ョ ン結果の保存」 で WCFG と WDB の説明を向上 • 文書全体を向上 • fuse コ マ ン ド か ら サポー ト さ れ る ボー ド を削除。 追加事項 :サポー ト さ れ る ボー ド の リ ス ト を含む 「サポー ト さ れ る ボー ド 」 • ISim GUI の説明の向上 : グ ラ フ ィ ッ ク ユーザー イ ン タ ーフ ェ イ ス の概要 2011/11/30 13.3 • 「サポー ト さ れ る ボー ド 」 にプ ロ パテ ィ 、 選択オプシ ョ ン、 お よ び新 し い Type 値を追加 • サポー ト さ れ る OS 情報への リ フ ァ レ ン ス を削除 2011/01/19 13.4 • 日付お よ びバージ ョ ン番号のみを変更 ISim ユーザー ガ イ ド japan.xilinx.com UG660 (v14.2) 2012 年 7 月 25 日 日付 バージ ョ ン 改訂内容 2012/05/08 14.1 • 3 ページの 「機能サポー ト 」 を更新 • 「シ ミ ュ レーシ ョ ン」 の章を第 3 章 「コ ンパ イ ルお よ びシ ミ ュ レーシ ョ ン」 に統合 • 52 ページの 「fuse、 vhpcomp、 vlogcomp コ マ ン ド オプシ ョ ン」 を 1 つの表に ま と め、 コ マ ン ド へ リ ン ク • 第 3 章の 「`uselib (Verilog 指示子)」 を追加 • 第 3 章 「 コ ンパ イ ルお よ びシ ミ ュ レーシ ョ ン」 お よ び 第 8 章 「ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンの使用」 の fuse コ マ ン ド オプシ ョ ンに -hil_zynq_ps ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン コ マン ド を追加 • 2012/07/25 14.2 UG660 (v14.2) 2012 年 7 月 25 日 「VHDL 言語サポー ト の例外」 お よ び 付録 B の 「Verilog 言語サポー ト の例外」 を 2 つ の例外の表に統合 • 第 3 章に含まれ る 1 文で ‘uselib 指示子の説明をわか り やす く 変更 • 若干の文法的変更 • 付録 D 「その他の リ ソ ース」 に含まれ る リ ス ト を更新 japan.xilinx.com ISim ユーザー ガ イ ド ISim ユーザー ガ イ ド japan.xilinx.com UG660 (v14.2) 2012 年 7 月 25 日 目次 改訂履歴. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 第 1 章 : ISim の概要 シ ミ ュ レーシ ョ ン ラ イ ブ ラ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 言語サポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 機能サポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 OS サポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 ISim の操作モー ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 シ ミ ュ レーシ ョ ン手順の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 ISim チ ュ ー ト リ アル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 第 2 章 : ISim GUI の使用 ISim GUI の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 ISim プ リ フ ァ レ ン ス の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 第 3 章 : コ ンパイルおよ びシ ミ ュ レ ーシ ョ ン デザ イ ン フ ァ イ ルの解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 プ ロ ジ ェ ク ト フ ァ イ ルの構文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Verilog シ ミ ュ レーシ ョ ン用の定義済み XILINX_ISIM マ ク ロ . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 デザ イ ンのシ ミ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 混合言語シ ミ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 タ イ ミ ン グ シ ミ ュ レーシ ョ ン ( ゲー ト レベル シ ミ ュ レーシ ョ ン ) . . . . . . . . . . . . . . . . . . . . . . . . . . 49 ISim の EXE コ マ ン ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 シ ミ ュ レーシ ョ ンの一時停止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 シ ミ ュ レーシ ョ ン結果の保存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 シ ミ ュ レーシ ョ ンの終了 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 第 4 章 : 波形の解析 波形コ ン フ ィ ギ ュ レーシ ョ ンでの作業 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 波形コ ン フ ィ ギ ュ レーシ ョ ンのカ ス タ マ イ ズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 波形コ ン フ ィ ギ ュ レーシ ョ ンのナビ ゲーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 波形コ ン フ ィ ギ ュ レーシ ョ ンの印刷 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 カ ス タ ム カ ラ ーの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 第 5 章 : シ ミ ュ レ ーシ ョ ン結果の表示 波形デー タ ベース フ ァ イ ル と 波形 コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ル . . . . . . . . . . . . . . . . . . . . . . 73 ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン を開 く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 第 6 章 : ソ ース レ ベルでのデバ ッ グ シ ミ ュ レーシ ョ ンの 1 行ずつの実行. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 ブ レー ク ポ イ ン ト の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 1 第 7 章 : 消費電力のア ク テ ィ ビ テ ィ デー タ の書き出 し 第 8 章 : ハー ド ウ ェ ア協調シ ミ ュ レ ーシ ョ ンの使用 要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 モデルの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 制限事項. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 コ ンパ イ ルの使用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 fuse コ マ ン ド ラ イ ン フ ロ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 ツール フ ロ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 ハ イ ブ リ ッ ド 協調シ ミ ュ レーシ ョ ン フ ロ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 ハー ド ウ ェ ア ボー ド 使用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 ISim ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンの Tcl コ マ ン ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 サポー ト さ れ る ボー ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 よ く 寄せ ら れ る 質問 (FAQ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 第 9 章 : ISim Tcl コ マ ン ド シ ミ ュ レーシ ョ ン コ マン ド の別名表記 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 ISim 波形ビ ュ ーアー Tcl コ マ ン ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Command Line Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Tcl コ マン ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 付録 A : ラ イ ブ ラ リ マ ッ プ フ ァ イル (xilinxisim.ini) 付録 B : VHDL お よび Verilog 言語サポー ト の例外 VHDL 言語サポー ト の例外 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Verilog 言語サポー ト の例外 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 付録 C : ModelSim XE から ISim への移行 ModelSim XE の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 ISim の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 機能比較. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 シ ミ ュ レーシ ョ ン プ ロ セ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 付録 D : その他の リ ソ ース ザ イ リ ン ク ス リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 ISim チ ュ ー ト リ アル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 2 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 シ ミ ュ レーシ ョ ン ラ イ ブ ラ リ 第1章 ISim の概要 ザ イ リ ン ク ス ISim は、 VHDL、 Verilog、 お よ び VHDL/Verilog 混合言語デザ イ ンで ビヘ イ ビ アー シ ミ ュ レ ーシ ョ ン お よ び タ イ ミ ン グ シ ミ ュ レ ーシ ョ ン を 実行す る HDL ( ハー ド ウ ェ ア記述言語) シ ミ ュ レー タ です。 こ の文書では、 ISim ツールの機能、 ISim でサポー ト さ れ る HDL 言語、 イ ン タ ーフ ェ イ ス の使用 方法について説明 し ます。 ご使用の PDF リ ーダーで [View] → [Show/Hide] → [Toolbar Items] → [Page Navigation] で [Previous View] お よ び [Next View] をオンに し てお く と 、 リ ン ク さ れた情報 の前後へ移動が し やす く な り ます ( こ れは Acrobat Reader X を使用 し た場合の も ので、 メ ニ ュ ー表 示は PDF リ ーダーに よ っ て異な り ます)。 シ ミ ュ レーシ ョ ン ラ イ ブ ラ リ ザ イ リ ン ク ス のシ ミ ュ レーシ ョ ン デバ イ ス ラ イ ブ ラ リ はあ ら か じ め コ ンパ イ ル さ れてお り 、ア ッ プ デー ト の イ ン ス ト ール時に自動的に更新 さ れます。 注記 : ISim で使用する ラ イ ブ ラ リ は、Simulation Library Compilation Wizard (Compxlib) で コ ンパ イ ル し ないで く だ さ い。 言語サポー ト ISim では、 次の言語がサポー ト さ れてい ます。 • VHDL IEEE-STD-1076-1993 • Verilog IEEE-STD-1364-2001 • Standard Delay Format (SDF) バージ ョ ン 2.1 • VITAL-2000 機能サポー ト ISim では、 次の機能がサポー ト さ れてい ます。 • イ ン ク リ メ ン タ ル コ ンパ イ ル • ソ ース コ ー ド のデバ ッ グ • SDF のア ノ テーシ ョ ン • VCD の生成 • SAIF を使用 し た消費電力解析お よ び最適化 • ハー ド IP ブ ロ ッ ク (MGT、 PPC、 PCIe® な ど ) のサポー ト • マルチ ス レ ッ ド コ ンパ イ ル • ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン (HWCoSim) • 混合 VHDL/Verilog • メ モ リ エ レ メ ン ト の表示お よ びデバ ッ グ用の Memory Editor ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 3 第 1 章 : ISim の概要 • 1 ク リ ッ ク でシ ミ ュ レーシ ョ ンの再コ ンパ イ ルお よ び再起動 • 1 ク リ ッ ク で簡単に コ ンパ イ ルお よ びシ ミ ュ レーシ ョ ン • ビル ト イ ン ザ イ リ ン ク ス シ ミ ュ レーシ ョ ン ラ イ ブ ラ リ OS サポー ト サポー ト さ れ る OS の情報は、 『ザ イ リ ン ク ス デザ イ ン ツール : イ ン ス ト ールお よ び ラ イ セ ン ス ガ イ ド 』 (UG798) を参照 し て く だ さ い。 最新の リ リ ース の変更点については、 こ の文書への リ ン ク は、 『ザ イ リ ン ク ス デザ イ ン ツール : リ リ ー ス ノ ー ト ガ イ ド 』 (UG631) を参照 し て く だ さ い。 こ れ ら の資料への リ ン ク は、 付録 D 「その 他の リ ソ ース」 に も 記載 さ れてい ます。 ISim の操作モー ド ISim には次の 2 つの操作モー ド があ り ます。 • • グ ラ フ ィ カル ユーザー イ ン タ ーフ ェ イ ス モー ド (GUI) シ ミ ュ レーシ ョ ン デー タ を グ ラ フ ィ カル表示で き ます。 シ ミ ュ レーシ ョ ンの実行お よ びデー タ の検証、 デバ ッ グには、 メ ニ ュ ー コ マ ン ド 、 文脈依存 コ マ ン ド 、 お よ びツールバー ボ タ ン を 使用 し ます。 グ ラ フ ィ カル ユーザー イ ン タ ーフ ェ イ ス での作業の詳細は、 第 2 章 「ISim GUI の使用」 を参照 し て く だ さ い。 コ マ ン ド ラ イ ン モー ド GUI と の対話はあ り ません。 コ マン ド は、 コ マ ン ド プ ロ ンプ ト か ら 実行 さ れます。 シ ミ ュ レー シ ョ ン実行フ ァ イ ルが実行 さ れ る と 、 デー タ を検証、 デバ ッ グす る シ ミ ュ レーシ ョ ン Tcl コ マ ン ド を入力す る Tcl プ ロ ンプ ト が開き ます。 シ ミ ュ レーシ ョ ン実行フ ァ イ ルに -tclbatch <file_name> オプシ ョ ン を指定す る と 、 シ ミ ュ レーシ ョ ンが開始 さ れた後に Tcl コ マ ン ド のセ ッ ト を実行で き ます。 完了後にシ ミ ュ レー シ ョ ン を停止す る には、 最後の Tcl コ マ ン ド で停止す る よ う に指定 し てお く 必要が あ り ます。 詳細は、 第 3 章 「 コ ンパ イ ルお よ びシ ミ ュ レーシ ョ ン」 を参照 し て く だ さ い。 シ ミ ュ レーシ ョ ン手順の概要 ISim でデザ イ ン を シ ミ ュ レーシ ョ ンす る 手順は、 次の と お り です。 • 手順 1 : フ ァ イ ルの準備 と ラ イ ブ ラ リ のマ ッ プ • 手順 2 : デザ イ ンの解析 と エ ラ ボ レーシ ョ ン • 手順 3 : デザ イ ンのシ ミ ュ レーシ ョ ン • 手順 4 : デザ イ ンの検証 • 手順 5 : デザ イ ンのデバ ッ グ 手順 1 : フ ァ イルの準備 と ラ イ ブ ラ リ のマ ッ プ ISim でシ ミ ュ レーシ ョ ン を実行す る には、 次の フ ァ イ ルが必要です。 4 • ス テ ィ ミ ュ ラ ス フ ァ イ ルを含むデザ イ ン フ ァ イ ル • ユーザー ラ イ ブ ラ リ • その他デー タ フ ァ イ ル japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 シ ミ ュ レーシ ョ ン手順の概要 ス テ ィ ミ ュ ラ ス フ ァ イル HDL ベース のテ ス ト ベンチを ス テ ィ ミ ュ ラ ス フ ァ イ ル と し て含め ます。 次のいずれかの方法を使 用 し てテ ス ト ベンチを作成、 編集 し ます。 • テキ ス ト エデ ィ ター : 任意のテキ ス ト エデ ィ ターで HDL テ ス ト ベンチを作成、 編集 し ます。 • 言語テ ンプ レー ト : ISE ツールに含 ま れてい る テ ンプ レー ト を使用 し て フ ァ イ ルに内容を含め ま す。 詳細は、 ISE ヘルプの 「言語テ ンプ レー ト の使用」 を参照 し て く だ さ い。 • サー ド パーテ ィ ツール : 任意のベン ダー ツールで HDL テ ス ト ベンチを作成、 編集 し ます。 ユーザー ラ イ ブ ラ リ ISim を起動する と き に使用す る ユーザーモー ド に従っ て、次の2 つのユーザー ラ イ ブ ラ リ 追加方法 があ り ます。 • Project Navigator か ら 起動す る 場合は、 ISE ツールでユーザー ラ イ ブ ラ リ を定義 し ます。 詳細 は、 ISE ヘルプの 「VHDL ラ イ ブ ラ リ の使用」 を参照 し て く だ さ い。 • ISim を ス タ ン ド ア ロ ンで使用す る 場合は、対話型 コ マン ド モー ド と 非対話型モー ド の両方で ラ イ ブ ラ リ マ ッ プ フ ァ イ ルを設定 し ます ( ユーザーの論理/物理 ラ イ ブ ラ リ を指定す る 方法は付 録 A 「 ラ イ ブ ラ リ マ ッ プ フ ァ イ ル (xilinxisim.ini)」 を参照 し て く だ さ い )。 • PlanAhead™ ツールか ら ISim を起動する と き は、 ツールでユーザー ラ イ ブ ラ リ を定義 し ます。 詳細は、 付録 D 「その他の リ ソ ー ス」 に リ ン ク が記載 さ れてい る 『PlanAhead ユーザー ガ イ ド 』 (UG632) を参照 し て く だ さ い。 手順 2 : デザイ ンの解析 と エ ラ ボ レーシ ョ ン シ ミ ュ レーシ ョ ン の実行前に、 ISim では コ ー ド を 1 つ ま たは複数の ラ イ ブ ラ リ に解析 し て、 デザ イ ン が依存す る デザ イ ン コ ン ポーネ ン ト を エ ラ ボ レーシ ョ ンす る 必要があ り ます。 こ の手順では、 シ ミ ュ レーシ ョ ン実行フ ァ イ ルが生成 さ れます。 グ ラ フ ィ カル ユーザー イ ン タ ー フ ェ イ ス モー ド ISE ま たはPlanAhead か ら ISim を起動す る と 、 ISim の グ ラ フ ィ カル ユーザー イ ン タ ーフ ェ イ ス (GUI) が起動 し 、 デザ イ ンが解析 さ れ、 デザ イ ン コ ンポーネ ン ト がエ ラ ボ レーシ ョ ン さ れます。 詳 細は、 手順 3 : デザ イ ンのシ ミ ュ レーシ ョ ンの 「ISE か ら のシ ミ ュ レーシ ョ ン」 ま たは 『PlanAhead ユーザーガ イ ド 』 (UG632) を参照 し て く だ さ い。 デザ イ ンが解析 さ れ、 次のセ ク シ ョ ンで示す よ う に コ マ ン ド ラ イ ンか ら 手動でデザ イ ンがエ ラ ボ レーシ ョ ン さ れます。生成 し た シ ミ ュ レーシ ョ ン実 行フ ァ イ ルを -gui オプシ ョ ン を使用 し て実行 し 、グ ラ フ ィ カル ユーザー イ ン タ ーフ ェ イ ス を起動 し ます。 非対話型 コ マ ン ド ラ イ ン モー ド 非対話型 コ マ ン ド ラ イ ン モー ド には、 次の 2 つの手順があ り ます。 1. プ ロ ジ ェ ク ト フ ァ イ ルを作成 し ます。 詳細は、 43 ページの 「プ ロ ジ ェ ク ト フ ァ イ ルの構文」 を 参照 し て く だ さ い。 2. fuse コ マン ド を使用 し ます。 詳細は、 38 ページの 「fuse の実行」 を参照 し て く だ さ い。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 5 第 1 章 : ISim の概要 手順 3 : デザイ ンのシ ミ ュ レーシ ョ ン デザ イ ンの コ ンパ イ ルお よ びエ ラ ボ レーシ ョ ンが完了 し た ら 、 シ ミ ュ レーシ ョ ン実行フ ァ イ ルを実 行 し て、 デザ イ ン を シ ミ ュ レーシ ョ ン し ます。 ISim を読み取 り 専用モー ド で実行す る 方法の詳細 は、 第 5 章の 「ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン を開 く 」 を参照 し て く だ さ い。 コ マ ン ド ラ イ ンから の GUI モー ド シ ミ ュ レーシ ョ ン シ ミ ュ レーシ ョ ン実行フ ァ イ ル (x.exe (デフ ォ ル ト ) ま たはユーザー指定の名前) を生成す る と 、 コ マ ン ド ラ イ ン で -gui オプシ ョ ン を使用 し 、 my_sim.exe -gui の よ う に指定 し て シ ミ ュ レ ー シ ョ ン実行フ ァ イ ルを実行で き ます。 こ の コ マ ン ド を実行す る と 、 GUI が起動 し ます。 こ のシ ミ ュ レーシ ョ ン実行フ ァ イ ル コ マ ン ド ではシ ミ ュ レーシ ョ ンは開始 さ れません。 シ ミ ュ レーシ ョ ン を開 始す る には44 ページの 「デザ イ ンのシ ミ ュ レーシ ョ ン」 で説明 さ れてい る [Run] シ ミ ュ レーシ ョ ン コ マ ン ド のいずれかを使用 し ます。 こ の後、 波形 コ ン フ ィ ギ ュ レーシ ョ ンに信号を追加で き ます。 詳細は、 59 ページの 「波形 コ ン フ ィ ギ ュ レーシ ョ ンでの作業」 を参照 し て く だ さ い。 ま た、 オプシ ョ ン でシ ミ ュ レ ーシ ョ ン実行 フ ァ イ ルを 実行 し て GUI を 起動 し 、 -tclbatch オプ シ ョ ン を使用 し て Tcl フ ァ イ ルでシ ミ ュ レーシ ョ ン を実行す る こ と も で き ます。 次は、 その例です。 my_sim.exe -gui -tclbatch my_sim.tcl my_sim.tcl フ ァ イ ルの最上位にすべての信号を追加す る wave add コ マ ン ド を使用する と 、 GUI の起動時に自動的に信号を ト レース し て表示す る こ と がで き ます。 ISE から のシ ミ ュ レ ーシ ョ ン 解析、エ ラ ボ レーシ ョ ン、お よ びシ ミ ュ レーシ ョ ン実行 コ マン ド のすべては、ISE ま たは PlanAhead で次のいずれかのプ ロ セ ス を実行す る と バ ッ ク グ ラ ウ ン ド で実行 さ れます。 • [Simulate Behavioral Model] • [Simulate Post-Place & Route Model] こ れ ら の プ ロ セ ス では GUI が起動 し て、 デフ ォ ル ト で最上位の信号が ト レース さ れます。 オプシ ョ ンで、 カ ス タ ム Tcl フ ァ イ ルを指定 し て、 GUI の起動時に ト レースす る 信号を制御す る こ と も で き ます。 シ ミ ュ レ ーシ ョ ンは ISE のシ ミ ュ レ ーシ ョ ン プ ロ セ ス プ ロ パテ ィ の [Simulation Run Time] で指 定 さ れた期間実行 さ れます。 詳細は、 ISE ヘルプの 「シ ミ ュ レーシ ョ ン プ ロ パテ ィ 」 を参照 し て く だ さ い。 シ ミ ュ レーシ ョ ンの時間を追加す る には、 44 ページの 「デザ イ ンのシ ミ ュ レーシ ョ ン」 で説明 さ れ てい る [Run] シ ミ ュ レーシ ョ ン コ マン ド のいずれかを使用 し ます。 非対話型 コ マ ン ド ラ イ ン モー ド my_sim.exe な ど のシ ミ ュ レーシ ョ ン実行フ ァ イ ルを実行 し ます。 Tcl プ ロ ンプ ト で run コ マン ド を入力 し ます。 ま た、 -tclbatch オプシ ョ ン を使用 し てシ ミ ュ レーシ ョ ン実行フ ァ イ ル を Tcl フ ァ イ ル と 共に実 行す る こ と も で き ます。 た と えば、 「my_sim.exe -tclbatch my_sim.tcl」 と 入力 し ます。 こ の手順が正 し く 実行 さ れた こ と を確認 し ます。 問題があ っ た場合は、 エ ラ ー メ ッ セージの確認の ロ グ フ ァ イ ルの確認お よび手順 5 : デザ イ ンのデバ ッ グ を参照 し て く だ さ い。 6 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 シ ミ ュ レーシ ョ ン手順の概要 手順 4 : デザイ ンの検証 デザ イ ンのシ ミ ュ レーシ ョ ンが完了 し た ら 、 デザ イ ン仕様が満た さ れ る よ う にデザ イ ン をデバ ッ グ し ます。 シ ミ ュ レーシ ョ ン結果の検証は、 次の方法で実行で き ます。 • 波形ウ ィ ン ド ウ の信号の動作を確認 し ます。 • [Console] パネルま たは Tcl プ ロ ンプ ト で結果を確認 し ます。 デバ ッ グ段階では、 次の操作を実行で き ます。 • 結果を保存 し ます。 詳細は57 ページの 「シ ミ ュ レーシ ョ ン結果の保存」 を参照 し て く だ さ い。 • シ ミ ュ レーシ ョ ン結果を読み取 り 専用ス タ テ ィ ッ ク シ ミ ュ レー ターで表示お よび検証 し ます。 詳細は、 第 5 章の 「ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン を開 く 」 を参照 し て く だ さ い。 手順 5 : デザイ ンのデバ ッ グ 問題が見つかっ た場合は、 デバ ッ グに よ り 原因 と その解決方法を見つけ る 必要があ り ます。 ISim で は、 多 く の方法でデザ イ ン をデバ ッ グで き ます。 デザ イ ン をデバ ッ グす る には、 エ ラ ー メ ッ セージ と ロ グ フ ァ イ ルを まず確認す る 必要があ り ます。 エ ラ ー メ ッ セージの確認 まずエ ラ ー メ ッ セージ を確認 し てデザ イ ンにエ ラ ーが含まれていないかを確認 し ます。エ ラ ー メ ッ セージは、ISE の [Console] パネルお よ び ロ グ フ ァ イ ル (次のセ ク シ ョ ン を参照) に表示 さ れます。 次の接頭辞で始ま る エ ラ ー メ ッ セージ を確認 し て く だ さ い。 • HDL Compiler 解析ま たは ス タ テ ィ ッ ク エ ラ ボ レーシ ョ ン中にエ ラ ーが発生 し た こ と を示 し ます。エ ラ ー が こ のプ ロ セ ス中に発生 し て正 し く 実行 さ れなか っ た場合は、 HDL コ ンパ イ ラ で問題が 発生 し た可能性があ り ます。 「fuse -v 1」 と 入力 し て、 問題の特定に役立つ情報を出力 し ま す。 ま た エ ラ ー メ ッ セ ー ジ は、 fuse.log フ ァ イ ルお よ び ISE ソ フ ト ウ ェ ア の [Console] タ ブ (ISE 統合モー ド ) に表示 さ れます。 • Simulator 実行 コ ー ド の生成ま たはシ ミ ュ レーシ ョ ン中にエ ラ ーが発生 し た こ と を示 し ます。詳細は、 6 ページの 「手順 3 : デザ イ ン のシ ミ ュ レーシ ョ ン」 を参照 し て く だ さ い。 メ ッ セージに 含まれてい る フ ァ イ ル名お よ び行番号か ら 問題を確認 し ます。 ロ グ フ ァ イルの確認 ロ グ フ ァ イ ルを確認す る と 、デザ イ ン エ ラ ーの原因を見つけ る 際に役立ち ます。次の ロ グ フ ァ イ ルを使用で き ます。 • fuse.log 解析お よ びエ ラ ボ レーシ ョ ン プ ロ セ ス中に fuse コ マ ン ド に よ り 生成 さ れた出力を含む ロ グフ ァ イル • isim.log シ ミ ュ レ ーシ ョ ン プ ロ セ ス 中に シ ミ ュ レ ーシ ョ ン実行フ ァ イ ルに よ り 生成 さ れた出力を 含む ロ グ フ ァ イ ル。 こ の フ ァ イ ルにはデザ イ ン デー タ が含 ま れていないため、 ザ イ リ ン ク ス のテ ク ニ カル サポー ト に問題を報告 し て も 安全です。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 7 第 1 章 : ISim の概要 • isimcrash.log ツールで予期せぬエ ラ ーま たは状況が見つか る と き に生成 さ れ る ロ グ フ ァ イ ルで、 ./isim/<simulation_executable>.sim デ ィ レ ク ト リ に生成 さ れます。 こ の フ ァ イ ル を ザ イ リ ン ク ス に提出 し てサポー ト を受け て く だ さ い。 こ の フ ァ イ ルにはデザ イ ン デー タ が含まれていないため、 ザ イ リ ン ク ス のテ ク ニ カル サポー ト に問題を報告 し て も 安全です。 Tcl シ ミ ュ レ ーシ ョ ン コ マ ン ド の使用 一部のシ ミ ュ レーシ ョ ン コ マ ン ド は、 デバ ッ グに役立ち ます。 こ れ ら の コ マン ド は、 Tcl プ ロ ンプ ト ま たは ISim イ ン タ ーフ ェ イ ス の [Console] パネルで実行で き ます。 • isim ptrace on • isim ltrace on • dump • show • isim force • bp • onerror デバ ッ グ ス ト ラ テジについては、 第 6 章 「 ソ ース レベルでのデバ ッ グ」 を参照 し て く だ さ い。 詳細は、 第 9 章 「ISim Tcl コ マ ン ド 」 を参照し て く だ さ い。 ISim チ ュ ー ト リ アル 詳細は、 次のチ ュ ー ト リ アルを参照 し て く だ さ い。 • 『ISim チ ュ ー ト リ アル』 (UG682) ISim を使用 し たデザ イ ンのシ ミ ュ レーシ ョ ンお よ びデバ ッ グ方法が示 さ れてい ます。 • 『ISE ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン チ ュ ー ト リ アル : 浮動小数点高速フー リ エ変換のシ ミ ュ レーシ ョ ンの高速化』 (UG817) ISim ハー ド ウ ェ ア協調シ ミ ュ レ ーシ ョ ン を使用 し て不動小数点高速フー リ エ変換 (FFT) のシ ミ ュ レーシ ョ ン を高速化す る 方法が示 さ れてい ます。 こ れ ら の文書への リ ン ク は、 付録 D 「その他の リ ソ ース」 に含まれます。 8 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim GUI の概要 第2章 ISim GUI の使用 ISim のグ ラ フ ィ ッ ク ユーザー イ ン タ ーフ ェ イ ス (GUI) は、さ ま ざ ま なパネルを含む メ イ ン ウ ィ ン ド ウ 、 ワ ー ク スペー ス、 ツールバー、 お よ び ス テー タ ス バーか ら 構成 さ れてい ます。 メ イ ン ウ ィ ン ド ウ では、 次を実行で き ます。 • シ ミ ュ レーシ ョ ン可能なデザ イ ン箇所を表示 • 波形 コ ン フ ィ ギ ュ レーシ ョ ンに信号を追加 し て表示 • コ マ ン ド を使用 し てシ ミ ュ レーシ ョ ン を実行 • デザ イ ン を確認 し て必要に応 じ てデバ ッ グ を実行 ISim GUI の概要 ISim の GUI は、 シ ミ ュ レ ー シ ョ ン 実行 フ ァ イ ル を ISE® ツ ー ル、 コ マ ン ド ラ イ ン、 ま た は PlanAhead™ ツールか ら 実行す る と 起動 し ます。 図 2-1 は、 ISim の GUI を示 し てい ます。 図 2-1 : ISim の GUI ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 9 第 2 章 : ISim GUI の使用 ISim を閉 じ る には、 [File] → [Exit] を ク リ ッ ク し ます。 閉 じ る 前に波形 コ ン フ ィ ギ ュ レーシ ョ ン を 保存す る こ と を尋ね る ダ イ ア ロ グ ボ ッ ク ス が表示 さ れます。 表 2-1 は、 9 ページの図 2-1に示す ISim の GUI コ ン ポーネ ン ト を リ ス ト し てい ます。 詳細は、 各 リ ン ク を ク リ ッ ク し て く だ さ い。 注記 : ご使用の PDF リ ーダーで [View] → [ Toolbars] → [More Tools] で [Previous View] お よ び [Next View] を オンに し てお く と 、 リ ン ク さ れた情報の前後へ移動が し やす く な り ます ( メ ニ ュ ー表 示は PDF リ ーダーに よ っ て異な り ます)。 表 2-1 : ISim の GUI コ ンポーネ ン ト # 説明 1. 「 メ ニ ュ ーお よ びツール バー : コ マ ン ド お よ び ツールで使用可能な操作のほ と ん ど にア ク セ ス で き ます。 一 部の操作は、 文脈依存 メ ニ ュ ーか ら のみア ク セ ス可能です。 シ ョート カッ ト」 2. 「[ISim] ツールバー」 よ く 使用す る コ マ ン ド にア ク セ ス で き ます。 3. 「[Instances and Processes] パネル」 シ ミ ュ レーシ ョ ン に関連す る ブ ロ ッ ク ( イ ン ス タ ン スお よ び プ ロ セ ス ) の階層が表示 さ れます。 4. 「[Source Files] パネル」 デザ イ ン に関連す る フ ァ イ ルの リ ス ト が表示 さ れ ます。 5. 「[Console] パネル」 シ ミ ュ レ ー タ で生成 さ れ る メ ッ セージ が表示 さ れ ま す。 シ ミ ュ レーシ ョ ン の Tcl コ マ ン ド を プ ロ ン プ ト に入力で き ま す。 6. 「[Breakpoints] パネル」 デザ イ ン に現在設定 さ れてい る ブ レー ク ポ イ ン ト すべてが リ ス ト 表示 さ れます。 7. 「[Find in Files Results] 複数の フ ァ イ ルか ら 検索文字列 と 一致 し た結果が表示 さ れま す。 パネル」 8. 「[Search Results] パネ 検索条件 と 一致す る結果が表示 さ れます。 ル」 9. 「[Objects] パネル」 [Instances and Processes] パネルで選択 さ れてい る ブ ロ ッ ク と 関連す る シ ミ ュ レーシ ョ ン オブジ ェ ク ト が表示 さ れます。 10. 「波形ウ ィ ン ド ウ 」 11. 「テキ ス ト 信号お よ びバ ス の リ ス ト と その波形、仕切 り 、カー ソ ル、 ま た はマーカーな ど の波形オブジ ェ ク ト か ら 構成 さ れ る 波形 コ ン フ ィ ギ ュ レーシ ョ ンが表示 さ れ ます。波形ウ ィ ン ド ウ では、複 数の波形 コ ン フ ィ ギ ュ レーシ ョ ン を表示で き ます。 エデ ィ タ ー 読み取 り 専用のハー ド ウ ェ ア記述言語 ウ ィ ン ド ウ」 12. ス テー タ ス バー (HDL) フ ァ イ ルを表 示 し ます。 カー ソ ルが配置 さ れてい る メ ニ ュー コ マ ン ド ま たは ツール バー ボ タ ンの簡単な説明 と シ ミ ュ レーシ ョ ン時間が表示 さ れ ます。 次のセ ク シ ョ ンでは、 ISim の GUI コ ンポーネ ン ト についてそれぞれ説明 し ます。 10 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim GUI の概要 メ ニ ュ ーお よびツール バー : コ マ ン ド およびシ ョ ー ト カ ッ ト ISim の メ イ ン ウ ィ ン ド ウ には、 よ く 使用 さ れ る メ イ ン メ ニ ュ ー オプシ ョ ンが実行で き る さ ま ざ ま な ツールバーが含まれます。 メ イ ン メ ニ ュ ーか ら は、 メ ニ ュ ー カ テ ゴ リ に該当す る コ マ ン ド オプシ ョ ンが さ ら に実行で き ます。 メ イ ン ウ ィ ン ド ウ の ツールバー ア イ コ ンは、 ユーザー イ ン タ ーフ ェ イ ス の上部に配置 さ れてい ま す。 [View] → [Toolbars] → [<toolbar_name>] を ク リ ッ ク す る と 、 ツールバーの表示/非表示を切 り 替え る こ と がで き ます。 [File] ツールバー 標準ツールバーを使用す る と 、 頻繁に使用す る [File] メ ニ ュ ー コ マ ン ド に簡単にア ク セ ス で き ま す。 [File] メ ニ ュ ーお よ び標準ツールバーには、 次のオプシ ョ ンがあ り ます。 • [New] [New] ダ イ ア ロ グ ボ ッ ク ス を開 き 、 作成す る フ ァ イ ルの種類を選択 し ます。 作成で き る のは、 テキ ス ト 、 回路図、 ま たはシ ン ボル フ ァ イ ルです。 • [Open] [Open] ダ イ ア ロ グ ボ ッ ク ス を開 き 、 デ ィ レ ク ト リ を検索 し て フ ァ イ ルを選択 し ます。 フ ァ イ ル は、 適切なアプ リ ケーシ ョ ンで開 き ます。 • [Save] 作業中の フ ァ イ ルを以前に保存 し た フ ァ イ ルに上書 き 保存 し ます。 以前に フ ァ イ ルを保存 し て いない場合、 [Save As] ダ イ ア ロ グ ボ ッ ク ス が開 き 、 作業中の フ ァ イ ルを保存で き ます。 • [Save All] 保存の必要な フ ァ イ ルがすべて保存 さ れます。 • [Print] [印刷] ダ イ ア ロ グボ ッ ク ス を開 き 、 作業中の フ ァ イ ルを印刷 し ます。 [Edit] ツールバー [Edit] ツールバーを使用する と 、 頻繁に使用す る [Edit] メ ニ ュ ー コ マン ド に簡単にア ク セ ス で き ま す。 • 使用で き る コ マン ド は、 [Cut]、 [Copy]、 [Paste]、 [Delete]、 [Undo]、 [Redo]、 [Find]、 [Find in File] です。 [View] ツールバー [View] ツールバーを使用す る と 、 頻繁に使用する [View] メ ニ ュ ー コ マン ド に簡単にア ク セ ス で き ます。 [View] ツールバーのボ タ ンは、 次の と お り です。 • [Zoom In]、 [Zoom Out]、 [Set View for all content to be visible]、 [Zoom to Cursors] な ど があ り ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 11 第 2 章 : ISim GUI の使用 • [Refresh] ボ タ ン を ク リ ッ ク する と 、 フ ァ イ ルの表示が更新 さ れます。 [View] メ ニ ュ ーか ら は、 次の よ う なオプシ ョ ン も 実行で き ます。 • [Panel] [Search Results]、 [Find in Files Results]、 [Breakpoints]、 [Compilation Log]、 [Source Files]、 [Memory]、[Objects]、[Instances and Processes]、[Console] な ど のチ ェ ッ ク ボ ッ ク ス オプシ ョ ン を含むダ イ ア ロ グ ボ ッ ク ス が開き ます。 • [Toolbars] ツールバーの表示/非表示を切 り 替え ます。 • ス テー タ スバーの表示は [Status Bar] チ ェ ッ ク ボ ッ ク ス で切 り 替え る こ と がで き ます。 [ISim] ツールバー [ISim] ツールバーを使用する と 、 頻繁に使用する ISim コ マン ド に簡単にア ク セ ス で き ます。 表 2-2 は、 [ISim] ツールバーのボ タ ンについて説明 し てい ます。 表 2-2 : [ISim] ツールバーのボ タ ン ボタン 説明 カー ソ ルの現在位置の左側にあ る 一番近いマーカーに移動 し ます。 カー ソ ルの現在位置の右側にあ る 一番近いマーカーに移動 し ます。 波形のカー ソ ルの位置にマーカーを追加 し ます。 シ ミ ュ レーシ ョ ン時間を 0 に リ セ ッ ト し ます。 イ ベン ト がすべて終了する か、[Stop] コ マ ン ド が実行 さ れ る か、ま たはブ レー ク ポ イ ン ト に達する ま でシ ミ ュ レーシ ョ ン を実行 し ます。 指定 し た時間だけシ ミ ュ レーシ ョ ン を実行 し ます。 シ ミ ュ レーシ ョ ンが実行 さ れ る 時間を指定 し ます。 HDL ソ ース コ ー ド のシ ミ ュ レーシ ョ ン を 1 行ずつ実行 し ます。 実行中のシ ミ ュ レーシ ョ ン を停止 し ます。 Run コ マン ド のいずれかを使 用する と シ ミ ュ レーシ ョ ン を再開で き ます。 12 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim GUI の概要 表 2-2 : [ISim] ツールバーのボ タ ン (続き ) ボタン 説明 現在のシ ミ ュ レーシ ョ ン を終了 し ます。 シ ミ ュ レーシ ョ ン デー タ は開い た ま ま にな り ます。 シ ミ ュ レーシ ョ ン をや り 直 し ます。 [Windows] ツールバー [Window] ツールバーを使用す る と 、 頻繁に使用す る [Window] メ ニ ュ ー コ マン ド に簡単にア ク セ ス で き ます。 [Windows] ツールバーのボ タ ンでは、 ウ ィ ン ド ウ を重ねた り 、 縦や横に並べた り 、 手前に表示 さ せ た り で き ます。 [Help] ツールバー [Help] ツールバーを使用す る と 、 頻繁に使用する [Help] メ ニ ュ ー コ マ ン ド に簡単にア ク セ ス で き ます。 [Support and Services] では、 ザ イ リ ン ク ス のサポー ト ページがデフ ォ ル ト の ウ ェ ブ ブ ラ ウ ザーで表示 さ れます。 [What’s This?] ヒ ン ト が表示 さ れ る よ う にな り ます。 ヘルプ を必要 と す る メ ニ ュ ーやツールバー ボ タ ンの上にカー ソ ルを置いて ク リ ッ ク す る と 、 ヘルプが表示 さ れます。 シ ョ ー ト カ ッ ト キー 表 2-3 は、 ISim のキーボー ド シ ョ ー ト カ ッ ト キーを リ ス ト し てい ます。 表 2-3 : シ ョ ー ト カ ッ ト キー ショート カッ ト メ ニュー コ マン ド F1 [Help] → [Help Topics] F3 [Edit] → [Find Next] F5 [View] → [Run All] F6 [View] → [Zoom Full View] F7 [View] → [Zoom Out] F8 [View] → [Zoom In] F11 [Simulation] → [Step] Delete [Edit] → [Delete] Ctrl + N [File] → [New] Ctrl + O [File] → [Open] Ctrl + S [File] → [Save] Ctrl + P [File] → [Print] ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 13 第 2 章 : ISim GUI の使用 表 2-3 : シ ョ ー ト カ ッ ト キー (続き ) ショート カッ ト メ ニュー コ マン ド Ctrl + Z [Edit] → [Undo] Ctrl + Y [Edit] → [Redo] Ctrl + X [Edit] → [Cut] Ctrl + C [Edit] → [Copy] Ctrl + V [Edit] → [Paste] Ctrl + F [Edit] → [Find] Ctrl + G [Edit] → [Go To] Ctrl + A [Edit] → [Select All] Ctrl + W [Add To Wave Configuration] Ctrl + F4 [Window] → [Close] Ctrl + Tab [Window] → [Next] Ctrl + Shift + Tab [Window] → [Previous] Ctrl + Home [Go To Time 0] Ctrl + End [Go To Latest Time] Ctrl + Shift + F5 [Restart] Ctrl + マ ウ ス ホ イ ール 表示の拡大/縮小 Shift + マ ウ ス ホ イ ール 左側/右側の拡大表示 マ ウ ス ホ イ ール 上方向/下方向に ス ク ロ ール 左方向の矢印 [Previous Transition] 右方向の矢印 [Next Transition] Pause [Break] [Instances and Processes] パネル [Instances and Processes] パネルには波形 ウ ィ ン ド ウ の波形 コ ン フ ィ ギ ュ レ ーシ ョ ン と 関連す る ブ ロ ッ ク ( イ ン ス タ ン スお よ びプ ロ セ ス ) の階層が表示 さ れ ま す。 イ ン ス タ ン シエー ト さ れてエ ラ ボ レー ト さ れたエン テ ィ テ ィ お よ びモジ ュ ールが ツ リ ー構造で表示 さ れます。 こ のパネルには、 次の列が含まれます。 • [Instance and Process Name] イ ン ス タ ン ス、 プ ロ セ ス、 お よ び ス タ テ ィ ッ ク タ ス ク /関数のボ タ ン がデザ イ ン のブ ロ ッ ク 階 層を示すツ リ ー構造 • [Design Unit] 1 列目の イ ン ス タ ン ス、ス タ テ ィ ッ ク タ ス ク /関数、ま たはプ ロ セ ス に対応す る デザ イ ン ユニ ッ ト の名前 (Verilog モジ ュ ールま たは VHDL エン テ ィ テ ィ ( アーキ テ ク チ ャ )) • [Block Type] イ ン ス タ ン ス、 ス タ テ ィ ッ ク タ ス ク 、 関数、 ま たはプ ロ セ ス (例 : Verilog モジ ュ ール) の種類 14 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim GUI の概要 [Instances and Processes] パネルには、 次の タ ブが含まれます。 • [Instance] イ ン ス タ ン ス、 プ ロ セ ス、 お よ びス タ テ ィ ッ ク タ ス ク 、 ま たは関数がデザ イ ンのブ ロ ッ ク 階層 を示すツ リ ー構造で表示 さ れます。 • [Memory] デザ イ ン オブジ ェ ク ト の メ モ リ が表示 さ れます。 詳細は、 27 ページの 「 メ モ リ エデ ィ タ ーの 使用」 を参照 し て く だ さ い。 • [Source Files] デザ イ ンの ソ ース フ ァ イ ルが リ ス ト さ れます。 15 ページの図 2-2 は、 [Instances and Processes] パネルを表示 し た も のです。 図 2-2: [Instances and Processes] パネル デザイ ン階層ボ タ ン 表 2-4 は、 [Instances and Processes] パネルのデザ イ ン階層ボ タ ン を示 し てい ます。 : 表 2-4 : [Instances and Processes] パネルのボ タ ン アイ コ ン 動作 VHDL エン テ ィ テ ィ VHDL パ ッ ケージ VHDL ブ ロ ッ ク VHDL プ ロ セ ス Verilog モジ ュ ール ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 15 第 2 章 : ISim GUI の使用 表 2-4 : [Instances and Processes] パネルのボ タ ン (続き ) アイ コ ン 動作 Verilog タ ス ク の フ ィ ル タ ーの切 り 替え Verilog ブ ロ ッ ク の フ ィ ル タ ーの切 り 替え Verilog プ ロ セ ス の フ ィ ル タ ーの切 り 替え 階層ボ タ ン を使用す る と 、 次が実行で き ます。 • 階層を展開 し て コ ン ポーネ ン ト を表示す る には、 矢印を ク リ ッ ク す る か、 ま たは右 ク リ ッ ク し て [Expand] コ マ ン ド を ク リ ッ ク し ます (詳細は16 ページの 「階層の展開/非展開」 を参照)。 • [Design Unit] な ど、 列 タ イ ト ルを ク リ ッ ク す る と 、 その列のデー タ を下に情報を並び替え る こ と がで き ます。 • パネルを非表示ま たは復元す る には、 [View] → [Panel] → [Instances and Processes] を ク リ ッ ク し ます。 階層の展開/非展開 ネ ス ト さ れた グループのオブジ ェ ク ト を含むウ ィ ン ド ウ ま たはパネルでは、 次のいずれかの方法で その階層を展開ま たは非展開で き ます。 • • 三角矢印の ク リ ッ ク : • 矢印を ク リ ッ ク し て階層を展開 し ます。 階層は 1 度に 1 つ展開で き ます。 • 矢印を ク リ ッ ク し て階層を閉 じ ます。 メ ニ ュ ー コ マ ン ド の使用 : 1. オブジ ェ ク ト を選択 し ます。 2. [Edit] → [Wave Objects] を ク リ ッ ク し 、 次のいずれか を ク リ ッ ク し ます。 - [Expand] 選択 さ れてい る 階層オブジ ェ ク ト を展開 し ます。 階層は 1 度に 1 つ展開で き ます。 - [Collapse] 選択 し たオブジ ェ ク ト の階層を非展開 し ます。 • 文脈依存 メ ニ ュ ーの使用 : 1. オブジ ェ ク ト を選択 し ます。 2. 右 ク リ ッ ク し て次のいずれか を ク リ ッ ク し ます。 16 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim GUI の概要 メ イ ン ウ ィ ン ド ウの整列 ウ ィ ン ド ウ 、 パネル、 お よ びツールバーは、 次のいずれかの手順に従っ て イ ン タ ーフ ェ イ ス内で移 動 さ せ る こ と がで き ます。 • [Window] メ ニ ュ ー コ マ ン ド の使用 [Window] メ ニ ュ ー コ マ ン ド は、 波形 ウ ィ ン ド ウ お よ びテ キ ス ト エデ ィ タ ー ウ ィ ン ド ウ での み使用で き ます。 • ド ラ ッ グ ア ン ド ド ロ ッ プの使用 パネルや メ イ ン ウ ィ ン ド ウ の ツールバーな ど、 イ ン タ ーフ ェ イ ス のその他の部分では、 ド ラ ッ グ ア ン ド ド ロ ッ プを使用 し てオブジ ェ ク ト を移動で き ます。 次の手順に従い ます。 1. 移動 さ せ る パネルのヘ ッ ダーを ク リ ッ ク し て ホール ド し ます。 2. パネルを新 し い位置に移動 し ます。 パネルが配置 さ れ る 場所はグ レーボ ッ ク ス で示 さ れます。 3. マ ウ ス を放 し 新 し い位置にパネルを配置 し ます。 ウ ィ ン ド ウの非表示お よび復元 メ イ ン ウ ィ ン ド ウ のパーツの多 く は非表示に し て後で復元で き ます。 注記 : ウ ィ ン ド ウ をデフ ォ ル ト の位置に復元す る には、[View] → [Restore Default Layout] を ク リ ッ ク し ます。 標準の [最大化]、 [最小化]、 [閉 じ る ] コ マン ド は、 波形ウ ィ ン ド ウ お よ びテ キ ス ト エデ ィ タ ー ウ ィ ン ド ウ の右上のボ タ ンか ら 実行で き ます。 こ れ ら の コ マ ン ド を使用す る と 、 パネルを非表示、 復元、 フ ロ ー ト 、 ま たは ド ッ キ ン グ で き ます。 表 2-5 は、 ボ タ ンお よ びその説明を リ ス ト し てい ます。 表 2-5 : パネル制御ボ タ ン アイ コ ン 説明 [Toggle Slide Out] パネルを最小化表示 し ます。 ウ ィ ン ド ウ の端にあ る パネル名にマ ウ ス を移動 さ せ てか ら 、 も う 一度ボ タ ン を ク リ ッ ク す る と パネルが復元 さ れます。 [Toggle Maximized] パネルを最大化表示 し ます。 も う 一度 ク リ ッ ク する と 、 パネル サ イ ズが復元 さ れ ます。 [Toggle Floating] パネルを フ ロ ー ト さ せます。 も う 1 度 ク リ ッ ク す る と 、 元の場所に戻 り ます。 [Close] パネルを閉 じ ます。パネルを復元す る には、[View] → [Panels] → [(パネル名)] を ク リ ッ ク し ます。 波形ウ ィ ン ド ウ 波形ウ ィ ン ド ウ には、 信号、 バ ス、 お よ び こ れ ら の波形が表示 さ れます。 波形ウ ィ ン ド ウ の各 タ ブ には、 信号お よ びバ ス の リ ス ト と そのプ ロ パテ ィ 、 仕切 り 、 カー ソ ル、 ま たはマーカーな ど の波形 オブジ ェ ク ト か ら 構成 さ れ る 波形 コ ン フ ィ ギ ュ レーシ ョ ンが表示 さ れます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 17 第 2 章 : ISim GUI の使用 GUI では波形 コ ン フ ィ ギ ュ レ ーシ ョ ン の信号お よ びバ ス がシ ミ ュ レ ーシ ョ ン中に ト レ ー ス さ れ る ため、 波形 コ ン フ ィ ギ ュ レーシ ョ ンはシ ミ ュ レーシ ョ ン結果を調べ る と き に使用 さ れます。 デザ イ ン階層お よ び信号の遷移は波形 コ ン フ ィ ギ ュ レーシ ョ ンの一部ではな く 、別のデー タベース (.wdb) フ ァ イ ルに保存 さ れます。 波形 コ ン フ ィ ギ ュ レ ーシ ョ ン フ ァ イル (.wcfg) 波形 コ ン フ ィ ギ ュ レ ーシ ョ ンは、 信号の リ ス ト 、 色や基数な ど のプ ロ パテ ィ 、 仕切 り 、 グループ、 カー ソ ルな ど の波形オブジ ェ ク ト か ら 構成 さ れてい ます。 波形 コ ン フ ィ ギ ュ レーシ ョ ンはカ ス タ マ イ ズが可能で、 シ ミ ュ レーシ ョ ンの実行中以外の と き な ら いつで も 信号や波形オブジ ェ ク ト を追加 ま たは削除で き ます。 初期 フ ァ イ ル Default.wcfg は、 フ ァ イ ルを 保存す る ま で保存 さ れ ま せん。 波形 コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルには、 信号の リ ス ト 、 信号のプ ロ パテ ィ お よ び波形オブジ ェ ク ト が保存 さ れま す。 複数の波形 コ ン フ ィ ギ ュ レーシ ョ ン を作成、 シ ミ ュ レーシ ョ ン し 、 こ れ ら の波形 コ ン フ ィ ギ ュ レー シ ョ ン を個別に保存で き ます。 波形 コ ン フ ィ ギ ュ レーシ ョ ンの保存方法の詳細は、 23 ページの 「波形 コ ン フ ィ ギ ュ レーシ ョ ンの保 存」 を参照 し て く だ さ い。 Default.wcfg フ ァ イ ルは、シ ミ ュ レー タ を起動 し た と き に作成 さ れます。波形 コ ン フ ィ ギ ュ レー シ ョ ン フ ァ イ ルを .wcfg フ ァ イ ル と し て保存す る には、 フ ァ イ ル名を指定す る 必要があ り ます。 • GUI モー ド で ISim を終了す る 場合は、 [名前を付けて保存] ダ イ ア ロ グ ボ ッ ク ス が表示 さ れ る ので フ ァ イ ル名を入力 し ます。 • バ ッ チ モー ド では、 ISim を終了す る 前に wcfg save コ マン ド を使用 し て Default.wcfg の 内容を保存す る 必要があ り ます。 アクテ ィ ブ ウ ィ ン ドウ シ ミ ュ レー タ を起動す る と 、 最初のア ク テ ィ ブ ウ ィ ン ド ウ は Default.wcfg にな り ます。 ウ ィ ン ド ウ タ ブ を ク リ ッ ク す る か、 ま たは wave add コ マン ド を使用す る と 、 ア ク テ ィ ブな ウ ィ ン ド ウ を変更で き ます。 • [File] → [New] ま たは [File] → [Open] を ク リ ッ ク す る と 、 新 し く 開いた波形 コ ン フ ィ ギ ュ レーシ ョ ン ウ ィ ン ド ウ にア ク テ ィ ブ ウ ィ ン ド ウ を切 り 替え る こ と がで き ます。 • Tcl では、「wcfg new」 ま たは 「wcfg open」 コ マ ン ド を使用す る と 同様の操作を実行で き ます。 波形ウ ィ ン ド ウの信号お よびバス ボ タ ン 波形 ウ ィ ン ド ウ の信号お よ びバ ス は、 次のデザ イ ン オブジ ェ ク ト のいずれかで表現 さ れ、 各オブ ジ ェ ク ト にはそれぞれア イ コ ンがあ り ます。 表 2-6 は、 ISim の信号のボ タ ン を リ ス ト し てい ます。 19 ページの表 2-7 は、 バ ス の信号のボ タ ン を リ ス ト し てい ます。 18 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim GUI の概要 表 2-6 : ISim 信号のボ タ ン アイ コン 説明 入力ポー ト 出力ポー ト 入出力、 双方向ポー ト 内部信号 定数、 パ ラ メ ー タ ー、 お よ びジ ェ ネ リ ッ ク 信号 [Variable] リ ン ケージ信号 (VHDL のみ) バ ッ フ ァ ー信号 表 2-7 は、 ISim のバ ス のボ タ ン を リ ス ト し てい ます。 表 2-7 : ISim のバスのボ タ ン ボタ ン 説明 入力バ ス 出力バ ス 入出力、 双方向バ ス 内部バ ス ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 19 第 2 章 : ISim GUI の使用 表 2-7 : ISim のバスのボ タ ン (続き ) ボタ ン 説明 定数、 パ ラ メ ー タ ー、 お よ びジ ェ ネ リ ッ ク バス 変数バ ス リ ン ケージ バス バ ッ フ ァ ー バス 波形 コ ン フ ィ ギ ュ レ ーシ ョ ンのオブ ジ ェ ク ト カー ソ ル 波形 コ ン フ ィ ギ ュ レーシ ョ ン では メ イ ン カー ソ ル と セ カ ン ダ リ カー ソ ルを使用 し て時間を特定 し ( メ イ ン カー ソ ル)、時間を計測 し ます ( メ イ ン カー ソ ル と セカ ン ダ リ カー ソ ルを同時に使用)。 カー ソ ルは、 さ ま ざ ま なナビ ゲー ト 操作の焦点 と し て機能 し ます。 • メ イ ン カー ソ ル メ イ ン カー ソ ルは波形 と 交差する 線で、 交差点の値が [Value] 列に表示 さ れます。 カー ソ ルで はシ ミ ュ レーシ ョ ン実行中の現在のシ ミ ュ レーシ ョ ン時間が示 さ れ ます。 シ ミ ュ レーシ ョ ン時 間はカー ソ ルの上端に表示 さ れます。 詳細は、 第 4 章の 「カー ソ ル」 を参照 し て く だ さ い。 • セカ ン ダ リ カー ソ ル セ カ ン ダ リ カー ソ ルは点線で、 時間の範囲を識別す る と き に メ イ ン カー ソ ル と 共に使用 さ れ ます。 時間の範囲を使用す る と 、 その範囲を拡大表示 し た り 印刷 し た り で き ます。 マーカー 特定の時間に印を付けて後で参照で き る よ う に し ます。 マーカーは、 波形 と 交差す る 縦線で、 波形 と 交差す る 点の信号値が表示 さ れます。 マーカーの時間はマーカー上部に表示 さ れます。 ま た、 複 数のマーカーを設定す る と 、 カー ソ ルを前後に移動 さ せて値の変化を解析で き ます。 詳細は、 第 4 章の 「マーカー」 を参照 し て く だ さ い。 マー カ ーの追加お よびマー カ ーを使用 し た波形値の表示 中空円/中が塗 り つぶ さ れた円 カー ソ ルま たはマーカーを配置ま たは移動す る と き に [Snap to Transition] ボ タ ン を使用す る と 、信 号遷移上に厳密にカー ソ ル/ マーカーを配置で き ます。 • カー ソ ルま たはマーカーを配置ま たは移動す る と 、 中空円が表示 さ れます。 • 1 つの遷移上を移動する と き は中が塗 り つぶ さ れた丸が表示 さ れます。 仕切 り 波形 コ ン フ ィ ギ ュ レーシ ョ ンに含ま れ る 信号を分け る と き に使用 し ます。 20 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim GUI の概要 グループ 波形 コ ン フ ィ ギ ュ レ ー シ ョ ン に含 ま れ る 信号お よ びバ ス を 関連信号セ ッ ト と し て フ ォ ル ダーに ま と め、 整理す る 方法です。 グループにはグループ ア イ コ ン と グループ名が表示 さ れ ます。 グループ自体には波形デー タ が表示 さ れず、 展開 し た と き にその内容を表示で き ます。 詳細は、 第 4 章の 「グループの追加」 を参照 し て く だ さ い。 仮想バ ス 論理ス カ ラ ーお よ び配列を ま と め る グループです。 仮想バ ス には、 ア イ コ ンお よ び仮想バ ス名 が表示 さ れます。 仮想バ ス には、 バ ス の波形が表示 さ れます。 仮想バ スはその下に昇順で表示 さ れ る 信号の波形で構成 さ れてお り 、 1 次元配列に フ ラ ッ ト 化 さ れます。 詳細は、 第 4 章の 「仮想 バ ス の追加」 を参照 し て く だ さ い。 波形ウ ィ ン ド ウのツールバー ボ タ ン 表 2-8 は、 波形 ウ ィ ン ド ウ の ツールバー ボ タ ンについて説明 し てい ます。 表 2-8 : 波形ウ ィ ン ド ウのツールバー ボ タ ン ボタ ン 説明 [Zoom Out] : 表示 し てい る オブジ ェ ク ト のサ イ ズ を縮小 し ます。 [Zoom In] : 表示 し てい る オブジ ェ ク ト のサ イ ズ を拡大 し ます。 [Zoom to Full View] : 作業 ウ ィ ン ド ウ で ビ ュ ー全体を表示 し ます。 [Zoom to Cursors] : 2 つのカー ソ ルが波形の左端 と 右端に表示 さ れ る よ う に し ま す。 セカ ン ダ リ カー ソ ルがない場合は、 ズーム レベルを変更 し ない ま ま メ イ ン カー ソ ルの位置が中心に来 る よ う に表示 し ます。 [Go To Time 0] : メ イ ン カー ソ ルを 0 時間に移動 し ます。 [Go To Latest Time] : メ イ ン カー ソ ルを シ ミ ュ レーシ ョ ンの最後に移動 し ます。 [Go To Next Transition] : メ イ ン カー ソ ルを次の遷移に移動 し ます。 [Go To Previous Transition] : メ イ ン カー ソ ルを 1 つ前の遷移に移動 し ます。 [Add Marker] : 波形のカー ソ ルの位置にマーカーを追加 し ます。 [Previous Marker] : カー ソ ルの現在位置の左側にあ る 一番近いマーカーに移動 し ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 21 第 2 章 : ISim GUI の使用 表 2-8 : 波形ウ ィ ン ド ウのツールバー ボ タ ン (続き ) ボタ ン 説明 [Previous Marker] : カー ソ ルの現在位置の右側にあ る 一番近いマーカーに移動 し ます。 [Swap Cursors] : メ イ ン カー ソ ル と セカ ン ダ リ カー ソ ルが設定 さ れてい る と き に こ の 2 つを ス ワ ッ プ し ます。 [Snap to Transition] : 遷移に近いエ リ アにカー ソ ルを配置 し た と き に、カー ソ ルを 遷移に移動 し ます。 こ のモー ド はオン、 オ フ に切 り 替え る こ と がで き ます。 [Floating Ruler] : フ ロ ー ト ルー ラ ーは波形 ウ ィ ン ド ウ の任意の位置に移動可能 で、 表示/非表示を切 り 替え る こ と がで き ます。 波形 コ ン フ ィ ギ ュ レーシ ョ ン での作業 作業中のセ ッ シ ョ ンで任意の数の波形 コ ン フ ィ ギ ュ レーシ ョ ン を作成で き ます。 波形 コ ン フ ィ ギ ュ レーシ ョ ンには、 信号の リ ス ト 、 そのプ ロ パテ ィ 、 お よ び追加 さ れた波形オブジ ェ ク ト が保存 さ れ ます。 波形 コ ン フ ィ ギ ュ レーシ ョ ン を作成す る には、 次を実行 し ます。 1. [File] → [New] を ク リ ッ ク し ます。 [New] ダ イ ア ロ グ ボ ッ ク ス が表示 さ れます。 2. [Wave Configuration] を ク リ ッ ク し ます。 3. [OK] を ク リ ッ ク し ます。 名前の付いてい ない新 し い波形 コ ン フ ィ ギ ュ レ ーシ ョ ン が開 き ま す。 こ の波形 コ ン フ ィ ギ ュ レーシ ョ ンは、 信号を追加する ま で空の状態です (詳細は、 「波形 コ ン フ ィ ギ ュ レーシ ョ ンへの 信号の追加」 を参照)。 複数の複数 コ ン フ ィ ギ ュ レーシ ョ ンが開いてい る 場合は、 次のいずれかを実行 し ます。 • 波形 コ ン フ ィ ギ ュ レーシ ョ ンの タ ブを ク リ ッ ク し ます。 • [Window] → [Next] ま たは [Window] → [Previous] を ク リ ッ ク し て、 波形 コ ン フ ィ ギ ュ レー シ ョ ン を切 り 替え ます。 波形 コ ン フ ィ ギ ュ レ ーシ ョ ンへの信号の追加 GUI の メ ニ ュ ー コ マ ン ド ま たは ド ラ ッ グ ア ン ド ド ロ ッ プ手法を使用する か、ま たは [Console] パネ ルで Tcl ( ツール コ マン ド 言語) コ マン ド を入力す る と 、 波形ウ ィ ン ド ウ にデザ イ ンの信号を表示で き ます。 注記 : 波形 コ ン フ ィ ギ ュ レーシ ョ ンの作成や信号の追加な ど の波形 コ ン フ ィ ギ ュ レーシ ョ ンへの変 更は、WCFG フ ァ イ ルを保存す る ま では一時的に変更 さ れてい る 状態です。詳細は、「波形 コ ン フ ィ ギ ュ レーシ ョ ン と WCFG フ ァ イ ル」 を参照 し て く だ さ い。 GUI か ら の信号の追加 1. [Instances and Processes] パネルでデザ イ ン階層を展開 し て ア イ テ ム を選択 し ます。 選択 し た イ ン ス タ ン ス ま たはプ ロ セ ス に対応す る オブジ ェ ク ト が [Objects] パネルに表示 さ れ ます。 22 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim GUI の概要 2. [Objects] パネルでオブジ ェ ク ト を選択 し ます。 3. 次のいずれかの方法を使用 し てオブジ ェ ク ト を波形 コ ン フ ィ ギ ュ レーシ ョ ンに追加 し ます。 • 右 ク リ ッ ク し て [Add to Wave Window] を ク リ ッ ク し ます。 • [Objects] パネルか ら オブジ ェ ク ト を波形 ウ ィ ン ド ウ の [Name] 列に ド ラ ッ グ ア ン ド ド ロ ッ プ し ます。 • [Console] パネルで 「wave add」 コ マン ド を実行 し ます。 Tcl を使用 し た信号の追加 • オプシ ョ ンですが [Instances and Processes] パネルお よび [Objects] パネルでデザ イ ン階層を ナ ビ ゲー ト す る か、 ま たは [Console] パネルで 「scope」 コ マ ン ド を入力 し て、 追加す る オブ ジ ェ ク ト を識別 し ます。 • [Console] パネルで 「wave add」 コ マン ド を使用 し て個別のオブジ ェ ク ト ま たはオブジ ェ ク ト グループを追加 し ます。 波形 コ ン フ ィ ギ ュ レ ーシ ョ ン と WCFG フ ァ イル 波形 コ ン フ ィ ギ ュ レ ーシ ョ ン と .wcfg フ ァ イ ルは両方 と も 波形 リ ス ト の カ ス タ マ イ ズ を 指 し ま す が、 こ れ ら 2 つには概念的な違いがあ り ます。 • • 波形 コ ン フ ィ ギ ュ レーシ ョ ンは、 メ モ リ に読み込んで作業す る も のです。 • 波形 コ ン フ ィ ギ ュ レーシ ョ ンには名前を付け る こ と も で き ますが、 名前を付けない ま ま に し てお く こ と も で き ま す。 名前は、 波形 コ ン フ ィ ギ ュ レーシ ョ ン ウ ィ ン ド ウ タ ブに表示 さ れます。 • GUI か ら Tcl コ マン ド を入力 し て波形 コ ン フ ィ ギ ュ レーシ ョ ン を .wcfg フ ァ イ ルに保存 す る と き 、 .wcfg フ ァ イ ルの名前は コ マ ン ド の引数で指定 さ れます。 • 波形 コ ン フ ィ ギ ュ レーシ ョ ン を .wcfg フ ァ イ ルか ら 読み込む と 、 波形 コ ン フ ィ ギ ュ レー シ ョ ンの名前は .wcfg フ ァ イ ルの名前にな り ます。 .wcfg フ ァ イ ルは波形 コ ン フ ィ ギ ュ レーシ ョ ン をデ ィ ス ク に保存 し た形態を指 し ます。 波形 コ ン フ ィ ギ ュ レ ーシ ョ ンの保存 波形 コ ン フ ィ ギ ュ レーシ ョ ンは保存で き ます。 複数の波形 コ ン フ ィ ギ ュ レーシ ョ ン を開いてい る 場 合は、 それぞれ名前を付けて保存で き ます。 波形 コ ン フ ィ ギ ュ レーシ ョ ン を保存す る には、 次の手順のいずれかを実行 し ます • [File] → [Save] を ク リ ッ ク し ます。 • Crtl+S を押 し ます。 • [Save] ボ タ ン を ク リ ッ ク し ます。 注記 : 別の名前で保存する 場合は [File] → [Save As] を ク リ ッ ク し ます。 オ ブ ジ ェ ク ト の検索 [Search] コ マ ン ド を使用する と デザ イ ンに含まれ る オブジ ェ ク ト を検索で き ます。こ の コ マ ン ド は、 [Instances and Processes] パネルお よ び [Objects] パネルで使用で き ます。 検索では、 文字列お よ び オブジ ェ ク ト の種類を指定で き ます。 オブジ ェ ク ト を検索す る には、 次の手順に従い ます。 1. [Objects] パネルま たは [Instances and Processes] パネルにカー ソ ルを置 き ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 23 第 2 章 : ISim GUI の使用 2. 右 ク リ ッ ク し て [Search] を ク リ ッ ク し ます。 3. [Search] ダ イ ア ロ グ ボ ッ ク ス で、 文字列を入力 し ます。 検索文字には、 ア ス タ リ ス ク (*) を ワ イ ル ド カー ド と し て使用で き ます。 4. 検索す る オブジ ェ ク ト タ イ プを選択 し ます。 必要な場合は、 [Match case] を オンに し ます。 5. [OK] を ク リ ッ ク し ます。 検索条件 と 一致 し たオブジ ェ ク ト が [Search Results] パネルに表示 さ れます。 HDL ソ ース フ ァ イルを開 く ISim では、HDL (ハー ド ウ ェ ア記述言語) ソース フ ァ イルを ISim Text Editor で開 く こ と がで き ます。 HDL ソ ース フ ァ イ ルを表示す る には、 次を実行 し ます。 1. [Instances and Processes] パネル、[Objects] パネル、 ま たは [Source Files] パネルで フ ァ イ ルを 1 つ選択 し ます。 2. フ ァ イ ルを ダブル ク リ ッ ク す る か、 ま たは右 ク リ ッ ク し て [Go To Source] を ク リ ッ ク し ます。 オブジ ェ ク ト に関連す る HDL ソ ース フ ァ イ ルがテキ ス ト エデ ィ タ ーで開き ます。 [File] → [Open] を ク リ ッ ク し て フ ァ イ ルを開いた場合、 フ ァ イ ルは書 き 込みモー ド にな り ます。 [ フ ァ イ ルを開 く ] ダ イ ア ロ グ ボ ッ ク ス で [ フ ァ イ ルの種類] を Verilog ま たは VHDL に変更 し てか ら フ ァ イ ルを指定 し 、 [開 く ] を ク リ ッ ク し ます。 詳細は、 26 ページの 「 ソ ース フ ァ イ ルの変更」 を 参照 し て く だ さ い。 [Source Files] パネル [Source Files] パネルは、 [Instances and Processes] の タ ブ と し て表示 さ れます。 こ の タ ブを選択す る と 、 デザ イ ンに関連す る フ ァ イ ルが リ ス ト さ れます。 こ の フ ァ イ ルの リ ス ト は、 fuse コ マ ン ド に よ り デザ イ ンの解析お よ びエ ラ ボ レーシ ョ ン中に供給 さ れます。 こ の操作は、 GUI ではバ ッ ク グ ラ ウ ン ド で実行 さ れます。 ソ ース コ ー ド フ ァ イ ルを開 く には、 次を実行 し ます。 1. リ ス ト か ら フ ァ イ ルを選択 し ます。 2. [Go To Source Code] ボ タ ン を ク リ ッ ク し ます。 こ の コ マ ン ド は、 右 ク リ ッ ク し て [Go To Source Code] を ク リ ッ ク する か、 ま たはフ ァ イ ルを ダブル ク リ ッ ク し て も 実行で き ます。 [Objects] パネル [Objects] パネルでは、 [Instances and Processes] パネルで選択 し た イ ン ス タ ン スお よ びプ ロ セ ス に 関連す る シ ミ ュ レーシ ョ ン オブジ ェ ク ト ( ポー ト 、 信号、 変数、 定数、 パ ラ メ ー タ ー、 お よ びジ ェ ネ リ ッ ク ) がすべて表示 さ れます。 パネルの上部には [Instances and Processes] パネルで選択 さ れてい る イ ン ス タ ン ス /プ ロ セ ス が表示 さ れ、 そのオブジ ェ ク ト お よ び値は [Objects] パネルに表示 さ れます。 次に、 [Objects] パネルの表の各列について説明 し ます。 • [Object Name] シ ミ ュ レーシ ョ ン オブジ ェ ク ト 名 と その タ イ プを示すシ ンボルが表示 さ れます。 24 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim GUI の概要 • [Value] [Sync Time] ボ タ ン に基づ き 現在のシ ミ ュ レ ーシ ョ ン時間 ま たは メ イ ン カー ソ ルの場所の シ ミ ュ レーシ ョ ン オブジ ェ ク ト の値を表示 し ます。 • [Data Type] シ ミ ュ レーシ ョ ン オブジ ェ ク ト 、 ロ ジ ッ ク 、 ま たはア レ イ のデー タ タ イ プ を表示 し ます。 切 り 替えボ タ ンは [Objects] パネルか ら 使用で き ます。 詳細は、 表 2-9 を参照 し て く だ さ い。 表 2-9 : [Objects] パネルのツールバー ボ タ ン ボタ ン 説明 入力ポー ト のオン /オ フ を切 り 替え ます。 出力ポー ト のオン /オ フ を切 り 替え ます。 入出力、 双方向ポー ト のオン /オ フ を切 り 替え ます。 内部信号のオン /オ フ を切 り 替え ます。 定数、パ ラ メ ー タ ー、ジ ェ ネ リ ッ ク のオン / オ フ を切 り 替え ます。 変数のオン /オ フ を切 り 替え ます。 [Sync Time] 機能を オン /オフ を切 り 替え ます。 • オンの場合 [Objects] パネルの値は波形ウ ィ ン ド ウ の メ イ ン カー ソ ルの位置に基づ き ます。 • オ フ の と き は ス テー タ ス バーに表示 さ れてい る [Sim Time] の値 ( シ ミ ュ レーシ ョ ン終了時間) と 同一にな り ます。 [Show Drivers] コ マ ン ド の使用 [Show Driver] コ マ ン ド を 使用す る と 、 信号値 ま た はオブ ジ ェ ク ト 値での変更に関連す る ド ラ イ バーを表示で き ます。 こ の コ マン ド を使用 し て値の変化の原因を特定 し 、 回路の接続が正 し いか ど う か判断 し ます。 ISim では、 [Console] パネルに信号ま たはオブジ ェ ク ト の ド ラ イ バーが表示 さ れ ます。 こ の コ マ ン ド は、 次のエ リ アでオブジ ェ ク ト を プ ロ ーブす る と き に使用で き ます。 • [Objects] パネル • 波形ウ ィ ン ド ウ • [Console] パネル ( 「show driver」 コ マン ド ) ド ラ イ バーを表示す る には、 次の手順に従い ます。 1. オブジ ェ ク ト ま たは信号を選択 し ます。 2. [Edit] → [Wave Objects] → [Show Drivers] を ク リ ッ ク し ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 25 第 2 章 : ISim GUI の使用 [Console] パネルでは、 オブジ ェ ク ト ま たは信号の ド ラ イ バーが表示 さ れます。 ド ラ イ バーがない 場合は、 その旨を伝え る メ ッ セージが表示 さ れます。 注記 : こ の コ マ ン ド は、 [Console] パネルに 「show driver」 と 入力 し て も 実行で き ます。 エ レ メ ン ト の表示 [Objects] パネルでは、各構成オブジ ェ ク ト で表示す る 子エ レ メ ン ト を あ ら か じ め設定 さ れてい る 最 大表示数のみ を表示す る か、 し ないか を 制御で き ま す。 こ の最大数は、 [Preferences] ダ イ ア ロ グ ボ ッ ク ス で変更で き ます。 子エ レ メ ン ト をすべて表示す る には、 次の手順に従い ます。 1. [Objects] パネルのオブジ ェ ク ト リ ス ト 内で右 ク リ ッ ク し ます。 2. 右 ク リ ッ ク し て [Show All Elements] を ク リ ッ ク し ます。 オブジ ェ ク ト 階層に表示 さ れ る 子エ レ メ ン ト の数が表示 さ れます。 子エ レ メ ン ト の表示数を制限す る には、 [Objects] パネルのオブジ ェ ク ト リ ス ト 内で右 ク リ ッ ク し 、 [Limit Elements] を ク リ ッ ク し ます。 子エ レ メ ン ト に対 し てあ ら か じ め設定 さ れてい る 最大表示数を変更す る には、 プ リ フ ァ レ ン ス設定 を次の よ う に設定 し ます。 1. [Edit] → [Preferences] を ク リ ッ ク し ます。 2. [Preferences] ダ イ ア ロ グ ボ ッ ク ス の左側ペ イ ン で [ISim Simulator] を ク リ ッ ク し ます。 3. [Limit the maximum number of elements displayed to] を オンに し ます。 4. [Apply] を ク リ ッ ク し てか ら [OK] を ク リ ッ ク し ます。 波形ウ ィ ン ド ウでのオブ ジ ェ ク ト の選択 [Objects] パネルでオブジ ェ ク ト の信号をハ イ ラ イ ト す る には、 次の手順に従い ます。 1. [Objects] パネルでオブジ ェ ク ト を選択 し ます。 2. 右 ク リ ッ ク し て [Select in Wave Window] を ク リ ッ ク し ます。 テキス ト エデ ィ タ ー ウ ィ ン ド ウ テキ ス ト エデ ィ ター ウ ィ ン ド ウ を使用す る と 、 下位 HDL ソ ース フ ァ イ ルを表示で き ます。 ソ ース フ ァ イルの変更 ソ ース フ ァ イ ルを変更す る には、 次の手順に従い ます。 1. ISim Text Editor で ソ ース フ ァ イ ルを開 き ます。 2. 変更に問題がない こ と を確認 し た ら 、 [Re-Launch] を実行 し てデザ イ ン を シ ミ ュ レーシ ョ ン し 直 し ます。 ISE プ ロ ジ ェ ク ト に よ り 、 ソ ース フ ァ イ ルの変更が自動的に保存 さ れます。 ブ レー ク ポ イ ン ト の設定 HDL フ ァ イ ルの実行行にブ レー ク ポ イ ン ト を設定 し 、 第 6 章の 「ブ レー ク ポ イ ン ト の使用」 に記 述 さ れてい る よ う に、ブ レー ク ポ イ ン ト が設定 さ れてい る ソ ース コ ー ド 行に到達す る ま で コ ー ド を 継続 し て実行で き ます。 注記 : ブ レー ク ポ イ ン ト を設定で き る のは、 実行コ ー ド 行のみです。 26 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim GUI の概要 メ モ リ エデ ィ タ ーの使用 メ モ リ エデ ィ タ ーでは、 デザ イ ン の コ ンパ イ ルお よ びエ ラ ボ レ ーシ ョ ン を再実行せずに、 シ ミ ュ レーシ ョ ン中にデザ イ ンの 2 次元 メ モ リ ア レ イ の内容を検索、 変更で き ます。 メ モ リ オブジ ェ ク ト は、 [Memory] タ ブ、 [Objects] パネル、 お よ び [Search Results] タ ブの 3 箇所に表示 さ れ ます。 メ モ リ エデ ィ ターを開 く には、 次のいずれかの手順に従い ます。 • デザ イ ンの 2 次元ア レ イ の ロ ジ ッ ク タ イ プすべて を含む [Memory] タ ブで、 メ モ リ エデ ィ タ ーに表示す る メ モ リ を ダブル ク リ ッ ク し ます。 • [Objects] パネルで 2 次元ア レ イ の ロ ジ ッ ク タ イ プ を右 ク リ ッ ク し て、 [Memory Editor] を ク リ ッ ク し ます。 • [Instance and Processes] パネルで メ モ リ 名を検索 し ます。 検索結果が [Search Results] パネル に表示 さ れ る ので、 該当す る メ モ リ を右 ク リ ッ ク し て [Memory Editor] を ク リ ッ ク し ます。 注記 : 2 次元ア レ イ 以外の ロ ジ ッ ク のオブジ ェ ク ト では、[Memory Editor] メ ニ ュ ーは使用で き ず淡 色表示 さ れます。 メ モ リ エデ ィ ターには、 次の フ ィ ール ド が表示 さ れます。 • [Address] 表示 さ れてい る メ モ リ の特定の ロ ケーシ ョ ンに移動 し ます。 • [Columns] 各行に表示す る エ レ メ ン ト 数を選択 し ます。 [auto] では、 2 のべ き 乗のエ レ メ ン ト が表示 さ れ ます。 • [Address Radix] メ モ リ エデ ィ ターで表示 さ れ る ア ド レ ス の基数を選択 し ます。 • [Value Radix] メ モ リ エデ ィ ターで表示 さ れ る 値の基数を選択 し ます。 メ モ リ エデ ィ ターは状態を保持 し た ま ま フ ロ ー ト さ せる こ と がで き ます。 メ モ リ エデ ィ ター内は矢印キーを使用する と ナビ ゲー ト で き 、選択 し た ア イ テ ムの現在の位置が現 在のア ド レ ス基数に基づいて ス テー タ ス バーに表示 さ れます。 [Console] パネル [Console] パネルでは、 ISim で生成 さ れ る メ ッ セージ ロ グ を確認 し 、 コ マ ン ド プ ロ ン プ ト で標準 お よ び ISim 特有の Tcl コ マ ン ド を入力で き ます。 [Console] パネルには、 次が表示 さ れます。 メ ッ セージ エ ラ ー、 警告、 情報 メ ッ セージ な ど、 ISim で生成 さ れ る すべての メ ッ セージが表示 さ れ ま す。 ま た、 ISim GUI のグ ラ フ ィ カル制御か ら 実行 さ れたシ ミ ュ レー タ コ マ ン ド も すべて表示 さ れます。 シ ミ ュ レーシ ョ ン コ マ ン ド コ マ ン ド プ ロ ンプ ト では、シ ミ ュ レーシ ョ ン Tcl コ マ ン ド を入力 し た り 、 [Console] パネルに dump コ マ ン ド の出力を表示 し た り す る こ と がで き ます。 詳細は、 第 3 章の 「デザ イ ンのシ ミ ュ レーシ ョ ン」 を参照 し て く だ さ い。 [Console] パネルで右 ク リ ッ ク す る と 、 内容を管理で き る メ ニ ュ ーが表示 さ れます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 27 第 2 章 : ISim GUI の使用 [Breakpoints] パネル ブ レー ク ポ イ ン ト は、 ソ ース コ ー ド に含 まれ る ユーザー定義の停止ポ イ ン ト で、 ISim で使用 し て デザ イ ン をデバ ッ グす る と き に使用 し ます。 [Breakpoints] パネルでは、 デザ イ ンに現在設定 さ れて い る ブ レー ク ポ イ ン ト が リ ス ト 表示 さ れます。 詳細は、 第 6 章の 「ブ レー ク ポ イ ン ト の使用」 を参 照 し て く だ さ い。 [Breakpoints] パネルには、 ソ ー ス フ ァ イ ルに設定 さ れてい る 各ブ レ ー ク ポ イ ン ト に対 し て、 フ ァ イ ルの保存場所、 フ ァ イ ル名、 お よ び行数が表示 さ れます。 [Breakpoints] パネルの ツールバーや文 脈依存 メ ニ ュ ーを使用 し て、 選択 し たブ レー ク ポ イ ン ト ま たはすべてのブ レー ク ポ イ ン ト を削除 し た り 、 ソ ース コ ー ド に移動で き ます。 ブ レー ク ポ イ ン ト を設定す る には、 次のいずれかを ク リ ッ ク し ます。 • [View] → [Breakpoint] → [Toggle Breakpoint] • [Toggle Breakpoint] ボ タ ン • HDL フ ァ イ ルで コ ー ド 行の行番号の右側を ク リ ッ ク し ます。 • Tcl コ ン ソ ールに 「「bp」 <option>」 と 入力 し ます。 コ ー ド 行を右 ク リ ッ ク し て [Toggle Breakpoint] を ク リ ッ ク し て も 、 同 じ 操作を実行で き ます。 ブ レー ク ポ イ ン ト を挿入す る と 、 シ ミ ュ レーシ ョ ン ブ レー ク ポ イ ン ト ア イ コ ン () が コ ー ド 行の横に表示 さ れます。 ブ レー ク ポ イ ン ト の リ ス ト は、 [Breakpoints] パネルに表示 さ れます。 実行行以外の行にブ レー ク ポ イ ン ト を配置 し て も 、 追加 さ れません。 ブレー ク ポ イ ン ト を削除する には、シ ミ ュ レーシ ョ ン ブレー ク ポ イ ン ト ア イ コ ン を ク リ ッ ク し ます。 [Breakpoints] パネルのツ ールバー ボ タ ン 表 2-10 は、 ブ レー ク ポ イ ン ト ボ タ ン を示し てい ます。 表 2-10 : ブ レー ク ポ イ ン ト ボ タ ン ボタン 説明 [Delete Breakpoint] : [Breakpoints] パネルで選択 し た行を削除 し 、 HDL ソ ー ス フ ァ イ ルか ら ブ レー ク ポ イ ン ト を削除 し ます。 [Delete all breakpoints] : HDL ソ ース フ ァ イ ルか ら ブ レー ク ポ イ ン ト をすべ て削除 し ます。 [Go To Source Code] : テ キ ス ト エデ ィ ターで HDL ソ ース フ ァ イ ルを開 き ブ レー ク ポ イ ン ト を示 し ます。 [Search Results] パネル [Search Results] パネルには、 [Search] コ マ ン ド の検索条件 と 一致 し た結果が表示 さ れ ま す。 結果 には、 オブジ ェ ク ト の種類のア イ コ ンお よ びオブジ ェ ク ト の位置が表示 さ れます。 28 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim GUI の概要 [Search Results] パネルのツールバー ボ タ ン 表 2-11 は、 [Search Results] パネルのボ タ ン を示 し てい ます。 表 2-11 : [Search Results] パネルのツールバー ボ タ ン ボタ ン 説明 [Clear All] : [Search Results] パネルの内容を消去 し ます。 [Add To Wave Configuration] : 選択 し た検索結果に関連す る 信号を波形ウ ィ ン ド ウ の波形 コ ン フ ィ ギ ュ レーシ ョ ンに追加 し ます。 [Go to Source Code] : テキ ス ト エデ ィ タ で HDL ソ ース フ ァ イ ルを開き 、 検 索対象のデザ イ ン ユニ ッ ト が定義 さ れてい る 行を表示 し ます。 [Go To Instantiation Source Code] : テキ ス ト エデ ィ タ ーで HDL ソ ース フ ァ イ ルを開 き 、検索対象のデザ イ ン ユニ ッ ト が イ ン ス タ ン シエー ト さ れてい る 行 を表示 し ます。 [Stop Searching] : 検索を終了 し ます。 [Find in Files Results] パネル 複数の フ ァ イ ルか ら 文字列を検索す る には、 次の手順に従い ます。 [Find in Files] を使用す る 方法は、 次の と お り です。 表 2-12 : [Find in File] パネルのボ タ ン と その動作 ボタ ン 動作 [Edit] → [Find in Files] を ク リ ッ ク す る か、ツールバーの [Find Text in Files] ボ タ ン を ク リ ッ ク し ます。 [Find in Files] ダ イ ア ロ グ ボ ッ ク ス で検索す る テ キ ス ト を入力 し 、 検索オプ シ ョ ン を選択 し てか ら [Find] を ク リ ッ ク し ます。 [Find in Files Results] パネルで、 次のいずれかの操作を実行 し ます。 パネルに表示 さ れてい る 結果をすべて ク リ アす る には、 [Clear All] ボ タ ン を ク リ ッ ク し ます。 結果に表示 さ れてい る フ ァ イ ルを ワ ー ク スペース に開 く には、 フ ァ イ ルを選 択 し 、 [Show Current Result] ボ タ ン を ク リ ッ ク し ます。 パネル上で フ ァ イ ルを ダブル ク リ ッ ク し て も 、 同 じ 操作を実行で き ます。 次の結果を表示す る には、 [Show Next Result] ボ タ ン を ク リ ッ ク し ます。 前の結果を表示す る には、[Show Previous Result] ボ タ ン を ク リ ッ ク し ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 29 第 2 章 : ISim GUI の使用 表 2-12 : [Find in File] パネルのボ タ ン と その動作 (続き ) ボタ ン 動作 現在実行中の検索を停止す る には、 [Stop Job] ボ タ ン を ク リ ッ ク し ます。 検索結果を CSV (Comma Separated Value) フ ァ イ ルに保存す る には、 [Save Results as a Text File] ボ タ ン を ク リ ッ ク し ます。 シ ミ ュ レーシ ョ ンの再起動 [Re-launch] ボ タ ン を ク リ ッ ク す る と 、 検出 さ れてい る ハー ド ウ ェ ア記述言語 (HDL) の問題を修正 し た後に ISim シ ミ ュ レーシ ョ ン を再実行で き ます。 ま た、 GUI か ら 再 コ ンパ イ ル も 実行で き ます。 コ ンパ イ ルお よ びシ ミ ュ レーシ ョ ンの再実行は完全に自動化 さ れてい ます。 ダ イ ア ロ グ ボ ッ ク ス に 表示 さ れ る メ ッ セージには、 問題の箇所が示 さ れます。 Project Navigator ま たは PlanAehad ツール か ら フ ロ ーを起動 し た場合は、 [Re-launch] で コ ンパ イ ル時に設定 さ れたオプシ ョ ン がすべて保持 し た状態で指定時間だけシ ミ ュ レーシ ョ ンが自動的に実行 さ れます。 • シ ミ ュ レーシ ョ ンが正 し く 再実行 さ れた場合、 エ ラ ーが発生す る こ と な く シ ミ ュ レーシ ョ ンが 完了 し ます。 • シ ミ ュ レーシ ョ ンが正 し く 再実行 さ れない場合、 ソ ース コ ー ド を コ ンパ イ ルで き なかっ た原因 と な る 構文エ ラ ーがダ イ ア ロ グ ボ ッ ク ス に表示 さ れます。 こ の メ ッ セージに含まれ る リ ン ク を ク リ ッ ク す る と 、 エ ラ ーを含む ソ ース コ ー ド に移動で き ます。 リ ン ク で示 さ れたエ ラ ーを リ ス ト さ れてい る 順番に修正 し 、 [Re-launch] ボ タ ン を ク リ ッ ク し て再 コ ンパ イ ル し 、 修正 し た問 題を確認 し て く だ さ い。 ス テ ィ ミ ュ ラ スの適用 [Force Selected Signal] ダ イ ア ロ グ ボ ッ ク ス を使用す る と 、 VHDL 信号、 Verilog ワ イ ヤ、 ま たは Verilog レ ジ ス タ に強制的に定数値を割 り 当て る こ と がで き ます。 こ のダ イ ア ロ グ ボ ッ ク ス は、 信 号を選択 し て右 ク リ ッ ク し 、 [Force Constant] を ク リ ッ ク する と 開き ます。 強制的に割 り 当て る と 、 HDL コ ー ド で割 り 当て ら れた値や、 以前に適用 さ れた定数ま たは force コ マ ン ド 値は、 新 し く 割 り 当て ら れ る 値で上書 き さ れます。 [Apply] を ク リ ッ ク し 、 すべての変更を反映 さ せます。 図 2-3 は、 [Force Selected Signal] ダ イ ア ロ グ ボ ッ ク ス を示 し てい ます。 図 2-3: [Force Selected Signal] ダ イ ア ロ グ ボ ッ ク ス 30 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim GUI の概要 [Force Selected Signal] ダ イ ア ロ グ ボ ッ ク ス のオプシ ョ ンは、 次の と お り です。 • [Signal Name] デフ ォ ル ト の信号名が表示 さ れます。 デフ ォ ル ト の信号名は、 [Objects] パネルま たは波形で選 択 さ れてい る 信号の完全パ ス で表示 さ れます。 こ の名前は変更可能です。 不正な信号名が入力 さ れ る と 、 ボ ッ ク ス が赤色表示 さ れます。 • [Value Radix] 選択 さ れてい る 信号の現在の基数設定が表示 さ れます。 [Binary] (2 進数)、 [Hexadecimal] (16 進数)、 [Unsigned Decimal] (符号な し 10 進数)、 [Signed Decimal] (符号付 き 10 進数)、 [Octal] (8 進数)、 お よ び [ASCII] か ら 選択で き ます。 • [Force to Value] [Value Radix] で定義 さ れた基数を使用 し 、 強制的に適用す る 定数値を指定 し ます。 • [Starting at Time Offset] 特定の時間後に force コ マ ン ド を開始す る と き の時間を指定 し ます。 デフ ォ ル ト の開始時間は 0 です。 時間は、 10、 10 ns な ど の文字列で指定で き ます。 単位な し で数字が入力 さ れた場合、 デフ ォ ル ト のシ ミ ュ レーシ ョ ン時間単位が使用 さ れます。 • [Cancel after Time Offset] 特定の時間後にforce コ マ ン ド を キ ャ ンセルする と き の時間を指定 し ます。 時間は、 10、 10 ns な ど の文字列で指定で き ます。単位な し で数字が入力 さ れた場合、デフ ォ ル ト のシ ミ ュ レーシ ョ ン時間の単位が使用 さ れます。 ク ロ ッ ク ス テ ィ ミ ュ ラ スの適用 [Force Clock] を右 ク リ ッ ク し て開 く [Define Clock] ダ イ ア ロ グ ボ ッ ク ス を使用す る と 、 VHDL 信 号、 Verilog ワ イ ヤ、 ま たは Verilog レ ジ ス タ に強制的に別のパ タ ーン ( ク ロ ッ ク ) を割 り 当て る こ と がで き ます。 HDL コ ー ド で割 り 当て ら れた値や、 以前に割 り 当て ら れた定数ま たは force コ マン ド の値は、 新 し く 割 り 当て ら れ る ク ロ ッ ク パ タ ーンで上書 き さ れ ます。 [Apply] を ク リ ッ ク し 、 変 更を反映 さ せます。 [Define Clock] ダ イ ア ロ グ ボ ッ ク ス [Force Clock] を右 ク リ ッ ク す る と 、 [Define Clock] ダ イ ア ロ グ ボ ッ ク ス が開 き ます。 こ のダ イ ア ロ グ ボ ッ ク ス に含まれ る オプシ ョ ンは、 次の と お り です。 • [Signal Name] デフ ォ ル ト の信号名は、[Objects] パネルま たは波形で選択 さ れてい る 信号の完全パ ス で表示 さ れます。こ の名前は変更可能です。不正な信号名が入力 さ れ る と 、ボ ッ ク ス が赤色表示 さ れます。 注記 : restart コ マ ン ド を実行す る と 、現在適用 さ れてい る isim force コ マン ド がすべて キ ャ ンセル さ れます。 • [Value Radix] 選択 さ れてい る 信号の現在の基数設定が表示 さ れます。 [Binary] (2 進数)、 [Hexadecimal] (16 進数)、 [Unsigned Decimal] (符号な し 10 進数)、 [Signed Decimal] (符号付 き 10 進数)、 [Octal] (8 進数)、 お よ び [ASCII] か ら 選択で き ます。 • [Leading Edge Value] ク ロ ッ ク パ タ ーンの最初のエ ッ ジ を指定で き ます。 こ の値では、 [Value Radix] で定義 さ れて い る 基数が使用 さ れます。 • [Trailing Edge Value] ク ロ ッ ク パ タ ーンの 2 つ目のエ ッ ジ を指定で き ます。 こ の値では、 [Value Radix] で定義 さ れ てい る 基数が使用 さ れます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 31 第 2 章 : ISim GUI の使用 • [Starting at Time Offset] 現在のシ ミ ュ レーシ ョ ン時間か ら あ る 特定の時間後に force コ マ ン ド を実行す る と き の時間を 指定 し ます。 デフ ォ ル ト の開始時間は 0 です。 時間は、 10、 10 ns な ど の文字列で指定で き ま す。 単位な し で数字が入力 さ れた場合、 Tcl コ マ ン ド 「isim get userunit」 を実行 し た と き に戻 さ れ る デフ ォ ル ト のユーザー単位が使用 さ れます。 • [Cancel after Time Offset] 現在のシ ミ ュ レーシ ョ ン時間か ら あ る 特定の時間後に force コ マ ン ド を キ ャ ン セルす る と き の 時間を指定 し ます。 時間は、 10、 10 ns な ど の文字列で指定で き ます。 単位な し で数字が入力 さ れた場合、 デフ ォ ル ト のシ ミ ュ レーシ ョ ン時間単位が使用 さ れます。 • [Duty Cycle (%)] ク ロ ッ ク パルス がア ク テ ィ ブな状態であ る 時間の割合を指定 し ます。 許容値は 0 ~ 100 です。 • [Period] ク ロ ッ ク パルス の長 さ を時間で指定 し ます。 時間は、 10、 10 ns な ど の文字列で指定で き ます。 [Define Clock] ダ イ ア ロ グ ボ ッ ク スの設定例 信号に永久的 ク ロ ッ ク (100MHz) を割 り 当て る 場合は、 次を設定 し ます。 • [Leading Edge Value] : 1 • [Trailing Edge Value] : 0 • [Starting at Time Offset] : 0 • [Cancel after Time Offset] : 空白 • [Duty Cycle (%)] : 50 • [Period] :10 ns 特定の時間信号に ク ロ ッ ク を割 り 当て る 場合 (100ns で ト グル を開始 し 、 1ms 後に ト グル を 停止) は、 次を設定 し ます。 • [Leading Edge Value] : 1 • [Trailing Edge Value] : 0 • [Starting at Time Offset] : 100 ns • [Cancel after Time Offset] :1ms • [Duty Cycle (%)] : 50 • [Period] : ク ロ ッ ク 周期を指定 信号の ト グル値を割 り 当て る 場合 (1us 間 16 進数 F と 16 進数 A 間を 50ns ご と に ト グル) す る 場 合は、 次を設定 し ます。 32 • • [Value Radix] : [Hexadecimal] (16 進数) [Leading Edge Value] : F • [Trailing Edge Value] : A • [Starting at Time Offset] :0 • [Cancel after Time Offset] : 1us • [Duty Cycle (%)] : 50 • [Period] : 50 ns japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim プ リ フ ァ レ ン スの設定 ISim プ リ フ ァ レ ン スの設定 ISim に関する プ リ フ ァ レ ン ス を表示 し た り 、 変更で き ます。 プ リ フ ァ レ ン ス を設定す る には、 次の 手順に従い ます。 1. [Edit] → [Preferences] を ク リ ッ ク し ます。 2. [Preferences] ダ イ ア ロ グ ボ ッ ク ス の左側ペ イ ン で任意のカ テ ゴ リ を ク リ ッ ク し ます。 • 「ISE Text Editor のプ リ フ ァ レ ン ス」 • 「ISim シ ミ ュ レー タ のプ リ フ ァ レ ン ス」 3. 設定に変更を加え ます。 4. [Apply] を ク リ ッ ク し 、 [OK] を ク リ ッ ク し ます。 プ リ フ ァ レ ン ス設定が保存 さ れ、 ほ と ん ど の設定がすぐ に ISim に適用 さ れます。 ISE Text Editor のプ リ フ ァ レ ン ス ISE Text Editor に関連す る プ リ フ ァ レ ン ス 設定では、 ISim で開い て い る ハー ド ウ ェ ア記述言語 (HDL) フ ァ イ ルの動作のみが制御 さ れます。 プ リ フ ァ レ ン ス設定の詳細は、 ISE Text Editor ヘルプ を参照 し て く だ さ い。 ISim シ ミ ュ レ ー タ のプ リ フ ァ レ ン ス [Preferences] ダ イ ア ロ グ ボ ッ ク ス の [ Simulator] ページで設定で き ます。 こ のページ を表示す る に は、 [Edit] → [Preferences] を ク リ ッ ク し て左側ペ イ ンで [ISim Simulator] を ク リ ッ ク し ます。 [Draw Waveform Shadow] 波形ウ ィ ン ド ウ で信号の影背景の表示/非表示を切 り 替え ます。 [Limit the maximum number of elements displayed to] [Object] ウ ィ ン ド ウ に表示す る オブジ ェ ク ト の子エ レ メ ン ト の制限数を設定 し ます。 詳細は、 「エ レ メ ン ト の表示」 を参照 し て く だ さ い。 [Default Radix] 波形 コ ン フ ィ ギ ュ レーシ ョ ン、 [Objects] パネル、 お よ び [Console] パネルで表示 さ れ る デフ ォ ル ト の基数値を設定 し ます。 詳細は、 「デフ ォル ト の基数の変更」 を参照 し て く だ さ い。 [Console text font] ボ タ ンの右側のボ ッ ク ス に、 指定 し た フ ォ ン ト の例が表示 さ れます。 [Change] ボ タ ン を ク リ ッ ク す る と 、 [Console] パネルで使用す る フ ォ ン ト を指定す る [Select Font] ダ イ ア ロ グ ボ ッ ク ス が表示 さ れます。 ISim カ ラ ー プ リ フ ァ レ ン ス [Preferences] ダ イ ア ロ グ ボ ッ ク ス の [Colors] ページでは、 波形の表示色を設定で き ます。 [Apply] を ク リ ッ ク し 、変更を反映 さ せます。カ ラ ー プ リ フ ァ レ ン スには、次の よ う なオプシ ョ ンがあ り ます。 • [Current Color Scheme] デフ ォ ル ト の表示色名お よ び作成 し た表示色名が表示 さ れます。 • [New] 新 し い表示色を作成す る 場合は ク リ ッ ク し ます。 [Current Color Scheme] ボ ッ ク ス に新 し い名 前を入力 し 、 ス キーム表で色を変更 し ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 33 第 2 章 : ISim GUI の使用 • [Delete] 選択 し た表示色を削除 し ます。 表示色は変更す る こ と も で き ます。 詳細は、 33 ページの 「ISim プ リ フ ァ レ ン ス の設定」 を参照 し て く だ さ い。 時間フ ォ ーマ ッ ト のプ リ フ ァ レ ン ス 表示 さ れ る 時間の表示方法は、 [Preferences] ダ イ ア ロ グボ ッ ク ス の [Time Format] ページでカ ス タ マ イ ズ し ま す。 こ のページ を表示す る には、 [Edit] → [Preferences] を ク リ ッ ク し て左側ペ イ ン で [Time Format] を ク リ ッ ク し ます。時間フ ォーマ ッ ト の設定は、 [Waveform Window] お よ び [Other GUI Elements] の2 つの フ ィ ール ド か ら 設定で き ます。 [Waveform Window] こ こ で設定 し た内容が、 波形ビ ュ ーアー ウ ィ ン ド ウ 内の GUI に適用 さ れます。 時間フ ォーマ ッ ト には、 次の よ う なオプシ ョ ンがあ り ます。 • [Link All Waveform Time Units To Ruler] [Ruler] への変更に合わせて [Cursors/Markers] お よ び [Measure Bubble] の単位が変更 さ れ ま す。 こ のオプシ ョ ンはデフ ォ ル ト でオンにな っ てい ます。 • [Rulers] 波形ウ ィ ン ド ウ 上部の メ イ ン ルー ラ ーお よ びフ ロ ー ト ルー ラ ーに適用 さ れます。 • [Cursors/Markers] • [Measure Bubbles] すべてのカー ソ ルお よ びマーカーに表示 さ れ る 時間の値に適用 さ れます。 波形ウ ィ ン ド ウ 下部に表示 さ れ る カー ソ ル値を表示す る バブルに適用 さ れます。 [Other GUI Elements] こ こ で設定 し た内容が、 波形ビ ュ ーアー ウ ィ ン ド ウ 外の GUI に適用 さ れます。 • [All Time Values] メ イ ン ウ ィ ン ド ウ の右下に表示 さ れ る 現在のシ ミ ュ レーシ ョ ン時間お よ び [Objects] パネルに 表示 さ れ る 時間の値に適用 さ れます。 上記の時間フ ォーマ ッ ト では、 次の フ ィ ール ド を使用 し て表示す る 値の時間の単位 と 精度を設定で き ます。 • [Units] 時間の 値の単位 を 選択す る ボ ッ ク ス です。 [Other GUI Elements] のデ フ ォ ル ト 設定は [Default] で、 [Waveform Window] のデフ ォ ル ト 設定は [Auto] です。 • [Decimal Places] 時間の値を表示す る と き に使用す る 小数点以下の桁数を設定 し ます。 デフ ォ ル ト 設定は、 ど ち ら の フ ィ ール ド で も Maximum にな っ てい ます。 • [Reset To Defaults] 値をデフ ォ ル ト 設定に戻 し ます。 34 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 第3章 コ ンパイルお よびシ ミ ュ レーシ ョ ン シ ミ ュ レーシ ョ ンは、 VHDL、 Verilog ま たは混合言語 コ ン ポーネ ン ト に対 し て実行で き ます。 • 論理シ ミ ュ レーシ ョ ンは、 デザ イ ン プ ロ セ ス の早期段階で実行で き ます。 • タ イ ミ ン グ シ ミ ュ レーシ ョ ンは、 配置配線 (PAR) 後に実行す る 必要があ り ます。 ま た、 こ れ ら の 2 タ イ プのシ ミ ュ レーシ ョ ンは、 次のオプシ ョ ン で実行で き ます。 • Tcl ( ツール コ マ ン ド 言語) バ ッ チ フ ァ イ ルま たは Tcl コ マン ド を使用 し て コ マン ド ラ イ ンか ら .実行 • ISE® Design Suite ま たは PlanAhead™ ツールか ら 起動可能な GUI モー ド か ら 実行 論理シ ミ ュ レーシ ョ ン ま たは タ イ ミ ン グ シ ミ ュ レーシ ョ ン のいずれか を コ マ ン ド ラ イ ンか ら 実行 す る 場合は、 次の手順に従っ て く だ さ い。 1. デザ イ ン フ ァ イ ルの解析 2. シ ミ ュ レーシ ョ ン実行フ ァ イ ルの生成 3. デザ イ ンのシ ミ ュ レーシ ョ ン タ イ ミ ン グ シ ミ ュ レーシ ョ ンの場合は、 さ ら に手順が必要 と な り ます。 詳細は、 49 ページの 「 タ イ ミ ン グ シ ミ ュ レーシ ョ ン (ゲー ト レベル シ ミ ュ レーシ ョ ン )」 を参照 し て く だ さ い。 次のセ ク シ ョ ンでは、 上記の手順について説明 し ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 35 第 3 章 : コ ンパイルおよびシ ミ ュ レーシ ョ ン デザイ ン フ ァ イルの解析 VHDL フ ァ イ ルの解析には vhpcomp、 Verilog フ ァ イ ルの解析には vlogcomp コ マン ド を使用 し ます。 vlogcomp コ マ ン ド vlogcomp コ マ ン ド は Verilog ソ ース フ ァ イ ルを解析 し 、 2 進数表記の Verilog フ ァ イ ルを生成 し ま す。 vlogcomp で生成 さ れた 2 進数表記は fuse コ マ ン ド で使用 さ れ、 シ ミ ュ レ ーシ ョ ン実行 フ ァ イ ルが作成 さ れます。 プ ロ ジ ェ ク ト フ ァ イ ルか、 コ ンパ イ ルす る Verilog フ ァ イ ルを指定す る 必要があ り ます。 いずれ も 指定 さ れていない場合は、 vlogcomp を実行す る と エ ラ ーが発生 し ます。 プ ロ ジ ェ ク ト フ ァ イ ル の詳細は、 43 ページの 「プ ロ ジ ェ ク ト フ ァ イ ルの構文」 を参照 し て く だ さ い。 vlogcomp コ マ ン ド の構文 コ マ ン ド の説明については、 それぞれの リ ン ク を ク リ ッ ク し て く だ さ い。 注記 : ご使用の PDF リ ーダーで [View] → [ Toolbars] → [More Tools] で [Previous View] お よ び [Next View] を オンに し てお く と 、 リ ン ク さ れた情報の前後へ移動が し やす く な り ます ( メ ニ ュ ー表 示は PDF リ ーダーに よ っ て異な り ます)。 vlogcomp [-d <macro_definition>=<value>=<value>] [-f <cmd_file>] [-h] [-i “<include_path>“] [-intstyle [ise | xflow | silent |default] [-initfile <sim_init_file>] [[-L|-lib <search_lib>[=<lib_path>]] [-prj <prj_file>.prj] [-sourcelibdir <directory_name>] [-sourcelibext <file_extension>] [-sourcelibfile <file_name>] [-v [-verbose] <value>] [-version] [<verilog_files>...] [-work [<work_library>[=<library_path>] ] <filenames>... オプシ ョ ンの説明については、 fuse、 vhpcomp、 vlogcomp コ マ ン ド オプシ ョ ン セ ク シ ョ ン を参照 し て く だ さ い。 vlogcomp コ マ ン ド 例 Verilog フ ァ イ ルを 2 つ使用 し 、 ソ ース ラ イ ブ ラ リ デ ィ レ ク ト リ を指定 し 、 Verilog フ ァ イ ルの拡 張子を指定 し ます。 vlogcomp tb.v fft.v -sourcelibdir ./mylib -sourcelibext .v Verilog フ ァ イ ル と ソ ース ラ イ ブ ラ リ フ ァ イ ルを指定 し ます。 vlogcomp dff.v -sourcelibfile ./mylib/dff_lowest.v work デ ィ レ ク ト リ と Verilog フ ァ イ ルを指定し ます。 vlogcomp -work my_lib tb.v 2 つの フ ァ イ ルを使用 し ます。 36 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 デザイ ン フ ァ イルの解析 vlogcomp top_testbench.v top_timesim.v mydir/cells デ ィ レ ク ト リ に含まれ る 未解決のセルが検索 さ れます。 vlogcomp -work mywork1 file1.v -sourcelibdir mydir/cells た と えば、 file1.v で未解決の DFF お よ び DMUX が イ ン ス タ ン シエー ト さ れ る 場合、 こ の コ マ ン ド に よ り mydir/cells デ ィ レ ク ト リ に含まれ る DFF お よ び DMUX と い う 名前の フ ァ イ ルが検索 さ れます。 モジ ュ ール DFF お よ び DMUX は、 フ ァ イ ル DFF お よ び DMUX で定義 さ れ ます。 ソ ース ラ イ ブ ラ リ のサポー ト 次に示す コ マ ン ド の引数では、 Verilog-XL 規格 と 同等の ソ ース ラ イ ブ ラ リ がサポー ト さ れます。 次の コ マ ン ド オプシ ョ ン を vlogcomp コ マン ド に付けて実行 し て く だ さ い。 vlogcomp -sourcelibdir <library_location> 注記 : -sourcelibdir では Verilog-XL の -y オプシ ョ ンに類似 し た機能が提供 さ れます。 コ マ ン ド ラ イ ンの ソ ース フ ァ イ ルが解析 さ れた後にモジ ュ ールに未解決の リ フ ァ レ ン ス があ る 場 合、 こ の コ マ ン ド で ソ ース ラ イ ブ ラ リ が検索 さ れます。 こ の検索中に、 vlogcomp は未解決の イ ン ス タ ン シエー ト さ れたデザ イ ン ユニ ッ ト と 指定 さ れた -sourcelibdir デ ィ レ ク ト リ に含まれてい る 同 じ 名前の フ ァ イ ル名を一致 さ せ よ う と し ます。 フ ァ イ ルが存在す る 場合は、 vlogcomp でその フ ァ イ ルが解析 さ れます。 vlogcomp は -sourcelibdir オプ シ ョ ン を 処理中に、 -sourcelibext が指定 さ れな い場 合、 .v、 .h な ど の拡張子の フ ァ イ ルを無視 し ます。 注記 : -sourcelibext では Verilog-XL の +libext+ オプシ ョ ンに類似 し た機能が提供 さ れま す。 こ の コ マ ン ド ラ イ ンの引数は、 ソ ース ラ イ ブ ラ リ フ ァ イ ルに拡張子があ る と き 、 -sourcelibdir と 共に使用で き ます。 例: vlogcomp -sourcelibdir /project/mysources tb.v fft.v vlogcomp -sourcelibdir /project/mysources tb.v fft.v -sourcelibext .v すべての未解決のモジ ュ ールの定義を含む ソ ース Verilog ラ イ ブ ラ リ フ ァ イ ルを指定す る こ と も で き ます。 例: -sourcelibfile ./library/lib_abc.v ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 37 第 3 章 : コ ンパイルおよびシ ミ ュ レーシ ョ ン vhpcomp コ マ ン ド vhpcomp コ マ ン ド は VHDL ソ ー ス フ ァ イ ル を 解析 し 、 2 進数表記の HDL フ ァ イ ル を 保存 し ま す。 vhpcomp で生成 さ れた 2 進数表記は fuse コ マ ン ド で使用 さ れ、 シ ミ ュ レ ーシ ョ ン実行フ ァ イ ルが作成 さ れます。 プ ロ ジ ェ ク ト フ ァ イ ルか VHDL フ ァ イ ルを指定 し ます。 プ ロ ジ ェ ク ト フ ァ イ ル も VHDL フ ァ イ ル も 指定 し ない場合、エ ラ ー メ ッ セージが表示 さ れます。プ ロ ジ ェ ク ト フ ァ イ ルの詳細は、43 ペー ジの 「プ ロ ジ ェ ク ト フ ァ イ ルの構文」 を参照 し て く だ さ い。 vhpcomp コ マ ン ド の構文 コ マ ン ド オプシ ョ ンの説明については、 それぞれの リ ン ク を ク リ ッ ク し て く だ さ い。 注記 : ご使用の PDF リ ーダーで [View] → [ Toolbars] → [More Tools] で [Previous View] お よ び [Next View] を オンに し てお く と 、 リ ン ク さ れた情報の前後へ移動が し やす く な り ます ( メ ニ ュ ー表 示は PDF リ ーダーに よ っ て異な り ます)。 次に、 vhpcomp コ マ ン ド の構文を示 し ます。 vhpcomp [-f <cmd_file>] [-h] [-i “<include_path>“] [-intstyle [ise | xflow | silent |default] [-initfile <sim_init_file>] [[-L|-lib <search_lib>[=<lib_path>]] [-prj <prj_file>.prj] [-rangecheck] [-v [-verbose] <value>] [-version] [<vhdl_files>...] [-work [<work_library>[=<library_path>] ] <filenames>... オプシ ョ ンの説明については、 fuse、 vhpcomp、 vlogcomp コ マ ン ド オプシ ョ ン セ ク シ ョ ン を参照 し て く だ さ い。 vhpcomp コ マ ン ド 例 2 つの フ ァ イ ルを使用 し ます。 vhpcomp suba.vhd subb.vhd fuse の実行 fuse コ マン ド では、 次が実行 さ れます。 • 解析 ノ ー ド でデザ イ ンの ス タ テ ィ ッ ク エ ラ ボ レーシ ョ ン を実行 • 各モジ ュ ール イ ン ス タ ン ス のオブジ ェ ク ト コ ー ド を生成 • 生成 し たオブジ ェ ク ト コ ー ド と シ ミ ュ レーシ ョ ン エン ジ ン ラ イ ブ ラ リ を リ ン ク 付け し て、 シ ミ ュ レーシ ョ ン実行フ ァ イ ルを作成 fuse コ マ ン ド は、 デザ イ ン を構成す る 各デザ イ ン ユニ ッ ト のオブ ジ ェ ク ト コ ー ド お よ びデー タ フ ァ イ ルを生成 し 、 こ れ ら の フ ァ イ ルを isim/<simulation_executable>.sim デ ィ レ ク ト リ に保存 し ます。 38 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 デザイ ン フ ァ イルの解析 注記 : isim/<simulation_executable>.sim デ ィ レ ク ト リ を削除 し ないで く だ さ い。 削除す る と デザ イ ン を シ ミ ュ レーシ ョ ンで き ません。 fuse コ マ ン ド の構文 コ マ ン ド オプシ ョ ンの説明については、 次の各 リ ン ク を ク リ ッ ク し て く だ さ い。 注記 : ご使用の PDF リ ーダーで [View] → [ Toolbars] → [More Tools] で [Previous View] お よ び [Next View] を オンに し てお く と 、 リ ン ク さ れた情報の前後へ移動が し やす く な り ます ( メ ニ ュ ー表 示は PDF リ ーダーに よ っ て異な り ます)。 次に、 fuse コ マ ン ド の構文を示 し ます。 fuse [-d <macro_definition>=<value>=<value>] [-f <cmd_file>] [-generic_top "<parameter>=<value>"] [-h] [-hil_zynq_ps] [-hwcosim_board <arg>] [-hwcosim_clock <arg>] [-hwcosim_instance <arg>] [-hwcosim_no_combinatorial_path] [-hwcosim_incremental <arg>] [-i “<include_path>“] [-incremental] [-initfile <sim_init_file>] [-intstyle [ise | xflow | silent |default] [[-L|-lib <search_lib>[=<lib_path>]] [-log <file_name>] [-maxdeltaid <number>] [-maxdelay] [-maxdesigndepth <depth>] [-mindelay] [-mt <value>] [-nodebug] [-nolog] [-nospecify] [-notimingchecks] [-o <sim_exe> ] [-override_timeprecision ] [-override_timeunit] [-prj <prj_file>.prj] [-rangecheck] [-sdfnoerror] [-sdfnowarn] [-sdfmin]|[-sdftyp][-sdfmax] <root=file>] [-sdfroot <root_path>] [-sourcelibdir <directory_name> [-sourcelibext <file_extension>] [-sourcelibfile <file_name>] [-timeprecision_vhdl <time_precision>] [-timescale <time_unit/time_precision>] [-typdelay] [-v [-verbose] <value>] [-version] オプシ ョ ンの説明については、 fuse、 vhpcomp、 vlogcomp コ マ ン ド オプシ ョ ン セ ク シ ョ ン を参照 し て く だ さ い。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 39 第 3 章 : コ ンパイルおよびシ ミ ュ レーシ ョ ン fuse コ マ ン ド 例 fuse コ マン ド にプ ロ ジ ェ ク ト フ ァ イ ルお よ び ソ ース ラ イ ブ ラ リ を指定 し て実行 し ます。 fuse -prj test.prj test -sourcelibfile ./mylib1/lib_abc.v -sourcelibfile ./mylib1/lib_cde.v test.prj には、 verilog work test.v が含まれます。 fuse では test.v で使用 さ れ る モジ ュ ールの -sourcelibfile オプシ ョ ンで指定 し た フ ァ イ ルが使用 さ れ、 モジ ュ ールが解析 さ れ、 test デザ イ ンが生成 さ れます。 test.v フ ァ イ ルに イ ン ス タ ン シエー ト さ れてい る <module_name> と い う 名前の未解決の モジ ュ ールに対 し 、 コ ンパ イ ラ では ./mylib1、 ./mylib2 デ ィ レ ク ト リ の順で modulename.v と い う 名前の フ ァ イ ルが検索 さ れます。 fuse コ マン ド に work.glbl オプシ ョ ン を付けて実行 し ます。 fuse work.testbench work.glbl -prj design.prj -L simprims_ver -o isim.exe 注記 : タ イ ミ ン グ シ ミ ュ レーシ ョ ンで fuse を使用す る 場合、 glbl を <top_name> と し て 使用す る 必要が あ り ま す。 -o オプ シ ョ ン は、 必須ではあ り ま せん。 使用 し ない場合、 シ ミ ュ レーシ ョ ン実行フ ァ イ ルの名前がデフ ォ ル ト 名 x.exe にな り ます。 例: fuse topunit work.glbl -prj <mydesign>.prj -o <my_sim>.exe 注記 : PRJ フ ァ イ ルに含まれ る 特定の行を除外す る には、 "--" オプシ ョ ン を使用 し ます。 Verilog 検索順 fuse コ マ ン ド では次の検索順で検索 を 実行 し 、 イ ン ス タ ン シ エー ト さ れた Verilog デザ イ ン ユ ニ ッ ト をバ イ ン ド し ます。 1. ラ イ ブ ラ リ は、 Verilog コ ー ド の ‘uselib で指定 さ れます。 例: module full_adder(c_in, c_out, a, b, sum) input c_in,a,b; output c_out,sum; wire carry1,carry2,sum1; `uselib lib = adder_lib half_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 デザ イ ンに コ ン ポーネ ン ト が イ ン ス タ ン シエー ト さ れてい る 場合、 fuse コ マン ド でその コ ン ポーネ ン ト 名が Verilog ユニ ッ ト と し て処理 さ れ、 Verilog モジ ュ ールがユーザーに よ り 指定 さ れ た順序のユニ フ ァ イ ド 論理 ラ イ ブ ラ リ で検索 さ れます。 • 40 Verilog ユニ ッ ト が見つかれば、 そのユニ ッ ト にバ イ ン ド さ れ、 検索が終了 し ます。 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 デザイ ン フ ァ イルの解析 • Verilog ユニ ッ ト が見つか ら ない場合は、 イ ン ス タ ン シエー ト さ れてい る モジ ュ ール名が VHDL エン テ ィ テ ィ 名 と し て処理 さ れ、 次の よ う に検索が続行 さ れます。 fuse コ マン ド では、 イ ン ス タ ン シエー ト さ れたモジ ュ ール名 と 同 じ エン テ ィ テ ィ 名がユー ザーに よ り 指定 さ れた順序のユニ フ ァ イ ド 論理 ラ イ ブ ラ リ で検索 さ れ、 最初に一致 し た名前が 見つか る と 、 検索を終了 し ます。 • 大文字/小文字を区別 し た検索が実行 さ れない場合、 fuse コ マン ド では、 拡張識別子 と し て作 成 さ れた VHDL デザ イ ン ユニ ッ ト 名がユーザーに よ り 指定 さ れた順序のユニ フ ァ イ ド 論理 ラ イ ブ ラ リ で検索 さ れます。 • 一致す る ユニ ッ ト が見つか る と 、 そのユニ ッ ト 名が選択 さ れ、 検索は終了 し ます。 注記 : 混合言語デザ イ ンでは、 イ ン ス タ ン シエー ト さ れた Verilog モジ ュ ールか ら VHDL エン テ ィ テ ィ に関連付け ら れたポー ト 名の大文字 と 小文字は区別 さ れません。 defparam 文で VHDL ジ ェ ネ リ ッ ク を変更す る こ と はで き ない こ と に も 注意 し て く だ さ い。 VHDL イ ン ス タ ン シ エーシ ョ ン ユニ ッ ト VHDL デザ イ ンに コ ン ポーネ ン ト が イ ン ス タ ン シエー ト さ れてい る 場合、 fuse コ マン ド ではその コ ン ポーネ ン ト 名が VHDL ユニ ッ ト と 判断 さ れ、 論理 ラ イ ブ ラ リ work が検索 さ れます。 • VHDL ユニ ッ ト が見つか る と 、 そのユニ ッ ト にバ イ ン ド さ れ、 検索が停止 し ます。 • fuse コ マン ド で VHDL ユニ ッ ト が見つか ら なかっ た場合は、 大文字 と 小文字を維持し た コ ン ポーネ ン ト 名が Verilog モジ ュ ール名 と し て処理 さ れ、 ユーザーに よ り 指定 さ れた順序のユニ フ ァ イ ド 論理 ラ イ ブ ラ リ で検索が続行 さ れます。一致する名前が見つか る と 、検索は停止し ます。 • 大文字/小文字を区別し た検索が実行さ れない場合、 fuse コ マン ド では、 Verilog モジ ュール (大 文字/小文字の識別あ り ) がユーザーに よ り 指定 さ れた順序のユニ フ ァ イ ド 論理 ラ イ ブ ラ リ で検 索 されます。 一致する ユニ ッ ト が見つか る と そのユニ ッ ト がバ イ ン ド さ れ、 検索が終了し ます。 `uselib (Verilog 指示子) Verilog 指示子の `uselib は ISim でサポー ト さ れ、 ラ イ ブ ラ リ 検索順序に従っ て実行 さ れます。 `uselib 構文 <uselib compiler directive> ::= `uselib [<Verilog-XL uselib directives>|<lib directive>] <Verilog-XL uselib directives> :== dir = <library_directory> | file = <library_file> | libext = <file_extension> <lib directive>::= <library reference> { <library reference>} <library reference> ::= lib = <logical library name> `uselib lib の使用規則 `uselib lib 指示子は、 Verilog-XL の `uselib 指示子 と は一緒に使用で き ません。 例 : `uselib dir=./ file=f.v lib=newlib こ の構文は問題あ り ません。 1 つの `uselib 指示子で複数の ラ イ ブ ラ リ を指定す る こ と がで き ます。 こ の場合、 ラ イ ブ ラ リ の指定順序が検索順序にな り ます。 例: `uselib lib=mylib lib=yourlib ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 41 第 3 章 : コ ンパイルおよびシ ミ ュ レーシ ョ ン イ ン ス タ ン シエー ト 済みモジ ュ ールの検索順は、 mylib が最初で、 次に yourlib と な り ます。 `uselib dir、 `uselib file お よ び `uselib libext と 同様、 `uselib lib は別 の `uselib が使用 さ れ る ま で、 ま たは前に使用 さ れた `uselib (すべての Verilog XL の `uselib 指示子を含む) が HDL ソ ース で使用 さ れた ま ま にな っ てい る 場合を除いて、指定 し た解析が開始 さ れ る 際に HDL フ ァ イ ルで使用 さ れます。 `uselib に何 も 引数を使用 し ない場合は、 現在ア ク テ ィ ブにな っ てい る 効果が削除 さ れます。 `uselib lib|file|dir|libext. 次のモジ ュ ール検索方法は、 イ ン ス タ ン シエー ト モジ ュ ールま たは Verific の Verilog エ ラ ボ レー シ ョ ン アルゴ リ ズ ムに よ る UDP を解決する ために使用 さ れます。 • まず、 現在ア ク テ ィ ブな `uselib lib の論理 ラ イ ブ ラ リ の順序 リ ス ト で イ ン ス タ ン シエー ト 済みモジ ュ ールを検索 し ます。 • 見つか ら ない場合は、 fuse コ マン ド ラ イ ン を使用 し 、 検索 ラ イ ブ ラ リ と し て提供 さ れてい る ラ イ ブ ラ リ の順序 リ ス ト で イ ン ス タ ン シエー ト 済みモジ ュ ールを検索 し ます。 • 見つか ら ない場合は、 親モジ ュ ールの ラ イ ブ ラ リ で イ ン ス タ ン シエー ト 済みモジ ュ ールを検索 し ます。 た と えば、 work ラ イ ブ ラ リ のモジ ュ ール A が mylib ラ イ ブ ラ リ のモジ ュ ール B を イ ン ス タ ン シエー ト し 、 モジ ュ ール B がモジ ュ ール C を イ ン ス タ ン シエー ト す る 場合、 C の 親モジ ュ ールであ る B の ラ イ ブ ラ リ であ る mylib ラ イ ブ ラ リ でモジ ュ ール C を検索 し ます。 • 見つか ら ない場合は、 次のいずれか 1 つであ る work ラ イ ブ ラ リ で イ ン ス タ ン シエー ト 済みモ ジ ュ ールを検索 し ます。 • HDL ソ ース の コ ンパ イ ル さ れ る ラ イ ブ ラ リ • work ラ イ ブ ラ リ と し て設定 さ れた ラ イ ブ ラ リ • work と い う 名前の付いたデフ ォ ル ト の work ラ イ ブ ラ リ `uselib の例 half_adder.v フ ァ イルを adder_lib と い full_adder.v フ ァ イルを work と い う 名前の論理ラ う 名前の論理 ラ イ ブ ラ リ に コ ンパイル イ ブ ラ リ に コ ンパイル module half_adder(a,b,c,s); input a,b; output c,s; s = a ^ b; c = a & b; endmodule 42 japan.xilinx.com 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_lib half_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 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 プ ロ ジ ェ ク ト フ ァ イルの構文 プ ロ ジ ェ ク ト フ ァ イルの構文 プ ロ ジ ェ ク ト フ ァ イ ルを使用 し てデザ イ ン フ ァ イ ルを解析す る には、 <proj_name>.prj と い う フ ァ イ ルを作成 し 、 次の構文を そのプ ロ ジ ェ ク ト フ ァ イ ル内で使用 し ます。 verilog <work_library> <file_names>...[-d <macro>]... [-i <include_path>]... vhdl <work_library> <file_name> 説明 : - <work_library> : 指定行の HDL フ ァ イ ルが コ ンパ イ ル さ れ る ラ イ ブ ラ リ - <file_names> : Verilog ソ ース フ ァ イ ル。 1 行に複数の Verilog フ ァ イ ルを指定で き ます。 - <file_name> : VHDL ソ ース フ ァ イ ル。 1 行に 1 つの VHDL フ ァ イ ルを指定 し ま す。 - Verilog の場合、[-d <macro>] を使用す る と オプシ ョ ンで 1 つ以上のマ ク ロ を定義で き る よ う にな り ます。 - Verilog の場合、 [-i <include_path>] を使用す る と オプシ ョ ンで 1 つ以上の <include_path> デ ィ レ ク ト リ を定義で き る よ う にな り ます。 Verilog シ ミ ュ レ ーシ ョ ン用の定義済み XILINX_ISIM マ ク ロ XILINX_ISIM は、 Verilog 定義済みマ ク ロ で、値は1 です。 こ の定義済みマ ク ロ を使用する と 、 ツー ル特定のフ ァ ン ク シ ョ ン を実行 し た り 、 ま たはデザ イ ン フ ロ ーで使用する ツールを特定で き ます。 module isim_predefined_macro; integer fp; initial begin `ifdef XILINX_ISIM $display("XILINX_ISIM defined"); fp = $fopen("ISIM.dat"); `else $display("XILINX_ISIM not defined"); fp = $fopen("other.dat"); `endif $fdisplay (fp, "results"); end endmodule ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 43 第 3 章 : コ ンパイルおよびシ ミ ュ レーシ ョ ン デザイ ンのシ ミ ュ レーシ ョ ン シ ミ ュ レーシ ョ ンは、 デザ イ ンの ロ ジ ッ ク お よ び タ イ ミ ン グ を検証す る プ ロ セ ス で、 ISim の GUI、 Tcl バ ッ チ フ ァ イ ルま たは コ マ ン ド ラ イ ン を使用 し て実行で き ます。 デザ イ ン フ ァ イ ルを解析 し 、 fuse を使用 し てシ ミ ュ レーシ ョ ン実行フ ァ イ ルを作成す る と 、 論理ま たは タ イ ミ ン グ シ ミ ュ レー シ ョ ンが実行で き る よ う にな り ます。 シ ミ ュ レーシ ョ ンの実行 シ ミ ュ レーシ ョ ンは、 次のいずれかの方法で実行 し ます。 • コ マ ン ド ラ イ ンの使用 • GUI の使用 コ マ ン ド ラ イ ンの使用 fuse コ マン ド で生成 さ れた実行フ ァ イ ルを実行す る と 、 シ ミ ュ レーシ ョ ン を コ マ ン ド シ ェ ルで開 始で き ま す。 シ ミ ュ レ ーシ ョ ン実行 フ ァ イ ルに -gui オプ シ ョ ン を指定 し な ければ、 シ ミ ュ レ ー シ ョ ンは コ マ ン ド ラ イ ン モー ド で開始 し ます。 た と えば、 次の よ う に入力 し ます。 x.exe ISim の Tcl プ ロ ンプ ト が開 き ます。 こ のプ ロ ンプ ト にシ ミ ュ レーシ ョ ン Tcl コ マン ド を イ ン タ ラ ク テ ィ ブに入力す る こ と で、 シ ミ ュ レーシ ョ ン を実行 し た り 、 デザ イ ン をデバ ッ グで き ます。 -tclbatch コ マ ン ド を使用す る と 、 1 つの フ ァ イ ルに複数の コ マン ド を含めて、 シ ミ ュ レーシ ョ ンの開始時に こ れ ら の コ マン ド を実行 さ せ る こ と がで き ます。 た と えば、 次の コ マン ド を含む run.tcl と い う フ ァ イ ルがあ る と し ます。 run 20ns show time quit シ ミ ュ レーシ ョ ン を開始す る と き に こ れ ら の コ マン ド を実行す る には、 次の よ う に入力 し ます。 x.exe -tclbatch run.tcl GUI の使用 次の例では、 シ ミ ュ レーシ ョ ン実行フ ァ イ ルを実行 し 、 GUI を開いてい ます。 <executable_name>.exe -gui 次の GUI の メ ニ ュ ー コ マン ド を使用 し て も シ ミ ュ レーシ ョ ン を実行で き ます。 • [Simulation] → [Restart] シ ミ ュ レーシ ョ ン を停止 し てシ ミ ュ レーシ ョ ン時間を 0 に戻 し ます。 デザ イ ン を読み込み直 さ ずにシ ミ ュ レーシ ョ ン を再実行す る には、[Step]、[Run All]、ま たは [Run for the time specified on the toolbar] を使用 し ます。 ま たは、 [Console] パネルに Tcl コ マン ド の restart を入力 し ます。 • [Simulation] → [Run All] すべての イ ベン ト が実行 さ れ る ま でシ ミ ュ レーシ ョ ン を実行 し ます。 ま たは、 [Console] パネ ルに Tcl コ マン ド の run -all を入力 し ます。 • 44 [Simulation] → [Run] シ ミ ュ レーシ ョ ン を 100ns ま たは指定 し た時間分実行 し ます。 時間お よ び単位は [Value] ボ ッ japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 混合言語シ ミ ュ レーシ ョ ン ク ス に入力 し ます。 ま たは、 Tcl コ マ ン ド の run に -length お よ び -unit オプシ ョ ン を付 けて実行す る こ と も で き ます。 • [Simulation] → [Step] HDL 命令に対 し て 1 つずつシ ミ ュ レーシ ョ ン を実行 し ます。 第 6 章の 「シ ミ ュ レーシ ョ ンの 1 行ずつの実行」 お よ び Tcl コ マン ド の step を参照 し て く だ さ い。 ま た、 HDL ソ ース コ ー ド の特定の位置 ま でシ ミ ュ レ ーシ ョ ン を実行す る こ と も 可能です。 こ の場 合は、 ブ レー ク ポ イ ン ト を使用 し て run -all コ マ ン ド を実行 し ます。 詳細は、 第 6 章 「 ソ ース レ ベルでのデバ ッ グ」 を参照 し て く だ さ い。 注記 : 現在のシ ミ ュ レーシ ョ ン時間は、 右下端に表示 さ れます。 混合言語シ ミ ュ レーシ ョ ン ISim では、 混合言語のプ ロ ジ ェ ク ト フ ァ イ ルお よ び混合言語シ ミ ュ レーシ ョ ンがサポー ト さ れて います。 VHDL デザ イ ンには Verilog モジ ュ ールが、 Verilog デザ イ ンには VHDL モジ ュ ールを含 め る こ と がで き ます。 シ ミ ュ レーシ ョ ン での混合言語の制限 • VHDL と Verilog の混合は、モジ ュ ール イ ン ス タ ン ス ま たは コ ン ポーネ ン ト 単位でのみ可能で す。 • VHDL デザ イ ンへの Verilog モジ ュ ールの イ ン ス タ ン シエー ト 、 Verilog デザ イ ンへの VHDL コ ン ポーネ ン ト の イ ン ス タ ン シエー ト のみがサポー ト さ れます。 それ以外の混合方法はサポー ト さ れません。 • Verilog での階層参照では VHDL ユニ ッ ト は参照で き ず、VHDL の展開/選択名では Verilog ユ ニ ッ ト を参照で き ません。 • Verilog モジ ュ ール と の境界では、 一部の VHDL の型、 ジ ェ ネ リ ッ ク 、 ポー ト のみ使用可能で す。 同様に、 VHDL デザ イ ン ユニ ッ ト の境界では、 一部の Verilog の型、 パ ラ メ ー タ ー、 ポー ト のみ使用可能です。 • Verilog モジ ュ ールの VHDL ユニ ッ ト へのバ イ ン ド には、 コ ン ポーネ ン ト の イ ン ス タ ン シエー シ ョ ンに基づ く デフ ォ ル ト のバ イ ン ド が使用 さ れ ます。 具体的には、 VHDL デザ イ ン ユニ ッ ト に イ ン ス タ ン シエー ト さ れてい る Verilog モ ジ ュ ールには、 コ ン フ ィ ギ ュ レーシ ョ ン仕様、 直接 イ ン ス タ ン シエーシ ョ ン、 お よ び コ ン ポーネ ン ト の コ ン フ ィ ギ ュ レーシ ョ ンは使用で き ま せん。 混合言語シ ミ ュ レ ーシ ョ ン での主要手順 1. オプシ ョ ンで、 混合言語プ ロ ジ ェ ク ト のデザ イ ン ラ イ ブ ラ リ に含まれ る VHDL エン テ ィ テ ィ ま たは Verilog モジ ュ ールでの検索順を指定 し ます。 2. 混合言語プ ロ ジ ェ ク ト のデザ イ ン ラ イ ブ ラ リ に含まれ る VHDL エン テ ィ テ ィ ま たは Verilog モジ ュ ールのバ イ ン ド 順を指定す る には、 fuse -L オプシ ョ ン を使用 し ます。 注記 : -L で指定 し た ラ イ ブ ラ リ の検索順は、 Verilog モジ ュ ールを ほかの Verilog モジ ュ ール にバ イ ン ド す る 際に も 使用 さ れます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 45 第 3 章 : コ ンパイルおよびシ ミ ュ レーシ ョ ン 混合言語デザイ ン でのバイ ン ド と 検索 VHDL コ ン ポーネ ン ト ま たはVerilog モジ ュ ールを イ ン ス タ ン シエー ト す る と き 、 fuse コ マ ン ド では、 次が実行 さ れます。 • 最初に同 じ 言語のユニ ッ ト を イ ン ス タ ン シエー ト す る デザ イ ンユニ ッ ト と し て検索 し ます。 • 同 じ 言語のユニ ッ ト が存在 し ない場合は、 -lib オプシ ョ ンで指定 さ れた ラ イ ブ ラ リ で別の言 語のデザ イ ンユニ ッ ト が検索 さ れます。 ラ イ ブ ラ リ は、fuse の コ マン ド ラ イ ンに入力 し た順に検索 さ れます。詳細は、40 ページの 「Verilog 検索順」 を参照 し て く だ さ い。 注記 : ISE® Design Suite を使用す る 場合は、 ラ イ ブ ラ リ 検索順は自動的に指定 さ れ る ので、 ユー ザーが指定す る 必要はあ り ません。 混合言語 コ ンポーネ ン ト のイ ン ス タ ン シ エーシ ョ ン 混合言語デザ イ ン では、 VHDL デザ イ ン ユニ ッ ト に Verilog モジ ュ ール を、 Verilog デザ イ ン ユ ニ ッ ト に VHDL モジ ュ ールを イ ン ス タ ン シエー ト で き ます。 混合言語デザイ ン での境界お よびマ ッ プに関する注意事項 VHDL お よ び Verilog のデザ イ ン ユニ ッ ト /モジ ュ ールの境界では、 次の よ う な制限があ り ます。 • デザ イ ン ユニ ッ ト レベルが VHDL と Verilog の境界 と な り ます。 • VHDL デザ イ ンには、 1 つ以上の Verilog モジ ュ ールを イ ン ス タ ン シエー ト で き ます。 • VHDL デザ イ ンへの Verilog UDP の イ ン ス タ ン シエーシ ョ ンはサポー ト さ れてい ません。 • Verilog デザ イ ンには、VHDL エン テ ィ テ ィ に対応す る VHDL コ ン ポーネ ン ト のみ イ ン ス タ ン シエー ト 可能です。 • Verilog デザ イ ンへの VHDL コ ン フ ィ ギ ュ レーシ ョ ンの イ ン ス タ ン シエーシ ョ ンはサポー ト さ れてい ません。 VHDL デザイ ン ユニ ッ ト への Verilog モ ジ ュ ールのイ ン ス タ ン シ エーシ ョ ン 1. Verilog モジ ュ ール と 同じ 名前で VHDL コ ンポーネ ン ト を宣言 し ます (大文字 と 小文字を区別)。 例: 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); ポー ト タ イ プが正 し く 一致 し てい る かど う か確認する 方法については、47 ページの 「ポー ト のマ ッ プ」 を参照 し て く だ さ い。 46 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 混合言語シ ミ ュ レーシ ョ ン ポー ト のマ ッ プ 混合言語プ ロ ジ ェ ク ト で使用 さ れ る ポー ト マ ッ プには、 次の規則お よ び制限があ り ます。 サポー ト さ れる ポー ト タ イ プ 表 3-1 は、 サポー ト さ れ る ポー ト タ イ プを リ ス ト し てい ます。 表 3-1 : サポー ト さ れるポー ト タ イ プ VHDL 1 Verilog 2 IN INPUT OUT OUTPUT INOUT INOUT 1. バ ッ フ ァ ー ポー ト お よ び リ ン ケージ ポー ト はサポー ト さ れ ま せん。 2. Verilog では、 双方向パ ス ス イ ッ チへの接続はサポー ト さ れ ま せん。 混合デザ イ ン の境界では、 名前 のない Verilog ポー ト を使用す る こ と はで き ません。 表 3-2 に、混合言語デザ イ ンの境界のポー ト で使用可能な VHDL および Verilog データ型を示し ます。 表 3-2 : サポー ト さ れる VHDL および Verilog デー タ 型 VHDL ポー ト Verilog ポー ト bit ネッ ト std_ulogic ネッ ト std_logic ネッ ト bit_vector ベク ター ネ ッ ト std_ulogic_vector ベク ター ネ ッ ト std_logic_vector ベク ター ネ ッ ト 注記 : Verilog の出力ポー ト では、 reg 型がサポー ト さ れます。境界では、 reg ポー ト は出力ネ ッ ト ( ワ イ ヤ) ポー ト と し て扱われます。 注記 : 混合言語デザ イ ンの境界でその他のデー タ 型を使用する と 、 エ ラ ーが発生 し ます。 ジ ェ ネ リ ッ ク (パラ メ ー タ ー ) のマ ッ プ ISim でサポー ト さ れ る VHDL ジ ェ ネ リ ッ ク と それに対応す る Verilog パ ラ メ ー タ ーは次の と お り です。 • 整数 • 実数 • 文字列 • ブール代数 注記 : 混合言語デザ イ ンの境界でその他のジ ェ ネ リ ッ ク 型を使用する と 、 エ ラ ーが発生 し ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 47 第 3 章 : コ ンパイルおよびシ ミ ュ レーシ ョ ン VHDL/Verilog の値のマ ッ プ 表 3-3 は std_logic お よび bit にマ ッ プ さ れ る Verilog ス テー ト を リ ス ト し てい ます。 表 3-3 : std_logic および bit にマ ッ プ さ れる Verilog ステー ト Verilog std_logic bit Z Z 0 0 0 0 1 1 1 X X 0 注記 : Verilog の strength は無視 さ れます。 VHDL には、 strength に対応す る も のはあ り ません。 表 3-4 は、 Verilog ス テー ト にマ ッ プ さ れ る VHDL 型の bit を リ ス ト し てい ます。 表 3-4 : Verilog ス テー ト にマ ッ プ さ れる VHDL の bit bit Verilog 0 0 1 1 表 3-5 は、 Verilog ス テー ト にマ ッ プ さ れ る VHDL 型の std_logic を リ ス ト し てい ます。 表 3-5 : Verilog ス テー ト にマ ッ プ さ れる VHDL の std_logic std_logic Verilog U X X X 0 0 1 1 Z Z W X L 0 H 1 - X Verilog では大文字 と 小文字が区別 さ れ る ので、 コ ン ポーネ ン ト 宣言で使用す る 名前の関連付けお よ び ロ ーカル ポー ト 名は対応す る Verilog ポー ト 名 と 大文字/小文字 も 一致 さ せ る 必要があ り ます。 Verilog デザイ ン ユニ ッ ト への VHDL モ ジ ュ ールのイ ン ス タ ン シ エーシ ョ ン Verilog デザ イ ン ユニ ッ ト に VHDL モジ ュ ールを イ ン ス タ ン シエー ト す る には、 VHDL エン テ ィ テ ィ を Verilog モジ ュ ールの よ う に イ ン ス タ ン シエー ト し ます。 48 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 タ イ ミ ン グ シ ミ ュ レーシ ョ ン (ゲー ト レ ベル シ ミ ュ レーシ ョ ン ) 例: module testbench ; wire in, clk; wire out; FD FD1( .Q(Q_OUT), .C(CLK); .D(A); ); タ イ ミ ング シ ミ ュ レーシ ョ ン (ゲー ト レ ベル シ ミ ュ レーシ ョ ン ) タ イ ミ ン グ シ ミ ュ レーシ ョ ン を開始す る には、 タ イ ミ ン グ シ ミ ュ レーシ ョ ン モデル と バ ッ ク ア ノ テーシ ョ ン用の標準遅延フ ォーマ ッ ト (SDF) フ ァ イ ルが必要です。 まず、 NetGen を使用 し て こ れ ら の フ ァ イ ルを生成 し て く だ さ い。 詳細は、 『合成/ シ ミ ュ レーシ ョ ン デザ イ ン ガ イ ド 』 (UG626) の 「ゲー ト レベル ネ ッ ト リ ス ト の生成 (NetGen の実行)」 を参照 し て く だ さ い。 こ の文書への リ ン ク は、 付録 D 「その他の リ ソ ース」 に含まれます。 コ マ ン ド ラ イ ンか ら の Verilog デザイ ンの タ イ ミ ング シ ミ ュ レ ーシ ョ ン Verilog デザ イ ンの タ イ ミ ン グ シ ミ ュ レーシ ョ ンでは、 次の規則に従 う 必要があ り ます。 • $XILINX/verilog/src/glbl.v を work ラ イ ブ ラ リ に コ ンパ イ ル し ます。 • fuse コ マン ド で work.glbl を <library_name>.<top_name> の 1 つ と し て指定し ます。 • fuse コ マン ド で -L <simprims_ver> を指定 し ます。 ISim の EXE コ マ ン ド 注記 : コ マ ン ド は、 大文字/小文字が区別 さ れます。 次のセ ク シ ョ ン では、 ISim の実行、 コ ンパ イ ル、 エ ラ ボ レ ーシ ョ ン コ マ ン ド の概要 と その コ マ ン ド 構文 と オプシ ョ ンについて説明 し ます。 ISim の EXE フ ァ イ ルはユーザーが定義で き ます。 こ の フ ァ イ ルを コ マン ド ラ イ ンで実行す る と 、 シ ミ ュ レーシ ョ ン が起動 し ます。 実行フ ァ イ ル名は fuse コ マ ン ド に -o オプシ ョ ン を付けて指定 し ます。 ユーザーが定義 し ない場合、 デフ ォ ル ト の実行フ ァ イ ル名は x.exe にな り ます。 ISim の EXE 構文 次に、 こ の コ マ ン ド の構文を示 し ます。 <executable_name>.exe <options> 説明 : • <executable_name>.exe はユーザーが定義す る 実行フ ァ イ ル名で、 デフ ォ ル ト では x.exe です。 • <options> には 表 3-6 で定義 さ れ る オプシ ョ ンが指定で き ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 49 第 3 章 : コ ンパイルおよびシ ミ ュ レーシ ョ ン ISim の EXE コ マ ン ド のオプ シ ョ ン 表 3-6 は、 ISim の EXE コ マ ン ド で実行可能なオプシ ョ ン を リ ス ト し てい ます。 表 3-6 : ISim コ マ ン ド オプ シ ョ ン オプ シ ョ ン 説明 -f <cmd_file> コ マン ド オプシ ョ ン を テキ ス ト フ ァ イ ルに保存 し 、 今後使用で き る よ う に し ます。 <cmd_file> で指定し た フ ァ イ ルに保存 さ れたオプシ ョ ンが読み出 さ れて実行 さ れます。 -gui ISim を GUI モー ド で起動 し ます。 -h すべての コ マ ン ド ラ イ ン オプシ ョ ン と その使用法を表示 し ます。 -intstyle メ ッ セージの表示方法を指定 し ます。 [ise | xflow | silent|default] • ise : メ ッ セージが ISE の ロ グ ウ ィ ン ド ウ に表示 さ れます。 • xflow : XFLOW の メ ッ セージが表示 さ れます。 • silent : メ ッ セージは表示 さ れません。 • default : デフ ォ ル ト の メ ッ セージ設定にな り ます。 -log <file_name> <file_name> で指定 し た名前の ロ グ フ ァ イ ルが生成 さ れます。 -maxdeltaid <number> デル タ の最大値を整数で指定 し ます。 -nolog ロ グ フ ァ イ ルを生成 し ません。 -sdfnowarn SDF の警告 メ ッ セージ を表示 し ません。 -sdfnoerror SDF フ ァ イ ルで検出 さ れ る エ ラ ーを警告 と し て処理 し ます。 [-sdfmin|-sdftyp| -sdfmax] <root=file> ] ISim で使用す る 遅延の タ イ プ を指定 し ます。 • -sdfmin : <root> で <file> が最小の遅延でア ノ テー ト さ れ ます。 • -sdftyp : <root> で <file> が標準遅延でア ノ テー ト さ れます。 • -sdfmax : <root> で <file> が最大の遅延でア ノ テー ト さ れ ます。 -sdfroot <root_path> デザ イ ン階層で SDF のア ノ テーシ ョ ンが適用 さ れ る デフ ォ ル ト の位置を設定 し ます。 -tclbatch <file_name> シ ミ ュ レーシ ョ ン開始後に実行す る Tcl ス ク リ プ ト フ ァ イ ルを指定 し ます。 <file_name> では、 Tcl コ マン ド を含むフ ァ イ ル名を指定 し ます。 <file_name> の Tcl コ マ ン ド を実行後にシ ミ ュ レーシ ョ ン を終了する 場合は、 <file_name> の最後の コ マ ン ド に quit を指定 し てお く 必要があ り ます。 50 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim の EXE コ マ ン ド 表 3-6 : ISim コ マ ン ド オプ シ ョ ン (続き ) オプ シ ョ ン 説明 シ ミ ュ レー タ で こ の コ マ ン ド ラ イ ンの引数文字列 と Verilog デザ イ ン フ ァ イ ルの $test$plusarg ま たは $value$plusarg シ ス テ ム関数が一致する と 、こ のシ ス テ ム関 数に関連 し たテ ス ト ま たはデザ イ ン動作の変更が実行 さ れます。 <string> には文字列 を入力ます。 -testplusarg <string|string_value> た と えば、-testplusarg HELLO の場合、Verilog フ ァ イ ルで $test$plusargs("HE") が使用 さ れ る 場合、 true が返 さ れます。 <string_value> には Verilog フ ォーマ ッ ト 指示子の適切な文字列を入力 し ます。 こ の 文字列は、 $value$plusargs シ ス テ ム関数呼び出 し に含まれ る 変数に対す る 値を供給 し ます。 た と えば、 -testplusarg FINISH=10000 の場合、 Verilog フ ァ イ ルで $value$plusargs("FINISH=%d", stop_clock) が使用 さ れ、 Verilog の フ ォーマ ッ ト 指示子 %d が 10000 と 一致す る 場合は、stop_clock で値 10000 が取得 さ れ、関数で true が戻 さ れます。 Verilog フ ァ イ ルで指定 さ れてい る 動作を実行す る には、 同 じ 文字列 ま たは文字列 と 値を こ の コ マ ン ド ラ イ ンオプシ ョ ンお よ びシ ス テ ム関数の両方で設定す る 必要があ り ます。 -transport_int_delays イ ン タ ー コ ネ ク ト 遅延用の転送モデルを使用 し ます。 イ ン タ ー コ ネ ク ト 遅延でパルス破棄 はあ り ません。 -vcdfile <vcd_file> Verilog 専用のオプシ ョ ンです。Verilog プ ロ ジ ェ ク ト の VCD 出力フ ァ イ ルを指定 し ます。 デフ ォル ト 名は dump.vcd です。 -vcdunit <unit> Verilog 専用のオプシ ョ ンです。 VCD 出力フ ァ イ ルの時間の単位を指定 し ます。 使用可能 な値は、 fs、 ps、 ns、 us、 ms、 sec のいずれかです。 デフ ォ ル ト では ps です。 -view <waveform_file>.wcfg -gui オプシ ョ ン と 組み合わせて使用 し て、ISim のグ ラ フ ィ カル ユーザー イ ン タ ーフ ェ イ ス で特定の波形フ ァ イ ルを開 き ます。 -wdb <waveform_file>.wbd シ ミ ュ レーシ ョ ン デー タ を指定 し た WBD フ ァ イ ルに保存 し ます。 た と えば、 x.exe –wdb my.wdb を実行す る と 、 シ ミ ュ レーシ ョ ン デー タ がデフ ォ ル ト の isimgui.wdb の代わ り に my.wdb に保存 さ れます。 ISim の EXE コ マ ン ド の例 <executable_name>.exe -tclbatch <tcl_file_name> -sdfmin <instance>=<sdf_file_name> 説明 : • <executable_name>.exe : fuse -o オプシ ョ ン を使用 し て指定 し ない限 り x.exe が使 用 さ れます。 • -tclbatch : 別の Tcl コ マ ン ド を実行す る際に使用す る オプシ ョ ン です (必須ではあ り ません )。 • -sdfmin : 使用す る 遅延 タ イ プ (最小) を指定 し ます。 • <instance> : SDF (Standard Delay Format) バ ッ ク ア ノ テーシ ョ ン を実行す る イ ン ス タ ン ス の階層パ ス名を指定 し ます。 • <sdf file name> : ア ノ テー ト す る SDF フ ァ イ ル名を指定 し ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 51 第 3 章 : コ ンパイルおよびシ ミ ュ レーシ ョ ン fuse、 vhpcomp、 vlogcomp コ マ ン ド オプ シ ョ ン 表 3-7 は、 fuse、 vhpcomp、 お よ び vlogcomp コ マン ド のオプシ ョ ン を リ ス ト し てい ます。 表 3-7 : fuse、 vhpcomp、 vlogcomp コ マ ン ド オプ シ ョ ン オプ シ ョ ン -d <macro_definition>=<value>=<value> 説明 Verilog 専用のオプシ ョ ンです。Verilog フ ァ イ ルで使用 さ れ る マ ク ロ お よ び必要な値を指定 し ます。 -d オプシ ョ ンは複数指定で き ます。 注記 : 等号 (=) と 値の間に スペース を入れない よ う に し ます。スペース を入れ る と 、 値の一部 と 認識 さ れ ます。 スペー ス を含むパ ス はダブル ク ォーテーシ ョ ン (" ") で囲みます。 -f <cmd_file> コ マン ド オプシ ョ ン を テ キ ス ト フ ァ イ ルに保存 し 、 今後使用で き る よ う に し ます。 <cmd_file> で指定 し た フ ァ イ ルに保存 さ れたオプシ ョ ンが読み出 さ れて実行 さ れます。 -generic_top "<parameter>=<value>" 最上位デザ イ ン ユニ ッ ト のジ ェ ネ リ ッ ク ま たはパ ラ メ ー タ ーを特定な 値で上書 き し ます。 た と えば 「-generic_top “P=10”」 と 入力 し た 場合、 生成前に最上位のパ ラ メ ー タ ー P に値 10 が適用 さ れます。 -gui ISim を GUI モー ド で起動 し ます。 -h すべての コ マン ド ラ イ ン オプシ ョ ン と その使用法を表示 し ます。 -hil_zynq_ps Zynq Processor System (PS) Hardware In Loop (HIL) シ ミ ュ レーシ ョ ン を イ ネーブルに し ます。 -hwcosim_board <arg> こ のハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン (HWCoSim) ではボー ド 名 を指定 し ます。 -hwcosim_clock <arg> HWCoSim イ ン ス タ ン ス の ク ロ ッ ク ポー ト を指定 し ます。 -hwcosim_instance <arg> HWCoSim オプシ ョ ンで、 FPGA で実行 さ れ る イ ン ス タ ン ス の階層名 を指定 し ます。 例 : /testbench/UUT -hwcosim_no_combinatorial_path HWCoSim オプシ ョ ンで、 FPGA で実行 さ れ る デザ イ ンに入力か ら 出 力 ま での純粋な組み合わせパ ス が含 ま れない場合に、 シ ミ ュ レ ーシ ョ ンの速度を上げます。 -hwcosim_incremental <arg> HWCoSim のオプシ ョ ン で、 イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス を ス キ ッ プ し て、 以前に作成 し た BIT フ ァ イ ルを再利用 し ます。 使用で き る 値は、 00 (デフ ォ ル ト ) と 1 です。 -i “<include_path>“ Verilog でのみ使用で き ます。 fuse で vlogcomp が呼び出 さ れた場合、 Verilog の 'include で指定 さ れてい る パ ス を使用 し ます。 1 つの 'include パ ス につ き 1 つの -i を使用で き ます。 -i は、 複数指 定で き ま す。 こ の場合、 パ ス を ク ォ ーテーシ ョ ン で囲み、 パ ス 間に ス ペース を入力 し ます。 -incremental 52 最後の コ ンパ イ ルか ら 変更 さ れた フ ァ イ ルのみを コ ンパ イ ル し ます。 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim の EXE コ マ ン ド 表 3-7 : fuse、 vhpcomp、 vlogcomp コ マ ン ド オプ シ ョ ン (続き ) オプ シ ョ ン 説明 -initfile <sim_init_file> デフ ォ ル ト の xilinxsim.ini フ ァ イ ルで提供 さ れ る 論理 ロ ケーシ ョ ン か ら 物理 ロ ケーシ ョ ンへのマ ッ プに追加 ま たは上書 き す る ための ラ イ ブ ラ リ のユーザー定義の シ ミ ュ レ ー タ 初期化 フ ァ イ ル を 指定 し ま す。 -intstyle [ise | xflow | silent |default] メ ッ セージの表示方法を指定 し ます。 • ise : メ ッ セージが ISE の ロ グ ウ ィ ン ド ウ に表示 さ れます。 • xflow : XFLOW の メ ッ セージが表示 さ れます。 • silent : メ ッ セージは表示 さ れません。 • default : デフ ォル ト の メ ッ セージ設定にな り ます。 -ise <file> ザ イ リ ン ク ス ISE フ ァ イ ルを指定 し ます。 [-L|-lib <search_lib>[=<lib_path>]] ほかの ラ イ ブ ラ リ を指定 し 、 さ ら にオプシ ョ ン でそれ ら の ラ イ ブ ラ リ の物理パ ス を指定 し ます。 リ ソ ース ラ イ ブ ラ リ と し て処理 さ れ る -L オプシ ョ ンは複数回使用で き ま す。 こ のオプ シ ョ ン で物理パ ス を 指定す る と 、 xilinxsim.ini フ ァ イ ルで指定 さ れてい る マ ッ プが無視 さ れます。 <search_lib> は 指定の ラ イ ブ ラ リ の論理名、 <lib_path> は物理 ラ イ ブ ラ リ へのパ ス を指定 し ます。 注記 : 等号 (=) と 値の間に スペース を入れない よ う に し ます。スペース を入れ る と 、 値の一部 と 認識 さ れ ます。 スペー ス を含むパ ス はダブル ク ォーテーシ ョ ン (" ") で囲みます。 -log <file_name> <file_name> で指定 し た名前の ロ グ フ ァ イ ルが生成 さ れます。 -maxdeltaid <number> デル タ の最大値を整数で指定 し ます。 -maxdelay Verilog 専用のオプシ ョ ン です。 fuse で vlogcomp が呼び出 さ れた場 合、 最大遅延を使用 し ます。 -maxdesigndepth <depth> fuse エ ラ ボ レー タ ーで許容 さ れ る デザ イ ンの最大幅を上書 き し ます。 最大幅を超え る と 、fuse エ ラ ボ レー ターでエ ラ ーが発生 し ます。fuse でデザ イ ン に無限に反復 さ れ る イ ン ス タ ン シエーシ ョ ン が あ る と 誤っ て判断 さ れ る よ う な場合は、 こ のオプシ ョ ン を使用 し て幅を増やす こ と がで き ます。 -mindelay Verilog 専用のオプシ ョ ン です。 vlogcomp が呼び出 さ れた場合、 最小 遅延を使用 し ます。 -mt <value> 平行 し て実行す る サブ コ ンパ イ ル ジ ョ ブ数を指定 し ます。on、off、 ま たは 2 以上の整数を指定で き ます。 デフ ォ ル ト では on が設定 さ れてお り 、 コ ンパ イ ラ に よ り シ ス テ ムの コ ア数に基づいて自動的に値が選択 さ れます。 コ ー ド のデバ ッ グ情報を含ま ない出力を生成 し ます。 出力にデ バ ッ グ情報を含ま ない よ う にす る と 、 シ ミ ュ レ ーシ ョ ン が高速にな り ます。 デフ ォ ル ト では、 HDL デバ ッ グ ユニ ッ ト が生成 さ れます。 -nodebug HDL -nolog ロ グ フ ァ イ ルを生成 し ません。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 53 第 3 章 : コ ンパイルおよびシ ミ ュ レーシ ョ ン 表 3-7 : fuse、 vhpcomp、 vlogcomp コ マ ン ド オプ シ ョ ン (続き ) オプ シ ョ ン -nospecify 説明 Verilog 専用のオプシ ョ ン です。 ブ ロ ッ ク 指定機能をデ ィ ス エーブルに し ます。 -notimingchecks Verilog 専用のオプシ ョ ン です。タ イ ミ ン グ チ ェ ッ ク をデ ィ ス エーブル に し ます。 -o <sim_exe> -override_timeprecision シ ミ ュ レーシ ョ ン実行出力フ ァ イ ルの名前を指定 し ます。<sim_exe> はフ ァ イ ル名です。 こ のオプシ ョ ン を使用 し ない場合、デフ ォ ル ト の実 行 フ ァ イ ル名は次の と お り です。 <work_library>/<mod_name>/ <platform>/x.exe • <work_library> : 作業 ラ イ ブ ラ リ • <module_name> : 最初に指定 さ れ る 最上位モジ ュ ール • <platform> : オペレーテ ィ ン グ シ ス テ ム Verilog 専用のオプシ ョ ン です。-timescale オプシ ョ ンで指定 さ れて い る 時間精度を使用 し てデザ イ ンに含まれ る Verilog モジ ュ ールの時 間精度を上書 き し ます。 -override_timeunit -timescale オプシ ョ ンで指定 さ れてい る 時間単位を使用 し てデザ イ ンに含まれ る すべての Verilog モジ ュ ールの時間単位 (遅延計測単位) を上書 き し ます。 -prj <prj_file>.prj 入力 と し て使用す る プ ロ ジ ェ ク ト フ ァ イ ルを指定 し ます。 プ ロ ジ ェ ク ト フ ァ イ ルは、 デザ イ ンに関連す る すべての フ ァ イ ルを リ ス ト し た も のです。こ の フ ァ イ ルは、ISE ツールに よ り 使用 さ れ る 主要 ソ ース フ ァ イ ルです。 <prj_file> の フ ァ イ ル拡張子は .prj であ る 必要があ り ます。 -rangecheck VHDL 専用のオプシ ョ ン です。 VHDL での割 り 当てに値範囲チ ェ ッ ク を実行 し ます。 こ のオプシ ョ ンは配列の イ ンデ ッ ク ス範囲チ ェ ッ ク には 影響 し ません。 ISim では、 配列の イ ンデ ッ ク ス が許容範囲にあ る こ と が 常にチ ェ ッ ク さ れます。 例: • 信号が正 と 宣言 さ れてい る 場合は、 fuse で信号が負の値に割 り 当 て ら れていないか ど う かがチ ェ ッ ク さ れ、 • std_logic と 宣言 さ れてい る 場合は、 信号に有効な std_logic 値 (U、 X、 0、 1、 Z、 W、 L、 H、 -) のみが割 り 当て ら れてい る か ど う かがチ ェ ッ ク さ れます。 注記 : こ のオプシ ョ ンは、 イ ンデ ッ ク ス範囲のチ ェ ッ ク には関係あ り ま せん。 シ ミ ュ レー タ では、 常に イ ンデ ッ ク ス の範囲がチ ェ ッ ク ボ ッ ク ス さ れます。 デフ ォ ル ト では -rangecheck はオフ です。 -sdfnoerror SDF フ ァ イ ルで検出 さ れ る エ ラ ーを警告 と し て処理 し ます。 -sdfnowarn SDF の警告 メ ッ セージ を表示 し ません。 54 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim の EXE コ マ ン ド 表 3-7 : fuse、 vhpcomp、 vlogcomp コ マ ン ド オプ シ ョ ン (続き ) オプ シ ョ ン [-sdfmin]|[-sdftyp][-sdfmax] <root=file> -sdfroot <root_path> 説明 使用す る 遅延の タ イ プ を指定 し ます。 • -sdfmin : <root> で <file> が最小遅延でア ノ テー ト さ れ ます。 • -sdftyp : <root> で <file> が標準遅延でア ノ テー ト さ れ ます。 • -sdfmax : <root> で <file> が最大遅延でア ノ テー ト さ れ ます。 SDF ア ノ テーシ ョ ン を適用す る デザ イ ン階層のデフ ォ ル ト デ ィ レ ク ト リ を設定 し ます。 -sourcelibdir <directory_name> ラ イ ブ ラ リ モジ ュ ールの ソ ース デ ィ レ ク ト リ を指定 し ます。 -sourcelibext <file_extension> モジ ュ ールの ソ ース フ ァ イ ルの拡張子を指定 し ます。–sourcelibdir オプシ ョ ンでは こ れ ら の フ ァ イ ルのデ ィ レ ク ト リ を指定 し ます。 -sourcelibfile <file_name> ラ イ ブ ラ リ モジ ュ ールの フ ァ イ ル名を指定 し ます。 -timeprecision_vhdl <time_precision> VHDL 専用のオプシ ョ ンです。 すべての VHDL デザ イ ン ユニ ッ ト に 対す る 時間精度を指定 し ます。 time_precision には、 数値 (1|10|100|...) に続けて単位 (fs|ps|ns|us|ms|s) を入力 し ます。 デフ ォ ル ト は 1ps です。 -timescale <time_unit/ time_precision> Verilog 専用のオプシ ョ ンです。 効率の よ い タ イ ム ス ケールがない Verilog モジ ュ ールに対し てデフ ォル ト の タ イ ム ス ケールを指定し ます。 • <time_unit> では遅延計測単位を指定 し ます。 • <time_precision> では精度の単位を指定 し ます。 <time_unit> お よ び <time_precision> には、 数値 (1|10|100|...) に続けて単位 (fs|ps|ns|us|ms|s) を入力 し ます。 デフ ォ ル ト は 1ns/1ps です。 -typdelay Verilog 専用のオプシ ョ ン です。 vlogcomp が呼び出 さ れた場合、 標準 遅延を使用 し ます。 -timeprecision_vhdl <time_precision> VHDL 専用のオプシ ョ ン です。 すべての VHDL デザ イ ン ユニ ッ ト に 対す る 時間精度を指定 し ます。 time_precision には、 数値 (1|10|100|...) に続けて単位 (fs|ps|ns|us|ms|s) を入力 し ます。デ フ ォ ル ト は 1ps です。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 55 第 3 章 : コ ンパイルおよびシ ミ ュ レーシ ョ ン 表 3-7 : fuse、 vhpcomp、 vlogcomp コ マ ン ド オプ シ ョ ン (続き ) オプ シ ョ ン 説明 メ ッ セージの表示レベルを指定 し ます。 使用で き る 値は 0、 1、 ま たは 2 です。 デフ ォ ル ト は 0 です。 例 : -v [-verbose] <value> fuse -v 1 では便利なデバ ッ グ情報が表示 さ れ、 ISim コ ンパ イ ラ で 発生す る 問題の検出に役立ち ます。 詳細レベルは 1 です。 • 使用可能な ラ イ ブ ラ リ マ ッ プ フ ァ イ ル (xilinxsim.ini) すべて を読み込んだ後に ISim コ ンパ イ ラ で見 ら れ る ラ イ ブ ラ リ マ ッ プ を 表示 し ます。 • デザ イ ン エ ラ ボ レー タ ーか ら 詳細な メ ッ セージ を取得 し ます。 • コ ンパ イ ラ の動作に影響す る 環境変数の現在の値を取得 し ます。 • コ ンパ イ ラ で共有 さ れ る オブジ ェ ク ト の リ ス ト を取得 し ます。 • バージ ョ ン番号お よ びプ ロ セ ッ サな ど のオペレーテ ィ ン グ シ ス テ ム情報を表示 し ます。 • 生成 コ ー ド を コ ンパ イ ルす る のに使用す る GCC コ ンパ イ ラ のパ ス を表示 し ます。 <verilog_files>... コ ンパ イ ルす る Verilog ソ ース フ ァ イ ルを指定 し ます。 <vhdl_files>... コ ンパ イ ルす る VHDL ソ ース フ ァ イ ルを指定 し ます。 -version コ ンパ イ ラ のバージ ョ ン を表示 し ます。 -wdb <waveform_file>.wbd シ ミ ュ レーシ ョ ン データ を指定し た WBD フ ァ イ ルに保存し ます。 た と えば、x.exe –wdb my.wdb を実行する と 、シ ミ ュ レーシ ョ ン デー タ がデフ ォル ト の isimgui.wdb の代わ り に my.wdb に保存 さ れます。 -work [<work_library>[=<library_path>] ] <filenames>... work ラ イ ブ ラ リ を指定 し 、さ ら にオプシ ョ ンで作業 ラ イ ブ ラ リ の物理パ ス を指定 し ます。 こ のオプシ ョ ンで物理パス を指定する と 、 xilinxsim.ini フ ァ イ ルで指定 さ れてい る マ ッ プが無視 さ れます。 デフ ォ ル ト の作業 ラ イ ブ ラ リ は、 論理 ラ イ ブ ラ リ \work です。 <work_library> は指定の作業 ラ イ ブ ラ リ の論理名、 <library_path> は物理 ラ イ ブ ラ リ へのパ ス を指定 し ます。 例 : mywork=C:/home/worklib. 注記 : 等号 (=) と 値の間に スペース を入れない よ う に し ます。 スペース を 入れ る と 、 値の一部 と 認識 さ れ ま す。 ス ペー ス を 含むパ ス はダ ブル ク ォーテーシ ョ ン (" ") で囲みます。 シ ミ ュ レーシ ョ ンの一時停止 シ ミ ュ レ ーシ ョ ン を任意の時間実行 し てい る 間、 [Break] コ マ ン ド を使用 し てシ ミ ュ レーシ ョ ン を 一時停止 し 、 シ ミ ュ レーシ ョ ン セ ッ シ ョ ン を開いた ま ま にで き ます。 シ ミ ュ レーシ ョ ン を一時停止す る には、 次の手順のいずれかを実行 し ます 56 • [Simulation] → [Break] を ク リ ッ ク し ます。 • [Break] ボ タ ン を ク リ ッ ク し ます。 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 シ ミ ュ レーシ ョ ン結果の保存 • コ マ ン ド プ ロ ンプ ト で Ctrl + C キーを入力 し ます。 シ ミ ュ レーシ ョ ンが次の HDL 実行行で停止 し ます。 シ ミ ュ レーシ ョ ンが停止 し た行は、 テ キ ス ト エデ ィ タ ーに表示 さ れます。 注記 : こ の動作は、 -nodebug オプシ ョ ン を使用 し て コ ンパ イ ル さ れていないデザ イ ン で発生 し ま す。 シ ミ ュ レーシ ョ ンは、 [Run All]、 [Run]、 [Run for the time specified on the toolbar] ( ツールバーの み)、 [Step] コ マ ン ド を使用す る と いつで も 再開で き ます。 詳細は、 77 ページの 「シ ミ ュ レ ーシ ョ ンの 1 行ずつの実行」 を参照 し て く だ さ い。 シ ミ ュ レーシ ョ ン結果の保存 オブジ ェ ク ト (VHDL 信号ま たは Verilog レ ジ ス タ / ワ イ ヤ) のシ ミ ュ レーシ ョ ン結果は、 作業デ ィ レ ク ト リ に含まれてい る 波形デー タ ベース (WDB) フ ァ イ ル (<filename>.wdb) に保存 さ れます。波 形ウ ィ ン ド ウ にオブジ ェ ク ト を追加 し てシ ミ ュ レーシ ョ ン を実行 し た場合は、 完全デザ イ ンのデザ イ ン階層お よ び追加 さ れたオブジ ェ ク ト の遷移が自動的に WDB フ ァ イ ルに保存 さ れ ま す。 信号 順、命名ス タ イ ル、基数お よ び色な ど、波形 コ ン フ ィ ギ ュ レーシ ョ ン設定 も 任意で波形 コ ン フ ィ ギ ュ レーシ ョ ン (WCFG) に保存 さ れます。 詳細は、 第 4 章 「波形の解析」 を参照 し て く だ さ い。 WDB フ ァ イルへのデー タ ベースの保存 ISim の起動 さ れ る 方法に よ っ て、 WBD フ ァ イ ルの名前の付け方は異な り ます。 • ISE ツールま たは PlanAhead ツールか ら 起動す る と 、 WBD フ ァ イ ルの名前は Properties] ダ イ ア ロ グ ボ ッ ク ス で指定 さ れてい る 名前に基づいて付け ら れます。 • コ マ ン ド ラ イ ンか ら 起動す る 場合は、 -wdb オプシ ョ ンで フ ァ イ ル名を指定 し ます。 シ ミ ュ レーシ ョ ンが実行 さ れ る と 、 オブジ ェ ク ト (VHDL 信号、 Verilog レ ジ ス タ / ワ イ ヤ ) の結果が自 動的に WDB に保存 さ れます。 別のシ ミ ュ レーシ ョ ンが現在のシ ミ ュ レーシ ョ ン と し て同 じ 作 業デ ィ レ ク ト リ の同 じ デザ イ ンで実行 さ れ る 場合、 こ の新 し いシ ミ ュ レーシ ョ ンの WDB フ ァ イ ル名は、 最初のシ ミ ュ レーシ ョ ン名に整数が付け ら れた名前にな り ます。 つま り 、 最初のシ ミ ュ レーシ ョ ンは上書 き さ れ ません。 た と えば、 WBD フ ァ イ ルが isim.wdb と い う 名前の場 合、 後続のシ ミ ュ レーシ ョ ン結果は isim1.wdb、 isim2.wdb と い っ た WDB フ ァ イ ルに書 き込まれます。 [ISim 注記 : デー タ ベース フ ァ イ ルの名前は、 シ ミ ュ レーシ ョ ン実行中は変更で き ません。 WCFG フ ァ イルへの波形 コ ン フ ィ ギ ュ レーシ ョ ンの保存 波形 コ ン フ ィ ギ ュ レ ーシ ョ ン (WCFG) フ ァ イ ルを保存す る と 、 フ ァ イ ルに自動的に関連す る 波形 デー タ ベース (WDB) フ ァ イ ルへの リ フ ァ レ ン ス が追加 さ れます。 1 つの WDB フ ァ イ ルに複数の WCFG フ ァ イ ルを持たせる こ と がで き ます。 WCFG フ ァ イ ルには、 シ ミ ュ レーシ ョ ン オブジ ェ ク ト の順番お よ びそのプ ロ パテ ィ 、 波形ウ ィ ン ド ウ に表示 さ れてい る 仕切 り 、 マーカーな ど の追加 さ れた波形オブジ ェ ク ト が保存 さ れます。 詳細 は、 第 4 章の 「波形 コ ン フ ィ ギ ュ レーシ ョ ン での作業」 を参照 し て く だ さ い。 WCFG フ ァ イ ルを保存す る には [File] → [Save] を ク リ ッ ク し て .wcfg フ ァ イ ルの フ ァ イ ル名を指 定 し ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 57 第 3 章 : コ ンパイルおよびシ ミ ュ レーシ ョ ン シ ミ ュ レーシ ョ ンの終了 シ ミ ュ レーシ ョ ンは、 次のいずれかの コ マン ド で終了で き ます。 58 • [File] → [Exit] を ク リ ッ ク し ます。 • [Console] パネルのプ ロ ンプ ト に 「quit -f 」 と 入力 し ます。 • メ イ ン ウ ィ ン ド ウ の右上端の X (閉 じ る ボ タ ン ) を ク リ ッ ク し ます。 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 波形 コ ン フ ィ ギ ュ レーシ ョ ン での作業 第4章 波形の解析 波形解析を始め る 前に、 次のいずれかの方法で ISim の GUI を開いてお く 必要があ り ます。 • 読み出 し 専用モー ド で前のシ ミ ュ レーシ ョ ンか ら デー タ を表示ま たは解析す る 場合は、74 ペー ジの 「 ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン を開 く 」 を参照 し て く だ さ い。 • ISE® ま たは PlanAhead™ か ら 起動す る と 、 最上位信号を含む波形 コ ン フ ィ ギ ュ レーシ ョ ンが 表示 さ れます。 こ の後、 信号を追加 し た り 、 シ ミ ュ レーシ ョ ン を実行で き ます。 詳細は、 第 3 章の 「シ ミ ュ レーシ ョ ンの実行」 を参照 し て く だ さ い。 • コ マ ン ド ラ イ ンか ら 起動する 場合は、 -gui オプシ ョ ン を付けてシ ミ ュ レーシ ョ ン実行フ ァ イ ルを実行 し ます。 こ の場合は、 空の波形 コ ン フ ィ ギ ュ レーシ ョ ンが表示 さ れますので、 シ ミ ュ レーシ ョ ン を実行す る 前に波形 コ ン フ ィ ギ ュ レーシ ョ ンに信号を追加す る 必要があ り ます。 詳 細は、 第 3 章の 「シ ミ ュ レーシ ョ ンの実行」 を参照 し て く だ さ い。 デザ イ ン デー タ は、 [Objects] パネルや [Instances and Processes] パネルな ど の GUI のほかのエ リ アに表示 さ れます。 波形コ ン フ ィ ギ ュ レーシ ョ ン での作業 波形 コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルに信号お よ びバ ス を追加 し 、 その コ ン フ ィ ギ ュ レーシ ョ ン を WDB フ ァ イ ルに保存で き ます。 詳細は、 第 5 章の 「波形 コ ン フ ィ ギ ュ レーシ ョ ンお よ び波形デー タ ベース を開 く 」 を参照 し て く だ さ い。 波形 コ ン フ ィ ギ ュ レーシ ョ ンへの信号の追加 GUI の メ ニ ュ ー コ マ ン ド ま たは ド ラ ッ グ ア ン ド ド ロ ッ プ手法を使用する か、ま たは [Console] パネ ルで Tcl ( ツール コ マン ド 言語) コ マン ド を入力す る と 、 波形ウ ィ ン ド ウ にデザ イ ンの信号を表示で き ます。 注記 : 波形 コ ン フ ィ ギ ュ レーシ ョ ンの作成や信号の追加な ど の波形 コ ン フ ィ ギ ュ レーシ ョ ンへの変 更は、 WCFG フ ァ イ ルを保存す る ま では一時的に変更 さ れてい る 状態です。 詳細は、 「シ ミ ュ レー シ ョ ン結果の保存」 を参照 し て く だ さ い。 GUI か ら の信号の追加 1. [Instances and Processes] パネルでデザ イ ン階層を展開 し て ア イ テ ム を選択 し ます。 選択 し た イ ン ス タ ン ス ま たはプ ロ セ ス に対応す る オブジ ェ ク ト が [Objects] パネルに表示 さ れ ます。 2. [Objects] パネルでオブジ ェ ク ト を選択 し ます。 3. 次のいずれかの方法を使用 し てオブジ ェ ク ト を波形 コ ン フ ィ ギ ュ レーシ ョ ンに追加 し ます。 • ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 右 ク リ ッ ク し て [Add to Wave Window] を ク リ ッ ク し ます。 japan.xilinx.com 59 第 4 章 : 波形の解析 • [Objects] パネルか ら オブジ ェ ク ト を波形 ウ ィ ン ド ウ の [Name] 列に ド ラ ッ グ ア ン ド ド ロ ッ プ し ます。 • [Console] パネルで wave add コ マ ン ド を実行 し ます。 Tcl を使用 し た信号の追加 1. オプシ ョ ンですが [Instances and Processes] パネルお よび [Objects] パネルでデザ イ ン階層を ナビ ゲー ト す る か、 ま たは [Console] パネルで scope コ マン ド を入力 し て、 追加す る オブジ ェ ク ト を識別す る こ と がで き ます。 2. [Console] パネルで wave add コ マ ン ド を入力 し て個別のオブジ ェ ク ト ま たはオブジ ェ ク ト グ ループを追加 し ます。 波形 コ ン フ ィ ギ ュ レーシ ョ ン と WCFG フ ァ イル 波形 コ ン フ ィ ギ ュ レーシ ョ ン と WCFG フ ァ イ ルは両方 と も 波形 リ ス ト のカ ス タ マ イ ズ を指 し ます が、 こ れ ら 2 つには概念的な違いがあ り ます。 • 波形 コ ン フ ィ ギ ュ レーシ ョ ンは、 メ モ リ に読み込んで作業す る オブジ ェ ク ト • WCFG フ ァ イ ルは波形コ ン フ ィ ギ ュ レーシ ョ ン をデ ィ ス ク に保存 し た形態 波形 コ ン フ ィ ギ ュ レーシ ョ ン名 と WCFG フ ァ イル名 波形 コ ン フ ィ ギ ュ レーシ ョ ンは名前を付けた り 、無名 (Untitled) にで き ます。名前は、波形 コ ン フ ィ ギ ュ レーシ ョ ン ウ ィ ン ド ウ タ ブに表示 さ れます。 • GUI か ら Tcl コ マン ド を入力 し て波形 コ ン フ ィ ギ ュ レーシ ョ ン を WCFG フ ァ イ ルに保存す る と き 、 WCFG フ ァ イ ルの名前は コ マ ン ド の引数で指定 さ れます。 • 波形 コ ン フ ィ ギ ュ レーシ ョ ン を WCFG フ ァ イ ルか ら 読み込む と き 、 波形 コ ン フ ィ ギ ュ レー シ ョ ンの名前は WCFG フ ァ イ ルの名前にな り ます。 信号/バスの コ ピーの追加 波形を比較す る ために、 同 じ 信号ま たはバ ス の コ ピーを波形 コ ン フ ィ ギ ュ レーシ ョ ンに追加で き ま す。 同 じ 信号の コ ピーは、 グループや仮想バ ス な ど、 波形 コ ン フ ィ ギ ュ レーシ ョ ンの任意の場所に 配置で き ます。 信号またはバスの コ ピ ーを追加す る には 1. 波形ウ ィ ン ド ウ の波形 コ ン フ ィ ギ ュ レーシ ョ ンで信号ま たはバ ス を選択 し ます。 2. [Edit] → [Copy] を ク リ ッ ク す る か、 ま たは Ctrl + C キーを押 し ます。 信号/バ ス名が ク リ ッ プボー ド に コ ピー さ れます。 3. [Paste] コ マン ド を ク リ ッ ク す る か、 ま たは Ctrl + V キーを押 し ます。 信号ま たはバ ス が波形 コ ン フ ィ ギ ュ レーシ ョ ンに コ ピー さ れます。 信号ま たはバ スは、 必要に応 じ て ド ラ ッ グ ア ン ド ド ロ ッ プ し て移動で き ます。 60 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 波形 コ ン フ ィ ギ ュ レーシ ョ ンのカ ス タ マ イズ 波形コ ン フ ィ ギ ュ レーシ ョ ンのカ ス タ マ イ ズ 表 4-1 に リ ス ト さ れ る 機能を使用す る と 波形 コ ン フ ィ ギ ュ レーシ ョ ン を カ ス タ マ イ ズで き ます。 詳 細は、 機能の名前を ク リ ッ ク す る と 表示 さ れます。 注記 : ご使用の PDF リ ーダーで [View] → [ Toolbars] → [More Tools] で [Previous View] お よ び [Next View] を オンに し てお く と 、 リ ン ク さ れた情報の前後へ移動が し やす く な り ます ( メ ニ ュ ー表 示は PDF リ ーダーに よ っ て異な り ます)。 表 4-1 : 機能 説明 カー ソ ル 波形ウ ィ ン ド ウ で メ イ ン カー ソ ル と セカ ン ダ リ カー ソ ルを使用す る と 、時間を表示、計測で き 、 さ ま ざ ま なナビ ゲー ト 操作の焦点 と し て機能 し ます。 マーカー マーカーを波形に追加す る と 、波形内をナビ ゲー ト し なが ら 、特定時 間の波形値を表示で き ます。 仕切 り 仕切 り を追加 し て、 信号を グループに ま と め る こ と がで き ます。 グループ 波形 コ ン フ ィ ギ ュ レーシ ョ ン に含ま れ る 信号お よ びバ ス を関連信号 セ ッ ト と し て フ ォ ルダーに ま と め、 整理す る 方法です。 仮想バ ス 仮想バ ス を 波形 コ ン フ ィ ギ ュ レ ー シ ョ ン に追加す る と 、 論理 ス カ ラ ーお よ び配列追加で き ます。 オブジ ェ ク ト 名の変更 オブジ ェ ク ト 、 信号、 バ ス、 グループの名前は変更で き ます。 名前の表示 名前は、階層名を含めた完全名で表示す る か ([Long Name])、信号ま たはバ ス名のみを表示す る か ([Short Name])、 ま たはカ ス タ ム名で 表示で き ます。 基数 デフ ォ ル ト の基数では、 波形 コ ン フ ィ ギ ュ レーシ ョ ン、 [Objects] パ ネル、 お よ び [Console] パネルで表示 さ れ る バ ス の基数を設定 し ま す。 バス ビ ッ ト 順 バ ス ビ ッ ト 順は最上位ビ ッ ト (MSB) か ら 最下位ビ ッ ト (LSB)、ま た はその逆に変更可能です。 カーソル カー ソ ルは、 主に時間の一時的な指標 と し て使用 し 、 2 つの波形エ ッ ジ間の時間を計測す る と き な ど、 頻繁に移動 し て使用 し ます。 複数の計測値の時間ベース を確立 さ せ る な ど、 永久的な指標 と し て使用す る 場合は、 波形 ウ ィ ン ド ウ にマーカーを追加 し て く だ さ い。 詳細は、 62 ページの 「マー カー」 を参照 し て く だ さ い。 メ イ ン カ ー ソ ルの配置 波形ウ ィ ン ド ウ で ク リ ッ ク す る と 、 メ イ ン カー ソ ルがその位置に配置 さ れます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 61 第 4 章 : 波形の解析 セ カ ン ダ リ カ ー ソ ルの配置 次の手順に従い、 セカ ン ダ リ カー ソ ルを配置 し ます。 1. 波形を ク リ ッ ク し てホール ド し 、 右側ま たは左側に ド ラ ッ グ し ます。 こ れでセカ ン ダ リ カー ソ ルが配置 さ れます。 2. Shift キーを押 し なが ら 波形を ク リ ッ ク し ます。 セカ ン ダ リ カー ソ ルがない場合は、 セカ ン ダ リ カー ソ ルが現時点で メ イ ン カー ソ ルが配置 さ れてい る 場所に設定 さ れ、 メ イ ン カー ソ ルは ク リ ッ ク し た位置に移動 し ます。 注記 : メ イ ン カー ソ ルの配置中にセカ ン ダ リ カー ソ ルの位置を保持す る には、 Shift キーを押 し た ま ま に し ます。 注記 : セカ ン ダ リ カー ソ ルを ド ラ ッ グ し て配置す る と き は、 あ る 程度の距離を ド ラ ッ グ し ない と セカ ン ダ リ カー ソ ルが表示 さ れません。 マー カ ーの移動 手のシ ン ボルが表示 さ れ る ま でマ ウ ス を移動 し てか ら ク リ ッ ク し て、任意の場所に ド ラ ッ グ し ます。 波形ウ ィ ン ド ウ でカー ソ ルを ド ラ ッ グす る と き に [Snap to Transition] ボ タ ンがオンの場合 (デフ ォ ル ト )、 中空円ま たは中が塗 り つぶ さ れた円が表示 さ れます。 • 中空円は、 選択 し た信号の波形の遷移間にカー ソ ルが置かれた と き に表示 さ れます。 • 中が塗 り つぶ さ れた円は、選択 し た信号の波形の遷移上にカー ソ ルが置かれた と き に表示 さ れます。 波形ウ ィ ン ド ウ のカー ソ ル、 マーカー、 ま たはフ ロ ー ト ルー ラ ーがない位置で ク リ ッ ク す る と 、 非 表示にで き ます。 マー カ ー マーカーは追加、 移動、 削除で き ます。 マー カ ーの追加 マーカーは波形 コ ン フ ィ ギ ュ レーシ ョ ン上のカー ソ ルの位置に追加 さ れます。 1. 波形ウ ィ ン ド ウ でマーカーを追加す る 時間ま たは遷移を ク リ ッ ク し て メ イ ン カー ソ ルを配置 し ます。 2. [Edit] → [Markers] → [Add Marker] ま たは [Add Marker] ボ タ ン を ク リ ッ ク し ます。 マーカーが カー ソ ルに配置 さ れ ま す。 マーカーが既に カー ソ ルの位置に存在す る 場合 は、 わずかにずれた位置にマーカーが配置 さ れ ます。 マーカーの時間はマーカー上部に表示 さ れ ます。 62 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 波形 コ ン フ ィ ギ ュ レーシ ョ ンのカ ス タ マ イズ マー カ ーの移動 マーカーの追加後に ド ラ ッ グ ア ン ド ド ロ ッ プ を使用 し て波形内の別の位置にマーカー を移動で き ま す。 1. マーカー上部にあ る マーカー ラ ベルを ク リ ッ ク し て任意の位置に ド ラ ッ グ し ます。 • マーカーが移動可能であ る こ と を示す ド ラ ッ グ シンボルが表示 さ れます。波形ウ ィ ン ド ウ でマーカーを ド ラ ッ グす る と き に [Snap to Transition] ボ タ ン がオ ン の場合 (デ フ ォル ト )、 中空円ま たは中が塗 り つぶさ れた円が表示 さ れます。 • 中が塗 り つぶ さ れた円は、 選択 し た信号の波形ま たは別のマーカー上にカー ソ ルが 置かれた と き に表示 さ れます。 • マーカー上では中が塗 り つぶ さ れた円が白色で表示 さ れます。 • 中空円は、選択 し た信号の波形の遷移間にカー ソ ルが置かれた と き に表示 さ れます。 2. 新 し い位置にマーカーを ド ロ ッ プ し ます。 マー カ ーの削除 コ マ ン ド 1 つを使用 し て 1 つま たはすべてのマーカーを削除で き ます。 1. マーカーを右 ク リ ッ ク し ます。 2. 次のいずれかを実行 し ます。 • 文脈依存 メ ニ ュ ーか ら [Delete Marker] を選択 し て、 マーカー 1 つを削除 し ます。 • 文脈依存 メ ニ ュ ーか ら [Delete All Markers] を選択 し て、 マーカーをすべて削除 し ます。 注記 : Delete キーを使用 し て も 、 選択 し たマーカーを削除で き ます。 マーカーの削除を取 り 消すには、 [Edit] → [Undo] を ク リ ッ ク し ます。 仕切 り 仕切 り は、 信号間を視覚的に分け る ための も のです。 仕切 り の追加 波形 コ ン フ ィ ギ ュ レーシ ョ ンに仕切 り を追加 し て、 信号を グループに ま と め る こ と がで き ます。 1. 波形ウ ィ ン ド ウ の [Name] 列で信号を ク リ ッ ク す る と 、その信号の下に仕切 り が追加 さ れます。 2. [Edit] → [New Divider] を ク リ ッ ク す る か、 ま たは右 ク リ ッ ク し て [New Divider] を ク リ ッ ク し ます。 こ の変更は視覚的な も のであ り 、 HDL コ ー ド には何 も 追加 さ れ ません。 新 し い仕切 り はフ ァ イ ル が保存 さ れ る と き に波形 コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルに保存 さ れます。 仕切 り の変更 仕切 り に対 し ては、 次を変更で き ます。 • 仕切 り の名前を変更で き ます。 詳細は、 65 ページの 「オブジ ェ ク ト 名の変更」 を参照 し て く だ さ い。 • 仕切 り は、 名前を ド ラ ッ グ ア ン ド ド ロ ッ プす る と 、 波形内の別の位置に移動で き ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 63 第 4 章 : 波形の解析 仕切 り の削除 仕切 り を削除す る には、 ハ イ ラ イ ト し てか ら Delete キーを押すか、 右 ク リ ッ ク し て [Delete] を ク リ ッ ク し ます。 グループ グループ と は、展開 し た り 閉 じ た り で き る カ テ ゴ リ の コ レ ク シ ョ ンの こ と で、波形 コ ン フ ィ ギ ュ レー シ ョ ンに信号お よ びバ ス を追加 し て、 関連す る 信号同士を ま と め る る こ と がで き ます。 グループ自 体には波形デー タ が表示 さ れず、 展開 し た と き にその内容を表示で き ます。 グループの追加 グループを追加す る には、 次の手順に従い ます。 1. 波形 コ ン フ ィ ギ ュ レーシ ョ ンで、 グループに追加す る 信号ま たはバ ス を選択 し ます。 注記 : グループには、 仕切 り 、 仮想バ ス、 お よ びその他のグループを含め る こ と も で き ます。 2. [Edit] → [New Group] を ク リ ッ ク す る か、ま たは右 ク リ ッ ク し て [New Group] を ク リ ッ ク し ま す。 選択 し た信号ま たはバ ス を含むグループが波形 コ ン フ ィ ギ ュ レーシ ョ ンに追加 さ れます。 グ ループにはグループ ア イ コ ンが表示 さ れます。 こ の変更は視覚的な も のであ り 、 HDL コ ー ド には何 も 追加 さ れません。 信号ま たバ スは名前を グループに ド ラ ッ グ ア ン ド ド ロ ッ プす る と 移動で き ます。 新 し いグループお よ びそのネ ス ト さ れた信号/バ ス は、 波形 コ ン フ ィ ギ ュ レ ーシ ョ ン フ ァ イ ルを保 存す る と き に保存 さ れます。 グループの変更 グループは、 次の手順で変更で き ます。 • グループの名前は変更で き ます。 詳細は、 65 ページの 「オブジ ェ ク ト 名の変更」 を参照 し て く だ さ い。 • グループは、 [Name] 列内の任意の場所に ド ラ ッ グ ア ン ド ド ロ ッ プす る と 移動で き ます。 グループの削除 グループ を削除す る には、 ハ イ ラ イ ト し てか ら [Edit] → [Wave Objects] → [Ungroup] を ク リ ッ ク す る か、 ま たは右 ク リ ッ ク し て [Ungroup] を ク リ ッ ク し ます。 グループに含まれていた信号/バ ス は 波形 コ ン フ ィ ギ ュ レーシ ョ ン階層の最上位に配置 さ れます。 注意 : Delete キーを押す と 、 グループお よ びネ ス ト さ れた信号お よ びバ ス が波形 コ ン フ ィ ギ ュ レーシ ョ ンか ら 削除 さ れます。 64 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 波形 コ ン フ ィ ギ ュ レーシ ョ ンのカ ス タ マ イズ 仮想バス 仮想バ ス を波形 コ ン フ ィ ギ ュ レーシ ョ ンに追加す る と 、 論理ス カ ラ ーお よ び配列追加で き ます。 仮 想バ ス には、 バ ス の波形が表示 さ れます。 仮想バ スはその下に昇順で表示 さ れ る 信号の波形で構成 さ れてお り 、 1 次元配列に フ ラ ッ ト 化 さ れます。 仮想バスの追加 仮想バ ス を追加す る には、 次の手順に従い ます。 1. 波形 コ ン フ ィ ギ ュ レ ーシ ョ ン で、 仮想バ ス に追加す る 信号 ま たはバ ス を 任意の数だけ選択 し ま す。 2. [Edit] → [New Virtual Bus] を ク リ ッ ク す る か、 ま たは右 ク リ ッ ク し て [New Virtual Bus] を ク リ ッ ク し ます。 仮想バ スは、[Virtual Bus] ボ タ ンで表示 さ れます。 こ の変更は視覚的な も のであ り 、HDL コ ー ド には何 も 追加 さ れません。 信号ま たバ スは名前を仮想バ ス に ド ラ ッ グ ア ン ド ド ロ ッ プす る と 移動で き ます。 新 し い仮想バ スお よ びそのネ ス ト さ れた信号/バ ス は、 波形 コ ン フ ィ ギ ュ レ ーシ ョ ン フ ァ イ ルを保存す る と き に保存 さ れます。 仮想バスの変更 仮想バ ス では、 次を変更で き ます。 • 仮想バ ス の名前は変更で き ます。 詳細は、 65 ページの 「オブジ ェ ク ト 名の変更」 を参照 し て く だ さ い。 • 仮想バ スは名前を ド ラ ッ グ ア ン ド ド ロ ッ プす る と 、 [Name] 列内の別の位置に移動で き ます。 仮想バスの削除 仮想グループを削除 し てグループに含まれていた ア イ テ ム をハ イ ラ イ ト す る には、次を実行 し ます。 [Edit] → [Wave Objects] → [Ungroup] を ク リ ッ ク す る か、 ま たは右 ク リ ッ ク し て [Ungroup] を ク リ ッ ク し ます。 注意 : Delete キーを押す と 、 仮想バ スお よ びネ ス ト さ れた信号お よ びバ ス が波形 コ ン フ ィ ギ ュ レーシ ョ ンか ら 削除 さ れます。 オ ブ ジ ェ ク ト 名の変更 波形ウ ィ ン ド ウ に含まれてい る 信号、仕切 り 、グループ、バ ス な ど のオブジ ェ ク ト 名は変更で き ます。 1. [Name] 列でオブジ ェ ク ト 名を選択 し ます。 2. 右 ク リ ッ ク し て [Rename] を ク リ ッ ク し ます。 3. 名前を変更 し ます。 4. Enter キーを ク リ ッ ク す る か、 名前以外の箇所を ク リ ッ ク し て、 名前を反映 さ せます。 ま た、 オブジ ェ ク ト 名を ダブル ク リ ッ ク し て も 、 名前を変更で き ます。 変更はすぐ に反映 さ れます。 波形 コ ン フ ィ ギ ュ レーシ ョ ンでのオブジ ェ ク ト 名の変更は、 デザ イ ン の ソ ース コ ー ド には影響 し ません。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 65 第 4 章 : 波形の解析 名前の表示 名前は、 階層名を含めた完全名で表示す る か ([Long Name])、 信号ま たはバ ス名のみを表示す る か ([Short Name])、 ま たはカ ス タ ム名で表示で き ます。 信号/バ ス名は、 波形 コ ン フ ィ ギ ュ レーシ ョ ン の [Name] 列に表示 さ れます。 名前が非表示の場合は、 次の手順に従い ます。 • 信号の完全名が表示 さ れ る ま で [Name] 列の幅を広げます。 • ま た、 [Name] 列の下にあ る ス ク ロ ール バーを使用 し て も 、 完全な信号名を表示で き ます。 表示名の変更 表示名を変更す る には、 次の手順に従い ます。 1. 1 つま たは複数の信号/バ ス名を選択 し ます。 複数の信号を選択す る 場合は、 Shift キーま たは Ctrl キーを使用 し ます。 2. 右 ク リ ッ ク し て [Name] を ク リ ッ ク し 、 次のいずれかを選択 し ます。 • [Long] : 階層の完全名を表示 し ます。 • [Short] : 信号ま たはバ ス のみの名前を表示 し ます。 • [Custom] : 信号のカ ス タ ム名を表示 し ます。 詳細は、 65 ページの 「オブジ ェ ク ト 名の変 更」 を参照 し て く だ さ い。 名前の表示が変更 さ れます。 基数 デフ ォ ル ト の基数では、 波形 コ ン フ ィ ギ ュ レーシ ョ ン、 [Objects] パネル、 お よ び [Console] パネル で表示 さ れ る バ ス の基数を設定 し ます。 デ フ ォ ル ト の基数の変更 デフ ォ ル ト の基数は 2 進数です。 基数を変更す る には、 次の手順に従い ます。 1. [Edit] → [Preferences] を ク リ ッ ク し ます。 2. [Preferences] ダ イ ア ロ グ ボ ッ ク ス の左側で [ISim Simulator] ク リ ッ ク し ます。 3. [Default Radix] ド ロ ッ プダ ウ ン リ ス ト か ら 基数を選択 し ます。 4. [Apply] を ク リ ッ ク し てか ら [OK] を ク リ ッ ク し ます。 個々の基数の変更 [Objects] パネルに含まれてい る 個々の信号 (HDL オブジ ェ ク ト ) の基数は、 次の手順に従 う と 変更 で き ます。 1. [Objects] パネルでバ ス を右 ク リ ッ ク し ます。 2. [Radix] を選択 し 、 ド ロ ッ プダ ウ ン メ ニ ュ ーか ら 該当す る フ ォーマ ッ ト を選択 し ます。 • [Binary] (2 進数) • [Hexadecimal] (16 進数) • [Unsigned Decimal] (符号な し 10 進数) • [Signed Decimal] (符号付 き 10 進数) • [Octal ASCII] (8 進数 ASCII) 注記 : [Objects] パネル内の信号の基数を変更 し て も 、 波形ウ ィ ン ド ウ ま たは [Console] パネルの値 には影響 し ません。 波形ウ ィ ン ド ウ に含まれ る 個々の信号の基数を変更す る には、 波形ウ ィ ン ド ウ 66 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 波形 コ ン フ ィ ギ ュ レーシ ョ ンのナビゲーシ ョ ン の文脈依存 メ ニ ュ ーを使用 し ます。 [Console] パネルで基数を変更す る には、 Tcl コ マン ド の isim set radix を使用 し ます。 バス ビ ッ ト 順 波形 コ ン フ ィ ギ ュ レーシ ョ ンではバ ス ビ ッ ト を逆転 さ せて、MSB 優先お よ び LSB 優先の信号表現 を切 り 替え る こ と がで き ます。 ビ ッ ト 順を反転す る には、 次の手順に従い ます。 1. バ ス を選択 し ます。 2. 右 ク リ ッ ク し て [Reverse Bit Order] を ク リ ッ ク し ます。 バ ス ビ ッ ト の順番が反転 さ れます。 [Reverse Bit Order] コ マン ド の左横にチ ェ ッ ク マー ク が表示 さ れ、 適用 さ れてい る こ と が示 さ れます。 波形コ ン フ ィ ギ ュ レーシ ョ ンのナビゲーシ ョ ン 波形 コ ン フ ィ ギ ュ レーシ ョ ンは、 さ ま ざ ま な方法でナビ ゲーシ ョ ンで き ます。 • 階層の展開/非展開 • ズーム機能 • フ ロ ー ト ルー ラ ーの表示 • マーカーを使用 し た波形値の表示 • 信号遷移の波形値の表示 • カー ソ ルを使用 し た時間の計測 • [Go To Time] コ マン ド の使用 • [Show Drivers] コ マ ン ド の使用 階層の展開/非展開 ネ ス ト さ れた グループのオブジ ェ ク ト を含むウ ィ ン ド ウ ま たはパネルでは、 次のいずれかの方法で その階層を展開ま たは非展開で き ます。 矢印の使用 矢印を ク リ ッ ク し て階層を展開 し ます。 階層は 1 度に 1 つ展開で き ます。 矢印を ク リ ッ ク し て階層を閉 じ ます。 メ ニ ュ ーの使用 1. オブジ ェ ク ト を選択 し ます。 2. [Edit] → [Wave Objects] を ク リ ッ ク し 、 次のいずれかを ク リ ッ ク し ます。 • [Expand] • [Collapse] 選択 さ れてい る 階層オブジ ェ ク ト を展開 し ます。 階層は 1 度に 1 つ展開で き ます。 選択 し たオブジ ェ ク ト の階層を非展開 し ます。 文脈依存 メ ニ ュ ーの使用 1. オブジ ェ ク ト を選択 し ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 67 第 4 章 : 波形の解析 2. 右 ク リ ッ ク し て次のいずれかを ク リ ッ ク し ます。 • [Expand] 選択 さ れてい る 階層オブジ ェ ク ト を展開 し ます。 階層は 1 度に 1 つ展開で き ます。 • [Collapse] 選択 し たオブジ ェ ク ト の階層を非展開 し ます。 ズーム機能 ズ ー ム 機能 を 使用 し て 波形 ウ ィ ン ド ウ の波形 コ ン フ ィ ギ ュ レ ー シ ョ ン を 表示 し ま す。 詳細は、 11 ページの 「[View] ツールバー」 を参照 し て く だ さ い。 フ ロー ト ルー ラ ーの表示 フ ロ ー ト ルー ラ ーでは、波形ウ ィ ン ド ウ 上部の標準ルー ラ ーに表示 さ れてい る 絶対シ ミ ュ レーシ ョ ン時間以外の時間ベース を使用 し て時間計測を補助 し ます。 フ ロ ー ト ルー ラ ーは表示/非表示を切 り 替え る こ と が可能で、 波形 ウ ィ ン ド ウ の任意の位置に移動 さ せ る こ と がで き ます。 フ ロ ー ト ルー ラ ーの時間ベース (時間 0) はセカ ン ダ リ カー ソ ルに基づい てい ます。 セカ ン ダ リ カー ソ ルがない場合は選択 し たマーカーに基づき ます。 セカ ン ダ リ カー ソ ル ( ま たは選択 し たマーカー) が存在す る と き のみフ ロ ー ト ルー ラ ー ボ タ ンお よ びフ ロ ー ト ルー ラ ーが表示 さ れます。 1. フ ロ ー ト ルー ラ ーの表示/非表示は、 次のいずれかの方法で切 り 替え る こ と がで き ます。 • セカ ン ダ リ カー ソ ルを配置 し ます。 • マーカーを選択 し ます。 2. [View] → [Floating Ruler] ま たは [Floating Ruler] ボ タ ン を ク リ ッ ク し ます。 こ の手順は 1 度だけ実行す る 必要す る 必要があ り ます。 セカ ン ダ リ カー ソ ルを配置 し た り 、 マーカーを選択す る たびに フ ロ ー ト ルー ラ ーが表示 さ れます。 非表示にす る には、 コ マン ド を再度選択 し ます。 マー カ ーを使用 し た波形値の表示 マーカーは特定時間の波形 と 交差す る 線で、 波形 コ ン フ ィ ギ ュ レ ーシ ョ ン を ナ ビ ゲー ト し た り 各 マーカーの [Value] 列で信号お よ びバ ス の値を表示する のに使用で き ます。次の手順に従 う と 、カー ソ ルを マーカー間で移動 し て、 波形値を表示で き ます。 1. 62 ページの 「マーカーの追加」 の手順に従い、 波形ウ ィ ン ド ウ の波形 コ ン フ ィ ギ ュ レーシ ョ ン でマーカーを追加 し ます。 マーカーが 1 つあ る 場合は、カー ソ ル と マーカーが同 じ 位置にあ る と き 、[Value] 列に信号 と バ ス の値が表示 さ れます。 こ れで作業が完了 し ま し た。 複数マーカーがあ る 場合は、 次の手順に従い ます。 2. [Edit] → [Markers] → [Next Marker] ま たは [Next Marker] ツールバー ボ タ ン を ク リ ッ ク し ます。 カー ソ ルが波形 コ ン フ ィ ギ ュ レーシ ョ ンに含まれてい る マーカー間を順番に移動 し ます。 3. 各マーカーの [Value] 列で値を確認 し ます。 68 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 波形 コ ン フ ィ ギ ュ レーシ ョ ンのナビゲーシ ョ ン 4. [Edit] → [Markers] → [Previous Marker] ま たは [Previous Marker] ツールバー ボ タ ン を ク リ ッ ク し ます。 カー ソ ルが波形 コ ン フ ィ ギ ュ レーシ ョ ンに含まれてい る マーカー間を逆方向にに移動 し ます。 5. 各マーカーの [Value] 列で値を確認 し ます。 信号遷移の波形値の表示 波形で各遷移での信号値を表示す る には、 [Next Transition] ま たは [Previous Transition] コ マ ン ド を使用 し ます。 開始点はカー ソ ルです。 [Next Transition] お よび [Previous Transition] コ マ ン ド の使用 1. 信号を選択 し ます。 開始点は、 波形のカー ソ ルの位置です。 2. 次の遷移に進め る には、 [View] → [Cursors] → [Next Transition] を ク リ ッ ク す る か、 [Next Transition] ボ タ ン を ク リ ッ ク し ます。 3. マーカーが信号の次の遷移ま で進みます。 その遷移でのすべての信号の値が [Value] 列に表示 さ れます。 4. 手順 2 を必要に応 じ て繰 り 返 し ます。 5. 前の遷移に戻 る には、 次の手順に従い ます。 [Edit] → [Markers] → [Previous Transition] ま たは [Previous Transition] ツールバー ボ タ ン を ク リ ッ ク し ます。 6. マーカーが信号の前の遷移ま で戻 り ます。 その遷移でのすべての信号の値が [Value] 列に表示 さ れます。 7. 手順 4 を必要に応 じ て繰 り 返 し ます。 カー ソ ルを移動 し た り 戻 し た り す る と 、 信号の値がそれに応 じ て更新 さ れます。 カ ー ソ ルを使用 し た時間の計測 メ イ ン カー ソ ル と セ カ ン ダ リ カー ソ ルを波形 コ ン フ ィ ギ ュ レーシ ョ ンで使用す る と 、 時間範囲を 計測で き ます。 こ の時間範囲は、 時間の計測に加え て、 カー ソ ル間の拡大表示や範囲の印刷な ど の 実行時に焦点 と し て も 機能 し ます。 遷移間ま たは 2 つの信号波形間の時間を計測す る には、 次の手順に従い ます。 注記 : [Snap to Transition] ボ タ ンはデフ ォ ル ト でオンにな っ てい ます。 カー ソ ルが遷移付近に配置 さ れ る と その遷移に スナ ッ プ さ れ る ので、 信号遷移に厳密にカー ソ ルを配置で き ます。 1. 最初の遷移にマ ウ ス を置 き 、 マ ウ ス の左ボ タ ン を押 し た ま ま に し ます。 2. マ ウ ス を 2 番目の遷移に ド ラ ッ グ し ます。 3. マ ウ ス ボ タ ン を放 し ます。 セカ ン ダ リ カー ソ ルが 1 番目の遷移に、 メ イ ン カー ソ ルが 2 番目の遷移に配置 さ れます。 4. 波形 コ ン フ ィ ギ ュ レーシ ョ ン下部で値を確認 し ます。 • X1 : メ イ ン カー ソ ルの時間 • X2 : セカ ン ダ リ カー ソ ルの時間 • Delta X : カー ソ ル間の時間範囲 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 69 第 4 章 : 波形の解析 フ ロ ー ト ルー ラ ーが表示 さ れてい る 場合は、 カー ソ ルの時間値がルー ラ ーの上部に表示 さ れ ま す。 5. オプシ ョ ン : [Swap Cursors] ボ タ ン を ク リ ッ ク す る と カー ソ ルの位置を ス ワ ッ プで き ます。 6. 時間範囲は、 波形 コ ン フ ィ ギ ュ レーシ ョ ン を ク リ ッ ク し て新 し いカー ソ ルを配置す る ま で表示 さ れます。 セ カ ン ダ リ カー ソ ルの配置に従いセ カ ン ダ リ カー ソ ルを移動す る と 、 自動的に時間範囲が更新 さ れます。 マー カ ーを使用 し た時間の計測 フ ロ ー ト ルー ラ ーが表示 さ れてい る と き 、 選択 さ れてい る マーカー上の フ ロ ー ト ルー ラ ーの時間 ベース と 波形の メ イ ン カー ソ ルお よ びマーカー間の時間計測を表示で き ます。 1. 時間ベース と し て選択 し たマーカーを使用 し て フ ロ ー ト ルー ラ ーを表示 し ます。 2. さ ら にマーカーを追加 し ます。 3. 波形内の ロ ケーシ ョ ンにマーカーを移動 し ます。 フ ロ ー ト ルー ラ ーのマーカー ラ ベルでは、 選択 し たマーカー と 新 し いマーカー間の時間間隔が表 示 さ れます。 時間ベースは、 マーカーを選択す る だけで切 り 替え る こ と がで き ます。 ま た、 カー ソ ルお よ びマーカーを 組み合わせて も 時間を 計測で き ま す。 こ の場合は、 セ カ ン ダ リ カー ソ ルを時間ベース と し て使用す る こ と で、 フ ロ ー ト ルー ラ ーでセ カ ン ダ リ カー ソ ルに対す る マーカーお よ び メ イ ン カー ソ ルの時間計測を表示で き ます。 [Go To Time] コ マ ン ド の使用 [Go To Time] コ マン ド を使用す る と 、カー ソ ルを波形 コ ン フ ィ ギ ュ レーシ ョ ンの特定時間にジ ャ ン プ さ せ る こ と がで き ます。 ユーザー指定の時間へのジ ャ ン プ 波形 コ ン フ ィ ギ ュ レーシ ョ ン を表示 し ます。 1. [Edit] → [Go To] を ク リ ッ ク し ます。 [Go To Time] ボ ッ ク ス が波形 ウ ィ ン ド ウ の下部に表示 さ れます。 2. カー ソ ルを ジ ャ ンプ さ せ る 先の時間 と その単位を入力 し ます。 ま たは、 場合に よ っ ては ド ロ ッ プダ ウ ン リ ス ト か ら 時間 と 単位を選択する こ と も 可能です。 3. Enter キーを押 し ます。 シ ミ ュ レ ーシ ョ ンの最初または最後へのジ ャ ン プ 波形 コ ン フ ィ ギ ュ レーシ ョ ン を表示 し ます。 1. 波形 コ ン フ ィ ギ ュ レ ーシ ョ ン で シ ミ ュ レ ーシ ョ ン の最初に カ ー ソ ル を 移動す る には、 [Go To Time 0] ボ タ ン を ク リ ッ ク し ます。 2. 波形 コ ン フ ィ ギ ュ レ ーシ ョ ン で シ ミ ュ レ ーシ ョ ン の最後に カ ー ソ ル を 移動す る には、 [Go To Latest Time] ボ タ ン を ク リ ッ ク し ます。 70 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 波形 コ ン フ ィ ギ ュ レーシ ョ ンの印刷 [Show Drivers] コ マ ン ド の使用 [Show Driver] コ マン ド を使用する と 、 信号値ま たはオブジ ェ ク ト 値での変更に関連する ド ラ イ バー を表示 し ます。 こ の コ マン ド を使用 し て値の変化の原因を特定 し 、 回路の接続が正 し いか ど う か判 断し ます。 ISim では、 [Console] パネルに信号ま たはオブジ ェ ク ト の ド ラ イ バーが表示 さ れます。 こ の コ マ ン ド は、 次のエ リ アでオブジ ェ ク ト を プ ロ ーブす る と き に使用で き ます。 • [Objects] パネル • 波形ウ ィ ン ド ウ • [Console] パネル ド ラ イ バーを表示す る には、 次の手順に従い ます。 1. オブジ ェ ク ト ま たは信号を選択 し ます。 2. [Edit] → [Wave Objects] → [Show Drivers] を ク リ ッ ク する か、 ま たは右 ク リ ッ ク し て [Show Drivers] を ク リ ッ ク し ます。 [Console] パネルでは、 オブジ ェ ク ト ま たは信号の ド ラ イ バーが表示 さ れます。 ド ラ イ バーがない 場合は、 その旨を伝え る メ ッ セージが [Console] パネルに表示 さ れます。 注記 : こ の コ マ ン ド は、 [Console] パネルに 「show driver」 と 入力 し て も 実行で き ます。 波形コ ン フ ィ ギ ュ レーシ ョ ンの印刷 波形 コ ン フ ィ ギ ュ レーシ ョ ンは、 印刷セ ッ ト ア ッ プの設定を使用 し て 1 度に 1 つ印刷で き ます。 波 形 コ ン フ ィ ギ ュ レーシ ョ ンの背景は常に白色で印刷 さ れます。 印刷プ レ ビ ュ ーの表示 1. [File] → [Print Preview] を ク リ ッ ク し ます。 2. [Print Preview] ダ イ ア ロ グ ボ ッ ク ス で波形 コ ン フ ィ ギ ュ レーシ ョ ンが予期どお り に表示 さ れ てい る こ と を確認 し て く だ さ い。 3. [Print] を ク リ ッ ク す る か、 ま たは [Setup] を ク リ ッ ク し て印刷オプシ ョ ンお よ びレ イ ア ウ ト を カ ス タ マ イ ズ し ます。 4. [Close] を ク リ ッ ク し て [Print Preview] ダ イ ア ロ グ ボ ッ ク ス を閉 じ ます。 印刷プ レ ビ ュ ーでは、デフ ォル ト のプ リ ン タ ーの定義に従い波形が白黒ま たはカ ラ ー表示 さ れます。 別のプ リ ン タ ーを選択 し て印刷す る こ と も で き ます。 印刷 1. [File] → [Print] を ク リ ッ ク し ます。 2. [Print Setup] ダ イ ア ロ グ ボ ッ ク スで [Page Orientation] (印刷方向)、 [Time Range] (時間の範囲)、 [Fit Time Range To] (範囲を含め るページ数) な ど を設定し ます。 注記 : [Time Range] は、波形 コ ン フ ィ ギ ュ レーシ ョ ンに メ イ ン カー ソ ルお よ びセカ ン ダ リ カー ソ ルの両方が配置 さ れてい る 場合はその時間範囲が自動的に表示 さ れます。 3. [OK] を ク リ ッ ク し ます。 4. [印刷] ダ イ ア ロ グ ボ ッ ク ス でプ リ ン タ ーを選択 し 、 [印刷] を ク リ ッ ク し ます。 波形 コ ン フ ィ ギ ュ レーシ ョ ンがプ リ ン タ ーの設定に従っ て印刷 さ れます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 71 第 4 章 : 波形の解析 カ ス タ ム カ ラ ーの使用 個々の信号ま たはバ ス の表示色を変更 し て、 比較 し やす く す る こ と がで き ます。 通常のカ ラ ー設定 は、 [Preferences] ダ イ ア ロ グ ボ ッ ク ス の [Colors] ページで指定 さ れてい る カ ラ ー ス キームに含ま れてい ます。 詳細は、 第 2 章の 「ISim カ ラ ー プ リ フ ァ レ ン ス」 を参照 し て く だ さ い。 定義済みのカ ラ ー ス キーム を使用す る こ と も で き ま すが、 カ ラ ー ス キーム を作成す る こ と も で き ます。 信号ま たはバ ス の表示色を変更す る と 、 通常設定 よ り 優先 さ れます。 1. 信号ま たはバ ス を右 ク リ ッ ク し ます。 2. [Signal Color] を ク リ ッ ク し て、 色を選択 し ます。 信号ま たはバ ス の波形が新 し い色で表示 さ れます。 注記 : カ ス タ ム カ ラ ーを使用す る 場合は、X お よ び Z な ど の特殊な値を含むすべての論理値がその 色で表示 さ れます。 72 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 波形デー タ ベース フ ァ イル と 波形 コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イル 第5章 シ ミ ュ レーシ ョ ン結果の表示 ラ イ ブ シ ミ ュ レーシ ョ ンは、 次か ら 構成 さ れてい ます。 • すべてのシ ミ ュ レーシ ョ ン デー タ を含む波形デー タ ベース フ ァ イ ル (WDB) • 波形 コ ン フ ィ ギ ュ レーシ ョ ンに含まれ る オブジ ェ ク ト に関連す る 順序お よ び設定を含む波形 コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ル (WCFG) 波形デー タ ベース フ ァ イル と 波形 コ ン フ ィ ギ ュ レ ーシ ョ ン フ ァ イル シ ミ ュ レーシ ョ ン を実行す る と 、 WDB が自動的に開 き ます。 シ ミ ュ レーシ ョ ン を実行す る 方法に ついては、 第 3 章の 「シ ミ ュ レーシ ョ ンの実行」 を参照 し て く だ さ い。 ISE® ツールま たは PlanAhead™ ツールか ら シ ミ ュ レーシ ョ ン を実行す る と 、 デフ ォ ル ト の波形 コ ン フ ィ ギ ュ レーシ ョ ンが自動的に開 き ます。 波形 コ ン フ ィ ギ ュ レーシ ョ ンは複数開 く こ と がで き ま す。 シ ミ ュ レーシ ョ ン を コ マン ド プ ロ ンプ ト ま たはバ ッ チ ス ク リ プ ト を使用 し て実行す る と き は、GUI の起動時にデフ ォ ル ト で波形 コ ン フ ィ ギ ュ レーシ ョ ンは開かないので、 手動で開 く か作成す る 必要 があ り ます。 詳細は、 次のセ ク シ ョ ンお よ び第 3 章の 「シ ミ ュ レーシ ョ ンの実行」 を参照 し て く だ さ い。 GUI か ら 波形 コ ン フ ィ ギ ュ レーシ ョ ン を開 く 方法 1. [File] → [Open] を ク リ ッ ク し ます。 2. [ フ ァ イ ルの種類] で .wcfg を選択 し ます。 3. 開 く フ ァ イ ルを選択 し た ら 、 [OK] を ク リ ッ ク し ます。 波形 コ ン フ ィ ギ ュ レーシ ョ ンが波形ウ ィ ン ド ウ に表示 さ れます。 1 つのシ ミ ュ レーシ ョ ン セ ッ シ ョ ンで複数の波形 コ ン フ ィ ギ ュ レーシ ョ ン を開 く こ と がで き ます。 波形 コ ン フ ィ ギ ュ レーシ ョ ン を表 示す る と き は、 タ ブを ク リ ッ ク し ます。 コ マ ン ド プ ロ ン プ ト か ら 波形 コ ン フ ィ ギ ュ レーシ ョ ン を開 く 方法 GUI の起動時にデフ ォ ル ト で波形 コ ン フ ィ ギ ュ レ ーシ ョ ン が開かない ため、 既存の波形 コ ン フ ィ ギ ュ レーシ ョ ン を開 く -view オプシ ョ ン を含め る こ と がで き ます。 シ ミ ュ レーシ ョ ン実行フ ァ イ ルを次の構文を使用 し て実行 し ます。 <sim_exe>.exe -gui -wdb <wdb>.wdb -view <wcfg>.wcfg 説明 : • -gui : GUI を起動 し ます。 • -wdb <wdb>.wdb : シ ミ ュ レーシ ョ ン デー タ を格納す る フ ァ イ ル名を指定 し ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 73 第 5 章 : シ ミ ュ レーシ ョ ン結果の表示 • -view <wcfg>.wcfg : 指定 し た波形フ ァ イ ルを GUI で開き ます。 GUI に新 し いデー タ ベース ( ラ イ ブ シ ミ ュ レーシ ョ ン ) が開 き ます。 WCFG のシ ミ ュ レ ーシ ョ ン オブジ ェ ク ト がデー タ ベース に含ま れ る シ ミ ュ レーシ ョ ン オブジ ェ ク ト に対応する 場合は、デー タ ベース か ら デー タ があ ら か じ め波形 コ ン フ ィ ギ ュ レーシ ョ ンに入力 さ れます。 波形 コ ン フ ィ ギ ュ レーシ ョ ンの新規作成方法の詳細は、 第 4 章の 「波形 コ ン フ ィ ギ ュ レーシ ョ ンで の作業」 を参照 し て く だ さ い。 ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン を開 く ス タ テ ィ ッ ク の読み出 し 専用のシ ミ ュ レーシ ョ ンには、 次が含まれます。 • 波形 コ ン フ ィ ギ ュ レーシ ョ ンに含まれ る オブジ ェ ク ト に関連す る 順序お よ び設定を含む波形 コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ル (WCFG) • 前に実行 し た ラ イ ブ シ ミ ュ レーシ ョ ンか ら のシ ミ ュ レーシ ョ ン デー タ を含む WDB フ ァ イ ル 波形 コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルでは、 波形デー タ ベース が参照 さ れます。 シ ミ ュ レーシ ョ ン は、 ス タ テ ィ ッ ク シ ミ ュ レー タ では実行で き ません。 ラ イ ブ シ ミ ュ レーシ ョ ン を開 く 方法の詳細 は、 第 3 章の 「デザ イ ンのシ ミ ュ レーシ ョ ン」 を参照 し て く だ さ い。 波形 コ ン フ ィ ギ ュ レーシ ョ ンお よび波形デー タ ベース を開 く 直前のシ ミ ュ レ ーシ ョ ンの波形 コ ン フ ィ ギ ュ レーシ ョ ン (WCFG) フ ァ イ ルお よ びシ ミ ュ レ ーシ ョ ン デー タ (WDB) を開 く 場合は、 次の方法のいずれかを使用 し ます。 波形 コ ン フ ィ ギ ュ レーシ ョ ンお よ び波形デー タ ベース を開 く には、 次の手順に従っ て く だ さ い。 1. isimgui.exe を実行 し て、 ス タ テ ィ ッ ク シ ミ ュ レー タ を開 き ます。 2. [File] → [Open] を ク リ ッ ク し 、 [ フ ァ イ ルの種類] で .wcfg を選択 し 、 波形 コ ン フ ィ ギ ュ レー シ ョ ン (WCFG) フ ァ イ ルを選択 し ます。 ま たは、 isimgui.exe -open <wcfg_file>.wcfg と 入力 し ます。 説明 : • isimgui.exe : アプ リ ケーシ ョ ン実行フ ァ イ ルです。 • -open : 指定 し た フ ァ イ ルを開 く よ う にツールに命令 し ます。 • -view <wcfg>.wcfg : 指定 し た波形フ ァ イ ルを GUI で開き ます。 ス タ テ ィ ッ ク シ ミ ュ レー タ では、 ト レース さ れたすべての信号お よ び関連す る 波形デー タ ベース と 共に波形 コ ン フ ィ ギ ュ レーシ ョ ンが表示 さ れます。 既存の WCFG お よび関連 し ない波形デー タ ベース を開 く シ ミ ュ レーシ ョ ン デー タ (WDB) を読み込んでデー タ ベース には関係 し ない WCFG フ ァ イ ルを表 示で き ます。 こ の方法で ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン を開 く と 、 複数のエン ジニ アが同 じ シ ミ ュ レーシ ョ ン結果 (WDB フ ァ イ ルに格納 さ れてい る 遷移) の さ ま ざ ま な表示 (WCFG フ ァ イ ルでキ ャ プチ ャ ) を確認す る と き に有益です。 ISim では、 WCFG に含 ま れてい る が WDB フ ァ イ ルで見つか ら な いオブ ジ ェ ク ト 名に警告 メ ッ セージ を発行 し 、 一致す る オブジ ェ ク ト のみを表示 し ます。 74 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ス タ テ ィ ッ ク シ ミ ュ レーシ ョ ン を開 く コ マ ン ド プ ロ ンプ ト で次のいずれかを実行 し ます。 isimgui.exe -open <wdb>.wdb -view <wcfg>.wcfg 説明 : • isimgui.exe : アプ リ ケーシ ョ ン実行フ ァ イ ルです。 • -open <wdb>.wdb : 指定 し た波形デー タ ベース を ISim グ ラ フ ィ カル ユーザー イ ン タ ー フ ェ イ ス に開 き ます。 • -view <wcfg>.wcfg : 指定 し た波形フ ァ イ ルを ISim グ ラ フ ィ カル ユーザー イ ン タ ー フ ェ イ ス に開 き ます。 波形デー タ ベースおよび新 し いデ フ ォル ト の WCFG を開 く 解析を実行す る シ ミ ュ レーシ ョ ン デー タ (WDB) があ る が、 以前に使用 し た WCFG を開かない場 合は、 次の方法を使用 し て波形デー タ ベースお よ び新 し いデフ ォ ル ト の WCFG を開 く こ と がで き ます。 コ マ ン ド プ ロ ンプ ト で次を入力 し ます。 isimgui.exe -view <wdb_file>.wdb 説明 : • isimgui.exe : アプ リ ケーシ ョ ン実行フ ァ イ ルです。 • -view <wdb>.wdb : 指定 し た波形デー タ ベース を ISim グ ラ フ ィ カル ユーザー イ ン タ ー フ ェ イ ス に開 き ます。 ス タ テ ィ ッ ク ビ ュ ーアーでは、以前のシ ミ ュ レーシ ョ ンのデー タ お よ び波形ウ ィ ン ド ウ に含まれて い る WDB フ ァ イ ルのオブジ ェ ク ト を最大 1000 個ま で表示する Default.wcfg と い う 名前の新 し い 波形 コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルが表示 さ れます。 デフ ォル ト の WCFG フ ァ イ ルに信号を追 加ま たは削除 し て保存す る と 、 次回に表示で き ます。 波形デー タ ベースのみを開 く 以前のシ ミ ュ レーシ ョ ンか ら WDB のみを開 く 場合は、 次の手順に従い ます。 1. コ マ ン ド プ ロ ンプ ト で次を入力 し ます。 isimgui.exe こ れに よ り 、 ス タ テ ィ ッ ク シ ミ ュ レー タ が開き ます。 2. [File] → [Open] を ク リ ッ ク し 、 [ フ ァ イ ルの種類] で .wdb を選択 し 、 直前のシ ミ ュ レーシ ョ ン の WDB フ ァ イ ルを選択 し ます。 ま たは、 次を入力 し ます。 isimgui.exe -open <wdb_file>.wdb 説明 : • isimgui.exe : アプ リ ケーシ ョ ン実行フ ァ イ ルです。 • -open <wdb_name>.wdb : 指定 し た波形デー タベース を グ ラ フ ィ カル ユーザー イ ン タ ーフ ェ イ ス に開 き ます。 ス タ テ ィ ッ ク ビ ュ ーアーでは、[Objects] パネルお よ び [Instances and Processes] パネルに含まれて い る 以前のシ ミ ュ レーシ ョ ンのデー タ が表示 さ れます。 波形ウ ィ ン ド ウ には波形デー タ は開 き ませ ん。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 75 第 5 章 : シ ミ ュ レーシ ョ ン結果の表示 [File] → [Open] では既存の波形 コ ン フ ィ ギ ュ レーシ ョ ン を開 く こ と がで き 、[File] → [New] では新 し い波形 コ ン フ ィ ギ ュ レーシ ョ ン を作成で き ます。 76 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 シ ミ ュ レーシ ョ ンの 1 行ずつの実行 第6章 ソ ース レ ベルでのデバ ッ グ HDL ソ ース コ ー ド をデバ ッ グす る と 、 デザ イ ンが予期どお り に実行 さ れてい る こ と を検証で き ま す。 デバ ッ グ では、 ソ ー ス コ ー ド の実行を制御 し 、 問題が発生す る 可能性が あ る 箇所を特定 し ま す。 デバ ッ グに使用で き る ス ト ラ テジは、 次の と お り です。 • 1 行ずつの実行 開発中の ど の段階のデザ イ ンで も 、 [Step] コ マ ン ド を使用 し て HDL デザ イ ンの ソ ース コ ー ド を 1 行ずつ実行 し 、 デザ イ ン が予期 ど お り に動作す る か を検証で き ま す。 コ ー ド の行ご と に [Step] コ マ ン ド が実行 さ れ、 解析が続行 さ れます。 詳細は、 $paratext を参照 し て く だ さ い。 • HDL コ ー ド の特定行にブ レー ク ポ イ ン ト を設定 し 、 ブ レー ク ポ イ ン ト に到達す る ま でシ ミ ュ レーシ ョ ン を実行 大型のデザ イ ンでは、 HDL ソ ース コ ー ド を 1 行ずつ実行す る のは面倒な場合があ り ます。 ブ レー ク ポ イ ン ト は、 HDL ソ ース コ ー ド のあ ら か じ め決め ら れたポ イ ン ト に設定で き 、 シ ミ ュ レーシ ョ ンが各ブ レー ク ポ イ ン ト で停止 し なが ら 実行 さ れます。 シ ミ ュ レーシ ョ ンは、 テ ス ト ベンチの最初か ら で も 現在の位置か ら で も 実行で き ます。 [Step]、 [Run All]、 ま たは [Run for the time specified on the toolbar] を使用 し て、シ ミ ュ レーシ ョ ン を続行 し ます。詳細は、78 ペー ジの 「ブ レー ク ポ イ ン ト の使用」 を参照 し て く だ さ い。 シ ミ ュ レーシ ョ ンの 1 行ずつの実行 HDL ソ ース コ ー ド をデバ ッ グす る ために、 シ ミ ュ レーシ ョ ンの ど の地点で も [Step] コ マン ド を使用で き ます。 こ の コ マ ン ド では、 HDL ソ ース コ ー ド を 1 行ずつ実行 し て、 デザ イ ン が予期どお り に機能 し てい る か を検証で き ます。 黄色の矢印に よ り 、 現在実行 さ れてい る 行 が示 さ れます。 こ の コ マ ン ド の実行中に、 さ ら に停止ポ イ ン ト を設定す る ためにブ レー ク ポ イ ン ト を作成す る こ と も 可能です。 ISim でのデバ ッ グ方法の詳細は、 78 ページの 「ブ レー ク ポ イ ン ト の使用」 を参照 し て く だ さ い。 1. シ ミ ュ レーシ ョ ン を 1 行ずつ実行す る には、 次の手順に従い ます。 • 現在の実行時間か ら 、 次の手順のいずれかを実行 し ます - [Simulation] → [Step] を ク リ ッ ク し ます。 - [Step] を ク リ ッ ク し ます。 - [Console] パネルで 「$paratext」 と 入力 し ます。 波形ウ ィ ン ド ウ に新 し い タ ブが開 き 、 最上位デザ イ ン ユニ ッ ト に関連す る HDL フ ァ イ ルが表 示 さ れます。 • 開始 (0ns) か ら 、 シ ミ ュ レーシ ョ ン を再開 し ます。 テ ス ト ベンチの開始点に時間を リ セ ッ ト す る には、 [Restart] コ マ ン ド を使用 し ます。 詳細は、 第 3 章の 「シ ミ ュ レーシ ョ ンの実行」 を参 照 し て く だ さ い。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 77 第 6 章 : ソ ース レベルでのデバ ッ グ 2. [Window] → [Tile Horizontally] ( ま たは [Window] → [Tile Vertically]) を ク リ ッ ク し て波形 と HDL コ ー ド を同時に表示 し ます。 3. デバ ッ グが完了す る ま で [Step] コ マン ド を繰 り 返 し ます。 各行が実行 さ れ る たびに、 黄色の矢印が 1 行ずつ進む こ と が確認で き ま す。 シ ミ ュ レ ー タ で別の フ ァ イ ルの行が実行 さ れ る 場合は、 新 し い フ ァ イ ルが開き コ ー ド 内を黄色の矢印が 1 行ずつ進みま す。 多 く のシ ミ ュ レーシ ョ ンでは、 [Step] コ マ ン ド の実行中に複数フ ァ イ ルが開 き ます。 [Console] タ ブでは、 [Step] コ マ ン ド が HDL コー ド で ど こ ま で進んでい る か も 表示 さ れます。 ブ レー ク ポ イ ン ト の使用 ブ レー ク ポ イ ン ト は、 ソ ース コ ー ド に含まれ る ユーザー定義の停止ポ イ ン ト で、 デザ イ ン をデバ ッ グす る と き に使用 し ま す。 ブ レ ー ク ポ イ ン ト は、 Step コ マ ン ド を使用 し て コ ー ド の各行でシ ミ ュ レーシ ョ ン を停止す る と 時間がかか り すぎ る 可能性があ る 大型のデザ イ ンのデバ ッ グで特に役に立 ち ます。 HDL フ ァ イ ルの実行行にブ レ ー ク ポ イ ン ト を設定 し 、 ブ レー ク ポ イ ン ト が設定 さ れてい る ソ ー ス コ ー ド 行に到達す る ま で コ ー ド を継続 し て実行で き ます。 注記 : ブ レー ク ポ イ ン ト を設定で き る のは、実行 コ ー ド 行のみです。実行行以外の行にブ レー ク ポ イ ン ト を配置 し て も 、 追加 さ れません。 ブ レ ー ク ポ イ ン ト の設定 ブ レー ク ポ イ ン ト を設定す る には、 次の手順に従い ます。 1. [View] → [Breakpoint] → [Toggle Breakpoint] を ク リ ッ ク す る か、 [Toggle Breakpoint] ボ タ ン を ク リ ッ ク し ます。 2. HDL フ ァ イ ルで コ ー ド 行の行番号の右側を ク リ ッ ク し ます。 行の横にブ レー ク ポ イ ン ト ア イ コ ンが表示 さ れます。 注記 : コ ー ド 行を右 ク リ ッ ク し て [Toggle Breakpoint] を ク リ ッ ク し て も 、同 じ 操作を実行で き ます。 終了す る と 、 シ ミ ュ レーシ ョ ン ブ レー ク ポ イ ン ト ア イ コ ンが コ ー ド 行の横で開き 、ブ レー ク ポ イ ン ト の リ ス ト が [Breakpoints] パネルに表示 さ れます。 ブ レ ー ク ポ イ ン ト を使用 し たデザイ ンのデバ ッ グ 1. HDL ソ ース フ ァ イ ルを開 き ます。 詳細は、 24 ページの 「HDL ソ ース フ ァ イ ルを開 く 」 を参 照 し て く だ さ い。 2. 78 ページの 「ブ レー ク ポ イ ン ト の設定」 に示す よ う に、HDL ソ ース フ ァ イ ルで実行行にブ レー ク ポ イ ン ト を設定 し ます。 3. すべてのブ レー ク ポ イ ン ト を設定す る ま で、 手順 1 と 2 を繰 り 返 し ます。 4. 波形ウ ィ ン ド ウ を ク リ ッ ク し て波形に戻 り ます。 • 最初か ら 実行す る には、 [Simulation] → [Restart] を ク リ ッ ク し ます。 • [Simulation] → [Run All] ま たは [Simulation] → [Run for Specified Time] を使用 し ます。 シ ミ ュ レーシ ョ ンはブ レー ク ポ イ ン ト ま で実行 さ れ、停止 し ます。HDL ソ ース フ ァ イ ル が表示 さ れ、 ブ レー ク ポ イ ン ト の停止位置が黄色の矢印で示 さ れます。 78 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ブ レー ク ポ イ ン ト の使用 5. 波形ウ ィ ン ド ウ に戻 り 、 信号値の変化な どデザ イ ンの動作がブ レー ク ポ イ ン ト で予期どお り で あ る こ と を確認 し ます。 6. 結果に満足す る ま で、 ブ レー ク ポ イ ン ト ご と に上記の手順を繰 り 返 し ます。 HDL ソ ース フ ァ イ ルで設定 し たブ レー ク ポ イ ン ト に停止 し なが ら 、 制御 さ れた シ ミ ュ レー シ ョ ンが実行 さ れます。 デザ イ ンのデバ ッ グ中に [Simulation] → [Step] を実行 し て、一行ずつシ ミ ュ レーシ ョ ン を進め る こ と でデザ イ ン を厳密にデバ ッ グす る こ と も で き ます。 ブ レ ー ク ポ イ ン ト の削除 HDL ソ ース コ ー ド か ら 1 つま たはすべてのブ レー ク ポ イ ン ト を削除で き ます。 1 つのブ レ ー ク ポ イ ン ト の削除 次のいずれかの手順で 1 つのブ レー ク ポ イ ン ト を削除 し ます。 • [Breakpoint] ボ タ ン を ク リ ッ ク し ます。 • Tcl プ ロ ンプ ト に次を入力 し ます。 • 「bp list」 と 入力 し てデザ イ ンに含まれ る ブ レー ク ポ イ ン ト すべて を リ ス ト し 、 各ブ レー ク ポ イ ン ト の イ ンデ ッ ク ス番号お よ び行数を示 し ます。 • 「bp del」 ま たは 「bp remove」 に続けてブ レー ク ポ イ ン ト の イ ンデ ッ ク ス番号を入力 し ま す。 詳細は、 104 ページの 「bp」 を参照 し て く だ さ い。 注記 : ブ レー ク ポ イ ン ト は [Breakpoints] パネルで右 ク リ ッ ク し て [Delete] を ク リ ッ ク す る か [Delete] ボ タ ン を ク リ ッ ク し て も 削除で き ます。 全ブ レ ー ク ポ イ ン ト の削除 すべてのブ レー ク ポ イ ン ト を削除す る には、 次のいずれかの手順を使用 し て く だ さ い。 • [View] → [Breakpoint] → [Delete All Breakpoints] を ク リ ッ ク し ます。 • [Delete All Breakpoints] ボ タ ン を ク リ ッ ク し ます。 • Tcl プ ロ ンプ ト に 「bp clear 」 と 入力 し ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 79 第 6 章 : ソ ース レベルでのデバ ッ グ 80 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 第7章 消費電力のア ク テ ィ ビテ ィ データの書き出し ISim では、デザ イ ンの ス イ ッ チン グ ア ク テ ィ ビ テ ィ デー タ を含むフ ァ イ ルを書 き 出す こ と がで き 、 次の 2 つの操作に役立ち ます。 • XPower Analyzer な ど の消費電力解析ツールを使用 し た消費電力の概算 • マ ッ プ、配置配線 (PAR) ツールを使用 し た消費電力を最適にす る デザ イ ンの イ ンプ リ メ ン テー ション ス イ ッ チン グ ア ク テ ィ ビ テ ィ デー タ は RTL レ ベル ま たは配置配線 (PAR) が完了 し てい る デザ イ ン のシ ミ ュ レ ーシ ョ ン か ら 書 き 出す こ と がで き ます。 マ ッ プ、 PAR、 お よ び XPower Analyzer で は、 RTL お よ び配置配線後のシ ミ ュ レーシ ョ ンか ら 生成 さ れた ス イ ッ チン グ ア ク テ ィ ビ テ ィ デー タ を使用で き ます。 消費電力解析お よ び消費電力を最適化 し た イ ンプ リ メ ン テーシ ョ ンの精度が高 く な る よ う 、 配置配 線シ ミ ュ レーシ ョ ンで生成 し た ス イ ッ チ ン グ ア ク テ ィ ビ テ ィ デー タ を使用す る よ う に し て く だ さ い。 こ れでデー タ が配置配線の結果か ら 生 じ たデザ イ ン内部 ノ ー ド と 一致 し ます。 ま た、 消費解析お よ び消費電力を最適に し た イ ンプ リ メ ン テーシ ョ ン で RTL シ ミ ュ レ ーシ ョ ン か ら 生成 さ れ る ス イ ッ チン グ ア ク テ ィ ビ テ ィ デー タ を使用す る こ と も 可能です。こ のシ ミ ュ レーシ ョ ンは配置配線後のシ ミ ュ レーシ ョ ン よ り も 高速です。ただ し 、デザ イ ンの入力お よ び出力のア ク テ ィ ビ テ ィ デー タ のみが考慮 さ れます。 ツールでは、 デザ イ ンの内部 ノ ー ド のア ク テ ィ ビ テ ィ を予測す る ためにベ ク タ ーレ ス解析アルゴ リ ズ ムが使用 さ れます。 こ れ ら の ツールで ス イ ッ チン グ ア ク テ ィ ビ テ ィ デー タ を使用す る 方法についての詳細は、 『 コ マン ド ラ イ ン ツール ユーザー ガ イ ド 』 で イ ン プ リ メ ン テーシ ョ ン ツール (MAP と PAR) を、 消費解 析方法は XPower Analyzer ヘルプ を参照 し て く だ さ い。 こ れ ら の文書への リ ン ク は、 付録 D 「そ の他の リ ソ ース」 に含まれます。 ア ク テ ィ ビ テ ィ フ ァ イルの作成 次の 2 種類の ス テ ィ ミ ュ ラ ス フ ァ イ ルを書 き 出す こ と がで き ます。 • SAIF Switching Activity Interchange format (SAIF) フ ァ イ ルには、 デザ イ ン に含 ま れ る 信号の ト グ ル カ ウ ン ト (遷移数) が含ま れてい ます。 ま た、 信号の時間を 0、 1、 X、 Z に指定す る タ イ ミ ン グ属性 も 含 ま れてい ます。 SAIF フ ァ イ ルは VCD フ ァ イ ル よ り も 小 さ いため、 消費電力に 関連す る タ ス ク (消費電力解析 ま たは消費電力を最適にす る イ ン プ リ メ ン テーシ ョ ン ) で使用 • VCD Value Change Dump (VCD) フ ァ イ ルは、 ヘ ッ ダー情報、 変数定義、 お よ びシ ミ ュ レ ーシ ョ ン の各ス テ ッ プでの値の変化の詳細を含む ASCII フ ァ イ ルです。 こ のフ ァ イ ルを使用する と 、 デ す る こ と を推奨 し ます。 ザ イ ンの消費電力を概算で き ます。こ の フ ァ イ ルの計算時間は長 く な る 可能性があ り 、ま た フ ァ イ ル サ イ ズは SAIF フ ァ イ ル よ り 大 き く な り ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 81 第 7 章 : 消費電力のア ク テ ィ ビ テ ィ デー タ の書き出 し ア ク テ ィ ビ テ ィ フ ァ イ ルを書 き 出すには、 次の手順に従い ます。 1. 消費電力の概算に使用す る シ ミ ュ レーシ ョ ン中の信号遷移を収集す る ア ク テ ィ ビ テ ィ ファイ ルを作成 し ます。 • SAIF : Tcl プ ロ ンプ ト で 「saif」 コ マン ド を使用 し ます。 • VCD : Tcl プ ロ ンプ ト で 「vcd」 コ マン ド を使用す る か、コ マン ド ラ イ ンでシ ミ ュ レーシ ョ ン実行フ ァ イ ルに対 し て -vcdfile オプシ ョ ン を指定 し ます。 2. シ ミ ュ レーシ ョ ン を実行 し ます。 た と えば、 次の よ う に実行 し た と し ます。 run 1000 ns コ マ ン ド ラ イ ンでシ ミ ュ レーシ ョ ン実行フ ァ イ ルを使用 し てシ ミ ュ レーシ ョ ン を実行す る 場 合は、 手順 1 と 2 を同時に実行で き ます。 3. シ ミ ュ レーシ ョ ンが完了 し た ら saif ま たは vcd コ マ ン ド を使用 し て SAIF ま たは VCD フ ァ イ ルを閉 じ ます。 次はその例です。 saif close vcd dumpoff 4. 作業デ ィ レ ク ト リ か ら SAIF ま たは VCD フ ァ イ ルを取 り 出 し てほかの ツールで使用 し ます。 82 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 要件 第8章 ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンの使用 ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン (HWCoSim) は、 ツール ベース の HDL シ ミ ュ レーシ ョ ンの補 足フ ロ ー と し て統合 さ れてい ます。 こ の機能を使用す る と 、 デザ イ ン ま たはデザ イ ンの一部分のシ ミ ュ レーシ ョ ン をハー ド ウ ェ アで実行で き ます。 こ れに よ り 、 複雑なデザ イ ンのシ ミ ュ レーシ ョ ン を迅速化 し てデザ イ ンがハー ド ウ ェ アで正 し く 動作す る こ と を検証で き ます。 要件 ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン を実行す る には、 次の要件を満たす必要があ り ます。 • Xilinx® ISE® Design Suite 14.x ( いずれかのエデ ィ シ ョ ン ) • 32 ビ ッ ト ま たは 64 ビ ッ ト の Windows ま たは Linux • JTAG ヘ ッ ダーが付いてい る FPGA ボー ド サポー ト さ れ る FPGA デバ イ ス は、 次の と お り です。 • • Virtex®-4、 Virtex-5、 Virtex-6、 Virtex-7 • Spartan®-3、 Spartan-3E、 Spartan-3A、 Spartan-3AN、 Spartan-3A DSP、 Spartan-6 • Artix™-7、 Kintex™-7 ザ イ リ ン ク ス パ ラ レル ケーブル IV ま たはプ ラ ッ ト フ ォーム ケーブル USB モデルの使用 ハー ド ウ ェ ア協調シ ミ ュ レ ーシ ョ ン (HWCoSim) では、 ロ ジ ッ ク ベース デザ イ ン向けモデル と ハ イ ブ リ ッ ド デザ イ ン向けのモデルの 2 つのモデルがサポー ト さ れてい ます。 完全ロ ジ ッ ク ベース デザイ ン 完全 ロ ジ ッ ク ベース デザ イ ンの協調シ ミ ュ レーシ ョ ンは、 ISim シ ミ ュ レー タ と ロ ッ ク ス テ ッ プ方 式 (並列処理) で実行 さ れます。 協調シ ミ ュ レーシ ョ ン を実行す る モジ ュ ールには、 通常次の特徴が あ り ます。 • LUT、 フ リ ッ プ フ ロ ッ プ、 ブ ロ ッ ク RAM、 お よ び DSP プ リ ミ テ ィ ブのみで構成 • ポー ト が ISim で制御 さ れてお り 、 テ ス ト ベンチか ら ア ク セ ス可能 (外部 I/O な し ) • モジ ュ ールの機能 と モジ ュ ールの ク ロ ッ ク 周波数は無関係のため、 連続 し た ク ロ ッ ク ま たは特 定の周波数の ク ロ ッ ク で実行す る 必要があ り ません。 完全 ロ ジ ッ ク の ロ ッ ク ス テ ッ プ方式に基づいたハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンには、 次の利点 があ り ます。 • 計算量の多いデザ イ ンでシ ミ ュ レーシ ョ ン を高速化 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 83 第 8 章 : ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンの使用 • ハー ド ウ ェ ア内での論理検証 • ツール シ ミ ュ レーシ ョ ン を ビ ッ ト お よ びサ イ ク ル単位で正確に実行 ハイ ブ リ ッ ド デザイ ン 完全に ロ ジ ッ ク に基づいてい る 使用モデルはセ ッ ト ア ッ プが単純ですが、 ハー ド IP、 外部 I/O、 お よ び特定の ク ロ ッ ク 周波数を必要 と す る よ う なデザ イ ンには不向 き です。ISim のハー ド ウ ェ ア協調 シ ミ ュ レーシ ョ ンでは、 次の よ う な特徴のデザ イ ン を サポー ト す る ハ イ ブ リ ッ ド の協調シ ミ ュ レー シ ョ ン フ ローが提供 さ れてい ます。 • ハー ド IP ブ ロ ッ ク 、 DCM/PLL、 お よび MGT で構成 • ツール シ ミ ュ レーシ ョ ン と ロ ッ ク ス テ ッ プ し てエ ミ ュ レー ト さ れた ク ロ ッ ク ソ ース を使用す る ク ロ ッ ク も あれば、 外部 ク ロ ッ ク ソ ース を使用する フ リ ー ラ ン ニ ン グの ク ロ ッ ク も あ る 。 • 一部のポー ト を ISim で制御 さ れずツールのテ ス ト ベンチか ら も ア ク セ ス で き ない外部 I/O に マ ッ プ可能 ハ イ ブ リ ッ ド 協調シ ミ ュ レーシ ョ ン フ ロ ーには、 次の利点があ り ます。 • シ ミ ュ レーシ ョ ンの高速化 • ハー ド ウ ェ アで機能を検証 • 通常の協調シ ミ ュ レーシ ョ ン セ ッ ト ア ッ プ よ り 優れてお り 、ハー ド ウ ェ ア と ソ フ ト ウ ェ ア間で カ ス タ マ イ ズ し た通信や複雑な通信が可能 制限事項 ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン (HWCoSim) には、 次の よ う な制限があ り ます。 • デザ イ ンの イ ン ス タ ン ス を 1 つのみ選択で き 、 その イ ン ス タ ン ス に最上位のテ ス ト ベンチを選 択す る こ と はで き ません。 • ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンに選択 し た イ ン ス タ ン スは、 XST を使用 し て合成 し 、 選択 し たボー ド の タ ーゲ ッ ト FPGA デバ イ ス に イ ンプ リ メ ン ト で き る よ う にす る 必要があ り ます。 ロ ッ ク ス テ ッ プ方式のハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンでは、 ク ロ ッ ク 供給お よ び I/O に も 制限 があ り ます。 84 • ハー ド ウ ェ アで協調シ ミ ュ レーシ ョ ン さ れ る イ ン ス タ ン スは、ISim で制御 さ れ る エ ミ ュ レー ト ク ロ ッ ク ソ ース に よ り ク ロ ッ ク が供給 さ れます。 こ の ク ロ ッ ク は、 シ ミ ュ レーシ ョ ン と は非同 期です。 こ のため、 協調シ ミ ュ レーシ ョ ンはハー ド ウ ェ アで実行 さ れ る デザ イ ンのシナ リ オが 完全にはモデル化 さ れず、 タ イ ミ ン グ シ ミ ュ レーシ ョ ン と し ては機能 し ません。 • 協調シ ミ ュ レーシ ョ ンの イ ン ス タ ン スは、外部 I/O ま たは MGT (Multi-Gigabit Transceiver) に ア ク セ ス し た り 、 継続 ク ロ ッ ク や特定の周波数の ク ロ ッ ク を必要 と す る DCM や PLL な ど の プ リ ミ テ ィ ブを イ ン ス タ ン シエー ト で き ません。 • 協調シ ミ ュ レーシ ョ ンの イ ン ス タ ン ス のポー ト はすべて ス ラ イ ス レ ジ ス タ ま たは LUT に配線 で き る よ う にす る 必要があ り ます。 FPGA の一部の リ ソ ース では、 IOB やプ リ ミ テ ィ ブの特定 ポー ト な どへの専用配線が必要なため、 協調シ ミ ュ レーシ ョ ンの イ ン ス タ ン ス のポー ト には接 続で き ません。 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 コ ンパイルの使用方法 コ ンパイルの使用方法 ツール ベース の HDL シ ミ ュ レーシ ョ ン と 同様、 ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン を実行す る 前 にシ ミ ュ レーシ ョ ン実行フ ァ イ ルにデザ イ ン を コ ンパ イ ルす る 必要があ り ます。 コ ンパ イ ルす る に は、 fuse コ マン ド を コ マン ド ラ イ ン ま たは ISE/PlanAhead™ か ら 起動 し 、 協調シ ミ ュ レーシ ョ ン 実行フ ァ イ ル、 ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム、 お よ び協調シ ミ ュ レーシ ョ ン プ ロ ジ ェ ク ト フ ァ イ ルを作成 し ます。 fuse コ マ ン ド ラ イ ン フ ロー fuse コ マ ン ド では、 ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン用にデザ イ ン を コ ンパ イ ルす る 場合、 複数 の コ ンパ イ ル オプシ ョ ンがあ り ます。 使用方法 fuse -prj <project file> <top level modules> -hil_zynq_ps -hwcosim_board <board> -hwcosim_clock <clock> -hwcosim_constraints <constraints file> -hwcosim_incremental [0|1] -hwcosim_instance <instance> -hwcosim_no_combinatorial_path 説明 : • -hil_zynq_ps : Zynq™ プ ロ セ ッ サ シ ス テ ム (PS) ハー ド ウ ェ ア イ ン ループ (HIL) シ ミ ュ レーシ ョ ン を イ ネーブルに し ます。 • -hwcosim_board : 協調シ ミ ュ レーシ ョ ンに使用す る ハー ド ウ ェ ア ボー ド を指定 し ます。 サポー ト さ れ る ボー ド の リ ス ト は、 92 ページの 「サポー ト さ れ る ボー ド 」 を参照 し て く だ さ い。 • -hwcosim_clock : イ ン ス タ ン ス の ク ロ ッ ク 入力のポー ト 名を指定 し ます。 複数の ク ロ ッ ク を使用す る デザ イ ン では、 こ のオプシ ョ ン で最高速の ク ロ ッ ク を指定 し 、 ISim でシ ミ ュ レーシ ョ ンが最適化 さ れ る よ う に し ます。その他の ク ロ ッ ク ポー ト は、通常 のデー タ ポー ト と し て処理 さ れます。 • -hwcosim_constraints ( オプシ ョ ン ) : ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン用に イ ン ス タ ン ス を イ ン プ リ メ ン ト す る ための追加制約 を含むカ ス タ ム制約 フ ァ イ ルを 指定 し ま す。 こ の制約フ ァ イ ルは、 ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン フ ロ ーで外部 I/O ま たは ク ロ ッ ク にマ ッ プす る イ ン ス タ ン ス のポー ト を指定す る と き に も 使用 し ます。 • -hwcosim_incremental (オプシ ョ ン ) : fuse で前回生成 さ れたハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム を再利用 し 、 イ ン プ リ メ ン テーシ ョ ン フ ロ ーを ス キ ッ プす る よ う 指定 し ます。 • -hwcosim_instance : ハー ド ウ ェ アで協調シ ミ ュ レーシ ョ ンす る ために イ ン ス タ ン ス の 完全階層パ ス を指定 し ます。 • -hwcosim_no_combinatorial_path : FPGA で実行 さ れ る デザ イ ンに入力か ら 出力 ま での純粋な組み合わせパ ス が含まれない場合に、 シ ミ ュ レーシ ョ ンの速度を上げます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 85 第 8 章 : ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンの使用 ツール フ ロー 1. プ ロ ジ ェ ク ト のシ ミ ュ レー タ に ISim が選択 さ れてい る こ と を確認 し ます。[Simulation] ビ ュ ー に切 り 替え ます。 2. [Hierarchy] ペ イ ンでハー ド ウ ェ アで協調シ ミ ュ レーシ ョ ンす る イ ン ス タ ン ス を選択 し て右 ク リ ッ ク し ます。 3. [Source Properties] を ク リ ッ ク し 、 [Source Properties] ダ イ ア ロ グ ボ ッ ク ス を開き ます。 4. [Source Properties] ダ イ ア ロ グ Co-Simulation] を ク リ ッ ク し ます。 ボ ッ ク ス左側の [Category] リストで [Hardware 5. ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンに対 し て次のプ ロ パテ ィ を設定 し ます。 • [Enable Hardware Co-Simulation] を オンに し ます。 ハー ド ウ ェ ア協調シ ミ ュ レ ーシ ョ ン では イ ン ス タ ン ス 1 つのみを イ ネーブルにで き る の で、 こ のプ ロ パテ ィ を オンにす る と 、 以前にハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンで イ ネー ブルに さ れていた別の イ ン ス タ ン ス がデ ィ ス エーブルに さ れます。 • [Clock Port] フ ィ ール ド に イ ン ス タ ン スの ク ロ ッ ク ポー ト 名を入力 し ます。 複数の ク ロ ッ ク を使用する イ ン ス タ ン ス の場合は、最高速の ク ロ ッ ク ポー ト の名前を指定し て く だ さ い。 • [Target Board for Hardware Co-Simulation] ド ロ ッ プダ ウ ン リ ス ト か ら ボー ド を選択 し ま す。 リ ス ト には、 同 じ プ ロ ジ ェ ク ト デバ イ ス フ ァ ミ リ の FPGA のボー ド のみが表示 さ れ ます。 • 以前のハー ド ウ ェ ア協調シ ミ ュ レ ーシ ョ ン の ビ ッ ト ス ト リ ーム が あ り 、 協調シ ミ ュ レ ー シ ョ ン の イ ン ス タ ン ス を 変更 し な い場合は、 [Reuse Last Bitstream File] を オ ン に し て、 ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンの イ ンプ リ メ ン テーシ ョ ン フ ロ ーを ス キ ッ プ し ます。 • [OK] を ク リ ッ ク し ます。 ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンが イ ネーブルに さ れてい る イ ン ス タ ン ス の横に 特別なア イ コ ン が表示 さ れます。 [Hierarchy] ペ イ ンでテ ス ト ベンチ モジ ュ ールを選択 し てシ ミ ュ レ ーシ ョ ン を実行 し ます。 ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンは、 選択 し た イ ン ス タ ン ス よ り 上の階層レベルで開始す る 必要があ り ます。 6. テ ス ト ベンチの [Instances and Processes] パネルで次を実行 し ます。 [Simulate Behavior Model] を ダブル ク リ ッ ク し 、コ ンパ イ ルお よ びシ ミ ュ レーシ ョ ン プ ロ セ ス を開始 し ます。 7. [Simulate Behavior Model] のプ ロ セ ス プ ロ パテ ィ を開 く と 、コ ンパ イ ルお よ びシ ミ ュ レーシ ョ ン プ ロ セ ス を開始す る 前に ISim のオプシ ョ ン を設定で き ます。\図 8-1 か ら 88 ページの図 8-3 は、 手順 1 ~ 8 を示 し てい ます。 86 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ツール フ ロー 図 8-1 : 手順 1、 2、 3 図 8-2 : 手順 4、 5 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 87 第 8 章 : ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンの使用 図 8-3 : 手順 6、 7、 8 ハイ ブ リ ッ ド 協調シ ミ ュ レーシ ョ ン フ ロー 外部ピ ンお よ びフ リ ー ラ ン ニ ン グ ク ロ ッ ク を使用す る には、 カ ス タ ム制約フ ァ イ ル (UCF) を供給 す る 必要があ り ます。 こ の フ ロ ーでは、 -hwcosim_constraints オプシ ョ ンで指定 し た制約フ ァ イ ルが読み出 さ れ、 FPGA の IOB にマ ッ プす る ピ ンが決定 さ れます。 1. ISim シ ミ ュ レーシ ョ ン と ロ ッ ク ス テ ッ プ方式で実行する デザ イ ン箇所お よ びフ リ ー ラ ン ニ ン グにな る 箇所を決定 し ます。 89 ページの図 8-4 は、 こ の コ ン セプ ト を簡単に示 し てい ます。 88 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ハイ ブ リ ッ ド 協調シ ミ ュ レーシ ョ ン フ ロー 図 8-4 : ロ ッ ク ス テ ッ プ方式 と フ リ ー ラ ン ニ ン グ方式の適用箇所 2. 元のデザ イ ン制約フ ァ イ ルを コ ピー し て、 カ ス タ ム制約フ ァ イ ルのベース と し て使用 し ます。 3. ISim で制御す る ピ ンの LOC 制約を コ メ ン ト ア ウ ト す る よ う にカ ス タ ム制約フ ァ イ ルを編集 し ます。 LOC 制約が設定 さ れてい る ほかの ピ ンは、 外部 と 想定 さ れます。 4. た と えば、次の よ う な書 き 込み側を シ ン グル ス テ ッ プ、読み出 し 側を フ リ ー ラ ン ニ ン グにす る よ う な FIFO デザ イ ンがあ る と し ます。 module FIFO (WCLK, WDATA, WE, RCLK, RDATA, RE); isim_hwcosim.ucf は、 次の よ う にな り ます。 # The following pin LOCs commented out as they are driven by ISim # NET "WCLK" PERIOD = 5 ns HIGH 50%; # NET "WCLK" LOC = "A1"; # <--- this becomes single-step clock # NET "WDATA" LOC = "A2"; # <--- these are accessible from ISim testbench # NET "WE" LOC = "A3"; NET "RCLK" PERIOD = 10 ns HIGH 50%; NET "RCLK" LOC = "B1"; # <-- this becomes free-running clock NET "RDATA" LOC = "B2"; # <-- these go to external IOBs NET "RE" LOC = "B3"; ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 89 第 8 章 : ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンの使用 ハー ド ウ ェ ア ボー ド 使用方法 次に、 ハー ド ウ ェ ア協調シ ミ ュ レ ーシ ョ ン を 実行す る ためのハー ド ウ ェ ア の イ ン ス ト ールお よ び セ ッ ト ア ッ プ方法を示 し ます。 1. ハー ド ウ ェ ア ボー ド の電源がオフ にな っ てい る こ と を確認 し ます。 2. ザ イ リ ン ク ス パ ラ レル ケーブル IV を使用 し てい る 場合は、 手順 2a ~ 2d に従い ます。 a. ザ イ リ ン ク ス パ ラ レル ケーブル IV の DB25 プ ラ グ コ ネ ク タ を IEEE 1284 準拠 PC パ ラ レ ル ( プ リ ン タ ー ) ポー ト コ ネ ク タ に接続 し ます。 b. 幅の狭い (14 ピ ン ) 6 イ ンチ高速 リ ボ ン ケーブルを使用 し て、ザ イ リ ン ク ス パ ラ レル ケー ブル IV を ボー ド 上 FPGA の JTAG ヘ ッ ダーに接続 し ます。 c. 電源ジ ャ ッ ク ケーブルを PC の キーボー ド / マ ウ ス の コ ネ ク タ に接続 し ます。 d. 必要に応 じ てケーブル/ マ ウ ス ケーブルのオ ス端子をザ イ リ ン ク ス電源ジ ャ ッ ク ケーブル ( ス プ リ ッ タ ー ケーブル) の メ ス コ ネ ク タ に接続 し ます。 3. ザ イ リ ン ク ス パ ラ レル ケーブル USB を使用 し てい る 場合は、 手順 3a ~ 3b に従い ます。 a. ザ イ リ ン ク ス プ ラ ッ ト フ ォーム ケーブル USB を PC の USB ポー ト に接続 し ます。 b. 幅の狭い (14 ピ ン ) 6 イ ンチ高速 リ ボ ン ケーブルを使用 し て、 ザ イ リ ン ク ス プ ラ ッ ト フ ォーム ケーブル USB を ボー ド 上 FPGA の JTAG ヘ ッ ダーに接続 し ます。 4. ボー ド でポ イ ン ト ツー ポ イ ン ト (P2P) イ ーサネ ッ ト 協調シ ミ ュ レーシ ョ ンがサポー ト さ れて お り 、 イ ーサネ ッ ト P2P を使用 し て高速協調シ ミ ュ レーシ ョ ン を実行す る 場合は、 イ ーサネ ッ ト ケーブルを使用 し て PC の イ ーサネ ッ ト ポー ト を ボー ド の イ ーサネ ッ ト ポー ト に接続 し ま す。 コ ン ピ ュ ー タ ーに複数の イ ーサネ ッ ト カー ド ま たはポー ト があ る 場合は、 ボー ド を接続 し たポー ト の MAC ア ド レ ス を確認 し て く だ さ い。 ISim の Tcl コ マン ド hwcosim set ethernetInterfaceID を使用 し て こ のア ド レ ス を ISim エン ジ ンに渡 し ます。 5. ボー ド の電源を入れて、 ケーブルの LED が緑色に点灯す る こ と を確認 し ます。 6. ザ イ リ ン ク ス ケーブル ド ラ イ バーを イ ン ス ト ール し ます。 イ ーサネ ッ ト の詳細については、 94 ページの 「 イ ーサネ ッ ト の決定」 を参照 し て く だ さ い。 ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン ツール シ ミ ュ レーシ ョ ンの実行フ ァ イ ル と 異な り 、ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンの実行フ ァ イ ルではハー ド ウ ェ ア ボー ド と 通信 し て、選択 し たデザ イ ン箇所のシ ミ ュ レーシ ョ ン をハー ド ウ ェ アにオ フ ロ ー ド し ます。 こ の実行フ ァ イ ルは、 ツール シ ミ ュ レーシ ョ ン フ ロ ー と 同様に起動で き ます。 • 実行フ ァ イ ルを起動す る と 、 Tcl シ ェ ル イ ン タ ーフ ェ イ ス が開 き シ ミ ュ レーシ ョ ン を制御で き ます。 • -gui オプシ ョ ン と 共に起動する と 、 ISim の GUI フ ロ ン ト エン ド が開いて波形が表示 さ れます。 シ ミ ュ レーシ ョ ンの開始前、 お よ びシ ミ ュ レーシ ョ ンが リ ス タ ー ト さ れ る たびに、 実行フ ァ イ ルで は FPGA がハー ド ウ ェ ア協調シ ミ ュ レ ーシ ョ ン ビ ッ ト ス ト リ ーム で コ ン フ ィ ギ ュ レーシ ョ ン さ れ ます。こ の コ ン フ ィ ギ ュ レーシ ョ ン プ ロ セ スは JTAG ケーブルの速度に よ っ ては数秒か ら 数十秒か か る 場合があ り ます。 ISim では、 コ ン フ ィ ギ ュ レーシ ョ ンが終了す る と [Console] パネルにそれを 示す メ ッ セージが表示 さ れます。 90 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンの Tcl コ マ ン ド ISim ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンの Tcl コ マ ン ド ISim では、 ハー ド ウ ェ ア協調シ ミ ュ レ ーシ ョ ン でデザ イ ン階層に含 ま れ る イ ン ス タ ン ス のプ ロ パ テ ィ にア ク セ ス で き る よ う 、 次の Tcl ( ツール コ マン ド 言語) コ マン ド を提供 し てい ます。 こ れ ら の コ マ ン ド は ス コ ープに影響を受け る ので、最初に 「scope」 コ マン ド を使用 し てデザ イ ン階層でハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン向けに イ ネーブルに さ れてい る イ ン ス タ ン ス を選択す る 必要があ り ます。 • hwcosim get <property> 現在の ス コ ープでハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン イ ン ス タ ン ス のプ ロ パテ ィ を取得 し ま す。た と えば、次の Tcl コ マ ン ド では /mytestbench/top/hwcosim_inst にあ る ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン イ ン ス タ ン ス の cableParameters プ ロ パテ ィ を取得 し ます。 scope /mytestbench/top/hwcosim_inst hwcosim get cableParameters • hwcosim set <property> <value> 現在の ス コ ープでハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン イ ン ス タ ン ス のプ ロ パテ ィ を設定 し ま す。 hwcosim set コ マン ド は、 初期化が終了 し た後 (init/restart コ マン ド の実行後) と シ ミ ュ レーシ ョ ン実行の前 (run コ マ ン ド の実行前) で適用 さ れます。 ま た、 こ の コ マン ド はシ ミ ュ レーシ ョ ン実行中には適用 さ れないので、init ま たは restart コ マン ド を呼び出 し た後 に -hwcosim set コ マン ド を呼び出す必要があ り ます。た と えば、次の Tcl コ マ ン ド では 2 回 のシ ミ ュ レーシ ョ ン実行で /mytestbench/top/hwcosim_inst にあ る ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン イ ン ス タ ン ス の skipConfig プ ロ パテ ィ が設定 さ れます。 init scope /mytestbench/top/hwcosim_inst hwcosim set skipConfig 1 run 1000 ns restart scope /mytestbench/top/hwcosim_inst hwcosim set skipConfig 1 run 1000 ns 次のハー ド ウ ェ ア協調シ ミ ュ レ ーシ ョ ン のプ ロ パテ ィ は、 シ ミ ュ レ ーシ ョ ン の実行前に変更で き ま す。 • skipConfig デフ ォ ル ト は 0 です。 FPGA コ ン フ ィ ギ ュ レーシ ョ ン を ス キ ッ プす る 場合は 1 に設定 し ます。 コ ン フ ィ ギ ュ レーシ ョ ン を ス キ ッ プす る には、 FPGA が有効なハー ド ウ ェ ア協調シ ミ ュ レー シ ョ ン ビ ッ ト ス ト リ ームで コ ン フ ィ ギ ュ レーシ ョ ン さ れてい る 必要があ り ます。 さ れていない 場合は、 予期せぬ動作が発生す る 可能性があ り ます。 • cableParameters デフ ォ ル ト は、 空の文字列にな っ てい ます。 こ のプ ロ パテ ィ は、 iMPACT ま たは ChipScope™ Analyzer でサポー ト さ れてい る サー ド パーテ ィ の JTAG ケーブルを指定す る と き に使用 し ま す。ケーブルのプ ラ グ イ ン パ ラ メ ー タ ーの指定については、iMPACT ヘルプお よ び『ChipScope Pro ソ フ ト ウ ェ アお よ び コ ア ユーザー ガ イ ド 』 (UG029) を参照 し て く だ さ い。こ の文書への リ ン ク は、 付録 D 「その他の リ ソ ース」 に含まれます。 • shareCable デフ ォ ル ト は 0 です。 こ のプ ロ パテ ィ は、 JTAG ベース の協調シ ミ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス でのみ使用で き ま す。 JTAG ケーブルを Xilinx Microprocessor Debugger (XMD) ま たは ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 91 第 8 章 : ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンの使用 ChipScope Analyzer と 共有 し て同時ア ク セ スす る 場合は 1 に設定 し ます。こ のモー ド はハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン シ ミ ュ レーシ ョ ンのパフ ォーマン ス を大幅に下げ る 可能性があ る ので、 必要な と き のみ使用 し て く だ さ い。 • ethernetInterfaceID デフ ォ ル ト は、 空の文字列にな っ てい ます。 こ のプ ロ パテ ィ は、 イ ーサネ ッ ト ベース の協調シ ミ ュ レーシ ョ ン イ ン ターフ ェ イ ス でのみ使用で き ます。 複数の イ ーサネ ッ ト カー ド がホ ス ト マシ ンにあ る 場合は、FPGA ボー ド に接続 さ れてい る イ ー サネ ッ ト カー ド を選択す る 必要があ り ます。 こ の場合、 イ ーサネ ッ ト カー ド の MAC ア ド レ ス (xx:xx:xx:xx:xx:xx) を設定 し ます。 詳細は、 94 ページの 「 イ ーサネ ッ ト の決定」 を参照 し て く だ さ い。 サポー ト さ れるボー ド ISim でハー ド ウ ェ ア協調シ ミ ュ レ ーシ ョ ン用に新 し い FPGA ボー ド を サ ポー ト す る には、 そ の ボー ド に JTAG ヘ ッ ダーが必要です。 次のボー ド 情報を記録 し たボー ド サポー ト フ ァ イ ルが必要 にな り ます。 • FPGA パーツ情報 • シ ス テ ム ク ロ ッ ク の周期お よ びピ ン ロ ケーシ ョ ン • JTAG バ ウ ン ダ リ ス キ ャ ン チ ェーン情報 ボー ド 情報を ボー ド サポー ト フ ァ イ ルに含め る と 、ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンでそのボー ド を使用で き ます。 こ のボー ド サポー ト フ ァ イ ルを生成す る GUI フ ロ ン ト エン ド はあ り ません。 別のボー ド を サポー ト す る には、 デフ ォ ル ト のボー ド サポー ト フ ァ イ ルを変更す る か、 ま たは別 のボー ド サポー ト フ ァ イ ルを供給 し ます。 別のボー ド サポー ト フ ァ イ ルを供給する 場合は、 フ ァ イ ル名は hwcosim.bsp に し て、 fuse を起動す る デ ィ レ ク ト リ に含め る 必要があ り ます。 ボー ド サポー ト フ ァ イ ルには、 特定の フ ォーマ ッ ト で記述 さ れたボー ド 仕様が含まれます。 次の例では ml402-jtag がボー ド 識別子 と し て fuse コ マン ド に供給 さ れて、 そのボー ド 向けにデ ザ イ ンが コ ンパ イ ル さ れます。 ‘ml402-jtag’ => { ‘Description’ => ‘ML402 (JTAG)’, ‘Vendor’ => ‘Xilinx’, ‘Type’ => ‘jtag’, ‘Part’ => ‘xc4vsx35-10ff668’, ‘Clock’ => { ‘Period’ => 10, ‘Pin’ => ‘AE14’, }, ‘BoundaryScanPosition’ => 3, }, ボー ド 識別子には、 次のプ ロ パテ ィ が含まれてい ます。 • Description : ボー ド の説明 • Vendor : ボー ド のベン ダー • Type : 使用す る 協調シ ミ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス の種類。 使用で き る 値は、 次の と お り です。 - 92 jtag japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 サポー ト さ れるボー ド - ppethernet : ( ポ イ ン ト ツー ポ イ ン ト の イ ーサネ ッ ト ベース のハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン ) • Part : ボー ド 上 FPGA のパーツ名 • Clock : シ ス テ ム ク ロ ッ ク 情報Period (お よ び VariablePeriods) : サポー ト さ れ る ク ロ ッ ク 周期 (ns) • Pin : ク ロ ッ ク ピ ンの ロ ケーシ ョ ン。 差動 ク ロ ッ ク ソ ース では Positive お よ び Negative ク ロ ッ ク ピ ンの両方を入力 し ます。 • BoundaryScanPosition : JTAG バウ ン ダ リ ス キ ャ ン チ ェーンの FPGA の位置 (1 か ら 順に指定)。こ の情報は、ザ イ リ ン ク ス iMPACT ツールを実行する こ と に よ り 確認で き ます。 注記 : ポ イ ン ト ツー ポ イ ン ト イ ーサネ ッ ト ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンでは、 さ ら に フ ィ ー ル ド を 指 定 す る 必 要 が あ り ま す。 例 と し て、 $XILINX/sysgen/hwcosim/data/ hwcosim.bsp フ ァ イ ルの ml605-ppethernet の設定を確認 し て く だ さ い。 ボー ド サポー ト フ ァ イル デフ ォ ル ト では、 次のザ イ リ ン ク ス ボー ド がサポー ト さ れてい ま す。 デフ ォ ル ト のボー ド サポー ト フ ァ イ ルは、 ISE® 14.x イ ン ス ト ールの次のデ ィ レ ク ト リ に含まれてい ます。 $XILINX/sysgen/hwcosim/data/hwcosim.bsp 次に、 デフ ォ ル ト でサポー ト さ れ る ボー ド を示 し ます。 • ml401-jtag - Xilinx® Virtex®-4 ML401 評価プ ラ ッ ト フ ォーム • ml402-jtag - Xilinx ML402 評価プ ラ ッ ト フ ォーム • ml403-jtag - Xilinx ML403 評価プ ラ ッ ト フ ォーム • ml405-jtag - Xilinx ML405 評価プ ラ ッ ト フ ォーム • ml410-jtag - Xilinx ML410 評価プ ラ ッ ト フ ォーム • ml501-jtag - Xilinx Virtex-5 ML501 評価プ ラ ッ ト フ ォーム • ml505-jtag - Xilinx ML505 評価プ ラ ッ ト フ ォーム • ml506-jtag - ML506 ppethernet - Xilinx ML506 評価プ ラ ッ ト フ ォーム • ml507-jtag - Xilinx ML507 評価プ ラ ッ ト フ ォーム • xupv5-jtag - Xilinx University Program XUPV5-LX110T 開発シ ス テ ム • ml510-jtag - Xilinx ML510 評価プ ラ ッ ト フ ォーム • ml605-jtag - ML605 ppethernet Xilinx Virtex-6 ML605 評価プ ラ ッ ト フ ォーム • kc705-jtag - Xilinx Kintex™-7 FPGA KC705 評価キ ッ ト • zc702-jtag - Zynq™-7000 EPP ボー ド • vc707-jtag - Xilinx Virtex-7 FPGA VC707 評価キ ッ ト • s3e-sk-jtag - Xilinx Spartan®-3E ス タ ー タ ー キ ッ ト • s3e-mb-jtag - Xilinx Spartan-3E MicroBlaze 開発キ ッ ト • s3a-sk-jtag - Xilinx Spartan-3A ス タ ー タ ー キ ッ ト • s3an-sk-jtag - Xilinx Spartan-3AN ス タ ー タ ー キ ッ ト • s3adsp1800a-jtag - Xilinx Spartan-3A DSP 1800A ス タ ー タ ー プ ラ ッ ト フ ォーム • s3adsp3400a-jtag - Xilinx Spartan-3A DSP 3400A 開発プ ラ ッ ト フ ォーム • sp601-jtag - sp601 ppethernet Xilinx Spartan-6 SP601 評価プ ラ ッ ト フ ォーム ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 93 第 8 章 : ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンの使用 • sp605-jtag - sp605 ppethernet Xilinx Spartan-6 SP605 評価プ ラ ッ ト フ ォーム イ ーサネ ッ ト の決定 複数の イ ーサネ ッ ト イ ン タ ーフ ェ イ ス が存在す る 場合に イ ーサネ ッ ト ベース のハー ド ウ ェ ア協調 シ ミ ュ レーシ ョ ン を実行す る には、協調シ ミ ュ レーシ ョ ン を実行す る イ ーサネ ッ ト イ ン タ ーフ ェ イ ス を選択す る 必要があ り ます。 以前のハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン を ポ イ ン ト ツー ポ イ ン ト イ ン タ ーフ ェ イ ス オプシ ョ ン で実行す る と 、 次のエ ラ ー メ ッ セージが表示 さ れます。 "ERROR:In process wrapper AHIL_INITIALIZE Failed to open hardware co-simulation instance.Error in Point-to-point Ethernet Hardware Co-simulation.There are multiple Ethernet interfaces available.Please select an interface." 次の手順に従っ て イ ーサネ ッ ト ポー ト を決定 し 、 イ ーサネ ッ ト の ア ド レ ス を設定、 確認 し て、 シ ミ ュ レーシ ョ ン run を検証 し ます。 1. 協調シ ミ ュ レーシ ョ ン ボー ド が接続 さ れてい る イ ーサネ ッ ト ポー ト を決定 し ます。 a. シ ス テ ムの コ マン ド プ ロ ンプ ト で コ マ ン ド タ ー ミ ナル ウ ィ ン ド ウ を開 き ます (cmd)。 b. コ マ ン ド ウ ィ ン ド ウ で 「ipconfig -all」 と 入力 し て、 イ ーサネ ッ ト ポー ト お よ びその 接続の リ ス ト を表示 し ます。 図 8-5 は、 コ マン ド ウ ィ ン ド ウ の コ マ ン ド を示 し てい ます。 図 8-5 : cmd.exe での 「ipconfig -all」 の入力 c. 協調シ ミ ュ レーシ ョ ン ボー ド に接続 さ れてい る イ ーサネ ッ ト ポー ト の物理ア ド レ ス を検 索 し ます。 d. 物理ア ド レ ス の区切 り 文字を ダ ッ シ ュ (-) か ら コ ロ ン (:) に変更 し ます。 例 :00:19:B9:75:E5:95 2. 次の手順に従い、 イ ーサネ ッ ト ポー ト を設定、 確認 し ます。 a. GUI を起動 し ます。 b. DUT (Design Under Test、 被試験デバ イ ス ) を選択 し ます。 c. Tcl コ ン ソ ールを表示 し ます。 d. Tcl コ ン ソ ールに次の コ マ ン ド を入力 し ます。 i. イ ーサネ ッ ト ア ド レ ス を次の よ う に設定 し ます。 hwcosim set ethernetInterfaceID <##:##:L#:##:L#:##> <physical address> ii. 94 イ ーサネ ッ ト ア ド レ ス を確認 し ます。 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 よ く 寄せ られる質問 (FAQ) hwcosim get ethernetInterfaceID iii. シ ミ ュ レーシ ョ ンが実行 さ れ る か確認 し ます。 run 10us 図 8-6 は、 GUI でのプ ロ セ ス を示 し てい ます。 図 8-6 : GUI コ ン ソ ールでのハー ド ウ ェ ア協調シ ミ ュ レ ーシ ョ ン プ ロ セス よ く 寄せられる質問 (FAQ) 次の質問では、 FPGA で協調シ ミ ュ レ ーシ ョ ン さ れ る デザ イ ン 箇所につい て説明す る 際に DUT (Deisgn Under Test) を使用 し て回答 し てい ます。 一般 1. 質問 : ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン (HWCoSim) はすべての タ イ プのデザ イ ンでサポー ト さ れますか。 回答 : 84 ページの 「制限事項」 に記載 さ れてい る よ う に、 一部制限があ り ます。 2. 質問 : ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンは、論理シ ミ ュ レーシ ョ ンですか。それ と も タ イ ミ ン グ シ ミ ュ レーシ ョ ンですか。 回答 : ハー ド ウ ェ アで支援 さ れ る 論理シ ミ ュ レーシ ョ ンで、 完全な ツール シ ミ ュ レーシ ョ ンに 対 し て ビ ッ ト お よ びサ イ ク ルの正確なシ ミ ュ レーシ ョ ンです。 3. 質問 : 独自のボー ド はど の よ う に使用で き ますか。 回答 : 92 ページの 「サポー ト さ れ る ボー ド 」 に記載 さ れてい る よ う にボー ド サポー ト フ ァ イ ル にボー ド を追加で き ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 95 第 8 章 : ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンの使用 コ ンパイル 1. 質問 : デザ イ ンに含まれ る 複数の イ ン ス タ ン ス をハー ド ウ ェ アで協調シ ミ ュ レーシ ョ ンで き ま すか。 回答 : いいえ。 ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン を選択で き る のは 1 つの イ ン ス タ ン ス のみ です。 複数の イ ン ス タ ン ス の親 イ ン ス タ ン ス を協調シ ミ ュ レーシ ョ ンす る か、 ま たは複数の イ ン ス タ ン ス を 1 つの イ ン ス タ ン ス にグループ化 し て く だ さ い。 2. 質問 : ChipScope デバ ッ グ ツールの ICON の よ う に、 DUT で既に BSCAN プ リ ミ テ ィ ブを イ ン ス タ ン シエー ト し てい る 場合はど う な り ますか。 回答 : ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス では、 ロ ケーシ ョ ン 1 の BSCAN プ リ ミ テ ィ ブが使用 さ れ る ので、 DUT で別の BSCAN プ リ ミ テ ィ ブが ロ ケーシ ョ ン 1 に イ ン ス タ ン シエー ト さ れ る 場合に MAP でエ ラ ーが発生する 可能性があ り ます。 ChipScope ICON で BSCAN プ リ ミ テ ィ ブに別の ロ ケーシ ョ ン を使用す る よ う に変更す る 必 要があ る 場合があ り ます。 Spartan-3 な ど の一部のデバ イ ス フ ァ ミ リ には BSCAN プ リ ミ テ ィ ブが 1 つ し かないので、 ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス は、 ChipScope ICON モジ ュ ール と 共存で き ません。 ChipScope Analyzer ま たは XMD と JTAG ケーブルを共有す る には、Tcl コ マ ン ド の hwcosim set shareCable 1 を実行する 必要があ り ます。 シ ミ ュ レーシ ョ ン 1. 質問 : 複数の協調シ ミ ュ レーシ ョ ン を実行す る と き 、 FPGA コ ン フ ィ ギ ュ レーシ ョ ン を ス キ ッ プ し て最後にダ ウ ン ロ ー ド し た ビ ッ ト ス ト リ ーム を使用で き ますか。 回答 : こ こ の操作を実行す る ための コ マン ド ラ イ ン ま たは GUI はあ り ませんが、Tcl コ マン ド の hwcosim set skipConfig 1 を実行で き ます。 ビ ッ ト ス ト リ ーム コ ン フ ィ ギ ュ レーシ ョ ン を ス キ ッ プす る と 、 複数のシ ミ ュ レーシ ョ ン実行中、 FPGA で実行 し てい る デザ イ ンで前の ス テー ト が保持 さ れ る こ と に注意 し て く だ さ い。新 し いシ ミ ュ レーシ ョ ン実行を開始す る 際は、 テ ス ト ベンチでデザ イ ン を正 し く リ セ ッ ト す る 必要があ り ます。 2. 質問 : ハー ド ウ ェ ア で協調シ ミ ュ レ ーシ ョ ン さ れ る DUT に含 ま れ る 信号を プ ロ ーブで き ま すか。 回答 : いいえ。 ISim ではハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス を介 し て DUT のポー ト イ ン タ ーフ ェ イ ス のみにア ク セ ス で き ます。 内部信号をデバ ッ グす る には、 DUT の ポー ト に信号を配線す る 必要があ り ます。 ク ロ ッ ク 供給お よび I/O 1. 質問 : DUT にはど の ク ロ ッ ク が供給 さ れますか。 協調シ ミ ュ レーシ ョ ン中は DUT の ク ロ ッ ク 供給はど の よ う に処理 さ れますか。 回答 : ボー ド サポー ト フ ァ イ ルで指定 さ れたハー ド ウ ェ ア ボー ド の ク ロ ッ ク ピ ンがマ ス タ ー ク ロ ッ ク ソ ース ですが、 DUT の駆動には直接使用 さ れません。 こ の ク ロ ッ ク ソ ースは DCM/ PLL を介 し て特定の ク ロ ッ ク 周波数 (通常は 25 ~ 100MHz) に調整 さ れます。 こ の ク ロ ッ ク は ゲーテ ィ ッ ド ク ロ ッ ク バ ッ フ ァ ー (BUFGCTRL) を介 し て DUT の ク ロ ッ ク ポー ト に到達 し ま す。ゲーテ ィ ッ ド ク ロ ッ ク バ ッ フ ァ ーでは、ツール シ ミ ュ レーシ ョ ンお よ び DUT 実行に同期 す る よ う にシ ミ ュ レーシ ョ ン サ イ ク ルご と に DUT に ク ロ ッ ク パルス が生成 さ れます。 2. 質問 : DUT の ク ロ ッ ク を フ リ ー ラ ン ニ ン グにで き ますか。 96 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 よ く 寄せ られる質問 (FAQ) 回答 : ハ イ ブ リ ッ ド 協調シ ミ ュ レーシ ョ ンでは、 1 つま たは複数の ク ロ ッ ク ポー ト を外部 I/O にマ ッ プす る こ と で、 DUT の一部を フ リ ー ラ ン ニ ン グにで き ます。 ただ し 、 少な く と も DUT の 1 つの ク ロ ッ ク は ロ ッ ク ス テ ッ プ方式でツール シ ミ ュ レーシ ョ ン と 同期 し て供給す る 必要 があ り ます。こ の よ う にする こ と で、DUT を ロ ッ ク ス テ ッ プで実行 さ れ る 部分 と フ リ ー ラ ン ニ ン グで実行 さ れ る 部分に効果的に分割で き ます。 ISim の ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン では、 2 つの部分に ま たが る ク ロ ッ ク ド メ イ ンは挿入 さ れない こ と に も 注意 し て く だ さ い。 非同期バ ッ フ ァ ーま たは追加の同期化 ロ ジ ッ ク が必要にな り ます。 3. 質問 : DUT を特定の ク ロ ッ ク 周波数で実行で き ますか。 回答 : ハ イ ブ リ ッ ド 協調シ ミ ュ レーシ ョ ンでは、DUT の フ リ ー ラ ン ニ ン グ部分に外部 ク ロ ッ ク を供給で き ます。 ただ し 、 ロ ッ ク ス テ ッ プ方式部分の ク ロ ッ ク はツール シ ミ ュ レーシ ョ ン と 同 期す る よ う ISim で制御 さ れ る ので、特定の ク ロ ッ ク 周波数に固定する こ と はで き ません。ロ ッ ク ス テ ッ プ方式部分の効果的な ク ロ ッ ク レー ト は、入力 ク ロ ッ ク 周波数に関わ ら ず低速にな り ます。 高速 ク ロ ッ ク で DUT を駆動 し て も 、 主なボ ト ルネ ッ ク が ツール と ハー ド ウ ェ ア間の通信なの で、シ ミ ュ レーシ ョ ンのパフ ォーマン スは向上 し ません。MAP や配置配線な ど の コ ンパ イ ル プ ロ セ ス が高速で実行 さ れ る よ う に DUT は低速 ク ロ ッ ク 周波数を使用 し て制約 さ れてい ます。 4. 質問 : DUT の一部のポー ト を DDR メ モ リ モジ ュ ールな ど の外部 I/O に接続で き ますか。 回答 : 外部 I/O お よ び ク ロ ッ ク は、 88 ページの 「ハ イ ブ リ ッ ド 協調シ ミ ュ レーシ ョ ン フ ロー」 に記載 さ れてい る よ う に、ハ イ ブ リ ッ ド 協調シ ミ ュ レーシ ョ ン モー ド でカ ス タ ム制約フ ァ イ ル を使用す る と き にサポー ト さ れてい ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 97 第 8 章 : ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ンの使用 98 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 第9章 ISim Tcl コ マ ン ド シ ミ ュ レ ーシ ョ ン コ マ ン ド を使用す る と 、 コ マ ン ド プ ロ ン プ ト で対話型シ ミ ュ レ ーシ ョ ン を実行 で き ます。 注記 : こ れ ら の コ マ ン ド では、 大文字/小文字が区別 さ れます。 シ ミ ュ レーシ ョ ン コ マ ン ド の入力方法 シ ミ ュ レーシ ョ ン コ マ ン ド は、 次いずれかの方法で入力 し ます。 • ISim の GUI ISim の [Console] パネルにシ ミ ュ レーシ ョ ン コ マ ン ド を入力 し ます。 • コマン ド ラ イ ン コ マ ン ド ラ イ ンの Tcl プ ロ ンプ ト でシ ミ ュ レーシ ョ ン コ マ ン ド を入力 し ます。 • Tclbatch Tcl フ ァ イ ルに シ ミ ュ レ ーシ ョ ン コ マ ン ド を 入力 し 、 -tclbatch オプ シ ョ ン を 使用 し て シ ミ ュ レーシ ョ ン実行フ ァ イ ルを実行 し 、 Tcl フ ァ イ ルを参照 さ せます。 個別の コ マ ン ド を入力 し た り 、 ま たはシ ミ ュ レ ーシ ョ ン ス ク リ プ ト を作成で き ます。 シ ミ ュ レ ー シ ョ ンの Tcl ス ク リ プ ト の例は、 言語テ ンプ レー ト の [Simulation Constructs] フ ォ ルダーを参照 し て く だ さ い。 言語テ ンプ レー ト に含まれてい る こ れ ら の例を表示す る には、 次の手順に従い ます。 1. [Edit] → [Language Templates] を ク リ ッ ク し ます。 2. 言語テ ンプ レー ト で [Tcl] → [Tools] → [ISim] フ ォルダーを展開 し ます。 よ く 使用す る シ ミ ュ レーシ ョ ン コ マ ン ド に変数を設定す る と 、 すばや く コ マ ン ド を実行で き ます。 詳細は、 102 ページの 「シ ミ ュ レーシ ョ ン コ マ ン ド の別名表記」 を参照 し て く だ さ い。 注記 : Tcl の使用方法の詳細は、 http://www.tcl.tk/ を参照 し て く だ さ い。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 99 第 9 章 : ISim Tcl コ マ ン ド シ ミ ュ レーシ ョ ン コ マ ン ド のサマ リ 表 9-1 には、 使用可能な シ ミ ュ レーシ ョ ン用 Tcl コ マ ン ド を簡単な説明 と 共に リ ス ト し てい ます。 コ マ ン ド の詳細、 構文、 オプシ ョ ン、 具体例については、 各 コ マン ド の リ ン ク を ク リ ッ ク し て く だ さ い。 ご使用の PDF リ ーダーで [View] → [ Toolbars] → [More Tools] で [Previous View] お よ び [Next View] を オ ンに し てお く と 、 リ ン ク さ れた情報の前後へ移動が し やす く な り ます ( メ ニ ュ ー表示は PDF リ ーダーに よ っ て異な り ます)。 .. 表 9-1 : シ ミ ュ レーシ ョ ン コ マ ン ド のサマ リ コ マン ド 説明 bp HDL ソ ース コ ー ド でブ レー ク ポ イ ン ト を設定/削除 し ます。 describe HDL デー タ ま たはブ ロ ッ ク オブジ ェ ク ト の情報を表示 し ます。 divider add 新 し い仕切 り を追加 し ます。 dump 現在のデザ イ ン階層にあ る 変数、 ジ ェ ネ リ ッ ク 、 パ ラ メ ー タ ー、 お よ びネ ッ ト の名前 と その値を リ ス ト 表示 し ます。 group add 新 し いグループを追加 し ます。 help 指定 し た ISim コ マン ド の説明、 使用方法、 お よ び構文を表示 し ます。 isim condition ネ ッ ト ま たは Verilog レ ジ ス タ の特定な条件に基づいた コ マ ン ド セ ッ ト を実行 し ます。 isim force VHDL 信号、 Verilog ワ イ ヤ、 ま たは Verilog レ ジ ス タ に強制的に値を付け る か、 ま た は値を削除 し ます。 isim set arraydisplaylength ア レ イ 型 HDL オブジ ェ ク ト のエ レ メ ン ト 数の制限数を表示 し ます。 isim get radix 使用 さ れてい る グ ロ ーバル基数を取得 し ます。 isim get userunit 単位が設定 さ れていない時間の値すべての現在の単位を表示 し ます。 isim ltrace ト レース のオン /オフ を切 り 替え ます。 isim ptrace プ ロ セ ス実行 ト レース のオン /オフ を切 り 替え ます。 isim set arraydisplaylength ア レ イ 型 HDL オブジ ェ ク ト のエ レ メ ン ト 数の制限数を設定 し ます。 isim set radix グ ロ ーバル基数を設定 し ます。 isim set userunit 単位が設定 さ れていない時間の値すべてに対 し てデフ ォル ト 単位を設定 し ます。 marker add 新 し いマーカーを追加 し ます。 onerror バ ッ チ モー ド でエ ラ ーが発生 し た Tcl シ ミ ュ レーシ ョ ン コ マン ド の直後の動作を制御 し ます。 put 特定のビ ッ ト 、 ス ラ イ ス、 変数、 ま たは信号に値を割 り 当て ます。 quit コ マ ン ド オプシ ョ ンに従い、シ ミ ュ レーシ ョ ン ま たはツールのいずれかを終了 し ます。 restart シ ミ ュ レーシ ョ ン を再開 し てシ ミ ュ レーシ ョ ン時間を 0 に戻 し ます。 100 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 表 9-1 : シ ミ ュ レーシ ョ ン コ マ ン ド のサマ リ (続き ) コ マン ド 説明 resume onerror コ マ ン ド と 共に使用 し て、 エ ラ ーが発生 し た後に コ マン ド を継続 し て実行 し ます。 run シ ミ ュ レーシ ョ ン を開始 し ます。 saif SAIF (Switching Activity Interchange Format) フ ァ イ ルを作成 し 、概算消費電力を記録 し ます。 scope デザ イ ン階層を移動 し ます。 sdfanno SDF フ ァ イ ルの遅延情報を HDL デザ イ ンにバ ッ ク ア ノ テー ト し ます。 show デザ イ ンの選択 し た部分を [Sim Console] パネルに表示 し ます。 step HDL デザ イ ンでシ ミ ュ レーシ ョ ン を 1 行ずつ実行 し 、 デバ ッ グ を援助 し ます。 test ネ ッ ト ま たはバ ス の実際の値が コ マ ン ド で入力 し た値 と 同 じ であ る か ど う か を調べ ま す。 vcd シ ミ ュ レーシ ョ ン結果を VCD フ ォーマ ッ ト で生成 し ます。 virtualbus add 新 し い仮想バス を追加 し ます。 wave add シ ミ ュ レーシ ョ ン オブジ ェ ク ト ま たはブ ロ ッ ク を ISim グ ラ フ ィ ッ ク ユーザー イ ン タ ーフ ェ イ ス で表示 さ れてい る 特定の波形コ ン フ ィ ギ ュ レーシ ョ ンに追加 し ます。 wave log HDL オブジ ェ ク ト のシ ミ ュ レーシ ョ ン出力を波形デー タ ベース に記録 し ます。 wcfg new 新 し い波形コ ン フ ィ ギ ュ レーシ ョ ン を作成 し ます。 wcfg open 指定 さ れた名前の波形コ ン フ ィ ギ ュ レーシ ョ ン を開き ます。 wcfg save 波形コ ン フ ィ ギ ュ レーシ ョ ン を保存 し ます。 wcfg select ウ ィ ン ド ウ に表示する 波形コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルを指定 し ます。 Tcl で特殊文字を含むオブ ジ ェ ク ト 名を使用する方法 wave add な ど の一部の コ マ ン ド では、 Tcl で特殊な意味合い を持つ文字を含む引数を使用で き ま す。 こ れ ら の引数は、 波か っ こ { } で囲み、 Tcl で不本意に処理 さ れない よ う に し ま す。 次に特殊 文字を含むケース を示 し ます。 バ ス の イ ンデ ッ ク ス 角かっ こ [ ] は Tcl に特殊の意味合いがあ る ので、こ れを使用す る イ ンデ ッ ク ス付 き (ビ ッ ト ま たは一部の選択) バ スは、 波かっ こ で囲む必要があ り ます。 た と えば、 波形ウ ィ ン ド ウ に角かっ こ を使用 し て bus エ レ メ ン ト 4 を追加す る と き は、 「wave add {bus[4]}」 と 記述す る 必要 があ り ます。 バ ス の イ ンデ ッ ク ス にはかっ こ ( ) も 使用で き ます。かっ こ には特殊な意味合いがないため、波 かっ こ を使用せずに コ マン ド を記述す る こ と がで き ます。 例: wave add bus(4) ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 101 第 9 章 : ISim Tcl コ マ ン ド Verilog エ ス ケープ文字 Verilog で特殊な意味を持つ文字を含む Verilog 識別子は、Verilog ソ ース コ ー ド お よ び ISim コ マ ン ド ラ イ ンの両方で識別子の前にバ ッ ク ス ラ ッ シ ュ (\)、識別子の後に スペース を付けてエ ス ケープ処理す る 必要があ り ます。 ま た、Tcl コ マン ド ラ イ ンではエ ス ケープ文字を波かっ こ で囲 う 必要があ り ます。た と えば、 ワ イ ヤ my wire を波形ウ ィ ン ド ウ に追加する 場合、 「wave add {\my wire }」 の よ う に、 コ マ ン ド を記述 し 、 最後の文字 と 閉 じ る 波かっ こ の間に スペース を含め ます。 注記 : Verilog では、 ど の識別子 も エ ス ケープ処理で き ますが、 ISim コ マン ド ラ イ ンでは、 エ ス ケープす る 必要がない Verilog 識別子 も エ ス ケープ処理す る 必要があ り ます。 た と えば、 波 形ウ ィ ン ド ウ に ワ イ ヤ w を追加す る 場合、 ISim では 「wave add {\w}」 が有効な コ マン ド に な り ません。 こ のため、 「wave add w」 ま たはオプシ ョ ン で 「wave add {w}」 と 記述す る 必要があ り ます。 エ ス ケープ文字に波かっ こ が含ま れ る 場合、識別子を波か っ こ で囲 う 方法が使用で き ないため、 Tcl では波かっ こ 内に波かっ こ 内にあ っ て も 特殊文字 と し て解釈 さ れます。 こ のため、次に示す VHDL 拡張識別子の手法を使用す る 必要があ り ます。 VHDL 拡張識別子 VHDL 拡張識別子には、バ ッ ク ス ラ ッ シ ュ (\) が含まれてお り 、こ の文字は Tcl で特殊文字 と さ れます。 Tcl では、 バ ッ ク ス ラ ッ シ ュ と 閉 じ る 波か っ こ \} が閉 じ る 波かっ こ 文字 と し て識別 さ れ る ので、 VHDL 拡張識別子は波か っ こ を使用 し て記述で き ません。 こ のため、 波かっ こ は使用せず、 特殊文字それぞれの前にバ ッ ク ス ラ ッ シ ュ を付け る 必要があ り ます。 た と えば、 信号 \my sig\ を波形ウ ィ ン ド ウ にす る 場合は、 「wave add \\my\ sig\\」 と 記述する 必要があ り ます。 拡張識別子の一部であ る バ ッ ク ス ラ ッ シ ュ の両方お よ び識別子内の スペース の前には、 バ ッ ク ス ラ ッ シ ュ が付け ら れます。 シ ミ ュ レーシ ョ ン コ マ ン ド の別名表記 よ く 使用す る シ ミ ュ レーシ ョ ン コ マ ン ド に変数を設定す る と 、 すばや く コ マ ン ド を実行で き ます。 こ の変数を使用す る と 、 コ マン ド を毎回入力せずに何回で も 実行で き ます。 コ マン ド を表現す る 変 数を設定す る こ と を、 エ イ リ ア シ ン グ と 呼びます。 [Console] パネルでの変数設定 [Console] パネル (GUI モー ド ) ま たは Tcl プ ロ ンプ ト ( コ マン ド ラ イ ン モー ド ) で次の変数を入力 し ます。 set svc “show value count” 説明 : • set : 変数を作成す る こ と を示 し ます。 • svc : 変数名です。 • "show value count" : 変数名で表現 さ れ る シ ミ ュ レーシ ョ ン コ マ ン ド です。 Tcl 変数 svc が設定 さ れて値が表示 さ れます。 こ の変数を実行す る には、 次を入力 し ます。 eval $svc 102 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ISim 波形ビ ュ ーアー Tcl コ マ ン ド ISim 波形ビ ュ ーアー Tcl コ マ ン ド ISim 波形ビ ュ ーアー Tcl コ マ ン ド は、 作業中の ウ ィ ン ド ウ で使用で き ま す。 ISim を起動す る と 、 最初にア ク テ ィ ブにな る ウ ィ ン ド ウ は、 Default.wcfg です。 ア ク テ ィ ブ ウ ィ ン ド ウ は、 次の方法で変更で き ます。 • ウ ィ ン ド ウ たぶを ク リ ッ ク する か、 wcfg select コ マ ン ド を使用 し ます。 • [File] → [New] お よ び [File] → [Open] を ク リ ッ ク す る と 、 新 し く 開いた波形 コ ン フ ィ ギ ュ レーシ ョ ン ウ ィ ン ド ウ にア ク テ ィ ブ ウ ィ ン ド ウ を切 り 替え る こ と がで き ます。 • Tcl の場合は、 wcfg new お よび wcfg open コ マン ド でア ク テ ィ ブ ウ ィ ン ド ウ を新規作成の ウ ィ ン ド ウ に変更で き ます。 Command Line Conventions メ ニ ュ ー コ マ ン ド を使用す る 代わ り に、 ISim コ ン ソ ール パネルのプ ロ ンプ ト にで コ マン ド を入力 し て操作を実行で き ます。 コ ン ソ ール コ マ ン ド では、 メ ニ ュ ー コ マ ン ド で表示 さ れ る よ う な ダ イ ア ロ グ ボ ッ ク ス は表示 さ れません。 表 9-2 は、 シ ミ ュ レーシ ョ ン コ マ ン ド で使用す る 構文の表記規則を示 し てい ます。 表 9-2 : シ ミ ュ レーシ ョ ン コ マ ン ド の構文 構文 説明 必須ではない コ マ ン ド オプシ ョ ン を示 し ます。 [] | ... <> ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 注記 : Tcl ではネ ス ト し た コ マン ド に [ ] を使用で き ます。 [ ] に入力 さ れた コ マ ン ド が実行 さ れ、 その結果が別の Tcl コ マン ド で使用す る 値 と し て戻 さ れます。た と えば、set var <show time> では var が 現在の時間に設定 さ れます。 可能性のあ る パ ラ メ ー タ ーの選択肢を示 し ます。 オプシ ョ ンが複数の パ ラ メ ー タ で構成 さ れてい る 場合、 各パ ラ メ ー タ は角か っ こ で区切 ら れてい ます。 1 つま た複数のオプシ ョ ン を スペース で区切っ て入力で き る こ と を示 し ます。 ユーザーが値を指定する 必要のあ る 変数であ る こ と を示 し ます。 japan.xilinx.com 103 第 9 章 : ISim Tcl コ マ ン ド Tcl コ マ ン ド エンジン コ マン ド bp bp コ マ ン ド では、 シ ミ ュ レーシ ョ ンす る HDL ソ ース コ ー ド のブ レー ク ポ イ ン ト を設定/削除 し ま す。 ブ レー ク ポ イ ン ト は、 デバ ッ グのためシ ミ ュ レーシ ョ ン を中断す る のに使用 し ます。 bp コ マ ン ド の構文 bp add <file_name> <line_number>clear del <index> [<index>...]list remove <file_name> <line_number> bp コ マ ン ド のオプ シ ョ ン 表 9-3 : bp コ マ ン ド のオプ シ ョ ン オプ シ ョ ン add <file_name> <line_number> 説明 HDL フ ァ イ ルの指定行にブ レー ク ポ イ ン ト を追加 し ます。 <file_name> には、ブ レー ク ポ イ ン ト を設定す る シ ミ ュ レーシ ョ ン中の HDL ソ ース フ ァ イ ルを指定 し ます。 <line_number> には、 HDL コ ー ド のシ ミ ュ レーシ ョ ン を中断す る 行番号 を指定 し ます。 clear 読み込んでい る すべての HDL フ ァ イ ルのブ レー ク ポ イ ン ト をすべて削除 し ます。 複数の フ ァ イ ルにブ レー ク ポ イ ン ト が設定 さ れてい る 場合、 すべてのブ レー ク ポ イ ン ト が削除 さ れます。 del <index> [<index>...] HDL コ ー ド か ら 指定 し たブ レー ク ポ イ ン ト を削除 し ます。 こ の コ マ ン ド を実行する 前に、 bp list コ マン ド を実行 し てブ レー ク ポ イ ン ト の イ ンデ ッ ク ス番号を取得す る 必要があ り ます。 詳細は、 list オプシ ョ ン を参照 し て く だ さ い。 <index> は、 ブ レー ク ポ イ ン ト に割 り 当て ら れた イ ンデ ッ ク ス番号です。 デザ イ ンの各ブ レー ク ポ イ ン ト に、 固有の番号が割 り 当て ら れます。 注記 : こ の イ ンデ ッ ク ス番号は、 ソ ース フ ァ イ ルの行番号 と は異な り ます。 104 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド 表 9-3 : bp コ マ ン ド のオプ シ ョ ン (続き ) オプ シ ョ ン 説明 デザ イ ンのブ レー ク ポ イ ン ト をすべて リ ス ト し 、bp del コ マン ド で使用す る イ ンデ ッ ク ス 番号を示 し ます。 複数の フ ァ イ ルにブ レ ー ク ポ イ ン ト が設定 さ れてい る 場合、 すべてのブ レー ク ポ イ ン ト が表示 さ れます。 bp list を実行す る と 、 次が表示 さ れます。 list <index> <directory_path> <file_name>/<line_number> 説明 : • <index> : bp del コ マ ン ド で使用す る イ ンデ ッ ク ス番号 • <directory_path> is the fully qualified path to your source files. • <file_name> : ブ レー ク ポ イ ン ト を含む ソ ース フ ァ イ ル名 • <line_number> : ソ ース フ ァ イ ルでのブ レー ク ポ イ ン ト が設定 さ れてい る 行番号 フ ァ イ ル <file_name> の <line_number> 行目にあ る ブ レー ク ポ イ ン ト を削除 し ます。 remove <file_name> <line_number> • <file_name> は、 削除す る ブ レー ク ポ イ ン ト が設定 さ れてい る HDL ソ ース フ ァ イ ル を指定 し ます。 • <line_number> は、 HDL コ ー ド のブ レー ク ポ イ ン ト が設定 さ れてい る 行番号を指定 し ます。 bp コ マ ン ド の例 statmach.vhd と い う フ ァ イ ルの 2 行目にブ レ ー ク ポ イ ン ト を設定す る には、 次の よ う に入力 し ます。 bp add statmach.vhd 2 全ブ レー ク ポ イ ン ト の表示 シ ミ ュ レーシ ョ ンに関連す る すべての フ ァ イ ルのブ レー ク ポ イ ン ト を イ ンデ ッ ク ス番号 と 共に表示 す る には、 次の よ う に コ マン ド を入力 し ます。 bp list シ ミ ュ レーシ ョ ンのブ レー ク ポ イ ン ト をすべて削除す る には、 次の よ う に入力 し ます。 bp clear ブ レー ク ポ イ ン ト を イ ンデ ッ ク ス番号を使用 し て削除す る には、 次の よ う に入力 し ます。 1. 最初に、 bp list コ マン ド を使用 し てブ レー ク ポ イ ン ト の イ ンデ ッ ク ス を取得 し ます。 bp list 次の情報が示 さ れます。 1 C:/examples/watchvhd/stopwatch_tb.vhd::46 2 C:/examples/watchvhd/stopwatch_tb.vhd::55 2. stopwatch_tb.vhd フ ァ イ ルの 46 行目にあ る ブ レー ク ポ イ ン ト を削除す る には、次の よ う に 入力 し ます。 bp del 1 statmach.vhd と い う フ ァ イ ルの 2 行目のブ レ ー ク ポ イ ン ト を削除す る には、 次の よ う に入力 し ます。 bp remove statmach.vhd 2 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 105 第 9 章 : ISim Tcl コ マ ン ド describe describe コ マン ド を実行する と 、HDL データ ま たはブ ロ ッ ク オブジ ェ ク ト の情報を表示で き ます。 describe コ マ ン ド の構文 describe <object_name> <object_name> オプシ ョ ンは、 現在のシ ミ ュ レ ーシ ョ ン ス コ ープに含ま れ る HDL オブジ ェ ク ト ま たは HDL ブ ロ ッ ク の情報を表示 し ます。 describe コ マ ン ド の例 describe コ マン ド は、 次の よ う に使用 し ます。 describe param 次が戻 さ れます。 Verilog Instance:{param} Path:{/parameter8_hn/param} Location:{/home/test5.v:42} Instantiation:{/home/test5.v:37} dump dump コ マ ン ド では、 現在のデザ イ ン階層に含 ま れ る すべての VHDL 信号お よ びジ ェ ネ リ ッ ク 、 Verilog ワ イ ヤ、 サブプ ロ グ ラ ム以外の レ ジ ス タ お よ びパ ラ メ ー タ ーの値が表示 さ れます。 デザ イ ン階層を ナ ビ ゲー ト す る には、 scope コ マ ン ド を使用 し ま す。 dump コ マ ン ド では、 isim set radix コ マン ド を使用 し てデフ ォ ル ト の基数セ ッ ト が使用 さ れます。 dump コ マ ン ド の構文 dump dump コ マ ン ド の例 現在のデザ イ ン階層にあ る 信号名 と その値すべて を表示す る には、 次の よ う に入力 し ます。 dump help help コ マン ド では、 指定 し た ISim Tcl コ マン ド の説明、 使用方法、 お よ び構文を表示 し ます。 コ マ ン ド を指定 し ない場合は、 help コ マ ン ド ではすべての ISim Tcl コ マン ド と その構文が リ ス ト さ れます。 help コ マ ン ド の構文 help [command_name] help コ マ ン ド のオプ シ ョ ン 指定 し た コ マ ン ド の説明を表示 し ます。 help コ マ ン ド の例 help コ マン ド は、 次の よ う に使用 し ます。 すべての ISim コ マン ド の説明を表示す る には、 次の よ う に入力 し ます。 106 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド help bp コ マン ド の説明を表示す る には、 次の よ う に入力 し ます。 help bp isim condition isim condition コ マ ン ド では、 条件付 き ア ク シ ョ ン の リ ス ト を追加、 削除、 ま たは生成で き ま す。 条件付 き ア ク シ ョ ンは、 VHDL の process 文ま たは Verilog の always 文 と 同等で、 追加 さ れ る と シ ミ ュ レーシ ョ ン中に isim condition 表現に含まれ る 信号が継続 し て監視 さ れます。 こ の 条件表現は、 信号の変化が検出 さ れ る たびに評価 さ れます。 指定の条件表現に合 う 場合は、 指定の コ マ ン ド が実行 さ れます。 • isim condition remove では信号の監視が停止 し 、 • isim condition list ではア ク テ ィ ブな条件付 き ア ク シ ョ ンの リ ス ト が ラ ベル と ID と 共に 表示 さ れます。 isim condition コ マ ン ド の構文 isim condition add|remove|list [<condition expression> <command>] [-radix <radix_type>] [-label <label_name>] [-index <index_name>] -all isim condition コ マ ン ド のオプ シ ョ ン 表 9-4 : isim condition コ マ ン ド のオプ シ ョ ン オプ シ ョ ン 説明 add|remove|list 条件を追加、 削除、 ま たは条件の リ ス ト を表示 し ます。 <condition expression> <command> <condition expression> : add 関数に関連 し てお り 、 指定 し た <command> をいつ実行する かが定義 さ れます。 こ の条件表現に使用 さ れた操作には、 != (非等号)、 == (等号)、 && (AND) お よ び || (OR) が含まれます。 表現お よ び演算子の間には、「clk == St1」 の よ う に スペース を入 力する 必要があ り ます。 <command> : Tcl コ マ ン ド ま たは ス ク リ プ ト で、 条件が true の と き に実行 さ れます。 こ の コ マ ン ド は、 かっ こ { } で囲まれます。 こ の コ マ ン ド には、 標準の Tcl コ マン ド お よ びシ ミ ュ レーシ ョ ン Tcl コ マ ン ド を含め る こ と がで き ます。ただ し 、run、restart、init、お よ び step は含め る こ と はで き ません。 こ の条件表現に使用 さ れ る tcl 変数には、 かっ こ { } の代わ り に引用符 " " で囲まれます。 構文例を参照 し て く だ さ い。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 107 第 9 章 : ISim Tcl コ マ ン ド 表 9-4 : isim condition コ マ ン ド のオプ シ ョ ン (続き ) オプ シ ョ ン 説明 条件表現の値を読み出すのに使用 さ れ る オプシ ョ ンの引数です。 -radix <radix_type> サポー ト さ れ る 基数 タ イ プは、 default、 dec、 bin、 oct、 hex、 unsigned、 お よ び ascii です。 基数 タ イ プが指定 さ れていない場 合は、isim set radix コ マン ド で設定 さ れ る グ ロ ーバル基数 タ イ プが使用 さ れ、 こ の コ マン ド で も 基数 タ イ プが設定 さ れていない場 合は、 default が基数 と し て使用 さ れます。 -label <label_name> 条件名を指定する オプシ ョ ンの引数で、sim condition add コ マ ン ド で ラ ベルが指定 さ れていない と き は、 シ ミ ュ レーシ ョ ンで条件 を識別する と き に使用する イ ンデ ッ ク ス が生成 さ れます。 -index <index_name> 条件を識別する 引数で、isim condition remove コ マン ド でのみ 使用で き ます。 -all 現在の シ ミ ュ レ ーシ ョ ン に含 ま れ る 条件 を すべて削除す る のに使 用 さ れ る オプシ ョ ンの引数です。 isim condition コ マ ン ド の例 isim condition add コ マ ン ド の例 信号 asig が 8 の と き に停止 し て、 条件の名前に label0 を付け る よ う な条件を追加す る には、 次 の よ う に入力 し ます。 isim condition add {/top/asig == 8} {stop} -label label0 -radix hex 信号 asig が 1 の と き に停止 し て、 条件の名前に label1 を付け る よ う な VHDL 特有の信号条件を 追加す る には、 次の よ う に入力 し ます。 isim condition add {/top/asig == ‘1’} {stop} -label label1 信号 asig が 変化す る と き に停止 し て、 条件の名前に label2 を付け る よ う な条件を追加す る に は、 次の よ う に入力 し ます。 isim condition add /top/asig {stop} -label label2 信号 clk が St1 の と き に停止 し て、条件の名前に label3 を付け る よ う な VHDL 特有の信号条件 を追加す る には、 次の よ う に入力 し ます。 isim condition add {clk == St1} {stop} -label label3 信号 asig (3:0) が 0001 で リ セ ッ ト が 1 の と き に停止す る よ う な条件を追加す る には、次の よ う に入力 し ます。 isim condition add {asig(3:0) == 0001 && reset == 1} {stop} isim condition remove コ マ ン ド の例 現在のシ ミ ュ レーシ ョ ンに含まれ る 条件すべて を削除す る 場合は、 次を入力 し ます。 isim condition remove ま たは isim condition remove -all label0、 label1、 label2 と い う 名前の条件を削除する には、 次を入力 し ます。 108 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド isim condition remove -label {label0 label1 label2} 信号文を削除す る には、 次を入力 し ます。 isim condition remove -index 2 ま たは isim condition remove -label label3 isim condition list コ マ ン ド の例 デザ イ ンに追加 し た isim condition すべて を表示す る には、 次を入力 し ます。 isim condition list isim force isim force コ マ ン ド では、 VHDL 信号、 Verilog ワ イ ヤ、 ま たは Verilog レ ジ ス タ に強制的に値 を付けた り 、特定の時間に繰 り 返 し パ タ ーン を割 り 当て ます。 こ の コ マ ン ド で割 り 当て ら れた値は、 HDL コ ー ド ま たは以前に isim force コ マ ン ド で付け ら れた値に上書 き さ れ ます。 こ の コ マ ン ド はキ ャ ンセル時間が指定 さ れてい る 場合はその時間ま で、 ま たは isim force remove コ マ ン ド が発行 さ れ る ま で有効です。 • VHDL 信号ま たは Verilog ワ イ ヤで こ の コ マン ド が削除 さ れ る と 、 信号ま たは ワ イ ヤの値が現 在駆動 さ れてい る 値に戻 り ます。 • Verilog レ ジ ス タ では、 こ の コ マ ン ド が削除 さ れた後で も Verilog レ ジ ス タ に書 き 込む HDL プ ロ セ ス の う ちの 1 つで レ ジ ス タ に新 し い値が割 り 当て ら れ る ま で、 強制 さ れた値が保持 さ れ ます。 isim condition コ マ ン ド の構文 isim force add|remove [<object_name>] [-value <value>] [-radix <radix_type>] [-time <time>] [-cancel <time>] [-repeat <time>] isim force コ マ ン ド のオプ シ ョ ン 表 9-5 : sim force コ マ ン ド のオプ シ ョ ン オプ シ ョ ン 説明 add|remove バ ス /信号に値を割 り 当て る か、ま たはバ ス /信号の値を削除 し ます。 <object_name> VHDL 信号、 Verilog ワ イ ヤ、 ま たは Verilog レ ジ ス タ の名前を指 定 し ます。 -value <value> ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 追加する 値を指定 し ます。 japan.xilinx.com 109 第 9 章 : ISim Tcl コ マ ン ド 表 9-5 : sim force コ マ ン ド のオプ シ ョ ン (続き ) オプ シ ョ ン 説明 -radix <radix_type> 基数を指定 し ます。サポー ト さ れ る 基数 タ イ プは、default、dec、 bin、 oct、 hex、 unsigned、 お よ び ascii です。 基数 タ イ プが 指定 さ れていない場合は、isim set radix コ マン ド で設定 さ れ る グ ロ ーバル基数 タ イ プが使用 さ れ、 こ の コ マン ド で も 基数 タ イ プが 設定 さ れていない場合は、 default が使用 さ れます。 -time <time> 時間は、 10、 10 ns、 "10 ns" な ど の文字列で指定で き ます。 値が単 位な し で入力 さ れた場合は、 シ ミ ュ レー タ の単位であ る ps が使用 さ れます。 時間は、 コ マ ン ド の実行時間に相対 し ます。 -cancel <time> 特定の時間後に force コ マン ド を キ ャ ン セル し ます。 -repeat <time> 特定の時間後にサ イ ク ルを繰 り 返 し ます。 isim force コ マ ン ド の例 isim force コ マ ン ド は、 次の よ う に使用 し ます。 値の割 り 当て 現在のシ ミ ュ レーシ ョ ン時間で rst 信号 に 0 を割 り 当て る には、 次を入力 し ます。 isim force rst 0 現在のシ ミ ュ レーシ ョ ン時間か ら 10ns 後に rst 信号に 1 を割 り 当て、 現在のシ ミ ュ レーシ ョ ン時 間か ら 50ns 後に コ マ ン ド を キ ャ ンセルす る には、 次を入力 し ます。 isim force rst 1 -time 10 ns -cancel 50 ns clk 信号が現在のシ ミ ュ レーシ ョ ン時間で 1 にな り 20ns 後に 0 に戻っ た後、現在のシ ミ ュ レーシ ョ ン時間か ら 1us に到達する ま で 40ns ご と に こ れを繰 り 返す (つま り はデュ ーテ ィ サ イ ク ルが 50% の ク ロ ッ ク を生成 し て 1us 間 40ns ご と にサ イ ク ルを繰 り 返す) よ う な ク ロ ッ ク を割 り 当て る には、 次を入力 し ます。 isim force clk 1 -value 0 -time 20 ns -repeat 40 ns -cancel 1 us 次を実行す る 場合は、 その後に記述す る コ マン ド を入力 し ます。 • 現在のシ ミ ュ レーシ ョ ン時間でdata_in 信号 に 1 を割 り 当て る 。 • 現在のシ ミ ュ レーシ ョ ン時間 + 50 ns で data_in 信号 に 0 を割 り 当て る 。 • 現在のシ ミ ュ レーシ ョ ン時間 + 75 ns で data_in 信号 を 1 に戻す。 • こ のパ タ ーン を 100ns ご と に 5000ns 間繰 り 返す。 force add data_in 1 -value 0 -time 50 ns -value 1 -time 75 ns -repeat 100 ns -cancel 5000 ns 値の削除 信号 s、 s1、 s2 のすべて値を削除す る には、 次を入力 し ます。 isim force remove s s1 s2 110 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド isim get arraydisplaylength isim get arraydisplaylength コ マ ン ド を使用す る と 、 ア レ イ 型の HDL オブジ ェ ク ト に対す る エ レ メ ン ト の制限数を表示で き ます。 制限数は、 isim set arraydisplaylength コ マ ン ド を使用 し て設定で き ます。 ism get arraydisplaylength コ マ ン ド の構文 isim get arraydisplaylength オプシ ョ ンはあ り ません。 isim get arraydisplaylength コ マ ン ド の例 次の コ マ ン ド を入力 し 、 配列の表示の長 さ を決定 し ます。 こ の場合、 配列は 64 ビ ッ ト です。 isim get arraydisplaylength 次が戻 さ れます。 64 isim get radix isim get radix コ マ ン ド を使用す る と 、 デフ ォ ル ト の基数を文字列 と し て表示で き ます。 基数 は、 isim set radix コ マン ド を使用 し て設定 し ます。 isim get radix コ マ ン ド の構文 isim get radix オプシ ョ ンはあ り ません。 isim get radix コ マ ン ド の例 基数を表示す る には、 次を入力 し ます。 isim get radix 現在使用 さ れてい る グ ロ ーバル基数が表示 さ れます。 isim get userunit isim get userunit コ マ ン ド を使用す る と 、単位が指定 さ れていない時間値すべてに対す る 現在 の単位を表示で き ます。 単位は、 isim set userunit コ マ ン ド を使用 し て設定で き ます。 isim get userunit コ マ ン ド の構文 isim get userunit (オプシ ョ ンはあ り ません) isim get userunit コ マ ン ド の例 isim get userunit 1 ps が戻 さ れます。 isim ltrace isim ltrace コ マ ン ド を使用す る と 、 行 ト レー ス のオ ン、 オ フ を切 り 替え る こ と がで き ます。 行 ト レース がオンの と き は、 デバ ッ グで行ご と に解析を実行で き ます。 実行 さ れ る HDL 行は、 シ ミ ュ レーシ ョ ン時間、フ ァ イ ル パ スお よびフ ァ イ ル名、お よ び行番号の情報 と 共に画面に表示 さ れます。 注記 : isim ltrace on コ マ ン ド を実行す る と 、シ ミ ュ レーシ ョ ンの速度が低下す る 可能性があ り ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 111 第 9 章 : ISim Tcl コ マ ン ド isim ltrace コ マ ン ド の構文 isim ltrace [on| off] isim ltrace コ マ ン ド のオプ シ ョ ン isim ltrace コ マ ン ド のオプシ ョ ンは、 [on | off] のいずれかにな り ます。 デフ ォ ル ト は off で す。 isim ltrace コ マ ン ド の例 現在実行 さ れてい る 行を表示す る には、 次を入力 し ます。 isim ltrace on run 出力には、 シ ミ ュ レーシ ョ ン時間、 フ ァ イ ル名、 行番号が次の よ う に表示 さ れます。 1005 ns “C:/Data/ISE_Projects/freqm/watchver/stopwatch_tb.v”:261005 ns “C:/Data/ISE_Projects/freqm/watchver/stopwatch_tb.v”:271005 ns(3) “C:/ Data/ISE_Projects/freqm/watchver/statmach.v”:631005 ns(3) “C:/Data/ ISE_Projects/freqm/watchver/statmach.v”:64 isim ptrace isim ptrace コ マ ン ド を [Console] パネルに入力す る と 、 バ ッ チ モー ド のオン、 オ フ を切 り 替え る こ と がで き ます。 こ のオプシ ョ ン を オンにする と 、 現在実行 さ れてい る VHDL ま たは Verilog プ ロ セ ス の名前が [Console] パネルに表示 さ れます。 こ の機能は、 シ ミ ュ レーシ ョ ンが無限ループで ス タ ッ ク し た場合に便利で、 シ ミ ュ レー タ が ス タ ッ ク し たプ ロ セ ス が コ メ ン ト ア ウ ト さ れます。 isim ptrace コ マ ン ド の構文 isim ptrace [on | off] isim ptrace コ マ ン ド のオプ シ ョ ン オプシ ョ ンは、 [on | off] のいずれかにな り ます。 デフ ォ ル ト は off です。 isim ptrace コ マ ン ド の例 現在実行 さ れてい る プ ロ セ ス の名前を表示す る には、 次の よ う に入力 し ます。 isim ptrace on isim set arraydisplaylength isim set arraydisplaylength コ マ ン ド では、配列型の HDL オブジ ェ ク ト に対す る エ レ メ ン ト の制限数を設定 し ます。 デフ ォ ル ト 値は 64 です。 こ の制限数は次の値に影響 し ます。 • GUI の [Objects] パネルの値 • show value コ マン ド に対す る 応答 isim set arraydisplaylength コ マ ン ド の構文 isim set arraydisplaylength <size> <size> は使用可能なオプシ ョ ンです。表示す る 配列型 HDL オブジ ェ ク ト のエ レ メ ン ト 数を入力 し ます。 長 さ を無制限にす る には 0 を設定 し ます。 デフ ォ ル ト 値は 64 です。 isim set arraydisplaylength コ マ ン ド の例 次を入力 し ます。 112 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド isim set arraydisplaylength 2 show value xcountout 次が戻 さ れます。 00 00 [Objects] パネルで配列の [Value] 列を確認 し ます。 isim set arraydisplaylength 64 show value xcountout 次が戻 さ れます。 0001000000 0001000000 isim set radix isim set radix コ マ ン ド を使用する と 、グ ロ ーバル基数を シ ミ ュ レーシ ョ ンに設定で き ます。 こ の基数 タ イ プは、 show value、 put、 test、 dump、 isim force、 お よ び isim condition コ マ ン ド な ど、 その他の コ マン ド で使用 さ れます。 isim set radix コ マ ン ド の構文 isim set radix <radix_type> 説明 : <radix_type> : 現在のシ ミ ュ レーシ ョ ンにグ ローバルな基数を設定 し ます。シ ミ ュ レー タ で は、 show value、 put、 test、 dump、 isim force、 お よ び isim condition コ マン ド な ど、 その他の コ マン ド で使用 さ れます。 サポー ト さ れ る 基数 タ イ プは、default、 dec、bin、oct、hex、unsigned、お よ び ascii です。 isim set radix コ マ ン ド の例 16 進数の基数を設定 し 、 カ ウ ン ト 値を表示す る には、 次の よ う に入力 し ます。 isim set radix hex show value count a が戻 さ れます。 dec の基数を設定 し 、 カ ウ ン ト 値を表示す る には、 次の よ う に入力 し ます。 isim set radix dec show value count //count is defined as reg[3:0] count -4 が戻 さ れます。 符号な し の基数を設定 し 、 カ ウ ン ト 値を表示す る には、 次の よ う に入力 し ます。 isim set radix unsigned show value count 10 が戻 さ れます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 113 第 9 章 : ISim Tcl コ マ ン ド isim set userunit isim set userunit コ マ ン ド を使用す る と 、単位が指定 さ れていない時間値すべてに対す る 現在 の 単 位 を 設定 で き ま す。 デ フ ォ ル ト の 時 間単 位 は、 fuse コ マ ン ド の -timescale ま た は -override_timeunit オプシ ョ ンで設定 さ れてい る 単位 と 同 じ です。 こ れ ら の fuse オプシ ョ ン が指定 さ れていない場合は、 タ イ ム ス ケールは次で決定 し ます。 • デフ ォ ル ト の時間単位 (1ps) • Verilog に含まれ る ‘timescale シ ミ ュ レー タ 指示子 isim set userunit コ マ ン ド の構文 isim set userunit <1|10|100> <fs|ps|ns|us|ms|s> 例 シ ミ ュ レー タ の タ イ ム ス ケールを 1 ps に設定 し ます。 isim set userunit 1 ps onerror onerror コ マ ン ド を使用す る と 、 エ ラ ーが発生 し た Tcl シ ミ ュ レーシ ョ ン コ マ ン ド の直後の動作 を制御で き ます。 エ ラ ーの表示、 次の コ マン ド の再開な ど の さ ま ざ ま な使用例は、 次に示す例を参 照 し て く だ さ い。 こ の コ マ ン ド を使用す る と 、 シ ミ ュ レーシ ョ ン コ マ ン ド エ ラ ーのデバ ッ グが可 能で、 エ ラ ーが含まれてい る Tcl ス ク リ プ ト を実行す る と き に特に便利です。 注記 : Tcl プ ロ ンプ ト に Tcl コ マ ン ド を 1 つずつ入力す る 場合には、こ の コ マン ド を使用す る 必要は あ り ません。 onerror コ マ ン ド の構文 onerror [<list_of_Tcl_commands>] [<source Tcl_script>] 説明 : • <list_of_Tcl_commands> : シ ミ ュ レーシ ョ ン Tcl コ マ ン ド の リ ス ト を入力 し 、 シ ミ ュ レーシ ョ ン コ マ ン ド エ ラ ーが発生 し た と き の動作を制御で き ます。 • <source Tcl_script> : リ ス ト さ れ る Tcl コ マン ド を含む Tcl ス ク リ プ ト フ ァ イ ルを ソ ース に指定で き ます。 onerror コ マ ン ド の例 発生 し たエ ラ ー と 現在の範囲内のすべての値を表示 し てか ら 、 停止 し ます。 onerror {showtime;dump;quit -f} エ ラ ーが発生 し た時間お よ び現在の階層に含まれ る 値すべて を表示 し た後に Tcl ス ク リ プ ト の次の コ マ ン ド の読み出 し が継続 さ れます。 onerror {show time;dump;resume} エ ラ ーが発生 し た と き に ソ ース の Tcl フ ァ イ ルが読み出 さ れ、 その コ マン ド が実行 さ れます。 onerror {source myerror.tcl} 114 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド put シ ミ ュ レーシ ョ ン中に、 信号お よ びバ ス の値を変更で き ます。 put コ マン ド は、 次に使用 し ます。 • 特定の信号ま たはバ ス • 信号ま たはバ ス の配列 • 信号ま たはバ ス を含むレ コ ー ド ま たはレ コ ー ド の配列 • 基数が指定 さ れてい る 値 put コ マン ド は、 HDL (ハー ド ウ ェ ア記述言語) ソ ース コ ー ド で信号 と し て宣言 さ れてい る 信号ま たはバ ス にのみ使用で き ます。 put コ マ ン ド を使用 し て、 VHDL 変数、 VHDL ジ ェ ネ リ ッ ク 、 ま たは Verilog パ ラ メ ー タ ーに値 を割 り 当て る こ と はで き ません。 値は、 信号全体、 信号の 1 ビ ッ ト 、 ま たは信号の ビ ッ ト 範囲に割 り 当て る こ と がで き ます。 ま た、 信号の階層に も ア ク セ ス で き ます。 こ の コ マン ド は、 上書 き さ れ る 可能性があ り 、 デザ イ ンの ス テ ィ ミ ュ ラ ス が こ の コ マン ド よ り 優先 さ れます。 put コ マ ン ド の構文 put <signal_name>|<vhdl_process_name>|<process_variable_name> [element reference...] <value> [<object> <value>] [-radix <radix_type>] ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 115 第 9 章 : ISim Tcl コ マ ン ド put コ マ ン ド のオプ シ ョ ン 表 9-6 : put コ マ ン ド のオプ シ ョ ン オプ シ ョ ン 説明 • <signal name> : 値を割 り 当て る 信号ま たはバ ス の名前を指定 し ます。 信号ま たは <signal_name>| <vhdl_process_name>| <process_variable_name> [element reference...] バ ス の配列、 信号ま たはバ ス を含むレ コ ー ド 配列あ る いはバ ス ま たは信号の配列を 含むレ コ ー ド も 指定で き ます。 • <vhdl_process_name/process_variable_name> : 値を割 り 当て る プ ロ セ スお よ びプ ロ セ ス変数の名前を指定 し ます。 プ ロ セ ス変数に値を割 り 当て る には、 その 変数を含むプ ロ セ ス の名前 も 指定す る 必要があ り ます。 プ ロ セ ス名 と プ ロ セ ス変数 名は、 ス ラ ッ シ ュ (/) で区切 り ます。 <value> • [element reference] : 参照す る 信号名のサブエ レ メ ン ト を指定 し ます ( オプシ ョ ン )。 信号の個々のサブエ レ メ ン ト を参照する こ と で信号を詳細に指定で き ます。 詳 細は、 次の例を参照 し て く だ さ い。 信号の タ イ プに基づいて、 次の値を割 り 当て る こ と がで き ます。 • integer 型には、 正ま たは負の整数を指定で き ます。 • bit_vector 型には 0 ま たは 1、 あ る いは 0 と 1 の配列を指定で き ます。 • VHDL の場合、 std_logic 型には U、 X、 0、 1 な ど を指定で き ます。 • Verilog の場合、 bit_values 型には U、 X、 0、 1 を指定で き ます。 • strength 値はサポー ト さ れてい ません。 特定の基数が付いた値をオブジ ェ ク ト のデー タ タ イ プに変換 し 、オブジ ェ ク ト に値を書 き 込みます。 [<object> <value>] [-radix <radix_type>] <object> : 変更する 信号、 バス、 ま たはオブジ ェ ク ト を指定 し ます。 <value> : オブジ ェ ク ト に追加す る 値を指定 し ます。 サポー ト さ れ る 基数 タ イ プは、 -radix [radix_types]default、 dec、 bin、 oct、 hex、 unsigned お よ び ascii です。 基数 タ イ プが指定 さ れていない場合は、 isim set radix コ マ ン ド で設定 さ れ る グ ロ ーバル基数 タ イ プが使用 さ れ、 こ の コ マ ン ド で も 基数 タ イ プが設定 さ れていない 場合は、 default が基数 と し て使用 さ れます。 put コ マ ン ド の例 バスまたは信号への値の割 り 当て clk と い う 信号に値を割 り 当て る には、 次の よ う に入力 し ます。 put clk 1 ま たは put clk 1 -radix bin ま たは put clk “1” -radix bin busx と い う 4 ビ ッ ト バ ス に値を割 り 当て る には、 次の よ う に入力 し ます。 put busx 0101 A と い う 信号に値 FF を割 り 当て る には、 次の よ う に入力 し ます。 put A FF -radix hex 116 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド 現在の階層に イ ン ス タ ン シエー ト さ れてい る モジ ュ ール u1 にあ る 信号 count(6) に ビ ッ ト 値 1 を割 り 当て る には、 次の よ う に入力 し ます。 put u1/count(6) 1 標準ロ ジ ッ ク ベ ク タ ーへの値の割 り 当て こ の後の例は、 次の よ う に宣言 さ れてい る sigx と い う 標準 ロ ジ ッ ク ベ ク ターを使用 し てい ます。 signal sigx : std_logic_vector(0 to 5); sigx の ビ ッ ト 0 を 1 に設定す る には、 次の よ う に入力 し ます。 put sigx(0) 1 sigx の ビ ッ ト 1 ~ 2 を 11 に設定する には、 次の よ う に入力 し ます。 put sigx(1:2) 11 sigx を 101010 に設定する には、 次の よ う に入力 し ます。 put sigx 101010 オブ ジ ェ ク ト の配列への値の割 り 当て 次は、 次の よ う に宣言 さ れてい る 標準 ロ ジ ッ ク ベ ク タ ーの配列に値を割 り 当ててい ます。 signal sigarray:(0 to 3) vectorarray(0 to 5, 1 to 4, 2 to 6); sigarray ベ ク タ ー配列要素の各ビ ッ ト を 1 に設定す る には、 次の よ う に入力 し ます。 put sigarray(0,1,2)1111 sigarray ベ ク タ ー配列要素の最初の 2 ビ ッ ト を 10 に設定す る には、 次の よ う に入力 し ます。 put sigarray(0,1,2)(1:2)10 sigarray ベ ク タ ー配列要素の ビ ッ ト 3 を 1 に設定す る には、 次の よ う に入力 し ます。 put sigarray(0,1,2)(3)1 次での例では、宣言 さ れてい る標準 ロ ジ ッ ク ベ ク ターの配列を含むレ コ ー ド 配列を使用 し てい ます。 type ram_3d_vector is array(0 to 10, 7 downto 0, 0 to 2) of std_logic_vector(1 to 4); type rectype is record a: integer; b: string(1 to 7); c: std_logic_vector(0 to 3); d: ram_3d_vector; end record; type recarray is array(0 to 3, 4 downto 1) of rectype; signal recarrsig: recarray; signal recsig: rectype; レ コ ー ド recsig の 2 番目の要素 (b) を文字列 abc に設定す る には、 次の よ う に入力 し ます。 put recsig.b(2:4)abc レ コ ー ド recsig の 3 次元配列 d の座標 2,3,1 で示 さ れ る 4 ビ ッ ト 幅のベ ク タ ーを 0110 に設定す る には、 次の よ う に入力 し ます。 put recsig.d(2,3,1) 0110 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 117 第 9 章 : ISim Tcl コ マ ン ド レ コ ー ド recsig の 3 次元配列 d の座標 2,3,1 で示 さ れ る 4 ビ ッ ト 幅のベ ク タ ーの最初の 2 ビ ッ ト を 01 に設定す る には、 次の よ う に入力 し ます。 put recsig.d(2,3,1)(1:2) 01 2 次元配列 recarrsig の座標 2,2 で示 さ れ る レ コ ー ド recsig の 3 次元配列 d の座標 2,3,1 で示 さ れ る 4 ビ ッ ト 幅のベ ク タ ー値を設定す る には、 次の よ う に入力 し ます。 put recarrsig(2,2).d(2,3,1)0011 quit quit コ マン ド では、 コ マン ド オプシ ョ ンに従い、 シ ミ ュ レーシ ョ ン ま たはツールのいずれかを終 了 し ます。 オプシ ョ ン がない場合は、 グ ラ フ ィ カル ユーザー イ ン タ ーフ ェ イ ス では終了を示すプ ロ ンプ ト が表示 さ れてか ら ISim が終了 し 、 コ マ ン ド ラ イ ンではすぐ に I Sim が終了 し ます。 quit コ マ ン ド の構文 quit [-f] [-s] 説明 : • -f 現在のシ ミ ュ レーシ ョ ン を停止 し て、 ISim ツールを終了 し ます。 波形 コ ン フ ィ ギ ュ レーシ ョ ン に変更を加え た と き で も 保存を尋ね る ダ イ ア ロ グ ボ ッ ク ス は表示 さ れま せん。 コ マ ン ド ラ イ ンでは、 ソ フ ト ウ ェ アがすぐ に終了 し ます。 • -s グ ラ フ ィ カル ユーザー イ ン タ ーフ ェ イ ス を開いた ま ま現在のシ ミ ュ レーシ ョ ン を停止 し ます。 こ の場合、 ISim では [File] → [Open] で WDB フ ァ イ ルを開いて ス タ テ ィ ッ ク 波形デー タ ベー ス を読み込む以外の作業は実行で き ません。 コ マ ン ド ラ イ ンでは、 ソ フ ト ウ ェ アがすぐ に終了 し ます。 quit コ マ ン ド の例 ISim を終了 し て Tcl プ ロ ンプ ト を閉 じ ます。 quit ISim を終了 し て波形を保存 し ます。 quit -f 現在のシ ミ ュ レーシ ョ ン を終了 し ます。 quit -s restart シ ミ ュ レーシ ョ ン を停止 し てシ ミ ュ レーシ ョ ン時間を 0 に戻 し ます。 こ れに よ り 、 デザ イ ン を読み 込み直 さ ずにシ ミ ュ レーシ ョ ン を実行 し 直す こ と がで き ます。 GUI で [Simulation] → [Restart] を 実行 し て も 、 こ の操作を実行で き ます。 restart コ マ ン ド の構文 restart [onerror][scope][saif][vcd][isim force][put] 118 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド restart コ マ ン ド のオプ シ ョ ン : 表 9-7 : restart コ マ ン ド のオプ シ ョ ン オプ シ ョ ン 説明 onerror onerror ス ク リ プ ト を削除 し ます。 scope 階層が /top に リ セ ッ ト さ れます。 saif フ ァ イ ルを閉 じ ます。 vcd フ ァ イ ルを閉 じ ます。 isim force force 指定を削除 し ます。 put 初期値に戻 り ます。 restart コ マ ン ド の例 シ ミ ュ レーシ ョ ン時間を 0 に戻 し てシ ミ ュ レーシ ョ ン を開始す る には、 次を入力 し ます。 restart resume resume コ マン ド は onerror コ マン ド と 共に使用 し て、 エ ラ ーが発生 し た後に コ マン ド の実行を 継続 さ せます。 注記 : こ の コ マ ン ド のみを入力 し て も 効力はあ り ません。 resume コ マ ン ド の構文 resume こ の コ マ ン ド にはオプシ ョ ンがあ り ません。 resume コ マ ン ド の例 エ ラ ーが発生 し た時間お よ び現在の階層に含まれ る 値すべて を表示 し た後に Tcl ス ク リ プ ト の次の コ マ ン ド の読み出 し が継続 さ れます。 onerror {show time;dump;resume} run run コ マン ド を実行す る と 、 シ ミ ュ レーシ ョ ンが開始 し ます。 こ の コ マン ド を オプシ ョ ン を使用せ ずに実行す る と 、 シ ミ ュ レーシ ョ ンが 100ns 間実行 さ れます。 GUI で こ れを実行す る には、 次を ク リ ッ ク し ます。 • [Simulation] → [Run All] • [Simulation] → [Run] run コ マ ン ド の構文 run [all][continue][<time> <unit>] ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 119 第 9 章 : ISim Tcl コ マ ン ド run コ マ ン ド のオプ シ ョ ン 表 9-8 : run コ マ ン ド のオプ シ ョ ン オプ シ ョ ン 説明 all イ ベン ト がすべて終了す る かブ レー ク ポ イ ン ト に達す る ま で、 シ ミ ュ レー シ ョ ン を実行 し ます。ブ レー ク ポ イ ン ト の設定お よ び削除に関す る 詳細は、 「bp コ マン ド 」 を参照 し て く だ さ い。 continue ブ レ ー ク ポ イ ン ト でシ ミ ュ レーシ ョ ンが停止 し た後に、 シ ミ ュ レ ーシ ョ ン を再開 し ます。 こ のオプシ ョ ンは、 run all を実行す る の と 同 じ です。 <time> <unit> • <time> では、 シ ミ ュ レーシ ョ ン を実行す る 時間を指定 し ます。 こ の値 には、 正の整数ま たは少数を使用で き ます。 • <unit> は、 時間の単位を指定 し ます。 使用可能な値は、 fs、 ps、 ns、 us、 ms、 sec のいずれかです。 デフ ォル ト では ps です。 run コ マ ン ド の例 run コ マン ド は、 次の よ う に使用 し ます。 イ ベン ト がすべて終了す る かブ レー ク ポ イ ン ト に達す る ま で、 シ ミ ュ レーシ ョ ン を実行 し ます。 run all シ ミ ュ レーシ ョ ン を 2000ns 間実行す る には、 次の よ う に入力 し ます。 run 2000 ns シ ミ ュ レーシ ョ ン を 1.2ns 間実行す る には、 次の よ う に入力 し ます。 run 1.2 ns シ ミ ュ レーシ ョ ン を 100ns 間実行 し ます。 run 120 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド saif saif コ マ ン ド を使用す る と 、 SAIF (Switching Activity Interchange format) フ ァ イ ルを 生成 し て ポー ト お よ び信号の ス イ ッ チン グ レー ト を記録で き ます。 詳細は、 第 7 章 「消費電力のア ク テ ィ ビ テ ィ デー タ の書 き 出 し 」 を参照 し て く だ さ い。 saif コ マ ン ド の構文 saif open[-scope <path_name>] [-file <file_name>][-allnets] close [-level <number_of_levels>] saif コ マ ン ド のオプ シ ョ ン 表 9-9 : saif コ マ ン ド のオプ シ ョ ン オプ シ ョ ン 説明 open open : 消費電力概算用の SAIF フ ァ イ ルを生成 し ます。 [-scope <path_name>] • -scope <path_name> : 特定の階層お よ び再帰的階層の [-file <file_name>] [-allnets] 消費電力概算デー タ を作成 し ます。 相対パ ス、 絶対パス の いずれかを使用で き ます。 パ ス が指定 さ れていない場合 は、 現在の階層が使用 さ れます。 • -file <file_name> : 新 し い SAIF フ ァ イ ルを生成 し ま す。 デフ ォル ト 名は xpower.saif です。 シ ミ ュ レーシ ョ ン実行中に開 く こ と がで き る SAIF フ ァ イ ルは 1 つのみで す。 • -allnets : 消費概算に内部ネ ッ ト お よ びポー ト 信号が含 め ら れます。 こ のオプシ ョ ン を使用 し ない場合は、 ポー ト 信号の変化だけが監視 さ れます。 close 監視を停止 し て SAIF フ ァ イ ルを出力 し ます。 [-level <number_of_levels>] デザ イ ン 階層の階層 レ ベル を 必要 な だ け 含め る こ と が で き ま す。 • -level 0 : 指定 し た階層下すべての レベルの信号遷移が 監視 さ れ、 SAIF フ ァ イ ルに含め ら れます。 • -level 1 : 指定 し た階層のみの信号遷移が監視 さ れ、 SAIF フ ァ イ ルに含め ら れます。 • -level 2 : 指定 し た階層の 2 つの レベルの信号遷移が監 視 さ れ、 SAIF フ ァ イ ルに含め ら れます。 saif コ マ ン ド の例 saif コ マン ド は次の よ う に使用 し ます。 現在の階層にあ る デザ イ ンのすべてのポー ト が xpower.saif フ ァ イ ルに書 き 込まれます。 saif open 現在の階層に あ る デザ イ ン のすべてのポー ト お よ び内部ネ ッ ト が xpower.saif フ ァ イ ルに書 き 込まれます。 saif open -allnets ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 121 第 9 章 : ISim Tcl コ マ ン ド UUT に あ る デザ イ ン のすべてのポー ト お よ び内部ネ ッ ト が uut_backward.saif フ ァ イ ルに書 き込まれます。 saif open -scope uut -file uut_backward.saif -allnets scope scope コ マ ン ド を使用 し て、 デザ イ ン階層を移動 し ます。 オプシ ョ ン を使用せずに実行す る と 、 現 在のモジ ュ ール情報が表示 さ れます。 scope コ マ ン ド の構文 scope..<path_name> 説明 : • .. 現在のモジ ュ ールの 1 つ上位にあ る モジ ュ ールの情報を表示 し ます。 • <path_name> モジ ュ ール情報を表示す る モジ ュ ールへのパス を指定 し ます。 相対パス、 絶対パス のいずれか を使用で き ます。 scope コ マ ン ド の例 scope コ マン ド は、 次の よ う に使用 し ます。 1 つ上の階層に移動する には、 次の よ う に入力 し ます。 scope.. 現在のモジ ュ ールに イ ン ス タ ン シエー ト さ れてい る UUT と い う モジ ュ ールに移動す る には、 次の よ う に入力 し ます。 scope UUT 配線後のネ ッ ト リ ス ト の子イ ン ス タ ン スに scope コ マン ド を使用する には、次の よ う に入力し ます。 X_IPAD \CLK/PAD ( .PAD(CLK) ); \CLK/PAD は拡張 さ れた識別子です。 scope /testbench/UUT/\\CLK/PAD\ 拡張 さ れた識別子の CLK お よ び PAD の前後にバ ッ ク ス ラ ッ シ ュ (\) を付け る 必要があ り ます。 sdfanno sdfanno コ マン ド では、 SDF (Standard Delay Format) フ ァ イ ルの VITAL 遅延を、 VITAL 準拠の VHDL モデルで作成 さ れた VHDL デザ イ ンにバ ッ ク ア ノ テー ト し ます。ま た、 こ の コ マ ン ド では、 Verilog モジ ュ ールの specify ブ ロ ッ ク で指定 さ れた タ イ ミ ン グ にバ ッ ク ア ノ テー ト す る こ と も で き ます。 sdfanno コ マ ン ド の構文 sdfanno -min | -typ | -max | <file_name> [<file_name>][-nowarn][-noerror][-root <root_path>] 説明 : 122 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド -min | -typ | -max| and <file_name> are required. オ プ シ ョ ン に つ い て は、 123 ペ ー ジ の 表 9-10 を参照 し て く だ さ い。 sdfanno コ マ ン ド のオプ シ ョ ン 表 9-10 : sdfanno コ マ ン ド のオプ シ ョ ン オプ シ ョ ン -min | -typ | -max 説明 -min、 -typ、 -max のいずれかか ら 遅延オプシ ョ ン を指定す る 必要が あ り ます。 • -min : VHDL/Verilog フ ァ イ ルを最小遅延値でア ノ テー ト し 、 ホール ド タ イ ムの タ イ ミ ン グ シ ミ ュ レーシ ョ ン を指定 し ます。 • -typ : VHDL/Verilog フ ァ イ ルを標準遅延値でア ノ テー ト し ます。 • -max : VHDL/Verilog フ ァ イ ルを最大遅延値でア ノ テー ト し、 セ ッ ト ア ッ プ タ イ ムの タ イ ミ ン グ シ ミ ュ レーシ ョ ン を指定 し ます。 <file_name> 遅延情報を含む SDF フ ァ イ ルの名前を指定 し ます。 sdfanno コ マン ド では、 フ ァ イ ル名を指定する 必要があ り ます。 -nowarn 警告 メ ッ セージ を非表示に し ます。 -noerror エ ラ ー メ ッ セージ を警告 メ ッ セージに し ます。 こ のオプシ ョ ン を使用 する と 、 SDF バ ッ ク ア ノ テーシ ョ ンにエ ラ ーがあ っ て も 、 シ ミ ュ レー シ ョ ン を続行で き ます。 -root <root_path> ア ノ テーシ ョ ン を実行する デザ イ ン内の位置を指定 し ます。 SDF フ ァ イ ルで指定 さ れてい る パ ス は、 <root_path> で指定 さ れたデザ イ ン 階層の位置を基準 と し て決定 さ れます。デフ ォル ト では、デザ イ ンの最 上位がルー ト に設定 さ れてい ます。 sdfanno コ マ ン ド の例 sdfanno -typ の例 mysubdesign.sdf フ ァ イ ルの標準遅延をサブモジ ュ ール subdesign にア ノ テー ト す る には、 次 の よ う に入力 し ます。 sdfanno -typ mysubdesign.sdf -root /subdesign design.sdf フ ァ イ ルの標準遅延を現在のデザ イ ンの最上位にア ノ テー ト し て、エ ラ ーま たは警告 をすべて無視す る には、 次の よ う に入力 し ます。 sdfanno -typ design.sdf -noerror -nowarn sdfanno -min の例 mysubdesign.sdf フ ァ イ ルの最小遅延をサブモジ ュ ール "subdesign" にア ノ テー ト する には、 次 の よ う に入力 し ます。 sdfanno -min mysydesign.sdf -root /subdesign sdfanno -max の例 design.sdf フ ァ イ ルの最大遅延を現在のデザ イ ンの最上位にア ノ テー ト す る には、次の よ う に入 力 し ます。 sdfanno -max design.sdf -nowarn ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 123 第 9 章 : ISim Tcl コ マ ン ド show show コ マン ド では、 デザ イ ンの選択 し た部分を表示 し ます。 show コ マ ン ド の構文 show [child | child -r][constant][driver <signal_name>] [load <signal_name>][port][scope][signal][time] value [<generic_name> | <parameter_name> | <process_name>/<process_variable_name>] [<signal_name> [element references...]<object> [-radix <radix_type>] variable show コ マ ン ド のオプ シ ョ ン 表 9-11 : show コ マ ン ド のオプ シ ョ ン オプ シ ョ ン 説明 child | child -r child では現在のブ ロ ッ ク の子ブ ロ ッ ク (1 レベルのみ) が表示 さ れ、 child -r で は現在のブ ロ ッ ク の子プ ロ セ ス を含む、すべての子ブ ロ ッ ク を再帰的に リ ス ト し ます。 constant 現在のブ ロ ッ ク に含 まれてい る 定数、 ジ ェ ネ リ ッ ク 、 お よ びパ ラ メ ー タ ーを リ ス ト し ます。 driver <signal_name> <signal_name> で指定 さ れた信号を駆動す る プ ロ セ ス を表示 し ます。 可能な場合、 その ド ラ イ バーを記述す る HDL コ ー ド の行番号 も 表示 し ます。 load <signal_name> <signal_name> で指定 さ れた信号の ロ ー ド をすべて表示 し ます。 port 現在のブ ロ ッ ク 内にあ る ポー ト 信号を表示 し ます。 信号が入力であ る か出力であ る か が示 さ れます。 scope デザ イ ン階層の現在の位置を表示 し ます。階層での位置を表示す る だけで、変更はで き ません。scope コ マ ン ド を <path_name> オプシ ョ ン な し で実行 し た場合 と 同 じ です。 signal ポー ト 信号 も 含む、 現在のモジ ュ ール内にあ る 信号を表示 し ます。 time シ ミ ュ レー タ の現在の時間を表示 し ます。 value [<generic_name> | <parameter_name> | • <generic_name> : コ マン ド 実行の対象 と な る VHDL ジ ェ ネ リ ッ ク の名前を指定 し <process_name>/ <process_variable_name>] • <parameter_name> : コ マン ド 実行の対象 と な る VHDL パ ラ メ ー ターの名前を ます。 入力 し ます。 • <process_name/process_variable_name> : コ マン ド 実行の対象 と な る プ ロ セ スお よ びプ ロ セ ス変数の名前を指定 し ます。 プ ロ セ ス変数の値を表示す る には、 その変数を含むプ ロ セ ス の名前 も 指定す る 必要があ り ます。 プ ロ セ ス名 と プ ロ セ ス変数名は、 ス ラ ッ シ ュ (/) で区切 り ます。 124 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド 表 9-11 : show コ マ ン ド のオプ シ ョ ン (続き ) オプ シ ョ ン 説明 • <signal_name> は、 コ マン ド 実行の対象 と な る 信号の名前で、 信号ま たはバ ス [<signal_name> の配列、 信号ま たはバ ス を含むレ コ ー ド 配列あ る いはバ ス ま たは信号の配列を含 むレ コ ー ド も 指定で き ます。 [element references...] • レ コ ー ド の階層を区切 る には、 次の よ う に ピ リ オ ド ( . ) を使用 し ます。 show value recsig.c • 下位階層の信号の値を表示す る には、 次の よ う に ス ラ ッ シ ュ (/) を使用 し て信 号の階層名を区切 り ます。 show value mymod/mysig [element reference] : 参照する 信号名のサ ブエ レ メ ン ト を指定 し ます。 信号の個々のサブエ レ メ ン ト を参照す る こ と で信号を詳細に指定で き ます。 次の 例を参照 し て く だ さ い。 • show value(3:0) の よ う に value の後にかっ こ で囲み、 コ ロ ンで区切っ た 2 つの整数を入力す る と 、 <signal_name> で指定 さ れてい る ベ ク ターの値が表 示 さ れます。 • show value(2,3)の よ う に、 value の後にかっ こ で囲み、 コ ンマで区切っ た整 数を入力す る と 、 <signal_name> で指定 さ れてい る 多次元配列のエ レ メ ン ト の値が表示 さ れます。 • <object> [-radix <radix_type>] : 特定の基数 と 共に値が表示 さ れます。 <object> : HDL オブジ ェ ク ト デー タ タ イ プを設定 し ます。 <object> [-radix <radix_type>] • サポー ト さ れ る <radix_type> : default, dec, bin, oct, hex, unsigned, and ascii 基数 タ イ プが指定 さ れていない場合は、 isim set radix コ マン ド で設定 さ れ る グ ロ ーバル基数 タ イ プが使用 さ れ、 こ の コ マン ド で も 基数 タ イ プが設定 さ れてい ない場合は、 default が使用 さ れます。 現在のブ ロ ッ ク にあ る 変数すべて を表示 し ます。 VHDL プ ロ セ ス内の変数を表示する には、 scope コ マン ド を使用 し て VHDL プ ロ セ ス ま でナビ ゲー ト し てか ら show variable を実行 し ます。 variable show コ マ ン ド の例 show child fifo_controller と い う デザ イ ン の最上位階層か ら 「show child」 を実行す る と 、 次の階層 情報が表示 さ れます。 Block Name:<fifo_controller> 「show child -r 」 と 入力する と 、 現在の階層お よ び再帰的階層の情報が表示 さ れます。 show driver fifo_count と い う デ ザ イ ン の 最上 位階 層 か ら 「show driver fifocount」 を 実 行す る と 、 fifocount 信号に関す る 次の情報が表示 さ れます。 <Driver for fifocount> fifoctlr_cc_v2.v:221 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 125 第 9 章 : ISim Tcl コ マ ン ド 2 行目の最後の数値 221 は、 ソ ース フ ァ イ ルでの行番号を示 し ます。 show load fifo_count と い う デザ イ ンの最上位階層か ら 「show load fifocount」 を実行す る と 、 fifocount 信号に関す る 次の情報が表示 さ れます。 <Load for fifocount> Signal <Hex(0)> (Block: fifo_count/Lsbled/) Signal <Hex(1)> (Block: fifo_count/Lsbled/) Signal <Hex(2)> (Block: fifo_count/Lsbled/) Signal <Hex(3)> (Block: fifo_count/Lsbled/) show scope fifo_count と い う デザ イ ンの最上位階層か ら 「show scope」 を実行す る と 、 次の情報が表示 さ れます。 <Block> /tb_cc_func/ show value (信号) clk と い う 信号の値を表示す る には、 次の よ う に入力 し ます。 show value clk busx と い う 4 ビ ッ ト バ ス の値を表示す る には、 次の よ う に入力 し ます。 show value busx addr の値を表示す る には、 次の よ う に入力 し ます。 show value addr • 「0111010101011101」 が表示 さ れます。 show value addr -radix hex • 「755D」 が表示 さ れます。 show value addr -radix dec • 「30045」 が表示 さ れます。 show value ( オブ ジ ェ ク ト ) こ の後の例は、 次の よ う に宣言 さ れてい る sigx と い う 標準 ロ ジ ッ ク ベ ク ターを使用 し てい ます。 signal sigx : std_logic_vector(0 to 5); sig の ビ ッ ト 0 の値を表示する には、 次の よ う に入力 し ます。 show value sigx(0) sigx の ス ラ イ ス 1 ~ 2 の値を表示す る には、 次の よ う に入力 し ます。 show value sigx(1:2) sigx のすべての値を表示す る には、 次の よ う に入力 し ます。 show value sigx 126 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド オブ ジ ェ ク ト の配列の値の表示 こ の後の例は、 次の よ う に宣言 さ れてい る 標準 ロ ジ ッ ク ベ ク タ ーの配列を使用 し てい ます。 signal sigarray: vectorarray(0 to 5, 1 to 4, 2 to 6); sigarray のベ ク タ 配列要素のすべての ビ ッ ト 値を表示す る には、 次の よ う に入力 し ます。 show value sigarray(0,1,2) sigarray の各ベ ク タ ー配列要素の最初の 2 ビ ッ ト 値を表示す る には、 次の よ う に入力 し ます。 show value sigarray(0,1,2)(1:2) sigarray の各ベ ク タ ー配列要素の ビ ッ ト 3 の値を表示す る には、 次の よ う に入力 し ます。 show value sigarray(0,1,2)(3) こ の後の例は、次の よ う に宣言 さ れてい る 標準 ロ ジ ッ ク ベ ク タ ーの配列を含むレ コ ー ド 配列を使用 し てい ます。 type ram_3d_vector is array(0 to 10, 7 downto 0, 0 to 2) of std_logic_vector(1 to 4); type rectype is record a: integer; b: string(1 to 7); c: std_logic_vector(0 to 3); d: ram_3d_vector; end record; type recarray is array(0 to 3, 4 downto 1) of rectype; signal recarrsig: recarray; signal recsig: rectype; レ コ ー ド recsig の 2 番目の要素 (b) の値を表示す る には、 次の よ う に入力 し ます。 show value recsig.b(2:4) レ コ ー ド recsig の 3 次元配列 d の座標 2,3,1 で示 さ れ る 4 ビ ッ ト 幅のベ ク タ ーの値を表示する には、 次の よ う に入力 し ます。 show value recsig.d(2,3,1) レ コ ー ド recsig の 3 次元配列 d の座標 2,3,1 で示 さ れ る 4 ビ ッ ト 幅のベ ク タ ーの最初の 2 ビ ッ ト の値を表示す る には、 次の よ う に入力 し ます。 show value recsig.d(2,3,1)(1:2) 2 次元配列 recarrsig の座標 2,2 で示 さ れ る レ コ ー ド recsig の 3 次元配列 d の座標 2,3,1 で 示 さ れ る 4 ビ ッ ト 幅のベ ク タ ーの値を表示す る には、 次の よ う に入力 し ます。 show value recarrsig(2,2).d(2,3,1) step 1 回目のシ ミ ュ レーシ ョ ン を実行 し た後、 HDL デザ イ ンの ソ ース コ ー ド を 1 行ずつ実行 し て、 デ ザ イ ンが予期どお り に動作す る かを検証で き ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 127 第 9 章 : ISim Tcl コ マ ン ド step こ の コ マ ン ド を使用す る と 、 HDL フ ァ イ ル (Verilog ま たは VHDL) の実行 コ ー ド の次の行 ま でシ ミ ュ レーシ ョ ンが進みます。GUI で [Simulation] → [Step] を実行 し て も 、こ の操作を実行で き ます。 step コ マ ン ド の構文 step オプシ ョ ンはあ り ません。 step コ マ ン ド の例 HDL ソ ース コ ー ド を 1 行ずつ実行す る には、 次の よ う に入力 し ます。 step test test コ マン ド では、VHDL 信号、Verilog ワ イ ヤ、Verilog レ ジ ス タ 、VHDL ジ ェ ネ リ ッ ク 、Verilog パ ラ メ ー タ ー、 ま たは VHDL の process 変数の実数 と 入力 し た値を比較 し ます。 こ の 2 つの値が一致 し てい る 場合は何 も 表示 さ れませんが、 一致 し ていない場合は、 正 し い値が表 示 さ れ、 ISim でエ ラ ーが レ ポー ト さ れ ます。 こ のテ ス ト は、 ベ ク タ ー エ レ メ ン ト の 1 ビ ッ ト ま た は全体値に実行で き ます。 test コ マ ン ド の構文 test <signal_name>| <vhdl_process_name /<process_variable_name>] [element reference...]<value> <object> <value> [-radix <radix_type>] 128 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド test コ マ ン ド のオプ シ ョ ン 表 9-12 : test コ マ ン ド のオプ シ ョ ン オプ シ ョ ン 説明 <signal_name>| <vhdl_process_name / <process_variable_name > • <signal_name> は、 比較対象 と な る 信号の名前で、 信号ま たはバ ス の配列、 信号 [element reference...] 比較す る プ ロ セ スお よ びプ ロ セ ス変数の名前を指定 し ます。 プ ロ セ ス変数の値を比 較す る には、 その変数を含むプ ロ セ ス の名前 も 指定す る 必要があ り ます。 プ ロ セ ス 名 と プ ロ セ ス変数名は、 ス ラ ッ シ ュ (/) で区切 り ます。 ま たはバ ス を含むレ コ ー ド 配列あ る いはバ ス ま たは信号の配列を含むレ コ ー ド も 指 定で き ます。 • <vhdl_process_name/process_variable_name> : <value> • {element reference} : 参照す る 信号名のサブエ レ メ ン ト を指定 し ます。 信号の 個々のサブエ レ メ ン ト を参照す る こ と で信号を詳細に指定で き ます。 • <value> : 信号ま たはバス の実際の値 と 比較す る 値を入力 し ます。 <object> <value> 特定の基数が付いた値 と オブジ ェ ク ト の値を比較 し ます。 [-radix <radix_type>] • <object> : テ ス ト する 信号、 バス、 ま たはオブジ ェ ク ト を指定 し ます。 • <value> : オブジ ェ ク ト に追加す る 値を指定 し ます。 サポー ト さ れ る 基数 タ イ プは、 default、 dec、 bin、 oct、 hex、 unsigned、 お よ び ascii です。 基数 タ イ プが 指定 さ れていない場合は、 isim set radix コ マン ド で設定 さ れ る グ ロ ーバル基数 タ イ プが使用 さ れ、 こ の コ マン ド で も 基数 タ イ プが設定 さ れていない場合は、 default が使用 さ れます。 test コ マ ン ド の例 test コ マン ド は、 次の よ う に使用 し ます。 現在の階層に イ ン ス タ ン シエー ト さ れてい る モジ ュ ール u1 にあ る 信号 count(6) が 1 であ る か を調べ る には、 次の よ う に入力 し ます。 test u1/count(6) 1 信号 A の値 と FF を比較する には、 次の よ う に入力 し ます。 test A FF -radix hex 値 と clk の値を比較す る には、 次の よ う に入力 し ます。 test clk “U” 次が戻 さ れます。 1 値 と clk の値を比較す る には、 次の よ う に入力 し ます。 test clk “0” 次が戻 さ れます。 0 /top/rst が 0 の場合にシ ミ ュ レーシ ョ ン を停止す る には、 次の よ う に入力 し ます。 if {[test /top/rst 0]} {stop} else... UUT と い う ブ ロ ッ ク の Reset 信号 を比較す る た めに、 「test Reset 1」 と 入力す る と 、 次の メ ッ セージが表示 さ れます。 test failed Command failed: test Reset 1 1 Net Reset has value 0 not 1 as expected. ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 129 第 9 章 : ISim Tcl コ マ ン ド UUT と い う ブ ロ ッ ク のバ ス Lsbcnt を比較する ために、 「test Lsbcnt 1001」 と 入力す る と 、 次の メ ッ セージが表示 さ れます。 test passed 0 こ の後の例は、 次の よ う に宣言 さ れてい る sigx と い う 標準 ロ ジ ッ ク ベ ク ターを使用 し てい ます。 signal sigx : std_logic_vector(0 to 5); sigx の ビ ッ ト 0 を 1 と 比較す る には、 次の よ う に入力 し ます。 test sigx(0) 1 sigx の ビ ッ ト 1 ~ 2 の値が 11 であ る かを調べ る には、 次の よ う に入力 し ます。 test sigx(1:2) 11 sigx のすべて を 101010 と 比較する には、 次の よ う に入力 し ます。 test sigx 101010 こ の後の例は、 次の よ う に宣言 さ れてい る 標準 ロ ジ ッ ク ベ ク タ ーの配列を使用 し てい ます。 signal sigarray: vectorarray(0 to 5, 1 to 4, 2 to 6); sigarray のベ ク タ ー配列要素のすべてのビ ッ ト が 1 であ る か を調べ る には、次の よ う に入力 し ます。 test sigarray(0,1,2)1111 sigarray の各ベ ク タ ー配列要素の最初の 2 ビ ッ ト が 10 であ る か を調べ る には、 次の よ う に入力 し ます。 test sigarray(0,1,2)(1:2)10 sigarray の各ベ ク タ ー配列要素の ビ ッ ト 3 が 1 であ る かを調べ る には、 次の よ う に入力 し ます。 test sigarray(0,1,2)(3)1 こ の後の例は、次の よ う に宣言 さ れてい る 標準 ロ ジ ッ ク ベ ク タ ーの配列を含むレ コ ー ド 配列を使用 し てい ます。 type ram_3d_vector is array(0 to 10, 7 downto 0, 0 to 2) of std_logic_vector(1 to 4); type rectype is record a: integer; b: string(1 to 7); c: std_logic_vector(0 to 3); d: ram_3d_vector; end record; type recarray is array(0 to 3, 4 downto 1) of rectype; signal recarrsig: recarray; signal recsig: rectype; レ コ ー ド recsig の 2 番目の要素 (b) が文字列 abc であ る かを調べ る には、次の よ う に入力 し ます。 test recsig.b(2:4)abc レ コ ー ド recsig の 3 次元配列 d の座標 2,3,1 で示 さ れ る 4 ビ ッ ト 幅のベ ク タ ーが 0110 であ る かを 調べ る には、 次の よ う に入力 し ます。 test recsig.d(2,3,1) 0110 130 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド レ コ ー ド recsig の 3 次元配列 d の座標 2,3,1 で示 さ れ る 4 ビ ッ ト 幅のベ ク タ ーの最初の 2 ビ ッ ト が 01 であ る かを調べ る には、 次の よ う に入力 し ます。 test recsig.d(2,3,1)(1:2) 01 2 次元配列 recarrsig の座標 2,2 で示 さ れ る レ コ ー ド recsig の 3 次元配列 d の座標 2,3,1 で示 さ れ る 4 ビ ッ ト 幅のベ ク タ ーが 0011 であ る か を調べ る には、 次の よ う に入力 し ます。 test recarrsig(2,2).d(2,3,1)0011 vcd vcd コ マン ド では、 シ ミ ュ レーシ ョ ン結果を VCD (Value Change Dump) フ ォーマ ッ ト で生成 し ま す。 こ の コ マ ン ド を使用す る と 、 次を実行で き ます。 • VCD フ ァ イ ルへの指定 イ ン ス タ ン ス の書 き 出 し • VCD フ ァ イ ルの命名 • 記述プ ロ セ ス の開始お よ び停止 その他の関数詳細は、第 7 章 「消費電力のア ク テ ィ ビ テ ィ デー タ の書 き 出 し 」 を参照 し て く だ さ い。 vcd コ マ ン ド の構文 vcd [dumpfile <file_name>][dumpvars -m <module_name> [-l <level>]] [dumpoff][dumpon][dumpall][dumplimit <file_size>][dumpflush] vcd コ マ ン ド のオプ シ ョ ン 表 9-13 : vcd コ マ ン ド のオプ シ ョ ン オプ シ ョ ン 説明 dumpfile <file_name> フ ァ イ ルの名前を指定 し ます。 デフ ォ ル ト 名は $dumpfile 関数を呼び出 し ます。 dumpvars -m <module_name> [-l <level>] 指定の変数お よ びその値を VCD フ ァ イ ルに書き 出 し ます。 VCD dump.vcd です。 Verilog の -m <module_name> : モジ ュ ール名を出力 し ます。 -l <level> {0|1} • 0 : 特定モジ ュ ールお よ びそのモジ ュ ールの下位にあ る すべてのモジ ュ ールの イ ン ス タ ン ス に含まれ る 変数をすべて出力 し ます。 引数 0 は、 モジ ュ ール イ ン ス タ ン ス を指定する 後続の引数にのみに適用 さ れ、 個々の変数には適用 さ れません。 • 1 : -m で指定 さ れたモジ ュール内の変数すべて を出力し ます。 ただ し、 こ のモジ ュー ルで イ ン ス タ ンシエー ト さ れたモジ ュールに含まれる変数は出力さ れません。 Verilog の $dumpfile 関数を呼び出 し ます。 dumpoff 書き 出 し プ ロ セ ス を一時的に中断 し 、 選択 さ れた変数をすべて X 値 と し て書 き 出 し ます。 Verilog の $dumpoff 関数を呼び出 し ます。 dumpon dumpoff オプシ ョ ンで中断 し た書 き 出 し プ ロ セ ス を再開 し 、 dumpon を呼び出 し た時に 選択 さ れてい る すべての値を書き 出 し ます。 Verilog の $dumpon 関数を呼び出 し ます。 dumpall 選択 し たすべての変数の現在の値を書き 出すチ ェ ッ ク ポ イ ン ト を VCD フ ァ イ ルに作成 し ます。 Verilog の $dumpall 関数を呼び出 し ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 131 第 9 章 : ISim Tcl コ マ ン ド 表 9-13 : vcd コ マ ン ド のオプ シ ョ ン (続き ) オプ シ ョ ン 説明 dumplimit <file_size> VCD フ ァ イ ルのサ イ ズ を制限 し ます。 <file_size> には VCD フ ァ イ ルの最大サ イ ズ をバ イ ト で指定 し ます。VCD フ ァ イ ルのサ イ ズが こ の最大値に達す る と 、書 き 出 し プ ロ セ ス が 停止 し 、最大値に達 し た こ と を示すコ メ ン ト が VCD フ ァ イ ルに記述 さ れます。Verilog の $dumplimit 関数を呼び出 し ます。 dumpflush OS の VCD フ ァ イ ル バ ッ フ ァ ーを空に し 、 バ ッ フ ァ ーのすべてのデー タ が確実に VCD フ ァ イ ルに保存 さ れ る よ う に し ます。こ の処理が終了す る と 、書 き 出 し プ ロ セ ス が再開 し 、 値が失われ る こ と はあ り ません。 Verilog の $dumpflush 関数を呼び出 し ます。 vcd コ マ ン ド の例 vcd コ マン ド は、 次の よ う に使用 し ます。 シ ミ ュ レーシ ョ ン を 1000 ns 間実行 し た後、モジ ュ ール UUT の VCD シ ミ ュ レーシ ョ ン値を VCD フ ァ イ ルに書 き 出すには、 次の コ マン ド を使用 し ます。 書 き 出すフ ァ イ ルを指定す る には、 次の よ う に入力 し ます。 vcd dumpfile adder.vcd 書 き 出すモジ ュ ール ネ ッ ト を指定する には、 次の よ う に入力 し ます。 vcd dumpvars -m /UUT シ ミ ュ レーシ ョ ン時間を指定 し てシ ミ ュ レーシ ョ ン を実行す る には、 次の よ う に入力 し ます。 run 1000 ns VCD フ ァ イ ルにデー タ を記述す る には、 次の よ う に入力 し ます。 vcd dumpflush wave log wave log コ マ ン ド では、 HDL オブジ ェ ク ト のシ ミ ュ レーシ ョ ン出力を波形デー タ ベース (wdb) フ ァ イ ルに記録 し ます。 VHDL 信号、 Verilog ワ イ ヤ、 お よ び Verilog レ ジ ス タ型を記録で き ます。 VHDL 変数は、 記録で き ません。 wave log コ マ ン ド の構文 wave log [-r] [<object_name>] 説明 : • -r 指定ブ ロ ッ ク の子モジ ュ ールすべて を再帰的に追加 し ます。 • <object_name> 波形デー タ ベース にシ ミ ュ レーシ ョ ン出力を記録す る HDL オブジ ェ ク ト を指定 し ます。 <object_name> には、 ブ ロ ッ ク の階層 イ ン ス タ ン ス名 (/tb/UUT な ど ) も 指定可能で、 こ の場合はブ ロ ッ ク に含ま れ る すべての HDL オブジ ェ ク ト が記録 さ れます。 ア ス タ リ ス ク (*) な ど の ワ イ ル ド カー ド は使用で き ません。 ブ ロ ッ ク の イ ン ス タ ン ス内すべての HDL オブジ ェ ク ト を追加す る には、 ブ ロ ッ ク の イ ン ス タ ン ス名を使用で き ます。 た と えば wave add /UUT は、 ア ス タ リ ス ク がサポー ト さ れ てい る と 仮定 し た場合、 wave add /UUT/* と 同 じ です。 132 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド wave log コ マ ン ド の例 モジ ュ ール イ ン ス タ ン ス /tb/UUT お よ び /tb/child/gt に関連付け ら れてい る 信号を波形デー タ ベース に記録す る には、 次の よ う に入力 し ます。 wave log /tb/UUT /tb/child/gt デザ イ ンの信号をすべて記録す る には、 次を入力 し ます。 wave log -r / 波形ウ ィ ン ド ウ コ マ ン ド wcfg new wcfg new コ マン ド では、 新 し い波形 コ ン フ ィ ギ ュ レーシ ョ ン を作成 し 、 新 し い ウ ィ ン ド ウ に表示 し ます。 wcfg new コ マ ン ド の構文 wcfg new wcfg new コ マ ン ド の例 新 し い波形 コ ン フ ィ ギ ュ レーシ ョ ン を作成 し ます。 wcfg new wcfg open wcfg open コ マン ド では、 波形 コ ン フ ィ ギ ュ レーシ ョ ン を新 し い ウ ィ ン ド ウ に開 き ます。 wcfg open コ マ ン ド の構文 wcfg open <filename> <filename> には、 開 く WCFG フ ァ イ ル名を指定 し ます。 wcfg open コ マ ン ド の例 WCFG フ ァ イ ルの名前 (toplevel.wcfg) を指定 し ます。 wcfg open toplevel.wcfg wcfg save wcfg save コ マン ド では、 作業中の波形 コ ン フ ィ ギ ュ レーシ ョ ン を フ ァ イ ルに保存 し ます。 wcfg save コ マ ン ド の構文 wcfg save <filename> wcfg save コ マ ン ド のオプ シ ョ ン <filename> には、 開 く WCFG フ ァ イ ル名を指定 し ます。 wcfg save コ マ ン ド の例 toplevel.wcfg と い う 名前の WCFG フ ァ イ ルに波形 コ ン フ ィ ギ ュ レ ーシ ョ ン を保存す る には、 次を入力 し ます。 wcfg save toplevel.wcfg ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 133 第 9 章 : ISim Tcl コ マ ン ド wcfg select wcfg select コ マ ン ド では、 指定の波形 コ ン フ ィ ギ ュ レ ーシ ョ ン を ア ク テ ィ ブ ウ ィ ン ド ウ に し ま す。 wcfg select コ マ ン ド の構文 wcfg select <wave_config_name> wcfg select コ マ ン ド のオプ シ ョ ン wcfg select コ マ ン ド のオプシ ョ ン <wave_config_name> には、 ア ク テ ィ ブにす る 波形 コ ン フ ィ ギ ュ レーシ ョ ン名を指定 し ます。 <wave_config_name> にすでに開いてい る 波形 コ ン フ ィ ギ ュ レーシ ョ ン を指定 し ない場合は、 エ ラ ー メ ッ セージが表示 さ れます。 wcfg select コ マ ン ド の例 design と い う 波形 コ ン フ ィ ギ ュ レーシ ョ ン を ア ク テ ィ ブにす る には、 次を入力 し ます。 wcfg select design wave add wave add コ マン ド では、 ISim グ ラ フ ィ カル ユーザー イ ン タ ーフ ェ イ ス に表示 さ れてい る 作業中 の波形 コ ン フ ィ ギ ュ レ ーシ ョ ン に HDL オブジ ェ ク ト を追加 し 、 HDL オブジ ェ ク ト のシ ミ ュ レ ー シ ョ ン出力を波形デー タ ベース (wdb) フ ァ イ ルに記録 し ます。波形デー タ ベース フ ァ イ ルの名前は デフ ォ ル ト で isim.wdb で、 -wdb オプシ ョ ン を使用す る と 変更で き ます。 波形 コ ン フ ィ ギ ュ レー シ ョ ンは、 波形ウ ィ ン ド ウ に表示 さ れます。 GUI の場合は、 波形ウ ィ ン ド ウ で右 ク リ ッ ク し 、 [Add to Wave Window] を ク リ ッ ク し ます。 wave add コ マ ン ド の構文 wave add [-into <ID>][-reverse][-radix <radix>][-color <color>][-name <custom_name>] [-r] [<object_name>] wave add コ マ ン ド のオプ シ ョ ン 表 9-14 : wave add コ マ ン ド のオプ シ ョ ン オプ シ ョ ン 説明 -into <ID> オブジ ェ ク ト を追加する グループ オブジ ェ ク ト の ID ま たは仮想バ ス オブジ ェ ク ト の ID を指定 し ます。 -reverse バ ス ビ ッ ト 順を反転 し ます (MSB か ら LSB、 ま たはその逆)。 -radix <radix> 信号の値を表示す る と き の基数を指定 し ます。 <radix> の値には、 default (デフ ォル ト )、 bin (2 進数)、oct (8 進数)、hex (16 進数)、dec (10 進数)、unsigned (符号な し )、 ま たは ascii を使用で き ます。 134 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド 表 9-14 : wave add コ マ ン ド のオプ シ ョ ン (続き ) オプ シ ョ ン 説明 <color> で指定 し 色にシ ミ ュ レーシ ョ ン オブジ ェ ク ト を設定 し ます。 値は、 RGB フ ォー マ ッ ト で定義 し ます。 -color <color> た と えば、 青色な ら #0000FF、 赤色な ら #FF0000、 緑色な ら #00FF00 を指定 し ます。 一部の よ く 使用 さ れ る 色では、 色名を テキ ス ト で も 入力で き ます。 次の色を テ キ ス ト 入力 で き ます。black, red, darkred, green, darkgreen, blue, darkblue, cyan, darkcyan, magenta, darkmagenta, darkyellow, gray, darkgray, lightgray. こ れ ら の色の RGB 値は、 RGB 表で定義 さ れてい ます。 -name <custom_name> 波形オブジ ェ ク ト にカ ス タ ム名を付け ます。 -r 各ブ ロ ッ ク に関連す る オブジ ェ ク ト (最下位の階層の も の ま で) を波形に追加 し ます。 こ の オプシ ョ ン を指定 し ない場合は、 <object_name> で入力 さ れてい る ブ ロ ッ ク の最初の レ ベルのオブジ ェ ク ト が追加 さ れます。 <object_name> 波形デー タ ベース にシ ミ ュ レーシ ョ ン出力を記録す る HDL オブジ ェ ク ト を指定 し ます。 <object_name> には、ブ ロ ッ ク の階層 イ ン ス タ ン ス名 ( /tb/UUT な ど ) も 指定可能で、こ の場合はブ ロ ッ ク に含まれ る すべての HDL オブジ ェ ク ト が記録 さ れます。 こ のオプシ ョ ンには、 ワ イ ル ド カー ド 文字は使用で き ません。 すべての HDL オブジ ェ ク ト を ブ ロ ッ ク の イ ン ス タ ン ス内に追加す る には、 そのブ ロ ッ ク イ ン ス タ ン ス の名前を使用 し ます。 wave add コ マ ン ド の例 wave add コ マン ド は次の よ う に使用 し ます。 オブジ ェ ク ト UUT に関連す る 信号を現在の波形 コ ン フ ィ ギ ュ レーシ ョ ンに追加す る には、 次を入 力 し ます。 wave add /tb/UUT 最上位信号をすべて追加す る には、 次を入力 し ます。 wave add / デザ イ ンに含まれてい る RGB 値が #00FF10 の信号をすべて追加す る には、 次を入力 し ます。 wave add -r / -color #00FF10 基数が 16 進数で赤色の信号を追加する には、 次を入力 し ます。 wave add /tb/clk /tb/UUT/data -radix hex -color red divider add divider add コ マ ン ド では、 仕切 り を追加 し ます。 divider add コ マ ン ド の構文 divider add [-into <ID>][-color <color>] 説明 : • -into <ID> 仕切 り を追加す る グループのオブジ ェ ク ト ID を指定 し ます。 • -color <color> <color> で指定 し 色に仕切 り の色を設定 し ます。 値は、 RGB フ ォーマ ッ ト で定義 し ます。 た と えば、 青色な ら #0000FF、 赤色な ら #FF0000、 緑色な ら #00FF00 を指定 し ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 135 第 9 章 : ISim Tcl コ マ ン ド 一 部 の よ く 使 用 さ れ る 色 で は、 色 名 を テ キ ス ト で も 入 力 で き ま す。 black、 red、 darkred、 green、 darkgreen、 blue、 darkblue、 cyan、 darkcyan、 magenta、 darkmagenta、 darkyellow、 gray、 darkgray、 lightgray な ど の色を テキ ス ト 入力で き ます。 こ れ ら の色の RGB 値は、 RGB 表で定義 さ れてい ます。 divider add コ マ ン ド の例 Inputs と い う 名前の仕切 り を作業中の波形 コ ン フ ィ ギ ュ レーシ ョ ンに追加する には、 次の よ う に 入力 し ます。 divider add Inputs Outputs と い う 名前の赤色の仕切 り を追加す る には、 次の よ う に入力 し ます。 divider add Outputs -color red グループに仕切 り を追加す る には、 次を入力 し ます。 set test_group_id [group add test_group] wave add “dcm_clk_s” /tb/data2 -into $test_group_id divider add data -color blue -into $test_group_id wave add “addr1” /tb/UUT/addr2 -into $test_group_id divider add address -color red -into $test_group_id group add group add コ マ ン ド では、 グループを追加 し ます。 group add コ マ ン ド の構文 group add [-into <ID>] 説明 : • -into <ID> 新 し いグループ を追加す る 既存グループのオブジ ェ ク ト ID を指定 し ます。 group add コ マ ン ド の例 Inputs と い う 名前のグループ を作業中の波形 コ ン フ ィ ギ ュ レーシ ョ ンに追加す る には、 次の よ う に入力 し ます。 group add Inputs シ ミ ュ レーシ ョ ン オブジ ェ ク ト を追加する グループ dcm_clk_s を グループに追加す る には、 次を 入力 し ます。 set test_group_id [group add test_group] wave add “dcm_clk_s” -into $test_group_id グループ内にグループを作成す る には、 次を入力 し ます。 set group_id [group add test_group] set group_id_1 [group add group_1 ?into $group_id] set group_id_2 [group add group_2 ?into $group_id] wave add clk read_ok -into $group_id_1 wave add data_w -into $group_id_2 136 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Tcl コ マ ン ド virtualbus add virtualbus add コ マン ド では、現在作業中の波形 コ ン フ ィ ギ ュ レーシ ョ ンに仮想バ ス を追加 し ま す。 バ ス は空の状態で作成 さ れます。 その後に、 こ のバ ス に任意の HDL オブジ ェ ク ト を追加で き ます。 virtualbus add コ マ ン ド の構文 virtualbus add <name> [-into <ID>][-reverse][-radix <radix>] [-color <color>] virtualbus add コ マ ン ド のオプ シ ョ ン オプ シ ョ ン 説明 <name> 仮想バ ス の名前を指定 し ます。 -into <ID> 新 し い仮想バ ス を追加す る 既存の仮想バ ス のオブジ ェ ク ト ID を指定 し ます。 -reverse バ ス の順序を反転 し ます。 -radix <radix> 信号の値を表示す る と き の基数を指定 し ます。 <radix> の値には、 bin (2 進数)、 oct (8 進数)、 hex (16 進数)、 signed (符号付き )、 dec (10 進数)、 ま た は ascii を使用で き ます。 -color <color> 仮想バ ス の色を指定どお り に設定 し ます。 値は、 RGB フ ォーマ ッ ト で定義 し ます。 た と えば、 青色な ら #0000FF、 赤色な ら #FF0000、 緑色な ら #00FF00 を指定 し ます。 一部の よ く 使用 さ れ る 色では、 色名を テ キ ス ト で も 入力で き ます。 black、 red、 darkred、 green、 darkgreen、 blue、 darkblue、 cyan、 darkcyan、 magenta、 darkmagenta、 darkyellow、 gray、 darkgray、 lightgray な ど の色を テ キ ス ト 入力で き ます。 こ れ ら の色の RGB 値は、 RGB 表で定義 さ れてい ます。 virtualbus add コ マ ン ド の例 基数が 16 進数で名前が mybus と い う 仮想バ ス を作業中の波形に追加す る には、 次を入力 し ます。 virtualbus add <mybus> -radix hex 仮想バ ス を作成 し て 2 個のシ ミ ュ レーシ ョ ン オブジ ェ ク ト sigA お よ び sigB, を追加す る には、次 の よ う に入力 し ます。 set vbusId [virtualbus add mybus -radix hex] wave add sigA -into $vbusId wave add sigB -into $vbusId marker add marker add コ マ ン ド では、 マーカーを追加 し ます。 marker add コ マ ン ド の構文 marker add <time> <time> : 新 し いマーカーを追加する 時間の位置を指定 し ます。時間の単位が指定 さ れていない場 合、 isim get userunit コ マン ド で取得 さ れ る デフ ォ ル ト のユーザー時間単位が使用 さ れます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 137 第 9 章 : ISim Tcl コ マ ン ド marker add コ マ ン ド の例 作業中の コ ン フ ィ ギ ュ レーシ ョ ンの 10ns にマーカーを追加す る には、 次を入力 し ます。 marker add 10 ns 138 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 付録 A ラ イ ブ ラ リ マ ッ プ フ ァ イル (xilinxisim.ini) ISim HDL コ ンパ イ ル プ ロ グ ラ ム vhpcomp、vlogcomp、お よ び fuse では、 xilinxisim.ini コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルを使用 し て VHDL お よ び Verilog の論理 ラ イ ブ ラ リ の定義お よ び物理 ロ ケーシ ョ ンが識別 さ れます。 コ ンパ イ ラ は、 次の リ ス ト し たデ ィ レ ク ト リ 順に xilinxisim.ini フ ァ イ ルを検索 し ます。 1. $XILINX/vhdl/hdp/<platform> 2. -initfile オプシ ョ ンで指定 し たユーザー フ ァ イ ル-initfile オプシ ョ ンが指定 さ れて いない場合は、 作業中のデ ィ レ ク ト リ に含まれ る xilinxisim.ini フ ァ イ ルが検索 さ れます。 xilinxisim.ini フ ァ イ ルの構文は、 次の と お り です。 <logical_library1> = <physical_dir_path1> <logical_library2> = <physical_dir_path2> <logical_libraryn> = <physical_dir_pathn> 次に、 xilinxisim.ini フ ァ イ ルの例を示 し ます。 VHDL std=C:/libs/vhdl/hdp/ stdieee=C:/libs/vhdl/hdp/ieee work=C:/workVerilog unisims_ver=$XILINX/rtf/verilog/hdp/nt/unisims_ver xilinxcorelib_ver=C:/libs/verilog/hdp/nt/xilinxcorelib_ver mylib=./mylib work=C:/work xilinxisim.ini フ ァ イ ルでは、 次の点に注意 し て く だ さ い。 • xilinxisim.ini フ ァ イ ルで指定す る ラ イ ブ ラ リ /パ ス は、1 行に 1 つずつ記述す る 必要があ り ます。 • 物理パ ス に該当す る デ ィ レ ク ト リ が な い場合は、 コ ン パ イ ラ で書 き 込みが行われ る と き に vhpcomp ま たは vlogcomp に よ っ てデ ィ レ ク ト リ が作成 さ れます。 • 物理パ スは、 環境変数を使用 し て記述で き ます。 環境変数は、 $ で始め る 必要があ り ます。 • 論理 ラ イ ブ ラ リ のデフ ォ ル ト の物理デ ィ レ ク ト リ は次の と お り です。 isim/<logical_library_name>. • フ ァ イ ルの コ メ ン ト は、 -- で開始す る 必要があ り ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 139 付録 A : ラ イ ブ ラ リ マ ッ プ フ ァ イル (xilinxisim.ini) 140 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 VHDL 言語サポー ト の例外 付録 B VHDL および Verilog 言語サポー ト の例外 VHDL 言語サポー ト の例外 ISim では、 次がサポー ト さ れます。 • VHDL IEEE-STD-1076-1993 • Verilog IEEE-STD-1364-2001 例外については、 次の表の [例外] の列を参照 し て く だ さ い。 . 表 B-1 : VHDL 言語サポー ト の例外 サポー ト さ れる VHDL 構文 例外 abstract_literal 基底付 き リ テ ラ ルで表現 さ れてい る 浮動小数点値はサポー ト さ れません。 aggregate aggregate 内で choice を混合する こ と はサポー ト されません。 alias_declaration オブジ ェ ク ト 以外へのエ イ リ ア スは、 サポー ト さ れてい ま せん。 特に次の も のは、 サポー ト さ れません。 • エ イ リ ア ス のエ イ リ ア ス • subtype_indication のないエ イ リ ア ス宣言 • エ イ リ ア ス宣言でのシ グネチ ャ • alias_designator と し ての演算子シ ンボル • 演算子シ ン ボルのエ イ リ ア ス • alias_designator と し ての文字列 リ テ ラ ル alias_designator • alias_designator と し ての operator_symbol • alias_designator と し ての character_literal association_element 結合エ レ メ ン ト 内のア ク チ ュ アルの ス ラ イ ス に、 グ ロ ーバ ル/ ロ ーカルの ス タ テ ィ ッ ク 範囲を使用で き ます。 attribute_name 接頭辞の後の signature はサポー ト さ れません。 binding_indication entity_aspect を使用せずに使用す る こ と はサポー ト さ れて い ません。 bit_string_literal 空の bit_string_literal (" ") はサポー ト さ れません。 block_statement guard_expression はサポー ト さ れません。 た と えばガー ド 付 き ブ ロ ッ ク 、ガー ド 付 き 信号、ガー ド 付 き タ ーゲ ッ ト 、お よ びガー ド 付 き 割 り 当てはサポー ト さ れてい ません。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 141 付録 B : VHDL お よび Verilog 言語サポー ト の例外 表 B-1 : VHDL 言語サポー ト の例外 (続き ) サポー ト さ れる VHDL 構文 choice 例外 case 文で choice と し て aggregate を使用す る こ と はサ ポー ト さ れません。 concurrent_assertion_statement postponed はサポー ト さ れません。 concurrent_signal_assignment_sta tement postponed はサポー ト さ れません。 concurrent_statement wait 文が含まれ る 同時処理プ ロ シージ ャ 呼び出 し はサ ポー ト さ れません。 conditional_signal_assignment ガー ド 付き 信号代入はサポー ト さ れないので、 オプシ ョ ン の一部 と し てキー ワー ド guarded を使用す る こ と はサポー ト さ れません。 configuration_declaration コ ン フ ィ ギ ュ レーシ ョ ンに使用す る generate イ ンデ ッ ク スは、 非 ロ ーカル ス タ テ ィ ッ ク にで き ません。 entity_class リ テ ラ ル、 ユ ニ ッ ト 、 フ ァ イ ル、 お よ び グ ル ー プ を entity_class と し て使用す る こ と はサポー ト さ れません。 entity_class_entry グループ テ ンプ レー ト で使用す る こ と を目的 と し たオプ シ ョ ンの <> はサポー ト さ れません。 file_logical_name 文字列値を評価す る ワ イ ル ド カー ド も 許容 さ れてい ます が、 フ ァ イ ル名 と し ては文字列 リ テ ラ ル と 識別子 し か使用 で き ません。 function_call 名前付 き 引数では、分割、指標付け、 ま たは選択はサポー ト さ れません。 instantiated_unit ダ イ レ ク ト コ ン フ ィ ギ ュ レーシ ョ ンの イ ン ス タ ン シエー シ ョ ンはサポー ト さ れてい ません。 mode リ ン ケージ ポー ト お よ びバ ッ フ ァ ー ポー ト さ れてい ません。 options guarded はサポー ト さ れません。 primary primary を使用 し た場所では、 allocator は展開 さ れます。 procedure_call 名前付 き 引数では、分割、指標付け、 ま たは選択はサポー ト さ れません。 process_statement postponed はサポー ト さ れません。 selected_signal_assignment ガー ド 付き 信号代入はサポー ト さ れないので、 オプシ ョ ン の一部 と し てキー ワー ド guarded を使用す る こ と はサポー ト さ れません。 signal_declaration signal_kind はサポー ト さ れません。 signal_kind はガー ド ポー ト の一部はサ 付 き 信号の宣言に使用 さ れ ま すが、 ガー ド 付 き 信号はサ ポー ト さ れません。 subtype_indicationd 142 結合の resolved サブ タ イ プ (配列お よ びレ コ ー ド ) はサ ポー ト さ れません。 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Verilog 言語サポー ト の例外 表 B-1 : VHDL 言語サポー ト の例外 (続き ) サポー ト さ れる VHDL 構文 例外 waveform unaffected はサポー ト さ れません。 waveform_element null 波形エ レ メ ン ト は、 ガー ド 付 き 信号にのみ関係す る の で、 サポー ト さ れません。 Verilog 言語サポー ト の例外 次の表は、 サポー ト さ れ る Verilog 言語サポー ト の例外を リ ス ト し てい ます。 表 A-1 : Verilog 言語サポー ト の例外 Verilog 構文要素 例外 コ ンパイ ラ指示子構文 `celldefine サポー ト な し `endcelldefine サポー ト な し `undefs パ ラ メ ー タ 指定 さ れた `define マ ク ロ がサポー ト さ れて い ます。 `unconnected_drive サポー ト な し `nounconnected_drive サポー ト な し 属性 attribute_name サポー ト な し attr_spec サポー ト な し attr_name サポー ト な し プ リ ミ テ ィ ブのゲー ト 型およびス イ ッ チ型 cmos_switchtype サポー ト な し mos_switchtype サポー ト な し pass_en_switchtype サポー ト な し 生成 さ れた イ ン ス タ ン シ エーシ ョ ン ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 143 付録 B : VHDL お よび Verilog 言語サポー ト の例外 表 A-1 : Verilog 言語サポー ト の例外 (続き ) Verilog 構文要素 例外 generated_instantiation module_or_generate_item は、 サポー ト さ れません。 Production from 1364-2001 Verilog standard: generate_item_or_null ::= generate_conditonal_statement | generate_case_statement | generate_loop_statement | generate_block | module_or_generate_item シ ミ ュ レー タ でのサポー ト : generate_item_or_null ::= generate_conditional_statement| generate_case_statement | generate_loop_statement | generate_blockgenerate_condition genvar_assignment 一部サポー ト All generate blocks must be named. Production from 1364-2001 Verilog standard: 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 ラ イ ブ ラ リ マ ッ プ フ ァ イ ルの include 文を示 し ます (IEEE 1364-2001、セ ク シ ョ ン 13.2 を参照)。 コ ンパ イ ラ の `include 文の こ と ではあ り ません。 コ ン フ ィ ギ ュ レーシ ョ ン ソ ース テキス ト 144 config_declaration サポー ト な し design_statement サポー ト な し config_rule_statement サポー ト な し default_clause サポー ト な し japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 Verilog 言語サポー ト の例外 表 A-1 : Verilog 言語サポー ト の例外 (続き ) Verilog 構文要素 例外 シ ス テム タ イ ミ ング チ ェ ッ ク コ マ ン ド $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 サポー ト な し $async$nor$plane サポー ト な し $async$or$plane サポー ト な し $sync$and$plane サポー ト な し $sync$nand$plane サポー ト な し $sync$nor$plane サポー ト な し $sync$or$plane サポー ト な し VCD (Value Change Dump) フ ァ イル $dumpportson サポー ト な し $dumpports $dumpportsoff、 $dumpportsflush、 $dumpportslimit $vcdplus ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 145 付録 B : VHDL お よび Verilog 言語サポー ト の例外 146 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ModelSim XE の概要 付録 C ModelSim XE か ら ISim への移行 ModelSim XE シ ミ ュ レーシ ョ ン環境か ら ザ イ リ ン ク ス の ISim シ ミ ュ レーシ ョ ン環境へは、既存の 環境を極端に変更 し な く て も 移行で き ます。 こ こ では、 ModelSim XE か ら ISim への移行ガ イ ド ラ イ ンお よ びその他の注意事項を記載 し ます。 ISim を最大限に使用す る には、 次のビデオ デモお よ びチ ュ ー ト リ アルを参照 し て く だ さ い。 • チ ュ ー ト リ アル : http://japan.xilinx.com/support/documentation/dt_ise.htm • ISim ビデオ デモ : http://japan.xilinx.com/products/design_resources/design_tool/resources/index.htm • ISim 製品ページ : http://japan.xilinx.com/tools/isim.htm ModelSim XE の概要 ModelSim XE は、 ModelSim Xilinx Edition の略で、 Mentor Graphics 社の OEM 製品です。 ModelSim XE では、 デザ イ ンの論理モデルお よ び タ イ ミ ン グ モデルや HDL ソ ース コ ー ド を検証 す る HDL シ ミ ュ レーシ ョ ン環境が提供 さ れます。ModelSim XE は、 Xilinx ISE® Design Suite 12.4 リ リ ース で廃盤にな っ てい ます。詳細は、 『ModelSim Xilinx Edition-III ブ ロ ー ド キ ャ ス ト 製品の製 造中止通知』 を参照 し て く だ さ い。 http://japan.xilinx.com/support/documentation/customer_notices/xcn10028.pdf ModelSim XE は、 ISE Design Suite 12.3 リ リ ース か ら 各 メ ジ ャ ー リ リ ース に含まれ る よ う にな っ てい ます。 ModelSim XE には、 次の 2 つのバージ ョ ンがあ り ます。 • ModelSim XE Starter : ザ イ リ ン ク ス ウ ェ ブサ イ ト か ら ダ ウ ン ロー ド 可能な無償バージ ョ ン。 こ の製品を使用す る には、 ス タ ー タ ー ラ イ セ ン ス が必要です。 • ModelSim XE Full : Mentor Graphics 社の OEM バージ ョ ンで PE 製品ラ イ ンに基づいています。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 147 付録 C : ModelSim XE か ら ISim への移行 ISim の概要 ISim はザ イ リ ン ク ス のシ ミ ュ レーシ ョ ン製品で、 ISE ツール、 PlanAhead™ ツール、 エンベデ ッ ド デザ イ ン キ ッ ト (EDK)、 お よ び System Generator に統合 さ れてい る 機能を完全に備え た HDL シ ミ ュ レー タ です。 ISim は、 ザ イ リ ン ク ス ツールの メ ジ ャ ー リ リ ースすべてに含まれてお り 、 次の 2 つのバージ ョ ン があ り ます。 • ISim Lite : ISE Simulator の限定評価版。こ のバージ ョ ンでは、デザ イ ン と テ ス ト ベンチの HDL コ ー ド 行が 50,000 を超え る と き に、 パフ ォーマ ン ス が低下 し ます。 • ISim Full : ISE Simulator の フル バージ ョ ン。 機能比較 表 C-1 : ModelSim と ISim の機能の比較 ModelSim XE Starter ModelSim XE Full ISim Lite ISim Full 10,000 40,000 50,000 なし ModelSim PE ま たは ModelSim DE の 30% ModelSim PE ま たは ModelSim DE の 40% ModelSim XE ModelSim XE と 同じ と 同じ 混合言語 なし なし あり あり VHDL あり あり あり あり Verilog あり あり あり あり System Verilog for Design なし なし なし なし System Verilog for Verification なし なし なし なし デバ ッ グ環境 あり あり あり あり ス タ ン ド ア ロ ン波形 ビ ュ ーアー あり あり あり あり メ モ リ ビ ュ ーアー / エデ ィ タ ー あり あり あり あり Verilog PLI/VPI あり あり なし なし VHDL FLI/VHPI なし なし なし なし コ ー ド カバレ ッ ジ なし なし なし なし SecureIP/HardIP サポー ト なし なし あり あり EDK サポー ト なし なし あり あり System Generator サポー ト なし なし あり あり CORE Generator サポー ト あり あり あり あり MIG サポー ト なし なし あり あり 機能 行制限 (文) パフ ォーマ ン ス 148 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 シ ミ ュ レーシ ョ ン プ ロ セス 表 C-1 : ModelSim と ISim の機能の比較 (続き ) 機能 ModelSim XE Starter ModelSim XE Full ISim Lite ISim Full フ ローテ ィ ン グ ラ イ セン ス なし なし あり あり Windows Windows Windows/Linux Windows/Linux なし なし Windows/Linux Windows/Linux 32 ビ ッ ト OS サポー ト 64 ビ ッ ト ( ネ イ テ ィ ブ) OS サポー ト シ ミ ュ レーシ ョ ン プ ロ セス こ のセ ク シ ョ ンでは、 さ ま ざ ま なモー ド のシ ミ ュ レーシ ョ ンお よ びシ ミ ュ レーシ ョ ンの手順につい て説明 し ます。 各サブ セ ク シ ョ ン 2 つのシ ミ ュ レー タ の違いについて説明 し ます。 図 C-1 に、 シ ミ ュ レーシ ョ ンでの各ス テ ッ プお よ びそのプ ロ セ ス を示 し ます。 0RGHO6LP;( 6HSDUDWHGRZQORG RIODWHVWOLEUDULHV IURPORXQJH ,6( *DWKHULQJILOHV PDSSLQJOLEUDULHV /LEUDULHVSUH FRPSLOHGDQG SUHPDSSHGLQ,6( 3DUVLQJ HODERUDWLQJ YKSFRPS YORJFRPS DQGIXVH 6LPXODWLQJ [H[HRU[H[HJXL (;(FDQEH UHQDPHGLQIXVH ([DPLQLQJ GHEXJJLQJ 7FOFRQVROH ZDYHFRQILJXUDWLRQ PHPRU\YLHZHU REMHFWVZLQGRZ YFRPYORJ YVLP 7FOFRQVROH ZDYHIRUPYLHZHU OLVWZLQGRZ PHPRU\YLHZHU REMHFWVZLQGRZ 1RWDOOYLHZHUVDUHOLVWHG ; 図 C-1 : シ ミ ュ レ ーシ ョ ンの手順 手順 1 : フ ァ イルの準備 と ラ イ ブ ラ リ のマ ッ プ ModelSim XE の フ ロー ModelSim XE ラ イ ブ ラ リ は、 次か ら ダ ウ ン ロ ー ド で き ます。 http://japan.xilinx.com/support/download/index.htm ISE Design Suite の新 し い バージ ョ ンが リ リ ース さ れ る 度に、 こ のサ イ ト か ら ラ イ ブ ラ リ を個別に ダ ウ ン ロ ー ド す る 必要があ り ます。 行数制限でザ イ リ ン ク ス ラ イ ブ ラ リ が除外 さ れ る よ う 、 こ れ ら の ラ イ ブ ラ リ を使用す る 必要があ り ます。 ModelSim XE と 共に配布 さ れ る modelsim.ini フ ァ イ ルは、正 し いザ イ リ ン ク ス ラ イ ブ ラ リ にあ ら か じ めマ ッ プ さ れてい ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 149 付録 C : ModelSim XE か ら ISim への移行 ISim のフ ロー ISim の ラ イ ブ ラ リ は、標準ザ イ リ ン ク ス イ ン ス ト ールの一部 と し て ア ッ プデー ト さ れます。別の ス テ ッ プは不要です。 マ ッ プ も ザ イ リ ン ク ス に よ り 自動的に処理 さ れます。 シ ミ ュ レーシ ョ ン を開始 す る のに、 ザ イ リ ン ク ス ラ イ ブ ラ リ を ダ ウ ン ロ ー ド し た り マ ッ プする 必要はあ り ません。 手順 2 : デザイ ンの解析 と エ ラ ボ レーシ ョ ン ModelSim XE の フ ロー ModelSim XE では、 コ ンパ イ ルお よ びエ ラ ボ レーシ ョ ンに次の コ マ ン ド が使用 さ れます。 VCOM オプシ ョ ン (VHDL コ ンパ イ ラ ) では、 VHDL コ ンパ イ ラ が実行 さ れ、 VHDL フ ァ イ ルが指定デ ィ レ ク ト リ に コ ンパ イ ル さ れます。 VLOG オプシ ョ ン (Verilog コ ンパ イ ラ ) では、Verilog コ ンパ イ ラ が実行 さ れ、VHDL フ ァ イ ルが指定デ ィ レ ク ト リ に コ ンパ イ ル さ れます。VSIM オプシ ョ ン (VSIM シ ミ ュ レー タ ー ) では、 シ ミ ュ レーシ ョ ンの ロ ー ド がエ ラ ボ レー ト さ れます。 こ れ ら の コ マ ン ド には、 コ ンパ イ ルお よ びエ ラ ボ レーシ ョ ン を さ ら に制御す る 複数のオプシ ョ ンが あ り ます。同等の ModelSim XE コ マン ド をすべて示 し た リ ス ト は、付録 B 「VHDL お よ び Verilog 言語サポー ト の例外」 を参照 し て く だ さ い。 ISim のフ ロー ISim では、 コ ンパ イ ルお よ びエ ラ ボ レーシ ョ ンに次の コ マ ン ド が使用 さ れます。 • vhpcomp : (VHDL コ ンパ イ ラ ) : VHDL コ ンパ イ ラ が実行 さ れ、 VHDL フ ァ イ ルが指定デ ィ レ ク ト リ に コ ンパ イ ル さ れます。 • vlogcomp : (Verilog コ ンパ イ ラ ) : Verilog コ ンパ イ ラ が実行 さ れ、VHDL フ ァ イ ルが指定デ ィ レ ク ト リ に コ ンパ イ ル さ れます。 • fuse : (VSIM シ ミ ュ レー タ ) : シ ミ ュ レーシ ョ ンの ロ ー ド がエ ラ ボ レー ト さ れ、 シ ミ ュ レー シ ョ ン を実行す る のに起動す る 必要があ る 実行フ ァ イ ルが作成 さ れます。 こ れ ら の コ マ ン ド には、 コ ンパ イ ルお よ びエ ラ ボ レーシ ョ ン を さ ら に制御す る 複数のオプシ ョ ンが あ り ます。 手順 3 : デザイ ンのシ ミ ュ レーシ ョ ン ModelSim XE の フ ロー VSIM を実行す る と 、 デザ イ ンがエ ラ ボ レー ト さ れ、 シ ミ ュ レーシ ョ ンが実行 さ れます。 デフ ォ ル ト では、 vsim を実行す る と GUI が起動 し ます。 コ マ ン ド ラ イ ン モー ド で実行す る には、 -c オプシ ョ ン を使用 し ます。 ISim のフ ロー fuse を実行す る と 、 フ ァ イ ル名が付け ら れた実行フ ァ イ ルが作成 さ れます。 こ の実行フ ァ イ ルを実 行 し て、シ ミ ュ レーシ ョ ン を起動 し ます。 こ の実行フ ァ イ ルは、デフ ォル ト で x.exe と い う 名前が付 け ら れてい ますが、 変更で き ます。 実行フ ァ イ ルを実行す る と 、デフ ォ ル ト ではシ ミ ュ レーシ ョ ンが コ マン ド ラ イ ン モー ド で実行 さ れ ます。 GUI を起動す る には、 -gui オプシ ョ ン を使用 し ます。 150 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 シ ミ ュ レーシ ョ ン プ ロ セス 手順 4 : デザイ ンの確認およびデバ ッ グ 波形操作のカ ス タ マ イ ズ ModelSim XE お よ び ISim では、 波形 ウ ィ ン ド ウ を カ ス タ マ イ ズす る 機能が提供 さ れてい ますが、 カ ス タ マ イ ズ方法は異な り ます。 ModelSim XE では標準の Tcl ( ツール コ マン ド 言語) コ マン ド が すべての波形操作に使用 さ れ る のに対 し 、 ISim では Tcl コ マン ド のサブセ ッ ト が使用 さ れ る も の の、大部分が GUI か ら カ ス タ マ イ ズ さ れ、その結果が波形 コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルに保存 さ れます。 ISim の波形 コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルは XML ベース の フ ァ イ ルで編集で き ませんが、 ModelSim XE の波形 Tcl コ マン ド は変更で き ます。 ISim イ ンプ リ メ ン テーシ ョ ンでの波形 コ ン フ ィ ギ ュ レーシ ョ ンの読み込み時間は、XML フ ァ イ ルの読み込みが複数の Tcl コ マン ド を実行す る よ り も 早いため、 短 く な り ます。 注記 : ISim にはすべての波形操作に対す る Tcl サポー ト があ り ません。 マー カ ーお よび カ ー ソ ルを使用 し た計測 ModelSim XE と ISim では、 マーカーお よ びカー ソ ルを使用 し た計測方法が多少異な り ます。 ModelSim XE では、任意の 2 地点間を計測す る カー ソ ルが提供 さ れます。必要に応 じ て カー ソ ルを 追加で き 、 新規カー ソ ルは既存のカー ソ ルの下に追加 さ れます。 波形ビ ュ ーアーでは、 カー ソ ル間 の距離が自動的に表示 さ れます。 図 C-2 は、 カー ソ ルを使用 し た ModelSim XE 波形を示 し てい ま す。 図 C-2 : カ ー ソルを使用 し た ModelSim XE の波形表示 ISim の計測方法は異な り ます。 ISim ではカー ソ ル と マーカーの両方が使用 さ れます。 ModelSim XE ではカー ソ ルが永久的な計測手段 と し て使用 さ れ る のに対 し 、 ISim ではカー ソ ルが一時的手段 と し て使用 さ れます。 ISim には メ イ ン カー ソ ル と セカ ン ダ リ カー ソ ルがあ り 、 こ れ ら 2 つを使用 し て 2 地点間の距離を計測で き ます。ISim では、複数地点間の距離を計測で き ます。図 C-3 は、ISim の計測を示 し てい ます。 ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 151 付録 C : ModelSim XE か ら ISim への移行 図 C-3 : ISim での計測 ISim では、フ レームのルー ラ ー も 提供 さ れます。選択 さ れてい る マーカーま たはカー ソ ルの位置は、 計測 さ れ る その他すべてのマーカーに対 し て 0 にな り ます。図 C-3 では、ISim で任意の地点間を計 測す る 方法が示 さ れてい ます。 注記 : ISim では、 マーカーの名前を変更で き ません。 アナ ロ グ波形 入手に関す る 詳細は、 ザ イ リ ン ク ス テ ク ニ カル サポー ト までお問い合わせ く だ さ い。 シ ン グル ク リ ッ ク コ ンパイルお よび再読み込み ModelSim XE では、ス タ ン ド ア ロ ン GUI にテ キ ス ト エデ ィ タ が ビル ト イ ン さ れてい る ので、HDL コ ー ド の変更、 再 コ ンパ イ ル、 お よ び再シ ミ ュ レーシ ョ ンが実行で き ます。 ISim の GUI には HDL フ ァ イ ルのみにテキ ス ト ビ ュ ーアーがあ り ます。フ ァ イ ルに変更 し て も 、再 コ ンパ イ ルお よ び再シ ミ ュ レーシ ョ ンは実行で き ません。既存のシ ミ ュ レーシ ョ ン を終了 し 、ISE ま たは PlanAhead ツールのテ キ ス ト エデ ィ タ ーで HDL を変更 し てか ら ISim でシ ミ ュ レーシ ョ ン を 再実行 し ます。 152 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 シ ミ ュ レーシ ョ ン プ ロ セス Project Navigator の統合 ISE Project Navigator では ModelSim XE が有効なシ ミ ュ レー タ チ ョ イ ス ではな く 、 統合 さ れてい る その他のシ ミ ュ レー タ を選択す る 必要があ る こ と が通知 さ れます。 次は、 Project Navigator で ISim を選択する 画面を示 し てい ます。 図 C-4 : ISim が選択 さ れてい る Project Navigator の [Process Properties] ダ イ ア ロ グ ボ ッ ク ス ModelSim XE と ISim のシ ミ ュ レーシ ョ ン プ ロ パテ ィ は類似 し て ますが、異な る 部分を次の表に示 し ます。 表 C-2 : Project Navigator のシ ミ ュ レーシ ョ ン プ ロパテ ィ ModelSim XE [Property Name] ISim [Property Name] コメント ラ イ ブ ラ リ コ ンパイル [Compiled Library Directory] [Ignore Pre-Compiled Library Warning Check] ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 なし ISE Design Suite イ ン ス ト ールで配布 さ れ る ISim 用 コ ンパ イ ル 済み ラ イ ブ ラ リ なし japan.xilinx.com 153 付録 C : ModelSim XE か ら ISim への移行 表 C-2 : Project Navigator のシ ミ ュ レーシ ョ ン プ ロパテ ィ (続き ) ModelSim XE [Property Name] ISim [Property Name] コメント [Generate Verbose Library Compilation Messages] なし カ ス タ ム ユーザー コ マ ン ド [Use Custom Do File] [Use Custom Simulation Command File] [Use Custom Wave Configuration File] [Custom Do File] ISim では、 エン ジ ン操作を制御す る Tcl コ マン ド と 共通 GUI 操 作のほ と ん ど を制御す る コ マ ン ド の両方がサポー ト さ れてい ま す。 ま た、波形 コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルを使用 し て波形 ウ ィ ン ド ウ をすばや く 設定で き ます。 [Custom Simulation Command File] [Custom Wave Configuration File] [Use Automatic Do File] Project Navigator に よ る ISim ス ク リ プ ト の作成を回避で き ませ なし ん。 [Custom List] Compile File [Use Custom Project File] フ ァ イ ルの コ ンパ イ ル順を変更で き ます。 [Custom Project Filename] ( ア ド バン ス プ ロ パテ ィ ) なし [Waveform Database Filename] シ ミ ュ レーシ ョ ンで別のデー タ ベース を指定で き ます。 カ ス タ ム コ ンパイ ラ コ マ ン ド [Other VSIM Command [Other Compiler Line Options] Options] ISim では VSIM コ マ ン ド が fuse コ マ ン ド と 実行フ ァ イ ル コ マ ン ド に分割 さ れます。 [Other Simulator Commands] [Other VLOG Command Line Options] [Other Compiler [Other VCOM Command Options] ISim の fuse コ マン ド にオプシ ョ ン を渡 し ます。 Line Options] 154 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 シ ミ ュ レーシ ョ ン プ ロ セス 表 C-2 : Project Navigator のシ ミ ュ レーシ ョ ン プ ロパテ ィ (続き ) ModelSim XE [Property Name] ISim [Property Name] コメント ラ ン タ イム設定 [Simulation Run Time] [Simulation Resolution] [Simulation Run Time] なし ISim のデフ ォ ル ト は 1ps です。 [VHDL Syntax] なし ISim のデフ ォ ル ト は 93 です。 [Use Explicit Declarations Only] なし なし 言語設定 [Value Range Check] [Specify Search Directories for `include] [Other VCOM Line Options] Command イ ン ク リ メ ン タル コ ンパ イ ル ModelSim XE には こ れに対す る 特定のオプシ ョ ンはあ り ません が、 [Other Command Line Options] プ ロ パテ ィ で指定で き ます。 [Specify `define Macro Name and Value] イ ン ク リ メ ン タル コ ンパ イ ル なし [Compile for HDL Debugging] その他の設定 [Use Configuration Name] なし [Configuration Name] なし [Log All Signals in Simulation] なし [Other VSIM Command Line Options] ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 [Specify Top-Level Instance Name] japan.xilinx.com 155 付録 C : ModelSim XE か ら ISim への移行 156 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 ザイ リ ン ク ス リ ソ ース 付録 D その他の リ ソ ース ザイ リ ン ク ス リ ソ ース • デバ イ ス のユーザー ガ イ ド http://japan.xilinx.com/support/documentation/user_guides.htm • ザ イ リ ン ク ス用語集 http://japan.xilinx.com/company/terms.htm • 『ザ イ リ ン ク ス デザ イ ン ツール : イ ン ス ト ールお よ び ラ イ セ ン ス ガ イ ド 』 (UG798) http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_2/iil.pdf • 『ザ イ リ ン ク ス デザ イ ン ツール : リ リ ース ノ ー ト ガ イ ド 』 (UG631) http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_2/irn.pdf • 製品サポー ト お よ びマニ ュ アル http://japan.xilinx.com/support • 『合成/ シ ミ ュ レーシ ョ ン デザ イ ン ガ イ ド 』 (UG626) http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_2/sim.pdf • 『PlanAhead ユーザー ガ イ ド 』 (UG632) http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_2/ PlanAhead_UserGuide.pdf • 『 コ マ ン ド ラ イ ン ツール ユーザー ガ イ ド 』 (UG682) http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_2/devref.pdf • 『ChipScope Pro ソ フ ト ウ ェ アお よ びコ ア ユーザー ガ イ ド 』 (UG029) http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_2/ chipscope_pro_sw_cores_ug029.pdf • ISE ヘルプ http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_2/isehelp_start.htm • XPower ヘルプ http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_2/ isehelp_start.htm#xpa_c_overview.htm ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日 japan.xilinx.com 157 付録 D : その他の リ ソ ース ISim チ ュ ー ト リ アル • 『ISim チ ュ ー ト リ アル』 (UG682) http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_2/ug682.pdf • 『ISE ハー ド ウ ェ ア協調シ ミ ュ レーシ ョ ン チ ュ ー ト リ アル : 浮動小数点高速フー リ エ変換のシ ミ ュ レーシ ョ ンの高速化』 (UG817) http://japan.xilinx.com/support/documentation/sw_manuals/xilinx14_1/ ug817_fft_sim_tutorial.pdf 158 japan.xilinx.com ISim ユーザー ガ イ ド UG660 (v14.2) 2012 年 7 月 25 日