インテル® Quartus® Primeプロ・エディションのユーザーガイド: デザインのコンパイル

ID 683236
日付 6/26/2023
Public
ドキュメント目次

1.13.1. 合成における高度な設定

次のセクションは、合成の高度な設定についてのクイック・リファレンスです。 Assignments > Settings > Compiler Settings > Advanced Settings (Synthesis) をクリックし、これらの設定を変更します。
表 35.  Advanced Synthesis Settings (1/13)

オプション

詳細

Allow Any RAM Size for Recognition

コンパイラーでRAMの推論ができるようにします。RAMのサイズは任意で、RAMが現在の最小要件を満たしていない場合でも可能です。

Allow Any ROM Size for Recognition

コンパイラーでROMの推論ができるようにします。ROMのサイズは任意で、ROMがデザインの現在の最小サイズ要件を満たしていない場合でも可能です。

Allow Any Shift Register Size for Recognition

コンパイラーでシフトレジスターの推論ができるようにします。シフトレジスターのサイズは任意で、シフトレジスターがデザインの現在の最小サイズ要件を満たしていない場合でも可能です。

Allow Register Duplication

コンパイラーでレジスターを複製することにより、デザイン・パフォーマンスを向上させるかを制御します。有効にすると、コンパイラーは最適化を実行し、レジスターの2つ目のコピーを作成してファンアウトの一部をこの新しいノードに移します。この手法により配線が向上し、多くのファンアウトを備えるネットの配線に必要な総配線ワイヤーが減少します。このオプションを無効にすると、レジスターのリタイミングもまた無効になります。

注: インテル® Arria® 10および インテル® Cyclone® 10 GXデバイスでのみ利用可能です。
Allow Register Merging

コンパイラーで同一のレジスターを削除 (マージ) するかしないかを制御します。有効にすると、2つのレジスターが同じロジックを生成している場合に、コンパイラーは一方のレジスターを削除し、もう一方のレジスターを削除されたレジスターの到達先にファンアウトしようとします。このオプションは、意図的に使用している重複レジスターをコンパイラーが削除しないようにする場合に役立ちます。無効にすると、リタイミングによる最適化も無効になります。

注: インテル® Arria® 10および インテル® Cyclone® 10 GXデバイスでのみ利用可能です。

Allow Shift Register Merging Across Hierarchies

コンパイラーでシフトレジスターをデザインの異なる階層から取得し、そのレジスターを同じRAMに配置できるようにします。

Allow Synchronous Control Signals

コンパイラーで、同期クリアおよび同期ロード信号を通常モードのロジックセルで使用できるようにします。このオプションをオンにすると、デザインで使用するロジックセルの総数を減らすことができますが、フィットに悪影響をおよぼす可能性があります。この悪影響は、LAB内のすべてのロジックセルで同期コントロール信号を共有しているために起こります。

表 36.  Advanced Synthesis Settings (2/13)

オプション

詳細

Analysis & Synthesis Message Level

コンパイラーで表示するAnalysis & Synthesisのメッセージタイプを指定します。Low では、最も重要なAnalysis & Synthesisメッセージのみが表示されます。Medium では、ほとんどのメッセージが表示されますが、詳細メッセージは非表示になります。Highでは、すべてのメッセージが表示されます。

Auto Clock Enable Replacement

コンパイラーにより、レジスターに供給するロジックを検出し、そのロジックをレジスターのクロックイネーブル入力ポートに移動することができるようにします。

Auto DSP Block Replacement

コンパイラーでDSPブロックに置換可能な積和関数 (乗累関数) の検索ができるようにします。

Auto Gated Clock Conversion

ゲート使用クロックを自動変換し、クロック・イネーブル・ピンを使用します。クロック・ゲーティング・ロジックには、AND、OR、MUX、およびNOTゲートが含まれます。このオプションをオンにすると、メモリー使用量や全体的な実行時間が増加することがあります。タイミング解析にはタイミング・アナライザーを使用します。また、すべてのベースクロックをSynopsys Design Constraints (.sdc) 形式で定義する必要があります。

表 37.  Advanced Synthesis Settings (3/13)

オプション

詳細

Auto Open-Drain Pins

コンパイラーにより、強いLowデータ入力をもつトライステート・バッファーを同等のオープンドレイン・バッファーに自動変換できるようにします。

Auto RAM Replacement

コンパイラーにより、altsyncramまたはlpm_ram_dp IPコアで置換可能な一連のレジスターおよびロジックを特定できるようにします。このオプションをオンにすると、デザインの機能が変わることがあります。

