何小豆儿在此 发表于 2025-3-17 07:38:52

【FPGA开发】一文轻松入门Modelsim的基本操纵

Modelsim仿真的步调

       (1)创建新的工程。
https://i-blog.csdnimg.cn/direct/5295bd31037640a8b3c2dfbd2c1f9fba.png#pic_center
       (2)在弹出的窗口中,确定项目名和工作路径,库保持为work稳定(如有必要可以根据需求举行更改)。
https://i-blog.csdnimg.cn/direct/5eac07849e04418d9ada9a44a9cac76b.png#pic_center#pic_center
       (3)添加已经存在的文件(rtl代码和tb代码)。
https://i-blog.csdnimg.cn/direct/7a29fd36a69541da8107808f10c074f3.png#pic_center
       如果这里关闭后,还想继续添加,也可以直接在界面空白处右键举行添加。
https://i-blog.csdnimg.cn/direct/1572dd5744754c2aac72a6fd7a00f530.png#pic_center
       加错了文件,也可以右键对应的文件,把它移出工程。
       (4)把文件都添加进来后,必要对代码举行编译。在上方的菜单栏有Compile(编译)选项,然后可以选择编译所有大概部分编译。
https://i-blog.csdnimg.cn/direct/be7e19938c5e4e7097e70555acf74c54.png#pic_center#pic_center
​       编译完后,如果没有题目,代码后面的status会是一个绿色的对号。
https://i-blog.csdnimg.cn/direct/35fee36a23a44116ac066206e1dac9ed.png#pic_center
       代码有题目的话,会是一个赤色的叉,双击下方Transcript中的errors,会弹出一个对话框,指明代码的题目,我们针对这些信息对代码修改即可。
https://i-blog.csdnimg.cn/direct/92e5eba19a0c42b3a124766f29ab1103.png
       (5)举行仿真,选择上方菜单栏的simulate,其中第一个选择是优化的设置,我们可以在后面仿真的时候再去优化,第二个是开始仿真,第三个是运行的选项。后面的选项都是仿真的控制选项,释义很直白。点击开始仿真。
https://i-blog.csdnimg.cn/direct/4b07418865224639916f22de31fbcae1.png#pic_center
       在弹出的窗口中,design是仿原形关的库,我们用的库默认是work,在work中选中我们仿真的tb代码,下面的Design Unit(s)就会有对应的显示,而在其右边的Resolution栏是仿真的单位,我们这里直接选默认即可。
https://i-blog.csdnimg.cn/direct/c0f79be9ef3d44dfbf79811025a75746.png#pic_center
       Libraries可以添加我们的库。
https://i-blog.csdnimg.cn/direct/90361373c9064628b5c4841cdbb75812.png#pic_center#pic_center
       SDF是延迟的文件,一样平常用于时序仿真,做IC设计时会频仍涉实时序仿真,做FPGA开发的话,时序仿真不多,仿真比较慢,一样平常只做功能仿真,验证功能是否有题目,时序一样平常是通过开发工具来查看时序陈诉看有没有时序题目。
https://i-blog.csdnimg.cn/direct/85bff5e3a8b04aadb7dc49672409933c.png#pic_center#pic_center
​       而对于开始仿真窗口的使能优化,对于以前版本的modelsim,一样平常是不勾选的,但我利用的2020.4版本属于比较新的版本,必须要使能优化,否则仿真的时候会报错。
https://i-blog.csdnimg.cn/direct/ff48aae28aae4ada8e2d6c54248bef7e.png#pic_center
       再点击右侧的优化选项,把visibility从默认的第一个选项改为第二个选项,把所有要观测的模块都显示出来,否则的话有些信号就看不到了。然后连续点击OK即可。
https://i-blog.csdnimg.cn/direct/3bdf62aedb554fb5ae3473408ddfc8f8.png#pic_center
​       然后会进入到下图所示的界面:
https://i-blog.csdnimg.cn/direct/9cb93ad4d8e742a3b4a036ea5baa749f.png#pic_center
       (6)把必要观察的信号添加到观察列表当中。上图左侧的u_led对应tb代码中例化的模块。
https://i-blog.csdnimg.cn/direct/412675ac65434f73ab4154dd8853df72.png#pic_center#pic_center
       右击想要观测的模块,选择Add wave。
https://i-blog.csdnimg.cn/direct/0ba7ef8889c54681bb0a414a3691a884.png#pic_center
       窗口会变化为如下图所示:
