Cadence 问题记录

文章目录

  • Cadence virtuoso 617
    • 2021 SAR ADC
    • 2023 CTSDM
    • 2023 单转差OPAMP(TSMC185V)
    • TIPS

Cadence virtuoso 617

2021 SAR ADC

1.virtuoso无法启动Cadence61 所对应的virtuoso程序
可能是因为管理员安装的时候并不是用的virtuoso这个名字,需要你在/usr/local/bin/目录下查看你的cadence程序是什么名字,比如我其实管理员安装的cadence61的程序是ic617

2.WARNING Ruler layer ‘hilite drawing4’ is missing.启动ic617后发现没法显示,都是一坨黑,还报这个warning,但是发现管理员装了好几个ic617一个大写的IC617一个小写的ic617(真的服了),遂尝试用大写的IC617启动,果不其然,有东西了,看来还是版本问题。

3.在设计和学习ADC时,应该都会用到清华李福乐老师的ppt和相关的例子,我为了能打开它那个例子可谓是费劲心思,绞尽脑汁。
-困难1:
老师给的压缩包里只有tsmc18scx(TSMC 0.18um 数字标准单元library),里面只包含一些数电中的门,那mos管对应的库去哪找呢(因为直接启动设计library会报找不到tsmc18库中的nmos pmos这样的错)。所以得出结论我得找个tsmc18的库。我去网上找啊,找啊都没找到,终于问学长,学长说服务器上有,可把我高兴坏了,赶紧找到拷过来。
-困难2:
tsmc18是拷过来了,我以为简单的解压一下那几个文件就可以了,于是添加到cadence的library path里面,哦豁,果然没那么简单。我去网上找,又看了看安装说明文件(README.INSTALL),知道得用pdkInstall.pl进行安装,好吧那就运行吧,但运行完它报错(bad interpreter…),我一看完蛋我不会要按照它说的第二种方法手动安装吧。然后又去问学长,“我们的服务器上会不会没装perl啊”,学长直接perl -v,好家伙,装了perl的,然后学长说可能是这个程序没有找到perl在哪,我心想有道理啊,于是我就开始翻找perl(资深windows用户哈,对linux的命令极其不熟悉,不要嘲笑),然后在我找到perl的同时,学长说我登上服务器给你改了一下pdkInstall.pl第一行里perl的路径(用which perl可以找到perl的路径),白翻半天了,不过这个问题算是解决了。然后便进入pl文件的运行安装过程 运行pl程序报错
-困难3:
安装的过程中本该一路顺利(安装选项我随便选的,因为我只是想打开李福乐老师的例子看看而已,哪个工艺库并不重要),结果给我卡在选安装路径这里。不管我输什么路径,它都让我重新输,并且打个括号说(Not Include Path Name)不明白啊,咋办嘞,就卡在这里了。然后后来无意间我啥也没输然后回车,居然进入了下一步,我再选择y(表示确认),它报错说无法创建,突然醒悟,**它的意思是一个文件夹的名字而不是路径!**看来还是英语理解的不够,Directory Name 和Path Name是两个东西哈。于是我就随便输了个名字pdk,然后便顺利的完成安装了。

Cadence 问题记录_第1张图片
-困难4:
你以为安装完导入进去就结束了吗,我也曾经以为。我发现我在服务器找的这个tsmc18的库是oa格式的就是说是cadence61之后支持的格式,而老师给的设计库 SAR_ADC_8BIT_V1 以及数字标准单元库tsmc18scx都是cadence51的格式,你说cadence也是离谱,更新就更新嘛,为什么对低版本不兼容??cadence只提供了cdb转oa的转换工具哈,于是便需要把这两个库转成oa格式,具体操作可以参照这个博客cadence51的cdb格式转cadence61的oa格式的方法
好了历经这4大磨难我终于能打开李福乐老师的那个例子了。
另外知乎上有一篇导入李福乐老师的SAR ADC并进行仿真的教程,b站上也有对应的链接,但是它给的库并不全,同时那个库也比较老了好像是0.5um的tsmc的库,本文用到的工艺库和设计库都是老师给的,不知道允不允许发到网上,所以不敢发,包含这些文件:
SAR_ADC_8BIT_V1.tar.gz:一个基本的8bit SAR ADC电路library;
tsmc18scx.tar.gz:TSMC 0.18um 数字标准单元library;
t018cmsp007k3_1_3a:内含tsmc0.18um的工艺库。