Auto ROM Replacement

コンパイラーにより、altsyncramまたはlpm_rom IPコアで置換可能なロジックを特定できるようにします。このオプションをオンにすると、デザインのパワーアップ状態が変わることがあります。

Auto Resource Sharing

コンパイラーにより、HDLソースコード内の相互に排他的で類似する多くの演算の間で、ハードウェア・リソースを共有できるようにします。このオプションを有効にすると、コンパイラーは互換性のある演算 (加算、減算、および乗算) をマージします。演算をマージすると、デザインに必要な領域が少なくなる場合があります。リソースの共有により、各共有リソースに多重化とコントロール・ロジックが追加されるため、デザインの最終的なfMAX に悪影響をおよぼす可能性があります。

Auto Shift Register Placement

コンパイラーにより、altshift_taps IPコアで置換可能な同じ長さのシフトレジスターのグループを検索できるようにします。シフトレジスターではすべて、同じクロックおよびクロックイネーブル信号を使用する必要があります。レジスターに他の二次信号がないようにします。レジスターには、少なくともレジスター3つ分離れた等間隔のタップが必要です。

Automatic Parallel Synthesis

自動並列合成を有効/無効にするオプションです。このオプションを使用すると、利用可能な場合に複数のプロセッサーを使用することで、合成コンパイル時間を短縮します。

表 38.  Advanced Synthesis Settings (4/13)

オプション

詳細

Block Design Naming

ブロックデザインの命名スキームを指定します。このオプションをデザイン・エンティティー以外に割り当てている場合、コンパイラーはこのオプションを無視します。

Clock MUX Protection

クロック・ネットワーク内のマルチプレクサーを2対1のマルチプレクサー・ツリーに分解します。コンパイラーは、このツリーが他のロジックにマージされたり転送されたりしないように保護します。このオプションは、タイミング・アナライザーでクロック動作を解析する際に役立ちます。

DSP Block Balancing

DSPブロックのバランシング時に特定のDSPブロックスライスの変換を制御できるようにします。

表 39.  Advanced Synthesis Settings (5/13)

オプション

詳細

Disable DSP Negate Inferencing

推論されたDSPブロックでネゲートポートを使用するかを指定できるようになります。

Disable Register Merging Across Hierarchies

入力が同じレジスターが異なる階層にある場合に、コンパイラーでそのレジスターのマージを許可するかを指定します。

Enable Formal Verification Support コンパイラーでスクリプトを作成し、それをOneSpin* フォーマル検証ツールで使用できるようにします。
Enable State Machines Inference コンパイラーでVHDLまたはVerilog HDLデザインファイルからステートマシンを推論できるようにします。コンパイラーは、ステートマシンを最適化して領域を削減し、パフォーマンスを向上させます。Off に設定すると、コンパイラーは、VHDLまたはVerilog HDLデザインファイル内のステートマシンを通常のロジックとして抽出および最適化します。
Enable SystemVerilog static assertion support SystemVerilogデザインの情報、警告、エラー・メッセージをコンパイラーで即時にアサートできるようにします。
Enable VHDL static assertion support VHDLデザインの情報、警告、エラー・メッセージをコンパイラーで即時にアサートできるようにします。

Force Use of Synchronous Clear Signals

同期クリア信号を通常モードのロジックセルで使用するようにコンパイラーを強制します。このオプションを有効にすると、デザインのロジックセルの総数を減らすことができますが、フィットに悪影響をおよぼす可能性があります。LAB内のすべてのロジックセルは、同期コントロール信号を共有します。

Fractal Synthesis このオプションを On にすると、コンパイラーは、算術演算ブロックに高密度のパッキングを適用し、算術演算を多用するデザインのデザイン領域を最小限に抑えます。

HDL Message Level

表示するHDLメッセージタイプを指定します。これには、HDLソースコードの処理エラーを示すメッセージなどがあります。Level1 では、最も重要なHDLメッセージのみを表示します。Level2 では、ほとんどのHDLメッセージを表示します。これには、警告および情報ベースのメッセージが含まれます。Level3 では、すべてのHDLメッセージを表示します。これには、警告および情報ベースのメッセージや、デザインの潜在的な問題やlintエラーに関するアラートが含まれます。

表 40.  Advanced Synthesis Settings (6/13)

オプション

詳細

Ignore GLOBAL Buffers

デザインの GLOBAL バッファーを無視します。このオプションを個々の GLOBAL バッファーや GLOBAL バッファーを含むデザイン・エンティティー以外に適用している場合、コンパイラーはこのオプションを無視します。

