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

16QAM调制信号生成设计Verilog代码Quartus仿真

08/24 09:01
549
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2409101SZLa.doc

共1个文件

名称:16QAM调制信号生成设计Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

16QAM调制信号生成

1、对输入的4bit信号进行16QAM调制

2、包含正弦波、余弦波产生模块

3、包含有符号乘法器、加法器模块

4、实现编码映射

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

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench

6. 整体仿真

16QAM调制过程可以简化为下图,I路Q路分别乘以cos和sin,再相加即得到调制信号。

7. DDS模块仿真,用于产生sin和cos

地址sin_address累加,cos_address累加,依次读取ROM里面所存的sin和cos值。输出波形如上图所示。

8. 相乘模块仿真

Dataa信号和datab信号相乘得到result信号。可以看到result的幅值包络与datab有关。

9. 相加模块仿真

相加模块将dataa得值和datab得值相加,得到result得值。result得值即为16QAM调制波形

部分代码展示:

//16QAM
module?qam(clk,?DataIn,?DataOut);
???input?????????clk;//时钟
???input?[3:0]???DataIn;//输入码
???output?[12:0]?DataOut;//输出16QAM信号
???wire?[9:0]????sin_data;
???wire?[9:0]????cos_data;
???reg?[2:0]?????MULT0_data;
???reg?[2:0]?????MULT1_data;
???wire?[12:0]???MULT0_result;
???wire?[12:0]???MULT1_result;
???
???//DDS?产生正弦和余弦
???DDS?u0(.clk(clk),?.sin_data(sin_data),?.cos_data(cos_data));
???
//有符号触乘法器
???MULT?u1(.dataa(sin_data),?.datab(MULT0_data),?.result(MULT0_result));
???
//有符号触乘法器
???MULT?u2(.dataa(cos_data),?.datab(MULT1_data),?.result(MULT1_result));
???
//有符号加法器
???add?u3(.dataa(MULT0_result),?.datab(MULT1_result),?.result(DataOut));
???
???//编码映射
???always?@(DataIn)
??????case?(DataIn)
?????????4'b0000?:
????????????begin
???????????????MULT0_data?<=?3'b011;
???????????????MULT1_data?<=?3'b011;
????????????end
?????????4'b0001?:
????????????begin
???????????????MULT0_data?<=?3'b001;
???????????????MULT1_data?<=?3'b011;
????????????end
?????????4'b0011?:
????????????begin
???????????????MULT0_data?<=?3'b111;
???????????????MULT1_data?<=?3'b011;
????????????end
?????????4'b0010?:
????????????begin
???????????????MULT0_data?<=?3'b101;
???????????????MULT1_data?<=?3'b011;
????????????end
?????????4'b0110?:
????????????begin
???????????????MULT0_data?<=?3'b101;
???????????????MULT1_data?<=?3'b001;
????????????end
?????????4'b0111?:
????????????begin
???????????????MULT0_data?<=?3'b111;
???????????????MULT1_data?<=?3'b001;
????????????end
?????????4'b0101?:
????????????begin
???????????????MULT0_data?<=?3'b001;
???????????????MULT1_data?<=?3'b001;
????????????end
?????????4'b0100?:
????????????begin
???????????????MULT0_data?<=?3'b011;
???????????????MULT1_data?<=?3'b001;
????????????end
?????????4'b1100?:
????????????begin
???????????????MULT0_data?<=?3'b011;
???????????????MULT1_data?<=?3'b111;
????????????end
?????????4'b1101?:
????????????begin
???????????????MULT0_data?<=?3'b011;
???????????????MULT1_data?<=?3'b111;
????????????end
?????????4'b1111?:
????????????begin
???????????????MULT0_data?<=?3'b111;
???????????????MULT1_data?<=?3'b111;
????????????end
?????????4'b1110?:
????????????begin
???????????????MULT0_data?<=?3'b101;
???????????????MULT1_data?<=?3'b111;
????????????end

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

  • 2-2409101SZLa.doc
    下载

相关推荐