46
タイミング収束と最適化 12 2014.12.15 QII5V2 更新情報 フィードバック タイミング収束と最適化について この章では、 Altera ® デバイスを設計する際、タイミング性能を改善させる手法について説明しま す。 適用する手法は、デザインそれぞれに異なります。 各手法を適用しても、常にデザイン結果が 改善されるとは限りません。 Quartus ® II ソフトウェアの設定とオプションには、コンパイル時 間、リソース利用率、タイミング性能において最良のトレードオフとなるデフォルト値がありま す。 もちろん、デォルトの設定値を変更して、どの設定がより望ましいデザイン結果を生成す るかを試すことも可能です。 初期コンパイル:フィッタのオプション設定 フィッタは数多くのオプション設定を提供していますが、この項ではタイミングの最適化に関す るフィッタのオプション設定に焦点を当てます。このオプション設定には、Optimize Hold TimingOptimize Multi-Corner Timing 、および Fitter Aggressive Routability Optimization 設定が あります。 注意: デザインが異なれば、最適化に必要な設定も異なります。あるデザインに適した設定グル ープでも、別のデザインに対しては適さないことがあります。 関連情報 Advanced Fitter Setting Dialog Box online help Optimize Hold Timing および Optimize Multi-Corner Timing 設定に関するスクリプトとデバイ ス・ファミリのサポート情報 ホールド・タイミングの最適化 Optimize Hold Timing オプションは、最小遅延タイミング制約を最適化するよう Quartus II ソフ トウェアに指示します。 デフォルトでは、Quartus II ソフトウェアは、サポートされるデバイス におけるデザインのすべてのパスに対し、ホールド・タイミングを最適化します。 また Quartus II ソフトウェアは、古いデバイスに対しては I/O パスおよび最小の t PD パスのホールド・タイミ ングのみ最適化します。 Advanced Fitter Settings ダイアログ・ボックスで Optimize Hold Timing をオンにすると、 Quartus II ソフトウェアはデザインが最小遅延要件を確実に満たすようにパスに遅延を追加しま © 2015 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. ISO 9001:2008 www.altera.com 101 Innovation Drive, San Jose, CA 95134

QII5V2 12 タイミング収束と最適化について - Intel...タイミング収束と最適化12 2014.12.15 QII5V2 更新情報 フィードバック タイミング収束と最適化について

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

タイミング収束と最適化122014.12.15

QII5V2 更新情報 フィードバック

タイミング収束と最適化についてこの章では、Altera®デバイスを設計する際、タイミング性能を改善させる手法について説明します。適用する手法は、デザインそれぞれに異なります。 各手法を適用しても、常にデザイン結果が改善されるとは限りません。 Quartus® IIソフトウェアの設定とオプションには、コンパイル時間、リソース利用率、タイミング性能において最良のトレードオフとなるデフォルト値があります。 もちろん、デォルトの設定値を変更して、どの設定がより望ましいデザイン結果を生成するかを試すことも可能です。

初期コンパイル:フィッタのオプション設定フィッタは数多くのオプション設定を提供していますが、この項ではタイミングの最適化に関するフィッタのオプション設定に焦点を当てます。このオプション設定には、Optimize HoldTiming、Optimize Multi-Corner Timing 、および Fitter Aggressive Routability Optimization 設定があります。注意: デザインが異なれば、最適化に必要な設定も異なります。あるデザインに適した設定グル

ープでも、別のデザインに対しては適さないことがあります。関連情報Advanced Fitter Setting Dialog Box online helpOptimize Hold Timingおよび Optimize Multi-Corner Timing 設定に関するスクリプトとデバイス・ファミリのサポート情報

ホールド・タイミングの最適化Optimize Hold Timingオプションは、最小遅延タイミング制約を最適化するよう Quartus II ソフトウェアに指示します。 デフォルトでは、Quartus IIソフトウェアは、サポートされるデバイスにおけるデザインのすべてのパスに対し、ホールド・タイミングを最適化します。 また QuartusIIソフトウェアは、古いデバイスに対しては I/Oパスおよび最小の tPDパスのホールド・タイミングのみ最適化します。Advanced Fitter Settingsダイアログ・ボックスで Optimize Hold Timingをオンにすると、Quartus IIソフトウェアはデザインが最小遅延要件を確実に満たすようにパスに遅延を追加しま

© 2015 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos aretrademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified astrademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performanceof its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to anyproducts and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of devicespecifications before relying on any published information and before placing orders for products or services.

ISO9001:2008 ���

www.altera.com101 Innovation Drive, San Jose, CA 95134

す。 I/O Paths and Minimum TPD Pathsを選択すると、フィッタが以下の基準を満たすように動作します。• デバイス入力ピンからレジスタまでのホールド時間(tH)• I/Oピンから I/Oレジスタ、あるいは I/Oレジスタから I/Oピンへの最小遅延• レジスタから出力ピンまでの最小 clock-to-out時間(t CO)All Pathsを選択した場合、フィッタは図で青色でハイライトされるレジスタ間のホールド要件を満たすよう動作します。この図では、ロジックで生成された派生クロックにより、別のレジスタでホールド・タイム問題が発生しています。

図 12-1: 内部ホールド時間違反を修正するホールド・タイミング・オプションの最適化

clk

Logic

D Q

D Q

Derived Clock Hold-Time Violation

Fitter Adds Routing Delay Here

ただし、デザイン内にレジスタ間の内部的なホールド・タ イム違反が発生している場合、LCELLプリミティブを手動でインスタンス化を実行する、あるいは派生クロックやゲート付きクロックの代わりにクロック・イネーブル信号などを使用しデザインに変更を加え、違反を修正します。関連情報Recommended Design Practices documentation内部ホールド時間に関する違反の排除に役立つデザイン手法が確認できます

マルチコーナー・タイミングの最適化動作条件における処理のバリエーションおよび変更により、一部のパスの遅延は低速コーナー・タイミング・モデルに比べて著しく小さなパスとなります。 このことは、こうしたパス上でホールド時間違反が発生する原因となり、稀にですがセットアップ・タイム違反が追加されることがあります。また、新しいデバイス・ファミリではプロセス・ジオメトリが縮小されているため、新しいデバイスをターゲットとするデザインの最も遅い回路性能は、必ずしも最高動作温度で発生するわけではありません。 回路が最も遅くなる温度は選択されたデバイス、デザイン、コンパイル結果に依存します。 このため Quartus IIソフトウェアは、低速 85℃コーナー、低速 0℃のコーナー、および高速 0℃コーナーといった 3つの異なるタイミング・コーナーを提供しています。 その他のデバイス・ファミリでは、高速 0°Cコーナー 0と低速 85℃コーナーの 2つのタイミング・コーナーが利用可能です。Optimize multi-corner timing オプションは最適化の実行中にすべてのプロセス・コーナーでタイミング要件および動作条件を満たすよう、高速コーナー・タイミングと低速コーナー・タイミングの両方を含むすべてのコーナー・タイミング遅延を考慮するようフィッタに指示します。 デフォルトでは、このオプションはオンで設定されており、フィッタは低速コーナー遅延に加えマ

12-2 マルチコーナー・タイミングの最適化QII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

ルチ・コーナー遅延も考慮しデザインを最適化します。具体的には、高電圧条件下で動作する最高速度のデバイスに基づいた高速コーナー・タイミング・モデルがあります。Optimize multi-corner timingオプションをオンにすると、プロセス、温度、および電圧のバラツキに対して、より堅牢なデザイン実装の作成が可能となりますが、 このオプションをオンにすることで、コンパイル時間が約 10%増加します。このオプションをオフにすると、フィッタは、(低電圧条件下で動作する、所定のスピード・グレード向けに最も遅い速度で製造されたデバイス)低速コーナー・タイミング・モデルからの低速コーナー遅延のみを考慮し、設計を最適化します。

フィッタの積極的なルーティングの最適化Fitter Aggressive Routability Optimizationsロジック・オプションを使用すると、フィッタによる積極的なルーティングを最適化するかどうかを指定できます。 Aggressive RoutabilityOptimizationsを実行すると、設計速度が減少するだけではなく、同時に配線ワイヤの使用量と配線時間も減少させることができます。このオプションは、配線リソースの結果が no-fitエラーでかつ、配線ワイヤの使用量を抑えたい場合に有効です。以下の表には、 Fitter Aggressive Routability Optimizationsロジック・オプションの設定方法を示しています。

表 12-1: Fitter Aggressive Routability Optimizationsロジック・オプションの設定

Settings 説明

Always フィッタは、常に積極的なルーティングの最適化を実行します。 FitterAggressive Routability Optimizationsロジック・オプションを Alwaysに設定した場合、ワイヤ使用量が低減されるので、デザインのパフォーマンスに影響する場合があります。

Never フィッタは、積極的なルーティングの最適化を行うことはありません。ワイヤ使用量の低減よりもタイミングの改善が重要な場合は、このオプションを Automaticallyまたは Neverに設定します。

Automatically フィッタは、デザインの配線可能性とタイミング要件に基づいて、自動的に積極的なルーティングの最適化を実行します。 ワイヤ使用量の低減よりもタイミングの改善が重要な場合は、このオプションを Automaticallyまたは Neverに設定します。

デザイン解析初期コンパイルを実行することで、デザインがフィットを達成し、指定されたタイミング要件を満たしているかどうかが確認できます。 このセクションでは、Quartus IIソフトウェアでデザイン結果を分析する方法について説明します。

タイミング制約の無視Quartus IIソフトウェアでは、違反した制約、古い制約、および競合する制約は無視されます。

QII5V22014.12.15 フィッタの積極的なルーティングの最適化 12-3

タイミング収束と最適化 Altera Corporation

フィードバック

無視された制約のリストを表示するには、TimeQuest GUIの Reportメニューから Report IgnoredConstraintsをクリックするか、以下のコマンドを入力して無視された制約のリストを生成します。report_sdc -ignored -panel_name "Ignored Constraints"

Quartus IIソフトウェアによって無視される制約はすべて分析する必要があります。必要に応じて、デザインの最適化を進める前に制約を修正しデザインを再コンパイルします。フィッタが生成する Ignored Assignment Reportで無視される制約のリストを表示することができます。関連情報• Quartus II TimeQuest Timing Analyzer documentation

report_sdcコマンドおよびそのオプションについては、以下のリンクを参照してください。• Fitter Summary Reports online help

tPDを含む I/OタイミングTimeQuestアナライザは、デザインを制約する Synopsys Design Constraints(SDC)フォーマットをサポートしています。 タイミング解析に TimeQuestアナライザを使用する場合、所定のクロックに対する入力ポートでのデータ到着時間を指定するには、set_input_delay制約を使用します。 出力ポートに対して所定のクロックに対する出力ポートのレシーバでのデータ到着時間を指定するには、set_output_delay コマンドを使用します。 I/Oタイミング・レポートを生成するには、report_timing Tclコマンドを使用することができます。タイミング性能の条件を満たしていない I/Oパスは、負のスラックを有し、TimeQuestアナライザの Reportペインに赤色でハイライトされレポートされます。 I/Oピンに明示的な I/Oタイミング制約を適用しない場合は、Quartus IIタイミング解析ソフトウェアは、Actual(実際の)値をレポートします。この値はシステムでデバイスを動作させる際にタイミング・パラメータに対し満たしておく必要があるタイミングの数値です。関連情報Quartus II TimeQuest Timing Analyzer documentationタイミングの数値の算出方法についての情報です。

レジスタ間のタイミング

TimeQuestタイミング・アナライザによるタイミング解析TimeQuestアナライザで適切な制約を使用して、すべての有効なレジスタ間のパスを解析します。 すべてのタイミングの要約を表示するには、TimeQuestアナライザの Tasksペインのタスクをダブルクリックして Report All Summariesをダブルクリックして、Report All Summariesコマンドを実行します。クロック・ドメインに障害が発生したパスが存在すると、Reportパネルでそれが赤色でハイライトされます。詳細な情報を確認するには、Clocks Summaryでリストされた Clock Nameを右クリックして Report Timingを開きます。 どのクロック・ドメインにおいてもレジスタ間のパスに負のスラックがない場合、そのデザインはタイミング要件を満たしています。タイミング要件が満たされていない場合であれば、(赤色でハイライトされる)成功しなかったパスのレポートを詳しく調べることで、より多くの詳細を明らかにすることができます。

12-4 tPDを含む I/OタイミングQII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