Ignore LCELL Buffers

デザインの LCELL バッファーを無視します。このオプションを個々の LCELL バッファーや LCELL バッファーを含むデザイン・エンティティー以外に適用している場合、コンパイラーはこのオプションを無視します。

Ignore Maximum Fan-Out Assignments

ノード、エンティティー、またはデザイン全体の最大ファンアウト割り当てを無視するようにコンパイラーに指示します。

Ignore SOFT Buffers

デザインの SOFT バッファーを無視します。このオプションを個々の SOFT バッファーやSOFTバッファーを含むデザイン・エンティティー以外に適用している場合、コンパイラーはこのオプションを無視します。

表 41.  Advanced Synthesis Settings (7/13)

オプション

詳細

Ignore translate_off and synthesis_off Directives

Verilog HDLおよびVHDLデザインファイルのすべての translate_off/synthesis_off 合成ディレクティブを無視します。このオプションを使用してこれらの合成ディレクティブを無効にし、エラボレーション時に無視されていたコードを含めます。

Infer RAMs from Raw Logic

RAMをレジスターおよびマルチプレクサーから推論します。コンパイラーはまず、RAMテンプレートとは異なるいくつかのHDLパターンをロジックに変換します。ただし、その構造はRAMとして機能します。そのため、このオプションを有効にすると、コンパイラーは、後の段階でそれらの構造をaltsyncram IPコア・インスタンスに置き換えることがあります。この割り当てを有効にすると、コンパイラーは、より多くのデバイスRAMリソースを使用し、LABが少なくなる可能性があります。

Iteration Limit for Constant Verilog Loops

各ループ反復でコンパイル時定数として評価されるループ条件を備えるVerilogループの反復制限を定義します。この制限の主な目的は、潜在的な無限ループを特定することです。それにより、メモリーを使い果たしたり、ソフトウェアが実際の無限ループに入り込むことがないようにします。

Iteration Limit for non-Constant Verilog Loops

各ループ反復でコンパイル時定数として評価されないループ条件を備えるVerilog HDLループの反復制限を定義します。この制限の主な目的は、潜在的な無限ループを特定することです。それにより、メモリーを使い果たしたり、ソフトウェアが実際の無限ループに入り込むことがないようにします。

表 42.  Advanced Synthesis Settings (8/13)

オプション

詳細

Maximum DSP Block Usage

DSPブロックバランサーが現在のデバイスの各パーティションに存在すると想定するDSPブロックの最大数を指定します。このオプションは、現在のデバイスでサポートするDSPブロックの最大数を使用する通常の方法をオーバーライドします。

Maximum Number of LABs

Analysis & Synthesisにおいてデバイスで使用するLABの最大数を指定します。このオプションは、値が負の値ではなく、現在のデバイスで利用可能なLABの最大数よりも小さい場合に、現在のデバイスでサポートするLABの最大数を使用する通常の方法をオーバーライドします。

Maximum Number of M4K/M9K/M20K/M10K Memory Blocks

コンパイラーでデバイスに使用することができるM4K、M9K、M20K、またはM10Kメモリーブロックの最大数を指定します。このオプションは、値が負の値ではなく、現在のデバイスで利用可能なM4K、M9K、M20K、またはM10Kメモリーブロックの最大数よりも小さい場合に、現在のデバイスでサポートするM4K、M9K、M20K、またはM10Kメモリーブロックの最大数を使用する通常の方法をオーバーライドします。

表 43.  Advanced Synthesis Settings (9/13)

オプション

詳細

Maximum Number of Registers Created from Uninferred RAMs

Analysis & Synthesisで非推論RAMの変換に使用するレジスターの最大数を指定します。このオプションは、プロジェクト全体のオプションとして使用する、もしくは、パーティション・ルートのインスタンス名に割り当てを設定することにより、特定のパーティションで使用します。パーティションでの割り当ては、その特定のパーティションに対するグローバル割り当て (存在する場合) をオーバーライドします。このオプションは、非推論RAMに多くのレジスターが使用されている場合に、合成でコンパイルが長くなったり、メモリーが不足したりすることがないようにするものです。 インテル® Quartus® Prime開発ソフトウェアは、コンパイルを続行する代わりに、エラーを発行して終了します。

NOT Gate Push-Back

