Article header library fpga intermediate  8

配置制約した下位エンティティを別プロジェクトへ適用させる方法(Standard Edition)

Article header hanako 25x25  61

こんにちは。
マクニカで インテル® FPGA 製品の技術サポートをしている インテル・アルテラ・ハナコ です。

ここでは、Quartus® Prime Standard Edition において、Logic Lock によって配置制約した下位エンティティを別のプロジェクトで適用させる方法をご紹介します。

Notes:
  • Logic Lock で配置制約した下位エンティティを別プロジェクトへ適用させる概要説明は、こちらの記事をご覧ください。
  • Quartus Prime Pro Edition では仕様や作業フローが異なります。こちらの記事 (※ 近日公開予定)をご覧ください。

作業フロー

下図は、Standard Edition における作業をフローチャート化したものです。下位エンティティのパーティションに対してネットリスト・ファイル qxp をエクスポートし、別のプロジェクトで再利用します。

Article header img1  25

作業フロー

では、このフローを Quartus Prime Standard Edition のメニューで具体的にご案内します。

[プロジェクト A]Logic Lock 制約した下位エンティティにパーティションを作成する

Logic Lock が設定されている下位エンティティにパーティションを作成します。
(Logic Lock リージョンの作成方法は、Logic Lock リージョンを作成する をご覧ください。)

  1. パーティションを作成するための Design Partitions Window(Assignments メニュー)を表示します。

Article header img2  16

Design Partitions Window

  1. Project Navigator ウィンドウからパーティションを作成したいエンティティを右クリック > Design Partition > Set as Design Partition を選択します。

Article header img3  21

パーティションを作成

Design Partitions Window に指定したエンティティが登録され、Project Navigator ウィンドウ上にマークが付いたことを確認します。パーティション名は、指定した ”エンティティ名:インスタンス名“ がデフォルトで使用されます。Rename(右クリックのメニュー)で変更も可能です。

Article header img4  18

パーティションに登録

[プロジェクト A]コンパイル実行/コンパイル結果を確認する

ピン・アサインやタイミング制約、必要に応じてオプションなどの制約を行い、コンパイル(Processing メニュー > Start Compilation)を実行します。コンパイル・レポートや Chip Planner、Timing Analyzer によりコンパイル結果の検証を行い、プロジェクト A の仕様に満足したかを確認します。

もし要求を満足していない場合には、オプションやタイミングなどの制約を付加させ再コンパイルしてください。その際、Rapid Recompile やインクリメンタル・コンパイル(Pro Edition はインクリメンタル Optimization)を採用することで、再コンパイルに要する時間を軽減することが可能です。


関連情報:
Quartus Prime にはコンパイル時間を短縮させる こんな方法があった
FPGA デザインの一部だけを再コンパイルする方法
インクリメンタル・コンパイルを使ってみよう

[プロジェクト A]下位エンティティの qxp ファイルを生成する

該当エンティティのパーティション・ファイル qxp を生成させます。
  1. Design Partitions Window 内の該当するエンティティを右クリックで選択 > Export Design Partition を選択します。

Article header img5  12

Export Design Partition

  1. Export Design Partition ダイアログボックスが表示されます。

Article header img6  7

Export Design Partition ダイアログボックス

qxp ファイルに対する設定をします。

表1. Export Design Partition ダイアログボックス
File name 生成する qxp のファイル名を指定します。
(デフォルトは、”partition_name”.qxp)
Partition hierarchy to export 指定したパーティション名が選択されていることを確認します。
Netlist to export qxp ファイルに記録する情報を選択します。
[Post-fit netlist]
配置後のネットリストを生成します。配線情報も付加する場合は、[Export routing]オプションを適用します。
[Post-synthesis netlist]
論理合成後のネットリストを生成します。

Post-fit netlist と Post-synthesis netlist の両方をチェック (On) した場合は、適用先のプロジェクトにおいて、そのパーティションの Netlist Type が選択可能になります。


