zoukankan      html  css  js  c++  java
  • modelsim仿真基本流程

    好久没再用过modelsim,都忘的一干二净了。刚换了份工作,又要重新拾起来,不过现在感觉modelsim的仿真其实是比较快的,很有用处。再者这么长时间老是学了忘,忘了再学,觉得真浪费时间,平时确实应该好好总结下的,关于modelsim的仿真这一次一定要系统的总结出来,顺便再练下写文档的能力。

    modelsim仿真方法1:用modelsim直接建立工程。

    1、建工程

    输入工程名,选择工程路径。

    添加源文件及测试文件。

    在这里为什么要选择第二项,我也不在了然的,改天再查下。

    文件添加进来之后就是编译了。

    如果编译通过会出现下面的对勾,如果不对当然就是XX了

    下一步是仿真

    选择测试脚本。另外把下面的优化去掉,不然有些信号优化就没有了,具体是怎么回事我还不明白,再查吧。

    单击OK进入下面的界面,选择信号右击添加信号到wave文件中。

    设置下仿真时间。就可以run了。

    可以看到波形了

    这个过程还是比较简单的,有些Ip的仿真却要添加库,怎样处理,在随后的modelsim仿真2中再说了。

    附录:

    源文件.v

    module counter(

    rst_n,

    clk,

     

    valid

    );

    parameter CNT_WIDTH = 3'd4 ;

    parameter CNT_NUM = 4'd15;

     

    input clk ;

    input rst_n ;

     

    output valid ;

    reg  valid;

     

    reg [CNT_WIDTH-1:0] cnt ;

     

    always@( posedge clk )

    begin

    if (rst_n == 0) 

    begin

    cnt <= 4'd15;

    end

    else

    begin

    cnt <= cnt + 1'b1;

    end

    end

     

    always@( posedge clk)

    begin

    if(rst_n == 0) 

    begin

    valid <= 1'b0;

    end

    else if(cnt == CNT_NUM)

    begin

    valid <= 1'b1;

    end

    else

    begin

    valid <= 1'b0;

    end

    end

    endmodule

    测试脚本.v

    module counter_tb;

     

    reg rst_n;

    reg clk;

     

    wire valid;

     

    counter u_counter(

    .rst_n (rst_n),

    .clk(clk),

    .valid(valid)

    );

     

    initial

    begin

    #0 rst_n = 0;

     clk = 0;

    #100

    rst_n = 1;

    end

     always

    begin

    #10 clk = ~clk;

    end

    endmodule

  • 相关阅读:
    IntelliJ IDEA 2017 反向代理工具新方法激活
    如何去掉idea里mybatis的.xml文件 sql 语句背景色
    eclipse、idea切换大小写的快捷键
    pageHelper没有分页效果的问题
    springboot使用thymeleaf 解析异常
    SpringBoot发送简单文本邮件
    IDEA中使用git详细步骤
    解决 git branch -a 无法全部显示远程的分支,只显示master分支
    git常用命令
    异常处理
  • 原文地址:https://www.cnblogs.com/zhongguo135/p/7683644.html
Copyright © 2011-2022 走看看