当前位置: 首页 > 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.lryc.cn/news/606959.html

相关文章:

  • Linux 硬盘分区管理
  • FEVER数据集:事实验证任务的大规模基准与评估框架
  • spring boot 启动报错---java: 无法访问org.springframework.boot.SpringApplication 错误的类文件
  • Pycaita二次开发基础代码解析:几何体重命名与参数提取技术
  • 【Java面试题】缓存穿透
  • 梯度下降的基本原理
  • Oracle EBS ERP开发 — 抛出异常EXCEPTION书写规范
  • Vue3 setup、ref和reactive函数
  • ReAct模式深度解析:构建具备推理能力的AI智能体架构
  • 【Linux】System V - 责任链模式与消息队列
  • 机密计算与AI融合:安全与智能的共生架构
  • 动态爱心树
  • Linux(CentOS 7.9) 卸载、安装MySql 5.7详细步骤教程,包括密码设置、字符集设置等
  • 鸿蒙系统PC安装指南
  • 无人机避让路径规划模块运行方式
  • 图论-最短路Floyd算法
  • SpringBoot与Rust实战指南
  • VS Code中配置使用slint(Rust)的一个小例子
  • Java学习第九十六部分——Eureka
  • 基于CNN卷积神经网络图像识别28个识别合集-视频介绍下自取
  • k8s之DevicePlugin
  • 运维端口管理闭环:从暴露面测绘到自动化封禁!
  • 自动驾驶的未来:多模态传感器钻机
  • 【通用视觉框架】基于OpenCvSharp+WPF+YOLO开发的仿VisionMaster的通用视觉框架软件,全套源码,开箱即用
  • CTF实战:用Sqlmap破解表单输入型SQL注入题(输入账号密码/usernamepassword)
  • 音频获取长度
  • armbian 启用nginx并设置访问密码
  • gpu instancer crowd 插件大规模渲染
  • 《操作系统真象还原》 第五章 保护模式进阶
  • 深度SEO优化的方式有哪些,从技术层面来说