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

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

3天内不再提示

Modelsim的仿真之路(Memory小技能)

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

续上

许久没更新了,间歇性来写写,还是继续Modelsim中关于内存的操作,涉及的文件可在文末自行获取,本篇对应memory的文件夹。

准备

把文件准备好后,启动软件,将路径设置成文件对应的路径,然后

命令行示例

#依次进行即可,路径对应自己的
cd E:/Soft_File/Sim_File/memory
vlog *.v

库里面出现work库,且包含以下编译后的内容

46f43864-5269-11ed-a3b6-dac502259ad0.png

双击ram_tb载入仿真,并选择Memory List的窗口

471025e2-5269-11ed-a3b6-dac502259ad0.png

双击spram1对应的mem,会直接在右窗口加载mem中的地址与值,由于还没启动仿真,所以这时还是未知态

474e37e2-5269-11ed-a3b6-dac502259ad0.png

点击运行的图标,或者命令行:run -all,仿真在$stop处停止,然后再返回mem的数据列表,可以看到数据已经更新为运行值了

478ca5ea-5269-11ed-a3b6-dac502259ad0.png

显示设置

有时为了方便分析,就需要对数据重新排列,比如我们数据是个8bit的,然后想让其与地址一一对应,可以按下面的使用过程进行

在窗口内右键,然后点Properties

47b5b4a8-5269-11ed-a3b6-dac502259ad0.png

出现的窗口可以对显示做设置,把地址改成10进制显示,数据改为无符号十进制,每行只显示1个值(千万别把words看成word的了,和字长啥的没关系)

47f58704-5269-11ed-a3b6-dac502259ad0.png

设置好后,OK就会出现显示地址递增对应数据的结果

480f39a6-5269-11ed-a3b6-dac502259ad0.png

数据定位

排好数据后,肯定还需要掌握搜索定位的功能,如果想按地址进行定位,就在地址的队列中右键,然后点Goto

4843af7e-5269-11ed-a3b6-dac502259ad0.png

然后输入要定位到的地址值,比如输100

485b6e8e-5269-11ed-a3b6-dac502259ad0.png

OK后就直接跳到了对应的地址

4864f986-5269-11ed-a3b6-dac502259ad0.png

此外还可以直接进行相对地址的跳转,比如想让233的地址出现在111地址的位置,就直接在111上双击,然后输入233,回车后直接进行跳转

487deb08-5269-11ed-a3b6-dac502259ad0.png

489a2f34-5269-11ed-a3b6-dac502259ad0.png

如果是数据中有特征信息,想从数据上进行定位,就在数据列中右键,然后Find

48bb7a2c-5269-11ed-a3b6-dac502259ad0.png

比如搜个233的数据,如果具有重复,还需要找,就点Find Next继续查找

48ceae08-5269-11ed-a3b6-dac502259ad0.png

导出数据

如果想把运行至某时刻时的数据做保存(本例程已经直接运行至停止的位置),可以使用Export进行导出,在Memory List界面选中要导出的对应内存变量或者直接在想导出的那个Memory Data中右键,然后Export...

4946805e-5269-11ed-a3b6-dac502259ad0.png

出现窗口中设置导出的数据范围和格式信息,此处就只导出0~233地址的数据,格式MTIVerilog的格式可以导出后用于后续代码直接进行读取做初始化),地址和数据采用刚刚同样的配置,然后修改好文件名后就OK

495c1fea-5269-11ed-a3b6-dac502259ad0.png

接着就可以用其他软件打开查看了497e8742-5269-11ed-a3b6-dac502259ad0.png

最后再导出个无地址信息的数据,待会需要用到

499420b6-5269-11ed-a3b6-dac502259ad0.png

49ae7a42-5269-11ed-a3b6-dac502259ad0.png

初始化内存

打开spram3的mem,方便分析初始化的效果,把属性设成和刚刚spram1的一样

49cea290-5269-11ed-a3b6-dac502259ad0.png

数据界面右键,然后Import

49eb9e4a-5269-11ed-a3b6-dac502259ad0.png

选择刚刚导出的文件,其他设置如下,然后OK

4a1d98c8-5269-11ed-a3b6-dac502259ad0.png

数据发生更新,然后定位到233的地址,可以明显看到把数据全部完成新的初始化

4a46269e-5269-11ed-a3b6-dac502259ad0.png

接下来再演示下指定位置,且在可用数据小于指定长度时填充其他数据,进行初始化,为方便看,先定位到1000的地址处

4a6011b2-5269-11ed-a3b6-dac502259ad0.png

然后Import,在地址范围处填好起止地址,然后文件要选无地址信息的那个文件

4a7c14fc-5269-11ed-a3b6-dac502259ad0.png

1000处的地址开始发生更新

4aa09656-5269-11ed-a3b6-dac502259ad0.png

跳转到1233的位置,从1234的地址开始填充从0开始的递增数,直到1500地址处停止

4ab4e476-5269-11ed-a3b6-dac502259ad0.png

4acc22a8-5269-11ed-a3b6-dac502259ad0.png

手动赋值

打开spram2的mem

4adebaf8-5269-11ed-a3b6-dac502259ad0.png

接着数据处右键,点Change或者直接选中要修改的区域后再点Change

4b043508-5269-11ed-a3b6-dac502259ad0.png

出现的界面填写要覆盖的地址区域以及要填充的数字,设置好后,OK

4b29d25e-5269-11ed-a3b6-dac502259ad0.png

从0x11到0x22地址的数据都被从0开始的递增数覆盖

4b667182-5269-11ed-a3b6-dac502259ad0.png