TimeQuestの Report Timingペインに表示されているパスを選択すると、対応するパスの詳細ペインのタブには、ソースのパスの要約、デス ティネーション・レジスタとそのタイミング、パス遅延についての統計、パス内のすべてのノードで完全なデータパスに関する詳細情報、および関連する信号の波形が確認できます。 Extra Fitter Informationタブは、違反するパスが物理的デバイスのどこに存在しているのかを Graphical Data Pathで視覚的に表示します。 タイミング障害の原因が、ソース・ノードとデスティネーション・ノードの距離が近すぎる、あるいは遠すぎるといった距離に関するものかどうかを明らかにすることができます。 同様に、Chip Plannerを使用すれば、成功しなかったパスの物理的配置をより詳細に調べることができます。 選択されたパスを Chip Plannerで検索するには、ノードを右クリックして Locateにカーソルを合わせLocate in Chip Plannerを選択します。 Chip Plannerはパスをハイライトし、ファンアウト、ファンイン、配線の輻輳、領域の割り当てに関する情報を表示します。そして、このような要素がクリティカル・パスのタイミングにどのように関係しているかを特定します。 この他にも、パスが有効なパスではないことを把握しているのであれば、ショートカット・メニューを使用して、フォルス・パスに設定することも可能です。Data Path タブもまた、クリティカル・パスのタイミングに影響する要素を特定する際に役立ちます。 Data Path タブは、クロックとデータがソース・ノードからデスティネーション・ノードに到達するために要したパスの詳細、および増分および累積ベースで要した時間の詳細を示しています。 Data Pathは、使用する配線の種類と要素、およびその位置についての情報も提供します。選択されたパスの詳細を表示するには、Path Detailsペインで Data Path タブをクリックします。Data Path タブには、データ到着時間とデータ要求パスが表示されます。Waveform には、到着データと要求データ間におけるスラックの関係が表示されますが、 現在のパスがタイミング要件を満たすまで、どれだけ離れているか、あるいはどれだけ近いのかを判断する際に役立ちます。また、RTL Viewerや Technology Map Viewerを使用すれば、デザインの配置図を表示することができるので、タイミングのデバッグが容易になります。 これらのビューアは、デザインのネットリストのゲートレベルやテクノロジがマップされた図を表示することができます。つまり、ソース・ノードとデスティネーション・ノードからのパスが表示できるので、ノード間にあるロジック・レベルの数を減らすことで利益が得られるデザインの領域を特定する場合に役立ちます。ビューワでタイミング・パスを特定するには、Locateにカーソルを合わせ、Locate in RTL Viewerあるいは Locate in Technology Map Viewerをクリックします。関連情報• Quartus II TimeQuest Timing Analyzer documentationタイミング解析の結果の算出方法についての情報

• Analyzing Designs with Quartus II Netlist Viewers documentation

障害が発生しているパスを解析する際のヒント障害が発生しているパスを解析する際、正しい制約が適用されているか、そしてタイミング例外が適切であるかどうかをレポートと波形から調べます。 マルチサイクル制約は、指定したクロック・サイクルの数でセットアップ関係あるいはホールド関係をを緩和します。 フォルス・パス制約は、タイミング解析時に無視しても問題のないパスを指定します。 マルチサイクル制約とフォルス・パス制約を使用すれば、フィッタが影響を受けているパスにより集中して動作させることができます。

QII5V22014.12.15 障害が発生しているパスを解析する際のヒント 12-5

タイミング収束と最適化 Altera Corporation

フィードバック

一番悪い値を示すスラックを持つパスの向上に焦点を合わせます。 フィッタは、一番悪い値を示すスラックを持つパスに重点を置いて動作します。 こうしたパスを修正することで、フィッタはデザインで他の障害のあるタイミング・パスを改善できる場合があります。多くの障害が発生したパスに見られる特定のノードを確認してください。このようなノードは、タイミング・レポート・パネル内で最小スラックと一緒にリストのはじめに表示されます。 共通のソース・レジスタ、デスティネーション・レジスタ、または共通の中間組み合わせノードを持つパスを検索します。 場合によっては、レジスタは同じでなくても、同じバスの一部であることがあります。タイミング解析レポート・パネルで、Fromもしくは To カラムの見出しをクリックすると、ソース・レジスタあるいはデスティネーション・レジスタ別にパスをソートすることができます。まずはじめに Fromをクリックし、次に Toをクリックすると、Toカラムのレジスタを第 1のソートとして使用し、Fromカラムのレジスタを第 2のソートとして使用します。 共通のノードが表示される場合、これらのノードは、ソース・コードの変更または Quartus IIによる最適化設定で改善される可能性があるデザインの領域を示しています。 ただ一つのパスのためにだけ配置を制約すること、デバイスでで共通のノードをさらに離れた位置に移動することになり、他のパスでのタイミング・パフォーマンスが低下する可能性があります。関連情報12-26ページの タイミング・クロージャのデザイン評価

クロック・ドメインを交差している問題のあるクロック・パスを解析する際のヒントクロックパスの障害を解析する際、これらのパスが 2つのクロック・ドメインを交差しているかを確認します。 以下は、タイミング解析で From Clockと To Clockが異なることをレポートしてます。

図 12-2: From Clockと To Clockフィールドで異なる値がレポートされています。

また、ソース・レジスタとデスティネーション・レジスタのクロックが同じであっても、パスの中に異なるクロックを含むパスが存在することがあります。デザインに Report Timingを実行すると、それぞれの問題のあるパスへローンチ・クロックとラッチ・クロックがレポートされます。 このようなクロック・ドメイン間の問題のあるパスが同期的に解析可能であるかを確認します。 問題のあるパスを同期的に解析しないのであれば、このようなパスはフォルス・パスとして設定する必要があります。 ローンチ・クロックとラッチ・クロックの関係が、デザインに照らし合わせて現実的で想定できるものであることを確認する必要があります。 たとえば、パスは立ち上がりエッジで開始し、立ち下がりエッジで完了しますが、これはセットアップ関係を半分のクロック・サイクルに低減させます。Timing Reportがレポートするクロック・スキューを確認します。 このスキューが大きければ、ゲーテッド・クロックまたは(例えば、専用のクロック配線の代わりにローカル配線を使用するクロックなど)物理的なレイアウトに関する問題のような、デザインに何らかの問題があることを示唆します。 パスを同期的に解析した後、パスに大きなスキューが無く、制約も正しいこと

12-6 クロック・ドメインを交差している問題のあるクロック・パスを解析する際のヒント

QII5V22014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

が確認できるのであれば、データ・パスを解析することができます。これらの手順は、クロック・ドメイン間で交差するパスの制約を微調整することができるので、正確なタイミング・レポートが確実に得られるようになります。PLL位相シフトがセットアップ要件を低減しているかを確認します。 セットアップ要件は、PLLパラメータと設定で調整することができる場合があります。クロック・ドメインを交差するパスは通常、2つのクロック・ドメイン間での非同期的インタラクションを可能にするために、同期ロジック(例えば、FIFOまたはダブル・データ同期レジスタ)で保護されています。 その場合、2つのクロック・ドメインに存在するレジスタ間のタイミング・パスはタイミング解析実行中、クロックが関連しているとしても無視することができます。フィッタは、問題のあるすべてのタイミング・パスの最適化を試みます。 最適化およびタイミング解析を無視しても問題のないパスがあっても、そのパスにはフィッタが無視するよう指示する制約がないのために、フィッタはこのようなパスについても同様に最適化を試みます。必要のないパスの最適化を試みると、場合によってはデザインに不可欠なタイミング・パス上のタイミング要件をフィッタが満たさないことがあります。 無視しても問題のないパスにすべて、フォルス・パスの制約を指定しておくことで、フィッタは無視しても問題のないパスを最適化するかわりに、タイミング要件を満たす必要のあるパスの最適化に焦点を当てることができます。関連情報Quartus II TimeQuest Timing Analyzerクロックド・メインを交差するタイミング・パスを無視する方法についての詳細情報

クリティカル・パスのソースとデスティネーションからのパスおよびクリティカル・パスのソースとデスティネーションへのパスを解析する際のヒント

デザインで問題のあるパスを解析する際、パス周辺でフィッタが実行している多くのインタラクションを把握しておくとよいでしょう。 クリティカル・パス上で何か行われているかを調べるには、以下の report_timingコマンドが役立ちます。プロジェクト・ディレクトリ内で、以下に示すように report_timingコマンドを実行し、.tclファイルでクリティカル・パス内のノードを解析します。set wrst_src <insert_source_of_worst_path_here>set wrst_dst <insert_destination_of_worst_path_here>report_timing -setup -npaths 50 -detail path_only -from $wrst_src \-panel_name "Worst Path||wrst_src -> *"report_timing -setup -npaths 50 -detail path_only -to $wrst_dst \-panel_name "Worst Path||* -> wrst_dst"report_timing -setup -npaths 50 -detail path_only -to $wrst_src \-panel_name "Worst Path||* -> wrst_src"report_timing -setup -npaths 50 -detail path_only -from $wrst_dst \-panel_name "Worst Path||wrst_dst -> *"

ワースト・パスの From Nodeと To Nodeカラムからノードの名称をはじめの 2つの変数へコピーします。次に TimeQuestタイミング・アナライザの Scriptメニューで .tclスクリプトをソースします。resulting timingパネルで、(赤色でハイライトされる)タイミングに問題のあるパスは ChipPlannerで検索できるようになり、ノード間の距離や大きなファンアウトなどの情報が表示されます。下の図は、これらのレポートが解析したものを略図化して示したものです。

QII5V22014.12.15 クリティカル・パスのソースとデスティネーションからのパスおよびクリティカ

ル・パスのソースとデスティネーションへのパスを解析する際のヒント12-7

タイミング収束と最適化 Altera Corporation

フィードバック

図 12-3: Timing Report

LUT

LUT

LUTLUT

LUT LUT

LUTLUT

LUT

LUT

wrst_src -> ** -> wrst_dst* -> wrst_srcwrst_dst -> *Critical Path

Legend

Source Registerof Worst Path

DestinationRegister ofWorst Path

デザインのクリティカル・パスは赤色で表されています。 スクリプトは、ワースト・ソースとデスティネーション・レジスタ間のパスを解析します。 最初の report_timingコマンドはソースがドライブしている他のパスを解析しますが、これは緑色で表されています。 2番目のreport_timingコマンドはデスティネーションへ向かうクリティカル・パスと他のパスを解析します。これは黄色で表されています。 これらのコマンドは、異なる方向に進む 2つのエンドポイント内部のすべてを表示します。 最後の 2つの report_timingコマンドは、他の方向に進むエンドポイント外部のすべてを表示します。 これらのレポートのいずれでクリティカル・パスの近くにスラックがある場合、フィッタは最も望ましいスラックを達成しようとしてクリティカル・パスでこれらパスを調整します。 この図は、ほとんどの設計に見られるクリティカル・パスと比較すると非常に単純ですが、すぐに非常に複雑となることが容易に理解できます。

Chip Plannerに複数のパスを配置する際のヒントChip Plannerは、タイミング・クリティカル・パスを検索する際に視覚補助として使用することができます。タイミング・レポートからこれらのパスを表示するには、次の手順を実行します。

1. report_timingを実行し、複数のパスを表示します。2. タイミング・レポートから複数の行を選択します。3. 右クリック後、Locate Pathを選択し、Chip Plannerをクリックします。4. Chip Plannerの Locate Historyウィンドウに選択したパスとワースト・パスが表示されます。5. Locate Pathsをダブルクリックして一度にすべてのパスを表示するか、もしくは Chip Plannerで個別に表示したいパスを選択します。これでタイミング障害の原因がノード間の距離が長いためによるものなのか、あるいは大きなファンアウトによるものなのかが明らかになります。

12-8 Chip Plannerに複数のパスを配置する際のヒントQII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

コンパイル間のクリティカル・パスをモニタする.tclスクリプト作成のヒント多くのデザインで同じクリティカル・パスがコンパイルするたびに表示されますが、一部のデザインにおいてはクリティカル・パスが異なる階層間でバウンスするため、コンパイルごとに変化します。この事象は、多くのレジスタ間パスでスラックがほとんどない高速デザインで発生することがあります。 配置が異なると、マージナル・パスでタイミング障害が発生することがあります。そのようなデザインに対しては、プロジェクト・ディレクトリに TQ_critical_paths.tclスクリプトを作成します。 所定のコンパイルであれば、クリティカル・パスを表示し、このクリティカル・パスをキャプチャするために、一般的な report_timingコマンドをライトします。 具体的には、下位レベルの階層でいくつかのパスに問題がある場合、次のコマンドを追加します。report_timing –setup –npaths 50 –detail path_only \–to “main_system: main_system_inst|app_cpu:cpu|*” \–panel_name “Critical Paths||s: * -> app_cpu”

他の*count_sync*レジスタへ進むステート・マシンのビットのような特別なパスには、以下のコマンドを追加します。report_timing –setup –npaths 50 –detail path_only \–from “main_system: main_system_inst|egress_count_sm:egress_inst|update” \–to “*count_sync*” –panel_name “Critical Paths||s: egress_sm|update -> count_sync”

このファイルは各コンパイルの後に TimeQuestタイミング・アナライザでソースすることが可能です。新しい report_timingコマンドは新しいクリティカル・パスが表示されると追加することができます。 これにより、常に問題の発生するパスと重要でないパスをモニタできるので、効率的にパスの優先順位を付けることが可能となります。

グローバル配線リソースグローバル配線リソースは、高ファンアウト、(クロックのような)低スキュー信号を通常の配線リソースを消費することなく分配するように設計されています。デバイスによっては、このリソースはチップ全体に広がることもあれば、デバイスの 1/4ほどの小さなもしくは部分に収まることもあります。 Quartus IIソフトウェアは、自動でグローバル配線リソースに信号を割り当てるよう試みますが、より適した割り当てを手動で実行できる場合もあります。利用可能なグローバル配線リソースの数や種類の詳細については、関連するハンドブックを参照してください。デザインでのグローバル信号の使用量をチェックし、グローバル配線リソースで適切な信号が配置されていることを確認します。Compilation Reportで、Fitterレポートを開き、Resource Sectionをクリックします。Global & Other Fast Signalsレポートと Non-Global High Fan-out Signalsレポートを精査し、変更する必要かあるどうかを決定します。高ファンアウト信号に対しては、これらの信号をグローバル配線リソース上に配置することでスキューを低減できることがあります。逆に、低ファンアウト信号の挿入遅延は、これらの信号をグローバル配線リソースから移動させることで低減することができます。これらの作業を実行することで、クロック・イネーブル・タイミングおよびコントロール信号リカバリ/リムーバルのタイミングを改善できますが、同時にクロック・スキューも増加します。Assignment EditorのGlobal Signal設定を使用してグローバル配線リソースを制御します。

