什么是同步有限状态机?
同步:所有的状态跳转都是在时钟的作用下进行
有限:状态的个数是有限的
为什么要用状态机?
FPGA是并行处理的,如果我们想要处理具有前后顺序的事件时,就需要引入状态机。状态机的每一个状态代表一个事件,从执行当前事件到执行另一事件我们称之为状态的跳转或状态的转移。
状态机特别适合描述那些发生有先后顺序或时序规律的事情。小到计数器大到微处理器都适合用状态机描述。
怎么表示状态机?
状态机需要具备什么?
- 输入:根据输入确定是否需要进行状态跳转
- 输出:当前时刻状态要做的事情是什么
- 状态:要处理的事情
状态机的设计步骤是怎么样的?
- 首先分析输入、输出有哪些,需要多少个状态
- 其次根据分析绘制状态转移图
- 设计实现的模块
- 状态机代码的编写
FIFO的使用
什么是FIFO?
FIFO(First In First Out)即先入先出,是一种数据缓冲器,用来实现数据先入先出的读/写方式。FIFO有一个写端口和一个读端口外部无需使用者控制地址,使用方便。
根据FIFO工作的时钟域可以将FIFO分为同步FIFO和异步FIFO。同步FIFO是指读时钟和写时钟为同一个时钟。异步FIFO是指读/写时钟不一致,是相互独立的。
FIFO的作用是什么?
- 用于缓存数据
- 用于做多bit数据的跨时钟域处理
- 用于做时钟、位宽不匹配问题的接口
如何使用FIFO?
- 在一定时间内,写数据的总带宽一定要小于等于读数据的总带宽
- 控制好FIFO的关键信号,读写时钟、读写使能、空满标志信号
- FIFO一定不能写满、也不能读空,要考虑FIFO的背靠背问题,设置好存储深度
FPGA设计中的技巧
一、使能信号(en)、标志信号(flag)、计数器(cnt)
二、模块框图设计——方案的确定
三、波形设计——代码的实现
四、代码规范——可复用性和效率
五、仿真调试——修改查错
-
FPGA设计
+关注
关注
9文章
428浏览量
26472 -
有限状态机
+关注
关注
0文章
52浏览量
10312 -
状态机
+关注
关注
2文章
492浏览量
27466 -
FIFO存储
+关注
关注
0文章
103浏览量
5958 -
数据缓冲器
+关注
关注
1文章
5浏览量
1840
发布评论请先 登录
相关推荐
评论