题解 | #输入序列连续的序列检测#

输入序列连续的序列检测

https://www.nowcoder.com/practice/d65c2204fae944d2a6d9a3b32aa37b39

//移位寄存器 a_tem <= {a_tem[6:0],a};
// 状态机 提前预设parameter
 `timescale 1ns/1ns
module sequence_detect(
	input clk,
	input rst_n,
	input a,
	output reg match
	);
	reg [7:0]a_tem;
	always@(posedge clk or negedge rst_n)begin
	if(!rst_n)
	a_tem<=0;
	else 
	a_tem<={a_tem[6:0],a};
	end
	always@(posedge clk or negedge rst_n)begin
	if(!rst_n)
	match<=0;
	else if(a_tem==8'b01110001)
	match<=1;
	else
	match<=0;
	end
// 	parameter idle=0,zero=1,one=9,two=2, three=3, four=4,five=5,six=6,seven=7,eight=8;
// 	reg [3:0]state;
// 	reg [3:0]next_state;
// always@(posedge clk or negedge rst_n)begin
// if(!rst_n)
// state<=idle;
// else 
// state<=next_state;
// end
//   always@(*)begin
//   case(state)
//   idle:next_state=a?idle:zero;
//   zero:next_state=a?one:idle;
//   one:next_state=a?two:idle;
//   two:next_state=a?three:idle;
//   three:next_state=a?idle:four;
//   four:next_state=a?idle:five;
//   five:next_state=a?idle:six;
//   six:next_state=a?seven:idle;
//   seven:next_state=a?eight:idle;
//   eight:next_state=a?zero:idle;
//   default:next_state=idle;
//   endcase
//   end
//   always@(posedge clk or negedge rst_n)begin
// if(!rst_n)
// match<=1'b0;
// else 
// match<=state==seven;
// end
endmodule

全部评论

相关推荐

点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
06-11 13:34
门头沟学院 C++
offe从四面八方来:我真的没时间陪你闹了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务