ZHCAET0 December   2024 TPLD1202 , TPLD1202-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1什么是状态机
  5. 2异步和同步状态机之间的主要差别
  6. 3如何配置状态机
  7. 4通过用户输入触发状态机
  8. 5总结
  9. 6参考资料

通过用户输入触发状态机

状态机可用于通过单个按钮检测输入以执行不同的操作。此类设计可在许多简单系统中用作主要控制器,也可以在使用微控制器时用于将固件开发的一些复杂性转移到外部 TPLD 器件。

图 4-1 中,您可以看到一个状态机,该状态机旨在将来自单个按钮的输入分类为 4 种不同的常用输入格式。这些选项包括单按、1 秒保持、2 秒保持和双按。此状态机可在 TPLD 中使用,如图 4-2 所示。状态机的输出驱动用于双按计时的计时器,而 EVM 板上的一些 LED 可显示器件转换到不同状态。

 单按按钮状态机图 4-1 单按按钮状态机
 按钮状态机内置到 TPLD 设计中图 4-2 按钮状态机内置到 TPLD 设计中

只要图 4-2 中设计的 RST 引脚为低电平,器件就会复位至空闲状态,这也是器件的默认启动状态。只要 RST 引脚为高电平(按 EVM 上的按钮),状态机就会处于激活状态,尽管仍处于空闲状态,但仍会监视输入。假定在剩余部分中,RST 被保持在高电平。单次点击该按钮会触发双计时器块,并将状态机转换为 Single 状态。该计时器的持续时间可通过增大或减小“双计时器”块的控制数据来配置。如果在计时器结束之前再次按下该按钮,状态机会从 Single 模式转换为 Double 模式。Single 状态和 Double 状态的输出仅会馈送到 DFF CLK 输入中,从而将相关的 LED 从导通转换为关断或从关断转换为导通。如果按下按钮并在 1s 计时器 块持续时间内保持按下状态,则状态机会从空闲状态转换为保持 1s。这进行了与 Single 状态和 Double 状态类似的切换,但也会触发第二个 1s 计时器 块。保持 1s 状态不会重新触发同一个块的原因是此状态机是异步的,我们希望通过将输入连接到同一个触发器来防止任何意外跳过。如果再按住该按钮一秒钟,则 oneshot0 将使 cnt0 刷新 DFF,从而使 LED 闪烁。可以在图 4-3图 4-4 中观察此设计的行为。

 单击和双击行为的波形图 4-3 单击和双击行为的波形
 保持行为的波形图 4-4 保持行为的波形

该电路的功能只是为了突出状态机,因此与最终设计相比,周围的功能虽然是完成这一任务所必需的,但在很大程度上被简化了。