【问题标题】:why clk_o2 is x here?为什么 clk_o2 在这里是 x ?
【发布时间】:2019-12-01 22:59:35
【问题描述】:

我尝试过延迟初始,但它不起作用 我是 Verilog 的新手,这是一个培训问题

The ClockDivisor Code

The Test bensh

The Result

如果我在负边缘更改它,我会在 clk_o2 处得到 x

【问题讨论】:

  • 将代码直接发布到问题中而不是链接到它的屏幕截图真的很有帮助。这使得我们自己尝试并在回答时参考它变得更容易。此外,通过在负面边缘改变它来找到你的意思是一件很困难的事情。
  • 不知道什么原因,我尝试发布代码时,系统拒绝并告诉我格式化我的代码:(

标签: verilog gtkwave


【解决方案1】:

我认为您指的是 clkdivisor 模块中的最后一个 always 块。问题是您的测试台在时间 0 生成 negedge clk,因为它从 X 编码到 0。这会与 initial 块试图将时钟输出 2 分配给 0 产生竞争。

您可以通过使用阻塞分配来摆脱竞争。 初始开始 时钟输出1 = 0; 时钟输出2 = 0; 结束

您的代码肯定是不可综合的。还有其他方法可以解决这个问题,但我们不知道具体应该怎么做。

【讨论】:

    猜你喜欢
    • 2011-05-05
    • 2015-06-06
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    • 2020-06-01
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多