Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Altera Corporation2007年 5月
この資料は英語版を翻訳したもので、内容に相違ください。設計の際には、最新の英語版で内容を
QII52007-7.1.0
が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用
11. ネットリストおよびフィジカル・シンセシス
の最適化
ご確認ください。はじめに Quartus® IIソフトウェアは、標準の Quartus IIコンパイル・フローの過程で実行される最適化に加えて、フィジカル・シンセシスを含む高度なネットリスト最適化オプションを提供します。これらのオプションの効果はデザインの構造によって異なりますが、ネットリスト最適化は、使用される合成ツールに関係なく、デザインの性能を改善するのに役立ちます。これらの最適化に対するデバイス・サポートはさまざまです。詳しくは、該当する項を参照してください。
ネットリスト最適化オプションは、アルテラ固有のプリミティブでデザインを記述するネットリスト(atom ネットリスト)を使って適用されます。atomネットリスト・ファイルが取り得る形式は、サードパーティ合成ツールで生成される Electronic Design Interchange Formatファイル(.edf) または Verilog Quartus マッピング・ファイル (.vqm)、あるいはQuartus II ソフトウェアが内部で使用するネットリストです。ネットリスト最適化は、合成時またはフィッティング時に、Quartus II コンパイル・フローの異なるステージで適用されます。
合成ネットリスト最適化は、Quartus IIコンパイル・フローの合成ステージで行われます。合成ネットリスト最適化では、サードパーティ合成ツールからの合成ネットリスト出力の変更、または Quartus II合成機能の中間ステップ(最適化のうちの 1つはサードパーティ合成ネットリストにのみ適用されます)としての変更が行われます。これらのネットリストの変更は、選択した最適化手法に応じて、面積または速度の点でメリットが得られます。
フィジカル・シンセシスの最適化は、Quartus II コンパイル・フローのフィッタ・ステージで行われます。これらの最適化により、ネットリストに対して配置固有の変更が行われ、特定のアルテラ・デバイスの性能結果が改善されます。
この章では、Quartus IIソフトウェアでのネットリスト最適化によって、デザインをどのように変更でき、また結果の質を向上させるのにどのように役立てることができるかについて説明します。11–3ページの「合成ネットリスト最適化」および 11–12ページの「フィジカル・シンセシス最適化」の項では、適用可能な最適化がどのように機能するかについて説明しています。この章では、さらに、バック・アノテーションによるコンパイル結果の維持、および新しいネットリストの書き出しについての情報を提供し、またさまざまなオプションを適用するためのガイドラインを示します。
11–1
Quartus II ハンドブック Volume 2
合成ネットリスト最適化オプションまたはフィジカル・シンセシス・オプションをオンにすると、デザイン内のプリミティブのノード名を変更することができます。LogicLock™ またはSignalTap® IIロジック・アナライザやフォーマル検証など、固定ノード名が必要な検証フローを使用する場合は、ノード名が変更されている可能性があることを考慮しなければなりません。デザイン・フローで固定ノード名が要求される場合、合成ネットリスト最適化オプションとフィジカル・シンセシス・オプションをオフにする必要があることもあります。
プリミティブ・ノード名は合成時に指定されます。ネットリスト最適化が適用される場合、プリミティブの作成時および削除時にノード名を変更できます。サード・パーティ合成ツールのロジックを維持するために適用されるハードウェア記述言語(HDL)の属性は、Quartus II ソフトウェアが読み出す atom ネットリストには書き込まれないので適用できません。Quartus IIソフトウェアで合成を行う場合、Preserve Register(preserve)および KeepCombinational Logic(keep)属性を使用して、デザイン内の特定のノードを維持することができます。
Quartus II ソフトウェアで合成時にこれらの属性を使用する方法について詳しくは、「Quartus II ハンドブック Volume 1」の「Quartus II の合成機能」の章を参照してください。
11–2 Altera Corporation暫定版 2007年 5月
合成ネットリスト最適化
合成ネットリスト最適化
合成ネットリスト最適化オプションを表示および変更するには、Assignmentsメニューの Settingsをクリックします。図 11-1に示すように、Category リストで Analysis & Synthesis Settings を選択し、Synthesis Netlist Optimizationsを選択して、合成時にネットリスト最適化を実行するためのオプションを指定します。
図 11-1. Synthesis Netlist Optimizationsページ
「WYSIWYGプリミティブ再合成」および 11–6ページの「ゲート・レベル・レジスタのリタイミング」の項では、これらの合成ネットリスト最適化オプションと、デザインに対する結果の質を向上させるのに、どのように役立てることができるかについて説明します。
Altera Corporation 11–32007年 5月 暫定版
Quartus II ハンドブック Volume 2
WYSIWYGプリミティブ再合成
デザインをアルテラ固有のプリミティブとして規定する atom ネットリスト・ファイルがある場合、Perform WYSIWYG primitive resynthesis(using optimization technique specified in Analysis & Synthesissettings) 合成オプションを使用することができます。atom ネットリスト・ファイルは、Electronic Design Interchange Formatファイルまたはサードパーティ合成ツールで生成された Verilog Quartus マッピング・ファイルのいずれの形式でも構いません。このオプションを選択するには、Assignments メニューの Settings をクリックします。Category リストで Analysis & Synthesis Settings を選択し、Synthesis NetlistOptimizations を選択して、さらに Perform WYSIWYG primitiveresynthesis (using optimization technique specified in Analysis &Synthesis settings) をオンにします。デザインの一部についてのみWYSIWYG再合成を実行する場合は、アサインメント・エディタを使用して Perform WYSIWYG primitive resynthesis ロジック・オプションをデザインの低レベル・エンティティに割り当てることができます。このオプションは、HardCopy®シリーズ、Stratix®シリーズ、Cyclone®シリーズ、MAX® II、または APEX™シリーズのデバイス・ファミリで使用できます。
Perform WYSIWYG primitive resynthesisオプションは、Quartus IIソフトウェアに、atom ネットリストにあるロジック・エレメント(LE)のロジック・ゲートへのマッピングを解除し、次にアルテラ固有のプリミティブにゲートをマッピングし直すよう指示します。この機能によって、Quartus IIソフトウェアは、リマッピング・プロセス中のデバイス・アーキテクチャに固有の異なる手法を使用することができます。この機能は、プロジェクトに指定されたOptimization Techniqueを使用してデザインをリマップします。
このオプションをオンにするには、Assignmentsメニューの Settingsをクリックします。Categoryリストで、Analysis & Synthesis Settingsを選択します。Analysis & Synthesis Settings ページの OptimizationTechniqueの下で、Speed、Area、またはBalancedを選択して、Quartus IIテクノロジ・マッパがデザインを最適化する方法を指定します。アルテラの多くのデバイス・ファミリでは、Balanced の設定がデフォルトになっています。この設定はデザインのタイミング・クリティカルな部分を速度について最適化し、残りのを面積について最適化します。
Optimization Techniqueオプションについて詳しくは、「Quartus IIハンドブックVolume 1」の「Quartus IIの合成機能」の章を参照してください。
図 11-2に、この機能に対する Quartus IIソフトウェアのフローを示します。
11–4 Altera Corporation暫定版 2007年 5月
合成ネットリスト最適化
図 11-2. WYSIWYGプリミティブ再合成
Quartus II合成機能を使用している場合、Perform WYSIWYG primitiveresynthesisオプションは適用できません。Quartus IIの合成では、アルテラ・プリミティブのマッピングを解除する必要はありません。それらのプリミティブはWYSIWYGプリミティブ再合成オプションを指定して使用する手法を用いた合成ステップで、既にマッピングされています。
PerformWYSIWYG primitive resynthesisオプションでは、LCELLプリミティブまたは LE プリミティブとも呼ばれるロジック・セルと、通常の I/O プリミティブ(レジスタを含むことがあります)に対してのみ、マッピングの解除とリマップが行われます。DDR(Double Data Rate)I/O プリミティブ、メモリ・プリミティブ、デジタル信号処理(DSP)プリミティブ、およびキャリー / カスケード・チェイン内のロジック・セルには影響を与えません。サードパーティ IP(Intellectual Property)などの暗号化された Verilog Quartus マッピング・ファイルまたはElectronic Design Interchange Formatファイルにも影響しません。
このオプションをオンにすると、atom ネットリストのプリミティブが分割され、Quartus IIソフトウェア内でリマップされるので、サードパーティ合成ツールからの Verilog Quartus マッピング・ファイルまたはElectronic Design Interchange Formatファイルのノード名が大幅に変更されることがあります。レジスタの数を最小限に抑え、重複を削除することもできますが、削除されないレジスタはリマップ後も同じ名前を有します。
Un-Map
Re-Map
Atom Netlist
Place&
Route
LE
LE
LE
LE LE
Altera Corporation 11–52007年 5月 暫定版
Quartus II ハンドブック Volume 2
Netlist Optimizations ロジック・オプションが Never Allow に設定されたノードまたはエンティティは、WYSIWYGプリミティブ再合成の際に影響を受けません。このロジック・オプションを適用するには、Assignmentsメニューの Assignment Editorをクリックします。このオプションは、デザインの部分に対するWYSIWYG再合成を無効にします。
ゲート・レベル・レジスタのリタイミング
Perform gate-level register retiming オプションでは、タイミングのバランスを図るためのレジスタの移動が可能になるために、Quartus II ソフトウェアはタイミング・クリティカル・パスと非クリティカル・パス間の遅延をトレードオフできます。11–7ページの図 11-3の例を参照してください。このオプションは、Arria GX、HardCopy シリーズ、Stratixシリーズ、Cycloneシリーズ、MAX II、および APEXシリーズのデバイス・ファミリで使用できます。このオプションを設定するには、Assignments メニューの Settings をクリックします。Category リストで、Analysis & Synthesis Settings を選択し、Synthesis NetlistOptimizations を選択します。Synthesis Netlist Optimizations ページで、Perform gate-level register retimingをオンにします。
Perform gate-level register retiming オプションがオンに設定されている場合、デザインの機能性は変化しません。ただし、デザインのいずれかのレジスタに Power-Up Don’t Careロジック・オプションが割り当てられている場合、このレジスタとロジックの移動により、パワーアップ時のレジスタ値が変化することがあります。Power-Up Don’t Care ロジック・オプションは、デフォルトでグローバルにオフに設定されています。このオプションのデフォルト設定を変更するには、Assignmentsメニューの Settings をクリックします。Category リストで、Analysis& Synthesis Settingsを選択します。Analysis & Synthesis Settingsページで、More Settingsをクリックします。
アサインメント・エディタを使用して、個々のレジスタまたはエンティティに対して Power-Up Don't Careロジック・オプションを設定できます。Power-Up Level ロジック・オプションを用いて、個々のレジスタまたはエンティティにパワーアップ値を指定することもできます。パワーアップ値が明示的に割り当てられたレジスタは、他の値が明示的に割り当てられているレジスタとは結合されません。
図 11-3にゲート・レベルでのレジスタのリタイミング例を示します。ここで、レジスタを組み合わせロジックと相対的に移動させることによって、10 nsのクリティカルな遅延が低減されます。
11–6 Altera Corporation暫定版 2007年 5月
合成ネットリスト最適化
図 11-3.ゲート・レベル・レジスタのリタイミング図
レジスタのリタイミングによって、ゲート・レベルでの変更が行われます。サードパーティ合成ツールからの atom ネットリストを使用している場合、Perform WYSIWYG primitive resynthesisオプションも使用して、素子レベル・プリミティブのゲートへのマッピングを解除し(これによってレジスタのリタイミングの実行が可能になります)、ゲートをアルテラ・プリミティブにマッピングし直さなければなりません。デザインで Quartus IIの合成機能が使用されている場合、リタイミングは合成中にデザインがアルテラ・プリミティブにマップされる前に行われます。デザイン内でインスタンス化されたメガファンクションは、常にQuartus IIソフトウェアを使用して合成されます。
図 11-4に、Quartus IIの合成機能、およびサードパーティ atomネットリストの場合のデザイン・フローを示します。
図 11-4.ゲート・レベル・シミュレーション
ゲート・レベル・レジスタのリタイミング・オプションでは、レジスタを組み合わせゲート外でのみ移動させることができます。レジスタの移動は、ユーザがインスタンス化した LCELL プリミティブ、メモリ・ブロック、DSPブロック、またはユーザがインスタンス化したキャリー /カスケード・チェインを越えて行われることはありません。レジスタのリタイミングを実行する場合、キャリー /カスケード・チェインは常にそのままの状態に保たれます。
Altera Corporation 11–72007年 5月 暫定版
Quartus II ハンドブック Volume 2
レジスタのリタイミングの 1つの利点は、レジスタを組み合わせロジック・ブロックの入力から出力に移動でき、潜在的にレジスタを組み合わせる能力があることです。この場合、図 11-5に示すように、いくつかのレジスタが削除され、1つが出力に作成されます。
図 11-5.レジスタのリタイミングによるレジスタの結合
レジスタのリタイミング・オプションでは、以下の条件が満たされている場合にこのような状況で、レジスタの移動と組み合わせのみ行うことができます。
■ すべてのレジスタに同じクロック信号がある。■ すべてのレジスタに同じクロック・イネーブル信号がある。■ すべてのレジスタに、同じ条件下でアクティブになる非同期コントロール信号がある。
■ 1つのレジスタにのみVCCまたはGND以外の非同期ロードがある。
リタイミングによって常に、組み合わせブロックの出力にあるレジスタから、組み合わせブロックの入力に複数のレジスタを作成できます。この場合、新しいレジスタは同じクロックとクロック・イネーブルを持ちます。同等な機能を提供するために、非同期コントロール信号とパワーアップ・レベルが前のレジスタから作られています。
ゲート・レベル・リタイミング・レポートは、レジスタのリタイミング時に作成および削除されたレジスタのリストを提供します。このレポートにアクセスするには、Processing メニューの Compilation Report をクリックします。Analysis & Synthesisリストで、Optimization Resultsを選択し、Netlist Optimizations を選択して、Gate-level Retiming をクリックします(図 11-6)。
リタイミング・プロセスでは、これらのレジスタのノード名が変更されます。
11–8 Altera Corporation暫定版 2007年 5月
合成ネットリスト最適化
図 11-6.ゲート・レベル・リタイミング・レポート
Netlist Optimizations オプションを Never Allow に設定して、レジスタのリタイミング時のレジスタ移動を防止することができます。このオプションは、アサインメント・エディタを使用して、デザインの個々のレジスタまたはエンティティのいずれかに適用できます。
以下のレジスタは、ゲート・レベル・レジスタのリタイミング時には移動されません。
■ グローバル fMAX、tSU、または tCO以外の任意のタイミング制約を有するレジスタ例えば、マルチサイクル・アサインメントまたはタイミング短縮アサインメントの影響を受けるノードは移動されません。
■ 別のレジスタに非同期コントロール信号を供給するレジスタ■ 別のレジスタのクロックを供給するレジスタ■ 別のクロック・ドメイン内のレジスタに供給するレジスタ■ 別のクロック・ドメイン内のレジスタから供給されるレジスタ■ シリアライザ /デシリアライザ(SERDES)に接続されているレジスタ■ Netlist Optimizationsロジック・オプションが Never Allowに設定されているレジスタ
■ 出力ピンに供給するレジスタ(レジスタとピンの間にロジックがない場合)
■ 入力ピンから供給されるレジスタ(レジスタとピンの間にロジックがない場合)
■ 入力ピンからレジスタ、レジスタからレジスタに直接接続されている 2つのレジスタがあり、両方のレジスタが同じクロックを持ち、かつ最初のレジスタがその他のどこにも接続されていない場合。これらのレジスタは同期式レジスタとみなされます。
■ レジスタからレジスタに直接接続される 2つのレジスタがあり、両方のレジスタが同じクロックを持ち、最初のレジスタがその他のどこにも接続されず、かつ最初のレジスタが異なるクロック・ドメイン内の別のレジスタから供給される場合。これらのレジスタは同期式レジスタとみなされます。
Altera Corporation 11–92007年 5月 暫定版
Quartus II ハンドブック Volume 2
Retiming Meta-Stability Register Sequence Lengthロジック・オプションの値を変更することによって、同期式レジスタまたはメタスタビリティ・レジスタのシーケンスに対するリタイミング動作を変更できます。このオプションの値は、ゲート・レベルのレジスタのリタイミング時に移動されない同期式レジスタの数を示します。デフォルト値は 2 です。値を 0よりも大きい数に設定するには、Assignmentsメニューの Settingsをクリックします。Settings ダイアログ・ボックスで Analysis &Synthesis Settingsを選択し、More Settingsをクリックします。1の値は、レジスタ-レジスタ接続で最初のレジスタに接続されている任意のレジスタを、リタイミング時に移動できることを意味します。n > 1の値は、以下がすべて真である限り、長さ 1、2、… nのシーケンスのどのレジスタも、ゲート・レベルのレジスタのリタイミング時に移動されないことを意味します。
■ 最初のレジスタには、ピンから直接または別のクロック・ドメイン内のレジスタから(直接または組み合わせロジックを介して)供給される。
■ シーケンス内のすべてのレジスタに同じクロック信号がある。■ 最後のレジスタを除くすべてのレジスタがシーケンス内の次のレジスタに直接供給し、その他のどこにもファンアウトしない。
レジスタのリタイミングに関するこれらの条件のいずれかと併せてレジスタを検討する場合、所定のレジスタ・セットに対して NetlistOptimizations ロジック・オプションを Always Allow に設定すると、これらのルールを無効にすることができます。
レジスタのリタイミングによる tSU/tCOと fMAXとのトレードオフ
Quartus II コンパイラが tSU または tCO 時間を犠牲にして、fMAX を増やすのを試みるべきか否かを判断するには、Assignments メニューのSettingsをクリックします。Categoryリストで、Analysis & SynthesisSettings を選択し、Synthesis Netlist Optimizations を選択します。Synthesis Netlist Optimizations ページの Allow register retiming totrade off Tsu/Tco with Fmaxをオンにします。このオプションは、ゲート・レベルのレジスタ・リタイミング・オプションのために実行される最適化に影響を与えます。
Perform gate-level register retimingおよび Allow register retiming totrade off Tsu/Tco with Fmaxの両方のオプションがオンに設定されている場合、I/Oピンで供給するレジスタと I/Oピンから供給されるレジスタがリタイミングの影響を受ける可能性があります。後者のオプションがオンになっていない場合、リタイミング・オプションは、1 つまたは複数レベルの組み合わせロジックを介して I/Oピンに接続されるどのレジスタにも影響を及ぼしません。
11–10 Altera Corporation暫定版 2007年 5月
合成ネットリスト最適化
合成ネットリスト最適化の結果の維持
Quartus II ソフトウェアは、あるシステムにおいてソース・コードと設定が同じ場合はコンパイルのたびに同じ結果を生成します。したがって、通常は、コンパイルごとに結果を維持するための方策を講じる必要はありません。ソース・コードまたは設定が変更された場合、通常はソフトウェアに、以前のコンパイル結果やロケーション・アサインメントを使用しないでコンパイルさせることによって、最良の結果を得ることができます。Analysis & Synthesis または quartus_map を実行しないで代わりにフィッタまたは別の適切な Quartus II 実行コマンドを実行すれば、場合によっては、コンパイルの合成ステージをスキップすることができます。
インクリメンタル・コンパイル機能を使用して、Post-Synthesis のネットリスト・タイプを選択してデザインの特定のパーティションの合成結果を維持することができます。
コンパイル結果を維持するには、ここで述べる LogicLock バック・アノテーション・フローの代わりに、インクリメンタル・コンパイル・フローを使用する必要があります。
インクリメンタル・コンパイル・デザイン手法について詳しくは、「Quartus IIハンドブック Volume 1」の「Quartus IIインクリメンタル・コンパイル」の章を参照してください。
希望する場合は、ネットリスト最適化の結果として得られたノードを維持することができます。LogicLock フローを使用して配置をバック・アノテートし、かつ /または 1つのデザインを別のデザインにインポートする場合は、ノードの維持が必要なこともあります。(インクリメンタル・コンパイル・デザイン・フローを LogicLock機能と併せて使用する場合は、これは不要ですので注意してください。)
何らかのQuartus II合成ネットリスト最適化オプションを使用している場合は、最適化された結果を保存できます。これを行うには、Assignments メニューの Settings をクリックします。Category リストで、Compilation Process Settingsを選択します。Compilation ProcessSettingsページで、Save a node-level netlist of the entire design into apersistent source file をオンにします。このオプションは、最終的な結果を素子ベースのネットリストとして、Verilog Quartus マッピング・ファイル・フォーマットで保存します。デフォルトでは、Quartus II ソフトウェアは、現在のプロジェクト・ディレクトリの下にあるatom_netlists ディレクトリに、Verilog Quartus マッピング・ファイルを配置します。異なる Quartus II設定を使用して異なる Verilog Quartusマッピング・ファイルを作成する場合は、Assignments メニューの
Altera Corporation 11–112007年 5月 暫定版
Quartus II ハンドブック Volume 2
Settings をクリックします。Category リストで、Compilation ProcessSettings を選択します。Compilation Process Settings ページで、Filename設定を変更します。
合成ネットリスト最適化を使用している場合(かつ、どのフィジカル・シンセシス最適化も使用していない場合)、Verilog Quartusマッピング・ファイルの生成はオプションです。Quartus II が生成した VerilogQuartus マッピング・ファイルを使用または使用しないで、デザイン内のすべてのロジックとデバイス・リソースの位置をロック・ダウンするには、Assignmentsメニューの Back-Annotate Assignmentsをクリックし、オプションを指定します。デザインが完成していない場合は、バック・アノテートされたロケーション・アサインメントを使用しなければなりません。デザインに何らかの変更を加えると、バック・アノテートされたロケーション・アサインメントが無効になります。後で変更を加える必要がある場合は、新しい HDL ソース・コードを入力ファイルとして使用し、古いコードまたはネットリストに対応するバック・アノテートされたアサインメントを削除します。
Verilog Quartusマッピング・ファイルを作成してデザインを再コンパイルする場合は、新しい Verilog Quartusマッピング・ファイルを入力ソース・ファイルとして使用し、新しいコンパイルに対する合成ネットリスト最適化をオフにします。
フィジカル・シンセシス最適化
従来から、Quartus IIデザイン・フローには合成とフィッティングの別々のステップが含まれています。合成ステップでは、回路のロジック構造を面積または速度、あるいはその両方で最適化します。その後フィッタによってロジック・セルの配置配線が行われ、ロジックの重要な部分を互いに近接させて、可能な限り高速な配線リソースを使用するようにします。このプッシュボタン・フローで優れた結果が得られる反面、合成ステージではフィッタで見られる配線遅延を予測できません。配線遅延は標準的なクリティカル・パス遅延の重要な部分なので、物理的遅延に関する情報を用いて合成操作を実行することにより、ツールはデザインのこれらの部分におけるタイミング・ドリブン最適化をターゲットにすることができます。フィッティングおよび合成プロセスのこのような緊密な統合は、フィジカル・シンセシスとして知られています。
以下の項では、Quartus II ソフトウェアで使用可能なフィジカル・シンセシス最適化と、性能結果を向上させるのに、それらをどのように役立てることができるかについて説明します。フィジカル・シンセシス最適化オプションは、Stratixおよび Cycloneシリーズのデバイス・ファミリとHardCopy IIデバイスで使用できます。
デザインをHardCopy IIデバイスに移行する場合、FPGA優先フローのFPGA アーキテクチャ、または HardCopy 優先フローの HardCopy IIアーキテクチャに対するフィジカル・シンセシス最適化をターゲットにすることができます。最適化は移行プロセスで他のデバイスのアーキテ
11–12 Altera Corporation暫定版 2007年 5月
フィジカル・シンセシス 最適化
クチャにマッピングされます。両方のデバイスのアーキテクチャに対して個別に最適化を行うと、各デバイスのフィッティング後のネットリストが違うようになるので、このような最適化をターゲットにすることはできない点に注意してください。
HardCopyデバイスでのフィジカル・シンセシスの使用について詳しくは、「Quartus II ハンドブック Volume 1」の「Quartus II Support ofHardCopy Series Devices」の章を参照してください。
フィジカル・シンセシス最適化オプションを表示し変更するには、Assignmentsメニューの Settingsをクリックします。図 11-7に示すように、Category リストで、Fitter Settings を選択し、Physical SynthesisOptimizationsを選択します。
図 11-7.フィジカル・シンセシス最適化の設定
フィジカル・シンセシス最適化は 2 つのグループに分けられ、1 つは組み合わせロジックにのみ影響しレジスタには影響しないグループで、もう 1つはレジスタにも影響する可能性があるグループです。これらのオプションは、フォーマル検証またはその他の理由のために、レジスタをそのままの状態に保つことができるように分けられています。
Altera Corporation 11–132007年 5月 暫定版
Quartus II ハンドブック Volume 2
以下のフィジカル・シンセシス最適化が用意されています。
■ 組み合わせロジックのフィジカル・シンセシス■ 非同期信号の自動パイプライン化■ レジスタのフィジカル・シンセシス:
● レジスタの複製● レジスタのリタイミング
Physical synthesis effortオプションで、フィジカル・シンセシスの影響を制御できます。デフォルトの選択はNormalです。Extra effort設定では、コンパイル時間を延長して、より高い回路性能の達成を試みるのに対し、Fast effort 設定では Normal よりもコンパイル時間が短縮されますが、同じ性能向上は達成できない場合があります。
フィジカル・シンセシス最適化ではすべて、結果がNetlist Optimizationsレポートに書き込まれます。このレポートにアクセスするには、ProcessingメニューのCompilation Reportをクリックします。Categoryリストで、Fitter and select Compilation Report を選択します。このレポートは、フィジカル・シンセシス時に変更、作成、および削除されたネットリスト・ファイルのリストを提供します。
フィジカル・シンセシス・プロセスで、これらの素子のノード名が変更されます。
Netlist Optimizations ロジック・オプションが Never Allow に設定されたノードまたはエンティティは、フィジカル・シンセシス・アルゴリズムの影響を受けません。このロジック・オプションにアクセスするには、Assignmentsメニューの Assignment Editorをクリックします。このオプションを使用して、デザインの部分に対するフィジカル・シンセシス最適化を無効にします。
非同期信号の自動パイプライン化
Settings ダイアログ・ボックスの Fitter Settings セクションの PhysicalSynthesis Optimizationsページにある Perform automatic asynchronoussignal pipeliningオプションにより、非同期クリア信号および非同期ロード信号が性能に悪影響を及ぼす場合に、Quartus IIフィッタはフィッティング時にこれらの信号用のパイプライン・ステージの自動挿入を実行できます。このオプションは、非同期コントロール信号の回復時間および除去時間がユーザ要件に合わない場合に使用できます。
11–14 Altera Corporation暫定版 2007年 5月
フィジカル・シンセシス 最適化
このオプションを使用した場合、非常に速度の速いクロック・ドメイン内の非同期信号を(グローバル・ネットワークの遅延が長いために)迅速にチップ間に分配できないデザインに対して性能が改善されます。この最適化では、挿入されるレジスタの総数を最小限に抑えるよう試みながら、これらの信号の自動パイプライン処理が実行されます。
Perform automatic asynchronous signal pipelining オプションを使用した場合、レジスタの非同期クリア・ポートまたは非同期ロード・ポートをドライブするネットにレジスタが追加されます。これにより、リセットにレジスタ遅延(およびレイテンシ)が追加され、リセットを使用する各ディスティネーションに同数のレジスタ遅延が追加されます。したがって、このオプションはリセット信号にレイテンシを追加してもデザイン要件に違反しない場合にのみ使用する必要があります。また、このオプションはグローバル配線リソースを使用する信号のプロモーションも防止します。
Quartus IIソフトウェアは、Recovery/Removal Analysisが有効の場合に限り、非同期信号の自動パイプライン化を実行します。パイプライン化は、以下のプロパティを有する非同期信号にのみ許可されます。
■ 非同期信号がクロックに同期している(同期レジスタが信号をドライブ)。
■ 非同期信号がレジスタの非同期コントロール・ポートのみにファン・アウトする。
Recovery/Removal Analysisオプションにアクセスするには、Assignmentsメニューの Settings をクリックします。Category リストで、TimingRequirements & Options を選択します。Timing Requirements & Optionsページで、More Settingsをクリックします。
Quartus IIソフトウェアでは、Netlist Optimization logicオプションがNever Allowに設定されている非同期信号に対しては、非同期信号の自動パイプライン化は実行されません。
組み合わせロジックのフィジカル・シンセシス
Quartus IIフィッタを使用してデザインを再合成し、クリティカル・パスに沿って遅延を低減するには、AssignmentsメニューのSettingsをクリックします。Categoryリストで、Fitter Settingsを選択し、Physical SynthesisOptimizationsを選択します。Physical Synthesis OptimizationsページのPerform physical synthesis for combinational logicをクリックします。ソフトウェアは、信号を伝達するクリティカル・パスの層数が少なくなるように、LE内のルック・アップ・テーブル(LUT)ポートを入れ替え
Altera Corporation 11–152007年 5月 暫定版
Quartus II ハンドブック Volume 2
て、このタイプの最適化を達成できます。図 11-8の例を参照してください。このオプションでは、クリティカル・パスで一層の最適化ができるように、LUTの複製も可能です。
図 11-8.組み合わせロジックのフィジカル・シンセシス
最初のケースでは、クリティカル入力が最初の LUT を介して 2 番目のLUT に供給しています。Quartus II ソフトウェアは、最初の LUT のクリティカル入力を 2番目の LUTに供給している入力と入れ替えます。これによって、クリティカル・パスに含まれる LUT 数が減少します。各LUTの合成情報が変更され、デザインの機能性が維持されます。
Physical synthesis for combinational logicオプションは、LUTの形式の組み合わせロジックにのみ影響します。影響を受けるロジック・セルに含まれるレジスタは変更されません。メモリ・ブロック、DSPブロック、および I/Oエレメント(IOE)の入れ替えは行われません。
Quartus II ソフトウェアは、以下のプロパティを有するロジック・セルに対しては、組み合わせ最適化を実行しません。
■ チェインの一部である。■ グローバル信号をドライブする。■ 1つのロジック・アレイ・ブロック(LAB)位置に制約されている。■ Netlist Optimizations オプションがNever Allowに設定されている。
フィジカル・シンセシスに対するこれらの条件のいずれかと併せてロジック・セルを検討する場合、所定のノード・セットに対して NetlistOptimizations ロジック・オプションを Always Allow に設定すると、これらのルールを無効にすることができます。
11–16 Altera Corporation暫定版 2007年 5月
フィジカル・シンセシス 最適化
レジスタのフィジカル・シンセシス—レジスタ複製
Settingsダイアログ・ボックスの Fitter Settingsセクションの PhysicalSynthesis Optimizations ページにある Perform register duplicationfitterオプションにより、Quartus IIフィッタはフィッタの配置情報に基づいてレジスタを複製することができます。このオプションを有効にすると、組み合わせロジックを複製することもできます。複数の場所にファン・アウトするロジック・セルを複製して、別のパスの遅延を増やすことなく 1つのパスの遅延を低減できます。新しいロジック・セルは、元のロジック・セルの他のファン・アウト・パスに影響を与えることなく、クリティカル・ロジックの近くに配置できます。図 11-9にレジスタ複製の例を示します。
図 11-9.レジスタの複製
Quartus II ソフトウェアは、以下のプロパティを有するロジック・セルに対しては、レジスタの複製を実行しません。
■ チェインの一部である。■ 別のレジスタの非同期コントロール信号をドライブするレジスタを含む。
■ 別のレジスタのクロックをドライブするレジスタを含む。■ グローバル信号をドライブするレジスタを含む。■ 1つの LAB位置に制約されているレジスタを含む。■ tSU制約のない入力ピンでドライブされるレジスタを含む。■ 別のクロック・ドメイン内のレジスタでドライブされるレジスタを含む。
■ 仮想 I/Oピンとみなされる。■ Netlist OptimizationsオプションがNever Allowに設定されている。
Altera Corporation 11–172007年 5月 暫定版
Quartus II ハンドブック Volume 2
仮想 I/O ピンについて詳しくは、「Quartus II ハンドブック Volume 2」の「LogicLock Design Methodology」の章を参照してください。
フィジカル・シンセシスに対するこれらの条件のいずれかを満たすロジック・セルを検討する場合、所定のノード・セットに対して NetlistOptimizations ロジック・オプションを Always Allow に設定すると、これらのルールを無効にすることができます。
レジスタのフィジカル・シンセシス—レジスタ・リタイミング
Settingsダイアログ・ボックスの Fitter Settingsセクションの PhysicalSynthesis Optimizationsページにある Perform register retiming fitterオプションによって、Quartus II フィッタは組み合わせロジック全体でレジスタを移動させて、タイミングのバランスを図ることができます。このオプションは、Perform gate-level register retiming オプションに類似したアルゴリズムを有効にします(11–6 ページの「ゲート・レベル・レジスタのリタイミング」参照)。このオプションは、素子レベル(ロジック・セルに配置済みのレジスタおよび組み合わせロジック)に適用され、合成ゲート・レベル・オプションを補完します。
Quartus II ソフトウェアは、以下のプロパティを有するロジック・セルに対してレジスタのリタイミングを実行しません。
■ カスケード・チェインの一部である。■ 別のレジスタの非同期コントロール信号をドライブするレジスタを含む。
■ 別のレジスタのクロックをドライブするレジスタを含む。■ 別のクロック・ドメイン内のレジスタをドライブするレジスタを含む。
■ 別のクロック・ドメイン内のレジスタでドライブされるレジスタを含む。
■ 1つの LAB位置に制約されているレジスタを含む。■ SERDESに接続されているレジスタを含む。■ 仮想 I/Oピンとみなされる。■ Netlist Optimizations ロジック・オプションが Never Allowに設定されているレジスタ
仮想 I/O ピンについて詳しくは、「Quartus II ハンドブック Volume 2」の「LogicLock Design Methodology」の章を参照してください。
フィジカル・シンセシスに対するこれらの条件のいずれかを満たすロジック・セルを検討する場合、所定のレジスタ・セットに対してNetlist Optimizations ロジック・オプションを Always Allowに設定すると、これらのルールを無効にすることができます。
11–18 Altera Corporation暫定版 2007年 5月
フィジカル・シンセシス 最適化
フィジカル・シンセシスの結果の維持
Quartus II ソフトウェアは、あるシステムにおいてソース・コードと設定が同じ場合は、コンパイルのたびに同じ結果を生成します。したがって、通常は、コンパイルごとに結果を維持するための対策を講じる必要はありません。ソース・コードまたは設定が変更された場合、通常はソフトウェアに、以前のコンパイル結果やロケーション・アサインメントを使用しないでコンパイルさせることによって、最良の結果を得ることができます。それでも、コンパイル結果を維持する場合は、この項で概説するガイドラインに必ず従ってください。
インクリメンタル・コンパイル機能を使用して、Post-fit のネットリスト・タイプを選択してデザインの特定のパーティションのフィッティング結果を維持することができます。
コンパイル結果を維持するには、ここで述べる LogicLock バック・アノテーション・フローの代わりに、インクリメンタル・コンパイル・フローを使用する必要があります。
インクリメンタル・コンパイル・デザイン手法について詳しくは、「Quartus IIハンドブック Volume 1」の「階層ベースおよびチーム・ベースのデザインのための Quartus IIインクリメンタル・コンパイル」の章を参照してください。
希望する場合は、フィジカル・シンセシスの結果として得られたノードを維持することができます。LogicLockフローを使用して配置をバック・アノテートし、かつ /または 1つのデザインを別のデザインにインポートする場合は、ノードの維持が必要なこともあります。(インクリメンタル・コンパイル・デザイン・フローを LogicLock機能と併せて使用する場合は、これは不要ですので注意してください)。
Quartus II のフィジカル・シンセシス最適化オプションを使用している場合、Settings ダイアログ・ボックスの Compilation Process Settingsページにある Save a node-level netlist into a persistent source file(Verilog Quartus Mapping File) オプションを使用して、最適化された結果のノードを保存することができます。このオプションは、最終的な結果を素子ベースのネットリストとして、Verilog Quartusマッピング・ファイル・フォーマットで保存します。デフォルトでは、Quartus II ソフトウェアは、現在のプロジェクト・ディレクトリの下にあるatom_netlists ディレクトリに、Verilog Quartus マッピング・ファイルを配置します。異なるQuartus II設定を使用して、異なるVerilog Quartusマッピング・ファイルを作成する場合は、Settingsダイアログ・ボックスの Compilation Process Settings ページの File nameの設定を変更することによってこれを行うことができます。
Altera Corporation 11–192007年 5月 暫定版
Quartus II ハンドブック Volume 2
フィジカル・シンセシス最適化を使用し、かつ Back-AnnotateAssignmentsコマンドを使用してすべての LEとその他のデバイス・リソースの位置をロック・ダウンする場合は、元のネットリストに加えられた変更を維持するために、Verilog Quartus マッピング・ファイル・ネットリストが必要です。フィジカル・シンセシス最適化はデザインでのノードの配置に依存するので、配置をバック・アノテートすると、フィジカル・シンセシスから得られた結果が変更されます。結果の変更とは、ノード名が異なり、バック・アノテートされたロケーションが無効になったことを意味しています。このオプションにアクセスするには、Assignments メニューの Back-Annotate Assignments をクリックします。
デザインが完成していない場合は、Quartus II が生成した VerilogQuartusマッピング・ファイル、またはバック・アノテートされたロケーション・アサインメントをフィジカル・シンセシス最適化と併用すべきではありません。デザインに何らかの変更を加えると、フィジカル・シンセシスの結果とバック・アノテートされたロケーション・アサインメントが無効になります。後で変更を加える必要がある場合は、新しいHDLソース・コードを入力ファイルとして使用し、Quartus IIが生成した Verilog Quartus マッピング・ファイルに対応するバック・アノテートされたアサインメントを削除します。
フィジカル・シンセシス最適化を指定してコンパイルされたデザインのロジック・ロケーションをバック・アノテートするには、最初に VerilogQuartusマッピング・ファイルを作成します。ハード・ロジック・ロケーション・アサインメントを指定してデザインを再コンパイルする場合は、新しい Verilog Quartus マッピング・ファイルを入力ソース・ファイルとして使用し、新しいコンパイルに対してフィジカル・シンセシス最適化をオフにします。
Verilog Quartusマッピング・ファイルと、バック・アノテートされた位置を、Netlist Optimizationsオプションがオンに設定されている別のプロジェクトにインポートする場合は、Netlist Optimizations = NeverAllow制約を適用して、絶対にノード名が変更されないようにすることが重要です。そうしないと、バック・アノテートされた位置またはLogicLockアサインメントは無効になります。
コンパイル結果を維持するには、LogicLockバック・アノテーションを使用する代わりに、インクリメンタル・コンパイル・フローを使用する必要があります。
11–20 Altera Corporation暫定版 2007年 5月
ネットリスト最適化オプションの適用
ネットリスト最適化オプションの適用
ネットリスト最適化オプションは、異なるデザインにさまざまな影響を与える可能性があります。上手にコード化されているか、クリティカル・パス遅延のバランスを図るために既に再構築されているデザインでは、顕著な性能の差は見られないかもしれません。
ネットリスト最適化オプションを使用するときに最適な結果を得るには、適用するオプションを変更して最良の結果を見つけ出すことが必要な場合もあります。デフォルトでは、すべてのオプションがオフになっています。追加オプションをオンにすると、デザインのノード名への影響が最も大きくなります。LogicLock または SignalTap II ロジック・アナライザやフォーマル検証など、固定または既知ノード名が要求される検証フローを使用する場合は、これを考慮してください。平均して、フィジカル・シンセシスオプションのすべてを Extra effortレベルで適用すると、それらのオプションでの最良の結果が得られますが、コンパイル時間が大幅に長くなります。Physical synthesis effortオプションを使用して、コンパイル時間を短縮することもできます。
合成ネットリスト最適化では一般に、全体のデザイン・コンパイル時間に対して、大幅にコンパイル時間が増えることはありません。
サードパーティ atom ネットリスト(Verilog Quartus マッピング・ファイルまたは Electronic Design Interchange Formatファイル)を使用している場合は、Gate-level Register Retiming オプションを使用するために、WYSIWYG Primitive Resynthesis オプションをオンにしなければなりません。
Quartus II ソフトウェアには、さまざまなネットリスト最適化オプションの適用を自動化するために、Design Space Explorer(DSE)ツール・コマンド言語(Tcl)/Tkスクリプトが用意されています。
DSE スクリプトを使用した複数コンパイルの実行について詳しくは、「Quartus II ハンドブック Volume 2」の「デザイン・スペース・エクスプローラ」の章を参照してください。 ネットリスト最適化オプションとその他の最適化手法を組み合わせて使用した場合の、標準的な性能結果について詳しくは、「Quartus II ハンドブック Volume 2」の「面積およびタイミングの最適化」の章を参照してください。
Altera Corporation 11–212007年 5月 暫定版
Quartus II ハンドブック Volume 2
スクリプティング・サポート
この章で説明する手順の実行と設定は、Tclスクリプトで行うことができます。また、一部の手順はコマンド・プロンプトでも実行できます。スクリプティング・コマンド・オプションについて詳しくは、Quartus IICommand-Lineおよび Tcl API Helpブラウザを参照してください。このHelpブラウザを使用するには、コマンド・プロンプトで次のコマンドを入力します。
quartus_sh --qhelp
「Scripting Reference Manual」には、同じ情報が PDF形式で付属しています。
Tclスクリプトについて詳しくは、「Quartus IIハンドブック Volume 2」の「Tclスクリプト」の章を参照してください。Quartus IIソフトウェアにおける設定および制約について詳しくは、「Quartus II Settings FileReference Manual」を参照してください。コマンド・ライン・スクリプトについて詳しくは、「Quartus IIハンドブックVolume 2」の「Command-Line Scripting」の章を参照してください。
この項で説明するオプションの多くは、インスタンスまたはグローバル・レベル、あるいはその両方で指定することができます。
以下の Tclコマンドを使用し、グローバル・アサインメントを行います。
set_global_assignment -name <QSF variable name> <value>
以下のTclコマンドを使用し、インスタンス・アサインメントを行います。
set_instance_assignment -name <QSF variable name> <value> -to <instance name>
11–22 Altera Corporation暫定版 2007年 5月
スクリプティング・サポート
合成ネットリスト最適化
表 11–1 に、Quartus II 設定ファイル (.qsf) の変数名と、11–3 ページの「合成ネットリスト最適化」で説明した設定に適用される値をリストしています。Quartus II 設定ファイルの変数名は、適切な値に沿った設定を行うために Tclアサインメントで使用されます。Typeカラムは、設定がグローバル設定またはインスタンス設定、あるいはその両方のいずれでサポートされるかを示しています。
表 11–1.合成ネットリスト最適化および関連設定
設定名 Quartus II設定ファイルの変数名 値 タイプPerform WYSIWYG Primitive Resynthesis
ADV_NETLIST_OPT_SYNTH_WYSIWYG_REMAP
ON, OFF グローバル、インスタンス
Optimization Technique <デバイス・ファミリ名 >_OPTIMIZATION_TECHNIQUE
AREA, SPEED, BALANCED
グローバル、インスタンス
Perform Gate-Level Register Retiming
ADV_NETLIST_OPT_SYNTH_GATE_RETIME
ON, OFF グローバル
Power-Up Don't Care ALLOW_POWER_UP_DONT_CARE ON, OFF グローバル
Allow Register Retiming to trade off Tsu/Tco with Fmax
ADV_NETLIST_OPT_RETIME_CORE_AND_IO
ON, OFF グローバル
Save a node-level netlist into a persistent source file
LOGICLOCK_INCREMENTAL_COMPILE_ASSIGNMENT
ON, OFF グローバル
LOGICLOCK_INCREMENTAL_COMPILE_FILE
<filename>
Allow Netlist Optimizations
ADV_NETLIST_OPT_ALLOWED "ALWAYS ALLOW", DEFAULT, "NEVER ALLOW"
インスタンス
Altera Corporation 11–232007年 5月 暫定版
Quartus II ハンドブック Volume 2
フィジカル・シンセシス最適化
表 11–2に、Quartus II設定ファイルの変数名と、11–12ページの「フィジカル・シンセシス 最適化」で説明した設定に適用される値をリストしています。Quartus II 設定ファイルの変数名は、適切な値に沿った設定を行うために Tclアサインメントで使用されます。Typeカラムは、設定がグローバル設定またはインスタンス設定、あるいはその両方のいずれでサポートされるかを示しています。
インクリメンタル・コンパイル
11–11 ページの「合成ネットリスト最適化の結果の維持」または 11–19ページの「フィジカル・シンセシスの結果の維持」で説明したインクリメンタル・コンパイルのためのスクリプティングおよびコマンド・ラインの使用法について詳しくは、「Quartus II ハンドブック Volume 1」の「Quartus IIインクリメンタル・コンパイル」の章を参照してください。
表 11–2.フィジカル・シンセシス最適化および関連設定
設定名 Quartus II設定ファイルの変数名 値 タイプPhysical Synthesis for Combinational Logic
PHYSICAL_SYNTHESIS_COMBO_LOGIC ON, OFF グローバル
Automatic Asynchronous Signal Pipelining
PHYSICAL_SYNTHESIS_ASYNCHRONOUS_SIGNAL_PIPELINING
ON, OFF グローバル
Perform Register Duplication
PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION
ON, OFF グローバル
Perform Register Retiming
PHYSICAL_SYNTHESIS_REGISTER_RETIMING
ON, OFF グローバル
Power-Up Don't Care ALLOW_POWER_UP_DONT_CARE ON, OFF グローバル、インスタンス
Power-Up Level POWER_UP_LEVEL HIGH, LOW インスタンス
Allow Netlist Optimizations
ADV_NETLIST_OPT_ALLOWED "ALWAYS ALLOW", DEFAULT, "NEVER ALLOW"
インスタンス
Save a node-level netlist into a persistent source file
LOGICLOCK_INCREMENTAL_COMPILE_ASSIGNMENT
ON, OFF グローバル
LOGICLOCK_INCREMENTAL_COMPILE_FILE
<filename>
11–24 Altera Corporation暫定版 2007年 5月
まとめ
アサインメントのバック・アノテーション
logiclock_back_annotateTcl コマンドを使用して、デザインのリソースをバック・アノテートすることができます。このコマンドによって、LogicLock 領域内のリソースと、LogicLock 領域のないデザインのリソースをバック・アノテートすることができます。
アサインメントのバック・アノテーションについて詳しくは、11–11ページの「合成ネットリスト最適化の結果の維持」または 11–19 ページの「フィジカル・シンセシスの結果の維持」を参照してください。
以下の Tclコマンドは、デザインのすべてのレジスタをバック・アノテートします。
logiclock_back_annotate -resource_filter "REGISTER"
logiclock_back_annotateコマンドは、backannotateパッケージにあります。
まとめ 合成ネットリスト最適化とフィジカル・シンセシス最適化は、デザインのネットリストの再構築と最適化のために異なる方法で動作します。これらの Quartus IIネットリスト最適化を利用すれば、結果の質の向上に役立てることができます。
参考資料 この章では以下のドキュメントを参照しています。
■ 「Quartus IIハンドブック Volume 1」の「Integrated Synthesis」の章■ 「Quartus IIハンドブック Volume 1」の「Hierarchical & Team Based
Design」の章■ 「Quartus II ハンドブック Volume 1」の「Quartus II Support of
HardCopy Series Devices」の章■ 「Quartus IIハンドブック Volume 2」の「LogicLock Design Methodology」の章
■ 「Quartus IIハンドブック Volume 2」の「Design Space Explorer」の章■ 「Quartus IIハンドブック Volume 2」の「Tcl Scripting」の章■ 「Quartus II Settings File Reference Manual」■ 「Quartus IIハンドブック Volume 2」の「Command-Line Scripting」の章
Altera Corporation 11–252007年 5月 暫定版
Quartus II ハンドブック Volume 2
改訂履歴 以下の表に、本資料の改訂履歴を示します。
改訂履歴
日付&ドキュメント・バージョン 変更内容 概要
2007年 5月 v7.1.0 ● 新しくサポートされるデバイスとして Arria GXを追加。● 11-25ページに「参考資料」の項を追加。
Arria GX のサポートを追加し、章を更新。
2007年 3月 v7.0.0 変更なし。 ―
2006年 11月 v6.1.0 改訂履歴を追加。 ―
2006年 5月 v6.0.0 Quartus IIソフトウェア・バージョン 6.0.0向けにマイナーな更新。
―
2005年 10月 v5.1.0 11章に変更(バージョン 5.0では 9章でリリース)。 ―
2005年 5月 v5.0.0 9章に変更(バージョン 4.2では 8章でリリース)。 ―
2004年 12月 v2.1 Quartus IIソフトウェア・バージョン 4.2向けに更新 :● 全体的な書式および編集を更新。● 合成ネットリスト最適化およびフィジカル・シンセシス・オプションの固定およびプリミティブ・ノード名の説明を追加。
● 図を更新。● APEXのサポートを明記。● フィジカル・シンセシス中のatomのノード名の情報を追加。
● フィジカル・シンセシス・レポートの項を削除。
―
2004年 6月 v2.0 ● 表および図を更新。● Quaruts IIソフトウェア・バージョン 4.1の新機能。
―
2004年 2月 v1.0 初版 ―
11–26 Altera Corporation暫定版 2007年 5月