草庐IT

cadence—virtuosoic617的使用技巧收集区

落枫微蔷 2023-10-29 原文

       这个是我日常使用cadence发现的新的使用内容的收集区,发现书上讲的cadence使用太粗糙了,别人也都没有什么总结,还是自己用到一个记录一个吧,希望自己也能成为大神。
       本贴软件使用均基于candence virtuoso ic617及以上版本,ic51版本 无法使用。

cadence—virtuoso的使用技巧收集区[不定期更新]

目录

1、model设置

在ADE L 内的setup里可以设置仿真器:


       Simulator修改仿真器,可以选择Hspice或者spectre。

model里面添加模型:
       .lib文件是用来给Hspice的,.scs是给spectre的。

1.1、用scs文件保存model批量引用

如图,用scs文件批量添加tt工艺角的model:

引用时,仅需要添加此文件选择,tt,即可(同理可以在此文件中添加ff,fs,mc工艺角):

打码部分是工艺名称,和specetre的model,不方便展示。
按照这个方式调用与添加模型比较简单,方便换环境。

2、有关保存state

       保存后的状态可以在library处快速打开:

       第二个就是保存的状态。打开后快速进入ADE L进行仿真,并且在ADE L菜单的Session的第一个Design Window可以打开原理图。

       另外,可以通过copy to cellview直接把变量参数保存到电路里,这样下次打开ADE不用Load State也能直接获取保存好的状态。如果需要创建一个symbol,可以在创建symbol的原理图使用copy to cellview,然后导出的symbol里的变量就可以直接加载参数了(我觉得这个超好用)。

3、原理图移动视角

4、在曲线上标两点求斜率


效果如下:

5、选定两个标记(Marker)求增量

       如果放下了一堆标记(点、垂直、水平),则可以选择其中的 2 个或更多标记(使用 Ctrl 单击选择多个标记),然后按 Shift-D 获取所有选定标记之间的增量标记。这样做很酷的事情是,您可以将点标记与垂直或水平标记混合,以获取从点到线的增量值。

6、创建增量标记

       这可能会是你创建增量标记的最常用方法。只需选择一个点,垂直或水平标记(M,V,H),然后无论您在何处按D键,您都会获得该类型的第二个标记和之间的增量。由于当您创建点,垂直或水平标记时,它保持选中状态,因此您可以使用序列M,D,D,D…或 V, D, D, D…或 H, D, D, D…只需按几下键即可获取多个标记,这些标记之间具有增量值。
       比如我在得到一个带隙电压时,想看最低值和最高值之间的电压差,就可以先点一下H,拖到最高处,再点一下D,此时两个横线是重合的,需要你手动把它拖出来,拉到你想要的地方。然后就会有Δy显示(有可能显示到图像外面,需要把它拉回屏幕),如下:

7、原理图symbol自动加Label

比如拿到一个有端口名的器件:

选中它,出现高亮边框后,点空格(Space):

自动就把线弄好了。

8、临时删除器件

shift+del:

9、关于加激励源

       方法一是直接使用analoglib里面的vdc也好,idc,gnd等等等等也好,直接在电路图上直观能看到源。

       方法二是在电路图上加上端口名称,在ADE中选择Stimuli:



       如果只点OK,整个页面会消失,所以设置完需要点Apply保存,将激励源一个个设置好。

10、matlab 计算电路传递函数

这个只是一个解方程的方法,用来验证自己手算结果,毕竟matlab企业里要版权费的吧。

%方程1 共源极
syms Vin Rs Vx Cgs Cgd gm Cdb Rd Vout s;
f1=(Vout-Vx)*Cgd*s+gm*Vx+Vout*(1/Rd+Cdb*s);
f2=(Vx-Vin)/Rs+Vx*Cgs*s+(Vx-Vout)*Cgd*s;
ans1=solve(f1,Vx);
result=solve(subs(f2,Vx,ans1),Vout)/Vin;
pretty(collect(result))

输出结果:

拉扎维164页公式:


在这里打个样,其他的也可以算出来的。

11、关闭virtuoso未关闭的工程

有时候想copy一个工程,总是说工程被占用,但是明明已经关掉了,实际上它还在开着。可以通过这样关掉:



最后点OK就行了。这样就免去了重启virtuoso了。

12、添加加粗和斜的wire

选中一根线,点Q:

点W后点F3:

可以选择线型。

13、查看同名线,用相同颜色标出

选中带有Label的线,点9,每点一次就会换一种颜色。
或者,在原理图中选择:

这样把鼠标移过去后就会有一根粉红色的线自动连起来同名Label线。

14、保存管子的DC扫描状态

在一些模型或者cadence版本中,不能使用计算器中的“OS”项,不能使用waveaswave函数作出某些直流工作点的扫描曲线。这时候就需要保存一个scs文件。具体做法如下:

先建立一个这样的文件:

输入想查看的管子名字:

具体管子名字,可以先用print,比如这个I34的前缀,mn的后缀,不同的模型可能没有这两个东西。

这里就需要就改成:

然后在ADE中添加这个文件:


仿真完DC扫描后:

在红圈中的Result Browser中打开后,在左下角可以看到一排文件夹,选择DC,就可以找到那个管子的DC扫描工作点了。


点击想看的参数,就可以看到扫描曲线。右键还能把函数传送到calculator中:

15、导出黑白色无格点的电路图

消除格点:
原理图中点击字母“o”,在Grid Controls的Type中选择none,就可以把格点去掉了:

保存原理图:
在File中选择Export Image


可以选择保存整个原理图区域,也可以选择一部分保存。点Bi-color保存下的图像就只是黑白的(个人觉得这样好看一些,毕竟管子有红有绿,奇奇怪怪的)。点击Swap可以交换背景色和前景色,意思就是把背景弄成白色,而不是默认的黑色。最后记得给图片一个名字,保存位置,还有图片格式,最后保存:

另外,在view中可以去掉管子的一些标注:

最后图像就清爽很多了:

而且还可以把文字也保存下来。(因为字是白的,背景反色后就一样了)

16、查找与替换(网表名称,工艺库,器件等)




还可以选择是否全局替换(hierarchy),前提是你得有top-cellview。

17、CDB转OA

cadence51系列版本的库是CDB格式,61系列的是OpenAccess格式的,需要转换,具体方法如下:




上面这个红圈需要一个cds.lib的文件,里面存放着你需要转换的51库的路径(注意,该路径不可在61内有,虽然61打不开51的库,是灰色的,但不要有)

然后ok即可

18、绘制论文电路图插图

这部分就总结一下自己看到过的可以画电路图插图的网页或者软件:
①、cad(没用过)
②、visio(难用,自动连线让人崩溃,mos管不好看,没有电流源,需要自己找库)
③、Scheme-it(挺好用好看的一个网页版,就是里面都是英文,需要自行翻译。)

有关cadence—virtuosoic617的使用技巧收集区的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  5. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  6. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  7. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  8. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  9. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  10. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

随机推荐