同步输入和状态机的复位
复位信号通常是异步的,直接链接到到状态机寄存器的复位端。当复位时,所有寄存器(状态位和输出位)立即被清除。一切都很好,但是当复位被取消时会发生什么呢?试想一个状态机,它将在取消复位后直接从复位状态转换到其他状态。如果复位在时钟边缘附近解除,那么一些状态位将假定它们的新状态,而另一些可能不会。状态机最终处于未定义的错误状态。解决方案?同步该死的复位!这样,复位将在时钟边缘之前被删除,所有寄存器元素将正确地过渡到它们的新状态。
事实上,对状态机的每个输入都必须是同步的。至少,您必须绝对确定没有任何输入会状态机内部寄存器的建立时间和保持时间。
|