文档详情

modelsim初学者教程.pdf

发布:2017-06-02约2.68千字共11页下载文档
文本预览下载声明
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
显示全部
相似文档