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
    +关注

    关注

    1593

    文章

    21211

    浏览量

    592196
  • 芯片
    +关注

    关注

    445

    文章

    47496

    浏览量

    407916
  • cpld
    +关注

    关注

    32

    文章

    1241

    浏览量

    168130
  • 仿真
    +关注

    关注

    50

    文章

    3860

    浏览量

    131956
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    如何设置LTspice来让仿真的速度快一些?

    我在用LTspice做电源仿真的时候,我发现仿真的速度很慢,该如何设置LTspice来让仿真的速度快一些,thanks
    发表于 01-05 07:03

    芯片前仿真和后仿真的区别

    在芯片设计中,前仿真和后仿真都是非常重要的环节,但它们在功能和目的上存在明显的区别。本文将详细介绍前仿真和后仿真的区别,以及它们在芯片设计中的应用和重要性。 一、前
    的头像 发表于 12-13 15:06 1678次阅读

    介绍一种通过SystemC做RTL/C/C++联合仿真的方法

    当FPGA开发者需要做RTL和C/C++联合仿真的时候,一些常用的方法包括使用MicroBlaze软核,或者使用QEMU仿真ZYNQ的PS部分。
    的头像 发表于 12-13 10:11 337次阅读
    介绍一种通过SystemC做RTL/C/C++联合<b class='flag-5'>仿真的</b>方法

    AD8130是可以单端工作的,但是为什么用Multisim仿真的时候输出只有一个直流偏置呢?

    根据芯片手册,AD8130是可以单端工作的,但是为什么用Multisim仿真的时候输出只有一个直流偏置呢?
    发表于 11-23 07:48

    包络仿真的四个步骤过程

    最近探索仿真的时候,在DF下仿真射频系统时,需要用到包络仿真(envelope simulation),所以就扒拉着看了一点ADS里面关于其的help内容。以下为翻译记录。
    的头像 发表于 11-08 14:23 400次阅读
    包络<b class='flag-5'>仿真的</b>四个步骤过程

    EMC仿真的方向 EMC仿真的难处在于哪里?

    目前仿真的方向基本上有两个,一个是以试验测试为导向,对产品进行EMC测试项目的仿真
    的头像 发表于 11-04 17:28 1337次阅读
    EMC<b class='flag-5'>仿真的</b>方向 EMC<b class='flag-5'>仿真的</b>难处在于哪里?

    单片机双向通信Proteus仿真的电路原理图

    简介:本文介绍的主要是单片机之间的双向通信Proteus仿真的电路原理图及其程序
    发表于 10-19 15:26 1次下载
    单片机双向通信Proteus<b class='flag-5'>仿真的</b>电路原理图

    时序仿真与功能仿真的区别有哪些?

    EDA仿真,它模拟一个数字电路中时序的行为。时序行为通常包括数据信号传输的时序,如周期时间或LATCH信号的上升沿下降沿。它通常应用于验证设计延迟、时序、时序违规和时序冲突等问题。 时序仿真的主要目的是在设计的任何阶段,从RTL
    的头像 发表于 09-17 14:15 2404次阅读

    时序仿真与功能仿真的区别在于

    时序仿真与功能仿真的区别在于 时序仿真与功能仿真是电子设计自动化(EDA)中最常见的两种仿真方式。虽然二者都是
    的头像 发表于 09-08 10:39 2810次阅读

    阐述ADS交流仿真的基本方法和流程

    交流仿真的概念:交流放着是射频电路中最重要的仿真方式之一,主要用于分析电路的小信号特性和噪声特性。
    的头像 发表于 06-29 11:17 8478次阅读
    阐述ADS交流<b class='flag-5'>仿真的</b>基本方法和流程

    季丰电子仿真的主要应用

    季丰电子硬件研发事业部有专门从事仿真业务的团队,负责硬件电路的电气完整性。
    的头像 发表于 05-15 15:27 406次阅读
    季丰电子<b class='flag-5'>仿真的</b><b class='flag-5'>主要</b>应用

    Proteus仿真的时候关闭了示波器怎么打开?

      一、概要   初学者在进行单片机学习的时候,有可能没有硬件,而Proteus就是一个很好的选择,里面集成了数码管、单片机、按键等一些常用的元器件。但是我们在进行proteus仿真的时候总是会
    发表于 04-26 17:14

    请问一下proteus进行仿真的时候仿真结果不出现是怎么回事?

    比如说我用示波器进行仿真,通道1仿真结束后,停止,再加上通道2,两个一起仿真就不出现结果,需要重启proteus才行,这是怎么回事呢?有什么好的解决办法么?没什么分了,请大神们帮一下忙吧 主要
    发表于 04-23 16:24