《计算机组成实验加法器》由会员分享,可在线阅读,更多相关《计算机组成实验加法器(30页珍藏版)》请在金锄头文库上搜索。
1、实验四 实验五实验四、运算器部件实验四、运算器部件串行进位加法器串行进位加法器实验五、运算器部件实验五、运算器部件并行进位并行进位加法器加法器1一、实验目的一、实验目的1 1熟悉熟悉EDAEDA工具工具Quartus IIQuartus II和和ModelsimModelsim的使用,能够熟练的使用,能够熟练运用运用Vrilog HDLVrilog HDL语言在语言在Quartus IIQuartus II下进行工程开发、调试和下进行工程开发、调试和仿真;了解译码器的原理并掌握常用译码器的设计方法。仿真;了解译码器的原理并掌握常用译码器的设计方法。 2. 2.掌握算术逻辑运算器串行和并行进位控
2、制运算器的原理,掌握算术逻辑运算器串行和并行进位控制运算器的原理,掌握组合逻辑电路在掌握组合逻辑电路在Quartus Quartus 中的图形输入方法及文本输中的图形输入方法及文本输入方法。掌握串行进位加法器和超前进位加法器的不同。入方法。掌握串行进位加法器和超前进位加法器的不同。3 3掌握掌握8 8位串、并进位运算器的工作及设计方法位串、并进位运算器的工作及设计方法4 4掌握掌握4 4位超前进位位超前进位74LS18174LS181的工作原理和使用方法的工作原理和使用方法5 5验证运算功能发生器(验证运算功能发生器(181181)的组合功能)的组合功能6 6能够按给定数据,完成实验指定的算术
3、、逻辑运算按能够按给定数据,完成实验指定的算术、逻辑运算按给定数据,完成几种指定的算术和逻辑运算。给定数据,完成几种指定的算术和逻辑运算。21、串行进位加法器、串行进位加法器 88 77211A8 B8 A7 B7 A2 B2 A1 B1 C03实验内容一:1、先用二输入异或和与门图形方法设计半加器,并将其设定为符号元件2、用1半加器符号元件,设计全加器 ,并将其设定为全加器符号元件43 3、用、用4 4个全加器元件设计个全加器元件设计4 4位或位或8 8位串行进位加法器位串行进位加法器54、建立仿真文件,并进行仿真分析、建立仿真文件,并进行仿真分析实验内容二实验内容二6一位ALU单元 Xi=
4、S2S3+S2S3(Ai+Bi)+S2S3(Ai+Bi)+S2S3Ai Yi=S0S1Ai+S0S1AiBi+S0S1AiBi7 一位ALU单元两变量X和Y,可形成四个最小项,在二值空间可组合成16种逻辑函数:8 一位ALU单元FiFi =9一位ALU单元加上M和Ci形成的真值表S3S2S0S110i = (Ai + Bi) + Ci-1 Ci = AiBi + (Ai + Bi)Ci-1GPC1 = G1 + P1C0C2 = G2 + P2C1Cn = Gn + PnCn-1C1 = G1 + P1C0C2 = G2 + P2C1 = G2 + P2G1 + P2P1C0Cn = Gn +
5、 PnCn-1 = Gn + PnGn-1 + + PnPn-1P2P1C0 实验内容二实验内容二 并行进位设计,用并行进位设计,用VHDL设计设计11实验前,要求做好实验预习,掌握运算器实验前,要求做好实验预习,掌握运算器ALUALU的特性,的特性,实验过程中,要认真进行实验操作,仔细思考实验有关的内容,把自己想得实验过程中,要认真进行实验操作,仔细思考实验有关的内容,把自己想得不太明白的问题通过实验去理解清楚,争取得到最好的实验结果,达到预期不太明白的问题通过实验去理解清楚,争取得到最好的实验结果,达到预期的实验教学目的。试验完成后,写出实验报告。的实验教学目的。试验完成后,写出实验报告。
6、124位超前进位加法器位超前进位加法器LIBRARY IEEE;USE IEEE STD_LOGIC_1164.ALL;ENTITY adder4 IS PORT (a, b:IN STD_LOGIC_VECTOR (3DOWN TO 0 ) ci:IN STD_LOGIC; sum:OUT STD_LOGIC_VECTOR (3 DOWN TO 0 ); cout:OUT STD_LOGIC);END adde4r;ARCHITECTURE rtl_adder4 OF adder4 IS SIGNAL g, p, c:STD_LOGIC_VECTOR (3 DOWN TO 0 ); BEGI
7、N p(0) = a(0) OR b(0); p(1) = a(1) OR b(1); p(2) = a(2) OR b(2); g(0) = a(0) AND b(0);a3:0b3:0ciSum3:0cout13 g (1) = a(1) AND b(1); g(2) = a(2) AND b(2); g(3) = a(3) AND b(3); c(0) = g(0) OR (p(0) AND ci ); c(1) = g(1) OR (p(1) AND g(0) OR (p(1) AND p(0) AND ci); c(2) = g(2) OR (p(2) AND g(1) OR (p(
8、2) AND p(1) AND g(0) OR (p(2) AND p(1) AND p(0) AND ci); c(3) = g(3) OR (p(3) AND g(2) OR (p(3) AND p(2) AND g(1) OR (p(3) AND p(2) AND p(1) AND g(0) OR (p(3) AND p(2) AND p(1) AND p(0) AND ci); cout = c(3); sum(0) = a(0) XOR b(0) XOR ci; sum(1) = a(1) XOR b(1) XOR c(0); sum(2) = a(2) XOR b(2) XOR c
9、(1); sum(3) = a(3) XOR b(3) XOR c(2); END rtl_adder4; 14已知有两个字长是已知有两个字长是16bit16bit的串行补码的串行补码A A,B B;数据低位在前,高位在后,设计一个;数据低位在前,高位在后,设计一个运算器,能完成运算器,能完成A A,B B两数的加减运算,并以并行方式输出运算结果!两数的加减运算,并以并行方式输出运算结果! LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ALU IS PORT(RESET,CL
10、K:IN STD_LOGIC;ADD,SUB:IN STD_LOGIC; -ADD为加法信号,SUB为减法信号 A:IN STD_LOGIC_VECTOR(15 DOWNTO 0);-十六位输入 B:IN STD_LOGIC_VECTOR(15 DOWNTO 0); SO:OUT STD_LOGIC_VECTOR(15 DOWNTO 0)-十六位运算结果输出 ); END ENTITY ALU; ARCHITECTURE ART OF ALU IS BEGIN PROCESS(CLK,RESET,ADD,SUB) BEGIN IF RESET=1 THEN SO0); ELSIF RISING
11、_EDGE(CLK) THEN IF ADD=1 THEN SO=A+B; END IF; IF SUB=1 THEN SO=A-B; END IF; END IF; END PROCESS; END ART; 15实验五 ALU 74LS181实验一、实验目的一、实验目的 1 1、了解运算器的组成结构;、了解运算器的组成结构; 2 2、掌握、掌握 74LS18174LS181 芯片和运算器部件的工作原理。芯片和运算器部件的工作原理。 3 3、了解、了解 4 4 位函数发生器位函数发生器 74LS18174LS181 的组合功能的组合功能, ,熟悉运算熟悉运算器执行算术操作和逻辑操作的具体实现
12、过程器执行算术操作和逻辑操作的具体实现过程; ; 4 4、验证验证运算功能发生器、验证验证运算功能发生器(74LSl81)(74LSl81)的组合功能。的组合功能。 。 5 5、按给定数据,完成实验指定的算术、按给定数据,完成实验指定的算术/ /逻辑运算逻辑运算 二、实验内容与方案二、实验内容与方案 74LS181 74LS181是是4 4位算术逻辑运算器(位算术逻辑运算器(ALUALU), ,它可以进行它可以进行1616种种算术运算和算术运算和1616种逻辑运算。种逻辑运算。ALUALU进行的运算由进行的运算由S3S3,S2S2,S1S1,S0S0,CnCn,M M来决定。来决定。74LS1
13、8174LS181的逻辑功能表如表的逻辑功能表如表1 1所示。所示。 1674LS 74LS 功能表功能表说明:说明:+ +表示或运算,表示或运算,* *表示与运算,表示与运算,/ /表示非逻辑运算表示非逻辑运算加:表示算术加加:表示算术加 减表示算术减运算减表示算术减运算17控制信号说明:控制信号说明:M M:状态控制端状态控制端 1 1逻辑运算,逻辑运算,0 0算术运算算术运算S3S2S1S0S3S2S1S0:运算选择控制:运算选择控制A3A2A1A0:A3A2A1A0:运算数运算数B3B2B1B0B3B2B1B0:运算数:运算数CIN:CIN:最低位进位最低位进位 (CN=0 (CN=0
14、有进位,有进位,CN=1 CN=1 无进位)无进位)CN+4CN+4:本片产生的进位本片产生的进位 0 0有进位,有进位,1 1无进位无进位F3F2F1F0F3F2F1F0:运算结果,运算结果,F3F3高位高位18验证验证181181运算器的逻辑功能和算术运算功能运算器的逻辑功能和算术运算功能6+B6+B,F+1F+1,55+AA55+AA,逻辑运算自己设定逻辑运算自己设定19验证181逻辑功能输入两个输入两个4 4位二进制数位二进制数, , 通过改变通过改变74ls18174ls181的的S3S3、S2S2、S1S1、S0S0、M M、CNCN控制信号的值来验证控制信号的值来验证74ls18
15、174ls181的算术逻辑功能。的算术逻辑功能。 实验内容一实验内容一20LIBRARY IEEE;-按正逻辑181功能表描述USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ALU181 IS -加减、与或等运算,根据181功能设计PORT(S:IN STD_LOGIC_VECTOR(3 DOWNTO 0);-16种操作 A:IN STD_LOGIC_VECTOR(7 DOWNTO 0);-数据输入 B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);-数据输入 F:OUT STD_LOGIC
16、_VECTOR(7 DOWNTO 0);-数据输出 COUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); M:IN STD_LOGIC;-控制方式选择 CN:IN STD_LOGIC;-进位标志 CO:OUT STD_LOGIC;-进位输出 FZ:OUT STD_LOGIC);-结果为零END ALU181;ARCHITECTURE behav OF ALU181 ISSIGNAL A9:STD_LOGIC_VECTOR(8 DOWNTO 0);-第8位是进位SIGNAL B9:STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL F9:STD_LOG
17、IC_VECTOR(8 DOWNTO 0);BEGINA9=0&A;-增加1位进位位B9IF M=0 THEN F9=A9+CN;ELSE F9IF M=0 THEN F9=(A9 OR B9)+CN;ELSE F9IF M=0 THEN F9=(A9 OR (NOT B9)+CN;ELSE F9IF M=0 THEN F9=000000000; -CN;ELSE F9IF M=0 THEN F9=A9+(A9 AND (NOT B9)+CN;ELSE F9IF M=0 THEN F9=(A9 OR B9)+(A9 AND (NOT(B9)+CN;ELSE F9IF M=0 THEN F9=A
18、9-B9-CN;ELSE F9IF M=0 THEN F9=(A9 AND (NOT B9)-CN;ELSE F9IF M=0 THEN F9=A9 +(A9 AND B9)+CN;ELSE F9IF M=0 THEN F9=A9+B9+CN;ELSE F9IF M=0 THEN F9=(A9 OR (NOT B9)+(A9 AND B9)+CN;ELSE F9IF M=0 THEN F9=(A9 AND B9)-CN;ELSE F9IF M=0 THEN F9=A9 +A9+CN;ELSE F9IF M=0 THEN F9=(A9 OR B9)+A9+CN;ELSE F9IF M=0 THE
19、N F9=(A9 OR (NOT B9)+A9+CN;ELSE F9IF M=0 THEN F9=A9-CN;ELSE F9 F9=000000000;END CASE;IF (A9=B9) THENFZ=0;ELSE FZ=1;END IF;END PROCESS;F=F9(7 DOWNTO 0); CO=F9(8);COUT=0000 WHEN F9(8)=0 ELSE 0001;END BEHAV;23实验内容三实验内容三 选做选做8 8位运算器设计,组间串行进位位运算器设计,组间串行进位输入两个输入两个8 8位二进制数位二进制数, , 通过改变通过改变74ls18174ls181的的S
20、3S3、S2S2、S1S1、S0S0、M M、CNCN控制信号的值来验证控制信号的值来验证74ls18174ls181的算术逻辑功能。的算术逻辑功能。 24组间并行进位组间并行进位2 2个个74LS181,174LS181,1个个74LS18274LS182,设计设计8 8位位ALUALU2526LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ALU181 IS -加减、与或等运算,根据181功能设计PORT(S:IN STD_LOGIC_VECTOR(3 DOWNTO 0);-16
21、种操作 A:IN STD_LOGIC_VECTOR(7 DOWNTO 0);-数据输入 B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);-数据输入 F:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-数据输出 COUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); M:IN STD_LOGIC;-控制方式选择 CN:IN STD_LOGIC;-进位标志 CO:OUT STD_LOGIC;-进位输出 FZ:OUT STD_LOGIC);-结果为零END ALU181; ARCHITECTURE behav OF ALU181 ISSI
22、GNAL A9:STD_LOGIC_VECTOR(8 DOWNTO 0);-第8位是进位SIGNAL B9:STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL F9:STD_LOGIC_VECTOR(8 DOWNTO 0);BEGINA9=0&A;B9IF M=0 THEN F9=A9+CN;ELSE F9IF M=0 THEN F9=(A9 OR B9)+CN;ELSE F9IF M=0 THEN F9=(A9 OR (NOT B9)+CN;ELSE F9IF M=0 THEN F9=000000000; -CN;ELSE F9IF M=0 THEN F9=A9+(A9
23、AND (NOT B9)+CN;ELSE F9IF M=0 THEN F9=(A9 OR B9)+(A9 AND (NOT(B9)+CN;ELSE F9IF M=0 THEN F9=A9-B9-CN;ELSE F9IF M=0 THEN F9=(A9 AND (NOT B9)-CN;ELSE F9IF M=0 THEN F9=A9 +(A9 AND B9)+CN;ELSE F9IF M=0 THEN F9=A9+B9+CN;ELSE F9IF M=0 THEN F9=(A9 OR (NOT B9)+(A9 AND B9)+CN;ELSE F9IF M=0 THEN F9=(A9 AND B9)
24、-CN;ELSE F9IF M=0 THEN F9=A9 +A9+CN;ELSE F9IF M=0 THEN F9=(A9 OR B9)+A9+CN;ELSE F9IF M=0 THEN F9=(A9 OR (NOT B9)+A9+CN;ELSE F9IF M=0 THEN F9=A9-CN;ELSE F9 F9=000000000;END CASE;IF (A9=B9) THENFZ=0;ELSE FZ=1;END IF;END PROCESS;F=F9(7 DOWNTO 0); CO=F9(8);COUT=0000 WHEN F9(8)=0 ELSE 0001;END BEHAV;27li
25、braryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityadder8isport(cin:instd_logic;a,b:instd_logic_vector(7downto0);s:outstd_logic_vector(7downto0);cout:outstd_logic);endadder8;architecturebehofadder8issignalsint:std_logic_vector(8downto0);signalaa,bb:std_logic_vector(8downto0);b
26、eginaa=0&a(7downto0);bb=0&b(7downto0);sint=aa+bb+cin;s(7downto0)=sint(7downto0);cout=sint(8);endbeh;并行进并行进位加法位加法设计设计28libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityadder8isport(A:instd_logic_vector(7downto0);B:instd_logic_vector(7downto0);cin:instd_logic;s:outstd_logic_
27、vector(7downto0);cout:outstd_logic);endadder8;architecturefuncofadder8issignalm:std_logic_vector(8downto0);signaln:std_logic;beginprocess(A,B)beginm=A+B+cinafter2ns;n=m(8);endprocess;s=m(7downto0);cout=n;endfunc;并行进并行进位加法位加法设计设计29LIBRARY ieee;USE ieee.std_logic_1164.all;USE IEEESTD_LOGIC_UNSINGEND.A
28、LLENTITY ADDER4B ISPORT(C4:INSTD_LOGIC;低位进位A4:IN STD_LOGIC_VECTOR(3 DOWNTTO 0);加数B4:IN STD_LOGIC_VECTOR(3 DOWNTTO 0);4位被加数S4:IN STD_LOGIC_VECTOR(3 DOWNTTO 0);-4位和co4:out STD_LOGIC);-进位输出ARHITECTURE ART OF ADDER4B ISSIGNAL S5: STD_LOGIC_VECTOR(4 DOWNTTO 0);SIGNAL A5,B5: STD_LOGIC_VECTOR(4 DOWNTTO 0);BEGINA5=0&A4;B5=0&B4;S5=A5+B5+C4;S4=s5(3 downto 0);co4s5(4);END ARCHITECTURE ART;30