基于FPGA的自然对数变换器的设计与实现

发布者:Zhenxiang最新更新时间:2010-03-03 来源: 天津大学生物医学检测技术与仪器重点实验室关键字:FPGA  自然对数变换器  DSP 手机看文章 扫描二维码
随时随地手机看文章

  引言

  在需要硬件实现对数运算的场合[1],其精度和速度是必须考虑的问题。目前硬件实现对数变换的方法主要有查表法、泰勒公式展开法和线性近似法。查表法[2]所需要的存储单元随着精度的增加或输入值范围的增大而成指数增加;泰勒公式展开法[3]需要乘法器,面积大不易实现;线性近似法[4]的精度有限,且需要误差校正电路,实现较难。

  本文利用CORD IC算法在FPGA上实现了高速自然对数变换器。CORD IC算法即坐标旋转数字计算方法最初由J.D.Volder[5]于1959年提出,其基本思想是用一系列与运算基数相关的角度的不断偏摆从而逼近所需旋转的角度。1971年J.S.Walter[6]提出统一的CORD IC算法,把圆周旋转、直线旋转和双曲旋转统一到同一个CORD IC迭代方程里,为同一硬件实现多功能运算提供了前提。由于它将许多复杂的算术运算化成简单的加法和移位操作,在不影响运算速度和精度的情况下,极大的降低了硬件设计的复杂性,节约了硬件资源。利用CORD IC算法可以直接实现乘法、除法、正余弦函数,反正切函数、双曲函数等,对输入进行适当的初始化可以实现正切、双曲正切、对数和指数等函数。

  在数字信号处理领域用的较多的是DSP和FPGA。DSP的优势源于多数信号处理算法的乘-累加运算(MAC)都是非常密集的。FPGA通过多极流水线架构也能够用来实现MAC单元,并且FPGA技术可以通过一个芯片上的多级MAC单元来提供更多的带宽,速度可以比数字信号处理芯片快,并且功耗较低。CORD IC算法完全由移位和加法操作完成,因此利用FPGA可以实现更高的运算速度。本文采用流水线结构在FPGA上实现基于CORD IC的对数变换,可以达到80MHz的处理速度。

  CORD IC算法实现自然对数运算

  CORD IC算法最初是用于计算三角函数的,后来由于其算法的简单、硬件易于实现等多种优势,而被广泛的用于多种初等函数的运算中(包括三角函数、乘除法运算、指数运算、对数运算等)。本文主要利用CORD IC算法的双曲旋转法实现自然对数运算。

  在双曲坐标系下,CORD IC算法的迭代方程为:

公式

  由于公式,所以迭代序列必须从n=1开始,为保证迭代序列收敛,因此迭代序列n的取值从第4项开始每隔3n+1项必须重复一次,即n=1,2,3,4,4,5,…,40,40,…。

  在向量模式下,公式经n次迭代后的输出方程为:

公式

  因为公式

  所以令x=t+1,y=t-1

  则公式

  所以对于t,如果我们要求lnt,只要做如下初始化:

  X=t+1,y=t-1,z=0

  则输出z=0.5ln(t),只需要在CORD IC之后做一次左移即可。

  如(2)式所示,为保证迭代序列的收敛,|tanh-1(y0/x0)|≤1.1182,因此|y/x|max≈0.8069,n→∞,反双曲正切的定义域为(-1,1),可见函数的输入范围受到了限制。解决的方法是增加n为负数的迭代,改进的算法公式为:

  当n≤0时

公式

  当n>0时

