您现在的位置: 主页 > 嵌入式处理器 > FPGA > 高速状态下使用CPLD实现状态机 - FPGA/ASIC技术 -
本文所属标签:
为本文创立个标签吧:

高速状态下使用CPLD实现状态机 - FPGA/ASIC技术 -

来源: 网络用户发布,如有版权联系网管删除 2018-08-18 

 

  本文给出了采用这些技术的高速环境状态机设计的规范及分析方法和优化方法,并给出了相应的示例。

  为了使FPGA或CPLD中的状态机设计满足高速环境要求,设计工程师需要认识到以下几点:寄存器资源和逻辑资源已经不是问题的所在,状态机本身所占用的FPGA或CPLD逻辑资源或寄存器资源非常小;状态机对整体数据流的是串行操作,如果希望数据处理的延时非常小,就必须提高操作的并行程度,压缩状态机中状态转移的路径长度;高速环境下应合理分配状态机的状态及转移条件。本文将结合实际应用案例来说明。

  

1.jpg

 

  状态机设计规范

  

2.jpg

 

  1. 使用一位有效的方式进行状态编码

  状态机中状态编码主要有三种:连续编码(sequenTIal encoding)、一位有效(one-hot encoding)方式编码以及不属于这两种的编码。例如,对于一个5个状态(State0~State4)的状态机,连续编码方式状态编码为:State0-000、State1-001、State2-010、State3-011、State4-100。一位有效方式为下为:State0-00001、State1-00010、State2-00100、State3-01000、State4-10000。对于自行定义的编码则差别很大,例如试图将状态机的状态位直接作为输出所需信号,这可能会增加设计难度。

  使用一位有效编码方式使逻辑实现更简洁,因为一个状态只需要用一位来指示,而为此增加的状态寄存器数目相对于整个设计来说可以忽略。一位有效至少有两个含义:对每个状态位,该位为1对应唯一的状态,判断当前状态是否为该状态,只需判断该状态位是否为1;如果状态寄存器输入端该位为1,则下一状态将转移为该状态,判断下一状态是否为该状态,只需判断表示下一状态的信号中该位是否为1。

  2. 合理分配状态转移条件

  在状态转移图中,每个状态都有对应的出线和入线,从不同状态经不同的转移条件到该状态的入线数目不能太多。以采用与或逻辑的CPLD设计来分析,如果这样的入线太多则将会需要较多的乘积项及或逻辑,这就需要更多级的逻辑级联来完成,从而增加了寄存器间的延迟;对于FPGA则需要多级查找表来实现相应的逻辑,同样会增加延迟。状态机的应用模型如图1所示。

 

              查看评论 回复



嵌入式交流网主页 > 嵌入式处理器 > FPGA > 高速状态下使用CPLD实现状态机 - FPGA/ASIC技术 -
 

"高速状态下使用CPLD实现状态机 - FPGA/ASIC技术 -"的相关文章

网站地图

围观()