2022秋招思某威的笔试题代码

菜鸟一枚,当时做这道题花了很久感觉不太对,然后用quartus来看波形图最后才写出来,感觉应该没问题了吧。
原题目是这样的:
输入:1位输入,
每一帧数据是256bit
每一帧数据的前16bit为帧头
检测帧头为0xff00为正确格式
连续监测3个正确帧头就可以输出同步信号fsync_o
并且同步信号持续16个时钟周期,覆盖帧头。

module seq_detect(
	input	clk,
	input	rst_n,
	input	d_i,
	output reg fsync_o,
	output reg d_o,
	//用于观测数据
	output	reg[3:0]	seq_cnt,
	output	reg[3:0]	data_cnt,
	output	reg[15:0]	data_r,
	output	reg	header_add_flag,
	output reg	[1:0]	state,
	output reg	[1:0]	next_state
	);

//reg	[1:0]	header_cnt;	//计算帧头数量,大于三个的时候才能输出同步信号
//reg	[3:0]	seq_cnt;	//帧头内部的单比特计数,计满16位开始比较帧头
//reg	[3:0]	data_cnt;	//数据的计数,连同帧头有16个16位数据,这256个数据记为一帧
//reg	[15:0]	data_r;		//数据缓存,用于比较帧头是否为0xff00
//wire	header_add_flag; //帧头正确标识