公式

  收敛的范围变成

  |tanh-1(y/x)|≤θmax

  其中    公式

  当M=5时,θmax=12.4264,函数tanh-1的范围是[-12.4264,12.4264]。也就是说此时y/x可以接近于[-1,1],几乎覆盖tanh-1的整个定义域。因此硬件实现过程中可以从-5开始迭代。[page]

  对数运算的FPGA实现

  CORD IC算法完全由移位和相加完成,很容易在硬件上实现。由于FPGA具有并行处理能力,利用FPGA实现对数变换,速度可以比数字信号处理芯片快,以满足某些高速处理的要求。本文采用的FPGA芯片是Altera公司的cyclone系列芯片EP1C6Q240C8。该芯片内部共有逻辑单元5980个,支持近12万门的设计,内部嵌有约12Kbyte的RAM,包含2个生成时钟的锁相环,最大用户I/O数185个,满足设计要求。

  实现方法

  •   预处理单元

  欲利用CORD IC方法求自然对数,必须对输入进行初始化,经迭代运算后才能得到对数运算值。该对数变换器的输入为16位数,在预处理单元中将输入分别加减一,并将位宽扩大为40位,最高位作为符号位覆值给第一次迭代的x0和y0,如图1所示,图中s代表符号位。扩大位宽可以提高输出精度。

初始迭代值x0

图1初始迭代值x0,y0

  •   CORD IC单元

  CORD IC单元是实现对数变换器的核心。本文利用流水线结构实现CORD IC算法,其结构如图2所示。在设计中,采用由28级CORD IC运算单元组成的流水线结构,为扩大输入范围,从n=-5开始迭代,移位序列为[7,6,5,4,3,2,1,2…28]。前6级根据(3)式进行迭代,后22级根据(4)式进行迭代。经过28级流水线运算后,y变为0,z左移一位就是要求的对数值。每一级电路结构主要包括2个移位寄存器和3个加减法器,这些移位寄存器各自有不同的固定的移位次数,加减法选择由该级中y的最高位(符号位)决定。θn为第n次迭代的旋转角度,并作为常数直接连到了累加器上,不需要存储空间和读取时间。

CORDIC流水线结构

图2 CORDIC流水线结构

  •   后处理单元

  由CORD IC得到的z=1/2ln(t),因此将结果左移一位,并截取高16位作为最终的输出。其中最高位为符号位,最大输入值65535的对数值为11.0903,对应的输出为7FFF,其余输出均除以对应的值即得到相应的对数值。[page]

  实验结果

  在Quartus II 5.1软件环境下使用Verilog HDL语言完成了上述各算法,并在cyclone系列芯片EP1C6Q240C8上实现。图3 为对数运算时序仿真图。表1为对数运算结果与理论值的比较。

对数运算时序仿真图

图3对数运算时序仿真图

  由表1可看出,该对数运算器的输出误差为10-4数量级。由于采用流水线结构,能够在执行进程的同时输入数据,从而极大的提高了程序的运行效率。该设计需要30个时钟周期获取第一个计算结果,而只需要一个时钟周期来获取随后的计算结果。利用Quartus Ⅱ5.1软件进行时序分析,该运算器的最高频率可达到80MHz。该运算器适用于高速大数据量的数据处理。

表1对数运算结果与理论值的比较

对数运算结果与理论值的比较

  结语

  利用对数变换可以将乘除法变换为加减法实现,有利于乘除法在硬件中的实现。由于CORD IC算法完全由移位和相加运算完成,降低了复杂性,易于硬件的实现。笔者利用CORD IC算法在FPGA上设计了一种自然对数变换器。实现过程中采用流水线结构,提高了系统的运行效率。实验结果表明该对数运算器的输出误差为10-4数量级,最高频率可达到80MHz。该运算器适用于高速大数据量的数据处理。

  参考文献:

  1.  李刚、李秋霞、林凌、李小霞等,动态光谱频域提取的FFT变换精度分析,光谱学与光谱分析,2006,12:2177-2180

  2.  Bajard J C,Muller J M.BKM: A new hardware algorithm for complex elementary functions.IEEE Trans computers,1994,43(8):955-963

  3.  Hormigo J,Villalba J,Schulte M J.A hardware algorithm for variable precision logarithm[c]//proceedings of the IEEE inter conf on application-specific systems,architectures and Processors,2000:215-224

  4.  Abed K H,Siferd R E. CMOS VLSI implementation of a low Power logarithmic converter. IEEE Trans computers,2003,52(11):1421-1433

  5.  Uwe Meyer-Baese.Digital SignalProcessing with Field Programmable Gate Arrays[M].Tsinghua University Press. 2006:79-87

  6.  J.S.Walther. A unified algorithm for elementary functions. in proc.Spring Joint Comput.Conf.,1971:379-385

  7.  Chih-Hsiu Lin and An-Yeu Wu.Mixed-Scaling-Rotation CORDIC(MSR-CORDIC) Algorithm and Architecture for High-PeRFormance Vector Rotational  DSP Applications. IEEE Transactions on circuits and systems-I:REGULAR PAPERS, 2005,52(11):2385-2396

  8.  Xiaobo Hu,Ronald G. Harber,Expanding the range of convergence of the CORDIC algorithm. IEEE Transactions on computers, 1991,40(1):13-21


  9.  Altera公司,“Cyclone FPGA Family data Sheet”

