在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1608|回复: 27

[原创] 一套自动跑drc、lvs和pex的csh脚本

[复制链接]
发表于 2024-9-12 15:41:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 着着着火了 于 2024-9-19 15:24 编辑

论坛上有很多相关知识的帖子,但基本都是零零碎碎的,看起来都不难,一到自己动手去写且想按着自己的想法改才发现也不像看起来的那样简单了。

以下脚本为本人短期内经过学习写出来的,多有参考引用,若有错误,欢迎指正。

一、单个cell自动跑drc、lvs
必要准备文件:cds.lib。把这个文件复制或者链接到当前目录下,个人建议用链接的方式(ln -s ..your path.../cds.lib).
1、自动导cdl
    用命令行导cdl需要用si命令,并且还需要配置si.env文档。si.env文档不用自己写,用常规导cdl的方式(CIW->File->Export->CDL)导一遍cdl,会在导出cdl的文件夹下自动生成一个si.env文档,打开复制到脚本即可。
s_cdl_2.png
s_cdl.png

    脚本为auto_cdl_out.csh,用法:在当前文件夹下执行./auto_cdl_out.csh lib_sch cell_name,lib_sch、cell_name为参数。
    这个脚本第一次使用需要把set includeFile=...的配置给填上。

2、自动导gds
    导gds用strmout命令,可通过在terminal输入strmout -h查看详细用法。
    同样的,可先用常规方法(CIW->File->Export->Stream)导一遍,在CIW窗口能找到刚开始导gds的log有如下图的输出,复制到脚本即可。
s_gds.png
    脚本为auto_gds_out.csh,用法:在当前文件夹下执行./auto_gds_out.csh lib_lay cell_name,lib_lay、cell_name为参数。

3、命令行跑drc
    用命令行方式跑drc、lvs等可通过calibre --help查看具体用法。
    老规矩,不懂命令怎么写的先在gui界面跑一遍drc,然后在Transcript栏的log界面拉到最上边,就可以看到当前配置的命令行写法,复制即可。
s_drc.png
    在上面的截图中可以看到命令行的最后一个参数为“/.../_calibre.drc_"的文档,这个文档是calibre自动生成的,里面会配置gds、cdl、topCell、report相关的信息,把这脚本当作配置文件复制到当前目录下,把里面所有的cell_name都改成topCell,INCLUDE后面接的"..../drc rule”换成"drc_rule",文件名改成drc.rule。
    脚本为drc.csh,用法:在当前文件夹下执行./drc.csh cell_name,cell_name为参数。
    这个脚本第一次使用需要把set drc_rule=...的配置给填上。

4、命令行跑lvs
    过程及相关修改类似drc。
    脚本为drc.csh,用法:在当前文件夹下执行./lvs.csh cell_name,cell_name为参数。
    这个脚本第一次使用需要把set lvs_rule=...的配置给填上。

5、自动跑drc
    有了自动导gds和命令行跑drc的脚本就可以自动跑drc了。
    脚本为auto_drc_flow.csh,用法:在当前文件夹下执行./auto_drc_flow.csh lib_lay cell_name,lib_lay、cell_name为参数。

6、自动跑lvs
    有了自动导cdl、gds和命令行跑lvs脚本就可以自动跑lvs了。
    脚本为auto_lvs_flow.csh,用法:在当前文件夹下执行./auto_lvs_flow.csh lib_sch lib_lay cell_name,lib_sch、lib_lay、cell_name为参数。

7、自动跑drc、lvs
    有了上面6个脚本,只需再写一个csh的脚本整合在一起就行了。

    脚本为auto_drc_lvs_flow.csh,用法:在当前文件夹下执行./auto_drc_lvs_flow.csh lib_sch lib_lay cell_name,lib_sch、lib_lay、cell_name为参数。


8、总结
    以下截图为所有需要准备的文件
s_totalFiles.png
    最终只需跑auto_drc_lvs_flow.csh这个脚本即可完成自动drc、lvs的验证,上面的脚本也都可以单独使用。

二、一次跑多个cell的drc、lvs
    有了自动跑单个cell的flow,只需套个循环就可以跑多个cell了。
    准备一个input_cells.txt的文件,里面记录需要跑的cell的信息,格式如下截图所示:
    m_file.png
    在跑单个cell的脚本中设置了把drc和lvs的结果用窗口打开,跑多个cell就没必要打开了,所以添加了两个文件correct和incorrect,这两个文件的结果只与lvs有关,drc在脚本中已屏蔽(即不跑drc,有需要可自行打开),跑完后查看这两个文件就可以知道哪些cell没过lvs了。
    脚本为auto_multipul_drc_lvs_flow.csh,用法:在当前文件夹下执行./auto_multipul_drc_lvs_flow.csh。

    以下截图为所有需要准备的文件
m_totalFiles.png

multipul.zip

4.72 KB, 下载次数: 80 , 下载积分: 资产 -2 信元, 下载支出 2 信元

single.zip

3.72 KB, 下载次数: 82 , 下载积分: 资产 -2 信元, 下载支出 2 信元

 楼主| 发表于 2024-9-14 16:34:17 | 显示全部楼层
本帖最后由 着着着火了 于 2024-9-14 17:49 编辑