デザインの実装に必要な場合に、コンパイラーで反転 (つまり、NOTゲート) をレジスターを介して後方に移し、そのレジスターのデータ入力で実装できるようにします。このオプションがオンの場合、レジスターは電源投入時にアクティブHighの状態になり、デバイスの初期動作時に明示的なクリアが必要になる場合があります。個々のレジスターまたはレジスターを含むデザイン・エンティティー以外にこのオプションを適用している場合、コンパイラーはこのオプションを無視します。このオプションをレジスターから直接供給される出力ピンに適用すると、割り当てはそのレジスターに自動的に移ります。

Number of Inverted Registers Reported in Synthesis Report

Synthesisレポートで表示する反転レジスターの最大数を指定します。

Number of Protected Registers Reported in Synthesis Report Synthesisレポートで表示する保護レジスターの最大数を指定します。

Number of Removed Registers Reported in Synthesis Migration Checks

Synthesis Migration Checkレポートに表示する最大行数を指定します。

Number of Swept Nodes Reported in Synthesis Report Synthesisレポートに表示するスイープノードの最大数を指定します。スイープノードとは、コンパイラーで不要であると判断されてデザインから削除されたノードです。
Number of Rows Reported in Synthesis Report

Synthesisレポートに表示する最大行数を指定します。

注: インテル® Arria® 10および インテル® Cyclone® 10 GXデバイスでのみ利用可能です。

Optimization Technique

Analysis & Synthesisにおける全体的な最適化目標を指定します。Balanced 戦略を指定する、もしくは PerformanceAreaRoutabilityPower、または Compile Time で最適化します。コンパイラーは、指定した最適化目標をターゲットにします。

表 44.  Advanced Synthesis Settings (10/13)

オプション

詳細

Perform WYSIWYG Primitive Resynthesis

WYSIWYGプリミティブ再合成を合成時に実行するかを指定します。このオプションでは、Optimization Technique ロジックオプションで指定している設定を使用します。

Power-Up Don't Care

Power-Up Level logic オプション設定のないレジスターをドントケア・ロジック・レベル (X) でパワーアップします。Power-Up Don't Care オプションがオンの場合、コンパイラーでは、レジスターのパワーアップ・レベルの変更が有益になる場合を判断し、デザインの領域を最小限に抑えます。コンパイラーでは、領域に対する利点がすぐにない限り、パワーアップ状態を0で維持します。

Power Optimization During Synthesis

Analysis & Synthesisにおける消費電力に重点を置くコンパイルの設定を制御します。このオプションでは、Analysis & Synthesisにおいてデザインの消費電力をどれほど積極的に最適化するかを決定します。このオプションが Off の場合、コンパイラーは、消費電力の最適化を実行しません。Normal compilation では、デザインのパフォーマンスが低下しないと考えられる場合に消費電力の最適化を実行します。Extra effort では、消費電力の最適化をさらに行うため、デザイン・パフォーマンスが低下する可能性があります。

表 45.  Advanced Synthesis Settings (11/13)

オプション

詳細

Remove Duplicate Registers

他のレジスターと同一のレジスターを削除します。2つのレジスターで同じロジックが生成されている場合、コンパイラーは、重複を削除します。最初のインスタンスで重複の宛先にファンアウトします。また、削除されたレジスターに異なるロジックオプション割り当てが含まれている場合、コンパイラーはそのオプションを無視します。このオプションは、意図的に使用している重複レジスターをコンパイラーが削除しないようにする場合に役立ちます。コンパイラーは、このオプションを個々のレジスターやレジスターを含むデザイン・エンティティー以外に適用している場合に、このオプションを無視します。

Remove Redundant Logic Cells

冗長なLCELLプリミティブまたはWYSIWYGプリミティブを削除します。このオプションをオンにすると、回路は領域と速度で最適化されます。コンパイラーは、このオプションをデザイン・エンティティー以外に適用している場合に、このオプションを無視します。

Report Parameter Settings

Synthesisレポートに Parameter Settings by Entity Instance フォルダーのレポートを含めるかを指定します。

Report PR Initial Values as Errors PRパーティション内の明示的に定義された初期値を警告ではなくエラーとしてフラグ付けすることが可能になります。

Report Source Assignments

Synthesisレポートに Source Assignments フォルダーのレポートを含めるかを指定します。

表 46.  Advanced Synthesis Settings (12/13)

オプション

詳細

Resource Aware Inference for Block RAM

RAM、ROM、およびシフトレジスターの推論でデザインとデバイスのリソースを考慮に入れるかを指定します。

Restructure Multiplexers

