設計回路がターゲットデバイスに収まりません。どのような対策・手段がありますか?
カテゴリー:-
ツール:Diamond
デバイス:-
フィッティングする際の基本は、クロックの周波数制約を与えることです。使用するクロックに対して無制約だとツールが自動的に200MHzで制約します。通常はこれより大幅に低いですので、無制約の場合は必要以上に多くのLUT/FFリソースを消費する大きな回路になってしまう可能性があります。Spreadsheet View(SSV)の"Timing Preference"タブで"Frequency"に設定追加、または制約ファイルLPFにテキスト形式で指定します。
Diamondでは設計制約を一括で管理する「ストラテジー」がありますが、デフォルトはタイミング重視の"Strategy1"です。回路規模を小さくする場合は、アクティブなストラテジーをダブルクリックして立ち上がるウィンドウの"Synthesize Design"項で"Synplify Pro"では"Area"オプションを"True"に、"LSE"の場合は"Optimization Goal"を"Area"に変更します。
その後におこなうことは、MAPレポートと"Hierarchy"タブで各サブモジュールごとの論理合成後のリソース使用数から、意図する数からの乖離がないかどうかを確認することです。想定数より相応に大きい場合にはRTLを見直します。
次の方策はMAPレポートで不足しているのが FF か LUT かをチェックします。使用率が大きくアンバランスになっている場合は、次の設定が有効な可能性があります:
[1] アクティブなストラテジをダブルクリックして立ち上がるウィンドウの"MAP Design"を選択し、オプション項目の"Timing Driven Mapping"、或いは / および"Timing Driven Packing"を"False"から"True"に変更
[2] 或いは同"MAP Design"オプション項目の"Pack Logic Block Util"のデフォルト"0"を変更
以上でも効果が十分でない場合で、かつ複数のクロックが用いられている場合は論理合成ツールに対してのクロック周波数制約をそれぞれ与えることが有効かもしれません。Synplify Proの場合はsdc / fdcファイルを用いて指定します。詳細については、弊社担当FAEまでご相談ください。