关键字:FPGA  自然对数变换器  DSP 引用地址:基于FPGA的自然对数变换器的设计与实现

上一篇:采用FPGA设计SDH光传输系统设备时钟
下一篇:基于FPGA的高速数字隔离型串行ADC及应用

推荐阅读最新更新时间:2024-05-02 21:00

利用Spartan-3 FPGA实现高性能DSP功能
  Spartan-3FPGA能以突破性的价位点实现嵌入式DSP功能。本文阐述了Spartan-3 FPGA针对DSP而优化的特性,并通过实现示例分析了它们在性能和成本上的优势。   所有低成本的FPGA都以颇具吸引力的价格提供基本的逻辑性能,并能满足广泛的多用途设计需求。然而,当考虑在FPGA构造中嵌入DSP功能时,必须选择高端FPGA以获得诸如嵌入式乘法器和分布式存储器等平台特性。   Spartan-3 FPGA的面世改变了嵌入式DSP的应用前景。虽然Spartan-3系列器件的价位可能较低,但它们同样具有DSP设计所需的平台特性。这些平台特性能够以较高的面积利用率实现信号处理功能,使设计达到更低价位点。   Spar
[工业控制]
Arm/FPGA联手发威 研华生产线大步迈入AI时代
  人工智能(Artificial Intelligence, AI)无疑是近一两年来科技产业内最热门的话题,除了科技业巨头无不大力投入之外,金融等服务业者对导入人工智能,也展现出强烈兴趣。制造业对AI技术的关注,也不在话下,并且在相关关键技术逐渐到位的情况下,已开始有实际导入动作。下面就随嵌入式小编一起来了解一下相关内容吧。   倡导智能制造不遗余力的研华科技,除了为各行各业提供对应的先进解决方案外,在自家生产在线也开始逐步导入人工智能要素。比如机台设备的状态侦测/诊断、原物料/能源的使用状况,乃至产品的品管流程等,均已逐步导入人工智能。安谋( Arm )的硅智财(IP)与SoC及赛灵思(Xilinx)的现场可编程门阵列( FP
[嵌入式]
基于单片机的FPGA并行配置方法
摘要:讨论了基于SRAM技术的可编程逻辑器件FPGA的编程方式,并以ALTERA公司FLEX10K系列器件为例,提出了一种利用单片机AT89C52对FPGA进行在线PPA(被动并行异步)配置的实用方法。实践表明,用单片机对FPGA进行并行配置,具有配置时间短、准确率高、易于实现等优点,该方法可以广泛地应用于不同领域。 关键词:单片机 PPA FPGA 配置 在当今变化的市场环境中,产品是否便于现场升级、是否便于灵活使用,已成为产品能否进入市场的关键因素。在这种背景下,Altera公司的基于SRAM LUT结构的FPGA器件得到了广泛的应用。这类器件的配置数据存储在SRAM中。由于SRAM的掉电易失性,系统每次上电时,必须重新
[应用]
美高森美宣布其高安全性FPGA器件获得DPA认证
Rambus Cryptography Research认可的独立测试实验室评定,业界领先的FPGA器件具有卓越的设计安全性 致力于在电源、安全、可靠和性能方面提供差异化半导体技术方案的领先供应商美高森美公司(Microsemi Corporation,纽约纳斯达克交易所代号:MSCC) 宣布其SmartFusion 2 系统级芯片(SoC)现场可编程门阵列(FPGA)和IGLOO 2 FPGA已经成功通过Rambus Cryptography Research Division制定的DPA 对策验证程序(Countermeasure Validation Program)并取得差分功率分析(differential pow
[嵌入式]
Xilinx与IBM通过SuperVesselOpenPOWER开发云平台实现FPGA加速
2016年4月8日,All Programmable 技术和器件的全球领先企业赛灵思公司 (Xilinx, Inc.) 与 IBM公司今天联合宣布将通过SuperVesselOpenPOWER开发云平台实现 FPGA加速。内置在 SuperVessel 中的赛灵思 SDAccel 开发环境,将为包括大数据分析和机器学习等性能要求严苛应用的开发提供支持。SDAccel允许开发人员用 OpenCL 、C和C++语言描述他们的算法,并直接编译到赛灵思FPGA加速板。托管的赛灵思SDAccel 开发环境不仅会加速FPGA开发进程,而且还可满足全球更广泛开发人群的需求。 SuperVessel是业界首项开放式接入云服务,为应用开发人员、系
[嵌入式]
一种用于FPGA的改进算法弱化了方波重影
  0 引言   DDS(Direct Digital Frequency Synthesis)频率合成器能够很方便地输出任意波形 ,方波作为最常用波形之一,具有其特殊性。但输出的方波存在明显的重影现象直接影响了方波的质量。   1 方波重影出现的原因   假设系统时钟频率为200 MHz,以输出3 MHz方波为例,从模拟示波器观察到的结果如图1所示。        图1中存在明显的双边沿现象,且两条上升沿的间距为5 ns,刚好等于系统时钟的周期。这种现象可称为方波重影。   根据DDS的工作原理可知,相位序列具有周期性 .   在相位序列的一个周期内,相位累加器会溢出若干次,并且每次溢出后的残留量都不一样。当残留量足够大时,再
[电源管理]
一种用于<font color='red'>FPGA</font>的改进算法弱化了方波重影
DSP编程技巧之3:揭开编译器神秘面纱之程序优化
  在二三十年前人们刚开始使用 C语言 代替汇编进行开发的时候,因为当初的处理器/控制器性能很弱,而 编译器 的能力也有限,所以形成了一些 C语言 编程效率不高的印象。但是今天的硬件性能已经非常强大,而 编译器 的能力也是日新月异,如果我们不熟练掌握汇编编程中的一些关键技术,编写的汇编代码的效率已经很难超过 编译器 从 C语言 转换出来的汇编代码了。 如果我们使用C语言进行编程的话,编译器除了可以把我们的加减乘除这样的操作转换为ADD、MPY以及相关的寻址、寄存器操作外,还可以在编译产生汇编代码的过程中进行不同程度的优化。优化的过程要根据器件的特点与指令集等进行有针对性的配置,所以在不同的器件上同一段C代
[嵌入式]
<font color='red'>DSP</font>编程技巧之3:揭开编译器神秘面纱之程序优化
Lattice发布Mach-NX,它为什么会看中安全市场
本文编译自Forbes,作者Patrick Moorhead 本周早些时候,莱迪斯半导体(Lattice Semiconductor)宣布了其基于Lattice Nexus FPGA平台的最新产品Mach-NX。Mach-NX FPGA系列产品解决了黑客入侵系统固件的威胁,保护了客户的IP,尤其是随着“as-a-survice(服务)”模式的兴起,安全威胁变得越来越多。 随着黑客持续攻击固件,像Lattice这样的公司需要不断改进其技术,以使他们的客户能够创建具有弹性系统的网络。Mach-NX是高性能,低功耗的FPGA,旨在提供动态,实时和端到端平台保护。此次发布是Lattice在低功耗FPGA历程中迈出的重要里程碑,是N
[嵌入式]
Lattice发布Mach-NX,它为什么会看中安全市场
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved