「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
相关推荐
LuH112415 分钟前
【论文阅读笔记】IC-Light
论文阅读·笔记
汤姆和佩琦18 分钟前
2024-12-25-sklearn学习(20)无监督学习-双聚类 料峭春风吹酒醒,微冷,山头斜照却相迎。
学习·聚类·sklearn
是小菜呀!21 分钟前
实验四 触发器
笔记
悲伤小伞27 分钟前
C++_数据结构_详解二叉搜索树
c语言·数据结构·c++·笔记·算法
好学近乎知o30 分钟前
正则表达式(学习Django过程中可能涉及的)
学习·正则表达式·django
雨中奔跑的小孩33 分钟前
爬虫学习案例8
爬虫·学习
jieshenai34 分钟前
使用 VSCode 学习与实践 LaTeX:从插件安装到排版技巧
ide·vscode·学习
灰太狼不爱写代码3 小时前
CUDA11.4版本的Pytorch下载
人工智能·pytorch·笔记·python·学习
eybk9 小时前
Pytorch+Mumu模拟器+萤石摄像头实现对小孩学习的监控
学习
6.949 小时前
Scala学习记录 递归调用 练习
开发语言·学习·scala