合成制約の書き方

[] [] []


Verilog-HDLは歴史的にシミュレーション用言語として生まれたため、論理合成に必要な合成制約はHDLの言語仕様に含まれていない。それでもFPGAが小規模だった時代はツールのオプション設定をする程度で支障はなかったが、FPGAに大規模な回路を実装するようになり、きめ細かい合成制約が必要になってきたので、RTL記述のコメント文の中に合成制約(directive,attribute,pragmaなどと呼ばれる)を書く方法が使われるようになった。(補足 - directiveとattribute)

<> /* synthesis <directive>=<value> */;           ←通常のコメント文として書く方法

の書き方はAltera社のQuartusIIやサードパーティの論理合成ツールSynplifyで使えるが、Xilinx社のXST,Vivadoでは使えない。

Verilog-2001では通常のコメント文と区別できるように合成制約用のコメント文が定義され、これはどのツールでも使えるのでこちらの方がよい。

(* <directive>=<value> *) <>;                Verilog-2001の書き方

どちらの場合も文とコメントの間に区切り「;」が入らないように注意。

書き方は言語仕様で定義されたがdirective自体は依然として論理合成ツールによって異なるので、移植する際に修正する必要がある。

この章では合成制約を使う具体例を説明する。(ただしツールのバージョンに依存するかもしれないので参考レベルにして下さい)


[] [] []