【硬件测试】基于FPGA的1024QAM基带通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR

news/2025/3/3 18:22:46/文章来源:https://www.cnblogs.com/51matlab/p/18748948

1.算法仿真效果

本文是之前写的文章:

 

《基于FPGA的1024QAM基带通信系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR》

 

的硬件测试版本。

 

在系统在仿真版本基础上增加了ila在线数据采集模块,vio在线SNR设置模块,数据源模块。硬件ila测试结果如下:(完整代码运行后无水印):

 

vio设置SNR=32db

 

 

 

vio设置SNR=40db

 

 

 

硬件测试操作步骤可参考程序配套的操作视频。

 

2.算法涉及理论知识概要

      1024QAM是一种高级调制方式,可以携带更多的信息位(10比特/符号),从而实现更高的数据传输速率。然而,这也带来了更高的误码率(BER)要求和更复杂的信号处理需求。FPGA由于其可编程性和高性能,成为实现这种复杂调制的理想平台。1024QAM调制将输入的10比特映射到一个复数平面上的1024个不同的星座点之一。每个星座点的位置由输入比特决定,且分布在二维平面上。

 

 

基于FPGA的1024QAM基带通信系统通常包含以下几个模块:

 

数据接口:负责数据的输入输出。

 

串并转换:将串行数据转换为并行数据。

 

星座映射:将输入数据映射到星座点。

 

调制器:生成IQ信号。

 

解调器:从接收到的信号中恢复IQ信号。

 

星座检测:检测最接近的星座点。

 

并串转换:将并行数据转换为串行数据。

 

