Design Compiler
Design Compiler(デザインコンパイラ)は、米シノプシス社が開発した論理合成ソフトウェアである[1]。あるいはそれを中核とした、ソフトウェア群の総称である。
概要
[編集]ハードウェア記述言語(HDL)や真理値表で書かれた論理回路定義を論理ゲートレベル回路に変換するための論理合成ツールの一つである。使用できるHDLとしてはVerilog HDL 、VHDLなどのほか SystemVerilogやSystemCへも対応している。合成された結果は同社標準の論理回路ライブラリのほか 半導体ベンダーが作成したライブラリを使って、ネットリスト(配線情報)化される。
米シノプシス社が開発・販売しており、2010年現在、集積回路、特にASIC製造に用いる論理合成ツールのデファクトスタンダードとなっている。
Design Compiler を用いた論理合成の流れ
[編集]この節の加筆が望まれています。 |
ハードウェアの設計
[編集]作成したいハードウェアを設計し、それをVerilog HDL 、VHDLなどのハードウェア記述言語や真理値表を用いて論理を記述する。 ただし記述はレジスタ転送レベルでなければならない。
デザインのリード
[編集]論理合成を行うために、デザインをリードする。 デザインをリードするには、readコマンドを実行する。
- Verilogの場合
> read -f verilog filename.v
制約条件の選定
[編集]論理合成を行うにあたり、そのハードウェアの仕様が要求する制約条件を指定する。 制約条件には例えば以下のようなものがある。
配線負荷
[編集]設計するハードウェアの配線負荷のことである。 設計するハードウェアによって、シリコン上に配線される配線長が変わってくる。 Design Compilerでは、モジュール同士(設定により異なる)の配線長をどの位に想定するかを設定することができる。 set_wire_load_modeコマンドでは、どのレベル(モジュール単位、チップ単位他)を負荷計算に考慮するのかを設定できる。 set_wire_loade_modeコマンドでは、ベンダーがおのおの提供している値。 そのライブラリを用いたときの負荷の特性が、ライブラリに設定されている。
入力遅延
[編集]LSIや、ASICなどのハードウェアは、単体で動作させることはない。 つまり、基板に実装し、CPUでASICを制御したりする。 そのため、自分が設計したLSIへの入力信号が、水晶振動子が出しているタイミングと同時に来るとは分からない。 そのため、Design Compilerには次のコマンドが用意されている。
> set_input_delay x[ライブラリの単位時間] -clock CLK[定義したクロック名] -all_inputs()[全ての入力ピンに適用]
同様に、出力に対しての遅延時間も設定することができる。
コンパイル
[編集]適切な制約条件が決定したら、論理記述をコンパイルする。コンパイルには compile
コマンドを用いる。
> compile
コンパイル時には選定した制約条件を指定する。
report_timing
[編集]論理変換したデザイン内の遅延パスを表示させるコマンド。単純にreport_timing
と入力すると、そのデザイン内の最大遅延パスを表示する。以下に、一例を示す。
> report_timing -delay min_rise -from CTS/Z to [all_registers -clock CTS/Z -clock_pins]
CTS/Zから出力されているクロックを用いている全てのレジスタで、そのクロックの立ち上がりでの最小遅延パスを求めている。
> report_timing -delay max_rise -from CTS/Z to [all_registers -clock CTS/Z -clock_pins]
同様に、最大遅延パスを求めている。
この差を用いれば、そのデザイン内の最大クロックスキューが求められる。
関連項目
[編集]外部リンク
[編集]- Design Compiler製品概要 — 日本シノプシス
- ^ “manual for designcompiler”. 東京大学. 2024年11月16日閲覧。