ModelSim新手使用手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ModelSim最基本的操作,初次使用ModelSim的同学,可以看看,相互学习。
无论学哪种语言,我都希望有个IDE来帮助我创建一个工程,管理工程里的文件,能够检查我编写代码的语法错误,能够编译运行出现结果,看看和预期的结果有没有出入,对于Verilog语言,我用过Altera的Quartus II,Xilinx的ISE,还有ModelSim(我用的是Altera 官网的ModelSim_Altera),甚至MAXPlus II,不过感觉这软件太老了,建议还是前三者吧。
学Verilog,找一本好书很重要,参考网友的建议,我也买了一本夏宇闻老师的《Verilog 数字系统设计教程》,用Quartus II来编写代码,个人觉得它的界面比ISE和ModelSim友好,我一般用它编写代码综合后自动生成testbench,然后可以直接调用ModelSim仿真,真的很方便,但学着学着,发现夏老师书里的例子很多都是不可综合的,比如那些系统命令,导致很多现象都发现不了,偶然间我直接打开了ModelSim,打开了软件自带的英文文档,步骤是:Help ->PDF Documentation->Tutorial如下所示:
打开文档的一部分目录:
往下读发现其实ModelSim可以直接创建工程,并仿真的。
下面以奇偶校验为例叙述其使用过程(当然前提是你在Altera官网下载了ModelSim并正确安装了)。
1.打开软件,新建一个工程,并保存到自定义的目录中(最好别含中文路径)
2.点击Project,弹出窗口问是否关闭当前工程,点击Yes,接着又弹出如下窗口
我个人的习惯是把Project Name和Default Library Name写成一样,自己定义Project Location。
又弹出如下窗口:
3.点击Close(我的版本不能Create New File,其实新建好了工程一样可以新建.v文件),然后点击屏幕下方的Project标签:
如果一开始不是如上图所示的界面,那么可以点击如下图所示红色标记的按键变成上图界面:
4.在屏幕空白处右击鼠标,出现如下窗口:
5.现在可以选New File或者Existing File(首先你已经编写好了)。
这里选择New File,写上File Name,勾选好type,这里选Verilog语言:
6.双击parity.v文件,可以进行编辑了
然后编写代码:
// **************************************************************
//目标:求一个八位二进制数的奇校验位
//作者: 杨海平江南大学物联网工程学院
//日期: 2015/4/15
//版本: V 1.0
//摘要: 奇校验是指如果一个二进制数有奇数个1,则其奇校验位为0,否则为1 // **************************************************************
module parity(rst_n,dat_i,dat_o);
input rst_n;
input[7:0] dat_i;
output dat_o;
assign dat_o = !rst_n ? 1'b0 : ^dat_i ? 1'b0 : 1'b1;
endmodule
和编写parity.v文件一样,编写测试脚本,名字为paritytst.v:
测试代码如下:
`timescale 1 ps/ 1 ps
module paritytst();
reg rst_n;
reg[7:0] dat_i;
wire dat_o;
parity i1(.rst_n(rst_n),
.dat_i(dat_i),
.dat_o(dat_o)
);
initial
begin
rst_n <= 0;
#5 rst_n <= 1;dat_i <= 8'b00110011;
#20 dat_i <= 8'b00110011;
#20 dat_i <= 8'b00100011;
#20 dat_i <= 8'b00111011;
#20 $stop;
end
endmodule
7.左击任意文件,选中它,然后右击选择编译全部
点击屏幕下方的Transcript,可以查看文件编译情况
如果出错,则出现如下提示,双击任意一段红色字段,都会弹出错误信息,帮助你修改代码
修改好了代码之后,就可以进行仿真了
点击ok,再点击屏幕下方的sim标签(新出现的)
再点击i1左边的"+"号,右击我选中的蓝色部分,
点击Add Wave,再点击屏幕下方的
出现下图界面:
全部选中它们,右击:
点击Add Wave,然后点击屏幕下方的wave:
出现如下界面:
再点击simulate:
Run all后就出现仿真图形了(在wave标签下显示,图形可用键盘上的"+","-"进行放大缩小):
ok,大功告成!!!。