不同FSM编码风格差异及Moore型找零计数器实现疑问
Moore FSM硬币找零计数器设计相关疑问
我正在使用Moore FSM设计一款硬币找零计数器,目标是将输入金额转换为等价的1、5、10面值硬币数量。我清楚Moore FSM包含三个核心部分:
- State register(时序逻辑)
- Next state logic(时序/组合逻辑?)
- Output logic(时序/组合逻辑?)
目前我了解到两种主流的FSM编码风格:一种是将State register与Next state logic整合到同一个always块中实现,另一种是将三个模块分别用独立的always块实现。针对这些编码方式,我有以下疑问:
- Next state logic或Output logic必须固定采用时序逻辑或组合逻辑吗?
- 除触发器数量差异外,这些编码风格还有哪些核心区别?
- 这些编码风格是否可以相互替换,还是仅适用于特定场景?
- 每种编码风格各自的优缺点是什么?
此外,在三模块分离的实现方案中,我通过新增in_coin_reg2变量来避免always_comb块中生成锁存器,这种处理方式有没有更优的替代方案?
内容的提问来源于stack exchange,提问作者Calvin Lin
相关产品推荐
相关产品推荐

