1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJqclJlq
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
1024QAM调制信号的符号映射方式有多种选择,例如Gray映射、正交映射等。在本文中,我们选择Gray映射方式,其具有较好的错误容忍性和功率效率。Gray映射的思想是将相邻的符号在二进制比特上只有一个位不同。例如,当a_n为0000000000时,其对应的符号为QAM调制图中的左下角点;当a_n为0000000001时,其对应的符号为左下角点往上移动一个单位。
4.部分源码
module TEST;
reg clk;
reg rst;
reg start;
wire [9: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_1024QAM_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)
);
//wire signed[23:0]I_comcos2;
//wire signed[23:0]Q_comsin2;
//wire signed[7:0]o_Ifir;
//wire signed[7:0]o_Qfir;
//wire signed[7:0]o_sdout;
//tops_256QAM_demod top2(
// .clk(clk),
// .rst(rst),
// .start(start),
// .I_comcos(I_comcos),
// .Q_comsin(Q_comsin),
// .I_comcos2(I_comcos2),
// .Q_comsin2(Q_comsin2),
// .o_Ifir(o_Ifir),
// .o_Qfir(o_Qfir),
// .o_sdout(o_sdout)
// );
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_024m
---