ISE アドバンス チュートリアル UG695 (v 12.1) April 19, 2009 ISE アドバンス...

154
ISE In-Depth ISE アドバンス チュートリアル UG695 (v12.1) 2010 4 19

Transcript of ISE アドバンス チュートリアル UG695 (v 12.1) April 19, 2009 ISE アドバンス...

ISE In-Depth Tutorial

UG695 (v 12.1) April 19, 2009

ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

ISE アドバンス チュート リアル japan.xilinx.com UG695 (v12.1) 2010 年 4 月 19 日

Xilinx is disclosing this user guide, manual, release note, and/or specification (the "Documentation") to you solely for use in thedevelopment 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 liabilityarising out of your use of the Documentation. Xilinx reserves the right, at its sole discretion, to change the Documentationwithout notice at any time. Xilinx assumes no obligation to correct any errors contained in the Documentation, or to advise youof any corrections or updates. Xilinx expressly disclaims any liability in connection with technical support or assistance that maybe provided to you in connection with the Information.

THE DOCUMENTATION IS DISCLOSED TO YOU “AS-IS” WITH NO WARRANTY OF ANY KIND. XILINX MAKESNO OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THEDOCUMENTATION, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULARPURPOSE, OR NONINFRINGEMENT OF THIRD-PARTY RIGHTS. IN NO EVENT WILL XILINX BE LIABLE FOR ANYCONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOSS OFDATA OR LOST PROFITS, ARISING FROM YOUR USE OF THE DOCUMENTATION.

© 2010 Xilinx, Inc. XILINX, the Xilinx logo, Virtex, Spartan, ISE, and other designated brands included herein are trademarksof Xilinx in the United States and other countries. All other trademarks are the property of their respective owners.

本資料は英語版 (v12.1) を翻訳したもので、 内容に相違が生じる場合には原文を優先します。

資料によっては英語版の更新に対応していないものがあ り ます。

日本語版は参考用と してご使用の上、 新情報につきましては、 必ず 新英語版をご参照ください。

ISE アドバンス チュート リアル japan.xilinx.com 3UG695 (v12.1) 2010 年 4 月 19 日

このチュート リアルについてアドバンス チュート リ アルの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9チュート リ アルの内容. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9チュート リ アル フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

HDL デザイン フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10回路図デザイン フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10インプ リ メンテーシ ョ ンのみのフロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

その他のリ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

第 1 章 : ISE ソフ トウェアの概要ソフ ト ウェアの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Project Navigator のインターフェイス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13[Design] パネル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14

[View] ペイン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14[Hierarchy] ペイン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14[Processes] ペイン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15

[Files] パネル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16[Libraries] パネル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16[Console] パネル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16[Errors] パネル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16[Warnings] パネル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

ソース ファ イルへのエラー ナビゲーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16アンサー データベースへのエラー ナビゲーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

ワークスペース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16デザイン サマリ /レポート ビューア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

プロジェク トの リ ビジ ョ ン管理機能の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17ISE プロジェク ト ファ イルの理解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17プロジェク トのコピーの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18Project Browser の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18プロジェク ト アーカイブの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18

アーカイブの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18アーカイブの復元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18

第 2 章 : HDL ベースのデザインHDL ベースのデザインの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19入門 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

必要なソフ ト ウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20その他のソフ ト ウェア (オプシ ョ ン) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20VHDL または Verilog の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20チュート リ アル プロジェク ト ファ イルのダウンロード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20ISE ソフ ト ウェアの起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21新規プロジェク トの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22チュート リ アルの中止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23

デザインの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24論理ブロッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25

デザイン入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25ソース ファ イルの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25HDL エラーの修正 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26HDL ベースのモジュールの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26

目次

4 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

New Source Wizard および ISE Text Editor の使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . .27言語テンプレートの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29言語テンプレートのファ イルへの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30

CORE Generator ソフ ト ウェア モジュールの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31timer_preset CORE Generator ソフ ト ウェア モジュールの作成 . . . . . . . . . . . . . . . . . . .31HDL コードへの CORE Generator ソフ ト ウェア モジュールの

インスタンシエーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35DCM モジュールの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36

Clocking Wizard の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36dcm1 マクロのインスタンシエーシ ョ ン (VHDL デザイン). . . . . . . . . . . . . . . . . . . . . . .38dcm1 マクロのインスタンシエーシ ョ ン (Verilog) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39

デザインの合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40XST を使用した合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41

合成オプシ ョ ンの入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41デザインの合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41RTL/Technology Viewer の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42

Synplify/Synplify Pro ソフ ト ウェアを使用したデザインの合成 . . . . . . . . . . . . . . . . . . . . . . .44合成オプシ ョ ンの入力とデザインの合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44合成結果の確認 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44

Precision Synthesis を使用した合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45合成オプシ ョ ンの入力とデザインの合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46RTL/Technology Viewer の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46

第 3 章 : 回路図ベースのデザイン回路図ベースのデザインの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47入門 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

必要なソフ ト ウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48チュート リ アル プロジェク ト ファ イルのダウンロード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48ISE ソフ ト ウェアの起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48新規プロジェク トの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49チュート リ アルの中止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49

デザインの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50出力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51論理ブロッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51

デザイン入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52ソース ファ イルの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52ザイ リ ンクス Schematic Editor で回路図ファイルを開く . . . . . . . . . . . . . . . . . . . . . . . . . . . .52ウ ィンド ウの表示の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53回路図ベースのマクロの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53time_cnt 回路図の定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54

I/O マーカーの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54回路図コンポーネン トの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55間違った配置の訂正. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58ワイヤの描画 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58バスの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58バス タ ップの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59ネッ ト名の追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60回路図のチェッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62回路図の保存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62

time_cnt のシンボルの作成および配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62time_cnt シンボルの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62time_cnt シンボルの配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63

CORE Generator ソフ ト ウェア モジュールの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63timer_preset CORE Generator ソフ ト ウェア モジュールの作成 . . . . . . . . . . . . . . . . . . .63

DCM モジュールの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66Clocking Wizard の使用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66

dcm1 シンボルの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68

ISE アドバンス チュート リアル japan.xilinx.com 5UG695 (v12.1) 2010 年 4 月 19 日

HDL ベースのモジュールの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68New Source Wizard および ISE Text Editor の使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . .68言語テンプレートの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70言語テンプレートのファ イルへの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71

HDL モジュールの回路図シンボルの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72statmach、 timer_preset、 dcm1、 debounce シンボルの配置 . . . . . . . . . . . . . . . . . . . . . . . . . .72インスタンス名の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75上位および下位階層への移動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75デバイスの入力および出力の指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76

入力ピンの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76I/O マーカーおよびネッ ト名の追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76

ピン ロケーシ ョ ンの割り当て . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77回路図の完成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79

第 4 章 : ビヘイビア シミ ュレーシ ョ ンビヘイビア シ ミ ュレーシ ョ ン フローの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81ModelSim の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

