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

📄 signal.v

📁 M序列。。。。。。。。。。。。。。。。。。。
💻 V
字号:
//顶层模块(信号发生器)。
//产生编码解码时使用的clk_1以及频率为它31倍的clk_31信号。
//产生M序列的发送信号indata(随机),并且将接收到的解码信号(decode)进行比较。
//发送的头10个信号为1,第11个为0,在解码的开始时期进行同步判断时用到。
`timescale	1ns/1ns
module	signal;

reg		indata;				//待调制信号序列
reg		rst,en,clk_1,clk_31;
wire	[8:0]	sum;
wire		decode_data;
wire	[1:0]	unnoised_data;
wire	[2:0]	noised_data; 

integer	i;
integer	OUTFILE,INFILE;
initial
	begin
	clk_1	=0;
	clk_31	=0;	
	i	=0;
	en	=0;
	rst	=0;
#400	rst	=1;
	en	=1;
#5	clk_1	=1;
	end
	
always	#100		clk_31	<=~clk_31;	//clk_1的周期是100个时间单位(ns)
always	#(31*100)	clk_1	<=~clk_1;	//clk_1信号的周期是clk_31的31倍

always@(negedge clk_1)
begin
	if(i<10)
		begin
		i	=i+1;
		indata	=1;
		end
	else if(i==10)
		begin
		indata	=0;
		i	=i+1;
		end
	else
		indata	=$random%2;			//待调制信号由随机数对2取余数,就得到随机数列0或1
		
	$fdisplay	(INFILE ,"@%0b",indata);
	$fdisplay	(OUTFILE,"@%0b",decode_data);
end

initial
begin
	INFILE	=$fopen("./indata.dat");		//将编码前的信号和解码后的信号分别写入
	OUTFILE	=$fopen("./outdata.dat");		//indata.dat和outdata.dat中以便后来进行检验
end

	
coder		coder		(.rst(rst),.en(en),.clk_1(clk_1),.clk_31(clk_31), 
				 .indata(indata),.outdata(unnoised_data));	
add_noise	add_noise	(.rst(rst),.en(en),.clk_31(clk_31),.unnoised_data(unnoised_data), 
				 .noised_data(noised_data));	
decoder		decoder		(.clk_31(clk_31),.indata(noised_data),.outdata(decode_data),
				 .rst(rst),.en(en),.sum(sum));

endmodule

⌨️ 快捷键说明

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