今回の場合は、下位エンティティの配置情報を別プロジェクトにそのまま移管することが目的のため、Netlist to export は、Post-fit netlist を選択します。Export routing は必要に応じて適用してください。

[OK] ボタンをクリックし、qxp を生成します。

以上でプロジェクト A における作業は完了です。続いて、プロジェクト B へ該当エンティティの qxp を適用させましょう。

[プロジェクト B]プロジェクトに qxp を登録し、Hierarchy Elaboration を実行

  1. 再利用先のプロジェクト B において、下位モジュールのコンパイルする対象はプロジェクト A でエクスポートした qxp ファイルになります。そのため、ユーザーが作成したデザイン・ファイルと同様にプロジェクトへ登録します。

  2. ■ プロジェクトを新規に作成する場合
    New Project Wizard の Add Files において、下位エンティティの HDL ソースの代わりにプロジェクト A で生成した qxp ファイルを選択してください。

    ■ プロジェクトが既存する場合
    Add/Remove Files in Project(Project メニュー)において、下位エンティティの HDL ソースを削除し、プロジェクト A で生成した qxp ファイルを追加してください。


  1. 各エンティティの階層関係のデータベースを作成するため、Hierarchy Elaboration を実行します。
  2. Processing メニュー > Start > Start Hierarchy Elaboration

[プロジェクト B]下位エンティティにパーティションを作成する

  1. Design Partitions Window(Assignments メニュー)を表示します。

  1. Project Navigator ウィンドウから、パーティション・ファイルを適用するエンティティを右クリック > Design Partition > Set as Design Partition を選択します。
  2. Design Partitions Window に指定したエンティティが登録され、Project Navigator ウィンドウ上にパーティション・マークが追加されたことを確認します。

[プロジェクト B]パーティションに qxp ファイルをインポートする

下位エンティティのパーティションに qxp ファイルをインポートします。

  1. Design Partitions Window 内の該当するエンティティを右クリックで選択 > Import Design Partition を選択します。

  1. Import Design Partition ダイアログボックスが表示されます。
  2. File name に、プロジェクト A で生成したパーティション・ファイルを指定し、[OK] ボタンをクリックします。

Article header img7  6

Import Design Partition ダイアログボックス

インポートが成功したメッセージが表示され、Design Partitions Window に以下の内容が確認できます。
  • Imported 項 = Yes
  • Last Imported From項 = 登録したパーティション・ファイルのパス

Article header img8  6

Imported 項/ Last Imported From項 (Design Partitions Window)

また、Design Partitions Window と Logic Lock Regions Window にそれぞれプロジェクト A で設定した内容が登録されたことが確認できます。

Article header img9  5

Design Partitions Window / Logic Lock Regions Window

インポートした該当エンティティは、エクスポート時に指定したネットリスト情報で自動設定されていることが確認できます。

今回の例では、Post-Fit/Placement and Routing で登録されています。プロジェクト B に引き継ぐ際、必要に応じて Fitter Preservation Level を変更することも可能です。また、プロジェクト A でエクスポート時に Post-synthesis netlist を選択していた場合は、Netlist Type も適用することができます。

[プロジェクト B]コンパイル実行/コンパイル結果を確認する

ピン・アサインやタイミング制約、必要に応じてオプションなどの制約を行い、コンパイル(Processing メニュー > Start Compilation)を実行します。コンパイル・レポートや Chip Planner、Timing Analyzer によりコンパイル結果の検証を行い、下位エンティティの配置情報が適用されたことを確認します。

Article header img10  13

プロジェクトA / B の Chip Planner

もしプロジェクト全体として要求を満足していない場合には、オプションやタイミングなどの制約を付加させ再コンパイルしてください。その際、Rapid Recompile やインクリメンタル・コンパイルを採用することで、再コンパイルに要する時間を軽減することが可能です。

おすすめ記事/資料はこちら

おすすめ FAQ はこちら

関連タグ