2017.0316.算术运算电路和ALU
算术运算电路
1.最简单的算术运算就是加法和减法,这里也仅仅讲解加法和减法。要清楚加的概念和减的概念。
全加器的概念,两个二进制数相加的时候,除去最小的一位,其余的位相加时,输入和输出的问题。除了两个输入,还有一个地位向本位的进位,输出除了加的的本位的和,还有向高位的进位。
两个数相加,要考虑数是符号位和非符号位。一位全加器中,有三个输入,两个输出。三个输入代表着,被加数,加数,低位向本位的进位,两个输出是本位的和,本位向高位的进位。通过真值表发现,输出中本位的和是三个输入的异或电路,本位向高位的进位是大于等于两个输入是1,输出就是1,这是前述运动员裁判的例子的电路。全加器有相应的逻辑符号。
2.半加器,两个数的最小位之间相加,不存在更低位向本位的进位,只有两个输入,输出还是两个,本位的和,本位向高位的进位。半加器的逻辑符号。本位的和是两个输入的异或。怎样用与非门来构建异或门电路?这里说明一点的是,题目会要求,采用特定的器件来构建所需的门电路,如用与非门构建异或电路。
3.逐位进位的多位全加器
是用一位的全加器构成的,这里说的一位的全加器是指:两个多位的数相加时,中间位的数相加是采用的全加器,这称为一位全加器。前面虽然是两个多位二进制数相加,但是我们只分析了中间的一位的数之间的相加,所以那里的全加器是一位全加器。这里要讨论的是多位全加器,考虑地更加靠近实际。
逐位进位的多位全加器是从低位开始运作,得到的结果不断地向高位扩散。例子,四位全加器是针对两个四位二进制数相加时,使用的全加器是四位全加器。貌似四位全加器的最低位中的更低位进位没有接零,接零的画就是半加器了。
4.超前进位的四位全加器
为什么会存在一个超前进位的全加器?和之前的逐位进位的全加器的区别是什么?
通过列出本位的本位和表达式,本位的进位的表达式,将两者展开后,我们发现进位的表达式显示出,本位进位的值并不需要低位再来,而直接靠本位的被加数和加数即可,这和之前的逐位进位的机制就不一样了,
重新理解算术运算
1.既然称为全加器,那么就一定有三个输入,除了被加数,加数,还要有低位向本位的进位。全加器中本位的和是三个输入的异或表达式。全加器的本位和有一个具体的逻辑表达式,本位的进位也有一个明确的逻辑表达式。本位的进位的表达式是由三个输入表示出来的,并没有漏掉任何一个输入,还是利用了低位向本位的进位。一位全加器是指我们只进行了一个本位上的操作,并没有对左右其他位进行运算。
2.半加器是全加器的特例,少一个更低位向本位进位,只有两个输入,但是输出任然有本位向高位的进位,C0i=AB, CIi为0,COi=(A异或B)CIi+AB,半加器中本位的和,本位向高位的进位函数表达式仍和一位全加器一样,只是进位的表达式形式上少了一部分。
3.在实际做题中,出题者会要求用特定的门电路来做逻辑图,这样可以考察学习者对于表达式化简的功力。
4.整个算术运算的加法部分,从半加器,一位全加器,逐位进位的多位全加器,超前进位的多位全加器。由简入繁,多位的全加器,是由一位的全加器构成的。逐位进位的全加器很好理解,来自低位的进位和被加数,加数相加,总共有两个输出,本位的和输出,以及本位向高位的进位输出,本位的和在本器件上直接输出,而本位向高位的和需要输入到上一位的一位加法器中,作为来自低位的进位。逐位多位全加器就是众多一位全加器集成起来。
5.超前进位的全加器是将进位单独进行处理,经过视频的讲解以及书本的学习,我对超前进位的多位全加器的的解释就是:将本位的进位表达式以数学的观点来看,这是一个通式,可以是两种表达方式,一种是后一位进位是前一位进位的表达式,另一种是通式的进位是最初位进位的表达式。这样来看,我们肯定要写成通式的形式,这样只要知道初位的进位,以及本位的被加数和加数,那么任意一个本位的进位就可以立马得出来,而不需要一步步地算前一位的进位,这就避开了逐位计算,缩短了运算的时间。
超前进位和逐步进位两个的思想,在数学中早就体现了,比如求解通式的问题。一个是死板的运算,一个是通式,相比之下肯定是通式的运算快于死板的运算。
二进制减法运算
1.减法可以通过减法器来实现。
2.减法器的三个输入是,被减数,减数,低位向本位的借位,两个输出,本位的差,本位向高位的借位。先从一位的二进制的数的差讲起,减法的运算器理解起来比加法器稍微复杂一些。下图是两个一位二进制数的减法真值表,以第二行为例,A为被减数,B为减数,Ci为低位向本位的借位,F为本位的差,Co为本位向高位的借位,这里要说明一点,只有被减数不够减时,本位才会向高位借,A为0,B为0,Ci为1,A不够B,C减,所以需要向高位借1,这样Co就为1,借来的1在本位是2,所以F输出为1。这样一看,减法器中高位,本位,低位三者之间的联系比加法器更加复杂一些。
3.这里也有全减器和半减器。