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

  • 相关阅读:
    CodeForces 288A Polo the Penguin and Strings (水题)
    CodeForces 289B Polo the Penguin and Matrix (数学,中位数)
    CodeForces 289A Polo the Penguin and Segments (水题)
    CodeForces 540C Ice Cave (BFS)
    网站后台模板
    雅图CAD
    mbps
    WCF学习-协议绑定
    数据库建表经验总结
    资源位置
  • 原文地址:https://www.cnblogs.com/zhongguo135/p/7683644.html
Copyright © 2011-2022 走看看