计算机组成实验加法器_第1页
计算机组成实验加法器_第2页
计算机组成实验加法器_第3页
计算机组成实验加法器_第4页
计算机组成实验加法器_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

试验四试验五试验四、运算器部件—串行进位加法器试验五、运算器部件—并行进位加法器第1页一、试验目标1.熟悉EDA工具QuartusII和Modelsim使用,能够熟练利用VrilogHDL语言在QuartusII下进行工程开发、调试和仿真;了解译码器原理并掌握惯用译码器设计方法。2.掌握算术逻辑运算器串行和并行进位控制运算器原理,掌握组合逻辑电路在QuartusⅡ中图形输入方法及文本输入方法。掌握串行进位加法器和超前进位加法器不一样。3.掌握8位串、并进位运算器工作及设计方法4.掌握4位超前进位74LS181工作原理和使用方法5.验证运算功效发生器(181)组合功效6.能够按给定数据,完成试验指定算术、逻辑运算按给定数据,完成几个指定算术和逻辑运算。

第2页1、串行进位加法器

∑8

∑7∑2∑1A8B8A7B7A2B2A1B1

C0第3页试验内容一:1、先用二输入异或和与门图形方法设计半加器,并将其设定为符号元件2、用1半加器符号元件,设计全加器,并将其设定为全加器符号元件第4页3、用4个全加器元件设计4位或8位串行进位加法器第5页4、建立仿真文件,并进行仿真分析试验内容二第6页一位ALU单元

Xi=S2S3+S2S3(Ai+Bi)+S2S3(Ai+Bi)+S2S3AiYi=S0S1Ai+S0S1AiBi+S0S1AiBi第7页一位ALU单元两变量X和Y,可形成四个最小项,在二值空间可组合成16种逻辑函数:第8页一位ALU单元FiFi=第9页一位ALU单元加上M和Ci形成真值表S3S2S0S1第10页∑i

=(Ai+Bi)+Ci-1Ci=AiBi+(Ai+Bi)Ci-1GPC1=G1+P1C0C2=G2+P2C1Cn=Gn+PnCn-1C1=G1+P1C0C2=G2+P2C1

=G2+P2G1+P2P1C0Cn=Gn+PnCn-1=Gn+PnGn-1+…+PnPn-1…P2P1C0

