- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
夏宇闻第五章
第五章 基本运算逻辑和它们的Verilog HDL模型
前言
复杂的算法数字逻辑电路是由基本运算逻辑、数据流动控制逻辑和接口逻辑电路所构成的。对基本运算逻辑的深入了解是设计复杂算法逻辑系统电路结构的基本功。虽然Verilog 硬件描述语言能帮助我们自动地综合出极其复杂的组合和时序电路,并帮助我们对所设计的电路进行全面细致的验证,但对于速度要求很高的特殊数字信号处理电路,其结构还是由设计者来定夺。为了提高算法的运算速度除了提高制造工艺技术外,逻辑结构设计是最重要的环节。而设计出结构合理的基本运算组合电路是算法逻辑结构设计的基础,只有深入理解复杂组合电路的许多基本特点,才有可能通过电路结构的改进来提高算法逻辑系统的基本时钟速度,为结构合理的高速复杂算法的数字逻辑系统的构成打下坚实的基础。这部分知识应该是数字系统和计算机结构课程讲述的内容,为了使同学们能熟练地把学过的基础知识运用到设计中去,有必要在这里把提高加法器、乘法器速度的电路结构原理和方法简单地复习一下,并把流水线设计的概念也在这一章中引入。希望同学们能灵活地把这些电路结构的基本概念应用到设计中,来提高设计的水平。
5.1 加法器
在数字电路课程里我们已学习过一位的加法电路,即全加器。它的真值表很容易写出,电路结构也很简单仅由几个与门和非门组成。
Xi Yi Ci-1 Si Ci 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1
表中Xi 、Yi 表示两个加数,Si 表示和,Ci-1 表示来自低位的进位、Ci 表示向高位的进位。从真值表很容易写出逻辑表达式如下:
全加器和Si的表达式也可以表示为:
Si = Pi ⊕ Ci 其中Pi = Xi ⊕ Yi (5.1)
Ci = Pi·Ci-1 + Gi 其中Gi = Xi·Yi (5.2)
5.2式就是进位递推公式。参考清华大学出版社出版的刘宝琴老师编写的《数字电路与系统》,可以很容易地写出超前进位形成电路的逻辑,在这里不再详细介绍。
在数字信号处理的快速运算电路中常常用到多位数字量的加法运算,这时需要用到并行加法器。并行加法器比串行加法器快得多,电路结构也不太复杂。它的原理很容易理解。现在普遍采用的是Carry-Look-Ahead-Adder加法电路(也称超前进位加法器),只是在几个全加器的基础上增加了一个超前进位形成逻辑,以减少由于逐位进位信号的传递所造成的延迟。下面的逻辑图表示了一个四位二进制超前进位加法电路。
同样道理,十六位的二进制超前进位加法电路可用四个四位二进制超前进位加法电路再加上超前进位形成逻辑来构成。同理,依次类推可以设计出32位和64位的加法电路。
在实现算法时(如卷积运算和快速富里叶变换),常常用到加法运算,由于多位并行加法器是由多层组合逻辑构成,加上超前进位形成逻辑虽然减少了延迟,但还是有多级门和布线的延迟,而且随着位数的增加延迟还会积累。由于加法器的延迟,使加法器的使用频率受到限制,这是指计算的节拍(即时钟)必须要大于运算电路的延迟,只有在输出稳定后才能输入新的数进行下一次运算。如果设计的是32位或64位的加法器,延迟就会更大。为了加快计算的节拍,可以在运算电路的组合逻辑层中加入多个寄存器组来暂存中间结果。也就是采用数字逻辑设计中常用的流水线( pipe line ) 办法,来提高运算速度,以便更有效地利用该运算电路,我们在本章的后面还要较详细地介绍流水线 结构的概念和设计方法。我们也可以根据情况增加运算器的个数,以提高计算的并行度。
用Verilog HDL来描述加法器是相当容易的,只需要把运算表达式写出就可以了,见下例。
module add_4( X, Y, sum, C);
input [3 : 0] X, Y;
output [3: 0] sum;
output C;
assign {C, Sum } = X + Y;
endmodule
而16位加法器只需要扩大位数即可,见下例:
module add_16( X, Y, sum, C);
input [15 : 0] X, Y;
output [15 : 0] sum;
output C;
assign {C, Sum } = X + Y;
endmodule
这样设计的加法器在行为仿真时是没有延时的。借助综合器,可以根据以上Verilog HDL源代码自动将其综合成典型的加法器电路结构。综合器有许多选项可供设计者选择,以便用来
文档评论(0)