




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于 VHDL 语言的8位加法器的设计 作者:吴中友 (陕理工物理 电子信息科学与技术专业07级1班,陕西 汉中 723000) 指导教师:蒋嫒 摘要利用VHDL言语,实现两个4位并行进位加法器,然后将其级联成为一个8位加法器,再实现一个二进制 中进行仿真。MAX+plus II转换成十进制动态显模块,以显示相加结果,并在仿真软关键词VHDL、加法器、MAX+plus II Designof 8-bit Adder based on VHDL Wu Zhongyou (Department of Physics,ShaanxiUniversity of Technology,Hanzhong,
2、Shaanxi 723000) Tutor:Jiang Yuan using VHDL, and the road to achieve two 4-bit adder, and then cascade into an 8-bit adder, and then converted to Abstract:decimal binary to achieve a dynamic explicit module to display the sum of the results, and the simulation software MAX + plus II for simulation.
3、VHDL, adder, MAX + plus II Key words0. 引言 加法器是用来实现加法的器件,即它是产生数的和的装置。加数和被加数为输入,和数与进位为输出的装置为半加器。若加数、被加数与低位的进位数为输入,而和数与进位为输出则为全加器。加法器常用作计算机算术逻辑部件,执行逻辑操作、移位与指令调用,是计算机进行算术逻辑运算的基本部件。研究加法器的实现对于电子硬件设计及其的理论发展的认识和理解具有重要意义。 1. 设计原理 加法器是数字系统中的基本逻辑器件。为了节省系统资源,减法器和硬件乘法器一般都由加法器来构成。但宽位加法器的设计是很耗费资源的,因此在实际的设计和相关系统的开发
4、中需要注意资源的利用率和进位速度两方面的问题。 多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。通常,并行加法器比串行级联加法器的资源占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。 实验及事实证明,4位二进制并行加法器和串行级联加法器占用几乎相同的资源。这样,多位数加法器由4位二进制并行加法器级联构成是较好的折中选择。因此,8位加法器采用两个4位二进制并行加法器级联而成。 1.1. 实现框图 1.1.1. 四位加法器的实现框图 所示,四位加法器采用四个
5、一位全加器级连成串行进位加法器。1.1.1如图 图1.1四位串行进位加法器 其中CSA为一位全加器,A和B为加法器的输入位串,对于四位加法器则位宽为4位,D为加法器输出位串,位宽和输入位串相同,C为进位输入(Ci)或输出(Co)。 1.1.2. 减小运算的延迟 显然,对于图1.1.1这种方式,因高位运算必须要等低位进位来到后才能进行,因此它的延迟相当大,运算效率低。由于运算的延迟主要是由进位延迟引起的,所以减少进位的延迟对提高运算速度非常有效。 采用图1.1.2所示方法,将进位中的迭代关系去掉,则各位彼此独立,进位传播不复存在。因此,总的延迟是两级门的延迟。这样便可大大减小运算的延迟,从而提高
6、运算效率,实现高速运算。 图1.2 四位加法器的超前进位的实现 图1.2 为四位加法器的超前进位的实现原理图,其中,G表示进位生成位串,与输入位宽相同,P表示进位传输位串,与输入位宽相同。其意义为:如G为1,则必定产生进位,若P为1,则向高位传输进位。当进行加法运算时,G=A and B,P = A or B;当进行减法运算时,G = A and (not B),P = A or (not B)。根据图1.2可得到四位加法器的各级进位输出为: C0 = G0 or P0 and Ci C1 = G1 or P1 and Co = G1 or P1 and G0 or P1 and P0 and
7、 Ci C2 = G2 or P2 and C1 = G2 or P2 and G1 or P2 and P1 and G0 or P2 and P1 and P0 and Ci C3 = G3 or P3 and C2 = G3 or P3 and G2 or P2 and G1 or P2 and P1 and G0 or P2 and P1 and P0 and Ci Co = C3 D = A and B and C = (A and ) Xor (A or B) Xor C = G Xor P Xor C 异或操作。Xor 为非操作,not 为或操作,or 为与操作, and 上式中
8、1.1.3. 八加法器的实现框图 8位加法器采用两个4位二进制并行加法器级联而成。四位加法器采用四个一位全加器级连成串行进位加法器,实现框图如图1.3所示。 图1.3 用两个并行四位加法器实现一个八位加法器 2. 计设过程 要实现8位加法器,需要三个子程序: 1.四位加法器;2.二进制转十进制显示模块;3.动态显示模块。 2.1. 设计思路 利用VHDL言语,实现两个4并行进位加法器,然后将其级联成为一个8位加法器,再实现一个十进制动态显模块,以显示加数、被加数以及相加结果,并在。十进制动中进行仿真MAX + plus II 态显示模块可以通过设计一个9位二进制转换成十进制的显示子程序,并采用
9、分频来实现。 2.1.1. 四位二进制并行加法器的设计 运用四个全加器级连成串行进位加法器。程序如下: LIBRARY IEEE。 USE IEEE.STD_LOGIC_1164.ALL。 USE IEEE.STD_LOGIC_UNSIGNED.ALL。 ENTITY ADD4 IS PORT(A,B:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 CI:IN STD_LOGIC。 CO:OUT STD_LOGIC。 SO:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 END ENTITY ADD4。 ARCHITECTURE H1 OF ADD4 IS
10、 BEGIN PROCESS(A,B) IS VARIABLE CQ,QQ,SQ:STD_LOGIC_VECTOR(3 DOWNTO 0)。 BEGIN QQ(0):=NOT(A(0)XOR(NOT(B(0)。SQ(0):=NOT(QQ(0) XOR (NOT(CI)。 IF (A(0) XOR B(0)=1) THEN CQ(0):=CI。 -低位相加并产生进位。 ELSE CQ(0):=A(0)。 END IF。 QQ(1):= NOT(A(1) XOR (NOT(B(1)。SQ(1):=NOT(QQ(1) XOR (NOT(CQ(0)。 -第二位于前一进位相加,并产生进位。 。 IF(A
11、(1) XOR B(1)=1) THEN CQ(1):=CQ(0) ELSE CQ(1):=A(1)。 END IF。 QQ(2):= NOT(A(2) XOR (NOT(B(2)。SQ(2):= NOT(QQ(2) XOR (NOT(CQ(1)。 IF (A(2) XOR B(2)=1) THEN CQ(2):= CQ(1)。 ELSE CQ(2):=A(2)。 END IF。 QQ(3):= NOT(A(3) XOR (NOT B(3)。SQ(3):= NOT(QQ(3) XOR (NOT(CQ(2)。-前一位进位与高位相加并产生进位。 IF (A(3) XOR B(3)=1) THEN
12、CQ(3):= CQ(2)。 ELSE CQ(3):=A(3)。 END IF。 CO=CQ(3)。SO=SQ。 END PROCESS。 END ARCHITECTURE H1。 2.2.2 四位并行加法器波形 四位加法器的波形如形如图2.1所示,由图可知仿真结果与理论实际相符。 2.1 四位并行加法器波形图 3. 转换显示模块的设计 3.1. 二进制转换成十进制并显示 加法器得到的和为二进制,设计以下二进制到十进制转换显示程序使它显示为十进制。程序如下: LIBRARY IEEE。 USE IEEE.STD_LOGIC_1164.ALL。 USE IEEE.STD_LOGIC_UNSIGN
13、ED.ALL。 USE IEEE.STD_LOGIC_ARITH.ALL。 ENTITY LOOK IS PORT(D:IN STD_LOGIC_VECTOR(8 DOWNTO 0)。 CLK3:IN STD_LOGIC。 SMG:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)。 LED7S: OUT STD_LOGIC_VECTOR(6 DOWNTO 0)。 END ENTITY LOOK。 ARCHITECTURE ONE OF LOOK IS SIGNAL AI,BI,CI: INTEGERRANGE 0 TO 9。 SIGNAL XI: STD_LOGIC_VECTO
14、R(2 DOWNTO 0)。 SIGNAL LED7S1: STD_LOGIC_VECTOR(20 DOWNTO 0)。 SIGNAL DI: INTEGERRANGE 0 TO 512。 BEGIN DI=CONV_INTEGER(D)。 PROCESS(DI) IS VARIABLE A,B,C: INTEGERRANGE 0 TO 9。 BEGIN A:=DI REM 10。 -把整型数的个位赋值给A B:=(DI-A) REM 100)/10。 -把整型数的十位赋值给B C:=(DI-A-10*B)/100。 -把整型数的百位赋值给C AI=A。BI=B。CI=C。 END PROCE
15、SS。 PROCESS(AI) IS -把个位赋值给 LED7S1 BEGIN CASE AI IS ?圠?匷?佄乗佔?尽?尰。 ?圠?匷?佄乗佔?尽?就。 ?圠?匷?佄乗佔?尽?尰。 ?圠?匷?佄乗佔?尽?尰。 ?圠?匷?佄乗佔?尽?就。 ?圠?匷?佄乗佔?尽?尰。 ?圠?匷?佄乗佔?尽?尰。 ?圠?匷?佄乗佔?尽?尰。 ?圠?匷?佄乗佔?尽?尰。 ?圠?匷?佄乗佔?尽?尰。 ?圠?呏?卒?坏呎?塜塘塘塘。 END CASE。 END PROCESS。 PROCESS(BI) BEGIN CASE BI IS ?圠?匷?坏呎?。 ?圠?匷?坏呎?。 ?圠?匷?坏呎?。 ?圠?匷?坏呎?。 ?
16、圠?匷?坏呎?。 ?圠?匷?坏呎?。 ?圠?匷?坏呎?。 ?圠?匷?坏呎?。 ?圠?匷?坏呎?。 ?圠?匷?坏呎?。 ?圠?呏?卒?佄乗佔?尽塘塘塘屘。 END CASE。 END PROCESS。 PROCESS(CI) BEGIN CASE CI IS ?圠?匷?坏呎?尽?尰。 ?圠?匷?坏呎?尽?就。 。?圠?匷?坏呎?尽?尰?圠?匷?坏呎?尽?尰。 ?圠?匷?坏呎?尽?就。 ?圠?匷?坏呎?尽?尰。 ?圠?匷?坏呎?尽?尰。 ?圠?匷?坏呎?尽?尰。 ?圠?匷?坏呎?尽?尰。 ?圠?匷?坏呎?尽?尰。 ?圠?呏?卒?佄乗佔?塜塘塘塘。 END CASE。 END PROCESS。 PR
17、OCESS(CLK3) VARIABLE X: STD_LOGIC_VECTOR(2 DOWNTO 0)。 -定义一个常量,用来控制位选。 BEGIN IF CLK3EVENT AND CLK3=1 THEN IF X0)。 END IF。 END IF。 XILED7S1LED7S1LED7S1AI(3 DOWNTO 0),B=BI(3 DOWNTO 0),CI=E, CO=E,SO=SUM(3 DOWNTO 0)。 U2:ADD4 PORT MAP(A=AI(7 DOWNTO 4),B=BI(7 DOWNTO 4),CI=E, SO=SUM(7 DOWNTO 4)。 U3:LOOKPORT MAP(D=PP,CLK3=CLK,LED7S=LED,SMG=WX)。 U4:COUNTERPORT MAP(CLK3=CLK,Q1=CLK2,E1=EN1,E2=EN2)。 PROCESS(EN1,EN2) BEGIN IF EN1EVENT AND EN1=1 THEN AI=A。END IF。-输入加数,赋值给AI; IF EN2EVENT AND EN2=1 THEN BI=A。 END IF。-输入被加数,赋值给BI。 END PROCESS。 PROCESS(CLK2) BEGIN IF CLK2= THEN PP=0&AI。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 子女成长跟踪与教育辅导项目合同
- 艺术展览策展与艺术品运输保险服务合作协议
- 桥梁工程现场检测员岗位要求与聘用协议
- 跨区域房产使用权及资源共享合作开发协议
- 体育旅游地接服务协议
- 海关进出口贸易数据录入劳务派遣及质量监控协议
- 文化创意产品区域经销商网络特许经营合同
- 煤矿入矿安全培训
- 培训毕业答辩
- 肠梗阻管道护理
- GB/T 536-2017液体无水氨
- GB/T 11361-2008同步带传动梯形齿带轮
- GB 5009.121-2016食品安全国家标准食品中脱氢乙酸的测定
- 《电业安全工作规程》
- 处置室工作制度(6篇)
- 二次配线工艺标准守则
- 骨髓穿刺术评分表
- 海底捞火锅店各岗位职责
- 发证机关所在地区代码表
- 车辆安全设施设备定期检查台账
- Q∕GDW 10799.7-2020 国家电网有限公司电力安全工作规程 第7部分:调相机部分
评论
0/150
提交评论