modelsim的详细使用方法和容易出现的问题!(适用初学者)

您所在的位置:网站首页 modelsim使用步骤 modelsim的详细使用方法和容易出现的问题!(适用初学者)

modelsim的详细使用方法和容易出现的问题!(适用初学者)

2024-06-22 13:19| 来源: 网络整理| 查看: 265

一、建立文件夹

先在电脑建立一个文件夹,目的是把接下来的各种操作产生的文件都存到这个文件夹里。比如我在D盘创建一个名字叫project_mux的文件夹。取名不要带中文。

二、

双击打开modelsim,有弹窗则关掉。然后  File→Change Directory   弹出的窗口选择刚才建立的文件夹,点击确认。做完这一步,我们的modelsim就如图三所示。

 三、建立库(library)

接下来,建立仿真库。编写verilog代码后,modelsim会把代码映射到实际的电路模型。而仿真库里面,有实际的电路模型。所以我们要添加仿真库。

File → Library  ,默认的库名叫work , 我们也可以自己取名, 我在此处均默认

操作完后,发现多出了work(empty) 这个就是我们刚刚建立的库,但是此时是empty,表示目前还没有工程用到它,接下来我们建立工程。

 四、建立工程(project)

File → Project   工程名自己取(我取名mux)意思是多路选择器

五、创建源文件和测试文件

六、开始写代码

双击mux2_1.v 文件,一般会直接弹出代码窗口。但是也有可能弹出记事本窗口,这个时候可以点右上方的open 分两次分别打开mux2_1.v和mux2_1_tb.v文件。然后就可以看到各自的代码窗口了。接着,分别在各自的代码窗口敲代码,源代码和测试代码分别在下方。 

 源代码

module mux2_1(     a,     b,     sel,     out );     input a;     input b;     input sel;     output out;          assign out = (sel==1)?a:b;

endmodule

测试代码

`timescale 1ns / 1ns

module mux2_1_tb();          reg s_a;     reg s_b;     reg sel;     wire out;          mux2_1 mux2_1_inst0(         .a(s_a),         .b(s_b),         .sel(sel),         .out(out)     );          initial begin         s_a = 0;s_b=0;sel=0;         #200;         s_a = 0;s_b=0;sel=1;         #200;                 s_a = 0;s_b=1;sel=0;         #200;         s_a = 0;s_b=1;sel=1;         #200;          s_a = 1;s_b=0;sel=0;         #200;         s_a = 1;s_b=0;sel=1;         #200;                 s_a = 1;s_b=1;sel=0;         #200;         s_a = 1;s_b=1;sel=1;         #200;          $stop;                             end      endmodule

写完源代码,一定要  ctrl+s  保存!!!

写完测试代码,也要  ctrl+s  保存!!!

否则,等会儿就算编译通过了,你的库(work)仍然是(empty)!!!

这样就仿真不了了!!!

(这里不太知道能不能直接复制代码,我按照上面的代码自己敲进去,编译的时候是没问题的

但是如果复制上面的代码,然后粘贴进modelsim,编译会报错。。。我也不知道为啥)

七、开始编译

在空白处鼠标右键,然后compile → compile all 

编译成功的话,mux2_1.v 和 mux2_1_tb.v两个文件的  ”❓“  会变成   ”✔“  下方的窗口也会出现successful

八、开始观察仿真波形

点击左下角的library  我们发现,work库不再是empty,而是多出了这两个文件,说明,这两个文件可以调用work仿真库,库里面有实际的电路模型,这样写的源代码才能映射电路,测试代码产生的激励作用电路,才会产生波形,这也就是为什么之前我们要建立仿真库。

接着右击mux2_1_tb.v文件 → simulate  

九、仿真波形的设置

可能你在上一步后弹出的界面是这样的,没有wave窗口,又或者没有object窗口,没有precess窗口。这个时候可以在view下拉菜单把它们都点击一下,这样就会出现 勾号 ,然后就会出现相应的窗口了。(如果有勾号,但是没有窗口,那么就点一下取消勾号,接着再点一下,出现勾号,这个时候,就有窗口了)

十、添加object窗口的这几个信号到wave窗口

这个时候,wave窗口还没有波形,因为你还没有把信号添加进去。所以我们要添加信号。

按住ctrl键,然后在object窗口,把这几个信号全点上,按照图片的选项选择,便可发现wave窗口多出了信号。这个时候波形还没出现,因为还没开始跑。所以点”Restart“  →出现的弹窗点ok → 

 ”Run All“  有可能这个时候,wave窗口会突然没了,不要慌,它只是收起来了,可以自己按照图片点开,这个时候便出现了波形。

 

十一、保存波形

在wave窗口,按 CTRL + S 则可以自己选择波形保存位置。它默认保存在第一步时电脑建立的文件夹下。

十二、总结

1、建立文件夹

2、把modelsim的所有文件改路径(change Directory),放在第一步的文件夹下。

3、建立库(library),目的是为了让后面的代码有映射的电路。

4、建立工程(project)

5、建立源文件和测试文件(creat new file)

6、往源文件和测试文件写代码,写完一个窗口代码要CTRL+S保存,一定要保存。不然后面modelsim的library里的work库可能为empty。即work库没有源文件和测试文件。

7、编译(compile)

8、进行波形仿真(simulate)

9、在view中调出object、precess、wave窗口

10、从object窗口把信号添加到wave窗口,restart → run all,观察波形是否满足要求

11、保存波形



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3