合成でマルチプレクサーをデザインに実装する際に必要なロジックエレメントの数を削減します。このオプションは、デザインに断片化しているマルチプレクサーのバスが含まれている場合に有効です。このオプションでは、領域の観点からより効率的にマルチプレクサーを再パックし、少ないロジックエレメント数でデザインにマルチプレクサーを実装できるようにします。
  • On - デザイン領域を最小化します。ただし、デザインのクロック速度 (fMAX) に悪影響をおよぼす可能性があります。
  • Off - マルチプレクサーの再構築を無効にします。ロジックエレメントの使用量は減らず、デザインのクロック速度 (fMAX) には影響しません。
  • Auto - マルチプレクサーの再構築を有効にするかしないかを インテル® Quartus® Prime開発ソフトウェアで決定できるようにします。Auto 設定では、ロジックエレメントの使用量は減少しますが、デザインのクロック速度 (fMAX) に悪影響をおよぼす可能性があります。

SDC Constraint Protection

レジスターのマージにおいて .sdc 制約を検証します。このオプションは、コンパイル時の .sdc 制約の有効性維持に役立ちます。

Safe State Machine

Safe State Machine オプションでは、無効な状態から回復できるステートマシンを実装します。次の設定が利用可能です。

  • Auto - インテル® Stratix® 10またはIntel Agilex® 7のデザインでは、この設定がデフォルトです。コンパイラーは、この設定がステート6以下のステートマシンで有効であると判断すると、Safe State Machine を有効にします。この設定は、予期しない初期のパワーアップ条件に対応する場合に有効です。 インテル® Arria® 10および インテル® Cyclone® 10 GXの場合、Auto 設定は Never と同じです。
  • On - コンパイラーに対し、Safe State Machine を常に使用するように指示します。
  • Never - Safe State Machine は使用しません。

Shift Register Replacement – Allow Asynchronous Clear Signal

コンパイラーにより、altshift_taps IPコアで置換可能な同じ長さのシフトレジスターのグループを検索できるようにします。シフトレジスターではすべて、同じ aclr 信号を使用し、他の二次信号がないようにします。また、少なくともレジスター3つ分離れた等間隔のタップが必要です。このオプションを使用するには、Auto Shift Register Replacement ロジックオプションをオンにしている必要があります。

Size of the Latch Report Synthesisレポートに表示する最大ラッチ数を指定できるようになります。
Size of the PR Initial Conditions Report PR Initial Conditionsレポートに表示する最大レジスター数を指定できるようになります。
表 47.  Advanced Synthesis Settings (13/13)

オプション

詳細

State Machine Processing

ステートマシンの処理にコンパイラーで使用する処理スタイルを指定します。独自の User-Encoded スタイルを使用する、もしくは One-HotMinimal BitsGrayJohnsonSequential、またはAuto (コンパイラーによる選択) エンコードを選択します。

Strict RAM Replacement

このオプションを On にすると、コンパイラーで行うRAMの置換は、ハードウェアがデザインと正確に一致する場合に限られます。

Synchronization Register Chain Length

行内の、コンパイラーで同期チェーンとみなすレジスターの最大数を指定します。同期チェーンは、同じクロックを使用し、間にファンアウトのない一連のレジスターです。最初のレジスターは、ピンまたは別のクロックドメインのロジックによって供給されます。コンパイラーは、このようなレジスターをメタスタビリティー解析で考慮します。コンパイラーは、このようなレジスターの最適化 (リタイミングなど) が行われないようにします。ゲートレベルのリタイミングが有効になっている場合、コンパイラーは、このようなレジスターを削除しません。デフォルト長は2に設定されています。

Synthesis Effort

合成時の、コンパイル速度、パフォーマンス、領域の間のトレードオフを制御します。デフォルトは Auto です。Fast を選択すると、コンパイル速度が早くなりますが、パフォーマンスと領域が犠牲になります。

Synthesis Migration Check for Stratix 10 インテル® Arria® 10から インテル® Stratix® 10へのデザインの移行における合成のチェックを有効にします。

Timing-Driven Synthesis

インテル® Arria® 10および インテル® Cyclone® 10 GXのデザインにおいて、合成でタイミング情報を使用してデザインをさらに最適化できるようにします。Timing-Driven Synthesis ロジックオプションは、次の Optimization Technique オプションに影響します。

  • Optimization Technique Speed - デザインのタイミングがクリティカルな部分でパフォーマンスをターゲットに最適化します。ただし、領域 (ロジックとレジスターの使用率) が増加します。
  • Optimization Technique Balanced - デザインのタイミングがクリティカルな部分でパフォーマンスをターゲットに最適化します。このオプションでは、領域の増加は限定されます。
  • Optimization Technique Area - 領域のみをターゲットにデザインを最適化します。