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

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

3天内不再提示

使用Modelsim编译激励文件的详细流程

FPGA技术江湖 来源:电子狂人 作者:狂人V 2022-05-16 10:52 次阅读

前序

对于激励文件,我常用的是直接手写,最初学这个的时候,好像是用的Quartus里的那个Modelsim-Altera的工具去弄了下图形化编辑去制作约束,现在讲到这ModelSim了,也就再捡点来折腾下,还是有点学习价值,毕竟编辑的约束就真的很“直观”了。

编译文件

其他的就不多回忆了,直接开正题吧,一如既往,把待用的文件准备好,这次就只需要一个counter.v的文件,然后把ModelSim的当前路径切换到你文件所放的路径,接着在脚本窗口敲:

vlib work

413501e8-d298-11ec-bce3-dac502259ad0.png

再把文件编译一下:

vlog counter.v

415b7d8c-d298-11ec-bce3-dac502259ad0.png

在菜单栏里 Simulate => Start Simulation,弹出来的窗口把文件选好准备进仿真界面;

41844154-d298-11ec-bce3-dac502259ad0.png

产生激励信号

在仿真的界面,选中Objects的窗口里的clk,右键如下操作:

41a2b990-d298-11ec-bce3-dac502259ad0.png

出来的界面,就是设置类型,然后就是开始和结束的时间,精度都是ns,根据自己情况改,我就默认Next下去

41d75cf4-d298-11ec-bce3-dac502259ad0.png

这个窗口就是让你配时钟参数,占空比、周期之类的,初始值写个0进去

41ff0f88-d298-11ec-bce3-dac502259ad0.png

接着就在Wave的界面出现一个带“Edit”还有红色标记的clk信号

421dd102-d298-11ec-bce3-dac502259ad0.png

时钟有了,就再加个复位信号

操作与上类似,类型就选个常数

4235909e-d298-11ec-bce3-dac502259ad0.png

把变量值写个0

42510f0e-d298-11ec-bce3-dac502259ad0.png

结束后,就有复位信号出现了

426b7c9a-d298-11ec-bce3-dac502259ad0.png

因为这个文件的功能比较简单,所以有这两个信号就够用了,接着演示下怎么图形化的去编辑波形,从而得到自己想要的激励形式;

编辑激励信号

因为代码是使用的高电平复位,所以先让复位工作起来,再停止复位,就相当于在现在的0常量里头加一个高电平脉冲,先鼠标点下Wave的界面,然后工具栏里的这个Edit Mode的图标就会生效

427e8f6a-d298-11ec-bce3-dac502259ad0.png

把模式切换到编辑模式,选中reset,右键后的Wave Editor就可以看到Inset Pulse的功能

429282ae-d298-11ec-bce3-dac502259ad0.png

出现的设置项,就是要保持多长时间,已经开始插入脉冲的时刻;

42b76cf4-d298-11ec-bce3-dac502259ad0.png

reset就发生对应的变化

42d0d9aa-d298-11ec-bce3-dac502259ad0.png

如果添加的不对,就可以选择好添加脉冲的边沿时刻,然后再工具栏找到“Delete Edge”的图标(右键Wave Editor里也是一样),点一下,出现的窗口是需要删除的边沿时刻,确定后就会把这个对应的时刻后边的整个边沿连续的部分,都删除(删除了记得再插回去哈,接着往下演)

42ef85a8-d298-11ec-bce3-dac502259ad0.png

如果复位时间感觉不够,就再补个拉伸的操作,把边沿扩长,比如在150ns的时刻,从后向前补50ns(就相当于高电平在前面的50ns)

4319c322-d298-11ec-bce3-dac502259ad0.png

然后就可以看到效果了,在边沿拉升到了100ns处

43322598-d298-11ec-bce3-dac502259ad0.png

如果要往后面补,就选后边沿,从前往后补

434fb266-d298-11ec-bce3-dac502259ad0.png

编辑上就是这样根据自己情况去插入或者删除多余的状态,然后再过一下,把时钟的信号随便打乱几拍(乱操作哈,别当成实际应用了.....)

436c7658-d298-11ec-bce3-dac502259ad0.png

约束就假装编辑好了,然后可以准备“逆”生成一个激励文件了~

激励文件生成

开始导出对应的文件

4389b8bc-d298-11ec-bce3-dac502259ad0.png

选择Verilog形式的激励文件(也搞个ECVD File),1000ns后结束激励,选好存储的路径,文件名也设置好就可以OK

43b33a84-d298-11ec-bce3-dac502259ad0.png

在对应的路径就能有这两个文件了

43e1037e-d298-11ec-bce3-dac502259ad0.png

这时候再将Obejcets里的count变量添加到Wave窗口,并运行1000ns仿真,发现数据出来了~

43f914a0-d298-11ec-bce3-dac502259ad0.png

退出仿真

Testbench测试

准备用刚刚导出的激励文件来进行仿真测试,先把它编译到工作库里

vlog export_tb.v

44155f7a-d298-11ec-bce3-dac502259ad0.png

然后运行仿真

442b3a66-d298-11ec-bce3-dac502259ad0.png

把信号添加到Wave里作观察,并运行1000ns的仿真

add wave *
run 1000ns

可以看到仿真按激励进行~

445638d8-d298-11ec-bce3-dac502259ad0.png

退出仿真

EVCD测试

接着演示下VCD文件的使用,直接启动counter的仿真,然后先点下Wave界面,把这个EVCD的导入形式激活