https://i-blog.csdnimg.cn/direct/c4d035e60084496a8f7f53125be9dcb0.png#pic_center
       现在波形的窗口还比较小,我们想把它单独拉出来,可以选择波形窗口右上角×的左边谁人按钮,就可以把它独立出来。
https://i-blog.csdnimg.cn/direct/aa82ed561839456db074d8c56e1a1463.png#pic_center
       左侧的信号默认是带有路径的,如果不想显示路径,可以选择上方菜单栏中的format,选择toggle leaf names,就可以隐藏路径了。
https://i-blog.csdnimg.cn/direct/d7b71f37e75a47fab47ecc16e34808c2.png#pic_center
​       如果不想看某个信号,也可以单击它,按键盘上的Delete把它删除。
       而如果想单独添加某一个信号,可以在表面的窗口找到对应的信号,把它添加到观察列表。
https://i-blog.csdnimg.cn/direct/3ad7919862d34ee9825116da60838454.png
       (7)开始仿真。在下图所示的仿真时间100ns右侧是几种运行的按钮,分别是运行一次,持续运行,一直运行,中断仿真。选择运行一次,就会仿真运行左侧小框内的时间,根据自己的需求修改即可。
       其中一些有用的按钮,如下图所示,这里Zoom In和Zoom Out分别是放大和缩小,第三个Zoom Full,是让有用波形铺满整个屏幕。
https://i-blog.csdnimg.cn/direct/b9e77e26ac004e5cae8c1c04a22700db.png#pic_center
一些其他的小技巧

       1,可以在表面Transcipt窗口实行运行下令,如:
run 20us
​       就会让波形在原来的基础上仿真运行20us。
https://i-blog.csdnimg.cn/direct/af516c4287a94bf4b4579d69487d42da.png#pic_center
       2,添加标尺。鼠标点中波形的某个地方,可以添加一个标尺。点击Insert Cursor按钮,可以再添加一个标尺。
https://i-blog.csdnimg.cn/direct/c2fea170c6a74cdfafbc0e4b3bddc516.png#pic_center
https://i-blog.csdnimg.cn/direct/26e14dc193824915921fac3813d100cb.png#pic_center#pic_center
       3,点击左下角标尺前面的小锁,可以把对应的标尺锁定,想要删除标尺则可以点击x。
https://i-blog.csdnimg.cn/direct/37d0a7cad77243c89138d44b752ee030.png#pic_center#pic_center
​       4,更换信号的显示进制。右击想要更改的信号,选择Radix,选择想要更改的进制即可,Unsigned为无符号十进制,Binary为二进制,Octal为八进制,Hexadecimal为十六进制。
https://i-blog.csdnimg.cn/direct/3b4ff028c05a4716806f95529552fdc2.png#pic_center
       5,放大缩小的另一种方法。先用标尺选中一个地方,然后点击上方菜单栏的Zoom In和Zoom Out 举行放大和缩小,这样就会基于我们选择的地方举行放大缩小,更加关注我们选中的位置。另外,也可以按住ctrl键,单击鼠标按住不放选中必要观测的地区举行查看;按住ctrl键,点按鼠标左键往左上方滑动,可以缩小。
       6,重头开始运行。
       可以单击仿真时间左侧的ReStart,在弹出的对话框中选择OK即可。
https://i-blog.csdnimg.cn/direct/a4fca79750184f87a6235dfbf38934db.png#pic_center
       也可以像前面在表面的Transcipt窗口实行运行下令:
restart -f
       7,改变波形颜色。modelsim默认的波形是绿色的,如果想要改变波形颜色,可以先选中波形,然后点击鼠标右键,选择末了的属性。
https://i-blog.csdnimg.cn/direct/61b51bc397554120bc060b46080b9f2e.png#pic_center
       再点击“corlor”,在弹出的窗口选择自己想要的颜色即可。
https://i-blog.csdnimg.cn/direct/54a1112f71da45b399ae6e752211d7d2.png#pic_center
       8,实际的工程应用中,往往是顶层加多个底层的源文件布局,如果不对信号举行一定的分组,就会显得杂乱不堪,后面我增补了一篇博客先容如何对信号举行分组。结果如下图所示:
https://i-blog.csdnimg.cn/direct/27f231680bcb45889a8fddbf973513d8.png#pic_center#pic_center
参考资料

​ 正点原子领航者ZYNQ7020视频:第9.3讲 点亮LED灯-Modelsim仿真软件的利用。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【FPGA开发】一文轻松入门Modelsim的基本操纵