补充:单个cell跑xrc提后仿的脚本


    1.准备pex.rule文件
    怎么获取及如何修改参照drc,这里不多赘述,这个文件有个地方特别说明一下:
    输出的网表格式由这句话决定:
    calibreviewEX NETLIST "***.pex.netlist" CALIBREVIEW 1 SOURCENAMES GROUND "GND" SEPARATOR "/" LOCATION
    spectreEX NETLIST "***.pex.netlist"  1 SPECTRE SOURCENAMES GROUND "GND" SEPARATOR "/"
    hspiceEX NETLIST "***.pex.netlist" HSPICE 1 SOURCENAMES GROUND "GND" SEPARATOR "/"
    所以需要提不同后仿格式的就得改一下输出格式,如果不是calibreview格式的话后续的calibreview也不用跑了,所以不在脚本中作修改,有需要可自行定制。

    2.命令行跑pex
    参考1楼第3点用命令行跑drc。
    提供的pex.csh文件中有set rules=...这个变量及下面的判断语句if(! -f rules) then ...endif,是我所用的工艺需要用到这个文件才能跑通lvs,所以大家可根据自己的工艺决定是否留存这个变量和这些语句。
    calibre -xrc的命令如下:




  1. calibre -xrc -pdb -rcc ...
  2. calibre -xrc -fmt -all ...


复制代码
   -phdb:Persistent Hierarchical Database.     used in creating the PDB.
     -pdb:Parasitic Database.    The PDB stores the parasitic models foreach extracted net.
     -fmt:formatter.   
   

                               
登录/注册后可看大图

     脚本为pex.csh,用法:在当前文件夹下执行./pex.csh cell_name,cell_name为参数。
     这个脚本第一次使用需要把set pex_rule=...的配置给填上。set rules=...看上面红字说明。


    3.自动跑calibreview

    如果输出格式不是calibreview,则第2步就已完成后仿参数网表的提取!
    这里需要准备两个文件:calibreview.setup和calibreview_script.ocn。
    calibreview.setup和*.rule文件获取方式一样,先用常规方式走一遍流程,calibre就会自动生成,若是没生成也可以在Calibre View Setup的form那里保存一份。
    calibreview_script.ocn里面写的代码是skill,可理解为在virtuoso的CIW窗口输入skill代码。
    脚本为auto_calibreView.csh,用法:在当前文件夹下执行./auto_calibreView.csh cell_name lib_lay lib_sch,cell_name为topCell,lib_lay为输出library,lib_sch为电路library。

By the way,因为一直没找到用命令行的方式跑calibreview,所以只能通过打开virtuoso再用官方文档给的skill去跑,有知道怎么用命令行跑的麻烦说一声。因为中间需要启动virtuoso,只跑单个cell的话倒还好,若是跑多个cell的话virtuoso多次启动关闭就很浪费时间,所以多个cell的pex打算让virtuoso启动一次,然后跑完所有的calibreview,目前还在构思中,后面弄好了再分享给大家。

single_pex.zip

2.03 KB, 下载次数: 25 , 下载积分: 资产 -2 信元, 下载支出 2 信元

 楼主| 发表于 2024-9-19 13:56:22 | 显示全部楼层
更新:一次跑多个cell的pex及calibre view

    1.pex.rule、pex.csh和calibreview.setup都已在单个cell的补充中有说明,这里不再赘述。

    2.新增了一个脚本:calibreview.config.csh。
    这个脚本是跑calibre view的配置文件,相当于准备工作,是配合auto_multipul_flow.csh用的,单跑意义不大。
    用法:在当前文件夹下执行./calibreview.config.csh cell_name lib_lay lib_sch,cell_name为topCell,lib_lay为输出library,lib_sch为电路library。
    这个脚本第一次使用需要把set cellmap_file=...的配置给填上。



    3.删掉了auto_multipul_drc_lvs_flow.csh,改为了auto_multipul_flow.csh,在脚本开头集成了选项设置,具体如下截图所示:
    m_flag.png
    virtuoso用了-replay模式,测试发现-restore模式一旦遇到error就会中断,后续语句不执行,而且也不会自动退出virtuoso。用-replay模式有个问题就是运行过程中的log不再在terminal输出,只能到virtuoso的log记录文件查看,所以用-log把log文件保存在pex文件夹下,方便提取结果输出在当前文件夹的calview.result文件。
    脚本为auto_multipul_flow.csh,用法:在当前文件夹下执行./auto_multipul_flow.csh。

    4.总结
    以下截图为所有需要准备的文件
    m_totalFiles_2.png
    需要完善配置的文件:auto_cdl_out.csh、calibreview.config.csh、drc.csh、lvs.csh、pex.csh。
    填入所跑的cell的信息的文件:input_cells.txt。
    需要复制或者链接的文件:cds.lib
    最终只需跑这个脚本:auto_multipul_flow.csh。

multipul.zip

6.7 KB, 下载次数: 20 , 下载积分: 资产 -2 信元, 下载支出 2 信元

发表于 2024-9-12 16:03:04 | 显示全部楼层
学习学习
发表于 2024-9-12 16:32:58 | 显示全部楼层
谢谢
发表于 2024-9-12 16:40:15 | 显示全部楼层
学习学习
发表于 2024-9-12 16:44:57 | 显示全部楼层
哇,感谢
发表于 2024-9-12 16:49:25 | 显示全部楼层
先赞后看。顶一个
发表于 2024-9-12 16:52:32 | 显示全部楼层
好帖,顶顶顶
发表于 2024-9-12 17:22:46 | 显示全部楼层
赞,学习一下
发表于 2024-9-13 08:57:15 | 显示全部楼层
赞。每家公司都有跑lvs drc脚本吧。
发表于 2024-9-13 11:16:58 | 显示全部楼层
可以添加个再跑calibre PEX的么  哈哈哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-10-18 11:30 , Processed in 0.038905 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表