9. Synplicity Synplify および Synplify Pro のサポート

9. Synplicity Synplify および
Synplify Pro のサポート
この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用
ください。設計の際には、最新の英語版で内容をご確認ください。
QII51009-8.0.0
はじめに
プログラマブル・ロジック・デザイン(PLD)がより複雑になり、性能
の向上が要求される中で、高度な合成がデザイン・フローで重要な部分
を占めるようになりました。この章では、Quartus® II ソフトウェアにお
ける Synplicity Synplify および Synplify Pro ソフトウェアのサポートに
ついて説明し、アルテラ・デバイスで良好な結果を達成するためのデザ
イン・フロー、方法論、および手法を紹介します。この章は、以下のト
ピックスで構成されています。
■
■
■
■
■
Synplify および Quartus II ソフトウェアでの一般的なデザイン・フ
ロー
タイミング・ドリブン・コンパイル設定、最適化オプション、およ
びアルテラ固有の属性など、Synplify ソフトウェアの最適化方法
NativeLink® 統合を使用した Quartus II ソフトウェアへのデザイン
および制約のエクスポート
アルテラ・メガファンクションおよび LPM
(Library of Parameterized
Modules)ファンクションのガイドライン、MegaWizard® Plug-In
Manager によるこれらのメガファンクション / ファンクションのイ
ンスタンス化、および HDL(ハードウェア記述言語)コードからの
これらのメガファンクション / ファンクションの推測方法のヒント
Synplify ProソフトウェアのMultiPointフローなど、インクリメンタ
ル・コンパイルおよびブロック・ベースのデザイン
この章の内容は、特に記載がない限り、Synplify および Synplify Pro ソ
フトウェアの両方に適用されます。この章は、以下の項で構成されてい
ます。
■
■
■
■
■
■
9–2 ページの「サポートされるアルテラ・デバイス・ファミリ」
9–3 ページの「デザイン・フロー」
9–9 ページの「Synplify 最適化方法」
9–19 ページの「NativeLink 統合を使用する Quartus II ソフトウェア
へのデザインのエクスポート」
9–36ページの「アルテラ・メガファンクションおよびアーキテクチャ
固有の機能に関するガイドライン」
9–51 ページの「インクリメンタル・コンパイルおよびブロック・ベー
ス・デザイン」
この章では、Synplify または Synplify Pro ソフトウェアをすでにセット
アップし、ライセンスを取得済みで、ソフトウェアの操作に慣れている
ことを前提としています。
Altera Corporation
2008 年 5 月
9–1
Quartus II ハンドブック Volume 1
サポートされる
アルテラ・
デバイス・
ファミリ
Synplify ソフトウェアは、合成結果をアルテラ・デバイス・ファミリに
マップします。以下に、Quartus II ソフトウェア v8.0 で、Synplify ソフ
トウェア v9.4 によってサポートされるアルテラ・デバイス・ファミリを
示します。
■
■
■
■
■
■
■
■
■
■
■
■
■
■
Arria™ GX
Stratix® IV
Stratix III
Stratix II、Stratix II GX、Hardcopy® II
Stratix、Stratix GX、HardCopy Stratix
Cyclone® III
Cyclone II
Cyclone
MAX® II
MAX® 7000、MAX 3000
APEX™ II
APEX 20K、APEX 20KC、APEX 20KE
FLEX® 10K、FLEX 6000
ACEX® 1K
また、Synplify ソフトウェアは、Quartus II ソフトウェアでのみサポー
トされる Excalibur™ ARM® レガシー・デバイスもサポートします。た
だし、www.altera.co.jp/mysupport でライセンスをリクエストする必要
があります。
また、Synplify ソフトウェアは、アルテラ MAX+PLUS II ソフトウェア
でのみサポートされる以下のレガシー・デバイスもサポートします。
■
■
FLEX 8000
MAX 9000
特定の Synplify バージョンでの新しいデバイスのサポートにつ
いては、Synplicity の Web サイト(www.synplicity.com)でリ
リース・ノートを参照してください。
9–2
Altera Corporation
2008 年 5 月
デザイン・フロー
デザイン・
フロー
Synplify ソフトウェアを使用した、Quartus II ソフトウェアのデザイン・
フローは、以下のステップで構成されます。
1.
Quartus II ソフトウェア、Synplify ソフトウェア、またはテキスト・
エディタで、Verilog HDL または VHDL デザイン・ファイルを作成
します。
2.
Synplify ソフトウェアでプロジェクトをセットアップし、合成のた
めに HDL デザイン・ファイルを追加します。
3.
ターゲット・デバイスを選択し、Synplify ソフトウェアでタイミン
グ制約およびコンパイラ・ディレクティブを追加して、合成時にデ
ザインを最適化します。
4.
Synplify ソフトウェアで合成を実行します。
5.
Quartus II プロジェクトを作成し、Synplify ソフトウェアによって
生成されるファイルを Quartus II ソフトウェアにインポートしま
す。これらのファイルは、配置配線および性能評価に使用されます。
●
●
●
テクノロジ固有の Verilog Quartus Mapping File(.vqm)ネッ
トリストまたはレガシー・デバイス用の EDIF(.edf)ネットリ
ストも、MAX+PLUS II ソフトウェアでサポートされます。
TimeQuest タイミング制約用の Synopsys Constraints Format
(.scf)ファイル。
ツール・コマンド言語(.tcl)制約ファイル。
Quartus II ソフトウェアは、Synplify ソフトウェア内から実行
することもできます。詳細は、9–20 ページの「Synplify ソフト
ウェア内から Quartus II ソフトウェアを実行する」を参照して
ください。
6.
Altera Corporation
2008 年 5 月
ニーズを満たす配置配線結果が得られた後、アルテラ・デバイスを
コンフィギュレーションまたはプログラムします。
9–3
Quartus II ハンドブック Volume 1
図 9–1 に、Synplify および Quartus II ソフトウェアを使用するときの推
奨デザイン・フローを示します。
図 9–1. 推奨デザイン・フロー
Verilog
HDL
(.v)
VHDL
(.vhd)
Functional/RTL
Simulation
Synplify Software
Constraints & Settings
TechnologySpecific Netlist
(.vqm/edf)
Forward-Annotated
Project & Timing Constraints
(.tcl/.acf)
Synopsys Constraints
format (.scf) File
Constraints & Settings
Quartus II Software
Gate-Level
Functional
Simulation
Post-Synthesis
Simulation Files
(.vho/.vo)
Gate-Level Timing
Simulation
No
Timing & Area
Requirements
Satisfied?
Post-Place-and-Route
Simulation File
(.vho/.vo)
Yes
Configuation/Programming
Files (.sof/.pof)
Program/Configure Device
Synplify および Synplify Pro ソフトウェアは、
VHDL および Verilog HDL
ソース・ファイルの両方をサポートします。ただし、VHDL および Verilog
HDL ソース・ファイルを組み合わせて使用するミックスト・シンセシス
は、Synplify Pro ソフトウェアでのみサポートされています。
9–4
Altera Corporation
2008 年 5 月
デザイン・フロー
Synplify ソ フトウェアの SCOPE ウィンドウを使用して、Synplify
Constraints File(.sdc)にデザインのタイミング制約および属性を指定
します。これらは、HDL ソース・ファイルに直接指定することもできま
す。また、HDL ソース・ファイルにはコンパイラ・ディレクティブも定
義できます。これらの制約の多くは、Quartus II ソフトウェアで使用す
るためにフォワード・アノテートされます。
Synplify ソフトウェアに付属する HDL Analyst は、テクノロジに依存し
ない RTL(Register Transfer Level)ビュー・ネットリスト(.srs)ファ
イルと、テクノロジ・ビュー・ネットリスト(.srm)ファイルの回路図
ビューを生成するグラフィカル・ツールです。Synplify HDL Analyst で
は、デザインの解析およびデバッグを視覚的に行えます。HDL Analyst
は、RTL および Technology ビュー、HDL ソース・コード、および FSM
(Finite State Machine)ビューアの間でクロス・プロービングをサポート
しています。また、Synplify HDL Analyst は、Technology ビューと
Quartus II ソフトウェアのタイミング・レポート・ファイルの間でもク
ロス・プロービングをサポートしています。
Synplify ソフトウェアで HDL Analyst をイネーブルするには、
別途ライセンス・ファイルが必要です。Synplify Pro ソフトウェ
アには HDL Analyst が付属しています。
合成が完了したら、配置配線のために、.vqm または .edf ネットリスト
を Quartus II ソフトウェアにインポートします。Synplify ソフトウェア
によって生成される Tcl ファイルを使用して、制約(デバイスの選択を
含 む)を フ ォ ワ ー ド・ア ノ テ ー ト で き ま す。ま た、オ プ シ ョ ン で、
Quartus II ソフトウェアでプロジェクトをセットアップすることもでき
ます。
Stratix III、Cyclone III、Arria GX、または新しいデバイスを選択した場
合、Quartus II ソフトウェアはデフォルトで、TimeQuest タイミング・
アナライザにより .scf ファイルからの SDC フォーマットのタイミング
制約を使用します。Stratix II または Stratix II GX デバイスが選択されて
いる場合、Synplify ソフトウェアの Implementation Options ダイアロ
グ・ボックスで、Device タブの Use TimeQuest Timing Analyzer オプ
ションをオンにすることによって、クラシック・タイミング・アナライ
ザから TimeQuest タイミング・アナライザに切り替えることができま
す。その他のデバイスの場合、Quartus II ソフトウェアは、クラシック・
タイミング・アナライザで Quartus Setting File(.qsf)からの Tcl フォー
マットのタイミング制約を使用します。Quartus II ソフトウェアで、
TimeQuest タイミング・アナライザからクラシック・タイミング・アナ
ライザに手動で変更する方法については、9–23 ページの「TimeQuest
SDC タイミング制約を .scf ファイルで Quartus II ソフトウェアに渡す」
を参照してください。
Altera Corporation
2008 年 5 月
9–5
Quartus II ハンドブック Volume 1
領域およびタイミング要求を満たしている場合は、Quartus II ソフト
ウェアによって生成されるファイルを使用して、アルテラ・デバイスを
プログラムまたはコンフィギュレーションします。図 9–1 に示すように、
領域またはタイミング要求を満たしていない場合は、Synplify ソフト
ウェアまたは Quartus II ソフトウェアで制約を変更して合成を繰り返す
ことができます。アルテラでは、可能な限り、Synplify ソフトウェア・
レベルでタイミング制約を提供し、Quartus II ソフトウェア・レベルで
配置制約を提供することを推奨しています。領域およびタイミング要求
を満たすまで、この処理を繰り返します。
シミュレーションはプロセスのさまざまな時点で実行できますが、最終
的なタイミング解析は、配置配線の完了後に実行する必要があります。
また、フォーマル検証もデザイン・プロセスのさまざまな段階で実行で
きます。
Synplify ソフトウェアでのフォーマル検証のサポート方法について詳し
くは、
「Quartus II ハンドブック Volume 3」の「セクション III フォーマ
ル検証」を参照してください。
また、Quartus II ソフトウェアの他のオプションや手法を使用して、領
域およびタイミング要求を満たすこともできます。例えば、WYSIWYG
Primitive Resynthesis というオプションがあります。このオプションを
使用すると、Quartus II ソフトウェア内で .vqm ネットリストに最適化
を実行できます。
ネットリスト最適化については、
「Quartus II ハンドブック Volume 2」の
「Netlist Optimizations and Physical Synthesis」の章を参照してくださ
い。
Synplify および Quartus II ソフトウェアのオプションを使用しても、領
域およびタイミング要求を満足できない場合があり、そのときはソース・
コードを修正する必要があります。
9–6
Altera Corporation
2008 年 5 月
デザイン・フロー
合成後、Synplify ソフトウェアは、いくつかの中間ファイルと出力ファ
イルを生成します。それらのファイル・タイプを表 9–1 に示します。
表 9–1. Synplify 中間および出力ファイル
ファイル拡張子
ファイルの説明
.srs
テクノロジに依存しない RTL ネットリスト。Synplify ソフトウェアでのみ読み出し可能。
.srm
Technology ビュー・ネットリスト。
.srr (1)
Synthesis レポート・ファイル。
.edf/.vqm
.edf または .vqm ファイル形式の、テクノロジ固有のネットリスト。
.edf ファイルは、ACEX 1K、FLEX 10K、FLEX 10KA、FLEX 10KE、FLEX 6000、FLEX
8000、MAX 7000、MAX 9000、および MAX 3000 デバイスで作成されます。.vqm ファ
イルは、これら以外のすべてのアルテラ・デバイス・ファミリで作成されます。
.acf/.tcl
制約およびアサインメントを含む、フォワード・アノテートされた制約ファイル。
Quartus II ソフトウェアの .tcl ファイルは、すべてのデバイスで作成されます。.tcl ファ
イルには、Quartus II プロジェクトを作成およびセットアップし、配置制約を引き渡すの
に適切な Tcl コマンドが含まれています。
適用可能な場合、
.acf ファイルから MAX+PLUS II アサインメントがインポートされます。
.scf
TimeQuest タイミング・アナライザ制約用のタイミング制約を含む Synopsys Constraint
Format ファイル。
表 9–1 の注 :
(1)
このレポート・ファイルには、多くの場合は配置配線前の情報に基づく性能見積もりが含まれています。配置配
線後は、Quartus II ソフトウェアがレポートする fMAX を使用します。これが唯一信頼できるタイミング情報源で
す。このレポート・ファイルには、合成後デバイス・リソース使用率統計情報が含まれていますが、この情報は
配置配線後のリソース使用率を正確に予測しているとは限りません。Synplify ソフトウェアは、ブラック・ボッ
クス・ファンクションを考慮せず、また Quartus II ソフトウェアが実行するレジスタ・パッキングで達成される
ロジック使用率の低下も考慮しません。レジスタ・パッキングにより、1 個のレジスタとルック・アップ・テー
ブル(LUT)が 1 つのロジック・セルに統合され、ロジック・セルの使用率が Synplify ソフトウェアの見積もり
よりも低くなります。配置配線後は、Quartus II ソフトウェアがレポートするデバイス使用率を使用してくださ
い。
出力ネットリスト・ファイル名と結果の形式
以下のステップを実行して、Synplify ソフトウェアの出力ネットリスト・
ディレクトリの場所と名前を指定します。
Altera Corporation
2008 年 5 月
1.
Project メニューの Implementation Options をクリックします。
2.
Implementation Results タブをクリックします。
3.
Results Directory ボックスに、出力ネットリスト・ファイル・ディ
レクトリの場所を入力します。
9–7
Quartus II ハンドブック Volume 1
4.
Result File Name ボックスに、出力ネットリスト・ファイル名を入
力します。
デフォルトでは、ディレクトリはプロジェクト実装ディレクトリに設定
され、ファイル名はトップレベル・デザイン・モジュール名またはエン
ティティ名に設定されます。
また、Implementation Results タブでは、Result Format および Quartus
Version オプションも使用できます。Result Format リストには、デバイ
ス・ファミリに応じて、.edf または .vqm ネットリストが指定されます。
.edf 出力ネットリスト・ファイルは、ACEX 1K、FLEX 10K、FLEX 10KA、
FLEX 10KE、FLEX 6000、FLEX 8000、MAX 7000、MAX 9000、および
MAX 3000 デバイスでのみ作成されます。その他のアルテラ・デバイス
では、.vqm フォーマットのネットリストが生成されます。
Quartus Version リストから、使用中の Quartus II ソフトウェアのバー
ジョンを選択します。このオプションにより、ネットリストとソフトウェ
ア・バージョンの互換性が保証され、最新機能がサポートされます。ア
ルテラでは、可能な限り、Quartus II ソフトウェアの最新バージョンを
使用することを推奨しています。Quartus II ソフトウェアが、Quartus
Version リストで使用可能なバージョンよりも新しい場合は、現在の
Quartus II ソフトウェア・バージョンをサポートする新しいバージョン
の Synplify ソフトウェアを入手可能かどうかを確認します。そうでない
場合は、最良の互換性を達成するために、リストで最新バージョンを選
択します。
Quartus Version リストは、アルテラ・デバイスを選択した後
でのみ利用できます。
Synplify ソフトウェアで使用する Quartus II ソフトウェアのバージョン
を設定するには、以下のステップを実行します。
1.
Synplify ソ フ ト ウ ェ ア で、Project メ ニ ュ ー の Implementation
Options をクリックします。
2.
Implementation Results タブをクリックし、Quartus Version をク
リックします。
3.
リストから適切なバージョン番号を選択します。
また、コマンドラインで以下のコマンドを使用することもできます。
set_option -quartus_version <version number> r
9–8
Altera Corporation
2008 年 5 月
Synplify 最適化方法
Synplify
最適化方法
デザインがより複雑になり、性能の向上が要求される中で、さまざまな
最適化方法を使用することが重要になってきました。Synplify ソフト
ウェアの制約を VHDL および Verilog HDL コーディング手法、および
Quartus II ソフトウェア・オプションと組み合わせると、必要な結果を
得ることができます。
追加のデザインおよび最適化手法については、
「Quartus II ハンドブック
Volume 1」の「Design Recommendations for Altera Devices and the
Quartus II Design Assistant」および「Quartus II ハンドブック Volume 2」
の「Area and Timing Optimization」の章を参照してください。
Synplify ソフトウェアは、デザインの性能を向上させるための制約およ
び最適化手法を多数備えています。Synplify Pro ソフトウェアは、基礎
的な Synplify ソフトウェアでサポートされていない手法もいくつか備え
ています。このドキュメントで Synplify サポートと記述されている箇所
では、基礎的な Synplify ソフトウェアと Synplify Pro ソフトウェアの両
方を意味し、Synplify Pro に限定される機能は、Synplify Pro と記述さ
れます。この項では、結果の品質を向上させるのに使用できるいくつか
の手法の概要を示します。
この項で説明する属性の適用について詳しくは、
「Synplify Software
Reference Manual」の「Altera Constraints, Attributes, and Options」の
章を参照してください。
Synplify Pro の実装
他 の 合 成 結 果 を 上 書 き し な い で、別 の 合 成 結 果 を 作 成 す る に は、
Synplify Pro ソフトウェアで、Project メニューの New Implementation
をクリックします。各実装について、ターゲット・デバイス、合成オプ
ション、および制約ファイルを指定します。各実装では、特定の実装の
コンパイルからのすべての結果ファイル(.vqm/.edf、.scf、および .tcl
ファイルなど)を含む独自のサブディレクトリが生成されます。したがっ
て、異なる実装の結果と比較して、デザインにとって最適な合成オプショ
ンおよび制約のセットを見つけることができます。
タイミング・ドリブン・シンセシス設定
Synplify ソフトウェアは、ユーザが割り当てたタイミング制約によるタ
イミング・ドリブン・シンセシスをサポートして、デザインの性能を最
適化します。Synplify ソフトウェアは、デザインを最適化して、これら
の制約を満足するよう試みます。
Altera Corporation
2008 年 5 月
9–9
Quartus II ハンドブック Volume 1
Quartus II NativeLink 機能により、タイミング・ドリブン配置配線のた
めに .tcl スクリプト・ファイルまたは .scf ファイルを使用して、Synplify
ソフトウェアで適用するタイミング制約を Quartus II ソフトウェアに
フォワード・アノテートすることができます。クロック周波数、フォル
ス・パス、およびマルチサイクル・パスなどの制約をフォワード・アノ
テートする方法について詳しくは、9–23 ページの「TimeQuest SDC タ
イミング制約を .scf ファイルで Quartus II ソフトウェアに渡す」または
9–25 ページの「Tcl コマンドを使用して Quartus II ソフトウェアに制約
を渡す」を参照してください。この項では、Synplify ソフトウェアのい
くつかの重要なタイミング制約について説明します。
Synplify Synthesis Report File ファイル(.srr)には、配置配線
遅延の見積もりについてのタイミング・レポートが含まれてい
ます。Quartus II ソフトウェアは、サードパーティ合成ツール
から合成後ネットリストでさらに最適化を実行できます。また、
デザインにはブラック・ボックスや、サードパーティ合成ソフ
トウェアで最適化されていない IP(Intellectual Property)ファ
ンクションが含まれている場合もあります。実際のタイミング
結果は、Quartus II ソフトウェアでデザインに対して完全な配
置配線を実行した後でのみ得られます。これらの理由から、
Quartus II 配置配線後タイミング・レポートは、より正確なデ
ザイン表現を提供します。デザインの性能評価には、これらの
レポートの統計情報を使用する必要があります。
クロック周波数
シングル・クロック・デザインの場合、プッシュボタン・フローを使用
するときはグローバル周波数を指定します。このフローはシンプルであ
り、良好な結果が得られますが、より高度なデザインの性能要件を満た
さないことがよくあります。タイミング制約、コンパイラ・ディレクティ
ブ、および他の属性を使用すると、デザインの性能を最適化するのに役
立ちます。これらの属性およびディレクティブは、HDL コードに直接入
力できます。あるいは、属性は Synplify ソフトウェアの SCOPE ウィン
ドウから .sdc ファイルに入力できます(ディレクティブは入力できませ
ん)。
SCOPE ウィンドウを使用して、デザイン全体に対するグローバル周波数
要件の設定と、個別クロック設定を行います。SCOPE ウィンドウの
Clocks タブを使用して、周波数(または周期)、立ち上がり時間、立ち
下がり時間、デューティ・サイクル、その他の設定を指定します。グロー
バル周波数を過度に制約しないで、個別にクロック設定を割り当てると、
Quartus II ソフトウェアおよび Synplify ソフトウェアは、デザイン全体
に対して最速のクロック周波数を達成します。define_clock 属性はク
ロック制約を割り当てます。
9–10
Altera Corporation
2008 年 5 月
Synplify 最適化方法
複数クロック・ドメイン
Synplify ソフトウェアは、関連しないクロック・ドメインに対してタイ
ミング解析を実行できます。各クロック・グループは異なるクロック・
ドメインであり、他のすべてのクロック・グループのクロックとは関連
しないものとして扱われます。1 つのクロック・グループ内のすべての
クロックが関連すると想定され、Synplify ソフトウェアはクロック間の
関係を自動的に計算します。SCOPE ウィンドウの Clocks タブを使用す
るか、define_clock 属性を使用して、新しいクロック・グループにク
ロックを割り当てたり、同じクロック・グループに関連するクロックを
配置できます。
入力 / 出力遅延
SCOPE ウィンドウの Input/Output タブを使用するか、
define_input_
delayおよびdefine_output_delay属性を使用して、デザインのポー
トの入力および出力遅延を指定します。Synplify ソフトウェアでは、tCO
および tSU 値を入力および出力に直接割り当てることはできません。た
だし、tCO 値は外部出力遅延を設定して推測でき、tSU 値は外部入力遅延
を設定して推測できます。下の計算式 1 および 2 は、tCO /tSU の関係と
入力 / 出力遅延の関係を示します。
(1)
tCO = clock period – external output delay
(2)
tSU = clock period – external input delay
syn_forward_io_constraints 属 性 が 1 に 設 定 さ れ て い る と、
Synplify ソフトウェアは、NativeLink 統合を使用して外部入力遅延およ
び出力遅延を Quartus II ソフトウェアに渡します。次に、Quartus II ソ
フトウェアは外部遅延を使用して、最大システム周波数を計算します。
マルチサイクル・パス
SCOPE ウィンドウの Multi-Cycle Paths タブを使用するか、define_
multicycle_path 属性を使用して、デザインのマルチサイクル・パス
を指定します。マルチサイクル・パスとは、伝播するために複数クロッ
ク・サイクルを必要とするパスです。どのパスがマルチサイクルかを指
定して、Quartus II および Synplify コンパイラが非クリティカル・パス
で過剰に動作しないようにすることが重要です。これらのパスを指定し
ていない場合も、タイミング解析時に不正確なクリティカル・パスがレ
ポートされる可能性があります。
Altera Corporation
2008 年 5 月
9–11
Quartus II ハンドブック Volume 1
フォルス・パス
フォルス・パスとは、タイミング解析で考慮する必要がないパスで、最
適化時には低い優先順位が割り当てられる(または、優先順位が割り当
てられない)パスです。フォルス・パスの例としては、低速非同期リセッ
ト、デザインに追加されるテスト・ロジックなどがあります。これらの
パスは、SCOPE ウィンドウの False Paths タブで設定します。define_
false_path 属性を使用します。
FSM コンパイラ
FSM コンパイラがオンの場合、コンパイラはデザイン内のステート・マ
シンを自動的に検出します。次に、ステート・マシンを抽出して最適化
します。FSM コンパイラはステート・マシンを解析し、ステート数に基
づいて、“sequential”、“gray”、または“one-hot”のどのエンコーディ
ングを実装するかを決定します。また、FSM コンパイラは、未使用ス
テート解析、到達不能ステートの最適化、および遷移ロジックの最小化
も実行します。
FSM コンパイラがオフの場合、コンパイラはロジックをステート・マシ
ンとして最適化しません。ステート・マシンは、HDL コードでのコー
ディングとして実装されます。したがって、ステート・マシンのコーディ
ング・スタイルが“sequential”の場合、実装も“sequential”です。FSM
コンパイラがオンの場合、ステート・マシンを推測して最適化します。
実装は HDL コードのコーディング・スタイルには関係なく、ステート
数に基づいて行われます。
syn_state_machine コンパイラ・ディレクティブを使用して、ステー
ト・マシンを抽出および最適化するか否かを指定します。FSM コンパイ
ラのデフォルトのエンコーディングを無効にするには、syn_encoding
ディレクティブを使用します。
syn_encoding ディレクティブの値を表 9–2 に示します。
表 9–2. syn_encoding ディレクティブの値 (1 / 2)
値
説明
Sequential
可能な限り、フリップフロップ数が少ないステート・マシンを生成します。Sequential(Binary
とも呼ばれる)ステート・マシンは、タイミングが主要な問題ではない場合に、面積が重視さ
れるデザインに有効です。
Gray
遷移ごとに 1 個のフリップフロップだけが変化するステート・マシンを生成します。Gray で
エンコードされるステート・マシンはグリッチが発生しない傾向があります。
9–12
Altera Corporation
2008 年 5 月
Synplify 最適化方法
表 9–2. syn_encoding ディレクティブの値 (2 / 2)
値
説明
One-hot
各ステートに 1 個のフリップフロップを持つステート・マシンを生成します。One-hot ステー
ト・マシンは一般に、最高の性能を提供し、clock-to-output 遅延が最短です。ただし、One-hot
実装は、通常 Binary 実装よりも大きくなります。
Safe
無効なステートに達した場合に、ステート・マシンをリセット・ステートに強制する、追加の
コントロール・ロジックを生成します。値 safe は、他の 3 つの値とともに使用でき、これら
の値を併用すると、ステート・マシンは要求されたエンコーディング方式で実装され、リセッ
ト・ロジックも生成されます。
例 9–1 に、
syn_encoding ディレクティブを適用するための VHDL コー
ド例を示します。
例 9–1. syn_encoding の VHDL コード
SIGNAL current_state : STD_LOGIC_VECTOR(7 DOWNTO 0);
ATTRIBUTE syn_encoding : STRING;
ATTRIBUTE syn_encoding OF current_state : SIGNAL IS "sequential";
デフォルトでは、ステート・マシン・ロジックは速度と面積に対して最
適化されますが、これはクリティカル・システムにとっては望ましくな
い場合もあります。値 safe は、無効なステートに達した場合に、ステー
ト・マシンをリセット・ステートに強制する、追加のコントロール・ロ
ジックを生成します。
Synplify Pro の FSM エクスプローラ
Synplify Pro ソフトウェアは、FSM エクスプローラを使用して、ステー
ト・マシンに適したエンコーディング・スタイルを探し、デザイン全体
の制約に基づいて最適なエンコーディングを実装できます。FSM エクス
プローラは、FSM コンパイラを使用して、ステート・マシンを識別して
デザインから抽出します。ただし、FSM コンパイラはエンコーディン
グ・スタイルをステート数に基づいて選択しますが、FSM エクスプロー
ラは特定のエンコーディング・スタイルを選択する前に、いくつかのス
タイルを試します。トレード・オフは、コンパイルではステート・マシ
ンの解析を実行するのにより多くの時間が必要ですが、ステート・マシ
ンにとって最適なエンコーディング方式を検出することです。
最適化属性およびオプション
以下の項では、デザイン性能を高めるために Synplify ソフトウェアで変
更できる他の属性およびオプションについて説明します。
Altera Corporation
2008 年 5 月
9–13
Quartus II ハンドブック Volume 1
Synplify Pro でのリタイミング
Synplify Pro ソフトウェアは、デザインをリタイミングできます。これ
により、組み合わせエレメント間でレジスタを移動(レジスタ・バラン
シング)することにより、シーケンシャル回路のタイミング性能を向上
させることができます。レジスタをリタイミングすると名前が変更され
るので注意してください。デザインをリタイミングするには、Device タ
ブの Implementation Options セクションにある Retiming オプション
をオンにするか、syn_allow_retiming 属性を使用します。
最大ファンアウト
デザインにファンアウトが大きいクリティカル・パス・ネットがある場
合は、syn_maxfan 属性を使用して、ネットのファンアウトを制御でき
ます。この属性を特定のネットに設定すると、ネットのドライバが複製
されて、全体的なファンアウトが低下します。syn_maxfan 属性は整数
値を取り、それを入力またはレジスタに適用します(syn_maxfan 属性
は、コントロール信号の複製には使用できず、この属性の許容最小値は
4)。この属性を使用すると、ロジック・リソース使用率が増加すること
があるため、配線リソースに歪みが生じて、コンパイル時間が長くなり、
フィッティングが困難になります。
出力レジスタまたは出力イネーブル・レジスタを複製する必要がある場
合は、syn_useioff 属性を使用して、出力ピンごとにレジスタを作成
できます(「レジスタ・パッキング」を参照)。
ネットの維持
合成時、コンパイラは、ポート、レジスタ、およびインスタンス化され
たコンポーネントを保持します。ただし、ネットによっては保持できず
に、最適化された回路が作成される場合があります。syn_keep ディレ
クティブを適用すると、コンパイラの最適化が無効になり、合成時にネッ
トが維持されます。syn_keep ディレクティブは、Boolean 値を取り、
これをワイヤ(Verilog HDL)および信号(VHDL)に適用できます。こ
の値を true に設定すると、合成を通じてネットが維持されます。
9–14
Altera Corporation
2008 年 5 月
Synplify 最適化方法
レジスタ・パッキング
アルテラ・デバイスは、レジスタを I/O セルにパッキングすることがで
きます。アルテラでは、Quartus II ソフトウェアで I/O レジスタ・アサ
イ ン メ ン ト の 作 成 を 許 可 す る こ と を 推 奨 し て い ま す。た だ し、
syn_useioff 属性を使用してレジスタ・パッキングを制御できます。
syn_useioff 属性は、Boolean 値を取り、ポートまたはモジュール全体
に適用できます。この値を 1 に設定すると、コンパイラはレジスタを I/O
セルにパッキングするよう指示します。この値を 0 に設定すると、
Synplify および Quartus II ソフトウェアの両方でレジスタ・パッキング
が行われません。
リソース共有
Synplify ソフトウェアは、合成時に、デフォルトでリソース共有手法を
使用して面積を削減します。Implementation Options ダイアログ・ボッ
クスの Options タブで Resource Sharing オプションをオフにすると、デ
ザ イ ン に よ っ て 性 能 結 果 が 改 善 さ れ る 場 合 が あ り ま す。ま た、
syn_sharing 属性により特定のモジュールに対してこのオプションをオ
フにすることもできます。このオプションをオフにする場合は、結果を
チェックしてタイミング性能に有効かどうか判断してください。オフに
しても効果がない場合は、Resource Sharing をオンのままにしておく必
要があります。
階層の維持
Synplify ソフトウェアは、デフォルトで境界間最適化を実行します。こ
れに より、デザインがフラット化されて最適化が可能になります。
syn_hier 属性を使用して、デフォルトのコンパイラ設定を無効にしま
す。syn_hier 属性は文字列値を取り、それをモジュールやアーキテク
チャに適用します。この値を hard に設定すると、モジュールやアーキ
テクチャの境界が保持されますが、一定の伝播が許容されます。この値
を locked に設定すると、すべての境界間最適化は実行されません。9–54
ページの「Synplify Pro MultiPoint シンセシスとインクリメンタル・コ
ンパイルの併用」で説明するとおり、locked 設定は、パーティション設
定とともに使用して、個々のデザイン・ブロックおよび複数の出力ネッ
トリストをインクリメンタル・コンパイル用に作成します。
デフォルトでは、Synplify ソフトウェアは、階層的な .vqm ファイルを
生成します。
ファイルをフラット化するには、
syn_netlist_hierarchy
属性を 0 に設定します。
Altera Corporation
2008 年 5 月
9–15
Quartus II ハンドブック Volume 1
レジスタ入力遅延および出力遅延
define_reg_input_delayおよびdefine_reg_output_delayとい
う高度なオプションを使用すると、レジスタに供給されるパスまたはレ
ジスタからのパスを、特定のナノ秒数だけ高速化できます。Synplify ソ
フトウェアは、デザインのグローバル・クロック周波数目標や、個別の
クロック周波数目標(define_clock で設定)を満たすよう試みます。
これらの属性を使用すると、レジスタに供給するパスまたはレジスタか
らのパスに遅延を追加して、クリティカル・パスをさらに制約できます。
また、この設定では負の数値を使用して、過剰に最適化されているパス
を低速化することもできます。
これらのオプションは、配置配線後の配線遅延が Synplify ソフトウェア
が予測する遅延を超過するため、デザインがタイミング目標を満たさな
い場合にタイミングを閉じるのに便利です。このオプションを使用して
合成を再実行し、実際の配線遅延(配置配線結果から)を指定して、ツー
ルが必要なクロック周波数を満たすようにします。Synplicity では、最
良の結果を得るには、これらのアサインメントを過大にしないことを推
奨しています。例えば、配線遅延値を増やしても、最後のコンパイルか
らの完全配線遅延を使用しないでください。
SCOPE 制約ウィンドウで、以下の項目を持つレジスタ・パネルを使用し
ます。
■
■
■
Register— レジスタの名前を指定します。コンパイル済みデザイン
を初期化した場合は、リストから名前を選択できます。
Type— 遅延が入力遅延または出力遅延のいずれであるかを指定し
ます。
Route—Quartus II ソフトウェアにフォワード・アノテートされるク
ロック周期に影響を与えることなく、制約されているレジスタの有
効周期を指定された値だけ短縮します。
以下の Tcl コマンド構文を使用して、入力または出力レジスタ遅延をナ
ノ秒で指定します。
例 9–2. Tcl コマンド構文を使用して、入力または出力レジスタ遅延を指定する
define_reg_input_delay {<register>} -route <delay in ns>
define_reg_output_delay {<register>} -route <delay in ns>
9–16
Altera Corporation
2008 年 5 月
Synplify 最適化方法
syn_direct_enable
この属性は、レジスタの専用イネーブル・ピンへのクロック・イネーブ
ル・ネットのアサインメントを制御します。この属性を使用すると、
Synplify マッパに対して、デザインに複数のクロック・イネーブル候補
がある場合に、特定のネットを唯一のクロック・イネーブルとして使用
するように指示できます。
また、この属性をコンパイラ・ディレクティブとして使用して、クロッ
ク・イネーブルを持つレジスタを推測することもできます。これを行う
には、SCOPE スプレッドシートではなく、ソース・コードに syn_
direct_enable ディレクティブを入力します。
syn_direct_enableのデータ型はBooleanです。値1またはtrueを設定
すると、クロック・イネーブル・ピンへのネット・アサインメントがイ
ネーブルされます。Verilog HDL の構文は以下のとおりです。
object /* synthesis syn_direct_enable = 1 */ ;
標準 I/O パッド
特定のアルテラ・デバイスおよび同等のデバイス I/O 規格については、
Synplify SCOPE ウィンドウの I/O Standard パネルを使用して、デザイ
ンの I/O パッドで使用する I/O 規格のタイプを指定できます。
例 9–3 に、define_io_standard 制約の Synplify SDC 構文を示しま
す。この制約の delay_type は、input_delay または output_delay
のいずれかでなければなりません。
例 9–3. define_io_standard 制約の Synplify SDC 構文
define_io_standard [-disable|-enable] {<objectName>} -delay_type \
[input_delay|output_delay] <columnTclName>{<value>} \
[<columnTclName>{<value>}...]
サポートされている I/O 規格について詳しくは、「Synplify Reference
Manual」の「Altera I/O Standards」を参照してください。
アルテラ固有の属性
以下の属性は、特定のアルテラ・デバイス機能で使用するものです。こ
れらの属性は、Quartus II プロジェクトにフォワード・アノテートされ、
配置配線プロセスで使用されます。
Altera Corporation
2008 年 5 月
9–17
Quartus II ハンドブック Volume 1
altera_chip_pin_lc
この属性は、ピン・アサインメントを実施するために使用します。この
属性は文字列値を取り、それを入力および出力に適用します。この属性
は、デザインのトップレベル・エンティティのポートでのみ使用でき、
デザイン階層の低レベルにおけるエンティティからのピン位置を割り当
てることはできません。
この属性はどの MAX シリーズ・デバイスでもサポートされて
いるわけではありません。SCOPE ウィンドウで、属性 altera_
chip_pin_lc を選択し、その値をピン番号またはピン番号のリ
ストに設定します。
例 9–4 に、ACEX 1K および FLEX 10KE デバイスに対してロケーション・
アサインメントを実施する VHDL コードを示します。
“@”記号は、ACEX 1K および FLEX 10KE デバイスのピン・ロ
ケーションを指定する場合にのみ、プリフィックスとして使用
します。これらのデバイスの場合、ピン・ロケーション・アサ
インメントは、出力 .edf ファイルに書き込まれます。
例 9–4. ACEX 1K および FLEX 10KE デバイスに対するロケーション・アサインメントの実施(VHDL)
ENTITY sample (data_in : IN STD_LOGIC_VECTOR (3 DOWNTO 0);
data_out: OUT STD_LOGIC_VECTOR (3 DOWNTO 0));
ATTRIBUTE altera_chip_pin_lc : STRING;
ATTRIBUTE altera_chip_pin_lc OF data_out : SIGNAL IS "@14, @5,@16, @15";
例 9–5 に、他のアルテラ・デバイスに対してロケーション・アサインメ
ントを実施する VHDL コードを示します。これらのデバイスのピン・ロ
ケーション・アサインメントは、出力 Tcl スクリプトに書き込まれます。
例 9–5. その他のデバイスに対するロケーション・アサインメントの実施(VHDL)
ENTITY sample (data_in : IN STD_LOGIC_VECTOR (3 DOWNTO 0);
data_out: OUT STD_LOGIC_VECTOR (3 DOWNTO 0));
ATTRIBUTE altera_chip_pin_lc : STRING;
ATTRIBUTE altera_chip_pin_lc OF data_out : SIGNAL IS "14, 5, 16,
15";
data_out 信号は 4 ビット信号で、data_out[3] はピン 14、
data_out[0] はピン 15 に割り当てられます。
9–18
Altera Corporation
2008 年 5 月
NativeLink 統合を使用する Quartus II ソフトウェアへのデザインのエクスポート
altera_implement_in_esb または altera_implement_in_eab
これらの属性を使用すると、ロジックをロジック・リソースではなく、
エンベデッド・システム・ブロック(ESB)またはエンベデッド・アレ
イ・ブロック(EAB)に実装して、面積使用率を高めることができます。
このような実装に選択されるモジュールは、フィードバック・パスを持
つことができず、すべての I/O をラッチする必要があるか、まったく
ラッチしないかのいずれかです。この属性は、Boolean 値を取ってイン
スタンスに適用できます(このオプションは、ESB/EAB を持つデバイ
スにのみ適用可能。例えば、Stratix デバイス・ファミリは、このオプ
ションでサポートされない。この属性は、ESB または EAB を持たないデ
バイスを対象にしたデザインでは無視される)。
altera_io_powerup
この属性を使用すると、セットまたはリセットを持たない I/O レジスタ
のパワーアップ値を定義できます。この属性は、文字列値(high|low)
を取りそれを I/O レジスタを持つポートに適用します。デフォルトでは、
I/O のパワーアップ値は low に設定されます。
altera_io_opendrain
この属性は、オープン・ドレイン・モード I/O ポートを指定するのに使
用します。この属性は、Boolean 値を取りそれをオープン・ドレイン・
モードをサポートするデバイスの出力または双方向ポートに適用しま
す。
NativeLink
統合を使用する
Quartus II
ソフトウェアへ
のデザインの
エクスポート
Quartus II ソフトウェアの NativeLink 機能により、Quartus II ソフト
ウェアと EDA ツールの間でシームレスに情報転送が可能で、他の EDA
デザイン・エントリまたは合成、シミュレーション、およびタイミング
解析ツールを Quartus II ソフトウェア内から自動的に実行できます。
Synplify ソフトウェアでデザインを合成した後、デザインは .vqm また
は .edf ネットリスト・ファイル、TimeQuest タイミング・アナライザの
タイミング制約に使用する .scf ファイル、および .tcl ファイルを使用し
て、配置配線のために Quartus II ソフトウェアにインポートされます。
Quartus II ソフトウェアは、Synplify ソフトウェア内から、あるいはス
タンドアロン・アプリケーションとして実行できます。デザインを
Quartus II ソフトウェアにインポートしたら、さまざまなオプションを
指定して、さらにデザインを最適化することができます。
NativeLink 統合を使用する場合、プロジェクトへのパスに空白
文字を含めないでください。Synplify ソフトウェアは、Tcl ス
クリプトを使用して、Quartus II ソフトウェアと通信します。
また、
Tcl言語では、パスに空白文字を含む引数は使用できません。
Altera Corporation
2008 年 5 月
9–19
Quartus II ハンドブック Volume 1
NativeLink 統合を使用して、Synplify ソフトウェアと Quartus II ソフト
ウェアを 1 つの GUI に統合して、合成と配置配線の両方の操作を行うこ
とができます。NativeLink 統合により、Quartus II ソフトウェアを
Synplify ソフトウェア GUI 内から実行したり、Synplify ソフトウェアを
Quartus II ソフトウェア GUI 内から実行することができます。
この項では、さまざなま Nativelink フローについて説明し、Quartus II
ソフトウェアに制約を渡す方法について詳しく解説します。この項では、
以下の内容について説明します。
■
■
■
■
■
9–20ページの「Synplifyソフトウェア内からQuartus IIソフトウェア
を実行する」
9–21 ページの「Quartus II ソフトウェアを使用して Synplify ソフト
ウェアを実行する」
9–22 ページの「Synplify が生成した Tcl スクリプトを使用して、
Quartus II ソフトウェアを手動で実行する」
9–23 ページの「TimeQuest SDC タイミング制約を .scf ファイルで
Quartus II ソフトウェアに渡す」
9–25 ページの「Tcl コマンドを使用して Quartus II ソフトウェアに制
約を渡す」
Synplify ソフトウェア内から Quartus II ソフトウェアを
実行する
Synplify ソフトウェア内から Quartus II ソフトウェアを使用するには、
まず QUARTUS_ROOTDIR 環境変数に、<Altera Design Suite Installation
Directory>\quartus にある Quartus II ソフトウェア・インストール・ディ
レクトリが含まれていることを確認しなければなりません。この環境変
数は、Synplify ソフトウェアと Quartus II ソフトウェアを一緒に使用す
るのに必要です。
Windows オペレーティング・システムでは、QUARTUS_ROOTDIR 変数
は、Quartus II ユーザー・インタフェースを開いたときに設定されるた
め、この変数はユーザー・インタフェースで開いた最新バージョンに自
動的に設定されます。ソフトウェアを別のマシンにインストールしてい
る場合は、この変数が正しく設定されていることを確認します。この変
数は、Control Panel の System アイコンを使用して手動で変更できます。
UNIX および Linux オペレーティング・システムでは、この変数は自動
的に設定されません。したがって、環境変数 QUARTUS_ROOTDIR を作成
して、<Altera Design Suite Installation Directory>/quartus を参照する必
要があります。
9–20
Altera Corporation
2008 年 5 月
NativeLink 統合を使用する Quartus II ソフトウェアへのデザインのエクスポート
Synplify Pro ソフトウェアの各実装で、pr_<number> Altera Place
and Route という配置配線実装を作成できます。新しい配置配線実装
は、GUI の New P&R ボタンを使用して作成できます。各合成の実行後
に、Quartus II ソフトウェアをコマンドライン・モードで実行するには、
テキスト・ボックスを使用して配置配線実装をオンにします。配置配線
の結果は、現在の実装ディレクトリ内の pr_<number> ディレクトリにあ
るログ・ファイルに書き込まれます。
また、合成が正常に完了した後は、Quartus II メニューのコマンドを使
用して、いつでも Quartus II ソフトウェアを実行できます。Synplify ソ
フトウェアで、Options メニューの Quartus II をクリックし、以下のい
ずれかのコマンドを選択します。
■
■
Launch Quartus—Quartus IIソフトウェアGUIを開いて、Quartus II
プロジェクトを作成します。このプロジェクトには、合成された出
力ファイル、フォワード・アノテートされたタイミング制約、およ
びピン・アサインメントが含まれています。このオプションを使用
して、プロジェクト用のオプションをコンフィギュレーションした
り、任意の Quartus II コマンドを実行できます。
Run Background Compile— 合成実行からのプロジェクト設定を使
用して、Quartus II ソフトウェアをコマンドライン・モードで実行
します。配置配線の結果は、ログ・ファイルに書き込まれます。
<project_name>_cons.tcl ファイルは、Quartus II プロジェクトをセット
アップするために使用され、<project_name>.tcl ファイルを呼び出して、
Synplify ソフトウェアから Quartus II ソフトウェアに制約を渡します。
デフォルトでは、<project_name>.tcl ファイルには、デバイス、タイミン
グ、およびロケーション・アサインメントが含まれています。プロジェ
クトが TimeQuest タイミング・アナライザを使用するようにセットアッ
プされている場合、<project_name>.tcl ファイルには、Tcl 制約をクラシッ
ク・タイミング・アナライザで使用するのではなく、Synplify が生成す
る .scf 制約ファイルを TimeQuest で使用するためのコマンドが含まれて
います。
Quartus II ソフトウェアを使用して Synplify ソフトウェア
を実行する
Quartus II ソフトウェアは、NativeLink 統合を使用して合成のために
Synplify ソフトウェアを実行するように設定できます。この機能を使用
すると、Quartus II ソフトウェアで通常のコンパイル処理の一部として、
デザインをすばやく合成できます。この機能を使用すると、Synplify ソ
フトウェアは、Quartus II ソフトウェアで設定したインクリメンタル・
コンパイル・パーティションなどのタイミング制約やアサインメントを
使用しません。
Altera Corporation
2008 年 5 月
9–21
Quartus II ハンドブック Volume 1
Synplicity では、最良の結果を得るために、制約は Synplify ソ
フトウェアで設定し、Quartus II ソフトウェアには Tcl スクリ
プトを使用して渡すことを推奨しており、
Quartus IIソフトウェ
ア内から Synplify を呼び出す方法は推奨していません。
Synplify を Quartus II で設定するには、Tools メニューの Options をク
リックします。Options ダイアログ・ボックスで、EDA Tool Options
をクリックし、Synplify または Synplify Pro ソフトウェアのパスを指定
します。
Synplify ソフトウェアでの NativeLink 統合の使用方法について詳しく
は、Quartus II Help を参照してください。
Quartus II ソフトウェア v7.1 から、Synplify ソフトウェアを NativeLink
統合で実行できるようになり、フローティング・ネットワーク・ライセ
ンスとノード・ロックされたシングル PC ライセンスの両方でサポート
されています。両種類のライセンスともバッチ・モード・コンパイルを
サポートしています。
Synplify が生成した Tcl スクリプトを使用して、
Quartus II ソフトウェアを手動で実行する
Quartus II ソフトウェアは、Synplify ソフトウェアとは別々に使用する
こともできます。Synplify ソフトウェアが生成する Tcl スクリプトを実
行して、プロジェクトのセットアップおよびデバイスの選択などのアサ
インメントの設定を行うには、以下のステップを実行します。
1.
.vqm/.edf、.scf(TimeQuest タイミング・アナライザのタイミング
制約を使用している場合)、および Tcl ファイルが同じディレクトリ
内に配置されている(これらのファイルは、デフォルトでは実装ディ
レクトリに配置されている必要がある)ことを確認します。
2.
Quartus II ソフトウェアで、View メニューの Utility Windows をポ
イントし、Tcl Console をクリックします。Quartus II Tcl Console
が開きます。
3.
Tcl Console のコマンド・プロンプトで、以下のように入力します。
source <path>/<project name>_cons.tcl
9–22
Altera Corporation
2008 年 5 月
NativeLink 統合を使用する Quartus II ソフトウェアへのデザインのエクスポート
TimeQuest SDC タイミング制約を .scf ファイルで
Quartus II ソフトウェアに渡す
TimeQuest タイミング・アナライザは、ASIC スタイルの強力なタイミ
ング解析ツールで、業界標準の制約フォーマットであるSynopsys Design
Constraint(SDC)を使用して、デザイン内のすべてのロジックのタイ
ミング性能を検証します。この項では、Synplify ソフトウェアで設定す
るタイミング制約が、どのような方法で Quartus II ソフトウェアに渡さ
れて、TimeQuest タイミング・アナライザで使用されるかについて説明
します。
Synplify ソフトウェアで設定するタイミング制約は、Synplify Design
Constraint(.sdc)ファイルに格納されます。.tcl ファイルには常に、デ
バイス指定やロケーション制約など、Quartus II ソフトウェアに対する
他のすべての制約が含まれます。タイミング制約は、Quartus II クラシッ
ク・タイミング・アナライザ用の .tcl ファイルを使用して、フォワード・
アノテートされます(9–25 ページの「Tcl コマンドを使用して Quartus II
ソフトウェアに制約を渡す」を参照)。TimeQuest タイミング・アナラ
イザの場合、タイミング制約は Synopsys Constraints Format(.scf)ファ
イルでフォワード・アノテートされます。
アルテラでは、TimeQuest タイミング・アナライザの使用方法について、
Quartus II プロジェクトを最新のデバイスに対応するように設定する
Synplify .tcl ファイルに準拠することを推奨しています。ただし、必要
に応じて、クラッシック・タイミング・アナライザの Tcl コマンドを使
用することもできます。Quartus II ソフトウェアで、TimeQuest タイミ
ング・アナライザからクラシック・タイミング・アナライザに手動で変
更するには、以下のステップを実行します。
1.
Assignments メニューから Settings をクリックします。
2.
Category リストで、Timing Analysis Settings を選択します。
3.
Timing analysis processing で、Use Classic Timing Analyzer
during compilation を選択します。OK をクリックします。
TimeQuest タ イ ミ ン グ・ア ナ ラ イ ザ に つ い て 詳 し く は、
「Quartus II ハンドブック Volume 3」の「Quartus II TimeQuest
タイミング・アナライザ」の章を参照してください。
Synplicity では、制約を変更する場合は、生成された .sdc、.scf、または
.tcl ファイルを使用するのではなく、SCOPE 制約エディタ・ウィンドウ
を使用することを推奨しています。
Altera Corporation
2008 年 5 月
9–23
Quartus II ハンドブック Volume 1
以下に示す Synplify 制約は、同等の Quartus II SDC コマンドに変換さ
れ、.scf ファイル内で Quartus II にフォワード・アノテートされます。
■
■
■
■
■
define_clock
define_input_delay
define_output_delay
define_multicycle_path
define_false_path
以下の項で説明する Synplify 制約ではすべて、9–25 ページの「Tcl コマ
ンドを使用して Quartus II ソフトウェアに制約を渡す」で説明するコマ
ン ド と 同 じ Synplify コマンドを使用しています。ただし、制約は
TimeQuestタイミング・アナライザ用のSDCコマンドにマップされます。
これらのコマンドの構文および引数については、該当する項を参照する
か、Synplify Help を参照してください。Quartus II ソフトウェアで対応
するコマンドのリストについては、Quartus II Helpを参照してください。
個別クロックおよび周波数
Synplify ソフトウェアでは、define_clock コマンドを使用して、個々
の ク ロ ッ ク の ク ロ ッ ク 周 波 数 を 指 定 で き ま す。こ の コ マ ン ド は、
create_clock によって Quartus II ソフトウェアに渡されます。
入力および出力遅延
Synplify ソフトウェアでは、define_input_delay および define_
output_delay コマンドを使用して、入力遅延および出力遅延の制約を
指定できます。これらのコマンドは、set_input_delay および set_
output_delay 使用して、Quartus II ソフトウェアに渡されます。
マルチサイクル・パス
Synplify ソフトウェアでは、define_multicycle_path コマンドを使
用して、マルチサイクル・パス制約を指定できます。このコマンドは、
set_multicycle_path によって Quartus II ソフトウェアに渡されま
す。
フォルス・パス
Synplify ソフトウェアでは、define_false_path コマンドを使用し
て、フォルス・パス制約を指定できます。このコマンドは、set_false_
path によって Quartus II ソフトウェアに渡されます。
9–24
Altera Corporation
2008 年 5 月
NativeLink 統合を使用する Quartus II ソフトウェアへのデザインのエクスポート
Tcl コマンドを使用して Quartus II ソフトウェアに制約を
渡す
この項では、Synplify 制約がどのような方法で同等の Quartus II アサイ
ンメントに変換され、Tcl コマンドによって Quartus II ソフトウェアに
フォワード・アノテートされるかについて説明します。
この項では、Quartus II クラッシック・タイミング・アナライザのため
のタイミング制約について説明します。TimeQuest タイミング・アナラ
イザを使用する場合は、この項で説明する Quartus II タイミング制約は
適用されません。TimeQuest でサポートされるタイミング制約について
は、9–23 ページの「TimeQuest SDC タイミング制約を .scf ファイルで
Quartus II ソフトウェアに渡す」を参照してください。
グローバル信号
Synplify ソフトウェアは、クロック信号を自動的にグローバル配線ライ
ンに昇格させ、Global Signal アサインメントを Quartus II ソフトウェ
アに渡します。このアサインメントにより、配置配線時に、同じグロー
バル配線制約が適用されます。
グローバル配線に昇格された信号と、Quartus II ソフトウェア
がデフォルトでグローバル配線に昇格させた信号は、異なる場
合があります。Synplify ソフトウェアが昇格させるのはクロッ
ク信号のみで、リセットやイネーブルなどの他のコントロール
信号は昇格させません。Synplify ソフトウェアからの制約がな
い場合、Quartus II ソフトウェアはデフォルトにより、ファン
アウトが大きいコントロール信号をグローバル配線に昇格させ
ます。
デフォルトまたはグローバル・クロック周波数
以下の Synplify コマンドを使用して、プロジェクト全体に適用する
Synplify のデフォルトまたはグローバル・クロック周波数を設定します。
set_option -frequency <frequency>
<frequency> は MHz 単位で指定されます。グローバル周波数が指定され
ていない場合は、デフォルトのグローバル・クロック周波数 1 MHz が
使用されます。
set_option 制約は、以下のコマンドで Quartus II ソフトウェアに渡さ
れます。
Altera Corporation
2008 年 5 月
9–25
Quartus II ハンドブック Volume 1
set_global_assignment -name FMAX_REQUIREMENT \
<frequency> MHz
Quartus II ソフトウェアに周波数が指定されていない場合、デフォルト
のグローバル・クロック周波数 1 GHz が使用されます。
個別クロックおよび周波数
以下の Synplify コマンドを使用して、個々のクロックのクロック周波数
を指定できます。
例 9–6. 個別クロックのクロック周波数の指定
define_clock -name {<clock_name>} -freq <frequency> -clockgroup <clock_group> \
-rise <rise_time> -fall <fall_time>
define_clock -name {<clock_name>} -period <period> -clockgroup <clock_group> \
-rise <rise_time> -fall <fall_time>
表 9–3 に、コマンド引数を示します。
表 9–3. コマンド引数
引数
説明
-name
<clock_name> は、デザイン・ポート名またはレジスタ出力信号名を指定し、合成後は
<mapped_clock_name> に対応します。
-freq (1)
<frequency> は MHz 単位で指定されます。
-period (2)
<period> は ns 単位で指定されます。
-clockgroup
<clock_group> が指定されていない場合は、デフォルトで default_clkgroup が指定され
ます。Synplify ソフトウェアは、同じクロック・グループに属するすべてのクロックが関連
すると想定しています。クロック・グループを指定しない場合、クロックはデフォルトのク
ロック・グループに属します。したがって、クロック・グループを指定しない場合、すべて
のクロックはデフォルトで関連するとみなされます。
-rise
-fall
<rise_time> および <fall_time> は、デフォルト以外のデューティ・サイクルを指定します。
Synplify 合成ツールがデフォルトで想定するクロックは、デューティ・サイクル 50% クロッ
ク、立ち上がりエッジ 0、立ち下がりエッジは周期 /2 です。別のデューティ・クロック・サ
イクルがある場合は、適切な Rise At および Fall At 値を指定できます。
表 9–3 の注 :
(1)
(2)
9–26
<frequency> が指定されているとき、Synplify ソフトウェアは、<fall_time> および <frequency> を使用して duty_
cycle を計算します。計算式は、duty_cycle = (<fall_time> – <rise_time>) × <frequency> ÷ 10 です。
<period> が指定されているとき、Synplify ソフトウェアは、<fall_time> および <period> を使用して duty_cycle
を計算します。計算式は、duty_cycle = 100 × (<fall_time> – <rise_time>) ÷ <period> です。
Altera Corporation
2008 年 5 月
NativeLink 統合を使用する Quartus II ソフトウェアへのデザインのエクスポート
Quartus II クラシック・タイミング・アナライザの同等のコマンドは、
クロック・グループがどのように定義されるかによって異なります。
Quartus II ソフトウェアでは、同じまたは関連するクロック設定に属す
るクロックは、関連クロックとみなされます。関連しないクロック設定
に割り当てられるクロックは、非関連クロックです。各 Quartus II ク
ロック設定と Synplify クロック・グループは、一対一で対応します。
以下の項では、周波数制約についてのみ説明します。周期には
対応する制約を使用できます。
仮想クロック
Quartus II ソフトウェアは、仮想クロックをサポートします。Synplify
ソフトウェアで仮想クロック設定を使用する場合、設定は Quartus II ソ
フトウェアの制約にマップされます。
配線遅延オプション
Synplify ソフトウェアのクロック制約の -route オプションは、配置配
線後の配線遅延が Synplify ソフトウェアで予測される遅延を超過するた
めに、タイミング目標を満足しない場合にのみ、合成で使用するように
設計されています。この制約は、Quartus II ソフトウェアにフォワード・
アノテートする必要はありません。
さまざまなクロック・グループでの複数クロック
例 9–7 に示す Synplify コマンドを使用して、複数クロックのクロック周
波数を指定できます。
例 9–7. 複数クロックのクロック周波数の指定
define_clock -name {<clock_name1>} -freq <frequency1> \
-clockgroup <clock_group1> -rise <rise_time1> -fall <fall_time1>
define_clock -name {<clock_name2>} -freq <frequency2> \
-clockgroup <clock_group2> -rise <rise_time2> -fall <fall_time2>
<clock_group1> および <clock_group2> は、Synplify ソフトウェアで定義
される固有の名前で、Quartus II クラシック・タイミング・アナライザ
のベース・クロック設定で使用されます。
Altera Corporation
2008 年 5 月
9–27
Quartus II ハンドブック Volume 1
クロック <rise_time> がゼロ(“0”)の場合、各クロックは、例 9–8 に示
すコマンドによって、別々に Quartus II ソフトウェアに渡されます。
例 9–8. クロックの立ち上がり時間がゼロの場合の複数クロックに対する Quartus II
アサインメント
create_base_clock -fmax <frequency1>MHz -duty_cycle <duty_cycle1> \
-target mapped_clock_name1 <base_clock_setting1>
create_base_clock -fmax <frequency2>MHz -duty_cycle <duty_cycle2> \
-target mapped_clock_name2 <base_clock_setting2>
クロック <rise_time> がゼロ以外の場合、各クロックは、例 9–9
に示す以下のコマンドによって個別に Quartus II ソフトウェア
に渡されます。
例 9–9. クロックの立ち上がり時間がゼロ以外の場合の複数クロックに対する Quartus II
アサインメント
create_base_clock -fmax <frequency1>MHz -duty_cycle <duty cycle1> \
-no_target <base clock setting1>
create_base_clock -fmax <frequency2>MHz -duty_cycle <duty cycle2> \
-no_target <base clock setting2>
create_relative_clock -base_clock <base clock setting1> -offset <rise time1>ns \
-duty_cycle <duty cycle1> -multiply <multiply by> -divide <divide by> \
-target <mapped clock name1> <derived clock setting1>
create_relative_clock -base_clock <base clock setting2> -offset <rise time2>ns \
-duty_cycle <duty cycle2> -multiply <multiply by> -divide <divide by> \
-target <mapped clock name2> <derived clock_setting2>
同じクロック・グループ内で周波数が異なる複数クロック
Synplify ソフトウェアでは、同じクロック・グループ内に、相対クロッ
ク設定を持ち周波数が異なる複数のクロックを指定できます。このコマ
ンドを例 9–10 に示します。
例 9–10. 同じクロック・グループ内で周波数が異なる複数のクロックを指定
define_clock -name {<clock_name1>} -freq <frequency1> -clockgroup <clock_group1> \
-rise <rise_time1> -fall <fall_time1>
define_clock -name {<clock_name2>} -freq <frequency2> -clockgroup <clock_group1> \
-rise <rise_time2> -fall <fall_time2>
9–28
Altera Corporation
2008 年 5 月
NativeLink 統合を使用する Quartus II ソフトウェアへのデザインのエクスポート
同じクロック・グループに周波数が異なるクロックを指定する
と、クロック・グループ設定で <frequency1> および <frequency2>
から相対クロック設定のために、
<multiply_by>および<divide_by>
係数が計算されます。
クロックの <rise_time> がゼロの場合、同じグループ内で周波数が異なる
相対クロック設定を持つ複数のクロックが、例 9–11 に示すコマンドで
Quartus II ソフトウェアに渡されます。
例 9–11. 同じクロック・グループ内で周波数が異なる複数クロックに対する Quartus II
アサインメント(クロックの立ち上がり時間がゼロの場合)
create_base_clock -fmax <frequency1>MHz -duty_cycle <duty_cycle1> \
-target <mapped_clock_name1> <base_clock_setting1>
create_relative_clock -base_clock <base_clock_setting1> \
-duty_cycle <duty_cycle2> -multiply <multiply_by> -divide <divide_by> \
-target <mapped_clock_name2> <derived_clock_setting2>
インター・クロック関係 — クロック間の遅延およびフォルス・
パス
例 9–12 に示すコマンドを使用して、Synplify でクロック間遅延制約を設
定できます。
例 9–12. クロック間遅延制約の指定
define_clock_delay -fall <clock_name1>
define_clock_delay -rise <clock_name1>
define_clock_delay -rise <clock_name1>
define_clock_delay -fall <clock_name1>
-rise
-fall
-rise
-fall
<clock_name2>
<clock_name2>
<clock_name2>
<clock_name2>
<delay_value>
<delay_value>
<delay_value>
<delay_value>
<delay_value> を false に設定すると、Synplify でのこれらの制約は、
2 つのクロック間のフォルス・パスを指定します。Synplify ソフトウェ
アで、立ち上がり / 立ち下がりクロック・エッジの 4 つのペアがすべて
指定されている場合、Synplify の制約は、Quartus II ソフトウェアの以
下の制約にマップされます。
set_timing_cut_assignment -from <clock_name1> \
-to <clock_name2>
Synplify で、4 つのクロック・エッジのペアの一部が指定されていない
場合、その制約を Quartus II クラシック・タイミング・アナライザの制
約にマップすることはできません。
Altera Corporation
2008 年 5 月
9–29
Quartus II ハンドブック Volume 1
<delay_value> が false 以外の値に設定される場合、Synplify でのこれ
ら の 制 約 は、Quartus II ソフトウェアの制約にマップされません。
Quartus II クラシック・タイミング・アナライザは、クロック・エッジ
間の遅延制約をサポートしません。
フォルス・パス
以下のコマンドを使用して、Synplify ソフトウェアでフォルス・パス制
約を指定できます。
define_false_path -from <sig_name1> -to <sig_name2>
<sig_name1> および <sig_name1> 信号には、デザイン・ポート名または
レジスタ・インスタンス名を指定できます。
Synplify ソフトウェアの define_false_path 制約は、以下に示すように、
Quartus II ソフトウェアの制約にマップされます。
set_timing_cut_assignment -from <sig_name1> \
-to <sig_name2>
Synplify ソフトウェアは、信号セットのペアを、これらの 2 つのセット
の製品間の各メンバが有効なフォルス・パス制約になるように識別でき
ます。信号グループは、以下のコマンドを使用して、Quartus II クラシッ
ク・タイミング・アナライザで定義できます。
timegroup -add_member sig_name1_i <sig_group1>
(<sig_group1> のすべての信号が対象)
timegroup -add_member sig_name2_i <sig_group2>
(<sig_group2> のすべての信号が対象)
set_timing_cut_assignment -from <sig_group1> \
-to <sig_group2>
<sig_name1> または <sig_name2> 信号が、ワイルドカード、グループ、
またはバスなどの複数の信号を表す場合、制約は Quartus II ソフトウェ
アで表現するために適宜拡張できます。Quartus II ソフトウェアはタイ
ミング・アサインメントのために、ワイルドカードを使用した信号名と、
信号グループをサポートしています。Quartus II ソフトウェアは、A[7:4]
などのバス表記はサポートしていません。
信号からのフォルス・パス
以下のコマンドを使用して、Synplify ソフトウェアで信号からのフォル
ス・パス制約を指定できます。
9–30
Altera Corporation
2008 年 5 月
NativeLink 統合を使用する Quartus II ソフトウェアへのデザインのエクスポート
define_false_path -from <sig_name>
Quartus II クラシック・タイミング・アナライザは、“-from”のみのパ
ス指定はサポートしていません。“-to”パスの指定も含める必要があり
ます。ただし、-to 信号にはワイルドカードを指定できます。Synplify
でのこの制約は、Quartus II ソフトウェアの以下の制約にマップされま
す。
set_timing_cut_assignment -from <sig_name> -to {*}
信号へのフォルス・パス
以下のコマンドを使用して、Synplify ソフトウェアで信号へのフォルス・
パス制約を指定できます。
define_false_path -to <sig_name>
Quartus II クラシック・タイミング・アナライザは、-to のみのパス指定
はサポートしていません。-from パスの指定も含める必要があります。た
だし、-from 信号にはワイルドカードを指定できます。Synplify ソフト
ウェアでのこの制約は、Quartus II ソフトウェアの以下の制約にマップ
されます。
set_timing_cut_assignment -from {*} -to <sig_name>
信号を介したフォルス・パス
以下のコマンドを使用して、Synplify ソフトウェアで信号を介したフォ
ルス・パス制約を指定できます。
define_false_path -from <sig_name1> -to <sig_name2> \
-through <sig_name3>
Quartus II クラシック・タイミング・アナライザは、
“スルー・パス”を
指定したフォルス・パスをサポートしていません。
-through が指定さ
れた Synplify ソフトウェアの制約は、Quartus II タイミング・アナライ
ザのための制約にマップされません。
マルチサイクル・パス
以下のコマンドを使用して、Synplify ソフトウェアでマルチサイクル・
パス制約を指定できます。
define_multicycle_path -from <sig_name1> \
-to <sig_name2> <clock_cycles>
Altera Corporation
2008 年 5 月
9–31
Quartus II ハンドブック Volume 1
Synplify ソフトウェアでのこの制約は、Quartus II ソフトウェアの以下
の制約にマップされます。
set_multicycle_assignment -from <sig_name1> \
-to <sig_name2> <clock_cycles>
<sig_name1> または <sig_name2> 信号が、ワイルドカード、グループ、
またはバスなどの複数の信号を表す場合、制約は Quartus II ソフトウェ
アで表現するために適切に適宜拡張できます(9–12 ページの「フォル
ス・パス」で説明)。
<clock_cycles> は、マルチサイクル・パスのクロック・サイクル
数です。
信号からのマルチサイクル・パス
以下のコマンドを使用して、Synplify ソフトウェアで信号からのマルチ
サイクル・パス制約を指定できます。
define_multicycle_path -from <sig_name> <clock_cycles>
フォルス・パス制約の場合と同様、この制約は Quartus II クラシック・
タイミング・アナライザで -to 値にワイルドカードを使用してマップさ
れます。
set_multicycle_assignment -from <sig_name> \
-to {*} <clock_cycles>
信号へのマルチサイクル・パス
以下のコマンドを使用して、Synplify ソフトウェアで信号へのマルチサ
イクル・パス制約を指定できます。
define_multicycle_path -to <sig_name> <clock_cycles>
フォルス・パス制約の場合と同様、この制約は Quartus II クラシック・
タイミング・アナライザで -from 値にワイルドカードを使用してマップ
されます。
set_multicycle_assignment -from {*} <sig_name> \
<clock_cycles>
信号を介したマルチサイクル・パス
以下のコマンドを使用して、Synplify ソフトウェアで信号を介したマル
チサイクル・パス制約を指定できます。
9–32
Altera Corporation
2008 年 5 月
NativeLink 統合を使用する Quartus II ソフトウェアへのデザインのエクスポート
define_multicycle_path -from <sig_name1> -to <sig_name2> \
-through <sig_name3> <clock_cycles>
Quartus II クラシック・タイミング・アナライザは、
“スルー・パス”を
指定したマルチサイクル・パスをサポートしていません。
-through が
指定された Synplify ソフトウェアの制約は、Quartus II タイミング・ア
ナライザのための制約にマップされません。
最大パス遅延
以下のコマンドを使用して、Synplify ソフトウェアで信号間の最大パス
遅延関係を指定できます。
define_path_delay -from <sig_name1> -to <sig_name2> \
-max <delay_value>
Synplify ソフトウェアでのこの制約は Quartus II ソフトウェアの以下の
制約にマップされます。
set_instance_assignment -from <sig_name1> \
-to <sig_name2> -name SETUP_RELATIONSHIP <delay_value>ns
Quartus II クラシック・タイミング・アナライザは、信号グループまた
はバス表記をサポートせず、この制約のためにレジスタ名のみサポート
します。
信号からの最大パス遅延
以下のコマンドを使用して、Synplify ソフトウェアで信号からの最大パ
ス遅延制約を指定できます。
define_path_delay -from <sig_name> -max <delay_value>
フォルス・パス制約の場合と同様、この制約は Quartus II クラシック・
タイミング・アナライザで -to 値にワイルドカードを使用してマップさ
れます。
set_instance_assignment -from <sig_name> -to {*} \
-name SETUP_RELATIONSHIP <delay_value>ns
信号への最大パス遅延
以下のコマンドを使用して、Synplify ソフトウェアで信号への最大パス
遅延制約を指定できます。
define_path_delay -to <sig_name> -max <delay_value>
Altera Corporation
2008 年 5 月
9–33
Quartus II ハンドブック Volume 1
フォルス・パス制約の場合と同様、この制約は Quartus II クラシック・
タイミング・アナライザで -from 値にワイルドカードを使用してマップ
されます。
set_instance_assignment -from {*}<sig_name> \
-to <sig_name> -name SETUP_RELATIONSHIP <delay_value>ns
信号を介した最大パス遅延
以下のコマンドを使用して、Synplify ソフトウェアで信号経由の最大パ
ス遅延制約を指定できます。
define_path_delay -from <sig_name1> -to <sig_name2> \
-through <sig_name3> -max <delay_value>
Quartus II クラシック・タイミング・アナライザは、
“スルー・パス”を
指定した最大パス遅延制約をサポートしていません。-through が指定
された Synplify の制約は、Quartus II タイミング・アナライザのための
制約にマップされません。
レジスタ入力および出力遅延
Synplify ソフトウェアでのレジスタ入力遅延およびレジスタ出力遅延の
制約は、合成でのみ使用するためのものなので、Quartus II ソフトウェ
アにフォワード・アノテートされません。
デフォルトの外部入力遅延
以下のコマンドを使用して、Synplify ソフトウェアでデフォルトの入力
遅延制約を指定できます。
define_input_delay -default <delay_value>
この制約は、Quartus II ソフトウェアの以下の制約にマップされます。
set_input_delay -clock {*} <delay_value> {*}
ポート固有の外部入力遅延
以下のコマンドを使用して、Synplify ソフトウェアでポート固有の入力
遅延制約を指定できます。
define_input_delay <input_port_name> <delay_value> \
-ref <clock_name>:<clock_edge>
<clock_edge> は、r(立ち上がりエッジ)または f(立ち下がりエッジ)
に設定できます。
9–34
Altera Corporation
2008 年 5 月
NativeLink 統合を使用する Quartus II ソフトウェアへのデザインのエクスポート
クロック・エッジが r(立ち上がりエッジ)の場合、この制約は Quartus II
ソフトウェアの以下の制約にマップされます。
set_input_delay -clock <clock_name> <delay_value> \
<input_port_name>
<clock_edge> が f(立ち下がりエッジ)の場合、この制約は Quartus II ソ
フトウェアの制約にマップされません。Quartus II クラシック・タイミ
ング・アナライザは、クロックの立ち下がりエッジに対する入力遅延の
指定をサポートしません。
デフォルトの外部出力遅延
以下のコマンドを使用して、Synplify ソフトウェアでデフォルトの出力
遅延制約を指定できます。
define_output_delay -default <delay_value>
この制約は、Quartus II ソフトウェアの以下の制約にマップされます。
set_output_delay -clock {*} <delay_value> {*}
ポート固有の外部出力遅延
以下のコマンドを使用して、Synplify ソフトウェアでポート固有の入力
遅延制約を指定できます。
define_output_delay <output_port_name> <delay_value> \
-ref <clock_name>:<clock_edge>
<clock_edge> は、r(立ち上がりエッジ)または f(立ち下がりエッジ)
に設定できます。クロック・エッジが r(立ち上がりエッジ)の場合、
この制約は Quartus II ソフトウェアの以下の制約にマップされます。
set_output_delay -clock <clock_name> <delay_value> \
<output_port_name>
クロック・エッジが f(立ち下がりエッジ)の場合、この制約は Quartus II
ソフトウェアの制約にマップされません。Quartus II クラシック・タイ
ミング・アナライザは、クロックの立ち下がりエッジに対する出力遅延
の指定をサポートしません。
Altera Corporation
2008 年 5 月
9–35
Quartus II ハンドブック Volume 1
アルテラ・
メガファンク
ションおよび
アーキテクチャ
固有の機能
に関する
ガイドライン
アルテラでは、LPM、デバイス固有のアルテラ・メガファンクション、
アルテラ MegaCore® ファンクションとして使用可能な IP、AMPPSM
(Altera Megafunction Partners Program)を通じて使用可能な IP などの
パラメータ化可能なメガファンクションを提供しています。これらのメ
ガファンクションおよび IP ファンクションは、HDL コードでインスタ
ンス化して使用できます。あるいは、汎用 HDL コードから特定のメガ
ファンクションを推測できます。
HDLで、
メガファンクションをインスタンス化する場合は、MegaWizard
Plug-In Manager でインスタンス化してファンクションをパラメータ化
するか、ポートおよびパラメータ定義を使用してファンクションをイン
スタンス化できます。MegaWizard Plug-In Manager は、Quartus II ソ
フトウェア内でデザインに使用可能なメガファンクションをカスタマイ
ズおよびパラメータ化するためのグラフィカル・インタフェースを提供
します。9–37 ページの「MegaWizard Plug-In Manager を使用したアル
テラ・ メガファンクションのインスタンス化」および 9–39 ページの
「MegaWizard Plug-In Manager および IP Toolbench を使用した
Intellectual Property(IP)のインスタンス化」では、Synplify ソフトウェ
アでの MegaWizard Plug-In Manager フローについて説明します。
特定のアルテラ・メガファンクションについて詳しくは、Quartus II Help
を参照してください。IP ファンクションについて詳しくは、該当する IP
マニュアルを参照してください。
また、Synplify ソフトウェアは、特定タイプの HDL コードを自動的に
認識し、メガファンクションが最適な結果を提供するときは適切なメガ
ファンクションを推測します。Synplify ソフトウェアには、特定タイプ
のメガファンクションの推測を制御するオプションがあります。これに
ついては 9–44 ページの「HDL コードからのアルテラ・メガファンクショ
ンの推測」で説明します。
メ ガ フ ァ ン ク シ ョ ン の イ ン ス タ ン ス 化 と 推 測 に つ い て 詳 し く は、
「Quartus II ハンドブック Volume 1」の「Recommended HDL Coding
Styles」の章を参照してください。この章では、Quartus II ソフトウェア
での MegaWizard Plug-In Manager の使用方法について詳しく説明し、
ウィザードで生成されるファイルについて解説します。さらに、推奨コー
ディング・スタイル、およびアルテラ・デバイスでメガファンクション
を推測するための HDL の例についても紹介します。
9–36
Altera Corporation
2008 年 5 月
アルテラ・メガファンクションおよびアーキテクチャ固有の機能に関するガイドライン
MegaWizard Plug-In Manager を使用したアルテラ・
メガファンクションのインスタンス化
この項では、MegaWizard Plug-In Manager を使用してアルテラ・メガ
ファンクションをインスタンス化する方法について説明します。
MegaWizard Plug-In Manager を使用してメガファンクションをセット
アップおよびパラメータ化するときは、MegaWizard Plug-In Manager
は、メガファンクションをインスタンス化する VHDL または Verilog
HDL ラッパー・ファイル <output file>.v|vhd を作成します。
Synplify ソフトウェアは、Quartus II タイミングおよびリソース見積も
りネットリスト機能を使用して、リソース使用率およびタイミング性能
見積もりをより正確にレポートし、メガファンクションを “ ブラック・
ボックス”として扱う場合よりも良好にタイミング・ドリブン最適化を利
用します。MegaWizard が生成するメガファンクション・バリエーショ
ン・ラッパー・ファイルを Synplify プロジェクトに取り込んで、Synplify
ソフトウェアがメガファンクションに関するすべての情報を持つように
する必要があります。
MegaWizard Plug-In Manager には、リソースおよびタイミン
グ見積もり用のネットリストを生成するオプションがあります。
Synplify ソフトウェアは、リソースおよびタイミング見積もり
に関する情報を個別のネットリストがなくてもバックグラウン
ドで生成するため、このオプションは Synplify ソフトウェアに
は 推 奨 さ れ ま せ ん。実 際 に、個 別 の ネ ッ ト リ ス ト <output
file>_syn.v|vhd を作成して、そのファイルを合成プロジェクト
で使用する場合は、
Quartus IIプロジェクトに<output file>.v|vhd
ファイルも含める必要があります。
Synplify ソフトウェアに適切な Quartus II バージョンを設定してから、
MegaWizard が生成したファイルをコンパイルします。これにより、
Synplify ソフトウェアはメガファンクションに対して適切なライブラリ
定 義 を 使 用 します。Quartus Version 設定 は、MegaWizard Plug-In
Managerでカスタマイズされたメガファンクションを生成するのに使用
する Quartus II ソフトウェアのバージョンと一致する必要があります。
Synplify ソフトウェアで Quartus II バージョンを設定する方法について
詳しくは、9–7 ページの「出力ネットリスト・ファイル名と結果の形式」
を参照してください。
また、QUARTUS_ROOTDIR 環境変数に、適切な Quartus II バージョンの
イン スト ール・ディレクトリが設定されていることを確認します。
Synplify ソフトウェアは、この情報を使用して Quartus II ソフトウェア
Altera Corporation
2008 年 5 月
9–37
Quartus II ハンドブック Volume 1
をバックグラウンドで起動します。この環境変数の設定は、MegaWizard
Plug-In Manager でカスタマイズされたメガファンクションを生成する
のに使用する Quartus II ソフトウェアのバージョンと一致する必要があ
ります。詳細は、9–21 ページの「Quartus II ソフトウェアを使用して
Synplify ソフトウェアを実行する」を参照してください。
MegaWizard Plug-In Manager で生成された Verilog HDL ファイル
を使用した、メガファンクションのインスタンス化
ウィザードの最後のページで、<output file>_inst.v オプションをチェッ
クすると、MegaWizard Plug-In Manager は、Synplify デザインで使用
するための Verilog HDL インスタンス化テンプレート・ファイルを生成
します。インスタンス化テンプレート・ファイルを使用すると、メガファ
ンクション・バリエーション・ラッパー・ファイル <output file>.v をトッ
プレベル・デザインで容易にインスタンス化できます。Synplify プロジェ
クトにメガファンクション・バリエーション・ラッパー・ファイル <output
file>.v を取り込みます。これにより、Synplify ソフトウェアは、output
.vqm ネットリスト・ファイルにメガファンクション情報を取り込みま
す。MegaWizard で生成されたメガファンクション・バリエーション・
ファイルを Quartus II プロジェクトに取り込む必要はありません。
MegaWizard Plug-In Manager で生成される VHDL ファイルを使
用した、メガファンクションのインスタンス化
ウィザードの最後のページで、<output file>.cmp および <output file>_
inst.vhd オプションをチェックすると、MegaWizard Plug-In Manager
は、Synplify デザインで使用するための VHDL コンポーネント宣言ファ
イルおよび VHDL インスタンス化テンプレート・ファイルを生成しま
す。これらのファイルを使用すると、メガファンクション・バリエーショ
ン・ラッパー・ファイル <output file>.vhd をトップレベル・デザインで
容易にインスタンス化できます。Synplify プロジェクトにメガファンク
ション・バリエーション・ラッパー・ファイル <output file>.vhd を取り
込みます。これにより、Synplify ソフトウェアは、output .vqm ネット
リ ス ト・フ ァ イ ル に メ ガ フ ァ ン ク シ ョ ン 情 報 を 取 り 込 み ま す。
MegaWizard で生成されたメガファンクション・バリエーション・ファ
イルを Quartus II プロジェクトに取り込む必要はありません。
9–38
Altera Corporation
2008 年 5 月
アルテラ・メガファンクションおよびアーキテクチャ固有の機能に関するガイドライン
インスタンス化したアルテラ・メガファンクションに対する
Synplify のデフォルトの動作の変更
Synplify ソフトウェアは、デフォルトにより、バックグラウンドで
Quartus II ソフトウェアを呼び出して、メガファンクション用のリソー
スおよびタイミング見積もりネットリストを生成します。これについて
は前項で説明しています。
この動作を変更して、Synplify ソフトウェアの実行時間を短縮すること
ができます(大規模デザインの場合、ネットリスト・ファイルを生成す
るのに数分かかることがあります)。また、この動作は、Synplify ソフト
ウェアが Quartus II ソフトウェアにアクセスしてファイルを生成できな
い場合も変更できます。
Synplify ソフトウェアは、Quartus II ソフトウェアを呼び出して、2 通
りの方法で情報を生成します。メガファンクションによっては、“クリ
ア・ボックス”
・モデルを提供するものがあります。Synplify ソフトウェ
アは、このモデルを完全に合成し、output .vqm ネットリスト・ファイ
ルにデバイス・アーキテクチャ固有のプリミティブを取り込みます。メ
ガファンクションによっては、“グレイ・ボックス”・モデルを提供する
ものもあります。Synplify ソフトウェアは、リソース情報を読み出しま
すが、ネットリストにすべてのロジック・ファンクションが含まれるわ
けではありません。これらのファンクションのために、Synplify ソフト
ウェアはリソースとタイミングの見積もりおよび最適化にロジック情報
を使用し、さらに output .vqm ネットリスト・ファイルのメガファンク
ションをインスタンス化するため、Quartus II ソフトウェアは適切なデ
バイス・プリミティブを実装できるようになります。デフォルトでは、
Synplify ソフトウェアはクリア・ボックス・モデルを使用しますが、使
用できない場合はグレイ・ボックス・モデルを使用します。この動作を
変更するには、Implementation Options をクリックし、Device タブで
Altera Models 設定を変更します。デフォルトは on です。クリア・ボッ
クス・モデルをイネーブルし、グレイ・ボックスをイネーブルしないよ
うにするには、clearbox_only を選択します。また、この機能全体をオ
フにするには、off を選択します。
MegaWizard Plug-In Manager および IP Toolbench を使用した
Intellectual Property(IP)のインスタンス化
多くのアルテラ IP ファンクションには、リソース使用率とタイミング性
能の見積もりをより正確にレポートするために Synplify ソフトウェアで
使用できるリソースおよびタイミング見積もりネットリストが含まれて
おり、ブラック・ボックス・ファンクションよりも良好にタイミング・
ドリブン最適化を利用します。
Altera Corporation
2008 年 5 月
9–39
Quartus II ハンドブック Volume 1
このネットリスト・ファイルを作成するには、まず MegaWizard PlugIn Manager で IP ファンクションを選択し、Next をクリックして IP
Toolbench を開きます。Step 2: Set Up Simulation をクリックします。
ここで、EDA オプションをすべて設定します。Generate netlist オプショ
ンをイネーブルにして、リソースおよびタイミングの見積もりのための
ネットリストを生成します。このネットリスト・ファイルは、Step 3:
Generate をクリックすると生成されます。
Quartus II ソフトウェアは、ファイル <output file>_gb.v|vhd を生成し
ます。このネットリストには、リソースとタイミングを見積もるための
“グレイ・ボックス”情報が含まれていますが、実際の実装は含まれてい
ません。このネットリスト・ファイルを Synplify プロジェクトに取り込
みます。次に、Quartus II プロジェクトに、Synplify .vqm 出力ネットリ
ストとともに、メガファンクション・バリエーション・ラッパー・ファ
イル <output file>.v|vhd を取り込みます。
IP ファンクションに、リソースおよびタイミング見積もりネットリスト
が含まれていない場合、Synplify ソフトウェアは、IP ファンクションを
ブラック・ボックスとして扱う必要があります。この場合、ブラック・
ボックスの作成について詳しくは、以下の項を参照してください。
Synplify プロジェクトに Quartus II 固有のファイルを取り込んで、これ
らのファイルを output .vqm ファイルとともに Quartus II ソフトウェア
に自動的に渡す方法については、9–43 ページの「Quartus II 配置配線専
用ファイルのインクルード」を参照してください。
生成された Verilog HDL ファイルを使用した、
ブラック・ボックス IP ファンクションのインスタンス化
syn_black_box コンパイラ・ディレクティブを使用して、モジュール
をブラック・ボックスとして宣言できます。トップレベル・デザイン・
ファイルには IP ポート・マッピングと中空体モジュール宣言が含まれて
いなければなりません。syn_black_box ディレクティブを、トップレ
ベル・ファイルまたはプロジェクトに含まれる別のファイル内のモ
ジュール宣言に適用して、Synplify ソフトウェアにこれがブラック・ボッ
クスであることを指示します。このソフトウェアは、このディレクティ
ブがなくても正常にコンパイルしますが、追加の警告メッセージがレ
ポートされます。このディレクティブを使用すると、他のディレクティ
ブを追加できます(9–42 ページの「ブラック・ボックスを作成するため
の他の Synplify ソフトウェアの属性」を参照)。
9–40
Altera Corporation
2008 年 5 月
アルテラ・メガファンクションおよびアーキテクチャ固有の機能に関するガイドライン
例 9–13 に、my_verilogIP.v(MegaWizard Plug-In Manager および IP
Toolbench によって生成される簡略化カスタマイズ・バリエーション)
をインスタンス化するトップレベル・ファイルの例を示します。
例 9–13. IP のブラック・ボックス・インスタンス化を含むトップレベル Verilog HDL コード
module top (clk, count);
input clk;
output[7:0] count;
my_verilogIP verilogIP_inst (.clock (clk), .q (count));
endmodule
// モジュール宣言
// このモジュール用のブラック・ボックスを作成するために、
// 以下の属性が追加されます。
module my_verilogIP (clock, q) /* synthesis syn_black_box */;
input clock;
output[7:0] q;
endmodule
生成された VHDL ファイルを使用した、ブラック・ボックス IP
ファンクションのインスタンス化
syn_black_box コンパイラ・ディレクティブを使用して、コンポーネ
ントをブラック・ボックスとして宣言できます。トップレベルのデザイ
ン・ファイルには、メガファンクション・バリエーションのコンポーネ
ント宣言とポート・マッピングが含まれていなければなりません。トッ
プレベル・ファイルでのコンポーネント宣言には、syn_black_box ディ
レクティブを適用します。このソフトウェアは、このディレクティブが
なくても正常にコンパイルしますが、追加の警告メッセージがレポート
されます。このディレクティブを使用すると、
「ブラック・ボックスを作
成するための他の Synplify ソフトウェアの属性」の項のディレクティブ
など、他のディレクティブを追加できます。
例 9–14 に、my_vhdlIP.vhd(MegaWizard Plug-In Manager および IP
Toolbench によって生成される簡略化カスタマイズ・バリエーション)
をインスタンス化するトップレベル・ファイルの例を示します。
Altera Corporation
2008 年 5 月
9–41
Quartus II ハンドブック Volume 1
例 9–14. IP のブラック・ボックス・インスタンス化を含むトップレベル VHDL コード
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY top IS
PORT (
clk:IN STD_LOGIC ;
count:OUT STD_LOGIC_VECTOR (7 DOWNTO 0)
);
END top;
ARCHITECTURE IP OF top IS
COMPONENT my_vhdlIP
PORT (
clock:IN STD_LOGIC ;
q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0)
);
end COMPONENT;
attribute syn_black_box :boolean;
attribute syn_black_box of my_vhdlIP:component is true;
BEGIN
vhdlIP_inst :my_vhdlIP PORT MAP (
clock => clk,
q => count
);
END rtl;
ブラック・ボックスを作成するための他の Synplify ソフトウェア
の属性
ファンクションをブラック・ボックス手法としてインスタンス化した場
合、合成ツールではファンクション・モジュールの可視性が実現されま
せん。そのため、合成ツールのタイミング・ドリブン最適化の利点が十
分に活かされません。特にブラック・ボックスにレジスタ付き入力およ
び出力がない場合は、より良好なタイミング最適化を実現するために、
タ イ ミ ン グ・モ デ ル を ブ ラ ッ ク・ボ ッ ク ス に 追 加 し ま す。こ れ は
syn_tpd 属性、syn_tsu 属性、および syn_tco 属性を追加することに
よって可能になります。Verilog HDL の例は、例 9–15 を参照してくださ
い。
9–42
Altera Corporation
2008 年 5 月
アルテラ・メガファンクションおよびアーキテクチャ固有の機能に関するガイドライン
例 9–15. Verilog HDL の例
module ram32x4(z,d,addr,we,clk);
/* synthesis syn_black_box syn_tco1="clk->z[3:0]=4.0"
syn_tpd1="addr[3:0]->z[3:0]=8.0"
syn_tsu1="addr[3:0]->clk=2.0"
syn_tsu2="we->clk=3.0" */
output[3:0]z;
input[3:0]d;
input[3:0]addr;
input we
input clk
endmodule
HDL コード内のブラック・ボックス・モジュールの特性の詳細を通知す
るために、以下の追加属性が Synplify ソフトウェアによってサポートさ
れています。
■
■
■
syn_resources— 特定のブラック・ボックスで使用されるリソー
スを指定。
black_box_pad_pin—I/O セルへのマッピングを防止。
black_box_tri_pin— トライ・ステート信号を通知。
これらの属性の適用について詳しくは、
「Synplify Reference Manual」の
「Altera Constraints, Attributes, and Options」の章を参照してください。
Quartus II 配置配線専用ファイルのインクルード
Synplify ソフトウェアでは、Quartus II ソフトウェアでの配置配線時に
のみ使用されるファイルをプロジェクトに追加できます。これは、全部
のデザイン・ファイルを Quartus II ソフトウェアでコンパイルすること
を要求する、Synplify シンセシス用のグレー・ボックスまたはブラック・
ボックスがある場合に役立つことがあります。
これらのファイルは、他のソース・ファイルと同様に Synplify プロジェ
クトに追加できます。次に、ファイルを右クリックし、File options を
選択します。Use for Place and Route Only オプションをイネーブルし
ます。
-job_owner par オプションを使用して、スクリプトでこのオプショ
ンを設定することも可能です。
例えば、例 9–16 のコマンドは、トップレベル・デザイン・ファイル、グ
レー・ボックス・ネットリスト・ファイル、IP ラッパー・ファイル、お
よび暗号化された IP ファイルを含む Synplify プロジェクト用のファイ
ルを定義します。Synplify ソフトウェアは、これらのファイルを使用し
て .vqm ファイルに “ コア ” の空のインスタンス化を書き込みます。また、
Altera Corporation
2008 年 5 月
9–43
Quartus II ハンドブック Volume 1
グレー・ボックス・ネットリストをリソースの見積もりとタイミングの
見積もりに使用します。core.v ファイルおよび core_enc8b10b.v ファイ
ルは、Synplify ソフトウェアではコンパイルされず、配置配線ディレク
トリにコピーされます。Quartus II ソフトウェアは、これらのファイル
をコンパイルして、“ コア ”IP ブロックを実装します。
例 9–16. Synplify プロジェクト用のファイルを定義するコマンド
add_file -verilog -job_owner par "core_enc8b10b.v"
add_file -verilog -job_owner par "core.v"
add_file -verilog "core_gb.v"
add_file -verilog "top.v"
HDL コードからのアルテラ・メガファンクションの推測
Synplify ソフトウェアは、Behavior Extraction Synthesis Technology
(BEST)アルゴリズムを使用して、RAM、ROM、演算子、FSM、DSP
乗算演算などの高レベル構造を推測します。次に、Synplify ソフトウェ
アは、合成プロセス中に、構造をできるだけ長く抽象的な状態に保ちま
す。これにより、メガファンクションが最適な結果を達成したときに適
切なアルテラ・メガファンクションを推測することにより、テクノロジ
固有のリソースを使用してこれらの構造を実装できます。以下の項では、
アルテラ・メガファンクションを推測する際の Synplify 固有の詳細のい
くつかについて概説します。Synplify ソフトウェアには、特定のタイプ
のメガファンクションの推測を制御するオプションがあります。これに
ついても以下の項で説明しています。
アルテラ・デバイスでのメガファンクションの推測に対するコーディン
グ・スタイルの推奨事項と例については、
「Quartus II ハンドブック
Volume 1」の 「Recommended HDL Coding Styles」の章を参照してく
ださい。
マルチプライヤの推測
図 9–2 に、Synplify ソフトウェアの HDL Analyst に表示される、合成後
のパイプライン・ステージ数が 2 の符号なし 8 × 8 マルチプライヤの HDL
Analyst ビューを示します。このマルチプライヤは、ALTMULT_ADD メ
ガファンクションまたは ALTMULT_ACCUM メガファンクションに変
換されます。DSP ブロックを備えたデバイスの場合、ソフトウェアはデ
バイス使用率に応じて、通常のロジックではなく DSP ブロック内にファ
ンクションを実装できます。特定のデバイスの場合、ソフトウェアは
.vqm ファイル内でメガファンクションをインスタンス化する代わりに、
DSP ブロックのデバイス・プリミティブに直接マップします。
9–44
Altera Corporation
2008 年 5 月
アルテラ・メガファンクションおよびアーキテクチャ固有の機能に関するガイドライン
図 9–2. LPM_MULT メガファンクションの HDL Analyst ビュー
(パイプライン数が 2 の符号なし 8 × 8 マルチプライヤ)
リソース・バランシング
Synplify ソフトウェアは、マルチプライヤを DSP ブロックにマップしな
がら、最適な性能を実現するためにリソース・バランシングを実行しま
す。
アルテラ・デバイスは固定数の DSP ブロックを備えており、固定数のエ
ンベデッド・マルチプライヤを内蔵しています。デザインで、提供され
ているマルチプライヤよりも多くのマルチプライヤが使用される場合、
Synplify ソフトウェアは追加のマルチプライヤをロジック・エレメント
(LE)またはアダプティブ・ロジック・モジュール(ALM)に自動的に
マップします。
デザインで、DSP ブロック内で提供されているマルチプライヤよりも多
くのマルチプライヤが使用される場合、Synplify ソフトウェアはクリ
ティカル・パス内のマルチプライヤを DSP ブロックにマップします。次
に、クリティカル・パス内またはクリティカル・パス外にかかわらず、
任意のワイド・マルチプライヤが DSP ブロックにマップされます。次
に、より小さいマルチプライヤおよびクリティカル・パス内に存在しな
いマルチプライヤが、ロジック(LE または ALM)内に実装されます。
これにより、デザインがデバイスに正しくフィットすることが保証され
ます。
DSP ブロックの推測の制御
マルチプライヤは、DSP ブロック内、または DSP ブロックを内蔵する
アルテラ・デバイスのロジックに実装できます。この実装を、Synplify
ソフトウェアの属性設定を通じて制御することができます。
信号レベル属性
以下の Verilog HDL コードに示す syn_multstyle 属性を使用して、
個々のマルチプライヤの実装を制御できます。
Altera Corporation
2008 年 5 月
9–45
Quartus II ハンドブック Volume 1
<signal_name> /* synthesis syn_multstyle = "logic" */;
ここで、signal_name は信号の名前です。
この設定はワイヤにのみ適用され、
レジスタには適用できません。
表 9–4 に、DSP ブロックまたは LE 内へのマルチプライヤの実装を制御
する、Synplify ソフトウェアでの信号レベル属性の値を示します。
表 9–4. Synplify ソフトウェアの DSP ブロックの属性設定
属性名
値
説明
syn_multstyle
lpm_mult
LPM ファンクションが推測され、マルチプライヤが
DSP ブロック内に実装される。
syn_multstyle
logic
推測されない LPM ファンクションおよび Synplify ソ
フトウェアにより LE 内に実装されるマルチプライヤ
syn_multstyle
block_mult
DSP メガファンクションは推測され、マルチプライ
ヤは DSP ブロックのデバイス・プリミティブ(サポー
トされているデバイスの)に直接マップされる。
例 9–17 および例 9–18 に、syn_multstyle 属性を使用した簡単な
Verilog HDL コードと VHDL コードを示します。
例 9–17. Verilog HDL コードの DSP ブロックの推測を制御するための信号属性
module mult(a,b,c,r,en);
input [7:0] a,b;
output [15:0] r;
input [15:0] c;
input en;
wire [15:0] temp /* synthesis syn_multstyle="logic" */;
assign temp = a*b;
assign r = en ? temp :c;
endmodule
9–46
Altera Corporation
2008 年 5 月
アルテラ・メガファンクションおよびアーキテクチャ固有の機能に関するガイドライン
例 9–18. VHDL コードで DSP ブロックの推測を制御するための信号属性
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity onereg is port (
r :out std_logic_vector(15 downto 0);
en :in std_logic;
a :in std_logic_vector(7 downto 0);
b :in std_logic_vector(7 downto 0);
c :in std_logic_vector(15 downto 0)
);
end onereg;
architecture beh of onereg is
signal temp :std_logic_vector(15 downto 0);
attribute syn_multstyle :string;
attribute syn_multstyle of temp :signal is "logic";
begin
temp <= a * b;
r <= temp when en='1' else c;
end beh;
RAM の推測
HDL デザインから RAM ブロックが推測された場合、ソフトウェアはア
ルテラ・メガファンクションを使用して、デバイスのメモリ・アーキテ
クチャをターゲットにします。特定のデバイスの場合、ソフトウェアは
.vqm ファイル内でメガファンクションをインスタンス化する代わりに、
メモリ・ブロックのデバイス・プリミティブに直接マップします。
デザインで RAM を正しく推測するために、Synplify ソフトウェアに対
する以下のガイドラインに従ってください。
■
■
■
Altera Corporation
2008 年 5 月
アドレス・ラインの幅は 2 ビット以上でなければなりません。
メモリでのリセットはサポートされていません。リード・ポートと
ライト・ポートが同期している必要があるか否かについては、デバ
イス・ファミリの資料を参照してください。
ブロッキング・アサインメントを持ついくつかの Verilog HDL ス
テートメントは、RAM ブロックにマップされないことがあります。
したがって、Verilog HDL で RAM をモデル化するときはブロッキ
ング・ステートメントを避けてください。
9–47
Quartus II ハンドブック Volume 1
特定のデバイス・ファミリの場合、syn_ramstyle 属性で推測された
RAM に使用する実装が指定されます。syn_ramstyle をモジュールま
たは RAM インスタンスにグローバルに適用して、registers または
block_ram 値を指定できます。RAM の推測をオフにするには、属性値
を registers に設定します。
特定のアルテラ・デバイス・ファミリの RAM を推測する場合、Synplify
ソフトウェアが追加のバイパス・ロジックを生成します。このロジック
は、RTL シミュレーションと合成後シミュレーションの間のハーフサイ
クル・リード / ライト動作の違いを解消するために生成されます。RTL
シミュレーションは更新中のメモリをクロックのポジティブ・エッジで
示し、合成後シミュレーションは更新中のメモリをネガティブ・エッジ
で示します。バイパス・ロジックをなくすには、RAM の出力をラッチ
する必要があります。このレジスタを追加することによって、RAM の
出力は 1 フル・クロック・サイクル後に現れますが、この時点までに更
新が行われるのでバイパス・ロジックは不要になります。
TriMatrix メモリ・ブロックを備えたデバイスの場合、syn_ramstyle
値を no_rw_check に設定することで、グルー・ロジックの作成をディ
セーブルできます。syn_ramstyle を no_rw_check の値で使用して、
デュアル・ポート・モードでのグルー・ロジックの作成をディセーブル
します。
例 9–19 に、デュアル・ポート RAM を推測するための VHDL コードの
例を示します。
例 9–19. 推測されたデュアル・ポート RAM の VHDL コード
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_signed.all;
ENTITY dualport_ram IS
PORT ( data_out:OUT STD_LOGIC_VECTOR (7 DOWNTO 0);
data_in:IN STD_LOGIC_VECTOR (7 DOWNTO 0);
wr_addr, rd_addr:IN STD_LOGIC_VECTOR (6 DOWNTO 0);
we:IN STD_LOGIC ;
clk:IN STD_LOGIC);
END dualport_ram;
ARCHITECTURE ram_infer OF dualport_ram IS
TYPE Mem_Type IS ARRAY (127 DOWNTO 0) OF STD_LOGIC_VECTOR (7 DOWNTO 0);
SIGNAL mem:Mem_Type;
SIGNAL addr_reg:STD_LOGIC_VECTOR (6 DOWNTO 0);
9–48
Altera Corporation
2008 年 5 月
アルテラ・メガファンクションおよびアーキテクチャ固有の機能に関するガイドライン
BEGIN
data_out <= mem (CONV_INTEGER(rd_addr));
PROCESS (clk, we, data_in) BEGIN
IF (clk='1' AND clk'EVENT) THEN
IF (we='1') THEN
mem(CONV_INTEGER(wr_addr)) <= data_in;
END IF;
END IF;
END PROCESS;
END ram_infer;
例 9–20 に、デュアル・ポート RAM を推測するためのバイパス・ロジッ
クを排除する VHDL コードの例を示します。推測手法のために余分なレ
イテンシ動作が生じますが、この動作はメガファンクションをインスタ
ンス化するときには不要です。
例 9–20. バイパス・ロジックを排除する推測されたデュアル・ポート RAM の VHDL コード
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_signed.all;
ENTITY dualport_ram IS
PORT ( data_out:OUT STD_LOGIC_VECTOR (7 DOWNTO 0);
data_in:IN STD_LOGIC_VECTOR (7 DOWNTO 0);
wr_addr, rd_addr :IN STD_LOGIC_VECTOR (6 DOWNTO 0);
we:IN STD_LOGIC ;
clk:IN STD_LOGIC);
END dualport_ram;
ARCHITECTURE ram_infer OF dualport_ram IS
TYPE Mem_Type IS ARRAY (127 DOWNTO 0) OF STD_LOGIC_VECTOR (7 DOWNTO 0);
SIGNAL mem:Mem_Type;
SIGNAL addr_reg:STD_LOGIC_VECTOR (6 DOWNTO 0);
SIGNAL tmp_out :STD_LOGIC_VECTOR(7 DOWNTO 0); --output register
BEGIN
tmp_out <= mem (CONV_INTEGER(rd_addr));
PROCESS (clk, we, data_in) BEGIN
IF (clk='1' AND clk'EVENT) THEN
IF (we='1') THEN
mem(CONV_INTEGER(wr_addr)) <= data_in;
END IF;
data_out <= tmp_out; --registers output preventing
-- bypass logic generation.
END IF;
END PROCESS;
END ram_infer;
Altera Corporation
2008 年 5 月
9–49
Quartus II ハンドブック Volume 1
RAM の初期化
HDL コードで Verilog HDL システム・タスク、$readmemb または
$readmemh を使用して、RAM メモリを初期化できます。Synplify コン
パイラは .srs ファイル(テクノロジに依存しない RTL ネットリスト)の
初期化値をフォワード・アノテートし、マッパーは対応する 16 進メモリ
初 期 化(.hex)フ ァ イ ル を 生 成 し ま す。デ ザ イ ン で 推 測 さ れ る 各
altsyncram メガファンクションに対して 1 つの .hex ファイルが作成さ
れます。.hex ファイルは、init_file 属性を使用して、.vqm ファイル
内の altsyncram インスタンスに関連付けられます。
例 9–21 および例 9–22 に、HDL コードでの RAM メモリの初期化方法、
および Verilog HDL を使用した対応する .hex ファイルの生成方法を示し
ます。
例 9–21. $readmemb システム・タスクの使用による Verilog HDL コードでの推測された RAM の
初期化
initial
begin
$readmemb("mem.ini", mem);
end
always @(posedge clk)
begin
raddr_reg <= raddr;
if(we)
mem[waddr] <= data;
end
例 9–22. 例 9–21 からのメモリ初期化ファイルを含む .vqm インスタンスの例
altsyncram mem_hex( .wren_a(we), .wren_b(GND),...);
defparam mem_hex.lpm_type = "altsyncram";
defparam mem_hex.operation_mode = "Dual_Port";
...
defparam mem_hex.init_file = "mem_hex.hex";
9–50
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルおよびブロック・ベース・デザイン
ROM の推測
HDL デザインから ROM ブロックが推測された場合、ソフトウェアはア
ルテラ・メガファンクションを使用して、デバイスのメモリ・アーキテ
クチャをターゲットにします。特定のデバイスに関しては、ソフトウェ
アは、.vqm ファイル内でメガファンクションをインスタンス化する代
わりに、メモリ・ブロックのデバイス素子に直接マップします。デザイ
ンで ROM を正しく推測するために、Synplify ソフトウェアに対する以
下のガイドラインに従ってください。
■
■
■
アドレス・ラインの幅は 2 ビット以上でなければなりません。
ROM が 50% 以上満たされていなければなりません。
CASE ステートメントまたは IF ステートメントは、同じ幅の定数値
を使用して 16 以上のアサインメントを作成しなければなりません。
シフト・レジスタの推測
ソフトウェアは、ALTSHIFT_TAPS メガファンクションを使用したサ
ポートされているデバイス・アーキテクチャ内の専用メモリ・ブロック
内に配置できるように、シーケンシャル・シフト・コンポーネント用の
シフト・レジスタを推測します。
必要に応じて、syn_srlstyle 属性を使用して実装スタイルを設定しま
す。コンポーネントを自動的にシフト・レジスタにマップしたくない場
合は、値を registers に設定します。値は、グローバルに、あるいは
個々のモジュールまたはレジスタに設定可能です。
デザインによっては、シフト・レジスタの推測をオフしてデザインの性
能を改善することができます。
インクリ
メンタル・
コンパイル
および
ブロック・
ベース・
デザイン
デザインが複雑になり設計者がチームで作業するようになると、ブロッ
ク・ベースのインクリメンタル・デザイン・フローが有効なデザイン・
アプローチになる場合がよくあります。インクリメンタル・コンパイル・
フローでは、デザインの一部を変更しながら、変更されていない部分の
配置と性能を維持することができます。新しいコンパイルを特定のデザ
イン・パーティションに集中させ、結果を他のパーティションの以前の
コンパイル結果とマージすることにより、デザインの繰り返しが大幅に
高速化されます。ボトムアップまたはチーム・ベースのアプローチでは、
個々のサブブロックに対して最適化を実行し、結果を維持した上で、ブ
ロックを最終的なデザインに統合し、デザインをトップレベルで最適化
します。
Synplify Pro ソフトウェアで特定のデバイス・テクノロジに使用できる
MultiPoint シンセシスは、自動化されたブロック・ベースのインクリメ
ンタル・シンセシス・フローを提供します。MultiPoint 機能はデザイン
Altera Corporation
2008 年 5 月
9–51
Quartus II ハンドブック Volume 1
階層を管理して、プロジェクト全体をトップダウンで合成するのに時間
がかかりすぎるデザインをインクリメンタルに設計および合成できるよ
うにします。MultiPoint シンセシスは、デザイン階層の異なるセクショ
ンに対して異なるネットリスト・ファイルの作成を可能にし、また
Quartus II インクリメンタル・コンパイル手法をサポートします。また、
デザインのコンパイル時にデザインの更新されたセクションのみ再合成
されるようにして、合成実行時間を短縮し、変更されていないブロック
の結果を維持します。デザインのあるセクションを他のセクションに影
響を与えずに、変更および再合成することができます。
さらに、デザインの各パーティションのロジックに対して個別プロジェ
クトを作成することにより、Synplify ソフトウェア(基本 Synplify およ
び Synplify Pro)で手動によってデザインを分割し、異なるネットリス
ト・ファイルを作成することができます。デザインの各パーティション
に対して異なるネットリスト・ファイルを作成することは、各パーティ
ションを他のパーティションから独立させることが可能なことも意味し
ます。
階層的デザイン手法により、デザイン・プロセスの効率を高めることが
でき、チーム環境で作業する際に、より良好なデザイン再利用の機会が
提供され、統合問題が軽減されます。これらのインクリメンタル・シン
セシス手法を使用すれば、Quartus II ソフトウェアでインクリメンタル・
コンパイルを活用できます。デザインの変更されたパーティションに対
してのみ配置配線を実行し、配置配線時間を短縮し、フィッティング結
果を維持することができます。これらの手法により良好な結果を達成す
るには、この項のガイドラインに従ってください。
Quartus II ソフトウェアのこれらの機能を使用する際の一般的なトップ
ダウン・コンパイル・フローを以下に示します。
9–52
1.
通常のデザイン・フローの場合と同様に、Verilog HDL または VHDL
デザイン・ファイルを作成します。
2.
デザインでどの階層ブロックを個別パーティションとして扱うかを
決めます。
3.
デザインの各パーティションに対して個別のネットリスト・ファイ
ルが作成されるように、MultiPoint 機能または個別プロジェクトを
使用してデザインをセットアップします。
4.
個別プロジェクトを使用する場合、実装において下位レベル・パー
ティションに対する I/O パッドの挿入をディセーブルにします。
5.
Synplify Pro または Synplify ソフトウェアで各パーティションをコ
ンパイルおよびテクノロジ・マップし、通常のデザイン・フローの
場合と同様に制約を作成します。
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルおよびブロック・ベース・デザイン
6.
.vqm ネットリストと各パーティションに対する .tcl ファイルを
Quartus II ソフトウェアにインポートし、インクリメンタル・コン
パイルを使用するように Quartus II プロジェクトをセットアップし
ます。
7.
Quartus II ソフトウェアでデザインをコンパイルし、インクリメン
タル・コンパイルでフィッティング後のネットリストを使用して、
コンパイル結果を維持します。
8.
デザインの一部に対してデザインまたは合成の最適化の変更を行う
場合は、変更されたパーティションのみを再合成して、新しいネッ
トリストと .tcl ファイルを生成します。変更されていないパーティ
ションのネットリストを再生成してはなりません。
9.
新しいネットリストと .tcl ファイルを Quartus II ソフトウェアにイ
ンポートし、インクリメンタル・コンパイルを使用して、Quartus
II ソフトウェアでデザインをリコンパイルします。
Quartus II ソフトウェアでのパーティションの作成およびインクリメン
タル・コンパイルの使用について詳しくは、
「Quartus II ハンドブック
Volume 1」の「Quartus II Incremental Compilation for Hierarchical and
Team-Based Design」の章を参照してください。
インクリメンタル・コンパイル用の個別ネットリスト・
ファイルによるデザインの作成
階層的またはインクリメンタル・デザイン・フローの最初のステージは、
デザインの異なる部分が互いに影響しないことを確認することです。デ
ザ イ ン の 各 パ ー テ ィ シ ョ ン に 個 別 の ネ ッ ト リ ス ト を 持 た せ て、
Quartus II ソフトウェアでインクリメンタル・コンパイルを利用できる
ようにします。デザイン全体が 1 つのネットリスト・ファイルにある場
合、1 つのパーティションが変更されると、デザインの再合成時にノー
ド名が変更される可能性があるため、他のパーティションが影響を受け
ることがあります。合成フローを正しく機能させるために、モジュール
およびエンティティ専用の個別ネットリスト・ファイルを作成すること
ができます。また、各モジュールまたはエンティティは独自のデザイン・
ファイルを持っている必要があります。2 つの異なるモジュールが同じ
デザイン・ファイルにあるが異なるパーティションの一部と定義されて
いる場合は、モジュールのいずれか一方を変更すると両方のパーティ
ションをリコンパイルする必要があるため、インクリメンタル・コンパ
イルを維持することはできません。
Altera Corporation
2008 年 5 月
9–53
Quartus II ハンドブック Volume 1
アルテラでは、各パーティションのすべての入力および出力をラッチす
ることを推奨しています。これにより、ロジックを同期させて、パーティ
ション境界を通過する信号の遅延ペナルティを回避することができま
す。
低レベル・ブロックで境界トライ・ステートを使用する場合、アルテラ・
デバイスの出力ピンのトライ・ステート・ドライバを利用するために、
Synplify ソフトウェアは階層を通じてトライ・ステートをトップレベル
に押し上げ(または “ バブル ” させ)ます。トライ・ステートをバブルさ
せるには、階層を通じた最適化が必要なため、ブロック・ベースのコン
パイル手法では低レベルのトライ・ステートはサポートされていません。
デバイスの外部出力ピンおよび階層内のトップレベル・ブロックでのみ、
トライ・ステート・ドライバを使用する必要があります。
階層の設計およびパーティションの作成に関する推奨事項について詳しく
は、
「Quartus II ハンドブック Volume 1」の「Best Practices for Incremental
Compilation Partitions and Floorplan Assignments」の章を参照してくださ
い。
Synplify Pro ソフトウェアの MultiPoint シンセシスを使用して、あるい
は個別の Synplify プロジェクトを手動で作成し、個別デザイン・パー
ティションとして扱いたい各ブロックに対してブラック・ボックスを作
成することによって、複数の .vqm ネットリスト・ファイルを生成でき
ます。
MultiPoint シンセシス・フロー(Synplify Pro のみ)では、管理しやす
い 1 つのトップレベル合成プロジェクトから複数の .vqm ネットリスト・
ファイルを作成できます。手動ブラック・ボックス手法(Synplify また
は Synplify Pro)を使用して、複数の合成プロジェクトを持つことがで
きます。このプロジェクトは 1 つのトップレベル・プロジェクトが望ま
しくない特定のチーム・ベース・デザインまたはボトムアップ・デザイ
ンに必要となる場合があります。
これら 2 つの方法の 1 つを使用して複数の .vqm ファイルを作成したら、
適切な Quartus II プロジェクトを作成して、デザインの配置配線を行う
必要があります。
Synplify Pro MultiPoint シンセシスとインクリメンタル・
コンパイルの併用
この項では、Synplify Pro MultiPoint シンセシス・フローを使用して複
数の .vqmファイルを生成する方法について説明します。
最初に制約ファ
イルと Synplify Pro オプションを設定し、次に複数の .vqm ファイルに
9–54
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルおよびブロック・ベース・デザイン
書き込むための適切な“コンパイル・ポイント”設定を適用して、イン
クリメンタル・コンパイル用のデザイン・パーティション・アサインメ
ントを作成します。
コンパイル・ポイントの設定と制約ファイルの作成
MultiPoint フローでは、デザインを“コンパイル・ポイント”と呼ばれ
るより小さな合成単位に分割できます。合成ソフトウェアは、各コンパ
イル・ポイントをインクリメンタル・マッピング用のパーティションと
して扱います。これにより、個別のコンパイル・ポイント・モジュール
を、他のデザイン・モジュールに影響を及ぼすことなく、より大規模な
デザインの独立したセグメントとして切り離して作業することができま
す。デザインは任意の数のコンパイル・ポイントを持つことができ、コ
ンパイル・ポイントはネストさせることができます。トップレベル・モ
ジュールは常にコンパイル・ポイントとして扱われます。
コンパイル・ポイントは、別のコンパイル・ポイントまたはトップレベ
ル・デザインであるそれぞれの親から切り離された状態で最適化されま
す。コンパイル・ポイントを使用して作成された各ブロックは、クリティ
カル・パスやその親または他のブロック上の制約に影響されません。コ
ンパイル・ポイントは独立しており、独自の制約が与えられています。
合成中、まだ合成されていないコンパイル・ポイントは、トップレベル
の前に合成されます。ネストされたコンパイル・ポイントは、それらが
含まれる親のコンパイル・ポイントの前に合成されます。コンパイル・
ポイントに適切な設定を適用すると、そのコンパイル・ポイントに対し
て個別ネットリストが作成され、そのロジックはデザインの他のロジッ
クから切り離されます。
図 9–3 に、複数のパーティションに分割可能なデザイン階層の例を示し
ます。各パーティションのトップレベル・ブロックは、個別のコンパイ
ル・ポイントとして合成できます。
Altera Corporation
2008 年 5 月
9–55
Quartus II ハンドブック Volume 1
図 9–3. 階層構造デザインのパーティション
Partition Top
A
B
D
Partition B
C
E
F
Partition F
この場合、コンパイル・ポイントはモジュール A、B、および F です。
トップレベルのコンパイル・ポイントは、別のコンパイル・ポイントの
下で定義されていないロジックを含む、デザインのトップレベル・ブロッ
ク(この例では、ブロック A)で構成されています。この例では、トッ
プレベルのコンパイル・ポイント A のデザインには、そのサブブロック
の 1 つである C のロジックも含まれています。ブロック F は、独自のコ
ンパイル・ポイントとして定義されているため、トップレベルのコンパ
イル・ポイント A の一部として扱われません。もう 1 つの独立したコン
パイル・ポイント B には、ブロック B、D、E のロジックが含まれます。
トップレベル・モジュール A とサブモジュール C に対して 1 つのネット
リストが作成され、B およびそのサブモジュールである D と E に対して
もう 1 つのネットリストが作成され、F に対して 3 番目のネットリスト
が作成されます。
コンパイル・ポイントは、Synplify Pro SCOPE スプレッドシートまたは
.sdc ファイル内のモジュールまたはアーキテクチャに適用します。
Verilog HDL または VHDL ソース・コードでコンパイル・ポイントを設
定することはできません。以下の項で説明するように、Tcl を使用して、
または .sdc ファイルを編集することにより、
制約を手動で設定できます。
あるいは、GUI の 2 つの方法のうち 1 つを使用することができます。
.tcl または .sdc ファイルを使用したコンパイル・ポイントの定義
.tcl ファイルまたは .sdc ファイルを使用してコンパイル・ポイントを設
定するには、define_compile_point コマンドを例 9–23 に示すとお
り使用します。
9–56
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルおよびブロック・ベース・デザイン
例 9–23. define_compile_point コマンド
define_compile_point [-disable] {<objname>} -type {locked, partition}
上記の構文で、objname はデザイン内の任意のモジュールを表します。コ
ンパイル・ポイントのタイプ {locked, partition} は、コンパイル・
ポイントが Quartus II インクリメンタル・コンパイル・フロー用のパー
ティションを表していることを示します。
各コンパイル・ポイントには、以下に示すように SCOPE 環境を設定す
るための define_current_design コマンドで始まる制約ファイルの
セットがあります。
define_current_design {<my_module>}
トップレベルの SCOPE ウィンドウでのコンパイル・ポイントの定義
以下の方法では、トップレベルおよび下位レベルのコンパイル・ポイン
ト用の制約ファイルを個別に作成する必要があります。
1.
トップレベルの SCOPE ウィンドウで、Compile Points タブを選択
します。
2.
コンパイル・ポイントとして定義したいモジュールを選択し、Type
を locked, partition に設定します。
3.
各モジュール用の制約ファイルを手動で作成して、各コンパイル・
ポイントの制約を設定します。
新しい SCOPE ファイルの作成によるコンパイル・ポイントの定義
以下のプロセスを使用する場合、下位レベルの制約ファイルが自動的に
作成されます。
Altera Corporation
2008 年 5 月
1.
File メニューで、New をクリックし、新しい Constraint File を作
成します。あるいは、ツール・バーの SCOPE アイコンをクリック
します。
2.
Create a New SCOPE File ダイアログ・ボックスの Select File Type
タブから、Compile Point を選択します。
3.
コンパイル・ポイントとして指定したいモジュールを選択して、OK
をクリックします。ソフトウェアは、トップレベルの制約ファイル
に自動的にコンパイル・ポイントを設定し、各コンパイル・ポイン
トに対して下位レベルの制約ファイルを作成します。
9–57
Quartus II ハンドブック Volume 1
コンパイル・ポイントに対する追加検討事項
コンパイル・ポイントに対する変更がトップレベルの親モジュールに影
響しないようにするために、Implementation Options ダイアログ・ボッ
クスの Update Compile Point Timing Data オプションをディセーブル
にします。このオプションがイネーブルされている場合、子モジュール
を更新するとトップレベル・モジュールが影響を受ける可能性がありま
す。
syn_allowed_resources 属性を任意のコンパイル・ポイント・ビュー
に適用して、特定のモジュールのリソース数を制限することができます。
コンパイル・ポイントをインクリメンタル・コンパイルと併用する場合
は、以下の制限事項に留意してください。
■
■
■
コンパイル・ポイントを効果的に使用するには、各コンパイル・ポ
イントにタイミング制約(タイミング・バジェット)を与える必要
があります。制約が正確であるほど、結果が良好になります。制約
は自動的に設定されません。したがって、手動のタイミング・バ
ジェットが不可欠です。アルテラでは、各パーティションのすべて
の入力および出力をラッチすることを推奨しています。これによっ
て、パーティション境界を通過する信号の遅延ペナルティを回避で
きます。
Synplify Pro の属性 syn_useioff を使用してアルテラ・デバイスの
I/O エレメント(IOE)でレジスタをパックする場合、これらのレ
ジスタは、下位レベルではなくトップレベル・モジュールになけれ
ばなりません。そうでない場合は、syn_useioff 属性の代わりに、
Quartus II ソフトウェアが I/O レジスタのパッキングを実行できる
ようにする必要があります。Fast Input Register オプションまたは
Fast Output Register オプションを使用するか、Quartus II ソフト
ウェアの Settings ダイアログ・ボックスの Fitter Settings ページで
I/O タイミング制約を設定し、Optimize I/O cell register placement
for timing をオンにします。
トップレベル・ロジック用のインクリメンタル・シンセシスはサポー
トされていません。トップレベルのどのロジックも Synplify Pro ソ
フトウェアでの毎回のコンパイル中に再合成されます。
コンパイル・ポイントの使用、およびトップレベルと下位レベルの両方
のコンパイル・ポイントに対する Synplify 属性および制約の設定につい
て詳しくは、Synplicity 社のウェブサイト(www.synplicity.com)にあ
る Synplify Pro User Guide and Reference Manual を参照してください。
9–58
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルおよびブロック・ベース・デザイン
コンパイル・ポイント用の Quartus II プロジェクトおよび複数
の .vqm ファイルの作成
コンパイル中、Synplify Pro ソフトウェアは Quartus II ソフトウェアに
適切な制約とデザイン・パーティション・アサインメントを提供する <
トップレベル・プロジェクト >.tcl ファイルを作成し、Quartus II プロ
ジェクトをセットアップするための情報と併せて、各 .vqm ファイル用
のパーティションを作成します。Quartus II プロジェクトをセットアッ
プし、制約を渡すための Synplify ソフトウェアで生成された Tcl スクリ
プトの使用について詳しくは、9–22 ページの「Synplify が生成した Tcl
スクリプトを使用して、Quartus II ソフトウェアを手動で実行する」を
参照してください。
デザイン手法に応じて、すべてのネットリストに対して 1 つの Quartus II
プロジェクト(トップダウンの配置配線フロー)、または各ネットリスト
に対して個別の Quartus II プロジェクト(ボトムアップ配置配線フロー)
を作成できます。トップダウンのインクリメンタル・コンパイル・デザ
イン・フローでは、デザイン・パーティション・アサインメントを作成
し、オプションで、1 つの Quartus II プロジェクト内のデザインの各パー
ティションに対して LogicLock フロアプラン・ロケーション・アサイン
メントを作成します。この手法により、最高の品質結果を達成でき、ま
たデザインへのインクリメンタル変更時に性能を維持することができま
す。
特定のチーム・ベースのデザイン・フローの場合など、各パーティショ
ンを個別に最適化する必要がある場合は、ボトムアップのデザイン・フ
ローが必要になることがあります。このフローを使用する場合は、各パー
ティション間の配置競合を回避するためにデザイン・フロアプランを作
成することを推奨します。Quartus II ソフトウェアでボトムアップ・コ
ンパイルを実行するには、個別の Quartus II プロジェクトを作成し、イ
ンクリメンタル・コンパイルのエクスポート機能とインポート機能を使
用して各デザイン・パーティションをトップレベル・デザインにインポー
トし、配置結果を維持します。
以下の項では、これらの 2 つのデザイン・フローのために Quartus II プ
ロジェクトを作成する方法について説明します。
トップダウン・インクリメンタル・コンパイル・フローのための 1 つの
Quartus II プロジェクトの作成
プロジェクト内のすべてのパーティションに対する Synplify Pro アサイ
ンメントを含む < トップレベル・プロジェクト >.tcl ファイルを使用し
ます。この方法により、インクリメンタル・コンパイルが提供する性能
の維持とコンパイル時間の短縮の利点を活かして、すべてのパーティ
Altera Corporation
2008 年 5 月
9–59
Quartus II ハンドブック Volume 1
ションを 1 つの Quartus II プロジェクトにインポートし、プロジェクト
内のすべてのモジュールを一度に最適化することができます。図 9–4 に、
図 9–3 のデザイン例のデザイン・フローを視覚的に示します。
図 9–4. 複数の .vqm ファイルと 1 つの Quartus II プロジェクトを併用したデザイン・フロー
Quartus II Project
a.vqm
Use the top-level Tcl file a.tcl
to import Synplify Pro assignments.
b.vqm
f.vqm
ボトムアップ・インクリメンタル・コンパイル・フローのための複数の
Quartus II プロジェクトの作成
各コンパイル・ポイントに対する Synplify Pro アサインメントを含む
< 下位レベル・コンパイル・ポイント >.tcl ファイルを使用します。デ
ザインの各パーティションおよびネットリストに対して 1 つずつ、複
数の Quartus II プロジェクトを生成します。プロジェクトの各設計者
は、各自のパーティションを Quartus II ソフトウェア内で別々に最適
化し、それらのパーティションの結果をエクスポートすることができ
ます。図 9–5 に、図 9–3 のデザイン例のデザイン・フローを視覚的に
示します。最適化されたサブデザインをエクスポートし、次にインク
リメンタル・コンパイルを使用してそのサブデザインを 1 つのトップ
レベル Quartus II プロジェクトにインポートして、デザインを完成さ
せることができます。
9–60
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルおよびブロック・ベース・デザイン
図 9–5. 複数の .vqm ファイルと複数の Quartus II プロジェクトを使用したデザイン・フロー
Quartus II Project
a.vqm
Quartus II Project
Use the lower-level
Tcl file b.tcl to Import
Synplify Pro Assignments
Use the top-level Tcl file a.tcl to Import
Synplify Pro Assignments
Quartus II Project
b.vqm
f.vqm
Use the lower-level
Tcl file f.tcl to Import
Synplify Pro Assignments
個別の Synplify プロジェクトを使用した、複数のインク
リメンタル・コンパイル用 .vqm ファイルの作成
この項では、ブラック・ボックスと各デザイン・パーティション用の
Synplify プロジェクトを使用して複数の .vqm ファイルをインクリメン
タル・コンパイル用に手動で生成する方法について説明します。この手
動フローは、MultiPoint シンセシス機能を持たない Synplify ソフトウェ
アのバージョンでサポートされます。
ブラック・ボックスを使用した複数の .vqm ファイルの手動によ
る作成
Synplify ソフトウェアで複数の .vqm ファイルを手動で作成するには、
各下位レベル・モジュール用の個別プロジェクト、およびインクリメン
タル・コンパイル・パーティションのための個別 .vqm ファイルとして
維持したいトップレベル・デザインを作成します。トップレベル・プロ
ジェクトで下位レベルのパーティションのブラック・ボックス・インス
タンス化を実装します。
下位レベル・モジュール用のプロジェクトを合成するときは、以下のス
テップを実行します。
Altera Corporation
2008 年 5 月
1.
Implementation Options ダイアログ・ボックスで、ターゲット・
テクノロジの Disable I/O Insertion をオンにします。
2.
モジュール用の HDL ファイルを読み出します。
9–61
Quartus II ハンドブック Volume 1
モジュールには、個別の .vqm ファイルとしても維持され
る下位レベル・モジュールのブラック・ボックス・インス
タンス化が含まれている可能性があります。
3.
SCOPE 制約ウィンドウで制約を追加します。
4.
クロック周波数を入力して、サブデザインが正しく最適化されるよ
うにします。
5.
Attributes タブで、syn_netlist_hierarchy を 0 に設定します。
トップレベル・デザイン・プロジェクトを合成するときは、以下のステッ
プを実行します。
1.
ターゲット・テクノロジの Disable I/O Insertion をオフにします。
2.
トップレベル・デザイン用の HDL ファイルを読み出します。
3.
トップレベル・デザイン内の下位レベル・レベル・モジュールを使
用してブラック・ボックスを作成します。
4.
SCOPE 制約ウィンドウで制約を追加します。
5.
クロック周波数を入力して、デザインが正しく最適化されるように
します。
6.
Attributes タブで、syn_netlist_hierarchy を 0 に設定します。
以下の項では、個別の .vqm ファイルを作成するためのブラック・ボッ
クス実装の例について説明します。複数のパーティションに分割される
デザイン階層の例は、図 9–3 を参照してください。
9–62
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルおよびブロック・ベース・デザイン
図 9–6. 階層構造デザインのパーティション
Partition Top
A
B
D
C
E
Partition B
F
Partition F
図 9–3 のパーティション Top には、デザイン内のトップレベル・ブロッ
ク(ブロック A)と、別のパーティションの一部として定義されないロ
ジックが含まれます。この例では、トップレベル・ブロック A のパー
ティションには、そのサブブロック C の 1 つであるロジックも含まれて
います。ブロック F は、独自のパーティションに含まれるため、トップ
レベル・パーティション A の一部として扱われません。もう 1 つの独立
したパーティション B には、ブロック B、D、E のロジックが含まれま
す。チーム・ベースのデザインでは、異なるエンジニアが異なるパーティ
ションのロジックを扱うことができます。トップレベル・モジュール A
とサブモジュール C に対して 1 つのネットリストが作成され、B および
そのサブモジュールである D と E に対してもう 1 つのネットリストが作
成され、F に対して 3 番目のネットリストが作成されます。このデザイ
ン用に複数の .vqm ファイルを作成するには、以下のステップに従いま
す。
Altera Corporation
2008 年 5 月
1.
モジュール B 用の .vqm ファイルを生成します。ソース・ファイル
として、B.v/.vhd、D.v/.vhd、および E.v/.vhd を使用します。
2.
モジュール F 用の .vqm ファイルを生成します。ソース・ファイル
として F.v/.vhd を使用します。
3.
モジュール A 用のトップ・レベル .vqm ファイルを生成します。ソー
ス・ファイルとして、A.v/.vhd および C.v/.vhd を使用します。必ず
前のステップで別々に最適化されたブラック・ボックス・モジュー
ル B および F を使用してください。
9–63
Quartus II ハンドブック Volume 1
Verilog HDL でのブラック・ボックスの作成
ソフトウェアは、プロジェクトで定義されていない、あるいはプロジェ
クトのために読み出されるファイルのリストに含まれるすべてのデザイ
ン・ブロックをブラック・ボックスとして扱います。syn_black_box
属性を使用して、特定のモジュールのためにブラック・ボックスを作成
するよう指示します。Verilog HDL では、ブラック・ボックスとして扱
われるモジュールに空のモジュール宣言を提供する必要があります。
例 9–24 に、トップレベル・ファイル A.v の例を示します。現在の階層
レベルの下にあるモジュールのブラック・ボックスも含む下位レベル・
ファイルに対して、以下の同じ手順に従います。
例 9–24. トップレベル・ファイル A.v の Verilog HDL ブラック・ボックス
module A (data_in, clk, e, ld, data_out);
input data_in, clk, e, ld;
output [15:0] data_out;
wire [15:0] cnt_out;
B U1 (.data_in (data_in),.clk(clk), .ld (ld),.data_out(cnt_out));
F U2 (.d(cnt_out), .clk(clk), .e(e), .q(data_out));
// A.v 内の他のコードをここに入れる。
endmodule
// サブブロック B および F の空のモジュール宣言をこの後に置く。
// これらのモジュール宣言(ポートを含む)はブラック・ボックスに必要。//
module B (data_in, clk, ld, data_out) /* synthesis syn_black_box */ ;
input data_in, clk, ld;
output [15:0] data_out;
endmodule
module F (d, clk, e, q) / *synthesis syn_black_box */ ;
input [15:0] d;
input clk, e;
output [15:0] q;
endmodule
9–64
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルおよびブロック・ベース・デザイン
VHDL でのブラック・ボックスの作成
ソフトウェアは、プロジェクトで定義されていない、あるいはプロジェ
クトのために読み出されるファイルのリストに含まれるすべてのデザイ
ン・ブロックをブラック・ボックスとして扱います。syn_black_box
属性を使用して、特定のコンポーネントをブラック・ボックスとして扱
うことを指示します。VHDL では、デザイン内の他の任意のブロックと
同様に、ブラック・ボックスに対するコンポーネント宣言が必要です。
VHDLは大文字と小文字を区別しませんが、.vqm(Verilog HDL
のサブセット)ファイルは大文字と小文字を区別します。エン
ティティ名とエンティティのポート宣言が .vqm ファイルに転
送されます。ブラック・ボックス名とポート宣言も .vqm ファ
イルに渡されます。大文字と小文字の不一致が生じないよう、
VHDL デザインでのブラック・ボックスとエンティティ宣言に
は大文字を使用してください。
例 9–25 に、トップレベル・ファイル A.vhd の例を示します。現在の階
層レベルの下にあるブロックのブラック・ボックスを含む下位レベル・
ファイルに対して、同じ手順に従います。
例 9–25. トップレベル・ファイル A.vhd の VHDL ブラック・ボックス
LIBRARY ieee;
USE ieee.std_logic_1164.all;
LIBRARY synplify;
use synplify.attributes.all;
ENTITY A IS
PORT ( data_in :IN INTEGER RANGE 0 TO 15;
clk, e, ld :IN STD_LOGIC ;
data_out:OUT INTEGER RANGE 0 TO 15 );
END A;
ARCHITECTURE a_arch OF A IS
COMPONENT B PORT(
data_in:IN INTEGER RANGE 0 TO 15;
clk, ld :IN STD_LOGIC ;
d_out :OUT INTEGER RANGE 0 TO 15 );
END COMPONENT;
COMPONENT F PORT(
d :IN INTEGER RANGE 0 TO 15;
clk, e:IN STD_LOGIC ;
q:OUT INTEGER RANGE 0 TO 15 );
END COMPONENT;
attribute syn_black_box of B:component is true;
attribute syn_black_box of F:component is true;
Altera Corporation
2008 年 5 月
9–65
Quartus II ハンドブック Volume 1
-- A.vhd のその他のコンポーネント宣言をここに入れる。
signal cnt_out :INTEGER RANGE 0 TO 15;
BEGIN
U1 :B
PORT MAP (
data_in => data_in,
clk => clk,
ld => ld,
d_out => cnt_out );
U2 :F
PORT MAP (
d => cnt_out,
clk => clk,
e => e,
q => data_out );
-- A.vhd 内のその他のコードをここに置く。
END a_arch;
この項に記載されるステップの完了後に、デザインの各パーティション
に対するネットリスト・ファイルが得られます。これらのファイルは、
Quartus II ソフトウェアでのインクリメンタル・コンパイルに使用でき
ます。
複数の .vqm ファイル用の Quartus II プロジェクトの作成
Synplify ソフトウェアは、Quartus II ソフトウェアに適切な制約を提供
する各 .vqm ファイル用の .tcl ファイルと、プロジェクトを設定するた
めの情報を作成します。Quartus II プロジェクトをセットアップし、制
約を渡すための Synplify ソフトウェアで生成された Tcl スクリプトの使
用について詳しくは、9–22 ページの「Synplify が生成した Tcl スクリプ
トを使用して、Quartus II ソフトウェアを手動で実行する」を参照して
ください。
デザイン手法に応じて、すべてのネットリストに対して 1 つの Quartus II
プロジェクト(トップダウンの配置配線フロー)、または各ネットリスト
に対して個別の Quartus II プロジェクト(ボトムアップ配置配線フロー)
を作成できます。トップダウンのインクリメンタル・コンパイル・デザ
イン・フローでは、デザイン・パーティション・アサインメントを作成
し、オプションで、1 つの Quartus II プロジェクト内のデザインの各パー
ティションに対して LogicLock フロアプラン・ロケーション・アサイン
9–66
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルおよびブロック・ベース・デザイン
メントを作成します。この手法により、最高の品質結果を達成でき、ま
たデザインへのインクリメンタル変更時に性能を維持することができま
す。特定のチーム・ベースのデザイン・フローの場合など、各パーティ
ションを個別に最適化する必要がある場合は、ボトムアップのデザイン・
フローが必要になることがあります。
Quartus II ソフトウェアでボトムアップ・コンパイルを実行するには、
個別の Quartus II プロジェクトを作成し、インクリメンタル・コンパイ
ルのエクスポート機能とインポート機能を使用して各デザイン・パー
ティションをトップレベル・デザインにインポートし、結果を維持しま
す。
以下の項では、これらの 2 つのデザイン・フローのために Quartus II プ
ロジェクトを作成する方法について説明します。
トップダウン・インクリメンタル・コンパイル・フローのための 1 つの
Quartus II プロジェクトの作成
トップレベル・デザインに対する Synplify アサインメントを含む < トッ
プレベル・プロジェクト >.tcl ファイルを使用します。この方法により、
インクリメンタル・コンパイルが提供する性能の維持とコンパイル時間
の短縮の利点を活かして、すべてのパーティションを 1 つの Quartus II
プロジェクトにインポートし、プロジェクト内のすべてのモジュールを
一度に最適化することができます。図 9–7 に、図 9–3 のデザイン例のデ
ザイン・フローを視覚的に示します。
トップレベル・プロジェクトからのすべての制約がトップレベル.tclファ
イル内の Quartus II ソフトウェアに渡されますが、Synplify ソフトウェ
ア内の下位レベル・プロジェクトで作成された制約はフォワード・アノ
テートされません。これらの制約は Quartus II プロジェクトに手動で入
力します。
Altera Corporation
2008 年 5 月
9–67
Quartus II ハンドブック Volume 1
図 9–7. 複数の .vqm ファイルと 1 つの Quartus II プロジェクトを併用したデザイン・フロー
Quartus II Project
a.vqm
Use a.tcl to import top-level
Synplify Pro assignments.
Enter any lower-level
assignments manually.
b.vqm
f.vqm
ボトムアップ・インクリメンタル・コンパイル・フローのための複数の
Quartus II プロジェクトの作成
Synplify ソフトウェアで各 .vqm ファイル用に作成された .tcl ファイル
を各 Synplify プロジェクトに使用します。この方法により、デザインの
各ブロックに対して 1 つずつ、複数の Quartus II プロジェクトが生成さ
れます。プロジェクトの各設計者は、各自のブロックを Quartus II ソフ
トウェア内で個別に最適化し、それらのブロックの配置をエクスポート
することができます。図 9–8 に、9–56 ページの図 9–3 の例のデザイン・
フローを視覚的に示します。
設計者は、パーティション間の競合を回避するために LogicLock 領域を
作成して、各ブロックのデザイン・フロアプランを作成する必要があり
ます。トップレベルの設計者は、次にすべてのブロックとアサインメン
トをトップレベル・プロジェクトにインポートする必要があります。こ
の方法により、デザイン内の各ブロックを個別に最適化してから、1 つ
のトップレベル・プロジェクトにインポートすることができます。
9–68
Altera Corporation
2008 年 5 月
インクリメンタル・コンパイルおよびブロック・ベース・デザイン
図 9–8. 複数のSynplify プロジェクトと複数のQuartus IIプロジェクトを使用するデザイン・フロー
Quartus II Project
a.vqm
Quartus II Project
Quartus II Project
b.vqm
Use the lower-level
Tcl file b.tcl to Import
Synplify Assignments
Use the top-level
Tcl file a.tcl to Import
Synplify Assignments
f.vqm
Use the lower-level
Tcl file f.tcl to Import
Synplify Assignments
Quartus II ソフトウェアでのインクリメンタル・コンパイ
ルの実行
Multipoint シンセシスを使用するトップダウンのデザイン・フローでは、
Synplify ソフトウェアは Quartus II トップレベル .tcl ファイルを使用し
て、2 つのツールのデータベースが同期状態で維持されるようにします。
Tcl は、Synplify で作成、変更、または削除されたコンパイル・ポイント
に対する、Quartus II ソフトウェア内のパーティション・アサインメン
トを作成、変更、または削除します。ただし、Quartus II ソフトウェア
でパーティションを作成、変更、または削除しても、Synplify ソフトウェ
アはコンパイル・ポイントの設定を変更しません。Synplify プロジェク
トで対応する変更を行って、正しい .vqm ファイルを作成する必要があ
ります。
9–21 ページの「Quartus II ソフトウェアを使用して Synplify ソ
フトウェアを実行する」で説明した Nativelink 統合機能を使用
する場合、Synplify ソフトウェアは、Quartus II ソフトウェア
で設定したデザイン・パーティション・アサインメントに関す
る情報は使用しません。
Altera Corporation
2008 年 5 月
9–69
Quartus II ハンドブック Volume 1
複数の Synplify プロジェクトを使用してネットリストを作成する場合、
または Quartus II プロジェクトの制約を更新する際に Synplify Pro で生
成された .tcl ファイルを使用しない場合、Synplify の .vqm ネットリス
トが Quartus II のパーティション設定に適合していることを確認する必
要があります。
.vqm ネットリスト・ファイルで Quartus II プロジェクトを個別デザイ
ン・パーティションとしてセットアップした後、コンパイル結果が維持
されるように適切な Quartus II オプションを設定します。Assignments
メニューで、Design Partitions Window をクリックします。以前のコン
パイルのフィッティング後の配置結果を維持するために、Netlist Type を
Post-Fit に変更します。配線結果も維持するには、Fitter Preservation
Level を Placement and Routing に設定します。これらの設定を行わな
い場合、Quartus II ソフトウェアは以前のコンパイルからの配置または
配線結果を再利用しません。
インクリメンタル・コンパイルと Synplify デザインの利点を活かして、
Quartus II ソフトウェアでコンパイル時間を短縮し、変更されていない
デザイン・ブロックに対する結果を維持することができます。
Quartus II インクリメンタル・コンパイルの使用について詳しくは、
「Quartus II ハ ン ド ブ ッ ク Volume 1」の「Quartus II Incremental
Compilation for Hierarchical and Team-Based Design」の章を参照して
ください。
まとめ
9–70
高度 な 合成はデザイン・フローの重要な部分です。Synplicity 社の
Synplify とアルテラの Quartus II デザイン・フローの利点を活かすこと
により、Quartus II 配置配線プロセスのためのデザイン・ファイルの準
備方法を制御できるだけでなく、性能を向上させアルテラ・デバイスで
使用するためにデザインを最適化することもできます。この章で概要を
述べた手法のいくつかは、デザインを最適化して性能目標を達成し、デ
ザイン時間を短縮するのに役立つことがあります。
Altera Corporation
2008 年 5 月
参考資料
参考資料
この章では以下のドキュメントを参照しています。
■ 「Synplify Software Reference Manual」の「Altera Constraints,
Attributes, and Options 」の章
■ 「Synplify Reference Manual」の「Altera I/O Standards」
■ 「Quartus II ハンドブック Volume 2」
の
「Area and Timing Optimization」
の章
■ 「Quartus II ハンドブック Volume 1」の「アルテラ・デバイスのデザ
イン推奨事項」の章
■ 「Quartus II ハンドブック Volume 2」の「Netlist Optimizations and
Physical Synthesis」の章
■ 「Quartus II ハンドブック Volume 1」の「Quartus II Incremental
Compilation for Hierarchical and Team-Based Design」の章
Synplify Pro User Guide and Reference Manual(Synplicity ウェブサ
イト www.synplicity.com/literature/index.html)
■ 「Quartus II ハンドブック Volume 2」の「Tcl Scripting」の章
■
Altera Corporation
2008 年 5 月
9–71
Quartus II ハンドブック Volume 1
表 9–5 に、本資料の改訂履歴を示します。
改訂履歴
表 9–5. 改訂履歴 (1 / 2)
日付および
バージョン
2008 年 5 月
v8.0.0
変更内容
●
●
●
●
●
●
●
●
●
●
●
●
●
●
概要
Quartus II ソフトウェア v8.0
サポートされているデバイス・リストを更新。
TimeQuest タイミング・アナライザの制約の注釈情報を更新。 および Synplify ソフトウェ
RAM および MAC の制約に関する制限事項を更新。
ア v9.4 のリリースによる更
表 9–1 を改訂。
新。
新しい項、
「インスタンス化したアルテラ・メガファンクショ
ンに対する Synplify のデフォルトの動作の変更」を追加。
新しい項、「MegaWizard Plug-In Manager および IP
Toolbench を使用した Intellectual Property(IP)のインスタ
ンス化」を追加。
新しい項、
「Quartus II配置配線専用ファイルのインクルード」
を追加。
新しい項、
「コンパイル・ポイントに対する追加検討事項」を
追加。
「Apply the LogicLock Attributes」の項を削除。
Figures 9–4、9–5, 9–7、および 9–8 を変更。
新しい項、「Quartus II ソフトウェアでのインクリメンタル・
コンパイルの実行」を追加。
章全体を通して、多数のテキストを変更および追加。
複数の項のタイトルを変更。
「参考資料」の項を更新。
Quartus II ソフトウェア v7.2
2007 年 10 月 このドキュメントに対する変更 :
v7.2.0
● Synplicity 社のバージョン・サポートを更新。
のリリースでサポートされ
● MegaWizard で生成されたファイルをコンパイルする前に、 る Synplicity 機能に基づいた
適切なQuartus IIバージョンの設定方法に関する情報を追加。 章の更新。
2007 年 5 月
v7.1.0
●
●
●
●
●
2007 年 3 月
v7.0.0
9–72
●
●
図 7-2 を削除(該当しなくなったため)
。
Synplify ソ フ ト ウ ェ ア v8.8 を 使 用 す る と き に の み
MegaWizard Plug-In Manager で生成されたラッパー・ファ
イルを使用することを規定するために、「Instantiating Altera
Megafunctions Using the MegaWizard Plug-In Manager」の項
を更新。
「クリアボックス」手法への参照を合成エリアおよびタイミ
ング見積もりネットリストをサポートする情報と差し替え。
Quartus II ソフトウェア v7.1 のためのマイナー・アップデー
ト。
参考資料の項を追加。
Synplify ソフトウェア v8.0
および Quartus II ソフト
ウェア v7.1 のリリースによ
る章の更新。
サポートされているデバイスのリストに Cyclone III を追加 このリリースによる
Synplify ソフトウェアが選択されたデバイスに関係なく、 Cyclone III のサポートを記
載するために、この章を更
.scf ファイルを生成することを明記。
新。
Altera Corporation
2008 年 5 月
改訂履歴
表 9–5. 改訂履歴 (2 / 2)
日付および
バージョン
2006 年 11 月
v6.1.0
変更内容
●
●
●
●
●
2006 年 5 月
v6.0.0
v6.0.0 の 8 章を 9 章に変更。
TimeQuest 用の SDC 制約を渡すために SCF が生成されるこ
とを追記。
TimeQuest を使用するときのタイミング制約情報を追加。
alt_pll メガファンクションに関する注をクリアボックスの項
からブラック・ボックスの項に移動。
Synplify が Stratix および Cyclone シリーズ・デバイス用の
alt_pll メガファンクション・ブラック・ボックス・ファイル
を読み出すことを明記。
Quartus II ソフトウェア v6.0.0 のための更新 :
● クロス・プロービング情報を更新。
● NativeLink® 統合情報を追加。
● Synplify デザイン・フローのサポートを追記。
● アルテラのメガファンクションのガイドラインとアーキテ
クチャ固有の機能を追記。
2005 年 12 月 誤字・脱字のマイナー修正。
v5.1.1
Quartus II ソフトウェア v5.1 のための更新。
v5.0 の 9 章を 8 章に変更。
2005 年 10 月
v5.1.0
●
2005 年 5 月
v5.0.0
v4.2 の 7 章を 9 章に変更。
2004 年 12 月
v2.1.0
●
●
●
●
●
Stratix III のサポートを記載
するための更新、および
TimeQuest に対するタイミ
ング制約情報を渡す方法に
ついての情報の追加
—
—
—
—
v4.1 の 9 章を 8 章に変更。
情報を更新。
Quartus II ソフトウェア v4.2 の新機能。
図 8-1 を更新。
—
表および図を更新。
Quartus II ソフトウェア v4.1 の新機能。
—
2004 年 6 月
v2.0.0
●
2004 年 2 月
v1.0.0
初版
●
概要
Altera Corporation
2008 年 5 月
—
9–73
Quartus II ハンドブック Volume 1
9–74
Altera Corporation
2008 年 5 月