3.Verilog核心程序

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2024/12/04 15:36:43
// Design Name: 
// Module Name: tops_hdw
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//module tops_hdw(input i_clk,
input i_rst,
output reg [3:0] led
);//设置SNR
wire signed[7:0]o_SNR;
vio_0 your_instance_name (.clk(i_clk),                // input wire clk.probe_out0(o_SNR)  // output wire [7 : 0] probe_out0
);wire  [9:0] parallel_data;
wire signed[15:0]sin;
wire signed[15:0]cos;
wire  signed[15:0]  I_com;
wire  signed[15:0]  Q_com;
wire  signed[15:0]I_Ncom;
wire  signed[15:0]Q_Ncom;
wire  signed[23:0]I_comcos2;
wire  signed[23:0]Q_comsin2;
wire  signed[15:0]o_Ifir;
wire  signed[15:0]o_Qfir;
wire  [9:0] o_sdout;
wire signed[31:0]o_error_num;
wire signed[31:0]o_total_num;TOPS_1024QAM TOPS_1024QAM_u(
.clk           (i_clk),
.rst           (i_rst),
.start         (1'b1),
.i_SNR         (o_SNR),
.parallel_data (parallel_data),
.sin           (sin),
.cos           (cos),
.I_com         (I_com),
.Q_com         (Q_com),
.I_Ncom        (I_Ncom),
.Q_Ncom        (Q_Ncom),
.I_comcos2     (I_comcos2),
.Q_comsin2     (Q_comsin2),
.o_Ifir        (o_Ifir),
.o_Qfir        (o_Qfir),
.o_sdout       (o_sdout),
.flag_reg      (),
.o_error_num   (o_error_num),
.o_total_num   (o_total_num)  
);//ila篇内测试分析模块
ila_0 ila_u (.clk(i_clk), // input wire clk.probe0({ o_SNR,//8I_com[15:6], Q_com[15:6],I_Ncom[15:6],Q_Ncom[15:6],//40I_comcos2[23:8],Q_comsin2[23:8],o_Ifir[15:4],o_Qfir[15:4],//52parallel_data,o_sdout,//20o_error_num,o_total_num//64}));endmodule

  

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/893064.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Codes 项目管理创新之以众不同的缺陷管理工作流配置方式,专为懒人打造,弹指间完成配置

Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台,支持云端认证、本地部署、全部功能开放,并且对 30 人以下团队免费.... 肯定会有人说,不就缺陷管理嘛!几个状态完事,爱咋整就咋整,没必要搞流程化,搞流程就是把简单事情复杂化。 正是基于上述看法,市面上其他的研…

通义灵码上新推理模型,快来体验数学编程双冠王 Qwen2.5-Max

近日,通义灵码上新模型选择功能,除新增 DeepSeek 满血版 V3 和 R1 外,Qwen2.5-Max 也正式上线,它使用了超过 20 万亿 token 的预训练数据及精心设计的后训练方案进行训练。 在通义灵码智能问答、AI 程序员窗口的输入框中,单击模型选择的下拉菜单即可选择所需模型。将 Qwen…

寒假结训总结

首先是这周的各种比赛结果: 个人赛8:(这场比赛感觉运气比较好 首先是前面的题做得很快,然后有一道正解需要KMP或者哈希的题被我用假做法过去了(数据太水),还有一道本来是数位DP的题目假贪心也过去了(好像大部分人都是这么做的),总的来说本来应该排第八,没做出来的那…

Git报错:remote: HTTP Basic: Access denied的解决方法

问题原因: 账号密码验证不通过,密码或者权限不对,导致 Git 操作失败。 解决方案: 输入:git config --system --unset credential.helper 再次进行 Git 操作,输入正确的用户名,密码即可。

wsl2(win11)启用图形界面

WSLg WSLg 是Windows Subsystem for Linux GUI的缩写,意图在WSL中支持直接运行Linux GUI程序,界面和Windows桌面环境无缝集成。 开启WSLg 按下 Win + R,调出命令输入窗口。输入指令 appwiz.cpl。 点击左侧的 【启动或关闭 Windows 功能】:需要勾选【适用于 Linux 的 Window…

鸿蒙安装HAP时提示“code:9568344 error: install parse profile prop check error” 问题现象

在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install parse profile prop check error”错误信息。解决措施 该问题可能是由于应用使用了应用特权,但应用的签名文件发生变化后未将新的签名指纹重新配置到设备的特权管控白名单文件install_list_capability.js…

windows11使用命令行删除文件夹

是否遇到登录账户是管理员,但是仍然提示需要管理员才能删除文件夹,使用windos11自带的命令行工具可以解决。 搜索终端,右键,使用管理员运行复制要删除文件夹的路径比如,要删除桌面的 test-del 文件夹 执行命令 rmdir 路径文件夹内容多,可能提示,按Y就删除了

前端中级面试知识点总结(个人总结自用,不具有普适性,请自行斟酌使用)

25年三月面试前端中高级开发时所作的知识点总结,以应对面试提问Mapbox 基础示例 其中style是重点,可以是url,可以是json配置对象,主要配置图层、图标、数据源等 mapboxgl.accessToken = <输入你的token>;const map = new mapboxgl.Map({container: map, // 地图容器 …

世界第一!阿里云PolarDB刷新全球数据库性能及性价比记录

2月26日,在2025阿里云PolarDB开发者大会上,阿里云宣布PolarDB登顶全球数据库性能及性价比排行榜。根据国际数据库事务处理性能委员会(TPC,Transaction Processing Performance Council)官网披露,阿里云PolarDB云原生数据库以超越原记录2.5倍的性能一举登顶TPC-C基准测试排…

vue学习--创建项目

nvm:nodejs版本管理器 彻底卸载nodejs, .nmprc npm https://blog.csdn.net/weixin_38383877/article/details/143077797 配置好vue,cmd 出现页面 创建

记录---纯前端也能实现 OCR?

🧑‍💻 写在开头 点赞 + 收藏 === 学会🤣🤣🤣 前言前端时间有一个 OCR 的需求,原本考虑调用现成的 OCR 接口,但由于只是做一个我个人使用的工具,花钱购买 OCR 接口显得有些奢侈。于是就想着找找是否有现成的库可以自己部署或直接使用,结果发现了一个可以在纯前端…

系统首页加载异常耗时问题

最近发现一个问题,之前开发好的一个项目部署到公司内网供部门内同事使用后,大家都反应每次登录系统后首页加载很长时间才刷出信息,且基本都是第一次(重新刷新浏览器则不会卡);若是把浏览器的记录删除掉,重启电脑,再访问系统同样是出现首页加载耗时时间长的问题。 为了这…