Modelsim的仿真之路(仿真工程的使用)

前言

上一篇介绍了基础仿真的流程,本篇将以工程的形式来介绍ModelSim的仿真使用,工程一般由:根目录+源码+work库+资源库+仿真设置+元数据组成,其中元数据就是工程的一些设置数据,会以一个 .mpf 后缀的文件存在于指定路径,在这之中会包换:编译的设置,编译顺序还有文件的映射之类的。

开始今天的使用吧~

工程使用

创建工程

将本篇使用到的文件放置到自己的工程路径下,然后选择菜单栏 File > New > Project

image-20211031211836325

在弹出的界面中填写工程的名字、工程的路径、以及工程默认库的名字,使用默认的work就好了、还有就是初始化配置文件的路径,配置文件选安装路径下的modelsim.ini即可,然后选择Copy Library Mappings,这样就可以把这个文件直接加到这个工程中了,使用Reference也可以;

image-20211031212256129

都填好后,直接OK,这时就改进入工程的设置了,由于是一个空的工程,所以系统会弹出添加东西到工程的窗口,在这窗口,可以创建新的文件、添加已有的文件、创建仿真的配置以及创建文件夹,因为已经准备好了文件,所以就直接点 Add Existing File;

image-20211031212917150

点完后,又出现了一个新的窗口,提示要从哪添加文件,点Browse,然后将counter.v和tcounter.v加进来,最下方的选项,因为工程已经和这两个文件在一个目录下了,所以选择Reference即可,如果是其他路径下的,就可以考虑Copy过来进行管理;

image-20211031213350647

接着OK,然后Close掉添加东西到工程的界面,这时候注意Project的栏中,多了刚添加的两个文件,且Status显示的是一个蓝色问号,这代表该文件还未编译;Order就是两者的一个编译顺序以及文件改动的时间;

image-20211031213727124

文件编译

如果想改变编译顺序,右键 > Compile > Compile Order

image-20211031214057341

使用这两个箭头来改变文件的编译顺序,点Auto Generate 就会以Top层开始进行编译,如果顺序不正确,它也会自动循环跑,然后找到这个Top层往下一层层的编,可以的话,就自己用箭头先把顺序按正确的来设置好。

image-20211031214217952

除了用上面的Auto来编译外,还可以直接单个编译,或者选全部编译,图中两个箭头所指

image-20211031214942015

编译成功后,状态会变为绿色的勾,如果代码出问题了,就是个红色的X,这时候就有根据Transcript 的信息去改代码了,跳到Library的窗口,从原本empty的状态变为了一个带 + 号的状态

image-20211031215338769

点开 + 号,可以看到两个编译的结果,名字、类型和路径都在信息里,选中test_counter,右键 > Simulate,进入仿真界面

image-20211031215446896

在Sim窗口含仿真文件的层次结构,接着的基本仿真使用就和上一篇的一样了

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UkT8X28O-1635695080048)

在Transcript窗口输入:quit -sim,退出仿真,准备接下来的

文件管理

因为是举例,所以使用到的文件比较少,但是平常做项目的适合,文件就多了,这时候如果没有管理好文件的类别,那就看着有点头疼了,接下来用文件夹的形式来管理文件;

在刚开始创工程的时候,就有个Create New Folder的选项,可以在这时候就创建好文件夹,在工程创建好后还需要新建文件夹来管理,就接着往下操作;

回到Project的窗口,右键 > Add to Project > Folder ,在弹出的窗口输入文件夹的名字,按正常的文件夹格式来对文件夹取名就好了,然后OK

image-20211031221613420

在Project窗口中也多了一个文件夹的图标

image-20211031221718372

只有一个文件夹的话,显然,如果是一堆文件,那就还需要做细分,这边就按激励文件和模块文件来分类,继续 右键 > Add to Project > Folder ,填写子文件夹的名字,且将该文件夹放置在Design Files的文件夹下,然后OK

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4DQsBG7f-1635695080054)

重复上述的操作,再加入一个Source的子文件夹,然后效果如下

image-20211031222223962

然后就该把文件添加到对应的文件夹下进行管理了,选中 counter.v(如果是多个文件,就选中多个) 然后右键 > Properties

image-20211031222515394

在属性窗口,可以从 Place In Folder 看到文件放在Top层,修改它,将其放置在Source层,然后OK

image-20211031222706553

重复上述操作,将tcounter.v放入testbench文件夹下,这时的效果如下

image-20211031222902276

会发现状态又变成了问号,这是因为改变了文件的位置,工程已经不知道编译结果是否依然有效,所以需要重新编译才能继续使用。

仿真配置

仿真配置就是将模块和仿真的选项存在了一个文件中,然后直接使用该文件就可以自动按设置好的启动仿真,举个例子:假设你的某个模块需要对仿真的时间精度然后还需要做一些自检啥的,这时候就可以直接用配置文件来操作,以省去不必要的步骤。

在Project窗口 右键>Add to Project > Simulation Configuration ,在出现的界面中,填入配置文件的名字,以及放置的文件夹,这边选则放在testbench文件夹下;

image-20211031225154956

接着选中work库下的 test_counter,仿真精度(Resolution)改为ps

image-20211031225205494

选中Verilog的窗口,将Enable hazard checking (-hazards) 的选项打勾,然后点Save进行保存

image-20211031225314514

在文件夹下就有了该仿真配置,直接双击它

image-20211031225407717

然后在Transcript 窗口可以看到仿真的命令和之前的有了一些不同,是按照刚刚的设置启动了仿真

image-20211031225636299

结束

本篇关于仿真工程的使用就介绍到这了,如果工程未关闭,下次启动modelsim时,则会自动打开该工程,要关闭的话,File > Close Project ,再点“是”就好了。

image-20211031230331581


传送门

更多精彩,等你发现~


猜你喜欢

转载自blog.csdn.net/Smart_Devil/article/details/121072357
今日推荐