使用ModelSim完成基本的HDL仿真

使用ModelSim完成基本的HDL仿真

ID:40595086

大小:334.50 KB

页数:11页

时间:2019-08-04

使用ModelSim完成基本的HDL仿真_第1页
使用ModelSim完成基本的HDL仿真_第2页
使用ModelSim完成基本的HDL仿真_第3页
使用ModelSim完成基本的HDL仿真_第4页
使用ModelSim完成基本的HDL仿真_第5页
资源描述:

《使用ModelSim完成基本的HDL仿真》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、使用ModelSim完成基本的HDL仿真时间:2010-02-2216:12来源:芯合FPGA学习网作者:admin点击:358次这里我们教大家使用ModelSim完成基本的HDL仿真。所应用的仿真代码是ModelSim自带的。     这里我们教大家使用ModelSim完成基本的HDL仿真。所应用的仿真代码是ModelSim自带的。安装了ModelSim后,可以在安装目录的examples/tutorials/verilog/basicSimulation下找到counter.v和tcounter.v。其中counter.v是被验证设计,tcounter.v是Testben

2、ch。   仿真过程如下1.打开ModelSim,首先建立一个新的Project,选择File->New->Project,图12. 在弹出的CreateProject窗口中给Project任意起一个名字,并指定Project的目录(ProjectLocation)。我们假设ProjectName为TestCounter,创建的Library名为work(所有我们编译后的代码的模块将被放入到work库中)。如下图所示: 图23.点击OK后弹出添加HDL代码到Project的窗口,如下图: 图3我们选择AddExistingFile,假设$ModelSim是你的ModelSim

3、的跟目录,则添加下面两个文件:$ModelSim/examples/tutorials/verilog/basicSimulation/counter.v$ModelSim/examples/tutorials/verilog/basicSimulation/tcounter.v添加文件的窗口如下图所示图4Tcounter.v的源代码如下:1.module test_counter;  2. 3.reg clk, reset; 4.wire [7:0] count;  5. 6.counter dut (count, clk, reset);  7. 8.initial //

4、 Clock generator 9.  begin 10.    clk = 0; 11.    forever #10 clk = !clk; 12.  end 1.   2.initial // Test stimulus 3.  begin 4.    reset = 0; 5.    #5 reset = 1; 6.    #4 reset = 0; 7.  end 8.   9.initial 10.    $monitor($stime,, reset,, clk,,, count);  11.     12.endmodule    counter.v的源代码

5、如下:1.module counter (count, clk, reset); 2.output [7:0] count; 3.input clk, reset;  4. 5.reg [7:0] count; 6.parameter tpd_reset_to_count = 3; 7.parameter tpd_clk_to_count   = 2;  8. 9.function [7:0] increment; 10.input [7:0] val; 11.reg [3:0] i; 12.reg carry; 13.  begin 14.    increment = v

6、al; 15.    carry = 1'b1; 16.    /*  17.     * Exit this loop when carry == zero, OR all bits processed  18.     */  19.    for (i = 4'b0; ((carry == 4'b1) && (i <= 7));  i = i+ 4'b1) 20.       begin 21.         increment[i] = val[i] ^ carry; 22.         carry = val[i] & carry; 23.       end

7、 24.  end        25.endfunction  26. 1.always @ (posedge clk or posedge reset) 2.  if (reset) 3.     count = #tpd_reset_to_count 8'h00; 4.  else 5.     count <= #tpd_clk_to_count increment(count);  6. 7./**************************************************

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。