zoukankan      html  css  js  c++  java
  • ISE联合modelsim功能仿真和综合后仿真

    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即可,会在工程文件夹下生成netgensynthesiscount4_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

  • 相关阅读:
    bash 中有效建立锁
    go 语言 Makefile 指定依赖包位置
    在 mysql 中对特定的库禁用 DDL 语句
    go 语言并发机制 goroutine 初探
    Google和facebook如何应用R进行数据挖掘
    数据应用催生商业模式
    4款语音播报来电短信应用[Android]
    让 php 用 nginx 打包 zip
    10个关于 Dropbox 的另类功用(知乎问答精编)[还是转来了]
    分析以数据挖掘技术预测用户流失情况的方法
  • 原文地址:https://www.cnblogs.com/chengqi521/p/6196608.html
Copyright © 2011-2022 走看看