⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 decode.v

📁 M序列。。。。。。。。。。。。。。。。。。。
💻 V
📖 第 1 页 / 共 2 页
字号:
					i12	<=9'd0;
					if(sum12>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[13])
			begin
				i14	<=i13;
				if(indata[2]==m[i13])
				sum13	<=sum13+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum13	<=sum13-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i13==30)
				begin
					i13	<=9'd0;
					if(sum13>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[14])
			begin
				i15	<=i14;
				if(indata[2]==m[i14])
				sum14	<=sum14+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum14	<=sum14-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i14==30)
				begin
					i14	<=9'd0;
					if(sum14>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[15])
			begin
				i16	<=i15;
				if(indata[2]==m[i15])
				sum15	<=sum15+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum15	<=sum15-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i15==30)
				begin
					i15	<=9'd0;
					if(sum15>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[16])
			begin
				i17	<=i16;
				if(indata[2]==m[i16])
				sum16	<=sum16+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum16	<=sum16-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i16==30)
				begin
					i16	<=9'd0;
					if(sum16>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[17])
			begin
				i18	<=i17;
				if(indata[2]==m[i17])
				sum17	<=sum17+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum17	<=sum17-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i17==30)
				begin
					i17	<=9'd0;
					if(sum17>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[18])
			begin
				i19	<=i18;
				if(indata[2]==m[i18])
				sum18	<=sum18+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum18	<=sum18-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i18==30)
				begin
					i18	<=9'd0;
					if(sum18>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[19])
			begin
				i20	<=i19;
				if(indata[2]==m[i19])
				sum19	<=sum19+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum19	<=sum19-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i19==30)
				begin
					i19	<=9'd0;
					if(sum19>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[20])
			begin
				i21	<=i20;
				if(indata[2]==m[i20])
				sum20	<=sum20+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum20	<=sum20-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i20==30)
				begin
					i20	<=9'd0;
					if(sum20>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[21])
			begin
				i22	<=i21;
				if(indata[2]==m[i21])
				sum21	<=sum21+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum21	<=sum21-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i21==30)
				begin
					i21	<=9'd0;
					if(sum21>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[22])
			begin
				i23	<=i22;
				if(indata[2]==m[i22])
				sum22	<=sum22+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum22	<=sum22-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i22==30)
				begin
					i22	<=9'd0;
					if(sum22>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[23])
			begin
				i24	<=i23;
				if(indata[2]==m[i23])
				sum23	<=sum23+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum23	<=sum23-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i23==30)
				begin
					i23	<=9'd0;
					if(sum23>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[24])
			begin
				i25	<=i24;
				if(indata[2]==m[i24])
				sum24	<=sum24+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum24	<=sum24-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i24==30)
				begin
					i24	<=9'd0;
					if(sum24>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[25])
			begin
				i26	<=i25;
				if(indata[2]==m[i25])
				sum25	<=sum25+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum25	<=sum25-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i25==30)
				begin
					i25	<=9'd0;
					if(sum25>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[26])
			begin
				i27	<=i26;
				if(indata[2]==m[i26])
				sum26	<=sum26+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum26	<=sum26-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i26==30)
				begin
					i26	<=9'd0;
					if(sum26>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[27])
			begin
				i28	<=i27;
				if(indata[2]==m[i27])
				sum27	<=sum27+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum27	<=sum27-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i27==30)
				begin
					i27	<=9'd0;
					if(sum27>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[28])
			begin
				i29	<=i28;
				if(indata[2]==m[i28])
				sum28	<=sum28+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum28	<=sum28-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i28==30)
				begin
					i28	<=9'd0;
					if(sum28>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[29])
			begin
				i30	<=i29;
				if(indata[2]==m[i29])
				sum29	<=sum29+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum29	<=sum29-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i29==30)
				begin
					i29	<=9'd0;
					if(sum22>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			if(flag[30])
			begin
				if(indata[2]==m[i30])
				sum30	<=sum30+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				else
				sum30	<=sum30-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
				if(i30==30)
				begin
					i30	<=9'd0;
					if(sum30>=75)
					begin
						outdata	<=1'b1;
						state	<=main_body;
					end
					else
					state	<=find_head;
				end
			end
			
			
		end
		end		
		
			
		main_body:
		begin
		if(j!=30)
			begin
			if(indata[2]==m[j])
				sum	<=sum+{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
					//推算出来的3位2进制带符号数与原有m序列相乘的公式
			else
				sum	<=sum-{((indata[2]^indata[1])||((indata[2]
					&&indata[1])&&(!indata[0]))),indata[0]};
			j		<=j+1;
			end
		else
			begin
			if(sum>50)
				outdata	<=1;
			else
				outdata	<=0;
			j	<=0;
			if(indata[2]==m[0])
				sum	<=9'd50+{((indata[2]^indata[1])||((indata[2]&&indata[1])
					&&(!indata[0]))),indata[0]};
			else
				sum	<=9'd50-{((indata[2]^indata[1])||((indata[2]&&indata[1])
					&&(!indata[0]))),indata[0]};
			end
		end
		endcase
	end  	
		
end
endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -