HardCopy IIデバイスのためのスクリプト・ベースのデザイン

6. HardCopy II デバイスのための
スクリプト・ベースのデザイン
この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用
ください。設計の際には、最新の英語版で内容をご確認ください。
H51025-1.2
はじめに
Quartus ® II ソフトウェアには、コマンドライン実行コマンドのセットが
含まれており、その多くがインタラクティブ Tcl シェルをサポートして
います。Tcl シェルを使用し、Quartus ® II ウィンドウ・ベース GUI を使
用しないで、FPGA または HardCopy ® デザイン操作を実行できます。
この章では、インタラクティブ Tcl シェルを使用したスクリプト・ベー
スの HardCopy II デザインのための Tcl 操作の概要を説明します。この
章では、以下の内容について説明します。
■
■
■
■
■
Quartus II
ソフトウェア
での Tcl
サポート
Quartus II ソフトウェアでの Tcl スクリプティング機能の概要
HardCopy II デザイン・フロー
ロケーションおよびタイミング制約の適用
合成、HardCopy II デザインの配置配線、および Stratix ® II プロトタ
イプ
デザイン検証および解析
Quartus II ソフトウェアは、以下をはじめとする Tcl コマンドおよびス
クリプトを実行するためのさまざまな方法を提供します。
■
■
■
■
Tcl Console ウィンドウ
Tcl Scripts ダイアログ・ボックス
コマンドライン処理
インタラクティブ Tcl シェル
Tcl Console ウィンドウおよび Tcl Scripts ダイアログ・ボックスは、両
方とも Quartus II GUI 内で動作し、ここでは説明していません。代わり
に、この章では Quartus II コマンドライン実行コマンドで使用可能なイ
ンタラクティブ Tcl シェルに的を絞っています。
コマンドライン処理およびバッチファイル、メイクファイル、およびス
クリプトでの Quartus II コマンドライン実行コマンドの使用について詳
し く は、「Quartus II ハ ン ド ブ ッ ク volume 2」の「Command-Line
Scripting」の章を参照してください。
Quartus II Tcl 実装について詳しくは、
「Quartus II ハンドブック」の「Tcl
Reference Manual」および「Tcl Scripting」の章を参照してください。
Altera Corporation
2007 年 6 月
6–1
HardCopy シリーズ・ハンドブック Volume 1
インタラクティブ Tcl シェル
多数の Quartus II 実行コマンドをユーザ・インタフェースとして、イン
タラクティブ Tcl シェルで実行できます。これらの実行コマンドを表 6–1
に示します。インタラクティブ Tcl シェルは Tcl バージョン 8.4 をサポー
トしています。
表 6–1. インタラクティブ Tcl サポート付き Quartus II コマンドライン実行コマンド
コマンド名
説明
quartus_sh
基本的な Tcl インタプリタ・シェル。アサインメント指定、コンパイル操作、およびネイ
ティブ・オペレーティング・システム・コマンドのサポート。詳しくは、
「Quartus II Scripting
Reference Manual」の「Command-Line Executables」の項にある quartus_sh を参照
してください。
quartus_sta
Quartus II TimeQuest タイミング・アナライザ・エンジンは、デザインおよびタイミング
解析 Tcl コマンドのタイミング・グラフの構築をサポートします。詳しくは、「Quartus II
Scripting Reference Manual」の「Command-Line Executables」の項にある quartus_sta
を参照してください。
quartus_tan
Quartus II クラシック・タイミング・アナライザ・エンジンは、デザインおよびタイミング
解析 Tcl コマンドのタイミング・グラフの構築をサポートします。詳しくは、「Quartus II
Scripting Reference Manual」の「Command-Line Executables」の項にある quartus_tan
を参照してください。
quartus_cdb
Quartus II データベース・インタフェース実行コマンド。HardCopy II デザインに対する
LogicLock、バック・アノテーション、FPGA と HardCopy の比較などのデザイン・データ
ベースに関連する操作をサポート。詳しくは、
「Quartus II Scripting Reference Manual」の
「Command-Line Executables」の項にある quartus_cdb を参照してください。
quartus_sim
Quartus II シミュレータ詳しくは、
「Quartus II Scripting Reference Manual」の「CommandLine Executables」の項にある quartus_sim を参照してください。
6–2
Altera Corporation
2007 年 6 月
Quartus II ソフトウェアでの Tcl サポート
コマンドライン実行コマンドのインタラクティブ Tcl シェルは、コマン
ドライン・スイッチ -s を使用して起動することができます。例えば、基
本 的 な Quartus シ ェ ル を 実 行 す る に は、コ マ ン ド・プ ロ ン プ ト で
quartus_sh -s を入力します。
% quartus_sh -s
Info:
***********************************************************************
Info: Running Quartus II Shell
Info:
***********************************************************************
Info: The Quartus II Shell supports all TCL commands in addition
Info: to Quartus II Tcl commands. All unrecognized commands are
Info: assumed to be external and are run using Tcl's "exec"
Info: command.
Info: - Type "exit" to exit.
Info: - Type "help" to view a list of Quartus II Tcl packages.
Info: - Type "help -pkg <package name>" to view a list of Tcl commands
Info:
available for the specified Quartus II Tcl package.
Info: - Type "help -tcl" to get an overview on Quartus II Tcl usages.
Info:
***********************************************************************
tcl>
Quartus II の Tcl 実装は、Quartus II 操作を実行するためのカスタム Tcl
プロシージャを提供します。これらのプロシージャは、機能ごとに Tcl
パッケージに分かれています。表 6–2 に、これらの Tcl パッケージと供
給状況を示します。一部のパッケージは、実行コマンドが呼び出される
とデフォルトでロードされます。その他のパッケージは、それぞれの Tcl
プロシージャが使用される前に明示的にロードする必要があります。特
定のパッケージをロードするには、load_package Tcl プロシージャを
使用します。例えば、quartus_sh シェルにフロー・パッケージをロー
ドするには、以下の Tcl 文を実行します。
tcl> load_package flow
Altera Corporation
2007 年 6 月
6–3
HardCopy シリーズ・ハンドブック Volume 1
すべての実行コマンドが、すべての Tcl パッケージをサポートし
ているとは限らない点に注意してください。
表 6–2. Quartus II 実行コマンドでの Tcl パッケージのサポート (1 / 2)
コマンド名
quartus_sta
quartus_sh
quartus_tan
quartus_cdb
6–4
サポートされる Tcl パッケージ
デフォルトでロードされるか ?
device
ロードされる
misc
ロードされる
flow
ロードされない
project
ロードされる
report
ロードされる
sdc
ロードされる
sta
ロードされる
device
ロードされる
flow
ロードされない
misc
ロードされる
project
ロードされる
report
ロードされない
advanced_timing
ロードされない
device
ロードされない
flow
ロードされない
logiclock
ロードされない
Misc
ロードされる
project
ロードされる
report
ロードされない
timing
ロードされる
timing_report
ロードされない
backannotate
ロードされない
chip_editor
ロードされない
device
ロードされる
flow
ロードされない
logiclock
ロードされない
misc
ロードされる
project
ロードされる
report
ロードされない
Altera Corporation
2007 年 6 月
Quartus II ソフトウェアでの Tcl サポート
表 6–2. Quartus II 実行コマンドでの Tcl パッケージのサポート (2 / 2)
コマンド名
quartus_sim
サポートされる Tcl パッケージ
デフォルトでロードされるか ?
device
ロードされる
flow
ロードされない
misc
ロードされる
project
ロードされる
report
ロードされる
simulator
ロードされる
表 6–2 で引用された各 Tcl パッケージの簡単な説明を表 6–3 に示します。
ロードされる Tcl パッケージを見つけるには、コマンド quartus_???
--tcl_eval help を使用します。例 :
quartus_sta --tcl_eval help.
表 6–3. Quartus II の Tcl パッケージの説明
Tcl パッケージ
説明
advanced_timing
タイミング・ネットリストを横断し、タイミング・モードに関する情報を取得する。
backannotate
アサインメントをバック・アノテートする。
chip_editor
Chip Editor でリソースの使用および配線を識別、変更する。
database_manager
バージョン互換のデータベース・ファイルを管理する。
device
デバイス・データベースからデバイスおよびファミリ情報を取得する。
flow
プロジェクトのコンパイル、コマンドライン実行コマンドおよび他の共通フローの実行。
logiclock
LogicLock 領域の作成と管理。
misc
その他のタスクの実行。
project
プロジェクトおよびリビジョンの作成と管理、およびタイミング・アサイメントを含む
プロジェクト・アサイメントの作成。
report
レポート・テーブルからの情報の取得とカスタム・レポートの作成。
simulator
シミュレーションの設定と実行。
stp
SignalTap ® II アナライザの操作。
timing
遅延情報を持つタイミング・ネットリストのアノテート、タイミング・パスの計算およ
びレポート。
timing_report
タイミング・パスのリスト。
Quartus II コマンドライン実行コマンドおよび Tcl シェルは、Microsoft
Windows、Linux、お よび Unix プラットフォームを含むすべての
Quartus II オペレーティング・システムでサポートされています。
Altera Corporation
2007 年 6 月
6–5
HardCopy シリーズ・ハンドブック Volume 1
Quartus II Tcl パッケージとそれらで使用可能な Tcl プロシージャについ
て詳しくは、
「Quartus II Scripting Reference Manual」の「Tcl Packages
and Commands」の章を参照してください。
コマンドライン処理
インタラクティブ Tcl シェルに加えて、Quartus II コマンドライン実行
コマンドは、Tcl スクリプトおよびコマンドを実行するためのコマンドラ
イン・スイッチをサポートしています。これらのスイッチと併用すれば、
コマンドライン実行コマンドは完了時に終了します。コマンドライン実
行コマンドは、特定の Quartus II 動作を実行するためのスイッチも提供
します。例えば、以下の c シェル・スクリプトは、トップレベルのデザ
イン・ファイルとエンティティ名を引数として取り込み、HardCopy II
デザイン・フロー全体を通して実行します。
!#/bin/csh
quartus_sh --flow compile %1
quartus_cdb %1 --create_companion=%1_hcii
quartus_sh --flow compile %1 -c %1_hcii
quartus_cdb --compare=%1_hcii %1 -c %1
この例は、HardCopy II デザイン・フローを実行するための、おそらく
最もシンプルな方法を示しています。プロジェクトに対して、デザイン
I/O、ロケーション、およびタイミング制約を開発および適用した場合、
これらの制約はスクリプトの実行中にインクルードされます。
Quartus II の実行コマンドおよびコマンドラインのオプションについて
詳しくは、
「Quartus II Scripting Reference Manual」の「Command-Line
Executables」の 章 お よ び「Quartus II ハ ン ド ブ ッ ク Volume 2」の
「Command-Line Scripting」の章を参照してください。
HardCopy II
デザイン・
フロー
Quartus II ソフトウェアは、HardCopy II を最初に設計する場合のフ
ロー、および Stratix II を最初に設計する場合のフローの両方をサポート
します。Stratix II を最初に設計する場合のフローでは、以下を実行する
必要があります。
■
■
■
■
■
6–6
Stratix II FPGA プロトタイプのコンパイル
Stratix II FPGA プロトタイプの検証
プロトタイプ・デザインの HardCopy II デザインへの移行
HardCopy II デザインのコンパイル
アルテラ・デザイン・センタへの HardCopy II ファイルの転送
Altera Corporation
2007 年 6 月
HardCopy II デザイン・フロー
HardCopy II を 最 初 に 設 計 す る 場 合 の フ ロ ー は 似 て い ま す が、
HardCopy II タ ー ゲ ット・デバイスのコンパイルから開始します。
HardCopy II のコンパイルが正常に完了したら、デザインは Stratix II
ターゲットに移行されます。
Quartus II ソフトウェアの HardCopy II デザイン・フローを図 6–1 に示
します。デザインを開始するには、Stratix II FPGA プロトタイプに対す
る新しいプロジェクトおよびリビジョンを作成します。Quartus II 設定
を I/O ア サ イ メ ン トおよびタイミング制約とともに適用します。
Stratix II プロトタイプ・リビジョンをコンパイル(合成、配置配線、お
よびアセンブリ)し、完全なレイアウトをタイミング・クロージャおよ
びエラーなしで生成します。ここで、必要な追加の機能およびタイミン
グ検証を実行し、プロトタイプをハードウェアに実装し検証することが
できます。
FPGA プロトタイプが検証されたら、HardCopy II デザインをコンパイ
ルできます。FPGA プロトタイプの HardCopy II コンパニオン・リビ
ジョンの作成から始めます。
1.
FPGA プロトタイプの HardCopy II コンパニオン・リビジョンを作
成します。すべてのデザイン設定と制約は、新しいコンパニオン・
リビジョンに自動的に移行されます。
2.
HardCopy II リビジョンをコンパイルします。コンパイルが実行さ
れると、Design Assistant がエラーをチェックします。コンパイル
が完了したら、エラーを修正して、Quartus II レポートに現れる障
害を解決しなければなりません。
3.
HardCopy II コンパニオン・リビジョン比較ツールを実行して、
HardCopy II のデザインを FPGA プロトタイプと比較します。比較
ツールは 2 つのリビジョン間の構造的な等価性と一貫性をチェック
します。
4.
不一致がなければ、アルテラのデザイン・センタに HardCopy II デ
ザイン・ファイルを転送する準備を行うことができます。
Quartus II ソフトウェアでのデザイン検証に加えて、フローでは
Synopsys 社の PrimeTime を使用してスタティック・タイミング
解析 (STA) を実行するのに必要なファイルを生成することができ
ます。
Altera Corporation
2007 年 6 月
6–7
HardCopy シリーズ・ハンドブック Volume 1
図 6–1. HardCopy II デザイン・フロー
Create a New Project
Prototype Stratix II Design
Signal-Pin Assignment
Tcl Files
Timing Constraint
Tcl Files
Compilation
Report Files
Make Global Assignments
Make Location Assignments
Make Timing Assignments
Compile Stratix II Prototype
Create HardCopy II Companion
Revision
Verify the Stratix II Prototype
Compile HardCopy II Design
Compare Design
Report File
Verify HardCopy II Design
Compilation
Report Files
HardCopy II Design
Source .v, .vhd, .tdf
.edf, .bdf Design Files
HardCopy II Archive
Hand-Off to the Altera Design
Center
図 6–1 のデザイン・フローは、Stratix II FPGA プロトタイプ・デザイン
で始まり、このデザインを HardCopy II デバイス・ターゲットに移行す
るか、または HardCopy II ターゲットで最初に設計し、このデザインを
FPGA プロトタイプ作成のために Stratix II ターゲットに移行します。両
方のケースのデザイン・フローを図 6–1 に示します。
Quartus II GUI を使用して HardCopy II デザインを完成させるための
HardCopy II デ ザ イ ン・フ ロ ー お よ び 代 替 方 法 に つ い て 詳 し く は、
「Quartus II ハ ン ド ブ ック」の「Quartus II Support for HardCopy II
Devices」の章または「HardCopy シリーズ・ハンドブック Volume 1」
の「HardCopy II Design Considerations」の章を参照してください。
6–8
Altera Corporation
2007 年 6 月
新規プロジェクトの作成
以下の項では、図 6–1 に示すフローの各ステップを記述し、インタラク
ティブ Tcl シェルを使用してどのように各ステップを完了するかを説明
します。
新規
プロジェクト
の作成
Quartus II ソフトウェアの FPGAおよび HardCopyデザインの両方とも、
プロジェクトの使用を中心に展開します。新規デザインに取りかかる前
に、プロジェクトを作成する必要があります。プロジェクトには、ソー
ス・デザイン・ファイル (RTL および回路図 )、Quartus II ツール設定、
およびピン位置およびタイミング制約のセットが含まれています。プロ
ジェクトにはデザインに対する多くの異なるリビジョンを含めることが
できますが、各リビジョンは独自のデザイン制約、ターゲット・デバイ
ス設定、Quartus II ソフトウェア設定の組み合わせを持つことができま
す。プロジェクトは明示的に開いてから、他の操作を実行しなければな
りません。別のプロジェクトまたはリビジョンに切り替えるには、現在
のプロジェクトを閉じる必要があります。
この項では、Tcl コマンドを使用してプロジェクトの管理に関連する各種
操作を詳細に説明します。
Stratix II プロトタイプ・プロジェクトの作成
新 し い Stratix II プ ロトタイプのプロジェクトを作成するには、
project_new Tcl コマンドを使用します。このコマンドの構文は、次のと
おりです。
tcl> project_new [-family <family>] [-overwrite] \
[-part <part>] [-revision <revision_name>] \
<project_name>
このコマンドに必要な引数はプロジェクト名 <project name> だけです。
ただし、この時点でもターゲット・デバイス・ファミリ、パーツ・コー
ド、リビジョン名を指定できます。デフォルトでは、リビジョン名はプ
ロジェクト名と同じです。デバイス・ファミリとパーツ・コードは、後
でset_global_assignmentコマンドを使用して設定することができます。
例 え ば、demo_design と い う デ フ ォ ル ト の リ ビ ジ ョ ン 名 を 持 つ
demo_design と呼ぶプロジェクト、および未指定のターゲット・デバ
イス・ファミリまたはパーツを作成するには、次の Tcl コマンドを実行
します。
tcl> project_new demo_design
新しいプロジェクトを作成すると、カレント・ディレクトリに Quartus
設定ファイル (QSF) と Quartus II プロジェクト・ファイル (QPF) が作成
されます。加えて、Quartus II データベース・ファイルを格納するのに
Altera Corporation
2007 年 6 月
6–9
HardCopy シリーズ・ハンドブック Volume 1
使用される db サブディレクトリが作成されます。demo_design プロ
ジェクト例の場合、プロジェクト・ディレクトリに以下のファイルが作
成されます。
demo_design.qpf
demo_design.qsf
db/
demo_design.db_info
プロジェクトのオープン
project_new コマンドを使用すると、作成されたプロジェクトが自動的
に開きます。将来の Quartus II セッションで、またはプロジェクトを閉
じた場合は、project_open コマンドでプロジェクトを開かなければなり
ません。project_open コマンドの構文は、次のとおりです。
tcl> project_open [-current_revision] \
[-revision <revision_name>] <project_name>
例えば、プロジェクト demo_design のデフォルトのリビジョンを開く
には、次の Tcl コマンドを実行します。
tcl> project_open demo_design
プロジェクトの Stratix II リビジョンと HardCopy II リビジョン
に、一貫性のある名前を付けると実践的です。これによって、リ
ビ ジ ョ ン を 簡 単 に 区 別 で き ま す。例 え ば、リ ビ ジ ョ ン に
projectname_fpga と projectname_hcii を付けると、Stratix II リビジョ
ンと HardCopy II リビジョンを簡単に区別できます。
プロジェクトを閉じる
Quartus II プロジェクト・セッションを終了する前に、project_close コ
マンドを使用して Quartus II プロジェクトを閉じてください。これによ
り、プロジェクトに行った変更は Quartus II QSF ファイルに書き込まれ
ます。project_close コマンドの構文は、次のとおりです。
tcl> project_close [-dont_export_assignments]
6–10
Altera Corporation
2007 年 6 月
新規プロジェクトの作成
新規プロジェクトのスクリプト例
以 下 の ス ク リ プ ト は、Tcl コ マ ン ド を 使 用 し て、リ ビ ジ ョ ン 名
demo_design_fpga を持つプロジェクト demo_design と呼ぶプロ
ジェクトを開く、および閉じる方法を示しています。プロジェクトが存
在しない場合は作成されます。このスクリプトでは、project_exists およ
び project_open Tcl コマンドを利用しています。
## プロジェクトを開く、および閉じるための Tcl スクリプト例
## プロジェクト demo_design を開く。このプロジェクトが存在しない場合は、
## 作成する。
if [is_project_open] project_close
if [project_exists demo_design] {
project_open demo_design -revision demo_design_fpga
} else {
project_new demo_design -revision demo_design_fpga
}
## 他の Tcl コマンドをここに含める。…
## プロジェクト demo_design を閉じて、設定の変更を
## demo_design.qsf に書き込む。
project_close
## スクリプトの終わり
上記およびその他の有用なプロジェクト関連コマンドについて詳しく
は、「Quartus II Scripting Reference Manual」の「Tcl Packages and
Commands」の章にある 「Project」の項を参照してください。
Altera Corporation
2007 年 6 月
6–11
HardCopy シリーズ・ハンドブック Volume 1
グローバル・
アサインメン
トの作成
HardCopy II デザインの初期化
HardCopy II デザインの場合、Quartus II プロジェクトが作成された後、
以下の主な操作が必要です。
■
■
■
■
■
デザイン・ソース・ファイル(Verilog、VHDL、AHDL、EDIF、お
よび BDF ファイル)を指定します。
Stratix II プロトタイプ・ターゲット・ファミリおよびデバイス名を
指定します。
HardCopy II コンパニオン・リビジョンおよびマイグレーション・
デバイスを指定します。
Design Assistant を有効にします。
推奨される HardCopy II を Quartus II ツール設定固有のものにしま
す。
これらに加えて、この時点で、合成や配置配線などのツールに影響を与
えるその他のプロジェクト設定を行うことができます。
上記の操作は、set_global_assignment コマンドを使用して実行されま
す。このコマンドの構文は、次のとおりです。
tcl> set_global_assignment [-comment<comment>] \
[-disable] [-entity <entity_name>] -name <name> \
[-remove] [-section_id <section_id>] <value>
set_global_assignment コ マ ン ド の 最 も 重 要 な パ ラ メ ー タ は、
<name> と <value> です。<name> 引数は設定する Quartus II のグローバ
ル変数を指定し、<value> はその変数に割り当てられた新しい値です。
HardCopy II デザインを初期化する際のステップの 1 つは、Design
Assistant をオンにすることです。GUI で実行するとき、Design Assistant
はデザインの Stratix II フェーズと HardCopy II フェーズの両方を実行す
るためのビジュアル・チェックリストを提供します。初めてのユーザに
とって、これが HardCopy II プロジェクトを正常に完了するための強力
なガイドとなります。
6–12
Altera Corporation
2007 年 6 月
グローバル・アサインメントの作成
HardCopy II プロジェクトの主なグローバル変数は、表 6–4 にリストさ
れています。
表 6–4. 主な HardCopy II デザイン設定
グローバル変数名 <name>
値の説明 <value>
VERILOG_FILE
Verilog ファイル名
VHDL_FILE
VHDL ファイル名
AHDL_FILE
アルテラ HDL ファイル名
EDIF_FILE
EDIF ファイル名
BDF_FILE
アルテラ回路図ファイル名
FAMILY
デバイス・ファミリ名。例 : Stratix II
DEVICE
プロトタイプ FPGA のターゲット・デバイス名
TOP_LEVEL_ENTITY
トップレベルのデザイン・エンティティ名またはモジュー
ル名
DEVICE_TECHNOLOGY_MIGRATION_LIST
HardCopy II のターゲット・デバイス名
COMPANION_REVISION
HardCopy II のデザイン・リビジョン名
ENABLE_DRC_SETTINGS
Design Assistant をオンにする。
USE_TIMEQUEST_TIMING_ANALYZER
TimeQuest をデフォルトのタイミング・アナライザとして
設定 <ON>
SDC_FILE
TimeQuest 制約のファイル <constraint_file.sdc>.
クラシック・タイミング・アナライザを使用するときには、以下の設定のみ必要です。クラシック・タイミン
グ・アナライザの使用は推奨されません。
REPORT_IO_PATHS_SEPARATELY
入力および出力の最小および最大タイミング結果に対す
る個別レポート・パネルを作成します。
FLOW_ENABLE_TIMING_CONSTRAINT_CHECK タイミング制約の完全性がチェックされます(すべてのク
ロック・ドメインの制約と最小および最大制約がすべての
I/O パスに対して設定される)。
DO_COMBINED_ANALYSIS
タイミング解析は、それぞれ高速および低速動作条件、ベ
スト・ケースおよびワースト・ケースのタイミングに対し
て実行されます。
IGNORE_CLOCK_SETTINGS
これはオフにする必要があります。
ENABLE_RECOVERY_REMOVAL_ANALYSIS
非同期コントロールおよびリセット信号でのリカバリお
よびリムーバルのタイミングを検証します。
ENABLE_CLOCK_LATENCY
クロック・レイテンシがタイミング解析に含まれ、クロッ
ク挿入のタイミングおよびクロック・スキューが評価され
ます。
Altera Corporation
2007 年 6 月
6–13
HardCopy シリーズ・ハンドブック Volume 1
DEVICE お よ び DEVICE_TECHNOLOGY_MIGRATION_LIST 変数は、
Stratix II プロトタイプ・デザインおよび HardCopy II デザインに使用さ
れる部分です。移行を可能にするには、選択された Stratix II プロトタイ
プ・デバイスが選択された HardCopy II デバイスと互換性がなければな
りません。これらのデバイスの有効な組み合わせは、表 6–5 にリストさ
れています。
DEVICE_TECHNOLOGY_MIGRATION_LIST 変数の場合、表 6–5 にリスト
される HardCopy II のパーツ名が使用されます。DEVICE 変数の場合、
Stratix II のパーツ名にはそのパーツのスピード・グレードが含まれます。
スピード・グレードは、工業用(I)またはコマーシャル(C)、および
スピード・インジケータ(番号 3、4、または 5)を示す 2 文字のコード
です。例えば、-4 の一般用パーツは、2 文字のスピード・グレード C4 を
使用して示されます。この 2 文字のスピード・グレードは、Stratix II の
パーツ名に付加され、DEVICE 変数の値文字列を形成します。
表 6–5. HardCopy II に対する Stratix II プロトタイプ・オプション
(1 / 2)
HardCopy II
Stratix II プロトタイプ・パーツ
HC210F484C
HC210W484C
EP2S30F484C3
EP2S30F484C4
EP2S30F484C5
EP2S30F484I4
EP2S60F484C3
EP2S60F484C4
EP2S60F484C5
EP2S60F484I4
EP2S90H484C4
EP2S90H484C5
HC220F672C
EP2S60F672C3
EP2S60F672C4
EP2S60F672C5
EP2S60F672I4
HC220F780C
EP2S90F780C4
EP2S90F780C5
EP2S130F780C4
EP2S130F780C5
6–14
Altera Corporation
2007 年 6 月
グローバル・アサインメントの作成
表 6–5. HardCopy II に対する Stratix II プロトタイプ・オプション
(2 / 2)
HardCopy II
Stratix II プロトタイプ・パーツ
HC230F1020C
EP2S90F1020C3
EP2S90F1020C4
EP2S90F1020C5
EP2S90F1020I4
EP2S130F1020C3
EP2S130F1020C4
EP2S130F1020C5
EP2S130F1020I4
EP2S180F1020C3
EP2S180F1020C4
EP2S180F1020C5
EP2S180F1020I4
HC2401020C
EP2S180F1020C3
EP2S180F1020C4
EP2S180F1020C5
EP2S180F1020I4
HC240F1508C
EP2S180F1508C3
EP2S180F1508C4
EP2S180F1508C5
EP2S180F1508I4
以下の 2 つの Tcl コマンドは、DEVICE および DEVICE_TECHNOLOGY_
MIGRATION_LIST 変数の設定を示します。
tcl> set_global_assignment -name DEVICE EP2S90F1020C4
tcl> set_global_assignment -name \
DEVICE_TECHNOLOGY_MIGRATION_LIST HC230F1020C
Altera Corporation
2007 年 6 月
6–15
HardCopy シリーズ・ハンドブック Volume 1
Design Assistant
ENABLE_DRC_SETTINGS グローバル変数をオンにして、デザイン・プロ
セスの初めに Design Assistant をオンにしなければなりません。
tcl> set_global_assignment \
-name ENABLE_DRC_SETTINGS ON
Design Assistant は、プロトタイプ Stratix II および HardCopy II デザイ
ン・フローの両方の各ステップと並行して動作します。Design Assistant
がオンのとき、Quartus II ソフトウェアはチェックを行って、プロジェ
クトがすべての HardCopy II デザイン・ルールおよびデザイン要件の下
でフルにコンパイルされるようにします。
Design Assistant について詳しくは、
「HardCopy シリーズ・ハンドブッ
ク Volume 1」の「Design Guidelines for HardCopy II Devices」の章、お
よび「Quartus II ハンドブック」の「Quartus Support for HardCopy II
Devices」の章を参照してください。
6–16
Altera Corporation
2007 年 6 月
グローバル・アサインメントの作成
グローバル・アサインメント作成のための Tcl スクリプト例
以下の Tcl スクリプト例は、HardCopy II プロジェクトに対するグロー
バル制約の適用を示します。
## HardCopy II デザインのためのグローバル・アサイメント・スクリプト例
## このスクリプトは EP2S90 Stratix II
## プロトタイプ FPGA ターゲットおよび HC230 HardCopy II ターゲットの設定を適用する。
## ソース・デザイン・ファイルの設定
## ===========================
set_global_assignment -name VERILOG_FILE demo_design.v
set_global_assignment -name VERILOG_FILE example_ram.v
## Stratix II プロトタイプ FPGA ターゲットの設定
## =========================================
set_global_assignment -name FAMILY "Stratix II"
set_global_assignment -name DEVICE EP2S90F1020C4
set_global_assignment -name TOP_LEVEL_ENTITY demo_design
## HardCopy II コンパニオン・リビジョンおよびターゲットの設定
## ==================================================
set_global_assignment -name COMPANION_REVISION_NAME \
demo_design_hardcopyii
set_global_assignment -name DEVICE_TECHNOLOGY_MIGRATION_LIST HC230F1020
## HardCopy II に要求される Design Assistant のアサイメントおよび設定
##==============================================================
set_global_assignment -name ENABLE_DRC_SETTINGS ON
set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1
set_global_assignment -name REPORT_IO_PATHS_SEPARATELY ON
## 以下のアサイメントはクラシック・タイミング・アナライザのみに対するもので、
## TimeQuest では使用されない。
##===========================================================
set_global_assignment -name FLOW_ENABLE_TIMING_CONSTRAINT_CHECK ON
set_global_assignment -name DO_COMBINED_ANALYSIS ON
set_global_assignment -name IGNORE_CLOCK_SETTINGS OFF
set_global_assignment -name ENABLE_RECOVERY_REMOVAL_ANALYSIS ON
set_global_assignment -name ENABLE_CLOCK_LATENCY ON
## スクリプトの終わり
Altera Corporation
2007 年 6 月
6–17
HardCopy シリーズ・ハンドブック Volume 1
I/O
アサインメン
トの作成
プログラマブル I/O セルの使用と、特定のピンおよびパッケージに対す
るそれらのセルの可用性は複雑なルールで支配されているため、アルテ
ラではピン・プランニングツールおよび Quartus II GUI のアサインメン
ト・エディタを使用して I/O アサインメントを実行することを強くお勧
めしています。これらのツールにより、各ピンおよび I/O セルに関する
すべてのルールが正しく適用されます。Quartus II GUI は、すべての I/O
アサインメントと仕様を含む Tcl スクリプトをエクスポートできます。
I/O アサインメントは、ここでは簡単に説明するにとどめます。
Quartus II アサインメント・エディタおよびピン・プランナ・ツールを
使用した I/O の位置およびタイプ・アサインメントについて詳しくは、
「Quartus II ハンドブック Volume 2」の「アサインメント・エディタ」の
章を参照してください。
この項では、I/O 仕様は以下の 2 つのパートで検討されます。
■
■
ピン・アサインメント
I/O タイプ・アサインメント
ピン・アサインメント
デザイン I/O 信号は、set_location_assignment コマンドを使用してパッ
ケージ・ボールに割り当てられます。このコマンドの構文は、次のとお
りです。
tcl> set_location_assignment [-comment <comment>] \
[-disable] [-remove] -to <destination> <value>
ここでは、<destination> はパッケージ・ボール名、<value> はデザイン
I/O 信号名です。BGA パッケージと FBGA パッケージについては、ボー
ル名は PIN_<coordinate> の形式になります。例えば、デザイン I/O 信
号 data_out[15] をパッケージボール AL17 に割り当てる場合は、次の
ようにします。
tcl> set_location_assignment -to PIN_AL17 data_out[15]
I/O タイプとパラメータの設定
I/O タイプとパラメータの仕様については、set_instance_assignment コ
マンドが使用されます。このコマンドの構文は、次のとおりです。
tcl> set_instance_assignment [-comment <comment>] \
[-disable] [-entity <entity_name>] \
[-from <source>] -name <name> [-remove] \
[-section_id <section_id>] \
6–18
Altera Corporation
2007 年 6 月
グローバル・アサインメントの作成
[-to <destination>] <value>
アサインメント名 <name> は、I/O 仕様が適用されることを示すために、
IO_STANDARD に設定します。対応する I/O 信号は、-to <destination> で
指定されます。引数 <destination> は、レベルや規格など I/O タイプに関
する詳細を提供する文字列です。表 6–6 に、HardCopy II デバイスでサ
ポートされる I/O 規格に対応する文字列を示します。
表 6–6. Tcl の I/O 規格文字列
I/O タイプまたは <name>
説明
LVTTL
LVTTL I/O
LVCMOS
LVCMOS I/O
“3.3-V PCI”
3.3-V PCI I/O
“3.3-V PCI-X”
3.3-V PCI X I/O
“1.5 V“
1.5-V I/O
“1.8 V”
1.8-V I/O
“2.5 V”
2.5-V I/O
“1.5-V HSTL CLASS I”
QDRII SRAM 1.5-V I/O
“1.5-V HSTL CLASS II”
QDRII SRAM 1.5-V I/O
“1.8-V HSTL CLASS I”
QDRII SRAM/RLDRAM II 1.8-V I/O
“1.8-V HSTL CLASS II”
QDRII SRAM/RLDRAM II 1.8-V I/O
“DIFFERENTIAL 1.5-V HSTL CLASS I”
メモリ・クロック・インタフェース
“DIFFERENTIAL 1.5-V HSTL CLASS II”
メモリ・クロック・インタフェース
“DIFFERENTIAL 1.8-V HSTL CLASS I”
メモリ・クロック・インタフェース
“DIFFERENTIAL 1.8-V HSTL CLASS II”
メモリ・クロック・インタフェース
“DIFFERENTIAL 1.8-V SSTL CLASS I”
DDR2 SDRAM
“DIFFERENTIAL 1.8-V SSTL CLASS II”
DDR2 SDRAM
“DIFFERENTIAL SSTL-2”
DDR SDRAM
“DIFFERENTIAL 2.5-V SSTL CLASS II”
DDR SDRAM
“SSTL-18 CLASS I”
DDR2 SDRAM
“SSTL-18 CLASS II”
DDR2 SDRAM
“SSTL-2 CLASS I”
DDR SDRAM
“SSTL-2 CLASS II”
DDR SDRAM
LVDS
2.5-V 差動シグナリング
HYPERTRANSPORT
2.5-V 差動シグナリング
LVPCL
差動
Altera Corporation
2007 年 6 月
6–19
HardCopy シリーズ・ハンドブック Volume 1
set_instance_assignment コマンドを使用して、他の多くの I/O パ
ラメータを指定できます。より一般的なパラメータの一部を、表 6–7 に
示しています。
表 6–7. Tcl の共通 I/O パラメータの設定
<name> 設定
<value> 設定
説明
on
ピンにウィーク・プルアップ抵
抗を実装。
整数
出力ピンまたは双方向ピンの
容量性負荷。単位 pF。
fast_output_register
on
I/O セルまたは隣接 LAB に、高
速出力レジスタを実装。
fast_output_enable_register
on
I/Oセルまたは/および隣接LAB
に、高速出力イネーブル・レジ
スタを実装。
fast_input_register
on
I/O セルまたは隣接 LAB に、高
速入力レジスタを実装。
2 mA, 4 mA, 8 mA, 10 mA,
12 mA, 16 mA, 18 mA,
20 mA, 24 mA
minimum_current または
出力ピンまたは双方向ピンの
ドライブ強度。
weak_pull_up_resistor
output_pin_load
current_strength_new
maximum_current
stratixii_termination
差動
I/Oピン用On-Chip Termination
“ キャリブレーション付き直列 25Ω” (またはインピーダンス・マッ
“ キャリブレーションなし直列 25Ω” チング)。
“ キャリブレーション付き直列 50Ω”
“ キャリブレーションなし直列 50Ω”
HardCopy II デバイスの I/O 可用性について詳しくは、「HardCopy シ
リーズ・ハンドブック Volume 1」の「I/O の構造と機能」の項を参照し
てください。
6–20
Altera Corporation
2007 年 6 月
タイミング制約の割り当て
I/O アサインメントのスクリプト例
以下の Tcl スクリプト例では、いくつかの異なる I/O 制約を指定してい
ます。
## シグナル・ボール・アサイメント
set_location_assignment PIN_AH5 -to addr_out[0]
set_location_assignment PIN_AH6 -to addr_out[1]
set_location_assignment PIN_AJ5 -to data_in[0]
set_location_assignment PIN_AJ6 -to data_in[1]
set_location_assignment PIN_AJ32 -to resetn
set_location_assignment PIN_AM17 -to ref_clk
# I/O タイプとパラメータのアサイメント
set_instance_assignment -name IO_STANDARD
set_instance_assignment -name IO_STANDARD
set_instance_assignment -name IO_STANDARD
set_instance_assignment -name IO_STANDARD
set_instance_assignment -name IO_STANDARD
set_instance_assignment -name IO_STANDARD
"1.5-V HSTL CLASS II"
"1.5-V HSTL CLASS II"
"1.5-V HSTL CLASS II"
"1.5-V HSTL CLASS II"
LVDS -to resetn
LVCMOS -to ref_clk
-to
-to
-to
-to
addr_out[0]
addr_out[1]
data_in[0]
data_in[1]
set_instance_assignment
set_instance_assignment
set_instance_assignment
set_instance_assignment
-name
-name
-name
-name
fast_input_register on -to data_in[0]
fast_input_register on -to data_in[1]
fast_output_register on -to addr_out[0]
fast_output_register on -to addr_out[1]
set_instance_assignment
set_instance_assignment
set_instance_assignment
set_instance_assignment
-to data_in[1]
-name
-name
-name
-name
output_pin_load 10 -to addr_out[0]
output_pin_load 10 -to addr_out[1]
current_strength_new 16mA -to addr_out[0]
stratixii_termination “ キャリブレーションなしの直列 25Ω”\
タイミング
制約の
割り当て
デザイン・タイミング制約のプランニング
Altera Corporation
2007 年 6 月
タイミング制約は、Quartus II ソフトウェアでコンパイルされるデザイ
ンが特定のタイミング要件に適合することを保証します。FPGA をター
ゲットにした場合は、タイミング制約の全セットを適用するのではなく、
プロトタイプ・システムでタイミング問題が発生したときに、これらを
修正する方法を選択することができます。ただし HardCopy デバイスは、
リコンフィギュレーションを使用して変更し、タイミング問題を修正す
ることはできないため、デザインを完全に制約することが非常に重要で
す。デザインを完全に制約しなければ、プロトタイプの Stratix II FPGA
と HardCopy II デバイス間でタイミング特性が大きく異なることになり
ます。デザインを完全に制約することによって、アルテラは Stratix II
FPGA と HardCopy II デバイスの両方でユーザのタイミング仕様への完
全準拠を保証できます。
6–21
HardCopy シリーズ・ハンドブック Volume 1
HardCopy II デザインに対する最低限のタイミング制約は、次のように
なります。
■
■
各クロック・ドメインに対するクロック設定(FMAX)
非同期リセット信号とコントロールI/O信号を含む、すべてのI/Oパ
スに対する最小および最大遅延
また、以下に対応するようにタイミング制約を開発するのがよいデザイ
ン方法です。
■
■
■
特定のクロスクロック・ドメイン・タイミング要求
フォルス・パス
マルチサイクル・パス
TimeQuest では、タイミング制約は TimeQuest SDC 形式で記述され、
SDC ファイルから読み込まれます。ファイルの一例は、demo_design.sdc
です。6–32 ページの「TimeQuest の使用」を参照してください。
クラシック・タイミング・アナライザでは、タイミング制約は専用の Tcl
コマンドを使用し、set_instance_assignment コマンドでタイミン
グ固有の属性を割り当てることによって適用されます。
この項では、Tcl コマンドを使用したタイミング制約開発の概要を示しま
す。
タイミング制約について詳しくは、
「Quartus II ハンドブック Volume 3」
の「タイミング解析」の項を参照してください。
システム・クロックの指定
適用すべき最も基本的な制約で、各クロック・ドメインのクロックが記
述されます。各クロックには通常、次のようなパラメータが指定されま
す。
■
■
■
クロック期間
レイテンシ(LATE_CLOCK_LATENCY/EARLY_CLOCK_LATENCY ア
サインメント)
不確実性(set_clock_uncertainty コマンド)
set_clock_uncertainty コマンドで指定されるクロックの不確実性
は、ジッタを含むクロック期間にける不確実性をモデル化しており、し
ばしばターゲットのクロック周波数に少しのマージンを導入するために
使用されます。以下の制約の例は、clk_a と clk_b の 2 つのクロック・
6–22
Altera Corporation
2007 年 6 月
タイミング制約の割り当て
ドメインを持つデザインのクロック定義を示しています。この場合、両
方のクロックとも 100 MHz で動作しますが、クロック・レイテンシと
スキューは異なります。
## クロック clk_a と clk_b を定義する TimeQuest SDC 制約の例
create_clock -period 10.0 -name clk_a [get_ports clk_a]
set_clock_latency -source -late 3.0 clk_a
set_clock_latency -source -early 2.0 clk_a
set_clock_uncertainty -to clk_a 0.25
create_clock -period 10.0
set_clock_latency -source
set_clock_latency -source
set_clock_uncertainty -to
-name clk_b [get_ports clk_b]
-late 4.0 clk_b
-early 3.0 clk_b
clk_b 0.25
入力 / 出力タイミング
システム・クロック・パラメータは、各クロック・ドメイン内のレジス
タ間パスに対するセットアップおよびホールド・タイミングを定義しま
す。I/O タイミング・パラメータは、I/O とレジスタ間、およびレジス
タと I/O 間の記述に使用されます。
set_input_delay 制約は、チップ外部のソースから入力ピンまでの遅延
を、定義済みのクロックを基準にして指定するのに使用されます。この
コマンドの構文は、次のとおりです。
set_input_delay \
-clock <clock name> \
[-clock_fall] \
[-rise | -fall] \
[-max | -min] \
[-add_delay] \
[-reference_pin <pin or port>] \
<delay value> \
<port pin list>
<clock name> 引数は、遅延の基準クロックを指定します。<port pin list>
引数は、デザインのトップレベルの入力信号であり、<delay value> は外
部遅延です。外部遅延は、-clock_fall 引数が指定されていない場合、
<clock> の正(立ち上がり)エッジから測定されます。-min 引数と -max
引数は、<delay value> がそれぞれ最小外部遅延または最大外部遅延
かどうかを指定するのに使用されます。
set_output_delay 制約は、出力ピンから外部接続先までの遅延をクロッ
クを基準にして指定することを除いて、set_input_delay 制約に類似し
ています。
Altera Corporation
2007 年 6 月
6–23
HardCopy シリーズ・ハンドブック Volume 1
set_output_delay \
-clock <clock name> \
[-clock_fall] \
[-rise | -fall] \
[-max | -min] \
[-add_delay] \
[-reference_pin <pin or port>] \
<delay value> \
<port pin list>
一例として、次の Tcl スクリプトは 2 つの I/O 信号の入力および出力の
最小遅延と最大遅延を指定します。入力 data_in[0] の最小および最大
外部遅延は、それぞれ 3 ns と 7 ns です。出力 data_out[0] の最小およ
び最大外部遅延は、それぞれ 4 ns と 8 ns です。data_in[0] の外部入力
遅延は、クロック ref_clk の正エッジを基準にし、data_out[0] の外
部出力遅延はクロック ref_clk の負エッジを基準にします。
# set_input_delay と set_output_delay を使用して I/O タイミングを設定する Tcl スクリプト
set_input_delay -clock ref_clk -max 7.0 [get_ports data_in[0]]
set_input_delay -clock ref_clk -min 3.0 [get_ports data_in[0]]
set_output_delay -clock ref_clk -max 8.0 [get_ports data_out[0]]
set_output_delay -clock ref_clk -min 4.0 [get_ports data_out[0]]
タイミング例外の作成
タイミングの例外は、クロック設定および I/O タイミング設定で対応さ
れないタイミング制約を修正するために使用されます。最も一般的なタ
イミング例外はマルチサイクル・パスとフォルス・パスです。
TimeQuest では、マルチサイクル・パスは set_multicycle_path 制約を
使用して記述されます。この制約の構文は、次のとおりです。
set_multicycle_path [-setup][-hold][-start]
クラシック・タイミング・アナライザでは、マルチサイクル・パスは
set_multicycle_assignment コマンドを使用して記述されます。こ
のコマンドの構文は、次のとおりです。
tcl> set_multicycle_assignment [-comment <comment>] \
[-disable] [-end] [-from <from_list>] \
[-hold] [-remove] [-setup] [-start] \
[-to <to_list>] <path_multiplier>
いずれのタイミング・アナライザでも、マルチサイクル・アサインメン
トは、最大サイクル数を指定するには-setup 引数を使用し、パスの最
小サイクル数を指定するには -hold 引数を使用して行われます。
6–24
Altera Corporation
2007 年 6 月
タイミング制約の割り当て
フォルス・パスは、タイミング最適化または解析操作に指定できないパ
スを記述します。Quartus II ソフトウェアでは、フォルス・パスを記述
する方法がいくつかあります。デフォルトにより、クラシック・タイミ
ング・アナライザでは、双方向 I/O の出力側から入力側へのフィード
バック、メモリ内の read-while-write パス、およびクロスクロック・ド
メイン・パスは、最適化またはタイミング解析中はタイミングが計られ
ません。デフォルトにより、Time Quest ではクロスクロック・ドメイ
ン・パスのタイミングが計られます。
これらのデフォルト設定を変更するには、
「Quartus II ハンドブック
Volume 1」の「Quartus II による HardCopy シリーズ・デバイスのサ
ポート」の章にある「タイミング設定」の項を参照してください。
TimeQuest では、set_false_path 制約は、タイミング最適化または解析
に含めることができないパスを記述する場合に使用されます。この制約
の構文は、次のとおりです。
tcl> set_false_path \
[-from <from list>] \
[-to <to list>] \
[-thru <thru list>]
クラシック・タイミング・アナライザでは、フォルス・パスを制御する
最も一般的なコマンドは、set_timing_cut_assignment コマンドです。こ
のコマンドの構文は、次のとおりです。
tcl> set_timing_cut_assignment \
[-comment <comment>] \
[-disable] \
[-from <from_pin_list>] \
[-remove] \
[-to <to_pin_list>]
<from_pin_list> のノードと <to_pin_list> のノード間のすべてのパスは、
タイミング最適化および解析操作から除外されます。
TimeQuest SDC 制約の例
# タイミング・アサインメント
# ==================
create_clock –period 10.0ns -name ref_clk ref_clk
set_clock_latency -late 3 ref_clk
set_clock_latency -early 2 ref_clk
set_clock_uncertainty –hold –to ref_clk 0.250ns
set_clock_uncertainty –setup –to ref_clk 0.250ns
# bus data_in[1:0] に対する 6ns (max) & 2ns (min) の入力遅延
Altera Corporation
2007 年 6 月
6–25
HardCopy シリーズ・ハンドブック Volume 1
set_input_delay –clock ref_clk –max 6 data_in
set_input_delay –clock ref_clk –min 2 data_in
# bus data_out[1:0] に対する 6ns (max) & 2ns (min) の出力遅延
set_output_delay –clock ref_clk –max 6 data_out
set_output_delay –clock ref_clk –min 2 data_out
# resetn net のタイミングについてはドント・ケア。フォルス・パスとして設定。
set_false_path -from resetn
クラシック・タイミング・アナライザの Tcl スクリプトの例
# タイミング・アサインメント
# ==================
create_base_clock –fmax 100 MHz –target ref_clk ref_clk
set_instance_assignment -name LATE_CLOCK_LATENCY 3ns -to ref_clk
set_instance_assignment -name EARLY_CLOCK_LATENCY 2ns -to ref_clk
set_clock_uncertainty –hold –to ref_clk 0.250ns
set_clock_uncertainty –setup –to ref_clk 0.250ns
# bus data_in[1:0] に対する 6ns (max) & 2ns (min) の入力遅延
set_input_delay –clk_ref ref_clk –max –to data_in 6.0ns
set_input_delay –clk_ref ref_clk –min –to data_in 2.0ns
# bus data_out[1:0] に対する 6ns (max) & 2ns (min) の出力遅延
set_output_delay –clk_ref ref_clk –max –to data_out 6.0ns
set_output_delay –clk_ref ref_clk –min –to data_out 2.0ns
# resetn net のタイミングについてはドント・ケア。フォルス・パスとして設定。
set_timing_cut_assignment -resetn から
この項では、タイミング制約の適用に使用する Tcl コマンドの概要を示
しました。
Tcl コ マ ン ド を 使 用 したタイミング制約の適用について詳しくは、
「Quartus II Scripting Reference Manual」の「Tcl のパッケージとコマン
ド」の章を参照してください。
Stratix II
プロトタイプ・
デザインの
コンパイル
グローバル・アサインメント、リソース・アサインメント、タイミング・
アサインメントをすべて指定した後、デザイン・プロセスの次のステッ
プとして Stratix II FPGA プロトタイプ・デザインをコンパイルします。
この目的のために、execute_flow コマンドが用意されており、コンパ
イル・プロセスに影響を与えるさまざまな引数をサポートします。この
コマンドの構文は、次のとおりです。
tcl> execute_flow \
[-analysis_and_elaboration] \
[-attempt_similar_placement] \
6–26
Altera Corporation
2007 年 6 月
Stratix II プロトタイプ・デザインのコンパイル
[-check_ios] \
[-check_netlist] \
[-compile] \
[-compile_and_simulate] \
[-early_timing_estimate] \
[-eco] [-export_database] \
[-fast_model] \
[-generate_functional_sim_netlist] \
[-import_database]
プロトタイプ Stratix II および HardCopy II デザインに関連するスイッチ
を、表 6–8 に示します。
表 6–8. execute_flow Tcl コマンドのスイッチ
スイッチ
説明
analysis_and_elaboration
ターゲットのアルテラ・テクノロジーへの合成およびマッ
ピングを実行
attempt_similar_placement
Attempt Similar Placement を実行
check_ios
I/O アサインメントを検証
check_netlist
ネットリストの構文チェックを実行
compile
Quartus II コンパイル・フローを実行
compile_and_simulate
コンパイルでは、シミュレーションも実行
early_timing_estimate
Early Timing Estimate を実行
eco
フィッタ ECO コンパイルを実行
export_database
バージョン互換のデータベースをエクスポート
fast_model
タイミング解析(高速モデル解析)を実行
generate_functional_sim_netlist
シミュレーション・ネットリストを生成
import_database
バージョン互換のデータベースをインポート
execute_flow コマンドの HardCopy スイッチは、HardCopy II
デザインではなく、HardCopy Stratix デザインに使用されること
に注意してください。
execute_flow コマンドを実行する最も簡単な方法は、
-compile ス
イッチを使用することです。
tcl> execute_flow -compile
このように execute_flow コマンドを実行すると、Quartus II コンパイ
ル・フローの以下の 4 ステージが、各ステージにデフォルト設定を使用
して実行されます。
Altera Corporation
2007 年 6 月
6–27
HardCopy シリーズ・ハンドブック Volume 1
■
■
■
■
解析と合成
フィッタ
タイミング解析
アセンブラ
デザイン・アシスタントおよびタイミング制約チェックは、Quartus II
設定ファイルで有効になっている場合に実行されます。
I/O アサインメントをチェックして、ダウンストリームのコンパイル動
作 で の 問 題 を 回 避 す る 必 要 が あ り ま す。こ れ を 行 う に は、
execute_flow コンパイルを以下の 3つのステップに分割する必要があ
ります。
1.
tcl> execute_flow -analysis_and_elaboration
2.
tcl> execute_flow -check_ios
3.
tcl> execute_flow -compile
明確さと簡潔さを目的として、ここで示す Tcl フラグメントにはエラー・
チェックが組み込まれていないことに注意してください。ただし、デザ
インを進める過程で成功を確認するコードを Tcl スクリプトに組み入れ
るのもよい方法です。execute_flow プロシージャの場合、戻り値を
Tcl catch コマンドで使用して成功または失敗を処理することができま
す。次の例は、これを行うための 1 つのオプションを示しています。
# コンパイルが成功したかどうか、および
# 個別メッセージを出力するかどうかを判断する。
if {[catch {execute_flow -compile} result]} {
puts "\nResult: $result\n"
puts
"ERROR: Compilation failed. See report files.\n"
} else {
puts "\nINFO: Compilation was successful.\n"
}
execute_flow コ マ ンドについて詳 しくは、「Quartus II Scripting
Reference Manual」の「Tcl Packages and Commands」の章のコマンド
の説明を参照してください。
HardCopy II
デザインの
コンパイル
6–28
Stratix II FPGA プロトタイプ・デザインがコンパイルされ、検証される
と、HardCopy II バージョンのデザインをコンパイルできます。これは
次の 2 段階のプロセスで行われます。
1.
HardCopy II コンパニオン・リビジョンを作成します。
Altera Corporation
2007 年 6 月
レポート・ファイルの理解
2.
HardCopy II コンパニオン・リビジョンをコンパイルします。
HardCopy IIバージョンのデザインを作成するには、execute_hardcopyii
Tcl コマンドを、-create_companion オプションを指定して実行しま
す。
tcl> execute_hardcopyii -create_companion demo_design_hcii
このコマンドは、HardCopy II リビジョンのデータベースを初期化し、
新しい QSF ファイルを作成し(この例では、demo_design_hcii.qsf)、
Stratix II FPGA リビジョンのすべての制約が確実に移植されるようにし
ます。
次に、Quartus II プロジェクトの現在作業中の HardCopy II リビジョン
が HardCopy II リビジョンに変更され、デザインが HardCopy II デバイ
ス・ターゲットに対してコンパイルされます。
tcl> set_current_revision demo_design_hcii
tcl> execute_flow -compile
プロトタイプ Stratix II リビジョンと同様に、実行される各ツールのプロ
ジェクト・ディレクトリにレポート・ファイルが生成されます。
レポート・
ファイルの
理解
execute_flow コマンドは、プロジェクト・ディレクトリに多数のレ
ポート・ファイルを生成します。これらのファイルは、コンパイル中に
コンソールに表示されるメッセージを要約し、デザインに関する追加情
報を提供します。各レポート・ファイルの名前は、<revision><tool short
name>.summary と <revision><tool short name>.rpt の形式をとります。こ
こで、<revision> は現在のデザインのリビジョン名です。.summary ファ
イルには、メッセージの簡単な要約と、ツールによる結果が格納され、
.rpt フ ァ イ ル に は よ り 詳 細 な メ ッ セ ー ジ と 情 報 が 格 納 さ れ ま す。
HardCopy II プロジェクトの場合、2 組のレポート・ファイルが生成さ
れます。1 つは Stratix II プロトコル FPGA リビジョンのファイル、もう
1 つは HardCopy II リビジョンのファイルです。表 6–9 に、さまざまな
レポート・ファイルを説明しています。
Tcl report パッケージは、Quartus II のフィッタおよびタイミング
解析エンジンに関連するレポート・ファイルをカスタマイズおよ
び管理するための強力なプロシージャの集合を提供します。
Altera Corporation
2007 年 6 月
6–29
HardCopy シリーズ・ハンドブック Volume 1
レ ポ ー ト・フ ァ イ ル の カ ス タ マ イ ズ と 管 理 に つ い て 詳 し く は、
「Quartus II Tcl Reference Manual」の「Tcl Packages and Commands」の
レポートの項を参照してください。
表 6–9. Stratix II コンパイル・レポート・ファイルの説明
スイッチ
<revision>.map.rpt
ツール
Analysis & Synthesis
説明
合成設定、ソース・ファイル、メッセージ、リソース利用。
<revision>.map.eqn Analysis & Synthesis
実装等式およびデバイス・リソースのインスタンス化。
<revision>.fit.rpt
フィッタ
フィッタ設定、レイアウト最適化、リソース、ピン配置、
およびメッセージ。
<revision>.fit.eqn
フィッタ
実装された等式およびフィッティング後のデバイス・リ
ソースのインスタンス化。
<revision>.drc.rpt
デザイン・アシスタント
デザイン・ルール設定、違反、およびメッセージ。
<revision>.upc.rpt
Timing Constraint Checker
制約の適用範囲情報。
<revision>.asm.rpt
アセンブラ
アセンブラ設定、.pof 出力ファイルおよび .sof 出力ファイ
ル・オプション、およびメッセージ。
<revision>.rec.rpt
コンパニオン・リビジョン HardCopy II リビジョンと Stratix II プロトタイプ・デザイ
の比較
ンの構造の比較に関するステータス・レポート。
<revision>.flow.rpt
フロー
フロー内の各ツールのリソース要約と実行時間。このレ
ポートはフロー内のツールが完了すると更新されます。
<revision>.sta.rpt
TimeQuest
TimeQuest タイミング解析レポート。
FPGA
リビジョンと
HardCopy
リビジョンの
比較
HardCopy II プロジェクトをアルテラ・デザイン・センターに提出する
前に、Stratix II プロトタイプの FPGA リビジョンと照合してチェックす
る必要があります。これを行うには、quartus_sh シェルから -compare
オプションを指定した execute_hardcopyii Tcl コマンドを実行します。
tcl> execute_hardcopyii -compare
このコマンドを実行すると、プロジェクト・ディレクトリにレポート・
ファイルとサマリ・ファイルが生成されます。これらのファイルは、
<revision_name>.rec.rpt および <revision_name>.rec.summary と呼ばれま
す。このコマンドは、次の項目が HardCopy II のデザイン・ルールに準
拠し、HardCopy II リビジョンと Stratix II リビジョンが矛盾しないこと
を確認します。
■
■
■
■
■
6–30
ソース・デザイン・ファイルとデバイス・ネットリスト・ファイル
ユーザ・クロック・アサインメント
タイミング制約(アサインメント)
I/O 位置アサインメントとタイプ・アサインメント
PLL パラメータ
Altera Corporation
2007 年 6 月
FPGA リビジョンと HardCopy リビジョンの比較
■
■
■
■
メモリ実装パラメータ
DSP 実装パラメータ
グローバル・リソース・プロパティ
使用される他のすべてのデバイス・リソースのプロパティ
比較でのエラーまたは失敗はすべて、.rec レポート・ファイルで報告さ
れます。.rec ファイルの一例を以下に示します。この例では、HardCopy II
コンパニオン・リビジョン比較サマリ・テーブルのデザイン比較チェッ
ク は す べ て 合 格 の マ ー ク が 付 け ら れ、Quartus II ソ フ ト ウ ェ ア の
HardCopy II デザインが終了し、アルテラ・デザイン・センタのバック
エンド・エンジニアリング・チームにハンドオフする準備ができたこと
を示します。
比較サマリに示されたすべての失敗を解決しなければ、デザインを進め
ることはできません。
HardCopy II Companion Revision Comparison report for demo_design_hardcopyii
Wed Sep 20 15:30:07 2006
Version 6.0 Build 202 06/20/2006 Service Pack 1 SJ Full Version
--------------------; Table of Contents ;
--------------------1. Legal Notice
2. HardCopy II Companion Revision Comparison Summary
3. Atom Netlist Comparison Summary
4. DSP Information
5. HardCopy II Companion Revision Comparison Messages
+--------------------------------------------------------------------------------------+
; HardCopy II Companion Revision Comparison Summary
;
+--------------------------------------------------+-----------------------------------+
; HardCopy II Companion Revision Comparison Status ; Analyzed - Wed Sep 20 15:29:55 2006 ;
; Quartus II Version ; 6.0 Build 202 06/20/2006 SP 1 SJ Full Version ;
; Revision Name demo_dsign_hardcopyii ;
; Top-level Entity Name
; demo_design
;
; Family
; Stratix II
;
; Compare Status
; Passed (14/14)
;
; Source Files Compared
; Passed (121/121)
;
; Assignments Compared
; Passed
;
; User Clocks Compared
; Passed (0/0)
;
; Resource Counts Compared
; Passed (5/5)
;
; I/O Structure Compared
; Passed (130/130)
;
; Package Pins Compared
; Passed (1020/1020)
;
; PLL Structure Compared
; Passed (1/1)
;
; PLL Clocks Compared
; Passed (2/2)
;
; Timing Constraints Compared
; Passed (3/3)
;
; RAM Information Compared
; Passed (10/10)
;
; DSP Information Compared
; Passed (100/100)
;
; Global Resources Compared
; Passed (8/8)
;
; Atom Compared
; Passed (335084/335084)
;
; Atom Netlist Compared
; Passed (1/1)
;
+--------------------------------------------------+-----------------------------------+
Altera Corporation
2007 年 6 月
6–31
HardCopy シリーズ・ハンドブック Volume 1
スタティック・
タイミング
解析の実行
Quartus II ソフトウェアのスタティック・タイミング解析
Stratix II プロトタイプと HardCopy II リビジョンに対して行われたグ
ローバル・アサインメントにより、高速および低速動作条件の両方に対
してスタティック・タイミング解析(STA)が実行され、セットタップ
とホールドの両方のタイミングが検証されます。
TimeQuest の使用
タイミング解析は、次の 2 つのうちいずれかの方法でコンパイル・プロ
セスから独立して実行できます。
1.
execute_module -tool sta Tcl コマンドを使用して、基本
Quartus シェル quartus_sh 内から quartus_sta のタイミング解
析 Tcl スクリプトを実行します。
2.
quartus_sta インタラクティブ Tcl シェルを独立して実行し、Tcl
プロンプトで Tcl コマンドおよびスクリプトを実行します。
クラシック・タイミング・アナライザの使用
タイミング解析は、次の 2 つのうちいずれかの方法でコンパイル・プロ
セスから独立して実行できます。
1.
execute_module -tool tan Tcl コ マ ン ド を 使 用 し て、基 本
Quartus シェル quartus_sh 内から quartus_tan のタイミング解
析 Tcl スクリプトを実行します。
2.
quartus_tan インタラクティブ Tcl シェルを独立して実行し、Tcl
プロンプトで Tcl コマンドおよびスクリプトを実行します。
Quartus II ソフトウェアでのスタティック・タイミング解析の実行につ
いて詳しくは、
「Quartus II ハンドブック」の「タイミング解析」の項を
参照してください。
スタティック・タイミング解析に関連する Tcl コマンドについては、
「Quartus II Scripting Reference Manual」の「Tcl Packages and
Commands」にある「タイミング」の項を参照してください。
PrimeTime でのスタティック・タイミング解析
Quartus II ソフトウェアは、Synopsys 社の PrimeTime で STA を実行す
るのに必要なファイルも生成できます。以下の例では、Tcl コマンドは
Quartus II ソフトウェアに、STA の PrimeTime ファイルを生成するよう
に指示しています。
6–32
Altera Corporation
2007 年 6 月
HardCopy II の Tcl スクリプト例
## Tcl Script to Generate PrimeTime STA File Output
execute_module -tool sta -args --tq2pt
execute_module -tool eda -args "--tool primetime --format verilog --timing_analysis"
Quartus II ソフトウェアで生成されたファイルは、プロジェクト・ディ
レクトリのサブディレクトリ内に編成されます。例えば、Stratix II プロ
トタイプ・デザイン(demo_design)をコンパイルした後、次の verilog
(.vo)SDF(.sdo)と PrimeTime Tcl スクリプト(.tcl)が、プロジェク
ト・ディレクトリに作成されます。
timing\
primetime\
demo_design_v.sdo
demo_design.pt.tcl
demo_design.collections.sdc
demo_design.constraints.sdc
Tcl スクリプトには、Quartus II ソフトウェアのコンパイル中に適用され
るすべてのタイミング制約が含まれます。
HardCopy II
の Tcl
スクリプト例
以 下 の ス ク リ プ ト で は、こ こ ま で に 説 明 し た Tcl の ア イ デ ア を
quartus_shTcl シェル用のトップレベル Tcl スクリプトにまとめていま
す。このスクリプトは、demo_design と呼ばれる HardCopy II デザイン
を実装します。demo_design と呼ばれる新しいプロジェクトの作成か
ら始まり、Stratix II FPGA プロトタイプのコンパイル、HardCopy II コ
ンパニオン・リビジョンの作成、コンパニオン・リビジョンのコンパイ
ルが行われます。最後に、リビジョン比較ツールが実行されて、両方の
リビジョンに一貫性があることが検証されます。
この例では、グローバル、ピン、およびタイミング・アサインメント・
スクリプトが、Tcl source コマンドを使用してトップレベル・スクリプ
トに読み込まれます。ソース・スクリプトは、トップレベル・スクリプ
ト・リストに従ってリストされます。
トップレベル・スクリプト demo_design.tcl の例
## demo_design.tcl
## Top-level script for executing a HardCopy II design in quartus_sh -s
load_package flow
## Open of create the Stratix II FPGA prototype revision
if [is_project_open] project_close
if {[project_exists demo_design]} {
project_open demo_design
} else {
project_new demo_design
}
Altera Corporation
2007 年 6 月
6–33
HardCopy シリーズ・ハンドブック Volume 1
## Apply global design settings
source global_assignments.tcl
## Apply I/O assignments
source pin_assignments.tcl
## Apply FPGA timing constraints
source timing_assignments.tcl
## Compile the Stratix II FPGA prototype design
execute_flow -compile
# #Create and switch to the HardCopy II target revision
execute_hardcopyii -create_companion demo_design_hcii
project_close
project_open demo_design -revision demo_design_hcii
## Compile the HardCopy II design revision
execute_flow -compile
## Check the HardCopy II revision and make sure it matches the FPGA
## design
execute_hardcopyii -compare
## Generate a HardCopy II Handoff Report
execute_hardcopyii -handoff_report
## Archive the HardCopy II Handoff Files into
## the file named "demo_design_hcii_handoff.qar"
execute_hardcopyii -archive demo_design_hcii_handoff.qar
## Quit quartus_sh -s
qexit
## End of demo_design.tcl
Global Assignments Script global_assignments.tcl
ト ッ プ レ ベ ル・ス ク リ プ ト の demo_design.tcl の
global_assignments.tcl スクリプト・ソースは、HardCopy II プロ
ジェクトのグローバル変数、ターゲット・デバイス、リビジョン名を準
備します。
## global_assignments.tcl
## Source Design File Settings
## ===========================
set_global_assignment -name VERILOG_FILE demo_design.v
set_global_assignment -name VERILOG_FILE example_ram.v
## Constraint File Settings for TimeQuest
## ============================
set_global_assignment -name USE_TIMEQUEST_TIMING_ANALYZER ON
6–34
Altera Corporation
2007 年 6 月
HardCopy II の Tcl スクリプト例
set_global_assignment -name SDC_FILE demo_design.sdc
## Stratix II Prototype FPGA Target Settings
## =========================================
set_global_assignment -name FAMILY "Stratix II"
set_global_assignment -name DEVICE EP2S90F1020C4
set_global_assignment -name TOP_LEVEL_ENTITY demo_design
## HardCopy II Companion Revision and Target Settings
## ==================================================
set_global_assignment -name COMPANION_REVISION_NAME \
demo_design_hardcopyii
set_global_assignment -name DEVICE_TECHNOLOGY_MIGRATION_LIST HC230F1020
## Design Assistant Assignments and Settings Required for HardCopy II
## ==================================================================
set_global_assignment -name ENABLE_DRC_SETTINGS ON
set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1
set_global_assignment -name REPORT_IO_PATHS_SEPARATELY ON
## The following assignments are Classic Timing Analyzer only and
## are not used by TimeQuest.
## ==================================================
set_global_assignment -name FLOW_ENABLE_TIMING_CONSTRAINT_CHECK ON
set_global_assignment -name DO_COMBINED_ANALYSIS ON
set_global_assignment -name IGNORE_CLOCK_SETTINGS OFF
set_global_assignment -name ENABLE_RECOVERY_REMOVAL_ANALYSIS ON
set_global_assignment -name ENABLE_CLOCK_LATENCY ON
## End of global_assignments.tcl
ピン・アサインメント・スクリプト pin_assignments.tcl
ト ッ プ レ ベ ル・ス ク リ プ ト demo_design.tcl か ら 実 行 さ れ る
pin_assignments.tcl スクリプトは、トップレベル・デザイン信号と
ボール・アサインメントの制約と I/O パラメータを指定します。
## pin_assignments.tcl
set_location_assignment
set_location_assignment
set_location_assignment
set_location_assignment
set_location_assignment
set_location_assignment
PIN_AH5 -to addr_out[0]
PIN_AH6 -to addr_out[1]
PIN_AJ5 -to data_in[0]
PIN_AJ6 -to data_in[1]
PIN_AJ32 -to resetn
PIN_AM17 -to ref_clk
## I/O Type and Parameter Assignments
set_instance_assignment -name IO_STANDARD
set_instance_assignment -name IO_STANDARD
set_instance_assignment -name IO_STANDARD
set_instance_assignment -name IO_STANDARD
set_instance_assignment -name IO_STANDARD
set_instance_assignment -name IO_STANDARD
"1.5-V HSTL CLASS II"
"1.5-V HSTL CLASS II"
"1.5-V HSTL CLASS II"
"1.5-V HSTL CLASS II"
LVDS -to resetn
LVCMOS -to ref_clk
-to
-to
-to
-to
addr_out[0]
addr_out[1]
data_in[0]
data_in[1]
set_instance_assignment -name fast_input_register on -to data_in[0]
Altera Corporation
2007 年 6 月
6–35
HardCopy シリーズ・ハンドブック Volume 1
set_instance_assignment -name fast_input_register on -to data_in[1]
set_instance_assignment -name fast_output_register on -to addr_out[0]
set_instance_assignment -name fast_output_register on -to addr_out[1]
set_instance_assignment -name output_pin_load 10 -to addr_out[0]
set_instance_assignment -name output_pin_load 10 -to addr_out[1]
## End of pin_assignments.tcl
TimeQuest 制約ファイル demo_design.sdc
TimeQuest は SDC ファイル demo_design.sdc を読み込み、システム・ク
ロック ref_clk のタイミング制約、および I/O からコアへのタイミン
グ仕様を適用します。
## constraints.sdc
create_clock –period 10.0 MHz -name ref_clk [get_ports ref_clk]
set_clock_latency -late 3 ref_clk
set_clock_latency -early 2 ref_clk
set_clock_uncertainty –hold –to ref_clk 0.250
set_clock_uncertainty –setup –to ref_clk 0.250
# Input delay of 6ns (max) & 2ns (min) for bus data_in[1:0]
set_input_delay –clock ref_clk –max 6 [get_ports data_in]
set_input_delay –clock ref_clk –min 2 [get_ports data_in]
# Output delay of 6ns (max) & 2ns (min) for bus data_out[1:0]
set_output_delay –clock ref_clk –max 6 [get_ports data_out]
set_output_delay –clock ref_clk –min 2 [get_ports data_out]
# Don’t care about timing on the resetn net.Set as false path
set_false_path -from [get_ports resetn]
## End of timing_assignments.tcl
タイミング・アサインメント・スクリプト
timing_assignments.tcl
ク ラ シ ッ ク・タ イ ミ ン グ・ア ナ ラ イ ザ を 使 用 す る 場 合、
timing_assignments.tcl スクリプトはトップレベル・スクリプト
demo_design.tcl から実行されます。このスクリプトは、システム・
クロック ref_clk のタイミング制約、および I/O からコアのタイミン
グ仕様を適用します。
## timing_assignments.tcl
create_base_clock –fmax 10.0ns –target ref_clk ref_clk
set_instance_assignment -name LATE_CLOCK_LATENCY 3ns -to ref_clk
set_instance_assignment -name EARLY_CLOCK_LATENCY 2ns -to ref_clk
set_clock_uncertainty –hold –to ref_clk 0.250ns
set_clock_uncertainty –setup –to ref_clk 0.250ns
6–36
Altera Corporation
2007 年 6 月
まとめ
# Input delay of 6ns (max) & 2ns (min) for bus data_in[1:0]
set_input_delay –clk_ref ref_clk –max –to data_in 6.0ns
set_input_delay –clk_ref ref_clk –min –to data_in 2.0ns
# Output delay of 6ns (max) & 2ns (min) for bus data_out[1:0]
set_output_delay –clk_ref ref_clk –max –to data_out 6.0ns
set_output_delay –clk_ref ref_clk –min –to data_out 2.0ns
# Don’t care about timing on the resetn net.Set as false path
set_timing_cut_assignment -from resetn
## End of timing_assignments.tcl
まとめ
こ の 章 で は、Quartus II インタラクティブ Tcl シェルを使用した
HardCopy II デバイスのためのスクリプト・ベースのデザインについて
説明しました。このアプローチは、リモート端末での Quartus II の実行、
デザイン・フローの自動化、あるいはスクリプト環境での操作が快適な
場合など、特定の状況での GUI ベース・デザインに代わるデザイン方法
を提供します。
改訂履歴
表 6–10 に、本資料の改訂履歴を示します。
表 6–10. 改訂履歴
日付 & ドキュメント・
バージョン
変更内容
2007 年 6 月 v1.2
テキストのマイナーな編集。
2006 年 12 月 v1.1
Quartus II ソフトウェア・バージョン 6.1.0 のための更新
● Quartus II ソフトウェア・バージョン 6.1.0 で新たに利用
できるようになった Tcl コマンドラインの実行ファイル
に関する情報、および HardCopy II デザインのタイミン
グ解析で使用するための推奨事項が追加されました。
● 図 6–1 を更新。
● 表 6–1、表 6–2、および表 6–3 を更新。
● 変更履歴を追加。
2006 年 3 月
15 章でリリース、内容の変更なし。
2005 年 10 月 v 1.0
Altera Corporation
2007 年 6 月
概要
Quartus IIソフトウェ
ア・バージョン 6.1 リ
リースの変更に対応
した章の中規模な
アップデート。
「HardCopy II デバイスのためのスクリプト・ベースのデザ
イン」の初版。
6–37
HardCopy シリーズ・ハンドブック Volume 1
6–38
Altera Corporation
2007 年 6 月