1、代码输入
(1)、新建一个ISE工程,名字为count4。
(2)、新建一个verilog文件

(3)、选择verilog module 输入file name为count4,单击next默认知道finish。

(4)、在count4.v文件中输入以下代码
module count4(out,reset,clk
    );
        
        output [3:0] out;
        input reset,clk;
        reg [3:0] out;
        
        always@(posedge clk) begin
              if(reset)
                     out<=0;
              else
                     out<=out+1;
        end
 
endmodule
(5)、新建一个testbench文件(综合时,不参与综合),和第(2)步骤相同
(6)、选择 verilog Test Fixture。
 

(7)、创建完成后,输入以下代码
module count4_tb;
      
       reg clk,reset;
       wire [3:0] out;
       parameter DELY=100;
      
       count4 mycount(.out(out),.reset(reset),.clk(clk));
       //count4 mycount(out,reset,clk);   若简写,功能仿真正确,时序仿真会因为端口不匹配,//会出错
       always #(DELY/2) clk=~clk;
      
       initial begin
              clk=0;
              reset=0;
              #DELY reset=1;
              #DELY reset=0;
              #(DELY*200) $finish;
       end
                    
       initial $monitor($time,,,"clk=%d reset=%d out=%d",clk,reset,out);
      
endmodule
注:可以修改文件的属性,是否为testbench或者为verilog文件。右击要修改的文件。选择source properties

 
 
修改属性,simulation为testbench   .implementation为正常的verilog文件
 

 
2、功能仿真
功能仿真放在综合前面,是因为大型程序综合需要很长的时间,而功能仿真不需要综合,可以先功能仿真,确保代码的正确性。功能仿真正确后,再综合,然后进行综合后仿真。
(1)、切换到simulation。选择behavioral。
 

 
(2)、单击选中count4_tb文件,然后双击simulate behavioral model。
 

(3)、在modelsim,查看波形等内容。
 
 

 
3、时序(综合后)仿真
时序仿真将时延考虑进去,包括综合后产生的(与、或、非)门时延,还有布局布线产生的时延。
综合(Synthesize),就是将HDL语言设计输入翻译成由与、或、非门和RAM、触发器等逻辑单元组成的网表。综合后可生成综合后仿真模型(Generate Post-Synthesis Simulation Model)。
 

综合后,进行ISE的实现(Implement),包括翻译、映射、布局布线。在这三个过程中都可以生成一个仿真模型(翻译和映射不会产生延时,因此常用布局布线后产生的仿真模型进行时序仿真)
 

(1)、进行综合,双击 Synthesize – XST ,想生成 Post-Synthesis Simulation Model,双击Generate Post-Synthesis Simulation Model即可,会在工程文件夹下生成netgen\synthesis\count4_synthesis.v等文件
 

(2)、进行实现,双击 Implement Design ,完成后,双击Generate Post-Place & Route Simulation Model.。生成布局布线后仿真模型。
 

 
(3)、切换到 Simulation ,选中Post-route。
 

 
(4)、然后选中count4_tb文件,双击下面的Simulate Post-Place&Route Model,启动modelsim。
 

(5)、在modelsim中观察仿真波形。可以看到输出out有明显的延时。
 

本文出自 “李海川” 博客,请务必保留此出处http://lihaichuan.blog.51cto.com/498079/984870

补充:http://wenku.baidu.com/link?url=idbSvNzz2fLSl1WXiEmtIL1amhQTHmtqqQ6g1cp-oU1X3W4wF2Wdu5LSe745rwjCrM-btR44-we9zLCyMf2ofjjAt2d8wcBT7LFyIHF8Tym

最新文章

  1. Primer – 支撑 GitHub 的 CSS 工具包和准则
  2. 剑指Offer:面试题23——从上往下打印二叉树(java实现)
  3. Linux系统man查询命令等级及意义
  4. u11-nav02
  5. 构造一个简单的linux系统
  6. JS获取IP、MAC和主机名的五种方法
  7. 操作SharedPreferences的注意点
  8. Android下EditText中的字体不统一问题
  9. Python进阶---面向对象第二弹
  10. C#开发微信门户及应用(47) - 整合Web API、微信后台管理及前端微信小程序的应用方案
  11. mysql主从复制搭建
  12. cpu的工作原理
  13. 5、原生jdbc链接数据库实例-自动取款机
  14. 如何将第三方jar包上传到Nexus私服
  15. linux内核链表使用
  16. 【NOIP复习】最短路总结
  17. CALayer的additive属性解析
  18. fio测试freenas共享的iscsi磁盘性能
  19. python查看微信消息撤回
  20. ST表算法笔记

热门文章

  1. 【.NET中AOP的实现方案】静态代理
  2. PHP Mysql-连接
  3. 改进版高速排序(平均复杂度O(NlogN))
  4. STS项目html文件中文乱码解决
  5. $ionicModal
  6. html字符转义
  7. eclipse properties文件插件
  8. java内存泄露问题
  9. MyBatis JdbcType 与Oracle、MySql数据类型对应关系详解
  10. Java虚拟机学习 - 垃圾收集器 (4)