对Altera 28-nm FPGA浮点DSP设计流程和性能的独立分析
高级篇:第2章altera器件高级特性与应用

高级篇:第2章altera器件高级特性与应用展开全文高级篇:第2章 altera器件高级特性与应用发布时间:2010-06-23 16:09:11主要内容:. 时钟管理;. 片内存储器;. 数字信号处理;. 片外高速存储器;. 高速差分接口和DPA;. 高速串行收发器。
2.1 时钟管理分析设计中经常遇到的时序问题,介绍如何利用altera的时钟资源和PLL来有效地管理时钟,解决设计中的时序问题。
时序问题:时钟偏斜(skew)和抖动(jitter)时钟偏斜skew是指在时钟分配系统中各个时钟末端(器件内部触发器的时钟输入端)的时钟相位不一致的现象,是同一时钟源分不到不同时钟目的端的延时差。
主要由两个原因造成:一是时钟源之间的偏差,例如同一个PLL所输出的不同的时钟信号之间的偏斜;另一个是时钟分配网络的偏斜。
时钟偏斜是永远存在的,但是其大到一定程度,就会严重影响设计的时序,因此需在设计中尽量减小其影响。
时钟抖动是指时钟边沿的输出位置和理想情况存在一定的误差, 理想的时钟周期与实际的时钟周期的差别。
抖动一般可以分为确定性抖动和随机抖动,确定性抖动一般比较大,而且可以追踪到特定的来源,如信号噪声、串扰、电源系统和其他类似的来源;随机抖动一般是由环境内的因素造成的,如热干扰和辐射等,往往难以追踪。
实际环境中任何时钟都存在一定的抖动,而当时钟的抖动大到影响设计时序时就不可接受,应予以减弱。
时序余量(Timing Margin):在一个同步设计中,可以说时序决定一切。
在设计内部的时序余量时,工程师通常会考虑的一些延时因素是:源触发器的时钟到输出延时MicroTco,触发器到触发器的走线延时Tlogic,目的触发器的建立时间MicroTsu和保持时间MicroTh。
假设设计规格需要跑的时钟周期为T,因此需要满足时钟建立的要求:MicroTco + Tlogic +MicroTsu <= T同时也需要满足目的端触发器的保持时间MicroTh要求。
FPGA开发入门教程

Altera FPGA开发入门教程目录目录第一章 Altera FPGA 开发流程概述 (1)1.1 你需要准备的 (1)1.2 Altera FPGA 基本开发流程 (1)第二章 QuartusII 软件安装教程 (4)第三章 完成第一个FPGA设计 (20)3.1 启动和建立QuartusII工程 (20)3.2 编辑我们的设计文件 (27)3.3 综合、布局布线 (30)3.4 引脚约束 (34)3.5 再次综合、布局布线 (37)第四章 配置FPGA (38)4.1 JTAG配置 (38)4.2 JIC烧写 (42)第一章Altera FPGA 开发流程概述本章介绍Altera FPGA的最基本最简单的开发流程,目的在于让您更直观了解FPGA开发设计过程,最快上手FPGA开发,最快找到感觉:-)1.1你需要准备的●兴趣无需多言,兴趣是最好的老师!●基本电路知识学习FPGA最好能懂一些模拟电路和数字电路的基础知识,比如知道什么是高电平、低电平、逻辑门、触发器、电阻电容、发光二极管等。
只需基本概念即可,不要求你是专家。
当然,如果你有单片机之类的开发经验,那会更好!●Verilog语言是的,我们用Verilog进行FPGA设计。
因为近年来,Verilog的使用率已经远远超过VHDL。
你不需要太精通Verilog的语法,但是你需要用硬件的思维来学习和使用Verilog。
在接下来的FPGA学习中,我们会反复强调这一点,以便带给你更深的体会。
●硬件平台纸上得来终觉浅。
一块优秀而又易用的入门级FPGA开发板,会祝您一臂之力!1.2A ltera FPGA 基本开发流程图1- 1展示了Altera FPGA的基本开发流程。
12图1- 1 Altera FPGA 基本开发流程这个流程可能是你看过类似教程中最简单的流程。
是的,为了让学者能直观了解FPGA 设计流程、快速入门,我们简化了一些东西,但它已经基本完整了。
altera signaltap核例化与使用

