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

📄 match_rec.v

📁 使用VERILOG实现QPSK信号的匹配滤波
💻 V
字号:
`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date:    16:18:04 06/06/2008 // Design Name: // Module Name:    match_rec // Project Name: // Target Devices: // Tool versions: // Description: //// Dependencies: //// Revision: // Revision 0.01 - File Created// Additional Comments: ////////////////////////////////////////////////////////////////////////////////////module match_rec(clk,reset,x_in,y_out);
	 input clk ;         //接收机工作时钟    input reset;    input x_in;        //输入信号,比特流    output [1:0] y_out;  //输出信号,波形编号
	 
	 reg[1:0] y_out;
	 reg[1:0] cnt;
	 reg[2:0] cnt1,cnt2,cnt3,cnt4;    //各个匹配滤波器的权重因子
	 
	 always @(posedge clk) begin
	 if(!reset) begin    //初始化变量
	 cnt<=0;
	 cnt1<=0;
	 cnt2<=0;
	 cnt3<=0;
	 cnt4<=0;
	 y_out<=0;
	 end
	 else begin
	 case(cnt)      //完成状态机的运算
	    2'b00:begin
		     if(x_in==1) begin
			   cnt1<=1;
				cnt2<=1;
				cnt3<=0;
				cnt4<=0;
			  end
			  else begin 
			   cnt1<=0;				cnt2<=0;				cnt3<=1;				cnt4<=1;
			  end
			  //if(cnt1>2)
			  // y_out<=0;
			  //else if(cnt2>2)			  //  y_out<=1;
			  //else if(cnt3>2)			  //  y_out<=2;
			  //else			  //  y_out<=3;
		     end
		 2'b01:begin		     if(x_in==1) begin			   cnt1<=cnt1+1;				cnt2<=cnt2;				cnt3<=cnt3;				cnt4<=cnt4+1;			  end			  else begin 			   cnt1<=cnt1;				cnt2<=cnt2+1;				cnt3<=cnt3+1;				cnt4<=cnt4;			  end
			 end
		  2'b10:begin		     if(x_in==1) begin			   cnt1<=cnt1;				cnt2<=cnt2;				cnt3<=cnt3+1;				cnt4<=cnt4+1;			  end			  else begin 			   cnt1<=cnt1+1;				cnt2<=cnt2+1;				cnt3<=cnt3;				cnt4<=cnt4;			  end			 end
		  2'b11:begin		     if(x_in==1) begin			   cnt1<=cnt1;				cnt2<=cnt2+1;				cnt3<=cnt3+1;				cnt4<=cnt4;			  end			  else begin 			   cnt1<=cnt1+1;				cnt2<=cnt2;				cnt3<=cnt3;				cnt4<=cnt4+1;			  end			 end
	 endcase
	   cnt=cnt+1;  //计数器计数
		if(cnt==0) begin
		if(cnt1>2)			    y_out<=0;			  else if(cnt2>2)			    y_out<=1;			  else if(cnt3>2)			    y_out<=2;			  else			    y_out<=3;		   end
		end

	 endendmodule

⌨️ 快捷键说明

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