FPGA中状态机实现需要注意的地方
来源:互联网 发布:淘宝拒收退款流程 编辑:程序博客网 时间:2024/06/06 12:46
写状态机时需要注意的地方:
1、状态机的状态编码大概有三种:二进制编码,格雷码,独热码。
其中二进制编码就是000、001、010、011、100这类的逐渐加一
格雷码就是相邻两个状态只有一位数不一样,000、001、011、010之类的
独热码的意思是有多少个状态那么状态码就有多少位,比如说状态机有六个状态,那么状态向量就有6位,其状态分别为000001、000010、000100、001000、010000、100000,这六种状态,也就是说只有一位为1。
2、二进制编码使用较少的触发器,消耗较多的逻辑资源,而独热码相反。独热码最大的优势在于状态比较时仅仅需要比较一个位,一定程度上化简了译码逻辑,减少了毛刺产生的概率。在需要表示相同的状态数时,独热码所占的位宽较大,也就是消耗较多的触发器,但是这些额外的触发器所占用的面积可与译码电路省下来的面积相抵消。
3、CPLD中有较多的逻辑资源,而触发器资源较少;FPGA中提供的触发器资源较多,所以在以后写状态机的时候要注意这一点。大型状态机使用one-hot更高效
4、写状态机时最好使用三段式的状态机,第一个状态机只写当前状态以及下一个状态;第二个状态机写下一个状态的跳转条件以及跳转状态;第三个状态机写输出。一般来说,状态转移部分(第一个状态机)是同步时序电路而状态的转移条件的判断(第二个状态机)是组合逻辑。
5、三段式描述方法与两段式描述相比,虽然代码结构复杂了一些,但是换来的优势是使FSM 做到了同步寄存器输出,消除了组合逻辑输出的不稳定与毛刺的隐患,而且更利于时序路径分组,一般来说在FPGA/CPLD 等可编程逻辑器件上的综合与布局布线效果更佳。
阅读全文
0 0
- FPGA中状态机实现需要注意的地方
- FPGA中状态机实现需要注意的地方
- FPGA之学习FPGA需要注意的地方
- FPGA之学习FPGA需要注意的地方
- Spring使用中需要注意的地方
- HttpURLConnection使用中需要注意的地方
- php中需要注意的地方
- C++需要注意的地方(更新中)
- CSS中需要注意的地方
- elasticSearch配置文件中需要注意的地方
- python 中需要注意的地方
- css 中需要注意学习的地方
- SQL中Null需要注意的地方
- C++类中需要注意的地方
- CardView开发中需要注意的地方
- python中需要注意的一些地方
- 需要注意的地方
- 需要注意的地方
- jsp如何禁止使用session
- vim plug搭建
- python assert 断言详细用法格式
- LINUX wait
- java多线程面试
- FPGA中状态机实现需要注意的地方
- make: *** 没有规则可以创建“default”需要的目标“build”
- 游戏编程入门(5):使用键盘和鼠标控制游戏
- 重点
- oi各种模板总结
- ConcurrentHashmap使用
- 字符编码笔记:ASCII,Unicode和UTF-8
- 动态网页-6.28
- macamca app inspector 源码分析(一)