altera signaltap核例化与使用SignalTap是Altera公司提供的一个强大的逻辑分析工具。
它可以用于调试和分析FPGA设计中的信号。
SignalTap提供了FPGA内部信号的实时观察和记录功能,可以用于查看特定信号的波形和统计信息,从而有效地进行调试和分析。
为了方便使用SignalTap,首先需要对其进行核例化。
核例化是在设计中插入一个SignalTap模块,以便于对指定信号进行分析。
下面将详细介绍SignalTap的核例化和使用。
1.核例化SignalTap:a.打开Quartus Prime软件,在项目导航器中选择要核例化SignalTap的设计文件。
b.右键点击设计文件,选择“Start Analysis & Synthesis",进入设计的综合和分析设置。
c.在综合设置对话框中,选择“Add/Remove Assignments",在控制面板中选择“SignalTap II Logic Analyzer",点击“OK"。
d.在SignalTap Logic Analyzer对话框中,选择“Create a new SignalTap II instance"。
e.在SignalTap II Analyzer Instance对话框中,选择要观察的信号和模块,并设置时钟和采样点等参数。
点击“OK"保存设置。
f.回到设计窗口,编译设计文件,核例化SignalTap。
2. SignalTap使用:a.完成核例化后,可以打开SignalTap II Logic Analyzer的视图。
点击菜单栏上的“Tools"并选择“S ignalTap II Logic Analyzer",或者使用快捷键Ctrl+Alt+L。
b.在SignalTap II Logic Analyzer的视图中,可以选择要观察的信号,并设置触发条件和触发位置等参数。
第1章 FPGA开发简介-Altera FPGA系统设计实用教程(第2版)-李莉-清华大学出版社

下载电缆
ByteBlaster II
USB-Blaster
Ethernet Blaster
(1)完全符合设计人员的设计思路,从功能描述开 始,到物理实现的完成。
(2)设计更加灵活。 (3)设计易于移植和更改。 (4)易于进行大规模、复杂电路的设计实现。 (5)设计周期缩短。
1.4.2 典型FPGA开发流程
电路功能设计
设计输入
编译 综合
功能仿真
FPGA适配(布局布线)
时序仿真
配置
硬件环境要求高,软件投资大,通用性强,不面向具体 公司的PLD器件。
PLD制造厂商开发的专用软件工具则具有硬件环境要求 低,软件投资小的特点,并且很多PLD厂商的开发工具 是免费提供的,因此其市场占有率非常大;缺点是只针 对本公司的PLD器件,有一定的局限性。
1.4 基于FPGA的开发流程
1.4.1 FPGA设计方法概论 FPGA的设计方法属于自上而下的设计方法
第1章 FPGA开发简介
1.1 可编程逻辑器件概述 1.2 FPGA芯片 1.3 FPGA开发工具 1.4 基于FPGA的开发流程
1.1 可编程逻辑器件概述
可编程逻辑器件(Programmable Logic Device,简
称PLD)
可编程逻辑器件
PLD
低密度 PLD
高密度 PLD
PROM
PLA
PAL
GAL
EPLD CPLD FPGA
70年代初
70年代末 80年代初
80年代中期
80年代中期 及以后
图1-1 PLD器件的发展流程
低密度PLD的基本结构参考图
输入项 乘积项
或项
输
输
Altera新增五款基于Cyclone V FPGA的低成本开发套件,起价49美元

