您现在的位置:首页 >> 通信 >> 内容

m基于FPGA的256QAM调制信号产生模块verilog实现,包含testbench

时间:2023/6/29 4:14:35 点击:

  核心提示:00_023m,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/ZJqblZxq

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览



3.算法概述

       256QAM调制是一种高阶调制方式,具有较高的传输速率和频谱效率。在数字通信系统中,如何产生256QAM调制信号是一个重要的问题。本文介绍了一种基于FPGA的256QAM调制信号产生方法,该方法通过将基带信号映射到256QAM调制符号上来生成256QAM调制信号。

4.部分源码

 

module TEST;

 

reg clk;

reg rst;

reg start;

 

    wire  [7:0] parallel_data;

    wire [15:0]sin;

    wire [15:0]cos;

wire signed[19:0]  I_com;

wire signed[19:0]  Q_com;

    wire signed[15:0]I_comcos;

    wire signed[15:0]Q_comsin;

 

 

// DUT

tops_256QAM_mod  top(

   .clk(clk),

   .rst(rst),

   .start(start),

   .parallel_data(parallel_data),

   .sin(sin),

   .cos(cos),

   .I_com(I_com),

   .Q_com(Q_com),

   .I_comcos(I_comcos),

   .Q_comsin(Q_comsin)

   );

   

 

   

 

initial begin

clk = 0;

rst = 0;

start = 1;

#10;

rst = 1;

end

always #5

clk <= ~clk;

integer fout1;

integer fout2;

initial begin

 fout1 = $fopen("II.txt","w");

 fout2 = $fopen("QQ.txt","w"); 

end

 

 

 

  reg [4:0]dcnt=5'd0;

  always @(posedge clk) begin

    if(rst == 0) begin

      dcnt <= 0;

 end

      begin

      dcnt <= dcnt+5'd1;

      end 

  end

  

  

always @ (posedge dcnt[4])

 begin

     if(rst==1)

     begin

    $fwrite(fout1,"%d\n",I_com);

$fwrite(fout2,"%d\n",Q_com);

end

end

 

endmodule

00_023m

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
  • 没有相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168