以xa-vcs为例如何进行cosim仿真验证?

电子说

1.3w人已加入

描述

**1 **层级关系

曾经我一直认为cosim最顶层必须是一个数字顶层,其实不然。具体使用哪个做顶层要看项目,以数字为顶层的好处是,模拟仿真的结果都转换为数字,比较好处理。

当数字模块是一个专用模块,其它是以模拟模块为主,这时候可以用模拟作为顶层。

图1给出了数字做顶层时的cosim层级关系,最顶层是数字,底层模拟模块可以包含数字,数字模块也可包含模拟,仿真时数字和模拟接口用a2d和d2a进行转换 。

电平转换

Fig1. 数字做顶层时cosim层级关系.

**2 **仿真步骤

Synopsys做为主流三大EDA供应商(另外两家是Cadence和Mentor),其自带的文档就是最好的,我们不用费劲周折去网上找,xa-vcscosim仿真方法在xa的安装目录下有实例($xa_install_dir/doc/tutorials/mixed_signal/XA-VCS),照着实例跑一下流程就行,xa自带4位加法器cosim仿真文件如图2所示。

电平转换

Fig2. xa自带cosim仿真实例文本

XA-VCS_tutorial.pdf中给出了仿真方法并对文件做了注释,注释如图3所示。

电平转换

Fig3. XA-VCS 4位加法器文件注释

仔细读一下XA-VCS_tutorial.pdf文档并实际操作一下就能学会。

注:执行run_xa_vcs命令之前要先启动xa和vcs软件,run_xa_vcs不认的话chmod一下。

例子虽然简单,带来的问题就是Case覆盖不全。例子中并没有给出模拟到数字,数字到模拟之间的电平转换规则,具体语法可参考文献[2]中的a2d和d2a命令,将想要的电平转换规则写在vcsAD.init文本。

finesim-vcs或hsim-vcs仿真方法与xa-vcs类似,只要将vcsAD.init中的xa指令换成finesim或hsim即可。

**3 **仿真结果

图4给出了我用finesim-vcs仿真pll的结果(根据xa自带的例子改的),可见a2d/d2a的转换是正确的。

电平转换

Fig4. finesim-vcs仿真pll a2d/d2a转换

图5给出了我用finesim-vcs仿真pll的vctrl波形(模拟),可见环路能够正常锁定。

电平转换

Fig5. finesim-vcs仿真pll vctrl波形

图6给出了我用Cadence AMS(步骤跟xa-vcs类似,只是多了图形界面(个人不太喜欢图形界面,影响效率,不过流程也没那么简单)仿真二分频的波形。

电平转换

Fig6. AMS仿真分频器波形

**4 **思考与讨论

①a2d和d2a该如何合理写入vcsAD.init?②如何从xa切换到finesim?③如何用Cadence的AMS做混仿,AMS与xa-vcs各自的优缺点是什么?

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分