VLSI設計方法
以下の設計方法は Rohm0.6um プロセス用東大版ライブラリを用いたもので、
チップ試作申込を行ないローム株式会社と秘密保守契約を結ばなければならない。
秘密保守契約を結ぶことにより、<必要ファイル>に示してある [Web] は
VDECホームページから、[CDROM] は VDEC から送られてくる CDROM から得ることが
出来る。
このライブラリは、以下のような内容になっている。
- Design Compiler(Synopsys)用論理合成ライブラリ
- Verilog-XL(Cadence)用シミュレーションライブラリ
- Apollo(Avant!)用配置配線ライブラリ
1.個人の環境設定(平田研用)
.cshrcに以下の内容を書き加える。
#
# CAD setting
#
setenv XKEYSYMDB /usr/local/X11/lib/X11/XKeysymDB
setenv XAPPLRESDIR /usr/local/X11/lib/X11
set path = ( /usr/bin/X11 \
$path )
# Avant!
setenv AVANT /vdec/avant/98.4.0.25
setenv LM_LICENSE_FILE ${AVANT}/etc/licenses/license.dat
set path = ( $AVANT/bin $AVANT/viewer/bin \
$path )
# Synopsys
setenv SYNOPSYS /vdec/synopsys/1999.05
setenv ARCH sparcOS5
setenv SYNOPSYS_KEY_FILE ${SYNOPSYS}/admin/license/key
set path = ( $SYNOPSYS $SYNOPSYS/$ARCH/syn/bin \
$path )
# Cadence
setenv CADENCE /vdec/cadence/97B
setenv CDS_IC443 ${CADENCE}/IC443
setenv CDS_LDV21 ${CADENCE}/LDV21
setenv CDS_LIC_FILE ${CDS_IC443}/share/license/license.dat
set path = ( $CDS_IC443/tools/bin $CDS_IC443/tools/dfII/bin \
$CDS_IC443/tools/dracula/bin \
$CDS_LDV21/tools/bin $CDS_LDV21/tools/dfII/bin \
$path )
2.Verilog-HDLによる機能設計
Verilog-HDL でテキストエディタに回路を記述する。また、シミュレーション用の
モジュールの作成も行なう。
- systolic_hairetu.v(回路のソースファイル)
- systolic_hairetu_test.v(シミュレーション用ファイル)
3.機能シミュレーション
<必要ファイル>
- systolic_hairetu.v(回路のソースファイル)
- systolic_hairetu_test.v(シミュレーション用ファイル)
Verilog-HDLで設計した回路について、Verilog-XLを用いて動作レベルの
シミュレーションを行なう。
% verilog systolic_hairetu_test.v systolic_hairetu.v
4.Synopsysのツールによる論理合成
<必要ファイル>
- rohm_lin.db(Synopsys用合成ライブラリ)[Web]
- Rohm_linIO.db(Synopsys用合成IOライブラリ)[Web]
論理合成ツールには、design_analyzer(GUI)とdc_shell(コマンドライン)の
2つがある。コマンドスクリプトファイル(cmd.scr)を作成することで、
以下のように合成の実行が出来る。
% dc_shell < cmd.scr
5.論理シミュレーション
<必要ファイル>
- rohm06.v(シミュレーション用ライブラリ)[Web]
- RohmIO.v(シミュレーション用IOライブラリ)[Web]
- systolic_hairetu_out.v(合成後のVerilog出力ファイル)
- systolic_hairetu_test.v(シミュレーション用ファイル)
論理合成により生成されたネットリストに対してシミュレーションを行なう。
バス配線を用いている場合は展開される為、適切に処理を行なう。
% verilog -v rohm06.v -v RohmIO.v systolic_hairetu_test.v systolic_hairetu_out.v
6.Avant!のツールによる配置配線
パッド配置用データの作成
<必要ファイル>
- CellInfo.log(Synopsysのツールから作成)
- RohmIOPlace.pl(パッド配置データ作成用スクリプト)[Web]
CellInfo.logファイルから、RZIBUF、RZOBUF、RZIOBUF等のIOインスタンスを
抽出する。-Sオプションはチップの寸法で 0(4.5mm角)、1(8.9角)、2(3.9mm角)の
いずれかを指定する。
% RohmIOPlace.pl -S 2 -C CellInfo.log -PO pin.dat
得られた pin.dat の1カラム目を使用するバッド番号に修正し、pinN.datという
ファイル名で保存する。使用可能なパッド番号は、設計規則のパッド配列の
図面[Web]を参照する。
次にApollo用のパッド制約ファイルを作成する。
% RohmIOPlace.pl -S 2 -PI pinN.dat -TDF pin.tdf -CLF pin.clf -ED pin.edtext
pin.edtextは、LVSで使用する。
Milkywayを用いたネットリストの読み込み
<必要ファイル>
- systolic_hairetu_out.v(合成後のVerilog出力ファイル)
- rohm06apollo.tf(テクノロジーファイル)[Web]
- ROHM06LIN(Apollo配置配線用ライブラリ)[Web]
- ROHM06IOLIN(Apllo配置配線用ライブラリ) [Web]
Milkywayを用いてネットリスト(systolic_hairetu_out.v)の読み込みを行なう。
スクリプトファイル(NetIn.cmd)を用いる場合は以下のようにする。
% Milkyway -replay NetIn.cmd
Apolloを用いた配置配線
<必要ファイル>
Apolloを用いて配置配線を行なう。スクリプトファイル(PR.cmd)を用いる場合は
以下のようにする。
% Apollo -replay PR.cmd
ストリームアウト
Milkywayを用いて、配置配線したデザインをGDSIIストリームファイルに出力する。
スクリプトファイル(StrmOut.cmd)を用いる場合は以下のようにする。
% Milkyway -replay StrmOut.cmd
7.設計回路の検証
DRC
<必要ファイル>
- gbu14n1z.rul [CDROM]
- pin.edtext
設計規則検査を Dracula(Cadence) を用いて行なう。gbu14n1z.rul に必要な
修正を行なう。
% PDRACULA << !
? /get gbu14n1b.drc
? /finish
? !
この操作で jxrun.com が生成されるので、これをログを取りながら実行する。
% jxrun.com >& drc.log
error.erc、error.drcなどにエラーがないか確認する。エラーがある場合は
layoutPlus 等のレイアウトエディタで修正する。
LVS
<必要ファイル>
- gbu18n1b.lvs [CDROM]
- rohm06.cir [Web]
- rohm06io.cir [Web]
- pin.edtext
- systolic_hairetu_out.v(合成後のVerilog出力ファイル)
1.ネットリストの作成(LOGLVSの実行)
% LOGLVS <
? fpin
? cir rohm06.cir
? cir rohm06io.cir
? ver systolic_hairetu_out.v
? link
? con
? x
? !
以上の操作により LVSLOGIN.DAT というファイルが生成される。
2.Dracula の実行
gbu18.n1b.lvs に必要な修正を行なう。
% PDRACULA <
? /get gbu18n1b.lvs
? /finish
? !
この操作で jxrun.com が生成されるので、これをログを取りながら実行する。
% jxrun.com >& lvs.log
lvs.erc、lvs.drcなどにエラーがないか確認する。
戻る