0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

冬至子 来源:一片冰芯 作者:一片冰芯 2023-10-31 17:39 次阅读

**1 **层级关系

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

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

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

图片

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

**2 **仿真步骤

Synopsys做为主流三大EDA供应商(另外两家是CadenceMentor),其自带的文档就是最好的,我们不用费劲周折去网上找,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
    VCS
    +关注

    关注

    0

    文章

    78

    浏览量

    9585
  • PLL电路
    +关注

    关注

    0

    文章

    92

    浏览量

    6391
收藏 人收藏

    评论

    相关推荐

    绝对经典VCS中文教程

    这么重要,如何进行验证呢?对于验证来说,不同等级的验证,它的方法是不一样的。什么是验证的等级,从设计流程(下图)可以看到,
    发表于 12-15 10:37

    VCS可以验证FPGA RAMB的INIT初值吗?谢谢

    是把xilinx含有RAMB的仿真库添加进VCS compile,并且库中的RAMB也是有INIT的,但是vcs结果好像对INIT不敏感,即使我把INIT值改成别的,vcs也是正确的
    发表于 03-05 11:22

    VCS中如何利用Makefile脚本进行仿真

    怎样通过Makefile脚本进行编译和仿真?Makefile脚本是如何简化VCS仿真设计的?
    发表于 06-18 10:03

    nanosim和vcs混合仿真的过程是怎样的?

    nanosim和vcs为什么可以联合起来进行数字模拟混合仿真?nanosim和vcs混合仿真的过程是怎样的?
    发表于 06-18 08:28

    基于linux系统的VCS使用及仿真说明

    最近在学习VCS,现将VCS的一些使用心得记录下来。VCS是synopsys的仿真verilog的仿真器。基于linux系统。有命令行模式和
    发表于 07-18 16:18

    一种数模混合SoC 设计协同仿真验证方法

    数模混合信号仿真已经成为SoC芯片验证的重要环节。文章一款固网短信电话专用SoC芯片例,介绍一种使用Synopsys公司的NanoSim-VCS
    发表于 05-15 15:41 19次下载

    一种数模混合SoC 设计协同仿真验证方法

    数模混合信号仿真已经成为SoC芯片验证的重要环节。文章一款固网短信电话专用SoC芯片例,介绍一种使用Synopsys公司的NanoSim-VCS
    发表于 05-15 15:41 5次下载

    基于linux系统实现的vivado调用VCS仿真教程

    VCS-MX的版本,可以混合编译Verilog和VHDL语言 由于在linux系统中个人用户各种权限被限制,导致很多地方无法正常使用软件之间的协调工作。 为了以防万一,在此个人用户去实现vivado调用VCS
    的头像 发表于 07-05 03:30 1.1w次阅读
    基于linux系统实现的vivado调用<b class='flag-5'>VCS</b><b class='flag-5'>仿真</b>教程

    如何使用Synopsys VCS仿真进行ZYNQ BFM IPI设计仿真

    了解如何使用Vivado中的Synopsys VCS仿真器使用ZYNQ BFM IPI设计运行仿真。 我们将演示如何编译仿真库,IP或整
    的头像 发表于 11-29 06:59 4894次阅读

    如何使用Vivado中的Synopsys VCS仿真进行仿真

    了解如何使用Vivado中的Synopsys VCS仿真器使用MicrBlaze IPI设计运行仿真。 我们将演示如何编译仿真库,IP或
    的头像 发表于 11-29 06:57 7381次阅读

    安世亚太:中国仿真何进行切实可行的工程化验证

    自主仿真发展,不仅需要一往无前的勇气,更需要踏实迈进的智慧。方向不明,对标盲目,只会如盲人瞎马,夜半临池,危险渐近而不自知。中国仿真企业如星星之火,期待形成自主发展燎原之势,此时,如何进行切实可行
    的头像 发表于 01-24 11:06 1332次阅读

    使用VCS两种仿真flow的基本步骤

    VCS是一个高性能、高容量的编译代码仿真器,它将高级抽象的验证技术集成到一个开放的本地平台中。它能够分析、编译和编译Verilog、VHDL、SystemVerilog和OpenVera所描述
    的头像 发表于 05-07 14:20 4802次阅读

    浅谈VCS的两种仿真flow

    几乎所有的芯片设计、芯片验证工程师,每天都在和VCS打交道,但是由于验证环境的统一化管理,一般将不同的编译仿真选项集成在一个文件里,只需要一两个人维护即可。所以大部分人比较少有机会去深
    的头像 发表于 01-10 11:20 3538次阅读

    如何用vcs+verdi仿真Verilog文件

    我们一个简单的加法器例,来看下如何用vcs+verdi仿真Verilog文件并查看波形。 源文件内容如下:
    的头像 发表于 05-11 17:03 1863次阅读
    如何用<b class='flag-5'>vcs</b>+verdi<b class='flag-5'>仿真</b>Verilog文件

    VCS 仿真option 解析

    VCS仿真选项分编译(compile-time)选项和运行(run-time)选项。编译选项用于RTL/TB的编译,一遍是编译了就定了,不能在仿真中更改其特性,例如define等等。
    的头像 发表于 01-06 10:19 2416次阅读