「Verilog学习笔记」状态机-非重叠的序列检测

专栏前言

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

根据题意 定义一个五位的中间变量lock 每次始终上升沿来临时 判断当前寄存器的低四位+新数据是否等于10111 如果等于 则下一时刻lock应被清空 否则lock等于当前的lock的低四位+新数据

复制代码
`timescale 1ns/1ns

module sequence_test1(
	input wire clk  ,
	input wire rst  ,
	input wire data ,
	output reg flag
);
//*************code***********//
	reg [4:0] lock ; 

	always @ (posedge clk or negedge rst) begin
		if (~rst) lock <= 'd0 ; 
		else 
			if ({lock[3:0], data} == 5'b10111) lock <= 'd0 ; 
			else lock <= {lock[3:0], data} ;
	end

	always @ (posedge clk or negedge rst) begin
		if (~rst) flag <= 'd0 ; 
		else 
			if ({lock[3:0], data} == 5'b10111) flag <= 1'd1 ; 
			else flag <= 'd0 ;
	end

//*************code***********//
endmodule
相关推荐
晓梦林16 小时前
BUUCTF findKey-学习笔记
笔记·学习
05664616 小时前
agent学习Day15——SQLAlchemy 查询过滤、分页与历史列表接口
python·学习·fastapi
炎武丶航19 小时前
汽车功能测试学习(1):FCW前方碰撞预警
功能测试·学习·汽车
x173880627319 小时前
XXE外部实体注入
xml·笔记
库玛西1 天前
C++ 运行时多态 :核心总结与原理图解
c语言·c++·笔记
魔力女仆1 天前
语言开发笔记3
笔记
x17388062731 天前
文件包含漏洞介绍
笔记
qq_185198691 天前
SpingBoot3入门学习一
学习
噗噗夹的TA之旅1 天前
Shader 学习 21:自定义 Render Feature
学习·游戏·unity·c#·游戏引擎·图形渲染
码农小韩1 天前
AIAgent应用开发——大模型理论基础与应用(七)
python·学习·ai·大模型·agent