DesignCompiler簡易マニュアル

  1. 必ずお読み下さい!!
  2. 設定ファイル
  3. 合成ツールの起動
  4. 回路のコンパイルと合成
  5. 回路の最適化
  6. I/O PADの挿入
  7. スキャン設計およびテスト生成
  8. EDIFファイル出力
  9. レポートファイル
  10. 例:階層設計時の合成
  11. 付録

総目次へ

必ずお読み下さい

本マニュアルでは,Synopsys社のVHDL CompilerおよびDesign Compilerを対象 としています.VHDLによる回路記述および機能シミュレーションが完了したら, VHDL Compilerにより回路合成を行います.その後,Design Compilerを用いて ターゲットのASICライブラリに基づく最適化済みゲートレベル記述を作成しま す.各合成ツールの詳細に関しては,VHDL COMPILERリファレンスマニュアル や,DESIGN COMPILER REFERENCE MANUAL等を参照して下さい.なお,ライブラ リパス等の設定環境については,九州大学安浦研究室での使用を前提としてい ます.また,キー入力やメニューバーの選択は,ボールド体で示します.

設定ファイル

回路合成を行う前に,Synopsys環境設定ファイルを設定します.
設定ファイル .synopsys_dc.setup をホームディレクトリか作業ディレクトリ にコピーして下さい.このファイル内で,ターゲットとなるASICライブラリを 指定します.

合成ツールの起動

design_analyserを起動します.

%> design_analyser &

と入力して下さい.
design_analyserが起動されたら,メニューバーの

Setup -> Defaults...

を選択します.ここで,ライブラリの設定が以下のようになっていることを確 認します.



