joker_zoker的个人空间 https://blog.eetop.cn/1811485 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

脚本错误修正

热度 10已有 60 次阅读| 2025-7-18 09:06 |系统分类:芯片设计

1.#auto_cdl_out.csh#
#!/bin/csh
set library=$1
set cell=$2
set includeFile=/************your cdl includeFile path****************/source.added #subckit文件#
if( ! -d cdl ) then
    mkdir cdl
endif
cd cdl
if(! -f cds.lib ) then
    ln -s ../cds.lib    ##此处是连接上一层的cds.lib文件,要确保cds.lib的文件位置正确以及里面各个lib的路径是完整且正确的!
endif
cat <<EOF >! si.env
simLibName = "$library"
simCellName = "$cell"
simViewName = "schematic"
simSimulator = "auCdl"
simNotIncremental = 't
simReNetlistAll = nil
simViewList = '("auCdl" "schematic")
simStopList = '("auCdl")
simNetlistHier = t
hnlNetlistFileName = "$cell.cdl"
resistorModel = ""
shortRES = 2000.0
preserveRES = 't
checkRESVAL = 't
checkRESSIZE = 'nil
preserveCAP = 't
checkCAPVAL = 't
checkCAPAREA = 'nil
preserveDIO = 't
checkDIOAREA = 't
checkDIOPERI = 't
checkCAPPERI = 'nil
simPrintInhConnAttributes = 'nil
checkScale = "meter"
checkLDD = 'nil
pinMAP = 'nil
preserveBangInNetlist = 'nil
shrinkFACTOR = 0.0
globalPowerSig = ""
globalGndSig = ""
displayPININFO = 't
preserveALL = 't
setEQUIV = ""
incFILE = "$includeFile"
auCdlDefNetlistProc = "ansCdlSubcktCall"
EOF
cat /dev/null >! netlist
si -batch -command netlist
2.#auto_gds_out.csh#
#!/bin/csh
set library=$1
set topCell=$2
if( ! -d gds ) then
    mkdir gds
endif
strmout \
    -library $library \
    -strmFile $topCell.gds \
    -topCell $topCell \
    -view layout \
    -logFile ./gds/strmOut.log \
    -outputDir ./gds
#   -runDir ./gds
if($status != 0) then
    echo strmout $cell.gds failed
else
    echo strmout $cell.gds successfully!
endif
3.#auto_drc_flow.csh#
#!/bin/csh
set lib_lay=$1
set topCell=$2
set start=`date`
./auto_gds_out.csh $lib_lay $topCell
./drc.csh $topCell
set end=`date`
echo "drc start at $start"
echo "drc end at $end"
echo "auto drc flow successfully!"
4.#drc.csh#
#!/bin/csh
set topCell=$1
set gds_path=../gds
set drc_rule=/**********your drc rule path***********/calibre.drc
set gds=$gds_path/$topCell.gds
if( ! -d drc ) then
    mkdir drc
endif
sed -e "s@topCell.gds@$gds@g" \
    -e "s@topCell@$topCell@g" \
    -e "s@drc_rule@$drc_rule@g" drc.rule > drc/drc.rule
cd drc
calibre -drc -hier -turbo 10 -turbo_litho -hyper -nowait drc.rule | tee drc.log
if ( -f $topCell.drc.results ) then
    echo "running drc successe!"
    calibre -rve $topCell.drc.results &
else
    echo "! ERROR: there is no $topCell.drc.results, please check your script and gds, and try again!"
endif
5.#drc.rule#
LAYOUT PATH  "topCell.gds"
LAYOUT PRIMARY "topCell"
LAYOUT SYSTEM GDSII
DRC RESULTS DATABASE "topCell.drc.results" ASCII
DRC MAXIMUM RESULTS 1000
DRC MAXIMUM VERTEX 4096
DRC CELL NAME YES CELL SPACE XFORM
DRC SUMMARY REPORT "topCell.drc.summary" REPLACE HIER
VIRTUAL CONNECT COLON NO
VIRTUAL CONNECT REPORT NO
DRC ICSTATION YES
 