QII5V22014.12.15 コンパイル間のクリティカル・パスをモニタする.tclスクリプト作成のヒント 12-9

タイミング収束と最適化 Altera Corporation

フィードバック

タイミングの最適化(LUTベースのデバイス)デザインがタイミング要件を満たさない場合は、次のガイドラインに従ってください。

TimeQuestアナライザを使用したタイミングング・エラーのデバッグTimeQuestアナライザの Tasksペイン内の Custom Reportsセクションには、Report TimingClosure Recommendationsがあります。 このレポートは、デザイン内で問題のあるパスの詳細情報を入手したり、ヘルプを表示させる場合に使用します。Report Timing Closure Recommendationsタスクを実行すると、 デザインで問題のあるパスに特化した推奨事項および問題のあるパスを修正できる可能性のある変更点が表示されます。Report Timing Closure Recommendationsタスクを選択すると、Report Timing ClosureRecommendationsダイアログ・ボックスが開きます。Report Timing Closure Recommendationsダイアログ・ボックスからクロック・ドメインに基づいたパスの選択、パス上のノードによるフィルタ、分析するパスの数の選択が実行できます。TimeQuestアナライザによる Report Timing Closure Recommendationsタスクの実行後、TimeQuestアナライザ GUIの Reportペインにある Report Timing Closure Recommendationsの内容を確認します。 各推奨事項にはすれぞれ星マーク(*)が付いていますが、 この星の数が多い推奨事項ほど、デザインのタイミングを収束できる可能性が高くなります。レポートは、解析を行った問題の有るパスそれぞれに対して最も可能性の高い原因を提示します。 レポートにはデザイン内で認識される問題の種類によってセクションごとに整理されます。セクションには、大きなクロック・スキュー、制限のある最適化、アンバランスなロジック、スキップされた最適化、レジスタ間にあまりにも多くのロジック・レベルを持つコーディング・スタイル、プロジェクトに特化した領域あるいはパーティション制約が含まれます。問題のあるパスの修正に役立つ可能性のある推奨事項が表示されます。ここでクリティカル・パスの詳細な解析を実行するには、パスを指定し report_timingコマンドを実行します。 パス・レポート・パネルの Extra Fitter Informationには、フィッタ関連の詳細情報も表示されます。問題を視覚化することで、制約が特別な配置になる場合、適切な解決策をとることができます。関連情報Report Timing Closure Recommendations Dialog Box online help

Timing Optimization AdvisorTimeQuestの Report Timing Closure Recommendationsタスクは、問題のあるパスを修正するための具体的な推奨事項を提供しますが、Timing Optimization Advisorはデザインのタイミング性能の改善に向けて、より一般的な推奨事項を提供します。Timing Optimization Advisorは、デザインがタイミング要件を満たすにはどのような設定を作成すればよいのかをガイドします。 Timing Optimization Advisorを実行するには、ToolsメニューでAdvisorsにカーソルを合わせ、Timing Optimization Advisorをクリックします。 TimingOptimization Advisorには、このセクションで取り上げる多くの推奨事項が含まれます。コンパイル後に Timing Optimization Advisorを開くと、デザインのタイミング性能を改善するための推奨事項を確認することができますが、 推奨事項の中には、互いに矛盾する推奨が含まれることがあります。 アルテラでは、それぞれのオプションを評価し、所定のタイミング要件に最も適した設定を選択することを推奨しています。

12-10 タイミングの最適化(LUTベースのデバイス)QII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

以下の例は、デザインをコンパイルした後の Timing Optimization Advisorですが、これは周波数の要件は満たしていますが、タイミングの改善にいくつかの変更が必要であることを示しています。

図 12-4: Timing Optimization Advisor

These options open the Settings dialog box or Assignment Editor so you can manually change the settings.

This button makes the recommended changes automatically.

Timing Optimization AdvisorのMaximum Frequency (fmax)あるいは I/O Timing (tsu、tco、tpd)を展開すると、ステージごとの推奨事項が表示されます。 このステージは、推奨設定を適用する順序を示しており、 第 1ステージには、最も容易に変更できるオプション、つまりデザインの最適化およびコンパイル時間が大きく影響されないオプションを含まれます。 アイコンは、推奨される各設定が現在のプロジェクトに適用されているかを示します。 例では、第 1ステージでチェックマークの付いた推奨事項がありますが、これはその推奨事項が既に適用されていることを示しています。 警告アイコンは、このコンパイルでは適用されていない推奨事項を示します。 情報アイコンは一般的な推奨事項を示します。 このようなエントリについて、TimingOptimization Advisorは推奨事項が適用されたかどうかのレポートは行いませんが、より良いパフォーマンスを達成するにはどうすればよいかを説明します。 各アイコンの詳細情報を提供する凡例については、Timing Optimization Advisorの「How to use」ペインを参照してください。各推奨事項には、設定が変更できる Quartus II GUIの適切な箇所へのリンクがあります。 具体的には、Settingsダイアログ・ボックスの Synthesis Netlist Optimizationsページ、Assignment Editorの Global Signals categoryがこれにあたります。 この方法では、どの設定を作成するかについての多大な制御が得られるので、ソフトウェアの設定についての理解に役立ちます。 場合によっては、グローバル設定に推奨事項を自動で変更できる Correct the Settings ボタンを使用することも可能です。

QII5V22014.12.15 Timing Optimization Advisor 12-11

タイミング収束と最適化 Altera Corporation

フィードバック

Timing Optimization Advisorの一部のエントリでは、さらに多くの情報を表示し、デザインの高度な解析ができるボタンが表示されます。 Timing Optimization Advisorは、デザイン内にあるクロックのテーブルを提供し、タイミング制約が割り当てられているかどうかを表示します。

I/Oタイミングの最適化デザイン最適化のこの段階では、I/Oタイミングに焦点を当てます。 Quartus II HandbookのDesign Optimization Overviewの章にある「Initial Compilation: Required Settings」セクションに記載された制約を正しく作成していることを確認します。 また、I/Oタイミングの最適化を進める前に、リソースの使用率が適切であるかを確認する必要があります。 このセクションで紹介される推奨事項は、すべてのアルテラ FPGAファミリおよびMAX II CPLDファミリに適用可能です。I/Oパスの変更は内部レジスタ間のタイミングに影響を与えるため、15ページ以降の「レジスタ間のタイミング最適化手法(LUTベースのデバイス)」に記載されているレジスタ間のタイミング最適化ステージに進む前にこのステージを完了させる必要があります。このセクションで紹介するオプションは、セットアップ遅延(tSU)、ホールド時間(tH)およびclock-to-output遅延(tCO)パラメータを含む I/Oタイミングを改善する方法を解説します。

セットアップ時間と Clock-to-Output時間の改善に関するまとめ以下の表は、tSU時間と tCO時間を改善する際に使用する手法を推奨順にリストしています。「有り」は使用する手法によってどのタイミング・パラメータが影響を受けるかを表しています。また、tSU時間を減少させると、ホールド(tH)時間が増加します。

表 12-2: セットアップ時間と Clock-to-Output時間の改善

手法 tSUへの影響 tCOへの影響

正しい制約が問題のある I/Oに設定されていることを確認します(設定については Quartus II Handbookの Design Optimization Overviewの章にある「Initial Compilation: Required Settings」のセクションを参照してください)

有り 有り

I/Oタイミング・ドリブン・コンパイルを使用します(12~13ページ) 有り 有りFast Input Registerを使用します(12~14ページ) 有り N/A

Fast Output Register、Fast Output Enable Register、Fast OCT Registerを使用します(12~14ページ )

N/A 有り

Input Delay from Pin to Input Registerの値を小さくするか、Decrease InputDelay to Input Register = ONに設定します

有り N/A

Input Delay from Pin to Internal Cellsの値を小さくするか、Decrease InputDelay to Internal Cells = ONに設定します

有り N/A

Delay from Output Register to Output Pinの値を小さくするか、IncreaseDelay to Output Pin = OFFに設定します(12~13ページ)

N/A 有り

Input Delay from Dual-Purpose Clock Pin to Fan-Out Destinationsの値を大きくします(12~13ページ)

有り N/A

Use PLLs to shift clock edgesを使用します 12~15ページ ) 有り 有り

12-12 I/Oタイミングの最適化QII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

手法 tSUへの影響 tCOへの影響

Use the Fast Regional Clockを使用します(12~16ページ) N/A 有りMAX IIまたはMAX Vファミリのデバイスの場合、Guarantee I/O PathsHave Zero Hold Time at Fast Cornerを OFF、When T SU and T PD ConstraintsPermitに設定します(12~16ページ)

有り N/A

Delay to output enable pinの値を大きくするか、Increase delay to outputenable pinを設定します(12~15ページ)

N/A 有り

表への注意事項:1. 表中のオプションは、すべてのデバイス・ファミリには適用されない場合があります。

タイミング・ドリブン・コンパイルこのオプションは、tSUまたは tCOアサインメントを満たす必要があればレジスタを I/Oエレメントに移動し、(レジスタが複数の出力位置にファンアウトするような場合)必要に応じてレジスタを複製します。 このオプションはデフォルトでオンであり、グローバルな設定です。 MAXIIシリーズのデバイスには I/Oレジスタが含まれないため、このオプションはMAX IIシリーズのデバイスには適用されません。Optimize IOC Register Placement for Timingオプションは、tSUもしくは tCO要求を持つピンにのみ影響を与えます。 レジスタが直接ピンをフィードするか、あるいはピンによって直接供給される場合にのみ、I/Oレジスタが使用可能です。 この設定は、以下のいずれかの特徴を持つレジスタには影響を与えません。• レジスタとピンとの間に組み合わせロジックが存在する• キャリーやカスケードチェーンの一部である• オーバーライドするロケーション・アサインメントがある• 非同期ロード・ポートを使用しており、値が 1ではない(ポートが利用可能なデバイス・ファミリ)

ここに挙げた特徴を持つレジスタは、通常の Quartus IIフィッタを使用することで最適化が可能です。関連情報Optimize IOC Register Placement for Timing Logic Option online help

Fast Input Register、Fast Output Register、および Output Enable Register通常、タイミングの割り当てが正確であれば、フィッタはパフォーマンスに関する要件を満たすために、適切な I/Oセルまたはコアに I/Oレジスタを配置しています。 しかし、AssignmentEditorの高速 I/Oアサインメントを作成することで、I/Oセル内の個々のレジスタを手動で配置することができます。Fast Input Registerオプション、Fast Output Registerオプション、Fast Output Enable Registerオプション、および Fast OCT (on-chip termination) Registerオプションの詳細については、Quartus II Helpを参照してください。.

MAX IIシリーズのデバイスには I/Oレジスタが存在しないため、I/Oピンにピン配置アサインメントがある場合、このようなアサインメントはその I/Oピンに隣接する LABにレジスタをロックします。

QII5V22014.12.15 タイミング・ドリブン・コンパイル 12-13

タイミング収束と最適化 Altera Corporation

フィードバック

高速 I/O設定がオンの場合レジスタは常に I/Oエレメント内に配置されますが、 これがオフの場合レジスタは I/Oエレメント内に配置されることはありません。 これは、Optimize IOCRegister Placement for Timingオプションがオンの場合も同様です。 高速 I/Oアサインメントがない場合、Quartus IIソフトウェアは Optimize IOC Register Placement for Timingオプションがオンであれば、I/Oエレメントにレジスタを配置するかどうかを決定します。また、4つの高速オプション(Fast Input Register、Fast Output Register、Fast Output EnableRegister、および Fast OCT Register)を使用して、LogicLock領域のレジスタの位置を I/Oセルに上書きすることも可能です。 複数のピンを供給するレジスタにこのアサインメントを適用すると、レジスタが複製され、関連するすべての I/Oエレメントに格納されます。 MAX IIシリーズのデバイスでは、レジスタは複製され、ピン位置アサインメントを持つ I/Oピンに隣接する個別の LABに配置されます。

プログラマブル遅延様々なプログラマブル遅延オプションを使用することで、tSU時間と tCO時間を最小化することが可能です。 Arria、Cyclone、MAX II、MAX V、および Stratixシリーズのデバイスでは、QuartusIIソフトウェアはタイミング要件を満たすために適用できるプログラマブル遅延を自動で調整します。 プログラマブル遅延は、プロジェクトのコンパイル、I/Oタイミングの確認後、タイミングを満たしていないと判断される場合にのみ使用する高度なオプションです。 このオプションの効果についての詳細な情報は、該当するデバイス・ファミリのハンドブックもしくはデータシートを参照してください。プログラマブル遅延を作成し、デザインをコンパイルした後、Compilation Reportの Delay ChainSummaryセクションで各 I/Oピンごとの遅延チェインに対して実装された遅延の値を表示することができます。Assignment Editorでサポートされるノードにプログラマブル遅延オプションを割り当てることができます。 また、Chip Plannerと Resource Property Editorを使用すれば、ターゲット・デバイスへの遅延チェイン設定を表示し、変更を加えることができます。 フル・コンパイルを実行した後に Resource Property Editorを使用して変更を加える場合、変更点はネットリストに直接保存されるので、全デザインを再コンパイルする必要はありません。 このような変更はネットリストに直接作成されるため、デザインを再コンパイルする際、変更は自動的には作成されません。変更管理機能を使用すると、以降のコンパイルで同じ変更を再度適用することができます。新しいデバイスの場合、プログラマブル遅延はユーザによる制御が可能ですが、この方法は上級ユーザ以外には推奨していません。 ただし、Quartus IIソフトウェアはフィッタ実行中に内部でプログラマブル遅延を使用する場合があります。アルテラ・デバイスで使用可能なプログラマブル遅延ロジック・オプションの詳細については、以下の Quartus II Helpトピックを参照してください。Input Delay from Pin to Input Register logic option

