Quartus IIコンパイラは特定のタイプのHDLコードを自動的に認識し、
適切なメガファンクションを推測します。メガファンクションを明確に インスタンス化していない場合でも、デザインのコンパイル時にアルテ ラのメガファンクション・コードが使用されます。アルテラ・デバイス に最適化されるロジックを利用するために、メガファンクションが推測 されます。このようなロジックの面積と性能は、同じHDL コードの汎 用ロジックを推測して得られる結果よりも良好な場合があります。
また、基本的なロジック・エレメントと比べると一般に性能が改善され る、アーキテクチャ独自の機能、例えば、RAM、デジタル信号処理
(DSP)ブロック、シフト・レジスタなどにアクセスする場合は、必ずメ ガファンクションを使用しなければなりません。
アルテラ・デバイスでメガファンクションをターゲットとする場合に推 奨されるコーディング・スタイルについて詳しくは、「Quartus IIハンド ブックVolume 1」の「Recommended HDL Coding Styles」の章を参照 してください。
Quartus IIソフトウェアには、特定タイプのメガファンクションの推測を
制御するオプションがあります。これについては以下の項で説明します。
乗算-累算器&乗算-加算器
Auto DSP Block Replacementロジック・オプションは、DSPブロック の乗算累算器と乗算加算器の推測を制御するのに使用します。このオプ ションはデフォルトではオンに設定されます。推測を無効にする場合、
Quartus IIの合成オプション
プロジェクト全体に対してはSettingsダイアログ・ボックスのAnalysis
& Synthesis Settingsページで、特定のブロックに対してはAssignment
Editorを使用して、このオプションをオフにします。
altmult_accumとaltmult_addの各メガファンクション にマップされ、DSPブロックに配置されるレジスタは、合成 後にそれらのノード名が存在しないため、シミュレータでは 使用できません。
シフト・レジスタ
シ フ ト・レ ジ ス タ の 推 測 を 制 御 す る に は、Auto Shift Register
Replacementロジック・オプションを使用します。このオプションはデ
フォルトではオンに設定されます。推測を無効にする場合、プロジェク ト全体に対してはSettingsダイアログ・ボックスのAnalysis & Synthesis Settingsページで、特定のブロックに対してはAssignment Editorを使 用して、このオプションをオフにします。小さなシフト・レジスタは一 般に専用メモリに実装しても効果がないため、推測されないことがあり ます。ただし、Allow Any Shift Register Size for Recognition ロジッ ク・オプションを使用すれば、サイズが小さすぎると見なされるシフト・
レジスタに対しても合成での推測を指示することができます。
altmult_tapsメガファンクションにマップされ、RAMに 配置されるレジスタは、合成後にそれらのノード名が存在し ないため、シミュレータでは使用できません。
Auto Shift Register Replacement ロジック・オプションは、
EDA Tool Settingsでフォーマル検証ツールが選択されると自
動的にオフになります。ソフトウェアは警告を発行し、コン パイル・レポートでフォーマル検証ツールが選択されていな ければ推測されていたシフト・レジスタをリストします。
フォーマル検証フローで、シフト・レジスタにメガファンク ションを使用することを許可するには、MegaWizard Plug-in
Managerを使用してシフト・レジスタを明示的にインスタン
ス化するか、別のエンティティ/ モジュールでシフト・レジ スタをブラックボックス化することができます。
RAM & ROM
RAM お よび ROM の 推測 を制 御す るに は、それ ぞれ Auto RAM ReplacementおよびAuto ROM Replacementロジック・オプションを 使用します。これらのオプションはデフォルトではオンに設定されます。
推測を無効にする場合、プロジェクト全体に対してはSettingsダイアロ
グ・ボックスのAnalysis & Synthesis Settingsページで、特定のブロッ クに対してはAssignment Editorを使用して、該当するオプションをオ フにします。
非常に小さなメモリ・ブロックは、一般にロジックのレジスタを使用す ればより効率的に実装できるため、非常に小さなRAMまたはROMブ ロックは推測されない場合があります。ただし、Allow Any RAM Size for RecognitionおよびAllow Any ROM Size for Recognitionロジッ ク・オプションを使用すれば、サイズが小さすぎると見なされるメモリ・
ブロックに対しても、合成での推測を指示することができます。
Auto ROM Replacementロジック・オプションは、EDA Tool
Settings でフォーマル検証ツールが選択されると自動的にオ
フになります。警告が発行され、レポート・パネルに、フォー マル検証ツールが選択されていなかった場合に推測されてい たはずのROMがリストされます。フォーマル検証フローで、
シフト・レジスタにメガファンクションを使用することを許 可するには、MegaWizard Plug-in Managerを使用してROM を明示的にインスタンス化するか、別のエンティティ/ モ ジュールでROM にブラックボックスを作成することができ ます。
フォーマル検証ツールは推測されたRAMブロックをサポートしません が、多くのデザインでRAMの推測が重要になるため、EDA Tool Settings ペー ジで フォ ーマ ル検 証ツ ール が選 択さ れる 場合 でも Auto RAM Replacementロジック・オプションはオンのままです。Quartus IIソフ トウェアは、推測されるRAMブロックが含まれるモジュールまたはエ ンティティをすべて自動的にブラック・ボックス化します。ソフトウェ アは警告を発行し、作成されたブラック・ボックスをコンパイル・レポー トにリストします。このブラック・ボックスにより、フォーマル検証ツー ルは検証を続行できますが、RAMを含むモジュール全体またはエンディ ティ全体をツールで検証することはできません。アルテラでは、フォー マル検証ツールで可能な限り多くのロジックが検証されるため、RAM ブロックを別のモジュールまたはエンティティで明示的にインスタンス 化することを推奨しています。
Quartus IIの合成オプション