- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
modelsim初学者教程
Modelsim SE 10.0.c 入门教程
小小龙
结合黑金 FPGA 开发板的所用的软件quartus 11.0 与modelsim10.0c,
本文介绍给初学者介绍Modesim SE 入门,Modesim SE 入门视频可
在 上下载!
大家知道,自从quartus 10 以后,quartus 就不自带的波形仿真软件,
想要仿真需自己安装第三方软件(如modelsim 等),闲话我就不多说,
下面主要介绍如何在 quartus 11.0 中如何调用 modelsim 10.0c 以及
testbench 的编写。
下面就以一个计数器为例进行讲解 (黑金开发板DB4CE 平台),前提
需安装quartus11.0 、modelsim10.0c,好了,切入正题。
新建工程时在出现的画面中按如下设置
根据仿真软件及语言进行选择,上图我们用到的软件为modelsim, 语
言:Verilog HDL
下面我们编写一个计数器程序,在quartus 中编写count128.v 文件,
代码如下:
module count128(clk,rst_n,divclk,data);
input clk,rst_n;
output divclk;
output [7:0] data;
reg[7:0] data;
assign divclk=data[7];
always@(posedge clk or negedge rst_n)
if(!rst_n)
begin
data=8h00;
end
else
begin
data=data+1b1;
end
endmodule
程序实现对clk 的128 分频
下一步告诉大家怎样编写仿真测试文件testbench,如下操作
至此,testbench 模板已经 OK!,生成的文件为.vt,位于工程文件夹
simulation\ modelsim 中,如下
有了模板,但只是给了我们一个架构,还需要编写仿真文件,打开模
板,来瞧瞧里面到底有些什么
`timescale 1 ps/ 1 ps
module count128_vlg_tst();//顶层模块名
// constants
// general purpose registers
reg eachvec;
// test vector input registers
reg clk;
reg rst_n;
// wires
wire [7:0] data;
wire divclk;
// assign statements (if any)
count128 i1 (
// port map - connection between master ports and signals/registers
.clk(clk),
.data(data),
.divclk(divclk),
.rst_n(rst_n)
);
initial
begin
// code that executes only once
// insert code here -- begin
// -- end
$display(Running testbench);
end
always
// optional sensitivity list
// @(event1 or event2 or eventn)
begin
// code executes for every event on sensitivity list
// inse rt code here -- begin
@eachvec;
// -- end
end
endmodule
注意:testbench 中规定
a) 输入一律为reg 型变量,输出为wire 型;
b) 可以有不可综合的语句;for,while 等;
根据count128.v,测试文件testbench 为
`timescale 1 ps/ 1 ps//仿真时间单位
module coun
文档评论(0)