Input Delay from Pin to Internal Cells logic option

Output Enable Pin Delay logic option

Delay from Output Register to Output Pin logic option

Input Delay from Dual-Purpose Clock Pin to Fan-Out Destinations logic option

12-14 プログラマブル遅延QII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

関連情報• Engineering Change Management with the Chip Planner documentation

Information about using the Chip Planner and Resource Property Editor

PLLを使用するクロック・エッジのシフト方法PLLを使用すると、通常は自動的に I/Oタイミングが改善されます。 タイミング要件が満たされていない場合、ほとんどのデバイスで、I/Oタイミングを変更するよう PLL出力を位相シフトにすることが可能です。 クロックを後方にシフトすると、tSUを犠牲にして tHが改善され、前方にシフトすると tHを犠牲にして tSUが改善されます。 この方法は位相シフト・オプションが利用可能な PLLを持つデバイスでのみ実行することができます。

図 12-5: クロック・エッジを前方にシフトし、tHを犠牲にして tSUを改善する

Input Delay from Dual Purpose Clock Pin to Fan-Out Destinationsと呼ばれるプログラマブル遅延を使用することで同様の効果が得られるデバイスもあります。関連情報Input Delay from Dual-Purpose Clock Pin to Fan-Out Destinations Logic Option online help

高速リージョナル・クロック・ネットワークとリージョナル・クロック・ネットワークの使用方法

アルテラのデバイスには、様々な階層クロック構造があります。 こうした構造には、専用グローバル・クロック・ネットワーク、リージョナル・クロック・ネットワーク、高速リージョナル・クロック・ネットワーク、およびペリフェラル・クロック・ネットワークがあります。 利用できるリソースは、アルテラ・デバイス・ファミリによって異なりますので、ターゲット・デバイスで使用可能なクロッキング・リソースの個数については、該当するデバイス・ファミリのハンドブックを参照してください。一般的に、高速リージョナル・クロックは、リージョナル・クロックやグローバル・クロックに比べ I/Oエレメントへの遅延が小さく、ファンアウト・コントロール信号要素に少ない遅延を有する、高ファンアウト・コントロール信号に使用されます。 リージョナル・クロックは、1つのエリア内に含まれるロジックに対して、最小のクロック遅延とスキューを実現します。 このような低スキュー、低遅延クロック・ネットにクロックを配置することで、より優れた tCOのパフォーマンスが得られます。

スパイン・クロックの制限グローバル・クロック・ネットワーク、リージョナル・クロック・ネットワーク、およびペリフェラル・クロック・ネットワークには、スパイン・クロックとして知られるもう 1つのクロック階層のレベルがあります。スパイン・クロックは、レジスタに最後のロウ・クロックとカラム・クロックをドライブします。つまり、チップ内のすべてのレジスタへのクロックは、スパイン・クロックを介して到達します。このスパイン・クロックは、ユーザが直接制御できるものではません。

QII5V22014.12.15 PLLを使用するクロック・エッジのシフト方法 12-15

タイミング収束と最適化 Altera Corporation

フィードバック

プロジェクトにクロックの高い配線要求がある場合、Quartus IIソフトウェアの制限のため、スパイン・クロック・エラーが表示されることがあります。 このようなエラーは多くの場合、複数のメモリ・インタフェースを使用する、高速シリアル・インタフェース(HSSI)チャネル(特に PMAダイレクト・モード)で発生します。スパイン・クロック・エラーを低減させるには、以下の方法を用い、より有効にリージョナル・クロック・リソースを活用するようにデザインを制約します。• デザインが LogicLock領域を使用しない場合、あるいは LogicLock領域がクロック領域の境界に揃っていない場合は、追加の LogicLock領域を作成することでさらにロジックを制約します。

注: フィッタの最適化オプションであるレジスタ・パッキングが LogicLock領域を無視する場合は、 Quartus II Assignment Editorで特定のインスタンスへのレジスタ・パッキングをディセーブルにしてください。• 一部のペリフェラル機能は、LogicLock領域のアサインメントを無視することがあります。そのような場合、グローバル・プロモーション・プロセスが正常に機能しないことがあります。グローバル・プロモーション・プロセスが正しい箇所を使用するように、これらのペリフェラル機能を使用して I/Oに特定のピンを割り当てます。

• デフォルトでは、一部の IP MegaCoreファンクションは、デュアル・リージョナル・クロックの値を持つグローバル信号アサインメントを適用します。 リージョナル・クロック・リージョンへロジックを制約し、グローバル信号アサインメントを Dual-Regionalではなく Regionalに設定することでクロック・リソースの競合を減少することができます。

MAX IIデバイスへのホールド時間最適化の変更方法MAX IIデバイスの場合、Guarantee I/O Paths Have Zero Hold Time at Fast Cornerオプションを使用して Quartus IIソフトウェアによるホールド時間最適化の方法を制御することができます。関連情報Guarantee I/O Paths Have Zero Hold Time at Fast Corner Logic Option online help

レジスタ間のタイミング最適化手法(LUTベースのデバイス)デザイン最適化の次のステージでは、レジスタ間(fMAX)タイミングを改善します。 次のセクションでは、性能に関する要件がコンパイル後に達成されていない場合の、利用可能なオプションを解説します。コーディング・スタイルは、設定において他の変更よりもデザインのパフォーマンスに大きく影響します。 よって、常にコードをよく評価し、同期デザイン手法が使用されていることを確認してください。注: TimeQuestアナライザを使用する場合は、レジスタ間のタイミングを最適化することは、デザインのクロック・ドメインのスラックを最大化することと同じ意味を持ちます。 このセクションで解説する手法で、デザインの異なるタイミング・パス上のスラックを改善することができます。

デザインの最適化を実行する前に、デザインの構造、および最適化が影響を与えるロジックの種類を理解しておくことが重要です。 ロジック構造が改善されない場合、最適化によりパフォーマンスが低下することがあります。

12-16 MAX IIデバイスへのホールド時間最適化の変更方法QII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

関連情報Recommended Design Practices documentation同期デザイン手法およびコーディング・スタイルについての詳細情報

ソース・コードの最適化多くの場合、デザインのソース・コードの最適化はデザインの性能に非常に大きな影響を与えます。実際、ソース・コードを最適化することが一般的にはデザイン結果の品質を向上させるための最も効果的な方法であり、LogicLockやロケーション・アサインメントを使用するよりも良い選択といえます。コーディングの際は、ロジックの実装に必要となるロジック・レベルの数に注意してください。レジスタ間にあまりに多くのロジックを設定すると、レジスタでクリティカル・パスのタイミングに問題が生じる可能性があります。そのような場合はパイプラインをはじめとする、より効率的なコーディング方法を使用してデザインを再構築してみてください。 また、ソース・コードで高ファンアウト信号を制限してみてください。 可能であれば、コントロール信号を複製し、パイプライン化します。 重複したレジスタは合成中のマージを避けるために、preserve属性で保護されていることを確認してください。デザインのクリティカル・パスにメモリや DSP機能が存在する場合は、推測されずに専用ロジック内に配置されているメモリや機能を説明するコード・ブロックがデザインに含まれているかどうかを確認してください。 場合によっては、これらの機能がターゲット・デバイスの高性能な専用メモリもしくはリソースに配置されるようにソース・コードを変更することも可能です。RAM/DSPブロックを使用するのであれば、オプションの入力レジスタと出力レジスタを有効にします。ステート・マシンが、ステート・マシン・ロジックとして認識され、合成ツールで正しく最適化されていることを確認してください。 合成ツールがステート・マシンを一般的なロジックとして処理するよりもステート・マシンとして認識している方が通常は良好に最適化されます。Quartus IIソフトウェアでは、Compilation Reportの Analysis & Synthesisでステート・マシン・レポートを確認することができます。 このレポートは、コンパイル時に認識された各ステート・マシンへのステート・エンコーディングを含む詳細情報を提供します。 ステート・マシンが認識されない場合、認識されるようにソース・コードを変更する必要があります。関連情報• Recommended HDL Coding Styles documentation

HDLコードの例、メモリの推論、関数、ガイドライン、およびステート・マシン用のサンプル HDLコードを含むコーディング・スタイルのガイドライン

• AN 584: Timing Closure Methodology for Advanced FPGA Designs application note.

レジスタ間のタイミング改善のまとめタイミング・マージン(スラック)を向上させるオプションや設定の選択、そしてレジスタ間のタイミング改善は、デザイン内の立ち下がりパスに依存します。 パフォーマンス要件に最も近い結果を得るには、以下の手法を適用し、各工程の後にデザインをコンパイルします。

QII5V22014.12.15 ソース・コードの最適化 12-17

タイミング収束と最適化 Altera Corporation

フィードバック

1. タイミング・アサインメントが完了し、正確であることを確認します。 詳細については、Quartus II Handbookの Design Optimization Overviewの章にある「Initial Compilation: RequiredSettings」のセクションを参照してください。

2. 最初のコンパイル後のすべての警告メッセージを確認し、無視されるタイミング・アサインメントをチェックしていることを確認してください。

3. ネットリストの合成最適化オプションを適用します。4. スピードの最適化を図るには、以下の合成オプションを適用します。

• 12-20ページの エリアではなくスピードへの合成の最適化• 12-20ページの 合成中の階層のフラット化• 12-21ページの シンセシス・エフォートを Highへ設定する• 12-21ページの ステート・マシン・エンコーディングを変更する• 12-22ページの シフト・レジスタの推論の防止• 12-22ページの 合成ツール内で利用可能な他の合成オプションを使用する

5. フィジカル・シンセシスを使用してパフォーマンスを最適化するには、次のオプションを適用します。• 組み合わせロジックのフィジカル・シンセシスの実行• 非同期信号の自動パイプライン化の実行• レジスタ複製の実行• レジスタのリタイミングの実行• ロジックからメモリへのマッピングの実行

6. 異なるフィッタ・シードを試します。小さな負のスラックによる問題のあるパスがほとんどない場合、フィッタ・シード・ノイズで制約を満たすフィットがあるかを確認するために異なるシードを試します。注: 多くのクリティカル・パスに問題がある、あるいはパスに重篤な問題がある場合はこのステップを手順を省略します。

7. 配置を制御するには、LogicLockアサインメントを作成します。8. タイミング要件を満たすまでかなりの開きがあるデザインのエリアを修正するデザイン・ソース・コードの変更を行います。

9. ロケーション・アサインメントを作成するか、最後の手段としてデザインをバック・アノテーションして手動で配置を行います。Design Space Explorer II(DSE)を使用して、異なる設定でいくつかのコンパイルを実行するプロセスを自動化することができます。これらの手法を適用してもパフォーマンスの要件が達成できない場合は、別にデザイン・ソース・コードの技術は、性能要件を達成しない場合、追加の設計ソースコードの修正が必要になるかもしれません。

関連情報Design Space Explorer II online help

フィジカル・シンセシスの最適化Quartus IIソフトウェアは合成ツールの使用の有無に関係なく、多くのデザインのパフォーマンスを改善することができるフィジカル・シンセシスの最適化を提供します。 フィジカル・シンセシスの最適化は、合成とフィッティングいずれの実行中にも適用することができます。

12-18 フィジカル・シンセシスの最適化QII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

Quartus IIによるコンパイルの合成段階中に発生するフィジカル・シンセシスの最適化は、他のEDA合成ツールからの出力、または Quartus IIの統合合成の中間ステップとして動作します。このような最適化は、選択した最適化の手法とエフォート・レベルに応じて、エリアとスピードのいずれかを改善するためにシンセシス・ネットリストへの変更面積または速度のいずれかを改善するために合成ネットリストを変更します。ネットリスト最適化のオプションを表示、変更するには、Assignments > Settings > CompilerSettings > Advanced Settings (Fitter)をクリックします。サードパーティ EDA合成ツールを使用して、Quartus IIソフトウェアがパフォーマンスを向上させるために回路を再マッピングできるかどうかを判断する場合は、Perform WYSIWYG PrimitiveResynthesisオプションを使用します。 このオプションは、Atomネットリストの LEをロジック・ゲートへのマッピングを取り消し、アルテラ固有のプリミティブへゲートをマッピングし直すよう Quartus IIソフトウェアに指示します。 アルテラ固有のプリミティブを使用すると、フィッタがアーキテクチャ特有の手法用いて回路を再マップすることが可能になります。Quartus IIテクノロジ・マッパーは、Optimization Techniqueの設定に応じて、最大速度性能、最小面積使用を達成するか、もしくは高性能と最小ロジック使用の間で最良のバランスを取るようにデザインを最適化します。このオプションは、Speedか Balancedに設定します。フィジカル・シンセシスの最適化は、Quartus IIコンパイルのフィッティング・ステージで実行されます。 フィジカル・シンセシスの最適化によって、ネットリストに対して配置固有の変更が行われ、特定のアルテラ・デバイスでスピード・パフォーマンスの結果が改善されます。次の物理合成最適化は、パフォーマンスを向上させるフィッタの段階で使用可能です。• 組み合わせロジックのフィジカル・シンセシス• 非同期信号の自動パイプライン化• レジスタのフィジカル・シンセシス