447eed32-d298-11ec-bce3-dac502259ad0.png

再把EVCD导进来,编辑的信号就又出来了,再把count的变量也加到Wave里,并运行1000ns

run 1000ns

44b4ceb6-d298-11ec-bce3-dac502259ad0.png

补个EVCD的使用,如果EVCD里的信号没有和对应的代码变量名对应起来,可以自己手动去把它进行映射,比如,clk

44dbf20c-d298-11ec-bce3-dac502259ad0.png

在窗口里选择要映射的信号,OK后就映射好了

44fa7290-d298-11ec-bce3-dac502259ad0.png

结束

这种可视化编辑,然后再产生出激励文件的形式大概就这样了,还不会咋写激励文件的可以这样尝试折腾折腾,说不定就突然很有“灵感”了。

原文标题:Modelsim的仿真之路(激励文件“逆”生成)

文章出处:【微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

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

    关注

    50

    文章

    3872

    浏览量

    132148
  • ModelSim
    +关注

    关注

    5

    文章

    172

    浏览量

    46756
  • 编译
    +关注

    关注

    0

    文章

    614

    浏览量

    32374

原文标题:Modelsim的仿真之路(激励文件“逆”生成)

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ISE 关联 Modelsim 详细操作

    Compilation Wizard”,注意,64位系统中默认安装了64位和32位的ISE,如果想要用32位的ISE,那么就选择32位的编译库工具,而且,Modelsim也得安装32位的版本。 打开工具后
    发表于 03-22 18:55

    我的ModelSim初学心得

    Quartus目录下会生成一个simulation文件夹,下面有个modelsim。完成编译之后,在这个目录下面生成了供modelsim使用的库和时序
    发表于 03-01 10:55

    modelsim激励程序怎么编写

    这是pwm波的设计程序,如何编写modlesim激励程序,求大神指点,目前modelsim软件不会用啊module PWM(clk,PWM_in,PWM_out);input clk;input[7
    发表于 04-26 21:11

    STM32自定义USB设备开发详细流程讲解

    STM32自定义USB设备开发详细流程讲解及全套资料源码下载
    发表于 08-03 09:50

    【转载】Allegro SI 高速信号完整性仿真连载之二(附详细流程

    ``【转载】Allegro SI 高速信号完整性仿真连载之一(附详细流程)高速PCB设计的流程为:传统的PCB设计流程如下图所示:而引入的Allegro PCB SI仿真工具后的设计流程
    发表于 11-19 19:14

    ModelSim文件下载入口

    ModelSim文件下载入口
    发表于 02-09 09:43 350次下载

    多晶硅制备详细流程及图解

    多晶硅制备详细流程
    发表于 01-10 16:18 66次下载
    多晶硅制备<b class='flag-5'>详细流程</b>及图解

    Modelsim百问(一)

    第一章 1、 关于 Modelsim中库的编译 2、 如何在modelsim中指定Altera的仿真库 3、 Modelsim波形文件 4、
    发表于 05-26 15:48 0次下载

    一文详解ModelSim仿真具体流程

    的工程名, 在Project Location中输入工程保存的路径,注意ModelSim不能为一个工程 自动建立一个目录,这里我们最好是自己在Project Location中输入路径来 为工程建立目录,在Default Library Name中为我们的设计编译到哪一个
    发表于 06-22 10:13 3173次阅读

    仿真软件ModelSim及其应用,ModelSim的仿真流程

    ModelSim不仅可以用于数字电路系统设计的功能仿真,还可以应用于数字电路系统设计的时序仿真。 ModelSim的使用中,最基本的步骤包括创建工程、编写源代码、编译、启动仿真器和运行仿真五个步骤,仿真
    的头像 发表于 12-29 11:35 9259次阅读

    三态门原理HDL语言DSP和ARM总线的仿真及Modelsim使用教程资料

    本文档的主要内容详细介绍的是三态门原理HDL语言DSP和ARM总线的仿真及Modelsim使用教程资料主要内容包括了:1 ModelSimSE的使用流程,2 一个Verilog计数器仿真详细流
    发表于 07-09 16:49 10次下载
    三态门原理HDL语言DSP和ARM总线的仿真及<b class='flag-5'>Modelsim</b>使用教程资料

    PE工具安装的详细流程详细说明

    PE工具安装的详细流程详细说明
    发表于 12-10 08:00 29次下载

    Modelsim注册文件

    Modelsim注册文件
    发表于 12-12 14:56 8次下载

    BOSHIDA DC电源模块检测稳定性能详细流程

    BOSHIDA DC电源模块检测稳定性能详细流程 DC电源模块是电力电子产品中非常常见和重要的设备。它们被广泛应用于各种公共场所和工业领域,如通信系统、计算机、工业自动化以及医疗设备等。为确保电源
    的头像 发表于 06-30 11:08 330次阅读
    BOSHIDA DC电源模块检测稳定性能<b class='flag-5'>详细流程</b>

    modelsim自动化仿真实验 利用脚本实现modelsim自动化仿真

    大家好!今天给大家带来的是modelsim自动化仿真程序。我们在代码编写完成时,通常都需要先进行仿真,然后上板实验。但是如果我们每次仿真都要去新建一个工程,添加.v文件以及testbench文件
    的头像 发表于 07-19 10:10 1061次阅读
    <b class='flag-5'>modelsim</b>自动化仿真实验 利用脚本实现<b class='flag-5'>modelsim</b>自动化仿真