Modelsim仿真的步骤
(1)创建新的工程。
(2)在弹出的窗口中,确定项目名和工作路径,库保持为work不变。
(3)添加已经存在的文件(rtl代码和tb代码)。
如果这里关闭后,还想继续添加,也可以直接在界面空白处右键进行添加。
加错了文件,也可以右键对应的文件,把它移出工程。
(4)把文件都添加进来后,需要对代码进行编译。在上方的菜单栏有Compile(编译)选项,然后可以选择编译所有或者部分编译。
编译完后,如果没有问题,代码后面的status会是一个绿色的对号。
代码有问题的话,会是一个红色的叉,双击下方Transcript中的errors,会弹出一个对话框,指明代码的问题,我们针对这些信息对代码修改即可。
(5)进行仿真,选择上方菜单栏的simulate,其中第一个选择是优化的设置,我们可以在后面仿真的时候再去优化,第二个是开始仿真,第三个是运行的选项。后面的选项都是仿真的控制选项,释义很直白。点击开始仿真。
在弹出的窗口中,design是仿真相关的库,我们用的库默认是work,在work中选中我们仿真的tb代码,下面的Design Unit(s)就会有对应的显示,而在其右边的Resolution栏是仿真的单位,我们这里直接选默认即可。
Libraries可以添加我们的库。
SDF是延迟的文件,一般用于时序仿真,做IC设计时会频繁涉及时序仿真,做FPGA开发的话,时序仿真不多,仿真比较慢,一般只做功能仿真,验证功能是否有问题,时序一般是通过开发工具来查看时序报告看有没有时序问题。
而对于开始仿真窗口的使能优化,对于以前版本的modelsim,一般是不勾选的,但我使用的2020.4版本属于比较新的版本,必须要使能优化,否则仿真的时候会报错。
再点击右侧的优化选项,把visibility从默认的第一个选项改为第二个选项,把所有要观测的模块都显示出来,不然的话有些信号就看不到了。然后连续点击OK即可。
然后会进入到下图所示的界面:
(6)把需要观察的信号添加到观察列表当中。上图左侧的u_led对应tb代码中例化的模块。
右击想要观测的模块,选择Add wave。
窗口会变化为如下图所示:
现在波形的窗口还比较小,我们想把它单独拉出来,可以选择波形窗口右上角×的左边那个按钮,就可以把它独立出来。
左侧的信号默认是带有路径的,如果不想显示路径,可以选择上方菜单栏中的format,选择toggle leaf names,就可以隐藏路径了。
如果不想看某个信号,也可以单击它,按键盘上的Delete把它删除。
而如果想单独添加某一个信号,可以在外面的窗口找到对应的信号,把它添加到观察列表。
(7)开始仿真。在下图所示的仿真时间100ns右侧是几种运行的按钮,分别是运行一次,持续运行,一直运行,中断仿真。选择运行一次,就会仿真运行左侧小框内的时间,根据自己的需求修改即可。
其中一些有用的按钮,如下图所示,这里Zoom In和Zoom Out分别是放大和缩小,第三个Zoom Full,是让有效波形铺满整个屏幕。
一些其他的小技巧
1,可以在外面Transcipt窗口执行运行命令,如:
run 20us
就会让波形在原来的基础上仿真运行20us。
2,添加标尺。鼠标点中波形的某个地方,可以添加一个标尺。点击Insert Cursor按钮,可以再添加一个标尺。
3,点击左下角标尺前面的小锁,可以把对应的标尺锁定,想要删除标尺则可以点击x。
4,更换信号的显示进制。右击想要更改的信号,选择Radix,选择想要更改的进制即可,Unsigned为无符号十进制,Binary为二进制,Octal为八进制,Hexadecimal为十六进制。
5,放大缩小的另一种方法。先用标尺选中一个地方,然后点击上方菜单栏的Zoom In和Zoom Out 进行放大和缩小,这样就会基于我们选择的地方进行放大缩小,更加关注我们选中的位置。另外,也可以按住ctrl键,单击鼠标按住不放选中需要观测的区域进行查看;按住ctrl键,点按鼠标左键往左上方滑动,可以缩小。
6,重头开始运行。
可以单击仿真时间左侧的ReStart,在弹出的对话框中选择OK即可。
参考资料
正点原子领航者ZYNQ7020视频:第9.3讲 点亮LED灯-Modelsim仿真软件的使用。
标签:仿真,入门,FPGA,可以,Modelsim,标尺,点击,添加,代码 From: https://blog.csdn.net/qq1016019583/article/details/142636958