为什么myHDL手册中的这个例子给出了不同的结果?

时间:2013-10-19 13:46:38

标签: python myhdl

我从Here is an example复制的

myHDL manual。在我的代码中,生成器FSM()永远不会被调用,因此状态始终为“SEARCH”。

我无法弄清楚为什么没有调用发生器。

修改

更改此行:

reset = ResetSignal(0, active=ACTIVE_LOW, async=True)

为:

reset = ResetSignal(1, active=ACTIVE_LOW, async=True)

我认为这是示例中的一个错误 - 如果重置是ACTIVE_LOW,它应该初始化为1而不是0?

trace from my code

trace for working version

1 个答案:

答案 0 :(得分:1)

您需要释放重置信号。这一行:

reset = ResetSignal(0, active=ACTIVE_LOW, async=True)

正如示例中所写的那样。启动时,低电平有效复位(正确)为低电平。

您没有活动的原因是您不会在任何时候将重置设置为高(即无效)。

更新您的刺激功能:

def stimulus():
        for i in range(3):
            yield clk.posedge
        reset.next = 1
        for n in (12, 8, 8, 4):

我还会调用重置信号reset_n来清楚地表明其活跃的低性质。