• Register duplication• Register retiming

注: デザインの一部にのみフィジカル・シンセシスによるパフォーマンスの向上が必要な場合は、指定のインスタンスにフィジカル・シンセシス・オプションを適用することができます。

インスタンス・ベースごとのフィッティングにフィジカル・シンセシス・アサインメントを適用するには、Quartus II Assignment Editorを使用します。以下のアサインメントは、インスタンス・アサインメントとして使用可能です。• 組み合わせロジックのためのフィジカル・シンセシスの実行• パフォーマンスのためのレジスタ複製の実行• パフォーマンスのためのレジスタ・リタイミングの実行• 非同期信号の自動パイプライン化の実行関連情報• Perform WYSIWYG Primitive Resynthesis Logic Option online help• Optimization Technique Logic Option online help• Working With Assignments in the Assignment Editor online help

QII5V22014.12.15 フィジカル・シンセシスの最適化 12-19

タイミング収束と最適化 Altera Corporation

フィードバック

エクストラ・フォート消費電力最適化の設定をオフにしますPowerPlay消費電力最適化が Extra Effortに設定されている場合、デザインのパフォーマンスに影響を与える可能性があります。 タイミング性能の改善が電力使用量の削減よりも重要である場合は、PowerPlay消費電力最適化の設定を Normalに設定します。関連情報PowerPlay Power Optimization Logic Option online help

Power Optimization documentation

エリアではなくスピードへの合成の最適化デザインを合成する方法によって、デザインの性能は大きく影響されます。 デザインの性能は、デザインのコーディング、使用する合成ツール、合成する際に指定するオプションにより異なってきます。 多くのパスに問題が存在する、もしくは特定のパスに大きな障害があり、そして多くのロジック・レベルを持つ場合は、合成に関するオプションを変更します。合成ツールでデバイスとタイミング制約を設定します。合成ツールは、タイミング・ドリブンで所定のタイミング要件を満たすように最適化されています。 ターゲットとする周波数を指定しない場合、一部の合成ツールは、エリアに対し最適化を実行します。一部の合成ツールでは、エリアではなくスピードに焦点を当てるようにツールを指示する簡単な方法を提供しています。デフォルト設定である Optimization Techniqueの Balanced(特定のデバイス・ファミリでのエリアとスピードの最良のトレードオフ)もしくは Area(エリアを重要視する場合)を選択せずに、このロジックはデザイン内の特定のモジュールに Assignment Editorを使用し指定することも可能です。 この他にも、Assignment Editorの Speed Optimization Technique for Clock Domainsオプションを使用して、クロック・ドメイン内またはクロック・ドメイン間のすべての組み合わせロジックがスピードに向けて最適化されていることを指定することができます。プッシュボタン・コンパイルで最高のパフォーマンスを実現するには、他の合成の設定に対して以下の推奨事項に従ってください。 最高のパフォーマンスが得られるようデザインを最適化するには、DSE IIを使用し Quartus IIの異なる合成オプションを試すことができます。関連情報• Optimization Technique Logic Option online help• Synthesis documentation

Quartus IIの統合合成ツールおよびサードパーティ合成ツールのタイミング要件および合成オプションの設定に関する情報

• Design Space Explorer II online help

合成中の階層のフラット化合成ツールは通常、階層境界の保存が可能ですが、これは検証などの際に役立ちます。 しかし、一般的に最高の最適化の結果を得られるのは、合成ツールが階層境界を最適化する場合です。なぜなら、階層境界を最適化することで合成ツールによるロジックの最小化が実行可能となり、それがパフォーマンスの向上につながるからです。 最高の結果を達成するためには、可能な限りデザイン階層をフラット化します。Quartus IIインクリメンタル・コンパイルを使用しているのであれば、デザイン・パーティション間でデザインをフラット化することはできません。 インクリメンタル・コンパイルは、常にデザイン・パーティション間にある階層の境界を維持しま

12-20 エクストラ・フォート消費電力最適化の設定をオフにしますQII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

す。 境界間最適化の影響を抑えるためにレジスタ・パーティション境界のようなデザイン・パーティションのためのアルテラの推奨事項に従ってください。関連情報Quartus II Incremental Compilation for Hierarchical and Team-Based Design documentation

シンセシス・エフォートを Highへ設定する合成ツールのなかには、合成結果とコンパイル時間とをトレードオフする様々なシンセシス・エフォート・レベルを提供しているものもあります。 可能であれば、最良の合成結果が得られるようシンセシス・エフォートを highに設定します。

ステート・マシン・エンコーディングを変更するステートマシンは、様々な手段でエンコードすることができます。One-hotエンコーディングはすべてのステート・ビットに 1つのレジスタを使用しますが、通常この方法が最高のパフォーマンスを提供します。 デザインにステート・マシンが含まれている場合、One-hotエンコーディングにテート・マシンのエンコーディングを変更すると、エリアを犠牲にしてパフォーマンスを向上させることができます。関連情報State Machine Processing Logic Option online help

ファンアウトを制御するためのロジックの複製配線遅延を低減するために問題のあるタイミング・パス内のレジスタを移動させると、問題のあるパスが生成されたり、あるいはレジスタのファンアウトによるタイミング障害が発生している場合、ロジックやレジスタを複製することでタイミングが改善することがあります。 ほとんどの場合、タイミングの障害は高ファンアウトのレジスタが原因ではなく、このようなレジスタの位置が原因で発生します。 ソース・レジスタとデスティネーション・レジスタが物理的に近接している位置でレジスタを複製すると、クリティカル・パスのスラックを改善することができます。合成ツールの多くは、レジスタの最大ファンアウトを指定するオプションや属性をサポートしています。 Quartus II統合合成機能を使用する際、Assignment EditorのMaximum Fan-Outロジック・オプションでノードへのデスティネーションの数を設定すれば、ファンアウト・カウントが指定の値を超えることはありません。 また、HDLコードで maxfan属性を使用することも可能です。 ソフトウェアは、指定された最大ファンアウトを達成するために、必要に応じてノードを複製します。Maximum Fan-Outアサインメントを使用してロジックを複製すると、通常はリソース使用量が増加します。選択したデバイスにおける配置やリソースの総使用量によってはコンパイル時間が増加することがあります。 タイミング性能の改善に使用するMaximum Fan-Outアサインメントは非常にデザインに特化しているためです。 つまり、Maximum Fan-Outアサインメントを使用すると、フィッタはソース・ロジックを複製してファンアウトを制限しますが、複製された各ソース・ドライブのデスティネーションの制御はできないことがあります。 Maximum Fan-Outデスティネーションは、複製されたソースがどのデスティネーションをドライブするかを指定しないので、デバイス周辺に配置されたロジックをドライブする可能性があります。 これを避けるには、Manual Logic Duplicationロジック・オプションを使用することができます。アルテラではMaximum Fan-Outアサインメントを使用する場合は、このアサインメントを使用した場合と使用しない場合のデザインを比較して、期待するタイミング性能の改善が得られてい

QII5V22014.12.15 シンセシス・エフォートを Highへ設定する 12-21

タイミング収束と最適化 Altera Corporation

フィードバック

るかを検証することを推奨しています。 そして、結果が改善された場合にのみ、このアサインメントを使用してください。使用する合成ツールを問わず、Quartus IIソフトウェアを使用してレジスタを手動で複製することができます。 レジスタを手動で複製するには、Assignment EditorでレジスタにManual LogicDuplicationオプションを適用します。注: フィッタを使用する最適化方法のなかには、タイミングの改善を図る際Maximum Fan-Outアサインメントに深刻でない違反を生じさせるものもあります。

関連情報Manual Logic Duplication Logic Option online help

シフト・レジスタの推論の防止シフト・レジスタの推論をオフにすることで、パフォーマンスが向上する場合があります。 シフト・レジスタの推論をオフにすると、ソフトウェアは ALTSHIFT_TAPS IPコアを使用してメモリ・ブロック内のレジスタを実装する代わりにロジック・セルを使用してシフト・レジスタを実装するよう強制されます。 シフト・レジスタをメモリではなくロジック・セルに実装すると、ロジック使用率は増加します。

合成ツール内で利用可能な他の合成オプションを使用する次のオプションが使用する合成ツールで利用可能であるか試してみてください。• レジスタ・バランスまたはレジスタ・リタイミングをオンにします• レジスタ・パイプラインをオンにします• リソースの共有をオフにしますこれらのオプションはパフォーマンスを向上させますが、一般的にはデザインのリソース使用率も増大します。

フィッタ・シードフィッタ・シードは、デザインの初期配置コンフィギュレーションに影響します。 初期条件に変更があるとフィッティング結果も変化します。つまり、シードの値を変更すると、フィッティング結果も別のものになります。 シードの値を変えていくと、フィッティング結果も少しずつ異なります。よりよいフィッティング結果とタイミング製のを得るために、色々なシードの値を試すことができます。デザイン内で変更があると、それぞれのコンパイルにおいてパフォーマンスにランダムな変動が見られます。 このバラツキは、配置および配線のアルゴリズムに固有のもので、最良の結果を得るためにすべてを試すには対象があまりに多いので、初期条件がコンパイル結果を変更します。注: デザインの変更はフィッタに直接的あるいは間接的に影響し、シードの値を変更する場合と同じタイプのランダムな結果をもたらします。 これには、ソース・ファイル、CompilerSettings、Timing Analyzer Settings内のすべての変更が含まれます。異なるシステムは浮動小数点数がフィッタで計算される方法を変更する可能性があるので、異なるコンピュータ・システムあるいは異なるオペレーティング・システムを使用しても同じ結果となります。

最適化の設定によりレジスタ間のタイミング、もしくは問題のあるパスの数が少しでも変更された場合、パフォーマンスの向上や低下がその変更によるものなのか、あるいはフィッタのランダムな結果によるものなのかを明らかにすることは困難です。 それでもまだデザインに変更が見られる場合、最適化の変更後に平均的な結果が改善したか、あるいはコンパイル時間を増加させ

12-22 シフト・レジスタの推論の防止QII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

ることになった設定によって得られる利益が(Physical Synthesis Effortを Extraに設定するような)増加したコンパイル時間を超えるものであるかを(複数のシードを使用してデザインをコンパイルする)シード・スィープを実行して判断します。スイープはまた、デザインで予測されるランダムな変動がどの程度になるかも表示します。デザインが確定されている場合は、最適な結果が得られるよう異なるシードでデザインをコンパイルすることができます。 しかし、デザインに何らかの変更があった場合、再度シード・スィープを実行する必要があります。Assignmentsメニューで、シードで初期配置を制御するために、 Compiler Settingsを選択します。DSE IIを使用すれば、シード・スィープを簡単に実行することができます。スクリプトから以下の Tclコマンドを使用して、フィッタ・シードを指定することができます。set_global_assignment -name SEED <value>

関連情報Design Space Explorer II online helpDesign Space Explorer II(DSE)を使用して異なるシードでデザインをコンパイルする際の参照

Maximum Router Timing Optimizationを最大に設定しますデザイン内の配線可能性を改善するために、ルータが最適な配線ラインを取り上げなかった箇所で Router Timing Optimization LevelをMaximumに設定します。 この設定は、どのくらい積極的にルータがタイミング要件を満たそうとするのかを決定します。 このオプションをMaximumに設定すると、コンパイル時間をわずかに犠牲にしてデザインのスピードを向上させることができます。 逆に、このオプションをMinimumに設定すれば、デザインのスピードをわずかに犠牲にしてコンパイル時間を短縮することができます。 この設定はデフォルトではNormalとなっています。関連情報Router Timing Optimization Level Logic Option online help

LogicLockアサインメントLogicLockアサインメントを使用するタイミング性能の改善は、MAX IIファミリなどの古いアルテラ・デバイスに対してのみ推奨しています。 特に Arriaおよび Stratixデバイス・シリーズのような大規模なデバイス・ファミリに対しては、LogicLockアサインメントを使用するタイミング性能の改善は推奨していません。 Arriaおよび Stratixデバイス・シリーズには、LogicLock機能はパフォーマンスの保存やデザインのフロアプランに使用してください。LogicLockアサインメントは必ずしもデザインの性能を向上させるわけではありませんが、 多くの場合、ロケーション・アサインメントを作成してもフィッタからの結果を改善することはできません。 デザインに既存の LogicLockアサインメントがある場合、そのデザイン・メソドロジで許可されていれば LogicLockアサインメントを削除します。 デザイン再コンパイル後、LogicLockアサインメントによりパフォーマンスを悪化しているかを確認します。LogicLockアサインメントを行う際には、フィッタにどのくらいの柔軟性をもたせるかを考慮することが重要です。 LogicLockアサインメントはハード・ロケーション・アサインメントよりも高い柔軟性を提供します。 より高い柔軟性を持つアサインメントはそれだけ高いフィッタ・エフォートを必要としますが、デザインが過度に制約される可能性を低下させます。 以下は使用可能な LogicLockアサインメントの種類ですが、柔軟性を低下させる順でリストしたものです。

QII5V22014.12.15 Maximum Router Timing Optimizationを最大に設定します 12-23

タイミング収束と最適化 Altera Corporation

フィードバック