ModelSim PE、 SE、 および DE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82ModelSim Xilinx Edition (MXE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82

ISim の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82入門 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

必要なファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82デザイン ファ イル (VHDL、 Verilog、 または回路図) . . . . . . . . . . . . . . . . . . . . . . . . . . .82テス トベンチ ファ イル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82シ ミ ュレーシ ョ ン ライブラ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82

ザイ リ ンクス シ ミ ュレーシ ョ ン ライブラ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83ザイ リ ンクス シ ミ ュレーシ ョ ン ラ イブラ リのアップデート . . . . . . . . . . . . . . . . . . . . . .83Modelsim.ini ファ イルでのシ ミ ュレーシ ョ ン ラ イブラ リのマップ . . . . . . . . . . . . . . . .83

HDL テス トベンチの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84チュート リ アルのテス トベンチ ファ イルの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84

VHDL シ ミ ュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84Verilog シ ミ ュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85

ModelSim を使用したビヘイビア シ ミ ュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86ISE のシ ミ ュレーシ ョ ン プロセス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86シ ミ ュレーシ ョ ン プロパティの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87シ ミ ュレーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87信号の追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88

仕切りの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89シ ミ ュレーシ ョ ンの再実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90信号の解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90

シ ミ ュレーシ ョ ンの保存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91ISim を使用したビヘイビア シ ミ ュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

ISE のシ ミ ュレーシ ョ ン プロセス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92シ ミ ュレーシ ョ ン プロパティの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92シ ミ ュレーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93信号の追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94シ ミ ュレーシ ョ ンの再実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95

信号の解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95

第 5 章 : デザイン インプリ メンテーシ ョ ンインプリ メンテーシ ョ ンの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97入門 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

デザイン入力からの継続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98デザイン インプリ メンテーシ ョ ンからの開始 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98

プロパティの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99タイ ミ ング制約の作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

6 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

デザインの変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101Constraints Editor の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101PlanAhead ソフ ト ウェアを使用した I/O ロケーシ ョ ンの割り当て . . . . . . . . . . . . . . . . . . . . . . . . 108デザインのマップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110タイ ミ ング解析を使用したマップ後のブロ ッ ク遅延の評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

タイ ミ ング要件の評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112マップ後のスタティ ッ ク タイ ミ ング レポートの表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113

デザインの配置配線 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114FPGA Editor を使用した配置配線の検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115配置配線後のタイ ミ ングの評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

配置配線後のスタティ ッ ク タイ ミ ング レポートの表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117PlanAhead ソフ ト ウェアを使用したデザインの解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118

コンフ ィギュレーシ ョ ン データの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119iMPACT を使用した PROM ファ イルの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120

コマンド ラインを使用したインプ リ メンテーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

第 6 章 : タイ ミング シミ ュレーシ ョ ンタイ ミ ング シ ミ ュレーシ ョ ン フローの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123入門 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

必要なソフ ト ウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123必要なファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124シ ミ ュレータの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124

ModelSim を使用したタイ ミ ング シ ミ ュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125シ ミ ュレーシ ョ ン プロパティの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125シ ミ ュレーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127

信号の追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127仕切りの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129シ ミ ュレーシ ョ ンの再実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130信号の解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130シ ミ ュレーシ ョ ンの保存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131

ザイ リ ンクス ISim を使用したタイ ミ ング シ ミ ュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132シ ミ ュレーシ ョ ン プロパティの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132シ ミ ュレーシ ョ ンの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133

信号の追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133信号名の表示の切り替え . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134シ ミ ュレーシ ョ ンの再実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135信号の解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135

第 7 章 : iMPACT チュート リアルデバイス サポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137サポート されるダウンロード ケーブル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

パラレル ケーブル IV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137プラ ッ ト フォーム ケーブル USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137プラ ッ ト フォーム ケーブル USB-II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138

サポート されるコンフ ィギュレーシ ョ ン モード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138入門 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

コンフ ィギュレーシ ョ ン ファ イルの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138ケーブルの接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138ソフ ト ウェアの起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139

Project Navigator からの iMPACT の起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139スタンドアロンでの iMPACT の起動. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139

新規 iMPACT プロジェク ト ファ イルの作成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139バウンダ リ スキャン コンフ ィギュレーシ ョ ン モードの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

バウンダ リ スキャン コンフ ィギュレーシ ョ ン モードの指定 . . . . . . . . . . . . . . . . . . . . . . . .140コンフ ィギュレーシ ョ ン ファ イルの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141

ISE アドバンス チュート リアル japan.xilinx.com 7UG695 (v12.1) 2010 年 4 月 19 日

プロジェク ト ファ イルの保存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143プリ ファレンスの編集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143バウンダ リ スキャン操作の実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144

バウンダ リ スキャン コンフ ィギュレーシ ョ ンの ト ラブルシューティング . . . . . . . . . . . . . . . . . . 148ケーブル接続の確認 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148チェーンの設定の検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148

SVF ファ イルの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150バウンダ リ スキャン チェーンの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150

SVF ファ イル生成用の JTAG チェーンの設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150SVF ファ イル生成での JTAG チェーンの手動設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . .150

SVF ファ イルへの書き込み . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151SVF ファ イルへの書き込み停止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153SVF または XSVF ファ イルの再生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153

8 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

ISE アドバンス チュート リアル japan.xilinx.com 9UG695 (v12.1) 2010 年 4 月 19 日

このチュート リアルについて

アドバンス チュート リアルの概要

このチュート リ アルでは、ザイ リ ンクス ISE® Design Suite 12 の機能および追加された機能につい

て紹介します。デザイン入力ツール、 ザイ リ ンクスおよびサードパーティ ツール、およびデザイン

インプ リ メンテーシ ョ ン ツールの関連性に重点を置いて説明していきます。

このチュート リ アルは、 ISE ソフ ト ウェアの機能に精通していない方や使用方法を復習したい方を

対象と しています。

このチュート リ アルには、複数のデザイン フローが含まれています。各チュート リ アルのフローに

ついては、 「チュート リ アル フロー」 を参照してください。

チュート リアルの内容

このチュート リ アルには、 次の内容が含まれています。

• 第 1 章 「ISE ソフ ト ウェアの概要」 : ISE ソフ ト ウェアのユーザー インターフェイスである

Project Navigator および合成ツールを紹介します。

• 第 2 章 「HDL ベースのデザイン」 : stopwatch デザインを使用して、 HDL に基づく典型的な

FPGA デザイン フローを説明します。 また、 CORE Generator™ ソフ ト ウェアや ISE TextEditor などの ISE ソフ ト ウェアのツールの使用方法も説明します。

• 第 3 章「回路図ベースのデザイン」 : stopwatch デザインを使用して回路図に基づくデザイン フローを説明します。 また、CORE Generator ソフ ト ウェアや ISE Text Editor などの ISE ソフ ト

ウェアのツールの使用方法も説明します。

• 第 4 章 「ビヘイビア シ ミ ュレーシ ョ ン」 : インプ リ メンテーシ ョ ンの前にデザインをシ ミ ュ

レーシ ョ ンし、 作成したロジッ クが正しいかど うかを検証する方法を説明します。

• 第 5 章 「デザイン インプ リ メンテーシ ョ ン」 : 変換、マップ、配置、配線、デザインのビッ ト ス

ト リーム ファ イルの生成方法を説明します。

• 第 6 章 「タイ ミ ング シ ミ ュレーシ ョ ン」 : 配線済みのデザインからのブロ ッ ク遅延および配線

遅延を使用してタイ ミ ング シ ミ ュレーシ ョ ンを実行し、ワース ト ケースでの回路の動作を予測

する方法を説明します。

• 第 7 章 「iMPACT チュート リ アル」 : iMPACT コンフ ィギュレーシ ョ ン ツールを使用して作成

したデザインでデバイスをプログラムする方法を説明します。

10 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

このチュート リアルについて

チュート リアル フロー

このチュート リ アルには、次の 3 つのチュート リ アル フローが含まれています。 このセクシ ョ ンで

は、各チュート リ アル フローの概要を示します。使用するフローによって参照する章は異なり ます。

次がチュート リ アル フローです。

• HDL デザイン フロー

• 回路図デザイン フロー

• インプ リ メンテーシ ョ ンのみのフロー

HDL デザイン フロー

このフローには、 次が含まれます。

1. 第 2 章 「HDL ベースのデザイン」

2. 第 4 章 「ビヘイビア シ ミ ュレーシ ョ ン」

メモ : ビヘイビア シ ミ ュレーシ ョ ンはオプシ ョ ンですが、 このチュート リ アルでは実行するこ

とを推奨します。

3. 第 5 章 「デザイン インプ リ メンテーシ ョ ン」

4. 第 6 章 「タイ ミ ング シ ミ ュレーシ ョ ン」

メモ : タイ ミ ング シ ミ ュレーシ ョ ンはオプシ ョ ンですが、 このチュート リ アルでは実行するこ

とを推奨します。

5. 第 7 章 「iMPACT チュート リ アル」

回路図デザイン フロー

このフローには、 次が含まれます。

1. 第 3 章 「回路図ベースのデザイン」

2. 第 4 章 「ビヘイビア シ ミ ュレーシ ョ ン」

メモ : ビヘイビア シ ミ ュレーシ ョ ンはオプシ ョ ンですが、 このチュート リ アルでは実行するこ

とを推奨します。

3. 第 5 章 「デザイン インプ リ メンテーシ ョ ン」

4. 第 6 章 「タイ ミ ング シ ミ ュレーシ ョ ン」

メモ : タイ ミ ング シ ミ ュレーシ ョ ンはオプシ ョ ンですが、 このチュート リ アルでは実行するこ

とを推奨します。

5. 第 7 章 「iMPACT チュート リ アル」

インプリ メンテーシ ョ ンのみのフロー

このフローには、 次が含まれます。

1. 第 5 章 「デザイン インプ リ メンテーシ ョ ン」

2. 第 6 章 「タイ ミ ング シ ミ ュレーシ ョ ン」

メモ : タイ ミ ング シ ミ ュレーシ ョ ンはオプシ ョ ンですが、 このチュート リ アルでは実行するこ

とを推奨します。

3. 第 7 章 「iMPACT チュート リ アル」

ISE アドバンス チュート リアル japan.xilinx.com 11UG695 (v12.1) 2010 年 4 月 19 日

その他のリソース

その他のリソース

その他の資料は、 ザイ リ ンクス Web サイ トの資料ページから参照できます。

シ リ コン、ソフ ト ウェア、IP に関するアンサー データベースを検索したり、テクニカル サポートの

ウェブケースを開く場合は、ザイ リ ンクス Web サイ トのサポート ページにアクセスして ください。

12 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

このチュート リアルについて

ISE アドバンス チュート リアル japan.xilinx.com 13UG695 (v12.1) 2010 年 4 月 19 日

第 1 章

ISE ソフ トウェアの概要

この章は、 次のセクシ ョ ンから構成されています。

• 「ソフ ト ウェアの概要」

• 「プロジェク トの リ ビジ ョ ン管理機能の使用」

ソフ トウェアの概要

ISE® ソフ ト ウェアは、 デザイン フローを 初から 後まで管理する総合デザイン開発環境です。

Project Navigator のインターフェイスからは、すべてのデザイン入力およびデザイン インプ リ メン

テーシ ョ ン ツールにアクセスできます。 また、 プロジェク トに関連するファイルおよびドキュ メン

トにもアクセスできます。

Project Navigator のインターフェイス

デフォルト では Project Navigator のインターフェイスは、 図 1-1 に示すよう に 4 つのパネル サブ

ウィ ンド ウから構成されています。 上部左には [Start]、 [Design]、 [Files]、 [Libraries] パネルがあり 、

プロジェク ト 内のソース ファ イルを表示し、それらのファイルにアクセスできます。また、ソースを

選択してプロセスを実行できます。 [Start] パネルでは、プロジェク ト をすばやく 開き、頻繁に使用す

るリ ファレンス資料、文書、チュート リ アルなどに簡単にアク セスできます。 Project Navigator の下

部には、 [Console]、 [Errors]、 [Warnings] パネルがあり 、ステータス メ ッ セージ、エラー、警告が表

示されます。右側にはワークスペースと 呼ばれるマルチ ド キュメ ント インターフェイス (MDI) ウィ

ンド ウがあり 、 デザイン レポート 、 テキスト ファ イル、 回路図、 およびシミ ュレーショ ン波形など

を表示できます。 どのウィ ンド ウも 、 サイズの変更、 Project Navigator からの切り 離し、 ProjectNavigator のメ イン ウィ ンド ウ内で別の場所に移動、タイル表示、重ねて表示、閉じるこ と が可能で

す。 パネルを開いたり 閉じたり するには、[View] → [Panels] メ ニュー コマンド を使用します。 デフォ

ルト のウィ ンド ウ レイアウト を復元するには、[Layout] → [Load Default Layout] をク リ ッ ク します。

これらのウィ ンド ウの詳細は、 次のセクショ ンで説明します。

14 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 1 章 : ISE ソフ トウェアの概要

次の図に、 Project Navigator のインターフェイスを示します。

[Design] パネル

[Design] パネルには、 [View]、 [Hierarchy]、 [Processes] ペインがあ り ます。

[View] ペイン

ラジオ ボタンによ り、 インプ リ メンテーシ ョ ンまたはシ ミ ュレーシ ョ ン デザイン ビューに関連付

けられているソース モジュールを [Hierarchy] ペインに表示します。 [Simulation] をオンにした場

合には、 ド ロ ップダウン リ ス トからシ ミ ュレーシ ョ ン フェーズを選択する必要があ り ます。

[Hierarchy] ペイン

プロジェク ト名、ターゲッ ト デバイス、ユーザー ドキュ メン ト 、および選択したデザイン ビューに

関連付けられているデザイン ソース ファ イルを表示します。 [Design] パネルの上部にある [View]ペインで [Implementation] または [Simulation] をオンにする と、 そのデザイン ビューに関連する

ソース ファ イルのみを表示できます。

X-Ref Target - Figure 1-1

図 1-1 : Project Navigator

ISE アドバンス チュート リアル japan.xilinx.com 15UG695 (v12.1) 2010 年 4 月 19 日

ソフ トウェアの概要

[Hierarchy] ペインに表示される各ファイルの横にはアイコンが表示され、ファ イルのタイプ (HDLファ イル、 回路図、 コア、 テキス ト ファ イルなど) が示されます。 ソース タイプおよびアイコンの

一覧は、 ISE ヘルプの 「ソース ファ イルのタイプ」 ト ピッ クを参照して ください。 ISE ヘルプを表

示するには、 Project Navigator で [Help] → [Help Topics] をク リ ッ ク します。

ファ イルに下位階層が含まれる場合は、 ファ イル名の左側にプラス記号 (+) が表示されます。 この

プラス記号をク リ ッ クする と、下位階層を表示できます。 ファ イル名をダブルク リ ッ クする と、ファ

イルを開いて編集できます。

[Processes] ペイン

[Hierarchy] ペインで選択したソース タイプおよびプロジェク トの 上位ソースに関連するプロセ

スを表示します。 このペインからプロセスを実行して、デザインを定義、実行、解析できます。次の

プロセスを実行できます。

• [Design Summary/Reports]

デザイン レポート、 メ ッセージ、および結果データのサマリ を表示します。 メ ッセージのフ ィ

ルタ処理も実行できます。

• [Design Utilities]

シンボルの生成、 インスタンシエーシ ョ ン テンプレートの表示、 コマンド ライン ログ ファ イ

ルの表示、 およびシ ミ ュレーシ ョ ン ラ イブラ リのコンパイルを実行します。

• [User Constraints]

ロケーシ ョ ン制約およびタイ ミ ング制約を編集します。

• [Synthesis]

構文チェッ ク、合成、 RTL またはテク ノ ロジ回路図の表示、および合成レポートの表示を実行

できます。 実行できるプロセスは、 使用する合成ツールによって異なり ます。

• [Implement Design]

インプ リ メンテーシ ョ ン ツールおよびインプリ メンテーシ ョ ン後の解析ツールを実行します。

• [Generate Programming File]

ビッ ト ス ト リームを生成します。

• [Configure Target Device]

プログラム ファ イルを生成し、デバイスをプログラムするためコンフ ィギュレーシ ョ ン ツール

を実行します。

[Processes] ペインではプロセスの依存関係が認識され、 どのプロセスが実行されたか、 どのプロセ

スを実行する必要があるかが管理されます。 プロセスの横にはアイコンによ り、 フローの状態が示

されます。 フローに含まれるプロセスを選択する と、 そのプロセスに到達するために必要なプロセ

スが自動的に実行されます。 たとえば、 [Implement Design] プロセスを実行する と、 インプ リ メン

テーシ ョ ンは 新の合成結果に依存するので、 合成プロセスも実行されます。

プロジェク トに対して実行されたコマンド ラ イン引数を表示するには、 [Design Utilities] → [ViewCommand Line Log File] をダブルク リ ッ ク します。 詳細は、 第 5 章 の 「コマンド ラインを使用し

たインプ リ メンテーシ ョ ン」 を参照して ください。

16 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 1 章 : ISE ソフ トウェアの概要

[Files] パネル

プロジェク ト内のソース ファ イルを、階層ではなく、並べ替え可能なフラ ッ ト な リ ス ト と して表示

します。 ファ イルは、どの列でも基準にして並べ替えるこ とができます。ファ イルを右ク リ ッ ク して

[Source Properties] をク リ ッ クする と、 そのファイルのプロパティを表示できます。

[Libraries] パネル

HDL ライブラ リおよびそれに関連付けられている HDL ソース ファ イルを管理します。 ライブラ

リ とその関連付けられたソースを作成、 表示、 編集できます。

[Console] パネル

Project Navigator で実行したプロセスの標準出力を表示します。 エラー、警告、および情報メ ッセー

ジを表示します。 エラーには赤の X マーク、警告には黄色の感嘆符 (!) がメ ッセージの横に表示され

ます。

[Errors] パネル

エラー メ ッセージのみを表示します。

[Warnings] パネル

警告メ ッセージのみを表示します。

ソース ファイルへのエラー ナビゲーシ ョ ン

[Console]、 [Errors]、 または [Warnings] パネルの合成エラーまたは警告メ ッセージから、 ソース

HDL ファ イル内の問題の箇所にナビゲートできます。 エラーまたは警告メ ッセージを右ク リ ッ ク

して [Go to Source] をク リ ッ クする と、 HDL ソース ファ イルが開き、 問題のある箇所にカーソル

が移動します。

アンサー データベースへのエラー ナビゲーシ ョ ン

[Console]、 [Errors]、 または [Warnings] パネルのエラーまたは警告メ ッセージから、 ザイ リ ンクス

の Web サイ トのサポート ページにある関連のアンサー データベースにアクセスできます。 エラー

または警告メ ッセージを右ク リ ッ ク して [Go to Answer Record] をク リ ッ クする と、 このメ ッセー

ジに関連するアンサー データベースのリ ス トがデフォルトの Web ブラウザに表示されます。

ワークスペース

ワークスペースでは、 デザイン エディ タ、 ビューア、 および解析ツールが開きます。 ワークスペー

スで開く ツールには、ISE Text Editor、Schematic Editor、Constraint Editor、デザイン サマリ /レポー

ト ビューア、 RTL Viewer、 Technology Viewer、 Timing Analyzer などがあ り ます。

I/O 配置およびフロアプランに使用する PlanAhead™ ソフ ト ウェア、ISim、サードパーティ テキス

ト エディ タ、XPower Analyzer、iMPACT などのツールは、Project Navigator のメ イン ウ ィンド ウ

外に別ウ ィンド ウで開きます。

ISE アドバンス チュート リアル japan.xilinx.com 17UG695 (v12.1) 2010 年 4 月 19 日

プロジェク トのリビジ ョ ン管理機能の使用

デザイン サマリ /レポート ビューア

デザイン サマリでは、主要なデザイン データのサマリに加え、合成ツールおよびインプ リ メンテー

シ ョ ン ツールからのメ ッセージや詳細レポート を表示できます。 プロジェク トの情報、 デバイス使

用率、配置配線 (PAR) レポートのパフォーマンス データ、制約に関する情報、およびすべてのレポー

トからのサマ リ情報 (各レポートへのリ ンク付き) が表示されます。 システム設定レポートへのリ ン

クをク リ ッ クする と、デザイン インプ リ メンテーシ ョ ンで使用された環境変数およびツール設定に

関する情報が表示されます。 メ ッセージ フ ィルタ、 タグ付け、 インク リ メンタル メ ッセージなどの

メ ッセージ機能も、 このビューから利用できます。

プロジェク トのリビジ ョ ン管理機能の使用

Project Navigator ではプロジェク ト を次のよ うに管理できます。

ISE プロジェク ト ファイルの理解

ISE プロジェク ト ファ イル (拡張子 .xise) は、 プロジェク トのソースに関連するデータすべてを含

む XML ファ イルで、 次の情報が含まれます。

• ISE ソフ ト ウェア バージ ョ ン情報

• プロジェク トに含まれるソース ファ イルのリ ス ト

• デザイン プロパティおよびプロセス プロパティを含むソース設定

ISE プロジェク ト ファ イルに次のものは含まれません。

• プロセス ステータス情報

• コマンド履歴

• 制約データ

メモ : プロセス ステータスなどの生成されたデータを含む GISE ファ イルも存在しますが、 ユー

ザーがこのファイルを直接使用する必要はあ り ません。

ISE プロジェク ト ファ イルは、 ソース制御環境と互換する次のよ うな特徴があ り ます。

• プロジェク トに必要なソース設定および入力データをすべて含みます。

• Project Navigator 内で読み込み専用ファイルと して開く こ とができます。

• ソース レベルでの変更がプロジェク トに加えられた場合にのみ、アップデート または変更され

ます。

• 生成される出力ディ レク ト リ (作業ディ レク ト リ ) とは別のディ レク ト リに保管できます。

メモ : ソース レベルの変更とは、プロパティの変更、ソース ファ イルの追加や削除を指します。 ソー

ス ファ イルの内容の変更、インプ リ メンテーシ ョ ン実行 の状態の変更などは、ソースレベルの変更

とはみなされず、 プロジェク ト ファ イルは変更されません。

18 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 1 章 : ISE ソフ トウェアの概要

プロジェク トのコピーの作成

[File] → [Copy Project] をク リ ッ ク してプロジェク トのコピーを作成する と、 異なるソース オプ

シ ョ ンやインプ リ メンテーシ ョ ンを試すこ とができます。 必要に応じて、 コピーしたプロジェク ト

のデザイン ソース ファ イルとその格納場所は、 次のよ うにできます。

• デザイン ソース ファ イルは既存の場所にそのまま残し、 コピーしたプロジェク トでそれらの

ファイルを指定する。

• デザイン ソース ファ イルと生成されたファイルをコピーし、 指定ディレク ト リに保存する。

• デザイン ソース ファ イルのみをコピーし、 指定ディレク ト リにコピーし保存する。

Project Browser の使用

Project Browser は、[File] → [Project Browser] をク リ ッ クする と開き、次のよ うにプロジェク ト を

比較、 表示、 開く こ とができます。

• 複数のプロジェク トの主要な特性を比較します。

• プロジェク ト を開く前に、 選択したプロジェク トのデザイン サマリやレポート を表示します。

• 選択した 2 つのプロジェク トの詳細情報を比較します。

• 現在の Project Navigator セッシ ョ ンで選択したプロジェク ト を開きます。

• 新規の Project Navigator セッシ ョ ンで選択したプロジェク ト を開きます。

プロジェク ト アーカイブの使用

プロジェク ト全体を 1 つのファイルに圧縮し、 アーカイブを作成できます。 アーカイブを作成する

と、 プロジェク ト を電子メールで送信しやすくなり、 限られたスペースに多数のプロジェク ト を保

存できるよ うになり ます。

アーカイブの作成

アーカイブを作成するには、 次の手順に従います。

1. [Project ] → [Archive] をク リ ッ ク します。

2. [Project Archive] ダイアログ ボッ クスで、 アーカイブ名と保存場所を入力します。

3. [保存] をク リ ッ ク します。

メモ : アーカイブには、プロジェク ト ディ レク ト リに含まれるすべてのファイルおよびプロジェク

ト設定が含まれています。 リモート ソースは、 アーカイブ内の remote_sources という フォルダ

にそのコピーが保存されます。 詳細は、 ISE ヘルプを参照して ください。

アーカイブの復元

アーカイブしたファイルは、直接 Project Navigator に復元するこ とはできません。 圧縮されたファ

イルを任意の圧縮/解凍ユーティ リ ティで解凍する と、 Project Navigator で開く こ とができます。

ISE アドバンス チュート リアル japan.xilinx.com 19UG695 (v12.1) 2010 年 4 月 19 日

第 2 章

HDL ベースのデザイン

この章は、 次のセクシ ョ ンから構成されています。

• 「HDL ベースのデザインの概要」

• 「入門」

• 「デザインの概要」

• 「デザイン入力」

• 「デザインの合成」

HDL ベースのデザインの概要

この章では、stopwatch デザインを使用して、HDL に基づく典型的な FPGA デザインの手順を説明

します。 このチュート リ アルで使用されるデザイン例では、 今後のデザイン作成に応用可能なデバ

イスのさまざまな機能、 ソフ ト ウェアの機能、 およびデザイン フローが示されています。 このデザ

インには Spartan™-3A デバイスが使用されていますが、こ こで説明する原則およびフローは、注記

がない限りすべてのザイ リ ンクス デバイス ファ ミ リに応用できます。

このデザインは、 HDL エレ メン トおよび 2 つのコアで構成されており、 XST (Xilinx SynthesisTechnology)、Synplify/Synplify Pro、 または Precision Synthesis ソフ ト ウェアを使用して合成でき

ます。

この章は、「HDL デザイン フロー」の第 1 ステップです。この章で正し くデザインを定義した後に、

ビヘイビア シ ミ ュレーシ ョ ン (第 4 章 「ビヘイビア シ ミ ュレーシ ョ ン」 )、 ザイ リ ンクス インプ リ

メンテーシ ョ ン ツールを使用したインプ リ メンテーシ ョ ン (第 5 章 「デザイン インプ リ メンテー

シ ョ ン」)、タイ ミ ング シ ミ ュレーシ ョ ン (第 6 章「タイ ミ ング シ ミ ュレーシ ョ ン」)、および Spartan-3A デバイス (XC3S700A) デモ ボードへのコンフ ィギュレーシ ョ ンおよびダウンロード (第 7 章「iMPACT チュート リ アル」 ) を実行します。

20 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 2 章 : HDL ベースのデザイン

入門

次に、 このチュート リ アルを実行するのに必要な条件を示します。

必要なソフ トウェア

このチュート リ アルを実行するには、ザイ リ ンクス ISE® Design Suite 12 がインス トールされてい

る必要があ り ます。

このチュート リ アルでは、ソフ ト ウェアがデフォルトのディ レク ト リ c:\xilinx\12.1\ISE_DS\ISE にインス トールされているこ とを前提と しています。 ソフ ト ウェアを別のディ レク ト リにインス トー

ルしている場合は、 そのインス トール パス と置き換えてこのチュート リ アルを実行して ください。

メモ : ソフ ト ウェアのインス トール方法に関する詳細は、 ザイ リ ンクス Web サイ トから 『ISEDesign Suite 12 : インス トール、 ラ イセンス、 リ リース ノート 』 を参照してください。

その他のソフ トウェア (オプシ ョ ン)次のサードパーティの合成ツールを XST の代わりに使用できます。

• Synopsys 社 Synplify/Synplify PRO D-2010.03 以降

• Mentor Graphics 社 Precision Synthesis 2010a 以降

次のサードパーティのシ ミ ュレーシ ョ ン ツールを、 ISim の代わりに使用できます。

• ModelSim XE/SE/PE/DE 6.5c 以降

VHDL または Verilog の使用

VHDL および Verilog デザインの両方がサポート されており、 いずれも同等に使用できます。 ただ

し、このチュート リ アルで使用する HDL 言語を選択して、その言語で必要なファイルをダウンロー

ドする必要があ り ます。 XST では混合言語のデザインも合成できますが、 このチュート リ アルでは

使用しません。

チュート リアル プロジェク ト ファイルのダウンロード

チュート リ アル プロジェク ト ファ イルは、 ザイ リ ンクスの Web サイ トの ISE Design Suite 12チュート リ アル ページからダウンロードできます。 VHDL または Verilog のいずれかのプロジェク

ト ファ イルをダウンロード します。

チュート リ アル プロジェク ト ファ イルをダウンロード したら、 そのファイルを c:\xilinx\12.1\ISE_DS\ISE\ISEexamples ディ レク ト リに解凍します。既存のファイルがある場合は、す

べて置き換えます。

プロジェク ト ファ イルをc:\xilinx\12.1\ISE_DS\ISE\ISEexamples に解凍する と、

wtut_vhd (VHDL デザイン フロー ) または wtut_ver (Verilog デザイン フロー ) が c:\xilinx\12.1\ISE\ISEexamples ディ レク ト リ内に作成され、チュート リ アル ファ イルがこ

のディ レク ト リにコピーされます。

ISE アドバンス チュート リアル japan.xilinx.com 21UG695 (v12.1) 2010 年 4 月 19 日

入門

次の表に、 チュート リ アル プロジェク トのディ レク ト リ を示します。

メモ : completed ディ レク ト リには、完成した HDL ソース ファ イルが含まれます。 completed ディ

レク ト リに含まれるファイルは上書きしないでください。

このチュート リ アルでは、c:\xilinx\12.1\ISE_DS\ISE\ISEexamples でファイルが解凍され

ており、 読み出し /書き込みの権限があるこ とを前提と しています。 別のディ レク ト リにファ イルを

解凍した場合は、 そのプロジェク ト パス と置き換えてチュート リ アルを実行して ください。

ISE ソフ トウェアの起動

ISE ソフ ト ウェアを起動するには、デスク ト ップの [Xilinx ISE 12.1] アイコンをダブルク リ ッ クす

るか、[スタート ] → [すべてのプログラム] → [Xilinx ISE Design Suite 12.1] → [ISE デザイン ツー

ル] → [Project Navigator] をク リ ッ ク します。

表 2-1 : チュート リアルのディレク ト リ

ディ レク ト リ 説明

wtut_vhd 未完成の VHDL ソース ファ イル

wtut_ver 未完成の Verilog ソース ファ イル

wtut_vhd\wtut_vhd_completed 完成した VHDL ソース ファ イル

wtut_ver\wtut_ver_completed 完成した Verilog ソース ファ イル

X-Ref Target - Figure 2-1

図 2-1 : デスク ト ップ の [Xilinx ISE 12.1] アイコン

22 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 2 章 : HDL ベースのデザイン

新規プロジェク トの作成

New Project Wizard を使用して新規プロジェク ト を作成するには、 次の手順に従います。

1. Project Navigator で、 [File] → [New Project] をク リ ッ ク します。

New Project Wizard の [Create New Project] ページが表示されます。

2. [Location] で、c:\xilinx\12.1\ISE\ISEexamples またはプロジェク ト を配置したディ レ

ク ト リ を選択します。

3. [Name] に 「wtut_vhd」 または 「wtut_ver」 と入力します。

4. [Top-level source type] が [HDL] であるこ とを確認し、 [Next] をク リ ッ ク します。

X-Ref Target - Figure 2-2

図 2-2 : New Project Wizard の [Create New Project] ページ

ISE アドバンス チュート リアル japan.xilinx.com 23UG695 (v12.1) 2010 年 4 月 19 日

入門

[Project Settings] ページが表示されます。

5. [Project Settings] ページで、 次のよ うに値を設定します。

♦ [Product Category] : [All]

♦ [Family] : [Spartan3A and Spartan3AN]

♦ [Device] : [XC3S700A]

♦ [Package] : [FG484]

♦ [Speed] : [-4]

♦ [Synthesis Tool] : [XST (VHDL/Verilog)]

♦ [Simulator] : [ISim (VHDL/Verilog)]

♦ [Preferred Language] : [VHDL] または [Verilog]こ こで選択した言語が、 HDL ファ イルを生成するすべてのプロセスのデフォルト言語に

なり ます。

その他のプロパティはデフォルト値のままにします。

6. [Next] をク リ ッ ク して [Project Summary] ページで [Finish] をク リ ッ ク し、 プロジェク トの作

成を完了します。

チュート リアルの中止

チュート リ アルを中止する場合は、 [File] → [Save All] をク リ ッ ク して作業中のファイルを保存し

てください。

X-Ref Target - Figure 2-3

図 2-3 : New Project Wizard の [Project Settings] ページ

24 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 2 章 : HDL ベースのデザイン

デザインの概要

このチュート リ アルに使用されるデザインは、HDL に基づく階層デザインで、 上位デザイン ファ

イルから複数の下位マクロが参照されます。 下位のマクロは、 HDL モジュールまたは IP モジュー

ルです。

stopwatch デザインは、未完成のデザインです。 このチュート リ アルでは、モジュールを作成したり、

既存のファイルを編集したり して、デザインを完成させます。 デザインを完成させたら、シ ミ ュレー

シ ョ ンを実行してその機能を検証します。

このデザインには、 5 つの外部入力および 4 つの外部出力バスが含まれています。 システム ク ロ ッ

クは、外部で生成される信号です。 次に、デザインの入力信号および出力信号のサマリ を示します。

入力

次は、 stopwatch デザインの入力信号です。

• strtstop

ス ト ップウォッチを開始、停止します。 アクティブ Low 信号で、ス ト ップウォッチの開始/停止

ボタンと同じ動作をします。

• reset

ス ト ップウォッチをク ロ ッ ク モードに切り替え、 時間を 0:00:00 にリセッ ト します。

• clk

外部で生成されるシステム ク ロ ッ クです。

• mode

ク ロ ッ ク モード と タイマー モードを切り替えます。 ク ロ ッ クまたはタイマーが動作していな

いと きにのみ有効になり ます。

• lap_load

2 つの機能を持つ信号で、 ク ロ ッ ク モードでは Lap ディ スプレイに現在のクロ ッ ク値を表示

し、タイマー モードではタイマーが動作していないと きに ROM からプ リセッ ト値をタイマー

ディ スプレイに読み込みます。

出力

次は、 デザインの出力信号です。

• lcd_e、 lcd_rs、 lcd_rw

ス ト ップウォッチの時間を表示するために使用される Spartan-3A デモ ボードの LCD ディ ス

プレイを制御する信号です。

• sf_d[7:0]

LCD ディ スプレイにデータ値を供給します。

ISE アドバンス チュート リアル japan.xilinx.com 25UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

論理ブロック

完成デザインは、 次の論理ブロッ クから構成されています。

• clk_div_262k

ク ロ ッ ク周波数を 262,144 で分周するマクロです。26.2144MHz のクロ ッ クをデューティ サイ

クルが 50% で 100Hz のクロ ッ クに変換します。

• dcm1

内部フィードバッ ク、周波数を調整した出力、およびデューティ サイクル調整を含む ClockingWizard マクロです。 CLKFX_OUT 出力は、Spartan-3A デモ ボードの 50MHz を 26.2144MHzに変換します。

• debounce

strtstop、mode、lap_load 入力信号のデバウンス回路をインプ リ メン トする回路図モジュールで

す。

• lcd_control

LCD ディ スプレイの初期化と出力を制御するモジュールです。

• statmach

ス ト ップウォッチの状態を制御するステート マシン HDL モジュールです。

• timer_preset

CORE Generator™ ソフ ト ウェアの 64X20 ROM です。 このマク ロには、 タイマーに読み込む

0:00:00 ~ 9:59:99 の 64 個のプリセッ ト時間が含まれています。

• time_cnt

0:00:00 ~ 9:59:99 の 10 進値をカウン トするアップ/ダウン カウンタ モジュールで、 ス ト ップ

ウォッチの時間の各桁を表す 4 ビッ トの出力が 5 つあり ます。

デザイン入力この階層デザインでは、 HDL ファ イルの確認、 構文エラーの修正、 HDL マクロの作成、 COREGenerator ソフ ト ウェア コアおよびクロ ッキング モジュールの追加を実行します。 各タイプのデザ

イン マクロを作成および使用します。 このチュート リ アルで使用する手順は、 今後作成するデザイ

ンに応用できます。

ソース ファイルの追加

デザインを合成する前に、HDL ファ イルをプロジェク トに追加する必要があ り ます。 プロジェク ト

に 5 つのソース ファ イルを次のよ うに追加します。

1. [Project] → [Add Source] をク リ ッ ク します。

2. プロジェク ト ディ レク ト リから次のファイル (VHDL デザインの場合は拡張子は .vhd、Verilogデザインの場合は拡張子は .v) を選択し、 [開く ] をク リ ッ ク します。

♦ clk_div_262k

♦ lcd_control

♦ statmach

♦ stopwatch

♦ time_cnt

26 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 2 章 : HDL ベースのデザイン

3. [Adding Source Files] ダイアログ ボッ クスで、ファ イルの [Association] が [All]、[Library] が[work] に指定されているこ とを確認し、 [OK] をク リ ッ ク します。

[Design] パネルの [Hierarchy] ペインに、 プロジェク トに現在追加されているすべてのソース ファ

イルが、 エンティティ名またはモジュール名と共に表示されます。 各ソース デザイン ユニッ トは、

[Hierarchy] ペインに次のよ うな形式で表示されます。

インスタンス名 - エンティティ名 - アーキテクチャ名 - (ファ イル名)

インスタンシエート されたコンポーネン トにエンティティ またはモジュール宣言がない場合は、 ク

エスチョ ン マーク (?) がコンポーネン トの横に表示されます。

HDL エラーの修正

ファ イルの構文が正しいかど うかは、 ファ イルをプロジェク トに追加したと き、 およびファイルを

保存したと きに確認されます。 各ファイルの構文が解析され、 その結果が [Console] パネルおよび

[Design Summary] の [Parser Messages] に表示されます。

time_cnt モジュールには、 修正を必要とする構文エラーが含まれています。 [Console] パネルに

「ERROR」 メ ッセージが表示され、 その概要と構文に問題がある行番号が示されます。

ソース ファ イルのエラーを表示するには、 次の手順に従います。

1. [Console] または [Errors] パネルでエラー メ ッセージのファイル名をク リ ッ ク します。

ワークスペースにソース コードが表示され、エラーを含む行の横に黄色の矢印アイコン示され

ます。

2. HDL ソースのエラーを修正します。 エラー行の上のコ メン ト行に、このエラーの修正方法が示

されています。

3. [File] → [Save] をク リ ッ ク してファ イルを保存します。

[Console] パネルの構文解析メ ッセージに、 解析でエラーが検出されなかったこ とが示されます。

HDL ベースのモジュールの作成

次に、HDL コードからモジュールを作成します。 ISE ソフ ト ウェアでは、 ISE Text Editor を使用し

て HDL コードから簡単にモジュールを作成できます。 この HDL コードをインスタンシエート し

て 上位の HDL デザインと連結させ、 残りのデザインと共にコンパイルします。

このセクシ ョ ンでは、 新規 HDL モジュールを作成します。 このマク ロは、 strtstop、 mode、 および

lap_load 入力をデバウンスするために使用します。

X-Ref Target - Figure 2-4

図 2-4 : stopwatch デザインを表示した [Hierarchy] ペイン

ISE アドバンス チュート リアル japan.xilinx.com 27UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

New Source Wizard および ISE Text Editor の使用

New Source Wizard を使用してコンポーネン トの名前およびポート を指定し、新規ソース ファ イル

を作成した後、 作成された HDL ファ イルを ISE Text Editor で編集します。

ソース ファ イルを作成するには、 次の手順に従います。

1. [Project] → [New Source] をク リ ッ ク します。

New Source Wizard の [Select Source Type] ページが表示されます。

2. [Select Source Type] ページで、 [VHDL Module] または [Verilog Module] を選択します。

3. [File name] に 「debounce」 と入力します。

4. [Next] をク リ ッ ク します。

5. [Define Module] ページで、 次の手順に従って debounce コンポーネン トの 2 つの入力ポート

sig_in および clk と、 1 つの出力ポート sig_out を入力します。

a. [Port Name] 列の 初の 3 つに 「sig_in」、 「clk」、 および 「sig_out」 と入力します。

b. [Direction] 列で sig_in および clk には [in] または [input]、 sig_out には [out] または

[output] を選択します。

X-Ref Target - Figure 2-5

図 2-5 : New Source Wizard の [Select Source Type] ページ

28 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 2 章 : HDL ベースのデザイン

c. [Bus] 列のチェッ ク ボッ クスはオフのままにします。

6. [Next] をク リ ッ ク します。 [Summary] ページにモジュールの説明が表示されます。

7. [Finish] をク リ ッ ク します。 ISE Text Editor で空の HDL ファ イルが開きます。

次の図に、 VHDL ファ イルを示します。

X-Ref Target - Figure 2-6

図 2-6 : New Source Wizard の [Define Module] ページ

X-Ref Target - Figure 2-7

図 2-7 : ISE Text Editor に表示された VHDL ファイル

ISE アドバンス チュート リアル japan.xilinx.com 29UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

次の図に、 Verilog ファ イルを示します。

ISE Text Editor に表示される HDL ファ イルでは、 既にポートが宣言されており、 基本ファイル構

造の一部が記述されています。 キーワードは青色、 データ タイプは赤色、 コ メン トは緑色、 値は黒

色で表示されています。 このよ うにコードが色分けして表示されるので、コードが読みやすくな り、

誤字エラーを見つけやすくなり ます。

言語テンプレートの使用

ISE の言語テンプレートには、 カウンタ、 D フ リ ップフロ ップ、 マルチプレクサ、 プ リ ミ ティブな

ど、 よ く使用されるロジッ ク コンポーネン ト を記述した HDL 構文および合成テンプレートが含ま

れています。 このセクシ ョ ンでは、 デバウンス回路のテンプレート を使用します。

メモ : よ く使用するコンポーネン ト または構文を言語テンプレートに追加するこ と もできます。

言語テンプレートのウ ィンド ウを表示して、 このチュート リ アルで使用するテンプレート を選択す

るには、 次の手順に従います。

1. [Edit] → [Language Templates] をク リ ッ ク します。

VHDL および Verilog の言語テンプレートは、それぞれ [Common Constructs]、[Device MacroInstantiation]、 [Device Primitive Instantiation]、 [Simulation Constructs]、 [Synthesis Constructs]、 [User Templates] のカテゴ リに分類されています。 これらのカテゴ リ を展開する

には、プラス記号 (+) をク リ ッ ク します。 テンプレート をク リ ッ クする と、右側にテンプレート

が表示されます。

2. [VHDL] または [Verilog] の階層から [Synthesis Constructs] → [Coding Examples] → [Misc] を展開し、 [Debounce circuit] (VHDL) または [One Shot, Debounce Circuit] (Verilog) テンプレー

ト を選択します。 テンプレート が使用している言語のものであるこ と を確認してく ださい。

X-Ref Target - Figure 2-8

図 2-8 : ISE Text Editor に表示された Verilog ファイル

30 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 2 章 : HDL ベースのデザイン

テンプレート を選択する と、 右側にデバウンス回路の HDL コードが表示されます。

言語テンプレートのファイルへの追加

次に、[Use in File] コマンドを使用して、テンプレート を HDL ファ イルに追加します。 ド ラ ッグ アンド ド ロ ップで追加する方法など、 言語テンプレートの使用に関する詳細は、 ISE ヘルプの 「言語

テンプレートの使用」 を参照してください。

テンプレート を HDL ファ イルに追加するには、 次の手順に従います。

1. debounce.v または debounce.vhd ソース ファ イルをアクティブにし、 カーソルを VHDL ファ

イルでは architecture の begin 文の下、 Verilog ファ イルでは module およびピン宣言の下に置

きます。

2. [Language Templates] ウ ィンド ウに戻り、テンプレート インデクスの [Debounce circuit] テン

プレート を右ク リ ッ ク し、 [Use in File] をク リ ッ ク します。

3. [Language Templates] ウ ィンド ウを閉じます。

X-Ref Target - Figure 2-9

図 2-9 : 言語テンプレート

X-Ref Target - Figure 2-10

図 2-10 : テンプレートを [Use in File] を使用して HDL ファイルに追加

ISE アドバンス チュート リアル japan.xilinx.com 31UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

4. debounce.v または debounce.vhd ソース ファ イルを開き、言語テンプレート が正し く挿入され

ているこ とを確認します。

5. Verilog のみ : 次の変更を加えて Verilog モジュールを完成させます。

a. 「if」 から 「else」 までの 3 行を削除して、 リセッ ト ロジッ クを削除します。 リセッ ト ロジッ

クは、 このデザインでは使用されません。

b. <reg_name> を 6 箇所すべてで q に変更します。

c. <clock> を clk に、 <input> を sig_in に、 <output> を sig_out に変更します。

メ モ : [Edit] → [Find & Replace] を ク リ ッ クする と、 これを簡単に実行できます。 ISE TextEditor の下部に検索フ ィールドが表示されます。

6. VHDL のみ : 次の変更を加えて、 VHDL モジュールを完成させます。

a. 「signal」 で始まる行を architecture 行と begin 行の間に移動します。

b. 「if (<reset>...」 から 「else」 までの 5 行を削除して、 リセッ ト ロジッ クを削除しま

す。 2 つある 「end if;」 行の 1 つも削除します。

c. <clock> を clk に、 D_IN を sig_in に、 Q_OUT を sig_out に変更します。

メ モ : [Edit] → [Find & Replace] を ク リ ッ クする と、 これを簡単に実行できます。 ISE TextEditor の下部に検索フ ィールドが表示されます。

7. [File] → [Save] をク リ ッ ク してファ イルを保存します。

8. [Hierarchy] ペインの debounce インスタンスの 1 つを選択します。

9. [Processes] ペインで [Check Syntax] をダブルク リ ッ ク し、構文にエラーがないかど うかを確認

します。 必要に応じてエラーを修正します。

10. ISE Text Editor を閉じます。

CORE Generator ソフ トウェア モジュールの作成

CORE Generator ソフ ト ウェアは、メモ リ エレ メン ト 、演算ファンクシ ョ ン、通信、I/O インターフェ

イス コアなどの高機能モジュールを作成する、 対話型のグラフ ィカル デザイン ツールです。 この

ツールを使用して、モジュールをカスタマイズおよび 適化するこ とによ り、高速キャ リー ロジッ

ク、 SRL16、分散 RAM、 ブロ ッ ク RAM などのザイ リ ンクス FPGA デバイスのアーキテクチャ機

能を 大限に活用できます。

このセクシ ョ ンでは、timer_preset という CORE Generator ソフ ト ウェア モジュールを作成します。

このモジュールは、 タイマーに読み込む 64 個のプリセッ ト値を保存するのに使用します。

timer_preset CORE Generator ソフ トウェア モジュールの作成

CORE Generator ソフ ト ウェア モジュールを作成するには、 次の手順に従います。

1. [Project] → [New Source] をク リ ッ ク します。

2. [IP (CORE Generator & Architecture Wizard)] を選択します。

3. [File name] に 「timer_preset」 と入力します。

4. [Next] をク リ ッ ク します。

5. [Memories & Storage Elements] → [RAMs & ROMs] を展開します。

32 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 2 章 : HDL ベースのデザイン

6. [Distributed Memory Generator] を選択して [Next] をク リ ッ ク し、次のページで [Finish] をク

リ ッ ク します。CORE Generator で Distributed Memory Generator のカスタマイズ ウ ィンド ウ

が開きます。 このウ ィンド ウで、 メモ リ をデザインの仕様に合わせてカスタマイズします。

7. Distributed Memory Generator のカスタマイズ ウ ィンド ウで次の設定を入力します。

♦ [Component Name] : timer_preset (モジュール名を指定)

♦ [Depth] : 64 (保存する値の数を指定)

♦ [Data Width] : 20 (出力バスの幅を指定)

♦ [Memory Type] : [ROM]

X-Ref Target - Figure 2-11

図 2-11 : New Source Wizard の [Select IP] ページ

ISE アドバンス チュート リアル japan.xilinx.com 33UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

8. [Next] をク リ ッ ク します。

9. [Input Options] および [Output Options] を [Non Registered] のままにし、[Next] をク リ ッ ク し

ます。

10. [Coefficients File] で [Browse] ボタンをク リ ッ ク し、 プロジェク ト ディ レク ト リにある definition1_times.coe を選択します。

X-Ref Target - Figure 2-12

図 2-12 : CORE Generator ソフ トウェアの Distributed Memory Generator のカスタマイズ ウィンドウ (1 ページ目)

X-Ref Target - Figure 2-13

図 2-13 : CORE Generator ソフ トウェアの Distributed Memory Generator のカスタマイズ ウィンドウ (2 ページ目)

34 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 2 章 : HDL ベースのデザイン

11. カスタマイズ ウ ィンド ウの左側のシンボルで、次のピンのみがハイライ ト されているこ とを確

認します。

♦ a[5:0]

♦ spo[19:0]

12. [Generate] をク リ ッ ク します。

作成されたマクロは、 自動的にプロジェク トのライブラ リに追加されます。

プロジェク ト ディ レク ト リの ipcore_dir サブディ レク ト リに多数のファイルが追加されます。 この

中には、 次のファイルの含まれます。

♦ timer_preset.vho または timer_preset.veo

CORE Generator ソフ ト ウェア モジュールをソース HDL に組み込むのに使用するインス

タンシエーシ ョ ン テンプレートです。

♦ timer_preset.vhd または timer_preset.v

シ ミ ュレーシ ョ ンのみで使用されるコアの HDL ラ ッパ ファ イルです。

♦ timer_preset.ngc

インプ リ メンテーシ ョ ンの変換プロセスで使用されるネッ ト リ ス トです。

♦ timer_preset.xco

timer_preset モジュールのコンフ ィギュレーシ ョ ン情報が格納されており、 ISE プロジェ

ク トでプロジェク ト ソース と して使用されます。

♦ timer_preset.mif

シ ミ ュレーシ ョ ン用の ROM の初期値を供給します。

X-Ref Target - Figure 2-14

図 2-14 : CORE Generator ソフ トウェアの Distributed Memory Generator のカスタマイズ ウィンドウ (3 ページ目)

ISE アドバンス チュート リアル japan.xilinx.com 35UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

HDL コードへの CORE Generator ソフ トウェア モジュールのインスタンシエーシ ョ ン

次に、 VHDL フローまたは Verilog フローを使用して、 CORE Generator ソフ ト ウェア モジュール

を HDL コードにインスタンシエート します。

VHDL フロー

VHDL フローで CORE Generator ソフ ト ウェア モジュールをインスタンシエートするには、次の手

順に従います。

1. [Hierarchy] ペインで stopwatch.vhd をダブルク リ ッ ク し、 ISE Text Editor で開きます。

2. カーソルを次の行の下に置きます。

-- Insert CORE Generator ROM component declaration here

3. [Edit] → [Insert File] をク リ ッ ク し、 [Coose a file to insert] ダイアログ ボッ クスで ipcore_dir/timer_preset.vho ファ イルを選択して [開く ] をク リ ッ ク します。

次の図のよ うに CORE Generator ソフ ト ウェアのインスタンシエーシ ョ ン用の VHDL テンプ

レートが挿入されます。

4. コードの次の行から指定の行までを選択します。

-- Begin Cut here for INSTANTIATION Template ----

後の行

-- INST_TAG_END ------ END INSTANTIATION Template -----

5. [Edit] → [Cut] をク リ ッ ク します。

6. カーソルを次の行の下に置きます。

-- Insert CORE Generator ROM Instantiation here

7. [Edit] → [Paste] をク リ ッ ク してコア インスタンシエーシ ョ ンを挿入します。

8. インスタンス名を 「your_instance_name」 から 「t_preset」 に変更します。

9. インスタンシエート したコードを編集して、 次に示すよ うに stopwatch デザインの信号と CORE Generator ソフ ト ウェア モジュールのポート を接続します。

X-Ref Target - Figure 2-15

図 2-15 : CORE Generator ソフ トウェア モジュールの VHDL コンポーネン ト宣言

X-Ref Target - Figure 2-16

図 2-16 : CORE Generator ソフ トウェア モジュールの VHDL コンポーネン トの

インスタンシエーシ ョ ン

36 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 2 章 : HDL ベースのデザイン

10. 挿入した timer_preset.vho のコードには、 説明および法的記述を含むコ メン ト行が含まれてい

ます。 これらのコ メン ト行は、 削除してもかまいません。

11. [File] → [Save] をク リ ッ ク してデザインを保存し、 ISE Text Editor を閉じます。

Verilog フロー

Verilog フローで CORE Generator ソフ ト ウェア モジュールをインスタンシエートするには、 次の

手順に従います。

1. [Hierarchy] ペインで stopwatch.v をダブルク リ ッ ク し、 ISE Text Editor で開きます。

2. カーソルを次の行の後に置きます。

// Place the Coregen module instantiation for timer_preset here

3. [Edit] → [Insert File] をク リ ッ ク し、 [Choose a file to insert] ダイアログ ボッ クスで

ipcore_dir/timer_preset.veo を選択して [開く ] をク リ ッ ク します。

4. 挿入した timer_preset.veo のコードには、 説明および法的記述を含むコ メン ト行が含まれてい

ます。 これらのコ メン ト行は、 削除してもかまいません。

5. インスタンス名を 「YourInstanceName」 から 「t_preset」 に変更します。

6. インスタンシエート したコードを編集して、 次に示すよ うに stopwatch デザインの信号と CORE Generator ソフ ト ウェア モジュールのポート を接続します。

7. [File] → [Save] をク リ ッ ク してデザインを保存し、 ISE Text Editor を閉じます。

コア モジュールが [Hierarchy] ペインの stopwatch モジュールの下に表示されます。

DCM モジュールの作成

Architecture Wizard の一部である Clocking Wizard を使用する と、 DCM (デジタル ク ロ ッ ク マネージャ ) モジュールをグラフ ィカルに作成できます。 このセクシ ョ ンでは、CLK0 フ ィードバッ ク

およびデューティ サイクル調整がある基本的な DCM モジュールを作成します。

Clocking Wizard の使用

dcm1 モジュールを作成するには、 次の手順に従います。

1. [Project] → [New Source] をク リ ッ ク します。

2. New Source Wizard の [Select Source Type] ページで、 ソース タイプと して [IP (COREGenerator & Architecture Wizard)] を選択し、 [File name] に 「dcm1」 と入力します。

3. [Next] をク リ ッ ク します。

X-Ref Target - Figure 2-17

図 2-17 : CORE Generator ソフ トウェア モジュールの Verilog コンポーネン トの

インスタンシエーシ ョ ン

ISE アドバンス チュート リアル japan.xilinx.com 37UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

4. [Select IP] ページで、 [FPGA Features and Design] → [Clocking] → [Spartan-3E, Spartan-3A]→ [Single DCM_SP] をク リ ッ ク します。

5. [Next] をク リ ッ ク し、次のページで [Finish] をク リ ッ ク します。 Clocking Wizard が開きます。

6. Architecture Wizard の [Setup] ページで [OK] をク リ ッ ク します。

7. [General Setup] ページで [RST]、[CLK0]、および [LOCKED] がオンになっているこ とを確認

します。

8. [CLKFX] ポート をオンにします。

9. [Input Clock Frequency] に 「50」 と入力し、 [MHz] をオンにします。

10. 次の設定を確認します。

♦ [Phase Shift] : [NONE]

♦ [CLKIN Source] : [External]、 [Single]

♦ [Feedback Source] : [Internal]

♦ [Feedback Value] : [1X]

♦ [Use Duty Cycle Correction] : オン

11. [Advanced] をク リ ッ ク します。

12. [Wait for DCM lock before DONE signal goes high] をオンにします。

13. [OK] をク リ ッ ク します。

14. [Next] をク リ ッ ク し、 次のページで [Next] をク リ ッ ク します。

15. [Use output frequency] をオンにし、下のボッ クスに 「26.2144」 と入力して [MHz] をオンにし

ます。

X-Ref Target - Figure 2-18

図 2-18 : Single DCM_SP コアを選択

26.2144Mhz( ) 218⁄ 100Hz=

38 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 2 章 : HDL ベースのデザイン

16. [Next] をク リ ッ ク し、 次のページで [Finish] をク リ ッ ク します。

dcm1.xaw ファ イルが作成され、 [Design] パネルの [Hierarchy] ペインのプロジェク ト ソース ファ

イル リ ス トに追加されます。

dcm1 マクロのインスタンシエーシ ョ ン (VHDL デザイン)

次に、VHDL または Verilog デザインに dcm1 マクロをインスタンシエート します。 VHDL デザイ

ンに dcm1 マクロをインスタンシエートするには、 次の手順に従います。

1. [Design] パネルの [Hierarchy] ペインで dcm1.xaw を選択します。

2. [Processes] ペインで [View HDL Instantiation Template] を右ク リ ッ ク し、[Process Properties]をク リ ッ ク します。

3. [HDL Instantiation Template Target Language] を [VHDL] に設定し、[OK] をク リ ッ ク します。

4. [Processes] ペインで [View HDL Instantiation Template] をダブルク リ ッ ク します。

5. 表示された HDL インスタンシエーシ ョ ン テンプレート (dcm1.vhi) で、次に示すコンポーネ

ン ト宣言のテンプレート を選択します。

6. [Edit] → [Copy] をク リ ッ ク します。

7. カーソルを stopwatch.vhd ファ イルの次のセクシ ョ ンに置きます。

-- Insert dcm1 component declaration here.

8. [Edit] → [Paste] をク リ ッ ク して、 コンポーネン ト宣言を貼り付けます。

9. HDL インスタンシエーシ ョ ン テンプレートで、 次に示すインスタンシエーシ ョ ン テンプレー

ト を選択します。

10. [Edit] → [Copy] をク リ ッ ク します。

11. カーソルを stopwatch.vhd ファ イルの次の行の下に置きます。

-- Insert dcm1 instantiation here.

X-Ref Target - Figure 2-19

図 2-19 : DCM のコンポーネン ト宣言 (VHDL)

X-Ref Target - Figure 2-20

図 2-20 : DCM コンポーネン トのインスタンシエーシ ョ ン (VHDL)

ISE アドバンス チュート リアル japan.xilinx.com 39UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

12. [Edit] → [Paste] をク リ ッ ク して、 インスタンシエーシ ョ ン テンプレート を貼り付けます。

13. 次の図と同じになるよ うにコードを変更します。

14. [File] → [Save] をク リ ッ ク して、 stopwatch.vhd ファ イルを保存します。

dcm1 モジュールがデザイン階層のstopwatch モジュールの下に表示されます。

dcm1 マクロのインスタンシエーシ ョ ン (Verilog)

Verilog デザインに dcm1 マクロをインスタンシエートするには、 次の手順に従います。

1. [Design] パネルの [Hierarchy] ペインで dcm1.xaw を選択します。

2. [Processes] ペインで [View HDL Instantiation Template] をダブルク リ ッ ク します。

3. 表示された HDL インスタンシエーシ ョ ン テンプレート (dcm1.tfi) で、 次のインスタンシ

エーシ ョ ン テンプレート をコピーします。

4. コピーしたインスタンシエーシ ョ ン テンプレート を、 stopwatch.v ファ イルの次の行の下に

貼り付けます。

//Insert dcm1 instantiation here.

5. 次の図と同じになるよ うにコードを変更します。

6. [File] → [Save] をク リ ッ ク して、 stopwatch.v ファ イルを保存します。

dcm1 モジュールがデザイン階層のstopwatch モジュールの下に表示されます。

X-Ref Target - Figure 2-21

図 2-21 : dcm1 の VHDL インスタンシエーシ ョ ン

X-Ref Target - Figure 2-22

図 2-22 : dcm1 マクロとインスタンシエーシ ョ ン テンプレート

X-Ref Target - Figure 2-23

図 2-23 : dcm1 の Verilog インスタンシエーシ ョ ン

40 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 2 章 : HDL ベースのデザイン

デザインの合成

こ こまでは、 Xilinx Synthesis Technology (XST) を構文チェッ クに使用しました。 次に、 XST、Synplify/Synplify Pro または Precision Synthesis ソフ ト ウェアを使用してデザインを合成します。

これらの合成ツールでは、 デザインの HDL コードを使用してザイ リ ンクス インプ リ メンテーシ ョ

ン ツールでサポート されるネッ ト リ ス ト (EDIF または NGC) が生成されます。 ネッ ト リ ス トの生

成では、 通常次のプロセスが実行されます。 これらのプロセスは、 どの合成ツールでも さ らに細か

いプロセスに分かれています。

• 構文の解析/構文チェッ ク

ソース コードの構文をチェッ ク します。

• コンパイル

HDL コードを合成ツールで識別可能な一連のコンポーネン トに変換し、 適化します。

• マップ

コンパイル段階のコンポーネン ト をターゲッ ト テク ノ ロジのプリ ミ ティブ コンポーネン トに

変換します。

合成ツールは、 デザイン フローのどの段階でも変更できます。 合成ツールを変更するには、 次の手

順に従います。

1. [Design] パネルの [Hierarchy] ペインで、 デバイス名を選択します。

2. 右ク リ ッ ク して [Design Properties] をク リ ッ ク します。

3. [Design Properties] ダイアログ ボッ クスで、 [Synthesis Tool] フ ィールドのド ロ ップダウン リス トから使用する合成ツールを選択して、 [OK] をク リ ッ ク します。

メモ : 合成ツールがド ロ ップリ ス トに表示されない場合は、 そのツールがインス トールされて

いないか、 または ISE ソフ ト ウェアに統合されていない可能性があ り ます。 インス トールされ

ている合成ツールのパスを指定するには、 [Edit] → [Preferences] をク リ ッ ク し、 [Preferences]ダイアログ ボッ クスで [ISE General] を展開して [Integrated Tools] をク リ ッ ク します。

X-Ref Target - Figure 2-24

図 2-24 : 合成ツールの指定

ISE アドバンス チュート リアル japan.xilinx.com 41UG695 (v12.1) 2010 年 4 月 19 日

デザインの合成

デザイン フローを変更する と、インプ リ メンテーシ ョ ン データが削除されます。 このチュート リ ア

ルでは、インプリ メンテーシ ョ ン データは作成されていません。 インプ リ メンテーシ ョ ン データを

含むプロジェク トでは、 合成ツールを変更する前に [File] → [Copy Project] をク リ ッ ク してプロ

ジェク トのコピーを作成するこ とをお勧めします。

XST を使用した合成

この時点までで、デザインの作成および解析が完了しています。次に、デザインを合成します。 合成

では、HDL ファ イルがゲートに変換されて、 ターゲッ ト アーキテクチャに対して 適化されます。

次に、 XST を使用した合成で使用できるプロセスを示します。

• [View RTL Schematic]

RTL ネッ ト リ ス トの回路図を生成します。

• [View Technology Schematic]

テク ノ ロジ ネッ ト リ ス トの回路図を生成します。

• [Check Syntax]

HDL コードが正し く記述されているかを確認します。

• [Generate Post-Synthesis Simulation Model]

合成ネッ ト リ ス トに基づいて HDL シ ミ ュレーシ ョ ン モデルを作成します。

合成オプシ ョ ンの入力

合成オプシ ョ ンを使用する と、合成ツールでの 適化の実行をデザイン要件に応じて制御できます。

よ く使用されるオプシ ョ ンは、エリ アまたはスピードに基づいて 適化を実行するオプシ ョ ンです。

そのほかに、 フ リ ップフロ ップ出力の 大ファンアウ トの制御やデザインでの周波数の設定などの

オプシ ョ ンがあ り ます。

合成オプシ ョ ンを入力するには、 次の手順に従います。

1. [Design] パネルの [Hierarchy] ペインで、 stopwatch.vhd または stopwatch.v をク リ ッ ク

します。

2. [Processes] ペインで [Synthesize] を右ク リ ッ ク し、 [Process Properties] をク リ ッ ク します。

3. [Process Properties] ダイアログ ボッ クスの [Synthesis Options] ページで、 [Netlist Hierarchy]プロパティを [Rebuilt] に設定します。

4. [OK] をク リ ッ ク します。

デザインの合成

デザインを合成する準備が完了しました。 HDL コードから互換性のあるネッ ト リ ス ト を生成する

には、 次を実行します。

1. [Hierarchy] ペインで、 stopwatch.vhd または stopwatch.v をク リ ッ ク します。

2. [Processes] ペインで [Synthesize] をダブルク リ ッ ク します。

42 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 2 章 : HDL ベースのデザイン

RTL/Technology Viewer の使用

入力した HDL コードの回路図表現を生成できます。 コードを回路図で表示する と、 XST で推論さ

れたさまざまなコンポーネン ト間の接続がグラフ ィカルに表示されるので、 デザインを解析しやす

くなり ます。 回路図には、 次の 2 つの形式があ り ます。

• RTL 表示

HDL コードの 適化前の回路図表示

• テク ノ ロジ表示

ターゲッ ト テク ノ ロジにマップされた HDL デザインの合成後の回路図表示

HDL コードの回路図を表示するには、 次の手順に従います。

1. [Processes] ペインで [Synthesize] を展開し、 [View RTL Schematic] または [View TechnologySchematic] をダブルク リ ッ ク します。

2. [Set RTL/Tech Viewer Startup Mode] ダイアログが表示されたら、 [Start with the ExplorerWizard] をク リ ッ ク します。

3. [Create RTL Schematic] ページで、 [Available Elements] リ ス トから clk_divider および

lap_load_debounce コンポーネン ト を選択し、 [Add] ボタンをク リ ッ ク して選択した項目を

[Selected Elements] に移動します。

4. [Create Schematic] をク リ ッ ク します。X-Ref Target - Figure 2-25

図 2-25 : [Create RTL Schematic] ページ

ISE アドバンス チュート リアル japan.xilinx.com 43UG695 (v12.1) 2010 年 4 月 19 日

デザインの合成

RTL Viewer では、デザインの一部のみを回路図と して表示できます。 表示されている回路図でシン

ボルをダブルク リ ッ クする と、そのシンボルの下位階層が表示され、デザインエレ メ ン トおよびそ

の接続を確認できます。 回路図を右ク リ ッ クする と、 回路図で実行可能な操作コマンドが表示され

ます。

XST での合成が完了し、 stopwatch デザインの NGC ファイルが生成されました。

HDL フローを継続するには、 次のいずれかの操作を実行します。

• 第 4 章 「ビヘイビア シ ミ ュレーシ ョ ン」 を参照して合成前のシ ミ ュレーシ ョ ンを実行します。

• 第 5 章 「デザイン インプ リ メンテーシ ョ ン」 を参照して配置配線を実行します。

メモ : XST の制約、 オプシ ョ ン、 レポート、 およびコマンド ラインの使用に関する詳細は、 『XSTユーザー ガイ ド』を参照して ください。 このガイ ドは ISE ソフ ト ウェア マニュアル コレクシ ョ ンに

含まれています。ソフ ト ウェア マニュアル コレクシ ョ ンを開くには、[Help] → [Software Manuals]をク リ ッ クするか、 ザイ リ ンクスの Web サイ トのソフ ト ウェア マニュアル コレクシ ョ ンにアクセ

スします。

X-Ref Target - Figure 2-26

図 2-26 : RTL 回路図

44 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 2 章 : HDL ベースのデザイン

Synplify/Synplify Pro ソフ トウェアを使用したデザインの合成

この時点までで、デザインの作成および解析が完了しています。次に、デザインを合成します。 合成

では、HDL ファ イルがゲートに変換されて、 ターゲッ ト アーキテクチャに対して 適化されます。

Synplify ソフ ト ウェアの RTL Viwer および制約エディ タにアクセスするには、Synplify ソフ ト ウェ

アをスタンドアロンで実行する必要があ り ます。

Synplify および Synplify Pro ソ フト ウェアを使用した合成で使用できるプロセスは、 次のと おり

です。

• [View Synthesis Report]

適化のレポートおよびマップ/タイ ミ ング サマリ を表示します。

• [View RTL Schematic]

[Launch Tools] の下にあ り、 HDL コードを回路図で表示します。

• [View Technology Schematic]

[Launch Tools] の下にあ り、ターゲッ ト テク ノ ロジに関連するプリ ミ ティブにマップされてい

る HDL コードを回路図で表示します。

合成オプシ ョ ンの入力とデザインの合成

グローバル合成オプシ ョ ンを設定してデザインを合成するには、 次の手順に従います。

1. [Design] パネルの [Hierarchy] ペインで、 stopwatch.vhd または stopwatch.v を選択します。

2. [Processes] ペインで [Synthesize] を右ク リ ッ ク し、 [Process Properties] をク リ ッ ク します。

3. [Process Properties] ダイアログ ボッ クスの [Synthesis Options] ページで、 [Write VendorConstraint File] をオンにします。

4. [OK] をク リ ッ ク します。

5. [Processes] タブで [Synthesize] をダブルク リ ッ ク して合成を実行します。

メモ : ファ イルの指定後に [Processes] ペインで [Synthesize] をク リ ッ ク してから [Process] →[Run] をク リ ッ クするか、 または [Synthesize] を右ク リ ッ ク して [Run] をク リ ッ ク しても この

プロセスを実行できます。

合成結果の確認

全般的な合成結果を表示するには、 [Synthesize] の下にある [View Synthesis Report] をダブルク

リ ッ ク します。 このレポートには、 次のセクシ ョ ンが含まれています。

• 「コンパイラ レポート 」

• 「マップ レポート 」

• 「タ イ ミ ング レポート 」

• 「 リ ソース使用率」

コンパイラ レポート

コンパイルされたすべての HDL ファ イル名のリ ス ト、 上位ファイルの名前、および各ファイルの

構文チェッ クがレポート されます。 また、 FSM の抽出、 推論されたメモ リ、 ラ ッチでの警告、 未使

用のポート、 および不要なロジッ クの削除もレポート されます。

ISE アドバンス チュート リアル japan.xilinx.com 45UG695 (v12.1) 2010 年 4 月 19 日

デザインの合成

メモ : ブラ ッ ク ボッ クス (デザイン環境に読み込まれていないモジュール) は、 Synplify では常に

「unbound」 と示されます。 ブラ ッ ク ボッ クスを表すネッ ト リ ス ト (.ngo、 .ngc、または .edn) がプロ

ジェク ト ディ レク ト リに存在していれば、インプ リ メンテーシ ョ ン ツールでこのネッ ト リ ス トが変

換プロセス中にデザインに統合されます。

マップ レポート

使用した制約ファイル、 ターゲッ ト テク ノ ロジ、 設定されている属性がレポート されます。 フラ ッ

ト化されたインスタンス、抽出されたカウンタ、 適化されたフ リ ップフロ ップ、作成されたクロ ッ

クおよびバッファ付きネッ トのマップ結果、 および FSM のエンコード方式が記述されます。

タイ ミング レポート

入力した制約および制約がないデザイン部分の遅延についての詳細情報がレポート されます。 遅延

値は、 ワイヤロード モデルに基づいた概算値です。 よ り正確な遅延情報は、第 5 章 「デザイン イン

プ リ メンテーシ ョ ン」 に示されている配置配線後のタイ ミ ング レポート を参照して ください。

リソース使用率

ターゲッ ト テク ノ ロジで使用される リ ソースすべてが示されます。

これで Synplify での合成が完了し、 stopwatch デザインの EDN ファ イルが生成されました。

HDL フローを継続するには、 次のいずれかの操作を実行します。

• 第 4 章 「ビヘイビア シ ミ ュレーシ ョ ン」 を参照して合成前のシ ミ ュレーシ ョ ンを実行します。

• 第 5 章 「デザイン インプ リ メンテーシ ョ ン」 を参照して配置配線を実行します。

Precision Synthesis を使用した合成

この時点までで、デザインの作成および解析が完了しています。次に、デザインを合成します。 合成

では、HDL ファ イルがゲートに変換されて、 ターゲッ ト アーキテクチャに対して 適化されます。

次に、 Precision ソフ ト ウェアを使用した合成で使用できるプロセスを示します。

• [Check Syntax]

HDL コードの構文をチェッ ク します。

• [View Log File]

適化のレポートおよびマップ/タイ ミ ング サマリ を表示します。

• [View RTL Schematic]

[Launch Tools] の下にあ り、 HDL コードを回路図で表示します。

X-Ref Target - Figure 2-27

図 2-27 : タイ ミングの予測データ (Synplify)

46 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 2 章 : HDL ベースのデザイン

• [View Technology Schematic]

[Launch Tools] の下にあ り、ターゲッ ト テク ノ ロジに関連するプリ ミ ティブにマップされてい

る HDL コードを回路図で表示します。

• [View Critical Path Schematic]

[Launch Tools] の下にあ り、ターゲッ ト テク ノ ロジに関連するプリ ミ ティブにマップされてい

る HDL コードのク リ ティカル パスが回路図で表示されます。

合成オプシ ョ ンの入力とデザインの合成

合成オプシ ョ ンを使用する と、合成ツールでの 適化の実行をデザイン要件に応じて制御できます。

このチュート リ アルでは、 デフォルトのプロパティ設定を使用します。

デザインを合成するには、 次の手順に従います。

1. [Design] パネルの [Hierarchy] ペインで、 stopwatch.vhd または stopwatch.v をク リ ッ ク

します。

2. [Processes] ペインで [Synthesize] プロセスをダブルク リ ッ ク します。

RTL/Technology Viewer の使用

入力した HDL コードの回路図表現を生成できます。 コードを回路図で表示する と、 Precision で推

論されたさまざまなコンポーネン ト間の接続がグラフ ィカルに表示されるので、 デザインを解析し

やすくなり ます。 RTL Viewer でデザインを表示するには、 [View RTL Schematic] プロセスをダブ

ルク リ ッ ク します。 次の図に、 RTL Viewer に表示されるデザインを示します。

これで合成が完了し、 stopwatch デザインの EDN ファ イルが生成されました。

HDL フローを継続するには、 次のいずれかの操作を実行します。

• 第 4 章 「ビヘイビア シ ミ ュレーシ ョ ン」 を参照して合成前のシ ミ ュレーシ ョ ンを実行します。

• 第 5 章 「デザイン インプ リ メンテーシ ョ ン」 を参照して配置配線を実行します。

X-Ref Target - Figure 2-28

図 2-28 : Precision Synthesis の RTL Viewer に表示される stopwatch デザイン

ISE アドバンス チュート リアル japan.xilinx.com 47UG695 (v12.1) 2010 年 4 月 19 日

第 3 章

回路図ベースのデザイン

この章は、 次のセクシ ョ ンから構成されています。

• 「回路図ベースのデザインの概要」

• 「入門」

• 「デザインの概要」

• 「デザイン入力」

回路図ベースのデザインの概要

この章では、 stopwatch デザインを使用して、 回路図に基づく典型的な FPGA デザインの手順を説

明します。 このチュート リ アルで使用されるデザイン例では、 今後のデザイン作成に応用可能なデ

バイスのさまざまな機能、 ソフ ト ウェアの機能、 およびデザイン フローが示されています。 このデ

ザインには Spartan™-3A デバイスが使用されていますが、こ こで説明する原則およびフローは、注

記がない限りすべてのザイ リ ンクス デバイス ファ ミ リに応用できます。

この章は、 「回路図デザイン フロー」 の第 1 ステップです。 このチュート リ アルの 初の部分では、

ISE® のデザイン入力 ツールを使用してデザインを完成させます。 このデザインは、 回路図エレ メ

ン ト 、CORE Generator™ ソフ ト ウェア コンポーネン ト、および HDL マクロで構成されています。

この章で正し くデザインを定義した後に、 ビヘイビア シ ミ ュレーシ ョ ン (第 4 章 「ビヘイビア シミ ュレーシ ョ ン」)、ザイ リ ンクス インプ リ メンテーシ ョ ン ツールを使用したインプ リ メンテーシ ョ

ン (第 5 章 「デザイン インプリ メンテーシ ョ ン」 )、 タ イ ミ ング シ ミ ュレーシ ョ ン (第 6 章 「タイ ミ

ング シ ミ ュレーシ ョ ン」 )、および Spartan-3A (XC3S700A) デモ ボードへのコンフ ィギュレーシ ョ

ンおよびダウンロード (第 7 章 「iMPACT チュート リ アル」 ) を実行します。

48 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

入門

次に、 このチュート リ アルを実行するのに必要な条件を示します。

必要なソフ トウェア

このチュート リ アルを実行するには、ザイ リ ンクス ISE Design Suite 12 がインス トールされている

必要があ り ます。 このデザインでは、Spartan-3A デバイス ラ イブラ リおよびデバイス ファ イルをイ

ンス トールする必要があ り ます。

このチュート リ アルでは、 ソフ ト ウェアがデフォルトのディ レク ト リ c:\xilinx\12.1\ISE_DS\ISE にインス トールされているこ とを前提と しています。 ソフ ト ウェ

アを別のディ レク ト リにインス トールしている場合は、 そのインス トール パスと置き換えてこの

チュート リ アルを実行してください。

メモ : ソフ ト ウェアのインス トール方法に関する詳細は、ザイ リ ンクス Web サイ トの 『ISE DesignSuite 12 : インス トール、 ラ イセンス、 リ リース ノート 』 を参照してください。

チュート リアル プロジェク ト ファイルのダウンロード

チュート リ アル プロジェク ト ファ イルは、ザイ リ ンクス Web サイ トの ISE Design Suite 12 チュー

ト リ アル ページからダウンロードできます。 回路図デザイン ファ イル (wtut_sc.zip) をダウン

ロード してください。 このファ イルには、 次の 2 つのディ レク ト リが含まれています。

• wtut_sc

回路図チュート リ アルのソース ファ イルが含まれます。 チュート リ アル プロジェク トはこの

ディ レク ト リに作成します。

• wtut_sc\wtut_sc_completed

回路図、 HDL、 ステート マシン ファ イルを含む完成したチュート リ アルのデザイン ファ イル

が含まれます。

メモ : このディ レク ト リに含まれるファ イルは上書きしないでください。

ダウンロード したファ イルを解凍する と、回路図チュート リ アル ファ イルがそのディ レク ト リにコ

ピーされます。 このチュート リ アルでは、c:\xilinx\12.1\ISE_DS\ISE\ISEexamples でファ

イルが解凍されているこ とを前提と していますが、読み出し /書き込み権限があればどのディ レク ト

リに解凍してもかまいません。 別のディ レク ト リにファ イルを解凍した場合は、 そのプロジェク ト

パス と置き換えてチュート リ アルを実行してください。

ISE ソフ トウェアの起動

ISE ソフ ト ウェアを起動するには、デスク ト ップの [Xilinx ISE 12.1] アイコンをダブルク リ ッ クす

るか、または [スタート ] → [すべてのプログラム] → [Xilinx ISE Design Suite 12.1] → [ISE デザイ

ン ツール] → [Project Navigator] をク リ ッ ク します。X-Ref Target - Figure 3-1

図 3-1 : デスク ト ップの [Xilinx ISE 12.1] アイコン

ISE アドバンス チュート リアル japan.xilinx.com 49UG695 (v12.1) 2010 年 4 月 19 日

デザインの概要

新規プロジェク トの作成

New Project Wizard を使用して新規プロジェク ト を作成するには、 次の手順に従います。

1. Project Navigator で、 [File] → [New Project] をク リ ッ ク します。

2. [Location] で、c:\xilinx\12.1\ISE_DS\ISE\ISEexamples またはプロジェク ト を配置し

たディ レク ト リ を選択します。

3. [Name] に 「wtut_sc」 と入力します。

4. [Top-level source type] を [Schematic] に設定し、 [Next] をク リ ッ ク します。

5. [Project Settings] ページで、 次のよ うに値を設定します。

♦ [Product Category] : [All]

♦ [Family] : [Spartan3A and Spartan3AN]

♦ [Device] : [XC3S700A]

♦ [Package] : [FG484]

♦ [Speed] : [-4]

♦ [Synthesis Tool] : [XST (VHDL/Verilog)]

♦ [Simulator] : [ISim (VHDL/Verilog)]

♦ [Preferred Language] : [VHDL] または [Verilog]こ こで選択した言語が、 HDL ファ イルを生成するすべてのプロセスのデフォルト言語に

なり ます。

その他のプロパティはデフォルト値のままにします。

6. [Next] をク リ ッ ク して [Project Summary] ページで [Finish] をク リ ッ ク し、 プロジェク トの作

成を完了します。

チュート リアルの中止

チュート リ アルを中止する場合は、 [File] → [Save All] をク リ ッ ク して作業中のファイルを保存し

てください。

デザインの概要

このチュート リ アルに使用されるデザインは、 回路図に基づく階層デザインで、 上位デザイン

ファ イルである回路図シート から複数の下位マク ロが参照されます。 下位のマク ロは、 回路図モ

ジュール、 CORE Generator ソフ ト ウェア モジュール、 Architecture Wizard モジュール、 および

HDL モジュールなど、 さまざまなモジュールから構成されています。

stopwatch デザインは、未完成のデザインです。 このチュート リ アルでは、モジュールを作成したり

既存のファイルを編集したり して、デザインを完成させます。 この章では、これらのモジュールを作

成し、 インスタンシエート して、 接続します。 完成したデザインの回路図を次の図に示します。

50 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

デザインが完成したら、 シ ミ ュレーシ ョ ンを実行してその機能を検証します。 シ ミ ュレーシ ョ ンの

詳細は、 第 4 章 「ビヘイビア シ ミ ュレーシ ョ ン」 を参照してください。

このデザインには、5 個の外部入力と 4 個の外部出力があ り ます。 次に、入力信号および出力信号の

サマ リ を示します。

入力

次は、 stopwatch デザインの入力信号です。

• strtstop

ス ト ップウォッチを開始、停止します。 アクティブ Low 信号で、ス ト ップウォッチの開始/停止

ボタンと同じ動作をします。

• reset

ス ト ップウォッチをク ロ ッ ク モードにして、 時間を 0:00:00 にリセッ ト します。

• clk

外部で生成されるシステム ク ロ ッ クです。

X-Ref Target - Figure 3-2

図 3-2 : 完成した stopwatch デザインの回路図

ISE アドバンス チュート リアル japan.xilinx.com 51UG695 (v12.1) 2010 年 4 月 19 日

デザインの概要

• mode

ク ロ ッ ク モード と タイマー モードを切り替えます。 ク ロ ッ クまたはタイマーが動作していな

いと きにのみ有効になり ます。

• lap_load

2 つの機能を持つ信号で、 ク ロ ッ ク モードでは Lap ディ スプレイに現在のクロ ッ ク値を表示

し、タイマー モードではタイマーが動作していないと きに ROM からプ リセッ ト値をタイマー

ディ スプレイに読み込みます。

出力

次は、 デザインの出力信号です。

• lcd_e, lcd_rs, lcd_rw

ス ト ップウォッチの時間を表示するために使用される Spartan-3A デモ ボードの LCD ディ ス

プレイを制御する信号です。

• sf_d[7:0]

LCD ディ スプレイ用にデータ値を供給します。

論理ブロック

完成デザインは、次の論理ブロ ッ ク から 構成さ れています。 こ れら のブロッ ク のほと んどは、こ の

チュート リ アルで作成して回路図に追加するまで、 プロジェク ト の回路図シート には表示さ れま

せん。

• clk_div_262k

ク ロ ッ ク周波数を 262,144 で分周するマクロです。26.2144MHz のクロ ッ クをデューティ サイ

クル 50% で 100 Hz のクロ ッ クに変換します。

• dcm1

内部フィードバッ ク、周波数を調整した出力、およびデューティ サイクル調整を含む ClockingWizard マクロです。 CLKFX_OUT 出力は、Spartan-3A デモ ボードの 50MHz を 26.2144MHzに変換します。

• debounce

strtstop、 mode、 lap_load 入力信号のデバウンス回路をインプ リ メン トするモジュールです。

• lcd_control

LCD ディ スプレイの初期化と出力を制御するモジュールです。

• statmach

ス ト ップウォッチの状態を制御するステート マシン モジュールです。

• timer_preset

CORE Generator ソフ ト ウェアの 64X20 ROM です。 このマクロには、 タイマーに読み込む

0:00:00 ~ 9:59:99 の 64 個のプリセッ ト時間が含まれています。

• time_cnt

0:00:00 ~ 9:59:99 の 10 進値をカウン トするアップ/ダウン カウンタ モジュールで、 ス ト ップ

ウォッチの時間の各桁を表す 4 ビッ トの出力が 5 つあり ます。

52 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

デザイン入力

この階層デザインでは、回路図ベースのマクロ、HDL ベースのマクロ、および CORE Generator ソフ ト ウェア マクロなど、 さまざまなマクロを作成します。 各マクロを作成後に、 これらを接続して

stopwatch デザインを完成させます。 このチュート リ アルで使用する手順は、今後作成するデザイン

に応用できます。

ソース ファイルの追加

デザインを編集、合成、 インプ リ メン トするには、 その前にソース ファ イルがプロジェク トに追加

されている必要があ り ます。 次に示すよ うに、6 つのソース ファ イルをプロジェク トに追加します。

1. [Project] → [Add Source] をク リ ッ ク します。

2. 次のファイルをプロジェク ト ディ レク ト リから選択し、 [Open] をク リ ッ ク します。

♦ cd4rled.sch

♦ ch4rled.sch

♦ clk_div_262k.vhd

♦ lcd_control.vhd

♦ stopwatch.sch

♦ statmach.vhd

3. [Adding Source Files] ダイアログ ボッ クスで、 ファ イルが [All] に関連付けられており、 関連

付けられたライブラ リが [work] であるこ とを確認してから、 [OK] をク リ ッ ク します。

[Design] パネルの [Hierarchy] ペインには、 現在プロジェク トに加えられているすべてのソース

ファイルが、 関連付けられているエンティティ名またはモジュールの名と共に表示されます。

ザイリンクス Schematic Editor で回路図ファイルを開く

stopwatch の回路図は、未完成の wtut_sc プロジェク トに含まれています。 このチュート リ アルで

は、 Schematic Editor で回路図を更新します。 ISE ソフ ト ウェアでプロジェク ト を作成し、 ソース

ファイルを加える と、stopwatch.sch ファ イルを開いて編集できます。 回路図ファイルを開くに

は、 [Design] パネルの [Hierarchy] ペインで stopwatch.sch をダブルク リ ッ ク します。

ISE アドバンス チュート リアル japan.xilinx.com 53UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

ワークスペースに stopwatch の回路図が表示されます。 次の図に示すよ うに、 未完成のデザインが

エレ メン ト と共に右下に表示されます。

ウィンドウの表示の変更

[View] メニュー コマンドを使用する と、回路図の表示を変更できます。 [View] → [Zoom] → [In] をク リ ッ クする と、 回路図を拡大表示できます。

[Window] → [Float] をク リ ッ クする と、Project Navigator から回路図ウ ィンド ウを切り離して別の

ウ ィンド ウ と して表示できます。

切り離した回路図ウ ィンド ウは、 [Window] → [Dock] をク リ ッ クする と元に戻すこ とができます。

回路図ベースのマクロの作成

回路図ベースのマクロは、シンボルとそれを表す回路図から構成されます。 いずれかを作成する と、

も う一方のファイルを自動的に作成できます。

次に、 [New Source] コマンドを使用して回路図ベースのマクロを作成します。 空の回路図ファイル

が作成され、 このファイルで適切なロジッ クを定義できます。 作成されたマクロは、 自動的にプロ

ジェク トのライブラ リに追加されます。

作成するマクロ名は、 time_cnt です。 このマクロは、 ス ト ップウォッチの各桁を表す 4 ビッ ト出力

が 5 つあるバイナリ カウンタです。

X-Ref Target - Figure 3-3

図 3-3 : 未完成の stopwatch 回路図

54 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

回路図ベースのマクロを作成するには、 次の手順に従います。

1. [Project] → [New Source] をク リ ッ ク します。

New Source Wizard が開き、 使用可能なソース タイプの一覧が表示されます。

2. ソース タイプと して [Schematic] を選択します。

3. [File name] に 「time_cnt」 と入力します。

4. [Next] をク リ ッ ク し、 次のダイアログ ボッ クスで [Finish] をク リ ッ ク します。

回路図 time_cnt.sch が作成されてプロジェク トに追加され、 ワークスペースに開きます。

5. 次の手順に従って、 回路図シートのサイズを変更します。

♦ 回路図を右ク リ ッ ク し、 [Object Properties] をク リ ッ ク します。

♦ シート サイズ値の右側にある矢印をク リ ッ ク し、 [D = 34 x 22 in] を選択します。

♦ [OK] をク リ ッ ク します。 シート サイズの変更は [Edit] → [Undo] オプシ ョ ンで元に戻す

こ とができないこ とを示す警告メ ッセージが表示されたら、 [Yes] をク リ ッ ク します。

time_cnt 回路図の定義

time_cnt の空の回路図を作成したら、 time_cnt マクロを構成するコンポーネン ト を追加します。 このマク ロ シンボルを回路図シートに配置する と、 このマク ロが参照されます。

I/O マーカーの追加

I/O マーカーを使用する と、マクロまたは 上位にあるポート を定義できます。 シンボルの回路図に

は、 シンボルの各ピンに対応するコネク タが含まれる必要があ り ます。 I/O マーカーを time_cnt に追加して、 マク ロのポート を定義します。

X-Ref Target - Figure 3-4

図 3-4 : [New Source Wizard] の [Select Source Type] ページ

ISE アドバンス チュート リアル japan.xilinx.com 55UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

I/O マーカーを追加するには、 次の手順に従います。

1. [Tools] → [Create I/O Markers] をク リ ッ ク します。

[Create I/O Markers] ダイアログ ボッ クスが表示されます。

2. [Inputs] ボッ クスに 「q(19:0),load,up,ce,clk,clr」 と入力します。

3. [Outputs] ボッ クスに 「hundredths(3:0),tenths(3:0),sec_lsb(3:0),sec_msb(3:0),minutes(3:0)」 と

入力します。

4. [OK] をク リ ッ ク します。

11 個の I/O マーカーが回路図に追加されます。

メモ : [Create I/O Markers] コマンドは、 空の回路図シートでのみ使用できます。 [Add] → [I/OMarker] をク リ ッ ク してネッ ト を選択する と、 いつでもネッ トに I/O マーカーを追加できます。

回路図コンポーネン トの追加

デバイ スおよびプロ ジェ ク ト の ラ イブラ リ に含まれる コ ンポーネン ト は、 そのシンボルを

[Symbols] パネルを使用して回路図に配置できます。 [Symbols] パネルに表示される使用可能なコ

ンポーネン トの一覧は、 各ライブラ リでアルファベッ ト順に表示されます。

回路図コンポーネン ト を追加するには、 次の手順に従います。

1. [Add] → [Symbol] をク リ ッ クするか、またはツールバーの [Add Symbol] ボタンをク リ ッ ク し

ます。

X-Ref Target - Figure 3-5

図 3-5 : [Create I/O Markers] ダイアログ ボックス

X-Ref Target - Figure 3-6

図 3-6 : ツールバーの [Add Symbol] ボタン

56 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

回路図の左側の [Options] パネルが表示されているエ リアに、[Symbols] パネルが開き、ライブ

ラ リおよび対応するコンポーネン トが表示されます。

メモ : [Options] パネルは、 回路図で実行する動作によって変化します。

2. cd4rled (クロ ッ ク イネーブルおよび同期ク リ ア付きロード可能、双方向 4 ビッ ト BCD カウン

タ) を配置します。 次のいずれかの方法を使用して、 cd4rled コンポーネン ト を選択します。

♦ [Symbols] パネルの [Categories] でプロジェク ト ディ レク ト リ を選択し、 [Symbols] で[cd4rled] をク リ ッ ク します。

♦ [Categories] で [All Symbols] 選択し、 [Symbol Name Filter] に 「cd4rled」 と入力します。

3. マウスを回路図ウ ィンド ウに移動します。

カーソルが cd4rled のシンボルに変化します。

4. シンボルの輪郭をシートの上部中央に移動してク リ ッ ク し、 オブジェク ト を配置します。

メモ : Ctrl + R キーを押すこ とによ り、 回路図に追加するコンポーネン ト を回転できます。 既に配置されているコンポーネン ト も、 コンポーネン ト を選択した後に Ctrl + R キーを押すと回

転できます。

X-Ref Target - Figure 3-7

図 3-7 : [Symbols] パネル

ISE アドバンス チュート リアル japan.xilinx.com 57UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

5. 同様にして、さ らに 3 つの cd4rled シンボルを回路図に配置します。 次の図を参照してく ださい。

6. 手順 1 ~ 5 を繰り返して、 次のコンポーネン ト を回路図シートに配置します。

♦ and2b1

♦ ch4rled

♦ and5

配置する位置は、 図 3-8 を参照してください。

7. シンボルの入力を終了するには、 Esc キーを押します。

ザイ リ ンクス ラ イブラ リ コンポーネン トの機能の詳細を表示するには、コンポーネン ト を右ク リ ッ

ク して [Object Properties] をク リ ッ ク し、[Object Properties] ダイアログ ボッ クスで [Symbol Info]をク リ ッ ク します。 シンボルの情報は、ライブラ リ ガイ ドでも参照できます。 このガイ ドは、ISE ソフ ト ウェア マニュアル コレクシ ョ ンに含まれています。 ソフ ト ウェア マニュアル コレクシ ョ ンを

開くには、[Help] → [Software Manuals] をク リ ッ クするか、ザイ リ ンクス Web サイ トのソフ ト ウェ

ア マニュアル コレクシ ョ ンにアクセスします。

X-Ref Target - Figure 3-8

図 3-8 : 一部が完成した time_cnt の回路図

58 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

間違った配置の修正

コンポーネン ト を間違って配置した場合、 次のよ うに簡単に移動または削除できます。

• コンポーネント を移動するには、 コンポーネント をク リ ッ ク し てウ ィ ンド ウ内でド ラ ッ グし

ます。

• 配置済みのコンポーネン ト を削除するには、 次のいずれかの方法を使用します。

♦ コンポーネン ト をク リ ッ ク し、 Delete キーを押します。

♦ コンポーネン ト を右ク リ ッ ク し、 [Delete] をク リ ッ ク します。

ワイヤの描画

ワイヤ (ネッ ト ) を描画して、 回路図内に配置されたコンポーネン ト を接続できます。 次の手順に従

い、time_cnt 回路図上の AND2B1 コンポーネン ト と 上部 cd4rled コンポーネン トの間にワイヤを

描画します。

1. [Add] → [Wire] をク リ ッ クするか、またはツールバーの [Add Wire] ボタンをク リ ッ ク します。

2. AND2B1 の出力ピンをク リ ッ ク し、cd4rled コンポーネン トの CE ピンをク リ ッ ク して、 この 2つのピン間にネッ ト を描画します。

3. AND5 コンポーネン トの出力と AND2B1 コンポーネン トの反転入力を接続するネッ ト を描画

します。 AND2B1 のも う 1 つの入力は、 ce 入力 I/O マーカーに接続します。

4. 図 3-8 に図示されているよ うに、load、up、clk、clr 入力 I/O マーカーを 5 つのカウンタ ブロ ッ

クの L、 UP、 C、 R ピンにそれぞれ接続し、 初の 4 つのカウンタの CEO ピンを次のカウン

タの CE ピンに接続します。

ネッ トの形を指定するには、 次の手順に従います。

1. ネッ ト を描画する方向にマウスを移動します。

2. 任意の位置でク リ ッ クする と ワイヤを 90 度曲げるこ とができます。

メモ : 既存のネッ ト とピンの間にネッ ト を描画するには、 コンポーネン トのピンをク リ ッ ク した後

に既存のネッ ト をク リ ッ ク します。 既存のネッ トに接続を示す点が描画されます。

バスの追加

Schematic Editor では、バスは多ビッ ト名を持つワイヤと して示されます。 バスを追加するには、ま

ずワイヤを追加し、その後多ビッ ト名を追加します。 バスを作成したら、オプシ ョ ンで [Bus Tap] コマンドを使用し、 バスの信号の 1 ビッ ト を取り出すこ と もできます。

次に、 time_cnt 回路図の 5 つの出力それぞれにバスを作成します。 これらのバスは、 完成した回路

図に含まれています。

回路図に hundredths(3:0)、 tenths(3:0)、 sec_lsb(3:0)、 sec_msb(3:0)、 minutes(3:0) バスを追加する

には、 次の手順に従います。

1. 出力 I/O マーカーすべてを囲むボッ クスを描いてそれらを選択し、 minutes(3:0) が 下位のカ

ウンタ ブロッ クの Q3 出力よ り も下になるよ うに、 ド ラ ッグして移動します。

2. [Add] → [Wire] をク リ ッ クするか、またはツールバーの [Add Wire] ボタンをク リ ッ ク します。

X-Ref Target - Figure 3-9

図 3-9 : ツールバーの [Add Wire] ボタン

ISE アドバンス チュート リアル japan.xilinx.com 59UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

3. 1 番上の cd4rled の右上部の空白部分をク リ ッ ク し、 I/O マーカー hundredths(3:0) のピンをク

リ ッ ク します。 I/O マーカーと同じ名前のバスを表す太い線が描画されます。

4. 残りの 4 つのバスに対し、 手順 2 ~ 3 を繰り返します。

5. バスを 5 つ追加したら、 Esc キーを押すか、 またはバスの終了点を右ク リ ッ ク して [Add Wire]モードを終了します。

バス タ ップの追加

次に、cd4rled および ch4rled カウンタのピンをバスに接続するネッ ト を追加します。 バス タ ップを

使用してバスの 1 ビッ ト を取り出し、 別のコンポーネン トに接続します。

メモ : 回路図を拡大表示する と、 ネッ ト をよ り正確に描画できます。

各バスの 1 ビッ ト を取り出すには、 次の手順に従います。

1. [Add] → [Bus Tap] をク リ ッ クするか、 またはツールバーの [Add Bus Tap] ボタンをク リ ッ ク

します。

カーソルがバス タ ップの形に変化します。

2. [Options] パネルの [Add Bus Tap Options] で、バス タ ップの方向を [--< Right] に設定します。

3. カーソルの中央のバーで hundreths(3:0) バスをク リ ッ ク します。

[Options] パネルの [Selected Bus Name] と [Net Name] に値が自動的に挿入されます。

メモ : ネッ ト名のインデッ クス値は、[Net Name] ボッ クスの横にある矢印ボタンをク リ ッ ク し

て、 増やしたり減らした りできます。

4. [Net Name] の値が hundredths(3) の状態で、 タ ップの先が 1 番上の cd4rled コンポーネン トの

Q3 ピンに触れるよ うにカーソルを移動します。

メモ : カーソルを正しい位置に移動する と、 ピンの周りに 4 つの正方形が表示されます。

X-Ref Target - Figure 3-10

図 3-10 : バスの追加

X-Ref Target - Figure 3-11

図 3-11 : ツールバーの [Add Bus Tap] ボタン

60 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

5. カーソルを正しい位置に移動したら、 1 回ク リ ッ ク します。

タ ップが hundredths(3:0) バスに接続され、hundreths(3) という名前のワイヤがタ ップと Q3 ピンの間に描画されます。

Q2、Q1、Q0 の各ピンを順にク リ ッ ク して、hundredths(3:0) の残りのビッ トにタ ップを作成し

ます。

6. 残りの 4 つのバスに対して手順 3 ~ 5 を繰り返します。

メ モ : バス と ワ イヤの間は、 ワ イヤ名を付ける こ と によ って電気的に接続されます (例 :sec_msb(2) と sec(3:0) の 3 番目のビッ ト )。 バス タ ップは、 表示目的のみで使用されます。 次のセクシ ョ ンで、 ネッ ト名を追加してその他のコンポーネン ト を電気的に接続します。

7. Esc キーを押して、 [Add Bus Tap] コマンドを終了します。

8. 作成した time_cnt 回路図と図 3-13 を比較して、 すべてが正し く接続されているこ とを確認し

ます。

ネッ ト名の追加

まず、AND5 コンポーネン トの 5 つの入力と、各カウンタ ブロ ッ クの TC ピンに、未接続のワイヤ

を追加します。

次に、 ワイヤにネッ ト名を追加します。 ネッ ト名を追加するには、 次の手順に従います。

1. [Add] → [Net Name] をク リ ッ クするか、またはツールバーの [Add Net Name] ボタンをク リ ッ

ク します。

2. [Options] パネルの [Add Net Name Options] で、 次の手順を実行します。

a. [Name] に 「tc_out0」 と入力します。

b. [Increase the name] をオンにします。

入力したネッ ト名 tc_out0 がカーソルに表示されます。

3. AND5 コンポーネン トの 1 番上の入力に接続されているネッ ト をク リ ッ ク します。

これでネッ ト名がネッ トに付けられます。 ネッ ト名は、 ネッ トのエンドポイン ト以外の位置に

配置する と、 ネッ トの上部に表示されます。

4. AND5 の残りの入力ネッ ト を順にク リ ッ ク して、 tc_out1、 tc_out2、 tc_out3、 tc_out4 を追加し

ます。

ネッ ト に名前を追加するたびに、 名前のインデッ ク ス値が増加します。 初のネッ ト 名を

tc_out4 と して [Decrease the name] をオンにする と、 インデッ クス値は減少します。

5. 手順 2 を繰り 返して、TC 出力に接続されている各ネッ ト を順にク リ ッ ク して、tc_out0、tc_out1、tc_out2、 tc_out3、 tc_out4 を追加します。

メモ : 同一名のワイヤ同士は、 電気的に接続されます。 この場合、 ネッ ト を論理的に接続する

ために、 回路図で物理的に接続する必要はあ り ません。

X-Ref Target - Figure 3-12

図 3-12 : ツールバーの [Add Net Name] ボタン

ISE アドバンス チュート リアル japan.xilinx.com 61UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

後に、 次の手順に従ってカウンタの入力ピンをネッ ト名を付けるこ とによ り接続します。

1. [Add] → [Wire] をク リ ッ クするか、またはツールバーの [Add Wire] ボタンをク リ ッ ク して、各

カウンタの 4 つのデータ ピンに未接続のワイヤを追加します。

2. [Add] → [Net Name] をク リ ッ クするか、またはツールバーの [Add Net Name] ボタンをク リ ッ

ク します。

3. [Options] パネルの [Add Net Name Options] で、 [Name] に 「q(0)」 と入力します。

4. [Increase the Name] をオンにします。

入力したネッ ト名 「q(0)」 がカーソルに表示されます。

5. データ入力に接続されているネッ ト を上から順にク リ ッ ク し、 1 番上のカウンタの D0 ピンに

q(0) とい う名前が付けられ、1 番下のカウンタの D3 ピンに q(19) という名前が付けられるよ う

にします。 次の図を参照してください。

メモ : ネッ トが接続されていないよ うに見える場合、 [View] → [Refresh] をク リ ッ ク して画面

を更新します。

X-Ref Target - Figure 3-13

図 3-13 : 完成した time_cnt の回路図

62 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

回路図のチェ ッ ク

これで、 time_cnt 回路図が完成しました。 デザイン ルール チェッ ク (DRC) を実行して、 回路図に

論理エラーがないかど うかを確認します。 これには、 [Tools] → [Check Schematic] をク リ ッ ク しま

す。 [Console] パネルに、エラーおよび警告がないこ とが示されるはずです。 エラーまたは警告が示

された場合は、 次に進む前に修正してください。

回路図の保存

次の手順で回路図を保存します。

1. [File] → [Save] をク リ ッ クするか、 またはツールバーの [Save] ボタンをク リ ッ ク します。

2. time_cnt 回路図を閉じます。

time_cnt のシンボルの作成および配置

time_cnt マク ロを表すシンボルを作成します。 シンボルは、 マク ロのインスタンシエーショ ンで

す。 time_cnt のシンボルを作成して、 stopwatch デザインの 上位回路図に追加します作成した

time_cnt マク ロのシンボルは、 上位の回路図でこ の後のセク ショ ンで作成するコンポーネント

と 接続します。

time_cnt シンボルの作成

シンボルの作成には、 [Processes] ペインを使用するか、 または [Tools] メニューを使用します。

[Processes] ペインを使用して time_cnt 回路図のシンボルを作成するには、 次の手順に従います。

1. [Design] パネルの [Hierarchy] ペインで time_cnt.sch を選択します。

2. [Processes] ペインで [Design Utilities] を展開し、 [Create Schematic Symbol] をダブルク リ ッ

ク します。

[Tools] メニューを使用して、 time_cnt 回路図のシンボルを作成するには、 次の手順に従います。

1. time_cnt 回路図を開いた状態で、 [Tools] → [Symbol Wizard] をク リ ッ ク します。

2. Symbol Wizard の [Source Page] ページで、 [Using Schematic] をオンにし、その横のボッ クス

で 「time_cnt」 を選択します。

3. [Next]、 [Next]、 [Next]、 [Finish] を順番にク リ ッ ク して、デフォルトの設定でウ ィザードを完

了します。

4. 作成された time_cnt シンボルが表示されます。 確認して閉じます。

X-Ref Target - Figure 3-14

図 3-14 : ツールバーの [Save] ボタン

ISE アドバンス チュート リアル japan.xilinx.com 63UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

time_cnt シンボルの配置

次に、 マク ロのシンボルを 上位回路図 (stopwatch.sch) に、 次の手順で配置します。

1. [Design] パネルの [Hierarchy] ペインで、 stopwatch.sch をダブルク リ ッ ク して回路図を開き

ます。

2. [Add] → [Symbol] をク リ ッ クするか、またはツールバーの [Add Symbol] ボタンをク リ ッ ク し

ます。

3. [Symbols] パネルの [Categories] でローカル シンボル ラ イブラ リ (c:\xilinx\12.1\ISE_DS\ISE\ISEexamples\wtut_sc) をク リ ッ ク し、[Symbols] で新規作成した [time_cnt]をク リ ッ ク します。

4. time_cnt シンボルを、出力ピンが lcd_control コンポーネント の入力を駆動する 5 つのバスと

並ぶよ う に配置します。 こ れは座標位置 [1612,1728] の近く になるはずです。 座標位置は

Project Navigator ウィ ンド ウの右下に表示されており 、回路図上でカーソ ルを動かすと 値が変

化します。

メモ : こ こでは、 time_cnt シンボルの入力ピンとネッ トは接続しません。 stopwatch 回路図に

ほかのコンポーネン ト を追加した後で接続します。

5. 変更を保存し、 stopwatch.sch を閉じます。

CORE Generator ソフ トウェア モジュールの作成

Core Generator ソフ ト ウェアは、メモ リ エレ メン ト 、演算ファンクシ ョ ン、通信、I/O インターフェ

イス コアなどの高機能モジュールを作成する対話型のグラフ ィカル デザイン ツールです。 この

ツールを使用して、モジュールをカスタマイズおよび 適化するこ とによ り、高速キャ リー ロジッ

ク、 SRL16、分散 RAM、 ブロ ッ ク RAM などのザイ リ ンクス FPGA デバイスのアーキテクチャ機

能を 大限に活用できます。

このセクシ ョ ンでは、timer_preset という CORE Generator ソフ ト ウェア モジュールを作成します。

このモジュールは、 タイマーに読み込む 64 個のプリセッ ト値を格納するために使用されます。

timer_preset CORE Generator ソフ トウェア モジュールの作成

CORE Generator ソフ ト ウェア モジュールを作成するには、 次の手順に従います。

1. [Project] → [New Source] をク リ ッ ク します。

2. [IP (CORE Generator & Architecture Wizard)] を選択します。

3. [File name] に 「timer_preset」 と入力します。

4. [Next] をク リ ッ ク します。

5. [Memories & Storage Elements] → [RAMs & ROMs] を展開します。

X-Ref Target - Figure 3-15

図 3-15 : ツールバーの [Add Symbol] ボタン

64 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

6. [Distributed Memory Generator] を選択して [Next] をク リ ッ ク し、次のページで [Finish] をク

リ ッ ク します。CORE Generator で Distributed Memory Generator のカスタマイズ ウ ィンド ウ

が開きます。 このウ ィンド ウで、 メモ リ をデザインの仕様に合わせてカスタマイズします。

7. Distributed Memory Generator のカスタマイズ ウ ィンド ウで次の設定を入力します。

♦ [Component Name] : timer_preset (モジュール名を指定)

♦ [Depth] : 64 (格納する値の数を指定)

♦ [Data Width] : 20 (出力バスの幅を指定)

♦ [Memory Type] : [ROM]

8. [Next] をク リ ッ ク します。

X-Ref Target - Figure 3-16

図 3-16 : New Source Wizard の [Select IP] ページ

ISE アドバンス チュート リアル japan.xilinx.com 65UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

9. [Input Options] および [Output Options] を [Non Registered] のままにし、[Next] をク リ ッ ク し

ます。

10. [Coefficients File] で [Browse] ボタンをク リ ッ ク し、 プロジェク ト ディ レク ト リにある definition1_times.coe を選択します。

11. カスタマイズ ウ ィンド ウの左側のシンボルで、次のピンのみがハイライ ト されているこ とを確

認します。

♦ a[5:0]

♦ spo[19:0]

12. [Generate] をク リ ッ ク します。

作成されたマクロは、 自動的にプロジェク トのライブラ リに追加されます。

プロジェク ト ディ レク ト リの ipcore_dir サブディ レク ト リに多数のファイルが追加されます。 この

中には、 次のファイルの含まれます。

• timer_preset.sym

回路図のシンボル ファ イルです。

• timer_preset.vhd または timer_preset.v

シ ミ ュレーシ ョ ンのみで使用されるコアの HDL ラ ッパ ファ イルです。

• timer_preset.ngc

インプ リ メンテーシ ョ ンの変換プロセスで使用されるネッ ト リ ス トです。

X-Ref Target - Figure 3-17

図 3-17 : Core Generator ソフ トウェアの Distributed Memory Generator のカスタマイズ ウィンドウ

66 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

• timer_preset.xco

timer_preset モジュールのコンフ ィギュレーシ ョ ン情報が格納されており、 プロジェク ト ソー

ス と して使用されます。

• timer_preset.mif

このファ イルは、 シ ミ ュレーシ ョ ン用の ROM の初期値を提供します。

DCM モジュールの作成

Architecture Wizard の一部である Clocking Wizard を使用する と、 DCM (デジタル ク ロ ッ ク マネージャ ) モジュールをグラフ ィカルに作成できます。 このセクシ ョ ンでは、CLK0 フ ィードバッ ク

およびデューティ サイクル調整がある基本的な DCM モジュールを作成します。

Clocking Wizard の使用法

dcm1 モジュールを作成するには、 次の手順に従います。

1. [Project] → [New Source] をク リ ッ ク します。

2. [IP (CORE Generator & Architecture Wizard)] をク リ ッ ク します。

3. [File name] に 「dcm1」 と入力します。

4. [Next] をク リ ッ ク します。

5. [Select IP] ページで、 [FPGA Features and Design] → [Clocking] → [Spartan-3E, Spartan-3A]→ [Single DCM_SP] をク リ ッ ク します。

6. [Next] をク リ ッ ク し、次のページで [Finish] をク リ ッ ク します。Clocking Wizard が開きます。

7. Architecture Wizard の [Setup] ページで [OK] をク リ ッ ク します。

8. [General Setup] ページで [RST]、[CLK0]、および [LOCKED] がオンになっているこ とを確認

します。

X-Ref Target - Figure 3-18

図 3-18 : Single DCM_SP コアを選択

ISE アドバンス チュート リアル japan.xilinx.com 67UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

9. [CLKFX] ポート をオンにします。

10. [Input Clock Frequency] に 「50」 と入力し、 [MHz] をオンにします。

11. 次の設定を確認します。

♦ [Phase Shift] : [NONE]

♦ [CLKIN Source] : [External]、 [Single]

♦ [Feedback Source] : [Internal]

♦ [Feedback Value] : [1X]

♦ [Use Duty Cycle Correction] : オン

12. [Advanced] をク リ ッ ク します。

13. [Wait for DCM lock before DONE signal goes high] をオンにします。

14. [OK] をク リ ッ ク します。

15. [Next] をク リ ッ ク し、 次のページで [Next] をク リ ッ ク します。

16. [Use output frequency] をオンにし、下のボッ クスに 「26.2144」 と入力して [MHz] をオンにし

ます。

X-Ref Target - Figure 3-19

図 3-19 : Xilinx Clocking Wizard の [General Setup] ページ

26.2144Mhz( ) 218⁄ 100Hz=

68 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

17. [Next] をク リ ッ ク し、 次のページで [Finish] をク リ ッ ク します。

dcm1.xaw ファ イルが作成され、[Design] パネルの [Hierarchy] ペインの プロジェク ト ソース ファ

イル リ ス トに追加されます。

dcm1 シンボルの作成

dcm1 マクロを表すシンボルを作成します。 このシンボルは、後で 上位回路 (stopwatch.sch) に追加します。

1. [Design] パネルの [Hierarchy] ペインで dcm1.xaw を選択します。

2. [Processes] ペインで [Create Schematic Symbol] をダブルク リ ッ ク します。

HDL ベースのモジュールの作成

ISE ソフ ト ウェアでは、HDL コードから簡単にモジュールを作成できます。 HDL コードは、インス

タンシエートするこ とで 上位の回路図デザインに組み込み、 残りのデザインと共にコンパイルし

ます。

このセクシ ョ ンでは、 新規 HDL モジュールを作成します。 このマク ロは、 strtstop、 mode、 および

lap_load 入力をデバウンスするために使用します。

New Source Wizard および ISE Text Editor の使用

New Source Wizard を使用してコンポーネン トの名前およびポート を指定し、新規ソース ファ イル

を作成した後、 作成された HDL ファ イルを ISE Text Editor で編集します。

ソース ファ イルを作成するには、 次の手順に従います。

1. [Project] → [New Source] をク リ ッ ク します。

2. [VHDL Module] または [Verilog Module] を選択します。

3. [File Name] に 「debounce」 と入力します。

4. [Next] をク リ ッ ク します。

5. [Define Module] ページで、 次の手順に従って debounce コンポーネン トの 2 つの入力ポート

sig_in および clk と、 1 つの出力ポート sig_out を入力します。

a. [Port Name] 列の 初の 3 つに 「sig_in」、 「clk」、 「sig_out」 と入力します。

b. [Direction] 列で sig_in と clk には [in] または [input]、 sig_out には [out] または [output]を選択します。

ISE アドバンス チュート リアル japan.xilinx.com 69UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

c. [Bus] 列のチェッ ク ボッ クスはオフのままにします。

6. [Next] をク リ ッ ク します。 [Summary] ページにモジュールの説明が表示されます。

7. [Finish] をク リ ッ ク します。 ISE Text Editor で空の HDL ファ イルが開きます。

次の図に VHDL ファ イルを示します。

X-Ref Target - Figure 3-20

図 3-20 : New Source Wizard の [Define Module] ページ

X-Ref Target - Figure 3-21

図 3-21 : ISE Text Editor に表示された VHDL ファイル

70 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

次の図に VHDL ファ イルを示します。

ISE Text Editor に表示される HDL ファ イルでは、 既にポートが宣言されており、 基本ファイル構

造の一部が記述されています。 キーワードは青色、 データ タイプは赤色、 コ メン トは緑色、 値は黒

色で表示されています。 このよ うにコードが色分けして表示されるので、コードが読みやすくな り、

誤字エラーを見つけやすくなり ます。

言語テンプレートの使用

ISE の言語テンプレートには、 カウンタ、 D フ リ ップフロ ップ、 マルチプレクサ、 プ リ ミ ティブな

ど、 よ く使用されるロジッ ク コンポーネン ト を記述した HDL 構文および合成テンプレートが含ま

れています。 このセクシ ョ ンでは、 デバウンス回路のテンプレート を使用します。

メモ : よ く使用するコンポーネン ト または構文を言語テンプレートに追加するこ と もできます。

言語テンプレートのウ ィンド ウを表示して、このチュート リ アルのテンプレート を選択するには、次

の手順に従います。

1. [Edit] → [Language Templates] をク リ ッ ク します。

VHDL および Verilog の言語テンプレートは、それぞれ [Common Constructs]、[Device MacroInstantiation]、 [Device Primitive Instantiation]、 [Simulation Constructs]、 [SynthesisConstructs]、 [User Templates] のカテゴ リに分類されています。 これらのカテゴ リ を展開する

には、プラス記号 (+) をク リ ッ ク します。 テンプレート をク リ ッ クする と、右側にテンプレート

が表示されます。

2. [VHDL] または [Verilog] の階層から [Synthesis Constructs] → [Coding Examples] → [Misc] を展開し、 [Debounce circuit] (VHDL) または [One Shot, Debounce Circuit] (Verilog) テンプレー

ト を選択します。 テンプレート が使用している言語のものであるこ と を確認してく ださい。

X-Ref Target - Figure 3-22

図 3-22 : ISE Text Editor に表示された Verilog ファイル

ISE アドバンス チュート リアル japan.xilinx.com 71UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

テンプレート を選択する と、 右側にデバウンス回路の HDL コードが表示されます。

言語テンプレートのファイルへの追加

次に、[Use in File] コマンドを使用して、テンプレート を HDL ファ イルに追加します。 ド ラ ッグ アンド ド ロ ップで追加する方法など、 言語テンプレートの使用に関する詳細は、 ISE ヘルプの 「言語

テンプレートの使用」 を参照してください。

テンプレート を HDL ファ イルに追加するには、 次の手順に従います。

1. debounce.v または debounce.vhd ソース ファ イルをアクティブにし、 カーソルを VHDLファ イルでは architecture の begin 文の下、 Verilog ファ イルでは module およびピン宣言の下

に置きます。

2. [Language Templates] ウ ィンド ウに戻り、テンプレート インデッ クスで [Debounce circuit] テンプレート を右ク リ ッ ク し、 [Use in File] をク リ ッ ク します。

3. [Language Templates] ウ ィンド ウを閉じます。

X-Ref Target - Figure 3-23

図 3-23 : 言語テンプレート

X-Ref Target - Figure 3-24

図 3-24 : テンプレートを [Use in File] を使用して HDL ファイルに追加

72 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

4. debounce.v または debounce.vhd ソース ファ イルを開き、言語テンプレートが正し く挿入

されているこ とを確認します。

5. Verilog のみ : 次の変更を加えて Verilog モジュールを完成させます。

a. 「if」 から 「else」 までの 3 行を削除して、 リセッ ト ロジッ クを削除します。 リセッ ト ロジッ クは、 このデザインでは使用されません。

b. <reg_name> を 6 箇所すべてで q に変更します。

c. <clock> を clk に、 <input> を sig_in に、 <output> を sig_out に変更します。

メモ : [Edit ] → [Find & Replace] をク リ ッ クする と、 これを簡単に実行できます。 ISE TextEditor の下部に検索フ ィールドが表示されます。

6. VHDL のみ : 次の変更を加えて、 VHDL モジュールを完成させます。

a. 「signal」 で始まる行を architecture 行と begin 行の間に移動します。

b. 「if (<reset>...」 から 「else」 までの 5 行を削除して、 リセッ ト ロジッ クを削除しま

す。 2 つある 「end if;」 行の 1 つも削除します。

c. <clock> を clk に、 D_IN を sig_in に、 Q_OUT を sig_out に変更します。

メモ : [Edit ] → [Find & Replace] をク リ ッ クする と、 これを簡単に実行できます。 ISE TextEditor の下部に検索フ ィールドが表示されます。

7. [File] → [Save] をク リ ッ ク してファ イルを保存します。

8. [Hierarchy] ペインの debounce インスタンスの 1 つを選択します。

9. [Processes] ペインで [Check Syntax] をダブルク リ ッ ク し、構文にエラーがないかど うかを確認

します。 必要に応じエラーを修正します。

10. ISE Text Editor を閉じます。

HDL モジュールの回路図シンボルの作成

次の手順に従って、 debounce および statmach HDL ファ イルの回路図シンボルを作成します。

1. [Design] パネルの [Hierarchy] ペインで、 debounce.vhd または debounce.v を選択します。

2. [Processes] ペインで [Design Utilities] を展開し、 [Create Schematic Symbol] をダブルク リ ッ

ク します。

3. statmach.vhd ファ イルに対して、 同じ操作を実行します。

これで、 stopwatch 回路図に追加するシンボルが作成されました。

statmach、 timer_preset、 dcm1、 debounce シンボルの配置

statmach、 timer_preset、 dcm1、 および debounce シンボルを stopwatch 回路図 (stopwatch.sch) に配置します。

シンボルを配置するには、 次の手順に従います。

1. [Design] パネルの [Hierarchy] ペインで、 [stopwatch.sch] をダブルク リ ッ ク します。

回路図ファイルがワークスペースに開きます。

ISE アドバンス チュート リアル japan.xilinx.com 73UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

2. [Add] → [Symbol] をク リ ッ クするか、またはツールバーの [Add Symbol] ボタンをク リ ッ ク し

ます。

回路図の左側の [Options] パネルが表示されているエ リアに、[Symbols] パネルが開き、ライブ

ラ リおよび対応するコンポーネン トが表示されます。

3. [Categories] でプロジェク ト ディ レク ト リ を選択します。

4. [Symbols] でシンボルを選択して、 図 3-26 に示すよ うに回路図の適切な位置に配置します。

メモ : この手順の前に、 statmach のシンボルを作成する必要があ り ます。 また、 timer_presetのシンボルはプロジェク ト ディ レク ト リの ipcore_dir に含まれています。

メモ : こ こでは、 シンボルを接続するワイヤは描画しません。 コンポーネン トは、 後で接続し

ます。

5. 回路図を保存します。

X-Ref Target - Figure 3-25

図 3-25 : ツールバーの [Add Symbol] ボタン

74 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

次の図に、 シンボルが配置された stopwatch 回路図を示します。

X-Ref Target - Figure 3-26

図 3-26 : デザイン マクロの配置

ISE アドバンス チュート リアル japan.xilinx.com 75UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

インスタンス名の変更

回路図シートにシンボルを配置する と、接頭辞 XLXI_ で始まる固有のインスタンス名が付けられま

す。 Project Navigator の [Hierarchy] ペインに表示される階層をわかりやすくするため、次の手順に

従ってシンボル インスタンスの名前を変更します。

1. dcm1 シンボル インスタンスを右ク リ ッ ク し、 [Object Properties] をク リ ッ ク します。

2. [Object Properties] ダイアログ ボッ クスで、 [InstName] の [Value] を 「dcm_inst」 に変更し、

[OK] をク リ ッ ク します。

3. 手順 1 ~ 2 を繰り返し、 次のよ うにシンボル インスタンス名を変更します。

♦ statmach インスタンス名 → timer_state

♦ 1 番上の debounce インスタンス名 → lap_load_debounce

♦ 2 番目の debounce インスタンス名 → mode_debounce

♦ 1 番下の debounce インスタンス名 → strtstop_debounce

♦ timer_preset インスタンス名 → t_preset

♦ time_cnt インスタンス名 → timer_cnt

上位および下位階層への移動

階層で 「プッシュ ダウン」 を実行し、 階層の下位のファイルを表示します。 このチュート リ アルで

作成した回路図ベースのマクロ time_cnt を表示し、このファ イルに含まれるコンポーネン ト を確認

します。

上位の stopwatch 回路図から time_cnt を表示するには、 次の手順に従います。

1. 回路図で time_cnt シンボルをク リ ッ ク し、ツールバーの [Push] ボタンをク リ ッ クするか、また

はシンボルを右ク リ ッ ク して [Symbol] → [Push into Symbol] をク リ ッ ク します。

time_cnt 回路図には、5 つのカウンタ ブロッ クがあ り ます。 いずれかを選択して [Push] ボタン

をク リ ッ ク し、カウンタ マクロを表示します。 回路図ページにザイ リ ンクス プリ ミ ティブ コン

ポーネン トのみが表示されるまで、このプロセスを繰り返すこ とができます。基になる下位ファ

イルが HDL または IP コア ファ イルであるシンボルで [Push] ボタンをク リ ッ クする と、 適切

なテキス ト エディ タまたはカスタマイズ ウ ィンド ウが開き、 そこでファイルを編集できます。

2. マクロを確認したら、[View] → [Pop to Calling Schematic] をク リ ッ クするか、または回路図で

何も選択していない状態でツールバーの [Pop] ボタンをク リ ッ ク します。 回路図の空白部分を

右ク リ ッ ク して [Pop to Calling Schematic] をク リ ッ ク しても、 同じ操作を実行できます。

X-Ref Target - Figure 3-27

図 3-27 : ツールバーの [Push] ボタン

X-Ref Target - Figure 3-28

図 3-28 : ツールバーの [Pop] ボタン

76 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

デバイスの入力および出力の指定

I/O マーカーを使用して、回路図のデバイス I/O を指定します。 Schematic Editor の回路図は、すべ

て VHDL または Verilog のネッ ト リ ス ト と して出力され、合成ツールで合成されます。 合成ツール

で 上位の回路図 HDL が合成される と、I/O マーカーは適切なパッ ドおよびバッファで置き換えら

れます。

入力ピンの追加

次に、 stopwatch 回路図に入力ピン reset、 clk、 lap_load、 mode、 および strtstop を追加します。

これらのコンポーネン ト を追加するには、dcm1 の 2 つの入力と、各 debounce シンボルの sig_in ピンに未接続のワイヤを描画します。

メモ : ワイヤの描画方法は、 「ワイヤの描画」 を参照してください。

I/O マーカーおよびネッ ト名の追加

ネッ トおよびバスに名前を付けるこ とは、 次のよ う な理由から重要です。

• デバッグおよびシ ミ ュレーシ ョ ンで、 簡単にデザイン内のネッ ト を ト レースできる。

例えば、インプ リ メンテーシ ョ ン プロセスでは、名前が付けられていないネッ トに対して、ユー

ザーには意味をなさない任意の名前が付けられます。

• デザインを解読しやすくなり、 デザインの記録に役立つ。

描画した 5 つの入力ネッ トに名前を付けます。 図 3-31 の完成した回路図を参照してください。 resetネッ トに名前を付けるには、 次の手順に従います。

1. [Add] → [Net Name] をク リ ッ ク します。

2. [Options] パネルの [Add Net Name Options] で、 [Name] に 「reset」 と入力します。

入力したネッ ト名がカーソルに表示されます。

3. 図 3-29 に示すよ うに、 ネッ トの左端をク リ ッ ク して名前を配置します。

4. clk、 lap_load、 mode、 および strtstop ピンに対して同じ手順を繰り返します。

すべてのネッ トに名前を付けたら、 I/O マーカーを追加します。

5. [Add] → [I/O Marker] をク リ ッ ク します。

ISE アドバンス チュート リアル japan.xilinx.com 77UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

6. 次の図に示すよ うに追加した 5 つのネッ ト名の周りにボッ クスを描く よ う ド ラ ッグし、各ネッ

トに I/O マーカーを追加します。

ピン ロケーシ ョ ンの割り当て

ザイ リ ンクスでは、PAR (自動配置配線) プログラムを使用してデザインのピン配置を定義するこ と

を推奨します。 ピンにロケーシ ョ ンを事前に割り当てる と、 PAR のパフォーマンスが低下する可能

性があ り ます。 ただし、 PCB (プリ ン ト回路基板) にデザインのピン配置を統合できるよ うに、 ある

時点で配置を固定する必要がある場合もあ り ます。

このチュート リ アルでは、デザインを Spartan-3A デモ ボードに配置、ダウンロードするために入力

および出力を特定のピンに固定します。 このチュート リ アルのデザインは単純でタイ ミ ングも重要

ではないため、 ピンを割り当てても PAR によるデザインの配置配線に悪影響はあ り ません。

stopwatch 回路図の出力ネッ トに LOC パラ メータを割り当てるには、 次の手順に従います。

1. clk のネッ ト を右ク リ ッ ク し、 [Object Properties] をク リ ッ ク します。

2. [Object Properties] ダイアログ ボッ クスで [New] をク リ ッ ク します。

3. [New Attribute] ダイアログ ボッ クスで、[Attribute Name] に「LOC」、[Attribute Value] に「E12」と入力します。

X-Ref Target - Figure 3-29

図 3-29 : 名前の付けられたネッ トへの I/O マーカーの追加

78 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

4. [OK] をク リ ッ ク して [Object Properties] ダイアログ ボッ クスに戻り ます。

5. LOC 属性を表示するには、 [LOC] 属性の横にある [Add] をク リ ッ ク します。

6. [Net Attribute Visibility] ダイアログ ボッ クスで、表示されているネッ トの中心付近をク リ ッ ク

し、 次に [OK] をク リ ッ ク します。

これで、 LOC 属性が回路図の clk ネッ トの上に表示されます。

7. [OK] をク リ ッ ク して [Object Properties] ダイアログ ボッ クスを閉じます。

上記の手順によ り、 clk が ピン E12 に制約されます。 sf_d(7:0) バスにも LOC プロパティが追加さ

れているこ とを確認してください。残りのピン ロケーシ ョ ン制約は、第 5 章 「デザイン インプ リ メ

ンテーシ ョ ン」 の 「Constraints Editor の使用」 および 「PlanAhead ソフ ト ウェアを使用した I/O ロケーシ ョ ンの割り当て」 ) で追加します。

メモ : ロケーシ ョ ン制約を削除せずにオフにするには、 [Object Properties] ダイアログ ボッ クスで

LOC 属性を選択して [Edit Traits] をク リ ッ ク します。 [Attribute Traits] ダイアログ ボッ クスの

[Category] で [VHDL] または [Verilog] をク リ ッ ク し、 [Ignore this attribute] をオンにします。

X-Ref Target - Figure 3-30

図 3-30 : ピン ロケーシ ョ ンの割り当て

ISE アドバンス チュート リアル japan.xilinx.com 79UG695 (v12.1) 2010 年 4 月 19 日

デザイン入力

回路図の完成

作成して配置したコンポーネン ト をワイヤで接続し、 必要に応じてロジッ クを追加し、 ネッ トに名

前を付けて回路図を完成させます。 これには、次の手順に従います。次に示されている完成した回路

図を参照してください。 このセクシ ョ ンの手順に含まれる各操作の詳細は、 こ こまでのセクシ ョ ン

を参照してください。

X-Ref Target - Figure 3-31

図 3-31 : 完成した stopwatch デザインの回路図

80 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 3 章 : 回路図ベースのデザイン

回路図を完了させるには、 次の手順に従います。

1. dcm1 の LOCKED_OUT ピンに未接続のワイヤを描画し、「locked」とい う名前を付けます (「ワイヤの描画」 および 「ネッ ト名の追加」 を参照)。

2. time_cnt および statmach マクロの clk 入力に未接続ワイヤを描画します ( 「ワイヤの描画」 を参照)。

3. このワイヤの両方に 「clk_100」 とい う名前を付けます ( 「ネッ ト名の追加」 を参照)。

メモ : ネッ トは名前が同一の場合、 回路図で物理的に接続されていなくても、 論理的に接続さ

れる こ とに注意して ください。 この手法を使用して、 clk_100 とその他の信号を論理的に接続

します。

4. 3 つの debounce マクロの clk 入力にワイヤを描画し、 「clk_26214k」 とい う名前を付けます。

5. 各 debounce コンポーネン トの sig_out ピンと statmach マクロの lap_load、 mode_in、 および

strtstop ピンの間にそれぞれワイヤを描画し、 これらのネッ トに 「ll_debounced」、「mode_debounced」、「strtstop_debounced」とい う名前を付けます (「ワイヤの描画」および「ネッ

ト名の追加」 を参照)。

6. statmach マクロの dcm_lock ピンと reset ピンにそれぞれ未接続ワイヤを描画し、 「locked」 お

よび 「reset」 とい う名前を付けます。

7. statmach コンポーネン トの clken 出力と time_cnt コンポーネン トの ce ピンに未接続ワイヤを

描画し、 両方に 「clk_en_int」 という名前を付けます。

8. statmach マクロの rst 出力ピンおよび time_cnt マクロの clr ピンに未接続ワイヤを描画し ( 「ワイヤの描画」 を参照)、 両方に 「rst_int」 と名前を付けます。

9. timer_preset マクロのバス出力から time_cnt マクロの q(19:0) 入力にワイヤを描画します (「ワイヤの描画」 を参照)。 ワイヤは自動的にバスに変換されます。

10. timer_preset マクロの入力に未接続バスを描画し、 「address(5:0)」 と名前を付けます。

11. statmach マクロの lap_trigger および mode 出力から lcd_control マクロの lap および mode 入力にワイヤを描画し ( 「ワイヤの描画」 を参照)、それぞれ 「lap」 および 「mode_control」 という

名前を付けます。

12. statmach マクロの load 出力および time_cnt マクロの load 入力に未接続ワイヤを描画し、(「ワイヤの描画」 を参照)、 両方に 「load」 とい う名前を付けます。

13. time_cnt マクロの up 入力に未接続のワイヤを描画し ( 「ワイヤの描画」 を参照)、「mode_control」 という名前を付けます。

14. [File] → [Save] をク リ ッ ク してデザインを保存します。

これで回路図デザインが完了しました。

回路図のフローを継続するには、 次のいずれかの操作を実行します。

• 第 4 章 「ビヘイビア シ ミ ュレーシ ョ ン」 を参照して合成前のシ ミ ュレーシ ョ ンを実行します。

• 第 5 章 「デザイン インプ リ メンテーシ ョ ン」 を参照して配置配線を実行します。

ISE アドバンス チュート リアル japan.xilinx.com 81UG695 (v12.1) 2010 年 4 月 19 日

第 4 章

ビヘイビア シミ ュレーシ ョ ン

この章は、 次のセクシ ョ ンから構成されています。

• 「ビヘイビア シ ミ ュレーシ ョ ン フローの概要」

• 「ModelSim の設定」

• 「ISim の設定」

• 「入門」

• 「HDL テス トベンチの追加」

• 「ModelSim を使用したビヘイビア シ ミ ュレーシ ョ ン」

• 「ISim を使用したビヘイビア シ ミ ュレーシ ョ ン」

ビヘイビア シミ ュレーシ ョ ン フローの概要

ザイ リ ンクス ISE® Design Suite には、 Mentor Graphics 社の ModelSim シ ミ ュレータおよびザイ

リ ンクスの ISim シ ミ ュレータを使用するフローが統合されており、 Project Navigator からシ ミ ュ

レーシ ョ ンを実行できます。 このチュート リ アルでは、 統合フローを使用する例を示します。 この

チュート リ アルでは、ModelSim シ ミ ュレータまたは ISim シ ミ ュレータのどちらを使用しても、同

じシ ミ ュレーシ ョ ン結果を達成できます。

シ ミ ュレーシ ョ ンの詳細およびサポート されるほかのシ ミ ュレータについては、 『合成 /シ ミ ュレー

シ ョ ン デザイン ガイ ド』 を参照して ください。 このガイ ドは ISE ソフ ト ウェア マニュアル コレク

シ ョ ンに含まれています。 ソフ ト ウェア マニュアル コレクシ ョ ンを開くには、 [Help] → [SoftwareManuals] をク リ ッ クするか、ザイ リ ンクス Web サイ トのソフ ト ウェア マニュアル コレクシ ョ ンに

アクセスします。

このチュート リ アルでは、 Project Navigator 内でシ ミ ュレーシ ョ ン フローを実行する方法、

ModelSim および ISim シ ミ ュレータの主な機能を説明します。 これらシ ミ ュレータの使用方法の

詳細は、 ModelSim の Web サイ トから ModelSim の資料、 またはザイ リ ンクス Web サイ トの ISEDesign Suite 12 チュート リ アル ページから ISim チュート リ アルを参照してください。

ModelSim の設定

このチュート リ アルを実行するには、ModelSim をインス トールする必要があ り ます。このセクシ ョ

ンでは、ModelSim PE、ModelSim SE、ModelSim DE、および ModelSim XE を使用するための要

件と設定方法を説明します。

82 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 4 章 : ビヘイビア シミ ュレーシ ョ ン

ModelSim PE、 SE、 および DEModelSim PE、 ModelSim SE、 および ModelSim DE は ModelSim の正規版であ り、 MentorGraphics 社から直接購入できます。 ISE Design Suite 12 のライブラ リ を使用してシ ミ ュレーシ ョ ン

するには、 ModelSim 6.5c 以降を使用して ください。 これよ り前のバージ ョ ンでもシ ミ ュレーシ ョ

ンを実行できる可能性はあ り ますが、 サポート されていません。 ModelSim PE、 SE、および DE の詳細は、 Mentor Graphics 社にお問い合わせください。

ModelSim Xilinx Edition (MXE)ModelSim Xilinx Edition-III (MXE-III) は、ModelSim PE に基づく ModelSim のザイ リ ンクス用の

バージ ョ ンです。 無償のスタータ版と正規版をザイ リ ンクスから入手可能です。 ソフ ト ウェアの購

入方法を含む MXE-III の詳細は、ザイ リ ンクス Web サイ トの ModelSim Xilinx Edition-III のペー

ジを参照してください。

ISim の設定

ISim は、ISE Design Suite 12 インス トーラによ りサポート されている OS 上に自動的にインス トー

ルおよび設定されます。 ISim でサポート される OS の一覧は、ザイ リ ンクスの Web サイ トから『ISEDesign Suite 12 : インス トール、 ラ イセンス、 リ リース ノート 』 を参照してください。

入門

次に、 このチュート リ アルでビヘイビア シ ミ ュレーシ ョ ンを実行するための要件を示します。

必要なファイル

ビヘイビア シ ミ ュレーシ ョ ンには、 デザイン ファ イル、 テス トベンチ ファ イル、 ザイ リ ンクス シミ ュレーシ ョ ン ラ イブラ リが必要です。

デザイン ファイル (VHDL、 Verilog、 または回路図)この章では、第 2 章「HDL ベースのデザイン」 または第 3 章「回路図ベースのデザイン」に従っ

てデザイン入力チュート リ アルを完了しているこ とを前提と しています。 これらの章のチュー

ト リ アルに従う と、 必要なデザイン ファ イルを作成できます。

テス トベンチ ファイル

デザインをシ ミ ュレーシ ョ ンするには、 デザインにスティ ミ ュラスを供給するテス トベンチが

必要です。 チュート リ アル ファ イルには、VHDL および Verilog のテス トベンチ ファ イルが含

まれています。 また、 独自のテス トベンチ ファ イルを作成するこ と も可能です。

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

デザインにザイ リ ンクス プリ ミ ティブまたは IP コアがインスタンシエート されている場合

は、ザイ リ ンクス シ ミ ュレーシ ョ ン ライブラ リが必要です。 このチュート リ アルのデザインに

は、 デジタル クロ ッ ク マネージャ (DCM) および CORE Generator™ ソフ ト ウェア コンポー

ネン トがインスタンシエート されているので、シ ミ ュレーシ ョ ン ライブラ リ を使用する必要が

あ り ます。 シ ミ ュレーシ ョ ン ラ イブラ リに関する情報とコンパイル方法は、 次の 「ザイ リ ンク

ス シ ミ ュレーシ ョ ン ライブラ リ 」 セクシ ョ ンで説明します。

ISE アドバンス チュート リアル japan.xilinx.com 83UG695 (v12.1) 2010 年 4 月 19 日

入門

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

ザイ リ ンクス プリ ミ ティブ、CORE Generator ソフ ト ウェア コンポーネン ト、およびその他のザイ

リ ンクス IP コアがインスタンシエート されているデザインをシ ミ ュレーシ ョ ンするには、ザイ リ ン

クス シ ミ ュレーシ ョ ン ライブラ リ を使用する必要があ り ます。 これらのライブラ リには、 各コン

ポーネン トのモデルが含まれています。 モデルは各コンポーネン トの機能を表したもので、 シ ミ ュ

レーシ ョ ンに必要な情報をシ ミ ュレータに提供します。

各ライブラ リの詳細は、 『合成/シ ミ ュレーシ ョ ン デザイン ガイ ド』 を参照して ください。 このガイ

ドは ISE ソフ ト ウェア マニュアル コレクシ ョ ンに含まれています。ソフ ト ウェア マニュアル コレ

クシ ョ ンを開くには、 [Help] → [Software Manuals] をク リ ッ クするか、 ザイ リ ンクス Web サイ ト

のソフ ト ウェア マニュアル コレクシ ョ ンにアクセスします。

ザイリンクス シミ ュレーシ ョ ン ライブラリのアップデート

ザイ リ ンクス シ ミ ュレーシ ョ ン ライブラ リに含まれるモデルは、 定期的にアップデート されます。

• XilinxCoreLib モデルは、 IP アップデート をインス トールする とアップデート されます。

• その他のモデルは、 ソフ ト ウェア アップデート をインス トールする とアップデート されます。

モデルがアップデート されたら、 ライブラ リ を再コンパイルする必要があ り ます。 シ ミ ュレーシ ョ

ン ラ イブラ リ をコンパイルする と、 シ ミ ュレーシ ョ ンでモデルを使用できるよ うにな り ます。

ModelSim PE、 SE、 または DE

ModelSim PE、SE、または DE を使用している場合は、シ ミ ュレーシ ョ ン ライブラ リ をアップデー

ト されたモデルで再コンパイルする必要があ り ます。詳細は、『合成/シ ミ ュレーシ ョ ン デザイン ガイ ド』を参照してください。このガイ ドは ISE ソフ ト ウェア マニュアル コレクシ ョ ンに含まれてい

ます。 ソフ ト ウェア マニュアル コレクシ ョ ンを開くには、 [Help] → [Software Manuals] をク リ ッ

クするか、 ザイ リ ンクス Web サイ トのソフ ト ウェア マニュアル コレクシ ョ ンにアクセスします。

ModelSim Xilinx Edition-III  (MXE-III)

ModelSim Xilinx Edition-III (MXE-III) のアップデート されたモデルはあらかじめコンパイルされ

ており、ザイ リ ンクスの Web サイ トからダウンロードできます。 ザイ リ ンクスのダウンロード セン

タからコンパイル済みの 新モデルをダウンロード してください。

ザイリンクス ISim

ISim 用のアップデート されたシ ミ ュレーシ ョ ン ラ イブラ リはあらかじめコンパイルされており、

ISE ソフ ト ウェアと共にインス トールされます。

Modelsim.ini ファイルでのシミ ュレーシ ョ ン ライブラリのマップ

ModelSim では、 modelsim.ini ファ イルによ り コンパイル済みライブラ リの場所を判断します。 たとえば、UNISIM ライブラ リ を C:\lib\UNISIM にコンパイルした場合、modelsim.ini ファ イルに次

のよ うに記述されます。

UNISIM = c:\lib\UNISIM

メモ : modelsim.ini は、 ISim には適用されません。

ModelSim は、 modelsim.ini ファ イルが見つかるまで、 次の場所を リ ス ト した順に検索します。

• MODELSIM 環境変数で指定された modelsim.ini ファ イル

• 現在の作業ディ レク ト リ

• ModelSim がインス トールされたディ レク ト リ

84 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 4 章 : ビヘイビア シミ ュレーシ ョ ン

MODELSIM 環境変数が設定されておらず、 作業ディ レク ト リ に modelsim.ini ファ イルをコピー

していない場合は、 ModelSim インスト ール ディ レク ト リ にある modelsim.ini ファ イルが使用さ

れます。

ModelSim PE、 SE、 または DE

ModelSim PE、 SE、 または DEを使用している場合は、 『コマンド ラ イン ツール ユーザー ガイ ド』

を参照し、COMPXLIB を使用してライブラ リ をコンパイルする必要があ り ます。 このガイ ドは ISEソフ ト ウェア マニュアル コレクシ ョ ンに含まれています。 ソフ ト ウェア マニュアル コレクシ ョ ン

を開くには、 [Help] → [Software Manuals] をク リ ッ クするか、 ザイ リ ンクス Web サイ トのソフ ト

ウェア マニュアル コレクシ ョ ンにアクセスします。

COMPXLIB を実行する と、modelsim.ini ファ イルも正しいライブラ リ マップ情報にアップデート

されます。 modelsim.ini ファ イルを開いて、 ライブラ リのマップが正しいかど うかを確認してくだ

さい。

modelsim.ini ファ イルを作業ディ レク ト リ にコピーしてプロジェク ト 用に変更したり 、MODELSIM環境変数で modelsim.ini ファ イルを設定するこ と もできます。

ModelSim Xilinx Edition-III

ModelSim Xilinx Edition-III (MXE-III) を使用している場合は、 MXE-III がインス トールされた

ディ レク ト リにある modelsim.ini ファ イルを開きます。 すべてのザイ リ ンクス シ ミ ュレーシ ョ ン

ライブラ リが正しい場所にマップされているはずです。

ISim

modelsim.ini ファ イルは、 ISim には適用されません。

HDL テストベンチの追加

デザイン プロジェク トに HDL テス トベンチを追加するには、 このチュート リ アルに含まれるテス

トベンチ ファ イルを追加するか、または独自のテス トベンチ ファ イルを作成してプロジェク トに追

加します。

チュート リアルのテストベンチ ファイルの追加

このセクシ ョ ンでは、 既存のテス トベンチをプロジェク トに追加する方法を示します。 このチュー

ト リ アルには、 VHDL テス トベンチおよび Verilog テス トベンチが含まれています。

メモ : ISE ソフ ト ウェアで独自のテス トベンチ ファ イルを作成するには、[Project] → [New Source]をク リ ッ ク し、New Source Wizard でソース タイプと して [VHDL Test Bench] または [Verilog TextFixture] を選択します。 この操作で空のスティ ミ ュラス ファ イルがプロジェク トに追加されるの

で、 テキス ト エディ タでテス トベンチを定義する必要があ り ます。

VHDL シミ ュレーシ ョ ン

チュート リ アル VHDL テス トベンチをプロジェク トに追加するには、 次の手順に従います。

1. Project Navigator で、 [Project] → [Add Source] をク リ ッ ク します。

2. テス トベンチ ファ イル stopwatch_tb.vhd を選択します。

3. [開く ] をク リ ッ ク します。

4. [Adding Source Files] ダイアログボ ッ クスで、stopwatch_tb.vhd ファ イルが [Simulation] に関

連付けられているこ とを確認します。

ISE アドバンス チュート リアル japan.xilinx.com 85UG695 (v12.1) 2010 年 4 月 19 日

HDL テストベンチの追加

5. [OK] をク リ ッ ク します。

Verilog シミ ュレーシ ョ ン

Verilog テス トベンチをプロジェク トに追加するには、 次の手順に従います。

1. Project Navigator で、 [Project] → [Add Source] をク リ ッ ク します。

2. テス トベンチ ファ イル stopwatch_tb.v を選択します。

3. [開く ] をク リ ッ ク します。

4. [Adding Source Files] ダイアログボ ッ クスで、stopwatch_tb.vhd ファ イルが [Simulation] に関

連付けられているこ とを確認します。

5. [OK] をク リ ッ ク します。

X-Ref Target - Figure 4-1

図 4-1 : VHDL テストベンチの追加

X-Ref Target - Figure 4-2

図 4-2 : Verilog テストベンチの追加

86 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 4 章 : ビヘイビア シミ ュレーシ ョ ン

ModelSim を使用したビヘイビア シミ ュレーシ ョ ン

プロジェク トにテス トベンチを追加したら、 ModelSim シ ミ ュレータを使用してデザインのビヘイ

ビア シ ミ ュレーシ ョ ンを実行します。 ModelSim シ ミ ュレータは、 ISE ソフ ト ウェアと完全に統合

されています。 ISE ソフ ト ウェアから ModelSim による作業ディ レク ト リの作成、 ソース ファ イル

のコンパイル、デザインの読み込み、シ ミ ュレーシ ョ ン プロパティを使用したシ ミ ュレーシ ョ ンの

実行が可能です。

ISim でシ ミ ュレーシ ョ ンを実行する場合は、「ISim を使用したビヘイビア シ ミ ュレーシ ョ ン」に進

んでください。このチュート リ アルでは、ModelSim シ ミ ュレータまたは ISim シ ミ ュレータのどち

らを使用しても、 同じ結果を達成できます。

ModelSim をプロジェク トのシ ミ ュレータ と して選択するには、 次の手順に従います。

1. [Design] パネルの [Hierarchy] ペインで、 デバイス名 (xc3s700A-4fg484) を右ク リ ッ ク して

[Design Properties] をク リ ッ ク します。

2. [Design Properties] ダイアログ ボッ クスの [Simulator] で ModelSim のタイプと言語の組み合

わせを選択します。

ISE のシミ ュレーシ ョ ン プロセス

ISE ソフ ト ウェアのシ ミ ュレーシ ョ ン プロセスを使用する と、 ModelSim を使用したデザインのシ

ミ ュレーシ ョ ンを実行できます。 ModelSim シ ミ ュレータ用のプロセスを見つけるには、 次の手順

に従います。

1. [Design] パネルの [View] ペインで [Simulation] をオンにし、 ド ロ ップダウン リ ス トから [Behavioral] を選択します。

2. [Hierarchy] ペインで、 テス トベンチ ファ イル (stopwatch_tb) を選択します。

3. [Processes] ペインで [ModelSim Simulator] を展開してプロセスを表示します。

こ こにある [Simulate Behavioral Model] プロセスで、デザインのシ ミ ュレーシ ョ ンを実行でき

ます。

ModelSim がインス トールされているのにプロセスが表示されない場合は、 Project Navigator のプ

リ ファレンスが正し く設定されていない可能性があ り ます。 ModelSim の場所を指定するには、 次

の手順に従います。

1. [Edit] → [Preferences] をク リ ッ ク します。

2. [Preferences] ダイアログ ボッ クスの [Category] で [ISE General] → [Integrated Tools] をク

リ ッ ク します。

3. [Model Tech Simulator] で ModelSim の実行ファイルを指定します。 たとえば、

C:\modeltech_xe\win32xoem\modelsim.exe のよ うに指定します。

ISE アドバンス チュート リアル japan.xilinx.com 87UG695 (v12.1) 2010 年 4 月 19 日

ModelSim を使用したビヘイビア シミ ュレーシ ョ ン

シ ミ ュレーシ ョ ン プロパティの指定

stopwatch デザインのビヘイビア シ ミ ュレーシ ョ ンを実行する前に、 シ ミ ュレーシ ョ ンのプロセス

プロパティを設定します。

ISE ソフ ト ウェアでは、 ModelSim シ ミ ュレータのプロパティおよびシ ミ ュレーシ ョ ン ネッ ト リ ス

トのプロパティを設定できます。 このチュート リ アルのビヘイビア シ ミ ュレーシ ョ ンのプロパティ

を表示/変更するには、 次の手順に従います。

1. [Design] パネルの [Hierarchy] ペインで、テス トベンチ ファ イル (stopwatch_tb) を選択します。

2. [Processes] ペインで [ModelSim Simulator] を展開し、 [Simulate Behavioral Model] を右ク

リ ッ ク して [Process Properties] をク リ ッ ク します。

3. [Process Properties] ダイアログ ボッ クス (図 4-3) で、[Property display level] が [Advanced] に設定されているこ とを確認します。

[Advanced] に設定する と、 すべてのプロパティが表示されます。

4. [Simulation Run Time] を 「2000 ns」 に変更します。

5. [OK] をク リ ッ ク します。

メモ : 各プロパティの詳細な説明は、[Process Properties] ダイアログ ボッ クスで [Help] ボタンをク

リ ッ ク してください。

シミ ュレーシ ョ ンの実行

プロセス プロパティを設定したら、ModelSim を実行します。 ビヘイビア シ ミ ュレーシ ョ ンを実行

するには、[Simulate Behavioral Model] をダブルク リ ッ ク します。 ModelSim によ り、作業ディ レク

ト リの作成、 ソース ファ イルのコンパイル、デザインの読み込みが実行され、指定した時間だけシ

ミ ュレーシ ョ ンが実行されます。

このデザインの大部分は 100Hz で動作するので、 シ ミ ュレーシ ョ ンに時間がかかり ます。 RESETがディアサート されてから約 33ms 後に SF_D および LCD_E 制御信号が遷移し始めるので、 短時

間のシ ミ ュレーシ ョ ンではカウンタが動作していないよ うに見えます。 このチュート リ アルでは、

DCM の信号のみを調べて、 正常に動作しているかど うかを検証します。

X-Ref Target - Figure 4-3

図 4-3 : ビヘイビア シミ ュレーシ ョ ンのプロセス プロパティ

88 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 4 章 : ビヘイビア シミ ュレーシ ョ ン

信号の追加

シミ ュレーショ ン中の内部信号を表示するには、[Wave] ウィ ンド ウに追加する必要があり ます。 上

位のポート は、 あらかじめ追加されています。 その他の信号は、 [Structure] ウィ ンド ウの [Sim] タブ

での選択に応じて [Objects] ウィ ンド ウに表示されます。

[Wave] ウ ィンド ウに信号を追加するには、 次の 2 つの方法があ り ます。

• [Objects] ウ ィンド ウから ド ラ ッグ アンド ド ロ ップする。

• [Objects] ウィ ンド ウで信号をク リ ッ ク し 、 [Add] → [Wave] → [Selected Signals] をク リ ッ ク

する。

次に、デザイン階層の信号を追加する方法を示します。 このチュート リ アルでは、波形に DCM 信号

を追加します。

ModelSim のバージ ョ ン 6.0 以降を使用している場合は、 すべてのウ ィンド ウはデフォルトでメ イ

ン ウ ィンド ウ内に表示されます。 [Dock/Undock pane] ボタンをク リ ッ クする と、ウ ィ ンド ウを切り

離すこ と ができます。

デザイン階層の信号を追加するには、 次の手順に従います。

1. [Sim] タブで、 [uut] の横にあるプラス記号 (+) をク リ ッ ク して階層を展開します。

次の図に、 VHDL フローの [Sim] タブを示します。 回路図または VHDL フローの [Sim] タブ

のレイアウ トは、 Verilog のものと異なる場合があ り ます。

2. [Sim] タブで、 [dcm_inst] を選択します。 [Objects] ウ ィンド ウに リ ス ト されている信号がアッ

プデート されます。

X-Ref Target - Figure 4-4

図 4-4 : [Dock/Undock pane] ボタン

X-Ref Target - Figure 4-5

図 4-5 : [Sim] タブ (VHDL フロー )

ISE アドバンス チュート リアル japan.xilinx.com 89UG695 (v12.1) 2010 年 4 月 19 日

ModelSim を使用したビヘイビア シミ ュレーシ ョ ン

3. [CLKIN_IN] を、[Objects] ウィ ンド ウから [Wave] ウィ ンド ウにド ラ ッ グ アンド ド ロ ッ プし

ます。

4. [Object] ウ ィンド ウで、 次の信号を選択します。

♦ RST_IN

♦ CLKFX_OUT

♦ CLK0_OUT

♦ LOCKED_OUT

メモ : 複数の信号を選択するには、 Ctrl キーを押しながら信号をク リ ッ ク します。

5. [Objects] ウ ィンド ウを右ク リ ッ クします。

6. [Add to Wave] → [Selected Signals] をク リ ッ ク します。

仕切りの追加

ModelSim の [Wave] ウ ィンド ウに仕切り を追加して、信号を区別しやすく します。 「DCM Signals」という仕切り を追加するには、 次の手順に従います。

1. 必要であれば、 ウ ィンド ウを切り離して 大化し、 波形が大き く表示されるよ うにします。

2. [Wave] ウ ィンド ウを右ク リ ッ ク し、 [Insert Divider] をク リ ッ ク します。

3. [Wave Divider Properties] ダイアログ ボッ クスの [Divider Name] に「DCM Signals」 と入力し

ます。

4. [OK] をク リ ッ ク します。

5. 作成した仕切り を CLKIN_IN 信号の上にド ラ ッグします。

次の図に、 DCM Signals 仕切り を追加した後の [Wave] ウ ィンド ウを示します。

新し く追加した信号に対しては、波形は表示されていません。 これは、ModelSim にこれらの信号の

データが記録されていないためです。 デフォルトでは、シ ミ ュレーシ ョ ンを実行したと きに [Wave]ウ ィンド ウに追加されていた信号のデータのみが記録されるので、 [Wave] ウ ィンド ウに信号を追

加した後、 シ ミ ュレーシ ョ ンを再実行する必要があ り ます。

X-Ref Target - Figure 4-6

図 4-6 : 「DCM Signals]という仕切りを追加した後の [Wave] ウィンドウ

90 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 4 章 : ビヘイビア シミ ュレーシ ョ ン

シ ミ ュレーシ ョ ンの再実行

ModelSim でシ ミ ュレーシ ョ ンを再実行するには、 次の手順に従います。

1. ツールバーの [Restart] ボタンをク リ ッ ク します。

2. [Restart] ダイアログ ボッ クスで [Restart] をク リ ッ ク します。

3. ModelSim のコマンド プロンプ トに 「run 2000 ns」 と入力します。

4. Enter キーを押します。

シ ミ ュレーシ ョ ンが 2000ns 間実行され、 DCM の波形が [Wave] ウ ィンド ウに表示されます。

信号の解析

DCM 信号が予測どおりに動作しているかを検証します。 CLK0_OUT は 50MHz、CLKFX_OUT は約 26MHz で動作する必要があ り ます。 DCM 出力は、 LOCKED 信号が High になるまでは無効な

ので、 LOCKED_OUT 信号が High になった後のものを解析する必要があ り ます。

ModelSim では、波形にカーソルを追加して、遷移間の時間を確認できます。 CLK0_OUT の周期を

確認するには、 次の手順に従います。

1. [Add] → [To Wave] → [Cursor] を 2 回ク リ ッ クして 2 本のカーソルを追加します。

2. 1 つ目のカーソルを、 LOCKED_OUT 信号が High になった後の、 CLK0_OUT 信号の 初の

立ち上がりエッジにド ラ ッグします。

3. 2 つ目のカーソルを 1 つ目のカーソルのすぐ右にド ラ ッグします。

X-Ref Target - Figure 4-7

図 4-7 : [Restart] ボタン

X-Ref Target - Figure 4-8

図 4-8 : [Restart] ダイアログ ボックス

X-Ref Target - Figure 4-9

図 4-9 : run コマンドの入力

ISE アドバンス チュート リアル japan.xilinx.com 91UG695 (v12.1) 2010 年 4 月 19 日

ISim を使用したビヘイビア シミ ュレーシ ョ ン

4. [Find Next Transition] ボタンを 2 回ク リ ッ クして、カーソルを CLK0_OUT 信号の次の立ち上

がりエッジに移動します。

5. 2 つのカーソル間の距離が、 波形の下に表示されます。

結果は 20000ps とな り、 周波数に変換する と 50MHz になり ます。 この値は、 テス トベンチか

らの入力周波数に等し く、 DCM の CLK0 出力周波数は正しい値である と判断できます。

6. 同じ手順を使用して CLKFX_OUT を調べます。 結果は 38462ps とな り、 周波数に変換する と

約 26MHz になり ます。

シミ ュレーシ ョ ンの保存

信号またはスティ ミ ュラスを追加した後、またはシ ミ ュレーシ ョ ンを再実行した後に、[Wave] ウ ィ

ンド ウに リ ス ト されている信号を保存できます。 保存した信号のリ ス トは、 シ ミ ュレーシ ョ ンを開

始する と きに簡単に開く こ とができます。

信号のリ ス ト を保存するには、 次の手順に従います。

1. [Wave] ウ ィンド ウを選択した状態で、 [File] → [Save As] をク リ ッ ク します。

2. [Save Format] ダイアログ ボッ クスで、ファ イル名をデフォルトの wave.do から dcm_signal.doに変更します。

3. [OK] をク リ ッ ク します。

シ ミ ュレーシ ョ ンを再実行する と きに、 [Wave] ウ ィンド ウで [File] → [Load] をク リ ッ ク してこの

ファイルを読み込むこ とができます。

これで、ビヘイビア シ ミ ュレーシ ョ ンは完了しました。 この後、第 5 章「デザイン インプ リ メンテー

シ ョ ン」 の手順に従って、 デザインをインプ リ メン ト します。

ISim を使用したビヘイビア シミ ュレーシ ョ ン

ISim を使用してシ ミ ュレーシ ョ ンを実行する場合は、 このセクシ ョ ンの手順に従ってください。

プロジェク トにテス トベンチを追加したら、 ISim を使用してデザインのビヘイビア シ ミ ュレー

シ ョ ンを実行します。 ISim は、 ISE ソフ ト ウェアと完全に統合されています。 ISE ソフ ト ウェアか

ら ISim による作業ディ レク ト リの作成、 ソース ファ イルのコンパイル、 デザインの読み込み、 シ

ミ ュレーシ ョ ン プロパティを使用したシ ミ ュレーシ ョ ンの実行が可能です。

ISim をプロジェク トのシ ミ ュレータ と して選択するには、 次の手順に従います。

1. [Design] パネルの [Hierarchy] ペインで、 デバイス名 (xc3s700A-4fg484) を右ク リ ッ ク して

[Design Properties] をク リ ッ ク します。

2. [Design Properties] ダイアログ ボッ ク スで [Simulator] を [ISim (VHDL/Verilog)] に設定し

ます。

X-Ref Target - Figure 4-10

図 4-10 : [Find Next Transition] ボタン

92 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 4 章 : ビヘイビア シミ ュレーシ ョ ン

ISE のシミ ュレーシ ョ ン プロセス

ISE ソフ ト ウェアのシ ミ ュレーシ ョ ン プロセスを使用する と、 ISim を使用したデザインのシ ミ ュ

レーシ ョ ンを実行できます。 ISim のプロセスを見つけるには、 次の手順に従います。

1. [Design] パネルの [View] ペインで [Simulation] をオンにし、 ド ロ ップダウン リ ス トから [Behavioral] を選択します。

2. [Hierarchy] ペインで、 テス トベンチ ファ イル (stopwatch_tb) を選択します。

3. [Processes] ペインで [ISim Simulator] を展開してプロセスを表示します。

次のシ ミ ュレーシ ョ ン プロセスがあ り ます。

♦ [Check Syntax]

テス トベンチに構文エラーがないかど うかを確認します。

♦ [Simulate Behavioral Model]

デザインのビヘイビア シ ミ ュレーシ ョ ンを実行します。

シミ ュレーシ ョ ン プロパティの指定

stopwatch デザインのビヘイビア シ ミ ュレーシ ョ ンを実行する前に、 シ ミ ュレーシ ョ ンのプロセス

プロパティを設定します。

ISE ソフ ト ウェアでは、ISim のプロパティおよびシ ミ ュレーシ ョ ン ネッ ト リ ス トのプロパティを設

定できます。 このチュート リ アルのビヘイビア シ ミ ュレーシ ョ ンのプロパティを表示/変更するに

は、 次の手順に従います。

1. [Design] パネルの [Hierarchy] ペインで、テス トベンチ ファ イル (stopwatch_tb) を選択します。

2. [Processes] ペインで [ISim Simulator] を展開し、[Simulate Behavioral Model] を右ク リ ッ ク し

て [Process Properties] をク リ ッ ク します。

3. [Property display level] を [Advanced] に設定します。

[Advanced] に設定する と、 すべてのプロパティが表示されます。

メモ : 各プロパティの詳細な説明は、 [Process Properties] ダイアログ ボッ クスで [Help] ボタ

ンをク リ ッ ク してください。

4. [Simulation Run Time] を 「2000 ns」 に変更します。

5. [OK] をク リ ッ ク します。

ISE アドバンス チュート リアル japan.xilinx.com 93UG695 (v12.1) 2010 年 4 月 19 日

ISim を使用したビヘイビア シミ ュレーシ ョ ン

次の図に、 ビヘイビア シ ミ ュレーシ ョ ンのプロパティを示します。

シミ ュレーシ ョ ンの実行

プロセス プロパティを設定したら、ISim を実行してデザインをシ ミ ュレーシ ョ ンします。 ビヘイビ

ア シ ミ ュレーシ ョ ンを実行するには、[Simulate Behavioral Model] をダブルク リ ッ ク します。 ISimによ り、作業ディ レク ト リの作成、ソース ファ イルのコンパイル、デザインの読み込みが実行され、

指定した時間だけシ ミ ュレーシ ョ ンが実行されます。

このデザインの大部分は 100Hz で動作するので、 シ ミ ュレーシ ョ ンに時間がかかり ます。 RESETがディアサート されてから約 33ms 後に SF_D および LCD_E が遷移し始めるので、 短時間のシ

ミ ュレーシ ョ ンではカウンタが動作していないよ うに見えます。 このチュート リ アルでは、 DCMの信号のみを調べて、 正常に動作しているかど うかを検証します。

X-Ref Target - Figure 4-11

図 4-11 : ビヘイビア シミ ュレーシ ョ ンのプロセス プロパティ

94 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 4 章 : ビヘイビア シミ ュレーシ ョ ン

信号の追加

シ ミ ュレーシ ョ ン中の信号を表示するには、 波形ウ ィンド ウに追加する必要があ り ます。 上位の

ポートは、 あらかじめ追加されています。 その他の信号は、 [Instances and Processes] パネルに表示

されます。 次に、デザイン階層の信号を追加する方法を示します。 このチュート リ アルでは、波形に

DCM 信号を追加します。

デザイン階層の信号を追加するには、 次の手順に従います。

1. [Instances and Processes] パネルで [stopwatch_tb] → [UUT] を展開します。

次の図に VHDL フローの [Instances and Processes] パネルを示します。 回路図または Verilogフローの [Instances and Processes] パネルのレイアウ トは、 VHDL のものと異なる場合があ り

ます。

2. [Instances and Processes] パネルで [Inst_dcm1] をク リ ッ ク します。

3. clkin_in を [Objects] パネルから波形ウ ィンド ウにド ラ ッグ アンド ド ロ ップします。

4. 次の信号を選択します。

♦ RST_IN

♦ CLKFX_OUT

♦ CLK0_OUT

♦ LOCKED_OUT

メモ : 複数の信号を選択するには、 Ctrl キーを押しながら信号をク リ ッ ク します。

X-Ref Target - Figure 4-12

図 4-12 : [Instances and Processes] パネル (VHDL フロー )

ISE アドバンス チュート リアル japan.xilinx.com 95UG695 (v12.1) 2010 年 4 月 19 日

ISim を使用したビヘイビア シミ ュレーシ ョ ン

5. 選択した信号を波形ウ ィ ン ド ウにド ラ ッグします。 または、 選択した信号を右ク リ ッ ク して

[Add to Wave Window] をク リ ッ ク しても、 同じ操作を実行できます。

新し く追加した信号に対しては、波形は表示されていません。 これは、 ISim にこれらの信号のデー

タが記録されていないためです。 デフォルトでは、 シ ミ ュレーシ ョ ンを実行したと きに波形ウ ィン

ド ウに追加されていた信号のデータのみが記録されるので、波形ウ ィンド ウに信号を追加した後、シ

ミ ュレーシ ョ ンを再実行する必要があ り ます。

シミ ュレーシ ョ ンの再実行

ISim でシ ミ ュレーシ ョ ンを再実行するには、 次の手順に従います。

1. ツールバーの [Restart] ボタンをク リ ッ ク します。

2. ISim のコマンド プロンプ トに 「run 2000 ns」 と入力し、 Enter キーを押します。

シ ミ ュレーシ ョ ンが 2000ns 間実行され、 DCM の波形が波形ウ ィンド ウに表示されます。

信号の解析

DCM 信号が予測どおりに動作しているかを検証します。 CLK0_OUT は 50MHz、CLKFX_OUT は約 26MHz で動作する必要があ り ます。 DCM 信号は、 LOCKED 信号が High になるまでは無効な

ので、 LOCKED 信号が High になった後のものを解析する必要があ り ます。

ISim では、 波形にマーカを追加して、 遷移間の時間を確認できます。 CLK0_OUT の周期を確認す

るには、 次の手順に従います。

1. 必要に応じて、 ツールバーのズーム ボタンを使用して波形を拡大表示します。

2. 波形ウ ィンド ウのツールバーで [Snap to Transition] ボタンをク リ ッ ク します。

X-Ref Target - Figure 4-13

図 4-13 : シミ ュレーシ ョ ン波形に信号を追加

X-Ref Target - Figure 4-14

図 4-14 : ISim の [Restart] ボタン

X-Ref Target - Figure 4-15

図 4-15 : ツールバーの [Snap to Transition] ボタン

96 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 4 章 : ビヘイビア シミ ュレーシ ョ ン

3. LOCKED_OUT 信号が High になった後の、 CLK0_OUT 信号の 初の立ち上がりエッジをク

リ ッ ク し、 カーソルを CLK0_OUT 信号の次の立ち上がりエッジにド ラ ッグします。

4. 波形ウ ィンド ウの下部に開始点の時間、 終了点の時間、 および時間差が表示されます。 この例

では時間差は 20.0ns であ り、周波数に変換する と 50MHz になり ます。 この値はテス トベンチ

からの入力周波数に等し く、 DCM の CLK0 出力の周波数は正しいと判断できます。

5. 同じ手順を使用して CLKFX_OUT を調べます。 結果は 38.5 ns とな り、 周波数に変換する と約

26MHz になり ます。

これで、ビヘイビア シ ミ ュレーシ ョ ンは完了しました。 この後、第 5 章「デザイン インプ リ メンテー

シ ョ ン」 の手順に従って、 デザインをインプ リ メン ト します。

X-Ref Target - Figure 4-16

図 4-16 : 波形ウィンドウに表示される遷移間の時間

ISE アドバンス チュート リアル japan.xilinx.com 97UG695 (v12.1) 2010 年 4 月 19 日

第 5 章

デザイン インプリ メンテーシ ョ ン

この章は、 次のセクシ ョ ンから構成されています。

• 「インプ リ メンテーシ ョ ンの概要」

• 「入門」

• 「プロパティの設定」

• 「タ イ ミ ング制約の作成」

• 「デザインの変換」

• 「Constraints Editor の使用」

• 「PlanAhead ソフ ト ウェアを使用した I/O ロケーシ ョ ンの割り当て」

• 「デザインのマップ」

• 「タ イ ミ ング解析を使用したマップ後のブロ ッ ク遅延の評価」

• 「デザインの配置配線」

• 「FPGA Editor を使用した配置配線の検証」

• 「配置配線後のタイ ミ ングの評価」

• 「コンフ ィギュレーシ ョ ン データの作成」

• 「コマンド ラインを使用したインプ リ メンテーシ ョ ン」

インプリ メンテーシ ョ ンの概要

インプ リ メンテーシ ョ ンは、 デザインを変換、 マップ、 配置配線し、 ビッ ト ス ト リーム ファ イルを

生成するプロセスです。 ザイ リ ンクス ISE® ソフ ト ウェアにはデザイン インプ リ メンテーシ ョ ン

ツールが組み込まれており、 Project Navigator から簡単に実行できます。

この章は、「インプ リ メンテーシ ョ ンのみのフロー」 の 初の章であ り、「HDL デザイン フロー」 お

よび 「回路図デザイン フロー」 の続きの章です。

この章では、 ISE ソフ ト ウェアのインプリ メンテーシ ョ ン フローを示します。 デザインは、 既に

EDA インターフェイス ツールでコンパイルされています。 デザインのコンパイルについては、第 2章 「HDL ベースのデザイン」 または第 3 章 「回路図ベースのデザイン」 を参照して ください。 この

章では、 フロン トエンド ツールで生成された合成済みネッ ト リ ス ト (EDN、 NGC) をインプ リ メン

テーシ ョ ン ツールで処理し、 ユーザー制約ファイル (UCF) を使用して配置制約を適用します。 また、 タイ ミ ング制約を追加し、 さ らに配置制約を追加します。

98 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 5 章 : デザイン インプリ メンテーシ ョ ン

入門

チュート リ アルのデザインは、 実時間と ラ ップタイムを表示するス ト ップウォッチの機能を表して

います。 このシステムには、CLK、RESET、LAP_LOAD、MODE、および SRTSTP の 5 つの入力

があ り、 ラ ップタイムと通常のタイマーを LCD ディ スプレイに表示します。

デザイン入力からの継続

HDL デザイン フローまたは回路図デザイン フローのチュート リ アルに従いプロジェク ト を作成し

た場合は、 ソース ファ イルは完成しており、 合成済みデザインも生成されています。

プロジェク ト に stopwatch.ucf 制約ファイルが含まれていない場合は、 次の手順に従って作成します。

1. [Design] パネルの [Hierarchy] ペインで、 上位ソース ファ イル stopwatch を選択します。

2. [Project] → [New Source] をク リ ッ ク します。

3. [Implementation Constraints File] を選択します。

4. [File name] に 「stopwatch.ucf」 と入力します。

5. [Next] をク リ ッ ク します。

6. [Finish] をク リ ッ ク します。

プロジェク トに UCF を追加したら、この章のチュート リ アルを開始できます。 「プロパティの設定」

に進んでください。

デザイン インプリ メンテーシ ョ ンからの開始

チュート リ アルをこの章から開始する場合は、 ザイ リ ンクスの Web サイ トから合成済みのデザイ

ンをダウンロード し、ISE ソフ ト ウェアでプロジェク ト を作成して、ダウンロード したファ イルを追

加します。

1. Watch という名前の作業ディ レク ト リ を作成します。

2. 次の表に示される合成済みのチュート リ アル ファ イルをダウンロード して、作成した作業ディ

レク ト リに追加します。 ファ イルは、ザイ リ ンクスの Web サイ トの ISE Design Suite 12 チュー

ト リ アル ページからダウンロードできます。

3. 次のいずれかの方法で、 ISE ソフ ト ウェアを開きます。

a. ワークステーシ ョ ン : 「ise」 と入力します。

b. PC : [スタート ] → [すべてのプログラム] → [Xilinx ISE Design Suite 12.1] → [ISE デザイ

ン ツール] → [Project Navigator] をク リ ッ ク します。

表 5-1 : 必要なチュート リアル ファイル

ファイル名 説明

stopwatch.edn、 stopwatch.edf、 または stopwatch.ngc

入力ネッ ト リ ス ト ファ イル (EDIF)

timer_preset.ngc タイマー ネッ ト リ ス ト ファ イル (NGC)

stopwatch.ucf ユーザー制約ファイル

ISE アドバンス チュート リアル japan.xilinx.com 99UG695 (v12.1) 2010 年 4 月 19 日

プロパティの設定

4. 次の手順に従って新規プロジェク ト を作成し、 EDIF ネッ ト リ ス ト を追加します。

a. [File] → [New Project] をク リ ッ ク します。

b. [Name] に 「wtut_edif」 と入力します。

c. [Top-level source type] を [EDIF] に設定し、 [Next] をク リ ッ ク します。

d. [Input design] で stopwatch.edf または stopwatch.edn を選択します。

e. [Constraints file] で stopwatch.ucf を選択し、 [Next] をク リ ッ ク します。

f. 次のよ うに設定します。

- [Family] : [Spartan3A and Spartan3AN]

- [Device] : [XC3S700A]

- [Package] : [FG484]

- [Speed] : [-4]

g. [Next] をク リ ッ ク し、次のページで [Finish] をク リ ッ ク して、 プロジェク ト作成を完了し

ます。

メモ : timer_preset.ngc ファ イルがプロジェク ト ディ レク ト リにない場合、 解凍した ZIP ファ

イルからコピーします。

プロパティの設定

このセクシ ョ ンでは、デザイン インプ リ メンテーシ ョ ンのプロセス プロパティを設定する方法を示

します。 インプ リ メンテーシ ョ ン プロパティは、 デザインのマップ、 配置、 配線、 および 適化を

制御します。

このチュート リ アルのインプ リ メンテーシ ョ ン プロパティを設定するには、 次の手順に従います。

1. [Design] パネルの [View] ペインで [Implementation] をオンにします。

2. [Hierarchy] ペインで 上位ソース ファ イル stopwatch を選択します。

3. [Processes] ペインで [Implement Design] を右ク リ ッ ク し 、[Process Properties] をク リ ッ ク し

ます。

[Process Properties] ダイアログ ボッ クスが開き、変換、マップ、配置配線、 タイ ミ ング レポー

トのプロパティを設定できるよ うになり ます。 ダイアログ ボッ クスの左ペインでカテゴ リ をク

リ ッ ク し、 各デザイン インプリ メンテーシ ョ ン フェーズのプロパティを設定します。

4. [Property display level] が [Advanced] に設定されているこ とを確認します。

[Advanced] に設定する と、 すべてのプロパティが表示されます。

5. [Category] で [Place & Route Properties] をク リ ッ ク します。

6. [Place & Route Effort Level (Overall)] を [High] に変更します。

100 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 5 章 : デザイン インプリ メンテーシ ョ ン

このオプシ ョ ンは、 配置配線の全般的なエフォート レベルを指定します。

7. [OK] をク リ ッ ク して [Process Properties] ダイアログ ボッ クスを閉じます。

タイ ミング制約の作成

ユーザー制約ファイル (UCF) はテキス ト ファ イルであ り、テキス ト エディ タで直接編集できます。

このファ イルを編集しやすくするため、制約を作成および編集するグラフ ィカル ツールが提供され

ています。 Constraints Editor および PlanAhead™ ソフ ト ウェアは、 タイ ミ ング、 I/O、 および配置

制約を入力するためのグラフ ィカル ツールです。

Constraints Editor を起動するには、 次の手順に従います。

1. [Design] パネルの [Hierarchy] ペインで、 stopwatch モジュールを選択します。

2. [Processes] ペインで [User Constraints] を展開し、[Create Timing Constraints] をダブルク リ ッ

ク します。

変換プロセスが実行されます。変換プロセスについては、次のセクシ ョ ンで説明します。 ConstraintsEditor が起動します。

X-Ref Target - Figure 5-1

図 5-1 : [Process Properties] ダイアログ ボックスの [Place & Route Properties] ページ

X-Ref Target - Figure 5-2

図 5-2 : [Create Timing Constraints] プロセス

ISE アドバンス チュート リアル japan.xilinx.com 101UG695 (v12.1) 2010 年 4 月 19 日

デザインの変換

デザインの変換

インプ リ メンテーシ ョ ンで作成されたファイルは、ISE ソフ ト ウェアによ り管理されます。 ISE デザ

インのプロセスは、[Process Properties] ダイアログ ボッ クスで指定された設定を使用して実行され

るので、 デザインの処理方法を完全に制御するこ とが可能です。 通常は、 まずプロパティを設定し、

[Implement Design] プロセスを実行してインプリ メンテーシ ョ ン全体を 1 つのステップで実行し

ます。 [Implement Design] プロセスには、 [Translate]、 [Map]、 [Place & Route] の 3 つのサブプロ

セスがあ り ます。 [Implement Design] プロセスを実行して 3 つのサブプロセスをすべて実行する

か、 サブプロセスを個別に実行できます。 このチュート リ アルでは、 各手順を理解しやすくするた

め、 サブプロセスを個別に実行します。

変換プロセスでは、 NGDBuild によ り次の処理が実行されます。

• 入力デザイン ネッ ト リ ス トが変換され、 統合された 1 つの NGD ネッ ト リ ス トが生成されま

す。 この NGD ネッ ト リ ス トでは、 デザインの論理と ロケーシ ョ ン制約およびタイ ミ ング制約

が記述されます。

• タイ ミ ング仕様のチェッ ク と論理デザイン ルール チェッ クが実行されます。

• 統合されたネッ ト リ ス トにユーザー制約ファイル (UCF) の制約情報が追加されます。

Constraints Editor の使用

[Create Timing Constraints] プロセスを実行する と、変換が自動的に実行され、Constraints Editor が起動します。

Constraints Editor では、 次の操作を実行できます。

• UCF ファ イルで定義されている制約の編集

• デザインへの制約の追加

Constraints Editor への入力ファイルは、 次のとおりです。

• NGD (Native Generic Database) ファ イル

マッ プ ツールへの入力ファイルで、このファイルから物理的デザイン データベースである NCD(Native Circuit Description) ファ イルが生成されます。

• ユーザー制約ファイル (UCF)

ISE プロジェク トに含まれるすべての UCF ファ イルが Constraints Editor に渡されます。

ISE プロジェク トでは複数の UCF ファ イルがサポート されています。 プロジェク トに含まれるす

べての制約ファイルが Constraints Editor に読み込まれ、制約を編集する とその制約が記述されてい

た制約ファイルで更新されます。 新しい制約は、Constraints Editor で指定した UCF ファ イルに記述

されます。

変換プロセス (NGDBuild) では、ソース ネッ ト リ ス ト と共に UCF ファ イルが使用され、NGD ファ

イルがアップデート されます。 その次の段階であるマップ プロセスでは、 この NGD ファ イルが読

み込まれます。 このチュート リ アルの場合、 stopwatch.ngd ファ イルと stopwatch.ucf ファ イルが自

動的に Constraints Editor に読み込まれます。

このセクシ ョ ンの手順に従う と、 PERIOD、 グローバル OFFSET IN、 グローバル OFFSET OUT、および TIMEGRP OFFSET IN 制約が UCF に記述され、インプリ メンテーシ ョ ンで使用されます。

[Timing Constraints] パネルで [Timing Constraints] → [Clock Domains] を選択する と、デザインの

クロ ッ ク ネッ トがすべて表示され、PERIOD、pad-to-setup、および clock-to-pad の値を設定できま

す。 内部名の多くは、 デザイン フローおよび合成ツールによって異なるこ とに注意して ください。

102 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 5 章 : デザイン インプリ メンテーシ ョ ン

次の図に Constraints Editor を示します。

Constraints Editor で、 次の手順に従って制約を編集します。

1. [Unconstrained Clocks] 表で clk 信号の行をダブルク リ ッ ク します。 [Clock Period] ダイアログ

ボッ クスが開きます。

2. [Clock signal definition] で、 [Specify time] がオンになっているこ とを確認します。

このオプシ ョ ンをオンにする と、 ク ロ ッ ク周期の値を入力できます。

3. [Time] に 「7.0」 と入力します。

4. [Units] を [ns] に設定します。

5. [Input jitter] に 「60」 と入力します。

6. [Units] を [ps] に設定します。

X-Ref Target - Figure 5-3

図 5-3 : Project Navigator の Constraints Editor ([Clock Domains] を選択)

X-Ref Target - Figure 5-4

図 5-4 : PERIOD 制約の設定

X-Ref Target - Figure 5-5

図 5-5 : INPUT JITTER 制約の設定

ISE アドバンス チュート リアル japan.xilinx.com 103UG695 (v12.1) 2010 年 4 月 19 日

Constraints Editor の使用

7. [OK] をク リ ッ ク します。

ウ ィンド ウ上部の制約の表に PERIOD 制約が表示されます。 ダイアログ ボッ クスで定義した

設定が示されています (デューティ サイクルはデフォルトの 50%)。

8. [Timing Constraints] パネルで [Timing Constraints] → [Inputs] をク リ ッ ク します。

9. 右下のグローバル OFFSET IN 制約の表で clk 信号をダブルク リ ッ ク し、 [Create Setup Time(OFFSET IN)] ダイアログ ボッ クスを開きます。

10. 初のページでデフォルト値をそのまま使用し、 [Next] をク リ ッ ク します。

11. [External setup time (offset in)] に 「6」 と入力し、 [Unit] を [ns] に設定します。

12. [Data valid duration] に 「6」 と入力し、 [Unit] を [ns] に設定します。

CLK 信号のグローバル OFFSET IN 制約が作成されます。

X-Ref Target - Figure 5-6

図 5-6 : [Create Setup Time (OFFSET IN)] ダイアログ ボックスの 1 ページ目

104 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 5 章 : デザイン インプリ メンテーシ ョ ン

13. [Finish] をク リ ッ ク します。

14. [Timing Constraints] パネルで [Timing Constraints] → [Outputs] をク リ ッ ク します。

15. 右下のグローバル OFFSET OUT 制約の表で clk 信号をダブルク リ ッ ク します。

16. [External clock to pad (offset out)] に 「38」 と入力し、 [Units] を [ns] に設定します。

CLK 信号のグローバル OFFSET OUT 制約が作成されます。

X-Ref Target - Figure 5-7

図 5-7 : [Create Setup Time (OFFSET IN)] ダイアログ ボックスの 2 ページ目

ISE アドバンス チュート リアル japan.xilinx.com 105UG695 (v12.1) 2010 年 4 月 19 日

Constraints Editor の使用

17. [OK] をク リ ッ ク します。

18. [Unconstrained Output Ports] の表で、 Shift キーを押しながら sf_d[0] から sf_d[7] までを選択

します。

19. 右ク リ ッ ク し、 [Create Time Group] をク リ ッ ク します。

X-Ref Target - Figure 5-8

図 5-8 : [Create Clock to Pad (OFFSET OUT)] ダイアログ ボックス

106 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 5 章 : デザイン インプリ メンテーシ ョ ン

20. [Create Time Group] ダイアログ ボッ クスで、 [Time group name] に 「display_grp」 と入力し、

[OK] をク リ ッ ク します。

21. オフセッ ト制約を作成するかど うかを尋ねるダイアログ ボッ クスが表示されたら、 [OK] をク

リ ッ ク します。

22. [External clock to pad (offset out)] に 「32」 と入力し、 [Units] を [ns] に設定します。

X-Ref Target - Figure 5-9

図 5-9 : タイム グループの作成

ISE アドバンス チュート リアル japan.xilinx.com 107UG695 (v12.1) 2010 年 4 月 19 日

Constraints Editor の使用

23. [OK] をク リ ッ ク します。

24. Constraints Editor で [File] → [Save] をク リ ッ ク します。

加えた変更が stopwatch.ucf ファ イルに保存されます。

25. [File] → [Close] をク リ ッ ク して Constraints Editor を終了します。

X-Ref Target - Figure 5-10

図 5-10 : [Create Clock to Pad (OFFSET OUT)] ダイアログ ボックス

108 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 5 章 : デザイン インプリ メンテーシ ョ ン

PlanAhead ソフ トウェアを使用した I/O ロケーシ ョ ンの割り当て NGD ファ イルで定義されているピン ロケーシ ョ ンおよびエリ ア グループ制約を追加または編集

するには、 PlanAhead ソフ ト ウェアを使用します。 PlanAhead ソフ ト ウェアでは、 制約はプロジェ

ク トの UCF ファ イルに記述されます。 プロジェク トに複数の UCF ファ イルがある場合は、新しい

制約を記述する制約ファイルを指定する必要があ り ます。 既存の制約を変更する と、 その制約が記

述されていた制約ファイルで更新されます。 PlanAhead ソフ ト ウェアには、 ピン配置を支援するた

め、 デバイス特定のデザイン ルール チェッ ク も含まれています。

変換プロセスでは、ソース ネッ ト リ ス ト と共にデザイン UCF ファ イルが使用され、NGD ファ イル

がアップデート されます。 NGD には、デザインおよび UCF ファ イルに加えた変更が反映されます。

このセクシ ョ ンでは、 いくつかの信号に対してピンを割り当てます。

1. [Design] パネルの [Hierarchy] ペインで、 stopwatch モジュールを選択します。

2. [Processes] ペインで [User Constraints] を展開し、[I/O Pin Planning (PlanAhead) - Post-Synthesis]をダブルク リ ッ ク します。

I/O ピン配置は、合成前または合成後のどちらでも実行できますが、できる限り合成後に実行す

るこ とをお勧めします。 合成後のデザインには、 PlanAhead ソフ ト ウェアで実行される I/O およびクロ ッ クに関連したデザイン ルール チェッ クに必要な情報が含まれています。

このプロセスによ り、 PlanAhead ソフ ト ウェアが起動します。 デザインが合成されていない場

合、 Project Navigator で合成が自動的に実行されます。

表示される [Welcome] ダイアログ ボッ クスに、PlanAhead ソフ ト ウェアのマニュアル、チュー

ト リ アル、およびその他の ト レーニング資料へのリ ンクがあ り ます。このチュート リ アルでは、

PlanAhead ソフ ト ウェアの使用方法と機能の概要を説明します。 詳細情報、 すべての機能を理

解するには、 その他のリ ソースを参照してください。

X-Ref Target - Figure 5-11

図 5-11 : [I/O Pin Planning (PlanAhead) - Post-Synthesis] プロセス

ISE アドバンス チュート リアル japan.xilinx.com 109UG695 (v12.1) 2010 年 4 月 19 日

PlanAhead ソフ トウェアを使用した I/O ロケーシ ョ ンの割り当て

3. [Welcome] ダイアログ ボッ クスで [Close] をク リ ッ ク します。

4. [I/O Ports] ビューで [All ports] → [Scalar ports] を展開します。 lcd_e、 lcd_rs、 および

lcd_rw I/O 信号のピン割り当てを作成します。

5. lcd_e 出力信号を選択し、 [Package] ビューの AB4 ピン ロケーシ ョ ンにド ラ ッグ アンド ドロ ップします。

6. 手順 5 を繰り返して、 次の出力ピンを配置します。

♦ LCD_RS : Y14

♦ LCD_RW : W13

X-Ref Target - Figure 5-12

図 5-12 : PlanAhead ソフ トウェア

X-Ref Target - Figure 5-13

図 5-13 : [Package] ビューへのドラッグによる I/O ピンの割り当て

110 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 5 章 : デザイン インプリ メンテーシ ョ ン

または、I/O 信号を選択して [I/O Port Properties] ビューの [Site] にロケーシ ョ ンを入力して割

り当てるこ と もできます。

7. ド ラ ッグ アンド ド ロ ップまたは [I/O Port Properties] ビューを使用した方法のいずれかを使用

して、 次の入力信号を適切な I/O ピン ロケーシ ョ ンに配置します。

♦ LAP_LOAD : T16

♦ RESET : U15

♦ MODE : T14

♦ STRTSTOP : T15

8. ピン ロケーショ ンを設定したら、[File] → [Save Project] をク リ ッ ク します。変更が stopwatch.ucfファ イルに保存されます。

9. [File] → [Exit] をク リ ッ ク して PlanAhead ソフ ト ウェアを終了します。

デザインのマップ

インプ リ メンテーシ ョ ン プロパティ と制約が定義されたので、次のよ うにデザインのインプ リ メン

テーシ ョ ンを継続します。

1. [Design] パネルの [Hierarchy] ペインで、 stopwatch モジュールを選択します。

2. [Processes] ペインで [Implement Design] を展開し、 [Map] をダブルク リ ッ ク します。

変換プロセスが 新でない場合、 変換プロセスも自動的に実行されます。

デザインは、CLB および IOB にマップされます。 マップ プロセスでは、次の処理が実行されます。

• デザインに含まれるすべての基本ロジッ クに CLB および IOB リ ソースが割り当てられます。

• ロケーシ ョ ン制約およびタイ ミ ング制約の処理、 ターゲッ ト デバイスに対する 適化の実行、

マップされたネッ ト リ ス トに対するデザイン ルール チェッ クが実行されます。

X-Ref Target - Figure 5-14

図 5-14 : [I/O Port Properties] を使用する I/O ピンの割り当て

ISE アドバンス チュート リアル japan.xilinx.com 111UG695 (v12.1) 2010 年 4 月 19 日

デザインのマップ

インプ リ メンテーシ ョ ンの各プロセスに対し、 次のよ うにレポートが生成されます。

レポート を表示するには、 次の手順に従います。

1. [Design] パネルの [Processes] ペインで [Design Summary/Reports] をダブルク リ ッ ク します。

表 5-2 : マップ プロセスまでに生成されるインプリ メンテーシ ョ ンのレポート

レポート 説明

変換レポート変換プロセスの警告メ ッセージおよびエラー

メ ッセージが記述されます。

マップ レポート

ターゲッ ト デバイスのリ ソースがどのよ うに

割り当てられたか、 適化によ り削除されたロ

ジッ クに関する情報、デバイスの使用率が示さ

れます。

NGDBuild および MAP のすべてのレポート

マップ レポートの詳細は、 『コマンド ラ イン

ツール ユーザー ガイ ド』 を参照してください。

このガイ ドは ISE ソフ ト ウェア マニュアル コレクシ ョ ンに含まれています。ソフ ト ウェア マニュアル コレクシ ョ ンを開くには、 [Help] →[Software Manuals] をク リ ッ クするか、ザイ リ

ンクス Web サイ トのソフ ト ウェア マニュアル

コレクシ ョ ンにアクセスします。

X-Ref Target - Figure 5-15

図 5-15 : [Design Summary/Reports] プロセス

112 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 5 章 : デザイン インプリ メンテーシ ョ ン

次の図に、 デザイン サマリ /レポート ビューアを示します。

2. デザイン サマリの左上の左ペインで、 [Detailed Reports] セクシ ョ ンの [Translation Report] または [Map Report] を選択します。

3. レポート を確認します。

デザイン サマリには、デザイン結果の概要およびインプ リ メンテーシ ョ ン実行で生成されたす

べてのメ ッセージ (エラー、 警告、 情報) も表示されます。

タイ ミング解析を使用したマップ後のブロック遅延の評価

デザインをマップしたら、ロジッ ク レベルのタイ ミ ング レポート を使用してデザインの論理パスを

評価します。 マップ済みデザインの評価では、 タイ ミ ング仕様に対してブロ ッ ク遅延が適当である

かど うかが判断されます。 デザインは配置配線されていないので、 実際の配線遅延はわかっていま

せん。 この段階のタイ ミ ング レポートでは、論理ブロ ッ ク遅延と予測される配線遅延が示されます。

ネッ ト遅延は、 ブロ ッ ク間の 適な距離 ( 「未配置のフロア」 と も呼ばれる) に基づいています。

タイ ミング要件の評価

タイ ミ ング要件が現実的であるかを評価するには、 マップ後のデザインを確認します。 ブロ ッ ク遅

延はパスの総遅延の約 50% を占める という、おおよそのガイ ド ラインがあ り ます ( 「50/50 ルール」

と も呼ばれる)。 たとえば、 パスのブロ ッ ク遅延が 10ns である場合、 配置配線後にタイ ミ ング制約

20ns を満たすと考えられます。

X-Ref Target - Figure 5-16

図 5-16 : デザイン サマリ /レポート ビューア

ISE アドバンス チュート リアル japan.xilinx.com 113UG695 (v12.1) 2010 年 4 月 19 日

タイ ミング解析を使用したマップ後のブロック遅延の評価

デザインの集積度が高い場合、マップ後のスタティ ッ ク タイ ミ ング レポートで、ブロ ッ ク遅延と予

測される配線遅延に基づいて、タイ ミ ング制約を解析できます。 この解析によ り、タイ ミ ング制約が

満たされるかど うかを予測できます。 このレポートは、 マップの後、 配置配線の前に生成します。

マップ後のスタテ ィ ッ ク タイ ミング レポートの表示

マップ後のスタティ ッ ク タイ ミ ング レポート を使用する と、配置配線を実行する前に、タイ ミ ング

違反が発生する可能性があるかを調べるこ とができます。 このチュート リ アルの stopwatch デザイ

ンではタイ ミ ング制約を定義しているので、タイ ミ ング レポートには各タイ ミ ング制約が適用され

たパスが表示されます。

マップ後のスタティ ッ ク タイ ミ ング レポート を表示して入力した PERIOD 制約を評価するには、

次の手順に従います。

1. [Processes] ペインで [Map] を展開し、[Generate Post-Map Static Timing] をダブルク リ ッ ク し

ます。

2. [Analyze Post-Map Static Timing] をダブルク リ ッ ク して、マップ後のスタティ ッ ク タイ ミ ング

  レポート を開きます。

Timing Analyzer が起動し、 レポートが表示されます。

3. [Report Navigation] で [Timing constraints] の下にある [TS_inst_dcm1_CLKFX_BUF] タイ ミ

ング制約をク リ ッ ク します。

選択した制約のレポー ト がワーク スペースに表示されます。 このレポー ト には、 選択した

PERIOD 制約とマップ後の 小周期が表示されます。 デフォルトでは、 1 つのタイ ミ ング制約

に対して 3 つのパスのみが表示されます。 この 3 つのパスのいずれかをク リ ッ クする と、 その

パスに関する詳細情報 (コンポーネン ト遅延と配線遅延) を確認できます。

X-Ref Target - Figure 5-17

図 5-17 : [Analyze Post-Map Static Timing] プロセス

X-Ref Target - Figure 5-18

図 5-18 : マップ後のスタテ ィ ックタ イ ミング制約の選択

114 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 5 章 : デザイン インプリ メンテーシ ョ ン

各パスの 後に、 ロジッ ク遅延と配線遅延の割合がパーセン トで示されます ( 「88.0% logic,12.0% route」 など)。 横に 「e」 と記されているネッ ト遅延は予測値であ り、 ブロ ッ クの 適な

配置に基づいています。

4. レポート を確認したら、 [File] → [Close] をク リ ッ ク して Timing Analyzer を閉じます。

メモ : タイ ミ ング レポート を生成しなくても、配置配線プロセス (PAR) ではデザインのブロ ッ ク遅

延、フロア、およびタイ ミ ング仕様の関係に基づいてデザインが処理されます。 たとえば、あるパス

に 8ns の PERIOD 制約が設定されており、そのパスのブロッ ク遅延が 7ns で未配置フロアのネッ ト

遅延が 3ns である場合、PAR は停止しエラー メ ッセージが表示されます。 これは、総遅延 (10ns) がタイ ミ ング制約 (8ns) よ り大きいためです。 マップ後のスタティ ッ ク タイ ミ ング レポートには、

PAR で発生する可能性があるタイ ミ ング違反が表示されます。

デザインの配置配線

マップ済みのデザインを評価したら、 デザインを配置配線します。

配置配線 (PAR) プロセスでは、 次のいずれかの配置配線アルゴ リズムが実行されます。

• タイ ミ ング ド リブン PAR

入力ネッ ト リ ス ト 、制約ファイル、またはその両方で指定されたタイ ミ ング制約を使用して、配

置配線が実行されます。

• 非タイ ミ ング ド リブン PAR

タイ ミ ング制約を無視して、 配置配線が実行されます。

このチュート リ アルではタイ ミ ング制約を定義しているので、タイ ミ ング ド リブンの配置配線が実

行されます。

配線配置を実行するには、 次の手順に従います。

1. [Design] パネルの [Hierarchy] ペインで、 stopwatch モジュールを選択します。

2. [Processes] ペインで [Implement Design] を展開し [Place & Route] をダブルク リ ッ ク します。

[Place & Route] プロセスでは、 次の表に示すレポートが生成されます。

表 5-3 : 配置配線で生成されるレポート

レポート 説明

配置配線レポート

デバイスの使用率と遅延のサマ リ を示します。 このレ

ポートで、 デザインの配置配線が完了しているか、 タイ

ミ ング制約が満たされているかを確認します。

非同期遅延レポートデザインのすべてのネッ トおよびネッ ト 上のロードの

遅延を示します。

PAR のすべてのレポート

PAR レポートの詳細は、 『コマンド ラ イン ツール ユー

ザー ガイ ド』 を参照して ください。このガイ ドは ISE ソフ ト ウェア マニュアル コレクシ ョ ンに含まれていま

す。 ソフ ト ウェア マニュアル コレクシ ョ ンを開くには、

[Help] → [Software Manuals] をク リ ッ クするか、ザイ リ

ンクス Web サイ トのソフ ト ウェア マニュアル コレク

シ ョ ンにアクセスします。

ISE アドバンス チュート リアル japan.xilinx.com 115UG695 (v12.1) 2010 年 4 月 19 日

FPGA Editor を使用した配置配線の検証

メモ : 上記以外にオプショ ンで生成可能なレポート もあり ます。 これらのレポート の生成は、 配置配

線プロセス プロパティ で有効にします。これらレポート を生成すると 、デザイン サマリ の [SecondaryReports] セクショ ンに表示されます。

配置配線で生成されたレポート を表示するには、 次の手順に従います。

1. [Design] パネルの [Processes] ペインで、[Design Summary/Reports] をダブルク リ ッ ク します。

2. デザイン サマリの左上のペインで [Detailed Reports] → [Place and Route Report] をク リ ッ ク

します。

次の図に、 デザイン サマリに表示された配置配線レポート を示します。

FPGA Editor を使用した配置配線の検証

FPGA Editor を使用して、 FPGA を表示、 コンフ ィギュレーシ ョ ンします。

FPGA Editor は、 NCD (Native Circuit Description) ファ イル、 マク ロ ファ イル (NMC)、 および物

理制約ファイル (PCF) を読み込み、 記述します。

FPGA Editor では、 次の操作を実行できます。

• 自動配置配線を実行する前に、 重要なコンポーネン ト を配置配線します。

• 配線プログラムでデザインの配線が完了しなかった場合に、 配置配線を完了させます。

• デザインにプローブを追加して、 ターゲッ ト デバイスの信号のステート を調べます。 プローブ

は、 デバイスのデバッグで内部ネッ トの値を IOB (入力/出力ブロッ ク ) に割り当てるために使

用します。

• BitGen を実行し、生成されたビッ ト ス ト リームをターゲッ ト デバイスにダウンロード します。

• ILA (Integrated Logic Analyzer) コアのキャプチャ ユニッ トに接続されたネッ ト を表示/変更

します。

X-Ref Target - Figure 5-19

図 5-19 : 配置配線レポート

116 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 5 章 : デザイン インプリ メンテーシ ョ ン

FPGA のデザインのレイアウ ト を表示するには、 次の手順に従います。

1. [Design] パネルの [Processes] ペインで、 [Place & Route] を展開して [View/Edit RoutedDesign (FPGA Editor)] をダブルク リ ッ クします。

2. FPGA Editor で、List ウ ィンド ウの上部にある ド ロ ップダウン リ ス トから [All Nets] を選択し

ます。

デザインのすべてのネッ トが、 下のリ ス トに表示されます。

X-Ref Target - Figure 5-20

図 5-20 : [View/Edit Routed Design (FPGA Editor)] プロセス

X-Ref Target - Figure 5-21

図 5-21 : FPGA Editor の List ウィ ンドウ

ISE アドバンス チュート リアル japan.xilinx.com 117UG695 (v12.1) 2010 年 4 月 19 日

配置配線後のタイ ミングの評価

3. [clk_26214k] (ク ロ ッ ク ) ネッ ト を選択し、 ク ロ ッ ク ネッ トのファンアウ ト を確認します。

4. [File] → [Exit] をク リ ッ ク して FPGA Editor を終了します。

配置配線後のタイ ミングの評価

デザインの配置配線後、指定のタイ ミ ング要件に対するデザインのパフォーマンスを検証するため、

配置配線後のタイ ミ ング結果を解析できます。

タイ ミ ングを解析するには、 次の方法があ り ます。

• 配置配線後のスタティ ッ ク タイ ミ ング レポート を表示する。

• PlanAhead ソフ ト ウェアを使用して配置配線後のタイ ミ ング解析を実行する。

• デザイン サマリのハイパーリ ンクを使用して、 個々のタイ ミ ング制約を解析する。

配置配線後のスタテ ィ ック タイ ミング レポートの表示

配置配線後のスタティ ッ ク タイ ミ ング レポートには、 論理ブロ ッ ク遅延と配線遅延が示されます。

ネッ ト遅延は、実際の配線遅延と して示されます。 レポート を表示するには、次の手順に従います。

1. デザイン サマリの左上のペインで、 [Design Overview] → [Static Timing] をク リ ッ ク します。

メモ : [Processes] ペインで [Implement Design] → [Place & Route] → [Generate Post-Place &Route Static Timing] を展開して [Analyze Post-Place & Route Static Timing] プロセスをダブ

ルク リ ッ ク しても、 同じ操作を実行できます。

2. タイ ミ ング レポートが Timing Analyzer で開きます。

X-Ref Target - Figure 5-22

図 5-22 : クロック ネッ ト

118 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 5 章 : デザイン インプリ メンテーシ ョ ン

配置配線後のスタティ ッ ク タイ ミ ング レポートから、 次のこ とがわかり ます。

♦ 小周期の値が、 実際の配置遅延によ り増加しています。

マップ後のタイ ミ ング レポートでは、ロジッ ク遅延が 小周期の 80% ~ 90% を占めてい

るこ とが示されていましたが、 配置配線後のレポートでは、ロジッ ク遅延値が 30% ~ 40%を示すと示されています。 未配置フロアの予測も変化しています。

♦ 配置配線のタイ ミ ングは、必ずしも 50/50 ルールに従いません。ワース ト ケースのパスは、

ほとんどがコンポーネン ト遅延です。

♦ 満たすこ とが困難なタイ ミ ング制約では、ワース ト ケースのパスは大部分がロジッ ク遅延

です。 パス遅延の合計に対して配線遅延の合計の占める割合は小さ く、 2 ~ 3 個のネッ ト

に分散されているので、 これらのパスのタイ ミ ングをこれ以上減らすこ とは難し くなり ま

す。 通常、 ロジッ クのレベル数を減らすと、 ブロ ッ ク遅延が減少し、 デザイン パフォーマ

ンスが向上します。

PlanAhead ソフ トウェアを使用したデザインの解析

PlanAhead ソフ ト ウェアを使用して、 配置配線後のデザインを解析できます。 デザイン結果の解析

およびデザイン ク ロージャのために、グラフ ィカル レイアウ ト解析、タイ ミ ング パス表示、および

フロアプランを実行できます。

1. [Design] パネルの [Hierarchy] ペインで、 stopwatch モジュールを選択します。

2. [Processes] ペインで [Implement Design] → [Place & Route] を展開し、 [Analyze Timing/Floorplan Design (PlanAhead)] をダブルク リ ッ ク します。

次の図に、 [Analyze Timing/Floorplan Design (PlanAhead)] を示します。X-Ref Target - Figure 5-23

図 5-23 : [Analyze Timing/Floorplan Design (PlanAhead)] プロセス

ISE アドバンス チュート リアル japan.xilinx.com 119UG695 (v12.1) 2010 年 4 月 19 日

コンフ ィギュレーシ ョ ン データの作成

3. PlanAhead が開いたら、[Timing Results] ビューでタイ ミ ング パスの 1 つをク リ ッ ク します。パ

スが [Device] ビューにグラフ ィカルに表示され、 [Path Properties] タブにパスとその遅延の詳

細が表示されます。

4. [Device] ビューで、 マウスをク リ ッ クおよびド ラ ッグしてパス周辺を囲むボッ クスを描き、 拡

大表示します。

タイ ミ ング解析およびデザイン クロージャに関する PlanAhead ソフ ト ウェアの全機能を説明

する詳細なチュート リ アルは、 [Help] → [PlanAhead Tutorials] をク リ ッ ク し、 『PlanAhead ソフ ト ウェア チュート リ アル : デザイン解析およびフロアプラン』 を参照して ください。

5. [File] → [Exit] をク リ ッ ク して PlanAhead ソフ ト ウェアを終了します。

コンフ ィギュレーシ ョ ン データの作成

デザインを解析したら、 コンフ ィギュレーシ ョ ン データを生成します。 生成したコンフ ィギュレー

シ ョ ン ビッ ト ス ト リームは、ターゲッ ト デバイスにダウンロード するか、または PROM プログラ

ム ファ イルに変換します。

このチュート リ アルでは、ザイ リ ンクス シ リ アル PROM 用のコンフ ィギュレーシ ョ ン データを生

成します。 ターゲッ ト デバイス用のビッ ト ス ト リームを生成するには、 次の手順に従います。

1. [Design] パネルの [Hierarchy] ペインで、 stopwatch モジュールを選択します。

2. [Processes] ペインで [Generate Programming File] を右ク リ ッ ク し、 [Process Properties] をク

リ ッ ク します。

3. [Process Properties] ダイアログ ボッ クスの [Category] で、[Startup Options] をク リ ッ ク します。

X-Ref Target - Figure 5-24

図 5-24 : PlanAhead ソフ トウェアでタイ ミング パスを表示

120 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 5 章 : デザイン インプリ メンテーシ ョ ン

4. [FGPA Start-Up Clock] プロパティを [JTAG Clock] に設定します。

メモ : Select MAP またはシ リ アル スレーブをコンフ ィギュレーシ ョ ンする場合は、 [CCLK]に設定します。

5. [OK] をク リ ッ ク します。

6. [Processes] ペインで [Generate Programming File] をダブルク リ ッ ク します。

BitGen によ り、コンフ ィギュレーシ ョ ン データを含む design_name.bit という名前のビッ ト ス

ト リーム ファ イル (このチュート リ アルでは stopwatch.bit) が生成されます。

7. デザイン サマリで [Detailed Reports] → [Bitgen Report] をク リ ッ ク し、プログラム ファ イル生

成レポート を表示します。 コンフ ィギュレーシ ョ ン データを作成する際に指定したオプシ ョ ン

が使用されているこ とを確認してください。

iMPACT を使用した PROM ファイルの生成

iMPACT を使用して 1 つのデバイスをプログラムするのに必要なファイルは、 ビッ ト ス ト リーム

ファ イルのみです。 デイジー チェーン コンフ ィギュレーシ ョ ンの複数のデバイスをプログラムす

る場合、 または PROM を使用してデバイスをプログラムする場合は、 iMPACT を使用して PROMファ イルを作成する必要があ り ます。iMPACT では、任意の数のビッ ト ス ト リームを入力して、1 つのデバイスまたはデイジー チェーン コンフ ィギュレーシ ョ ンのデバイス用に 1 つまたは複数の

PROM ファ イルを生成できます。

iMPACT では、 ウ ィザードの指示に従って次の操作を実行できます。

• PROM ファ イルを作成します。

• デイジー チェーンにビッ ト ス ト リームを追加します。

• 追加のデイジー チェーンを作成します。

• 現在のビッ ト ス ト リームを削除して 初から始めるか、 または現在の PROM ファ イル コン

フ ィギュレーシ ョ ンを保存します。

このチュート リ アルでは、 次の手順に従って PROM ファ イルを生成します。

1. [Processes] ペインで [Configure Target Device] → [Generate Target PROM/ACE File] をダブ

ルク リ ッ ク します。

X-Ref Target - Figure 5-25

図 5-25 : [Process Properties] ダイアログ ボックスの [Startup Options] ページ

ISE アドバンス チュート リアル japan.xilinx.com 121UG695 (v12.1) 2010 年 4 月 19 日

コンフ ィギュレーシ ョ ン データの作成

2. iMPACT の [iMPACT Flows] パネルで [Create PROM File (PROM File Formatter)] をダブル

ク リ ッ ク します。

3. PROM File Formatter の [Select Storage Target] セクシ ョ ンで [Xilinx Flash/PROM] をク リ ッ

ク します。

4. 緑の矢印をク リ ッ ク して次のセクシ ョ ンをアクティブにします。

5. [Add Storage Device(s)] セクシ ョ ンで、 [Auto Select PROM] をオンにします。

6. 緑の矢印をク リ ッ ク して次のセクシ ョ ンをアクティブにします。

7. [Enter Data] セクシ ョ ンの [Output File Name] に 「stopwatch1」 と入力します。

8. [Checksum Fill Value] が 「FF」、 [File Format] が [MCS] に設定されているこ とを確認します。

9. [OK] をク リ ッ ク して PROM File Formatter を閉じます。

10. [Add Device] ダイアログ ボッ クスで [OK] をク リ ッ ク し 、stopwatch.bit ファ イルを選択して [開く ] をク リ ッ ク します。

11. 別のデザイン ファ イルをデータス ト リームに追加するかど うかを確認するダイアログ ボッ ク

スで、 [No] をク リ ッ ク します。

12. [OK] をク リ ッ ク してプロセスを終了します。

13. ワークスペースでデバイス グラフ ィ ッ クを選択し、 [iMPACT Processes] パネルで [GenerateFile] をダブルク リ ッ ク します。

X-Ref Target - Figure 5-26

図 5-26 : iMPACT の [Create PROM File (PROM File Formatter)]

X-Ref Target - Figure 5-27

図 5-27 : PROM File Formatter

122 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 5 章 : デザイン インプリ メンテーシ ョ ン

iMPACT に PROM と関連付けられたビッ ト ス ト リーム ファ イルが表示されます。

14. [File] → [Exit] をク リ ッ ク して iMPACT を終了します。

15. プロジェク ト を保存するかど うかを確認するダイアログ ボッ クスが表示されたら、 [Yes] をク

リ ッ ク し、 プロジェク ト ファ イルに 「stopwatch_impact.ipf」 とい う名前を付けます。

生成された stopwatch.bit、stopwatch1.mcs、および BIT ファ イルと共に生成された MSK ファ イル

を使用する と、 iMPACT を使用してデバイスをプログラムできます。 デバイスのプログラムに関す

る詳細は、iMPACT ヘルプを参照して ください。このヘルプは、iMPACT で [Help] → [Help Topics]をク リ ッ クする と表示されます。

これで、チュート リ アルのデザイン インプ リ メンテーシ ョ ンが完了しました。 デザイン フローの詳

細およびインプ リ メンテーシ ョ ンのス ト ラテジは、 ISE ヘルプを参照して ください。 このヘルプは、

ISE ソフ ト ウェアで [Help] → [Help Topics] をク リ ッ クする と表示されます。

コマンド ラインを使用したインプリ メンテーシ ョ ン

ISE ソフ ト ウェアでは、インプリ メンテーシ ョ ンの各プロセスで使用されたコマンド ラ イン コマン

ド とそのオプシ ョ ンおよび引数を、簡単に表示および抽出できます。 この機能を使用する と、使用さ

れたオプシ ョ ンを確認したり、 コマンド バッチ ファ イルを作成したりできます。

デザイン フローのどの段階でも、 [Processes] ペインで [Design Utilities] の下にある [ViewCommand Line Log File] をダブルク リ ッ ク する と、使用されたコマンド ラ イン コマンド とそのオ

プシ ョ ンおよび引数を表示できます。 このプロセスを実行する と、 <source_name>.cmd_log という ファ イルが読み込み専用で開きます。 編集可能なバッチ ファ イルを作成するには、 [File] →[Save As] をク リ ッ ク し、 ファ イル名を指定してファ イルを保存します。

また、 このファ イルの一部をコピーして、 テキス ト ファ イルに貼り付けまたはド ラ ッグ アンド ドロ ップするこ と も可能です。

ザイ リ ンクスのコマンド プログラムのコマンド ラ イン オプシ ョ ンについては、 『コマンド ライン

ツール ユーザー ガイ ド』 を参照してください。 コマンド ラ イン オプシ ョ ンは、 インプ リ メンテー

シ ョ ン ツールごとに説明されています。 このガイ ドは ISE ソフ ト ウェア マニュアル コレクシ ョ ン

に含まれています。 ソフ ト ウェア マニュアル コレクシ ョ ンを開くには、 [Help] → [SoftwareManuals] をク リ ッ クするか、ザイ リ ンクス Web サイ トのソフ ト ウェア マニュアル コレクシ ョ ンに

アクセスします。 コマンド ラ イン オプシ ョ ンは、 コマンド プロンプ トでコマンド名を -h オプシ ョ

ンを使用して実行しても表示されます。

X-Ref Target - Figure 5-28

図 5-28 : PROM File

ISE アドバンス チュート リアル japan.xilinx.com 123UG695 (v12.1) 2010 年 4 月 19 日

第 6 章

タイ ミング シミ ュレーシ ョ ン

この章は、 次のセクシ ョ ンから構成されています。

• 「タ イ ミ ング シ ミ ュレーシ ョ ン フローの概要」

• 「入門」

• 「ModelSim を使用したタイ ミ ング シ ミ ュレーシ ョ ン」

• 「ザイ リ ンクス ISim を使用したタイ ミ ング シ ミ ュレーシ ョ ン」

タイ ミング シミ ュレーシ ョ ン フローの概要

タイ ミ ング シ ミ ュレーシ ョ ンでは、配線済みデザインのブロ ッ クおよび配線遅延情報を使用するの

で、 ワース ト ケースの回路の動作をよ り正確に評価できます。 タイ ミ ング シ ミ ュレーシ ョ ンは、 デ

ザインの配置配線後に実行されます。

配置配線後のタイ ミ ング シ ミ ュレーシ ョ ンは、ザイ リ ンクス デバイスの HDL デザイン フローで推

奨されるステップです。 タイ ミ ング シ ミ ュレーシ ョ ンでは、 配置配線後に得られるタイ ミ ングおよ

びデザイン配置の詳細な情報が使用されます。 これによ り、 実際のデバイス動作にほぼ一致するデ

ザインのシ ミ ュレーシ ョ ンを実行できます。 スタティ ッ ク タイ ミ ング解析に加えてタイ ミ ング シミ ュレーシ ョ ンを実行する と、スタティ ッ ク タイ ミ ング解析のみでは見つけるこ とができない問題

を検出できます。 デザインを完全に検証するには、 デザインをスタティ ッ クおよびダイナ ミ ッ クに

解析する必要があ り ます。

この章では、ModelSim シ ミ ュレータまたはザイ リ ンクス ISim シ ミ ュレータを使用してタイ ミ ング

シ ミ ュレーシ ョ ンを実行します。

入門

次に、 このチュート リ アルでタイ ミ ング シ ミ ュレーシ ョ ンを実行するための要件を示します。

必要なソフ トウェア

ModelSim でシミ ュレーショ ンを実行するには、ザイリ ンク ス ISE® Design Suite 12 と ModelSim シミ ュレータがインスト ールされている必要があり ます。 ModelSim のインス トールおよび設定につ

いての詳細は、第 4 章「ビヘイビア シ ミ ュレーシ ョ ン」を参照して ください。 ISim でシ ミ ュレーシ ョ

ンを実行するには、 ISE Design Suite 12 ソフ ト ウェアがインス トールされている必要があ り ます。

124 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 6 章 : タイ ミング シミ ュレーシ ョ ン

必要なファイル

タイ ミ ング シ ミ ュレーシ ョ ン フローでは、 次のファイルが必要です。

• デザイン ファ イル (VHDL または Verilog)

第 5 章 「デザイン インプリ メンテーシ ョ ン」 を完了し、デザインで配置配線が完了しているこ

とを前提と します。 この章では、NetGen を使用して配置配線したデザインからシ ミ ュレーシ ョ

ン ネッ ト リ ス ト を生成します。このネッ ト リ ス トは、タイ ミ ング シ ミ ュレーシ ョ ンでデザイン

を表現するために使用されます。

• テス トベンチ ファ イル (VHDL または Verilog)

デザインをシ ミ ュレーシ ョ ンするには、 デザインにスティ ミ ュラスを供給するテス トベンチが

必要です。 ビヘイビア シ ミ ュレーシ ョ ンで使用したテス トベンチを使用する必要があ り ます。

プロジェク トにテス トベンチがない場合は、 第 4 章 の 「HDL テス トベンチの追加」 を参照し

てください。

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

タイ ミ ング シ ミ ュレーシ ョ ンでは、デザインをシ ミ ュレーシ ョ ンするのに SIMPRIM ライブラ

リが必要です。

ザイ リ ンクス デザインでタイ ミ ング シ ミ ュレーシ ョ ンを実行するには、どの HDL シ ミ ュレータを

使用する場合でも、 SIMPRIM ライブラ リが正し く設定されている必要があ り ます。 ザイ リ ンクス

で生成されたタイ ミ ング シ ミ ュレーシ ョ ンのネッ ト リ ス トには、インスタンシエート されたプリ ミ

ティブすべてが含まれており、 これらのプリ ミ ティブのモデルが SIMPRIM ライブラ リで提供され

ます。

第 4 章 「ビヘイビア シ ミ ュレーシ ョ ン」 を完了している場合は、 SIMPRIM ライブラ リは既にコン

パイルされています。 ザイ リ ンクス シ ミ ュレーシ ョ ン ライブラ リのコンパイルおよび設定につい

ての詳細は、 第 4 章 の 「ザイ リ ンクス シ ミ ュレーシ ョ ン ライブラ リ 」 を参照してください。

シミ ュレータの指定

stopwatch デザインのシ ミ ュレーシ ョ ンに使用するシ ミ ュレータを指定するには、 次の手順に従い

ます。

1. [Design] パネルの [Hierarchy] ペーンで、 デバイス名 (xc3s700A-4fg484) を右ク リ ッ ク して

[Design Properties] をク リ ッ ク します。

2. [Design Properties] ダイアログ ボッ クスの [Simulator] で [ISim (VHDL/Verilog)] を選択する

か、 ModelSim のタイプと言語の組み合わせを選択します。

メモ : Project Navigator に統合されているシ ミ ュレータは、ModelSim とザイ リ ンクス ISim のみで

す。 NC-Sim、VCS などのほかのシ ミ ュレータを選択する と、NetGen によ りそのシ ミ ュレータ用の

シ ミ ュレーシ ョ ン ネッ ト リ ス ト を作成するオプシ ョ ンは正し く設定されますが、 Project Navigatorからシ ミ ュレータを直接開く こ とはできません。 シ ミ ュレーシ ョ ンの詳細およびサポート されるそ

の他のシ ミ ュレータについては、『合成/シ ミ ュレーシ ョ ン デザイン ガイ ド』を参照してください。 このガイ ドは ISE ソフ ト ウェア マニュアル コレクシ ョ ンに含まれています。 ソフ ト ウェア マニュア

ル コレクシ ョ ンを開くには、[Help] → [Software Manuals] をク リ ッ クするか、ザイ リ ンクスの Webサイ トのソフ ト ウェア マニュアル コレクシ ョ ンにアクセスします。

ISE アドバンス チュート リアル japan.xilinx.com 125UG695 (v12.1) 2010 年 4 月 19 日

ModelSim を使用したタイ ミング シミ ュレーシ ョ ン

ModelSim を使用したタイ ミング シミ ュレーシ ョ ン

ザイ リ ンクス ISE ソフ ト ウェアでは、 Mentor Graphics 社の ModelSim シ ミ ュレータをフローに統

合できます。 ISE ソフ ト ウェアから ModelSim による作業ディ レク ト リの作成、 ソース ファ イルの

コンパイル、 シ ミ ュレーシ ョ ンの初期化、 およびシ ミ ュレータのプロパティの制御が可能です。

メモ : ISim でシ ミ ュレーシ ョ ンを実行する場合は、 「ザイ リ ンクス ISim を使用したタイ ミ ング シミ ュレーシ ョ ン」 に進んでください。 このチュート リ アルでは、 ModelSim シ ミ ュレータまたは

ISim のどちらを使用しても、 同じ結果を達成できます。

シミ ュレーシ ョ ン プロパティの指定

シ ミ ュレーシ ョ ン プロセス プロパティを設定するには、 次の手順に従います。

1. [Design] パネルの [View] ペインで [Simulation] をオンにし、 ド ロ ップダウン リ ス トから [Post-Route] を選択します。

2. [Hierarchy] ペインで、 テス トベンチ ファ イル (stopwatch_tb) を選択します。

3. [Processes] ペインで [ModelSim Simulator] を展開し、[Simulate Post-Place & Route Model] を右ク リ ッ ク して [Process Properties] をク リ ッ ク します。

メモ : [ModelSim Simulator] プロセスが表示されない場合は、 「シ ミ ュレータの指定」 を参照

して [Design Properties] ダイアログ ボッ クスで ModelSim が選択されているこ と を確認しま

す。 正し く設定されているのに [ModelSim Simulator] プロセスが表示されない場合は、ProjectNavigator で modelsim.exe が認識されているかを確認します。 このファ イルの場所を設定する

には、 [Edit] → [Preferences] をク リ ッ ク し、 [Preferences] ダイアログ ボッ クスの左ペインで

[ISE General] → [Integrated Tools] をク リ ッ ク して、 [Model Tech Simulator] で modelsim.exeファ イルを指定します。 たとえば、 c:\modeltech_xe\win32xoem\modelsim.exe のよ う

に指定します。

4. [Property display level] が [Advanced] に設定されているこ とを確認します。

[Advanced] に設定する と、 すべてのプロパティが表示されます。

5. [Category] で [Simulation Model Properties] をク リ ッ ク します。 これらのプロパティを使用し

て、 NetGen でシ ミ ュレーシ ョ ン ネッ ト リ ス ト を生成する際のオプシ ョ ンを設定します。 各プ

ロパティの説明を表示するには、 [Help] をク リ ッ ク して ください。

126 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 6 章 : タイ ミング シミ ュレーシ ョ ン

次の図に示すよ う な [Process Properties] ダイアログ ボッ クスが表示されます。 このチュート

リ アルでは、 デフォルトのプロパティ設定を使用します。

6. [Category] で [Display Properties] をク リ ッ ク します。 このページのプロパティを使用して、

ModelSim のウ ィンド ウ表示を制御します。 デフォルトでは、 [Structure window]、 [Signal window]、 [Wave window] がオンになっており、 ISE ソフ ト ウェアからタイ ミ ング シ ミ ュレー

シ ョ ンを起動したと きに、[Structure]、[Objects]、[Wave] の 3 つのウ ィンド ウが表示されます。

ModelSim シ ミ ュレータのウ ィンド ウ表示に関する詳細は、 ModelSim のユーザー ガイ ドを参

照してください。

7. [Category] で [Simulation Properties] をク リ ッ ク します。 これらのプロパティを使用して、

ModelSim でタイ ミ ング シ ミ ュレーシ ョ ンを実行する と きのオプシ ョ ンを設定します。 各プロ

パティの説明を表示するには、 [Help] をク リ ッ ク して ください。

X-Ref Target - Figure 6-1

図 6-1 : シミ ュレーシ ョ ン モデルのプロパティ

ISE アドバンス チュート リアル japan.xilinx.com 127UG695 (v12.1) 2010 年 4 月 19 日

ModelSim を使用したタイ ミング シミ ュレーシ ョ ン

次の図に示すよ う な [Process Properties] ダイアログ ボッ クスが表示されます。 [SimulationRun Time] プロパティを 「2000 ns」 に設定します。

8. [OK] をク リ ッ ク して [Process Properties] ダイアログ ボッ クスを閉じます。

シミ ュレーシ ョ ンの実行

タイ ミ ング シ ミ ュレーシ ョ ンを実行するには、 [Processes] ペインで [Simulate Post-Place & RouteModel] をダブルク リ ッ クします。

まず NetGen が実行されてタイ ミ ング シ ミ ュレータ モデルが生成されます。 次に、ModelSim によ

り作業ディ レク ト リの作成、 ソース ファ イルのコンパイル、デザインの読み込みが行われ、指定し

た時間だけシ ミ ュレーシ ョ ンが実行されます。

メモ : このデザインの大部分は 100Hz で動作するので、シ ミ ュレーシ ョ ンに時間がかかり ます。 このため、 短時間のシ ミ ュレーシ ョ ンではカウンタが動作していないよ うに見えます。 このチュート

リ アルでは、 DCM の信号のみを調べて、 正常に動作しているかど うかを検証します。

信号の追加

シ ミ ュレーシ ョ ン中の信号を表示するには、[Wave] ウ ィンド ウに追加する必要があ り ます。 上位

のポートは、あらかじめ追加されています。 その他の信号は、[Structure] ウ ィンド ウの [Sim] タブで

の選択に応じて [Objects] ウ ィンド ウに表示されます。

[Wave] ウ ィンド ウに信号を追加するには、 次の 2 つの方法があ り ます。

• [Objects] ウ ィンド ウから ド ラ ッグ アンド ド ロ ップする。

• [Objects] ウィ ンド ウで信号をク リ ッ ク し 、 [Add] → [Wave] → [Selected Signals] をク リ ッ ク

する。

X-Ref Target - Figure 6-2

図 6-2 : [Simulation Properties] ページ

128 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 6 章 : タイ ミング シミ ュレーシ ョ ン

次に、デザイン階層の信号を追加する方法を示します。 このチュート リ アルでは、波形に DCM 信号

を追加します。

メモ : ModelSim のバージ ョ ン 6.0 以降を使用している場合は、すべてのウ ィンド ウはデフォルトで

メ イン ウ ィンド ウ内に表示されます。 [Dock/Undock pane] ボタンをク リ ッ クする と、ウ ィ ンド ウを

切り離すこ と ができます。

1. [Structure] ウ ィンド ウの [Sim] タブで、 [uut] 階層を展開します。

次の図に、 回路図フローの [Sim] タブを示します。 Verilog または VHDL フローの [Sim] タブ

のレイアウ トは、 回路図のものと異なる場合があ り ます。

2. [Edit] → [Find] をク リ ッ ク します。

3. [Find in sim] ダイアログ ボッ クスの [Find] に「X_DCM」 と入力し、[Field] で [Entity/Module]をオンにして [Find Next] をク リ ッ ク します。

4. X_DCM が表示されたら、X_DCM_SP を選択します。 [Objects] ウ ィンド ウに DCM のすべて

の信号が表示されます。

5. [Objects] ウ ィンド ウをク リ ッ ク し、 [Edit] → [Find] をク リ ッ ク します。

6. [Find in Objects] ダイアログ ボッ クスの [Find] に 「CLKIN」 と入力し、 [Exact] をオンにして

[Find Next] をク リ ッ ク します。

7. [clkin] を、 [Objects] ウ ィンド ウから [Wave] ウ ィンド ウにド ラ ッグ アンド ド ロ ップします。

X-Ref Target - Figure 6-3

図 6-3 : [Dock/Undock pane] ボタン

X-Ref Target - Figure 6-4

図 6-4 : [Sim] タブ (回路図フロー )

ISE アドバンス チュート リアル japan.xilinx.com 129UG695 (v12.1) 2010 年 4 月 19 日

ModelSim を使用したタイ ミング シミ ュレーシ ョ ン

8. 次の信号を、 [Objects] ウ ィンド ウから [Wave] ウ ィンド ウにド ラ ッグ アンド ド ロ ップします。

♦ RST

♦ CLKFX

♦ CLK0

♦ LOCKED

メモ : 複数の信号を選択するには、 Ctrl キーを押しながら信号をク リ ッ ク します。 [Add] → [Wave]→ [Selected Signals] をク リ ッ ク しても、 信号を追加します。

仕切りの追加

ModelSim の [Wave] ウ ィンド ウに仕切り を追加して、信号を区別しやすく します。 「DCM Signals」という仕切り を追加するには、 次の手順に従います。

1. 必要であれば、 ウ ィンド ウを切り離して 大化し、 波形が大き く表示されるよ うにします。

2. [Wave] ウ ィンド ウを右ク リ ッ ク し、 [Insert Divider] をク リ ッ ク します。

3. [Wave Divider Properties] ダイアログ ボッ クスの [Divider Name] に「DCM Signals」 と入力し

ます。

4. 作成した仕切り を CLKIN 信号の上にド ラ ッグします。

メモ : 信号名を完全に表示するには、 波形の 初の列を右側にド ラ ッグします。 信号名に含ま

れる階層は非表示にする こ と もできます。 非表示するには、 [Tools] → [Options] → [WavePreferences] をク リ ッ ク し、 [Display Signal Path] ボッ クスに 「2」 と入力して [OK] をク リ ッ

ク します。

次の図に示すよ う な波形が表示されます。

新し く追加した信号に対しては、波形は表示されていません。 これは、ModelSim にこれらの信号の

データが記録されていないためです。 デフォルトでは、シ ミ ュレーシ ョ ンを実行したと きに [Wave]ウ ィンド ウに追加されていた信号のデータのみが記録されるので、 [Wave] ウ ィンド ウに信号を追

加した後、 シ ミ ュレーシ ョ ンを再実行する必要があ り ます。

X-Ref Target - Figure 6-5

図 6-5 : 表示される波形

130 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 6 章 : タイ ミング シミ ュレーシ ョ ン

シ ミ ュレーシ ョ ンの再実行

シ ミ ュレーシ ョ ンを再実行するには、 次の手順に従います。

1. ツールバーの [Restart] ボタンをク リ ッ ク します。

[Restart] ダイアログ ボッ クスが開きます。

2. [Restart] をク リ ッ ク します。

3. ModelSim のコマンド プロンプ トに 「run 2000 ns」 と入力し、 [Enter] キーを押します。

シ ミ ュレーシ ョ ンが 2000ns 間実行され、 DCM の波形が [Wave] ウ ィンド ウに表示されます。

信号の解析

DCM 信号が予測どおりに動作しているかを検証します。 CLK0 は 50MHz、 CLKFX は約 26MHzで動作する必要があ り ます。 DCM 信号は、 LOCKED 信号が High になるまでは無効なので、

LOCKED 信号が High になった後のものを解析する必要があ り ます。

ModelSim では、波形にカーソルを追加して、遷移間の時間を確認できます。 CLK0 の周期を確認す

るには、 次の手順に従います。

1. [Add] → [To Wave] → [Cursor] を 2 回ク リ ッ クして 2 本のカーソルを追加します。

2. 1 つ目のカーソルを、 LOCKED_OUT 信号が High になった後の、 CLK0 信号の 初の立ち上

がりエッジにド ラ ッグします。

3. 2 つ目のカーソルを 1 つ目のカーソルのすぐ右にド ラ ッグします。

X-Ref Target - Figure 6-6

図 6-6 : [Restart] ボタン

X-Ref Target - Figure 6-7

図 6-7 : [Restart] ダイアログ ボックス

X-Ref Target - Figure 6-8

図 6-8 : run コマンドの入力

ISE アドバンス チュート リアル japan.xilinx.com 131UG695 (v12.1) 2010 年 4 月 19 日

ModelSim を使用したタイ ミング シミ ュレーシ ョ ン

4. [Find Next Transition] を 2 回ク リ ッ ク して、カーソルを CLK0 信号の次の立ち上がりエッジに

移動します。

2 つのカーソル間の距離が、波形の下に表示されます。 結果は 20000ps とな り、 周波数に変換する と

50MHz になり ます。この値は、テス トベンチからの入力周波数に等し く、DCM の CLK0 出力周波

数は正しい値である と判断できます。

同じ手順を使用して CLKFX を調べます。 結果は 38462ps とな り、 周波数に変換する と約 26MHzになり ます。

シミ ュレーシ ョ ンの保存

信号またはスティ ミ ュラスを追加した後、またはシ ミ ュレーシ ョ ンを再実行した後に、[Wave] ウ ィ

ンド ウに リ ス ト されている信号を保存できます。 保存した信号のリ ス トは、 シ ミ ュレーシ ョ ンを開

始する と きに簡単に開く こ とができます。 信号のリ ス ト を保存するには、 次の手順に従います。

1. [Wave] ウ ィンド ウを選択した状態で、 [File] → [Save As] をク リ ッ ク します。

2. [Save Format] ダイアログ ボッ クスで、 ファ イル名をデフォルトの wave.do から dcm_signal_tim.do に変更します。

3. [OK] をク リ ッ ク します。

シ ミ ュレーシ ョ ンを再実行する と きに、 [Wave] ウ ィンド ウで [File] → [Load] をク リ ッ ク してこの

ファイルを読み込むこ とができます。

これで、タイ ミ ング シ ミ ュレーシ ョ ンは完了しました。この後、第 7 章「iMPACT チュート リ アル」

の手順に従って、 デバイスをプログラムします。

X-Ref Target - Figure 6-9

図 6-9 : [Find Next Transition] ボタン

X-Ref Target - Figure 6-10

図 6-10 : [Save Format] ダイアログ ボックス

132 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 6 章 : タイ ミング シミ ュレーシ ョ ン

ザイリンクス ISim を使用したタイ ミング シミ ュレーシ ョ ン

ISim を使用してシ ミ ュレーシ ョ ンを実行する場合は、 このセクシ ョ ンの手順に従ってください。

シミ ュレーシ ョ ン プロパティの指定

シ ミ ュレーシ ョ ン プロセス プロパティを設定するには、 次の手順に従います。

1. [Design] パネルの [View] ペインで [Simulation] をオンにし、 ド ロ ップダウン リ ス トから [Post-Route] を選択します。

2. [Hierarchy] ペインで、 テス トベンチ ファ イル (stopwatch_tb) を選択します。

3. [Processes] ペインで [ISim Simulator] を展開し、[Simulate Post-Place & Route Model] を右ク

リ ッ ク して [Process Properties] をク リ ッ ク します。

4. [Property display level] が [Advanced] に設定されているこ とを確認します。

[Advanced] に設定する と、 すべてのプロパティが表示されます。

5. [Category] で [Simulation Model Properties] をク リ ッ ク します。 これらのプロパティを使用し

て、 NetGen でシ ミ ュレーシ ョ ン ネッ ト リ ス ト を生成する際のオプシ ョ ンを設定します。 各プ

ロパティの説明を表示するには、 [Help] をク リ ッ ク して ください。

このチュート リ アルでは、 デフォルトのプロパティ設定を使用します。

6. [Category] で [ISim Properties] をク リ ッ ク します。 これらのプロパティを使用して、ISim でタ

イ ミ ング シ ミ ュレーシ ョ ンを実行する際のオプシ ョ ンを設定します。 各プロパティの説明を表

示するには、 [Help] をク リ ッ ク して ください。

次の図に示すよ う な [Process Properties] ダイアログ ボッ クスが表示されます。 [SimulationRun Time] プロパティを 「2000 ns」 に設定します。

7. [OK] をク リ ッ ク して [Process Properties] ダイアログ ボッ クスを閉じます。

X-Ref Target - Figure 6-11

図 6-11 : [ISim Properties] ページ

ISE アドバンス チュート リアル japan.xilinx.com 133UG695 (v12.1) 2010 年 4 月 19 日

ザイリンクス ISim を使用したタイ ミング シミ ュレーシ ョ ン

シ ミ ュレーシ ョ ンの実行

タイ ミ ング シ ミ ュレーシ ョ ンを実行するには、 [Processes] ペインで [Simulate Post-Place & RouteModel] をダブルク リ ッ クします。

シ ミ ュレーシ ョ ン プロセスを実行する と、NetGen によ り配置配線デザインからタイ ミ ング シ ミ ュ

レーシ ョ ン モデルが生成されます。 その後、 ISim によ り ソース ファ イルがコンパイルされてデザ

インが読み込まれ、 指定した時間だけシ ミ ュレーシ ョ ンが実行されます。

メモ : このデザインの大部分は 100Hz で動作するので、シ ミ ュレーシ ョ ンに時間がかかり ます。 このため、 短時間のシ ミ ュレーシ ョ ンではカウンタが動作していないよ うに見えます。 このチュート

リ アルでは、 DCM の信号のみを調べて、 正常に動作しているかど うかを検証します。

信号の追加

シ ミ ュレーシ ョ ン中の信号を表示するには、 波形ウ ィンド ウに追加する必要があ り ます。 上位の

ポートは、 あらかじめ追加されています。 すべての外部信号 ( 上位ポート ) および内部信号は、

[Instances and Processes] パネルに表示されます。

次に、デザイン階層の信号を追加する方法を示します。 このチュート リ アルでは、波形に DCM 信号

を追加します。

1. [Instances and Processes] パネルで [stopwatch_tb] 階層を展開します。

2. [uut] 階層を展開します。

3. [Inst_dcm1_DCM_SP_INST] をク リ ッ ク します。

4. [Objects] パネルで [locked] 信号を右ク リ ッ ク し、 [Add to Wave Window] をク リ ッ ク します。

次の図に、VHDL フローの [Instances and Processes] および [Objects] パネルを示します。 回路

図または Verilog フローの [Instances and Processes] パネルのレイアウ トは、 VHDL のものと

異なる場合があ り ます。 X-Ref Target - Figure 6-12

図 6-12 : [Instances and Processes] および [Objects] パネル (VHDL フロー )

134 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 6 章 : タイ ミング シミ ュレーシ ョ ン

5. X_DCM_SP の次の信号を、 [Objects] パネルから波形ウ ィンド ウにド ラ ッグ アンド ド ロ ップ

します。

♦ RST

♦ CLKFX

♦ CLK0

♦ CLKIN

メモ : 複数の信号を選択するには、 Ctrl キーを押しながら信号をク リ ッ ク します。

信号名の表示の切り替え

信号名は、 階層名を含む完全な名前を表示するか、 階層名を表示せずに信号名だけを表示するかを

選択できます。 信号名表示を変更するには、 次の手順に従います。

1. 波形ウ ィンド ウで信号名を右ク リ ッ ク します。

2. [Name] → [Long] または [Name] → [Short] をク リ ッ ク します。

信号名を完全に表示するには、 波形の 初の列の幅を広げます。

次の図に示すよ う な波形が表示されます。

新し く追加した信号に対しては、波形は表示されていません。 これは、 ISim にこれらの信号のデー

タが記録されていないためです。 デフォルトでは、 シ ミ ュレーシ ョ ンを実行したと きに波形ウ ィン

ド ウに追加されていた信号のデータのみが記録されるので、波形ウ ィンド ウに信号を追加した後、シ

ミ ュレーシ ョ ンを再実行する必要があ り ます。

X-Ref Target - Figure 6-13

図 6-13 : 表示される波形

ISE アドバンス チュート リアル japan.xilinx.com 135UG695 (v12.1) 2010 年 4 月 19 日

ザイリンクス ISim を使用したタイ ミング シミ ュレーシ ョ ン

シ ミ ュレーシ ョ ンの再実行

シ ミ ュレーシ ョ ンを再実行するには、 次の手順に従います。

1. ツールバーの [Restart] ボタンをク リ ッ ク します。

2. ISim のコマンド プロンプ トに 「run 2000 ns」 と入力し、 Enter キーを押します。

シ ミ ュレーシ ョ ンが 2000ns 間実行され、 DCM の波形が波形ウ ィンド ウに表示されます。

信号の解析

DCM 信号が予測どおりに動作しているかを検証します。 CLK0 は 50MHz、 CLKFX は約 26MHzで動作する必要があ り ます。 DCM 信号は、 LOCKED 信号が High になるまでは無効なので、

LOCKED 信号が High になった後のものを解析する必要があ り ます。

ISim では、波形にマーカを追加して、遷移間の時間を確認できます。 CLK0 の周期を確認するには、

次の手順に従います。

1. 必要に応じて、 ツールバーのズーム ボタンを使用して波形を拡大表示します。

2. 波形ウ ィンド ウのツールバーで [Snap to Transition] ボタンをク リ ッ ク します。

3. LOCKED 信号が High になった後の、 CLK0 信号の 初の立ち上がりエッジをク リ ッ ク して、

カーソルを CLK0 信号の次の立ち上がりエッジにド ラ ッグします。

X-Ref Target - Figure 6-14

図 6-14 : [Restart] ボタン

X-Ref Target - Figure 6-15

図 6-15 : run コマンドの入力

X-Ref Target - Figure 6-16

図 6-16 : ツールバーの [Snap to Transition] ボタン

136 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 6 章 : タイ ミング シミ ュレーシ ョ ン

波形ウ ィンド ウの下部に開始点の時間、終了点の時間、および時間差が表示されます。 この例で

は時間差は 20.0ns であ り、 周波数に変換する と 50MHz になり ます。 この値はテス トベンチか

らの入力周波数に等し く、 DCM の CLK0 出力周波数は正しいと判断できます。

4. 同じ手順を使用して CLKFX を調べます。 結果は 38.5 ns と なり 、周波数に変換すると 約 26MHzになり ます。

これで、タイ ミ ング シ ミ ュレーシ ョ ンは完了しました。この後、第 7 章「iMPACT チュート リ アル」

の手順に従って、 デバイスをプログラムします。

X-Ref Target - Figure 6-17

図 6-17 : 波形ウィンドウに表示される遷移間の時間

ISE アドバンス チュート リアル japan.xilinx.com 137UG695 (v12.1) 2010 年 4 月 19 日

第 7 章

iMPACT チュート リアル

この章では、iMPACT を使用したファイルの生成方法およびデバイスのプログラム方法を説明しま

す。iMPACT では、プラ ッ ト フォーム ケーブル USB などの数種類のパラレル ケーブルを使用して

プログラムできます。また、ビッ ト ス ト リーム ファ イル、System ACE™ ソ リ ューシ ョ ン ファ イル、

PROM ファ イル、および SVF/XSVF ファ イルを生成できます。 SVF/XSVF ファ イルは、チェーン

を作成し直さずに再生できます。

このチュート リ アルは、 次のセクシ ョ ンから構成されています。

• 「デバイス サポート 」

• 「サポート されるダウンロード ケーブル」

• 「サポート されるコンフ ィギュレーシ ョ ン モード」

• 「入門」

• 「新規 iMPACT プロジェク ト ファ イルの作成」

• 「バウンダ リ スキャン コンフ ィギュレーシ ョ ン モードの使用」

• 「バウンダ リ スキャン コンフ ィギュレーシ ョ ンの ト ラブルシューティング」

• 「SVF ファ イルの作成」

デバイス サポート

サポート されているデバイスの詳細は、ザイ リ ンクス Web サイ トから 『ISE Design Suite 12 : イン

ス トール、 ライセンス、 リ リース ノート 』 を参照して ください。

サポート されるダウンロード ケーブル

次のケーブルがサポート されています。

パラレル ケーブル IVコンピュータのパラレル ポートに接続し、 バウンダ リ スキャン モードでのコンフ ィギュレーシ ョ

ンに使用します。 詳細は、ザイ リ ンクス Web サイ トからザイ リ ンクス パラレル ケーブル IV のデー

タシート を参照してください。

プラッ ト フォーム ケーブル USBコンピュータの USB ポートに接続し、バウンダ リ スキャン モードでのコンフ ィギュレーシ ョ ンに

使用します。 詳細は、ザイ リ ンクス Web サイ トからプラ ッ ト フォーム ケーブル USB のデータシー

ト を参照してください。

138 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 7 章 : iMPACT チュート リアル

プラ ッ ト フォーム ケーブル USB-IIコンピュータの USB ポートに接続し、バウンダ リ スキャン モードでのコンフ ィギュレーシ ョ ンに

使用します。 詳細は、 ザイ リ ンクス Web サイ トからプラ ッ ト フォーム ケーブル USB-II のデータ

シート を参照してください。

サポート されるコンフ ィギュレーシ ョ ン モード

iMPACT では、FPGA、CPLD、PROM (XCFxxS および XCFxxP)、サード パーティ の SPI/BPI フラ ッ

シュ デバイスのバウンダリ スキャン コンフィ ギュレーショ ン モード がサポート されています。

入門

次に、 このチュート リ アルのこの章を実行するための要件を示します。

コンフ ィギュレーシ ョ ン ファイルの生成

この章では、 stopwatch デザインの次のファイルが必要です。

• BIT ファ イル

ヘッダ情報およびコンフ ィギュレーシ ョ ン データを含むバイナリ形式のファイル

• MCS ファ イル

PROM コンフ ィギュレーシ ョ ン情報を含む ASCII 形式のファイル

• MSK ファ イル

BIT ファ イルと同じコンフ ィギュレーシ ョ ン コマンドを含むが、コンフ ィギュレーシ ョ ン デー

タの代わりにマスク データを含むバイナリ ファ イル。 マスク データは、 デバイスのコンフ ィ

ギュレーシ ョ ンには使用されず、検証に使用されます。 マスク ビッ トが 0 の場合、ビッ トはビッ

ト ス ト リーム データ と比較され、 1 の場合は比較されません。 このファ イルは、 BIT ファ イル

と共に生成されます。

これらのファイルは、 第 5 章 「デザイン インプ リ メンテーシ ョ ン」 で生成されています。

チュート リ アル プロジェク ト ファ イルは、 ザイ リ ンクスの Web サイ トの ISE Design Suite 12チュート リ アルからダウンロードできます。 VHDL、Verilog、 または回路図デザイン フローのプロ

ジェク ト ファ イルをダウンロード して ください。

ケーブルの接続 iMPACT を起動する前に、 ケーブルのパラレル ポート コネクタをコンピュータのパラレル ポート

に接続し、 ケーブルを Spartan™-3 スタータ キッ トのデモ ボードに接続します。 ボードの電源が

入っ ているこ とを確認して ください。

ISE アドバンス チュート リアル japan.xilinx.com 139UG695 (v12.1) 2010 年 4 月 19 日

新規 iMPACT プロジェク ト ファイルの作成

ソフ トウェアの起動

このセクシ ョ ンでは、iMPACT ソフ ト ウェアを ISE® ソフ ト ウェアから起動する方法とスタンドア

ロンで起動する方法を説明します。

Project Navigator からの iMPACT の起動

Project Navigator から iMPACT を起動するには、 次の図に示すよ うに、 [Design] パネルの [Processes] ペインで [Manage Configuration Project (iMPACT)] をダブルク リ ッ ク します。

スタンドアロンでの iMPACT の起動

ISE プロジェク ト を介さ ずにスタンド アロンで iMPACT を起動するには、 次のいずれかの方法を

使用します。

• PC のみ : [スタート ] → [すべてのプログラム] → [Xilinx ISE Design Suite 12.1] → [ISE デザ

イン ツール] → [ツール] → [iMPACT] をク リ ッ ク します。

• PC または Linux : コマンド プロンプ トで 「impact」 と入力します。

新規 iMPACT プロジェク ト ファイルの作成

iMPACT をスタンドアロンで開く と、プロジェク ト を自動的に生成および保存するかど うかを尋ね

る [Automatically create and save a project] ダイアログ ボッ クスが表示されます。[No] をク リ ッ ク

する と [New iMPACT project] ダイアログ ボッ クスが表示され、 近使用したプロジェク ト を読み

込むか、 または新規プロジェク ト を作成できます。

X-Ref Target - Figure 7-1

図 7-1 : Project Navigator からの iMPACT の起動

X-Ref Target - Figure 7-2

図 7-2 : [New iMPACT Project] ダイアログ ボックス

140 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 7 章 : iMPACT チュート リアル

プロジェク ト を新規作成するには、 次の手順に従います。

1. [New iMPACT Project] ダイアログ ボッ クスで、 [create a new project (.ipf)] をオンにします。

2. [Browse] をク リ ッ ク します。

3. ディ レク ト リ を選択し、 [ファ イル名] に 「stopwatch」 と入力します。

4. [保存] をク リ ッ ク します。

5. [OK] をク リ ッ ク します。

これで、 新規プロジェク ト ファ イルが作成されました。 作成後には、 プロジェク トの操作モードを

定義するダイアログ ボッ クスが表示されます。

バウンダリ スキャン コンフ ィギュレーショ ン モードの使用

このチュート リ アルでは、バウンダ リ スキャン コンフ ィギュレーシ ョ ン モードを使用します。 この

モードでは、 JTAG 規格に準拠したデバイスで構成されるチェーンに対してバウンダ リ スキャン操

作を実行できます。 チェーンには、 ザイ リ ンクス デバイスおよびザイ リ ンクス以外のデバイスの両

方を含めるこ とができますが、 ザイ リ ンクス以外のデバイスでは操作が制限されます。 操作を実行

するには、ケーブルがコンピュータに接続されており、JTAG ピン (TDI、TCK、TMS、TDO) とボー

ドがケーブルで接続されている必要があ り ます。

バウンダリ スキャン コンフ ィギュレーシ ョ ン モードの指定

iMPACT を起動しプロジェク ト ファ イルを作成する と、 コンフ ィギュレーシ ョ ン モードおよびプ

ログラムするデバイスを指定するダイアログ ボッ クスが表示されます。 バウンダ リ スキャン モー

ドを選択するには、 次の手順に従います。

1. [Configure devices using Boundary-Scan (JTAG)] をオンにします。

2. [Automatically connect to cable and identify Boundary-Scan chain] が選択されているこ とを確

認します。

メモ : このド ロ ップダウン リ ス トで [Enter a Boundary-Scan c hain manually] を選択する と、

手動でデバ イ ス を追加 し てチェーン を作成で き ます。 こ のオプシ ョ ン を使用する と、

SVF/XSVF プログラム ファ イルを生成できます。 ただし、できる限りチェーンが自動的に検出

および識別されるよ うに設定してください。

ISE アドバンス チュート リアル japan.xilinx.com 141UG695 (v12.1) 2010 年 4 月 19 日

バウンダリ スキャン コンフ ィギュレーシ ョ ン モードの使用

3. [OK] をク リ ッ ク します。

デバイスにデータが渡され、バウンダ リ スキャン チェーンのサイズおよび構成が自動的に識別され

ます。 サポート されているザイ リ ンクス デバイスの場合は、 識別されて名前が表示されます。 その

他のデバイスは、 「UNKNOWN」 と表示されます。 次に、 チェーン内の各デバイスがハイライ ト さ

れ、 コンフ ィギュレーシ ョ ン ファ イルまたは BSDL ファ イルを指定するダイアログ ボッ クスが開

きます。

メモ : コンフ ィギュレーシ ョ ン モードまたは自動バウンダ リ スキャン モードを選択するダイアロ

グ ボッ クスが表示されなかった場合は、iMPACT ウ ィンド ウ内で右ク リ ッ クして [Initialize Chain]をク リ ッ ク します。 ボードに正し く接続されている場合は、チェーンが識別されます。 識別されない

場合は、 「バウンダ リ スキャン コンフ ィギュレーシ ョ ンの ト ラブルシューティング」 を参照してく

ださい。

コンフ ィギュレーシ ョ ン ファイルの指定

チェーンを初期化する と、[Assign New Configuration File] ダイアログ ボッ クスが表示されます (図7-4)。 コンフ ィギュレーシ ョ ン ファ イルは、デバイスをプログラムするのに使用され、 次のよ う な種

類があ り ます。

• ビッ ト スト リ ーム ファ イル (*.bit、 *.rbt、 *.isc) : FPGA のコンフィ ギュレーショ ンに使用し

ます。

• JEDEC ファ イル (*.jed、 *.isc) : CPLD のコンフ ィギュレーシ ョ ンに使用します。

• PROM ファ イル (*.mcs、 *.hex) : PROM のコンフ ィギュレーシ ョ ンに使用します。

初のデバイス (XC3S700A) に対してコンフ ィギュレーシ ョ ン ファ イルを指定するダイアログ

ボッ クスが表示されたら、 次の手順に従います。

1. プロジェク ト ディ レク ト リから BIT ファ イルを選択します。

X-Ref Target - Figure 7-3

図 7-3 : iMPACT ウィザードを使用して自動バウンダリ スキャンを選択

142 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 7 章 : iMPACT チュート リアル

2. [開く ] をク リ ッ ク します。

スタート アップ ク ロ ッ クが JtagClk に変更されたこ とを示す警告メ ッセージが表示されます。

3. [OK] をク リ ッ ク します。

次の図に、 [Assign New Configuration File] ダイアログ ボッ クスを示します。

メモ : コンフ ィ ギュレーシ ョ ン フ ァ イルがない場合は、 バウンダ リ スキャン記述ファ イル

(BSDL または BSD) を代用できます。 BSDL ファ イルには、 デバイスでバウンダ リ スキャン

操作のサブセッ ト を実行可能にする情報が含まれています。 ザイ リ ンクスおよびザイ リ ンクス

以外のデバイスに対して BSDL ファ イルが自動的に選択されるよ うにするには、 [Assign NewConfiguration File] ダイアログ ボッ クスで [Bypass] をク リ ッ ク します。

4. 2 番目のデバイス (XCF02S) に対しコンフ ィギュレーシ ョ ン ファ イルを指定するダイアログ

ボッ クスが表示されたら、 プロジェク ト ディ レク ト リから MCS ファ イルを選択します。

5. [開く ] をク リ ッ ク します。

X-Ref Target - Figure 7-4

図 7-4 : [Assign New Configuration File] ダイアログ ボックス

ISE アドバンス チュート リアル japan.xilinx.com 143UG695 (v12.1) 2010 年 4 月 19 日

バウンダリ スキャン コンフ ィギュレーシ ョ ン モードの使用

プロジェク ト ファイルの保存

チェーンの記述を完了し、 コンフ ィギュレーシ ョ ン ファ イルを指定したら、 次の手順に従いプロ

ジェク ト ファ イル (IPF) を保存する必要があ り ます。 プロジェク ト を保存するには、[File] → [SaveProject As] をク リ ッ ク します。 [Save Project File] ダイアログ ボッ クスで、 ディ レク ト リ を指定し

てプロジェク ト ファ イルを保存します。 iMPACT の再起動時にチェーンを復元するには、 [File] →[Open Project] をク リ ッ ク し、 プロジェク ト ファ イルを指定します。

メモ : 以前のバージ ョ ンの ISE ソフ ト ウェアで使用した CDF ファ イル (コンフ ィギュレーシ ョ ン

データ ファ イル) も、 iMPACT で開いて使用できます。また、IPF ファ イルを CDF に抽出するこ と

も可能です。

プリファレンスの編集

バウンダ リ スキャン コンフ ィギュレーシ ョ ンのプリ ファレンスを編集するには、 [Edit] → [Preferences] をク リ ッ ク します。 次の図に示すダイアログ ボッ クスが表示されます。 プリ ファレン

スの詳細は、 [Help] をク リ ッ ク して iMPACT ヘルプを参照して ください。 このチュート リ アルで

は、 デフォルトの値を使用するので、 [OK] をク リ ッ ク します。X-Ref Target - Figure 7-5

図 7-5 : [Preferences] ダイアログ ボックス

144 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 7 章 : iMPACT チュート リアル

バウンダリ スキャン操作の実行

バウンダ リ スキャン操作は、一度に 1 つのデバイスに対して実行できます。 実行可能なバウンダ リ

スキャン操作は、デバイスおよびデバイスに指定されたコンフ ィギュレーシ ョ ン ファ イルによって

異なり ます。 実行可能な操作コマンドの リ ス トは、 チェーン内のデバイスを右ク リ ッ クする と表示

されます。

デバイスを選択して操作を実行する場合、 プ リ ファレンスの設定に従ってチェーン内のほかのデバ

イスがすべて自動的に BYPASS または HIGHZ モードになり ます (プリ ファレンスの詳細は 「プ リ

ファレンスの編集」 を参照)。

操作を実行するには、 デバイスを右ク リ ッ ク して操作コマンドのいずれかをク リ ッ ク します。 この

セクシ ョ ンでは次に示すよ うに、まず 初のデバイスのデバイス ID を取得し、次に検証オプシ ョ ン

をオンにしてプログラムします。

1. XC3S700A デバイスで右ク リ ッ クして、 [Get Device ID] をク リ ッ ク します。X-Ref Target - Figure 7-6

図 7-6 : XC3S700A デバイスで実行可能なバウンダリ スキャン操作

ISE アドバンス チュート リアル japan.xilinx.com 145UG695 (v12.1) 2010 年 4 月 19 日

バウンダリ スキャン コンフ ィギュレーシ ョ ン モードの使用

Spartan-3A デバイスの IDCODE が取得され、 結果は、次の図に示すよ うにログ ウ ィンド ウに

表示されます。

2. XC3S700A デバイスを右ク リ ッ ク して、 [Set Programming Properties] をク リ ッ ク します。

[Device Programming Properties] ダイアログ ボッ クスが表示されます。

3. [Verify] をオンにします。

このオプシ ョ ンをオンにする と、デバイスがリードバッ ク され、先ほど生成した MSK ファ イル

と BIT ファ イルが比較されます。

4. [OK] をク リ ッ ク してプログラムを開始します。

メモ : このダイアログ ボッ クスで設定可能なオプシ ョ ンは、選択したデバイスによって異なり

ます。

X-Ref Target - Figure 7-7

図 7-7 : [Get Device ID] コマンド実行後のログ ウィンドウ

X-Ref Target - Figure 7-8

図 7-8 : XC3S700A デバイスのプログラム オプシ ョ ン

146 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 7 章 : iMPACT チュート リアル

5. XC3S700A デバイスを再度右ク リ ッ クし、 [Program] をク リ ッ ク します。

プログラムが開始し、進捗状況を示すダイアログ ボッ クスが表示されます。 同時に、 ログ ウ ィ

ンド ウに実行されたすべての操作がレポート されます。X-Ref Target - Figure 7-9

図 7-9 : [Progress Dialog] ダイアログ ボックス

ISE アドバンス チュート リアル japan.xilinx.com 147UG695 (v12.1) 2010 年 4 月 19 日

バウンダリ スキャン コンフ ィギュレーシ ョ ン モードの使用

プログラムが完了する と、 次の図に示すよ うに、 プログラムが正し く終了したこ とを示す青色

のメ ッセージが表示されます。 このメ ッセージは、 数秒間表示されます。

これで、デザインのプログラムおよび検証が完了しました。 この段階で、ボードは正し く動作してお

り、 ス ト ップウォッチを開始、 停止、 およびリセッ トするこ とができるはずです。

X-Ref Target - Figure 7-10

図 7-10 : プログラムが正し く完了したことを示すメ ッセージ

148 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 7 章 : iMPACT チュート リアル

バウンダリ スキャン コンフ ィギュレーショ ンのト ラブルシューテ ィング

次のセクシ ョ ンでは、バウンダ リ スキャン操作時にエラーが発生した場合のト ラブルシューティン

グについて説明します。

ケーブル接続の確認

バウンダ リ スキャン操作の実行中にエラーが発生した場合、まずケーブル接続が確立しているかを

確認し、 次にケーブルの自動識別機能が正し く機能しているかを確認してください。 ボード と コン

ピュータをケーブルで接続しても接続が確立されない場合は、 ウ ィンド ウの空白部分を右ク リ ッ ク

し、[Cable Auto Connect] または [Cable Setup] をク リ ッ ク します。 [Cable Auto Connect] をク リ ッ

クする と、すべてのポートで接続が検索されます。 [Cable Setup] をク リ ッ クする と、ケーブルおよ

びケーブルを接続するポート を選択できます。

接続が検出される と、 次の図に示すよ うに、 メ インウ ィンド ウ下部に接続されているケーブルの種

類、 ケーブルが接続されているポート、 およびケーブルの通信速度が表示されます。

メモ : ケーブルがシステムに接続されていてケーブルの自動識別でエラーが発生する場合は、 ザイ

リ ンクス アンサー #15742 を参照してください。

チェーンの設定の検証

バウンダ リ スキャン操作の実行中にエラーが発生する場合は、 チェーンが正し く設定されていて、

iMPACT がデバイス と通信可能であるこ とを確認して ください。 これは、 チェーンを初期化する と

簡単に確認できます。 ウ ィンド ウの空白部分で右ク リ ッ クし、 [Initialize Chain] をク リ ッ ク します。

ボードに正し く接続されている場合は、 チェーンが識別されます。

チェーンが初期化できない場合は、 ハードウェアが正し く設定されていないか、 またはケーブルが

正し く接続されていない可能性があ り ます。 チェーンが初期化できる場合は、 単純な操作を実行し

てみてください。 たとえば、チェーン内の各デバイスのデバイス ID を取得します。 正し く実行でき

る場合は、 ハードウェアは正し く設定されており、 ケーブルも正し く接続されています。

X-Ref Target - Figure 7-11

図 7-11 : ケーブル接続が確立されている場合のメイン ウィンドウの下部

ISE アドバンス チュート リアル japan.xilinx.com 149UG695 (v12.1) 2010 年 4 月 19 日

バウンダリ スキャン コンフ ィギュレーシ ョ ンのト ラブルシューテ ィング

チェーンのデバッグ機能を使用する と、 次の図に示すよ うに、 手動で JTAG コマンドを入力するこ

と もできます。 この機能は、コマンドをテス ト し、チェーンが正し く設定されているこ とを確認する

と きに使用できます。 この機能を使用するには、[Debug] → [Enable/Disable Debug Chain] をク リ ッ

ク します。

iMPACT のバウンダ リ スキャン デバッグに関して不明な点がある場合は、[Help] → [Help Topics]をク リ ッ ク して iMPACT ヘルプを参照して ください。 ト ラブルシューティングに関して不明な点

がある場合は、 ザイ リ ンクス Web サイ トでウェブケースを開いてください。

X-Ref Target - Figure 7-12

図 7-12 : チェーンのデバッグ

150 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 7 章 : iMPACT チュート リアル

SVF ファイルの作成

このセクシ ョ ンはオプシ ョ ンです。 「バウンダ リ スキャン コンフ ィギュレーシ ョ ン モードの使用」

セクシ ョ ンに従って正し くプログラムが完了しているこ とを前提と しています。 このセクシ ョ ンで

は、 コンフ ィギュレーシ ョ ン情報のすべてが SVF ファ イルに書き込まれます。

iMPACT では、 SVF、 XSVF、および STAPL の 3 種類のフォーマッ トのプログラム ファ イルを生

成できます。 サードパーティのプログラム ソ リ ューシ ョ ンを使用している場合、バウンダ リ スキャ

ン チェーンを手動で設定し、プログラム ファ イルを生成する必要がある場合があ り ます。 これらの

プログラム ファ イルには、プログラム命令およびコンフ ィギュレーシ ョ ン データの両方が含まれて

おり、 自動テス ト装置 (ATE) マシンおよびエンベデッ ド コン ト ローラでバウンダ リ スキャン操作

を実行する と きに使用されます。 デバイスで操作は実行されないので、 通常ケーブルを接続してお

く必要はあ り ません。

バウンダリ スキャン チェーンの設定

このセクシ ョ ンは、 この章のこれまでのセクシ ョ ンに従いチェーンを検出しているこ とを前提と し

ています。 検出していない場合は、 「SVF ファ イル生成での JTAG チェーンの手動設定」 に従い

チェーンを手動で定義してください。

SVF ファイル生成用の JTAG チェーンの設定

JTAG チェーンを設定するには、 次の手順に従います。

1. [Output] → [SVF File] → [Create SVF File] をク リ ッ ク します。

2. [Create a New SVF File] ダイアログ ボッ クスで、 [ファ イル名] に 「getid」 と入力し、 [保存] をク リ ッ ク します。

3. すべてのデバイス操作が SVF ファ イルに記述されるこ とを示すメ ッセージが表示されます。

[OK] をク リ ッ ク します。

SVF ファイル生成での JTAG チェーンの手動設定

「バウンダ リ スキャン コンフ ィギュレーシ ョ ン モードの使用」 の手順を完了している場合は、 この

セクシ ョ ンを実行する必要はあ り ません。

バウンダ リ スキャン チェーンは、手動で作成または変更するこ と も可能です。 手動で作成または変

更するには、 次の手順に従います。

1. [Boundary-Scan] タブをク リ ッ ク して、 バウンダ リ スキャン モードであるこ とを確認します。

これで、 デバイスを 1 つずつ追加できます。

2. ウ ィンド ウの空白部分を右ク リ ッ ク し、 [Add Xilinx Device] または [Add Non-Xilinx Device]をク リ ッ ク します。

コンフ ィギュレーシ ョ ン ファ イルを選択するダイアログ ボッ クスが表示されます。

3. stopwatch.bit ファ イルを選択し、 [開く ] をク リ ッ ク します。

大きなカーソルが点滅している位置にデバイスが追加されます。 既存のデバイスの間にデバイ

スを追加するには、 デバイス間を接続する線を右ク リ ッ ク してデバイスを追加します。

手順 2 と 3 を繰り返して、 チェーンに stopwatch.mcs ファ イルを追加します。

メモ : 手動で作成したバウンダ リ スキャン チェーンは、デバイスの一部分のみをプログラムする場

合でもボード上のチェーンと一致させる必要があ り ます。 デバイスは、すべて iMPACT のウ ィンド

ウに表示されている必要があ り ます。

ISE アドバンス チュート リアル japan.xilinx.com 151UG695 (v12.1) 2010 年 4 月 19 日

SVF ファイルの作成

SVF ファイルへの書き込み

SVF ファ イルへの書き込み操作は、ケーブルを使用したバウンダ リ スキャン操作と同じで、 デバイ

スを右ク リ ッ ク して操作を選択するだけで実行できます。 操作はいくつでも SVF ファ イルに書き

込むこ とができます。

このセクシ ョ ンでは、 初のデバイスのデバイス ID を取得し、2 番目のデバイスでプログラムを実

行します。

デバイス ID を書き込むには、 次の手順に従います。

1. 初のデバイス (XC3S700A) をデバイスで右ク リ ッ ク し、 [Get Device ID] を選択します。

[Get Device ID] を実行するのに必要な命令がファイルに書き込まれます。

X-Ref Target - Figure 7-13

図 7-13 : バウンダリ スキャン操作の選択

152 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 7 章 : iMPACT チュート リアル

2. 結果を確認するには、 [View] → [View SVF-STAPL File] をク リ ッ ク します。 次の図に、 [GetDevice ID] コマンドを実行した後の SVF ファ イルを示します。

2 番目のデバイスのプログラムを SVF ファ イルに書き込む場合は、 次の手順に従います。

X-Ref Target - Figure 7-14

図 7-14 : チェーンの 初のデバイスのデバイス ID を取得した後の SVF ファイル

ISE アドバンス チュート リアル japan.xilinx.com 153UG695 (v12.1) 2010 年 4 月 19 日

SVF ファイルの作成

1. 2 番目の XCF02S デバイスを右ク リ ッ ク し、 [Program] をク リ ッ ク します。

2. [Programming Properties] ダイアログ ボッ クスで [OK] をク リ ッ ク します。

2 番目のデバイスをプログラムするのに必要な命令およびコンフ ィギュレーシ ョ ン データが

SVF ファ イ ルに書き込まれます。

SVF ファイルへの書き込み停止

すべての操作を実行したら、 これ以上命令が書き込まれないよ うにするために、 ファ イルを閉じる

必要があ り ます。 プログラム ファ イルへの書き込みを停止するには、 [Output] → [SVF File] →[Stop Writing to SVF File] をク リ ッ ク します。

後で別の操作を追加する場合は、[Output] → [SVF File] → [Append to SVF File] をク リ ッ ク し、書

き込む SVF ファ イルを指定して [開く ] をク リ ッ ク します。

SVF または XSVF ファイルの再生

生成した SVF ファ イルを再生して命令を検証するには、 次の手順に従います。

1. 新規チェーンを手動で作成します。

2. ウ ィンド ウの空白部分を右ク リ ッ ク して [Add Xilinx Device] をク リ ッ ク し、 SVF ファ イルを

選択して [開く ] をク リ ッ クます。

3. バウンダ リ スキャン チェーンの SVF ファ イルを右ク リ ッ ク し、 [Execute XSVF/SVF] をク

リ ッ ク します。

これでデバイスのプログラムは完了し、『 ISE のアド バンス チュート リ アル』コースは修了しました。

X-Ref Target - Figure 7-15

図 7-15 : XCF02S デバイスで実行可能なバウンダリ スキャン操作

154 japan.xilinx.com ISE アドバンス チュート リアル

UG695 (v12.1) 2010 年 4 月 19 日

第 7 章 : iMPACT チュート リアル