引言:写这个主要是觉得ads和candence软件比较麻烦,为了写veriloga模型基还要被各种软件操作困住是很无语的,我就被困了好久,写出来过程是省的别人和我一样花时间在无用的软件上。
ADS如何调用和编译va文件?
方法一:将veriloga文件载入元件中调用
Step1----在元器件中创建va文件,并且右键compile Verilog,显示如下图即为成功。注意,库文件和va文件的model名称需要保持一致。
`include "discipline.h"
`include "constants.h"
module res(p,n);
inout p,n;
electrical p,n;
parameter real R=3;
analog begin
V(p,n) <+ I(p,n)*R;
end
endmodule
出现这个图表示va编译成功了。
如果自己没写文件,可以查找ADS系统文件夹下的veriloga文件夹,里面有所有开源的va文件,也可以搜索Compact Model Coalition | Silicon Integration Initiative (si2.org)和Designer’s Guide Community :: Forum (designers-guide.org)
需要看文档的可以用谷歌(带翻译的)直接看在线的https://edadocs.software.keysight.com/display/ads2009/Using+Verilog-A+and+Verilog-AMS+in+Advanced+Design+System
Step2----在同位置处创建symbol文件(可以自己画,也可以先从ADS其他库中copy一个元件模型放进去改,进入insert-generate-symbol-copy-symbol name)
Step3---修改pin保持和va 的model中一致,否则会检索不到pin
Step4----在sysmbol界面打开design parameter,设置参数,一般是自动默认检索。
Step5----在原理图中调用时,需要注意,一定要选择用va模式进行仿真,否则会报错如下。
Step6----选择对应元器件,并在原理图中打开图标,将仿真媒介改为veriloga模式,然后器件就能仿真成功了。
方法二:在工作目录创建veriloga文件,并用model加载
它的原理是构建PDK时可以做veriloga的pcell,它调用时从模型库的系统出发直接检索veriloga文件夹下的器件,如果存在则可以作为器件模型替换内部的模型基,只不过它有一个缺陷,就是它的模型内的参数会复写面板上的参数,所以尽量选同类模型基替换。
Step1---在新创建的工程文件路径下建立一个文件夹,命名为veriloga,并将编译OK的va文件塞入文件夹中。
Step2---ADS自带的器件分两种模式,一种是端口引用,一种是网表表示。这里va文件的本质就是网表,所以只要载入一个端口相同的文件(最好是同系列的器件),然后用model进行引用即可,如下图。
Step3---忽略关于参数的警告,可以看到电容已经被我们复写成了电阻。但是一般建议用电阻模型,因为这样参数可以共用,方便调节R的大小。
Candence如何调用va?
这个没自己跑一边,看到一个ppt感觉有用,先存一下
step1---使用cell模型
step2--设置cell参数
step3---得到逻辑模型
step4--收敛验证
step5--看一下代码内容和结构,主要有6部分,定义端口,定义模型卡参数,定义变量;初始化模拟step,模拟行为模型建立,输出。
如果要是有测试的话,那就有专门的testbanch来进行测试,然后也可以组合成tree-child的va网络群。