30.07.2013 Views

在FPGA 平台上实现实时波束形成器 - Xilinx

在FPGA 平台上实现实时波束形成器 - Xilinx

在FPGA 平台上实现实时波束形成器 - Xilinx

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

技 术 长 廊<br />

共享存储器库模块和相关的应用程<br />

序员界面根据 MATLAB(或 C)中的<br />

名称/空间引用将 FPGA 和 PC 主机之<br />

间的数据传输转换成简单的赋值语句。<br />

例如,新的权重矢量 w(驻留在 MAT-<br />

LAB 工作区中)随新的波束形成器系数<br />

(FPGAWeights) 而更新,其计算通过<br />

FPGA QRD 过程利用简单的赋值语句<br />

w = FPGAWeights 完成。 (FPGAWeights<br />

是在 System Generator 对 QRD 引擎的<br />

描述中赋给一个共享缓冲器的名字。)<br />

这种由 System Generator 框架管<br />

理的主处理器/FPGA 交互作用使异构<br />

应用的开发变得直接、迅速、较少出错,<br />

并使 FPGA 加速引擎(正如此设计中<br />

的 QRD 模块)能在不同的硬件平台间<br />

轻松地实现端 口 连 接,而不必修改<br />

FPGA 源代码(System Generator<br />

模块本身)。<br />

这种接口抽 象 层 支持主应用和<br />

System Generator 资源模块之间的事<br />

务,也支持主应用和 FPGA 平台上运行<br />

的最终设计之间的事务。后一因素对系<br />

统软件和硬件 (FPGA) 维数的验证过程<br />

贡献甚巨,因为这两个组件都可以利用<br />

共享存储器的抽象层实现快速上线。<br />

System<br />

Generator<br />

design flow<br />

insulates<br />

the host<br />

program from<br />

the details of the<br />

FPGA platform<br />

Input<br />

Memory<br />

Buffer<br />

“foo”<br />

FPGA<br />

结论<br />

Matlab or C Application<br />

Matlab or C API<br />

Processing<br />

Kernel<br />

Shared<br />

Memory<br />

Object<br />

在本文中,我们描述了灵活的 QRD<br />

处理器在 FPGA 上的应用,从而实现了<br />

运行时对输入矩阵维数的定义。该设计<br />

采用了基于 CORDIC 的处理(阵列边<br />

界单元)和基于 MAC(阵列内部单 元)<br />

的算法之间的混合体,可与 FPGA(如<br />

<strong>Xilinx</strong> Virtex-4 系列)的计算资源良好<br />

匹配。<br />

所有的边界单元和内部单元处理都<br />

被设置在一个边界单元功能模块和内部<br />

单元功能模块上;然而,值得一提的是,<br />

如果目标应用的处理量要求极高的性能<br />

时,FPGA 平台丰富的资源能支持全并<br />

行紧缩阵列的实现。<br />

System Generator 编程环境使<br />

异构系统(处理器和 FPGA)的快速开<br />

发成为可能,同时使编程人员避免了与<br />

硬件/软件的分配有关的复杂而容易出错<br />

的编程过程。<br />

本文由以下 各方协作完成:<strong>Xilinx</strong><br />

高级系统技术小组 (ASTG)、<strong>Xilinx</strong> DSP 部门<br />

的研发小组、以及我们的合作伙伴 Signum<br />

Concepts 和圣地亚哥州立大学。<br />

Output<br />

Memory<br />

Buffer<br />

“bar”<br />

API is autogenerated<br />

by<br />

System<br />

Generator<br />

图 5 - 通过 System Generator<br />

共享存储器库元件实现的硬件/软件抽象。主应用利用简单的名称/空间引用实现了和 FPGA<br />

存储元件之间的事务(此处所引用的是名称为“foo”和“bar”的存储器)<br />

赛灵思中国通讯 25 期

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!