【问题标题】:Why is my counter out value producing StX?为什么我的反价值产生 StX?
【发布时间】:2021-11-01 22:21:26
【问题描述】:

我做了一个简单的 32 计数器和一个测试台。我不确定为什么输出的值 (co) 仍然以 StX 的形式出现。我已经尝试调试了好几个小时,但我不确定这个问题。

【问题讨论】:

    标签: verilog fpga test-bench


    【解决方案1】:

    co 是 X(未知),因为它是对依赖于 current 的表达式的连续赋值,即 X。current 是 X,因为您将其声明为 regreg 类型在时间 0 默认为 X,然后您永远不会将其分配给已知值。

    您的测试台始终将rst 驱动为0。这意味着第8 行永远不会执行。第 10 行将在 clk 的每个上升沿执行,但 current 将保持在 X。X+1 返回 X。

    您需要正确重置您的设计。在时间 0,您应该通过设置 rst=1 来断言复位。延迟一段时间后,您应该释放重置设置rst=0。

    initial begin
        clk = 0;
        rst = 1; // Assert reset
    
        #20;
        rst = 0; // Release reset
    
        #10;
        en = 1;
        init = 1;
    end
    

    【讨论】:

      【解决方案2】:

      您的计数器复位为高电平有效。您永远不会将其设置为 1。您需要将其设置为 1 至少一个时钟周期。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-28
        • 1970-01-01
        • 1970-01-01
        • 2019-06-26
        • 2011-11-18
        相关资源
        最近更新 更多