Altera新增五款基于Cyclone V FPGA的低成本开发套件,起价49美元在公共开发环境支持下,系列产品优化了功耗、成本和性能Altera公司今天宣布,新增五款基于其Cyclone V FPGA的低成本开发套件。
这些新开发套件入门价格只有49美元,方便了设计人员以高性价比方式开始FPGA开发。
Altera为业界提供了最全面的系列低成本解决方案,考虑客户独特的设计需求而优化了功耗和性能。
系列产品包括CPLD、FPGA和SoC,均由Quartus II开发环境提供支持。
Altera 系列产品的密度范围在业界最广,封装选择最多,适用于多种大批量应用和系统。
Altera产品市场资深总监Patrick Dorsey评论说:“Altera一直致力于为业界提供最优低成本系列解决方案。
其他供应商此时的重点已经不是低成本产品,迫使客户使用不同的设计环境,而Altera仍然关注交付多种系列产品,在公共设计环境支持下,优化工艺技术,帮助客户迅速提高产量。
”最全面的系列开发套件Altera及其合作伙伴提供30多种开发套件,主要面向Altera的系列低成本CPLD、FPGA和SoC。
套件为开发低成本和低功耗系统级设计,迅速得到结果提供了快速简单的方法。
五款Cyclone V FPGA 28 nm新开发套件最近加入到系列产品中,进一步方便了系统设计,支持设计人员以高性价比方式集成Cyclone V FPGA。
这些新开发套件包括:• 49美元的Arrow BeMicro CV开发套件,安装了Cyclone V E FPGA。
这一低成本开发套件支持开发人员迅速启动其Cyclone V FPGA工程。
• 179美元的TerASIC Cyclone V GX入门套件包括了高速中间连接器(HSMC)和Arduino连接器,支持客户迅速构建其低功耗视频系统,包括,汽车辅助驾驶和人机接口等。
• 349美元的Altima Cyclone V GX开发套件为开发低成本、低功耗、基于FPGA的系统级设计提供了快速简单的方法。
2 SoC入门(SoC介绍SoC开发流程SoC开发工具和GHRD)

SOC入门(SOC介绍、SOC开发流程、SOC开发工具)GHRD⚫SOC概念(与SOPC对比)⚫SOC开发流程⚫SOC开发工具⚫打开GHRD(黄金参考设计)⚫SOC概念(与SOPC的对比)SOC-systmen on chip(片上系统)SOPC-system on a pragamable chip(可编程的片上系统)⚫在SoC FPGA 中,嵌入的是ARM 公司的Cortex-A9 硬核处理器,简称HPS(Hardware Processor System)⚫该系统可以跑linux,也可以跑裸机,主频在800M以上⚫HPC是独立硬电路部分,不使用也存在在那个地方⚫HPC处理器强大⚫在SOPC FPGA中,嵌入的是NIOS II 软核处理器,⚫改系统只能跑裸机,主频最高100M⚫NIOS是FPGA逻辑资源构成,不用时可以全部用于逻辑设计使用⚫NIOS处理能力弱⚫SoC FPGA 的主要特性参数主要特性Cyclone V Arria V Arrila 10工艺28nm Low Power (28LP) process20nm process处理器缓存/协处理器Dual-core Arm* Cortex*-A9 MPCoreL1, L2Cache, Arm NEON* technology, Double Precision Floating Point Unit (FPU), Accelerator coherency port (ACP)处理器性能925 Mhz 1.05 GHz 1.5 GHz支持内存控制器Up to DDR3 400MHzUp to DDR3533MHzUp to DDR41200MHz逻辑密度25-110KLE350-460KLE160-660KLE 收发器Up to 6 Gbps Up to 10 Gbps Up to 17 Gbps总功耗2W to 5W(Single core @ 300MHz commercialtemp to dual core@ 800 MHzindustrial temp )10W to 15W(Single core @ 300MHz commercialtemp to dual core@ 800 MHzindustrial temp )Up to 40% lowerpower compared toArria®V SoC⚫SoC FPGA 的架构优势⚫开发周期短—HPS ARM Cortex-A9 处理器能够运行成熟的Linux 操作系统,LINUX已经有非常完成的生态基于,我们能够非常简单高效的编写Linux 应用程序,加快软件开发周期。
1、Altera Quartus II 教程(基于Altera DE2板和原理图设计)

美国半导体行业协会(SIA)所划分的世界主要地区的 FPGA 消费情况。总的来说,目前及今 后相当长的一段时间内,FPGA 市场将保持稳定增长,并且高于半导体行业的平均水平。
FPGA 的基本特点主要有: ● 采用 FPGA 设计 ASIC 电路,用户不需要
投片生产,就能得到合用的芯片; ● FPGA 可做其它全定制或半定制 ASIC 电
课程的任务 利用数字电路课程中所学的知识,采用原理图的方式设计具有某种功能要求的数字电
路。将所设计的电路在 Altera 公司的一款可编程数字逻辑器件(一种 FPGA 器件,Altera 公 司 DE2 板上的核心器件)上实现,并配合 DE2 板上的与 FPGA 相连的外围器件,实现给定功 能要求的硬件电路。其中从设计输入到最终的硬件实现的整个过程,都在 Altera 公司的集成 开发软件 Quartus II 下完成。
一、FPGA 简介
FPGA 是英文 Field Programmable Gate Array 的缩写,即现场可编程门阵列,是一种大规 模数字器件,它可由用户编程实现特定的数字电路功能(而不必通过厂家进行掩膜编程)。 FPGA 是在 PAL、GAL、EPLD 等可编程逻辑器件(PLD,这个缩写有时指全部的可编程逻 辑器件,有时也特指那些规模小且可以单片使用的器件)的基础上进一步发展的产物,20世 纪80年代中期,为了弥补当时小规模 PLD 器件的不足,Altera 和 Xilinx 公司分别推出了类似 于 PAL 结构的扩展性 CPLD(Complex Programmable Logic Device)和类似于标准门阵列的 FPGA,它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点,可实现较大 规模的电路,编程也很灵活。与专用集成电路 ASIC(Application Specific IC)相比,它们则 可以被视为一种半定制电路,解决了定制电路的设计制造投入及研发周期等方面的不足。
《详解FPGA:人工智能时代的驱动引擎》札记

