第10节 ALU电路
推荐给好友
打印
加入收藏
更新于2008-05-16 20:28:54

ALU
        算术逻辑单元是微处理器的核心,它们执行着处理器上的算术和逻辑功能(比如加法,减法,乘法等)。一个ALU就是将许多普通的逻辑电路组合在一个模块中。一般来说,ALU的输入是两组N比特的总线,还有一个进位输入信号以及M条选择控制线用于选择 种ALU操作方式。ALU的输出包括一组N比特总线和一位进位输出。


        ALUs可以被设计成执行各种不同的算术和逻辑功能。可能的算术功能包括有加法,减法,乘法,比较,递增,递减,移位以及旋转;可能的逻辑功能包括有与,或,异或,异或非,非,清除以及通过(不该值的发生,使其直接通过)。所有这些功能都可以在计算机系统中找到,但这些功能的完整描述已经超出本章的范围。ALU可以被设计成包含所有这些功能,或是部分功能来满足已知应用的特殊需要。不管什么样的设计思路,其设计过程是类似的(但ALU功能越少,设计越简单)。 
        来看一个例子,考虑一个ALU,可以用8比特数据来执行任意八种逻辑功能。这个设计比较简单,不像很多处理器使用的ALU那样需要设计好几年。我们设计的ALU具有两套8比特的数据输入,一套8比特的数据输出,一个进位输入和一个进位输出以及三个功能选择输入用于选择任意八种操作(三个算术操作,四个逻辑操作以及一个清0操作)。 
        用到的ALU操作模式如操作表所示。三个控制比特位用于选择ALU操作模式,其称为“操作码”(或是OP码),如果该ALU用于实际的微处理器,那么这些比特位将产生“操作码”(或机器码),并组成实际的底层的计算机程序代码。(几天的计算机软件一般都是用高级语言写的,比如C语言,然后将其编译成汇编语言。汇编语言可以直接转换为机器码,从而最终使处理器执行指定的功能)


        由于ALUs的操作数是二进制数,所以可以使用比特分段的设计方法。ALU的设计方法可以采用其它比特分段的方法:首先,定义并理解比特分段的所有输入和输出;其次,使用某种方法获得需要的逻辑关系(比如用真值表);然后,找出最简化电路(使用K图或是简化图)或是写出VHDL代码;最后,进行电路设计并加以验证。


        我们设计的ALU的方框图和操作表如上所示。在操作表中,使用键值变量来定义两组比特分段输出(F和Cout)的功能需求。如果不使用键值变量,那么该表就需要64行。由于逻辑功能不需要Cout,那么相应的行就可以为其赋值0或是不关心其值。如下所示,是基于改进的比特分段方法的8比特ALU电路方框图


        完成ALU操作表后,就可以使用任意一种方法来设计电路了:构造K图并画环型圈;为F使用8:1多路器,为Cout使用4:1多路器;将信息输入到基于计算机的简化工具,并得到最简化的等式;或者不使用这种比较难且比较容易出错的结构性设计而改用VHDL描述的方法来设计。

 

<<上一节    下一节>>

相关链接


 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.