《ALU工作原理(3页).doc》由会员分享,可在线阅读,更多相关《ALU工作原理(3页).doc(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-ALU工作原理-第 3 页ALU工作原理1. 对原理图的理解:(1) 首先,拿到一张原理图,最先关注输入和输出。ALU的输入:A(31:0),B(31:0),ALU_operation(2:0)ALU的输出:res(31:0),zero(2) 根据ALU的功能理解输入输出对应的含义ALU的功能:进行算数运算和逻辑运算。运算一般需要两个操作数A(31:0)和B(31:0);根据ALU_operation(2:0)确定ALU进行哪一种运算;并将运算结果保存在res(31:0)中。2. 对原理图中的器件的理解:(1) MUX8T1_32(八选一的多路复用器每个输入输出均对应32位数据)由引线可知,
2、ALU_operation(2:0)为选择信号,输出res(31:0)等于被选中的输入ALU_operation(2:0)=000时,选中,进行与操作,输入来源:and32ALU_operation(2:0)=001时,选中,进行或操作,输入来源:or32ALU_operation(2:0)=010时,选中,进行加法操作,输入来源:ADC32ALU_operation(2:0)=011时,选中,进行异或操作,输入来源:xor32ALU_operation(2:0)=100时,选中,进行或非操作,输入来源:nor32ALU_operation(2:0)=101时,选中,进行移位操作,输入来源:s
3、rl32ALU_operation(2:0)=110时,选中,进行减法操作,输入来源:ADC32ALU_operation(2:0)=111时,选中,接地(2) ADC32(32位加减法器)输入:,A(31:0),B(31:0)输出:S(32:0)工作原理: 当=0时,做加法运算,s=0,So(31:0)表示32个0,So(31:0)与B(31:0)做异或(xor)不改变B(31:0)的值,A(31:0)加上B(31:0)。 当=1时,做减法运算,s=1,So(31:0)表示32个1,So(31:0)与B(31:0)做异或(xor)对B(31:0)的值取反,A(31:0)加B(31:0)的反码
4、,再加上进位位的值,相当于A(31:0)加上B(31:0)的补码。3. 其它(1) 为什么 ALU 电路中没有执行乘除法运算的电路部分?答:因为,计算机中的乘法是利用加法和移位操作来进行,除法是利用减法和移位操作来进行的,因此乘除法的运算可通过加减法来实现。(2) 对ADC32的补充说明: 无论是加法运算还是减法运算,ADC32都会将A(31:0),B(31:0)和的值想加,只是进行加法运算时,=0,不影响运算结果,而进行减法运算时对B(31:0)的反码加一,得到B(31:0)的补码。 ALU_operation(2:0)=010时,进行加法操作,=0ALU_operation(2:0)=11
5、0时,进行减法操作,=1显然可知,取自于ALU_operation(2:0)的最高位。 ADC32的输出为S(32:0)共33位,需要经过bus tap,舍弃最高位S32使得低32位S(31:0)输出到和中,与MUX8T1_32的输入相匹配。 和表示的数据相同,为什么ADC32要同时连接到和?答:因为,当ALU_operation(2:0)=010时,选中,ADC32进行加法操作,和均得到加法操作的结果;当ALU_operation(2:0)=110时,选中,ADC32进行加法操作,和均得到减法操作的结果。因此,根据ALU_operation(2:0)的值可以有效区分加法和减法操作的运算结果。(3) 图中出现的小三角符号(bus tap)功能:对总线进行分线操作,经过bus tap输出的线是输入线的某几条或某一条。要求:bus tap的输入端的引线数量一定要2;输出端的引线数量输入端引线数量。注意:区分原理图中的bus tap和数字逻辑中的缓冲器。(4) 当A(31:0)和B(31:0)到达ALU时,七种运算都会进行,但赋给输出变量res(31:0)的是哪一种运算的结果是由ALU_operation(2:0)来确定的。换言之,由ALU_operation(2:0)决定哪种运算的运算结果有效。