试验内容二并行进位设计,用VHDL设计第11页试验前,要求做好试验预习,掌握运算器ALU特征,试验过程中,要认真进行试验操作,仔细思索试验相关内容,把自己想得不太明白问题经过试验去了解清楚,争取得到最好试验结果,到达预期试验教学目标。试验完成后,写出试验汇报。第12页4位超前进位加法器LIBRARYIEEE;USEIEEESTD_LOGIC_1164.ALL;ENTITYadder4ISPORT(a,b:INSTD_LOGIC_VECTOR(3DOWNTO0)ci:INSTD_LOGIC;sum:OUTSTD_LOGIC_VECTOR(3DOWNTO0);cout:OUTSTD_LOGIC);ENDadde4r;ARCHITECTURErtl_adder4OFadder4ISSIGNALg,p,c:STD_LOGIC_VECTOR(3DOWNTO0);BEGINp(0)<=a(0)ORb(0);p(1)<=a(1)ORb(1);p(2)<=a(2)ORb(2);g(0)<=a(0)ANDb(0);a[3:0]b[3:0]ciSum[3:0]cout第13页g(1)<=a(1)ANDb(1);g(2)<=a(2)ANDb(2);g(3)<=a(3)ANDb(3);c(0)<=g(0)OR(p(0)ANDci);c(1)<=g(1)OR(p(1)ANDg(0))OR(p(1)ANDp(0)ANDci);c(2)<=g(2)OR(p(2)ANDg(1))OR(p(2)ANDp(1)ANDg(0))OR(p(2)ANDp(1)ANDp(0)ANDci);c(3)<=g(3)OR(p(3)ANDg(2))OR(p(3)ANDp(2)ANDg(1))OR(p(3)ANDp(2)ANDp(1)ANDg(0))OR(p(3)ANDp(2)ANDp(1)ANDp(0)ANDci);cout=c(3);sum(0)<=a(0)XORb(0)XORci;sum(1)<=a(1)XORb(1)XORc(0);sum(2)<=a(2)XORb(2)XORc(1);sum(3)<=a(3)XORb(3)XORc(2);ENDrtl_adder4;第14页已知有两个字长是16bit串行补码A,B;数据低位在前,高位在后,设计一个运算器,能完成A,B两数加减运算,并以并行方式输出运算结果!LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYALUISPORT(RESET,CLK:INSTD_LOGIC;ADD,SUB:INSTD_LOGIC;--ADD为加法信号,SUB为减法信号A:INSTD_LOGIC_VECTOR(15DOWNTO0);--十六位输入B:INSTD_LOGIC_VECTOR(15DOWNTO0);SO:OUTSTD_LOGIC_VECTOR(15DOWNTO0)--十六位运算结果输出);ENDENTITYALU;ARCHITECTUREARTOFALUISBEGINPROCESS(CLK,RESET,ADD,SUB)BEGINIFRESET='1'THENSO<=(OTHERS=>'0');ELSIFRISING_EDGE(CLK)THENIFADD='1'THENSO<=A+B;ENDIF;IFSUB='1'THENSO<=A-B;ENDIF;ENDIF;ENDPROCESS;ENDART;第15页第16页试验五ALU74LS181试验一、试验目标1、了解运算器组成结构;2、掌握74LS181芯片和运算器部件工作原理。3、了解4位函数发生器74LS181组合功效,熟悉运算器执行算术操作和逻辑操作详细实现过程;4、验证验证运算功效发生器(74LSl81)组合功效。。5、按给定数据,完成试验指定算术/逻辑运算二、试验内容与方案74LS181是4位算术逻辑运算器(ALU),它能够进行16种算术运算和16种逻辑运算。ALU进行运算由S3,S2,S1,S0,Cn,M来决定。74LS181逻辑功效表如表1所表示。第17页74LS功效表说明:+表示或运算,*表示与运算,/表示非逻辑运算加:表示算术加减表示算术减运算第18页控制信号说明:M:状态控制端1逻辑运算,0算术运算S3S2S1S0:运算选择控制A3A2A1A0:运算数B3B2B1B0:运算数CIN:最低位进位(CN=0有进位,CN=1无进位)CN+4:本片产生进位0有进位,1无进位F3F2F1F0:运算结果,F3高位第19页验证181运算器逻辑功效和算术运算功效6+B,F+1,55+AA,逻辑运算自己设定第20页验证181逻辑功效输入两个4位二进制数,经过改变74ls181S3、S2、S1、S0、M、CN控制信号值来验证74ls181算术逻辑功效。试验内容一第21页LIBRARYIEEE;--按正逻辑181功效表描述USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYALU181IS--加减、与或等运算,依据181功效设计PORT(S:INSTD_LOGIC_VECTOR(3DOWNTO0);--16种操作A:INSTD_LOGIC_VECTOR(7DOWNTO0);--数据输入 B:INSTD_LOGIC_VECTOR(7DOWNTO0);--数据输入 F:OUTSTD_LOGIC_VECTOR(7DOWNTO0);--数据输出 COUT:OUTSTD_LOGIC_VECTOR(3DOWNTO0); M:INSTD_LOGIC;--控制方式选择 CN:INSTD_LOGIC;--进位标志 CO:OUTSTD_LOGIC;--进位输出 FZ:OUTSTD_LOGIC);--结果为零ENDALU181;ARCHITECTUREbehavOFALU181IS SIGNALA9:STD_LOGIC_VECTOR(8DOWNTO0);--第8位是进位 SIGNALB9:STD_LOGIC_VECTOR(8DOWNTO0); SIGNALF9:STD_LOGIC_VECTOR(8DOWNTO0); BEGIN A9<=‘0’&A;--增加1位进位位 B9<='0'&B;--试验内容二、依据181功效,用VHDL设计8位ALU第22页PROCESS(M,CN,A9,B9,S)--敏感信号 BEGIN--正逻辑 CASESIS WHEN"0000"=>IFM='0'THENF9<=A9+CN; ELSEF9<=NOTA9;ENDIF; WHEN"0001"=>IFM='0'THENF9<=(A9ORB9)+CN; ELSEF9<=NOT(A9ORB9);ENDIF; WHEN"0010"=>IFM='0'THENF9<=(A9OR(NOTB9))+CN; ELSEF9<=(NOTA9)ANDB9;ENDIF; WHEN"0011"=>IFM='0'THENF9<="000000000";---CN; ELSEF9<="000000000";ENDIF; WHEN"0100"=>IFM='0'THENF9<=A9+(A9AND(NOTB9))+CN; ELSEF9<=NOT(A9ANDB9);ENDIF; WHEN"0101"=>IFM='0'THENF9<=(A9ORB9)+(A9AND(NOT(B9)))+CN; ELSEF9<=NOTB9;ENDIF; WHEN"0110"=>IFM='0'THENF9<=A9-B9-CN; ELSEF9<=A9XORB9;ENDIF; WHEN"0111"=>IFM='0'THENF9<=(A9AND(NOTB9))-CN; ELSEF9<=A9AND(NOTB9);ENDIF; WHEN"1000"=>IFM='0'THENF9<=A9+(A9ANDB9)+CN; ELSEF9<=(NOTA9)ORB9;ENDIF; WHEN"1001"=>IFM='0'THENF9<=A9+B9+CN; ELSEF9<=NOT(A9XORB9);ENDIF;第23页WHEN"1010"=>IFM='0'THENF9<=(A9OR(NOTB9))+(A9ANDB9)+CN; ELSEF9<=B9;ENDIF; WHEN"1011"=>IFM='0'THENF9<=(A9ANDB9)-CN; ELSEF9<=A9ANDB9;ENDIF; WHEN"1100"=>IFM='0'THENF9<=A9+A9+CN; ELSEF9<="000000001";ENDIF; WHEN"1101"=>IFM='0'THENF9<=(A9ORB9)+A9+CN; ELSEF9<=A9OR(NOTB9);ENDIF; WHEN"1110"=>IFM='0'THENF9<=(A9OR(NOTB9))+A9+CN; ELSEF9<=A9ORB9;ENDIF; WHEN"1111"=>IFM='0'THENF9<=A9-CN; ELSEF9<=A9;ENDIF; WHENOTHERS=>F9<="000000000"; ENDCASE; IF(A9=B9)THEN FZ<='0'; ELSEFZ<='1'; ENDIF; ENDPROCESS; F<=F9(7DOWNTO0);CO<=F9(8); COUT<="0000"WHENF9(8)='0'ELSE"0001"; ENDBEHAV;第24页试验内容三选做8位运算器设计,组间串行进位输入两个8位二进制数,经过改变74ls181S3、S2、S1、S0、M、CN控制信号值来验证74ls181算术逻辑功效。第25页组间并行进位2个74LS181,1个 74LS182, 设计8位ALU第26页第27页LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYALU181IS--加减、与或等运算,依据181功效设计PORT(S:INSTD_LOGIC_VECTOR(3DOWNTO0);--16种操作A:INSTD_LOGIC_VECTOR(7DOWNTO0);--数据输入 B:INSTD_LOGIC_VECTOR(7DOWNTO0);--数据输入 F:OUTSTD_LOGIC_VECTOR(7DOWNTO0);--数据输出 COUT:OUTSTD_LOGIC_VECTOR(3DOWNTO0); M:INSTD_LOGIC;--控制方式选择 CN:INSTD_LOGIC;--进位标志 CO:OUTSTD_LOGIC;--进位输出 FZ:OUTSTD_LOGIC);--结果为零 ENDALU181;

