説明
opt_design のスイープおよび propconst 段階で発生する最適化のトレース方法を教えてください。
ソリューション
手順 1
メッセージ機能をすべてイネーブルにした状態で、合成されたデザインから opt_design を実行します。
- verbose オプションを使用します。
- opt_design を実行する前に次のパラメーターを設定します。
set_param messaging.defaultLimit 100000
手順 2
最適化されたデザインを閉じて、合成されたデザインをもう 1 度開きます。
手順 3
最適化されているセル (またはネットに接続されているセル) を検索します。
手順 4
最適化が実行された理由を確認するため、メッセージを確認します。
次のメッセージが表示されている場合は、次のセルに進み、メッセージを確認します。
INFO: [Opt 31-54] Cell has no loads and is removed:
次のメッセージが表示されている場合は、どの入力でこれが定数になっているかを検索します。
フリップフロップのデータ入力に問題がない場合は、制御セット値が、R <= 1、CE <= 0、または C <= 0/1 などの定数ではないことを確認します。
INFO: [Opt 31-54] Cell has no loads and is removed:
これらの 2 つの手順で、最適化の原因を探ることができるはずです。
制御セットに定数値が使用されているかどうかを検索するのに、Tcl コマンドを使用することもできます。
以下は、Vcc に接続されているフリップフロップ リセット ポートを検索するコマンド例です。
get_cells -filter {REF_NAME =~ FD*} -of_objects [get_pins -filter {REF_PIN_NAME == R} -of_objects [get_nets -hierarchical -filter {NAME =~ *const1*}]]