除了这种批量性的修改数据值,还可以直接双击单个要改的,回车后即可实现直接单个修改

4c5da1a0-5269-11ed-a3b6-dac502259ad0.png

结束

关于Memory的知识,大概就分享到这吧。

审核编辑:汤梓红

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

    关注

    50

    文章

    4036

    浏览量

    133393
  • Memory
    +关注

    关注

    1

    文章

    77

    浏览量

    29002
  • ModelSim
    +关注

    关注

    5

    文章

    174

    浏览量

    47119

原文标题:Modelsim的仿真之路(Memory小技能)

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

收藏 人收藏

    评论

    相关推荐

    怎样单独使用modelsim仿真xilinx呢?

    直接在modelsim软件内执行.do文件进行仿真,不通过vivado调用modelsim,vivado仅用于生成IP核。
    的头像 发表于 12-04 18:26 1348次阅读
    怎样单独使用<b class='flag-5'>modelsim</b><b class='flag-5'>仿真</b>xilinx呢?

    Altera ModelSim 6.5仿真入门教程

    Altera ModelSim 6.5仿真入门教程,需要的可自行下载。 平台 软件:ModelSim-Altera 6.5e (Quartus II 10.0) Starter Edition 内容 1 设计流程 使用
    发表于 08-15 15:40 255次下载
    Altera <b class='flag-5'>ModelSim</b> 6.5<b class='flag-5'>仿真</b>入门教程

    Modelsim的功能仿真和时序仿真

    ModelSim 进行功能仿真,进行功能仿真首先要检查设计的语法是否正确;其次检查代码是否达到设计的功能要求。下文主要介绍仿真步骤和测试激励的加载。
    发表于 11-13 15:35 9172次阅读

    MODELSIM仿真(适合xilinx ISE)

    基于Xilinx ISE的modelsim仿真教程
    发表于 11-30 15:52 8次下载

    使用 ModelSim 进行设计仿真详解

    本章为ModelSim的初级教程,读者读完本章可以较为熟练的使用ModelSim进行设计仿真,本章没有也不可能涉及ModelSim的各个方面,要想全面的掌握
    发表于 12-24 18:29 0次下载

    modelsim仿真详细过程(功能仿真与时序仿真

    modelsim仿真详细过程(功能仿真与时序仿真).ModelSim不仅可以用于数字电路系统设计的功能仿
    发表于 12-19 11:14 6.7w次阅读
    <b class='flag-5'>modelsim</b><b class='flag-5'>仿真</b>详细过程(功能<b class='flag-5'>仿真</b>与时序<b class='flag-5'>仿真</b>)

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

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

    Modelsim仿真教程Modelsim的基础入门基础教程免费下载

    笔者一直以来都在纠结,自己是否要为仿真编辑相关的教程呢?一般而言,Modelsim等价仿真已经成为大众的常识,但是学习仿真是否学习Modelsim
    发表于 04-30 18:24 23次下载
    <b class='flag-5'>Modelsim</b><b class='flag-5'>仿真</b>教程<b class='flag-5'>Modelsim</b>的基础入门基础教程免费下载

    Modelsim与MATLAB的联合仿真

    总体思想是现在 MATLAB 中产生仿真所需要的输入信号,以十六进制形式存放在数据文件中,在modelsim 中用 vhdl 语言编写测试文件,做时序仿真,最后将结果存入另外一个数据文件,最后在 matlab中将
    发表于 06-01 10:31 33次下载

    基于ModelSim使用二联合Quarus自动仿真教程

    3 ModelSim工程实战之自动仿真说完了 ModelSim 的使用流程,接下来我们将会对每个流程进行详细的操作演示,一步步、手把手带领大家学习使用 ModelSim 软件。首先我们
    的头像 发表于 07-23 10:51 2033次阅读
    基于<b class='flag-5'>ModelSim</b>使用二联合Quarus自动<b class='flag-5'>仿真</b>教程

    基于ModelSim使用四ModelSim手动仿真教程

    4.1 新建仿真工程 在开始动手仿真之前,首先,我们需要创建一个文件夹用来放置我们的 ModelSim 仿真工程文件,这里我们就在之前创建的 Quartus 工程目录下的 simula
    的头像 发表于 07-23 11:10 4012次阅读

    如何夹带modelsim仿真波形白底黑线

    Modelsim使用技巧—波形白底黑线设置 在发表期刊或者论文时,我们需要夹带modelsim仿真波形在我们的论文里,在modelsim默认模式下的波形一般是黑底绿线白字,如图1所示
    的头像 发表于 08-26 11:23 3887次阅读

    ModelSim手动仿真教程

    在开始动手仿真之前,首先,我们需要创建一个文件夹用来放置我们的 ModelSim 仿真工程文件,这里我们就在之前创建的 Quartus 工程目录下的 simulation 文件夹中创建一个
    的头像 发表于 07-11 10:58 5060次阅读

    芯片设计之Modelsim仿真工具

    Modelsim仿真将设计以树状表示,设计中的每一个实体,每一个module、每一个进程(always块、initial块等)在Modelsim仿真中以对象的形式展现。
    的头像 发表于 08-12 15:04 2571次阅读

    Vivado调用Modelsim仿真

    Modelsim是十分常用的外部仿真工具,在Vivado中也可以调用Modelsim进行仿真,下面将介绍如何对vivado进行配置并调用Models
    的头像 发表于 07-24 09:04 3558次阅读
    Vivado调用<b class='flag-5'>Modelsim</b><b class='flag-5'>仿真</b>