INCLUDE "drc_rule"
6.#auro_lvs_flow.csh#
#!/bin/csh
set lib_sch=$1
set lib_lay=$2
set topCell=$3
set start=`date`
./auto_cdl_out.csh $lib_sch $topCell
./auto_gds_out.csh $lib_lay $topCell
./lvs.csh $topCell
set end=`date`
echo "lvs start at $start"
echo "lvs end at $end"
echo "auto lvs flow successfully!"
7.#lvs.csh#
#!/bin/csh
set topCell=$1
set cdl_path=../cdl
set gds_path=../gds
set lvs_rule=/**************your lvs rule path********/calibre.lvs
set cdl=$cdl_path/$topCell.cdl
set gds=$gds_path/$topCell.gds
if(! -d lvs ) then
    mkdir lvs
endif
sed -e "s@topCell.gds@$gds@g" \
    -e "s@topCell.cdl@$cdl@g" \
    -e "s@topCell@$topCell@g" \
    -e "s@lvs_rule@$lvs_rule@g" lvs.rule > lvs/lvs.rule
cd lvs
calibre -lvs -hier -spice ./$topCell.sp -turbo 10 -nowait lvs.rule | tee lvs.log
if( -f $topCell.lvs.report ) then
    grep -q "INCORRECT"&nbsp;$topCell.lvs.report
    if($?) then
 echo "$topCell's lvs is correct!"
 echo $topCell >> ../correct.txt
    calibre -rve -lvs $topCell.svdb
    else
    gvim $topCell.lvs.report
 echo "$topCell's lvs is incorrect!"
 echo $topCell >> ../incorrect.txt
    endif
else
    echo "! ERROR: there is no $topCell.lvs.report, please check your script, cdl and gds, and try again!"
endif
8.#lvs.rule#
LAYOUT PATH  "topCell.gds"
LAYOUT PRIMARY "topCell"
LAYOUT SYSTEM GDSII
SOURCE PATH "topCell.cdl"

SOURCE PRIMARY "topCell"
SOURCE SYSTEM SPICE
MASK SVDB DIRECTORY "topCell.svdb" QUERY SI
LVS REPORT "topCell.lvs.report"
LVS REPORT OPTION NONE
LVS REPORT MAXIMUM 50
LVS RECOGNIZE GATES NONE
 
LVS ABORT ON SOFTCHK NO
LVS ABORT ON SUPPLY ERROR NO
LVS IGNORE PORTS NO
LVS SHOW SEED PROMOTIONS NO
LVS SHOW SEED PROMOTIONS MAXIMUM 50
LVS ISOLATE SHORTS YES CELL PRIMARY && NAME "?"
 
VIRTUAL CONNECT COLON NO
VIRTUAL CONNECT REPORT NO
LVS EXECUTE ERC YES
ERC RESULTS DATABASE "topCell.erc.results"
ERC SUMMARY REPORT "topCell.erc.summary" REPLACE HIER
ERC CELL NAME YES CELL SPACE XFORM
ERC MAXIMUM RESULTS 1000
ERC MAXIMUM VERTEX 4096
DRC ICSTATION YES
 
LVS REDUCTION PRIORITY SERIES
 
INCLUDE "lvs_rule"
9.#cds.lib#
DEFINE lib_lay    ../../    #lay_lib path#
DEFINE lib_sch    ../../    #sch_lib path#
DEFINE XXXXXXX    XXXXXX


点赞

全部作者的其他最新日志

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 2

    周排名
  • 6

    月排名
  • 0

    总排名
  • 11

    关注
  • 0

    粉丝
  • 1

    好友
  • 1

    获赞
  • 0

    评论
  • 18

    访问数
关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-7-19 00:58 , Processed in 0.022065 second(s), 14 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部