• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

QPSK调制解调设计Verilog代码Quartus仿真

09/19 11:09
697
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24102R02233E5.doc

共1个文件

名称:QPSK调制解调设计Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

QPSK调制解调

1、编写Verilog代码实现QPSK调制

2、对QPSK调制信号进行解调

3、主要包含调制模块、载波模块、解调模块

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench

6. 仿真图

6.1 整体仿真图

6.2 调制模块仿真图

6.3 载波模块仿真图

6.4 解调模块仿真图

部分代码展示:

//QPSK解调模块
module QPSK_demodu(
    input clk,
    input rst,
 input [7:0] qout,//调制波
 input [7:0] cos_wave,//本地载波
 input [7:0] sin_wave,//本地载波 
    output [1:0] data//解调输出
);
wire [16:0] cos_mul;
wire [16:0] sin_mul;
assign cos_mul=cos_wave*qout;//调制波形与本地载波相乘
assign sin_mul=sin_wave*qout;//调制波形与本地载波相乘
reg [5:0]filter_cos_cnt=0;//32
reg [5:0]filter_sin_cnt=0;//32
reg demodulate_a=0;
reg demodulate_b=0;
//采用计数器滤波,检测到cos_mul[15] =1 后计数到25
always @(posedge clk)
  begin
    if(rst)
filter_cos_cnt<=6'd0;
 else
 if(cos_mul[15]==1) 
filter_cos_cnt<=6'd1;
    else 
   if(filter_cos_cnt==6'd0)
filter_cos_cnt<=6'd0;
else
if(filter_cos_cnt>=6'd25)
filter_cos_cnt<=6'd0;
else 
filter_cos_cnt<=filter_cos_cnt+6'd1;
  end
always @(posedge clk)
begin
  if(filter_cos_cnt==6'd0)
demodulate_a<=0;//滤波输出解调的a路信号
  else
      demodulate_a<=1;//滤波输出解调的a路信号
end

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1273

  • 2-24102R02233E5.doc
    下载

相关推荐