You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EDAPlayground运行Verilog代码提示达到最大运行时长问题求助

问题原因分析
  • 最直接原因是测试台缺少仿真终止逻辑:你编写的测试模块仅定义了输入激励,未添加$finish系统函数终止仿真,时钟生成的always块会无限翻转时钟,导致仿真持续运行,触发EDAPlayground平台的最大运行时间限制。
  • 设计代码存在逻辑隐患:时序块内的三个if(all == xx)分支为并行判断,虽然当前逻辑不会出现冲突,但使用else if替代可避免多分支同时触发的风险,同时也能减少不必要的运算。
  • 二进制数语法无错误:你写的2'b00、4'b0111等二进制表示语法符合Verilog规范,编译可正常通过即可证明该部分没有问题。
修复方案

1. 修改测试台添加终止逻辑

在测试模块的initial块末尾添加足够的运行延时后调用$finish终止仿真,修改后的测试文件如下:

module test;

    reg clk;
    reg rst;
    reg x;
    reg ce;
  
  
    // Outputs
    wire z;

    // Instantiate the Unit Under Test (UUT)
    hazimodul uut (
        .clk(clk), 
        .rst(rst), 
      .x(x),
      .ce(ce),
      .z(z)
    );

    initial begin
        // Initialize Inputs
        clk = 0;
        rst = 0;
        x=0;
        ce=0;

        #10;
        rst<=1;
        #20;
        rst<=0;
        #30
        ce<=1;
        #40
        x<=1;
        #80
        x<=0;
        #90
        x<=1;
        // 新增:等待所有激励生效后终止仿真
        #200;
        $finish;
    end
    always #5
        clk <=~clk;
endmodule

2. 优化设计代码逻辑

将并行if改为else if,消除逻辑隐患,修改后的设计文件如下:

module hazimodul(
  input clk,
  input rst,
  input ce,
  input x,
  output z
  
);
  

  reg[1:0] all;
  reg[3:0] y;
  reg zout; // reg[0:0]等价于reg,可简化写法
  
  always@(posedge clk)
  begin
    if(rst)
      begin
        zout <= 1'b0;
        all <= 2'b00;
        y <= 4'b0111;
      end
    else if(ce)
      begin
        if(all == 2'b00)
          begin
            if(x== 1'b0)
              zout<=1'b0;
            else 
              all <=2'b01;
          end
        else if(all==2'b01)
          begin
            zout <= y[3]; // y[3:3]等价于y[3],可简化写法
            y <= {y[2:0],y[3]};
            if (y == 4'b0111)
              all <= 2'b10;
          end
        else if(all==2'b10)
          begin
            if(x == 1'b0)
             all <= 2'b00;
             
          end
      end
  end
  
  assign z = zout;
  
endmodule 

修改完成后即可在EDAPlayground平台正常完成仿真,不会触发超时错误。

内容的提问来源于stack exchange,提问作者toorelevant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:15:03