• 自動サイズ、非固定位置の領域• 固定サイズ、非固定位置の領域• 固定サイズ、固定位置の領域LogicLock領域の大きさや位置を判断しかねる場合は、まずは Auto/Floatingオプションから試してみてください。 Auto/Floating LogicLock領域により全体的なパフォーマンスが損なわれる場合があるので、LogicLock領域の位置を決定した後は、LogicLock領域に修正を加えます。LogicLock領域に何を含めるかを決定するには、タイミング解析結果を参考にして、Chip Plannerでクリティカル・パスを解析します。 Compilation Reportの Timing Analyzerセクションにあるレジスタ間のタイミング・パスは、パターンを認識する際に役立ちます。関連情報• Analyzing and Optimizing the Design Floorplan with the Chip Planner documentation

階層のアサインメント以下の図に示す階層を持つデザインは、表に見られるようなタイミング解析結果で問題のあるパスが存在しますが、高い確率で mod_Aが問題のあるモジュールとなります。 この場合、問題のあるパスを修正する 1つの良い方法としては、LogicLock領域に mod_A階層ブロックを配置することです。これにより、フロアプランですべてのノードがより近接します。

図 12-6: デザイン階層

Top

mod_A mod_B

表 12-3: タイミング解析で表示されるモジュールで障害のあるパス

From To

|mod_A|reg1 |mod_A|reg9

|mod_A|reg3 |mod_A|reg5

|mod_A|reg4 |mod_A|reg6

|mod_A|reg7 |mod_A|reg10

|mod_A|reg0 |mod_A|reg2

インクリメンタル・コンパイル・フローを使用している場合は、階層 LogicLock領域も重要です。 競合を低減しデザインの進展にともない良好な結果を確実にするため、別々の LogicLock領域にインクリメンタル・コンパイル用のデザイン・パーティションをそれぞれ配置します。 適切なデザイン・フロアプランを見つけるには、自動サイズの非固定位置領域を使用することがで

12-24 階層のアサインメントQII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

きますが、今後のコンパイルで最良の結果を得るにはサイズと位置を修正します。を達成するために、サイズと配置を修正することができます。関連情報• Quartus II Incremental Compilation for Hierarchical and Team-Based Design documentation• Best Practices for Incremental Compilation and Floorplan Assignments documentation• Analyzing and Optimizing the Design Floorplan with the Chip Planner documentation

ロケーション・アサインメントタイミング要件を満たすことに問題のあるパスが少数であれば、配置の最適化にはハード・ロケーション・アサインメントが使用可能です。 ロケーション・アサインメントは Quartus IIフィッタに対しては LogicLockアサインメントほどの柔軟性を持ちません。 デザインを熟知しているのであれば、より良い結果を生成するようにロケーション・アサインメントを入力することも可能です。注: 特に Arriaおよび Stratixシリーズのデバイスのようなより大規模なデバイスにおいてフィッティング結果を改善することは、困難な場合があります。ロケーション・アサインメントによって、デザインのパフォーマンスが常に改善されるわけではありません。 多くの場合、ロケーション・アサインメントを作成してもフィッタからの結果を改善することはできません。

メタスタビリティの解析と最適化手法メタスタビリティに関する問題は、関係性のないクロック・ドメイン内、あるいは非同期クロック・ドメイン内の回路との間で信号が転送される場合に発生する可能性があります。なぜなら、設計者は信号がセットアップおよびホールド時間の要件を満たすことを保証できないためです。平均故障間隔(MTBF)は、メタスタビリティがデザイン障害を発生させる際、インスタンス間の平均時間を推定した値です。デザインが非同期信号を同期し、MTBFを改善するためにデザインを最適化する際、メタスタビリティに起因する平均MTBFの分析に Quartus IIソフトウェアを使用することができます。 このようなメタスタビリティ機能は、TimeQuestアナライザで制約されたデザインおよび限られたデバイス・ファミリでのみサポートされています。デザインのMTBFが低い場合には、Quartus II Timing Optimization AdvisorのMetastabilityOptimizationセクションを参照します。このセクションではメタスタビリティに関してデザインを最適化する際に役立つ様々な推奨設定が確認できます。この章では、メタスタビリティ解析をイネーブルしデザインでレジスタ同期チェインを識別する方法を解説し、メタスタビリティ・レポートについての詳細情報ならびにメタスタビリティの管理に関する追加のガイドラインを提供します。関連情報• Understanding Metastability in FPGAs white paper• Managing Metastability with the Quartus II Software documentation

QII5V22014.12.15 ロケーション・アサインメント 12-25

タイミング収束と最適化 Altera Corporation

フィードバック

タイミング・クロージャのデザイン評価デザインでタイミング・エラーが発生した場合は、このセクションのガイドラインに従ってください。 このガイドラインでは、デザインのコンパイル結果を評価する方法およびそれに関する問題に対処する方法を解説します。 このガイドラインではデザインのスピードを向上させるRTLの再構築についての具体的な例をカバーしていませんが、ここで紹介する解析手法は タイミングを収束するために RTLへ作成が必要となることがある変更を評価する際に役立ちます。

コンパイル結果の確認

メッセージの確認デザインのコンパイル後、コンパイル・レポートの各セクション内のメッセージを確認します。タイミング・エラーを起こすデザインは、コンパイル時に警告メッセージとしてレポートされる問題がエラーの原因である場合がほとんどです。 警告メッセージの原因および、その警告が修正できるものかを調査します。 警告メッセージを確認した後で、情報メッセージを確認します。未接続のポート、無視された制約、見つからないファイル、およびソフトウェアが作成した仮定や最適化といった予測していなかったメッセージに注目します。

フィジカル・シンセシス結果の評価フィジカル・シンセシスがイネーブルされている場合、ソフトウェアは合成中にレジスタの複製とリタイミング、および組み合わせロジックの変更が可能です。 コンパイル後、Analysis &Synthesisセクションの Optimization Resultsレポートを確認します。 レポートは、レジスタの複製、リタイミング、および削除などのフィジカル・シンセシスによって実行される最適化の内容をリストします。 このようなレポートは、Compilation Reportパネルで確認できます。

図 12-7: 最適化結果のレポート

12-26 タイミング・クロージャのデザイン評価QII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

フィジカル・シンセシスがイネーブルされている場合、コンパイル・メッセージには実行されたフィジカル・シンセシス・アルゴリズム、各アルゴリズムが達成したパフォーマンスの改善、および経過時間の要約が含まれます。 レポートされる改善とは、それぞれのタイミング・クリティカルなクロック・ドメインで達成可能であると予測される最大の改善の合計です。 スラック改善の値は、コンパイル・アルゴリズムのランダムな出発点のためにコンパイルの間で変動することがありますが、値は類似していなければなりません。図は、メッセージの例を示しています。

図 12-8: コンパイル・メッセージ

フィッタ・ネットリスト最適化の評価フィッタは、デザイン・ネットリストにネットリスト最適化を行うことも可能です。 主な変更点には、レジスタ・パッキング、ロジック・セルの複製および削除、レジスタのリタイミング、信号の反転、入力をあるロジック・セルから別のロジック・セルへ移動させるような一般的な方法によるノードの修正が含まれます。 これらのレポートは、Fitterセクションの NetlistOptimizations結果で確認できます。

最適化結果の評価最適化によって何が変更されたか、そしてパフォーマンスがどう改善されたかを確認した後、向上したパフォーマンスを得るために費やしたランタイムを評価します。 コンパイル時間を短縮するために、いくつかのコンパイルのフィジカル・シンセシスとネットリスト最適化を見直し、フィジカル・シンセシスが実行した変更点を反映するように RTLを編集します。 特定のレジスタ・セットが一貫してリタイミングされる場合は、同様にレジスタをリタイムするよう RTLを編集します。 変更点がフィジカル・シンセシス・アルゴリズムが行った内容にマッチするよう作成されると、フィジカル・シンセシス・オプションは、同じタイプのパフォーマンスの改善を行っている間、コンパイル時間を節約するためにオフにすることができます。

リソース使用率の評価グローバルおよび非グローバル信号の使用、ルーティングの利用、およびクラスタリングの複雑さ、などのデザインに使用される様々なリソースを評価します。

グローバルおよび非グローバル信号の使用デザインに多くのクロックが含まれている場合、グローバルおよび非グローバル信号を評価します。 グローバル・リソースを効率的に使用されているかどうかを判断し、そうでない場合、変更を行うことを検討してください。 これらのレポートは、Compilation Reportパネル内にあるFitter下の Resource Sectionで確認できます。 図は、グローバル・クロックの非効率的な使用例を示しています。 ハイライトされている箇所は、グローバル・クロックからのシングル・ファンアウトです。 これをリージョナル・クロックに割り当てると、他の信号でグローバル・クロックが利用可能になるます。 信号は専用配線を使用し、クロック・バッファは使用しないため、Global Line Nameカラム内の値のない信号は無視しても問題ありません。

QII5V22014.12.15 フィッタ・ネットリスト最適化の評価 12-27

タイミング収束と最適化 Altera Corporation

フィードバック

図 12-9: グローバル・クロックの非効率的な使用

Non-Global High Fan-Out Signalsレポートは、グローバル信号に配線されていない最も高いファンアウト・ノードを表します。 リセット信号とイネーブル信号は、リストの上部に表示されます。 デザインに配線の輻輳が存在し、輻輳する領域に高ファンアウトの非グローバル・ノードがある場合は、ノードのファンアウトにグローバル信号またはリージョナル信号を使用することを検討するか、あるいは高ファンアウトのレジスタを複製することで低ファンアウトにします。Chip Plannerを使用し、高ファンアウト・ノードの検索、配線の輻輳のレポートを行い、別の選択肢が実行可能であるかを判断します。

配線の使用Fitter Resource Usage Summaryレポートで報告された配線の使用状況を確認します。 図はレポートの一例です。

図 12-10: Fitter Resource Usage Summaryレポート

Average interconnect usageは、デバイスで利用可能なもののうち、使用されるインタコネクトの平均使用量をレポートします。 Peak interconnect usageは、最も輻輳した領域で使用されるインタコネクトの最大使用量をレポートします。 平均値が 50%未満のデザインは通常、配線に関する問題はありません。 平均値が 50~65%のデザインでは、配線が難しいことがあります。 平均値が 65%を超えるデザインは、過剰に使用されたチップを許容するよう RTLが設計されていない限り、通常タイミングを満たすことは困難です。 ピーク値が 90%以上であれば、タイミング収束は非常に困難となります。100%のピーク値は、デバイスの一領域内ですべての配線が使用されており、高い確率でタイミング性能が低下します。 以下は、 Report Routing Utilizationのスクリーンショットです。

12-28 配線の使用QII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

図 12-11: Report Routing Utilizationのレポート

ホールドに向けた配線の追加フィッティング・プロセスの一部として、ルータはホールドタイム要件を満たす目的で遅延を増加させるレジスタ・パス間に配線を追加することができます。 ルーティング・プロセス中、ルータは余分なワイヤがホールドタイム要件を満たすためにどれくらい余分な配線が使用されたがをレポートします。。 配線が過剰に追加されているの場合、制約に問題がある可能性がありますが、 通常はマルチサイクル転送、特に異なるレート・クロック間および異なるクロック・ネットワーク間での不正確なマルチサイクル転送が原因です。 フィッタは Estimated Delay Addedfor Hold Timingレポートに配線遅延がどれくらい追加されたかをレポートします。 特定のレジスタ経路は、ホールド要件を満たすために遅延が追加されたかどうかを確認するために再度検討することができます。

図 12-12: Estimated Delay Added for Hold Timingレポート

QII5V22014.12.15 ホールドに向けた配線の追加 12-29

タイミング収束と最適化 Altera Corporation

フィードバック

ホールド要件を満たすためにルータが配線を追加する不正確な制約の一例は、1Xクロックから2Xクロックへのデータ転送がある場合です。 例えば、転送ごとに 2サイクルが可能であることがデザインの意図であるとすると、 データは、以下の例で示すようにマルチサイクル・セットアップ制約を追加することで、データは 2つのデスティネーション・クロックで随時到達することが可能です。set_multicycle_path -from 1x -to 2x -setup -end 2

タイミング要件は波形図の黒の破線で示すように、一つの 2Xクロック・サイクル分緩和されます。

図 12-13: 緩和されたタイミング要件の波形図

しかし、青い破線で示すデフォルトのホールド要件では、データが 1サイクル分遅延することを保証するためにルータが配線を追加する原因となることがあります。 ホールド要件を修正するには、ホールド・オプションでマルチサイクル制約を追加します。set_multicycle_path -from 1x -to 2x -setup -end 2set_multicycle_path -from 1x -to 2x -hold -end 1

図中のオレンジ色の破線はホールド関係を表し、データを遅らせるには余分な配線は必要ではありません。データが同じクロック・ドメイン内で転送される場合、そして異なるバッファリングを使用するクロック・ブランチ間でも、ルータはホールド・タイム要件を満たすために配線を追加することができます。 クロック・ネットワーク・タイプ間での転送はペリフェラルとコア間での転送より頻繁に発生します。 以下の図は、データがデバイスに入ってくる場合を示しており、ソース・レジスタのドライブにはペリフェラル・クロックを使用し、デスティネーション・レジスタのドライブにはグローバル・クロックを使用しています。 グローバル・クロック・バッファには、ペリフェラル・クロック・バッファより大きい挿入遅延があります。 デスティネーション・レジスタへのクロック遅延は、ソース・レジスタに比べ非常に大きいため、ホールド要件を確実に満たすにはデータ・パス上に遅延を追加することが必要です。

12-30 ホールドに向けた配線の追加QII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

図 12-14: クロック遅延

Fitter may add routing delay to meet hold requirement

Periphery clock buffer with small insertion delay

