myHDL manual。在我的代码中,生成器FSM()永远不会被调用,因此状态始终为“SEARCH”。
我无法弄清楚为什么没有调用发生器。
修改
更改此行:
reset = ResetSignal(0, active=ACTIVE_LOW, async=True)
为:
reset = ResetSignal(1, active=ACTIVE_LOW, async=True)
我认为这是示例中的一个错误 - 如果重置是ACTIVE_LOW,它应该初始化为1而不是0?
答案 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
来清楚地表明其活跃的低性质。