ARCHITECTUREbehavOFALU181IS SIGNALA9:STD_LOGIC_VECTOR(8DOWNTO0);--第8位是进位 SIGNALB9:STD_LOGIC_VECTOR(8DOWNTO0); SIGNALF9:STD_LOGIC_VECTOR(8DOWNTO0); BEGIN A9<='0'&A; B9<='0'&B; PROCESS(M,CN,A9,B9,S)--敏感信号 BEGIN--正逻辑 CASESIS WHEN"0000"=>IFM='0'THENF9<=A9+CN; ELSEF9<=NOTA9;ENDIF; WHEN"0001"=>IFM='0'THENF9<=(A9ORB9)+CN; ELSEF9<=NOT(A9ORB9);ENDIF; WHEN"0010"=>IFM='0'THENF9<=(A9OR(NOTB9))+CN; ELSEF9<=(NOTA9)ANDB9;ENDIF; WHEN"0011"=>IFM='0'THENF9<="000000000";---CN; ELSEF9<="000000000";ENDIF; WHEN"0100"=>IFM='0'THENF9<=A9+(A9AND(NOTB9))+CN; ELSEF9<=NOT(A9ANDB9);ENDIF; WHEN"0101"=>IFM='0'THENF9<=(A9ORB9)+(A9AND(NOT(B9)))+CN; ELSEF9<=NOTB9;ENDIF; WHEN"0110"=>IFM='0'THENF9<=A9-B9-CN; ELSEF9<=A9XORB9;ENDIF; WHEN"0111"=>IFM='0'THENF9<=(A9AND(NOTB9))-CN; ELSEF9<=A9AND(NOTB9);ENDIF; WHEN"1000"=>IFM='0'THENF9<=A9+(A9ANDB9)+CN; ELSEF9<=(NOTA9)ORB9;ENDIF; WHEN"1001"=>IFM='0'THENF9<=A9+B9+CN; ELSEF9<=NOT(A9XORB9);ENDIF;

WHEN"1010"=>IFM='0'THENF9<=(A9OR(NOTB9))+(A9ANDB9)+CN; ELSEF9<=B9;ENDIF; WHEN"1011"=>IFM='0'THENF9<=(A9ANDB9)-CN; ELSEF9<=A9ANDB9;ENDIF; WHEN"1100"=>IFM='0'THENF9<=A9+A9+CN; ELSEF9<="000000001";ENDIF; WHEN"1101"=>IFM='0'THENF9<=(A9ORB9)+A9+CN; ELSEF9<=A9OR(NOTB9);ENDIF; WHEN"1110"=>IFM='0'THENF9<=(A9OR(NOTB9))+A9+CN; ELSEF9<=A9ORB9;ENDIF; WHEN"1111"=>IFM='0'THENF9<=A9-CN; ELSEF9<=A9;ENDIF; WHENOTHERS=>F9<="000000000"; ENDCASE; IF(A9=B9)THEN FZ<='0'; ELSEFZ<='1'; ENDIF; ENDPROCESS; F<=F9(7DOWNTO0);CO<=F9(8); COUT<="0000"WHENF9(8)='0'ELSE"0001"; ENDBEHAV;第28页第29页第30页第31页libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityadder8is

port(cin:instd_logic;

a,b:in

std_logic_vector(7downto0);

s:outstd_logic_vector(7downto0);

c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论