Global clock buffer with large insertion delay

パス内にある異なるクロック・ネットワーク・タイプの位置を識別するには、TimeQuestタイミング・アナライザでパスを確認し、ソースおよびデスティネーション・クロック・パス、そしてノードを確認します。 また、ソース・クロックの周波数とデスティネーション・クロックの周波数が同じであるか倍数であるかを確認し、パスにマルチサイクル例外があるかも確認します。クロスドメイン・パスは意図的にフォルス・パスにしてある場合もあるので、このようなパスにはフォルス・パス制約が適用されていることを確認してください。実際のホールド時間の問題を修正するために配線が追加されたと思われる場合は、Optimizehold timingオプションをディセーブルにします。 ホールド時間に成功しないパスをを失敗したパスを見つけるには、デザインを再コンパイルしタイミング解析を再度実行します。

図 12-15: Optimize Hold Timingオプション

Optimize hold timingオプションのディセーブルはデバッグ段階で実行するので、通常のコンパイルでは(デフォルトの)イネーブルにしておきます。 ホールドに向けての配線の追加は、配線中のタイミング最適化における通常の作業であり、必ずしも問題となるわけではありません。

QII5V22014.12.15 ホールドに向けた配線の追加 12-31

タイミング収束と最適化 Altera Corporation

フィードバック

その他のレポートの評価と設定の調整

Difficulty Packing DesignレポートFitter Resource Sectionの Resource Usage Summaryセクションから Difficulty Packing Designレポートを表示します。 Difficulty Packing Designレポートは、デバイス、パーティション、およびLogicLock領域にデザインが適合するようにフィッタのエフォート・レベル(低、中、高)を詳しく説明します。 Difficulty Packing Designエフォート・レベルが増すにつれ、タイミング収束は困難になります。 レベルが中から高になると、パフォーマンスに大幅な低下を引き起こすか、コンパイル時間が増加する原因となります。 そのような場合は、Packing Difficultyのエフォート・レベルを低減する方法を検討してください。

無視されたアサインメントの確認Compilation Reportには、フィッタによって無視された全アサインメントの詳細が含まれます。アサインメントは通常、デザイン名の変更後にアサインメントが更新されない場合に無視されます。 意図して割り当てているアサインメントが無視されていないことを確認してください。

デフォルト以外の設定の確認合成およびフィッタからのレポートには、コンパイルで使用されるデフォルト以外の設定も表示します。 デフォルト以外の設定をチェックし、それらの変更がデザインを向上しているかを確認します。

フロアプランの確認配置の確認には Chip Plannerを使用してください。 Chip Plannerは、階層のエンティティの検索に使用し、フロアプラン内で配置された各エンティティを色分けします。 予期した箇所からではなく、不自然な箇所に配置されているロジックを探します。 例えば、I/Oとインタフェースするロジックであれば I/Oのに近くに配置されており、IPやメモリとインタフェースするロジックであれば IPとメモリ付近に配置されているはずです。 以下の図はエンティティが色分けされたフロアプランの一例です。 このフロアプランでは、緑のブロックが離れて広がっていますが、これらのパスがタイミングに問題があるかどうかを確認します。問題があれば、配置に影響しているかもしれないモジュールへ何が接続されているかをチェックします。 青および水色のブロックは広範囲に広がり混ざり合っています。 この配置の一因となる 2つのモジュール間で多くの接続があるかを確認します。 一番下にピンクで色分けされたロジックは、下端の I/Oとインタフェースすることが予想できます。

12-32 その他のレポートの評価と設定の調整QII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

図 12-16: エンティティが色分けされたフロアプラン

以下スクリーンショットのタスク・バーのボタンを使用し、ハイライトされたモジュールのファンインとファンアウトを確認してください。

図 12-17: ファンインおよびファンアウト・ボタン

チップ内の長い信号を探し、このような信号がタイミング・エラーの原因であるかを調べます。ロジック配置に影響を与える可能性がある信号には、グローバル信号の使用状況を確認してください。 グローバル・バッファを供給するロジックは、関連するロジックから引き離してバッファの近くに配置します。非グローバル・リソースの高ファンアウトはロジックとまとめることができます。配線の過密をチェックします。過度に輻輳したエリアがあるとロジックが広がって配置される原因となり、このようなデザインは配線することが困難になります。

配置と配線の評価フィッタ・メッセージでコンパイル時間の各部分の長さを確認します。 ルーティングが配置よりもはるかに時間がかかる場合は、タイミングを満たすことが予測よりも困難である可能性があります。

QII5V22014.12.15 配置と配線の評価 12-33

タイミング収束と最適化 Altera Corporation

フィードバック

配置エフォートの調整配置の質を向上させるために Placement Effort Multiplierを大きくすると、より長いコンパイル時間はより長くなりますが、デザインによってはこれが良いトレードオフとなる場合があります。この値は、他の設定と RTLを確認し最適化した後で調整するべきです。 4まで値を増やし、パフォーマンスやコンパイル時間に改善が見られない場合はデフォルト設定に戻します。

図 12-18: 配置エフォート・マルチプライヤ

フィッタ・エフォートの調整エフォートを上げるには、Standard Fit (highest effort)オプションをイネーブルします。 デフォルトの Auto Fitオプションは、タイミング要件は満たされていると推定するとフィッタ・エフォートを下げます。

12-34 配置エフォートの調整QII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

図 12-19: フィッタ・エフォート

タイミング制約を確認する正しい周波数要件でクロックが制約されていることを確認します。derive_pll_clocksアサインメントを使用すれば、生成されたクロックの設定が常に更新されます。SDC制約の確認には、TimeQuestが役立ちます。 例えば、タスク・パネルの Diagnosticにある Report IgnoredConstraintsレポートは、一般的にはデザイン階層の変更で発生するデザイン内にある誤りのある名称をレポートします。また、Report Unconstrained Paths レポートを使用すれば、制約されていないパスの位置が確認できます。このように必要に応じて制約を追加することで、デザインを最適化することができます。

タイミング・パスの詳細情報の確認

タイミング・パスの配線の表示パスへの配線をを表示すると、異常な配線遅延を明らかにすることができます。 TimeQuestのTasksパネルを開き、Report panel nameオプションをイネーブルし Report Timingを選択します。次に Show routingオプションをオンにし、パス内の配線ワイヤを表示させます。

図 12-20: Show Routingオプション

QII5V22014.12.15 タイミング制約を確認する 12-35

タイミング収束と最適化 Altera Corporation

フィードバック

Extra Fitter Informationタブは、パスがハイライトされた簡略版のフロアプランを表示します。配線の輻輳を確認には Chip Plannerでパスを検索することも可能です。またパス内のノードが互いに近接しているか離れて配置されているかを表示することができます。

グローバル・ネットワーク・バッファ配線パスはタイミング・エラーを起こすグローバル・ネットワーク・バッファを識別するために使用することができます。 バッファの位置は、そのバッファが駆動するネットワークに応じて名前が付けられています。• CLK_CTRL_Gn—グローバル・ドライバ用• CLk_CTRL_Rn—リージョナル・ドライバ用グローバル・ネットワークに接続するバッファは、デバイスの各辺の中央部に位置しています。グローバル信号ネットワーク上にコア・ロジック信号を配線するバッファリングは、挿入遅延を発生させます。 グローバル配線と非グローバル配線に対し考慮すべきトレードオフには、ソースの位置、挿入遅延、ファンアウト、信号が移動する距離、および信号がローカル配線へ下げられた場合に起こり得る輻輳などがあります。

ソースの位置グローバル・バッファを供給するレジスタを近づけることができない場合は、デザインのロジックまたは配線の種類のいずれかを変更することを検討します。

挿入遅延グローバル信号が必要な場合、信号を生成し(上の図)、マルチサイクル・セットアップ制約(下の図)を使用するネガティブ・エッジにトリガされるレジスタを使用して、タイミングに半分のサイクルを追加することを検討します。

図 12-21: ネガティブ・エッジにトリガされるレジスタ

図 12-22: マルチサイクル・セットアップ制約

set_multicycle_path –from <generating register> -setup –end 2

12-36 グローバル・ネットワーク・バッファQII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

ファンアウトローカル・ルーティングを使用する非常に高いファンアウトを持つノードは、ソース・ノードの近くでドライブするロジックをプルする傾向があります。 これにより、他のパスがタイミング・エラーとなることがあります。 レジスタを複製することで、高ファンアウ・トパスの影響を軽減することができるので、 このようなレジスタを手動で複製し、保存することを検討します。MAX_FANOUTアサインメントはファンアウト・ノードを任意のグループに分けますが、設計者は、これよりも合理的なファンアウト・グループを作成することができます。

グローバル・ネットワーク信号に自動的に割り当てられたものとは異なるタイプのグローバル信号を使用する場合、そのグローバル信号の使用を制御する Global Signal制約を信号ごとに使用します。 たとえば、ローカル配線を使用したい場合は、Global Signalアサインメントを OFFに設定します。

図 12-23: Global Signalアサインメント

リセットとグローバル・ネットワークリセット信号は多くの場合、グローバル・ネットワーク上に配線されますが、 グローバル・ネットワークの使用はリカバリ・エラーの原因となることがあります。 その場合は、リセットと信号の配線パスを生成するレジスタの配置を再検討します。

設定が疑わしい場合設定が疑わしい場合のエラーには、要件が非常に小さい、あるいは非常に大きいパスが含まれています。 その典型的な原因のひとつに、計算の精度誤差が挙げられます。 例えば、10Mhz/3 =周期あたり 33.33nsの場合、 3サイクルでは、時間は 99.999ns対 100.000nsとなります。 これに最大遅延を設定すると、適切なセットアップの関係を提供することができます。別のエラーの原因には、以下のようなデザインの設計意図によりでは falseでなければならないパスがあります。• FIFOを介して処理される非同期パス• 複数のマルチプル・クロック・サイクルで利用可能であるデータへのハンドシェイクに依存する低速の非同期パス

フィッタが制限のあるタイミング要件を不必要に満たすことを防止するには、フォルス・パス・ステートメントもしくはマルチサイクル・パス・ステートメントを追加することを検討します。

ロジックの深度TimeQuestのパス・レポートの Statistics タブは、パス内のロジックのレベルを示します。 パスがタイミング・エラーを起こし、かつロジック・レベルの数が多い場合は、そのデザインの箇所にパイプラインを追加します。

オートシフト・レジスタの交換シフト・レジスタまたはレジスタ・チェインは、面積を節約するために合成中に RAMに変換することができます。 しかし、多くの場合、RAMへ変換することにより速度は低下します。 変換されたレジスタの名称には「altshift_taps」が含まれます。

QII5V22014.12.15 ファンアウト 12-37

タイミング収束と最適化 Altera Corporation

フィードバック

タイミング・エラーがシフト・レジスタで開始、または完了する場合、 Auto Shift RegisterReplacementオプションをディセーブルにします。 ただし、パイプラインの使用を意図しているレジスタは変換すべきではありません。 チェインに変換するシフトレジスタに対して、RAMまたはロジック・セルに実装する場合のエリアとスピードのトレードオフを評価します。 デザインがほぼフルであれば、RAMへ変換することでエリアが節約できるのでクリティカルでないクロック・ドメインには有用です。 デフォルト設定の AUTOから OFFにすることで、グローバルもしくはレジスタ、階層単位で設定の変更が可能です。

クロッキング・アーキテクチャChip Planner内のクロック領域の境界を確認します。 チップのエリアにあるリージョナル・クロックで駆動されるレジスタを配置する必要があります。

図 12-24: クロック領域

デバイス上部の I/Oインタフェースがリージョナル・クロックによって駆動されるロジックに接続すると、タイミング・エラーが発生する可能性があります。リージョナル・クロックはデバイスの 1つのエリアに存在し、配置の制約は強制的に、一部の I/Oからロジックへのパスがエリアを交差する長いパスにします。

12-38 クロッキング・アーキテクチャQII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

ロジックを駆動するには異なるタイプのクロック・ソースを使用します。グローバルはデバイス全体をカバーし、デュアル・リージョナルはデバイスの半分をカバーします。 あるいは、I/Oインタフェースの頻度を減少させると、長いパスの遅延に対応することができます。 また、リージョナル・クロックのエリアに隣接する特定の I/Oすべてを配置するために、デバイスのピン配置を再度設計することもできます。 レジスタの位置が LogicLock領域、クロック・リソース、またはハード・ブロック(メモリ、DSP、IPアドレス)などによって制限されている場合、この問題が発生する可能性があります。 TimeQuestレポートの Extra Fitter Informationタブは、配置がパス内のノードに対し制限されているかを通知します。

タイミング収束に関する推奨事項TimeQuestアナライザの Report Timing Closure Recommendationsタスクはパスを分析し、パスの特性に基づいた具体的な推奨事項を提供します。

