一个进位保留加法阵列的HDL代码生成器
前进位加法器方案均需要消耗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语言的代码,可以极大地提高开发效率。
- 超前进位4位加法器74LS283的VHDL程序实现(11-30)
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)