凡亿专栏 | Modelsim的简单使用
Modelsim的简单使用

对于FPGA开发而言,仿真是开发流程中必不可少的一步,也是非常重要的一步,仿真是将RTL代码模拟运行,得到module中信号波形,再进行功能分析的过程。强大的功能与速度兼具的modelsim仿真就是你开发过程的最合适的选择了,下面我以简单的24进制计数器带各位熟悉modelsim仿真流程及波形。

518250328307b1b4a2cb94f71b0689.png

一、新建工作库Library1、点击File>New>Library

46371ff3c1679e07d9f12824da5e0b.png

创建新的库和逻辑映射,编辑库名,点击ok确定

03457f67b3a46a92c84695f0fa4a07.png

如果已经建立过work库可以跳过该步骤

2、库的其他功能

由于modelsim无法识别其他厂商器件的IPcore,所以如果需要用到综合器对应厂商如Xilinx或Gowin芯片的功能,则需对modelsim添加厂商提供的库相关文件,并编译库,从而达到调用库的功能,进而对 VIVADO或Gowin软件进行设置,最后进行联合仿真。

二、新建工程Project

点击File>New>Project

e2eba7d9be6ab229cb6595f67e5f41.png

创建工程名、设置工程路径、确定默认工作库

78b8be7d9e4b272f9cb1ad31106546.png

三、添加仿真源文件

      仿真源文件包含功能源文件与测试激励源文件;

e74f1a8aef43aaa67b02ac45e34bfd.png

点击Browse,浏览文件

572a32865c4edd14ec28f2bfe446ea.png

选择两个文件并打开

95fa8821cf42d1b8c195453ffd46d7.png

添加文件到工程,点击OK

f157e1900e9464acbfd2046335640c.png

点击close关闭

224a1eb687e4e5417feea5f719b022.png

如有不清楚testbench编写,可以参考myminieye公益课堂系列教程第18集;仿真基础篇1FPGA_simulation_testbench,

连接:https://www.bilibili.com/video/BV1EE411475Z?p=18

四、仿真源文件编译

若状态Status显示“?”为文件未编译

d37d7be09c00eaf2393d255852e068.png

常用有3种编译方式:编译选中文件、编译所有文件、编译未编译文件;对应操作方式如下:

      <1>菜单栏:          <2>右击菜单

6ca8af5b02934da042cdda62ced61c.pnged157e0a6981bab7a243615806b7e0.png

<3>图标:                  

310f104f4921b25a3ac0641c4ee7f7.png

若状态Status显示“√”则为编译成功,也可从下方Transcript看出文件编译成功

763e76d7ad059d93cf14ca03872094.png

0b8c2f83460acfd7c0384efbf2aafd.png

若状态Status并未显示“√“,或者下方Transcript显示编译不成功,则需修改对应的源文件。

806a038453f3e65df8aa3d3d79a6d5.png

修改后重新编译,可从Transcript检查是否有语法错误等,直至显示编译成功。

五、仿真运行

编译成功后即可运行仿真了;

  1. 开始仿真:Simulation>Start Simulation;或者点击下图中的小图标

    7832f9e74164e8d7ec22e3dad23463.png87543ca0de0834f12f2e246546d6b7.png

此时记得要选中tb测试激励文件(testbench文件)进行仿真,点击ok确定

c435041599536f1c3462b523202e7c.png

如果Transcript显示无报错则可以进行下一步操作

6ed0f059a7a838784238f360a69305.png

端口类型

8afbbe828cffecbc470287224ca640.png

激励类型

5ed5353ab23e46c77c1c1fa941a245.png

2.添加波形文件

Sim:选择下图所示的sim,右键点击选中tb测试文件>addto>wave>all items in region

70d29e6944b86cb0385a4322340195.png

为了便于观察波形,进行分组并命名,点击ok确定;

5659ceefd2f6c578aa3182473bf194.png12e228f3ef2d35874d2ed185310a1c.png

为了与tb测试文件仿真波形进行对比,同理可添加源文件波形;

a7bbfa0f0cd917f156f8d70660d012.png

同样为了便于观察波形,进行分组并命名;

f4ddd6935506c42a0a89a1ce4ed8b0.png9655f684ab640229764fd47684b01d.png

信号位置移动方便多个信号同时分析:分组后,可以上下拖拽所需要分析的信号,方便且清晰的上下对比所需波形之间的差异,此时分组的目的就是能与拖拽前后波形信号对比区分,不至于搞混;

622d337dd7191e599081b9dc4a8d4b.pngf9bdcd36f72a4935ed97198d921ec3.png

信号显示属性设置,选择合适的显示方式便于功能分析更好的找到信号并确定结果是否符合预期;

信号显示进制设置:

例:选择十六进制的信号格式:选中对应信号右键>Radix>hexadecimal

eb7c3e005950c075f64deb3e8ababa.png

可修改为常用的信号格式:二进制Binary、八进制 Octal、十进制Decimal、无符号型Unsigned、十六进制Hexadecimal等; 

也可在属性Properties中修改信号格式,修改波形颜色,信号名颜色;

也可选择需要修改的信号波形颜色及信号名颜色,这样在仿真波形图中能更容易分辨;

ced3cd143b7ae5700edf6fc0560d50.png65f14d5490204892c5d7fa20c194c1.png

3、  运行仿真工程,并设置运行时间

可在Transcript命令行输入run 1us命令,运行 1us 时间,也可运行其他时间

e5421be9aa4f6e93fe6356019e7c13.png

也可点击下图中输入需要运行波形的时间,然后点击图中的小图标。

71091b2b5c53ecb3c6971c95ebdc99.png

4波形界面调整

下图为波形界面常用的控制图标解析;

a0836ac9aaf122f0fd0def1d8bc797.png

自此Modelsim将RTL代码转化为波形的功能完成,仿真后续内容需要自行根据实际module功能进行波形分析。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论