LogicLock ブロック・ベース・デザイン

LogicLock ブロック・ベース・デザインは、アルテラQuartus® II ソフトウェアのユーザだけが利用できる画期的な設計手法です。この手法においてデザインは、モジュール・レベルで各モジュールを個別に設計・実装した後に、最上位レベルのプロジェクトにインポートするというように、階層的に構築されます。デザイン・モジュールを最適化するのは一度だけであり、最適化を繰り返す必要がないため、デザイン工程の生産性がアップします。実装やシステム・レベルの検証の段階では、各ロジック・モジュールの性能は一貫して維持されます。図 1 は、LogicLock 手法を導入したデザイン・フローと、LogicLock 手法を用いない従来的なデザイン・フローの比較を示しています。
図 1.LogicLock の有無によるデザイン・フローの違い

LogicLock 設計手法では、設計者は LogicLock 制約を作成して、より大きなデザインに統合していきます。LogicLock 制約には、設計者側で独自に作成したロジック・ブロックと、アルテラや AMPPSM パートナが提供している検証済みの IP (Intellectual Property) のどちらでも使用できます。LogicLockデザイン・フローでは、現在のプロジェクトでモジュールを実装する時や他のプロジェクトにエクスポートする時に、その配置情報を維持したまま使い回すことが可能になります。
デザイン上の利点
LogicLock 設計手法には、次の利点があります。
- モジュール・レベルで性能が維持されるため、デザイン・サイクルが短縮される
- 強化された階層的なデザイン・フロー
- デザインの再利用フローが最適化される
- 効率の良いチーム・デザイン手法
モジュール・レベルでの性能の維持によるデザイン・サイクルの短縮
LogicLock 制約を使用すれば、ロジック・モジュールの最適化は一度行うだけで十分になります。制約が目標性能に到達した後に、LogicLock 領域をバックアノテーションすることでその性能が保持されます。
たとえば、設計者はデザイン内で PCI メガファンクションをインスタンスし、配置や性能を固定することができます。同じデザイン内の他のエリアにロジック・モジュールを追加したり、他のエリアのロジックを変更しても、PCI コアの性能が影響されることはありません。このようにLogicLock フローでは、プロジェクト完了までに要する設計工程を短縮することができます。
強化された階層的なデザイン・フロー
LogicLock フローでは、設計者はモジュールごとに個別にプロパティを管理し、階層化した領域の実装を通じて、必要な性能をすみやかに実現することができます。設計者または設計グループごとに、それぞれ別のモジュールのデザインを行い、デザイン・モジュールの配置と配線を済ませ、さらに最適化と検証まで、他の設計者や設計グループから独立して進めることが可能です。統合段階ではシステム全体を検証し、モジュール・レベルでの検証は不要です。各モジュールの配置と性能は、この段階では一貫して維持されます。
デザインの再利用の最適化
LogicLock 制約はインポート可能です。LogicLock 設計方式では、制約を適用した 1つのデザイン・モジュールを複数のデザインにインポートして、容易に再利用することができます。図 2 は、開発済みの 1 つのデザイン・モジュールを、他の複数のプロジェクトで利用している様子を示しています。インポートしたモジュールの性能は、図中のどちらのプロジェクトでも共通です。
図 2.LogicLock デザインの再利用

LogicLock 領域
設計者はモジュールの配置を、LogicLock 領域を使って制御できます。LogicLock 領域は、いずれかのモジュールに変更を加えても、同じデザイン内の他のモジュールが影響を受けることがない階層構造のデザインを実現する枠組みを提供します。図 3 は、Quartus II のフロアプラン・エディタに表示された LogicLock 領域を示しています。
| 表.1 LogicLock 領域のプロパティ | ||
| プロパティ | オプション (1) | 動作 |
| State | Floating Locked | Floating 領域は、Quartus II ソフトウェアがデバイス上での当該領域の位置を決定します。
Locked 領域は、ユーザ側で指定した場所が、フロアプラン内に太字で囲まれた領域として表示されます。この場合、領域は固定サイズです。 |
| Size | Auto Fixed |
Auto 領域は、Quartus II が領域の内容に基づいてサイズを決定します。
Fixed 領域は、ユーザ側で指定したサイズおよび形状が使用されます。 |
| Reserved | Off On |
Reserved プロパティは、領域内のリソースを、その領域に割り当てられていないエンティティに使用できるかどうかを指定します。この値が on の場合、領域内に配置できるのは、その領域に割り当てられている項目だけです。 |
| Enforcement | Hard Soft |
Soft 領域は、タイミング制約を重視し、デザイン全体の性能が向上するようであれば、一部のエンティティを領域外に置くことができます。 Hard 領域は、いっさいの内容を領域外には配置できません。 |
| Origin | フロアプラン内での位置 | フロアプラン内での LogicLock 領域の左上コーナーの位置を指定します。 |
注:
1. デフォルトのアサインメントは、floating、auto、off、hard です。
図 3 は、Quartus II ソフトウェアで表示されるタイミング・クロージャ・フロアプラン・エディタを示しています。このフロアプラン・エディタ内には、位置とサイズが固定されていない複数の領域と、それぞれの領域間の接続が表示されています。設計者は、フロアプラン・エディタや LogicLock 領域ウィンドウを使って、階層コンポーネントをドラッグ&ドロップで LogicLock 領域に容易に追加できます。
図.3 タイミング・クロージャ・フロアプラン・エディタ

領域の階層化
複数の LogicLock 領域の間には、次の図に示すように親と子の関係を持つことができます。親領域を移動すると、関連付けられている子領域も自動的に移動します。子領域は親領域内の浮動領域として定義できるほか、親領域の起点を基準とした固定配置でも定義できます。
これらの領域を活用すれば、モジュールの性能を効果的にアップできます。すなわち、LogicLock 領域内にデザインを配置し、そのデザインの階層内で性能に与える影響が大きい部分を、より小さな子領域に制約します。
図 4.親領域と子領域
ブロックベース・デザイン用に設計された Stratix II & Stratix デバイス
アルテラの Stratix® II & Stratix デバイスには、LogicLock ブロックベース・デザインをサポートし、拡張する技術が実装されています。この技術では、同じ配線とクロック・リソースを、高速かつ一定の性能を可能にするデバイス内のどこに配置されるかにかかわらず、定義済みのデザイン・ブロックとして可能にします。一定の性能が得られるため、LogicLock インクリメンタル・デザインで作成したデータ処理と I/O ファンクションの IP(Intellectual Property)ライブラリを、アルテラのStratix II & Stratix デバイスで必要に応じて、容易に再利用することが可能になります。
サードパーティ製の合成ツールのサポート
LogicLock デザイン・フローでは、以下に示すサードパーティ製の合成ツールを使用できます。
- Synplicity社 Synplify ツール
- Mentor Graphics® 社 Precision および LeonardoSpectrum ツール
- Synopsys社 FPGA Compiler II ツール
LogicLock がサポートするデバイス
Quartus II ソフトウェアのバージョン 4.0以降 でサポートされる LogicLock ブロック・ベース・デザインは、以下に示すデバイス・ファミリに対応しています。
- Cyclone II
- Cyclone
- Stratix II
- Stratix
- MAX® II
- Stratix GX
- APEX II
- APEX 20K
- APEX 20KE
- APEX 20KC
- Excalibur
