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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 71|回复: 0

[转贴] 【转载】AMS仿真详细流程

[复制链接]
发表于 昨天 11:55 | 显示全部楼层 |阅读模式

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

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

×
首先,讲一下AMS中的数字部分,是用verilog写的,而不是veriloga,verilog是描述数字电路的,veriloga是描述模拟电路的。
一、AMS仿真详细流程
1. AMS仿真不同于其他常规仿真,仿真之前需要在terminal输入命令(如下图),目的是先设置incisive的版本。我用的是irun工具,因此必须载入高本版的incisive,如果用早期的ncverilog就不需要高本版incisive。irun、ncverilog还是xrun的介绍有必要看下以下链接:
转 | cadence验证仿真工具IUS,IES,irun和xrunblog.csdn.net/Clara_D/article/details/122964837
PS:incisive是什么?Cadence公司针对复杂IC设计,特别是纳米级设计,推出Incisive验证平台。它是嵌入式软件、控制、数据通道和模拟/混合信息/RF设计的统一平台。Incisive平台内建支持Verilog、VHDL、SystemC、SystemC验证库、规范语言PSL/Sugar、算法开发和模拟/混合信息(AMS),实现了设计功能集成。
38_dfa63dea260d5da59e918288a1d3ffcc.png
载入高本版的incisive的命令

一共3个命令,module list可查看当前incisiv的版本。
2. 载入高本版incisive后,打开virtuoso,建立模拟部分和数字部分的cellview。在new file--cellview建立。数字部分是verilog代码编写,type是verilog,这时view会自动变为functional,模拟部分两个都是schematic。这两个很简单很基础,不再赘述。
3. 建立数模混合仿真的testbench,步骤同2,也是schematic,同模拟电路的新建方法,将步骤2建立好的数字和模拟的cellview导入到此schematic中。
4. 新建config。用于AMS仿真的配置的view,如下图。点击ok。
38_80e152fc15f58cb2b20c03b9792d74bd.png


5. 然后出现如下window,将Top cell的View选为schematic,点击下方的use Template。出现use Template的窗口,点击AMS,再点击ok即可,出现config的选项,可看到config已配置好。
38_03ca6254219f5a3b79f64e487c279baf.png

38_845e450f9ff0655a51bb3cbafbffe660.png

38_4bfc2edd2848c88eecc1111cc01e72b3.png

6. 然后出现如下图配置。在Cell Bindings出现数模混合电路的所有模块,这里注意方的Stop list应写上verilog,这样混合电路中的数字电路才能被识别。点击左上角的保存,再点击ADE L。(点击open可以打开混合仿真的schematic,如果进行了修改,需要点击update)。
38_89eb28428da90e6c3085f7bdb15c0554.png

7. 打开ADE L之后,点击仿真器,确认是AMS无误。由于混合仿真可能速度很慢,建议设置APS多线程仿真。
38_c43ae16f4738894321b17087c095d21d.png

38_43e6085ac5d1f0b99eecdc93986b4266.png

8. 设置连接规则,如下图,在Rules name中选择自己需要的规则,点击add,上方就会出现选中的rules,也可以自己定义规则,点击customize按钮即可(一般也不需要自定义)。
38_fefba2e5daf21bbc9418283e64f2d534.png

38_1f3fcb3ddd25c2978c20a8e288c853e9.png
9. 然后设置仿真器,如下图点击Netlist and Run options,选择第一个irun模式,其他默认即可。然后设置AMS仿真器,点击Options,AMS Simulator,出现AMS options窗口,选择-f文件(你自己的数字电路的verilog代码如果例化了其他人的verilog模块,需要.f文件,如果都是自己的verilog模块,那么此项不填)
38_74f8444697ec25c25460de56dc98df93.png

38_17a2be0937173d543ea7c5c5d1a87ff3.png

38_5c7a92dcb4e3901cbbf2f6362f3ccb9c.png

10. 在ADE加入tran仿真,和spectre进行tran仿真相同的方法。然后点击右边绿色的run就可以仿真了。

38_fa90aaf9e344a8c95fdd8788fb7ec07a.png

二、我的debug过程
1. 由于我们不是一个独立的模拟组,是要和数字组进行合作对接的。比如我们模拟做了时钟模块、电源模块等很多模块,那么数字那边会针对每个模块设计数模混合仿真的数字模块的.v文件,我们模拟是不用写verilog代码的。回到AMS仿真流程的第9步,也就是说此时的.f文件也是数字组针对每个模拟模块编写的。也就是说,数字组会针对时钟模块和电源模块等分别写出数模混仿的.v文件和.f文件,在他们自己的目录下编写。因此我需要加载数字组的.v文件和.f文件,那么要准确知道他们在什么目录下编写的,也就是说知道他们的.v和.f文件目录。
由于数字模块的.v文件不在自己目录下,因此需要在virtuoso的file导入这个文件,如下图设置。将别人的.v文件导入自己的目标库,正确填写自己的库名字。并选择别人的.v文件点击add。其他设置如红框所示。
38_db09b1bb4838b134c29c3a5387ea1d1c.png
38_9418f88c5d94dc9556a74069752b3cd6.png
对于.f文件我没做详细的研究,但是有一点很明白的是,数字那边写的代码在.f文件中包含他们自己的.v文件的路径之类的代码,因此需要和数字那边做好沟通,我们就是要在启动virtuoso之前要source一个文件才可以,这个不同的人写代码风格不一样,不能一概而论。
PS:完全由自己做AMS,在自己目录下写数字模块,不会出现我这个问题的。
2. 开始用了ncverilog而不是irun,会报以下错误,仿真不会报error但是有warning,仿真无法得到正确结果。将ncverilog改为irun之后,错误解决。
38_d88dcf1533e4b069e3a61f4af771e898.png
3.仿真也不报错,会卡住,长时间不刷新,是因为incisive的版本太低了,按照第一步更换新版本即可。
4.数字那边的.v文件更新修改过,我这里用的数字电路的.v文件是copy的他们的,是在我自己的路径下的。但是这个.v文件里面还例化了其他的module,这个module数字那边修改过,而我不知道,他们删除了几个端口port,所以会提示port没找到。所以在我的.v文件里面注释掉他们删除的端口,错误解决。在output log可详细查看哪里的bug。
38_656df862e0c6a6fca16b2493e01a8767.png
38_e79c367f31a93a304506f9134a0bfd38.png
38_812cf698389d745b7dc8023114e8c745.png
38_b2c709cff6035dc4c9eb534c141bf88f.png
AMS数模混仿的bug较多,此文只是我自己遇到的问题,我看网上还有很多其他的问题,要根据实际电路去debug,问题出现的多主要也就是和其他小组有关系,尤其在公司这个问题尤为凸显,因为公司不同部门之间都有联系,文件也很多。单纯自己做个简单的AMS还是不复杂的

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

手机版| 小黑屋| 关于我们| 联系我们| 用户协议&隐私声明| 版权投诉通道| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 ) |网站地图

GMT+8, 2025-12-23 00:05 , Processed in 0.013659 second(s), 4 queries , Gzip On, Redis On.

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