Modelsim10.4a是Modelsim10.3的升级版,软件具有强大的仿真环境,主要用于VHDL和Verilog语言的仿真,先进的仿真技术,优化的编辑功能、内核仿真和Tcl/Tk功能,可以加快编译仿真速度,并且编译的代码与平台无关,极大的保护IP核,需要的朋友可以来本站下载!
软件特色
· RTL和门级优化,本地编译结构,编译仿真速度快,跨平台跨版本仿真;
· 单内核VHDL和Verilog混合仿真;
· 源代码模版和助手,项目管理;
· 集成了性能分析、波形比较、代码覆盖、数据流ChaseX、Signal Spy、虚拟对象Virtual Object、Memory窗口、Assertion窗口、源码窗口显示信号值、信号条件断点等众多调试功能;
· C和Tcl/Tk接口,C调试;
· 对SystemC的直接支持,和HDL任意混合;
· 支持SystemVerilog的设计功能;
· 对系统级描述语言的最全面支持,SystemVerilog,SystemC,PSL;
· ASIC Sign off。
· 可以单独或同时进行行为(behavioral)、RTL级、和门级(gate-level)的代码。
Modelsim 10.4安装教程
1、运行“Modelsim SE 10.4”文件,进入安装界面,点击next
2、选择安装目录,默认的是C盘,可以点击browse修改
3、阅读许可协议,点击Agree表示同意协议继续安装
4、正在安装中,如图所示,我们耐心等待下
5、弹出窗口点击YES,创建桌面快捷方式
6、打开Modelsim SE 10.4安装目录,找到“mgls64.dll”文件,右键文件属性取消只读属性。默认安装路径:C:modeltech64_10.4win64
7、将MentorKG.exe和patch_dll.bat复制到安装目录下,然后运行“patch_dll.bat”,自动默认目录C:Users用户AppDataLocalTemp下生成license文件
8、右键点击我的电脑,点击属性》高级系统设置》高级》环境变量》新建,新建变量名为:MGLS_LICENSE_FILE,变量值为:(“license.txt”所在的目录,可以自行修改)一般默认为C:UsersadminAppDataLocalTemplicense.txt
常见问题
1、直接将用VerilogHDL编写的128分频器程序count128.v设置为工程的顶层设计文件,编译失败?
快速建立了一个只有一个器件的电路图文件:Msim.bdf,将输入输出信号直接引出来,并将其设为顶层文件,编译通过
2、编译通过后进行仿真,仿真失败?
原因是:
已经设定仿真语言为Verilog HDL
解决方法:
用手工重新写了一段Verilog HDL语言的顶层设计文件MSim.V。编译通过,并且仿真正常
3、波形加载慢的问题解决办法?
方法一
先仿真1ms,然后zoom full一次,在此基础上再跑1ms,再zoom full,依此类推跑到10ms,这时再zoom full就很快地完成了。我猜原因是前面的9次zoomfull建立了一些缓存数据,以供第10次使用,所以变快了
方法二
变化频率最大的信号删除掉,通常情况下,变化频率最大的信号是时钟信号,如果一定要保留,那么可以将该信号的format设为literal,或者event,如果format是logic,将严重拖慢画波形的速度。设置的方法是在波形信号处点击右键,选择format->literal
使用教程
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 W**e,再点击屏幕下方的
出现下图界面:
全部选中它们,右击:
点击 Add W**e,然后点击屏幕下方的w**e:
出现如下界面:
再点击simulate:
Run all后就出现仿真图形了(在w**e标签下显示,图形可用键盘上的"+","-"进行放大缩小):
ok,大功告成!!!
软件评论 您的评论需要经过审核才能显示
网友评论