4.利用UMC28nm的库进行3bitSAR ADC的设计
-困难1:
由于ADC其实是一种数模混合电路,里面需要用到一部分的数字标准单元也就是Standard Cell Library,你有两个方法来获取它
一个是你自己画,把那些与门与非门或门都画出来,但是工程量较大,适合对相关工艺有一定积累的公司,一般来说要把数字的门用到模拟的设计里面更可靠的方法是这个,但是对于学生来说工作量太大。
一个是一些公司会做对应工艺下的Standard Cell Library用于数字设计,ARM和Synopsys都会有做,有一些下载途径但具体怎么下载我并不知道。
我采用的是第二种方法,问了好些人总算是要到了ARM公司的在UMC28nm下的Standard Cell Library。那么问题来了我要如何把它给的这些文件导入到cadence virtuoso里面呢?我在网上找啊找,终于找到了一篇说得还算详细的吧,但也没有很详细。所以后面又请教了一些工程师才完成这个过程。(得到一个血一样的教训,还是应该等研究生上完课再开始做设计啊!!工程师说这些研究生会有课程讲,奈何我是个本科生呢)
下面是导入数字标准单元库到cadence virtuoso617的总结。
首先,先在library manager处建立一个库,并且和.tf文件完成绑定。
建议先导入symbol!!
然后,到cadence的主窗口就是启动页面
Cadence 问题记录_第2张图片
点击file-import
导入schematic:
在import中选择Spice,然后在ARM给你的那个Standard Cell Library的文件夹里面找到.cdl文件,进行如下配置:
首先是input
如果所有cell都要导入 Import Sub-circuits list可以不填
(reference library list我也不知道写啥,我随便写了一个我这个Standard Cell Library对应的工艺文件UMC28hpc的工艺库)
Cadence 问题记录_第3张图片
然后是output:
Cadence 问题记录_第4张图片
我只导入过ARM的Standard Cell Library所以对于其他库,如果设置可能有所变化,可以自己试试,我刚开始以为cdl文件要用cdl的Netlist Language,但是后来发现要用Spectre才行。
导入layout:
在import中选择Stream,就填前两项应该就行,Stream File是.gds文件或者.gds2,可以找找。
Cadence 问题记录_第5张图片
导入symbol:
对于symbol文件一般会有,直接传到服务器上即可,因为本来应该使用.v文件,import的时候选择verilog去导入的,但是那样出来所有的门都是长方形就不太好看,一般ARM或者Synopsys公司给的包里会包含symbol的库。直接用sftp传到服务器上就好了。

5.安装smic55nmpdk文件,报错Error: Cannot find virtuoso executable. Please reset PATH or specify it by argument “-b
可能因为该目录下没有配置相应的cadence virtuoso的环境,先输入
ic617-env之后再安装pdk即可。

6.启动cadence virtuoso,报错 WARNING file /home/hdx20/CDS.log fflush failed. No space left on device。
清理一下磁盘中的东西,应该是分配给用户的空间被占满了,导致无法启动。

7.修改了原理图的pin,如何更新symbol中的管脚,而不重新排。
从schematic再次create,系统会检测到已有symbol,直接选择modify即可。

8.仿真时报erro:“xxxxxx”(之后再具体截图原因)
主要遇到过以下几种:
a)没有setup 合适的library,有的时候工具不会自动给你检测并添加,也就需要自己找到.scs文件导入一下。(操作:set up-model libraries)
b)找不到spectre,因为我导入的是学长的设计,所以仿真时会报错这个,可以把对应view的spectre文件删了,不影响原理图仿真。

2023 CTSDM

simic40ll工艺
1、lvs时报错:Problems encountered when checking source netlisttSource netlist references but does not define 2subcktst n11ll_ckt p111l_ckt
Cadence 问题记录_第6张图片
需要在calibre-setup-netlist export,把.sp文件include进来,因为你从原理图通过calibre生成的网表文件,你的n11ll_ckt这些mos的名字,和你的lvs规则文件里用的mos的名字不是一个,因为simic的lvs规则文件对网表里mos的文件有一个简化映射。
Cadence 问题记录_第7张图片
2、pex报错,Compilation Error :Error while compiling rules file。(特别神经的是它的pex rules文件居然是.lvs后缀的,simic一般会在里面留一个typical_pex的一个文档说明各个文件是代表什么的,我找了好半天)
Cadence 问题记录_第8张图片
仔细查看报错,可以发现这个是rule文件include的是绝对路径的文件,由于路径不符合目前的路径,所以你需要找到.lvs的文件报错的那行并且修改为你的服务器对应pdk的绝对路径。
3、SMIC40nm,跑MonteCarlo时,只需要添加相应的mc corner(mos_mc res_mc mom_mc),保证schematic中的mos下的mismod置1了(q一下mos在properties里面就可以看到,默认是打开的)。

2023 单转差OPAMP(TSMC185V)

1.IBIAS<0> on net;IBIAS<0> VBIAS4 on net;VBIA54
在这里插入图片描述
两个名字不同的net接在一起,lvs就会报这个错。在漏端接一个小电阻即可解决。
Cadence 问题记录_第9张图片
2.电阻阻值discrepancy
Cadence 问题记录_第10张图片
我这里本来用的TSMC185V,但是做lvs的时候用的TSMC18的lvs文件,而185V和18并不完全相同和兼容,由此出现了此问题。改用TSMC185V的lvs文件便解决了。
3.后仿看内部节点电压
在原理图里打pin,layout也相应打pin,就可以看了(用于看的节点电压不太多的情况);
如果要看的比较多,就要从result browser里去找才行,反正直接用plot是plot不出来的。

2.后仿真利用spectreText,仿真报错:Attempt to override value of inherited parameter `r’ when instantiating a subcircuit.
ADEL中不要用r,做为变量
养成一个不要用太简单的名词做变量的习惯

TIPS

1.服务器和本地电脑之间无法直接复制,在terminal中输入vncconfig&,在那个小窗口不被关掉期间,都可以复制。

未完待续…

你可能感兴趣的:(cadence,virtuoso,硬件,经验分享)