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

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

3天内不再提示

仿真的时候最主要的细节是啥?

FPGA之家 来源:EAD365 作者:EAD365 2021-07-02 10:43 次阅读

仿真是我们在验证逻辑功能的常用手段。通过仿真,我们可以提早发现一些隐含的逻辑Bug。仿真一般分为功能仿真和时序仿真,有的时候也称作前仿真和后仿真。这两者的主要区别是在功能仿真里暂时忽略了逻辑延时和布局布线延时,仿真的模型相对简单,仿真的运行速度更快。

可以用来验证功能的正确性。时序仿真通过反标的方式将加入延时信息,这样仿真的结果更接近实际芯片的工作情况。但正因为如此,时序仿真的模型更为复杂,需要计算的信息更多,运行的时间更长。一般情况下,我们首先通过逻辑仿真验证功能,然后再运行时序仿真验证时序的正确性。

当然现在也有一些做法是在做功能仿真的时候,人为的设定一些延时,虽然不能百分之百的拟合实际的芯片运行情况,但可以覆盖大多数的应用场景。带来的好处是仿真的运行比时序仿真要快很多。

各个EDA公司都有自己的仿真工具,针对FPGA/CPLD来说,用的比较多的是Modelsim和Aldec。无论用哪个仿真工具,有一个细节经常会被初学者会忽略。在设计好testbench后,编译都没有问题,但在开始仿真的时候,软件会报类似这样的错误:

Fatal Error: ELAB2_0036 Unresolved hierarchical reference to“PUR_INST.PURNET” from module“tb_cdr_tb.UUT.top_cdr_u.receive_top_u.serial_data_in.FF_3” (modulenot found)。

Fatal Error: ELAB2_0036 Unresolved hierarchical reference to“GSR_INST.GSRNET” from module “tb_cdr_tb.UUT.top_cdr_u.receive_top_u.serial_data_in.FF_3”(module not found)。

这是因为在芯片工作的时候,内部有PUR(Power Up Reset)和GSR(Global Set/Reset)模块产生上电复位信号和接入全局复位/置位信号。这个信号在做综合的时候是自动生成并加入的设计中的,但在仿真的时候编译并不会加入这两个模块。所以如果要做仿真,一定要在你的testbench中加入这样一段描述:

PUR PUR_INST(.PUR(1‘b1));

GSRGSR_INST(.GSR(1’b1));

本站资讯文章系编辑转载,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!

[声明]本站文章版权归原作者所有 内容为作者个人观点 本站只提供参考并不构成任何投资及应用建议。

本站拥有对此声明的最终解释权。

编辑;jq

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

    关注

    1631

    文章

    21806

    浏览量

    606692
  • 芯片
    +关注

    关注

    457

    文章

    51345

    浏览量

    428251
  • cpld
    +关注

    关注

    32

    文章

    1257

    浏览量

    169705
  • 仿真
    +关注

    关注

    50

    文章

    4134

    浏览量

    134126
