Design Compiler

Design Compiler(デザインコンパイラ)は、米シノプシス社が開発した論理合成ソフトウェアである[1]。あるいはそれを中核とした、ソフトウェア群の総称である。

概要

ハードウェア記述言語(HDL)や真理値表で書かれた論理回路定義を論理ゲートレベル回路に変換するための論理合成ツールの一つである。使用できるHDLとしてはVerilog HDLVHDLなどのほか SystemVerilogSystemCへも対応している。合成された結果は同社標準の論理回路ライブラリのほか 半導体ベンダーが作成したライブラリを使って、ネットリスト(配線情報)化される。

シノプシス社が開発・販売しており、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]

同様に、最大遅延パスを求めている。

この差を用いれば、そのデザイン内の最大クロックスキューが求められる。

脚注

  1. ^ manual for designcompiler”. 東京大学. 2024年11月16日閲覧。

関連項目

外部リンク

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!