您的位置 首页 基础

一个进位保存加法阵列的HDL代码生成器

多加数的加法器是FPGA的一个比较常见的应用。仿真对比了其三种实现方案的性能和所消耗资源,得出进位保留加法阵列是首选方案。针对进位保留加法阵列实现的复杂性给出了一个加法阵列的HDL代码生成器,极大地简

在现代数字通信体系中,FPGA的使用适当广泛。特别在对基带信号的处理和整个体系的操控中,FPGA不但能大大减缩电路的体积,进步电路的稳定性,而且先进的开发工具使整个体系的规划调试周期大大缩短。其间关于一些基带信号处理使命,既能够用硬件完成,也能够用软件完成。用硬件完成的杰出特色是可处理的数据速率大大进步,但相应的硬件完成也有一些坏处。关于现在盛行的一些CPU包含DSP和单片机,都具有丰厚的指令集,能够很便利地处理各种数学运算。而用FPGA或ASIC这样的纯硬件来完成数学运算则有必定的困难,且不同的完成结构所能到达的功能也大不相同。加法器是在FPGA中完成各种数学运算的根底。一个单纯的两个加数的加法器能够用简略的组合逻辑来完成。但关于求多个加数和的运算,则能够有多种完成计划。下面首要比较几种完成计划的功能和所耗费资源,然后针对最优计划给出一种HDL(Hardware Description Language)代码生成器。

1 多加数加法器不同完成计划的剖析和比较

  本文所评论的加法器的加数都是无符号的正数,关于带符号的加法运算能够经过一些附加处理后送入无符号加法器。以核算8个1位二进制加数的和为例进行剖析,它能够有以下几种计划来完成:计划一最一般,是直接用加法器的级联将一切8个位逐次相加,这种完成计划最简略。由于8个1Bit数据的和最大能够是8,为4Bit数据,为了处理便利,一切的加数都事前扩展到4Bit再进行相加。设累加器的总延时为Tadd,一个全加器的延时为Ta,则用一般加法器进行一个4Bit加法。由于进位的逐级传递,所以在最坏状况下,需求大约4Ta的时刻,8个加数悉数加完需求7×4Ta=28Ta的时刻。计划二是对计划一的改善,行将4Bit全加器悉数换成超前进位加法器。设超前进位加法器的延时为Tc(Ta≤Tc4Ta),这样悉数加法需求7Tc的时刻。尽管计划二的时延现已缩短许多,能够处理的数据速率得到进步,但这种级联式的加法器的延时会跟着加数的增多而呈线性增加,在要求速度较高的场合无法到达要求。所以本文提出计划三,即选用合适硬件完成高速并行的进位保存加法阵列。典型的8个1Bit数据进位保存加法阵列如图1所示。

  一个1位全加器有三个输入 A、B、Ci和两个输出Sum、Co,其间A和B是加数与被加数,Ci是输入进位,Sum是和,Co是输出进位。三个输入对两个输出而言是对称的,即便它们相互交流方位成果也不会受到影响。如果把一串全加器简略排成一行,它们之间的进位线不衔接,则这一串全加器称为进位保存全加器。它具有如下特性:三个输入数之和等于两个输出数之和,即三个相加数每经过一次进位保存加法器,其个数就变为本来的2/3。使用该特色,关于一切相加数,在榜首级将这些相加数分红三个一组,每组进入一个进位保存加法器,发生的和与进位数为本来的2/3,可是发生的和数位数有所扩展。在第二级再将上一级的输出分为3个一组,别离相加。依此类推,直到终究构成两个操作数,即累加和与累加进位。再用超前进位加法器将它们相加就得到终究的成果。由图1可知这种进位保存加法阵列的延时为:4Ta+Tc。

  以Altera公司的FPGA芯片EPF10K30为完成芯片,对选用上面三种计划的8个1Bit加数的加法器进行了仿真,仿真波形如图2所示。

  由图2能够看出,关于8Bit的Codeword中的“1”进行核算,三种加法器计划中进位保存加法阵列计划(AdderArray)的延时最短;计划二,超前进位加法器级联计划(FastAdder)的延时次之;计划一,选用一般全加器级联计划(FullAdder)的延时最长。上面的仿真由于位数较少,并不能很显着地体现出几种计划的不同。图3是对32Bit汉明间隔发生器所用的累加器的仿真波形图。

  由图3能够很显着地看出,计划三,进位保存加法阵列的延时大大低于另两种计划;而计划二的延时小于计划一,但相差不是很大,这首要由于尽管超前进位加法器自身的核算时刻小于一般全加器。但累加成果在级间是逐级串行传递的,所以跟着级数的增多,其延时也会敏捷增大。而每一级的超前进位的加法优势受输入数据影响较大,关于比较小的数据,不涉及到向高位的进位传递问题,超前进位逻辑的效果就不能被彻底发挥出来。

  一般说来,体系可完成的功能与它所耗费的资源或处理复杂度之间总是对立的,功能的进步总是要以多耗费资源为价值的,而资源节约也总要相应下降一些功能。可是关于三种加法器计划所耗费资源进行核算标明,进位保存加法阵列耗费的资源大大小于其他两种计划。关于32个1Bit加法器计划,若选用Altera公司的EPF10K30芯片别离完成,级联型全加器计划和级联型超前进位加法器计划均需求耗费182个LC(Logical Cells),而进位保存加法阵列计划仅需65个LC。由此可知,进位保存加法阵列计划不管从功能体现仍是资源耗费上都比前两种计划优异。这是由于它是一种并行处理的资源使用率更高的计划,是一种本质上不同于前两者的更好的完成计划。

