《算术运算单元ALU的设计实现几种基本功能》由会员分享,可在线阅读,更多相关《算术运算单元ALU的设计实现几种基本功能(14页珍藏版)》请在金锄头文库上搜索。
1、算术运算单元 ALU 的设计设计要求:(1)设计 4 位 ALU,可实现 8 种算术逻辑运算。a.进行两个四位二进制数的运算。b.算术运算:A+B,A-B,A+1,A-1c.逻辑运算: A and B,A or B,A not, A xor B(2)4 位输入 A3A0、B3-B0 用开关设置输入。(3)8 种算术逻辑运算通过 3 位功能选择开关选择某一种功能。(4)运算结果用两个数码管显示和 2 个发光管显示(有一个显示进借位、有一个显示溢出) 。系统框图:设计结构:设计分为输入控制模块、输出选择模块、加减运算模块及逻辑运算模块等部分。在输入控制部分,利用锁存器,使 A 和 B 信号通过脉冲
2、控制同时送入运算电路。在输出控制模块,选择需要输出的显示信号。加减运算电路实现加减运算功能。逻辑运算电路实现逻辑运算功能。输入控制 加减运算 加减输出显示输出选择控制 逻辑电路 逻辑显示(总电路图)功能的实现原理:该电路是是实现四种算术运算和四种逻辑运算功能的算术运算单元电路。主要是由算术运算模块、逻辑运算模块、输入控制模块和输出控制模块几部分组成。通过时序输入控制实现信号 A,B 同时送入到运算电路中进行运算,这样能解决非时序信号先后输入进行运算时产生的错误。信号送入运算单元后,逻辑运算和算术运算是同时进行的,只是在不同的模块中进行的而已。而四种算术运算则是通过控制端来进行先后选择运算的。在
3、输出时只显示一种功能则是通过 5 片 74LS244(三态门芯片)和一些门电路通过控制信号 f3,f2,f1 置不同的数进行控制的选择输出的,数码显示管显示的算术运算的结果,小灯泡则是用来显示逻辑运算的结果。f3f2f1 置数111、000、001、010、011、100、101、110 分别控制的输出显示是 A+B,A-B,A与 B,A 或 B,A 异或 B,非 A,A+1,A-1.运算结果是同时被送出的,当 f3f2f1 被置某一个数时,对应的芯片 244 的使能端有效,那么相应的功能就被出去显示。当 f3f2f1 被置 111、000,101、110 时第一片 244 始终有效,此时输出
4、的是哪一种功能则取决于这几个数所控制的算术运算电路在进行的是哪一种功能了,它们都是经过一定的门器件进行控制的。输出除了显示这 8 中功能外,还显示了算术运算中的溢出与进借位显示。器件清单:74LS183 8 片 74LS244 5 片 74LS373 2 片 74LS161 1 片74LS157 1 片 74LS04 74LS08 74LS32 74LS136 2 片 74LS11 2 片 74LS47 3 片 数码管 3 个 二极管 若干 电阻若干导线若干各部分功能:(输入时序控制)输入时序控制:通过两片 74LS373(锁存器) 、一片 74LS161(计数器)和相应的门器件来实现使输入信
5、号 A、B 能同时送入运算单元电路进行运算,避免了一些不必要错误的发生。当第一个脉冲输入时,计数器的输出端输出的是00 信号,该信号通过门器件作用使第一片 373ENG 有效,使信号 A 送入锁存器里面锁存不输出,当第二个脉冲到来时,161 输出端输出 01,此时使信号 B 送入锁存器锁存不输出,当第三个脉冲到来时,两片 373 的的OC 有效,锁存在锁存器里面的信号 A,B 同时被送入运算电路进行运算,同时 161 被置零,若再来一个脉冲时输出端又从 00 开始计数控制 373 了。 这个的目的是使计数器当输出端输出 10 时时输入端的信号重新置零开始计数控制锁存器。00、01、10这三种情
6、况分别控制两片 373 的状态,分别代表锁存 A,锁存 B 和同时输出A,B.脉冲信号由一个开关在总电路中控制。输出选择输出选择:该模块是用门器件通过控制 f3f2f1 的置数来选择哪一端输出为 1,从而控制哪一片 74LS244 有效,选择输出哪一种功能所对应的结果显示出来。其中 and,or,xor,r 分别对应逻辑运算结果对应的 244 芯片的使能端的有效性,而account 对应算术运算,EN 对应选择 A+1,A-1 功能,E 对应选择 A+B,A-B 功能。这些端口对应的都是高电平,在外面加了一个非门后就能直接控制 244 的使能端了。该模块的真值表如下:f3f2f1 accoun
7、t E EN and or xor r111 1 0 0 0 0 0 0000 1 1 0 0 0 0 0001 0 0 0 1 0 0 0010 0 0 0 0 1 0 0011 0 0 0 0 0 1 0100 0 0 0 0 0 0 1101 1 0 1 0 0 0 0110 1 1 1 0 0 0 0当输出为 1 时对应的端口处于有效状态。f3f2f1 置数111、000、001、010、011、100、101、110 分别对应的功能是 A+B,A-B,A 与B,A 或 B,A 异或 B,非 A,A+1,A-1(运算部分)(选择输出部分)算术运算算术运算:该部分由两个小部分组成,一部分
8、是做加减运算的,另一部分是用作选择输出的。因为只有一个数码管,要用该数码管既显示加的结果也显示减的结果,就选用了一个子电路来对其进行操作。E2 为 0 时输出是加的结果,为 1 时输出减的结果。运算电路中运用了 8 个 72LS183,1 个 74LS157 和异或门组成了这个算术运算电路(可以实现被减数小于减数的运算) 。157 是一个数据选择器,-G 始终为低电平选择器才处在工作状态,选择器的上部分与信号 B 连接,下部分置 1,当-A/B 端置 1 时做自加减运算,置 0 时做加减运算。具体是加还是减则取决于 E 端的置数,这些控制端都是用一定门器件通过 f3f2f1 来控制的。仿真电路
9、图:逻辑运算模块:运算功能:加法功能电路图仿真1110+1101=1011 产生进位,进位端有显示硬件搭建电路分析2+3=5,进位端和益出端均无显示电路仿真分析3+6=9,有益出无进位与运算:1110 与 1101=1100,f3f2f1 为 001,溢出与进位都有变化是因为 f3f2f1 变化了 ,而 E 与 EN 端都是有这里控制的0100(4)与 0110(6)=0100(4)或运算:1110 或 1101=1111,f3f2f1 为 0100110(6)或 0111(7)=0111(7)异或运算:1110 异或 1101=0011,f3f2f1 为 0110100(4)异或 0011(3)=0111(7)非 A 运算:1110 非=0001,f3f2f1 为 1001110(14)非=0001 (1)A 自加运算:1000(8)+1=1001(9),f3f2f1 为 1017+1=8自减运算: