论文摘要
用硬件实现算法一般可比软件实现快数个数量级,以FPGA为代表的可重构硬件以其速度快、功耗低、编程灵活等优点成为算法硬件加速的首选。随着集成电路技术的发展,FPGA芯片的容量和性能不断提高,其在数字信号处理、计算机技术和科学计算等领域的应用日益广泛。本文以减少计算延迟、优化资源使用、提高吞吐率为目标,基于可重构平台对数字信号处理和科学计算领域使用频率较高的初等函数及其复合函数求值、向量旋转和快速傅利叶变换等算法及其实现方法进行了深入研究,综合了近似算法、表驱动的求值算法、流水线组织与访存调度等优化策略,提出相关创新方法。本文的主要工作包括:1)研究了指数/对数函数的计算方法:对常规CORDIC算法进行压缩,将、通路合而为一,实现了专用求值器,减少了芯片面积开销;提出一个统一的指数/对数函数迭代求值算法,通过设置不同的初值和功能选择信号,仅用、通路便可实现指数或对数函数求值,与CORDIC算法相比可节省1/3以上的面积开销;针对低精度、高速度应用,设计并实现了一个基于近似算法的高速对数变换器,并利用简洁、高效的校正逻辑提高了计算精度。2)研究了基于查找表的函数求值方法,利用二阶minimax多项式对函数逐段逼近,实现了一个高效的多函数查表求值系统。通过合理选择分段策略,兼顾了段地址译码逻辑的复杂性与查找表的存储开销;系数逐一圆整(rounding)、三次逼近减少了系数有限精度引入的方法误差,从而减少了存储开销;采用定/浮点双通路分别计算不同特性的函数,保证了计算精度;预先进行精度控制和中间结果截断,减少了多项式的计算开销;最后合理分配各函数查找表的存储空间,实现了系统集成。3)面向旋转角取值范围广且不可预知以及旋转角数目有限且可预知两类应用,以减少迭代次数和面积开销为目标,提出2S-PCS和FFT CORDIC两种向量旋转算法。充分利用了FPGA片上存储资源,借助查找表辅助计算,在减少了迭代次数的同时保持了常规CORDIC算法扩展因子易于计算和补偿的优点,使其相对乘/加方法更具优势。采用28位数据通路时,与常规CORDIC算法相比,2S-PCS算法的流水线级数约减少38%,面积约减少27.9%,精度提高3位(2进制)左右,显示了算法的优良性能。最后面向两类特殊FFT应用对CORDIC算法进行了优化。4)以基2时分FFT算法为基础,针对浮点FFT处理器中的写后读数据相关,提出几种减少相关的方法,并通过改进运算蝶结构、合理调度FPGA片上RAM访问,设计并实现了一个高吞吐率FFT处理器,每周期可读取两个复操作数,输出两个复计算结果,吞吐率为传统FFT处理器的2倍。此外,还面向点数不固定的应用,设计并实现了一个运算蝶级联的可变长FFT处理器。本文所研究的算法实现方法具有通用性,不仅适用于可重构平台,略作调整也适用于ASIC设计。由于算法粒度较小,更适合与其他操作结合实现更大规模的应用。若对这些算法单独进行硬件加速,则要考虑数据输入/输出等额外开销对性能加速的影响。
论文目录
摘要ABSTRACT第一章 绪论1.1 课题研究背景1.1.1 可重构硬件1.1.2 可重构系统1.1.3 可重构硬件加速的难点1.2 选题与研究现状1.2.1 复杂函数求值1.2.2 向量旋转1.2.3 快速傅利叶变换1.3 课题研究内容1.4 论文组织结构第二章 CORDIC 算法原理2.1 旋转模式2.2 定向模式2.3 CORDIC 算法的统一2.4 CORDIC 算法的实现2.5 CORDIC 算法的扩展与优化2.6 本章小结第三章 指数/对数函数求值方法3.1 基于 CORDIC 算法的 专用求值器3.2 统一的指数/对数函数求值算法LnE3.2.1 LnE 指数函数求值算法3.2.2 LnE 对数函数求值算法3.2.3 LnE 算法的区间压缩方法3.2.4 LnE 算法的实现3.3 底2 对数函数高速求值器3.3.1 并行打头“1”检测电路3.3.2 六域误差校正算法的改进3.3.3 误差校正算法精度模拟3.3.4 校正算法的硬件实现3.4 本章小结第四章 基于查找表的复杂函数求值方法4.1 基于查找表的多项式逼近原理4.1.1 区间压缩方法4.1.2 分段与段地址译码方法4.1.3 逐段多项式逼近4.2 一种高效的表驱动的函数求值方法4.2.1 分段方法4.2.2 最佳逼近多项式系数的计算4.2.3 系统参数的确定4.2.4 P25R 函数求值器系统结构4.2.5 多函数集成4.2.6 精度控制与实验仿真4.2.7 系统扩展4.3 本章小结第五章 基于CORDIC 的向量旋转算法5.1 向量旋转操作的两类实现方法5.2 基于CORDIC 的向量旋转算法及其分类5.3 扩展因子预编码的两阶段CORDIC 旋转算法25-PCS5.3.1 SF(Scaling-free CORDIC)算法5.3.2 迭代系数与扩展因子预编码5.3.3 系统结构与流水线划分5.3.4 性能分析与误差模拟5.4 面向FFT 应用的向量旋转算法FFT CORDIC5.4.1 FFT 向量旋转操作描述5.4.2 FFT CORDIC 算法5.5 面向两类特殊FFT 应用的CORDIC 改进算法5.5.1 常规CORDIC 算法迭代周期压缩方法5.5.2 无查找表的FFT CORDIC 算法5.6 本章小结第六章 快速傅里叶变换FFT6.1 基于可编程器件的FFT 处理器现状6.2 离散傅里叶变换及其快速算法原理6.2.1 离散傅里叶变换DFT 及其逆变换IDFT6.2.2 快速傅里叶变换FFT6.3 FFT 运算蝶的硬件实现方法6.3.1 基于CORDIC 实现向量旋转6.3.2 CORDIC 算法的扩展6.3.3 基于CORDIC 算法的基-2 运算蝶的实现6.4 FFT 处理器实现方法对比6.5 可变长FFT 处理器6.5.1 可变长FFT 算法原理6.5.2 可变长FFT 处理器结构6.5.3 可变长FFT 处理器的控制逻辑6.5.4 实验模拟与分析6.6 浮点FFT 实现方法研究6.6.1 FFT 处理器中的RAW 相关6.6.2 高吞吐率浮点FFT 处理器的设计6.7 基于FPGA 的双精度浮点FFT 发展现状6.8 本章小结第七章 结束语7.1 本文研究工作总结7.2 研究展望参考文献致谢作者在学期间取得的学术成果
相关论文文献
标签:初等函数论文; 算法论文; 复合函数求值论文; 查找表论文; 多项式逼近论文; 向量旋转论文; 快速傅立叶变换论文;