当前位置: 首页 > news >正文

4-verilog简单状态机

verilog简单状态机

1.

always @ (posedge clk or negedge rst_n) beginif (!rst_n)cnt_1ms <= 20'b0;else if (cnt_1ms_en)cnt_1ms <= cnt_1ms + 1'b1;elsecnt_1ms <= 20'd0; 
endalways @ (posedge clk or negedge rst_n) beginif(!rst_n)cur_state <= s1_power_init;else if (EN_POWER_ON==1'b1)cur_state <= s1_power_init;elsecur_state <= next_state;
endalways @ (*) begincase(cur_state)s1_power_init: begin                             // 初始化状态if (st_done==1'b1)next_state = s2_EN_12_power;elsenext_state = s1_power_init;ends2_EN_12_power: begin if (st_done==1'b1)next_state = s3_EN_3_4_power;elsenext_state = s2_EN_12_power;ends3_EN_3_4_power: beginif (st_done==1'b1)next_state = s4_power_done;elsenext_state = s3_EN_3_4_power;ends4_power_done:beginif (st_done==1'b1)next_state = s5_reset_off;elsenext_state = s4_power_done;end  s5_reset_off:beginif (st_done==1'b1)next_state = s6_power_done;elsenext_state = s5_reset_off;end s6_power_done:beginif (st_done==1'b1)next_state = s1_power_init;elsenext_state = s6_power_done;end        default: next_state = s1_power_init;endcase
endalways @ (posedge CLK_25M or negedge wLUTsLoad) beginif(!wLUTsLoad) beginendelse beginst_done <= 1'b0;case (cur_state)s1_power_init:begin                              //初始化if(wEN_POWER_ON==1'b0)begincnt_1ms_en <= 1'b1;if (cnt_1ms<10'd100)st_done <= 1'b0;else beginst_done <= 1'b1;cnt_1ms_en <= 1'b0;endendelse st_done <= 1'b0;ends2_EN_12_power:begincnt_1ms_en <= 1'b1;if (cnt_1ms<10'd100)st_done <= 1'b0;else beginst_done <= 1'b1;cnt_1ms_en <= 1'b0;endends3_EN_3_4_power:begincnt_1ms_en <= 1'b1;if (cnt_1ms<10'd300)st_done <= 1'b0;else beginst_done <= 1'b1;cnt_1ms_en <= 1'b0;endends4_power_done:beginif(PG_1V2&PG_1V8&PG_0V9&PG_3V3&PG_4V&PG_1V&PG_5V)begincnt_1ms_en <= 1'b1;if (cnt_1ms<10'd100)st_done <= 1'b0;else beginst_done <= 1'b1;cnt_1ms_en <= 1'b0;endendelsest_done <= 1'b0;ends5_reset_off:begincnt_1ms_en <= 1'b1;if (cnt_1ms<10'd100)st_done <= 1'b0;else beginst_done <= 1'b1;cnt_1ms_en <= 1'b0;endends6_power_done:beginif(EN_POWER_ON==1'b1) beginst_done <= 1'b1;endelse beginPOWER_ON_OFF <= 1'b1;st_done <= 1'b0;endenddefault:;endcase	end
end
http://www.dtcms.com/a/309694.html

相关文章:

  • 使用mybatis生成器生成实体类mapper和查询参数文件,简单spring mvc 项目。使用log4j输出日志到控制台和文件中。使用配置文件注册Bean
  • 【U8+】删除部门的时候提示已经在总账(辅助总账)中使用,不可删除。
  • 从0到1学PHP(十三):PHP 安全编程:构建稳固的应用防线
  • (一)LoRA微调BERT:为何在单分类任务中表现优异,而在多分类任务中效果不佳?
  • 自动化测试准备工作:概念篇
  • Java HTTPS 请求失败排查与证书导入全过程
  • 从豆瓣小组到深度洞察:一个基于Python的舆情分析爬虫实践
  • 【05】VM二次开发——模块参数配置--带渲染/不带渲染(WinForm界面调用 模块参数配置)
  • JVM指针压缩的那些事
  • JVM学习日记(十三)Day13
  • C#线程同步(二)锁
  • 【工具变量大全】上市公司实证研究常用控制变量数据集(2001-2024年)
  • sqli-labs通关笔记-第26a关GET字符注入(多重关键字过滤绕过 手注法)
  • qt贝塞尔曲线演示工具
  • Product Hunt 每日热榜 | 2025-08-01
  • 5-EP4CE10F17C8-引脚配置
  • Fiddler中文版使用指南 提升开发流程的一站式抓包与调试体验
  • 大模型幻觉的本质:深度=逻辑层次,宽度=组合限制,深度为n的神经网络最多只能处理n层逻辑推理,宽度为w的网络无法区分超过w+1个复杂对象的组合
  • 搭建体育直播系统所需的核心数据接入
  • 深度解析:Nginx的卓越性能
  • C# 中生成随机数的常用方法
  • 消息顺序、消息重复问题
  • 在VScode里运行并调试C++程序
  • SpringMVC的拦截器
  • Mermaid流程图可视化系统:基于Spring Boot与Node.js的三层架构实现
  • gradio作为原型工具
  • 专业餐饮直播如何激发食欲与购买欲?
  • zabbix的PostgreSQL监控模板中文环境采集问题处理
  • 【BFS】P7555 [USACO21OPEN] Maze Tac Toe S|普及+
  • Java向量化