verilog 三段式状态机 求助

2024-12-01 11:49:07
推荐回答(3个)
回答1:

你要知道,寄存器是时序逻辑,需要时钟控制的,锁存器是组合逻辑。状态机属于时序逻辑,你只是把它分开了,也就是说有限状态机又可以认为是组合逻辑和寄存器逻辑的一种组合。所以分开的那个还是有时钟去控制为寄存器。 而单独always @ (*) 的话,就只能是组合逻辑对应锁存器了。
所以呢!区分是要看是否收到时钟控制。 当然时序逻辑中 if……else ,case 不完整时会产生锁存器。总之组合逻辑不会产生寄存器, 时序逻辑中可以包含组合逻辑和寄存器(即可包含锁存器和寄存器) 说的还不是很具体,但基本应该能了解一些,希望对LZ有所帮助!!

回答2:

Verilog三段式状态机中,只有时序逻辑部分的信号会生成寄存器。

“在always块内赋值的变量是reg型的,不一定都是寄存器吗?”
是的,有的会被综合器综合掉,有的会被综合成所存器,具体情况具体分析。
楼主可以通过RTL Viewer工具(ISE)查看状态机被综合后的逻辑框图。

回答3:

这个语句里面赋值应该是提示你产生锁存器的。因为这个是组合逻辑了,容易产生锁存器。你的alwasy块描述的是时序的话,会产生寄存器,描述的是组合逻辑的话就很容易产生所存了,都是存贮单元。