赞
踩
一、建立文件夹
先在电脑建立一个文件夹,目的是把接下来的各种操作产生的文件都存到这个文件夹里。比如我在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 © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。