「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
相关推荐
笑鸿的学习笔记38 分钟前
虚幻引擎5-Unreal Engine笔记之UE编辑器退出时的保存弹框
笔记·ue5·虚幻
Dovis(誓平步青云)1 小时前
精讲C++四大核心特性:内联函数加速原理、auto智能推导、范围for循环与空指针进阶
c语言·开发语言·c++·笔记·算法·学习方法
想不明白的过度思考者1 小时前
为了结合后端而学习前端的学习日志(1)——纯CSS静态卡片案例
前端·css·学习
小石(努力版)1 小时前
嵌入式STM32学习——振动传感器控制继电器开关灯
stm32·嵌入式硬件·学习
孞㐑¥1 小时前
Linux之进程概念
linux·c++·经验分享·笔记
jz_ddk1 小时前
[学习]RTKLib详解:convkml.c、convrnx.c与geoid.c
c语言·开发语言·学习
小鹿撞出了脑震荡1 小时前
汇编学习——iOS开发对arm64汇编的初步了解
汇编·学习·ios
小鹿撞出了脑震荡2 小时前
「OC」源码学习—— 消息发送、动态方法解析和消息转发
学习·ios·objective-c
茯苓gao2 小时前
stm32 串口通讯 和 USART学习 二(HEX和文本数据包收发)
stm32·嵌入式硬件·学习
cliff,2 小时前
数据提取之BeautifulSoup4快速使用
笔记·python·学习