Fsm3

news/2024/11/1 9:16:35/

采用读热码编写方式:

module top_module(input clk,input in,input areset,output out); ////reg [3:0]A = 4'd0001;// reg [3:0]B = 4'd0010;//reg [3:0]C = 4'd0100;// reg [3:0]D = 4'd1000;
//1、首先用读热码定义四个状态变量parameter A = 4'd0001 ,B = 4'd0010, C = 4'd0100,D = 4'd1000;
//2、定义两个状态(因为4个状态变量为4为所以这两个状态也应该定义为4位)reg [3:0]state,next_state;
//同步时序下的状态复位always@(posedge clk or posedge areset)beginif(areset)state <= A;else state <= next_state;end// 组合逻辑描述状态转移assign next_state[0] = (state[0]&& ~in) || (state[2]&& ~in);assign next_state[1] = (state[0]&& in) || (state[3]&& in )|| (state[1]&& in);assign next_state[2] = (state[1]&& ~in) || (state[3]&& ~in);                   assign next_state[3] = (state[2]&& in);//输出逻辑 assign out = (state[3] == 1);
endmodule

 二进制码 编写方式 :

module top_module(input clk,input in,input areset,output out); ////1、定义两个状态reg [1:0] state,next_state;
//2、二进制码定义4个状态变量parameter A=0,B=1,C=2,D=3;// State flip-flops with asynchronous resetalways@(posedge clk or posedge areset)beginif(areset)state <= A;elsestate <= next_state;end// State transition logicalways@(*)begincase(state)A:next_state = in? B:A;B:next_state = in? B:C;C:next_state = in? D:A;D:next_state = in? B:C;endcaseend// Output logic//assign out = (state == D);always@(posedge clk or posedge areset)beginif(areset)out<= 0;else beginif(next_state == D)out <= 1;elseout <= 0;endendendmodule

注意定义A B C D为 parameter


http://www.ppmy.cn/news/1543539.html

相关文章

2、课程大纲、学习方法

1、课程大纲 2、学习方法 1、遗忘曲线 复习就是在不停的梳理自己的知识 理解基础上在你忘记之前不停重复 抓住主线做一个web版本的连接数据库的增删改查 2、学习成长曲线图 3、学习金字塔 只听和阅读肯定是不够的&#xff0c;最基本的是需要做笔记&#xff0c;复习&#xff0…

在pycharm中使用sqllite

在pycharm中使用sqllite sqllite 简介 SQLite 是一个开源的、轻量级的、关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它设计用于嵌入到应用程序中&#xff0c;并且可以在无需外部服务器进程的情况下运行。SQLite 提供了完整的 SQL 语言支持&#xff0c;允…

Flutter 13 网络层框架架构设计,支持dio等框架。

在移动APP开发过程中&#xff0c;进行数据交互时&#xff0c;大多数情况下必须通过网络请求来实现。客户端与服务端常用的数据交互是通过HTTP请求完成。面对繁琐业务网络层&#xff0c;我们该如何通过网络层架构设计来有效解决这些问题&#xff0c;这便是网络层框架架构设计的初…

Java项目实战II基于Java+Spring Boot+MySQL的编程训练系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在当今数字…

Tomcat异常日志中文乱码怎么解决

Tomcat异常日志中文乱码怎么解决 tomcat日志中文乱码问题输出其他日志方法解决方法网页报错中文乱码问题我之前试过的方法我的怀疑 能帮我瞅瞅网页报错中文乱码具体该怎么解决吗&#xff1f;可以直接跳转到目录中 网页报错中文乱码问题部分&#x1f913; tomcat日志中文乱码问…

Python 从入门到实战43(Pandas数据结构)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;可以熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们学习了NumPy数组操作的相关基础知识。今天学习一下pa…

力扣题目解析--Z字形变换

题目 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时&#xff0c;排列如下&#xff1a; P A H N A P L S I I G Y I R 之后&#xff0c;你的输出需要从…

mac-ubuntu虚拟机(扩容-共享-vmtools)

一、磁盘扩容 使用GParted工具对Linux磁盘空间进行扩展 https://blog.csdn.net/Time_Waxk/article/details/105675468 经过上面的方式后还不够&#xff0c;需要再进行下面的操作 lvextend 用于扩展逻辑卷的大小&#xff0c;-l 选项允许指定大小。resize2fs 用于调整文件系统的…