首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 其他IC/制程 > FSM设计指导

FSM设计指导

资料介绍
FSM设计指导
FSM 设计指导




Pandeng
2004-6-29
做了一段时间逻辑,遇到复杂的时序逻辑设计时,遇到了瓶颈。于是想到了用“状态机”进行设计。
总结了一些很基础的知识,与大家共享!
以 Verilog 语言为例。


设计方法


FSM 分两大类:米里型和摩尔型。
组成要素有输入(包括复位),状态(包括当前状态的操作),状态转移条件,状态的输出条件。
设计 FSM 的方法和技巧多种多样,但是总结起来有两大类:第一种,将状态转移和状态的操作和判断
等写到一个模块(process、block)中。另一种是将状态转移单独写成一个模块,将状态的操作和判断等
写到另一个模块中(在 Verilog 代码中,相当于使用两个“always” block)。其中较好的方式是后者。其原因
如下:
首先 FSM 和其他设计一样,最好使用同步时序方式设计,好处不再累述。而状态机实现后,状态转移
是用寄存器实现的,是同步时序部分。状态的转移条件的判断是通过组合逻辑判断实现的,之所以第二种
比第一种编码方式合理,就在于第二种编码将同步时序和组合逻辑分别放到不同的程序块(process,block)
中实现。这样做的好处不仅仅是便于阅读、理解、维护,更重要的是利于综合器优化代码,利于用户添加
合适的时序约束条件,利于布局布线器实现设计。


显式的 FSM 描述方法可以描述任意的 FSM(参考 Verilog 第四版)P181 有限状态机的说明。
两个 always 模块。其中一个是时序模块,一个为组合逻辑。
时序模块设计与书上完全一致,表示状态转移,可分为同步与异步复位。
同步:always @(posedge clk)
if (!reset)
标签:状态机FPGA
FSM设计指导
本地下载

评论