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

根据状态转移写状态机-二段式

目录

描述

输入描述:

输出描述:


描述

题目描述:   

如图所示为两种状态机中的一种,请根据状态转移图写出代码,状态转移线上的0/0等表示的意思是过程中data/flag的值。

要求:

1、 必须使用对应类型的状态机

2、 使用二段式描述方法

注意rst为低电平复位

信号示意图:

波形示意图:

激励描述如下:

输入描述:

输入信号 clk rst data 
类型 wire

输出描述:

输出信号  flag
类型  reg

参考代码

`timescale 1ns/1nsmodule fsm2(input wire clk  ,input wire rst  ,input wire data ,output reg flag
);parameter S0 = 'd0, S1 = 'd1, S2 = 'd2, S3 = 'd3 ,S4 = 'd4 ;reg [2:0]	current_state;reg [2:0]	next_state;always@(posedge clk or negedge rst)beginif(rst == 1'b0)begincurrent_state <= S0;endelse begincurrent_state <= next_state;endend   always@(*)begincase(current_state)S0:beginnext_state = data ? S1 : S0;flag = 1'b0; endS1:beginnext_state = data ? S2 : S1;flag = 1'b0;endS2:beginnext_state = data ? S3 : S2;flag = 1'b0;endS3:beginnext_state = data ? S4 : S3;flag = 1'b0;endS4:beginnext_state = data ? S1 : S0;flag = 1'b1;enddefault:begin  next_state = S0;flag = 1'b0;				endendcaseendendmodule

http://www.lryc.cn/news/379902.html

相关文章:

  • PyTorch C++扩展用于AMD GPU
  • Hadoop archive
  • R语言——R语言基础
  • VFB电压反馈和CFB电流反馈运算放大器(运放)选择指南
  • elasticsearch安装(centos7)
  • Java高手的30k之路|面试宝典|精通JVM(二)
  • JVM专题六:JVM的内存模型
  • 学习java第一百零七天
  • k8s上尝试滚动更新和回滚
  • GitHub Copilot 登录账号激活,已经在IntellJ IDEA使用
  • 进程知识点(二)
  • 【线性代数】【一】1.6 矩阵的可逆性与线性方程组的解
  • 基于大型语言模型的全双工语音对话方案
  • Spring Boot集成Minio插件快速入门
  • 【C++新特性】右值引用
  • 信息安全基础知识(完整)
  • QT
  • 双例集合(三)——双例集合的实现类之TreeMap容器类
  • [SAP ABAP] 运算符
  • MSPM0G3507 ——GPIO例程讲解2——simultaneous_interrupts
  • 某程序员:30岁了,老婆管钱,背着我买了50万股票,亏了20w,强制她清仓后又买了36万
  • Docker常见面试题整理
  • 35 - 最后一个能进入巴士的人(高频 SQL 50 题基础版)
  • WPF将dll文件嵌入到exe文件中
  • 2024年AI+游戏赛道的公司和工具归类总结
  • svm和决策树基本知识以及模型评价以及模型保存
  • C++ 79 之 自己写异常类
  • 如何搭建一个成功的短剧制作平台
  • kotlin类
  • android | studio的UI布局和代码调试 | UI调试 (用于找到项目源码)