2. 階層およびチーム・ベース・デザインのため のQuartus II

2. 階層およびチーム・ベース・デザインのため
の Quartus II インクリメンタル・コンパイル
この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用
ください。設計の際には、最新の英語版で内容をご確認ください。
QII51015-8.0.0
概要
今日の高集積、高性能 FPGA デザインでは、デザイン・ステージおよび
デバッグ・ステージにおける迅速なイタレーション能力が不可欠です。
Quartus® II ソフトウェアは、高集積 FPGA のデザインを作成する先進
のテクノロジを提供します。アルテラは、FPGA 業界で初めて、真のイ
ンクリメンタル・デザインおよびコンパイル・フローを導入し、以下の
ような利点をもたらしました。
■
■
■
■
■
■
■
デザインでロジックを変更するとき、変更されないロジックのコン
パイル結果と性能を維持します。
デザインのイタレーション時間を最大70%短縮し、これによって1日
あたりのデザインのイタレーション回数を増やし、タイミング・ク
ロージャをより効率的に達成できます。
グラフィック・ユーザー・インタフェース(GUI)により使いやす
さを提供。
Tcl スクリプト、コマンドライン、makefile サポートが含まれます。
サードパーティ合成ソフトウェアのインクリメンタル・シンセシス・
フローと統合。
トップダウンまたはボトムアップ手法を使用し、モジュラー階層
ベースおよびチーム・ベースのデザイン・フローを容易にします。
Arria™ GX デバイス、Stratix® および Cyclone® シリーズ・デバイスを
サポート。HardCopy® II デバイスのインクリメンタル・コンパイ
ル・フローを一部サポート(詳細は 2–88 ページの「HardCopy コン
パイル・フローおよび移行フロー」を参照)。
Quartus II ソフトウェアのインクリメンタル・コンパイルは、オプショ
ンのコンパイル・フローです。2–3 ページの「Quartus II コンパイル・フ
ローの選択」に、インクリメンタル・コンパイルがある場合とない場合
の Quartus II デザイン・フローの概要を説明します。これにより、プロ
ジェクトでこの機能を使用するかどうかを判断することができます。こ
の章にはその他に、以下の項があります。
■
■
■
■
Altera Corporation
2008 年 5 月
2–11 ページの「クイック・スタート・ガイド — インクリメンタル・
コンパイル・フローのステップの概要」
2–19 ページの「デザイン・パーティションの選択および作成」、サー
ドパーティ合成ツールとの統合を含み、Quartus II Design Partition
Planner を使用。
2–28 ページの「デザイン・パーティションの Netlist Type の設定」
2–38 ページの「LogicLock ロケーション・アサインメントによるデ
ザイン・フロアプランの作成」
2–1
Quartus II ハンドブック Volume 1
■
■
■
■
■
2–43 ページの「ボトムアップ・デザイン・フローのためのパーティ
ションのエクスポートとインポート」
2–61 ページの「Incremental Compilation Advisor」
2–63 ページの「推奨されるデザイン・フローおよびコンパイルのア
プリケーション例」
2–80 ページの「インクリメンタル・コンパイルの制約」
2–107 ページの「スクリプトのサポート」
インクリメンタル・コンパイルを活用するには、デザインを合成とフィッ
ティングのためのロジカル・パーティション(およびオプションでフィ
ジカル領域)に編成します。インクリメンタル・コンパイルでは、デザ
インで変更されていないパーティションのコンパイル結果と性能が維持
され、新しいコンパイルを変更されたデザイン・パーティションにのみ
集中させることによって、デザインのイタレーション時間を大幅に短縮
します。新しいコンパイル結果は、変更されていないデザイン・パーティ
ションの前のコンパイル結果と併合されます。さらに、フィジカル・シ
ンセシスなどの最適化手法のターゲットを特定のデザイン・パーティ
ションに絞り、他のパーティションは変更しないでおくことも可能です。
インクリメンタル・コンパイルは、1 人の設計者がデザインのプロジェ
クトを管理するトップダウン・デザインおよび各デザイン・ブロックを
独立して開発可能なボトムアップの 2 つのデザイン手法とそれらの組み
合わせをサポートします。ボトムアップ手法には、デザイン・パーティ
シ ョ ン が 別 の 場 所 の チ ー ム・メ ン バ、ま た は サ ー ド パ ー テ ィ IP
(Intellectual Property)プロバイダによって作成されるチーム・ベース
のデザイン・フローも含まれます。ボトムアップ・フローの場合、別の
Quartus II プロジェクトでコンパイルされた下位レベルのデザイン・ブ
ロックに制約を渡すスクリプトを、トップレベルのデザインから生成で
きます。
この章では、以下の目標を達成するための情報を提供します。
■
■
■
■
2–2
インクリメンタル・コンパイルを使用すべきかどうか判断できるよ
うに、Quartus II コンパイル・フローの概要を説明します。
クイック・スタート・ガイドと詳細な情報を提供して、Quartus II
インクリメンタル・コンパイル機能の使用方法について説明します。
デザインのイタレーションをスピード・アップしながら、タイミン
グ・クロージャを達成するための適切なデザイン決定に必要な知識
レベルを提供します。
インクリメンタル・コンパイルに推奨されるいくつかのデザイン・
フローをサンプル形式で提示し、同時にそれらの根拠とタスクの実
行に必要なステップについて説明します。
●
2–64 ページの「1 つのパーティションに対するソース・ファイル
変更時のコンパイル時間の短縮」
●
2–67 ページの「タイミング・クリティカルなパーティションの
配置を最適化する」
Altera Corporation
2008 年 5 月
Quartus II コンパイル・フローの選択
●
●
●
●
Quartus II
コンパイル・
フローの選択
2–65 ページの「他のパーティションを追加する前に一部のパー
ティションの結果を維持する」
2–69 ページの「チーム・ベースのボトムアップ・デザイン・フ
ローの実行」
2–74 ページの「ボトムアップ・デザイン・フローでのデザイン
のイタレーションの実行」
2–75 ページの「IP 再利用のためのハード・ワイヤード・マクロ
の作成」
Quartus II インクリメンタル・コンパイルは、以前のコンパイルで得ら
れた満足な結果を再利用し、コンパイル時間を短縮することで、標準の
Quartus II デザイン・フローを機能強化します。この項では、デザイン・
パーティションを含まないフラット・コンパイル・フローとインクリメ
ンタル・フローを概説し、その違いについて説明します。また、コンパ
イル・フローで満足できる場合を説明し、デザイン・パーティションの
作成やインクリメンタル・フローの使用が必要になる理由をいくつか説
明します。
Quartus II ソフトウェアでは、フル・インクリメンタル・コンパイル・
オプションはデフォルトでオンになっているため、プロジェクトではイ
ンクリメンタル・コンパイルのためのデザイン・パーティションをすぐ
に作成できます。デザイン・パーティションを作成しない場合、ソフト
ウェアはフラット・コンパイル・フローを使用します。
Altera Corporation
2008 年 5 月
2–3
Quartus II ハンドブック Volume 1
デザイン・パーティションを含まないフラット・コンパイ
ル・フロー
図 2–1 に、デザイン・パーティションを含まないコンパイル・フローを
示します。
図 2–1. デザイン・パーティションを含まない Quartus II コンパイル・
フロー
Verilog
HDL
(.v)
VHDL
(.vhd)
AHDL
(.tdf)
Block
Design
File
(.bdf)
EDIF
Netlist
(.edf)
Analysis & Synthesis (1)
VQM
Netlist
(.vqm)
Settings &
Assignments
Post-Synthesis
Netlist
Settings &
Assignments
Fitter
Place-and-Route
Post-Fit
Netlist
Assembler
Timing Analyzer
Requirements
Satisfied?
No
Make Design & Assignment
Modifications
Yes
Program/Configure Device
図 2–1 の注 :
(1)
サードパーティ EDA 合成ツールで作成された EDIF または VQM ネットリストを使用
する場合、Analysis & Synthesis がデザイン・データベースを作成しますが、ブラック・
ボックスとアルテラ・メガファンクションに対してのみロジック合成およびテクノロ
ジ・マッピングが実行されます。
デフォルトのフラット・コンパイル・フローでは、ソース・コードはす
べて Analysis & Synthesis モジュールで処理され、デザインの一部が変
更された後でリコンパイルされるたびに、すべてのロジックが Fitter モ
2–4
Altera Corporation
2008 年 5 月
Quartus II コンパイル・フローの選択
ジュールによって配置配線されます。この動作の理由の一つは、最適な
品質の結果を得ることです。コンパイラはデザイン全体を処理すること
によって、グローバルな最適化を実行し、面積および性能を改善するこ
とができます。
プッシュ・ボタン式コンパイルによりタイミング要件を容易に満たすこ
とができる場合は、CPLD デバイスまたは低集積度 FPGA デバイスでの
デザインなど、小さなデザインに対してフラット・コンパイル・フロー
を使用することができます。コンパイル時間およびタイミング・クロー
ジャの結果の維持が問題でない場合、フラット・デザインは満足できる
ものです。
Quartus II のスマート・コンパイル
Quartus II ソフトウェアにはスマート・コンパイルと呼ばれる機能もあ
ります。スマート・コンパイルをインクリメンタル・コンパイルと混同
しないでください。Quartus II コンパイル・フローでは、スマート・コ
ンパイルを使用できます。これによって、コンパイラは、最後のスマー
ト・コンパイルの後でデザインに対して行われた変更に基づき、どのコ
ンパイラ・ステージが必要かを判断し、不要なステージをスキップする
ことができます。例えば、スマート・コンパイルがオンのとき、デザイ
ン・ソース・ファイルが変更されていない場合、コンパイラは Analysis
& Synthesis モジュールをスキップします。スマート・コンパイルがス
キップできるのは、全体のコンパイラ・ステージのみです。スマート・
コンパイルは、コンパイル・フローのステージ内ではインクリメンタル
変更を実行できないため、インクリメンタル・デザイン・フローとはみ
なされません。スマート・コンパイラをオンにするには、Assignments
メニューの Settings をクリックします。Category リストの Compilation
Process Settings を選択し、Use Smart Compilation をクリックします。
デザイン・パーティションを含むインクリメンタル・コン
パイル・フロー
単純なフラット・コンパイル・フローよりもインクリメンタル・コンパ
イル・フローの使用が好ましい状況が数多くあります。デザインでロジッ
クを変更するとき、インクリメンタル・フローを使用することによって、
変更されないロジックの結果と性能を維持することができます。デザイ
ンのイタレーション時間を最大 70% 短縮し、これによって 1 日あたりの
デザインのイタレーション回数を増やし、タイミング・クロージャをよ
り効率的に達成できます。大規模なデザイン、高集積デバイス、および
デバイス・アーキテクチャの速度に対して高性能が要求されるデザイン
では、インクリメンタル・コンパイルが推奨されます。この機能により
チーム・ベースのデザイン環境も容易に実現でき、設計者はデザイン・
ブロックを独立して作成および最適化することができます。
Altera Corporation
2008 年 5 月
2–5
Quartus II ハンドブック Volume 1
前の項で説明しているように、従来の FPGA デザインでは、ロジック合
成とフィッティングの前に階層構造デザインがフラット化されて 1 つの
ネットリストになり、デザインが変更されるたびにデザイン全体がリコ
ンパイルされます。Quartus II インクリメンタル・コンパイル・フロー
を使用するには、デザインをその階層境界に沿ってデザイン・パーティ
ションと呼ばれるブロックに分割します。詳細は、2–19 ページの「デザ
イ ン・パ ー テ ィ シ ョ ン の 選 択 お よ び 作 成」を 参 照 し て く だ さ い。
Quartus II ソフトウェアは、階層構造デザインの個々のパーティション
を個別に合成し、ついでコンパイル・フローの以降のステージで、パー
ティションを完全なネットリストにマージします。デザインをリコンパ
イルするときに、パーティションごとにソース・コード、合成後の結果、
またはフィッティング後の結果を使用できます。Fitter の結果を維持す
る場合は、Fitter のネットリストのみを維持、配置結果を維持、配置と
配線の両方の結果を維持することができます。
デザインのほとんどの部分でそれ以上改善する必要がなく、特定の 1 つ
のブロックを変更または最適化する場合は、デザイン・サイクルの後の
方でインクリメンタル・コンパイルを使用できます。この場合、変更さ
れていないモジュールの性能を維持し、以降の繰り返しに要するコンパ
イル時間を短縮することができます。インクリメンタル・コンパイルが、
コンパイル時間の短縮とタイミング・クロージャの達成のいずれにも有
効な状況もあります。例えば、以降のインクリメンタル・コンパイルで
維持する必要があるパーティションを指定し、高度な最適化を有効にし
た状態で他のパーティションをリコンパイルすることができます。
デザインの一部を未完了にしておき、完了済みパーティションをコンパ
イルしながら空パーティションを作成し、デザインの新しい部分を作業
しながら完了したパーティションの結果を保存することもできます。あ
るいは、別々の設計者や IP プロバイダがチーム・ベース手法を使用し
て、デザインの異なるブロックで作業して、それらをボトムアップ・コ
ンパイル・フローで結合することができます。これらの場合、Fitter は
各パーティションの配置と配線を個別に実行することができます。イン
クリメンタル・コンパイル機能を活用する場合に推奨されるデザイン・
フローの詳細な例については 2–63 ページの「推奨されるデザイン・フ
ローおよびコンパイルのアプリケーション例」を参照してください。
デザイン・フローの任意のポイントでインクリメンタル・コンパイル機
能を使用する場合、デザイン開発の当初からインクリメンタル・コンパ
イルを計画する必要があります。デザイン・サイクルの初めから計画す
る場合は、フロアプランの分割および作成についてのガイドラインへの
対応が容易になります。
詳細は、「Quartus II ハンドブック Volume 1」の 「Best Practices for
Incremental Compilation Partitions and Floorplan Assignments」を参照
してください。
2–6
Altera Corporation
2008 年 5 月
Quartus II コンパイル・フローの選択
図 2–2 に、インクリメンタル・コンパイルを使用した、デザイン・パー
ティションを含む Quartus II デザイン・フローのブロック図を示します。
図 2–2. インクリメンタル・コンパイルを使用した Quartus II デザイン・
フロー
Verilog
HDL
(.v)
VHDL
(.vhd)
AHDL
(.tdf)
Block
Design File
(.bdf)
EDIF
Netlist
(.edf)
VQM
Netlist
(.vqm)
Partition Top
Design Partition
Assignments
Partition 1
Partition 2
Analysis & Synthesis (1)
Synthesize Changed Partitions,
Preserve Others
Settings &
Assignments
One Post-Synthesis
Netlist per Partition
Partition Merge
Create Complete Netlist Using Appropriate Source Netlists for Each
Partition (Post-Fit, Post-Synthesis, or Imported Netlist)
One Post-Fit
Netlist per
Partition
Single Netlist for
Complete Design
Fitter
Place-and-Route Changed Partitions,
Preserve Others
Create Individual Netlists and
Complete Netlists
Floorplan
Location
Assignments
Settings &
Assignments
Single Post-Fit
Netlist for
Complete Design
Assembler
Timing Analyzer
Requirements
Satisfied?
No
Make Design &
Assignment Modifications
Yes
Program/Configure Device
図 2–2 の注 :
(1)
Altera Corporation
2008 年 5 月
サードパーティEDA 合成ツールで作成された EDIF または VQM ネットリストを
使用する場合、Analysis & Synthesis がデザイン・データベースを作成しますが、
ブラック・ボックスとアルテラ・メガファンクションに対してのみロジック合成
2–7
Quartus II ハンドブック Volume 1
およびテクノロジ・マッピングが実行されます。
図 2–2 の図では、トップレベルのパーティションと、下位レベルの 2 つ
のパーティションを示しています。デザインの一部が変更された場合、
Analysis and Synthesis は変更されたパーティションを処理し、未変更の
パーティションのために既存のネットリストを維持します。Analysis
and Synthesis のコンパイル後は、パーティションごとに合成後のネット
リストが 1 つあります。
パーティション・マージ・ステップでは、各パーティションに指定した
ネットリスト・タイプに応じて、合成後のネットリスト、フィッティン
グ後のネットリスト、および下位レベルのプロジェクトからインポート
されたネットリストで構成される完全なネットリストが 1 つ作成されま
す。
次にFitterはマージされたネットリストを処理し、未変更のパーティショ
ンの配置または配置配線を維持し、変更されたパーティションのみを再
フィッティングします。Fitter は、タイミング解析およびプログラミン
グ・ファイル生成など、コンパイル・フローの後のステージで使用する
ための完全なネットリストを生成します。また、各パーティションに対
して個別のネットリストも生成します。これによって、以降のコンパイ
ルでパーティションの配置配線を指定する場合は、パーティション・マー
ジ・ステップでフィッティング後のネットリストを使用してこの配置配
線を維持できます。
デザインがその要件(機能、タイミング、エリア)に適合しない場合、
デザインを変更しリコンパイルできます。Quartus II ソフトウェアは、
合成後またはフィッティング後のネットリストの使用を指定するネット
リスト・タイプのアサインメントを持つ未変更のパーティションについ
ては、それぞれ再合成または再フィッティングは行いません。
インクリメンタル・コンパイル機能の使用について詳しくは、2–11 ペー
ジの「クイック・スタート・ガイド — インクリメンタル・コンパイル・
フローのステップの概要」を参照してください。
2–8
Altera Corporation
2008 年 5 月
Quartus II コンパイル・フローの選択
表 2–1 に、インクリメンタル・コンパイルがコンパイル結果に及ぼす影
響の要約を示します。
表 2–1. フル・インクリメンタル・コンパイルの影響の要約
特性
フル・インクリメンタル・コンパイルの影響
コ ン パ イ ル 時 間 フィッティング後のネットリストが維持される場合は、通常コンパイル時間の 50-70% を
の節約
節約。Quartus II の統合された合成と Fitter の両方で節約可能。
性能維持
未変更のパーティションについてはフィッティング後の情報を維持できるため、
1つのパー
ティション内に複数のクリティカル・パスが含まれる場合は優れた性能維持が可能。
ノード名の維持
未変更パーティションのフィッティング後ノード名を維持。
エリアの変化
境界間最適化の実行が不可能であり、配置とレジスタ・パッキングが制限されるため、場
合によってエリア(ロジック・リソース使用率)が増加。
fM A X の変化
境界間最適化は不可能なため、場合によりデザインの最大周波数が減少。デザインが適切
に分割され、フロアプランのロケーション・アサインメントが適切に作成されている場合、
fM A X への悪影響はない。
フ ロ ア プ ラ ン の デザインを変更するとき、結果の最高品質を保証するためにクリティカル・パーティショ
作成
ンに推奨。配置衝突を回避するためにボトムアップ・フローで必要。
トップダウンとボトムアップのコンパイル・フロー
Quartus II のインクリメンタル・コンパイル機能は、トップダウンとボ
トムアップ両方のコンパイル・フローをサポートします。
トップダウン・コンパイルでは、1 人の設計者がソフトウェアのデザイ
ン全体をコンパイルします。デザインの残りの部分を追加する前に、トッ
プダウン・フローを使用して、デザインの全ブロックをまとめて最適化
するか、あるいは 1 つまたは複数のクリティカルなデザイン・ブロック
または IP コアを最適化できます。デザインの他の部分は変化しますが、
完了したブロックのフィッティング結果および性能を維持することがで
き、各デザインのイタレーションのためのコンパイル時間も短縮されま
す。複数の設計者または IP プロバイダが、HDL コードを別々に作成お
よび検証できますが、一人(一般的にはプロジェクト・リーダーまたは
システム設計者)が 1 つのトップレベル・プロジェクトとしてデザイン
をコンパイルおよび最適化します。
ボトムアップ・デザイン・フローにより、個々の設計者または IP プロバ
イダは個別のプロジェクトでのそれぞれのデザインの最適化を完了し、
下位レベルの各プロジェクトを 1 つのトップレベルのプロジェクトに統
合できます。インクリメンタル・コンパイルには、このような設計手法
を可能にするエクスポート機能とインポート機能があります。下位レベ
ル・ブロックの設計者は、LogicLock 領域などの一連のアサインメント
とともに、自分のデザインのために最適化した配置配線ネットリストを
Altera Corporation
2008 年 5 月
2–9
Quartus II ハンドブック Volume 1
エクスポートできます。次に、プロジェクト・リーダーはトップレベル・
プロジェクトで、各デザイン・ブロックをデザイン・パーティションと
してインポートします。
ボトムアップ・デザイン・フローでは、以下の 2 つの利点が得られます。
■
■
チーム・ベースの開発が容易になります。
性能の維持およびコンパイル時間の短縮を最終目標として、別のプ
ロジェクトのコンパイル結果を再利用できます。
ボトムアップ・デザイン・フローには、計画の際に注意が必要な以下の
潜在的な欠点もあります。
■
■
完全なデザインのタイミング・クロージャを達成するのが困難な場
合があります。これは下位レベルのブロックを互いに関する情報な
しで個別にコンパイルするためです。この問題は、入念なタイミン
グ・バジェットの作成により、またモジュール境界で必ずポートを
登録するなどの特別なデザイン・ルールによって回避することがで
きます。
同じ理由で、リソースの衝突および過剰な使用を回避するのに、リ
ソース・バジェットとリソース割り当てが必要になる場合がありま
す。フロアプランの作成は、通常はボトムアップ・フローで非常に
重要です。
ボトムアップ・デザイン・フローでは、トップレベルのプロジェクト・
リーダーはデザイン計画の大部分を行ってから下位レベル・ブロックの
設計者に制約を渡すことができます。エクスポート操作とインポート操
作、およびデザイン・プランニングを支援するためのデザイン・パーティ
ション・スクリプトの使用方法について詳しくは、2–43 ページの「ボト
ムアップ・デザイン・フローのためのパーティションのエクスポートと
インポート」を参照してください。
フル・インクリメンタル・コンパイル・フローを使用するときは、性能
の維持という理由だけで、これまでボトムアップ手法に依存してきた
ユーザーが、トップダウン手法を採用しても同じ目標を達成することが
できます。この能力は以下の 2 つの理由により重要です。
■
■
2–10
トップダウン・フローは、一般にボトムアップ・フローを実行する
よりも簡単です。例えば、下位レベルのデザインをエクスポートお
よびインポートする必要はありません。
トップダウン手法では、配置配線のグローバルな最適化の実行のた
めに、デザイン全体に関する情報がデザイン・ソフトウェアに提供
されます。したがって、ボトムアップ・フローよりもトップダウン・
フローを使用したほうが、優れた結果の品質を得やすい場合がよく
あります。
Altera Corporation
2008 年 5 月
クイック・スタート・ガイド — インクリメンタル・コンパイル・フローのステップの概要
Quartus II インクリメンタル・コンパイル機能は、非常に柔軟性が高
く、多くのデザイン手法をサポートします。1 つのプロジェクトの中で
トップダウン手法とボトムアップ手法を併用することができます。トッ
プレベル・デザインに別の設計者または IP プロバイダが最適化した 1
つまたは複数のデザイン・ブロックが含まれている場合、それらのブ
ロックを(ボトムアップ手法を使用して)トップダウン・インクリメン
タル手法のパーティションを含むプロジェクトにインポートすることが
できます。また、デザインのタイミング・クロージャを実行するとき
に、別の Quartus II プロジェクトで別の設計者が最適化するデザインの
1 ブロックに対するサブプロジェクトを作成し、そのサブプロジェクト
にデザインの残りの部分に関する情報を渡して、最高の結果を得ること
ができます。混在したデザイン手法に従って、デザイン・ロジックの大
部分でトップダウン・フローの利点を維持しながら、ボトムアップ・フ
ローのチーム・ベース機能を利用することができます。
ボトムアップ・インクリメンタル・コンパイルは、マイグレー
ション・デバイス設定がある場合、HardCopy&regi;II または
FPGA コンパニオン・デバイスのコンパイルではサポートされ
ません。HardCopy ASIC に移行する場合、ボトムアップ手法
は使用できません。詳細は、2–88 ページの「HardCopy コンパ
イル・フローおよび移行フロー」を参照してください。
クイック・
スタート・
ガイド —
インクリメンタル・
コンパイル・
フローの
ステップの概要
この項では、インクリメンタル・コンパイル・フローの実行に必要なス
テップの概要を示します。これらの一部のステップについては、この章
の後の項で詳細に説明しています。インクリメンタル・コンパイル機能
を活用するデザイン・フローの例については、2–63 ページの「推奨され
るデザイン・フローおよびコンパイルのアプリケーション例」を参照し
てください。デザイン・パーティションおよびフロアプラン・アサイン
メントの選択方法のガイドラインについては、
「Quartus II ハンドブック
Volume 1」の「Best Practices for Incremental Compilation Partitions and
Floorplan Assignment」の章を参照してください。
トップダウン・インクリメンタル・コンパイル・フロー
図 2–3 のフロー・チャートは、トップダウン手法を使用した完全なイン
クリメンタル・コンパイル・フローを示しています(すべてのパーティ
ションは 1 つのトップレベル・プロジェクトに含まれています)。フロー
の各ステップについては、以下の項で説明しています。最初に、インク
リメンタル・コンパイルのためのデザインを準備し、フル・コンパイル
を実行します。次に、デザインを検証またはデバッグし、必要に応じて
変更します。追加のデザイン・イタレーションを実行し、デザインをリ
コンパイルするときは、再使用するネットリストを選択してインクリメ
ンタル・コンパイルを実行します。
Altera Corporation
2008 年 5 月
2–11
Quartus II ハンドブック Volume 1
図 2–3. トップダウン・インクリメンタル・コンパイル・フローの概要
Perform Analysis & Elaboration
Create Design Partitions
(Optional) Create Floorplan Location
Assignments using LogicLock Regions
Perform Complete Compilation
(All Partitions are Compiled)
Make Changes to Design
Set Netlist Type for Each Partition
Repeat as Needed
During Design, Verification,
& Debugging Stages
Perform Incremental Compilation
(Partitions are Compiled if Required)
2–12
Altera Corporation
2008 年 5 月
クイック・スタート・ガイド — インクリメンタル・コンパイル・フローのステップの概要
トップダウン・インクリメンタル・コンパイルのためのデザイ
ンの準備
インクリメンタル・コンパイルのためにデザインを設定するには、以下
の一般的な手順を実行します。
1.
デザインを詳細設定します。Processing メニューで Start をポイン
トし Start Analysis & Elaboration をクリックするか、このステッ
プを含むコンパイル・フローを実行します。Elaboration は、デザイ
ンの階層を識別する合成プロセスの一部です。
2.
特定のインスタンスをデザイン・パーティションとして指定するこ
とにより、デザインにパーティションを作成します。
デザイン・パーティションおよびデザイン・パーティションとして
指定できるデザイン部分、そしてデザイン・パーティションのアサ
インメントについて詳しくは、2–19 ページの「デザイン・パーティ
ションの選択および作成」を参照してください。
Altera Corporation
2008 年 5 月
3.
デザイン・フローに必要な場合、LogicLock 領域を使用して各パー
ティションにロケーション・アサインメントを作成し、デザイン・
フロアプランを作成します。デザイン・フローおよび要件に応じて、
各パーティションをデバイスのフィジカル領域に割り当てる必要が
ある場合もあります。これらのアサインメントについて詳しくは、
2–38 ページの「LogicLock ロケーション・アサインメントによるデ
ザイン・フロアプランの作成」の項を参照してください。
4.
デ ザ イ ン を コ ン パ イ ル す る に は、Processing メ ニ ュ ー の Start
Compilation をクリックします。パーティション・アサインメント
および LogicLock アサインメント後の最初のコンパイルは、以降の
インクリメンタル・コンパイルのためのデザインを準備する完全な
コンパイルになります。
2–13
Quartus II ハンドブック Volume 1
インクリメンタル・コンパイルを使用したデザインのコンパイル
デザインのコンパイル後に変更を行った場合、インクリメンタル・コン
パイルを利用すると、変更していないパーティションの結果を維持しな
がら、デザインの変更された部分をリコンパイルして、以降のコンパイ
ルに要する時間を節約することができます。これを行うには、以下の一
般的な手順を実行します。
1.
各パーティションで再利用する以下のコンパイル結果のいずれかを
選択します。
●
●
●
パーティションで以前に行った配置結果を維持するには、その
パーティションの Netlist Type アサインメントを Post-Fit に設
定します。
配線情報も維持するには、Fitter Preservation Level を Placement
and Routing に設定します。
合成結果のみ保存する場合は、当該パーティションの Netlist
Type アサインメントを Post-Synthesis に設定します。
デザインが変更されたパーティションは、これらの Netlist Type 設
定で自動的にリコンパイルされます。また、Source File ネットリス
ト・タイプ選択して、ソフトウェアでソース・コードからリコンパ
イルすることもできます。特定のパーティションをコンパイルしな
い場合は、その Netlist Type を Empty に設定します。
上記のパーティションのプロパティの設定について詳しくは、2–28
ページの「デザイン・パーティションの Netlist Type の設定」を参
照してください。
2.
デザインをコンパイルします。インクリメンタル・コンパイルをオ
ン に し て 分 割 し た デ ザ イ ン の コ ン パ イ ル を 開 始 し た 場 合、
Quartus II ソフトウェアはインクリメンタル・コンパイル・フロー
を使用し、ステップ 1 で規定したとおり結果を維持します。
ボトムアップ・インクリメンタル・コンパイル
図 2–4 のフロー・チャートは、ボトムアップ手法を使用するインクリメ
ンタル・コンパイル・フローを示しています(下位レベル・パーティショ
ンは、別々にコンパイルされてからトップレベル・プロジェクトにイン
ポートされます)。フローのステップについては、それぞれ以下の項で説
明しています。
2–14
Altera Corporation
2008 年 5 月
クイック・スタート・ガイド — インクリメンタル・コンパイル・フローのステップの概要
最初に、インクリメンタル・コンパイルのためのトップレベル・デザイ
ンを準備します。次に、下位レベル・プロジェクトを設計、最適化、検
証、およびデバッグします。下位レベル・プロジェクトをエクスポート
し、ついでトップレベル・デザインにインポートします。最後に、トッ
プレベル・デザイン全体をコンパイルします。
図 2–4. ボトムアップ・インクリメンタル・コンパイル・フローの概要
Prepare Top-Level Project for
Bottom-Up Incremental Compilation
Create Lower-Level Project(s)
Design, Compile, & Optimize
Lower-Level Project(s)
Export Lower-Level Project(s)
Import Lower-Level Project(s)
into Top-Level Project
Repeat as Needed
During Design, Verification,
& Debugging Stages
Perform Incremental Compilation
in Top-Level Project
ボトムアップ・インクリメンタル・コンパイルのためのデザイ
ンの準備
ボトムアップ・デザイン手法を成功させるには、プロジェクト・リーダー
またはトップレベル設計者は以下のステップを実行しなければなりませ
ん。
1.
最終的に全体のデザインに組み込まれるトップレベル Quartus II プ
ロジェクトを作成し、プロジェクト・ワイドの設定とグローバル・
アサインメントを適用します。
a.
Altera Corporation
2008 年 5 月
下位レベル・デザインに対して階層とポート・インタフェース
を定義するデザイン全体の “ スケルトン ” のソース・コードを定
義 し ま す。ト ッ プ レ ベ ル・デ ザ イ ン・フ ァ イ ル に は、別 の
Quartus II プロジェクトでのコンパイルを予定している、下位
レベルのブロックをインスタンス化するトップレベルのエン
ティティを含める必要があります。
2–15
Quartus II ハンドブック Volume 1
b.
2–16
最終的なデザインが要件を満たすように、デバイス・アサイン
メント、ピン・ロケーション・アサインメント、タイミング・
アサインメントを含むすべてのグローバル・アサインメントを
作成します。下位レベル・プロジェクトの設計者は、必要に応
じてパーティションに独自の制約を追加し、後でトップレベル
の設計者に提供できますが、衝突を回避し、下位レベル・プロ
ジェクトで正しいアサインメントが使用されるように、基本的
な制約をトップレベルから継承することもできます。
2.
各下位レベル・デザインにデザイン・パーティション・アサインメ
ントを作成し、インポートされる各デザイン・パーティションの
Netlist Type を Empty に設定します。詳細は、2–19 ページの「デザ
イン・パーティションの選択および作成」および 2–28 ページの「デ
ザイン・パーティションのNetlist Typeの設定」を参照してください。
3.
下位レベルの各パーティションに LogicLock 領域を作成し、デザイ
ン・フロアプランを作成します。2–38 ページの「LogicLock ロケー
ション・アサインメントによるデザイン・フロアプランの作成」を
参照してください。
4.
オプション:スケルトン・デザインのフル・コンパイルを実行して、
アサインメントを下位レベルの設計者に渡すためのスクリプトを作
成します。コンパイル後、Project メニューの Generate Bottom-Up
Design Partition Scripts をクリックします。詳細は、2–52 ページの
「プロジェクト管理のためのボトムアップ・デザイン・パーティショ
ンのスクリプトの生成」を参照してください。下位レベルの各設計
者に、適切な制約でプロジェクトを作成するために生成された Tcl
ファイルを配布します。デザイン環境で makefile を使用する場合、
各パーティションに makefile を提供します。
Altera Corporation
2008 年 5 月
クイック・スタート・ガイド — インクリメンタル・コンパイル・フローのステップの概要
下位レベル・プロジェクトの作成とコンパイル
下位レベル・デザインの各設計者は、個別の Quartus II プロジェクトで
デザインを作成およびコンパイルする必要があります。
プロジェクトを手動で作成する場合、必要なすべての設定を行った
Quartus II サブデザイン用の新しいプロジェクトを作成します。プロ
ジェクト・リーダーが指定したように、LogicLock 領域アサインメント
およびグローバル・アサインメント(クロック設定を含む)、およびトッ
プレベル・モジュールの外部デバイス・ピンの代わりに、コア・ロジッ
クへの接続を表すポートに仮想ピン・アサインメントを作成します。
トップレベルの設計者からのボトムアップ・デザイン・パーティション
のスクリプトがある場合、Tcl スクリプトを使用して、必要なすべての設
定およびトップレベル・デザインからのアサインメントを考慮した
Quartus II プロジェクトを作成します。
makefile を使用する場合、make コマンドおよびプロジェクト・リーダー
が提供する makefile を使用して、必要なすべての設定およびアサインメ
ントを考慮した Quartus II プロジェクトを作成し、プロジェクトをコン
パイルします。makefile で依存性を指定して、どのソース・ファイルを
どのパーティションに関連付けるかを示します。
下位レベルの各デザインを個別の Quartus II プロジェクトとしてコンパ
イルおよび最適化します。
下位レベル・プロジェクトのエクスポート
下位レベル・デザインのデザイン要件を達成したら、各デザインをトッ
プレベル・デザインのパーティションとしてエクスポートします。
makefile を使用しない場合、Project メニューの Export Design Partition
ダイアログ・ボックスを使用して、下位レベルの各デザインをエクスポー
トします。2–44 ページの「トップレベル・プロジェクトで使用される下
位レベル・パーティションのエクスポート」を参照してください。下位
レベル・プロジェクトのデザインの一部のみをエクスポートする方法は、
2–47 ページの「プロジェクト内の下位レベル・ブロックのエクスポート」
を参照してください。下位レベルの各設計者は、プロジェクト・リーダー
に Quartus II Exported Partition ファイル(.qxp)を提出する必要があり
ます。
デザイン・チームが makefile を使用している場合、プロジェクト・リー
ダーは master_makefile で make コマンドを使用して、下位レベルの
パーティションをエクスポートし、Quartus II Exported Partition ファイ
ルを作成し、これらをトップレベル・デザインにインポートすることが
できます。
Altera Corporation
2008 年 5 月
2–17
Quartus II ハンドブック Volume 1
下位レベル・プロジェクトのトップレベル・プロジェクトへの
インポート
プロジェクト・リーダーは、次に下位レベルの各サブデザイン・パーティ
ションの設計者から提出されたファイルをインポートします。
makefile を使用しない場合、Project メニューの Import Design Partition
をクリックして、サブデザインの .qxp ファイルで表されるトップレベ
ル・プロジェクト内のパーティションを指定します。詳細は、2–48 ペー
ジの「下位レベル・パーティションのトップレベル・プロジェクトへの
インポート」を参照してください。デザインの各パーティションに対し
て、インポート・プロセスを繰り返します。
makefile を使用する場合、master_makefile コマンドで各パーティショ
ンをトップレベル・デザインにインポートします。ソース・ファイルが
変更された場合でもソフトウェアがプロジェクト再構築できるよう、必
ずどのソース・ファイルをどのパーティションに関連付けるかを指定し
ます。
インポートするアサインメントおよび衝突の回避方法について詳しく
は、2–49 ページの「アサインメントおよび高度なインポート設定のイン
ポート」を参照してください。
トップレベル・プロジェクトでのインククリメンタル・コンパ
イルの実行
トップレベル・プロジェクトを構成するデザイン・パーティションをイ
ンポートした後、フル・コンパイルを実行することができます。ソフト
ウェアは、インポートされたパーティションをトップレベル・プロジェ
クトで定義されたパーティションと同じ方法でコンパイルします。ソフ
トウェアは、最後のコンパイル以降にインポートされたパーティション
のみリコンパイルします。
2–18
Altera Corporation
2008 年 5 月
デザイン・パーティションの選択および作成
デザイン・
パーティション
の選択および
作成
一般的なデザイン方法は、モジュラー・デザインまたは階層構造デザイ
ンを作成することです。この方法では、各デザイン・エンティティを個
別に作成し、そのエンティティをより上位レベルのエンティティでイン
スタンス化して、完全なデザインを形成します。インクリメンタル・コ
ンパイルの場合、各デザイン・エンティティまたはインスタンスが自動
的にデザイン・パーティションとなるようには考慮されないため、トッ
プレベルのプロジェクトの下にある 1 つまたは複数のデザイン階層をデ
ザイン・パーティションに指定する必要があります。2–23 ページの「デ
ザイン・パーティションがデザイン最適化に与える影響」で説明すると
おり、パーティションを作成すると、コンパイラはパーティション境界
を越えて最適化を行うことはできません。ただし、パーティションの作
成により、合成と配置をパーティションごとに個別に実行でき、インク
リメンタル・コンパイルが可能になります。
パーティションは、階層構造エンティティ内のロジックの一部になるこ
とはできないため、デザイン内の階層構造ブロックと同じ境界を持って
いる必要があります。パーティションを宣言した場合、そのパーティショ
ン内のすべての階層構造インスタンスは同じパーティションに属すよう
になります。既存のパーティション内の階層構造インスタンスに新しい
パーティションを作成できます。この場合、以下の例で説明するように、
新しいパーティション内のインスタンスは、上位レベルのパーティショ
ンに所属できなくなります。
図 2–5 では、階層構造インスタンス B と F は、インスタンス A、B、C、
D、E、F から構成される完全なデザインのパーティションを形成します。
Representation A の影付きボックスは、
「ツリー」表示された階層のデザ
イン・パーティションを示します。Representation B では、下位レベル
のインスタンスは上位レベルのインスタンスの内部に示され、パーティ
ションは異なる色の影付きで図示されています。Top という名前のトッ
プレベル・パーティションには、デザインのトップレベル・エンティティ
と、別のパーティションの一部として定義されていない任意のロジック
が含まれます。トップレベルのデザイン・ファイルは、その下にある階
層構造インスタンスの単なるラッパーになることも、独自のロジックを
含むこともできます。この例では、トップレベルのエンティティ A の
パーティションには、下位レベルのインスタンスの 1 つ C のロジックも
含まれています。インスタンス F は専用のパーティション内にあるため、
トップレベル・パーティションの一部として扱われません。もう一つの
独立したパーティション B には、インスタンス B、D、および E のロ
ジックが含まれます。
Altera Corporation
2008 年 5 月
2–19
Quartus II ハンドブック Volume 1
図 2–5. 階層構造デザインのパーティション
Representation A
Partition Top
A
B
C
D
E
F
Partition B
Partition F
Representation B
A
B
C
D
E
FE
どのデザイン・インスタンスに対してもパーティション・アサインメン
トを作成できます。インスタンスは、HDL または回路図デザインで定義
するか、あるいは VQM または EDIF ネットリスト・インスタンスとし
て、サードパーティ合成ツールで作成することができます。ソース・ファ
イルの変更時にインクリメンタル・コンパイルを利用するには、各パー
ティションに対して個別のデザイン・ファイルを作成します。別々のパー
ティションに 2 つの異なるエンティティを定義したが、それらが同じデ
ザイン・ファイルにある場合、デザイン・ファイル内のいずれかのエン
ティティを変更した場合は、両方のパーティションをリコンパイルする
必要があるため、インクリメンタル・コンパイルを維持することはでき
ません。同様に、2 つのパーティションが同じ下位レベルのエンティティ
定義に依存している場合は、その以下レベルでの変更は両方のパーティ
ションに影響を及ぼします。
フル・インクリメンタル・コンパイルを有効にしていない場合、最初の
パーティションを指定するときに、インクリメンタル・コンパイルを有
効にするかどうかを確認するダイアログ・ボックスが表示されます。イ
ンクリメンタル・コンパイルをオンにするには、Assignments メニュー
2–20
Altera Corporation
2008 年 5 月
デザイン・パーティションの選択および作成
の Settings をクリックします。Category リストで、Compilation Process
Settings を選択します。Compilation Process Settings で、Incremental
Compilation を選択します。Incremental Compilation ページで、Full
incremental compilation をオンにします。
Settings ダイアログ・ボックスの Incremental Compilation ページでイ
ンクリメンタル・コンパイルをオフにしても、パーティション・アサイ
ンメントは削除されません。インクリメンタル・コンパイルがオフの場
合、パーティション・アサインメントはデザインに影響しません。
サードパーティ合成ツールでのパーティションの使用
インクリメンタル・コンパイルはサードパーティ合成ツールで正しく動
作します。サードパーティ合成ツールを使用する場合は、ツールを設定
して階層構造パーティションごとに個別の VQM または EDIF ネットリ
ストを作成します。Quartus II ソフトウェアで、各ネット・リストから
のトップレベル・エンティティがデザイン・パーティションになるよう
に割り当てます。VQM または EDIF ネットリスト・ファイルは、Quartus
II ソフトウェアでのパーティション用のソース・ファイルとして扱われ
ます。
Synplicity 社 Synplify Pro および Mentor Graphics 社 Precision
RTL Plus
Synplify Pro ソフトウェアは、MultiPoint 合成機能を備えており、ユー
ザー・インタフェースまたはスクリプトで Compile Point として割り当
てられた各デザイン・ブロックのためのインクリメンタル合成を実行し
ます。Precision RTL Plus ソフトウェアは、ソース HDL コードの Partition
アサインメントに基づくブロック・ベース合成を実行するインクリメン
タル合成機能を備えています。これらの機能は、自動化されたブロック・
ベースのインクリメンタル・シンセシス・フローを提供し、アルテラ・
デバイスのセットアップ時に各ブロック用の異なる出力ネットリスト・
ファイルを作成します。
合成ツール内でインクリメンタル・シンセシスを使用すると、デザイン
のコンパイル時に更新されたデザインのセクションのみ再合成され、合
成実行時間が短縮され、未変更ブロックの結果が保持されます。デザイ
ンの他のセクションに影響を与えずに、デザインの 1 つのセクションを
変更して再合成することができます。
これらのインクリメンタル・シンセシス・フローについて詳しくは、ツー
ル・ベンダのドキュメントを参照してください。
Altera Corporation
2008 年 5 月
2–21
Quartus II ハンドブック Volume 1
その他の合成ツール
トップレベルを含めて、各パーティションに対して個別のプロジェクト
または実装を作成することにより、Synplify ソフトウェア(non-Pro)、
Precision RTL ソフトウェア(non-Pro)、またはその他のサポートされて
いる合成ツールを用いて、手動でデザインを分割し、異なるネットリス
ト・ファイルを作成することもできます。上位レベルの各プロジェクト
を設定し、下位レベルの VQM/EDIF ネットリストをブラックボックス
としてインスタンス化します。Synplify、Precision、および大部分の合
成ツールは、プロジェクトにロジック定義がない場合は、デザイン・ブ
ロックを自動的にブラック・ボックスとして扱います。各ツールには、
デザイン・ブロックをブラック・ボックスとして扱われなければならな
いことを指定するオプションまたは属性も含まれており、これを使用し
て欠落ロジックに関する警告を回避することができます。
フィジカル配置アサインメントと比較したデザイン・パー
ティションのアサインメント
インクリメンタル・コンパイルのデザイン・パーティションは、ロジカ
ル・パーティションであり、デバイス・フロアプランの物理的な配置ア
サインメントとは異なります。ロジカル・デザイン・パーティションは、
デバイスの物理エリアを参照せず、インスタンスの配置を直接制御しま
せん。ロジカル・デザイン・パーティションは、デザイン階層間に仮想
境界を設定するため、各パーティションは個別にコンパイルされ、パー
ティション間で論理的な最適化が発生するのを防止します。ソフトウェ
アは各パーティションに個別の合成後のネットリストとフィッティング
後のネットリストを作成します。これにより、ソフトウェアは以降のコ
ンパイルで合成結果またはフィッティング結果(配置配線情報を含む)
を再利用することができます。
Post-Fit ネットリストを使用してコンパイル結果を維持する場合、特定
のロジック・ノードのロケーション・アサインメントをバック・アノテー
ションまたは作成する必要はありません。インクリメンタル・コンパイ
ルとアサインメント・バック・アノテーション機能を、同じ Quartus II
プロジェクトで使用してはなりません。インクリメンタル・コンパイル
機能は、配置 “ アサインメント “ を使用して配置結果を維持するのではな
く、配置情報を含むネットリスト・データベースを再利用するだけです。
LogicLock アサインメントを使用して、デザイン・パーティションをデ
バイス・フロアプランのフィジカル領域に割り当てることができます。
Quartus II ソフトウェアでは、LogicLock 領域を使用して、デザインの
ブロックをデバイスの特定領域に制限します。インクリメンタル・コン
パイルを実行するとき、アルテラでは一部のケースで結果の品質を改善
し、配置衝突を回避するために、LogicLock 領域を使用することを推奨
しています。LogicLock 領域を使用したデザイン・パーティションへの
2–22
Altera Corporation
2008 年 5 月
デザイン・パーティションの選択および作成
フロアプランのロケーション・アサインメントの作成については、2–38
ページの「LogicLock ロケーション・アサインメントによるデザイン・
フロアプランの作成」で説明しています。
デザイン・フロアプランの作成時期および作成理由について詳しくは、
「Quartus II ハンドブック Volume 1」の「Best Practices for Incremental
Compilation Partitions and Floorplan Assignments」の章を参照してく
ださい。
デザイン・パーティションがデザイン最適化に与える影響
デザイン・パーティションの境界は、結果のデザインの品質に影響を与
えることがあります。パーティションを作成すると、コンパイラはパー
ティション境界を越えてロジックの最適化を行わないため、ソフトウェ
アが各パーティションをインクリメンタル・フローで個別に合成および
配置できます。したがって、パーティション境界の影響を抑えるために、
パーティショニングのガイドラインを考慮に入れてください。
可能な場合は、各パーティションのすべての入力および出力を登録しま
す。これによって、パーティション境界を通過する信号の遅延ペナルティ
を回避でき、最適化のために各レジスタ間タイミング・パスが 1 つのパー
ティション内で維持されます。さらに、パーティション境界をまたがる
パスの数を最小限に抑えます。タイミング・クリティカル・パスがパー
ティション間をまたがっている場合は、パーティションを再編成して、
パーティション間にパスが形成されないようにします。パーティション
内でできるだけ多くのタイミング・クリティカルな接続をインクルード
することにより、デザインの残りを変更しないで最適化をそのパーティ
ションに効果的に適用して、タイミングの改善を図ることができます。
さらに、持続的なパーティションの入力および出力を回避します。これ
は、インクリメンタル動作を維持するために、ソフトウェアはパーティ
ション境界のいずれの側でも、定数値を使用してロジックを最適化する
ことができないためです。
Partition Merge Partition Statistics コンパイル・レポートおよび Design
Partitions Properties ダイアログ・ボックスの Statistics タブで、I/O 接
続数および未登録または定数値でドライブされる I/O 接続数など、デザ
イン・パーティションに関する統計を表示することができます。
クリティカル・タイミング・パスがパーティション境界をまたがる場合
は、タイミング・バジェットを実行し、タイミング・アサインメントを
作成して、タイミング・パス全体が必要条件を満たすように各パーティ
ションのロジックを制限することができます。さらに、各パーティショ
ンは合成中に個別に最適化されるため、何らかのリソース・バラシング
を実行して、各パーティションが適切な数のデバイス・リソースを使用
するようにしなければならない場合があります。
Altera Corporation
2008 年 5 月
2–23
Quartus II ハンドブック Volume 1
パーティショニングのガイドラインおよび一般的なデザイン問題を解決
するための具体的な推奨事項、そしてリソース・バランシングおよびタ
イミング・バジェットに関する情報については、
「Quartus II ハンドブッ
ク Volume 1」の「Best Practices for Incremental Compilation Partitions
and Floorplan」の章を参照してください。
Design Partition Planner でのデザイン・パーティション
の作成
Design Partition Planner を使用すれば、ユーザーはデザインの接続性お
よび階層を表示でき、アルテラのガイドラインに従った効果的なデザイ
ン・パーティションを作成することができます。
以下のステップでは、デザインを表示し、デザイン・パーティションを
作成する方法の要点を説明しています。
1.
フラットな(パーティションに分割されていない)デザインをコン
パイルするか、少なくとも解析および合成を実行します。
2.
Tools メニューで、Design Partition Planner をクリックします。デ
ザインは、ボックスとして下位レベル・インスタンスを含む 1 つの
トップレベル・デザイン・ブロックとして表示されます。
3.
ブロック間の接続性を表示するには、トップレベル・デザイン・ブ
ロックからのインスタンスの抽出を開始します。デザイン・クロッ
クをクリックし、それを周囲の白いスペース内にドラッグするか、
エンティティを右クリックし、Shortcut メニューの Extract from
Parent をクリックします。エンティティの抽出時に、エンティティ
間に接続バンドルが描かれ、エンティティ・ペア間に存在する接続
数を示します。
4.
接続性表示モードと階層表示モードを切り替えるには、
View メニュー
の Hierarchy Display をクリックします。あるいは、一時的に閲覧の
みの階層表示に切り替えるには、どれかのエンティティの左上隅の階
層アイコンをクリックして保持します。
5.
デザイン・パーティションとして設定したいデザイン・ブロックを
すでに抽出しているときは、そのデザイン・ブロックを右クリック
して、Create Design Partition を選択します。
Design Partition Planner の使用方法について詳しくは、Quartus II Help
の Using the Design Partition Planner を参照してください。
2–24
Altera Corporation
2008 年 5 月
デザイン・パーティションの選択および作成
図 2–6 に、1 つのインスタンスに対してデザイン・パーティション・ア
サインメントを作成し、同じパーティション内のトップレベル・ブロッ
クから別のインスタンスをドラッグして移動した後の Design Partition
Planner を示します。図は、各パーティション間の接続数と各デザイン・
インスタンスのサイズに関する情報を示しています。
図 2–6. Design Partition Planner
Design Partition Planner 外でのデザイン・パーティショ
ンの作成
デザイン・パーティションは、メイン Quartus II GUI の Design Partitions
ウィンドウまたは Project Navigator を使用して作成できます。インクリ
メンタル・コンパイルのためのデザイン階層をプラニングし、どのデザ
イン・ブロックが効果的なデザイン・パーティションを作成するかが分
かっているときには、これらの方法のいずれかを使用します。
Assignments メニューの Design Partitions Window(図 2–7)をクリッ
クします。以下のいずれかの方法でパーティションを作成します。
Altera Corporation
2008 年 5 月
2–25
Quartus II ハンドブック Volume 1
■
■
1 つまたは複数のインスタンスに新しいパーティションを作成する
場合は、Project Navigator の Hierarchy タブから Design Partitions
ウィンドウに、インスタンスをドラッグ・アンド・ドロップします。
この方法を使用する場合、複数のパーティションを一度に作成でき
ます。
Partition Name カラムで <<new>> セルをダブル・クリックし、新し
いパーティションを作成します。Create New Partitions ダイアロ
グ・ボックスで、デザイン・インスタンスを選択し、OK をクリッ
クします。
Design Partitions ウィンドウでパーティションを削除するには、パー
ティションを右クリックし Delete をクリックするか、パーティションを
選択して Delete キーを押します。
図 2–7. Design Partitions ウィンドウ
また、Project Navigator の Hierarchy タブ内のインスタンスのリストを
使用して、デザイン・パーティションの作成および削除を行うこともで
きます。Project Navigatorでインスタンスを右クリックし、Set as Design
Partition をクリックします。
パーティションとして設定された各インスタンスの横に、デザ
イン・パーティションのアイコンが表示されます(図 2–8)。
既 存 の パ ー テ ィ シ ョ ン・ア サ イ ン メ ン ト を 削 除 す る に は、Project
Navigator でインスタンスを右クリックし、Set as Design Partition を再
度クリックします。(このプロセスによってオプションがオフになりま
す。)
2–26
Altera Corporation
2008 年 5 月
デザイン・パーティションの選択および作成
図 2–8. デザイン・パーティションを示す Project Navigator
パーティション・シンボル
パーティションを作成すると、インスタンス名と階層パスに基づいて自
動的に名前が作成されます。名前を変更するには、Design Partitions ウィ
ンドウでパーティション名をダブル・クリックするか、パーティション
を 右 ク リ ッ ク し て Rename をクリックします。あるいは、Design
Partitions ウィンドウでパーティションを右クリックし、Properties をク
リックして、Design Partition Properties ダイアログ・ボックスを開い
て変更することもできます。General タブで、Name フィールドに新し
い名前を入力します。
パーティション名を変更することによって、階層パス(場合によっては
長くなることもある)を使ってパーティション名を参照するのを回避で
きます。これは、コマンドラインのコマンドやアサインメントを使用す
るときには特に重要です。パーティション名は、長さが 1 ∼ 1024 文字の
固有のものでなければなりません。名前に使用できるのは、英数字、パ
イプ( | )、コロン( : )、アンダースコア( _ )だけです。
Altera Corporation
2008 年 5 月
2–27
Quartus II ハンドブック Volume 1
デザイン・
パーティション
の Netlist Type
の設定
2–14 ページの「インクリメンタル・コンパイルを使用したデザインのコ
ンパイル」の説明に従って、Netlist Type プロパティでインクリメンタ
ル・コンパイル・プロセスを制御します。Netlist Type は各デザイン・
パーティションのプロパティであり、コンパイラが各パーティションの
入力として使用するネットリストやソース・ファイルのタイプを指定す
ることができます。このプロパティは、次のコンパイルの Partition Merge
ステージで使用されるネットリストを指定します。
Netlist Type を表示して変更する場合は、Assignment メニューの Design
Partition Window をクリックします。エントリの Netlist Type をダブ
ル・クリックします。あるいは、エントリを右クリックし、Design
Partition Properties をクリックしてから、Compilation タブの Netlist
Type を変更します。
2–28
Altera Corporation
2008 年 5 月
デザイン・パーティションの Netlist Type の設定
表 2–2 で、Netlist Type プロパティの各種設定および各設定における
Quartus II ソフトウェアの動作について説明し、各設定をいつ使用する
かについてのガイダンスを提供します。
表 2–2. Netlist Type の設定 ( 1 / 3 )
Partition
Netlist Type
Source File
コンパイル時のパーティションに対する Quartus II の動作
常に関連するデザイン・ソース・ファイルを使用して、パーティションをコンパイルします。
新しい合成設定または Fitter 設定を使用して、ソース・コードからパーティションをリコンパ
イルする場合は、このネットリスト・タイプを使用します。
関連するネットリストがパーティションにインポートされた場合、ネットリスト・タイプを
Source File に設定してパーティションをコンパイルすると、インポートされたネットリスト
が削除されます。したがって、別のプロジェクトからインポートされた結果を使用しないで、
この設定を使用してトップレベル・プロジェクト内でソース・ファイルからのパーティショ
ンをリコンパイルすることができます。
Post-Synthesis 以下の条件が満足される限り、パーティションの合成後の結果を維持し、合成後のネットリ
ストを再使用します。
● 前の合成から合成後のネットリストが利用できる
● 前の合成以降に、パーティションに対して自動再合成を実行する変更が行われていない。
詳細は、2–35 ページの「パーティションの自動再合成を実行するのはどのような変更で
しょうか?」を参照してください。
再合成が実行される場合または合成後のネットリストが使用できない場合は、ソース・ファ
イルからパーティションをコンパイルします。
ソース・ファイルが変更されていない場合は、このネットリスト・タイプを使用して、合成
結果を維持することができます。ただし、Fitter が新しい Fitter 設定を使用して、パーティショ
ンを再フィッティングできるようにします。
関連するネットリストがパーティションにインポートされている場合、この設定は使用でき
ません。
Altera Corporation
2008 年 5 月
2–29
Quartus II ハンドブック Volume 1
表 2–2. Netlist Type の設定 ( 2 / 3 )
Partition
Netlist Type
Post-Fit
コンパイル時のパーティションに対する Quartus II の動作
以下の条件が満足される限り、パーティションのフィッティング後の結果を維持し、フィッ
ティング後のネットリストを再使用します。
● 前のフィッティングからフィッティング後のネットリストが利用できる
● 前のフィッティング以降に、パーティションに対して自動再合成を実行する変更が行われ
ていない。詳細は、2–35 ページの「パーティションの自動再合成を実行するのはどのよ
うな変更でしょうか?」を参照してください。
ポスト・フィット・ネットリストが使用できない場合、ソフトウェアは合成後のネットリス
トが使用できる場合はそれを再使用し、
使用できない場合はソース・ファイルからコンパイルします。再合成が実行される場合は、
ソース・ファイルからパーティションをコンパイルします。
フィッティング後のネットリストのどのレベルの情報が維持されるかは、Fitter Preservation
Level で指定されます。詳細は、
2–32 ページの「Fitter Preservation Level」を参照してください。
変更を行わないとき、Fitter の結果を維持する場合は、このネットリスト・タイプを使用しま
す。このネットリスト・タイプは、他のパーティションのフィッティング結果を維持しなが
らフィジカル・シンセシス最適化などのグローバルな最適化を特定のパーティションに適用
する場合にも使用できます。
関連するネットリストがパーティションにインポートされている場合、この設定は使用でき
ません。
Post-Fit (Strict) 前のフィッティングからフィッティング後のネット・リストが使用できる限り、常にパーティ
ションのフィッティング後の結果を維持します。前のフィッティング以降に、関連するソー
ス・ファイルに変更が行われている場合でも、フィッティング後のネットリストを使用しま
す。詳細は、2–38 ページの「パーティションが変更されたときのフィッティング後のネット
リスト使用の強制」を参照してください。
フィッティング後のネットリストが使用できない場合、ソフトウェアは合成後のネットリス
トが使用できる場合はそれを再使用し、使用できない場合はソース・ファイルからコンパイ
ルします。
フィッティング後のネットリストのどのレベルの情報が維持されるかは、Fitter Preservation
Level で指定されます。詳細は、2–32 ページの「Fitter Preservation Level」を参照してください。
関連するネットリストがパーティションにインポートされている場合、この設定は使用でき
ません。
2–30
Altera Corporation
2008 年 5 月
デザイン・パーティションの Netlist Type の設定
表 2–2. Netlist Type の設定 ( 3 / 3 )
Partition
Netlist Type
Imported
コンパイル時のパーティションに対する Quartus II の動作
.qxp ファイルからインポートされたネットリストを使用して、パーティションをコンパイル
します。
インポートされた元のネットリストは、コンパイル中に変更されたり、上書きされることは
ありません。インポートされたネットリストへの変更(インポートされた LogicLock 領域の
移動など)を維持するには、インポートされたネットリストによるコンパイルに成功した後
で、Post-Fit (Import-based) 設定を使用します。詳しくは、2–43 ページの「ボトムアップ・
デザイン・フローのためのパーティションのエクスポートとインポート」を参照してくださ
い。
インポートされたネットリストのどのレベルの情報が維持されるかは、Fitter Preservation
Level で指定されます。詳細は、
2–32 ページの「Fitter Preservation Level」を参照してください。
Import Design Partition コマンドを使用してこのパーティションのネットリストをインポー
トしていない場合、この設定は使用できません。
Post-Fit
以下の条件が満足される限り、パーティションのフィッティング後の結果を維持し、フィッ
(Import-based) ティング後のネットリストを再使用します。
● 前のフィッティングからフィッティング後のネットリストが利用できる
● 前のフィッティング以降に、インポートされた関連するネットリストへの変更が行われて
いない
インポートされたネットリストが変更されている(すなわち、ネットリストが再インポート
されている)場合、またはフィッティング後のネットリストが利用できない場合、インポー
トされたネットリストからパーティションをコンパイルします。アサインメントを変更して
もリコンパイルは行われません。
フ ィ ッ テ ィ ン グ 後 の ネ ッ ト リ ス ト の ど の レ ベ ル の 情 報 が 維 持 さ れ る か は、 Fitter
Preservation Level で指定されます。詳細は、
「Fitter Preservation Level」を参照してください。
インポートされたネットリストの配置配線への変更を維持するには、このネットリスト・タ
イプを使用できます。
関連するネットリストがパーティションにインポートされていない場合、この設定は使用で
きません。
Empty
パーティションに空のプレースホルダ・ネットリストを使用し、パーティション境界で仮想
ピンを使用します。
このネットリスト・タイプは、下位レベルのパーティションのコンパイルをスキップする場
合に使用します。Empty 設定について詳しくは、2–34 ページの「Empty パーティション」を
参照してください。
Altera Corporation
2008 年 5 月
2–31
Quartus II ハンドブック Volume 1
Fitter Preservation Level
Fitter Preservation Level プロパティは、フィッティング後のネットリス
トまたはインポートされたネットリストのどの情報をコンパイラが使用
するかを指定します。このプロパティは、Netlist Type が、Post-Fit、
Post-Fit (Strict)、Imported、または Post-Fit (Import-based) に設定され
ている場合にのみ使用できます。
Assignments メニューの Design Partitions Window をクリックします。
Fitter Preservation Level を表示し変更するには、エントリをダブル・ク
リックします。または、エントリを右クリックし、Properties をクリッ
クしてから、CompilationタブでFitter Preservation Levelを編集します。
表 2–3 で、Fitter Preservation Level の設定について説明します。
表 2–3. Fitter Preservation Level の設定 ( 1 / 2 )
Fitter
Preservation
Level
Netlist Only
コンパイル時のパーティションに対する Quartus II の動作
デザイン・パーティションのネットリストの素子を維持しますが、デザイン・パーティ
ションを再配置および再配線します。素子が維持されたフィッティング後のネットリス
トには、前のフィッティング中にフィジカル・シンセシスによって複製されたレジスタ
など、Fitter による最適化データが含まれるため、合成後のネットリストとは異なるこ
とがあります。
この設定は以下の用途に使用できます。
● Fitter 最適化を維持しながら、ソフトウェアに再び配置配線を実行させる
● 配置をロックダウンしたときは不可能になる特定の Fitter 最適化(すなわちフィジカ
ル・シンセシス)を再度適用
● ボトムアップ・デザイン・フローでインポートされた 2 つのパーティションのリソー
スの衝突を解決
Placement
デザイン・パーティションでのネットリストの素子とその配置を維持します。デザイン・
パーティションを再配線します。
この設定では、Fitter がパーティションのノードを再フィッティングする必要がないた
め、コンパイル時間が大幅に短縮されます。インポートされたネットリストまたは空の
パーティションが前のフィッティング後のネットリストを再使用するように設定され
ているため、2 つのノードが同じ位置に割り当てられる場合、Fitter は影響を受けるノー
ドを再フィッティングすることに注意してください。
ネットリスト・タイプが Imported に設定され、インポートされたネットリストに配置
データが含まれていない場合、この設定は使用できません。
2–32
Altera Corporation
2008 年 5 月
デザイン・パーティションの Netlist Type の設定
表 2–3. Fitter Preservation Level の設定 ( 2 / 2 )
Fitter
Preservation
Level
Placement and
Routing
コンパイル時のパーティションに対する Quartus II の動作
デザイン・パーティションのネットリストの素子とその配置配線を維持します。フィッ
ティング後のネットリストおよびデザインに追加されるSignalProbe ピンに対するECO
の変更を維持するのに必要な最小維持レベルです。
この設定では、Placement のみの場合よりもコンパイル時間が短縮されます。適用性の
理由から、Fitter による配線の変更が必要になる場合があります。
ネットリスト・タイプが Imported に設定され、インポートされたネットリストに配線
データが含まれていない場合、この設定は使用できません。
Placement、Routing、 デザイン・パーティションで、デザイン・パーティションのネットリストの素子とその
配置配線、およびパワー・タイルの高速または低速の設定を維持します。
および Tile
適用性の理由から、Fitter による配線の変更が必要になる場合があります。
この設定は、コンフィギュレーション可能なパワー・タイルを持つデバイスに対しての
み使用できます。
Altera Corporation
2008 年 5 月
2–33
Quartus II ハンドブック Volume 1
Empty パーティション
Empty 設定を使用すると、不完全な、またはトップレベルのデザインで
欠落した下位レベルのパーティションのコンパイルをスキップすること
ができます。またこの設定は、最適化中またはあるパーティションのコ
ンパイル時間が長く、これを除外したい場合など、デザインの一部のパー
ティションのみコンパイルする場合にも使用できます。この設定は、IP
コアなどのタイミング・クリティカルなブロックの配置を最適化し、トッ
プダウン・デザイン・フローで残りのカスタム・ロジックを追加する前
に配置をロックする場合に有用です。
Netlist Type を Empty に設定するには、Assignments メニューで Design
Partitions Window をクリックするか、エントリをダブル・クリックす
るか、またはエントリを右クリックして Design Partition Properties を
クリックし、Empty を選択します。この設定は、パーティションに空の
プレースホルダ・ネットリストを使用するように Quartus II Compiler に
指定します。
パーティション Netlist Type が Empty と定義されている場合、パーティ
ションの境界で仮想ピンが自動的に作成されます。これは、ソフトウェ
アがコンパイル中に下位レベル・デザイン・エンティティの I/O ピンを、
ピンではなく内部セルに一時的にマッピングすることを意味します。
デザイン階層で空のパーティションより下位の子パーティションは自動
的に、それらの設定に関係なくすべて空として処理されます。
Empty 設定をフルに利用する場合は、階層ツリーから外れたデ
ザイン・ロジックを最高の柔軟性を提供するように維持するこ
とが重要です。ある階層レベルにロジックが存在し、子階層に
別のロジックが存在する場合、空のパーティションのトップレ
ベル・ロジックを分離すると、下位レベルのパーティションも
空として扱われます。
ボトムアップ・デザイン・フローのバリエーションで、一部のパーティ
ションが Empty に設定されたデザイン・フローを使用できます。ここ
で、デザインを部分的に個別に開発し、後でトップレベルで結合します。
プロジェクトの他の部分に関する情報なしで、デザインの一部を実装す
る場合、コンパイラがグローバル配置最適化を実行することは不可能で
す。この影響を軽減するには、適切なパーティショニング・ガイドライ
ンに従い、可能な限りパーティションの入力ポートと出力ポートが確実
に登録されるようにすることによって、パーティションをまたがる I/O
を最小にします。
2–34
Altera Corporation
2008 年 5 月
デザイン・パーティションの Netlist Type の設定
デザイン・パーティションを Empty に設定すると、パーティションをデ
ザインの他のロジックおよびパーティションに正しく接続できるよう
に、Analysis & Synthesis でポート・インタフェース情報を指定するた
めのデザイン・ファイルが要求されます。パーティションがインポート
される場合、.qxp ファイルにはこの情報が含まれています。デザイン・
エンティティを表す .qxp ファイルまたはデザイン・ファイルがない場合
は、デザイン・ブロックを定義し、入力、出力、双方向ポートを指定す
るラッパー・ファイル(ブラック・ボックス、スタブまたは中空体ファ
イルと呼ばれる)を作成する必要があります。例えば、Verilog HDL で
はモジュール宣言を含め、VHDL ではエンティティおよびアーキテク
チャ宣言を含めなければなりません。
プロジェクト・データベースに、変更されない Empty パーティションに
以前生成された合成後またはフィッティング後のネットリストが含まれ
る場合、Empty から Post-Synthesis または Post-Fit に Netlist Type を直
接設定することができます。この場合、ソフトウェアは前のネットリス
ト情報を再使用し、ソース・コードからリコンパイルする必要はありま
せん。
パーティションの自動再合成を実行するのはどのような変
更でしょうか?
前の合成から使用できる合成後のネットリストがない場合、または
Netlist Type が Source File に設定されている場合、パーティションはそ
のソース・ファイルから合成されます。また、デザイン・パーティショ
ンへの特定の変更は、Netlist Type が Post-Synthesis または Post-Fit の
ときに、パーティションの自動再合成を実行します。ソフトウェアはこ
れらのケースでパーティションを再合成して、デザイン記述が配置配線
後のプログラミング・ファイルに一致するようにします。この再合成を
自動的に発生させたくない場合は、Netlist Type を Post-Fit (Strict) に設
定します。2–38 ページの「パーティションが変更されたときのフィッ
ティング後のネットリスト使用の強制」を参照してください。
以下のリストは、Netlist Type が Post-Synthesis または Post-Fit に設定さ
れているときに、パーティションの自動再合成を実行する変更について
説明しています。
■
■
■
Altera Corporation
2008 年 5 月
デバイス・ファミリの設定が変更された。
依存ソース・デザイン・ファイルが変更された。詳細は、2–37 ペー
ジの「ソース・コードの変更により再合成されるパーティションの
決定」を参照してください。
下位レベル・パーティション(つまり、このパーティション内の下
位レベル・インスタンスに対して定義されたパーティション)のポー
ト境界に対する追加、削除、または変更によってパーティション境
界が変更された。
2–35
Quartus II ハンドブック Volume 1
■
■
■
■
依存ソース・ファイルが異なるライブラリ内にコンパイルされた(そ
のため、異なる -library 引数を持っている)。
依存ソース・ファイルが追加または削除された。すなわち、パーティ
ションが異なるソース・ファイル・セットに依存している。
パーティションのルート・インスタンスに異なるエンティティ結合
が存在する。VHDL では、あるインスタンスが特定のエンティティ
およびアーキテクチャに結合されることがある。ターゲットのエン
ティティまたはアーキテクチャが変更される場合は、再合成が実行
されます。
パーティションのルート階層上または内部AHDL階層上に異なるパ
ラメータがある場合(AHDL は自動的にその親階層からパラメータ
を継承します)。これは、階層上のパラメータを直接修正した場合、
または親デザイン階層のパラメータを変更することにより間接的に
それらを変更した場合に発生します。
ソフトウェアは、合成後の結果を再使用しますが、同一デバイス・ファ
ミリ内でデバイス設定を変更する場合はデザインを再フィッティングし
ます。デバイスのスピード・グレードのみを変更する場合、ソフトウェ
アはフィッティング後のネットリストを再使用します。
最適化設定、タイミング・アサインメント、またはピン・アサインメン
トを含む Fitter ロケーション・アサインメントなどの合成および Fitter
アサインメントでは、インクリメンタル・コンパイル・フローで自動リ
コンパイルを実行してはなりません。LogicLock 領域で配置に与える影
響について詳しくは、2–42 ページの「どの LogicLock 領域の変更が再
フィッティングを実行するか」を参照してください。新しいアサインメ
ントのあるパーティションをリコンパイルするには、そのパーティショ
ンの Netlist Type アサインメントを次のいずれかに変更します。
■
■
■
すべての新しい設定で Source File をリコンパイル
既存の合成結果と新しい Fitter 設定を使用して Post-Synthesis をリ
コンパイル
Fitter Preservation LevelでPost-FitをPlacementに設定し、新しい配
線設定(遅延チェイン設定など)を除く、既存の配置結果を使用し
て配線を再実行
プロジェクト・データベース・フォルダ(\db)には、以前のコンパイ
ルのすべてのネットリスト情報が含まれています。不必要なリコンパイ
ルを避けるために、データベース・ファイルの変更や削除を行わないで
ください。
プロジェクトを別の場所でアーカイブまたは再現する場合、Quartus II
Archive ファイル(.qar)を使用できます。コンパイル結果を維持する
ためにコンパイル・データベースをインクルードします。詳細は、2–82
ページの「Quartus II Archive ファイルによるインクリメンタル・ コン
2–36
Altera Corporation
2008 年 5 月
デザイン・パーティションの Netlist Type の設定
パイルの使用」を参照してください。コンパイル・データベース全体を
維持することなく、コンパイル結果を維持するプロジェクト・アーカイ
ブを手動で作成するために、すべてのソース・ファイルおよび設定ファ
イルを維持し、デザインの各パーティション用の .qxp ファイルを作成お
よび保存することができます。詳細は、2–47 ページの「プロジェクト内
の下位レベル・ブロックのエクスポート」を参照してください。
ソース・コードの変更により再合成されるパーティションの決定
Quartus II ソフトウェアは、内部チェックサムを使用して、ソース・ファ
イルの内容が変更されたかどうかを判断します。ソース・ファイルはデ
ザインの作成に使用されるデザイン・ファイルで、VHDL ファイル、
Verilog HDL ファイル、AHDL ファイル、ブロック・デザイン・ファイ
ル(.bdf)、EDIF ネットリスト、VQM ネットリスト、およびメモリ初
期化ファイルで構成されています。シミュレーション用のベクタ波形
ファイルなど、他のファイルが変更された場合、リコンパイルは行われ
ません。パーティションのデザイン・ファイルに他のファイルへの依存
性がある場合、1 つのファイルを変更すると別のファイルの自動リコン
パイルが実行される場合があります。Analysis & Synthesis レポートの
Partition Dependent Files テーブルは、各デザイン・パーティションの
ためのデザイン・ファイルを示します。このテーブルを使用して、特定
のファイルが変更されたときにリコンパイルされるパーティションを決
定することができます。
例えば、エンティティ a を含む a.v、エンティティ b を含む b.v、および
エンティティ c を含む c.v の各ファイルがデザインに使用されている場
合、エンティティ a を含むパーティションの Partition Dependent Files
テーブルにはファイル a.v が、エンティティ b を含むパーティションの
テーブルにはファイル b.v が、エンティティ c を含むパーティションの
テーブルにはファイル c.v がそれぞれリストされます。いずれの依存性
も推移的なので、ファイル a.v が b.v に依存し、b.v が c.v に依存する場
合、ファイル a.v のエンティティはファイル b.v と c.v に依存します。こ
の場合、ファイル b.v と c.v は、エンティティ a を含むパーティション
の依存ファイルとしてレポート・テーブルにリストされます。
上位レベルのモジュールでモジュール・パラメータを定義する場合、
Quartus II ソフトウェアは、パラメータ値をチェックして再合成が必要
なパーティションを決定します。下位レベルのモジュールに影響を与え
る上位レベルのモジュールのパラメータを変更すると、下位レベルのモ
ジュールが再合成されます。パラメータの依存性は、ソース・ファイル
の依存性とは別に追跡されます。したがって、パラメータ定義は Partition
Dependent Files リストには含まれません。
Altera Corporation
2008 年 5 月
2–37
Quartus II ハンドブック Volume 1
各エンティティでコマンド ‘include includes.v により参照される
includes.v ファイルなどの共通ファイルがデザインに含まれる場合、す
べてのパーティションはこのファイルに依存します。includes.v を変更
すると、デザイン全体がリコンパイルされます。通常、VHDL 文 use
work.all は、作業ライブラリのすべてのエンティティを現在のエン
ティティに表示し、その結果現在のエンティティはデザインの他のすべ
てのエンティティに依存するため、不必要なリコンパイルになります。
この種の問題を回避するには、共通のインクルード・ファイルなど、す
べてのエンティティに共通のファイルには、真にすべてのエンティティ
に共通な情報セットのみ格納するようにしてください。VHDL ファイル
の use work.all 文を削除するか、各エンティティに必要な特定のデ
ザイン・ユニットのみを含めることによって use work.all 文を置換して
ください。
パーティションが変更されたときのフィッティング後のネット
リスト使用の強制
ソース・ファイルの内容が変更されたとき、フィッティング後のネット
リストの使用を強制するオプションは、パーティションのリコンパイル
が必要なタイミングを理解している上級ユーザーにのみ推奨されます。
このアサインメントは、ソース・コードを変更しても別のパーティショ
ンのデバッグが完了するまでリコンパイルを実行したくない場合などに
使用できます。ソース・ファイルを変更したときに、以前に生成された
フィッティング後のネットリストの使用を Fitter に強制するには、PostFit (Strict) Netlist Type アサインメントを使用できます。
Post-Fit (Strict) Netlist Type を誤って使用すると、ソース・デザイン・
ファイルの変更時に、機能的に不正なネットリストが生成される可能性
があります。このアサインメントを使用するときは注意が必要です。
LogicLock
ロケーション・
アサインメント
による
デザイン・
フロアプラン
の作成
フロアプランはデバイス上のフィジカル・リソースのレイアウトを表し
ます。“ デザイン・フロアプランの作成 ” および “ フロアプランニング ” と
いう表現は、ロジカル・デザイン階層をデバイス・フロアプランのフィ
ジカル領域にマッピングするプロセスを記述したものです。フル・イン
クリメンタル・コンパイル・フローを使用して結果の品質を高める場合
は、デザインを分割した後、ここで述べるように、デザインにフロアプ
ラン・ロケーション・アサインメントを作成します。インクリメンタル・
コンパイル・フローを使用する場合、デザイン・フロアプランの作成は
必要条件ではありませんが、特定のケースでは強く推奨されます。以下
の 2 つの理由から、フロアプラン・ロケーションの計画は、フル・イン
クリメンタル・コンパイルを使用するデザインにとって重要になります。
■
2–38
パーティション間でリソースの衝突を回避するため(主としてボト
ムアップ・フローで)
Altera Corporation
2008 年 5 月
LogicLock ロケーション・アサインメントによるデザイン・フロアプランの作成
■
トップダウン・フローで、個々のパーティションをリコンパイルす
る場合に、高品質の結果を保証するため
トップダウン・コンパイル・フローでは、タイミング・クリティカルで
ないロジックはデバイス中を移動できるため、フロアプラン・アサイン
メントが不要になる場合があります。
分割したデザインにフロアプランを作成する最も簡単な方法は、パー
ティションごとに(トップレベルのパーティションを含めて)LogicLock
レジスタを 1 つ作成することです。最初は、各領域に自動サイズおよび
非固定 位置にデフォルト設定を使用し、Quartus II ソフトウェアがそれ
らの領域の最適なサイズおよび位置を決定できるようにします。次に、
コンパイル後に、Fitter で決定されたサイズおよび元の位置をデザイン・
フロアプランの開始点として使用します。フロアプランのロケーション・
アサインメント用に取得した結果の品質をチェックし、必要に応じて領
域を変更します。あるいは、合成を実行し、続いて領域をリソースの見
積もりに基づく必要なサイズに設定することもできます。この場合、パー
ティション間の接続に関する知識を活用して、領域をフロアプランに配
置してください。
初期フロアプランを作成したら、Quartus II ソフトウェアのツールを使
用して領域を改良することができます。子の LogicLock 領域をネスティ
ングさせることによって、非矩形領域を作成するといった高度な手法を
使用することも可能です。
デザイン・フロアプランの作成が重要になる時期およびフロアプランの作
成ガイドラインについて詳しくは、
「Quartus II ハンドブック Volume 1」
の「Best Practices for Incremental Compilation Partitions and Floorplan」の
章を参照してください。
2–61 ページの
「Incremental Compilation Advisor」で説明する Incremental
Compilation Advisor を使用して、LogicLock 領域がアルテラのガイドラ
インに準拠しているかどうかチェックできます。
各デザイン・パーティションに LogicLock 領域を作成するには、以下の
一般的な手法を使用します。
1.
Altera Corporation
2008 年 5 月
Assignment メニューの Design Partitions Window をクリックし、
すべてのパーティションの Netlist Type が Source または PostSynthesis に設定されているか確認します。Netlist Type が Post-Fit
に設定されている場合、デザインのリコンパイル時にフロアプラン・
ロケーション・アサインメントは使用されません。
2–39
Quartus II ハンドブック Volume 1
2.
以下のいずれかの方法を使用して、各パーティション(自動的にパー
ティションとみなされるトップレベルのエンティティを含む)に対
して、LogicLock 領域を作成します。
●
●
Tools メニューで、Design Partition Planner をクリックします。
パーティションを表す色付きボックス内でパーティションを右
クリックし、Create New LogicLock Region をクリックします。
Design Partitions ウィンドウのパーティションを右クリック
し、Create New LogicLock Region をクリックします。
Project NavigatorのCompilation Hierarchy内で、パーティショ
ン とし て表 示 さ れ て い る 各 イ ン ス タ ン ス を 右 ク リ ッ ク し、
Create New LogicLock Region をクリックします。Design
Partitions ウィンドウでパーティションの行を右クリックし、
Create New LogicLock Region を選択します。
これらのいずれの方法でも、Ctrl キーを押したまま各パーティショ
ンをクリックして、複数(またはすべての)パーティションをハイ
ライトすることができます。次に、ハイライトされた各パーティ
ションに LogicLock 領域を作成するためのオプションを選択でき
ます。
Project Navigator の LogicLock 領域として設定された各イ
ンスタンスの横に、LogicLock 領域のアイコンが表示され
ます(図 2–9)。
図 2–9. LogicLock 領域を示す Project Navigator
2–40
Altera Corporation
2008 年 5 月
LogicLock ロケーション・アサインメントによるデザイン・フロアプランの作成
3.
自動サイズの非固定位置LogicLock領域を配置するには、Processing
メニューの Start をポイントし、Start Early Timing Estimate をク
リックします。
Early Timing Estimateを実行する前に、
Analysis & Synthesis
および Partition Merge を実行する必要があります。
Early Timing Estimate の代わりにフル・コンパイルを実行
するには、Processing メニューの Start Compilation をク
リックします。
4.
Assignments メニューの LogicLock Regions Window をクリック
し、Ctrl キーを押したまま、各 LogicLock 領域をクリックし、
(トッ
プレベルの領域を含む)すべての領域を選択します。
5.
最後に選択したLogicLock領域を右クリックし、Set Size and Origin
to Previous Fitter Results をクリックします。
Fitter で選択されたロケーションは開始点としてのみ使用
し、固定サイズおよび固定位置の領域を作成します。一般
に、サイズと位置が固定された領域は、自動サイズの領域
よりも fMAX が改善されます。
領域の内容はバック・アノテーションしないで、サイズと
原点を保存してください。バック・アノテーションされた
コンテンツ・アサインメントではなく、フィッティング後
のネットリストを使用して配置を維持します。
Altera Corporation
2008 年 5 月
6.
必要に応じて、LogicLock Regions Window または Chip Planner
を使用してサイズと位置を変更します。例えば、領域を拡大してデ
バイスの容量を増やし、将来のロジック変更を可能にすることがで
きます。
7.
上記の LogicLock 領域を使用してデザインのタイミング性能を見積
もるには、Processing メニューの Start をポイントし、Start Early
Timing Estimate をクリックします。
8.
デザイン・フロアプランの結果の品質に満足するまで、ステップ 6
とステップ 7 繰り返します。
9.
Processing メニューの Start Compilation をクリックして、フル・
コンパイルを実行します。
2–41
Quartus II ハンドブック Volume 1
自動サイズおよび非固定位置領域を使用しない場合は、ステップ 3–5 で、
合成後の領域のサイズを見積もることができます。Processing メニュー
の Start をポイントして、Start Analysis & Synthesis を選択します。
LogicLock Regions ダイアログ・ボックスの領域を右クリックし、Set to
Estimated Size を選択します。次に、ステップ 6 に進み、必要に応じて
各領域のサイズと原点を変更します。
Early Timing Estimator の利用
優れたフロアプランを作成する方法では、Early Timing Estimator を活
用して、アサインメントを作成する間にデザインを迅速にコンパイルで
きるようにしています。Early Timing Estimator 機能は、フル・コンパ
イルを実行する場合よりも 45 倍速い速度で、デザインのタイミングを見
積もりますが、平均では最終的なデザインのタイミングの 11% 以内と推
定されます。Chip Planner を使用すると、この Early Timing Estimator
で作成した “ 配置見積もり ” を表示し、タイミング解析レポートからクリ
ティカル・パスを特定し、必要に応じてフロアプランの制約を追加また
は変更することができます。次に、Early Timing Estimator を再実行し
てフロアプラン・ロケーション・アサインメントまたはロジック変更の
影響をすばやく評価し、デザイン・バリエーションでの迅速なイタレー
ションを可能にして、最良のソリューションを見つけるよう支援します。
この高速な配置は結果の品質に影響を与えます。デザインのイタレー
シ ョ ン で最 高 品 質 の 結果を得ることが重要な場合は、Early Timing
Estimate 機能を使用しないで、Fitter によるフル・コンパイルを実行し
ます。
どの LogicLock 領域の変更が再フィッティングを実行す
るか
2–35 ページの「パーティションの自動再合成を実行するのはどのような
変 更 で し ょ う か?」で説明するとおり、Netlist Type および Fitter
Preservation Level の設定で Fitter の結果を維持するよう指定されている
場合、ほとんどのアサインメントの変更ではパーティションのリコンパ
イルは実行されません。例えば、ピン・アサインメントを変更してもリ
コンパイルは実行されないため、Netlist Type を Post-Synthesis または
Source File に変更しない限り、デザインで新しいピン・アサインメント
は使用されません。
同様に、パーティションの配置が維持される場合、またパーティション
が LogicLock 領域に割り当てられる場合、Fitter は常にフィッティング
後ネットリストに指定された対応する LogicLock 領域のサイズを再使用
します。すなわち、Post-Fit Netlist Type 設定またはフィッティング後
2–42
Altera Corporation
2008 年 5 月
ボトムアップ・デザイン・フローのためのパーティションのエクスポートとインポート
の情報を含むインポートされたパーティションでパーティションの配置
が維持される場合は、LogicLock Size 設定を変更しても再フィッティン
グは実行されません。
ただし、LogicLock の Origin 位置アサインメントを使用して、以前の
Fitterの結果を変更するか微調整することができます。ある領域のOrigin
設定を変更すると、Fitter は当該領域のメンバーに対してどのように配
置が維持されるかに応じて、以下の方法で領域を移動することができま
す。
■
■
ボトムアッ
プ・デザイン・
フローのための
パーティション
のエクスポート
とインポート
新しい領域の原点を設定すると、Fitter は新しい原点を使用し、ロ
ジックを再配置して、メンバー・ロジックの相対的な配置を維持し
ます。
領域の原点を可動に設定すると、以下の条件が適用されます。
●
領域のメンバーの配置がインポートされたパーティションで維
持された場合、Fitter は新しい原点を選択し、ロジックを再配
置して、領域内のメンバー・ロジックの相対的な配置を維持し
ます。
●
領域のメンバーの配置が Post-Fit Netlist Type で維持された場
合、Fitter は原点の位置を変更しないで、前の配置の結果を再
使用します。
ボトムアップ・フローとは、1 つのプロジェクトが最初に小さなサブデ
ザインに分割され、これらを別の設計者が個別プロジェクトとして実装
できるデザイン手法のことです。これら下位レベルのプロジェクトのコ
ンパイル結果は、エクスポートされて設計者(すなわち、プロジェクト・
リーダー)に渡され、この設計者がトップレベルのプロジェクトへのイ
ンポート、および完全に機能するデザインの作成に責任を負います。
ボトムアップ・デザイン・フローでは、トップレベルのプロジェクト・
リーダーはデザイン計画の大部分を行ってから下位レベル・ブロックの
設計者に制約を渡すことができます。Quartus II ソフトウェアで生成さ
れるボトムアップ・デザイン・パーティション・スクリプトにより、ボ
トムアップ・デザインの計画が容易になり、個別のデザインを統合する
際に生じる問題を限定できる可能性があります。詳細は、2–52 ページの
「プロジェクト管理のためのボトムアップ・デザイン・パーティションの
スクリプトの生成」を参照してください。
フロー全体の概要については、クイック・スタート・ガイドの 2–14 ペー
ジの「ボトムアップ・インクリメンタル・コンパイル」の項を参照して
ください。チーム・ベースのシナリオの例については、2–69 ページの
「チーム・ベースのボトムアップ・デザイン・フローの実行」を参照して
ください。2–80 ページの「インクリメンタル・コンパイルの制約」で説
明するとおり、Quartus II ソフトウェアのボトムアップ・フローに関連
するその他の制限があります。
Altera Corporation
2008 年 5 月
2–43
Quartus II ハンドブック Volume 1
この項では、ボトムアップ・コンパイル・フローをサポートするエクス
ポートおよびインポート機能について説明します。この項では、以下の
内容について説明します。
■ 「Quartus II Exported Partition ファイル」
■
■
■
■
■
2–44 ページの「トップレベル・プロジェクトで使用される下位レベ
ル・パーティションのエクスポート」
2–47ページの「プロジェクト内の下位レベル・ブロックのエクスポー
ト」
2–48 ページの「下位レベル・パーティションのトップレベル・プロ
ジェクトへのインポート」
2–49 ページの「アサインメントおよび高度なインポート設定のイン
ポート」
2–52 ページの「プロジェクト管理のためのボトムアップ・デザイン・
パーティションのスクリプトの生成」
Quartus II Exported Partition ファイル
ボトムアップ・インクリメンタル・コンパイル・フローでは、Quartus
II Exported Partition(.qxp)ファイル を使用して、下位レベルのデザイ
ン・パーティションを表します。.qxp ファイルは、エクスポートされた
デザイン・パーティションのコンパイル結果を含むバイナリ・ファイル
で、フィッティング後または合成後のネットリスト、LogicLock 領域、
および一連のアサインメントが含まれます。.qxp ファイルには、下位レ
ベル・デザインのオリジナル・ソース・デザイン・ファイルは含まれて
いません。
以下の項では、下位レベル・デザイン・パーティション用の .qxp ファイ
ルの生成方法、および .qxp ファイルをトップレベル・プロジェクトにイ
ンポートする方法について説明します。
トップレベル・プロジェクトで使用される下位レベル・
パーティションのエクスポート
下位レベルの各サブデザインは、個別の Quartus II プロジェクトとして
コンパイルされます。各プロジェクトで、以下のガイドラインに従って
エクスポートおよびインポート・プロセスを改善します。
■
2–44
トップレベルからのボトムアップ・デザイン・パーティション・ス
クリプトがある場合、Tcl スクリプトを使用してトップレベル・デザ
インからプロジェクトおよびすべてのアサインメントを作成しま
す。これにより、以下で説明するアサインメントの多くを作成でき
ます。LogicLock 領域が、トップレベルのプロジェクト・リーダー
によって割り当てられたリソースのみ使用していることを確認しま
す。
Altera Corporation
2008 年 5 月
ボトムアップ・デザイン・フローのためのパーティションのエクスポートとインポート
■
トップレベルのデザインでリソース衝突が生じないように、グロー
バル配線リソースにどのクロックを割り当てるかを認識しているこ
とを確認します。詳細は、「Quartus II ハンドブック Volume 1」の
「Best Practices for Incremental Compilation Partitions and Floorplan
Assignments」を参照してください。
●
グローバル配線ラインへの配線が必要な高ファンアウト信号に
ついては、Global Signal アサインメントを On にします。
●
グ ロー バ ル配 線 ラ イ ン に 他 の 信 号 が 配 置 さ れ な い よ う に、
Assignments メニューの Settings をクリックし、Settings ダイ
アログ・ボックスの Fitter ページの More Settings で、Auto
Global Clock and Auto Global Register Controls をオフにしま
す。
●
または、グローバル配線ラインへの配置が不要な信号について
は、Global Signal アサインメントを Off に設定できます。ま
た、LAB の配置は、LAB 内のロジック・セルへの入力でグロー
バル・クロックが使用されるかどうかに依存します。下位レベ
ルのデザインでグローバル・ラインを使用せず、トップレベル
のデザインでグローバル配線を使用する信号の場合、問題が発
生する可能性があります。
■
トップレベル・デザインでピンをドライブしないサブデザインのピ
ンを指定する場合は、Virtual Pin アサインメントを使用します。こ
れは、サブデザインにターゲット・デバイスで使用できるピン数よ
りも多い出力ポートがある場合は重要です。仮想ピンの使用は、ロ
ケーション・アサインメントやタイミング・アサインメントなど、
サブデザインのポートに関する情報をより多く提供できるため、完
全なデザインでパーティションをまたがるパスを最適化するのにも
役立ちます。
サブデザインは互いの情報なしに個別にコンパイルされるため、
トップレベル・デザインで他のパーティションから影響を受ける可
能性のあるタイミング・パスについて、より多くの情報を提供する
必要があります。トップレベルのデザインに組み込まれた後、ポー
ト接続をどこに配置するかを指定するために、各ピンにロケーショ
ン・アサインメントを適用することができます。また、説明するタ
イミング・バジェットを実行するために、サブデザインの I/O ポー
トにタイミング・アサインメントを適用することも可能です。
■
タイミング・バジェットの作成について詳しくは、「Quartus II ハンド
ブ ッ ク Volume 1」の 「Best Practices for Incremental Compilation
Partitions and Floorplan Assignments」を参照してください。
Altera Corporation
2008 年 5 月
2–45
Quartus II ハンドブック Volume 1
上記のガイドラインに基づいてサブデザインのパーティションがコンパ
イルされ、トップレベルのデザインに組み込む準備が整ったら、以下の
ステップに従って、サブデザインをパーティションとしてエクスポート
します。
1.
サブデザイン・プロジェクトで、以下の方法のいずれかを使用して
Export Design Partition ダイログ・ボックスを開きます。
●
●
Design Partition Planner(Tool メニューから使用可能)で、パー
ティションを表す色付きボックス内でパーティションを右ク
リックし、Export Design Partition をクリックします。
Project メニューの Export Design Partition をクリックします。
2.
Export file ボックスで、.qxp のファイル名を入力します。デフォル
トでは、ディレクトリ・パスとファイル名は現在のプロジェクト名
になります。
3.
Partition hierarchy to export を選択することもできます。デフォル
トでは、Top パーティション(プロジェクト全体)がエクスポート
されますが、2–47 ページの「プロジェクト内の下位レベル・ブロッ
クのエクスポート」で説明するように、プロジェクトの任意のパー
ティション階層のコンパイル結果をエクスポートするように選択す
ることもできます。プルダウン・リストからパーティション階層を
選択します。
4.
Netlist to export で、Post-fit netlist か Post-synthesis netlist を選
択します。デフォルトは Post-Fit netlist です。フィッティング後の
ネットリストの場合、必要に応じて Export routing オプションをオ
ンまたはオフにします。
5.
OK をクリックします。Quartus II ソフトウェアにより、指定され
たディレクトリに .qxp ファイルが作成されます。
あるいは、デザインをコンパイルするたびにエクスポート・プロセスが
実行されるようにプロジェクトを設定することもできます。
2–46
1.
Assignments メニューの Settings をクリックします。
2.
Settings ダイアログ・ボックスの Compilation Process Settings で、
Incremental Compilation ページを選択します。
3.
Automatically export design partition after compilation をオンに
します。
Altera Corporation
2008 年 5 月
ボトムアップ・デザイン・フローのためのパーティションのエクスポートとインポート
4.
デフォルトのエクスポート設定を表示または変更する場合、Export
Design Partition Settings ボタンをクリックします。
5.
Export Design Partition Settings ダイアログ・ボックスで、上記の
エクスポート手順のステップ 2-4 に従い、必要に応じて設定を変更
します。OK をクリックします。
6.
OK をクリックして、Settings ダイアログ・ボックスを閉じます。
次のフル・コンパイル時に、Quartus II ソフトウェアにより、指定
されたディレクトリに .qxp ファイルが作成されます。
プロジェクト内の下位レベル・ブロックのエクスポート
「トップレベル・プロジェクトで使用される下位レベル・パーティション
のエクスポート」のステップ 3 を実行して、Quartus II プロジェクト内
の下位レベル・ブロック用の .qxp ファイルを作成できます。これを行う
と、コマンドにより指定したパーティションの階層全体が .qxp ファイル
にエクスポートされます。
この機能を使用して、トップレベル・デザインのデザイン・パーティショ
ンとしてエクスポートされる下位レベル・ブロック周辺にテスト・ロジッ
クを追加することができます。また、トップレベル・デザイン環境に適
合するよう、下位レベル・プロジェクトで追加デザイン・コンポーネン
トをインスタンス化することも可能です。例えば、トップレベル PLL を
下位レベル・プロジェクトに含めて、周波数マルチプライヤ、位相シフ
ト、補正遅延、およびその他の PLL パラメータに関する情報によってデ
ザインを最適化することができます。ソフトウェアは次に、下位レベル・
プロジェクトでタイミング解析が確実に完了し正確な結果が得られるよ
うにしながら、タイミングおよびリソース要件をより正確にキャプチャ
します。補助コンポーネントをエクスポートしないで、下位レベル・パー
ティションをトップレベル・デザインにエクスポートすることができま
す。
さらに、この機能をトップダウン・デザイン・フローで使用して、完成
した特定のデザイン・パーティション用の .qxp ファイルを作成すること
ができます。次に、以下の項で説明するとおり、.qxp ファイルをプロ
ジェクトにインポートして Imported ネットリスト・タイプを使用する
ことができます。ここで、.qxp ファイルは 1 つのファイルにネットリス
トと配置配線情報を含むパーティションのアーカイブとして機能しま
す。パーティションのソース・コードを変更する場合は、ネットリスト・
タイプを Source File に戻して、インポートされた情報の代わりにソー
スを使用しなければなりません。
Altera Corporation
2008 年 5 月
2–47
Quartus II ハンドブック Volume 1
下位レベル・パーティションのトップレベル・プロジェク
トへのインポート
インポート・プロセスには、.qxp ファイルからのデザイン・ネットリス
トのインポートと、
トップレベル・プロジェクトのデータベースへのネッ
トリストの追加が含まれます。また、インポートにより、サブデザイン
からのアサインメントがフィルタされ、トップレベル・プロジェクトに
適切なアサインメントが作成されます。
サブデザイン・パーティションをトップレベル・デザインにインポート
するには、以下のステップを実行します。
1.
トップレベル・プロジェクトで、以下の方法のいずれかを使用して
Import Design Partition ダイログ・ボックスを開きます。
●
●
●
2.
Design Partition Planner で、パーティションを表す色付きボッ
ク ス 内 で パ ー ティションを右クリックし、Import Design
Partition をクリックします。
Design Partitions ウィンドウでインポートするパーティション
を右クリックし、Import Design Partition をクリックします。
Project メニューの Import Design Partition をクリックします。
Partition(s) ボックスで、必要なパーティションを表示します。パー
ティションを選択するには、Select Partition(s) ダイアログ・ボック
スでパーティション名をハイライトし、適切なボタンを使用して該
当するパーティションを選択または選択解除します。
トップレベルのデザインに、サブデザイン・パーティショ
ンの複数のインスタンスが含まれ、インポートされた同じ
ネットリストを使用する場合は、複数のパーティションを
選択できます。
3.
2–48
Import file で、.qxp ファイルの名前を入力するか、選択したパー
ティションにインポートするファイルを参照します。このファイル
はインポート中にのみ必要で、パーティションを再インポートしな
い限り、以降のコンパイルでは使用されません。
Altera Corporation
2008 年 5 月
ボトムアップ・デザイン・フローのためのパーティションのエクスポートとインポート
このパーティションに 1 回以上 .qxp ファイルをインポート
している場合、ファイル名を再度指定しないで、前回のイ
ンポートと同じロケーションを使用できます。このために
は、Reimport using the latest import files at previous
locations をオンにします。このオプションは、すでに 1 回
以上インポートしている複数のパーティションに、新しい
Quartus II Exported Partition ファイルをインポートする場
合に特に役立ちます。Partition ボックスで、インポートす
る す べ て のパーティションを選択し、Reimport using
latest import files at previous locations オプションを使用
して、個々のファイル名を指定しないで、前回のロケーショ
ンを使用してすべてのパーティションをインポートするこ
とができます。
4.
選択した .qxp ファイルの内容を表示するには、Load Properties を
クリックします。表示されるプロパティには、Netlist Type、Entity
name、Device、およびパーティション・サイズとポートに関する
統計が含まれます。
5.
Advanced Import Settings をクリックし、適宜に選択を行い、サブ
デザインのアサインメントと領域をトップレベルのデザイン・パー
ティションに統合する方法を制御します。インポート中に、一部の
領域のサイズが変更されたり、わずかに移動する場合があります。
OK をクリックして、設定を適用します。
高度な設定について詳しくは、2–49 ページの「アサインメントおよ
び高度なインポート設定のインポート」を参照してください。
6.
インポートを開始するには、Import Design Partition ダイアログ・
ボックスで、OK をクリックします。指定した .qxp ファイルが、現
在のトップレベル・プロジェクトのデータベースにインポートされ
ます。
アサインメントおよび高度なインポート設定のインポート
サブデザイン・パーティションをトップレベル・デザインにインポート
する場合、デフォルトでは特定のアサインメントが設定され、サブデザ
インからトップレベル・デザインに関連するアサインメントがインポー
トされます。
インポート後のデザイン・パーティションのプロパティ
サブデザイン・パーティションをインポートするとき、インポート・プ
ロセスによりパーティションのネットリスト・タイプが Imported に設
定されます。
Altera Corporation
2008 年 5 月
2–49
Quartus II ハンドブック Volume 1
デザインをコンパイルし、配置配線結果に変更を加える場合は、以降の
コンパイルでネットリスト・タイプに Post-Fit (Import-based) を使用し
ます。インポートしたネットリストを廃棄し、ソース・コードからリコ
ンパイルするには、ネットリスト・タイプを Source File に設定してパー
ティションをコンパイルし、必ずトップレベル・プロジェクトに関連す
るソース・コードをインクルードします。
インポート・プロセスにより、パーティションの Fitter Preservation Level
が、インポートされたネットリストでサポートされる最高レベルの維持
に設定されます。例えば、フィッティング後のネットリストが配置情報
とともにインポートされる場合、レベルは Placement に設定されますが、
これを Netlist Only 値に変更できます。
Netlist Type と Fitter Preservation Level の設定について詳しくは、2–28
ページの「デザイン・パーティションの Netlist Type の設定」を参照し
てください。
サブデザイン内のデザイン・パーティション・アサインメント
のインポート
サブデザイン・プロジェクト内で定義されたデザイン・パーティション・
アサインメントは、トップレベル・プロジェクトにインポートされませ
ん。サブデザインのすべてのロジックは、1 つのパーティションとして
.qxp ファイルにインポートされます。
Quartus II TimeQuest タイミング・アナライザの Synopsys
Design Constraints ファイル
Synopsys Design Constraint(.sdc)ファイルの Quartus II TimeQuest タ
イミング・アナライザ用のタイミング・アサインメントは、トップレベ
ル・プロジェクトにインポートされません。トップレベル・プロジェク
トに、プロジェクト全体のタイミング要件がすべて含まれていることを
手動で確認します。
下位レベルの .sdc ファイルをトップレベル・プロジェクトにコピーする
場合、デザイン階層の変数により下位レベルの制約にプリフィックスを
付けることを検討してください。また、ファイルをトップレベル・デザ
インにコピーする場合は、トップレベル・デザインの下位レベル・パー
ティションに階層パスが提供されるように変数を設定できます。
LogicLock アサインメントのインポート
LogicLock 領域は、インポート時に固定サイズに設定されます。トップ
レベル・デザインでサブデザインの複数のインスタンスをインスタンス
化する場合、インポートされる LogicLock 領域は非固定位置に設定され
2–50
Altera Corporation
2008 年 5 月
ボトムアップ・デザイン・フローのためのパーティションのエクスポートとインポート
ます。それ以外の場合は、固定位置に設定されます。LogicLock 領域の
ロケーションはインポート後に変更できます。あるいは、非固定位置に
変更して、ソフトウェアが各領域を配置しても、可能な限り領域内のノー
ドの相対位置を維持可能なようにすることができます。コンパイル後に
パーティションに行った変更を維持するには、Netlist Type Post-Fit
(Import-Based) を使用します。
LogicLock Member State アサインメントは Locked に設定され、維持さ
れた領域であることを表します。
LogicLock バック・アノテーションおよびノード・ロケーションのデー
タは、Quartus II Exported Partition ファイルに関連するすべての配置情
報が含まれているためインポートされません。アルテラでは、インポー
トされた LogicLock 領域のメンバの追加や削除を行わないように強く推
奨しています。
その他のインスタンス・アサインメントのインポート
これまでに説明したように、デザイン・パーティション・アサインメン
ト、SDC 制約、および LogicLock アサインメントを除き、すべてのイン
スタンス・アサインメントがインポートされます。
グローバル・アサインメントのインポート
グローバル・アサインメントはインポートされません。プロジェクト・
リーダーは、トップレベル・デザインでグローバル・アサインメントを
行う必要があります。Quartus II クラシック・タイミング・アナライザ
のクロック設定はグローバル・アサインメントであり、インポートされ
ません。
高度なインポート設定
Advanced Import Settings ダイアログ・ボックスでは、アサインメント
と領域を統合する方法と、サブデザイン・パーティションをトップレベ
ル・デザインにインポートするときのアサインメントの衝突を解決する
方法のオプションを指定できます。これらのオプションについては、そ
れぞれ以下の項で説明しています。
Allow Creation of New Assignments
インポート・コマンドにより、インポートされたプロジェクトの新しい
アサインメントをトップレベル・プロジェクトに追加できます。
このオプションをオフにすると、既存のアサインメントはインポートさ
れますが、新しいアサインメントはインポートできません。
Altera Corporation
2008 年 5 月
2–51
Quartus II ハンドブック Volume 1
Promote Assignments to all Instances of the Imported Entity
サブデザインのエンティティ・レベルのアサインメントを変換し、トッ
プレベル・デザインのインスタンス・レベルのアサインメントにプロモー
トします。
Assignment Conflict Resolution: LogicLock 領域
以下のオプションのいずれかを選択して、衝突する LogicLock アサイン
メント(すなわち、トップレベル・アサインメントに一致しないサブデ
ザイン・アサインメント)を処理する方法を指定します。
■
■
■
Always replace regions in the current project(デフォルト)— 既存
の領域を削除し、新しいサブデザイン領域に置き換えます。アサイ
ンメントのインポート後に LogicLock 領域に行った変更もすべて削
除されます。
Always update regions in the current projects— 新しいサブデザイ
ンのアサインメントを反映して、既存の領域アサインメントを上書
きしますが、プロジェクト・リーダーがトップレベル・デザインで、
フロアプラン・ロケーション・アサインメントを行っている場合は、
LogicLock の原点は上書きから除外されます。
Skip conflicting regions— トップレベル・デザインに存在するアサ
インメントと衝突するサブデザイン・アサインメントを無視し、イ
ンポートしません。
アサインメント競合の解消:その他のアサインメント
以下のオプションのいずれかを選択して、他のタイプのアサインメント
との衝突(すなわち、サブデザイン・アサインメントがトップレベル・
アサインメントと一致しない)を処理する方法を指定します。
■
■
Always replace assignments in the current project(デフォルト)—
既存のインスタンス・アサインメントを新しいサブデザイン・アサ
インメントで上書きするか更新します。
Skip conflicting assingments— トップレベル・デザインに存在する
アサインメントと衝突するサブデザイン・アサインメントを無視し、
インポートしません。
プロジェクト管理のためのボトムアップ・デザイン・パー
ティションのスクリプトの生成
ボトムアップ・デザイン・パーティションのスクリプトは、トップレベ
ル・プロジェクト情報の下位レベル・モジュールへの転送プロセスを自
動化します。Quartus II ソフトウェアには、トップレベル・デザインで
リソースおよびタイミング・バジェットを管理するためのインタフェー
スが備わっています。このインタフェースを使用すると、下位レベル・
モジュールの設計者は、容易にプロジェクト・リーダーからの指示を実
装でき、またプロジェクトをトップレベル・デザインにインポートおよ
2–52
Altera Corporation
2008 年 5 月
ボトムアップ・デザイン・フローのためのパーティションのエクスポートとインポート
び組み込むときに、プロジェクト間の衝突を回避できるようになります。
これによって、統合後にデザインをさらに最適化する必要性が低減され、
設計者の生産性とチーム・コラボレーションが全体的に改善されます。
ボトムアップ・デザイン・パーティションのスクリプトの生成
は、ボトムアップ・デザイン手法ではオプションです。
これらのスクリプトを使用したデザイン・シナリオ例については、2–69
ページの「チーム・ベースのボトムアップ・デザイン・フローの実行」
を参照してください。通常のボトムアップ・デザイン・フローでは、プ
ロジェクト・リーダーはサブプロジェクトの統合を成功させるために、
以下のタスクの一部またはすべてを実行する必要があります。
■
■
■
■
どのアサインメントをトップレベルからボトムレベルに伝播するか
を手動で指定します。これには、下位レベル・プロジェクトのセッ
トアップに必要な Quartus II アサインメントに関して、詳細な知識
が必要になります。
トップレベル・アサインメントを下位レベル・プロジェクトに手動
で伝達します。これには、プロジェクトの制約を効率的に伝達する
ために、Tcl またはその他のスクリプト言語の詳細な知識が必要で
す。
ボトムアップ・デザインの制約の克服に役立つ、適切なタイミング・
アサインメントおよびロケーション・アサインメントを手動で指定
します。これには、下位レベルでロジックを調べ、適切なタイミン
グ制約を決定する作業が必要になります。
最終的なタイミング・クロージャとリソース衝突回避策をトップレ
ベルで実行します。下位レベルのプロジェクトには互いに関する情
報がないため、下位レベルで制約を満たしても、トップレベルでの
統合時に同じ制約が満たされる保証はありません。この場合、下位
レベルの実装に関する情報が入手できない場合でも、プロジェクト・
リーダーが責任を持って問題の解決にあたることになります。
Quartus II ソフトウェアを使用してトップレベルのデザインからボトム
アップ・デザイン・パーティションのスクリプトを生成すると、これら
のタスクが容易になり、プロジェクト・リーダーと下位レベルの設計者
の対話で誤りが発生する機会も減少します。パーティション・スクリプ
トがトップレベル・デザインで作成されたアサインメントに渡されると、
配置の手引きとなる新しいアサインメントがいくつか作成され、デザイ
ンが他のパーティションに接続されるプロセスを下位レベルの設計者が
確認するのを支援します。必要に応じて、特定のデザイン・パーティショ
ンを除外することができます。
デザイン・パーティションのスクリプトは、トップレベル・デザインの
コンパイルが成功した後で生成されます。Project メニューの Generate
Bottom-Up Design Partition Scripts をクリックします。デザインには下
Altera Corporation
2008 年 5 月
2–53
Quartus II ハンドブック Volume 1
位レベル・ブロックのプレースホルダとして、空のパーティションが含
まれている場合があり、フル・コンパイルの代わりに Early Timing
Estimation を実行して、コンパイル時間を短縮することができます。
以下の項で、ボトムアップ・デザイン・パーティションの Tcl スクリプ
ト に 含 め る こ と が で き る 情 報 に つ い て 説 明 し て い ま す。Generate
Bottom-Up Design Partition Scripts ダイアログ・ボックスのオプション
を使用して、下位に渡し、下位レベル・パーティションのプロジェクト
で作成するアサインメントのタイプを選択します。スクリプト生成プロ
セスを再実行するたびに、Quartus II ソフトウェアはファイルを再作成
して、古いバージョンを置き換えます。
ボトムアップ・パーティション・スクリプトの現在の制約については、
2–91 ページの「ボトムアップ・デザイン・パーティションのスクリプト
の制限」を参照してください。
プロジェクトの作成
パーティション・スクリプトに Create lower-level project if one does
not exist オプションを使用すると、必要に応じて下位レベル・プロジェ
クトを作成できます。下位レベルの各プロジェクトの Quartus II プロ
ジェクト・ファイルには、対応するデザイン・パーティションのエンティ
ティ名と同じ名前が付けられています。
このプロジェクト作成機能により、スクリプトは自ら動作して新しいプ
ロジェクトを作成したり、既存のプロジェクトでアサインメントを作成
するためのソースとして使用できます。
除外されるパーティション
ダイアログ・ボックス下部の Excluded partition(s) オプションを使用す
ると、Tcl スクリプト生成プロセスから特定のパーティションを除外でき
ます。ブラウズ・ボタンを使用して Select Partition(s) ダイアログ・ボッ
クスでパーティション名をハイライトし、適切なボタンを使用して該当
するパーティションを選択または選択解除します。
トップレベル・デザインからのアサインメント
デフォルトでは、トップレベルで行われたアサインメント(デフォルト・
アサインメントやプロジェクト情報アサインメントは含まない)は、ス
クリプトで適切な下位レベル・プロジェクトに渡されます。ソフトウェ
アはアサインメント変数を使用し、アサインメントが関係するロジカル・
パーティションを決定します。これには、グローバル・アサインメント、
インスタンス・アサインメント、エンティティ・レベルのアサインメン
トが含まれます。次に、ソフトウェアはアサインメントを変更し、トッ
2–54
Altera Corporation
2008 年 5 月
ボトムアップ・デザイン・フローのためのパーティションのエクスポートとインポート
プレベル・エンティティとしてターゲット・パーティションのロジック
を持つプロジェクトで、変更後のアサインメントが構文上有効になるよ
うにします。
特定のパーティションに適用されるデザイン・ファイルの名前が下位レ
ベルの各プロジェクトに追加されます。スクリプトでは、トップレベル・
プロジェクトで指定されたファイル名が使用されます。トップレベル・
プロジェクトで、下位レベル・プロジェクトのデザイン・ファイルとは
異なる名前のプレースフォルダ・ラッパー・ファイルが使用された場合、
必ず適切なファイルを下位レベル・プロジェクトに追加する必要があり
ます。
スクリプトはワイルドカード・アサインメントを正しく処理しますが、
使用するワイルドカードは 1 つのみとします。複数のワイルドカードを
使用したアサインメントは無視され、ワーニング・メッセージが発行さ
れます。
以下のオプションを使用して、下位レベル・プロジェクトに渡すアサイ
ンメントのタイプを指定します。
■
■
■
Altera Corporation
2008 年 5 月
Timing assignments— このオプションをオンにした場合、tCO、tSU、
fMAX の各制約を含め、下位レベル・プロジェクトのクラシック・タ
イミング・アナライザのすべてのグローバル・タイミング・アサイ
ンメントがスクリプトに含まれます。さらに、TimeQuest .sdc ファ
イルが下位レベル・プロジェクトに渡され、クロック制約と最小ま
たは最大遅延を提供します。このオプションで、内部パーティショ
ン接続のタイミング制約を含めることもできます。
Design partition assignments— このオプションをオンにすると、下
位レベル・プロジェクトのデザイン・パーティションに関連するス
クリプト・アサインメントと、LogicLock 領域に関連するアサイン
メントが含まれます。
Pin location assignments— このオプションをオンにすると、トップ
レベル・デザインのピンに接続される下位レベル・プロジェクト・
ポートのすべてのピン・ロケーション・アサインメントがスクリプ
トに含まれ、統合フェーズでのトップレベルの I/O の過剰使用を制
御し、配置を維持します。
2–55
Quartus II ハンドブック Volume 1
仮想ピン・アサインメント
When Create virtual pins at low-level ports connected to other design
units をオンにした場合、Quartus II ソフトウェアはパーティション・
ネットリストを検索し、パーティション間で依存性を持つすべてのポー
トを識別します。別のパーティションまたはトップレベル・プロジェク
トの内部ポートに関連付けられる下位レベル・プロジェクトの各ピンに
ついて、スクリプトは仮想ピン・アサインメントを生成し、より正確な
配置を維持します。これは仮想ピンがトップレベル・プロジェクトの I/O
ポートに直接接続されないためです。これらのピンは、トップレベル・
デザインに下位レベルのネットリストがインポートされると、このリス
トから削除されます。
仮想ピンのタイミングおよびロケーション・アサインメント
ボトムアップ・デザイン手法の大きな問題の 1 つは、個々のデザイン・
ブロックに他のデザイン・ブロックへの接続方法に関する情報が含まれ
ていないことです。仮想ピン・アサインメントを記述するオプションを
オンにした場合、これらの仮想ピンを制約するオプションをオンにし、
下位レベル・パーティションがトップレベルで統合された後にタイミン
グ性能を向上させることができます。
Place created virtual pins at location of at top-level source/sink をオン
にすると、スクリプトは作成された各仮想ピンに対するロケーション制
約をインクルードします。仮想出力ピンがトップレベル・プロジェクト
の接続先のロケーションに割り当てられ、仮想入力ピンがトップレベル・
プロジェクトの接続元のロケーションに割り当てられます。トップレベ
ル・デザインが空のパーティションを使用している場合、接続の最終的
な ロ ケ ー シ ョ ン は 不 明 で す が、ピ ン は 接 続 元 ま た は 接 続 先 を 含 む
LogicLock 領域に割り当てられたままです。
その結果、これらの仮想ピンは下位レベル・プロジェクトの LogicLock
領域内に配置されなくなりますが、トップレベル・デザインのそれぞれ
の位置に配置され、下位レベル・プロジェクトのリソース消費が排除さ
れ、下位レベル・プロジェクトとそのポート依存性に関するより多くの
情報が提供されます。これらのロケーション制約は、トップレベル・プ
ロジェクトにインポートされません。
Add maximum delay to/from created virtual pins または Add maximum
delay from created virtual output pins、あるいはこれらの両方をオンに
すると、作成された各仮想ピンのタイミング制約がスクリプトに含まれ
ます。ダイアログ・ボックスに入力する値は、仮想ピン間のすべてのパ
スに許容される最大遅延であり、完全なデザインのタイミング要件を満
足するのに役立ちます。制約を適用するために、INPUT_MAX_DELAY ア
サインメントまたは OUTPUT_MAX_DELAY アサインメントが使用されま
す。
2–56
Altera Corporation
2008 年 5 月
ボトムアップ・デザイン・フローのためのパーティションのエクスポートとインポート
このオプションにより、プロジェクト・リーダーはすべての下位レベル
の内部ピン接続に一般的なタイミング・バジェットを指定できます。下
位レベルの設計者は、必要に応じて特定のピンにノード・レベルのアサ
インメントを個別に適用して、上記の制約を上書きできます。
LogicLock 領域アサインメント
Copy LogicLock region assignments from top-level をオンにした場合、
スクリプトには、パーティションの LogicLock アサインメントを識別す
るアサインメントが含まれます。
スクリプトはまた、他のすべてのパーティションに LogicLock 領域を作
成するアサインメントを渡すこともできます。Include all LogicLock
regions in lower-level projects をオンにした場合、各パーティションの
スクリプトには、トップレベル・プロジェクトと下位レベルの各パーティ
ションのすべての LogicLock 領域アサインメントが含まれ、各パーティ
ションでの完全なデザインのフロアプランを明示します。他のパーティ
ションに属しない領域には、パーティション間接続の接続元と接続先の
ポートを表す仮想ピンが含まれます。これによって、各設計者はトップ
レベルのデザインで、各設計者のパーティションと他のパーティション
の接続性をより簡単に確認できるようになるため、トップレベルでのリ
ソース衝突を最小限に抑えるのに役立ちます。
Remove existing LogicLock regions from lower-level projects をオンに
した場合、スクリプトにはスクリプトの実行前に下位レベルのプロジェ
クトで定義された LogicLock 領域を削除するコマンドが含まれます。こ
れにより、トップレベル・プロジェクトに含まれない LogicLock 領域が
完全なデザインの一部になることはなく、下位レベルのデザインにトッ
プレベルで指定された LogicLock 領域を使用させるようにして、ロケー
ションの衝突を回避します。
グローバル信号プロモーション・アサインメント
プロジェクトをトップレベル・デザインにインポートするときに、グロー
バル信号の使用が衝突しないように、信号を下位レベル・パーティショ
ンのグローバル配線リソースにプロモートする方法を制御するアサイン
メントを記述するよう選択できます。これらのオプションは、グローバ
ル配線リソースのリソース・バランシングに役立つ場合があります。
Promote top-level global signals in lower-level projects をオンにした場
合、Quartus II ソフトウェアはパーティション・ネットリストを検索し、
クロック信号を含むグローバル・リソースを識別します。次にスクリプ
トには、関連するパーティションについてのグローバル信号プロモー
ション・アサインメントがインクルードされ、グローバル・リソース割
り当てに関する情報が下位レベルのプロジェクトに提供されます。
Altera Corporation
2008 年 5 月
2–57
Quartus II ハンドブック Volume 1
Disable automatic global promotion in lower-level projects をオンにし
た場合、スクリプトには下位レベル・プロジェクトのすべての自動グロー
バル・プロモーション設定オフにするアサインメントが含まれます。こ
れらの設定には、Auto Global Memory Control Signals ロジック・オプ
ション、出力イネーブル・ロジック・オプション、クロックおよびレジ
スタ・コントロール・プロモーションが含まれます。Promote top-level
global signals in lower-level projects オプションと同時に Disable
automatic global promotion in lower-level projects オプションを選択し
た場合、トップレベルのグローバル・リソースにプロモートされた信号
のみが下位レベル・プロジェクトでプロモートされます。
makefile の生成
makefile を生成した場合、コンピュータに make ユーティリティをイン
ストールしていれば、make コマンドによりボトムアップ・プロジェク
ト を 最 新 の 状 態 に 維 持 できます。 Generate makefiles to maintain
lower-level and top-level projects オプションを選択した場合、トップ
レベル・デザインの各デザイン・パーティションに makefile が作成さ
れ、さらに下位レベル・プロジェクトの makefile を実行できるマスター
makefile も作成されます。Quartus II ソフトウェアは、マスターmakefile
をトップレベル・ディレクトリに配置し、パーティション makefile を下
位レベル・プロジェクトの対応するディレクトリに配置します。
makefile で依存性を指定して、どのソース・ファイルをどのパーティ
ションに関連付けるか指定する必要があります。makefile は、Create
lower-level project if one does not exist オプションを使用して生成され
たディレクトリ・ロケーションを使用します。このオプションを使用し
ないで下位レベル・プロジェクトを作成している場合、makefile の先頭
の変数を変更して、下位レベルの各プロジェクトのディレクトリ・ロケー
ションを指定する必要があります。
makefile を実行するには、スクリプト出力ディレクトリの make -f
master_makefile.mak などのコマンドを使用します。マスター makefile
はまず下位レベルの各 makefile を実行します。
下位レベルの makefile は
その Tcl スクリプトに基づき、デザイン・パーティションとしてプロジェ
クトをエクスポートするQuartus II Exported Partitionファイルを生成し
ます。次に、新しく生成されたこれらの .qxp ファイルを、トップレベ
ル・プロジェクトで対応するパーティションのインポート・ファイルと
して指定するトップレベルの makefile を実行します。トップレベルの
makefile は次に、下位レベルの結果をインポートし、フル・コンパイル
を実行して最終的なデザインを作成します。
2–58
Altera Corporation
2008 年 5 月
ボトムアップ・デザイン・フローのためのパーティションのエクスポートとインポート
特定のパーティションをコンパイルから除外するには、ファイルの指示
に従って、master_makefile.mak の EXCLUDE_FLAGS セクションを編集
し、適切なオプションを指定します。また一部のパーティションの構築、
エクスポート、インポートを make コマンドを使用して禁止することも
可能です。パーティションを除外するには、以下の例に示す GNU の
make ユーティリティのようなコマンドを使用して、makefile を実行し
ます。
gnumake –f master_makefile.mak exclude_<partition directory>=1 ↵ r
このコマンドは、<partition directory> に出力ファイルがあるパーティ
ションを構築しないように指示します。複数の exclude_<partition
directory> コマンドを追加することによって、複数のディレクトリを除外
できます。コマンドライン・オプションは、makefile のどのオプション
よりも優先されます。
makefile のもう 1 つの特長として、複数のプロセッサを備えたシステム
で、マスター makefile に複数の下位レベル makefile を呼び出させる機
能があります。このオプションは、設計者が複数の CPU を使用する際
に役立ち、コンパイル時間を大幅に短縮できます。GNU の make ユー
ティリティの場合、make コマンドに -j<N> フラグを追加します。値
<N> はビルドの実行に使用できるプロセッサの数です。
makefile には、メイク・クリーン・オプションが含まれないた
め、make を再度実行して、.qxp ファイルが既に存在する場合
は、デザインをリコンパイルすることができます。
Altera Corporation
2008 年 5 月
2–59
Quartus II ハンドブック Volume 1
パーティション
統計
レポート
デザイン・パーティションに関する統計は、Partition Merge Partition
Statistics コンパイル・レポートと、Design Partitions Properties ダイア
ログ・ボックスの Statistics タブで確認できます。
Compilation ReportのPartition Merge フォルダ内のPartition Statistics
ページに、各パーティションに関する統計がリストされます。各パーティ
ション(テーブル内の各ロウ)の統計には、パーティション内のロジッ
ク・セルの数、およびパーティション内の入力ピンと出力ピンの数、お
よび登録数または未接続数が示されます。このレポートが役に立つのは、
デザイン・パーティションをトップダウン・コンパイル・フローで最適
化するとき、またはパーティションが 2–19 ページの「デザイン・パー
ティションの選択および作成」および「Quartus II ハンドブック Volume
1」の 「Best Practices for Incremental Compilation Partitions and
Floorplan Assignments」の章に示すガイドラインに確実に従うように、
ボトムアップ・コンパイル・フローでトップレベルのデザインをコンパ
イルする場合です。図 2–10 に、レポート・ウィンドウを示します。
図 2–10. Partition Merge パーティション統計レポート
特定のパーティションのリソースとポート接続に関する統計は、Design
Partition Properties ダイアログ・ボックスの Statistics タブでも確認で
きます。Assignments メニューの Design Partitions Window をクリッ
クします。パーティションを右クリックし、Properties をクリックして、
ダイアログ・ボックスを開きます。Show All Partitions をクリックし、
同じレポート内のすべてのパーティションを表示します(図 2–11)。
2–60
Altera Corporation
2008 年 5 月
Incremental Compilation Advisor
図 2–11. Design Partitions Properties ダイアログ・ボックスの
Statistics タブ
Incremental
Compilation
Advisor
Incremental Compilation Advisor を使用して、デザイン・パーティショ
ンおよびフロアプラン・ロケーション・アサインメントを作成するため
に、アルテラの推奨事項にデザインが準拠しているかどうかチェックで
き ま す。Tools メ ニ ューの Advisors をポイントし、Incremental
Compilation Advisor をクリックします。
図 2–12 に示すように、推奨事項はすべてのコンパイル・フローに適用さ
れる General Recommendations と、ボトムアップ・デザイン手法に適
用される Bottom-Up Design Recommendations に分かれています。各
推奨事項では、推奨事項の影響を説明し、推奨される変更を行うために
必要な処置を示しています。一部のケースでは、適切な Quartus II 設定
ページへのリンクがあるため、アサインメントまたは設定に対して推奨
される変更を行うことができます。
Altera Corporation
2008 年 5 月
2–61
Quartus II ハンドブック Volume 1
図 2–12. Incremental Compilation Advisor
デザインが推奨事項に従っているかどうかをチェックするには、Timing
Independent Recommendations ページまたは Timing Dependent
Recommendations ページに移動し、Check Recommendations をクリッ
クします。大きなデザインの場合、これらの操作に数分かかる場合があ
ります。チェックを実行すると、図 2–12 に示すとおり、各推奨事項の横
にデザインまたはプロジェクト設定が推奨事項に従っていることを示す
シンボルか、あるいは一部またはすべてのデザインまたはプロジェクト
設定が推奨事項に従っていないことを示すシンボルが表示されます。詳
細は、アドバイザの How to use the Incremental Compilation Advisor
ページのキャプションを参照してください。
アドバイザの一部の項目について、デザインが推奨事項に従っていない
場合、Check Recommendations によってデザインで改善可能な部分が
リストされます。例えば、Register All Ports 推奨事項に従っていない
パーティション I/O ポートがある場合は、アドバイザに未登録のポート
のリストがパーティション名および当該ポートに関連するノード名と共
に表示されます。
アドバイザからノードのリストが提供されると、ノードを右クリックし、
Locate をクリックして、RTL Viewer、Chip Planner、またはテキスト・
エディタでのデザイン・ソース・コードなど、Quartus II の他の機能へ
のクロス・プローブが可能です。
2–62
Altera Corporation
2008 年 5 月
推奨されるデザイン・フローおよびコンパイルのアプリケーション例
RTL または Technology Map Viewer を初めて開いたときは、プ
リプロセッサ・ステージが実行されます。このプリプロセッサ
は、Incremental Compilation Advisor を リ セ ッ ト す る の で、
Check Recommendations プロセスを再実行する必要がありま
す。あるいは、ビューワでノードを検索したい場合は、適当な
ネットリスト・ビューワを開いてから Incremental Compilation
Advisor を使用することもできます。また、新しい TimeQuest
レポートを開くと、Incremental Compilation Advisor の結果が
リセットされます。
推奨される
デザイン・
フローおよび
コンパイルの
アプリケーション
例
この項では、インクメンタル・コンパイルを使用して、タイミング・ク
ロージャおよびチーム・ベース・デザインの一般的な問題を解決するた
めのデザイン・フローを示します。各フローで、それを使用する状況を
例示し、フローを実装するのに必要なコマンドをステップごとに説明し
ます。
以下の 4 つのトップダウン・インクリメンタル・デザイン・フローの例
では、デザインにインクリメンタル変更を行いながら、コンパイル時間
を短縮します。以下のデザイン・フローの例では、いくつかのデザイン・
パーティションに対する結果を最適化または維持することによって、タ
イミング・クロージャをより迅速に達成することもできます。
■ 「1 つのパーティションに対するソース・ファイル変更時のコンパイ
■
■
■
ル時間の短縮」
2–65 ページの「他のパーティションを追加する前に一部のパーティ
ションの結果を維持する」
2–67 ページの「タイミング・クリティカルなパーティションの配置
を最適化する」
2–67 ページの「タイミング・クリティカルなパーティションの配置
を最適化する」
すべての例は、ユーザーが 2–11 ページの「クイック・スタート・ガイド
— インクリメンタル・コンパイル・フローのステップの概要」で説明し
たステップに従って、フル・インクリメンタル・コンパイル・フローを
使用するプロジェクトをセットアップしているものと想定しています。
以下の 4 つのボトムアップ・デザイン・フローの例では、チーム・ベー
スのデザイン手法およびデザインの再利用について説明します。
■
■
■
Altera Corporation
2008 年 5 月
2–69 ページの「チーム・ベースのボトムアップ・デザイン・フロー
の実行」
2–74 ページの「ボトムアップ・デザイン・フローでのデザインのイ
タレーションの実行」
2–75ページの「IP再利用のためのハード・ワイヤード・マクロの作成」
2–63
Quartus II ハンドブック Volume 1
■
2–78 ページの「エクスポートされたパーティションを使用したソー
ス・ファイルをインクルードしないデザインの送信」
1 つのパーティションに対するソース・ファイル変更時のコン
パイル時間の短縮
このフローを使用して、デザインの他の部分をリコンパイルすることな
く、1 つのパーティションのソース・ファイルを更新します。コンパイ
ル時間を短縮するには、変更されていないパーティションに対する
フィッティング後のネットリストを維持します。これにより、当該ブロッ
クの性能も維持され、余分なタイミング・クロージャ作業が軽減されま
す。
例のバックグランド:複数パーティションを含むデザインについて、長
く完全なコンパイルを実行しました。あるパーティションの HDL ソー
ス・ファイルにエラーが見つかり、修正されています。現在デザインは
タイミング要件を満たし、修正がタイミング性能に影響するとは予測さ
れないため、影響を受けたパーティションのみコンパイルし、デザイン
の残りのパーティションを維持することが理にかなっています。
以下のステップを実行し、1 つのソース・ファイルを更新します。
2–64
1.
HDL ソース・ファイルを修正し、保存します。
2.
Assignments メニューの Design Partitions Window をクリックし
ます。
3.
維持するパーティションについては、Netlist Type を Post-Fit に変
更します。Fitter Preservation Level は Placement か Placement and
Routing に設定できます。修正を含めるパーティションについては、
ネットリスト・タイプを Source File に変更できます。
(ソース・ファ
イルで変更が検出された場合、Quartus II ソフトウェアはパーティ
ションをリコンパイルするため、Source File の設定はオプションで
す。)
4.
Start Compilation をクリックして、修正済み HDL コードをインク
リメンタルにコンパイルします。このコンパイルに要する時間は、
最初のフル・コンパイルよりもかなり短くなります。
5.
シミュレーションを再実行し、バグが修正されたか確認し、タイミ
ング・アナライザ・レポートでタイミング結果が悪化していないこ
とを確認します。
Altera Corporation
2008 年 5 月
推奨されるデザイン・フローおよびコンパイルのアプリケーション例
他のパーティションを追加する前に一部のパーティションの結
果を維持する
このフローを以下の 2 つのバリエーションで使用します。
■
■
分離されている 1 つのパーティション・セットを最適化し、ユーザー
がデザインの残りの部分を完成させる間、配置を固定して結果を維
持します。例えば、カスタム・ロジックの残りを組み込む前に最適
化を実行する命令と併せて、いくつかの IP のパーティションを作成
することができます。
長いコンパイル時間を必要とするパーティションを含まないデザイ
ンをコンパイルし、最終的なデザイン・ブロックを追加するときに
デザインの残りの部分をロック・ダウンします。
例のバックグランド:コンパイル前に、配置配線の実行後にどのパーティ
ションが最もタイミング・クリティカルになるか、あるいはどのパーティ
ションがコンパイルに長い時間を要するかをある程度予想していまし
た。コンパイル時間を短縮し、タイミング・クロージャを達成するため
に、以下のコンパイル・フローの 1 つを使用することにしました。
最初の検証では、すべての最適化をオンにすると(手動またはデザイン・
スペース・エクスプローラを使用)、クリティカル・パーティションは自
動的に配置配線されます。このパーティションに対してタイミング・ク
ロージャが達成された後、その内容と配置が維持され、残りのパーティ
ションはコンパイル時間を短縮できるように、通常または低い最適化レ
ベルでフィッティングされます。
2 番目の検証では、高速コンパイル・パーティションのみ最初に通常ま
たは低い最適化レベルで配置配線され、フロアプラン・ロケーション・
アサインメントを使用して、将来追加するパーティションのフロアプラ
ンにスペースを確保します。これらの高速コンパイル用パーティション
が確保されるため、最後のパーティションが Fitter に導入されるときに、
さまざまな最適化をオンにして(手動またはデザイン・スペース・エク
スプローラを使用)リコンパイルする必要はありません。
一般に、このフローは各クリティカル・パスが 1 つのパーティ
ション内に含まれている場合にのみ効果があります。これが各
パーティションの入力と出力の両方を登録しなければならない
理由です。
このデザイン・フローでは、以下のステップを実行します。
1.
Altera Corporation
2008 年 5 月
デザインを分割して、フロアプラン・ロケーション・アサインメン
トを作成します。
2–65
Quartus II ハンドブック Volume 1
2.
最初にコンパイルされるパーティションについては、Assignments
メニューの Design Partitions Window をクリックし、Netlist Type
を Source File に設定します。
3.
残りのパーティションについては(ステップ 2 のパーティションの
直接または間接的な親を除く)、Netlist Type を Empty に設定しま
す。
4.
希望の最適化を有効にしてコンパイルするには、Start Compilation
をクリックします。
5.
タイミング・アナライザ・レポートをチェックし、タイミング要件
を満たしていることを確認します。要件を満たしている場合は、ス
テップ 6 に進みます。それ以外の場合は、要件を満たすまで、ステッ
プ 4 と 5 を繰り返します。
6.
最初のパーティションについては、Design Partition Window で、
Netlist Type を Post-Fit に設定します。タイミング・クリティカル
な ブ ロ ッ ク の 結 果 を 維 持 す る の に 必 要 な 場 合 に 限 り、Fitter
Preservation Level を Placement and Routing に設定し、それ以外
の場合は、Placement を使用して最も柔軟な配線を可能にします。
7.
残りのパーティションについては、Netlist TypeをEmptyからSource
File に変更します。
8.
適切な最適化のレベルを設定し、デザインをコンパイルします。こ
の時点で最適化を変更しても、フィッティングされたパーティショ
ンに影響しません。これはそれぞれの Netlist Type が Post-Fit に設
定されているためです。
9.
タイミング・アナライザ・レポートをチェックし、タイミング要件
を満たしていることを確認します。満たしていない場合は、デザイ
ンまたはオプションを変更し、要件を満たすまでステップ8とステッ
プ 9 を繰り返します。
このフローは、モジュールが個別に実装され、後でデザイ
ンの残りにマージされるボトムアップ・デザイン・フロー
に類似しています。潜在的な問題について詳しくは、2–34
ページの「Empty パーティション」を参照してください。
プロジェクトに欠けているデザイン・ファイルを表すパー
ティションが存在する場合は、ポート・インタフェースを
定義するプレースホルダ・ラッパーを作成しているか確認
します。
2–66
Altera Corporation
2008 年 5 月
推奨されるデザイン・フローおよびコンパイルのアプリケーション例
タイミング・クリティカルなパーティションの配置を最適化する
デザインの他のパーティションが要件を満たしているとき、1 つのパー
ティションの結果を最適化する場合に、このフローを使用します。
例のバックグランド:複数パーティションを含むデザインについて、長
いフル・コンパイルを実行しました。タイミング・アナライザは、クロッ
ク・タイミング要件を満たしていないとレポートしています。いくつか
の解析の後、特定のパーティションの配置を改善できれば、タイミング・
クロージャを達成できると判断しました。少なくとも 3 つの最適化技法、
すなわち Placement Effort Multiplier の立ち上げ、フィジカル・シンセ
シスの有効化、およびデザイン・スペース・エクスプローラの実行を考
慮に入れています。これらの技法はすべて長いコンパイル時間を要する
ため、該当するパーティションにのみ(あるいは、そのうち 1 つにのみ)
適用するのが適切です。
以下のステップを実行して、Placement Effort Multiplier を立てるか、
フィジカル・シンセシスを有効にします。
1.
Assignments メニューの Design Partitions Window をクリックし
ます。
2.
当該パーティションに対して、Netlist Type を Post-Synthesis に設
定します。この設定により、次のコンパイル時にパーティションは
新しい Fitter 設定で配置配線されます(再合成は行われません)。
3. (トップレベル・エンティティを含む)残りのパーティションでは、
Netlist Type を Post-Fit に設定します。Fitter Preservation Level を
Placement に設定し、最も柔軟な配線を可能にします。これらのパー
ティションは、次のコンパイル中も維持されます。
4.
必要な最適化設定を適用します。
5.
Start Compilation をクリックし、新しい設定でデザインをインクリ
メンタルにコンパイルします。このコンパイル中に、Partition Merge
ステージではクリティカル・パーティションの合成後のネットリス
トが、残りのパーティションのフィッティング後のネットリストに
自動的にマージされます。この “ マージされた ” ネットリストは、
Fitter に送られます。Fitter は 1 つのパーティションのみ再フィッ
ティングします。最初のフル・コンパイルと比べて少ない作業で済
むため、コンパイル時間も短縮されます。
デザイン・スペース・エクスプローラを使用するには、以下のステップ
に従います。
1.
Altera Corporation
2008 年 5 月
前回のステップ 1–3 を繰り返します。
2–67
Quartus II ハンドブック Volume 1
2.
プロジェクトを保存し、デザイン・スペース・エクスプローラを実
行します。
SignalTapII ロジック・アナライザによるインクリメンタル・デ
バッグ
インクリメンタル・コンパイルでは、オリジナル・デザインの合成およ
びフィッティングの結果を保持し、オリジナル・ソース・コードをリコ
ンパイルすることなく、デザインに SignalTap® II ロジック・アナライザ
を追加することができます。
ロジック・アナライザを追加してデザインをデバッグする場合、または
ロジック・デザインやその配置を修正することなく、SignalTap II ファ
イルのコンフィギュレーションを修正する場合は、このフローでコンパ
イル時間を短縮することができます。
SignalTap II インクリメンタル・コンパイル機能を使用するために、デ
ザイン・パーティションを作成する必要はありません。デザインがフル・
インクリメンタル・コンパイルを使用するように設定されているとき、
SignalTap II ロジック・アナライザは独自の個別デザイン・パーティショ
ンとして機能します。
インクリメンタル・コンパイル・フローで SignalTap II ロジック・アナ
ライザを使用するには、以下のステップを実行します。
1.
Assignments メニューの Design Partitions Window をクリックし
ます。
2.
この配置を維持するすべてのパーティションでは、Netlist Type を
Post-Fit に設定します。
トップレベル・パーティションのネットリスト・タイプは、
デフォルトで Source File になるため、作成したデザイン・
パーティションのほかに、このトップ・パーティションも
必ず変更してください。
3.
2–68
まだ現在のパーティション・セットでデザインをコンパイルしてい
ない場合は、フル・コンパイルを実行します。デザインがすでに現
在のパーティション・セットでコンパイルされている場合、そのデ
ザインは SignalTap II ロジック・アナライザに追加できる状態になっ
ています。
Altera Corporation
2008 年 5 月
推奨されるデザイン・フローおよびコンパイルのアプリケーション例
4.
Node Finder の SignalTap II: post-fitting フィルタを使用して、
SignalTap II ファイルを設定します。これにより、Fitter はデザイン
の結果を変更することなく、SignalTap II ロジックをフィッティン
グ後ネットリストに追加できます。
5.
合成前ネットリストからの信号を追加するには、パーティションの
Netlist Type を Source File に設定し、Node Finder の SignalTap II:
pre-synthesis フィルタを使用します。これにより、ソフトウェアは
パーティションを再合成し、選択した合成前のノード名に直接タッ
プすることができます。この場合、パーティションが再フィッティ
ングされるため、配置は一般に以前のフィッティング結果とは異な
ります。
SignalTap II ロジック・アナライザでは、ネットリスト・タイ
プ Post-Synthesis を使用しないでください。
SignalTap II ロジック・アナライザの設定について詳しくは、
「Quartus II
ハンドブック Volume 3」の「SignalTap II エンベデッド・ロジック・ア
ナライザを使用したデザインのデバッグ」の章を参照してください。
チーム・ベースのボトムアップ・デザイン・フローの実行
この例では、ボトムアップ・デザイン・フローでインクリメンタル・コ
ンパイルを使用する方法について説明します。
例のバックグランド:プロジェクトは、異なる設計者が別々に実装する
複数の下位レベル・サブデザインから構成されます。トップレベルのプ
ロジェクトは、これらのサブデザインをそれぞれ 1 回だけインスタンス
化します。サブデザインの設計者は、それぞれのデザインを独立して最
適化し、結果をプロジェクト・リーダーに渡したいと希望しています。
このシナリオのプロジェクト・リーダーは、以下のステップを実行して、
ボトムアップ・デザイン手法を成功させるためにデザインを準備します。
Altera Corporation
2008 年 5 月
1.
最終的に、デザイン全体の完全な実装を含む新しい Quartus II プロ
ジェクトを作成します。
2.
ボトムアップ手法のために準備するには、別々の設計者が実装する
サブデザインに対して階層を定義するデザインの“スケルトン”を作
成します。トップレベルのデザインは、デザインにトップレベル・
エンティティを実装し、実装ではなくポート・インタフェースのみ
を定義することによって、各サブデザインを表すラッパー・ファイ
ルをインスタンス化します。
2–69
Quartus II ハンドブック Volume 1
3.
プロジェクト全体の設定を行います。デバイスを選択し、クロック
とデバイス I/O ポートにグローバル・アサインメントを作成し、グ
ローバル信号の制約を作成して、グローバル配線リソースを使用で
きる信号を指定します。
4.
各サブデザインにデザイン・パーティション・アサインメントを作
成し、Design Partitions ウィンドウで、インポートされる各デザイ
ン・パーティションの Netlist Type を Empty に設定します。
5.
下位レベルの各パーティションに LogicLock 領域を作成し、デザイ
ン・フロアプランを作成します。このフロアプランは、パーティショ
ン間の接続性を考慮し、最初の実装数とデザイン仕様の知識に基づ
いて、各パーティションのサイズを見積もります。
6.
Project メニューの Generate Bottom-Up Design Partition Scripts を
クリックするか、Tcl またはコマンド・プロンプトからスクリプト・
ジェネレータを起動します。
7.
必要に応じて、デフォルトのスクリプト・オプションに変更を加え
ます。アルテラでは、すべてのパーティションおよび仮想ピン・ロ
ケーション・アサインメントについて、LogicLock 領域を含むすべ
てのデフォルト制約を渡すことを推奨しています。さらにアルテラ
では、各パーティションに仮想 I/O 接続用の最大遅延タイミング制
約を追加し、トップレベルでの統合中のタイミング・クロージャの
達成を支援することを推奨しています。他の設計者がより下位レベ
ルのプロジェクトを作成していない場合は、パーティション・スク
リプトを使用してプロジェクトをセットアップし、makefile を簡単
に活用できるようにします。
8.
下位レベルのすべての設計者に、適切な制約でプロジェクトを作成
するための Tcl ファイルを配布します。makefile を使用している場
合、各パーティションに makefile を提供します。
この例の下位レベル・サブデザインの設計者は、デザイン・チームで
makefile を使用しているかどうか、あるいはデザインを手動でエクス
ポートおよびインポートしているかどうかに関わらず、適切なステップ
を実行してデザインを正しくエクスポートする必要があります。
2–70
Altera Corporation
2008 年 5 月
推奨されるデザイン・フローおよびコンパイルのアプリケーション例
makefile を使用している場合は、以下のステップに従います。
1.
make コマンドおよびプロジェクト・リーダーが提供する makefile
を使用して、すべてのデザイン制約を考慮した Quartus II プロジェ
クトを作成し、プロジェクトをコンパイルします。
2.
どのソース・ファイルをどのパーティションに関連付けるかに関す
る情報が、自動的にソフトウェアに通知されないため、makefile で
この情報を指定する必要があります。makefile の最初の呼び出しの
後、ソフトウェアがプロジェクトを再構築する前に、依存性を指定
する必要があります。
3.
希望のコンパイル結果を達成し、デザインをトップレベル・デザイ
ンにインポートする準備が整ったら、プロジェクト・リーダーは
master_makefile コマンドを使用して、この下位レベル・パーティ
ションをエクスポートし、.qxp ファイルを作成して、これをトップ
レベル・デザインにインポートします。
makefile を使用していない場合は、以下のステップに従います。
Altera Corporation
2008 年 5 月
1.
Quartus II サブデザイン用の新しいプロジェクトを作成します。
2.
プロジェクト・リーダーの指定に従って、LogicLock 領域アサイン
メントとグローバル・アサインメント(クロック設定を含む)を作
成します。
3.
トップレベル・モジュールの外部デバイス・ピンの代わりに、コア・
ロジックへの接続を表すポートに、仮想ピン・アサインメントを作
成します。
4.
仮想ピンへのフロアプラン・ロケーション・アサインメントを作成
し、トップレベル・モジュールでの決定に従って、これらのピンが
対応する領域に配置されるようにします。これによって、Fitter に
より多くのモジュール間のタイミング制約に関する情報が提供され
ます。あるいは、タイミング I/O 制約を仮想ピンに接続されるパス
に適用することができます。
5.
必要に応じてデザインのコンパイルと最適化に進みます。
6.
希望のコンパイル結果を達成したら、Project メニューの Export
Design Partition をクリックします。Export Design Partition ダイ
アログ・ボックスが表示されます。
2–71
Quartus II ハンドブック Volume 1
7.
Netlist to export で、ネットリスト・タイプ Post-fit netlist を選択
し、サブデザインの配置と性能を維持して、Export routing をオン
にし、必要に応じて配線情報をインクルードします。配置または性
能の維持が要求されない場合は、代わりに Post-Synthesis ネットリ
ストをエクスポートできます。
8.
プロジェクト・リーダーに .qxp ファイルを提供します。
最後に、この例のプロジェクト・リーダーとして、適切なステップを実
行し、下位レベル・サブデザインの各パーティションの設計者が送信し
たファイルをインポートします。
makefile を使用している場合は、以下のステップに従います。
1.
master_makefile コマンドを使用して、下位レベルの各パーティ
ションをエクスポートし、.qxp ファイルを作成し、これらをトップ
レベル・デザインにインポートします。
2.
どのソース・ファイルをどのパーティションに関連付けるかに関す
るすべての情報がソフトウェアで得られない場合は、makefile にこ
の情報を指定する必要があります。依存性を指定していないと、
ソー
ス・ファイルが変更された場合にソフトウェアはプロジェクトを再
構築できません。
makefile を使用していない場合は、以下のステップに従います。
1.
チームの他の設計者から、各サブデザインの .qxp ファイルを取得し
た後、Project メニューで Import Design Partition をクリックして、
サブデザインの .qxp ファイルで表されるトップレベル・プロジェク
ト内のパーティションを指定します。
2.
デザインの各パーティションに対して、ステップ 1 で説明したイン
ポート・プロセスを繰り返します。各パーティションを 1 回だけイ
ンポートした後、すべてのデザイン・パーティションを選択し、
Reimport using latest import files at previous locationsオプション
を使用して、すべてのファイルを前回の位置から一度にインポート
します。
インポート時のアサインメント衝突の解決
サブデザインをインポートする場合、プロジェクト・リーダーはアサイ
ンメントの衝突に気付くことがあります。これはサブデザインの設計者
がそれぞれの LogicLock 領域を変更し、ロジックまたは配置の追加制約
を明らかにする場合、または設計者がプロジェクト・リーダーによって
トップレベル・プロジェクトに追加された制約とは異なる I/O ポート・
2–72
Altera Corporation
2008 年 5 月
推奨されるデザイン・フローおよびコンパイルのアプリケーション例
タイミング制約を適用した場合に発生する可能性があります。このよう
な衝突に対処するために、プロジェクト・リーダーは以下のいずれかま
たは両方を行うことができます。
■
■
新しいアサインメントのインポートを可能にする。
既存のアサインメントの再配置または更新を許可する。
LogicLock 領域のアサインメント衝突が発生した場合、プロジェクト・
リーダーは以下のいずれかを実行できます。
■
■
■
インポートされた領域で、既存の領域を再配置できるようにする。
インポートされた領域で、既存の領域を更新できるようにする。
衝突の発生した領域では、アサインメントのインポートをスキップ
します。
プロジェクト・リーダーは、2–49 ページの「アサインメントおよび高度
なインポート設定のインポート」の説明に従って、Advanced Import
Settings を使用してこれらのすべての状況に対処できます。
異なるサブデザインの配置が衝突する場合、プロジェクト・リーダーは
パーティションの Fitter Preservation Level を Netlist Only に設定でき
ます。これによってソフトウェアは、インポートされたネットリストを
使用して、配置配線を再実行できます。
複数回インスタンス化されるパーティションのインポート
このバリエーションのシナリオでは、サブデザインの 1 つがトップレベ
ル・デザインで 2 回以上インスタンス化されます。サブデザインの設計
者は、下位レベル・プロジェクトでエンティティを一度コンパイルおよ
び最適化し、次にトップレベル・プロジェクトで複数のパーティション
として結果をインポートできます。
この場合、2–72 ページの「インポート時のアサインメント衝突の解決」
で説明するような配置衝突の解決が必須になります。これはトップレベ
ル・パーティションがインポートされた同じフィッティング後のネット
リストを共有するためです。トップレベル・デザインでサブデザインの
複 数 の イ ン ス タ ン ス を イ ン ポ ー ト す る 場 合、イ ン ポ ー ト さ れ る
LogicLock 領域は自動的に非固定ステータスに設定されます。
手動で衝突を解決する場合、インポート・オプションと手動による
LogicLock アサインメントを使用して、トップレベル・デザインの各イ
ンスタンスの配置を指定することができます。
Altera Corporation
2008 年 5 月
2–73
Quartus II ハンドブック Volume 1
ボトムアップ・デザイン・フローでのデザインのイタレーショ
ンの実行
ボトムアップ・コンパイルで、統合されたトップレベル・デザインから
の追加制約を取り込んで、下位レベルのパーティションの最適化を再実
行する場合は、このフローを使用します。
例のバックグランド:プロジェクトは、個別の Quartus II プロジェクト
からエクスポートされ、ボトムアップ・コンパイル・フローのトップレ
ベル・デザインにインポートされた複数の下位レベル・サブデザインか
ら構成されています。この例では、タイミング要件を満たしていないた
め、トップベルでの統合は失敗しています。タイミング要件は下位レベ
ルの個々のプロジェクトでは満たされていますが、トップレベルのクリ
ティカル・パーティション間パスによりタイミング要件に適合しなく
なっています。
トップレベルで様々な最適化を試みた後、プロジェクト・リーダーはイ
ンポートされた現在の下位レベルのパーティション配置では、デザイン
がタイミング要件を満たすことができないと判断しています。プロジェ
クト・リーダーは、下位レベル・プロジェクトに追加制約を渡し、配置
を改善することにしました。
このデザイン・フローでは、以下のステップを実行します。
1.
トップレベル・デザインの Project メニューで、Generate BottomUp Design Partition Scripts をクリックするか、Tcl またはコマンド
ラインからスクリプト・ジェネレータを起動します。
2.
各パーティションに下位レベルのプロジェクトが作成されているた
め、Create lower-level project if one does not exist オプションをオ
フにします。
3.
必要に応じて、デフォルトのスクリプト・オプションに変更を加え
ます。アルテラでは、すべてのパーティションおよび仮想ピン・ロ
ケーション・アサインメントについて、LogicLock 領域を含むすべ
てのデフォルト制約を渡すことを推奨しています。またアルテラで
は、各パーティションでの仮想 I/O 接続用に、最大遅延タイミング
制約を追加することも推奨しています。
4.
Quartus II ソフトウェアはすべてのパーティションに Tcl スクリプ
トを生成しますが、このシナリオではパーティション間のクリティ
カル・パスを構成するパーティションに重点を置くことにします。
スクリプトの重要なアサインメントを以下に示します。
●
2–74
トップレベル・デザインのデバイス I/O ポートに接続されてい
ないモジュール・ピンへの仮想ピン・アサインメント。
Altera Corporation
2008 年 5 月
推奨されるデザイン・フローおよびコンパイルのアプリケーション例
●
●
5.
ピンの接続元または接続先の最初のトップレベル配置を反映し
た、仮想ピンのロケーション制約。これらの制約により、下位
レベルの配置がトップレベルで周囲を認識するのを支援し、
トップレベルでの統合時にタイミング・クロージャの機会を高
めることになります。
パーティションのI/Oピンとのパスに対するINPUT_MAX_DELAY
およびOUTPUT_MAX_DELAYタイミング制約これらはピンがピン
との間のタイミング・パスを最適化するのに制約を課します。
下位レベルの設計者がプロジェクト・リーダーから提供されたファ
イルをソースします。
●
Quartus II GUI から Tcl スクリプトをソースするには、Tools メ
ニューの Utility Windows をクリックし、Tcl コンソールを開
きます。スクリプトのディレクトリに移動し、以下のコマンド
を入力します。
source <filename> ↵r
●
システム・コマンド・プロンプトで Tcl スクリプトをソースする
には、以下のコマンドを入力します。
quartus_cdb -t <filename>.tcl ↵r
6.
下位レベルの設計者は、新しいアサインメントで各自のデザインを
リコンパイルし、内部タイミング要件を満たしていることを確認し
ます。
7.
下位レベルの設計者は、各自の結果を再エクスポートします。
8.
トップレベルの設計者は、その結果を再インポートします。
9.
ここでデザインを解析し、タイミング要件が達成されたかどうかを
判断します。下位レベルのパーティションが、トップレベルでより
多くの接続性に関する情報を提供してコンパイルされているため、
パーティション間パスにより配置が改善されている可能性が高く、
タイミング要件の適合を促します。
IP 再利用のためのハード・ワイヤード・マクロの作成
トップレベル・デザインでインスタンス化できるハード・ワイヤード・
マクロまたは IP ロジックを作成するには、このデザイン・フローを使用
します。このフローでは、合成後または配置(およびオプションで配線)
情報を含むデザイン・ブロックをエクスポートし、この配置済みマクロ
のコピーを必要な数だけ別のデザインにインポートする機能を提供しま
す。
Altera Corporation
2008 年 5 月
2–75
Quartus II ハンドブック Volume 1
例のバックグランド:IP プロバイダは、上位レベルのシステムで使用さ
れるコンポーネント用のIPコアを生産および販売することを希望してい
ます。IP プロバイダは、特定のアルテラ・デバイスで最高性能を達成す
るためにブロックの配置を最適化し、配置情報を最終顧客に渡したいと
考えています。また、IP を維持するために、HDL ソース・コードの代
わりにコンパイルされたネットリストを顧客に提供することを希望して
います。
顧客は最初に、このプロジェクトで使用されているアルテラ・デバイス
を指定し、デザイン仕様を提供します。
この例の IP プロバイダは、以下のステップを実行して配置済み IP コア
(またはマクロ)をエクスポートします。
1.
IPコアのポート・インタフェースを定義するドキュメントを作成し、
そのファイルをトップレベル・デザインで空のパーティションとし
てインスタンス化するために顧客に提供します。
2.
IP コア用の Quartus II プロジェクトを作成します。
3.
エクスポートするデザイン階層に LogicLock 領域を作成します。
.qxp ファイルの生成時および使用時には必要ありませんが、
LogicLock 領域を使用してフロアプランを作成することを推奨
します。IP コアに LogicLock 領域を使用すれば、空のプレース
ホルダ領域を作成して、デザイン・フロアプランに IP 用スペー
スを確保できます。これにより、トップレベル・デザイン・ロ
ジックとの衝突が回避され、IP コアがトップレベル・デザイン
の他のロジックのタイミング性能に影響を与えることはありま
せん。
LogicLock 領域は、リソースの使用率の衝突を効果的に低減し、
性能維持を可能にすることができます。また、LogicLock 領域
がない場合、絶対的な方法でしか配置を維持することができま
せん。LogicLock 領域を使用すれば、関連する領域の原点に対
する絶対的または相対的配置を維持できます。これは .qxp ファ
イルを同じプロジェクト内の複数のパーティション階層にイン
ポートする場合に重要です。その理由は、この場合にはトップ
レベル・プロジェクトの少なくとも1つのインスタンスのロケー
ションがIPプロバイダが使用するロケーションと一致しないた
めです。
2–76
Altera Corporation
2008 年 5 月
推奨されるデザイン・フローおよびコンパイルのアプリケーション例
4.
必要に応じて、エクスポートされるデザイン階層の周辺にロジック
(PLL または顧客のトップレベル・デザインで定義される他のロジッ
クなど)を追加します。ロジックを追加すると、IP コアとしてエク
スポートされるデザイン階層にデザイン・パーティションが作成さ
れます。
詳細は、2–47 ページの「プロジェクト内の下位レベル・ブロック
のエクスポート」を参照してください。
5.
デザインを最適化し、タイミングを閉じてデザイン仕様を満たしま
す。
6.
適切なレベルの階層を 1 つの .qxp ファイルにエクスポートします。
プロジェクトのコンパイルに成功したら、GUI、コマンドラインか
ら、または Tcl コマンドを使用して .qxp ファイルを生成できます。
●
●
●
7.
Quartus II GUI を使用する場合は、
Export Design Partition コマ
ンドを使用します。
コ マ ン ド ラ イ ン の 実 行 コ マ ン ド を 使 用 す る 場 合 は、
--incremental_compilation_export オプションを指定
して quartus_cdb を実行します。
Tcl コマンドを使用する場合は、以下のコマンドを使用します。
execute_flow -incremental_compilation_export.
顧客に .qxp ファイルを提供します。顧客にデザイン・ソース・コー
ドを提供する必要はありません。この 1 本のファイルにデザイン・
ネットリストおよび配置配線情報が含まれています。
この例の顧客は、以下のステップを実行して IP コアをデザインに組み込
みます。
Altera Corporation
2008 年 5 月
1.
同じデバイスをターゲットにし、IP コアの 1 つまたは複数のコピー
をインスタンス化するトップレベル・デザイン用の Quartus II プロ
ジェクトを作成します。
2.
Processing メニューで Start をポイントし、Perform Analysis &
Elaboration をクリックしてデザイン階層を識別します。
3.
Netlist Type を Empty に設定して(2–28 ページの「デザイン・パー
ティションの Netlist Type の設定」を参照)、IP コアの各インスタ
ンスにデザイン・パーティションを作成します(2–108 ページの「デ
ザイン・パーティションの作成」を参照)。
4.
デザインで担当部分について作業を継続し、IP コアが入手可能に
なったら IP プロバイダから IP コアの提供を受けることができます。
2–77
Quartus II ハンドブック Volume 1
5.
適切なパーティション階層のために、IP プロバイダから提供された
.qxp ファイルをインポートします。GUI、コマンドラインから、ま
たは Tcl コマンドを使用して .qxp ファイルをインポートすることが
できます。
●
●
●
6.
Quartus II GUI を使用する場合は、Import Design Partition コ
マンドを使用します。
コマンドラインの実行コマンドを使用する場合
は、--incremental_compilation_import オプションを指
定して quartus_cdb を実行します。
Tcl コマンドを使用する場合は、以下のコマンドを使用します。
execute_flow -incremental_compilation_import.
インポートした LogicLock 領域を、領域内容の相対的な位置を維持
したまま、可動に設定するか新しいロケーションに移動することが
できます。配線情報は、可能な限り維持されます。
Fitter は、トップレベル・デザインの LogicLock 領域のロケー
ションに.qxpファイルにエクスポートされたロケーションとの
互換性がない場合、相対的な配置アサインメントを無視します。
7.
Fitter Preservation Level で、インポートされたネットリストのみ、
配置、または配置配線(配置または配置配線情報が .qxp ファイルに
エクスポートされている場合)のいずれを維持するかコントロール
できます。
デフォルトでは、配置配線を維持するよう選択した場合、インポー
トされたネットリストのすべてのノードの絶対配置および配線が維
持されます。ただし、同じプロジェクトで複数のパーティションに
同じ .qxp ファイルを使用する場合、インポートされた各モジュー
ルの相対的な配置(LogicLock 領域の原点に対して相対的)が維持
されます。
IPプロバイダが、エクスポートされたパーティションでLogicLock
領域を定義していない場合、絶対的配置ロケーションが維持さ
れ、複数のインスタンスに対してパーティションがインポート
されると配置衝突が発生します。
エクスポートされたパーティションを使用したソース・ファイ
ルをインクルードしないデザインの送信
このフローを使用して、デザイン全体を 1 つのファイルにまとめて最終
顧客または別のデザイン・ロケーションに送信します。
2–78
Altera Corporation
2008 年 5 月
推奨されるデザイン・フローおよびコンパイルのアプリケーション例
例のバックグランド:設計者はデザイン・ブロックを生成したいと考え
ており、デザインを送信する必要がありますが、IP を保持するために、
HDL ソース・コードではなく合成されたネットリストを受信者に提供す
ることを希望しています。
この例では送信者として、デザイン・ブロックをエクスポートするため
に、以下の手順を実行します。
1.
送信者にデバイス・ファミリ名を提供します。配置情報を合成ネッ
トリストと一緒に送信する場合は、正確なデバイス選択も提供して、
同等なプロジェクトを設定できるようにします。
2.
デザイン・ブロックのポート・インタフェースを定義するドキュメ
ントを作成して、受信者に提供します。受信者はトップレベル・デ
ザインで、空のパーティションとしてデザイン・ブロックをインス
タンス化することができます。
3.
デザイン・ブロック用の Quartus II プロジェクトを作成して、デザ
インを完成させます。
4.
適切なレベルの階層を 1 つの .qxp ファイルにエクスポートします。
Quartus II GUI を使用する場合は、Export Design Partition コマン
ドを使用します(2–44 ページの「トップレベル・プロジェクトで使
用される下位レベル・パーティションのエクスポート」を参照)。
5.
配置情報を送信する必要がない場合は、Post-synthesis ネットリス
トのみをインクルードするオプションを選択します。受信者が正確
な Fitter の結果を復元したい場合は、Post-fitting ネットリストオプ
ションを選択し、オプションで Export routing をイネーブルするこ
とができます。
6.
受信者に .qxp ファイルを提供します。デザインのソース・コードを
送信する必要はありません。
この例で受信者は、以下のステップを実行してデザイン・ブロックをトッ
プレベル・デザインに組み込みます。
Altera Corporation
2008 年 5 月
1.
トップレベル・デザイン用の Quartus II プロジェクトを作成し、プ
ロジェクトが送信者が指定したのと同じデバイス(あるいは、.qxp
ファイルに配置情報が含まれていない場合は、少なくとも同じデバ
イス・ファミリ)をターゲットにしていることを確認します。
2.
提供されたポート情報を使用して、デザイン・ブロックをインスタ
ンス化します。
2–79
Quartus II ハンドブック Volume 1
インクリメンタル・
コンパイルの制約
3.
Processing メニューで Start をポイントし、Perform Analysis &
Elaboration をクリックしてデザイン階層を識別します。
4.
Netlist Type を Empty に設定して( 2–28 ページの「デザイン・パー
ティションの Netlist Type の設定」を参照)、デザイン・ブロックの
インスタンスにデザイン・パーティションを作成します(2–19 ペー
ジの「デザイン・パーティションの選択および作成」を参照)。
5.
適切なパーティション階層のために、IP プロバイダから提供された
.qxp ファイルをインポートします。Quartus II GUI を使用する場合
は、Import Design Partition コマンドを使用し、提供された .qxp
ファイル(2–48 ページの「下位レベル・パーティションのトップレ
ベル・プロジェクトへのインポート」を参照)を表示します。
6.
送信者が Fitter 情報を提供する場合は、Fitter Preservation Level で、
インポートされたネットリストのみ、配置、または配置配線のいず
れを維持するかコントロールできます。
ここでは、他の Quartus II 機能との相互作用を含めて、インクリメンタ
ル・コンパイルを使用する際に直面する可能性がある制約と制限につい
て述べています。制約によっては、トップダウンとボトムアップの両方
のデザイン・フローに適用されるもの、ボトムアップ・デザイン・フロー
にのみ適用されるものがあります。
以下の制約と制限について説明します。
■
■
■
■
■
■
■
■
■
■
2–80
2–82 ページの「Quartus II Archive ファイルによるインクリメンタ
ル・コンパイルの使用」
2–83 ページの「フォーマル検証のサポート」
2–83 ページの「ボトムアップ・フローの MegaCore ファンクション
のための OpenCore Plus 機能」
2–83 ページの「暗号化された IP コアのボトムアップ・フローへのイ
ンポート」
2–84ページの
「SignalProbeピンおよびChip PlannerによるEngineering
Change Management」
2–86 ページの「ボトムアップ・コンパイル・フローの SignalTap II エ
ンベデッド・ロジック・アナライザ」
2–87 ページの「ボトムアップ・コンパイル・フローのロジック・ア
ナライザ・インタフェース」
2–87 ページの「JTAG 機能を使用する下位レベル・パーティションの
エクスポート」
2–88 ページの「デザイン・パーティションを持つプロジェクトの異
なるデバイスへの移行」
2–88 ページの「HardCopy コンパイル・フローおよび移行フロー」
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルの制約
■
■
■
■
■
■
■
■
2–89 ページの「ボトムアップ・フローの HDL ソース・コードで作成
されるアサインメント」
2–90 ページの「フィジカル・シンセシス最適化を行う場合のコンパ
イル時間」
2–90 ページの「メガファンクション・パーティションの制約」
2–91 ページの「配線の維持」
2–91 ページの「TimeQuest タイミング・アナライザの Synopsys
Design Constraints ファイル」
2–91 ページの「ボトムアップ・デザイン・パーティションのスクリ
プトの制限」
2–94 ページの「レジスタ・パッキングおよびパーティション境界」
2–94 ページの「I/O レジスタ・パッキング」
フル・インクリメンタル・コンパイルに代わるインクリメ
ンタル・シンセシスのみの使用
インクリメンタル・コンパイルは、インクリメンタル配置配線なしで、
インクリメンタル・シンセシスを実行するコンパイルの合成ステージに
対してのみ有効にできます。このモードは、フォーマル検証やインクリ
メンタル SignalTap II 検証など、Quartus II の特定のデザイン・フロー
と互換性がないため、新規プロジェクトには推奨されません。
インクリメンタル・シンセシスのみ使用するには、フル・インクリメン
タル・コンパイルのステップに従うことができますが、Settings ダイア
ログ・ボックスの Compilation Process Settings にある Incremental
Compilation ペ ー ジ の Incremental synthesis only (Can reduce
compilation time for a design with partition assignments) オプション
をオンにします。
このモードでは、Fitter はパーティション境界を含まないフラット化さ
れたネットリストを使用するため、デザインは常に再配置および再配線
されます。このフローと2–7 ページの図 2–2に示すフローの違いは、Fitter
により生成されたフィッティング後のネットリストがパーティション・
マージ・ステージで受け入れられず、Fitter がパーティションを個別に
コンパイルしないことです。以下の違いは、フル・インクリメンタル・
コンパイルと比較した場合、インクリメンタル・シンセシスの影響にの
み見られます。
■
■
Altera Corporation
2008 年 5 月
コンパイル時間の短縮は、合成ツールがQuartus IIのQISに限定され
ます。
配置および配線を維持できないため、この機能でパーティションの
タイミング性能を維持することはできません。
2–81
Quartus II ハンドブック Volume 1
■
パーティションは、ソース・コードまたは合成アサインメントを変
更すると再合成されます(フル・インクリメンタル・コンパイルで
は、合成アサインメントまたはフィッティング・アサインメントを
変更しても自動的にリコンパイルされません)。
正確なタイミング性能の維持
トップレベル・デザインでは、個別のパーティションとフル・デザイン
の違いのために、すべてのパーティションが組み込まれた場合、タイミ
ング性能がわずかに変化する場合があります。例えば、デザインの一部
のみに対する最初のコンパイルにはなかった寄生効果またはクロストー
クが発生する場合があります。また、配線ラインの追加ファンアウトに
よりタイミング性能が低下する可能性もあります。すべてのパーティ
ションが存在する場合にデザインが性能を満たすようにするには、約 2%
のマージンが必要になることがあります。これはボトムアップおよび
トップダウンの両方の手法に当てはまります。Fitter は、デザインをコ
ンパイルする場合、2% 以上のマージンを自動的に付加します。
Quartus II Archive ファイルによるインクリメンタル・
コンパイルの使用
各デザイン・パーティションの合成後およびフィッティング後のネット
リスト情報は、プロジェクト・データベースに保存されています。プロ
ジェクトをアーカイブした場合、データベース情報は(.qar)ファイル
にデータベース・ファイルをインクルードしている場合を除き、アーカ
イブにインクルードされません。
アルテラでは、コンパイル結果を維持するために、Archive Project ダイ
アログ・ボックスでデータベース・ファイルをインクルードすることを
推奨しています。使用可能な場合は、Version-compatible database files
(for future versions of the Quartus II software) オプションを選択して、
最大限の柔軟性を提供します。プロジェクトを復元した後、Project メ
ニューで、Import database を選択して、このデータベース情報をプロ
ジェクトにインクルードします。プロジェクトの設定にバージョン互換
オ プ シ ョ ン が 使 用 で き ない場合は、Compilation and simulation
database files (For current versions of the Quartus II software) を選択
します。ただし、このデータベースを別のソフトウェア・バージョン
(サービス・パック・リリースを含む)にインポートすることはできませ
ん。
インポートされたパーティションのネットリスト情報は、すでに対応す
る .qxp ファイルに保存されています。インポートされた .qxp ファイル
は、imported_partitions という名前のサブディレクトリに自動的に保存
されるため、プロジェクト・データベースをアーカイブして、インポー
トされたパーティションの結果を保持する必要はありません。プロジェ
2–82
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルの制約
クト・アーカイブを復元するとき、パーティションはこのディレクトリ
内の .qxp ファイル(使用可能な場合)から自動的に再インポートされま
す。
フォーマル検証のサポート
フォーマル検証ツール用のネットリストを作成する場合、デザイン・パー
ティションは使用できません。
ボトムアップ・フローの MegaCore ファンクションのため
の OpenCore Plus 機能
トップダウン・インクリメンタル・コンパイル・フローで、OpenCore
Plus MegaCore® ファンクションのためのOpenCore Plusハードウェア評
価機能を使用することができます。OpenCore Plus 機能を使用する
MegaCore ファンクションを含むパーティションをエクスポートするこ
とはできません。ボトムアップ・デザイン・フローを使用する場合、トッ
プレベルの Quartus II プロジェクトで OpenCore Plus 機能を使用する IP
ファンクションをインクルードします。OpenCore Plus ハードウェア評
価機能が必要ない場合は、この機能をディセーブルすることができます。
Assignments メニューの Settings を選択します。Compilation Process
Settings ページで、More Settings をクリックします。Disable OpenCore
Plus ハードウェア評価オプションを On に設定します。
暗号化された IP コアのボトムアップ・フローへのインポート
暗号化された IP コアをコンパイルするには、適切なライセンス情報が必
要です。デザインを .qxp ファイルとしてインポートすると、ライセン
ス・アサインメントがトップレベル・プロジェクトにインポートされま
す。ただし、ライセンス・アサインメントには、ライセンス供与された
IP ソース・ファイルへの絶対パスが含まれています。したがって、.qxp
ファイルは、下位レベル・プロジェクトと同じコンピュータ上のトップ
レベル・プロジェクトにインポートされるか、両方のコンピュータ上の
同じディレクトリ・パスの場所に IP ファイルがインストールされた場合
にのみ正常に動作します。
通常プロジェクト・チームの設計者が IP コアをさらに変更する必要はな
いので、このパーティションをインポートする代わりにトップレベル・
プロジェクトにインクルードすることによって、この問題を回避できま
す。パーティションは以降のコンパイルでは変更されないため、最初の
コンパイルの後にコアを含むパーティションを Post-Fit に設定して、そ
れ以降のコンパイル時間を短縮できます。また、パーティションをEmpty
に設定して、デザイン全体をコンパイルする準備が整うまで、データベー
スから IP コアを除外することも可能です。
Altera Corporation
2008 年 5 月
2–83
Quartus II ハンドブック Volume 1
暗号化された IP コアをインポートしたくない場合は、暗号化された IP
ソース・ファイルをトップレベル・プロジェクトのコンピュータに、完
全に同じパス構造でコピーします。例えば、暗号化された IP ソース・
ファイルが d:/work/my_encrypted_file.vhd の場合、.qxp ファイルをイ
ンポートするトップレベルの設計者は同じフォルダを作成して、そこに
ファイルを入れなければなりません。
SignalProbe ピンおよび Chip Planner による
Engineering Change Management
フ ル・コ ン パ イ ル 実 行後、SignalProbe ピンを作成するか Resource
Property Editor を使用して ECO(Engineering Change Order)による変
更を行う場合、デザイン全体をリコンパイルする必要はありません。こ
のような変更は、新しい配置配線を実行しないで、直接ネットリストに
対して行われます。これらの変更は、配置配線を実行し、フィッティン
グ後のネットリストを使用して維持できます。パーティションをリコン
パイルすると、影響を受けていないパーティションの SignalProbe ピン
および ECO による変更が維持されます。
デザインをデバッグするための SignalProbe 機能の使用について詳しく
は、
「Quartus II ハンドブック Volume 3」の「Quick Design Debugging
Using the SignalProbe」の章を参照してください。ECO を行うための Chip
Planner および Resource Property Editor の使用について詳しくは、
「Quartus IIハンドブック Volume 2」の
「Engineering Change Management
with Chip Planner」の章を参照してください。
SignalProbe ピンまたは ECO の変更を維持するには、Fitter Preservation
Level を Placement and Routing に設定して、パーティションのネット
リスト・タイプを Post-fit に設定する必要があります。SignalProbe ピン
または ECO の変更を含むパーティションが、配線なしのフィッティン
グ後またはネットリストのみに設定されている場合、ソフトウェアは
ワーニングを発行し、配置配線を行ったフィッティング後のネットリス
トを内部で使用します。パーティションがソース・コードまたは合成後
のネットリストを使用するよう設定されている場合、ソフトウェアは
ワ ー ニ ン グ を 発 行 し、新 し い コ ン パ イ ル に フ ィ ッ テ ィ ン グ 後 の
SignalProbe ピンまたは ECO の変更はインクルードされません。ただし、
以下に示すように、パーティションは SignalProbe ピンまたは ECO の変
更によりリンクできるようになります。この場合、リンクされているす
べてのパーティションは、最高レベルの維持が設定されているリンク済
みパーティションからネットリスト・タイプを継承します。
2–84
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルの制約
SignalProbe ピンまたは ECO の変更のためリンクされている
パーティション
ECO の変更が複数のパーティションまたはパーティション間の接続に
影響を与える場合、当該パーティションはリンクされます。最も近い共
通の親まで上位レベルのすべての “ 親 ” パーティションもリンクされま
す。この場合、パーティション間の接続は、直ちに影響を受ける 2 つの
パーティションの外部で実際に定義されるため、すべてのパーティショ
ンをまとめてコンパイルする必要があります。リンクされているすべて
のパーティションは同じネットリスト・タイプを使用し、最高レベルの
維持が設定されているリンク済みパーティションからネットリスト・タ
イプを継承します。
SignalProbe ピンが作成されると、プローブされるノードを含むパーティ
ションに影響を与えます。また、ノードがプローブされると、同じパー
ティションにパイプライン・レジスタが作成されます。SignalProbe 出
力ピンは、トップレベル・パーティションに割り当てられます。したがっ
て、トップレベル・パーティションとプローブされる下位レベル・パー
ティションの間に新しい接続が形成されます。この接続により、プロー
ブされる下位レベル・パーティションとトップレベルまでのすべての上
位レベルの “ 親 “ パーティションがリンクされます。リンクされているす
べてのパーティションは同じネットリスト・タイプを使用し、最高レベ
ルの維持が設定されているリンク済みパーティションからネットリス
ト・タイプを継承します。
パーティションがリンクされると、以下に示すように、デザインをリコ
ンパイルしたときに維持されるネットリストを変更することができま
す。
■
■
Altera Corporation
2008 年 5 月
リンクされているすべてのパーティションがソース・コードまたは
合成後のネットリストを使用するよう設定されている場合、パー
テ ィ シ ョ ン は 通 常 ど お り 再 フ ィ ッ ト さ れ ま す。こ の 場 合、
SignalProbe ピンまたは ECO の変更は新しいネットリストには含ま
れないため、Change Manager での変更を再適用する必要がありま
す。
リンクされているパーティションのいずれかが Post-Fit ネットリス
ト・タイプに設定され、ソース・コードが変更されていない場合、
ソフトウェアはワーニングを発行し、すべてのリンク済みパーティ
ションに対して配置配線を行ったフィッティング後のネットリスト
を内部で使用します。ソフトウェアは、適切なフィッティング後の
ネットリストを維持することにより、SignalProbe ピンまたは ECO
の変更を維持できます。
2–85
Quartus II ハンドブック Volume 1
■
■
リンクされているパーティションのいずれかが Post-Fit(Strict)ネッ
トリスト・タイプに設定されている場合、ソフトウェアはワーニン
グを発行し、ソース・コードが変更されているかどうかに関わらず、
すべてのリンク済みパーティションに対して配置配線を行った
フィッティング後のネットリストを内部で使用します。ソフトウェ
アは、適切なフィッティング後のネットリストを維持することによ
り、SignalProbe ピンまたは ECO の変更を維持できます。この場合、
リンクされているパーティションでのソース・コードの変更は、新
しいネットリストには含まれません。
ソース・コードの変更のためにリンクされているパーティションが
リコンパイルされると、ソフトウェアはワーニングを発行し、他の
リンク済みパーティションもリコンパイルします。これが起こると、
SignalProbe ピンまたは ECO の変更は新しいネットリストに含まれ
ないため、Change Manager での変更を再適用する必要があります。
エクスポートされたパーティション
ボトムアップ・インクリメンタル・コンパイルでは、エクスポートされ
たネットリストに現在保存されているすべての SignalProbe ピンまたは
ECO の変更が含まれます。これには子プロジェクトで下位レベル・パー
ティションをフラット化または組み合わせて、トップレベルでの境界違
反を防がなければならない場合があります。このネットリストをイン
ポートした後、下位レベル・パーティションで行った変更は、トップレ
ベルの Change Manager には表示されません。
下位レベル・パーティションへのインタフェースに影響を与える ECO の
変更を行った場合、ソフトウェアはエクスポート・プロセス中に、この
ネットリストはトップレベル HDL コードを変更して下位レベルの変更
を反映しない場合はトップレベル・デザインで動作しない旨のワーニン
グを発行します。
ボトムアップ・コンパイル・フローの SignalTap II エンベ
デッド・ロジック・アナライザ
SignalTap II エンベデッド・ロジック・アナライザは、コンパイルして
アルテラ・デバイスにプログラムすることができるプロジェクトで使用
できます。
ボトムアップ・インクリメンタル・コンパイル・フローでは、SignalTap II
ロジック・アナライザ用の SignalTap II ファイル(.stp)を使用する下位
レベル・プロジェクトをエクスポートすることはできません。デザイン
をパーティションとしてエクスポートする前に、SignalTap II 機能をディ
セーブルして、デザインをリコンパイルする必要があります。
2–86
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルの制約
下位レベル・デザインで SignalTap II メガファンクションを直接インス
タンス化し(.stp ファイルを使用する代わりに)、デザイン全体をボトム
アップ・フローのトップレベルにエクスポートできます。ただし、2–87
ページの「JTAG 機能を使用する下位レベル・パーティションのエクス
ポート」で説明するとおり、インスタンス化された SignalTap II メガファ
ンクションを含むプロジェクト内の下位レベル・パーティションをエク
スポートすることはできません。
他のプロジェクトからインポートしたノードを含め、Quartus IIプロジェ
クトでは任意のノードをタップすることができます。Node Finder で適
切なフィルタを使用してノード名を検索します。Netlist Type が Post-Fit
の場合、SignalTap II: post-fitting を使用して、フィッティング後のデー
タベースでノード名をインクリメンタルにタップします。Netlist Type が
Source File に設定されているときにソース・コードからパーティション
を合成する場合、SignalTap II: pre-synthesis を使用して、ソース・ファ
イル(合成前)ノード名への接続を確立します。
インクリメンタル・フローにおける SignalTap II ロジック・アナライザの
使用方法について詳しくは、「Quartus II ハンドブック Volume 3」の
「Design Debugging Using the SignalTap II Embedded Logic Analyzer」
の章を参照してください。
ボトムアップ・コンパイル・フローのロジック・アナライ
ザ・インタフェース
ロジック・アナライザ・インタフェースはどのプロジェクトでも使用で
き、コンパイルしてアルテラ・デバイスにプログラムすることができま
す。ボトムアップ・インクリメンタル・コンパイル・フローでは、ロジッ
ク・アナライザ・インタフェースを使用する下位レベル・プロジェクト
をエクスポートすることはできません。デザインをパーティションとし
てエクスポートする前に、ロジック・アナライザ・インタフェース機能
をディセーブルして、デザインをリコンパイルする必要があります。
ロジック・アナライザ・インタフェースについて詳しくは、
「Quartus II
ハンドブック Volume 3」の「In-System Debugging Using External Logic
Analyzers」の章を参照してください。
JTAG 機能を使用する下位レベル・パーティションのエク
スポート
2–47 ページの「プロジェクト内の下位レベル・ブロックのエクスポート」
では、プロジェクトのトップレベル・エンティテイではない下位レベル
のパーティションをエクスポートする方法を説明しています。この機能
Altera Corporation
2008 年 5 月
2–87
Quartus II ハンドブック Volume 1
は、In-System Memory Content Editor、Nios® II OCI Debug および Nios
II JTAG UART、Virtual JTAG Interface、MAX® II Serial Flash Loader お
よび Parallel Flash Loader、インスタンス化された SignalTap II メガファ
ンクションなど、デバイス JTAG インタフェースを使用する機能を持つ
パーティションに対してはサポートされていません。
ボトムアップ・インクリメンタル・コンパイル・フローでこれらの機能
を使用するには、下位レベルの設計者が必ず Quartus II プロジェクトの
トップ・レベル・エンティテイをエクスポートするようにします。
デザイン・パーティションを持つプロジェクトの異なるデ
バイスへの移行
パーティション・アサインメントは、異なるデバイス集積度またはデバ
イス・ファミリに移行した場合でも有効です。同じファミリのデバイス
に移行した場合、LogicLock 領域のサイズは有効ですが、Origin の位置
は無効になります。特定のフロアプラン・アサインメントは、異なるデ
バイスまたはデバイス・ファミリでは無効になります。これはデバイス
間で位置座標が異なるためです。
同じファミリで異なるサイズのデバイスに移行した場合、合成後のネッ
トリストは有効です。フィッティング後のネットリストは、異なるデバ
イス集積度またはデバイス・ファミリに移行した場合は、無効になりま
す。
HardCopy コンパイル・フローおよび移行フロー
HardCopy APEX および HardCopy Stratix デバイス
Quartus II ソフトウェアを使用したインクリメンタル・コンパイルは、
HardCopy APEX または HardCopy Stratix デザイン・フローではサポー
トされていません。
HardCopy ASIC 移行フロー
トップダウン・インクリメンタル・コンパイルは、FPGA を最初に設計
す る フ ロ ー お よ び HardCopy を最初に設計するフローの両方の
HardCopy 移行フローにおけるベース・ファミリに対してサポートされ
ています。デザイン・パーティション・アサインメントはコンパニオン・
デバイスに移行されます。デザイン・パーティションには LogicLock 領
域が推奨されますが、デバイス・アーキテクチャが異なるため LogicLock
領域はコンパニオン・デバイスには移行されません。ただし、デザイン
がベース・ファミリのコンパイル結果と一致しなくなるため、移行した
2–88
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルの制約
後でデザインを変更することはできません。したがって、1 つのデバイ
ス・ファミリでトップダウン・インクリメンタル・コンパイルを実行で
きますが、移行後はインクリメンタル・コンパイルは実行できません。
マイグレーション・デバイスが指定されているとき(つまり、FPGA マ
イグレーション・デバイスによる HardCopy ASIC デバイスのコンパイ
ル、または HardCopy ASIC マイグレーション・デバイスによる FPGA
デバイスのコンパイル)には、FPGA または HardCopy ASIC デバイス・
コンパイル用のフィッティング後のネットリストでは Netlist Only 維持
レベルはサポートされません。
ボトムアップ・インクリメンタル・コンパイルは、マイグレーション・
デバイス設定がある場合、HardCopy ASIC または FPGA デバイスのコ
ンパイルではサポートされません。Revision Compare 機能を使用するに
は、HardCopy ASIC および FPGA ネットリストが同じでなければなり
ません。したがって、1 つのリビジョンで実行されるすべての操作を別
のリビジョンでも行う必要があります。これは、すべての操作を記録し
ておき、それを別のリビジョンで再生することによって行われます。ボ
トムアップ・フローの使用およびパーティションのインポートでは、こ
の要件はサポートされません。コンパイル間でどのグローバル・アサイ
ンメントも変更しない限り、Empty パーティションでトップダウン・フ
ローを使用して、ボトムアップ・フローに似た動作を実現できる場合が
よくあります。すべてのグローバル・アサインメントはコンパイルされ
たすべてのパーティションで同じはずなので、移行後にコンパニオン・
デバイスでアサインメントを再生成できます。
HardCopy ASIC スタンドアロン・コンパイル
トップダウンおよびボトムアップ・インクリメンタル・コンパイルの両
方を、スタンドアロン HardCopy ASIC コンパイルに使用できます。
HardCopy ASIC では、配線の維持はサポートされません。したがって、
Placement and Routing 維持レベルは使用できず、ボトムアップ・フロー
で配線をエクスポートすることはできません。
ボトムアップ・フローの HDL ソース・コードで作成され
るアサインメント
下位レベル・パーティションでの I/O プリミティブまたは altera_
attribute HDL 合成属性付きで作成されたアサインメントは、ボト
ムアップ・フローのトップレベルでは現在サポートされていません。
これらのアサインメントはトップレベルで処理されますが、インポー
ト後にネットリスト・データベースに適用できない場合があります。
Fitter 関連のアサインメント(I/O ターミネーション設定など)は、合
成後の .qxp ファイルを使用すると正しく適用できます。
Altera Corporation
2008 年 5 月
2–89
Quartus II ハンドブック Volume 1
フィジカル・シンセシス最適化を行う場合のコンパイル時
間
フィジカル・シンセシスをオンにすると、フィッティング後のネットリ
ストで固定されていないパーティションの配置があると最適化が実行さ
れます。例えば、SignalTap II ロジック・アナライザを使用すると、配
置が維持されていない SignalTap II インスタンスに対して自動的にパー
ティションが作成されます。
フィジカル・シンセシスはフィッティング後のネットリストを使用する
パーティションのロジックを最適化しないため、デザインの多くが
フィッティング後のネットリストを使用するときには、コンパイル時間
が短縮されます。
タイミング利用またはリソース利用の目標を満たすのにフィジカル・シ
ンセシスの最適化を必要としないパーティションをリコンパイルする場
合は、フィジカル・シンセシスをオフにして余分なコンパイル時間をな
くすことができます。例えば、すべてのパーティションでフィッティン
グ後のネットリストを使用するデザインで、SignalTap II ロジック・ア
ナライザを使用するときは、フィジカル・シンセシスをオフにしてコン
パイル時間を短縮することができます。フィジカル・シンセシスを最初
に実行する必要があるクリティカル・パーティションをコンパイルし、
それらのパーティションのタイミングを閉じることも可能です。これら
のパーティションでロジックを変更する必要がない場合は、クリティカ
ル・パーティションを Post-Fit に設定します。これにより、以降のコン
パイルではフィジカル・シンセシスをオフにすることができます。タイ
ミング・クリティカルなパーティションを変更し、フィジカル・シンセ
シスを最適化した新しいロジックをリコンパイルする場合は、必ずオプ
ションをオンにしてください。
メガファンクション・パーティションの制約
Quartus II ソフトウェアは、パーティションのメガファンクション・イ
ンスタンス化はサポートしません。MegaWizard® Plug-In Manager を使
用してメガファンクション・バリエーションをカスタマイズする場合、
MegaWizard で生成されたラッパー・ファイルは、メガファンクション
をインスタンス化します。MegaWizard で生成されたメガファンクショ
ン・カスタム・バリエーション・ラッパー・ファイルに対して、パーティ
ションを作成できます。
Quartus II ソフトウェアは、推測されたメガファンクションに対する
パーティションの作成をサポートしていません(すなわち、ここではソ
フトウェアはデザインにロジックを実装するためのメガファンクション
を推測します)。ロジックに対するモジュールまたはエンティティが推測
される場合、デザインのその階層レベルにパーティションを作成できま
す。
2–90
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルの制約
Quartus II ソフトウェアは、コンパイル中にダイナミックに生成される
Quartus II 内部階層に対しては、メガファンクションの内容を実装する
ためのパーティションの作成はサポートしていません。
配線の維持
デバイス・アーキテクチャの適法性のために、特にボトムアップ・コン
パイルで配線情報が正確に維持されない場合があります。例えば、複数
のパーティションをインポートすると、各下位レベル・ブロックに事前
に配線を割り当てることができないため、配線衝突が発生する場合があ
ります。さらに、トップレベル・デザインでインポートされた LogicLock
領域が移動すると、ノードの相対的な配置は維持されますが、配線は維
持されない場合があります。
TimeQuest タイミング・アナライザの Synopsys Design
Constraints ファイル
2–49 ページの「アサインメントおよび高度なインポート設定のインポー
ト」で説明したように、.sdc ファイルの TimeQuest タイミング・アナラ
イザ用のタイミング・アサインメントは、トップレベル・プロジェクト
にインポートされません。トップレベル・プロジェクトに、プロジェク
ト全体のタイミング要件がすべて含まれていることを手動で確認する必
要があります。
下位レベルの .sdc ファイルをトップレベル・プロジェクトにコピーする
場合は、デザイン階層での制約の位置を記述する変数を持つ下位レベル
の制約にプリフィックスを付けることを考慮してください。また、ファ
イルをトップレベル・デザインにコピーする場合は、トップレベル・デ
ザインの下位レベル・パーティションに階層パスが提供されるように変
数を設定できます。
ボトムアップ・デザイン・パーティションのスクリプトの
制限
Quartus II ソフトウェアには、ボトムアップ・デザイン・パーティショ
ンのスクリプトに関連するいくつかの制限があります。
ボトムアップ・デザイン・パーティション・スクリプトでの
TimeQuest タイミング・アナライザの Synopsys Design
Constraints ファイル
2–52 ページの「プロジェクト管理のためのボトムアップ・デザイン・
パーティションのスクリプトの生成」で説明するように、デザイン・パー
ティション・スクリプトには、TimeQuest タイミング・アナライザのク
Altera Corporation
2008 年 5 月
2–91
Quartus II ハンドブック Volume 1
ロック制約と最小および最大遅延設定のみ含まれています。PLL 設定お
よびタイミング例外は、スクリプトで下位レベルのデザインに渡されな
いことに注意してください。
ボトムアップ・デザイン・パーティションのスクリプトのワイ
ルドカード・サポート
ワイルドカードの制約を適用する場合、ワイルドカードは階層境界を越
えて解析されません。例えば、以下のノードに対してアサインメント
Top|A:inst|B:inst|* を作成できます。A と B は下位レベル・パーティ
ション、階層 B は A の子、すなわち B は階層 A でインスタンス化され
ています。このアサインメントはモジュール A、B、および B のすべて
の 子 イ ン ス タ ン ス に 適 用 さ れ ま す。た だ し、ア サ イ ン メ ン ト
Top|A:inst|B:inst* は階層 A に適用されますが、B のインスタンスには
適用されません。これは B:inst* で表される単一レベルの階層が、複数
の階層レベルに拡大されないためです。この問題を回避するために、階
層境界が複数の階層レベルを表す場合は、必ず階層境界にワイルドカー
ドを適用してください。
ワイルドカードを使用して 1 レベルの階層を表す場合は、1 つのワイル
ドカードのみサポートされます。これは、Top|A:inst|*|B:inst|* など
のアサインメントがサポートされないことを意味します。このような場
合、Quartus II ソフトウェアはワーニングを出します。
ボトムアップ・デザイン・パーティションのスクリプトの派生
クロックおよび PLL
トップレベルのクロックが下位レベル・パーティションのピンに直接接
続されていない場合、下位レベルのパーティションはデザイン・パーティ
ション・スクリプトでトップレベル・ピンからアサインメントも制約も
受け取りません。
この問題は、タイミング制約とクロック・グループ設定を必要とするク
ロック・ピンに特に重要です。デザインでクロック入力ピンから新しい
クロックを派生させるために、ロジックまたは反転を使用している場合
に、問題が発生する可能性があります。制約なしのクロックにならない
ために、下位レベル Quartus II プロジェクトで適切なタイミング・アサ
インメントを作成します。
2–92
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルの制約
また、トップレベル・デザインで PLL を使用し、PLL を下位レベル・
パーティションに接続する場合、下位レベル・パーティションは PLL の
乗算係数または位相シフト係数に関する情報を受け取りません。制約な
しのクロックにならないため、あるいは不正な周波数で制約されないた
めに、下位レベル Quartus II プロジェクトで適切なタイミング・アサイ
ンメントを作成します。あるいは、完全かつ正確なタイミング解析のた
めに、乗算係数または位相シフト係数、補正遅延および他の PLL パラ
メータが正しくなるように、下位レベル・デザイン・ファイルにあるトッ
プレベルの派生クロック・ロジックまたは PLL を手動で複製します。
トップレベルにエクスポートされる下位レベル・デザイン・ロジックの
残りのためにデザイン・パーティションを作成します。下位レベル・デ
ザインが完成したら、2–47 ページの「プロジェクト内の下位レベル・ブ
ロックのエクスポート」の機能を使用して、関連ロジックを含むパーティ
ションのみエクスポートします。
ボトムアップ・デザイン・パーティションのスクリプトの GXB
および LVDS ブロックに対するピン・アサインメント
スクリプトには、高速 GXB トランシーバおよびハード LVDS ブロック
に対するピン・アサインメントは記述されません。下位レベル・プロジェ
クトに手動でこれらのハード IP ブロックに対するピン・アサインメント
を追加する必要があります。
ボトムアップ・デザイン・パーティションのスクリプトの仮想
ピン・タイミング・アサインメント
デザイン・パーティションのスクリプトでは、INPUT_MAX_DELAY アサ
インメントと OUTPUT_MAX_DELAY アサインメントを使用して、通常は
プロジェクトから見えない入力ピンおよび出力ピンに関連するパーティ
ション間遅延を指定します。これらのアサインメントでは、ソフトウェ
アがアサインメントのクロック・ドメインを指定し、このクロック・ド
メインを ‘*’ に設定する必要があります。
このクロック・ドメインは、タイミング解析エンジンにより制約されレ
ポートされる、不要なパスがいくつか存在する場合があることを意味し
ます。
クロック・ドメインがこれらのアサインメントに含まれるのを制限する
ために、生成されたスクリプトを編集するか、下位レベル Quartus II プ
ロジェクトでのアサインメントを変更します。さらに、遅延アサインメ
ントに関連する既知のクロックがないので、ソフトウェアはワースト・
ケース・スキューを想定するため、パスはトップレベル・デザインの場
合よりもタイミング・クリティカルに見えます。よりタイミング・クリ
ティカルでないパスにするには、スクリプトの遅延値を小さくします。
必要に応じて、入力および出力遅延値に負数を入力します。
Altera Corporation
2008 年 5 月
2–93
Quartus II ハンドブック Volume 1
ボトムアップ・デザイン・パーティションのスクリプトでの複
数の下位レベル・ピンを供給するトップレベル・ポート
下位レベル・モジュールで 1 つのトップレベルの I/O ポートで複数のピ
ンをドライブする場合、下位レベルの合成と配置の品質は必ずしも制限
されません。これが起こるのは、下位レベルのデザインでは、ソフトウェ
アが階層境界を維持する必要があり、トップレベルでは論理上同等のピ
ンに関する情報を使用できないためです。さらに、I/O 制約はトップレ
ベルのピンからそれぞれの子に渡されるため、トップレベルよりも多く
のピンを下位レベルで持つことができます。これらのピンはトップレベ
ルの I/O 制約および配置オプションを使用するため、下位レベルでは配
置できない場合があります。ソフトウェアは可能な限りこの状況を回避
しますが、このようなデザイン手法を使用しないで、これらの潜在的な
問題を回避することが得策です。1 つの I/O ポートがデザイン・パーティ
ション境界に信号を供給し、下位レベル・パーティション内で接続が複
数の信号に分割されるようにデザインを再構築します。
レジスタ・パッキングおよびパーティション境界
Quartus II ソフトウェアは、コンパイル中にレジスタ・パッキングを自
動的に実行します。ただし、インクリメンタル・コンパイルが有効な場
合、異なるパーティションのロジックを一緒にパッキングすることはで
きません。これはパーティション境界により境界間最適化が阻止される
ためです。この制限は、I/O セル、DSP ブロック、シーケンシャル・ロ
ジック、無関係なロジックを含むすべてのタイプのレジスタ・パッキン
グに適用されます。
I/O レジスタ・パッキング
I/O レジスタのパーティション間レジスタ・パッキングは、トップレベ
ル階層(およびトップ・パーティション)に入力ピンと出力ピンが存在
するが、対応する I/O レジスタが他のパーティションに存在する特定の
状況で許容されます。
入力ピンのパーティション間レジスタ・パッキングには、以下の状況が
要求されます。
■
■
2–94
入力ピンが 1 個のレジスタのみを供給する。
入力ピンとレジスタ間のパスに、それぞれ1ファンアウトを持つパー
ティションの入力ポートのみが含まれている。
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルの制約
出力レジスタのパーティション間レジスタ・パッキングには、以下の状
況が要求されます。
■
■
■
レジスタが 1 本の出力ピンのみ供給する。
出力ピンが 1 つの信号でのみ供給される。
レジスタと出力ピン間のパスに、それぞれ1ファンアウトを持つパー
ティションの出力ポートのみが含まれている。
出力イネーブル信号を持つ出力ピンは、出力イネーブル・ロジックが出
力レジスタと異なるパーティションに含まれている場合、デバイス I/O
セルにパッキングできません。出力イネーブル信号を持つ出力ピンのレ
ジスタ・パッキングを可能にするには、レジスタとトライステート・ロ
ジックが同じパーティションで定義されるように、HDL コードまたはデ
ザイン・パーティション・アサインメントを構築します。
双方向ピンは、出力イネーブル信号付きの出力ピンと同様に処理されま
す。パッキングが必要なレジスタがトライ・ステート・ロジックと同じ
パーティションにある場合、レジスタ・パッキングを実行できます。
トライ・ステート・ロジックの制約は、I/O 素子(デバイス・プリミティ
ブ)がトライ・ステート・ロジックを含むパーティションの一部として
作成されるために課されます。I/O レジスタとそのトライ・ステート・
ロジックが同じパーティションにある場合、レジスタは常にトライ・ス
テート・ロジックと一緒に I/O 素子にパッキングできます。同じパー
ティション間レジスタ・パッキング制約が、入力ピンと出力ピンの I/O
素子にも適用されます。I/O 素子は正確に 1 つの信号を I/O ピンに直接
供給しなければなりません。I/O 素子と I/O ピン間のパスに、それぞれ
1ファンアウトを持つパーティションの出力ポートのみが含まれている。
パーティション境界をまたがる I/O レジスタ・パッキングの例
以下の例で、各種 I/O およびパーティション・コンフィギュレーション
を詳細に説明しています。これらの例では、デザイン・ロジックを示す
のにブロック・デザイン・ファイル(BDF)回路図を使用しています。
例 1— 出力ピンに供給するパーティションの出力レジスタ
この例では、図 2–13 に示すように、サブデザインに 1 個のレジスタが含
まれています。
Altera Corporation
2008 年 5 月
2–95
Quartus II ハンドブック Volume 1
図 2–13. 1 個のレジスタを持ち、個別のパーティションとして指定されたサブデザイン
図 2–14 に示すように、トップレベルのデザインは、出力ピンに直接供給
する 1 ファンアウトを持つサブデザインをインスタンス化し、このサブ
デザインを個別のデザイン・パーティションとして指定します。
図 2–14. 図 2–13 のサブデザインを出力レジスタとしてインスタンス化するトップレベル・
デザイン
Quartus II ソフトウェアは、ピン out に Fast Output Register アサイン
メントが作成されている場合は、パーティション間レジスタ・パッキン
グを実行します。このタイプのパーティション間出力レジスタ・パッキ
ングが許可されるのは、サブデザインのパーティションのポート・イン
タフェースを変更する必要がなく、パーティション・ポートが出力ピン
に直接供給されるためです。
例 2— 複数の出力ピンに供給するパーティションの出力レジスタ
この例では、個別のパーティションとして指定されたサブデザインには、
図 2–13 に示すレジスタがあります。トップレベルのデザインは、図 2–15
に示すように、複数のファンアウト信号を持つ出力レジスタとしてサブ
デザインをインスタンス化します。
2–96
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルの制約
図 2–15. 図 2–13 の 2 つの出力ピンを持つサブデザインをインスタンス化するトップレベル・
デザイン
この場合、ソフトウェアは出力レジスタ・パッキングを実行しません。
ピン out にFast Output Registerアサインメントが作成されている場合、
ノードと I/O セルがデザイン・パーティション境界を越えて接続されて
いるため、Fitter がノードを I/O ピンにパッキングできないことを知ら
せるワーニングが I/O ピンに発行されます。
このタイプのパーティション間レジスタ・パッキングは、サブデザイン・
パーティションのインタフェースへの変更が必要になるため許可されま
せん。インクリメンタル・コンパイルを実行するには、デザイン・パー
ティションのインタフェースを維持する必要があります。
図 2–13 のサブデザインのレジスタを図 2–15 の出力ピン out と一緒に
パッキングさせるには、以下の変更のいずれかを行います。
■
■
■
Altera Corporation
2008 年 5 月
サブデザインへのデザイン・パーティション・アサインメントを削
除します。これにより、Fitter はすべての階層間最適化を実行でき
ます。ただし、階層のこのブロックに対するインクリメンタル・コ
ンパイルは使用できなくなります。適切なデザイン・パーティショ
ンでは、Fitter が境界間最適化を実行する必要がないように、イン
タフェースが正しく定義されている必要があります。
HDL コードを再構築し、レジスタを出力ピンと同じパーティション
に配置します。最も簡単な方法は、サブデザイン・パーティション
のレジスタを出力ピンを含むパーティションに移動することです。
これにより、Fitter はパーティション境界に違反しないで、2 つの
ノードを確実に最適化できます。
レジスタが 1 本の出力ピンのみ供給するように、HDL コードを再構
築します。Analysis & Synthesis 設定 Remove Duplicate Registers
をオフにします。図 2–16 に示すように、各レジスタが 1 本のピンに
のみ供給するように、サブデザイン HDL のレジスタを複製し、次
に図 2–17 に示すように、余分な出力ピンをトップレベル・デザイン
2–97
Quartus II ハンドブック Volume 1
の新しいポートに接続します。これによって、パーティション間レ
ジスタ・パッキングはレジスタが 1 つのファンアウトを持つ最も簡
単なケースに変換されます。
図 2–16. 2 個の出力レジスタおよび 2 個の出力ポートで変更した図 2–13 のサブデザイン
図 2–17. 2 個の出力ポートを 2 本の出力ピンに接続した図 2–15 の変更後トップレベル・デザイン
例 3— 出力ピンに供給するパーティションの出力レジスタ、出力イネー
ブル・レジスタおよびトライ・ステート・ロジック
この例では、個別パーティションとして指定されたサブデザインには、
図 2–18 に示すように、出力レジスタ、出力イネーブル・レジスタ、およ
び出力ピンをドライブするトライ・ステート・ロジックがあります。トッ
プレベル・デザインは、図 2–19 に示すように、出力ピンに直接供給する
単一ファンアウトを持つサブデザインをインスタンス化します。
2–98
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルの制約
図 2–18. 別のパーティションとして指定された、出力レジスタ、出力イネーブル・レジスタ、およ
びトライ・ステート・ロジックを含むサブデザイン
図 2–19. 図 2–18 のサブデザインをインスタンス化するトップレベル・デザイン
Quartus II ソフトウェアは、ピン out に Fast Output Enable Register ア
サインメント、Fast Output Register アサインメント、またはその両方
が作成されている場合は、パーティション間レジスタ・パッキングを実
行します。このタイプのパーティション間出力レジスタ・パッキングが
許可されるのは、サブデザインのパーティションのポート・インタフェー
スを変更する必要がなく、パーティション境界を越えてロジックを最適
化する必要がなく、またパーティション・ポートが出力ピンに直接供給
されるためです。
例 4— トライ・ステート出力ピンに供給するパーティションの出力レジ
スタと出力イネーブル・レジスタ
この例では、個別パーティションとして指定されたサブデザインに、
図 2–20 に示す 2 個のレジスタがあります。トップレベル・デザインは、
図 2–21 に示すように、出力をドライブするレジスタと、出力ピンのため
の出力イネーブル信号を含むサブデザインをインスタンス化します。
Altera Corporation
2008 年 5 月
2–99
Quartus II ハンドブック Volume 1
図 2–20. 2 個のレジスタを持ち、個別のパーティションとして指定されたサブデザイン
図 2–21. 図 2–22 のサブデザインをインスタンス化し、出力イネーブル・ロジックをドライブする
トップレベル・デザイン
この場合、ソフトウェアはレジスタ・パッキングを実行できません。ピ
ンoutにFast Output RegisterアサインメントまたはFast Output Enable
Register アサインメントが作成されている場合、ノードと I/O セルがデ
ザイン・パーティション境界を越えて接続されているため、Fitter がノー
ドを I/O ピンにパッキングできないことを知らせるワーニングが発行さ
れます。
同じ制約は、トップレベル・デザインに出力レジスタまたは出力イネー
ブル・レジスタ、およびトライ・ステート・ロジックが含まれている場
合に適用されます。ソフトウェアは、サブデザイン・パーティションを
構成するレジスタを I/O レジスタにパッキングすることはできません。
このタイプのレジスタ・パッキングは、デザイン・パーティション境界
を越えてロジックを移動し、単一の I/O デバイス素子に配置する必要が
あるため許可されません。レジスタ・パッキングを実行するには、レジ
スタをサブデザイン・パーティションの外に移動するか、トライ・ステー
ト・ロジックをサブデザイン・パーティション内に移動する必要があり
ます。以降のインクリメンタル・コンパイルでデザインの正確性を保証
するために、デザイン・パーティションの内容を維持する必要がありま
す。
2–100
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルの制約
図 2–20 のサブデザインの出力レジスタと出力イネーブル・レジスタまた
はその両方を、図 2–21 の出力ピン out でソフトウェアにパッキングさ
せるには、以下の変更のいずれかを行います。
■
■
■
サブデザインへのデザイン・パーティション・アサインメントを削
除します。これにより、Fitter はすべての階層間最適化を実行でき
ます。ただし、階層のこのブロックに対するインクリメンタル・コ
ンパイルは使用できなくなります。適切なデザイン・パーティショ
ンでは、Fitter が境界間最適化を実行する必要がないように、イン
タフェースが正しく定義されている必要があります。
HDL コードを再構築し、レジスタを出力ピンと同じパーティション
に配置します。最も簡単な方法は、サブデザイン・パーティション
のレジスタを出力ピンを含むトップレベルのパーティションに移動
することです。これにより、Fitter はパーティション境界に違反し
ないで、2 つのノードを確実に最適化できます。
レジスタとトライ・ステート・ロジックが同じパーティションに含
まれるように、HDL コードを再構築します。図 2–18 に示すように、
トライ・ステート・ロジックをトップレベル・ブロックから 2 つの
レジスタを含むサブデザインに移動します。次に、図 2–19 に示すよ
うに、トップレベル・デザインの出力ピンにサブデザインを接続し
ます。
例 5— 双方向ピンに供給するパーティションの双方向ロジック
双方向ピンの動作は、出力イネーブル信号付きの出力ピンの動作に似て
います。レジスタ・パッキングを可能にするために、レジスタを双方向
ピンをドライブするトライ・ステート・ロジックと同じパーティション
に含める必要があります。
この例では、個別パーティションとして指定されたサブデザインには、
図 2–22 に示すように、3 個のレジスタと双方向ピンのためのトライ・ス
テート・ロジックが含まれています。トップレベル・デザインは、図 2–23
に示すように、双方向ピンと出力ピンに供給するポートを含むサブデザ
インをインスタンス化します。
Altera Corporation
2008 年 5 月
2–101
Quartus II ハンドブック Volume 1
図 2–22. 3 個のレジスタおよびトライ・ステート・ロジックを持ち、個別のパーティションとして
指定されたサブデザイン
図 2–23. 図 2–25 のサブデザインをインスタンス化するトップレベル・デザイン
Quartus II ソフトウェアは、ピン bidir に Fast Output Register アサイ
ンメント、Fast Output Enable Register アサインメント、または Fast
Input Register アサインメントが作成されている場合は、パーティショ
ン間レジスタ・パッキングを実行します。このタイプのパーティション
間出力レジスタ・パッキングが許可されるのは、サブデザインのパーティ
ションのポート・インタフェースを変更する必要がなく、パーティショ
ン・ポートが双方向ピンに直接供給されるためです。
異なるパーティションにレジスタとトライ・ステート・ロジックを持つ
デザインでは、レジスタをパッキングできません。2–99 ページの「例
4—トライ・ステート出力ピンに供給するパーティションの出力レジスタ
と出力イネーブル・レジスタ」で説明する状況は、トップレベル・デザ
インで出力ピン out を双方向ピンに置き換えている場合には、双方向ピ
ンにも同様に適用されます。
2–102
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルの制約
例 6— 入力ピンにより供給されるパーティションの入力レジスタ
この例では、図 2–24 に示すように、サブデザインに 1 個のレジスタが含
まれています。トップレベル・デザインは、図 2–25 に示すように、入力
ピンによって直接供給される 1 つの fanin を持つサブデザインをインス
タンス化し、サブデザインを個別のデザイン・パーティションとして指
定します。
図 2–24. 1 個のレジスタを持ち、個別のパーティションとして指定されたサブデザイン
図 2–25. 図 2–24 のサブデザインを入力レジスタとしてインスタンス化するトップレベル・
デザイン
Quartus II ソフトウェアは、ピン in に Fast Input Register アサインメ
ントが作成されている場合は、パーティション間レジスタ・パッキング
を実行します。このタイプのパーティション間入力レジスタ・パッキン
グが許可されるのは、サブデザインのパーティションのポート・インタ
フェースを変更する必要がなく、入力ピンがパーティション・ポートに
直接供給されるためです。
例 7— 複数のファンアウトを持つ入力により供給されるパーティション
の入力レジスタ
この例では、個別のパーティションとして指定されたサブデザインには、
図 2–24 に示すレジスタがあります。トップレベル・デザインは、入力レ
ジスタとしてサブデザインをインスタンス化しますが、図 2–26 に示すよ
うに、入力ピンによって別のデスティネーションにも供給されます。
Altera Corporation
2008 年 5 月
2–103
Quartus II ハンドブック Volume 1
図 2–26. 2 つのデスティネーションを持つピンの入力レジスタとして、図 2–24 のサブデザインを
インスタンス化するトップレベル・デザイン
この場合、ソフトウェアは入力レジスタ・パッキングを実行しません。
ピン in に Fast Input Register アサインメントが作成されている場合、
ノードと I/O セルがデザイン・パーティション境界を越えて接続されて
いるため、Fitter がノードを I/O ピンにパッキングできないことを知ら
せるワーニングが I/O ピンに発行されます。
このタイプのパーティション間レジスタ・パッキングは、サブデザイン・
パーティションのインタフェースへの変更が必要になるため許可されま
せん。インクリメンタル・コンパイルを実行するには、デザイン・パー
ティションのインタフェースを維持する必要があります。
図 2–24のサブデザインのレジスタを図 2–26の出力ピンinと一緒にパッ
キングさせるには、以下の変更のいずれかを行います。
■
■
サブデザインへのデザイン・パーティション・アサインメントを削
除します。これにより、Fitter はすべての階層間最適化を実行でき
ます。ただし、階層のこのブロックに対するインクリメンタル・コ
ンパイルも使用できなくなります。適切なデザイン・パーティショ
ンでは、Fitter が境界間最適化を実行する必要がないように、イン
タフェースが正しく定義されている必要があります。
HDL コードを再構築し、レジスタを入力ピンと同じパーティション
に配置します。最も簡単な方法は、サブデザイン・パーティション
のレジスタを入力ピンを含むパーティションに移動することです。
これにより、Fitter はパーティション境界に違反しないで、2 つの
ノードを確実に最適化できます。
例 8— 入力ピンにより供給されるパーティションの反転入力レジスタ
この例では、個別のパーティションとして指定されたサブデザインには、
図 2–27 に示す反転レジスタが含まれています。トップレベル・デザイン
は、図 2–28 に示すように、入力レジスタとしてサブデザインをインスタ
ンス化します。
2–104
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルの制約
図 2–27. 1 個の反転レジスタを持ち、個別のパーティションとして指定されたサブデザイン
図 2–28. 図 2–27 のサブデザインを入力レジスタとしてインスタンス化するトップレベル・
デザイン
Quartus II ソフトウェアは、ピン in に Fast Input Register アサインメ
ントが作成されている場合は、パーティション間レジスタ・パッキング
を実行します。このタイプのパーティション間入力レジスタ・パッキン
グが許可されるのは、パーティション内の入力レジスタとの反転のため
のロジックを実装できるので、入力ピンがパーティション・ポートに直
接供給されるためです。
例9—反転入力ピンにより供給されるパーティションの入力レジスタ、ま
たは反転出力ピンに供給するパーティションの出力レジスタ
この例では、個別のパーティションとして指定されたサブデザインには、
図 2–29 に示すレジスタがあります。図 2–30 のトップレベル・デザイン
は、入力ピンが反転した入力レジスタとしてサブデザインをインスタン
ス化します。図 2–31 のトップレベル・デザインは、出力ピンに供給する
前に信号が反転した出力レジスタとしてサブデザインをインスタンス化
します。
図 2–29. 1 個のレジスタを持ち、個別のパーティションとして指定されたサブデザイン
Altera Corporation
2008 年 5 月
2–105
Quartus II ハンドブック Volume 1
図 2–30. 反転した入力ピンを持つ入力レジスタとして、図 2–29 のサブデザインをインスタンス化
するトップレベル・デザイン
図 2–31. 反転した出力ピンに供給する出力レジスタとして図 2–30 のサブデザインをインスタンス
化するトップレベル・デザイン
この場合、ソフトウェアはレジスタ・パッキングを実行しません。図 2–30
のピン in に Fast Input Register アサインメントが作成されている場合、
または図 2–31 のピン out に Fast Output Register アサインメントが作
成されている場合、ノードと I/O セルがデザイン・パーティション境界
を越えて接続されているため、Fitter がノードを I/O ピンにパッキング
できないことを知らせるワーニングが I/O ピンに発行されます。
このタイプのレジスタ・パッキングは、デザイン・パーティション境界
を越えてロジックを移動し、単一の I/O デバイス素子に配置する必要が
あるため許可されません。レジスタ・パッキングを実行するには、レジ
スタをサブデザイン・パーティションの外に移動するか、インバータを
レジスタに実装するサブデザイン・パーティション内に移動する必要が
あります。以降のインクリメンタル・コンパイルでデザインの正確性を
保証するために、デザイン・パーティションの内容を維持する必要があ
ります。
2–106
Altera Corporation
2008 年 5 月
スクリプトのサポート
図 2–29のサブデザインのレジスタを図 2–30の入力ピンinまたは図 2–31
の出力ピン out と一緒にパッキングさせるには、以下の変更のいずれか
を行います。
■
■
■
スクリプトの
サポート
サブデザインからのデザイン・パーティション・アサインメントを
削除します。これにより、Fitter はすべての階層間最適化を実行で
きます。ただし、階層のこのブロックに対するインクリメンタル・
コンパイルは使用できなくなります。適切なデザイン・パーティショ
ンでは、Fitter が境界間最適化を実行する必要がないように、イン
タフェースが正しく定義されている必要があります。
HDL コードを再構築し、レジスタをピンと同じパーティションに配
置します。最も簡単な方法は、サブデザイン・パーティションのレ
ジスタをピンを含むトップレベルのパーティションに移動すること
です。これにより、Fitter はパーティション境界に違反しないで、2
つのノードを確実に最適化できます。
レジスタとインバータが同じパーティションに含まれるように、
HDL コードを再構築します。インバータをトップレベル・ブロック
から入力ピンの図 2–27 に示すサブデザインに移動します。次に、入
力ピンの図 2–28 に示すように、トップレベル・デザインのピンにサ
ブデザインを接続します。
この章で説明する手順の実行と設定は Tcl スクリプトで行うことができ
ます。また、一部の手順はコマンド・プロンプトでも実行できます。ス
クリプティング・コマンド・オプションについて詳しくは、Quartus II
Command-Line および Tcl API Help ブラウザを参照してください。この
Help ブラウザを使用するには、コマンド・プロンプトで次のコマンドを
入力します。
quartus_sh --qhelp ↵r
「Quartus II Scripting Reference Manual」には、同じ情報が PDF 形式で
付属しています。
Tcl スクリプトについて詳しくは、
「Quartus II ハンドブック Volume 2」の
Tcl スクリプト の章を参照してください。Quartus II ソフトウェアにお
け る 設 定 お よ び 制 約 に ついて詳しくは、「Quartus II Settings File
Reference Manual」を参照してください。コマンドライン・スクリプト
について詳しくは、
「Quartus II ハンドブック Volume 2」の「CommandLine Scripting」の章を参照してください。
Altera Corporation
2008 年 5 月
2–107
Quartus II ハンドブック Volume 1
Generate Incremental Compilation Tcl Script コマンド
フル・インクリメンタル・コンパイルのためにテンプレート Tcl スクリ
プトを作成するには、Generate Incremental Compilation Tcl Script 機能
を使用します。Design Partitions Window を右クリックし、Generate
Incremental Compilation Tcl Script をクリックします。
ユーザー・インタフェースでパーティション・アサインメントを作成し
ている場合、このスクリプトにはアサインメントの Tcl 記述が含まれて
います。Tcl アサインメントについては、以下の項で説明しています。
インクリメンタル・コンパイルのためのデザインの準備
インクリメンタル・コンパイルの現在のモードを設定または変更するに
は、以下のコマンドを使用します。
set_global_assignment -name INCREMENTAL_COMPILATION \
<value>
インクリメンタル・コンパイルの <value> の設定は、以下の値のいずれ
かでなければなりません。
■
■
■
FULL_INCREMENTAL_COMPILATION— フル・インクリメンタル・
コンパイル(これがデフォルトです)
INCREMENTAL_SYNTHESIS— インクリメンタル・シンセシスのみ
OFF— インクリメンタル・コンパイルは実行されない
デザイン・パーティションの作成
パーティションを作成するには、以下のコマンドを使用します。
set_instance_assignment -name PARTITION_HIERARCHY \
<file name> -to <destination> -section_id <partition name>
<destination> はエンティティの短縮階層パスになります。短縮階層パス
は、完全な階層パスからトップレベル名を除いたものです(クオーテー
ション・マークを含む)。以下に例を示します。
"ram:ram_unit|altsyncram:altsyncram_component"
トップレベル・パーティションでは、トップレベル・エンティティの表
現にパイプ(|)シンボルを使用できます。
2–108
Altera Corporation
2008 年 5 月
スクリプトのサポート
階層ネーミング規則について詳しくは、「Quartus II
ハンドブック
Volume 1」の「Quartus II Integrated Synthesis」の章の「Node-Naming
Conventions in Quartus II Integrated Synthesis」を参照してください。
<partition name> は、ユーザー指定のパーティション名で、1024 文字未
満の固有の名前とします。名前に使用できるのは、英数字、パイプ( | )、
コロン( : )、アンダースコア( _ )だけです。アルテラでは名前をダブ
ル・クォーテーション・マーク(" ")で囲むことを推奨しています。
<file name> は、インクリメンタル・コンパイル中に内部で生成される
ネットリスト・ファイルに使用される名前です。ユーザー・インタフェー
スでパーティションを作成する場合に、ネットリスト名はインスタンス
名に基づいて Quartus II ソフトウェアで自動的に設定されます。Tcl を
使用してパーティションを作成している場合、すべてのパーティション
で固有のカスタム・ファイル名を割り当てる必要があります。トップレ
ベル・パーティションでは、指定されたファイル名は無視され、ダミー
値を使用できます。名前の保護およびプラットフォーム独立性を確保す
るために、ファイル名は状況に関係なく固有でなければなりません。例
えば、パーティションがファイル名 my_file を使用している場合、他
のパーティションはファイル名 MY_FILE を使用することはできません。
簡潔にするために、アルテラではパーティションの対応するインスタン
ス名に基づいてファイル名を指定することを推奨しています。
すべてのネットリストは、\db コンパイル・データベース・ディレクト
リに保存されます。
デザイン・パーティションのプロパティの設定
パーティションが作成された後、以下のコマンドを使用して Netlist Type
を設定します。
set_global_assignment -name PARTITION_NETLIST_TYPE <value> -section_id \
<partition name>
ネットリスト・タイプの <value> の設定は、以下の値のいずれかです。
■
■
■
■
■
■
■
Altera Corporation
2008 年 5 月
SOURCE—Source File
POST_SYNTH—Post-Synthesis
POST_FIT—Post-Fit
STRICT_POST_FIT—Post-Fit (Strict)
IMPORTED—Imported
IMPORT_BASED_POST_FIT—Post-Fit (Import-based)
EMPTY—Empty
2–109
Quartus II ハンドブック Volume 1
以下のコマンドを使用して、フィッティング後またはインポート後の
ネットリストに Fitter Preservation Level を設定します。
set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL <value>\
-section_id <partition name>
Fitter Preservation Level の <value> の設定は、以下の値のいずれかにな
ります。
■
■
■
■
NETLIST_ONLY—Netlist only
PLACEMENT—Placement
PLACEMENT_AND_ROUTING—Placement and routing
PLACEMENT_AND_ROUTING_AND_TILE— Placement and routing,
as well as the power tile setting of high-speed or low-power
上記のパーティションのプロパティについて詳しくは、
「デザイン・パー
ティションのプロパティの設定」を参照してください。
適切なフロアプラン・ロケーション・アサインメントの作
成 — 特定のデバイス・エレメント(RAM ブロックまたは
DSP ブロックなど)の除外またはフィルタリング
リソースのフィルタリングは、
LogicLock Tclパッケージのset_logiclock_
contents 関数の Tcl 引数-exclude_resources(オプション)
を使用し
ます。指定しない場合、リソース・フィルタは作成されません。
引数は入力として除外リソースのリストを使用します。リストは以下の
キーワードから成るコロン区切りの文字列です。
表 2–4. 除外されるリソースのキーワード
キーワード
2–110
リソース
REGISTER
ロジック・セルの任意のレジスタ。
COMBINATIONAL
ロジック・セルの組み合わせエレメント。
SMALL_MEM
小容量のTriMatrixメモリ・ブロック(M512またはMLAB)
MEDIUM_MEM
中容量の TriMatrix メモリ・ブロック(M4K または M9K)
LARGE_MEM
大容量の TriMatrix メモリ・ブロック(M-RAM または
M144K)
DSP
任意の DSP ブロック
VIRTUAL_PIN
任意の仮想ピン
Altera Corporation
2008 年 5 月
スクリプトのサポート
例えば、以下のコマンドはすべての DSP ブロックと M512 ブロックを除
く、alu:alu_unit 内のすべての項目を ALU 領域に割り当てます。
set_logiclock_contents -region ALU -to alu:alu_unit -exceptions \
"DSP:SMALL_MEM"
QSF で、リソース・フィルタリングは LL_MEMBER_RESOURCE_EXCLUDE
と呼ばれる特別な LogicLock メンバーシップ・アサインメントを使用し
ま す。例 え ば、QSF の以下の行は、ALU 領域に割り当てられる
alu:alu_unit エンティティにリソース・フィルタを指定するのに使用さ
れます。アサインメントの値は、以前の Tcl コマンドで使用されたリソー
ス・リスト文字列と同じ形式をとります。
set_instance_assignment -name LL_MEMBER_RESOURCE_EXCLUDE "DSP:SMALL_MEM" \
-to "alu:alu_unit" -section_id ALU
ボトムアップ・デザイン・パーティション・スクリプトの
生成
スクリプトを生成するために、Tcl プロンプトでは以下の Tcl コマンドを
入力します。
generate_bottom_up_scripts <options> ↵r
コマンドはコマンドが使用される前に、以下のコマンドを使用してロー
ドする必要がある database_manager パッケージの一部です。
load_package database_manager
スクリプトを生成する前に、プロジェクトを開く必要があります。
Tcl オプションは GUI で使用できるものと同じです。各オプションの正
確なフォーマットは表 2–5 に規定されています。
表 2–5. Tcl コマンドでボトムアップ・パーティション・スクリプトを生成するための
オプション ( 1 / 2 )
オプション
デフォルト
-include_makefiles <on|off>
オン
-include_project_creation <on|off>
オン
-include_virtual_pins <on|off>
オン
-include_virtual_pin_timing <on|off>
オン
-include_virtual_pin_locations <on|off>
オン
Altera Corporation
2008 年 5 月
2–111
Quartus II ハンドブック Volume 1
表 2–5. Tcl コマンドでボトムアップ・パーティション・スクリプトを生成するための
オプション ( 2 / 2 )
オプション
デフォルト
-include_logiclock_regions <on|off>
オン
-include_all_logiclock_regions <on|off>
オン
-include_global_signal_promotion <on|off>
オフ
-include_pin_locations <on|off>
オン
-include_timing_assignments <on|off>
オン
-include_design_partitions <on|off>
オン
-remove_existing_regions <on|off>
オン
-disable_auto_global_promotion <on|off>
オフ
-bottom_up_scripts_output_directory <output directory>
現在のプロジェクト・
ディレクトリ
-virtual_pin_delay <delay in ns>
(1)
表 2–5 の注 :
(1)
デフォルトなし。
以下の例では、Tcl コマンドの使用方法を示しています。
load_package database_manager
set project test_proj
project_open $project
generate_bottom_up_scripts -bottom_up_scripts_output_directory test \
-include_virtual_pin_timing on -virtual_pin_delay 1.2
project_close
コマンドライン・サポート
コマンド・プロンプトでスクリプトを生成するには、以下のコマンドを
入力します。
quartus_cdb <project name> --generate_bottom_up_scripts=on <options> r
この場合も、オプションは GUI で作成したスクリプトと同じものにマッ
プされます。オプションを追加する場合は、コマンドライン・コールに
“--<option_name>=<val>” を追加します。
2–112
Altera Corporation
2008 年 5 月
スクリプトのサポート
コマンド・プロンプト・オプションは GUI で使用できるものと同じで
す。表 2–6 に表記されています。
表 2–6. ボトムアップ・パーティション・スクリプトを生成するためのオプション
オプション
デフォルト
--include_makefiles_with_bottom_up_scripts=<on|off>
オン
--include_project_creation_in_bottom_up_scripts=<on|off>
オン
--include_virtual_pins_in_bottom_up_scripts=<on|off>
オン
--include_virtual_pin_timing_in_bottom_up_scripts=<on|off>
オン
--bottom_up_scripts_virtual_pin_delay=<delay in ns>
(1)
--include_virtual_pin_locations_in_bottom_up_scripts=<on|off>
オン
--include_logiclock_regions_in_bottom_up_scripts=<on|off>
オン
--include_all_logiclock_regions_in_bottom_up_scripts=<on|off>
オン
--include_global_signal_promotion_in_bottom_up_scripts=<on|off>
オフ
--include_pin_locations_in_bottom_up_scripts=<on|off>
オン
--include_timing_assignments_in_bottom_up_scripts=<on|off>
オン
--include_design_partitions_in_bottom_up_scripts=<on|off>
オン
--remove_existing_regions_in_bottom_up_scripts=<on|off>
オン
--disable_auto_global_promotion_in_bottom_up_scripts=<on|off>
オフ
--bottom_up_scripts_output_directory=<output directory>
現在のプロジェクト・
ディレクトリ
表 2–6 の注 :
(1)
デフォルトなし。仮想ピン・タイミングを含める場合は、このオプションを指定する必要があります。
トップレベル・プロジェクトで使用されるパーティション
のエクスポート
quartus_cdb 実行コマンドは、以下のコマンドを使用してボトムアッ
プ・インクリメンタル・コンパイル・フローのファイルをエクスポート
する場合に使用します。
quartus_cdb --INCREMENTAL_COMPILATION_EXPORT=<file> \
[--incremental_compilation_export_netlist_type=<POST_SYNTH|POST_FIT>] \
[--incremental_compilation_export_partition_name=<partition name>] \
[--incremental_compilation_export_routing=<on|off>]
<file> 引 数 は エ ク ス ポートされたファイルのファイル・パスです。
<partition name> は、階層パスではなくパーティションの名前です。オプ
ションを指定しない場合、実行コマンドは QSF ファイルの任意の設定を
使用します。オプションを指定した場合はデフォルト値を使用します。
Altera Corporation
2008 年 5 月
2–113
Quartus II ハンドブック Volume 1
デフォルトのパーティションは、プロジェクトのトップレベルのパー
ティションで、デフォルトのネットリスト・タイプはポスト・フィット、
配線のデフォルトはオンです(エクスポートされた配線をサポートする
すべてのデバイス・ファミリ)。
このコマンドはアサインメント INCREMENTAL_COMPILATION_EXPORT_
NETLIST_TYPEを読み出して、
エクスポートするネットリストのタイプを
決定します。デフォルトは Post-Fit です。
また、flowTcl パッケージに含まれる execute_flowTcl コマンドで、
フローINCREMENTAL_COMPILATION_EXPORTを使用することもできま
す。
以下のコマンドを使用して特定のパーティションに.qxpファイルをエク
スポートし、ネットリスト・タイプを選択して、配線をエクスポートす
るかどうかを指定します。
load_package flow
set_global_assignment –name INCREMENTAL_COMPILATION_EXPORT_FILE <filename>
set_global_assignment –name INCREMENTAL_COMPILATION_EXPORT_NETLIST_TYPE \
<POST_FIT|POST_SYNTH>
set_global_assignment -name \
INCREMENTAL_COMPILATION_EXPORT_PARTITION_NAME <partition name>
set_global_assignment -name INCREMENTAL_COMPILATION_EXPORT_ROUTING \
<on|off>
execute_flow –INCREMENTAL_COMPILATION_EXPORT
デフォルトのパーティションは、プロジェクトのトップレベルのパー
ティションで、デフォルトのネットリスト・タイプはポスト・フィット、
配線のデフォルトはオンです(エクスポートされた配線をサポートする
すべてのデバイス・ファミリ)。
コンパイル後に必ずエクスポートを実行するオプションをオンにするに
は、以下の Tcl コマンドを使用します。
set_global_assignment -name AUTO_EXPORT_INCREMENTAL_COMPILATION ON
下位レベル・パーティションのトップレベル・プロジェク
トへのインポート
quartus_cdb 実行コマンドは、以下のコマンドを使用して下位レベル・
パーティションをインポートする場合に使用します。
quartus_cdb -- INCREMENTAL_COMPILATION_IMPORT ↵r
2–114
Altera Corporation
2008 年 5 月
スクリプトのサポート
また、flowTcl パッケージに含まれる execute_flowTcl コマンドで、
INCREMENTAL_COMPILATION_EXPORTと呼ばれるフローを使用するこ
ともできます。
以下のスクリプト例は、Tcl スクリプトを使用してパーティションをイン
ポートする方法を示しています。
load_package flow
# commands to set the import-related assignments for each partition
execute_flow --INCREMENTAL_COMPILATION_IMPORT
PARTITION_IMPORT_FILE アサインメントを使用して、インポートさ
れたファイルの位置を指定します。このアサインメントで指定される
ファイルは、インポート中にのみ読み出されます。例えば、プロジェク
トはインポート後には下位レベル・プロジェクトのすべてのファイルか
ら完全に独立しています。コマンドラインと Tcl の flow では、このアサ
インメントを空以外の値に設定しているパーティションはすべて無視さ
れます。
以下のアサインメントでは、パーティションをインポートする方法を指
定しています。
PARTITION_IMPORT_PROMOTE_ASSIGNMENTS = <on|off>
PARTITION_IMPORT_NEW_ASSIGNMENTS = <on|off>
PARTITION_IMPORT_EXISTING_ASSIGNMENTS = \
replace_conflicting | skip_conflicting
PARTITION_IMPORT_EXISTING_LOGICLOCK_REGIONS = \
replace_conflicting | update_conflicting | skip_conflicting
makefiles
ボトムアップ・デザイン・フローの一部として、makefile でインクリメ
ン タ ル・コ ン パ イ ル を 使 用 す る 方 法 の 例 に つ い て は、
/qdesigns/incr_comp_makefile サブディレクトリ内の incr_comp 例に
付属する read_me.txt ファイルを参照してください。ボトムアップ・イ
ンクリメンタル・コンパイル・フローを使用する場合、Generate BottomUp Design Partition Scripts 機能は、デザイン・ファイルが変更されるた
びに下位レベルのデザイン・パーティションを自動的にエクスポートし、
トップレベル・プロジェクトにインポートする makefileを作成できます。
Altera Corporation
2008 年 5 月
2–115
Quartus II ハンドブック Volume 1
推奨されるデザイン・フローおよびコンパイルのアプリ
ケーション例 — スクリプトおよびコマンドライン動作
この項では、章の主要なセクションで説明したいくつかのトピックに関
するスクリプト例を示します。
例 2–1 に示すスクリプトは、AB_project と呼ばれるプロジェクトを開
き、最初に 2 つのパーティション、エンティティ A と B をセットアップ
し、最初の完全なコンパイルを実行します。
例 2–1. AB_project (1)
set project AB_project
package require ::quartus::flow
project_open $project
# Ensure that incremental compilation is turned on
set_global_assignment -name INCREMENTAL_COMPILATION \
FULL_INCREMENTAL_COMPILATION
# Set up the partitions
set_instance_assignment -name PARTITION_HIERARCHY \
db/A_inst -to A –section_id "Partition_A"
set_instance_assignment -name PARTITION_HIERARCHY \
db/B_inst -to B –section_id "Partition_B"
# Set the netlist types to post-fit for subsequent
# compilations (all partitions are compiled during the
# initial compilation since there are no post-fit
# netlists)
set_global_assignment –name PARTITION_NETLIST_TYPE \
POST_FIT –section_id "Partition_A"
set_global_assignment –name PARTITION_NETLIST_TYPE \
POST_FIT –section_id "Partition_B"
# Run initial compilation:
export_assignments
execute_flow -full_compile
project_close
1 つのパーティションに対するソース・ファイル変更時のコン
パイル時間の短縮 — コマンドライン例
例のバックグランド:前項のスクリプト例に示す、最初のコンパイルを
実行しました。パーティション A の HDL ソース・ファイルを変更し、
リコンパイルする予定です。
2–116
Altera Corporation
2008 年 5 月
スクリプトのサポート
標準フロー・コンパイル・コマンドを以下の Tcl スクリプトで実行します。
execute_flow –full_compile
または、システム・コマンド・プロンプトで以下のコマンドを入力します。
quartus_sh --flow compile AB_projectr↵
パーティション B のソース・ファイルは、A に依存していないと仮定し、
A のみをリコンパイルします。B の配置とそのタイミング性能は維持さ
れ、コンパイル時間が大幅に短縮されます。
タイミング・クリティカルなパーティションの配置を最適化す
る
例のバックグランド:2–116 ページの「推奨されるデザイン・フローお
よびコンパイルのアプリケーション例—スクリプトおよびコマンドライ
ン動作」のスクリプト例に示す、最初のコンパイルを実行しました。フィ
ジカル・シンセシスなどの Fitter 最適化を、パーティション A にのみ適
用する予定です。HDL ファイルは変更していません。
パーティション B に対する以前のコンパイル結果が維持されるように、
また Fitter 最適化がパーティション A の合成後のネットリストに適用さ
れるように、B のネットリスト・タイプを Post-Fit に設定し(最初のコ
ンパイルですでに設定済み、ただし念のためにここでも設定)、A のネッ
トリスト・タイプを Post-Synthesis に設定します。例 2–2 にこれを示し
ます。
例 2–2. AB_project (2)
set project AB_project
package require ::quartus::flow
project_open $project
# Turn on Physical Synthesis Optimization
set_global_assignment -name \
PHYSICAL_SYNTHESIS_REGISTER_RETIMING ON
# For A, set the netlist type to post-synthesis
set_global_assignment –name PARTITION_NETLIST_TYPE POST_SYNTH \
–section_id "Partition_A"
# For B, set the netlist type to post-fit
set_global_assignment –name PARTITION_NETLIST_TYPE POST_FIT \
–section_id "Partition_B"
# Run incremental compilation:
Altera Corporation
2008 年 5 月
2–117
Quartus II ハンドブック Volume 1
export_assignments
execute_flow -full_compile
project_close
まとめ
この章で説明した Quartus II のインクリメンタル・コンパイル機能では、
デザインのロジックを変更した場合、変更されていないロジックの結果
と性能を維持できます。インクリメンタル・コンパイルのさまざまなア
プリケーションにより、トップダウンまたはボトムアップ・デザイン手
法を使用して、高集積度 FPGA を設計しながら生産性を高めることがで
きます。
参考資料
この章では以下のドキュメントを参照しています。
■ 「Best Practices for Incremental Compilation Partitions and Floorplan
Assignments」の章(Quartus II ハンドブック Volume 1)
■ 「Command-Line Scripting」
の章(Quartus II ハンドブック Volume 2)
■ 「Design Debugging Using the SignalTap II Embedded Logic
Analyzer」の章(Quartus II ハンドブック Volume 3)
■ 「Engineering Change Management with the Chip Planner」の章
(Quartus II ハンドブック Volume 2)
■ 「In-System Debugging Using External Logic Analyzers」の章
(Quartus II ハンドブック Volume 3)
■ 「Quartus II Integrated Synthesis」の章(Quartus II ハンドブック
Volume 1)
Quartus II Settings File Reference Manual
■ 「Quick Design Debugging Using SignalProbe」の章(Quartus II ハ
ンドブック Volume 3)
■ 「Tcl Scripting」の章(Quartus II ハンドブック Volume 2)
■
2–118
Altera Corporation
2008 年 5 月
改訂履歴
表 2–7 に、本資料の改訂履歴を示します。
改訂履歴
表 2–7. 改訂履歴 ( 1 / 4 )
日付およびド
キュメント・
バージョン
2008 年 5 月
v8.0.0
変更内容
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
Altera Corporation
2008 年 5 月
概要
Best Practices for Incremental Compilation Partition and Quartus IIソフトウェア
Floorplan Assignments の章へいくつか参照を追加。
v8.0 のための更新。
「Quartus II コンパイル・フローの選択」の項を簡略化。
「トップダウンとボトムアップのコンパイル・フロー」の項
の資料を明確化し、“ 混在 ” デザイン・フローに関する情報を
追加し、HardCopy ASIC フローに関する注を追加。
表 2–1 から “ デザインの再合成時 ” および “ デザインの再
フィッティング時 ” を削除。
「デザイン・パーティションの選択および作成」の項を再編
成。
Design Partition Planner の使用方法を追加。
「デザイン・パーティションの Netlist Type の設定」の表 2–2
にデザイン変更に関する情報を追加。
インポートされる空のパーティションに対する HDL ラッ
パー・ファイルの要件を削除。
「パーティションの自動再合成を実行するのはどのような変
更でしょうか?」の項に詳細を追加。
「どの LogicLock 領域の変更が再フィッティングを実行する
か」の項を追加。
既存の項である “ 適切なデザイン・パーティションおよび
LogicLock 領域を作成するためのガイドライン ” を削除。
これ
は「Best Practices for Incremental Compilation Partitions and
Floorplan Assignments」の章で扱われており、一部の資料が
ドキュメントの他の項に移動したため。
アプリケーション例の名称を変更し、再編成。
「トップダウン・コンパイル・フローの複数パーティション・
デザインの 1 つのを除くすべてのクリティカル・パーティ
ションの配置および前出の例との組み合わせ」の例を削除。
アーカイブ時にバージョン互換のデータベース使用の推奨
を追加。
ボトムアップ・フローでの HardCopy ASIC 制約を明確化。
ボトムアップ・フローでの SDC 制約のエクスポートとイン
ポートを明確化。
「タイミング・クリティカルなパーティションの配置を最適
化する」の項を追加。
「エクスポートされたパーティションを使用したソース・
ファイルをインクルードしないデザインの送信」の項を追
加。
2–119
Quartus II ハンドブック Volume 1
表 2–7. 改訂履歴 ( 2 / 4 )
日付およびド
キュメント・
バージョン
2007 年 10 月
v7.2.0
変更内容
●
●
●
●
●
●
●
●
●
2–120
概要
2–1 ページの “ はじめに ” を更新。
Quartus IIソフトウェア
2–3 ページの “Quartus II コンパイル・フローの選択 ” を更新。 v7.2 のための更新。
タイトルを変更し、“ インクリメンタル・コンパイルのための
デザインの準備 ” の項を 2–11 ページの “ クイック・スタート・
ガイド – インクリメンタル・コンパイル・フローのステップ
の概要 ” に更新。
以下を更新“HDLまたは回路デザインのインスタンス、あるい
は
(サードパーティ合成ツールで作成した)
VQM または EDIF
ネットリスト・インスタンスに対して、パーティション・ア
サインメントを行うことができます。ソース・ファイルの変
更時にインクリメンタル・コンパイルを利用する場合、各
パーティションのトップレベルのデザイン・エンティティ
は、固有のデザイン・ファイルを保持している必要がありま
す。別々のパーティションに 2 つの異なるエンティティを定
義したが、それらが同じデザイン・ファイルにある場合、デ
ザイン・ファイル内のいずれかのエンティティを変更した場
合は、両方のパーティションをリコンパイルする必要がある
ため、インクリメンタル・コンパイルを維持することはでき
ません(2–18 ページ)。
2–19 ページの “ デザイン・パーティションの作成 ” を更新。
2–30ページの“LogicLockロケーション・アサインメントによ
るデザイン・フロアプランの作成 ” を更新。
2–33ページの“ボトムアップ・デザイン・フローのためのパー
ティションのエクスポートとインポート ” を更新。
2–47 ページの “ 適切なデザイン・パーティションおよび
LogicLock 領域を作成するためのガイドライン ” を更新。
2–77 ページの “ インクリメンタル・コンパイルの制約 ” を更
新。
Altera Corporation
2008 年 5 月
改訂履歴
表 2–7. 改訂履歴 ( 3 / 4 )
日付およびド
キュメント・
バージョン
2007 年 5 月
v7.1.0
変更内容
●
●
●
●
●
●
●
●
●
2007 年 3 月
v7.0.0
ページ 2–3 の “Quartus II コンパイル・フローの選択 ” を更新。 い く つ か の ダ イ ア ロ
ページ 2–10 の “ インクリメンタル・コンパイルのためのデザ グ・ボックスの図を削
除。Arria GX デバイス
インの準備 ” を更新。
の
サ ポ ー ト を 追 加。
表 2–1 と表 2–3 を更新。
Fitter
Preservation
2–61 ページの “ 推奨されるデザイン・フローおよびコンパイ
Level の Post-Fit 配置、
ルのアプリケーション例 ” のデザインを更新。
配線、およびタイトル
2–72 の “ デザイン・フロー7— IP の再利用のためのハード • ワ
を追加。
イヤード・マクロの作成 ” に新しい例を追加。
2–76 ページの “ フル・インクリメンタル・コンパイルに代わ
るインクリメンタル・シンセシスのみの使用 ” を移動し、簡略
化。
2–81ページの “HardCopy のコンパイル・フロー&drq;を更新。
2–81 ページの “TimeQuest タイミング・アナライザおよび
SDC 制約のサポート ” を更新。
2–98 ページの “ デザイン・パーティションのプロパティの設
定 ” を更新。
2–106 ページの “ 参考資料 ” を追加。
内容の変更はなし。
2006 年 11 月 v6.1.0 バージョン 6.0.0 の 1 章を 2 章に変更。
章を再編成して、推奨事項とガイドラインをまとめてグループ
化。
Quartus II ソフトウェア v6.1 のための更新。
● Stratix III デバイスのサポートを追加。
● Incremental Compilation Advisor の情報を追加。
● これでフル・インクリメンタル・コンパイル・オプションが
デフォルトでオンに設定される。
● プロジェクト内で下位レベル・ブロックをエクスポートする
新機能を追加。
● Automatically export design partition after compilation オ
プションの場所を変更。
● HardCopy コンパイル・フローのサポートを追加。
● ボトムアップ・フローに配線のエクスポート機能を追加。
● 適切なデザイン・パーティションを作成するためのI/Oポート
のガイドラインを追加。
● SignalProbe ピンの制限および Chip
Planner による
Engineering Change Management を更新。
Altera Corporation
2008 年 5 月
概要
—
Stratix III デバイスのサ
ポ ー ト を 追 加。
Quartus IIソフトウェア
v6.1 の新機能および更
新に関する情報を追
加。
2–121
Quartus II ハンドブック Volume 1
表 2–7. 改訂履歴 ( 4 / 4 )
日付およびド
キュメント・
バージョン
変更内容
概要
2006 年 5 月 v6.0.0 階層およびチーム・ベース・デザインのための Quartus II イン
クリメンタル・コンパイルに名称を変更。
Quartus II ソフトウェア v6.0 のための更新。
● 新規デバイス・サポート情報を追加。
● トップダウンとボトムアップのデザイン・フロー情報を追
加。
● インクリメンタル・コンパイルを使用したデザインのコンパ
イル情報を追加。
● 適切なフロアプラン・ロケーション・アサインメントを作成
するための推奨事項を追加。
● レジスタ・パッキングおよびパーティション境界情報を追
加。
● Chip Editor を使用した ECO を追加。
● SignalProbe 再適用のためのチェックおよび保存方法の情報
を追加。
● ユーザー・シナリオを追加。
—
2005年12月 v5.1.1 マイナーな表記規則の更新。
—
2005年10月 v5.1.0 Quartus II ソフトウェア v5.1 のための更新。
—
2005 年 8 月 v5.0.1 クロス・パーティション・レジスタ・パッキングの資料を追
加。
—
2005 年 5 月 v5.0.0 初版
—
2–122
Altera Corporation
2008 年 5 月