「Verilog学习笔记」根据状态转移图实现时序电路

专栏前言

本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网

这是一个典型的米利型状态机。三段式即可解决。

米利型状态机:即输出不仅和当前状态有关,也和输入有关。 其中ST0,ST1,ST3的输出可以化简,化简后和C无关。 但是ST2的输出,需要判断输入C。

`timescale 1ns/1nsmodule seq_circuit(input                C   ,input                clk ,input                rst_n,output   wire        Y   
);parameter ST0 = 2'b00 ; parameter ST1 = 2'b01 ; parameter ST2 = 2'b10 ; parameter ST3 = 2'b11 ; reg [1:0] cur_state ; reg [1:0] nxt_state ; reg Y_r ; always @ (posedge clk or negedge rst_n) begin if (!rst_n) cur_state <= ST0 ; else cur_state <= nxt_state ; end always @ (*) begin case (cur_state) ST0 : begin if (C == 1'b0) nxt_state <= ST0 ; else nxt_state <= ST1 ; end ST1 : begin if (C == 1'b0) nxt_state <= ST3 ; else nxt_state <= ST1 ; end ST2 : begin if (C == 1'b0) nxt_state <= ST0 ; else nxt_state <= ST2 ; end ST3 : begin if (C == 1'b0) nxt_state <= ST3 ; else nxt_state <= ST2 ; end endcase endalways @ (*) begin case (cur_state) ST0 : begin Y_r <= 1'b0 ; end ST1 : begin Y_r <= 1'b0 ; end ST2 : begin if (C == 1'b0) Y_r <= 1'b0 ; else Y_r <= 1'b1 ; endST3 : begin Y_r <= 1'b1 ; end endcaseendassign Y = Y_r ;endmodule

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/194743.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UnitTest框架

目标&#xff1a; 1.掌握UnitTest框架的基本使用方法 2.掌握断言的使用方法 3.掌握如何实现参数化 4.掌握测试报告的生成 1.定义 &#xff08;1&#xff09;框架(framework)&#xff1a;为解决一类事情的功能集合。&#xff08;需要按照框架的规定(套路) 去书写代码&…

计算机毕业设计选题推荐-点餐微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

变量命名的规则与规范

变量命名的规则与规范 变量命名的规则不能使用关键字字母须区分大小写由字母、数字、_、$组成&#xff0c;且不能以数字开头 变量命名的规范起名须有一定的意义遵守小驼峰命名法 变量命名的规则 不能使用关键字 在JavaScript中声明变量不能使用JavaScript的常用关键字&#x…

【python】--python基础学习

目录 一、基础语法二、基础数据类型1、变量赋值2、数值型3、字符串型4、列表List5、元组Tuple6、字典dictionary7、数据类型转换 三、python运算符四、条件控制与循环五、常用函数1、字符串函数2、format函数 一、基础语法 标识符是允许作为变量&#xff08;函数、类等&#x…

变频器干扰PLC,我们是这么解决的……

PLC是变频器的上位机&#xff0c;但是&#xff0c;在很多工程现场中&#xff0c;经常也会出现这样的问题&#xff0c;就是变频器开始运行后&#xff0c;PLC就开始罢工了&#xff0c;有的时候死机&#xff0c;有的时候指令传达不畅&#xff0c;有的时候会出现通讯时断时续等等&a…

FL Studio2024免费编曲音乐制作软件

用FL Studio编曲&#xff0c;让音乐成为你的翅膀&#xff0c;飞翔在无尽的创作海洋中吧&#xff01; FL Studio作为一款功能强大且备受赞誉的音乐制作软件&#xff0c;为你提供了一个独特的创作平台。通过FL Studio&#xff0c;你可以自由地创作、编曲&#xff0c;制作属于自己…

七、文件包含漏洞

一、文件包含漏洞 解释&#xff1a;文件包含漏洞是一种注入型漏洞&#xff0c;其本质就是输入一段用户能够控制的脚本或者代码&#xff0c;并让服务端执行&#xff1b;其还能够使得服务器上的源代码被读取&#xff0c;在PHP里面我们把可重复使用的函数写入到单个文件中&#x…

阿里云ECS11月销量王 99元/年

这一波好像真没得说&#xff0c;老用户居然都有份&#xff0c;买来练习、测试冒似已经够了&#xff01; 阿里云ECS11月销量王 99元/年 2核2G 3M固定带宽不限流量&#xff0c;新老同享&#xff0c;新购、续费同价&#xff0c;开发必备&#xff01; 活动规则 云服务器ECS 云创季…

Meta降本增效大招之:自动删除数据

这是一个系列博客。介绍的是Meta如何通过弃用产品、清理代码、删除数据以实现降本增效。这对于效能平台的建设非常具有指导意义。 上一篇介绍的是如何自动清理死代码&#xff0c;本篇介绍如何自动化删除数据。也是本系列的最后一篇。 文章最后有原文链接和我个人的总结。懒的同…

【Kingbase FlySync】命令模式:部署双轨并行,并实现切换同步

【Kingbase FlySync】命令模式:安装部署同步软件&#xff0c;实现Oracle到KES实现同步 双轨并行方案说明一.准备工作二.环境说明三.目标实操(1).准备安装环境Orcle服务器(Oracle40)1.上传所有工具包2.操作系统配置a.增加flysync 用户、设置密码b.配置环境变量c.调整limits.conf…

气候更换,气运也会随之变化

天人合一&#xff0c;人天相应&#xff0c;人体与宇宙天体的运行互相感应相通&#xff0c;与大自然的万千变化紧密联系。阴阳转换&#xff0c;带来的气场和磁场的变化&#xff0c;对自然界万事万物和人影响很大。 蒹葭苍苍&#xff0c;白露为霜&#xff0c;所谓伊人&#xff0…

webservice笔记

1&#xff0c;简介 webservice&#xff0c;是一种跨编程语言和跨操作系统平台的远程调用技术。 webservice三要素&#xff1a;soap、wsdl、uddi2&#xff0c;服务端 2.1创建项目 2.2 编写服务类&#xff0c;并发布服务 import com.test.service.impl.HelloServiceImpl; impo…