亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 嵌入式

FPGA 状态机编码实战指南:二进制、格雷码与独热码对比

本文详细对比在 FPGA 上实现有限状态机 (FSM) 时的二进制、格雷码和独热编码。理解综合工具如何评估并可能转换这些编码,对实现最优性能和功耗效率至关重要。

有限状态机无处不在于数字设计。综合工具例行分析 RTL 以检测 FSM,并可能重写状态编码以满足时序、面积或功耗目标。即使您手动分配状态码,工具也可能基于其优化策略替换为不同值——有时甚至改变位宽。

如需 Verilog 构建 FSM 复习,请参阅我的文章《Verilog 中创建有限状态机》。

编码选项:二进制、格雷码与独热码

三种最常见 FSM 编码为二进制、格雷码和独热码。各有独特权衡。

二进制编码

二进制编码用最少位数表示所有状态。这是最节省空间的选择,但状态转换可能涉及多位翻转,可能增加动态功耗。

FPGA 状态机编码实战指南:二进制、格雷码与独热码对比

二进制编码示例。图片由 Steve Arar 提供

格雷码编码

格雷码确保相邻状态间仅一位变化。当 FSM 遵循可预测序列时,格雷码可降低翻转活动,减少动态功耗。

FPGA 状态机编码实战指南:二进制、格雷码与独热码对比

格雷码轮。图片来自 Marie Christiano

独热码编码

独热码用专用触发器位表示每个状态。虽消耗更多逻辑资源并引入大量无效组合,但消除了状态解码需求,简化组合逻辑,常在高时钟频率下改善时序收敛。

FPGA 状态机编码实战指南:二进制、格雷码与独热码对比

独热码示例。图片由 Steve Arar 提供

如需 VHDL 状态编码深度见解,请参阅 Steve Arar 的《VHDL 中有限状态机状态编码》。

选择正确编码

确定最优编码取决于上下文,涉及面积、时序、功耗平衡。通用指南包括:

鉴于权衡微妙,我建议让综合工具选择编码。尽管如此,我仍跨三大主流开发工具和三个不同状态机开展对比实验,展示各编码实际表现。结果将在下文讨论。

嵌入式

  1. 六西格玛与精益制造:选择正确策略的清晰指南
  2. 灰铸铁揭秘:性能、牌号与工业应用
  3. 八进制与十六进制数制:工程师实用指南
  4. 二进制加法详解:规则、示例及在数字计算机中的作用
  5. 利用二补码进行二进制减法
  6. 二进制溢出:符号位如何影响二进制加法
  7. 二进制信号与逻辑门:数字电子学基础
  8. 摩斯密码与双重勒索:高级恶意软件威胁的当前图景
  9. EDM/CNC机床车间防火实战:自动灭火 vs 手持灭火器,改造全流程揭秘
  10. 了解 300、400 和 500 系列钢材:成分、性能与应用
  11. C++结构体与类:嵌入式开发者实战指南
  12. 选择正确 FPGA 编码:基于康威生命游戏的实战研究