数字电子系统设计中状态机“毛刺”的产生与消除方法
140 浏览量
更新于2024-08-30
收藏 179KB PDF 举报
状态机“毛刺”的产生及消除方法
状态机作为数字系统控制单元的重要设计方案之一,在运行速度的高效、执行时间的确定性和高可靠性方面都显现出强大的优势。因此状态机在数字电子系统设计中的地位日益凸显。
状态机“毛刺”的产生是由于状态机输出信号会出现竞争冒险现象和传输延迟引起的。状态机通常包含主控时序进程、主控组合进程和辅助进程三个部分。其中,主控组合进程的任务是根据外部输入的控制信号和当前状态的状态值确定下一状态的取向,并确定对外输出内容和对内部其他组合或时序进程输出控制信号的内容。
状态机“毛刺”的产生有两个主要原因:
1. 竞争冒险现象:由于组合逻辑进程的存在,状态机输出信号会出现毛刺——竞争冒险现象。
2. 传输延迟:如果状态信号是多位值的,则在电路中对应了多条信号线。由于存在传输延迟,各信号线上的值发生改变的时间则存在先后,从而使得状态迁移时在初始状态和目的状态之间出现临时状态——毛刺。
例如,采用Moore型有限状态机方案对ADC0809采样过程实现控制,其主要程序如下:
begin
lock<=lock1;
process(current_state,eoc)
begin
case current_state IS
when st0=> ale<=‘0’; start<=‘0’; oe<=‘0’; lock1<=‘0’;
next_state<=st1;
when st1=> ale<=‘1’; start<=‘0’; oe<=‘0’; lock1<=‘0’;
next_state<=st2;
...
状态机“毛刺”的消除方法有多种,以下是一些常见的方法:
1. 使用同步reset信号:在状态机中添加一个同步reset信号,可以消除状态机“毛刺”的影响。
2. 使用 pipeline结构:使用pipeline结构可以减少状态机“毛刺”的影响。
3. 使用锁存器:使用锁存器可以减少状态机“毛刺”的影响。
4. 优化状态机设计:优化状态机设计可以减少状态机“毛刺”的影响。
状态机“毛刺”的产生是由于状态机输出信号会出现竞争冒险现象和传输延迟引起的。状态机“毛刺”的消除方法有多种,包括使用同步reset信号、使用pipeline结构、使用锁存器和优化状态机设计等。
2020-07-27 上传
2021-10-11 上传
2020-11-05 上传
2023-09-22 上传
2023-09-11 上传
2023-07-29 上传
2023-09-12 上传
2024-04-18 上传
2023-05-01 上传
weixin_38658568
- 粉丝: 3
- 资源: 903
最新资源
- Haskell编写的C-Minus编译器针对TM架构实现
- 水电模拟工具HydroElectric开发使用Matlab
- Vue与antd结合的后台管理系统分模块打包技术解析
- 微信小游戏开发新框架:SFramework_LayaAir
- AFO算法与GA/PSO在多式联运路径优化中的应用研究
- MapleLeaflet:Ruby中构建Leaflet.js地图的简易工具
- FontForge安装包下载指南
- 个人博客系统开发:设计、安全与管理功能解析
- SmartWiki-AmazeUI风格:自定义Markdown Wiki系统
- USB虚拟串口驱动助力刻字机高效运行
- 加拿大早期种子投资通用条款清单详解
- SSM与Layui结合的汽车租赁系统
- 探索混沌与精英引导结合的鲸鱼优化算法
- Scala教程详解:代码实例与实践操作指南
- Rails 4.0+ 资产管道集成 Handlebars.js 实例解析
- Python实现Spark计算矩阵向量的余弦相似度