//检测帧头是否为0xff00
always @(posedge clk or negedge rst_n) begin
	if (~rst_n) begin
		// reset
		header_add_flag<=1'b0;
	end
	else if(data_r==16'hff00) begin
		header_add_flag <= (seq_cnt==4'd0&&data_cnt==4'd1)?1:0;
	end
	else begin
		header_add_flag <= 1'b0;
	end
end
parameter S0=2'b00;
parameter S1=2'b01;
parameter S2=2'b10;
parameter S3=2'b11;


//缓存一次16bit数据
always @(posedge clk or negedge rst_n) begin
	if (~rst_n) begin
		// reset
		data_r<=16'd0;
	end
	else begin
		data_r<={data_r[14:0],d_i};
	end
end
//每个帧头的计数
always @(posedge clk or negedge rst_n) begin
	if (~rst_n) begin
		// reset
		seq_cnt<=4'd0;
	end
	else  begin
		seq_cnt<=(seq_cnt==4'd15)?4'd0:(seq_cnt+1'b1);
	end
end	
//一帧有16个16bit组成,用来计数每一帧的计数器
always @(posedge clk or negedge rst_n) begin
	if (~rst_n) begin
		// reset
		data_cnt<=4'd0;
	end
	else if (seq_cnt==4'd15) begin
		if (data_cnt==4'd15) begin
			data_cnt<=4'd0;
		end
		else begin
			data_cnt<=data_cnt+1'b1;
		end
	end
	else begin
		data_cnt<=data_cnt;
	end
end

//状态机
always @(posedge clk or negedge rst_n) begin
	if (~rst_n) begin
		// reset
		state<=S0;
	end
	else begin
		state<=next_state;
	end
end

always @(*) begin
	next_state = S0;
	case(state)
		S0:begin
			next_state = header_add_flag?S1:S0;
		end
		S1:begin
			next_state = header_add_flag?S2:((seq_cnt==4'd1&&data_cnt==4'd1)?S0:S1);
		end
		S2:begin
			next_state = header_add_flag?S3:((seq_cnt==4'd1&&data_cnt==4'd1)?S0:S2);
		end
		S3:begin
			next_state = header_add_flag?S3:((seq_cnt==4'd1&&data_cnt==4'd1)?S0:S3);
		end
		default:next_state = S0;
	endcase
end
reg[3:0]	o_cnt;//用于计数持续16bit的同步计数器
always@(posedge clk or negedge rst_n)begin
	if(~rst_n) begin
		fsync_o<=1'b0;
		o_cnt<=4'b0;
	end
	else if(next_state==S3)begin
		if(header_add_flag)begin
			fsync_o<=1'b1;
			o_cnt<=1'b0;
		end
		else if(o_cnt==4'd15) begin
			o_cnt<=4'b0;
			fsync_o<=1'b0;
		end
		else begin
			fsync_o<=fsync_o;
			o_cnt<=o_cnt+1'b1;
		end
	end

end
//用于使同步信号和输出目标对齐
	reg [15:0]	d_r;
	reg	[15:0]	d_rr;
always@(posedge clk or negedge rst_n)begin
	if(~rst_n)begin
		d_o<=1'b0;
		d_r<=16'd0;
		d_rr<=16'd0;
	end	
	else begin
		d_rr <= {d_r[14:0],d_i};
		d_o <= d_rr;
		
	end
end
endmodule

写的比较乱,加了些注释
下面是TB

`timescale 1ns/10ps

module seq_detect_tb();
reg clk;
reg rst_n;
reg d_i;
wire fsync_o;
wire d_o;
wire [3:0]seq_cnt;
wire [3:0]data_cnt;
wire[15:0]	data_r;
wire		header_add_flag;
wire	[1:0]	state;
wire	[1:0]	next_state;

seq_detect seq_detect(
	.clk(clk),
	.rst_n(rst_n),
	.d_i(d_i),
	.fsync_o(fsync_o),
	.d_o(d_o),
	.seq_cnt(seq_cnt),
	.data_cnt(data_cnt),
	.data_r(data_r),
	.header_add_flag(header_add_flag),
	.state(state),
	.next_state(next_state)
	);
initial clk=1;
always #10 clk=~clk;

initial begin
	rst_n=1'b0;
	d_i=1'b0;
	#200;
	rst_n=1'b1;
	//1
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	//2
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;	
	//3
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	//4
	d_i=0;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=1;#20;d_i=1;#20;d_i=1;#20;d_i=1;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;  d_i=0;#20;d_i=0;#20;d_i=0;#20;d_i=0;#20;
	$stop;
	

end

endmodule

不是很会写tb,所以搞了这么多
下面是波形图
整体波形
在这里插入图片描述
总之就是写的很垃圾但能跑就完事了
另外附3个智力题,卷子总共这四道题

3、三顶黑帽子,2顶白帽子,5个人从前到后站成一排,每人戴一顶帽子,每个人都不能看到自己和后面人的帽子颜色,只能看到前面的,第一个人谁的帽子也看不到,最后一个人能看到4个人的帽子。让每个人来猜测自己的帽子颜色,从第一个人来问,第一个人说不知道,第二个人也说不知道,第三个人也说不知道,第四个人说我知道我带着什么颜色的帽子,第五个人说我也知道,回过来第三个人说我也知道了,第二个人说我也知道了,第一个人说我也知道了,请问这五个人分别带着什么帽子,简述推理过程。

第三个人说自己不知道的话,则前两个人不可能同时是白帽子(自己为黑色),可能黑白,黑黑或者白黑(自己不确定)。
第四个人知道自己带着什么帽子,可能前三个都是黑色,则他铁定是白色,若前三个里两白一黑,那么他铁定是黑色。
第五个人肯定知道,所以没有价值。
回过头来,若第三个人知道第四个人能确定自己的颜色时,自己也能确定颜色,会推测:
1、前面三黑,后面俩白。
2、前面白白黑,后面俩黑。
综上有三种情况:
黑黑黑白白
白黑白黑黑
黑白白黑黑

第二人知道第三人能确定自己的情况后,得知后面为两百一黑或者两黑一白。但是不确定。
两黑一白的情况下,自己和前面的人相反。
两百一黑的情况下,自己和前面相同。
若看到前面是黑色的话,他不知道自己是黑的还是白的。若前面是白的,那他自己肯定是黑的。
综上。白黑白黑黑

4、猜牌问题 S、P、Q三人知道桌子抽屉里有16张牌,
♥AQ4,♠J84273,♣KQ546,♦A5.
约翰教授从十六张牌抽出一张,把点数告诉P先生,花色告诉Q先生。并问P和Q:你们能从已知点数或者花色中推理出这张牌吗?
P:我不知道这张牌。
Q:我知道你不知道这张牌。
P:现在我知道这张牌了。
Q:我也知道了。
第一句我们知道可能是AQ45这四种数字,对应的是♥AQ4♠4♣Q54♦A5几张牌。
第二句知道在先开始Q就知晓花色必须是全覆盖所有的,也就是说在P开口之前,Q就知道不可能是♠和♣了。所以锁定到♥AQ4♦A5五张牌。
第三句P知道是♥♦了,所以自己已知点数,那就不可能是A。所以可能是Q45三种点数。
第四句Q也知道了,可能是♥Q,♥4,♦5,那自己只可能拿的是♦5才能确定。

海盗分金币,不过他问的是6个人,再往前推一层就行
5号绝对安全,不会被扔到大海,他的策略为,前面的人全部死光,独享金币。
4号必须前面有人活着他才能活,否则就会被5号投出去,不管4号如何分配,5号一定会投反对票独享金币,即使是4号把所有金币全部给5号,5号为了安全会投反对票扔出4号。
3号决策一定是100:0:0,这样的话3和4一起赞成,因为4号无理由支持3号活下去。
2号经过推理也能知道3号的策略,4号和5号也知道如果3号活下来会一分不给他俩,所以2号只要给4和5一点点恩惠就能换来他俩的支持,于是2号可以分配98:0:1:1.
1号也能摸索出2号的方案,给出3号、4号和5号比2号更有诱惑力的金币就可以收买人心。2号希望1号死那就不会投票,所以不给2号,给3号一枚金币来换取支持,再给4和5任意一个人一枚金币,没收另一人的金币就可以,所以最后是
97:0:1:2:0
97:0:1:0:2

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值