1、本科毕业论文 文献综述 通信工程 基于 FPDA 的算术处理器 摘要 :算术逻辑单元 (ALU) 不仅能够完成算术运算也能完成逻辑运算 ,是微处理器芯片中的一个非常重要的的组件 3而所有基本算术运算(加、减、乘、除)最终都可归为加法运算,所以加法运算的实现表显得尤为重要。对于多位加法操作来说 ,因为存在进位问题 ,使得某一位计算结果的得出与所有低于它的位都有关。为了减少进位传输所浪费的时间 ,提高计算速度 ,一些人设计了多种类型的加法器 , 并提出了很多实现加法器的设计方法,如行波进位加法器、快速行波进位加法器、超前进位加法器 等。以上提到的都是并行加法器。除了这些,还有串行加法器。 1 关键
2、词 :加法器、 Verilog HDL、 FPDA 1.Verilog HDL 介绍 Verilog HDL 是当今最流行的一种硬件描述语言 , 完整的 Verilog HDL 能对最复杂的芯片和完整的电子系统进行描述 8。 Verilog HDL 语言具有结构清晰、文法简明、功能强大、高速模拟和多库支持等优点 ,是一种强大的设计工具。 5 Verilog HDL语言虽然是深受同步设计师 11 2.加法器 加法器是算术运算的基本单元,可以有多种实现 结构,采用不同的结构实现。其消耗的资源和运算的速度也各不相同。 乘法器是现代微处理器中的重要部件,乘法器完成一次乘法操作的周期基本上决定了微处理器
3、的主频 12.加法器分为全加器 (Full Adder)和半加器(Half Adder)6. 加法器几乎在各种电路中都有着广泛的应用,论文提出的循环式加法器在保证较高的工作速度的同时,又能使系统所耗用的资源较少 4 2.1 行波进位加法器 N 位行波进位加法器是将 N 个一位全加器串联进行两个 N 位数的相加 ,进位是采用串行进位的方法来进行的 ,即本级的 Cout 作为下一级 的 Cin 参与下一位的加法运算 3。这种加法器结构十分简单,但运行速度较慢,从其逻辑表达式 : Sumi = Ai Bi Ci , Ci + 1 =AiBi + Ci(Ai Bi)可以看出 ,串行进位链的总延迟时间与
4、字长成正比 ,字长越长 ,延迟时间越长。假设每一级全加器的延迟时间为 dt ,则 N 位加法器的进位总延迟为 Ndt。所以一般不会使用这种结构的加法器 1。 2.2 快速行波进位加法器 行波进位加法器由于结构最为工整,占用资源少,并且速度能够满足较多应用的需求,是最合适实现的结构形式 10。每一个 Virtex-E 的 CLB 包含两个 SLICE,每个 SLICE 由两个 LC 形成,在每个 SLICE 中都有专门用于进位逻辑,从而为高速算术功能提供快速的算术进位能力 2。算术逻辑中包括一个异或门,使每个 LC 单元能够实现一个一位全加器。与传统的全加器相比,它在结构上有一些调整,这样不但缩
5、短了进位传递的时间,而且又可以在低级进位到达时,更快地输出该位的和运算结果。此外,在 FPGA内部同一列的两个 SLICE间,还专门为进位传递保留了一条最短连线。正是由于这样的一种结构, Virtex-E 器件可以实现快速的行波进位加法器 . 2.3 超前进位 加法器 影响加法器速度的关键因素是进位信号产生和传递的时间 ,想要提高加法器的速度 ,就必须尽最大可能的缩短进位时间 ,即改进进位方式 3。对于两个多位数相加的情况,每一位都是带进位相加,这时,只要依次将低位的进位输出接到高位的进位输入就可以构成多位加法器 7。在加法器进位计算的表达式 Ci + 1 = AiBi + Ci(Ai Bi)
6、中,令 Pi = Ai Bi , Gi = AiBi ,则有 Ci + 1 = Gi + CiPi 。各位进位产生的逻辑表达式可写为 : C1 = G1 + P1C0 C2 = G2 + P2G1 + P2P1C0 C3 = G3 + P3G2 + P3P2G1 + P3P2P1C0 从上面的表达式可知 :所有位的进位都不依赖低位的进位 ,每一位的进位只依赖于输入的A、 B 和 C0 ,并可以同时产生。如果不考虑 Gi 和 Pi 的形成时间 ,则 N 位超前进位加法器的进位总延迟为 dt ,与字长无关。但实际并非如此,随着加法器位数的增加 ,Ci 的表达式会越来越长 ,电路结构会越来越复杂 ,
7、而且将受到元器件扇入系数的限制 ,所以完全采用并行进位是不可能的 ,实际上一般都采用分组并行进位来实现。即把 N 位字长 分为许多小组 (每组通常 4 位 ),在组内实现超前进位 ,在组间既可采用行波进位 ,也可采用超前进位。通常 ,把组内采用超前进位 ,组间行波进位的方式称为单级超前进位加法器;把组内、组间均采用超前进位的方式称为多级超前进位加法器 3 2.4 高速串行加法器 与传统加法器相比,数字串行加法器具有工作频率高、占用资源少、设计灵活等优点 。串行加法器使用多个时钟周期完成一个完整的加法运算,使占用的资源大幅度减少。为了使数字串行加法器更具有更广泛的应用范围,设计的关键是要使电路工
8、作频率尽可能的提高。在数字串行加法器中,字长为 W 的操作数被分为 P 个位宽为 N(N 能被 W 整除 ,P=W/N)的数字,然后从低位开始相加,在 P 个时钟内完成加法操作。 P 个时钟周期称为一个采样周期。以 N=2 的数字串行加法器为例,如果输入操作数的字长为 8 那么串行加法器可以在 4 个时钟周期内完成加法运算。这个加法器只用了两个全加器的资源,比一般的 8bit 行波进位加法器小。数字串行加法器的控制比较简单,输入移位寄存器完成并行 串行转换功能,通过移位操作不断为加法器提供位宽为 N 的操作数,输出移位寄存器完成串行 并行转换,输出计算结果。对于特定的输入字长,通过选择不同的
9、N 可以实现速度、面积不同的数字串行加法器。这样,设计者可以根据实际情况加以选择,并提高了设计的灵活性 9。 3.结论 不同架构的加法器在性能上都存在优点和缺点 , 在选择加法器时 , 应根据应用场合的要求在运行速度、所占体积和运行功耗等方面综合考虑后决定 , 参考文献 1赵亚威,吴海波 .基于 FPGA 的快速加法器的设计与实现 J 沈阳 现代电子技术 2005 10-201 2 徐志军 ,徐光辉 .CPLD/FPGA 的开发与应用 M.北京 :电子工业出版社 ,2002 236-240 3 安印龙 ,许琪等 . 并行 加法器的研究与设计 J.西安 :晋中师范高等专科学校校报J,2003,
10、20(4):330-3344 项玮郭立白雪飞 基于 Verilog 语言的循环式加法器的设计 J 合肥 计算机工程与应用 2004 5 胡 滨 基于 Verilog 语言的可预置加减计数器的设计 J 西安 现代电子 技 术杂志 J 2007, 16-255 6董良威 姚文卿 基于 VerilogHDL的数字加法器的设计比较与优化 J 常州 常州工学院学报 2009 3 7 谢莹 , 陈琳 16 位超前进位加法器的设计 合肥 合肥工业大学学报 2004 27 8赵娟李振坤刘怡俊等 基于 Verilog HDL 设计实现的乘法器性能研究 J广州 广州工业出版社 2008 24- 3-2 9 钟信潮
11、 ,薛小刚等 . 高速数字串行加法器及其应用 J.电子技用 ,2004,(1):60-62 10Chunhui Zhang, Yun Long, Fadi Kurdahi A MerarcNcal pipelin ing architecture and FPGA implementation for lifting-based 2-D DWTJ Real-time Image Proc, 2007 (2): 281 29 11Arash Saifhashemi Hossein Pedram Verilog HDL, Powered by PLI: a Suitable Framework forDescribing and Modeling Asynchronous Circuits at AllLevels of Abstraction Iran 2008( 1): 25-33 12 尤菲菲 基于 FPGA 昀流水线乘 法器设计 J 科技信息 2009( 10)