もし,異なっていれば設定ファイル.synopsys_dc.setupの中で,
/* vhdl class */ 
search_path = {"*" /***/***/***};
link_library = {your_library.db}; 
target_library = {your_library.db};
symbol_library = {your_library.sdb};
が設定されているか確認して下さい.search_path ではライブラリがある場所 を指定し,your_library には,使用するライブ ラリ名を入れて下さい.

回路のコンパイルと合成

VHDLソースのコンパイルを行います.VHDLソースの読み込みと同時にコンパイ ルが行われます.VHDLソースは合成可能な記述でなければなりません.合成可 能な記述の仕様は,VHDL COMPILERリファレンスマニュアルを参照して下さい. なお,パッケージファイルを利用している場合は,必ずパッケージファイルを 最初に読み込んで下さい.また,階層設計を行っている場合には,下位階層か らコンパイルしていきます.VHDLソースの読み込み(コンパイル)は,メニュー バーから

File -> Read...

を選択します.以下のような画面が現れますので,読み込むVHDLソースを選択 して下さい.File Formatは自動的にVHDLに変更されます.真中クリックによ り,連続して複数VHDLファイルを読み込むことも可能です.



ここで,以下のWarningメッセージは無視して問題ありません.コンパイルで 文法エラーや合成不可能な記述が存在した場合には最後に 0 が表示さ れますので,エラーメッセージに従ってVHDLソースを修正して下さい.コンパ イルが終了すると,Design Analayserの画面にコンパイルした回路のブロック 図が表示されます.このブロック図をダブルクリックして下さい.すると, I/Oパッドを含めたブロック図の詳細が表示されますので,再度ダブルクリッ クします.VHDLソースの合成結果が表示されます.ここで,定義しているはず の入出力ピンが未使用になっていないかなど,できる限り自分の目でチェック して下さい.


回路の最適化

もし,VHDLの合成結果が下位階層を含んでいる場合には,回路の平坦化を行わ なければなりません.回路の平坦化は,

Setup -> Command Window...

を選択します.以下のような画面が表示されますので,コマンド・ラインから

ungroup -all

と入力し,改行して下さい.



次に,回路の最適化を行います.メニューバーから,

Tools -> Design Optimaization...

を選択します.Optimizationウィンドウが表示されますので,OKをクリックし て下さい.以下のWarningメッセージは無視して問題ありません.なお,最適 化に関するオプション等の詳細は,DESIGN COMPILER REFERENCE MANUALを参照 して下さい.




I/O PADの挿入

NELから提供して頂いている I/O PAD に対し ても,自動でPADの挿入ができるようにしました.

まず,PAD を挿入したいピン名を選択します.例えば,全入力ピンにPAD を挿 入したい時は,

Edit -> Select... -> Input Ports

を選択します.OK を押すと,選択されたピンが破線で表示されることを確認 して下さい.

Attributes -> Optimization Directives -> Input Port

を選択します.Port is PadをONにして Apply すると,すべての入力ポートの 属性が,PAD に変更されます. 次に,PAD の挿入を行ないます.

Edit -> Insert Pads...

を選択します.コマンドウィンドウが表示されますが,デフォルトのままでOK をクリックして下さい.PADが挿入されます.出力ポートに対しても同様の操 作をすると,全入出力に対してPAD が挿入されます.VHDL や EDIF にセーブ した時に,セーブしたファイル中に XCTBB04, XCTIB00, XCTOB04, XCTTB04 のどれかがあることを確認して下さい.


スキャン設計およびテスト生成

一般に全てのLSIに対して良品か不良品かを確認する「テスト」を行います. 様々なテスト容易化設計がありますが,主に順序回路を組合わせ回路と見なす ことができるスキャン設計と呼ばれるテスト容易化設計がしばしば使われてい ます.ここでは,スキャン設計およびテスト生成について説明します.

まず,以下の手順によって,スキャンチェーンを作成します.
  1. スキャン設計およびテスト生成を適用する回路を読み込む.
  2. メニューバーで"Tools" -> "Test Synthesis"と選択する
  3. "Insert Internal Scan Circuitry..."を選択する.
  4. スキャンチェーンの長さ,スキャンチェーンの数を決定した上で"OK"を選 択する.
次に,以下の手順によって,テスト生成をします.
  1. スキャン設計およびテスト生成を適用する回路を読み込む(スキャンチェー ンの作成に引き続き,テスト生成を行う場合はこの作業は不要).
  2. メニューの"Tools" -> "Test Synthesis"を選択する.
  3. Test Manager... を選択する.
  4. Create Test Patterns... を選択する.
以上により,スキャンチェーンの作成およびテスト生成は行われました.満足 な故障検出率およびテストパターン数を得ることができない場合はスキャンチェー ンの数,スキャンチェーンの最大セル数,圧縮操作の度合,後方操作 (Backtrack)の度合,および,CPUの負荷などで工夫をしてください.

EDIFファイル出力

合成/最適化の結果より,EDIF形式のゲートレベル回路記述を出力します.メ ニューバーの,

File -> Save As...

を選択します.File FormatをEDIFに設定し,出力ファイル名の拡張子 を.edifに変更してからOKをクリックします.これでVHDL記述の合成は 完了です.

レポートファイル

回路の合成/最適化結果を解析するには,レポートファイルを作成します.メ ニューバーの

Analysis -> Report...

を選択してから,レポートしたい項目を選びます.Applyをクリックするとレポートファイルが作成されます.

例:階層設計時の合成

階層設計では,下位層コンポーネントのレイアウトを完了させ,これをライブ ラリとして上位層で利用します.すでに作成された下位層のライブラリを利用 する上位層では,下位層を空のブラックボックス・モジュールとして合成しま す.この上位層の合成手順は以下のようになります.
  1. 下位層から上位層まで順に読み込みを行い,回路全体をコンパイルする (これは通常と同じ).
  2. 最上位回路のブロック図をダブルクリックし,下位層とのI/Oインタフェー スが正確にとれているか確認する(浮いたI/Oパッドは無いか?).
  3. 左メニューボタンの上向き矢印↑をクリックし,全ての階層のブロック図 が現れるまで階層を登る.
  4. ライブラリとして作成した下位層のブロック図を選択し,メニューバーの

    Edit -> Delete...

    で削除する.
  5. 最上位のブロック図から回路図が現れるまで階層を下り,回路の平坦化を 行う.
  6. 最適化およびEDIFファイルの保存を行う.
以上により,ライブラリとして作成した下位層は,その中身が空のI/Oインタ フェースのみを有するブラックボックスとしてEDIFに反映されます.このEDIF をAvant!に読み込めば,EDIFでは中身が空になっていた下位層は予め作成して おいた下位層のライブラリと対応づけられます.

付録



総目次へ