计算机组成原理运算器实验—算术逻辑运算实验
- 格式:docx
- 大小:31.38 KB
- 文档页数:6
计算机组成原理实验报告实验报告运算器实验⼀、实验⽬的掌握⼋位运算器的数据传输格式,验证运算功能发⽣器及进位控制的组合功能。
⼆、实验要求完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运⽤。
三、实验原理实验中所⽤的运算器数据通路如图2-3-1所⽰。
ALU运算器由CPLD描述。
运算器的输出FUN经过74LS245三态门与数据总线相连,运算源寄存器A和暂存器B的数据输⼊端分别由2个74LS574锁存器锁存,锁存器的输⼊端与数据总线相连,准双向I/O 输⼊输出端⼝⽤来给出参与运算的数据,经2⽚74LS245三态门与数据总线相连。
图2-3-1运算器数据通路图中A WR、BWR在“搭接态”由实验连接对应的⼆进制开关控制,“0”有效,通过【单拍】按钮产⽣的脉冲把总线上的数据打⼊,实现运算源寄存器A、暂存器B的写⼊操作。
四、运算器功能编码算术运算逻辑运算K23~K0置“1”,灭M23~M0控位显⽰灯。
然后按下表要求“搭接”部件控制路。
表2.3.2 运算实验电路搭接表算术运算1.运算源寄存器写流程通过I/O单元“S7~S0”开关向累加器A和暂存器B置数,具体操作步骤如下:2.运算源寄存器读流程关闭A、B写使能,令K18=K17=“1”,按下流程分别读A、B。
3.加法与减法运算令M S2 S1 S0(K15 K13~K11=0100),为算术加,FUN及总线单元显⽰A+B的结果令M S2 S1 S0(K15 K13~K11=0101),为算术减,FUN及总线单元显⽰A-B的结果。
逻辑运算1.运算源寄存器写流程通过“I/O输⼊输出单元”开关向寄存器A和B置数,具体操作步骤如下:2.运算源寄存器读流程关闭A、B写使能,令K17= K18=1,按下流程分别读A、B。
①若运算控制位设为(M S2 S1 S0=1111)则F=A,即A内容送到数据总线。
②若运算控制位设为(M S2 S1 S0=1000)则F=B,即B内容送到数据总线。
实验一运算器组成实验(一)算术逻辑运算实验一、实验目的1. 掌握简单运算器的数据传送通路。
2. 验证运算功能发生器(74LS181)的组合功能。
二、实验设备TDN-CM+计算机组成原理教学实验系统一台,排线若干。
三、实验内容1.实验原理实验中所用的运算器通路如图1-1所示。
其中运算器由两片74LS181以并/串形式构成8位字长的ALU。
运算器的输出经过一个三态门(74LS245)和数据总线相连,运算器的两个数据输入端分别由两个锁存器(74LS373)锁存,锁存器的输入连至数据总线,数据开关(“INPUT DEVICE”)用来给出参与运算的数据,并经过一三态门(74LS245)和数据总线相连,数据显示灯(“BUS UNIT”)已和数据总线相连,用来显示数据总线内容。
图1-1 运算器数据通路图2.图中已将用户需要连接的控制信号用圆圈标明(其他实验相同,不再说明),其中除T4为脉冲信号,其他均为电平信号。
由于实验电路中的时序信号均已连至“W/R UNIT”的相应时序信号引出端,因此,在进行实验时,只需将“W/R UNIT”的T4接至“STATE UNIT”的微动开关KK2的输出端,按动微动开关,即可获得实验所需的单脉冲,而S3、S2、S1、S0、Cn、M、LDDR1、LDDR2、ALU-B、SW-B各电平控制信号用“SWITCH UNIT”中的二进制数据开关来模拟,其中Cn、ALU-B、SW-B为低电平有效,LDDR1、LDDR2为高电平有效。
3.实验步骤1.按图1-2连接实验电路并检查无误。
图中将用户需要连接的信号线(其它实验相同,不再说明)。
2.开电源开关。
3.用输入开关向暂存器 DR1 置数。
①拨动输入开关形成二进制数 01100101(或其它数值)。
(数据显示灯亮为 0,灭为1)。
②使 SWITCH UNIT 单元中的开关 SW-B=0(打开数据输入三态门)、ALU-B=1(关闭ALU输出三态门)、LDDR1=1、LDDR2=0。
计算机组成原理实验报告实验(验证74LS181运算和逻辑功能)一、实验目的:(1)掌握算数逻辑单元的工作原理;(2)熟悉简单运算器的数据传送通路;(3)画出逻辑电路图及布出美观整齐的接线图;(4)验证4位运算功能发生器组合功能。
二、实验仪器:NI_Circuit_Design_Suite_14_0_1_Education软件。
三、简要原理:ALU能进行多种算术运算和逻辑运算。
4位ALU_74LS181能进行16种算术运算和逻辑运算。
功能表如下:方式M=1 逻辑运算 M=0 算术运算S3 S2 S1 S0 逻辑运算CN=1(无进位) CN=0(有进位)0 0 0 0 F=/A F=A F=A加10 0 0 1 F=/(A+B) F=A+B F=(A+B)加10 0 1 0 F=(/A)B F=A+/B F=(A+/B)加10 0 1 1 F=0 F=负1(补码形式)F=00 1 0 0 F=/(AB) F=A加A(/B) F=A加A/B加10 1 0 1 F=/B F=(A+B)加A/B F=(A+B)加A/B加10 1 1 0 F=A⊕B F=A减B减1 F=A减B0 1 1 1 F=A/B F=A(/B)减1 F=A(/B)1 0 0 0 F=/A+B F=A加AB F=A加AB加11 0 0 1 F=/(A⊕B)F=A加B F=A加A加11 0 1 0 F=B F=(A+/B)加AB F=(A+/B)加AB加11 0 1 1 F=AB F=AB减1 F=AB1 1 0 0 F=1 F=A加A F=A加A加11 1 0 1 F=A+/B F=(A+B)加A F=(A+B)加A加11 1 1 0 F=A+B F=(A+/B)加A F=(A+/B)加A加11 1 1 1 F=A F=A减1 F=A(上表中的“/”表示求反)ALU-74LS181引脚说明:M=1 逻辑运算,M=0 算术运算四、实验数据及计量结果综上验证74LS181型4位ALU 的逻辑算术功能,列出结果如下表: S3 S2 S1 S0 数据1 数据2 算术运算(M=0)逻辑运算(M=1) Cn=1(无进位) Cn=0(有进位) 0 0 0 0 AH 5H A B 5 0 0 0 1 AH 5H F 0 0 0 0 1 0 AH 5H A B 5 0 0 1 1 AH 5H F 0 0 0 1 0 0 FH 1H D E E 0 1 0 1 FH 1H D E E 0 1 1 0 FH 1H D E E 0 1 1 1 FH 1H D E E 1 0 0 0 FHFHEFFM 状态控制M=1 逻辑运算,M=0算术运算 S3 S2 S1 S0运算选择控制 S3 S2 S1 S0决定电路执行哪一运算 A3 A2 A1 A0 运算数1,引脚3为最高位 B3 B2 B1 B0 运算数2,引脚3为最高位 Cn 最低位进位输入 Cn=0有进位;Cn=1 无进位 Cn+4本片产生的进位信号 Cn+4=0有进位;Cn+4=1无进位 F3 F2 F1 F0F3 F2 F1 F0运算结果,F3为最高位。
计算机组成原理运算器算术逻辑运算器⼀、实验⽬的与要求⽬的:1.掌握算术逻辑运算器单元ALU(74LS181)的⼯作原理2.掌握简单运算器的数据传送通道3.验算由74LS181等组合逻辑电路的运算功能发⽣器运算功能4.按给定数据,完成实验指定的算术/逻辑运算要求:实验前,要求做好实验预习,掌握运算器的数据传送通道和ALU的特性,并熟悉本实验中所⽤的模拟开关的作⽤和使⽤⽅法。
实验过程中,要认真进⾏实验操作,仔细思考实验有关的内容,把⾃⼰想得不太明⽩的问题通过实验去理解清楚,争取得到最好的实验结果,达到预期的实验教学⽬的。
实验完成后,要求每个学⽣写出实验报告。⼆、实验⽅案1.两⽚74LS181(每⽚4位)以并/串联形式构成字长为8为的运算器。2. 8为运算器的输出经过⼀个输⼊双向三态门(74LS245)与数据总线相连,运算器的两个数据输⼊端分别与两个8位寄存器(74LS273)DR1和DR2的输出端相连,DR1和DR2寄存器是⽤于保存参加运算的数据和运算的结果。寄存器的输⼊端于数据总线相连。
3. 8位数据D7~D0(在“INPUT DEVICE”中)⽤来产⽣参与运算的数据,并经过⼀个输出三态门(74LS245)与数据总线相连。数据显⽰灯(BUS UNIT)已与数据总线相连,⽤来显⽰数据总线上所内容。
4. S3、S2、S1、S0是运算选择控制端,由它们决定运算器执⾏哪⼀种运算(16种算术运算或16种逻辑运算)。5. M是算术/逻辑运算选择,M=0时,执⾏算术运算,M=1时,执⾏逻辑运算。6. Cn是算术运算的进位控制端,Cn=0(低电平),表⽰有进位,运算时相当于在最低位上加进位1,Cn=1(⾼电平),表⽰⽆进位。逻辑运算与进位⽆关。
7. ALU-B是输出三态门的控制端,控制运算器的运算结果是否送到数据总线BUS 上。低电平有效。8. SW-B是输⼊三态门的控制端,控制“INPUT DEVICE”中的8位数据开关D7~D0数据是否送到数据总线BUS上。低电平有效。
计算机组成原理实验报告算术逻辑单元ALU实验(源代码全)算术逻辑单元ALU实验⼀. 实验⽬的1、理解算术逻辑单元ALU的⼯作原理。
2、掌握算术逻辑单元ALU的设计⽅法。
3、验证32位算术逻辑单元ALU的加、减、与、移位等基本功能。
4、选定⼏组数据,完成⼏种算术/逻辑运算。
⼆. 实验设备1、 装有Xilinx Vivado的计算机⼀台。
2、LS-CPU-EXB-002教学系统实验箱⼀套。
三. 实验任务1、学习MIPS指令集,熟知指令类型,了解指令功能和编码,归纳基础的ALU运算指令。
2、归纳确定⾃⼰本次实验中准备实现的ALU运算,要求要求⾄少实现5种ALU运算,包含加减运算,其中减法在内部要转换为加法,见表1-1。
表1-1 ALU的控制信号选择端aluc ALU功能3 2 1 00 0 00 0 10 1 00 1 11 0 01 0 11 1 00 1 1 11 1 1 13、根据如图1-1所⽰的结构框图,设计实验⽅案,并⽤Verilog编写相应代码。
4、 对编写的代码进⾏仿真,得到正确的波形图。
5、将以上设计作为⼀个单独的模块,设计⼀个外围模块去调⽤该模块,如图1-2。
外围模块中需调⽤封装好的LCD触摸屏模块,显⽰ALU 的两个源操作数、操作码和运算结果,并且需要利⽤触摸功能输⼊源操作数。
操作码可以考虑⽤LCD触摸屏输⼊,也可⽤拨码开关输⼊。
6、将编写的代码进⾏综合布局布线,并下载到试验箱中的FPGA板⼦上进⾏演⽰。
四. 实验步骤这⾥给出实验代码,具体的实验步骤请看书alu.vmodule alu(a,b,aluc,r,z);input [31:0] a,b;input [3:0] aluc;output [31:0] r;output z;assign r = cal (a,b,aluc);assign z =~|r;function [31:0] cal;input [31:0] a,b;input [3:0] aluc;casex(aluc)4'b0000: cal = a + b;//加4'b0001: cal = a&b;4'b0010: cal = a^b;4'b0011: cal = b<<a[4:0];4'b0100: cal = a-b;4'b0101: cal = a|b;4'b0110: cal ={b[15:0],16'h0};4'b0111: cal = b>>a[4:0];4'b1111: cal = $signed(b)>>> a[4:0];//算术右移endcaseendfunctionendmodulealu-display.v//************************************************************************* // > ⽂件名: alu_display.v// > 描述:ALU显⽰模块,调⽤FPGA板上的IO接⼝和触摸屏// > 作者 : LOONGSON// > ⽇期 : 2016-04-14//************************************************************************* module alu_display(//时钟与复位信号input clk,input resetn,//后缀"n"代表低电平有效//拨码开关,⽤于选择输⼊数input [1:0] input_sel,//00:输⼊为控制信号(alu_control)//10:输⼊为源操作数1(alu_src1)//11:输⼊为源操作数2(alu_src2)//触摸屏相关接⼝,不需要更改output lcd_rst,output lcd_cs,output lcd_rs,output lcd_wr,output lcd_rd,inout[15:0] lcd_data_io,output lcd_bl_ctr,inout ct_int,inout ct_sda,output ct_scl,output ct_rstn);//-----{调⽤ALU模块}beginreg [3:0] alu_control;// ALU控制信号reg [31:0] alu_src1;// ALU操作数1reg [31:0] alu_src2;// ALU操作数2wire [31:0] alu_result;// ALU结果wire alu_z;alu alu_module(alu alu_module(.aluc(alu_control),.a(alu_src1 ),.b(alu_src2 ),.r(alu_result ),.z(alu_z));//-----{调⽤ALU模块}end//---------------------{调⽤触摸屏模块}begin--------------------// //-----{实例化触摸屏}begin//此⼩节不需要更改reg display_valid;reg [39:0] display_name;reg [31:0] display_value;wire [5:0] display_number;wire input_valid;wire [31:0] input_value;lcd_module lcd_module(.clk(clk ),//10Mhz.resetn(resetn ),//调⽤触摸屏的接⼝.display_valid(display_valid ),.display_name(display_name ),.display_value(display_value ),.display_number(display_number),.input_valid(input_valid ),.input_value(input_value ),//lcd触摸屏相关接⼝,不需要更改.lcd_rst(lcd_rst ),.lcd_cs(lcd_cs ),.lcd_rs(lcd_rs ),.lcd_wr(lcd_wr ),.lcd_rd(lcd_rd ),.lcd_data_io(lcd_data_io ),.lcd_bl_ctr(lcd_bl_ctr ),.ct_int(ct_int ),.ct_sda(ct_sda ),.ct_scl(ct_scl ),.ct_rstn(ct_rstn ));//-----{实例化触摸屏}end//-----{从触摸屏获取输⼊}begin//根据实际需要输⼊的数修改此⼩节,//建议对每⼀个数的输⼊,编写单独⼀个always块//当input_sel为00时,表⽰输⼊数控制信号,即alu_control always @(posedge clk)beginif(!resetn)beginalu_control <=12'd0;endelse if(input_valid && input_sel==2'b00)beginalu_control <= input_value[11:0];endend//当input_sel为10时,表⽰输⼊数为源操作数1,即alu_src1 always @(posedge clk)beginif(!resetn)if(!resetn)beginalu_src1 <=32'd0;endelse if(input_valid && input_sel==2'b10)beginalu_src1 <= input_value;endend//当input_sel为11时,表⽰输⼊数为源操作数2,即alu_src2 always @(posedge clk)beginif(!resetn)beginalu_src2 <=32'd0;endelse if(input_valid && input_sel==2'b11)beginalu_src2 <= input_value;endend//-----{从触摸屏获取输⼊}end//-----{输出到触摸屏显⽰}begin//根据需要显⽰的数修改此⼩节,//触摸屏上共有44块显⽰区域,可显⽰44组32位数据//44块显⽰区域从1开始编号,编号为1~44,always @(posedge clk)begincase(display_number)6'd1 :begindisplay_valid <=1'b1;display_name <="SRC_1";display_value <= alu_src1;end6'd2 :begindisplay_valid <=1'b1;display_name <="SRC_2";display_value <= alu_src2;end6'd3 :begindisplay_valid <=1'b1;display_name <="CONTR";display_value <={20'd0, alu_control};end6'd4 :begindisplay_valid <=1'b1;display_name <="RESUL";display_value <= alu_result;end6'd5 :begindisplay_valid <=1'b1;display_name <="ZF";display_value <= alu_z;enddefault:begindisplay_valid <=1'b0;display_name <=40'd0;display_value <=32'd0;endendcaseend//-----{输出到触摸屏显⽰}end//----------------------{调⽤触摸屏模块}end---------------------//endmodulealu_tb.v代码如下:module testbench;// Inputsreg [31:0] a;reg [31:0] b;reg [3:0] aluc;//outputwire [31:0] r;wire z;//Instantiate the Unit Under Test(UUT)alu uut(.a(a),.b(b),.r(r),.aluc(aluc),.z(z));initial begin// Initialize Inputsa=0;b=0;aluc=0;//Wait 100ns for global reset to finish#100;//Add stimulus hereendalways #10 a=$random;//$random为系统任务,产⽣⼀个随机的32位数always #10 b=$random;//#10表⽰等待10个单位时间(10ns),即每过10ns,赋值⼀个随机的32位数 always #10 aluc={$random}%2;//加了拼接符,{$random}产⽣⼀个⾮负数,除2取余得到0或1 endmodulealu.xdc⽂件如下:set_property PACKAGE_PIN AC19 [get_ports clk]set_property PACKAGE_PIN Y3 [get_ports resetn]set_property PACKAGE_PIN AC22 [get_ports input_sel[0]]set_property PACKAGE_PIN AD24 [get_ports input_sel[1]]set_property IOSTANDARD LVCMOS33 [get_ports clk]set_property IOSTANDARD LVCMOS33 [get_ports resetn]set_property IOSTANDARD LVCMOS33 [get_ports input_sel[1]]set_property IOSTANDARD LVCMOS33 [get_ports input_sel[0]]set_property PACKAGE_PIN J25 [get_ports lcd_rst]set_property PACKAGE_PIN H18 [get_ports lcd_cs]set_property PACKAGE_PIN K16 [get_ports lcd_rs]set_property PACKAGE_PIN L8 [get_ports lcd_wr]set_property PACKAGE_PIN K8 [get_ports lcd_rd]set_property PACKAGE_PIN J15 [get_ports lcd_bl_ctr]set_property PACKAGE_PIN H9 [get_ports {lcd_data_io[0]}]set_property PACKAGE_PIN K17 [get_ports {lcd_data_io[1]}]set_property PACKAGE_PIN J20 [get_ports {lcd_data_io[2]}]set_property PACKAGE_PIN M17 [get_ports {lcd_data_io[3]}]set_property PACKAGE_PIN L17 [get_ports {lcd_data_io[4]}]set_property PACKAGE_PIN L17 [get_ports {lcd_data_io[4]}]set_property PACKAGE_PIN L18 [get_ports {lcd_data_io[5]}]set_property PACKAGE_PIN L15 [get_ports {lcd_data_io[6]}]set_property PACKAGE_PIN M15 [get_ports {lcd_data_io[7]}]set_property PACKAGE_PIN M16 [get_ports {lcd_data_io[8]}]set_property PACKAGE_PIN L14 [get_ports {lcd_data_io[9]}]set_property PACKAGE_PIN M14 [get_ports {lcd_data_io[10]}]set_property PACKAGE_PIN F22 [get_ports {lcd_data_io[11]}]set_property PACKAGE_PIN G22 [get_ports {lcd_data_io[12]}]set_property PACKAGE_PIN G21 [get_ports {lcd_data_io[13]}]set_property PACKAGE_PIN H24 [get_ports {lcd_data_io[14]}]set_property PACKAGE_PIN J16 [get_ports {lcd_data_io[15]}]set_property PACKAGE_PIN L19 [get_ports ct_int]set_property PACKAGE_PIN J24 [get_ports ct_sda]set_property PACKAGE_PIN H21 [get_ports ct_scl]set_property PACKAGE_PIN G24 [get_ports ct_rstn]set_property IOSTANDARD LVCMOS33 [get_ports lcd_rst]set_property IOSTANDARD LVCMOS33 [get_ports lcd_cs]set_property IOSTANDARD LVCMOS33 [get_ports lcd_rs]set_property IOSTANDARD LVCMOS33 [get_ports lcd_wr]set_property IOSTANDARD LVCMOS33 [get_ports lcd_rd]set_property IOSTANDARD LVCMOS33 [get_ports lcd_bl_ctr]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[0]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[1]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[2]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[3]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[4]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[5]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[6]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[7]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[8]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[9]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[10]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[11]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[12]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[13]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[14]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[15]}]set_property IOSTANDARD LVCMOS33 [get_ports ct_int]set_property IOSTANDARD LVCMOS33 [get_ports ct_sda]set_property IOSTANDARD LVCMOS33 [get_ports ct_scl]set_property IOSTANDARD LVCMOS33 [get_ports ct_rstn]拨码开关的连接,通过AC22、AD24拨码开关来控制输⼊SRC_1,SRC_2,CONTR的值五.结果记录及分析(1) 仿真波形。
计组实验报告(共10篇)计组实验报告计算机组成原理实验报告一一、算术逻辑运算器1. 实验目的与要求:目的:①掌握算术逻辑运算器单元ALU(74LS181)的工作原理。
②掌握简单运算器的数据传输通道。
③验算由74LS181等组合逻辑电路组成的运输功能发生器运输功能。
④能够按给定数据,完成实验指定的算术/逻辑运算。
要求:完成实验接线和所有练习题操作。
实验前,要求做好实验预习,掌握运算器的数据传送通道和ALU 的特性,并熟悉本实验中所用的模拟开关的作用和使用方法。
实验过程中,要认真进行实验操作,仔细思考实验有关的内容,把自己想得不太明白的问题通过实验去理解清楚,争取得到最好的实验结果,达到预期的实验教学目的。
实验完成后,要求每个学生写出实验报告。
2. 实验方案:1.两片74LS181(每片4位)以并/串联形式构成字长为8为的运算器。
2.8为运算器的输出经过一个输入双向三态门(74LS245)与数据总线相连,运算器的两个数据输入端分别与两个8位寄存器(74LS273)DR1和DR2的输出端相连,DR1和DR2寄存器是用于保存参加运算的数据和运算的结果。
寄存器的输入端于数据总线相连。
3.8位数据D7~D0(在“INPUT DEVICE”中)用来产生参与运算的数据,并经过一个输出三态门(74LS245)与数据总线相连。
数据显示灯(BUS UNIT)已与数据总线相连,用来显示数据总线上所内容。
4.S3、S2、S1、S0是运算选择控制端,由它们决定运算器执行哪一种运算(16种算术运算或16种逻辑运算)。
5.M是算术/逻辑运算选择,M=0时,执行算术运算,M=1时,执行逻辑运算。
6.Cn是算术运算的进位控制端,Cn=0(低电平),表示有进位,运算时相当于在最低位上加进位1,Cn=1(高电平),表示无进位。
逻辑运算与进位无关。
7.ALU-B是输出三态门的控制端,控制运算器的运算结果是否送到数据总线BUS上。
低电平有效。
算术逻辑运算实(仅供参考)————————————————————————————————作者:————————————————————————————————日期:1、目的与要求1)掌握简单运算器的组成以及数据传送通路。
2)验证运算功能发生器(74LS181)的组合功能。
2、实验设备ZYE1601B计算机组成原理教学实验箱一台,排线若干。
3、实验步骤与源程序l) 按图1连接实验线路,仔细检查无误后,接通电源。
(图中DB表示数据总线,接线时应注意高低位一一对应)。
图1 算术逻辑运算实验接线图2) 用二进制数码开关向DR1和DR2寄存器置数。
具体操作步骤图示如下:检验DR1和DR2中存的数是否正确,具体操作为:关闭数据输入三态门(SW_G=1),打开ALU输出三态门(ALU_G=0)。
当设置S3、S2、S1、S0、M的状态为11111时,总线指示灯显示DR1中的数,而设置成10101时总线指示灯显示DR2中的数。
3) 验证74LS181的算术运算和逻辑运算功能(采用正逻辑)在给定DR1=C1、DR2=43的情况下,改变运算器的控制电平组合,观察运算器的输出,填入下表1中,并和理论值进行比较、验证74LS181的功能。
4、测试数据与实验结果表l运算器功能实验表DR1 DR2 S3 S2 S1 S0M=0(算术运算)M=1(逻辑运算)CN=1无进位CN=0有进位C1 43 0 0 0 0 F=11000001 F=11000010 F=00111110 C1 43 0 0 0 1 F=11000011 F=11000100 F=00111100 C1 43 0 0 1 0 F=11111101 F=11111110 F=00000010 C1 43 0 0 1 1 F=11111111 F=00000000 F=00000000 C1 43 0 1 0 0 F=01000001 F=01000010 F=10111110 C1 43 0 1 0 1 F=01000011 F=01000100 F=10111100 C1 43 0 1 1 0 F=01111101 F=01111110 F=10000010 C1 43 0 1 1 1 F=01111111 F=10000000 F=10000000 C1 43 1 0 0 0 F=00000010 F=00000011 F=01111111 C1 43 1 0 0 1 F=00000100 F=00000101 F=01111101 C1 43 1 0 1 0 F=00111110 F=00111111 F=01000011 C1 43 1 0 1 1 F=01000000 F=01000001 F=01000001 C1 43 1 1 0 0 F=10000010 F=10000011 F=11111111 C1 43 1 1 0 1 F=10000100 F=10000101 F=11111101 C1 43 1 1 1 0 F=10111110 F=10111111 F=11000011 C1 43 1 1 1 1 F=11000000 F=11000001 F=110000015、结果分析与实验体会1、比较理论值和实际测量值发现74181ALU有两种工作方式,对正逻辑操作来说,算术运算称正逻辑操作,对于负逻辑操作数来说,正好相反。
实验一运算器[实验目的]1.掌握算术逻辑运算加、减、乘、与的工作原理;2.熟悉简单运算器的数据传送通路;3.验证实验台运算器的8位加、减、与、直通功能;4.验证实验台4位乘4位功能。
[接线]功能开关:DB=0 DZ=0 DP=1 IR/DBUS=DBUS接线:LRW:GND(接地)IAR-BUS# 、M1、M2、RS-BUS#:接+5V控制开关:K0:SW-BUS# K1:ALU-BUSK2:S0 K3:S1 K4:S2K5:LDDR1 K6:LDDR2[实验步骤]一、(81)H与(82)H运算1.K0=0:SW开关与数据总线接通K1=0:ALU输出与数据总线断开2.开电源,按CLR#复位3.置数(81)H:在SW7—SW0输入10000001→LDDR2=1,LDDR1=0→按QD:数据送DR2置数(82)H:在SW7—SW0输入10000010→LDDR2=0,LDDR1=1→按QD:数据送DR1 4.K0=1:SW开关与数据总线断开K1=1:ALU输出与数据总线接通5. S2S1S0=010:运算器做加法(观察结果在显示灯的显示与进位结果C的显示)6.改变S2S1S0的值,对同一组数做不同的运算,观察显示灯的结果。
二、乘法、减法、直通等运算1.K0K1=002.按CLR#复位3.分别给DR1和DR2置数4.K0K1=115. S2S1S0取不同的值,执行不同的运算[思考]M1、M2控制信号的作用是什么?运算器运算类型选择表选择操作S2 S1 S00 0 0 A&B0 0 1 A&A(直通)0 1 0 A+B0 1 1 A-B1 0 0 A(低位)ΧB(低位)完成以下表格ALU-BUS SW-BUS# 存储器内容S2S1S0 DBUS C输入时:计算时:DR1:01100011DR2:10110100(与)DR1:10110100DR2:01100011(直通)DR1:01100011DR2:01100011(加)DR1:01001100DR2:10110011(减)DR1:11111111DR2:11111111(乘)实验二双端口存储器[实验目的]1.了解双端口存储器的读写;2.了解双端口存储器的读写并行读写及产生冲突的情况。
运算器实验实验报告(计算机组成原理)西安财经学院信息学院《计算机组成原理》实验报告实验名称运算器实验实验室实验楼 418实验日期第一部分8 位算术逻辑运算实验一、实验目的 1、掌握算术逻辑运算器单元 ALU(74LS181)的工作原理。
2、掌握简单运算器的数据传送通路组成原理。
3、验证算术逻辑运算功能发生器 74LSl8l 的组合功能。
4、按给定数据,完成实验指导书中的算术/逻辑运算。
二、实验内容 1 、实验原理实验中所用的运算器数据通路如图 1-1 所示。
其中运算器由两片 74LS181以并/串形成 8 位字长的 ALU 构成。
运算器的输出经过一个三态门 74LS245(U33)到内部数据总线 BUSD0~D7 插座 BUS1~2 中的任一个(跳线器JA3 为高阻时为不接通),内部数据总线通过 LZD0~LZD7 显示灯显示;运算器的两个数据输入端分别由二个锁存器 74LS273(U29、U30)锁存,两个锁存器的输入并联后连至内部总线BUS,实验时通过 8 芯排线连至外部数据总线 E_D0~D7 插座E_J1~E_J3 中的任一个;参与运算的数据来自于 8 位数据开并KD0~KD7,并经过一三态门 74LS245(U51)直接连至外部数据总线 E_D0~E_D7,通过数据开关输入的数据由 LD0~LD7 显示。
图 1-1 中算术逻辑运算功能发生器 74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M 并行相连后连至 6 位功能开关,以手动方式用二进制开关 S3、S2、S1、S0、CN、M 来模拟74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M;其它电平控制信号 LDDR1、LDDR2、ALUB`、SWB`以手动方式用二进制开关 LDDR1、LDDR2、ALUB、SWB 来模拟,这几个信号姓名学号班级年级指导教师李芳有自动和手动两种方式产生,通过跳线器切换,其中ALUB`、SWB`为低电平有效,LDDR1、LDDR2 为高电平有效。
计算机组成原理实验课程实验报告实验名称运算器实验
实验二运算器
一.实验目的
了解简单运算器的数据传输通路。
验证运算功能发生器的组合功能。
掌握算术逻辑运算加、减、与的工作原理。
二.实验环境
Quartus 2 9.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功能如表所示。
四.仿真及软件设计
Vhd编程(非自己写,粘贴了群里文件):
将编程存为器件以及定制74373b,如图
bdf电路图:
五.实验结果分析及回答问题(或测试环境及测试结果)实验问题:
发现是
后来将IN[7…0]改为IN[7..0]
运行成功
仿真结果:
经检验结果正确:。
16 位算术逻辑运算实验一、实验内容1、实验原理实验中所用16位运算器数据通路如图3-3所示。
其中运算器由四片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连上短路套;二、实验目的1、掌握16位算术逻辑运算数据传送通路组成原理2、进一步验证算术逻辑运算能力发生器74LS181的组合功能三、实验步骤⑴连接线路,仔细查线无误后,接通电源。
一、算术逻辑运算器1.实验目的与要求:(1)掌握算术逻辑运算单元ALU(74LS181)的工作原理。
(2)掌握简单运算器的数据传送通道。
(3)验算有74LS1818等组合逻辑电路组成的运算功能发生器运输功能。
(4)能够按给定的数据,完成试验指定的算术运算/逻辑运算。
2.实验方案:(1)理解本次试验的原理:8位数据开关D7-00用来输入数据,数据在SW-B输入三态门控制和LDDR1和LDDR2控制下,通过总线存储到DR1和DR2,SW-B是低电平时有效,LDDR1和LDDR2高电平时有效;S1、S2、S3、S4、M、CN、为ALU运算选择控制端,具体决定ALU做哪种运算(参照书中表格);ALU-B为输出三态门控制端,控制运算器的数据是否输送到总线上,低电平时有效。
(2)试验方法和步骤:按照算术逻辑运算实验连线图在仪器上接好线,注意应先接好线在打开电源开关。
根据书本完成试验的测试,并熟悉ALU的特性、SW-B、LDDR1和LDDR2在输入端的控制作用,ALU-B在输出端的控制作用,会设置S1、S2、S3、S4、M、CN控制状态完成书中给出的练习练习一:将不同的数据存到不同的寄存器中练习二:验证表格中给出的结果的正误练习三:验证不同的算术运算操作的正误练习四:设计求补指令3.实验结果和数据处理:4.结论(1)S1、S2、S3、S4、M、CN控制了ALU实现的运算功能/逻辑功能。
00001任意时实现了对DR1逻辑非的功能,而01011时则实现了对DR2的逻辑非的功能。
(2)当M为高电位时实现逻辑运算,M为低电位时实现算术运算。
(3)通过不同电路的配合,ALU能实现原来没有的功能。
比如求原码的补码等。
5.问题与讨论及实验总结问题:ALU(74LS181)的算术操作都是无符号的运算,对于带符号的操作,应该怎样实现通过做本次试验,我了解到ALU有了的工作原理及其基本操作,会用ALU实现一些不同的功能,并且了解了一些数据传送通道的知识,基本达到了本次试验目的。
班级:学号:姓名:实验项目一:算术逻辑运算实验一、实验目的:1.掌握简单运算器的组成以及数据传送通路。
2.验证运算功能发生器(74LS181)的组合功能。
3.按给定的数据完成几种指定的算术逻辑运算。
二、实验重点:1.数据的传送2.运算功能发生器(74LS181)的引脚功能的应用三、实验难点:1.工作过程的理解四、实验任务:1.计算74(加)262.计算74(减)263.计算-74(加)264.计算74(减)-265.计算74(与)266.计算74(或)26*7.完成《实验指导书》P7表1-2中指定的运算(选做)五、实验原理:实验中所用的运算器数据通路如上图所示。
其中运算器由两片74LS181以并/串形式构成8位字长的ALU。
运算器的两个数据输入端分别由两个锁存器(74LS273)锁存,锁存器的输入连至数据总线,数据输入开关用来给出参与运算的数据,并经过一三态门(74LS245)和数据总线相连。
运算器的输出经过一个三态门(74LS245)和数据总线相连。
数据显示灯已和数据总线相连,用来显示数据总线内容。
表1-1 74LS181功能表任务1:①连线:②开关复位:③打开电源,启动:待连线与开关复位都做好后,打开电源,启动④初始化:SW_G=1,CLR=1,ALU_G=1,S0=S1=S2=S3=M=CN=1,LDDR1=LDDR2=0⑤输入数据A:在输入单元输入01001010,将SW_G置为0,观察总线指示灯是否显示为01001010,然后将LDDR1置为1,并按下控制台单元的START按键,接着把LDDR1还原为0,SW_G还原为1⑥输入数据B:在输入单元输入00011010,将SW_G置为0,观察总线指示灯是否显示为00011010,然后将LDDR2置为1,并按下控制台单元的START按键,接着把LDDR2还原为0,SW_G还原为1⑦计算:将S0、S1、S2、S3、M、CN分别置为1、0、0、1、0、1,再将ALU_G置为0,观察总线指示灯的显示结果⑧输出结果:总线指示灯的显示结果为01100100,与实际结果相符任务2:①②③④同上⑤输入数据A:在输入单元输入01001010,将SW_G置为0,观察总线指示灯是否显示为01001010,然后将LDDR1置为1,并按下控制台单元的START按键,接着把LDDR1还原为0,SW_G还原为1⑥输入数据B:在输入单元输入11100110,将SW_G置为0,观察总线指示灯是否显示为11100110,然后将LDDR2置为1,并按下控制台单元的START按键,接着把LDDR2还原为0,SW_G还原为1⑦计算:将S0、S1、S2、S3、M、CN分别置为1、0、0、1、0、1,再将ALU_G置为0,观察总线指示灯的显示结果⑧输出结果:总线指示灯的显示结果为00110000,与实际结果相符任务3:①②③④同上⑤输入数据A:在输入单元输入10110110,将SW_G置为0,观察总线指示灯是否显示为10110110,然后将LDDR1置为1,并按下控制台单元的START按键,接着把LDDR1还原为0,SW_G还原为1⑥输入数据B:在输入单元输入00011010,将SW_G置为0,观察总线指示灯是否显示为00011010,然后将LDDR2置为1,并按下控制台单元的START按键,接着把LDDR2还原为0,SW_G还原为1⑦计算:将S0、S1、S2、S3、M、CN分别置为1、0、0、1、0、1,再将ALU_G置为0,观察总线指示灯的显示结果⑧输出结果:总线指示灯的显示结果为11010000,与实际结果相符任务4:①②③④同上⑤输入数据A:在输入单元输入01001010,将SW_G置为0,观察总线指示灯是否显示为01001010,然后将LDDR1置为1,并按下控制台单元的START按键,接着把LDDR1还原为0,SW_G还原为1⑥输入数据B:在输入单元输入00011010,将SW_G置为0,观察总线指示灯是否显示为00011010,然后将LDDR2置为1,并按下控制台单元的START按键,接着把LDDR2还原为0,SW_G还原为1⑦计算:将S0、S1、S2、S3、M、CN分别置为1、0、0、1、0、1,再将ALU_G置为0,观察总线指示灯的显示结果⑧输出结果:总线指示灯的显示结果为01100100,与实际结果相符任务5:①②③④同上⑤输入数据A:在输入单元输入01001010,将SW_G置为0,观察总线指示灯是否显示为01001010,然后将LDDR1置为1,并按下控制台单元的START按键,接着把LDDR1还原为0,SW_G还原为1⑥输入数据B:在输入单元输入00011010,将SW_G置为0,观察总线指示灯是否显示为00011010,然后将LDDR2置为1,并按下控制台单元的START按键,接着把LDDR2还原为0,SW_G还原为1⑦计算:将S0、S1、S2、S3、M分别置为1、1、0、1、1,再将ALU_G置为0,观察总线指示灯的显示结果⑧输出结果:总线指示灯的显示结果为00001010,与实际结果相符任务6:①②③④同上⑤输入数据A:在输入单元输入01001010,将SW_G置为0,观察总线指示灯是否显示为01001010,然后将LDDR1置为1,并按下控制台单元的START按键,接着把LDDR1还原为0,SW_G还原为1⑥输入数据B:在输入单元输入00011010,将SW_G置为0,观察总线指示灯是否显示为00011010,然后将LDDR2置为1,并按下控制台单元的START按键,接着把LDDR2还原为0,SW_G还原为1⑦计算:将S0、S1、S2、S3、M分别置为0、1、1、1、1,再将ALU_G置为0,观察总线指示灯的显示结果⑧输出结果:总线指示灯的显示结果为01011010,与实际结果相符七、实验总结:—开始实验的时候,对设备不熟练,不了解各控制端的作用,在听了老师的讲解,初步了解设备各部分的功能,再结合PPT上的实验操作步骤,才成功连接好了线路。
华中科技大学文华学院《计算机组成原理实验》专业:09软件工程班级:二班姓名:陈龙学号:0901********指导老师:袁全清声明:学号后三位101,16进制表示为65H实验一:算术逻辑运算单元实验一、实验目的1、掌握简单运算器的数据传输方式2、掌握74LS181的功能和应用二、实验要求输入数据DR1 = 65H,DR2 = 65H,在保持数据不变的情况下,改变运算器的功能设置,记录运算器的输出,填写表格,并进行相应的分析和比较三、所使用的模块算术逻辑单元、二进制开关、数据总线四、实验过程①把ALU-IN(8芯的盒型插座)与右板上的二进制开关单元中J01插座相连(对应二进制开关H16~H23),把ALU-OUT与数据总线上的DJ2相连。
②把D1CK和D2CK用连线连到脉冲单元的PLS1上,把EDR1、EDR2、ALU-0、S0、S1、S2、CN、M接入二进制开关。
按脉冲单元中的PLS1脉冲按键,在D1CK上产生一个上升沿,把65H打入DR1数据锁存器入DR2数据锁存器五、实验结果及分析实验二:通用寄存器单元实验一、实验目的了解通用寄存器的组成和硬件电路,利用通用寄存器实现数据的置数、左移、右移等功能二、实验内容输入自己学号的后3位数对应的十六进制数,重作输入数据、循环左、右移实验,记录每次移位后的结果,可多次移位。
再输入自己学号的数据,使M=0,重作输入数据、逻辑左、右移位实验,直到结果全0,2D灯亮。
记录实验过程及结果。
对实验结果,作出相应的分析。
三、实验要求按照实验步骤完成实验项目,实现通用寄存器移位操作。
了解通用寄存器单元的工作原理应用。
四、所使用的模块通用寄存器单元,二进制开关,数据总线五、实验过程1、将实验器材按下表接线4、将各控制信号置如下,按PLS1,寄存器中的值将左移(无进位循环左移)一.实验结果及分析实验三:进位控制、通用寄存器判零实验2、实验目的1、熟悉带进位控制的算术逻辑运算器的组成和硬件电路用进位寄存器来实现带进位的左移、右移2、熟悉判零线路3、实验内容1、带进位位逻辑或(算术逻辑单元带进位的加法运算实验)自己学号的后三位数对应的十六进制,与0FFH作进位相加2、带进位移位实验自己学号的后三位数对应的十六进制,作带进位(M=0)左、右移位实验和不带进位的(M=1)左、右移位实验记录实验过程及结果。
实验二算术逻辑运算实验一、实验目的(1)了解运算器芯片(74LS181)的逻辑功能。
(2)掌握运算器数据的载入、读取方法,掌握运算器工作模式的设置。
(3)观察在不同工作模式下数据运算的规则。
二、实验原理1.运算器芯片(74LS181)的逻辑功能74LS181是一种数据宽度为4个二进制位的多功能运算器芯片,封装在壳中,封装形式如图2-3所示。
图2-3 74LS181封装图主要引脚有:(1)A0—A3:第一组操作数据输入端。
(2)B0—B3:第二组操作数据输入端。
(3)F0—F3:操作结果数据输入端。
(4)F0—F3:操作功能控制端。
̅̅̅̅̅̅:低端进位接收端。
(5)CC(6)CC4:高端进位输出端。
(7)M:算数/逻辑功能控制端。
芯片的逻辑功能见表2-1.从表中可以看到当控制端S0—S3为1001、M为0、CC̅̅̅̅̅̅为1时,操作结果数据输出端F0—F3上的数据等于第一组操作数据输入端̅̅̅̅̅̅A0—A3上的数据加第二组操作数据输入端B0—B3上的数据。
当S0—S3、M、CC 上控制信号电平不同时,74LS181芯片完成不同功能的逻辑运算操作或算数运算̅̅̅̅̅̅、CC4进位信号低电平有效;减法运算操作时,操作。
在加法运算操作时,CCCC̅̅̅̅̅̅、CC4进位信号无̅̅̅̅̅̅、CC4借位信号高电平有效;而逻辑运算操作时,CC意义。
2.运算器实验逻辑电路试验台运算器实验逻辑电路中,两片74LS181芯片构成一个长度为8位的运算器,两片74LS181分别作为第一操作数据寄存器和第二操作数据寄存器,一片74LS254作为操作结果数据输出缓冲器,逻辑结构如图2-4所示。
途中算术运算操作时的进位Cy判别进位指示电路;判零Zi和零标志电路指示电路,将在实验三中使用。
第一操作数据由B-DA1(BUSTODATA1)负脉冲控制信号送入名为DA1的第一操作数据寄存器,第二操作数据由B-DA2(BUSTODATA2)负脉冲控制信号送入名为̅̅̅̅̅̅̅̅̅̅(ALUTOBUS)低DA2的第二操作数据寄存器。
算术逻辑运算实验报告算术逻辑运算实验报告一、引言算术逻辑运算是数学中的重要分支,它研究数字和符号之间的关系以及它们之间的运算规则。
在日常生活中,我们经常进行算术逻辑运算,比如加减乘除、逻辑与或非等。
本实验旨在通过一系列实验,探索算术逻辑运算的规律和特点。
二、实验一:加法与减法1. 实验目的通过加法和减法实验,观察数字之间的相互关系,并分析运算规律。
2. 实验步骤首先,我们随机选择两个数字进行加法运算,记录结果。
然后,再选择两个数字进行减法运算,同样记录结果。
3. 实验结果与分析我们发现,在加法运算中,两个正数相加的结果仍然是正数,而两个负数相加的结果仍然是负数。
而正数与负数相加,则会根据绝对值的大小决定结果的正负性。
在减法运算中,两个正数相减的结果可能是正数或零,而两个负数相减的结果可能是负数或零。
正数与负数相减,则会根据绝对值的大小决定结果的正负性。
三、实验二:乘法与除法1. 实验目的通过乘法和除法实验,观察数字之间的相互关系,并分析运算规律。
2. 实验步骤我们选择两个数字进行乘法运算,记录结果。
然后,再选择两个数字进行除法运算,同样记录结果。
3. 实验结果与分析我们发现,在乘法运算中,两个正数相乘的结果仍然是正数,而两个负数相乘的结果则变为正数。
正数与负数相乘,则会根据负数的个数决定结果的正负性。
在除法运算中,两个正数相除的结果仍然是正数,而两个负数相除的结果则变为正数。
正数与负数相除,则会根据负数的个数决定结果的正负性。
四、实验三:逻辑与与逻辑或1. 实验目的通过逻辑与和逻辑或实验,观察逻辑运算的结果,并分析运算规律。
2. 实验步骤我们随机选择两个命题进行逻辑与运算,记录结果。
然后,再选择两个命题进行逻辑或运算,同样记录结果。
3. 实验结果与分析逻辑与运算的结果只有在两个命题都为真时才为真,否则为假。
逻辑或运算的结果只有在两个命题都为假时才为假,否则为真。
五、实验四:逻辑非1. 实验目的通过逻辑非实验,观察逻辑运算的结果,并分析运算规律。
实验报告 、实验名称 运算器实验—算术逻辑运算实验
、实验目的 1、了解运算器的组成原理。 2、掌握运算器的工作原理。 3、掌握简单运算器的数据传送通路。 4、验证运算功能发生器( 74LS181)的组合功能
三、实验设备 TDN-CM++ 计算机组成原理教学实验系统一套,导线若干 四、实验原理
实验中所用的运算器数据通路如图 1-1 所示。其中两片 74LSl81以串行方式 构成 8 位字长的 ALU, ALU 的输出经过一个三态门 (74LS245)和数据总线相连。 三态门由 ALU-R 控制,控制运算器运算的结果能否送往总线,低电平有效。 为实现双操作数的运算, ALU 的两个数据输入端分别由二个锁存器 DR1、 DR2 (由 74LS273实现)锁存数据。要将数据总线上的数据锁存到 DRl、DR2 中,锁 存器的控制端 LDDR1 和 DDR2必须为高电平,同时由 T4 脉冲到来。 数据开关“( INPUT DEVICE")用来给出参与运算的数据, 经过三态(74LS245) 后送入数据总线,三态门由 SW—B控制,低电平有效。数据显示灯 “( BUS UNIT") 已和数据总线相连,用来显示数据总线上的内容。 图中已将用户需要连接的控制信号用圆圈标明 (其他实验相同,不再说明 ), 其中除 T4 为脉冲信号外,其它均为电平信号。由于实验电路中的时序信号均已 连至“W/R UNIT ”的相应时序信号引出端, 因此,在进行实验时, 只需将“W /R UNIT"的 T4接至“ STATE UNIT ”的微动开关 KK2 的输入端,按动微动开 关,即可获得实验所需的单脉冲。 ALU 运算所需的电平控制信号 S3、S2、S1、S0 、Cn、M、LDDRl、LDDR2 、 ALU-B 、SW-B均由“ SWITCH UNIT ”中的二进制数据开关来模拟,其中 Cn、ALU —B、SW 一 B 为低电平有效 LDDR1 、LDDR2 为高电平有效。 对单总线数据通路,需要分时共享总线,每一时刻只能由一组数据送往总线。 五、实验内容 1.输入数据通过三态门 74LS245 后送往数据总线,在数据显示灯和数码显 示管 LED 上显示。 2.向 DRl(或 DR2)中置数,经 ALU 直传后,经过三态 245 送入数据总线, 在数据显示灯和数码显示管 LED 上显示 3.将输入 DRl 和 DR2 中的两个数进行算术逻辑运算,验证 AlU 的功能, 结果在数据显示灯和数码显示管 LED 上显示。
六、实验步骤 1、输入数据通过三态门 74LS245 后经过数据总线在数据显示灯和数码显示 管 LED 上直接显示
(1)按下图连接实验线路,仔细查线无误后,接通电源。 (2)用二进制数码开关输入数据 65H,观察总线数据显示灯和 LED 灯的变 化。设置:○1 SW-B=1;○2 从输入开关输入: 01100101;○3 打开三态门 SW-
B=0; ○4 数据在数码管上显示: LED-B=0 ,发 W/R 脉冲。 (3)观察实验结果。
2. 向 DRl(或 DR2)中置数,经ALU 直传后,经过三态 245送入数据总线, 在 数据显示灯和数码显示管 LED 上显示。 (1)重新连接电路,仔细检查无误之后,接通电源。 2)向DR1和DR2寄存器中置入数据 65H和 A7H。流程为: ○1 使 SWITCH UNIT 单元中的开关 SW-B=1; ○2 从输入开关输入: 01100101(数据显示:灯亮为 0,灯不亮为 1。下同); ○3 使开关 SW-B=0; ○4 设置 LDDR1=1 、LDDR2=0
○5 将数据打入 DR1[按 KK2 发 F4 脉冲],将总线上得数据在数码管上显示: LED-B=0 。 2)、用输入开关向寄存器 DR2 置数 .。 ○1 使 SWITCH UNIT 单元中的开关 SW-B=1; ○2 从输入开关输入: 10100111; ○3 使开关 SW-B=0; ○4 设置 LDDR1=0 、LDDR2=1 。 ○5 将数据打入 DR2[按 KK2 发 F4 脉冲],将总线上得数据在数码管上显示: LED-B=0 。 (3)、检验输入 DR1 和 DR2 寄存器中的数据是否正确。
1、关闭三态SW-B=1,关闭暂存器的输入: LDDR1=0 、 LDDR2=0 。 2、打开 ALU 输出三态门: ALU-B=0 ,设置运算器直传形式 S3S2S1S0M为 11111。 3、将总线上的数据在数码管上显示: LED-B=0 ,发 W/R 脉冲。 4、观察结果(即 DR1 中的数据)。
数据开关 寄存器 DR1 打开 数据开关
(01100101) (01100101) 三态门 (10100111)
1)、用
输
打开 寄存器 DR2
三态门 (10100111)
入开关向寄存器 DR1 置数 5、再次关闭三态门: SW-B=1。打开 ALU 输出三态门: ALU-B=0 。 6、设置运算器直传形式 S3S2S1S0M为 10101。 7、将总线上的数据在数码管上显示: LED-B=0 ,发 W/R 脉冲。 8、观察结果(即 DR2 中的数据)。
3、将输入 DR1 和 DR2 中的两个数进行算术逻辑运算,验证 ALU 的功能, 结果在数据显示灯和数码显示管 LED 上显示。
(1)、保持中数据不变,若不知道中是否有数据,可按实验步骤 2 中得( 3)去 检查。 (2)通过“ SWITCH UNIT ”改变开关 S3,S2,S1,S0,Cn,M 的值,可将两 数进行不同的运算。例如:设置 S3S2S1S0CnM=10010,运算器进行加法运算, 设置 S3S2S1S0CnM=01100,运算器进行减法运算。 最后根据运算结果填写下表: DR1 DR2 S3 S2 S1
S0
M=0( 算术运算 )
M=1 (逻辑运 算) Cn=1 无进位 Cn=0 有进
位
65 A7 0 0 0 0 F=(6 5) F=( 6 6 ) F=(9 A ) 65 A7 0 0 0 1 F=(E 7) F=( E8 ) F=( 1 8 ) 65 A7 0 0 1 0 F=(7 D) F=( 7 E ) F=( 82 ) 0 0 1 1 F=( ) F=( ) F=( )
0 1 0 0 F=( ) F=( ) F=( )
0 1 0 1 F=( ) F=( ) F=( )
01 1 0 F=( ) F=( ) F=( )
0 1 1 1 F=( ) F=( ) F=( )
1 0 0 0 F=( ) F=( ) F=( )
1 0 0 1 F=( ) F=( ) F=( )
1 0 1 0 F=( ) F=( ) F=( )
1 0 1 1 F=( ) F=( ) F=( )
1 1 0 0 F=( ) F=( ) F=( )
1 1 0 1 F=( ) F=( ) F=( )
1 1 1 0 F=( ) F=( ) F=( )
1 1 1 1 F=( ) F=( ) F=( )
七、实验结果 1、在实验步骤 1 第( 3)步观察到的结果是亮、暗、暗、亮、亮、暗、亮、暗, 即运算器最后存储的数据是 01100101,即 LED 显示为 65; 2、在实验步骤 2 第( 3)步观察到的结果是亮、暗、暗、亮、亮、暗、亮、暗, 即运算器最后存储的数据是 01100101,即 LED 显示为 65; 3、在实验步骤 2 第( 3)步观察到的结果是暗、亮、暗、亮、亮、暗、暗、暗, 即运算器最后存储的数据是 10100111,即 LED 显示为 A7; 4、步骤 3 中的运算结果如下:
DR1 DR2 S3 S2 S1
S0
M=0( 算术运算 )
M=1 (逻辑运 算) Cn=1 Cn=0 无进位 有进位
65 A7 0 0 0 0 F=(65) F=( 66 ) F=(9A ) 65 A7 0 0 0 1 F=(E7) F=( E8 ) F=( 18 ) 65 A7 0 0 1 0 F=(7D) F=( 7E ) F=( 82 ) 0 0 1 1 F=(FF) F=(00) F=(00 ) 0 1 0 0 F=(A5) F=(A6) F=(dA) 0 1 0 1 F=(27) F=(28) F=(58) 01 1 0 F=(BD) F=(BE) F=(C2) 0 1 1 1 F=(3F) F=(40) F=(4D) 1 0 0 0 F=(8A) F=(8B) F=(BF) 1 0 0 1 F=(0C) F=(0D) F=(3D) 1 0 1 0 F=( 4C) F=(AD) F=(7D) 1 0 1 1 F=( 24) F=(25) F=(25) 1 1 0 0 F=(CA) F=( CB) F=(FF) 1 1 0 1 F=(4C) F=(4D) F=(7D) 1 1 1 0 F=(E2) F=(E3) F=( E7) 1 1 1 1 F=( 64) F=(65) F=(65)
八、小结 通过这次实验, 我明白了要很好的完成实验首先一定要注意线路的连接, 需 要对应的要一一对应。 我掌握了算术逻辑运算器单元 ALU(74LS181)的工作原 理,并熟悉了怎样输入输出数据和验算由 74LS181 等组合逻辑思电路的运算功 能发生器运算功能等实验步骤和要求。