电子工程专辑
UBM China

用Xilinx Vivado HLS实现浮点复数QRD矩阵分解

上网日期: 2015年04月27日 ?? 我来评论 字号:放大 | 缩小 分享到:sina weibo tencent weibo tencent weibo


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友

关键字:FPGA? 矩阵分解算法? Vivado HLS?

在数字信号处理领域,如自适应滤波、DPD系数计算、MIMO Decoder等,常常需要矩阵解方程运算以获得其系数,因此需对矩阵进行求逆运算。然而,由于直接对矩阵求逆会导致庞大的运算量,所以在实际工程中往往需要先将矩阵分解成几个特殊矩阵(正规正交矩阵或上、下三角矩阵以求其逆矩阵需要更小的运算量)的乘积。目前,QRD矩阵分解法是求一般矩阵全部特征值的最有效且广泛应用的方法之一。它是将矩阵分解成一个正规正交矩阵Q与上三角形矩阵R,称为QRD矩阵分解。

由于浮点具有更大的数据动态范围,所以在众多多算法中具有只需要一种数据类型的优势,所以很多QRD矩阵分解是基于浮点数据类型的。不过在通信应用中,更多的场景还是复数类型。因此,随着通信技术的日益发展,算法的复杂度越来越高,QRD矩阵的维度也越来越大。如果是用传统的手写RTL,浮点复数超大维度QRD矩阵分解的FPGA实现将变得非常复杂,需要很长的时间来编写RTL代码、仿真和进行验证等工作,使得开发效率不是很高。

本文将介绍如何使用Xilinx Vivado HLS(Vivado高层次综合)工具实现浮点复数QRD矩阵分解并提升开发效率。使用Vivado HLS可以快速、高效地基于FPGA实现各种矩阵分解算法,降低开发者对算法FPGA的实现难度。其中包括:

●使用Vivado HLS开发效率比手写RTL实现快5-10倍,而实现的FPGA资源效率与手写RTL接近

●由于C/C++仿真验证比传统FPGA RTL要快100倍,Vivado HLS实现可以大大缩短用户的代码开发时间和仿真验证时间,从而大幅提高生产效率。

1.Vivado HLS工具介绍

Vivado HLS 是Xilinx公司2010年收购 AutoESL以后重新打造的高层次综合工具,它可以让用户通过添加适当的directives(制导语句) 和 constrains(约束), 将其C/C++/System C代码直接转换成 FPGA RTL( Verilog, VHDL, System C )代码。让用户可以在算法开发环境而非通常的硬件开发环境中只需专注于算法规格和算法的 C 实现,Vivado HLS 工具会自动考虑 FPGA 微观实现架构,并可生成可综合的FPGA RTL代码。如图1所示。

用Xilinx Vivado HLS实现浮点复数QRD矩阵分解(电子工程专辑)
图1:Vivado HLS设计介绍

Vivado HLS FPGA设计流程:

●首先用C/C++/System C将算法实现,并编写C testbench验证C的功能,确保其功能正确;

●然后就可以通过Vivado HLS工具进行C综合,将C转换成RTL;

●接着做C/RTL的协同仿真(Co-simulation),以保证生成的RTL代码功能与C的功能完全一致。

●最后 Vivado HLS 生成的RTL代码可直接用于Xilinx设计开发环境下做系统集成、仿真和生成bit文件。

如图2所示。

用Xilinx Vivado HLS实现浮点复数QRD矩阵分解(电子工程专辑)
图2:Vivado HLS设计流程

第二页:Q R D矩阵 分解算法

第三页:Q R D矩阵 分解的Vivado HLS设计实现与优化

第四页:Vivado HLS Q R D矩阵分 解设计结果


1???2???3???4?下一页?最后一页





我来评论 - 用Xilinx Vivado HLS实现浮点复数QRD矩阵分解
评论:
*? 您还能输入[0]字
分享到: 新浪微博 qq空间
验证码:
????????????????
?

关注电子工程专辑微信
扫描以下二维码或添加微信号“eet-china”

访问电子工程专辑手机网站
随时把握电子产业动态,请扫描以下二维码

?

5G网络在提供1Gbps至10Gbps吞吐量方面具有很好的前途, 并且功耗要求比今天的网络和手机都要低,同时还能为关键应用提供严格的延时性能。本期封面故事将会与您分享5G的关键技术发展,以及在4G网络上有怎样的进步。

?
?
有问题请反馈
推荐到论坛,赢取4积分X