制約条件ファイルリファレンス
Technical Reference TR0103 (v2.0) March 04, 2008
このドキュメントは制約条件ファイルのシンタックスについて説明しています。FPGA 特有の制約条件定義についても説明します。
FPGA デザインはAltium Designer の設計環境で、回路図やVHDL ファイルとしてキャプチャされます。 インプリメンテーションの情報、デバイスピンの割り付けやピンの電気的属性などは、それらのソースファイルには保存されていません。別の制約条件ファイルに収められています。 1つ、またはそれ以上の制約条件ファイルは、プロジェクトコンフィギュレーションを加えることによって、FPGA プロジェクトにマッピングすることができるようになります。
コンフィギュレーションと制約条件の役割についての詳細は、Design Portability, Configurations and Constraints を参照してください。
制約条件の定義
制約条件は通常、制約条件ファイルに、制約条件エディタを使用して定義されます。 新しい制約条件ファイルをプロジェクトに追加するには、プロジェクト名の上で右クリックし、Add New to Project のサブメニューから Constraint File を選択します。 制約条件は、直接タイプして定義することができます。あるいは、制約条件ファイルエディタの Design メニューで利用可能なメニューオプションを使用して定義できます。
複数の制約条件ファイルを使うことができるので、別々の制約条件をタイプによって使い分けることができます。 例えば、デザイン特有の制約条件(クロックに使用するネットなど)が1つ目の制約条件ファイルに設定され、インプリメンテーションのタイプによる制約条件(ピン割り付けなど)が2つ目の制約条件ファイルに設定される場合があげられます。
制約条件ファイルは、コンフィギュレーションを定義することでFPGA デザインにマッピングされます。これは、パネルのプロジェクトファイル名の上で右クリックし、Configuration Manager を選択すると、実行できます。 複数の制約条件ファイルをひとつのコンフィギュレーションで定義することもできます。 選択したプロジェクト/コンフィギュレーションの組み合わせでFPGA デザインがデバイスにインプリメントされると、システムはデザインをそのインプリメンテーションに従ってマッピングできるようになります。 複数のコンフィギュレーションを定義することで、あるデバイスから別のデバイスへと、デザインをリターゲッティングしやすくなります。
制約条件は、ソースとなる回路図ファイルにも定義することができます。 ただし、これらはデザインをロックしてしまうことがあるので、注意してください。例えば、ターゲットデバイスを回路図上で固定してしまうと、他のデバイスにデザインをインプリメントすることができなくなってしまいます。この場合、パラメータの再編集が必要になります。 回路図上で適切に定義されている制約条件には、クロックに使用するためのネットなど、サーキット特有の制約条件が含まれています。
コンフィギュレーションと制約条件についての詳細は、上記の記事を参照してください。
制約条件ファイルの基本
ひとつまたはそれ以上の制約条件が要求する実体に適合させるため、制約条件ファイル内のそれぞれの行は、制約条件グループと呼ばれます。 以下の例は、さまざまに異なる制約条件グループを示しています。
例 1
Record=Constraint | TargetKind=Part | TargetId=XC2S300E-6PQ208C
この制約条件がターゲットにしているのは、部品(または FPGA のコンポーネント)です。この場合、タイプを XC2S300E-6PQ208C のように指定します。 このデバイスはシステムサポートされている必要があることに注意してください。Design » Add/Modify Constraint » Part のメニューアイテムを選択し、Choose Physical Device ダイアログを表示させます。 このダイアログは、システムがサポートしているすべてのデバイスを表示します。 この制約条件グループは、各コンフィギュレーションにつき、一回しか表示されません。
例 2
Record=Constraint | TargetKind=Port | TargetId=VGA_VSYN | FPGA_PINNUM=P134
この制約条件グループがターゲットにしているのは、ポート VGA_VSYN に接続されたネットです。FPGA ピンの P134への接続が指定されています。
例 3
Record=Constraint | TargetKind=Port | TargetId=LCD_E | FPGA_PINNUM=P82 | FPGA_IOSTANDARD=LVTTL33 | FPGA_SLEW=SLOW | FPGA_DRIVE=12mA
この制約条件グループがターゲットにしているのは、ポート LCD_E に接続されたネットです。FPGA ピンの P82 への接続が指定されており、FPGA_IOSTANDARD に LVTTL33、FPGA_SLEW に SLOW の設定、駆動電流 12 mAが指定されています。
例 4
Record=Constraint | TargetKind=Port | TargetId=VGA_R[1..0] | FPGA_PINNUM=P145,P141
この制約条件グループがターゲットにしているのは、both the nets in the bus connected to the ポート VGA_R[1..0] において、バスエレメント 1、ピン P145 に接続されたバスと、バスエレメント 0、ピン P141 に接続されたバスにある2つのネットです。
配置配線からの制約条件のインポート
設計の制約条件の詳細は、ベンダの配置配線ツールによっても割り付けたり、作成したりできます。 例えば、FPGA デザイン中にデバイスピンに対するポートに制約条件がない場合、配置配線ツールがこれを処理します。 制約条件ファイルエディタの Design » Import Pin File メニュー内のオプションを使用して、 配置配線ツールで定義された制約条件をインポートするように設定します。
制約条件の定義
Record
概要 制約条件ファイル内で、エントリの目的を定義します。
値 FileHeader, Constraint
TargetKind
概要 制約条件ファイル内で、このレコードが何に適用されるかを定義します。
値 Part, PCB, Port, Net
TargetId
概要 制約条件レコードがターゲットにしているオブジェクトの名前
値 回路図のトップシート上にあるポートの名前、デバイス部品番号、PCB名
Id
概要 FileHeader の制約条件。制約条件ファイルのタイプとバージョンを指定します。
値 例えば DXP Constraints v1.0 など。
FPGA に特化した制約条件の定義
これらの制約条件は、デバイスベンダのコンポーネントの仕様にあわせて使う必要があります。特に、制約条件がそのデバイスでサポートされていることを確認してください。
FPGA_CLOCK
概要 ターゲットテクノロジのトップレベルのポートの状況。高速のリソースに使用。
値 True、False
TargetKind Port
定義の対象 制約条件のエントリ、ポートパラメータ
ベンダ Actel Altera, Xilinx
FPGA_CLOCK_DUTY_CYCLE
概要 クロックサイクルを設定
値 パーセンテージ
TargetKind Port
定義の対象 制約条件のエントリ、ポートパラメータ
ベンダ Actel, Altera, Xilinx
FPGA_CLOCK_FREQUENCY
概要 目的のクロック周波数を設定します。配置配線ツールはこの周波数に適合させようとします(保証できるわけではありません)。
値 ユニットごとに設定。例えば、50 Mhzなど。
TargetKind Port
定義の対象 制約条件のエントリ、ポートパラメータ
ベンダ Actel, Altera, Lattice, Xilinx
FPGA_CLOCK_PIN
概要 トップレベルのポートの状況。ターゲットデバイス上の予約済みのクロックピンリソースに接続。
値 True、False
TargetKind Port
定義の対象 制約条件のエントリ、ポートパラメータ
ベンダXilinx
FPGA_DEVICE
概要 ターゲットデバイスを指定
値 デバイスの指定。詳細は、Choose Physical Device ダイアログの Device フィールドを参照してください。
TargetKind パート
定義の対象 制約条件のエントリ、シートパラメータ
ベンダAltera, Lattice, Xilinx
FPGA_DRIVE
概要 ターゲットデバイス内のピンについて、電流値を指定します。トップレベルエントリ内のポートにも適用されます。
値 駆動電流の値(12mA、など)
TargetKind ポート
定義の対象 制約条件のエントリ、ポートパラメータ
ベンダAltera, Lattice, Xilinx
FPGA_GLOBAL
概要 保持されるべき信号の状態。高速のリソースで使用。
値 True、False
TargetKind ネット
定義の対象 ネットに添付される Parameter Set オブジェクトのパラメータ
ベンダAltera, Xilinx
FPGA_INHIBIT_BUFFER
概要 ピンには、挿入された I/O バッファはありません。
値 True、False
TargetKind ポート
定義の対象 制約条件のエントリ、ポートパラメータ
ベンダXilinx
FPGA_IOSTANDARD
概要 ターゲットデバイス内のピンについて、ピンの 標準 I/Oを指定します。トップレベルエントリ内のポートにも適用されます。
値 ベンダデバイスのドキュメントを参照してください。
TargetKind ポート
定義の対象 制約条件のエントリ、ポートパラメータ
ベンダAltera, Lattice, Xilinx
FPGA_KEEP
概要 特定の信号を最適化処理から保護します。
値 True、False
TargetKind ネット
定義の対象 ポートパラメータ
ベンダAltera, Xilinx
FPGA_NOCLOCK
概要 クロックバッファの配置に対して、合成ツールの処理結果を保護します。 合成ツールはクロックバッファを推定して、自動的に追加することができます。
値 True、False
TargetKind ポート
定義の対象 制約条件のエントリ、ポートパラメータ
ベンダAltera, Xilinx
FPGA_PCI_CLAMP
概要PCI(Peripheral Component Interconnect)の互換性をピンについて有効にします。
値 True、False
TargetKind ポート
定義の対象 制約条件のエントリ、ポートパラメータ
ベンダ Altera(Cyclone/Stratix)
FPGA_PINNUM
概要 ターゲットデバイス内のピンについて、ピンアウトを指定します。トップレベルエントリ内のポートにも適用されます。
値 デバイスピンの番号、ベンダツールの指定するフォーマットで。
TargetKind ポート
定義の対象 制約条件のエントリ、ポートパラメータ
ベンダActel, Altera, Lattice, Xilinx
FPGA_PULLDOWN
概要 プルダウンレジスタを入出力ポートに追加
値 True、False
TargetKind ポート
定義の対象 制約条件のエントリ、ポートパラメータ
ベンダXilinx
FPGA_PULLUP
概要 プルアップレジスタを入出力ポートに追加
値 True、False
TargetKind ポート
定義の対象 制約条件のエントリ、ポートパラメータ
ベンダAltera, Xilinx
FPGA_RESERVE_PIN
概要 配置配線ツールがここで指定するピンをデザイン中のポートに割り付けないようにする。
値 予約済みのピン番号
TargetKind ピン
定義の対象 制約条件ファイルのエントリ
ベンダ Actel, Altera, Xilinx
FPGA_SLEW
概要 ターゲットデバイス内のピンについて、slew standard を指定します。トップレベルエントリ内のポートにも適用されます。
値 ベンダデバイスのドキュメントを参照してください。
TargetKind ポート
定義の対象 制約条件のエントリ、ポートパラメータ
ベンダActel, Altera, Lattice, Xilinx