在下面的问题,Verilog和ASM实施
的ASM图表显示的q_next
值与0进行到下一个状态,但q_next
比较之前,q的值已经与q_next
更新,因此如果我们将q的值与0进行比较,那么结果在时序和其他参数方面是否相同?
另外应该是什么类型的q_next and q
?他们应该是reg还是wire?
我附上了ASM图表和Verilog代码的屏幕截图。我也不明白条件框的时间影响(一般来说,我们不能将条件框的输出置于不依赖于条件框的输出的单独状态)吗?,
就像处于wait1状态时一样,我们检查sw的值,如果为true,我们递减计数器,然后检查计数器是否已达到零,然后检查asser db_tick。我想了解从wait1和increment计数器并断言db_tick时的时间流程。这些阶段之间是否存在任何时钟周期,即从一个状态转移到一个条件框?
同样在Verilog代码中,我们使用q_load
和q_tick
来控制计数器。当我们可以简单地控制状态中的计数器时,为什么使用这些信号?
这样做是为了确保FSM(控制路径)控制计数器(数据路径)?请解释。提前致谢。