计算机组成原理alu功能实现代码_D5:计算机组成原理-算术逻辑单元(ALU的功能和基本结构、一位全加器,串行加法器,并行加法器)...

d8c3a72d-4113-eb11-8da9-e4434bdf6706.png

ALU-arithmetic and logic unit 算术逻辑单元,简称ALU,是计算机的数学大脑,也就是计算机里负责运算的组件。

dcc3a72d-4113-eb11-8da9-e4434bdf6706.png

算术运算:加、减、乘、除等

逻辑运算:与、或、非、异或等

辅助功能:移位、求补等

数字电路的逻辑符号表达

dec3a72d-4113-eb11-8da9-e4434bdf6706.png

电路符号

e5c3a72d-4113-eb11-8da9-e4434bdf6706.png

算术单元

算术单元,它主要负责计算机里的所有数字操作,比如加减法,自增自减等。接下来,使用最简单的加法电路,即两个bit相加,bit是0或者1,来看看它是怎么设计与运行的。

二进制加法

一位的二进制加法非常简单,因为只有四种情况

0+0=0 进位0

0+1=1 进位0

1+0=1 进位0

1+1=0 进位1

二进位的四则运算与十进位的四则运算,唯一要注意的就是以二进位表示的数字,每位数都只能是0或1;就像以十进位表示的数,每位数只能是0, 1, 2,…, 8, 9其中的一個数。

二进位的加法中,若遇到1 + 1的情形,就进“進位”。以下是一个简单的例子:11 + 101 = 1000 (3 + 5 = 8)

eac3a72d-4113-eb11-8da9-e4434bdf6706.png

加法运算的基本规则:

逢二进一

和的最低位是两个数最低位的相加,不需考虑进位。

其余各位都是三个数相加,包括加数、被加数和低位来的进位。

任何位相加都产生两个结果:本位和、向高位的进位。

半加器

半加器可以实现两个1位的二进制数字相加,并且输出结果和进位。它的真值表根据上面的二进制加法表就可以得到。

输出和(F) A和B一个为0 一个为1的时候输出1 两个0或两个1输出0 因此 可以用异或门连接。而进位 只有AB均为1的时候进位输出1 进位Cout = AB 用与门连接。

edc3a72d-4113-eb11-8da9-e4434bdf6706.png

03c4a72d-4113-eb11-8da9-e4434bdf6706.png

全加器

全加器在半加器的基础上 增加了进位 它输入三个数字 两个加数 和 一个进位 Cin

输出结果 和 进位

11c4a72d-4113-eb11-8da9-e4434bdf6706.png

21c4a72d-4113-eb11-8da9-e4434bdf6706.png

29c4a72d-4113-eb11-8da9-e4434bdf6706.png

串行加法器

将四个全加器 每一个的仅为输出连接到下一个的进位输入 就可以构成一个4位串行加法器了,这样构成的加法器连接起来很简单,但是也有不足:每一个全加器计算的时候必须等待它的进位输入产生后才能计算,所以四个全加器并不是同时进行计算的,而是一个一个的串行计算。这样会造成较大的延迟。

3ec4a72d-4113-eb11-8da9-e4434bdf6706.png
例如求 (1101)2 + (0110)2,答案应该为和为 (0011)2,进位为1.可以用4个全加器构成4-bit全加器来实现,如图显而易见,这个图可以推广,所以这样就能得到32-bit的加法器。

并行加法器又叫超前进位加法器(摘自《verilog数字系统设计教程(第二版)》夏宇闻)

需要注意的是:

并行加法器即超前进位加法器是通过推导逻辑运算,提前知道各个位的进位数字,如下公式就是推倒的各位的进位结果。串行加法器是通过我们电路连接一眼就可以看出来的设计,没有经过逻辑推导运算

并行进位公式:

41c4a72d-4113-eb11-8da9-e4434bdf6706.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值