2 进位保存加法阵列的HDL代码生成器

  尽管进位保存加法器具有如此显着的优势,但它的完成是比较复杂的,不如级联型加法器直观、易完成。首要需求核算加法阵列的结构参数,参见图1,包含加法阵列的层数,每层所需求的全加器的个数和每层操作数的位数,然后依照阵列的规矩画出阵列的结构图,终究对照结构图写HDL代码。其间每层操作数的位数都不同,而且全加器的输出Sum和Co有不同的权值,在加到下一层运算中时处理方式是不同的,Co需求移位相加。关于一个略微大一点的阵列,编写HDL代码是一件既耗时又简单犯错的作业。针对这种状况,本文给出了一个进位保存加法阵列的HDL代码生成器。它能够依据规划的需求主动核算加法阵列的结构参数,然后生成对应的HDL代码,大大便利了加法阵列的规划作业。

  如图4所示,程序所需求的输入参数是加法阵列输入加数的个数和位数,单击“核算”按钮后程序将生成整个进位保存加法阵列的结构参数和耗费资源核算。由图4可知,32个1Bit加数的加法阵列共有8层,榜首层需求10组全加器,每组1Bit;第二层需求7组全加器,每组2Bit(即两个1Bit全加器),以此类推。窗口左下角的资源核算栏里核算了整个加法阵列所需的全加器个数。而所需的LC数目是一个大约的核算值,它是在Maxplus II Version 10里编译著HDL代码生成器所生成的AHDL(Altera HDL)代码,然后让编译器自选FLEX 10K器材进行适配的成果。需求特别指出的是,加法阵列各层之间的衔接结构将极大地影响FPGA的适配成果。所以本生成器依据Altera公司FPGA的结构特色,对阵列的衔接结构进行了优化规划,使加法阵列适配后耗费的资源挨近最小。

  点击“生成代码”按钮后将呈现图5所示的HDL代码窗口。图5中显现的是32个1Bit加法阵列的AHDL代码。单击“复制”按钮,然后在Maxplus II软件中粘贴到一个tdf文件中就能够直接进行编译和适配了。本程序还能够供给加法阵列的VHDL和Verilog代码,使进位保存加法阵列能够很便利地嵌入任何一种方式的体系规划中。

  一些很典型的FPGA使用如FIR滤波器、高速乘法器和汉明间隔发生器等都需求核算多个加数的和。针对此需求,本文首要比较了多加数加法器的三种完成计划,得出进位保存加法阵列是一种功能优异的完成计划。然后给出了一个能够主动生成加法阵列HDL代码的程序,它便利易用,而且能够供给AHDL、VHDL和Verilog三种HDL言语的代码,能够极大地进步开发功率。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/jichu/196569.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部