当前位置:   article > 正文

modelsim一点仿真就闪退?别怪华为管家了!其实是stop/finish的原因_multisim闪退

multisim闪退

modelsim一点仿真就闪退?别怪华为管家了!其实是stop/finish的原因!!

项目场景:

平时的vivado自带的仿真用得多(下文会说,用finish也不会出问题的。。。)
最近用TD需要仿真它的IP核,就只能用modelsim了。。。。。

结果我在modelsim里,compile all之后,一点击start simulation就闪退。。。。
在这里插入图片描述

在这里插入图片描述


问题描述

提示:一般你写testbench的时候不会去写最后这个initial语句,这是vscode的插件自动生成的模板~

注意最后的initial语句中:$finish;

//~ `New testbench
`timescale  1ns / 1ps

module tb_top1;

// top Parameters
parameter PERIOD  = 10;


// top Inputs
reg   clk                                  = 0 ;
reg   rst                                  = 1 ;
reg   [23:0]  di                           = 1 ;
reg   re                                   = 0 ;
reg   we                                   = 0 ;

// top Outputs
wire  [23:0]  do                                   ;
wire  empty_flag                           ;
wire  full_flag                            ;

glbl glbl();

initial
begin
    forever #(PERIOD/2)  clk=~clk;
end

initial
begin
    #(PERIOD*2) rst  =  0;

    #(PERIOD*2.5);

    we=1'b1;//di=24'd9;

    #(PERIOD)   di=24'd2;//
                
                re=1'b1;//读使能
    
    #(PERIOD)   di=24'd3;  
                   
    
    #(PERIOD)   di=24'd4; 
                we=1'b0;

    #(PERIOD)  di=24'd0;
    #(PERIOD*0.2)   re=1'b0;  
            
    //#(PERIOD*0.5)   


end

top  u_top (
    .clk                     ( clk                ),
    .rst                     ( rst                ),
    .di                      ( di          [23:0] ),
    .re                      ( re                 ),
    .we                      ( we                 ),

    .do                      ( do          [23:0] ),
    .empty_flag              ( empty_flag         ),
    .full_flag               ( full_flag          )
);

initial
begin

    $finish;
end

endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73

尝试解决(失败)

如果你去百度orCSDN搜索,有关“modelsim仿真闪退”相关的关键词,大致会得到的原因&解决方案:
华为管家,退出
安全模式
爱奇艺等启动选项(我觉得很玄学)

甚至我也责怪了我的荣耀笔记本一段时间。。。。

发现小丑竟是我自己!!!!(请继续阅读下去~)


原因分析&解决方案:

还是在于自己忽略了 $ stop和$ finish的作用。。。verilog基础不牢,地动山摇~

其实,从Are you sure you want to finish?; 其实也应该反应过来,啊 ,我用的是“$finish”
在这里插入图片描述

简单来说, f i n i s h 就 是 退 出 , finish就是退出, finish退,stop就是退出
;

在这里插入图片描述

(其实个人建议不用 $ stop那一段话)
如果用了,你第一次点击仿真就会新打开Tb的文件,停留在$stop这个地方,确实就是“停止仿真”的意思
然后回到仿真界面,再点一次运行多少s,波形就出来了~

在这里插入图片描述


关于modelsim的其他帖子

我还会整理其他相关的modelsim相关的使用技巧~
(待更新)

待更新-modelsim专栏

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/597990
推荐阅读
相关标签
  

闽ICP备14008679号