ローム0.35umプロセス用 東大版 ライブラリ (Synopsys Design Compiler, Verilog-XL, Avant! ApolloXO)
# Copy Right(C) Makoto IKEDA, VDEC University of Tokyo 1999.


目次

  1. 概要
  2. Synopsys合成ライブラリ
  3. ネットリストレベルのシミュレーション
  4. 配置配線へのデータ受渡し

1. 概要

以下にそれぞれのライブラリの使用方法を簡単に述べます。詳細は、関連のページ (NEL 九大版など)などにありますので、そちらも適宜参照下さい。 また、ここでは、あくまでもここのツールを独立して使用することを前提として いますので、 Cadence の CSI(Synopsys Interface) などは、各自で行なって下さい。 うまい方法がありましたら、設計手法のページとしてリンクなどを張りますので、 お知らせ下さい。

利用可能ゲート数ですが、 東大版ライブラリを使用した場合、4.9mm角チップにおいて、 敷き詰めで 210kゲート(2nand換算)と なっています。一方、セル寸法が若干小さい Passport Library の場合、 敷き詰めで 180kゲート(2nand換算)ととされています。 この差はIOセルの大きさなどによるものと想像されます。また、実際には、配置配線効率など から、搭載可能なゲート数は上の数字より小さくなるものと想像されます。 以下の設計フローは東大版ライブラリとして提供している Synopsys Design Compiler, Cadence Verilog-XL, Avant! Apollo, を使用したデジタルLSI設計 フローとなっています。

2. Synopsys 合成ライブラリ

モデルとして、線形遅延モデルとテーブル遅延モデルの2種類が用意されています。 ただし、抽出条件は、標準値(Typical: 25度, 3.3V) のみとなっていますが、その他の 条件が必要な場合には別途作成しますので、御連絡下さい。(ただし必ずしも即応 出来ないことがありますので御了承下さい) 現在の合成ライブラリはMaxFanout数が若干厳しめに設定されています。もっと Fanoutを 取りたい(遅くても良いから面積を小さくしたい、消費電力を小さくしたい)などの場合には 御要望に応じてモデルを作成致します(但し最低48時間掛かります)。 また、配線モデルはあまり正確ではありません。一応の目安として下さい。

以下、簡単なカウンター(cnt.v)の例題をもとにして線形モデルを仮定して 進めます。非線形モデル(テーブルモデル)を利用される場合には lin を tblに置き換えて下さい。 まず、カウンターの記述のシミュレーションを行ないます。

% verilog sim_cnt.v 以下合成スクリプトcnt.scr説明付)を参照して下さい。 合成にあたっては、ライブラリとして、ROHM035_lin.db(gzip'ed), ROHM035IO_lin.db(gzip'ed)を読み込みます。 IOを付加しない内部のみの合成の場合にはIOライブラリは不要。 %dc_shell < cnt.scr > Syn.log 合成後は必ず Syn.logファイルを見てエラーがなどが発生していないことを確認して下さい。

3. ネットリストのシミュレーション

% verilog +define+SYN sim_cnt.v
-v /usr/designs/Library/RO35/EXD/verilog/ROHM35.v
-v /usr/designs/Library/RO35/EXD/verilog/ROHM35IO.v
-v オプションでシミュレーションモデルを指定して下さい。 合成スクリプトcnt.scrではネットリストとして cntSyn.v というファイルを出力するようになっています。 シミュレーション用ファイル中でもcntSyn.v を仮定していますので、この部分を適宜修正するように して下さい。このネットリストレベルのシミュレーションで所望の動作をしていることを 必ず確認して下さい。論理合成が失敗している場合上記の用にログにエラーが出ますが、 ネットリストレベルでのシミュレーションも正常でない場合には、タイミングのエラーなどが 生じている可能性があります。その際には、タイミングの制約を追加して再度合成する必要があります。

4. 配置配線

5. 検証


以上がおおよその流れとなっています。