草庐IT

【工具小技巧】Cadence Virtuoso Calculator Function Panel计算器函数功能介绍(持续更新……)

喝喝喝水 2023-06-23 原文

在使用cadence virtuoso仿真过程中我们经常会关注一些电路指标,比如:运放的增益、带宽、相位裕度;bandgap的温漂系数、振荡器的振荡频率等。想要直观的知道这些指标的具体值,需要用到计算器中的函数,如下为计算器的图标和界面。

 

 详细学习每个函数的具体含义和使用方法,可以参考官方的介绍,鼠标右键点击函数,选择help即可查看。包括参数设置的含义以及几个实例。

 

函数功能十分丰富且强大,后续使用过程中我会在本帖持续分享常用函数的常用使用经验。

已更新函数:value、cross、clip、average、freq、ymax/ymin、Dutycycle、risetime/falltime、delay、……

  • value

取值功能(纵坐标值)。signal为想要取值的数据,比如运放在1-1GHz的AC增益特性,选择1Hz处的值(interpolate at 1,横坐标值),近似为运放的直流增益。

当选择相位特性的signal时,intepolate at 输入增益特性的GBW取值公式,可以获得运放的相位裕度信息,即phase曲线上,横坐标为GBW处的纵坐标值(注意相位是从0°还是10°开始下降,可以简单进行换算)。

  • cross

 经过的横坐标的值。比如运放在1-1GHz的AC特性,横坐标为频率,纵坐标为增益,取运放的GBW值时,将threshold value设置为0(即求通过0dB点时,横坐标的值是多少)。

  • clip

取一段范围。比如振荡器的trans结果,最开始包含一段起振时间,想要直接获得比较准确的振荡频率,可以直接选取稳定振荡部分的信号进行求值,from 横坐标值 to 横坐标值。

  •  average

取平均。结合clip函数使用,可以求出某一段的平均值,比如求功耗。

  • freq

求频率。可以结合clip函数,求某一段范围信号的频率,比如振荡器稳定震荡时一段时间的频率。函数写好后,可以通过如下按钮直接plot出来。

  • ymax/ymin

取一段signal的最大值和最小值(纵坐标)。比如求bandgap电路的输出电压vref的温漂系数时(-40~125℃,单位ppm)公式为:

((ymax(signal)-ymin(signal)) / (((ymax(signal)+ymin(signal))/2)*165)) * 1000000

  • DutyCycle

 求一段波形的占空比。waveform中输入波形的公式,threshold中输入检测点,一般方波会选择最大值的一半(这里数值以avdd代替,方便PVT仿真时赋值)。

  • risetime/falltime

 

求一段波形的上升/下降时间。signal一栏输入波形函数,initial value type选择y,表明设置的是y轴的数,对于上升沿(计算上升时间),initial/final value值分别为最小值和最大值(这里设置为0到avdd),对于下降沿(计算下降时间),initial/final value值分别为最大值和最小值(这里设置为avdd到0),percent high/low为取的上升/下降沿的范围,这里取10%-90%,即avdd的10%到90%。number of occurrences设置为multiple,毕竟一段波形会有很多上升/下降沿。

  • Delay

对比两段波形的延迟,一般是level shift等电路的评价指标。 signal1/2分别是需要进行对比的两段波形。threshold value一般为两段波形的中间值,signal1的为dvdd的一半,signal2的为avdd的一半,edge type可以设置为rising或者falling,分别是计算上升沿和下降沿的delay,number of occurrences仍然设置为multiple。

(持续更新……)

有关【工具小技巧】Cadence Virtuoso Calculator Function Panel计算器函数功能介绍(持续更新……)的更多相关文章

  1. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  2. ruby - 在没有 sass 引擎的情况下使用 sass 颜色函数 - 2

    我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re

  3. ruby-on-rails - 在 ruby​​ 中使用 gsub 函数替换单词 - 2

    我正在尝试用ruby​​中的gsub函数替换字符串中的某些单词,但有时效果很好,在某些情况下会出现此错误?这种格式有什么问题吗NoMethodError(undefinedmethod`gsub!'fornil:NilClass):模型.rbclassTest"replacethisID1",WAY=>"replacethisID2andID3",DELTA=>"replacethisID4"}end另一个模型.rbclassCheck 最佳答案 啊,我找到了!gsub!是一个非常奇怪的方法。首先,它替换了字符串,所以它实际上修改了

  4. ruby - 在 Ruby 中有条件地定义函数 - 2

    我有一些代码在几个不同的位置之一运行:作为具有调试输出的命令行工具,作为不接受任何输出的更大程序的一部分,以及在Rails环境中。有时我需要根据代码的位置对代码进行细微的更改,我意识到以下样式似乎可行:print"Testingnestedfunctionsdefined\n"CLI=trueifCLIdeftest_printprint"CommandLineVersion\n"endelsedeftest_printprint"ReleaseVersion\n"endendtest_print()这导致:TestingnestedfunctionsdefinedCommandLin

  5. ruby-on-rails - Cucumber 是否只是 rspec 的包装器以帮助将测试组织成功能? - 2

    只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您

  6. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  7. ruby - 在 Ruby 中按名称传递函数 - 2

    如何在Ruby中按名称传递函数?(我使用Ruby才几个小时,所以我还在想办法。)nums=[1,2,3,4]#Thisworks,butismoreverbosethanI'dlikenums.eachdo|i|putsiend#InJS,Icouldjustdosomethinglike:#nums.forEach(console.log)#InF#,itwouldbesomethinglike:#List.iternums(printf"%A")#InRuby,IwishIcoulddosomethinglike:nums.eachputs在Ruby中能不能做到类似的简洁?我可以只

  8. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  9. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  10. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

随机推荐