明德扬吴老师 发表于 2019-9-26 19:09:24

17 FSM状态机 编号:003100000069

17FSM状态机
本案例的编号为:003100000069,如果有疑问,请按编号在下面贴子查找答案:MDY案例交流【汇总贴】_FPGA-明德扬科教 (mdy-edu.com)本文为明德扬原创及录用文章,转载请注明出处!

本项目介绍FSM(有限状态机)的功能。状态机同计数器一样,都是FPGA设计中最重要、最基础的组成部分。本帖子提供了几个功能的状态机供大家学习参考:
1.功能一:a.状态机有三个状态,IDLE,S1 和 S2; b. IDLE 状态,如果 en=1,则跳到 S1 状态,否则保持不变; c. S1 状态时,如果 en=1,则跳到 S2 状态,否则保持不变; d. S2 状态时,如果 en=1,则跳回到 IDLE 状态,否则保持不变。

2.功能二:a. 状态机有三个状态,IDLE,S1 和 S2; b. IDLE 状态,如果 en=1,则跳到 S1 状态,否则保持不变; c. S1 状态时,保持 5 个时钟周期后,跳到 S2 状态; d. S2 状态,保持 7 个时钟周期后,跳回到 IDLE 状态。

3.功能三:a.状态机有三个状态,IDLE,S1 和 S2; b. IDLE 状态,如果 en=1,则跳到 S1 状态,否则保持不变; c. S1 状态时,统计 en=1 的次数,如果达到 5 次,则跳到 S2 状态,否则保持不变; d. S2 状态,统计 en=1 的次数,如果达到 7 次,则跳回到 IDLE 状态,否则保持不变。

4.功能四:a. 状态机有三个状态,IDLE,S1 和 S2; b. IDLE 状态,如果检测到 en 的高电平脉冲,则跳到 S1 状态,否则保持不变; c. S1 状态时,统计 en 高电平脉冲的次数,如果达到 5 次,则跳到 S2 状态,否则保 持不变; d. S2 状态,统计 en 高电平脉冲的次数,如果达到 7 次,则跳回到 IDLE 状态,否则 保持不变。
参考工程代码见下面文档。其中:功能一对应的参考代码为FMS.v;功能二对应的参考代码为FMS_clk.v;功能三对应的参考代码为FMS_en_count.v;功能四对应的参考代码为FMS_en_posedge.v。
以下是本工程的相关文档

欢迎大家在此帖子里讨论本案例的问题。

cduhuapu 发表于 2021-6-5 20:11:37

很不错,下载了,参考学习,谢谢啦
页: [1]
查看完整版本: 17 FSM状态机 编号:003100000069