牛客进阶题目1:输入序列连续检测

检测01110001序列,满足序列则拉高match

可以用状态机和移位寄存器,懒得画状态转移图,直接用移位寄存器解

注意题中match在检测到序列后的下一周期拉高,所以需要延一拍

`timescale 1ns/1ns
module sequence_detect(
	input clk,
	input rst_n,
	input a,
	output reg match
	);

reg[7:0] temp	;
always @(posedge clk or negedge rst_n) begin
	if(!rst_n)
		temp <= 'd0 ;
	else
		temp <= {temp[6:0],a};
end
always @(posedge clk or negedge rst_n) begin
	if(!rst_n) 
		match <= 1'b0 ;
	else if(temp==8'b01110001)
		match <= 1'b1 ;
	else
		match <= 1'b0 ;
end
  
endmodule
posted @   骑猪上树的少年  阅读(81)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
回到顶部
点击右上角即可分享
微信分享提示