**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各自的优缺点是什么?
-
EDA工具
+关注
关注
4文章
264浏览量
31694 -
加法器
+关注
关注
6文章
183浏览量
30079 -
电平转换
+关注
关注
3文章
134浏览量
33834 -
VCS
+关注
关注
0文章
78浏览量
9585 -
PLL电路
+关注
关注
0文章
92浏览量
6391
发布评论请先 登录
相关推荐
评论