试验二16位算术逻辑运算试验
实验二运算器实验解读

实验⼆运算器实验解读实验⼆运算器实验1.算术逻辑运算实验⼀.实验⽬的1.了解简单运算器的数据传输通路。
2.验证运算功能发⽣器的组合功能。
3.掌握算术逻辑运算加、减、与的⼯作原理。
4.验证实验台运算的8位加、减、与、直通功能。
5.按给定数据,完成⼏种指定的算术和逻辑运算。
⼆.实验内容1.实验原理算术逻辑单元ALU的数据通路如图2-1所⽰。
其中运算器ALU181根据74LS181的功能⽤VHDL硬件描述语⾔编辑⽽成,构成8位字长的ALU。
参加运算的两个8位数据分别为A[7..0]和B[7..0],运算模式由S[3..0]的16种组合决定,⽽S[3..0]的值由4位2进制计数器LPM_COUNTER产⽣,计数时钟是Sclk(图2-1;此外,设M=0,选择算术运算,M=1为逻辑运算,C N为低位的进位位;F[7..0]为输出结果,C O 为运算后的输出进位位。
两个8位数据由总线IN[7..0]分别通过两个电平锁存器74373锁⼊,ALU功能如表2-1所⽰。
表2-1 ALU181的运算功能注1、* 表⽰每⼀位都移⾄下⼀更⾼有效位, “+”是逻辑或,“加”是算术加注2、在借位减法表达上,表2-1与标准的74181的真值表略有不同。
三.实验步骤(1设计ALU元件在Quartus II 环境下,⽤⽂本输⼊编辑器Text Editor输⼊ALU181.VHD算术逻辑单元⽂件,编译VHDL⽂件,并将ALU181.VHD⽂件制作成⼀个可调⽤的原理图元件。
(2以原理图⽅式建⽴顶层⽂件⼯程选择图形⽅式。
根据图2-1输⼊实验电路图,从Quartus II的基本元件库中将各元件调⼊图形编辑窗⼝、连线,添加输⼊输出引脚。
将所设计的图形⽂件ALU.bdf保存到原先建⽴的⽂件夹中,将当前⽂件设置成⼯程⽂件,以后的操作就都是对当前⼯程⽂件进⾏的。
(3器件选择选择Cyclone系列,在Devices中选择器件EP1C6QC240C8。
实验二 算术运算类操作实验 (基础与设计)

实验二算术运算类操作实验 (基础与设计)一、实验要求和目的1、了解汇编语言中的二进制、十六进制、十进制、BCD 码的表示形式;2、掌握各类运算类指令对各状态标志位的影响及测试方法;3、熟悉汇编语言二进制多字节加减法基本指令的使用方法;4、熟悉无符号数和有符号数乘法和除法指令的使用;5、掌握符号位扩展指令的使用。
6、掌握BCD 码调整指令的使用方法二、软硬件环境1、硬件环境:计算机系统 windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。
三、实验涉及的主要知识本实验主要进行算术运算程序设计和调试,涉及到的知识点包括:1.加减法处理指令主要有加法指令ADD,带进位加法ADC,减法指令SUB,带进位减法指令SBB。
2.乘除法指令和符号位扩展指令主要有无符号数乘法指令MUL,带符号数乘法指令IMUL,无符号数除法指令DIV,带符号数除法指令IDIV,以及符号位从字节扩展到字的指令CBW 和从字扩展到双字的指令CWD。
3.BCD 码的调整指令主要有非压缩的BCD 码加法调整指令DAA,压缩的BCD 码减法调整指令DAS,非压缩的BCD 码加法调整指令AAA,非压缩的BCD 码减法调整指令AAS,乘法的非压缩BCD码调整指令AAM,除法的非压缩BCD 码调整指令AAD。
8088/8086 指令系统提供了实现加、减、乘、除运算的上述基本指令,可对下表所示的数据类型进行数据运算。
四、实验内容与步骤1、对于两组无符号数,087H 和034H,0C2H 和5FH,试编程求这两组数的和差积商,并考虑计算结果对标志寄存器中状态标志位的影响。
设计流程:源代码:DATAS SEGMENTARRAY DW 087H,034H,0C2H,05FHJIA DW 2 DUP(?) ;储存两组加法结果JIAN DW 2 DUP(?) ;储存两组减法结果CHENG DW 2 DUP(?) ;储存两组乘法结果CHU DW 2 DUP(?) ;储存两组除法结果DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV SI,0MOV BX,0SUB BX,2SUB SI,4L1:ADD SI,4ADD BX,2MOV AX,ARRAY[SI] ;第一个运算数ADD AX,ARRAY[SI+2] ;加法运算MOV JIA[BX],AX ;储存加法结果MOV AX,ARRAY[SI]SUB AX,ARRAY[SI+2] ;减法运算MOV JIAN[BX],AX ;储存减法结果MOV AX,ARRAY[SI]MUL ARRAY[SI+2] ;乘法运算MOV CHENG[BX],AX ;储存乘法结果MOV AX,ARRAY[SI]MOV CX,ARRAY[SI+2]DIV CL ;除法运算MOV CHU[BX],AX ;储存除法结果CMP BX,2JNZ L1MOV AH,4CHINT 21HCODES ENDSEND START程序结果:通过-t逐步运行程序,逐步查看每次运算后标志位的状态,结果如下:2、在数据段定义了两个多精度的有符号16 进制数,FIRST 和SECOND ,1)求两数的和与差,并将结果存放在THIRD 为首地址的缓冲区中;2)如果把两组数据当作十进制数据来处理,再次求两数的和与差,并将结果存放在FORTH 为首地址的缓冲区中。
ALU实验报告

算术逻辑单元实验报告一、实验目的1、掌握运算器的工作原理。
2、验证运算器的功能。
二、实验原理算术逻辑单元的主要功能是对二进制数据进行定点算术运算、逻辑运算和各种移位操作。
算术运算包括定点加减乘除运算;逻辑运算主要有逻辑与、逻辑或、逻辑异或和逻辑非操作。
ALU通常有两个数据输入端A和B,一个数据输出端Y 以及标志位等。
三、实验要求1、实验设计目标设计一个16位算术逻辑单元,满足以下要求。
(1)16位算术逻辑单元能够进行下列运算:加法、减法、加1、减1、与、或、非和传送。
用3位运算操作码OP[2..0]进行运算,控制方式如下表所示。
(2)设立两个标志寄存器Z和C。
当复位信号reset为低电平时,将这两个标志寄存器清零。
当运算结束后,在时钟clk的上升沿改变标志寄存器Z和C的值。
运算结果改变标志寄存器C、Z的情况如下:加法、减法、加1、减1运算改变Z、C;与、或、非运算改变Z,C保不变;传送操作保持Z、C不变。
因此在运算结束Z、C需要两个D触发器保存。
(3)为了保存操作数A和B,设计两个16位寄存器A和B。
当寄存器选择信号sel=0时,如果允许写信号write=1.,则在诗中clk的上升沿将数据输入dinput送入A 寄存器;当寄存器选择信号sel=1时,如果允许写信号write=1.,则在诗中clk的上升沿将数据输入dinput送入B寄存器。
(4)算术逻辑单元用一个设计实体完成。
2.顶层设计实体的引脚要求(1)clk对应试验台上的时钟(单脉冲)。
(2)reset对应实验台上的CPU复位信号CPU-RST。
(3)数据输入dinput对应试验台开关SD15~SD0。
(4)允许写信号write对应试验台开关SA5.(5)OP[2..0]对应试验台开关SA2~SA0.(6)寄存器选择信号sel对应试验台开关SA4.(7)16为运算结果result对应实验台上的指示灯A15~A0.(8)Z、C标志位对应试验台上的Z、C指示灯。
《计算机组成原理》学生实验报告

《计算机组成原理》学生实验报告(2011~2012学年第二学期)专业:信息管理与信息系统班级: A0922学号:10914030230姓名:李斌目录实验准备------------------------------------------------------------------------3 实验一运算器实验-----------------------------------------------------------7 实验二数据通路实验-------------------------------------------------------13 实验三微控制器实验--------------------------------------------------------18 实验四基本模型机的设计与实现------------------------------------------22实验准备一、DVCC实验机系统硬件设备1、运算器模块运算器由两片74LS181构成8位字长的ALU。
它是运算器的核心。
可以实现两个8位的二进制数进行多种算术或逻辑运算,具体由74181的功能控制条件M、CN、S3、S2、S1、S0来决定,见下表。
两个参与运算的数分别来自于暂存器U29和U30(采用8位锁存器),运算结果直接输出到输出缓冲器U33(采用74LS245,由ALUB信号控制,ALUB=0,表示U33开通,ALUB=1,表示U33不通,其输出呈高阻),由输出缓冲器发送到系统的数据总线上,以便进行移位操作或参加下一次运算。
进位输入信号来自于两个方面:其一对运算器74LS181的进位输出/CN+4进位倒相所得CN4;其二由移位寄存器74LS299的选择参数S0、S1、AQ0、AQ7决定所得。
触发器的输出QCY就是ALU结果的进位标志位。
QCY为“0”,表示ALU结果没有进位,相应的指示灯CY灭;QCY为“1”,表示ALU结果有进位,相应的指示灯CY点亮。
实验2 算术与逻辑运算指令实验

实验2 算术与逻辑运算指令实验一、实验目的1. 学习算术与逻辑运算的原理及指令的用法;2. 进一步学习emu8086调试程序的用法,并学会emu8086下编写简单应用程序的方法;3. 掌握BCD码加、减法以及ASCII码加减法。
二、实验内容1. 用emu8086执行各加减法指令以及不同编码方式的运算方法,记录执行结果,进行分析、比较,掌握各功能类似的指令之间的差别。
2. 用emu8086编写一个COM文件,其功能是检查自身的长度以及代码检查和。
如果自身的长度改变或检查和改变,则显示“VIRUS”,否则显示“OK”。
三、实验步骤(一) 加法、减法以及逻辑运算指令练习1. 启动emu8086;2. 用单步按钮命令调试以下程序段(分号后注释部分不用输入);-Axxxx:0100 XOR AX,AX ;AX= , C=____, Z=____xxxx:0102 MOV AX,89AB ;AX= , C=____, Z=____xxxx:0105 MOV BX,AX ;BX=xxxx:0107 INC AX ;AX= , C=____, Z=____xxxx:0108 DEC AX ;AX= , C=____, Z=____xxxx:0109 ADD AX,SI ;AX= , C=____, Z=____xxxx:010B SUB AX,SI ;AX= , C=____, Z=____xxxx:010D ADC AX,SI ;AX= , C=____, Z=____xxxx:010F SBB AX,SI ;AX= , C=____, Z=____xxxx:0111 NOPxxxx:0112 MOV AX,0808xxxx:0115 MOV BX,0080xxxx:0118 MOV CX,0880 ;CX=___________xxxx:011B OR AX,BX ;AX=___________ , C=____, OV=____xxxx:011D MOV AX,0808 ;AX=___________, BX=___________xxxx:0120 AND AX,CX ;AX=___________, C=____, S=____xxxx:0122 MOV AX,0808 ;AX=___________, CX=___________xxxx:0125 XOR AX,BX ;AX=___________, BX=___________xxxx:0127 NOT AX ;AX=___________xxxx:0129 NEG AX ;AX=___________xxxx:012B3. 分析上述程序段,用铅笔填写指令依次执行后寄存器和标志位的值,观察它们的变化。
16位超前进位加法器实验报告

实验名称:十六位超前进位加法器一、实验目的设计、验证并优化16位超前进位加法器的逻辑功能。
二、实验原理1、1位全加器原理全加器的求和输出信号和进位信号,定义为输入变量A、B、C的两种组合布尔函数:求和输出信号 = A ⊕ B ⊕ C进位信号 = AB + AC + BC实现这两个函数的门级电路如下图。
并不是单独实现这两个函数,而是用进位信号来产生求和输出信号。
这样可以减少电路的复杂度,因此节省了芯片面积。
上述全加器电路可以用作一般的n位二进制加法器的基本组合模块,它允许两个n 位的二进制数作为输入,在输出端产生二进制和。
最简单的n位加法器可由全加器串联构成,这里每级加法器实现两位加法运算,产生相应求和位,再将进位输出传到下一级。
这样串联的加法器结构称为并行加法器,但其整体速度明显受限于进位链中进位信号的延迟。
因此,为了能够减少从最低有效位到最高有效位的最坏情况进位传播延时,最终选择的电路是十六位超前加法器。
2、超前进位加法器原理超前进位加法器的结构如下图。
超前进位加法器的每一位由一个改进型全加器产生一个进位信号gi和一个进位传播信号pi,其中全加器的输入为Ai和Bi,产生的等式为:改进的全加器的进位输出可由一个进位信号和一个进位传输信号计算得出,因此进位信号可改写为:式中可以看出,当gi = 1(Ai = Bi = 1)时,产生进位;当pi = 1(Ai =1或Bi = 1)时,传输进位输入,这两种情况都使得进位输出是1。
近似可以得到i+2和i+3级的进位输出如下:下图为一个四位超前进位加法器的结构图。
信号经过pi和gi产生一级时延,经过计算C产生一级时延,则A,B输入一旦产生,首先经过两级时延算出第1轮进位值C’不过这个值是不正确的。
C’再次送入加法器,进行第2轮2级时延的计算,算出第2轮进位值C,这一次是正确的进位值。
这里的4个4位超前进位加法器仍是串行的,所以一次计算经过4级加法器,一级加法器有2级时延,因此1次计算一共经过8级时延,相比串行加法器里的16级时延,速度提高很多。
十六位运算器ALU实验报告

⼗六位运算器ALU实验报告学⽣实验报告实验名称⽤Verilog HDL语句实现16位运算器的功能实验⽇期2013年10⽉19学号2012551212姓名李超班级12计算机科学与技术⼀班⼀、实验⽬的与要求1、了解运算器的组成结构;2、掌握算术逻辑运算器的⼯作原理;3、掌握简单运算器的数据传送通道4、掌握⽤Verilog HDL实现16位简单运算器的设计⼆、实验原理74LS181的逻辑功能表图中,S0到S3是四个控制端,⽤于选择进⾏何种运算。
M ⽤于控制ALU进⾏算术运算还是逻辑运算。
当M=0时,M对进位信号没有任何影响,Fi值与操作数Ai,Bi以及地位向本位进位Cn+1有关,所以M=0时进⾏算术运算。
操作数⽤补码表⽰,“加”只算术加,运算时考虑进位;“+”指逻辑加,不考虑进位;减法运算时,减法取反码运算后⽤加法器实现,结果输出为A减B减1在最末位产⽣⼀个强迫进位(加1),以得到A减B的结果。
当M=1时,封锁了各位的进位输出Cn+i=0,因此各位的运算结果Fi仅与操作数Ai,Bi有关,此时进⾏逻辑运算。
三、实验内容与步骤1.根据书85⾯的逻辑功能表编写Verilog HDL语句,编译,仿真等步骤。
实验代码SN74181:module sn74181(A,B,S,Cn,M,F,C);parameter bit_width=4;output [bit_width-1:0]F;output C;input [bit_width-1:0]A,B,S;input Cn,M;reg C;reg Y=0;reg [bit_width-1:0]F;reg t;initial C=0;always@(S)begincase(S)4'b0000:beginif(M) {t,F}=~{1'b0,A};elsebeginif(Cn) {t,F}={1'b0,A};else {t,F}={1'b0,A}|1;endend4'b0001:beginif(M) {t,F}=~({1'b0,A}|{1'b0,B});endend4'b0010:beginif(M) {t,F}=~{1'b0,A}&{1'b0,B};elsebeginif(Cn) {t,F}={1'b0,A}|({1'b0,~B});else {t,F}=({1'b0,A}|({1'b0,~B}))+1;endend4'b0011:beginif(M) {t,F}=0;elsebeginif(Cn) {t,F}={t,F}-1;else {t,F}=0;endend4'b0100 :beginif(M) {t,F}=~({1'b0,A}&{1'b0,B});elsebeginif(Cn) {t,F}={1'b0,A}+({1'b0,A}&({1'b0,~B}));else {t,F}={1'b0,A}+({1'b0,A}&({1'b0,~B}))+1;endend4'b0101 :beginif(M) {t,F}={1'b0,~B};elsebeginif (Cn) {t,F}=({1'b0,A}&({1'b0,~B}))+({1'b0,A}|{1'b0,B}); else{t,F}=({1'b0,A}&({1'b0,~B}))+({1'b0,A}|{1'b0,B})+1; endend4'b0110 :beginif(M) {t,F}={1'b0,A}^{1'b0,B};elsebeginif(Cn) {t,F}={1'b0,A}-{1'b0,B}-1;else {t,F}={1'b0,A}-{1'b0,B};endend4'b0111 :beginelse {t,F}={1'b0,A}&({1'b0,~B});endend4'b1000 :beginif(M) {t,F}={1'b0,~A}|{1'b0,B};elsebeginif(Cn) {t,F}={1'b0,A}+({1'b0,A}&{1'b0,B});else {t,F}={1'b0,A}+({1'b0,A}&{1'b0,B})+1;end4'b1001 :beginif(M) {t,F}={1'b0,~(A^B)};elsebeginif(Cn) {t,F}={1'b0,A}+{1'b0,B}+1;else {t,F}={1'b0,A}+{1'b0,B};endend4'b1010 :beginif(M) {t,F}={1'b0,B};elsebeginif(Cn){t,F}=({1'b0,A}&{1'b0,B})+({1'b0,A}|({1'b0,~B})); else{t,F}=({1'b0,A}&{1'b0,B})+({1'b0,A}|({1'b0,~B}))+1; end4'b1011 :beginif(M) {t,F}={1'b0,A}&{1'b0,B};elsebeginif(Cn) {t,F}={1'b0,A}&{1'b0,B}-1;else {t,F}={1'b0,A}&{1'b0,B};endend4'b1100 :beginif(M) {t,F}=1;elsebeginif(Cn) {t,F}={1'b0,A}+{1'b0,A};else {t,F}={1'b0,A}+{1'b0,A}+1;endend4'b1101:beginelse {t,F}={1'b0,A}+({1'b0,A}|{1'b0,B})+1; endend4'b1110 :beginif(M) {t,F}={1'b0,A}|{1'b0,B};elsebeginif(Cn) {t,F}={1'b0,A}+({1'b0,A}|({1'b0,~B})); else {t,F}={1'b0,A}+({1'b0,A}|({1'b0,~B}))+1; endend4'b1111 :beginif(M) {t,F}={1'b0,A};elsebeginif(Cn) {t,F}={1'b0,A}-1;else {t,F}={1'b0,A};endendendcaseC=t;endEndmoduleSHIFT:module shift(A,choose,result); parameter bit_width=16;input [bit_width-1:0]A;input[1:0] choose;output [bit_width-1:0] result;reg [bit_width-1:0]result;always@(A or choose)begincase(choose)2'b01:beginresult=A<<1;end2'b10:beginresult={A[0],A[15:1]};end2'b11:beginresult=$signed(A)>>>1;endendcaseendEndmoduleinput [width-1:0] r;input [1:0]x;output [width-1:0] result; output overflow,z,c,p,n;reg [width-1:0] a,b;reg [3:0]s;reg [1:0]sh;reg cn,m,ov;wire co1,co2,co3;wire [width-1:0]co,re1,re2; always@ (x or r)begincase(x)2'b11: begina=r;end2'b10: beginb=r;end2'b00: begins=r[3:0];sh=r[5:4];m=r[8];cn=r[12]; endendcaseendsn74181 u_sn74181_1(.A(a[3:0]),.B(b[3:0]),.S(s),.M(m),.Cn(cn),.C(co1),.F(re1[3:0]));sn74181 u_sn74181_2 (.A(a[7:4]),.B(b[7:4]),.S(s),.M(m),.Cn(co1),.C(co2),.F(re1[7:4]));sn74181 u_sn74181_3 (.A(a[11:8]),.B(b[11:8]),.S(s),.M(m),.Cn(co2),.C(co3),.F(re1[11:8]).B(b[15:12]),.S(s),.M(m),.Cn(co3),.C(overflow),.F(re1[15:12]));shift u_shift(.A(a),.choose(sh),.result(re2[15:0]));assign result=(sh?re2:re1);assign z=~|result;assign n=result[15];Endmodule仿真波形图按照模式⼀电路图结构图设置对应的引脚参数。
实验二 算术逻辑运算及移位操作

实验二算术逻辑运算及移位操作一.实验任务1.实验程序段及结果表格如表:分析:程序段1:MOV AX, 1018H ;AX←1018HMOV SI, 230AH ;SI←230AHADD AX, SI ;AX=3322H,低8位为00100010B,1的个数;为偶数,PF=1,同时D3向D4有进位发生,AF=1 ADD AL, 30H ;AX=3352H,低8位1个个数为奇数,PF=0 MOV DX, 3FFH ;DX←3FFHADD AX,BX ;AX=3352H,MOV [20H], 1000H ;[20H]←1000HADD [20H], AX ;[20H]=4352HPUSH AX ;POP BX ;BX=3352H程序段2:MOV AX, 0A0AH ;AX←0A0AHADD AX, 0FFFFH ;AX=0A09H,最高位进位CF=1,低8位1的;个数为偶数PF=1;D3向D4进位AF=1 MOV CX, 0FF00H ;CX←0FF00HADC AX, CX ;AX=090AH,最高位进位CF=1,低8位1的个;数为偶数PF=1SUB AX, AX ;AX=0,运算结果为零ZF=1INC AX ;AX=1HOR CX, 0FFH ;CX=0FFFFH,最高位为1,ZF=1,低8位1的;个数为偶数PF=1AND CX, 0F0FH ;CX=0F0FH,低8位1的个数为偶数PF=1MOV [10H], CX ;[10H]←0F0FH程序段3:MOV BL, 25H ;BL←25HMOV BYTE PTR[10H], 4 ;[10H]←04HMOV AL, [10H] ;AL←04HMUL BL ;AL=94H程序段4:MOV WORD PTR[10H],80H ;[10H]←0080HMOV BL, 4 ;BL←04HMOV AX, [10H] ;AX←0080HDIV BL ;AX=0020H程序段5:MOV AX, 0 ;AX←0000HDEC AX ;AX=0FFFFH,最高位为1,SF=1,低8;位1的个数为偶数PF=1,最高位向前、;D3向D4有借位,CF=1,AF=1 ADD AX, 3FFFH ;AX=3FFEH,D3向D4有进位,AF=1 ADD AX, AX ;AX=7FFCH,低8位1的个数为偶数,PF=1;D3向D4有进位,AF=1NOT AX ;AX=8003HSUB AX, 3 ;AX=8000H,低8位1的个数为偶数,PF=1;最高位为1,SF=1OR AX, 0FBFDH ;AX=0FBFDH,最高位为1,SF=1AND AX, 0AFCFH ;AX=0ABCDH,最高位为1,SF=1SHL AX,1 ;AX=579AH,低8位1的个数为偶数,PF=1,;算数结果溢出OF=1,最高位进位CF=1 RCL AX,1 ;AX=0AF35H,低8位1的个数为偶数,;PF=1,算数结果溢出OF=12.用BX寄存器作为地址指针,从BX所指的内存单元(0010H)开始连续存入三个无符号数(10H、04H、30H),接着计算内存单元中的这三个数之和,和放在0013H单元中,再求出这三个数之积,积放0014单元中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三16位算术逻辑运算实验
一、实验目的
1、掌握16位运算器的数据传送通路组成原理。
2、进一步验证算术逻辑运算功能发生器74LS181的组合功能。
3、按要求和给出的数据完成几种指定的算术逻辑运算。
二、实验内容
1、实验原理
16位运算器数据通路如图2-1所示,其中运算器由四片74LS181以并/串形成16位字长的ALU构成。
低8位运算器的输出经过一个三态门74LS245(U33)到ALUO1插座,实验时用8芯排线和内部数据总线BUSD0~D7插座BUS1~6中的任一个相连,低8位数据总线通过LZD0~LZD7显示灯显示;高8位运算器的输出经过一个三态门74LS245(U33`)到ALUO1`插座,实验时用8芯排线和高8位数据总线BUSD8~D15插座KBUS1或KBUS2相连,高8位数据总线通过LZD8~LZD15显示灯显示;参与运算的四个数据输入端分别由四个锁存器74LS273(U29、U30、U29`、U30、)锁存,实验时四个锁存器的输入并联后用8芯排线连至外部数据总线EXD0~D7插座EXJ1~EXJ3中的任一个;参与运算的数据源来自于8位数据开并KD0~KD7,并经过一三态门74LS245(U51)直接连至外部数据总线EXD0~EXD7,输入的数据通过LD0~LD7显示。
2、实验接线
本实验需用到6个主要模块:
①低8位运算器模块;②数据输入并显示模块;③数据总线显示模块;
④功能开关模块(借用微地址输入模块);⑤高8位运算器模;,
⑥高8位(扩展)数据总线显示模块。
根据实验原理详细接线如下(接线①~⑤同实验一):
①ALUBUS连EXJ3;
②ALUO1连BUS1;
③SJ2连UJ2;
④跳线器J23上T4连SD;
⑤LDDR1、LDDR2、ALUB、SWB四个跳线器拨至左侧(手动方式);
⑥AR跳线器拨至左侧,同时开关AR拨至“1”电平;
⑦ALUBUS`连EXJ2;
⑧ALUO1`连KBUS1;
⑨跳线器J19、J25拨至左侧(16位ALU状态);
⑩高8位运算器区跳线器ZI2、CN0、CN4连上短路套。
图2-1 16位运算器数据通路图
3、实验步骤
(1)连接线路,仔细查线无误后,接通电源。
(2)用二进制数码开关KD7~KD0向DR1、DR2、DR3、DR4寄存器置数。
方法:关闭ALU输出三态门应使ALUB`=1(即开关ALUB=1),开启输入三态门应使SWB`=0(即开关SWB=0),选通哪一个寄存器用对应开关LDDR1~LDDR4(高电平有效),其中LDDR3、LDDR4开关在高8位运算器上部,输入脉冲T4按手动脉冲发生按钮。
设置数据开关具体操作步骤图示如下:
说明:LDDR1、LDDR2、ALUB`、SWB`、LDDR3、LDDR4六个信号电平由对应的开关LDDR1、LDDR2、ALUB 、SWB 、LDDR3、LDDR4给出,拨至上面为“1”,拨至下面为“0”,电平值由对应显示灯显示;T4由手动脉冲开关给出。
(3) 验证74LS181的16位算术运算和逻辑运算功能(采用正逻辑)。
·开关SWB=1,关闭输入三态门; ·开关ALUB=0,打开输出三态门;
·LDDR1~LDDR4四个开关全拨至“0”电平。
说明:如果要实现16位带进位控制算术逻辑运算,只需在实验二的基础上将开关AR=1置成AR=0即可。
·根据下表2—1,置功能开关S3、S2、S1、S0、M 、CN 改变74LS181的算术运算和逻辑运算功能设置,观察运算器输出,将观察结果填入表中,并将理论计算结果 写入表2—2,进行比较验证。
LDDR1=1 LDDR1=0
LDDR1=0
LDDR2=0 LDDR3=1 LDDR2=0 LDDR3=0 LDDR1=0
表2—1 实验结果
注意:本实验做完后,拔掉连线ALUBUS`和ALUO1`,去掉短路套ZI2、CN0、CN4。
表2—2 理论计算结果
三、设计内容
1、若有两个16位二进制数:00FFH和2D5AH,要求通过74LS181的运算,计算这两数相与的结果。
2、若有两个16位二进制数:FF00H和01BAH,要求通过74LS181的运算,计算这两数相与的结果。
3、若有两个16位二进制数:1234H和A987H,要求通过74LS181的运算,计算这两数之和。
4、若被减数为7C69H和减数为1234H,要求通过74LS181的运算,计算这两数之差。
5、若被减数为1234 H和减数为7C69H,要求通过74LS181的运算,计算这两数之差。
和题4结果比较。