《详解FPGA:人工智能时代的驱动引擎》阅读随笔目录一、FPGA简介 (2)1.1 FPGA的定义与特点 (3)1.2 FPGA的发展历程 (4)1.3 FPGA的应用领域 (5)二、FPGA的工作原理 (7)2.1 FPGA的基本架构 (8)2.2 FPGA的工作模式 (10)2.3 FPGA的编程语言 (11)三、FPGA在人工智能领域的应用 (12)3.1 机器学习与深度学习 (14)3.2 自动驾驶与机器人技术 (15)3.3 无人机与智能物流 (17)3.4 医疗诊断与生物信息学 (18)3.5 其他领域的FPGA应用 (20)四、FPGA的设计与优化 (22)4.1 FPGA设计流程 (23)4.2 硬件描述语言 (25)4.3 设计优化策略 (26)4.4 性能评估与测试 (28)五、FPGA的未来发展趋势 (29)5.1 技术创新与突破 (30)5.2 行业合作与生态系统建设 (32)5.3 应对挑战与机遇 (33)六、结论 (35)6.1 FPGA在人工智能时代的重要性 (36)6.2 未来展望与期许 (37)一、FPGA简介FPGA(现场可编程门阵列)是一种集成电路芯片,它允许设计师在硬件层面上实现可编程的解决方案。
与传统的专用硬件电路相比,FPGA具有更高的灵活性和可扩展性,因此在人工智能、数据中心、通信等领域得到了广泛应用。
FPGA的核心特点是可编程性。
它可以根据需要动态地重新配置内部逻辑单元,从而实现各种功能。
这种可编程性使得FPGA在应对不断变化的应用需求时具有很高的效率。
FPGA还具备低功耗、高性能、高可靠性等优点。
FPGA的发展历程可以追溯到20世纪80年代,当时Xilinx公司推出了世界上第一款商用FPGA产品。
随着技术的不断发展,FPGA的性能不断提高,功能也越来越丰富。
FPGA已经发展到了第四代,即UltraScale系列,其最大容量可达140亿个逻辑单元,支持多种编程语言和开发工具,为人工智能时代的应用提供了强大的支持。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Altera 28-nm FPGA浮点DSP设计流程和性能的独立分析作者:Berkeley设计技术有限公司员工2012年10月目录1.引言 (3)2.实现 (6)3.设计流程和工具链 (13)4.性能结果 (17)5.结论 (21)6.参考 (22)1.引言两个浮点设计实例数字芯片技术的进步使得复数算法能够在常用的嵌入式计算应用中实现,而这以前只限于研究环境。
例如,线性代数多年以来(特别是用于解具有大量联立线性方程的系统)主要用在研究环境中,这种环境能够提供大量的计算资源,但通常不需要进行实时计算。
解大规模系统需要矩阵求逆或者某些矩阵分解算法。
这些方法不但需要进行大量的计算,而且,如果没有足够的动态范围,还有可能出现数值不稳定问题。
因此,只有在浮点器件中才有可能高效精确的实现这类算法。
Altera最近在DSP Builder高级模块库工具链中引入了浮点功能,以简化在Altera FPGA 上的浮点DSP算法实现,此功能与传统的FPGA设计方法相比提高了浮点设计的性能和效率。
BDTI在以前的一篇白皮书[1]中分析并评估了Altera Quartus II软件v11.0工具链单通道浮点Cholesky求解器实现实例的性能和效率,针对40-nm Stratix IV和Arria IV FPGA进行了综合。
在本文中,我们评估Altera使用新版Quartus II软件v12.0工具链方法的效率,以及Altera 28-nm Stratix V和Arria V FPGA的性能。
针对这一评估,BDTI的重点是使用两类分解方法来解大规模联立线性方程:多通道Cholesky矩阵分解以及使用Gram-Schmidt过程的QR分解。
这些分解结合了前向和后向代换,在一组联立线性方程Ax =B中,解出矢量x。
矩阵分解用在很多高级军用雷达应用中,例如,空时自适应处理(即,STAP),以及数字通信中的各类估算问题等。
QR分解常用于普通m乘n矩阵A中,而Cholesky分解以其计算阵首选算法。
这些分解方法的计算量非常大,需要很高的数据精度,因此,必须使用浮点计算。
此外,本文中研究的这两个例子在其核心算法中使用矢量点乘和嵌套循环算法,很多涉及到线性代数和有限冲击响应(FIR)滤波器的数字信号处理应用都使用了这些算法。
在本文所介绍的例子中,采用这两种方法解一组联立复数线性方程,并得出其结果。
第4部分介绍了使用QR求解器,Altera Stratix V FPGA能够以运行速率为203 MHz完成每秒315次400×400矩阵分解计算,浮点运算是每秒162×109次(GFLOPS)。
本文评估的这两个设计实例是其DSP Builder软件v12.0工具链的一部分,也可以通过floatingpoint@申请获得。
浮点设计流程传统上,FPGA并不是要求较高的浮点应用的平台选择。
FPGA供应商虽然提供了浮点基本库,但是,FPGA在浮点应用中的性能表现非常有限。
由于浮点算子很深的流水线特性以及较宽的算法结构,产生了较大的数据通路延时和布线拥塞,因此,传统的浮点FPGA设计效率较低。
延时也在需要进行大量数据处理的设计中产生了难以处理的问题。
最终的结果是设计的工作频率非常低。
Altera DSP Builder高级模块库工具流程在体系结构层面以及系统设计层面解决了这些问题。
Altera浮点编译器将大部分数据通路融合至一个浮点功能中,而不是通过组合基本浮点算子来构建它们。
它分析数据通路的位增长,选择最优归一化输入,为数据通路分配足够的精度,尽可能消除归一化和去归一化步骤,从而实现了这一点,如图1所示。
IEEE 754格式仅用于数据通路边界;在数据通路内部,使用了较大的尾数宽度,以提高动态范围,减少对连续算子之间去归一化和归一化步骤的需求。
归一化和去归一化函数使用了48位宽桶形移位寄存器来实现单精度浮点数。
这需要大量的逻辑和布线资源,是在FPGA上实现浮点算法效率不高的主要原因。
融合数据通路方法避免了大量使用这类桶形移位寄存器。
在Stratix V和Arria V器件中,涉及到高精度尾数的乘法运算使用了Altera的27位×27位乘法器模式。
图1(b)显示了融合数据通路方法,与图1(a)传统的实现方法相比,这一简单实例使用了两个加法链。
图1(b)中的融合数据通路不需要对第一个加法器的输出进行去归一化,以及对第二个加法器的输入进行归一化,因此避免了算子交叉冗余。
不需要使用额外的逻辑和布线资源,而是使用硬核乘法器,因此,能够预测复数数据通路上的时序和延时。
实现单精度和双精度IEEE 754浮点算法不但减少了对逻辑资源的占用而且还提高了性能。
Altera宣称,与由基本算子构成的等价数据通路相比,融合数据通路方法减少了50%的逻辑,延时减小了50% [2]。
结果,内部数据表示范围更宽,总的数据精度一般高于使用基本IEEE 754浮点算子库的方法。
Altera浮点DSP设计流程采用了Altera DSP Builder高级模块库、Altera的Quartus II软件工具链、ModelSim仿真器,以及MathWorks的MATLAB和Simulink。
利用Simulink环境,设计人员能够在算法行为级来描述、调试并验证复杂系统。
DSP Builder高级模块库采用了数据类型传播以及矢量数据处理等Simulink 特性,使设计人员能够快速进行算法设计空间管理。
为评估Altera浮点设计流程的效率和性能,BDTI使用了DSP Builder高级模块库工具流程,验证两个实例,使用单精度浮点表示的复数数据类型解一组联立线性方程。
使用Cholesky分解得到一个解,而另一个则通过Gram-Schmidt过程,使用QR分解得出解。
本文的第2部分介绍怎样实现两个浮点实例。
第3部分介绍BDTI在设计流程和工具链上的使用体验。
第4部分介绍在两种不同Altera FPGA上实现的性能:高端中等容量Stratix V 5SGSMD5K2F40C2N器件和中端Arria V 5AGTFD7K3F40I3N器件。
最后,第5部分是BDTI的结论。
2.实现背景在很多应用中都会遇到一组线性方程Ax= b。
无论这是一个涉及到线性最小平方的优化问题,Kalman滤波器预测问题,还是MIMO 通信通道估算问题,都需要找到一组线性方程Ax =b的数值解。
对于大小为m乘n的普通矩阵,m是矩阵高度,n是宽度,QR分解可以图1 (a) 传统浮点实现(b) 融合数据通路实现用于解出矢量x。
这一算法将A分解成一个大小为m乘n的标准正交矩阵Q和一个大小为n乘n的上三角矩阵R。
由于Q是标准正交的,因此,Q T Q= I,Rx= Q T b。
而R是上三角矩阵,用后向代换方法很容易解出x,甚至不需要置反原始矩阵A。
在本文的QR实例中,我们应用了m≥n的超定矩阵。
当矩阵A是对称而且正定时,例如很多问题中出现的协方差矩阵,通常使用Cholesky分解和求解器。
此算法可找到矩阵A的逆矩阵,从而解出中的矢量x。
取决于分解时所使用的算法,Cholesky分解的效率至少是QR分解方法的两倍。
由于这些分解算法本质上都是递归的,需要进行除法,因此,随着矩阵规模的增大,数字动态范围也在不断增大。
例如,对于MIMO通道估算中的矩阵规模只有4×4,也需要使用浮点运算来实现。
对于需要较大吞吐量的大规模系统,例如,军事应用中的例子,嵌入式系统一般很难实现所需的浮点运算速率。
设计人员通常舍弃整个算法,而寻求次优解决方案,或者,使用多个高性能浮点处理器,从而增加了成本,增大了设计投入。
体系结构简介Cholesky求解器在我们的设计实例中,通过在FPGA中作为以流水线方式并行工作的两个子系统来实现Cholesky求解器。
第一个子系统执行Cholesky分解和前向代换——名为Cholesky求解器的工具条中的第1步和第2步。
第二个子系统执行后向代换——同一工具条中的第3步。
由于输入矩阵是厄米矩阵,分解产生复数共轭转置三角矩阵,因此,只装入输入矩阵A的下三角部分,覆写它,生成下三角矩阵L,从而提高了对存储器的利用率。
这两个子系统都采用了输入级和处理级流水线运作,,这样允许在同一存储器的区域里进行处理,而另一半用于装入新数据。
分解和前向置换级的输出被传送到后向置换的输入级,如图2所示。
分解的核心是复数矢量点乘引擎(也称为矢量乘法器),用于计算方程(3)和(4)。
对于Stratix V器件,矢量长度(VS)的上限为90个复数元素,而对于Arria V器件,实现中可用复数元素的矢量长度上限为45。
矢量长度也对应于每个时钟周期需要为点乘引擎提供一组新的数据所需的并行存储器读操作数,,从而确定片内双端口存储器的宽度,以及怎样划分这些存储器。
出于实施方面的考虑,将大小一定的矩阵存储器分成ceil(N/VS)存储块,其中,ceil()是取整函数,N是矩阵的大小。
式。
通道最大数是一个编译时间参数,仅受Array器件可用存储器的限制。
存储器划分与单通道实现方式一致,只是使用了相同结构的多个副本。
分解运算每次处理一个元素,按照列的顺序,从左上角开始,按照垂直之字形方式进行,在矩阵右下角结束,如图3(a)所示。
首先计算每一列的对角元素,然后是其下同一列中的所有非对角元素,再转到右侧下一列顶部的对角元素。
采用四级嵌套for循环对事件和迭代进度进行控制。
最外层循环实现按列处理;第二层循环实现按块处理;第三个内循环处理行;最内层循环处理多个通道。
将通道处理放在最内层循环能够有效的将浮点累加器转换为时间共享累加器,更好的隐藏其延时。
DSP Builder高级模块库中的NestedLoops模块在一个处理模块中集成了三个嵌套循环,与作为三个分立的for-loop模块实现的相似功能相比,这提高了处理速度,更有效的使用了资源。
模块提取出了最复杂的循环控制信号,缩短了设计和调试时间,循环结构更具可读性。
点乘引擎对矩阵的每一行进行操作,在一个周期中,同时对方程(3)、(4)和(6)中的求和项进行矢量乘法计算。
环形存储器结构用在点乘引擎的输入上,对多个输入矩阵的行进行循环处理。
对于矢量点乘长度比矢量长度短的情况,屏蔽未使用的项,不含在求和项中。
对于点乘长度长于矢量大小的情况,计算部分乘积和,在块边界进行保存,直到该行中某一元素所有块的输出能够用于最终的求和计算,如图3(b)所示。
使用DSP Builder高级模块库的浮点加法器块,在一个累加器循环中进行块输出求和计算。
反馈循环的延时是13个周期。
通过将软件实现中传统的for块循环和for行循环顺序进行交换,并增加多通道处理,隐藏了浮点累加器的延时,提高了硬件的利用率。