收藏 人收藏

    评论

    相关推荐

    机器人仿真的类型和优势

    机器人仿真使机器人工程师和研究人员能够创建机器人及其环境的虚拟模型。这项技术支持在仿真的无风险环境中测试和验证机器人设计与控制算法以及与各种元素进行交互。通过使用仿真软件,可以预测和分析机器人在各种条件下的行为,而不需要物理原型
    的头像 发表于 10-14 10:43 668次阅读
    机器人<b class='flag-5'>仿真的</b>类型和优势

    调试THS4021,用Tina仿真的时候最大只能到6V左右,为什么?

    我最近在调试THS4021,但是在仿真的时候就出了问题。压摆率SR=2*Pi*f*Vm,而THS4021的压摆率为470V/us,通过计算,最大输出电压幅值Vm=SR/(2*Pi*f
    发表于 09-25 06:46

    在TINA里仿真的时候用TLV2460作前置放大,请问EN引脚如何接?

    我在TINA里仿真的时候用TLV2460作前置放大,请问EN引脚如何接?
    发表于 09-24 07:36

    仿真的时候在哪些地方添加寄生电容呢?

    请问各位高手,仿真的时候在哪些地方添加寄生电容呢,比如下面的图, 另外一般万用板焊出来的杂散电容有多大?在高速运放仿真时应该加在哪些地方呢
    发表于 09-19 07:59

    在做VF变换,仿真的时候始终得不到结果,为什么?

    各位大虾们,最近我在做VF变换。 电路图如下所示,但是仿真的时候始终得不到结果。。得到输出为一固定直流 -6.7V,各位帮忙看看是什么问题
    发表于 09-12 06:46

    设计的放大电路做出实物以后,放大倍数比原理图仿真的时候偏小是为什么?

    如题,设计的放大电路倍数为10,做出实物以后,放大倍数却只有7,倍数从几十K到几十兆比较稳定,但都偏小。仔细检查过,元件没有焊错。原理图仿真的时候,也是正常的,好好的。
    发表于 09-02 07:48

    OPA847用multisim进行运放电路仿真的时候,需要将运放的差模输入电容与共模输入电容画出来吗?

    我用的是OPA847,请问用multisim进行运放电路仿真的时候,需要将运放的差模输入电容与共模输入电容画出来吗?谢谢大家
    发表于 08-13 08:06

    求助,关于OPA818搭建TIA时候的稳定性问题求解

    算的话,此时的噪声增益为1+2.4/0.5=5.8,这是小于7的,为啥我仿真得到此时的开关增益Aolβ=0dB时候相位裕量在59.8°呢——这是稳定的啊?我这么算有问题嘛? 提这个问题是因为我
    发表于 07-30 07:07

    用THP210做单端转差分应用,仿真的波形里怎么总有个尖尖?

    用THP210做单端转差分应用,输入范围±2.5V。-3dB大概是5Khz。仿真的波形里怎么总有个尖尖。当-3dB带宽大的时候比如100Khz这种,就是很平滑标准的的低通滤波器形状,截至带宽越低就越容易出现峰值尖尖。这是情况
    发表于 07-30 06:52

    柔性制造单元最主要的设备是什么

    单元中,最主要的设备是加工中心、机器人、自动化输送系统和计算机控制系统。 加工中心 加工中心是柔性制造单元中最重要的设备之一,它是一种高度自动化的数控机床,能够完成多种加工任务,如铣削、钻孔、攻丝等。加工中心具有以下特点: 1.1 高度自动化:加工中心可以自
    的头像 发表于 06-11 09:59 649次阅读

    STM8S207驱动RC522,烧录程序进去可以读卡,但是仿真的时候无法读卡怎么回事呢?

    自己画的板子,烧录程序进去可以读卡,但是仿真的时候无法读卡,同样程序网上买的522模块可以正常使用,怎么回事呢
    发表于 05-10 06:01

    stm8如果使用到多功能引脚,用stvd调试仿真的时候,是否还需要设置option byte 来使功能正常使用?

    各位前辈,请问一下如果使用到多功能引脚,其中的一个功能比如tim2_ch1 。用stvd调试仿真的时候,是否还需要设置option byte 来使功能正常使用。 我记得用stvp下载程序的时候需要
    发表于 05-08 07:23

    stm32f103c8t6在仿真的时候SPI1_DR寄存器一直为0是为什么?

    为什么我在仿真的时候SPI1_DR寄存器一直为0?按照示例来配置的应该没什么问题。可是就是没效果。求大神帮忙看看
    发表于 05-08 06:28

    stm32f103rct6定时器8的1通道和互补通道仿真的时候没有输出是为什么?

    关于stm32f103rct6,采用逻辑分析仪的时候,定时器8的1通道和互补通道仿真的时候没有输出。
    发表于 03-22 06:28

    STlink仿真的时候断点个数有限是为什么?不能多打吗?

    比较好奇,为什么STlink仿真的时候断点个数有限啊?好像就支持3个吧,还是几个来着,为什么不像jlink一样,断点可以多打呢?
    发表于 03-20 07:36