調整と再コンパイルの実行最小限の労力で修正できる明らかに問題のある部分を探します。 コンパイラがタイミングを満たすことに問題のあった箇所を特定するには、約 5つのコンパイルにシード・スィープを実行します。 シード・スィープの実行により、一貫して障害のあるパスが明らかになります。 デザインのこの箇所を再コーディング、あるいは再設計することを検討してください。タイミング収束を成功に導くには、よく検討された RTLの方がコンパイルの設定を変更するよりも効果的である場合があります。 深刻なタイミング・エラーが存在せず、デザインに性能の改善に向けての最適化が実行済みで、最終のリリースに近い場合、シード・スィープも有効です。 シード・スィープは、コンパイル設定への変更点を評価するためにも使用することができます。 フィッタ・アルゴリズムのランダム性により、コンパイル結果は異なります。 コンパイル設定へ適用した変更が、平均して低いパフォーマンスとなるようであれば、その変更を元に戻します。適用した設定や制約によっては、問題が改善されるどころか新たな問題を生む場合があります。RTLやデザイン・アーキテクチャに大幅な変更が行われた場合は、LogicLock領域を使用せずにデフォルト設定で定期的にコンパイルを行い、タイミング・エラーを起こすパスを再評価します。この段階でのパーティションはタイミングの収束を改善しないことが多く、パーティションは設計の初期段階で実行しておく必要があります。 パーティションの追加はロジック使用率を増加させ、それが境界間の最適化を妨げる場合、タイミング収束が困難となり、コンパイル時間の増加に繋がります。LogicLock領域の追加はタイミング収束に役立つ場合がありますが、これは設計の初期段階で実行しておく必要があります。 デザイン・サイクルの最後で新しい LogicLock領域を追加すると配置が制限されることがあり、パフォーマンスの低下を招きます。

スクリプティング・サポートこの章で説明する手順の実行と設定は Tclスクリプトで行うことができます。 また、一部の手順はコマンド・プロンプトでも実行できます。 スクリプティング・コマンド・オプションについて詳しくは、Quartus II Command-Lineおよび Tcl API Helpブラウザを参照してください。 このHelpブラウザを使用するには、コマンド・プロンプトで次のコマンドを入力します。quartus_sh --qhelp

QII5V22014.12.15 タイミング収束に関する推奨事項 12-39

タイミング収束と最適化 Altera Corporation

フィードバック

このセクションで説明するオプションの多くは、インスタンス・レベル、グローバル・レベル、あるいはその両方で指定することができます。グローバル・アサインメントを削除するには、以下の Tclコマンドを使用します。set_global_assignment -name <.qsf variable name><value>

インスタンス・アサインメントを作成するには、以下の Tclコマンドを使用します。set_instance_assignment -name <.qsf variable name><value> -to <instance name>

注: <value>フィールドに('Standard Fit' などの)スペースが含まれる場合、ストレート・ダブルクォーテーション・マーク(")で値を囲む必要があります。

関連情報Tcl Scripting documentation

Quartus II Settings Reference File Manual

Command-Line Scripting documentation

初期コンパイルの設定Quartus II設定ファイル(.qsf)の変数名は、適切な値に沿った設定を行うために Tclアサインメントで使用されます。 Typeカラムは、設定がグローバル設定またはインスタンス設定、あるいはその両方のいずれでサポートされるかを示しています。最初の表は、.qsf変数名と Quartus II Handbookの Design Optimization Overview章にある“InitialCompilation: Required Settings”セクションに記載された設定に向けた適用可能な値を表しています。 次の表は、高度なコンパイル設定を示しています。

表 12-4: 初期コンパイルの設定

設定名 .qsfファイルの変数名 値 タイプ

Optimize IOCRegisterPlacement ForTiming

OPTIMIZE_IOC_REGISTER_

PLACEMENT_FOR_TIMING

ON, OFF グローバル

ホールド・タイミングの最適化

OPTIMIZE_HOLD_TIMING OFF, IO PATHS ANDMINIMUM TPD PATHS,ALL PATHS

グローバル

表 12-5: 高度なコンパイル設定

設定名 .qsfファイルの変数名 値 タイプ

RouterTimingOptimizationlevel

ROUTER_TIMING_OPTIMIZATION_LEVEL NORMAL, MINIMUM, MAXIMUM グローバル

12-40 初期コンパイルの設定QII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

リソース使用率の最適化手法(LUTベースのデバイス)表は、.qsfファイルの変数名と Optimizing Timing (LUT-Based Devices)に記載された設定に向けた適切な値を表しています。

表 12-6: リソース使用率最適化の設定

設定名 .qsfファイルの変数名 値 タイプ

Auto PackedRegisters (1)

AUTO_PACKED_REGISTERS_ <device family name> OFF, NORMAL,

MINIMIZE AREA,

MINIMIZE AREA WITH

CHAINS, AUTO

グローバル、インスタンス

PerformWYSIWYGPrimitiveResynthesis

ADV_NETLIST_OPT_SYNTH_WYSIWYG_REMAP ON, OFF グローバル、インスタンス

PhysicalSynthesis forCombinational Logic forReducingArea

PHYSICAL_SYNTHESIS_COMBO_LOGIC_FOR_AREA ON, OFF グローバル、インスタンス

PhysicalSynthesis forMappingLogic toMemory

PHYSICAL_SYNTHESIS_MAP_LOGIC_TO_MEMORY_FOR AREA ON, OFF グローバル、インスタンス

OptimizationTechnique

<device family name> _OPTIMIZATION_TECHNIQUE AREA, SPEED,

BALANCEDグローバル、インスタンス

SpeedOptimizationTechnique forClockDomains

SYNTH_CRITICAL_CLOCK ON, OFF インスタンス

State MachineEncoding

STATE_MACHINE_PROCESSING AUTO, ONE-HOT,

GRAY, JOHNSON,

MINIMAL BITS,

SEQUENTIAL, USER-

ENCODE

グローバル、インスタンス

Auto RAMReplacement

AUTO_RAM_RECOGNITION ON, OFF グローバル、インスタンス

QII5V22014.12.15 リソース使用率の最適化手法(LUTベースのデバイス) 12-41

タイミング収束と最適化 Altera Corporation

フィードバック

設定名 .qsfファイルの変数名 値 タイプ

Auto ROMReplacement

AUTO_ROM_RECOGNITION ON, OFF グローバル、インスタンス

Auto ShiftRegisterReplacement

AUTO_SHIFT_REGISTER_RECOGNITION ON, OFF グローバル、インスタンス

Auto BlockReplacement

AUTO_DSP_RECOGNITION ON, OFF グローバル、インスタンス

Number ofProcessors forParallelCompilation

NUM_PARALLEL_PROCESSORS 1と 16を含む整数、または ALL

グローバル

テーブルの注意点:1. この設定への許容値は、選択するデバイス・ファミリにより異なります。

I/Oタイミングの最適化手法(LUTベースのデバイス)表は、.qsf ����の変数名と I/Oタイミングの最適化設定に向けた適切な値を示しています。

表 12-7: I/Oタイミングの最適化手法

設定名 .qsfファイルの変数名 値 タイプ

Optimize IOC RegisterPlacement For Timing

OPTIMIZE_IOC_REGISTER_PLACEMENT_FOR_TIMING ON, OFF グローバル

Fast Input Register FAST_INPUT_REGISTER ON, OFF インスタンス

高速出力レジスタ FAST_OUTPUT_REGISTER ON, OFF インスタンス

高速出力イネーブル・レジスタ

FAST_OUTPUT_ENABLE_REGISTER ON, OFF インスタンス

高速 OCTレジスタ FAST_OCT_REGISTER ON, OFF インスタンス

12-42 I/Oタイミングの最適化手法(LUTベースのデバイス)QII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

レジスタ間のタイミング最適化手法(LUTベースのデバイス)表には.qsfファイル no変数名と Register-to-Register Timing Optimization Techniques (LUT-BasedDevices)に記載されている設定に向けた適切な値を示しています。

表 12-8: レジスタ間のタイミング最適化に向けた設定

設定名 .qsfファイルの変数名 値 タイプ

PerformWYSIWYGPrimitiveResynthesis

ADV_NETLIST_OPT_SYNTH_WYSIWYG_REMAP ON, OFF グローバル、インスタンス

Perform PhysicalSynthesis forCombinationalLogic

PHYSICAL_SYNTHESIS_COMBO_LOGIC ON, OFF グローバル、インスタンス

Perform RegisterDuplication

PHYSICAL_SYNTHESIS_REGISTER_

DUPLICATION

ON, OFF グローバル、インスタンス

Perform RegisterRetiming

PHYSICAL_SYNTHESIS_REGISTER_RETIMING ON, OFF グローバル、インスタンス

Perform AutomaticAsynchronousSignal Pipelining

PHYSICAL_SYNTHESIS_ASYNCHRONOUS_

SIGNAL_PIPELINING

ON, OFF グローバル、インスタンス

Physical SynthesisEffort

PHYSICAL_SYNTHESIS_EFFORT NORMAL, EXTRA, FAST グローバル

Fitter Seed SEED <integer> グローバル

Maximum Fan-Out MAX_FANOUT <integer> インスタンス

Manual LogicDuplication

DUPLICATE_ATOM <node name> インスタンス

Optimize Powerduring Synthesis

OPTIMIZE_POWER_DURING_SYNTHESIS NORMAL, OFF

EXTRA_EFFORTグローバル

Optimize Powerduring Fitting

OPTIMIZE_POWER_DURING_FITTING NORMAL, OFF

EXTRA_EFFORTグローバル

QII5V22014.12.15 レジスタ間のタイミング最適化手法(LUTベースのデバイス) 12-43

タイミング収束と最適化 Altera Corporation

フィードバック

改訂履歴表 12-9: 改訂履歴

日付 バージョン 変更内容

2014.12.15 14.1.0 • コンパイラの設定にフィッタ設定、Analysis & Synthesisの設定、およびフィジカル・シンセシス最適化からコンパイラ設定の位置を更新

• DSE IIの内容を更新

2014年 6月 14.0.0 • DITAへ変換• QIIソフトウェア v14.0でサポートされていない、Arria GX、

Arria II、Cyclone III、Stratix II、Stratix IIIなどの古いデバイスについての内容を削除

• Megafunctionの内容を IPコアの内容と交換

2013年 11月 13.1.0 • タイミング収束のデザイン評価を追加• タイミング最適化手法(マクロセル・ベースの CPLD)セクションを削除

• マルチコーナー・タイミングの最適化およびフィッタの積極的なルーティングの最適化を更新

• Report All Summariesコマンドへのアクセス方法を解説するため TimeQuestタイミング・アナライザを使用したタイミング解析を更新

• Ignored Assignment Reportに関する情報が入手できる FitterSummary Reportsへのヘルプ・リンクを含めるためタイミング制約の無視を更新

2013年 5月 13.0.0 • 章のタイトルを面積&タイミング収束と最適化に変更• デザインとエリア/リソース最適化に関する情報を削除• 以下のセクションを追加フィッタの積極的なルーティングの最適化クリティカル・パスのソースとデスティネーションからのパスおよびクリティカル・パスのソースとデスティネーションへのパスを解析する際のヒントChip Plannerに複数のパスを配置する際のヒントコンパイル間のクリティカル・パスをモニタする.tclスクリプト作成のヒント

2012年 11月 12.1.0 • 「初期コンパイル:フィッタのオプション設定」、「I/Oアサインメント」、「リソース使用率」、「配線」、「リソース使用率問題の解決」を更新

12-44 改訂履歴QII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック

日付 バージョン 変更内容

2012年 6月 12.0.0 • 「マルチコーナー・タイミングの最適化」、「リソース使用率」、「リソースの最適化アドバイザの使用」、「TimeQuestタイミング・アナライザを使用したタイミング解析」、「ResourceOptimization Advisorの使用」、「Placement Effort Multiplierの向上」、「Router Effort Multiplierの向上」、「TimingQuest Analyzerによるタイミング・エラーのデバッグ」を更新

• 章全体のマイナーなテキストを編集

2011年 11月 11.1.0 • 「タイミング要件の設定」、「Standard Fit」、「Fast Fit」、「マルチコーナー・タイミングの最適化」、「TimeQuestタイミング・アナライザによるタイミング解析」、「TimingQuest Analyzerによるタイミング・エラーのデバッグ」、「LogicLockアサインメント」、「クロック・ドメインを交差している問題のあるクロック・パスを解析する際のヒント」、「合成中の階層のフラット化」、「Fast Input Register、Fast Output Register、および OutputEnable Register」、「階層のアサインメント」を更新

• スパイン・クロックの制限のセクションを追加• ステート・マシン・エンコーディングの変更を削除• 章全体のマイナーなテキストを編集

2011年 5月 11.0.0 • 「初期コンパイル:フィッタ・オプションの設定」セクションを再編成

• 「リソース使用率」セクションに新しい情報を追加• 「ファンアウトを制御するためのロジックの複製」セクションに新しい情報を追加

• ヘルプへのリンクを追加• 章全体を編集し更新

2010年 12月 10.1.0 • ヘルプへのリンクを追加• デバイスのサポートを更新• 「TimeQuestアナライザを使用したタイミングング・エラーのデバッグ」セクションを追加

• Classic Timing Analyzerへの参照を削除• 章全体を通した他の更新

2010年 8月 10.0.1 リンクを修正

QII5V22014.12.15 改訂履歴 12-45

タイミング収束と最適化 Altera Corporation

フィードバック

日付 バージョン 変更内容

2010年 7月 10.0.0 • コンパイル時間の最適化手法のセクションを新しい ReducingCompilation Timeの章に移動

• タイミング・クロージャ・フロアプランへの参照を削除• Smart Compilation Settingと Early Timing Estimationのセクションを新しい Reducing Compilation Timeの章に移動

• その他のリソース使用率最適化のセクションを追加• 古い情報を削除• DSEの章への参照をヘルプ・リンクへ変更• 適切な箇所にヘルプをリンク• 「参考資料」のセクションを削除

関連情報Quartus II Handbook ArchiveQuartusIIハンドブックの以前のバージョン

12-46 改訂履歴QII5V2

2014.12.15

Altera Corporation タイミング収束と最適化

フィードバック