当前位置:文档之家› 计算机组成原理与接口技术实验报告

计算机组成原理与接口技术实验报告

计算机组成原理与接口技术课程设计实验报告学院:计算机科学与工程专业:计算机科学与技术班级:计科二班学号:姓名:指导老师:评分:2016年12月28日实验一验证74LS181运算和逻辑功能1、实验目的(1)掌握算术逻辑单元(ALU)的工作原理;(2)熟悉简单运算器的数据传送通路;(3)画出逻辑电路图及布出美观整齐的接线图;(4)验证4位运算功能发生器(74LS181)组合功能。

2、实验原理ALU能进行多种算术运算和逻辑运算。

4位ALU-74LS181能进行16种算术运算和逻辑运算。

74ls181芯片介绍:该芯片总共由22个引脚,其中包括8个数据输入端(~A0、~A1、~A2、~A3,~B0、~B1、~B2、~B3,其中八个输入端中A3和B3是高位),这八个都是低电平有效。

还包括S0、S1、S2、S3这四个控制端,这四个控制端主要控制两个四位输入数据的运算,例如加、减、与、或。

CN端处理进入芯片前进位值,M控制芯片的运算方式,包括算术运算和逻辑运算。

F0、F1、F2、F3是四个二进制输出端,以一个四位二进制形式输出运算的结果。

CN4记录运算后的进位。

功能表如下:方式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=/(A B) 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减B3、实验内容实验电路图:4、总结及心得体会本实验通过一个设计一个简单的运算器,使我熟悉了Multisim软件的一些基本操作方法,并掌握了一些简单的电路设计与分析的能力,并对我做下一个运算器的实验有一定的帮助。

因为是之前实验课做过的实验,再次做起来过程比较流畅,没有遇到什么大的问题,实验的测试结果与预期的一致。

该芯片总共由22个引脚,其中包括8个数据输入端(~A0、~A1、~A2、~A3,~B0、~B1、~B2、~B3,其中八个输入端中A3和B3是高位),这八个都是低电平有效。

还包括S0、S1、S2、S3这四个控制端,这四个控制端主要控制两个四位输入数据的运算,例如加、减、与、或。

CN端处理进入芯片前进位值,M控制芯片的运算方式,包括算术运算和逻辑运算。

F0、F1、F2、F3是四个二进制输出端,以一个四位二进制形式输出运算的结果。

CN4记录运算后的进位。

其中AEQB、~P和~G这三个端口与本实验无关,所以这里不做额外介绍。

实验二运算器(2)1、实验目的(1)熟练掌握算术逻辑单元(ALU)的应用方法;(2)进一步熟悉简单运算器的数据传送原理;(3)画出逻辑电路图及布出美观整齐的接线图;(4)熟练掌握有关数字元件的功能和使用方法。

(5)熟练掌握子电路的创建及使用。

2、实验原理本实验仿真单总线结构的运算器,原理如图2-2所示。

相应的电路如图2-3所示。

电路图中,上右下三方的8条线模拟8位数据总线;K8产生所需数据;74244层次块为三态门电路,将部件与总线连接或断开,切记总线上只能有一个输入;两个74273层次块作为暂存工作寄存器DR1和DR2;两个74374层次块作为通用寄存器组(鉴于电路排列情况,只画出两个通用寄存器GR1和GR2,如果可能的话可设计4个或8个通用寄存器);众多的开关作为控制电平或打入脉冲;众多的8段代码管显示相应位置的数据信息;核心为8位ALU层次块。

单总线结构的运算器示意图3、实验内容在Multisim画出电路图并仿真8BIT_ALU_BLOCK74244_BLOCK74ls273_BLOCK74374_BLOCKK8_BLOCK运算器示意图完成下列操作:(1)说明整个电路工作原理。

答:同上文实验原理。

(2)说明74LS244N的功能及其在电路中作用,及输入信号G有何作用;答:74LS244为3态8位缓冲器,一般用作总线驱动器,没有锁存的功能,是一个暂存器,它根据控制信号的状态,将总线上地址代码暂存起来。

在电路中在部件与总线之间起开关作用,信号G为低电平有效。

(3)说明74LS273N的功能及其在电路中作用,及输入信号CLK有何作用;答:74LS273是一种带清除功能的8D触发器, 1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作数据锁存器,地址锁存器。

在电路中作为数据锁存器,输入信号CLK上跳沿触发工作。

(4)说明74LS374N的功能及其在电路中作用,及输入信号CLK和OC有何作用;答:74LS374为具有三态输出的八D边缘触发器。

在电路中寄存数据,CLK上跳沿触发工作,OC为低电平时连接,OC为高电平时断开。

(5) K8产生任意数据存入通用寄存器GR1。

答:在运算器电路图中将左边的开关全置为1,右边X7的G信号也置为1,使所有模块断开。

在K8层次块中通过调节开关在总线上产生数据,将与K8相连的X2的信号G置为0,使数据输出。

将寄存器GR1的OC端和CLK端置为0,再将CLK置为1,使总线上的数据存入通用寄存器GR1。

(6) K8产生任意数据存入通用寄存器GR2。

答:与(5)操作相同,将GR1的OC端和CLK端改为GR2的OC端和CLK端即可。

(7)完成GR1+GR2→GR1。

答:将X2的G信号置为1,将X10和X6的G信号置为0,使GR1的数据存入暂存器X6,将X3的CLK端置0再置1,使数据存入锁存器X3存起来,并将X10和X6的G信号置1。

用类似操作将GR2的数据存入锁存器X11存起来。

再将X7的G端口置0,将S0~S3置为1、0、0、1,M端置为0,CN端置为1,使X3和X11里面的数据相加存入X7。

将X7的G信号置为0,使数据传入主线。

将GR1的OC端置0,CLK端置0在置1,将总线上的数据传入GR1。

(8)完成GR1-GR2→GR2。

答:与(7)操作基本相同,将S0~S3置为1、0、0、1,M端置为0,CN端置为1改为将S0~S3置为0,1,1,0,M端和CN端也置为0。

(9)完成GR1∧GR2→GR1。

答:与(7)操作基本相同,将S0~S3置为1、0、0、1,M端置为0,CN端置为1改为将S0~S3置为1,1,0,1,M端置为1。

(10)完成GR1∨GR2→GR2。

答:与(7)操作基本相同,将S0~S3置为1、0、0、1,M端置为0,CN端置为1改为将S0~S3置为0,1,1,1,M端置为1。

(11)完成GR1⊕GR2→GR1。

答:与(7)操作基本相同,将S0~S3置为1、0、0、1,M端置为0,CN端置为1改为将S0~S3置为0,1,1,0,M端置为1。

(12)~GR1→GR2。

(“~”表示逻辑非运算)答:基本操作与上面相同,但只传GR1的数据。

将S0~S3置为1、0、0、1,M端置为0,CN端置为1改为将S0~S3置为0,0,0,0,M端置为1。

使~GR1传入X7,将X7的G信号置为0,使数据传入主线。

将GR2的OC端置0,CLK端置0在置1,将总线上的数据传入GR2。

(13)~GR2→GR1。

答:与(12)操作基本相同,将GR1改为GR2即可。

4、总结及心得体会通过本实验我学会了自定义各种层次模块,弄清楚了74LS244、74LS273、74LS374等数字元件的基本功能和使用方法。

对于各种复杂的线路,能布出相对整齐地线路图,并基本弄清楚了整个电路的工作原理。

本实验也锻炼了我的动手能力,让我学会了查资料,复习了计算机组成原理的知识,提高了我的知识能力。

本实验的实验过程中也出现了一些问题。

刚开始对各个模块的功能不熟悉,G信号,OC端口和CLK端口也不会用,后面通过查资料和测试终于弄清楚了其工作原理。

开始测试时各个数码管数据都乱七八糟,没有逻辑,后面发现是因为端口未关闭,总线上有多组数据导致。

当S0~S3为1、0、0、0时,进行算术运算结果不全为A+B,当S0~S3为1、0、0、1时,进行算术运算结果为A+B,对于这个问题仍有疑问。

实验四查询式输出实验1、实验目的要求掌握查询式输出的工作原理。

2、实验原理通过查询外设的状态信息决定是否输出数据。

3、实验内容(1)运行“查询式输出装置”,如图2-5所示。

(2)读懂示例程序checkout.asm,以备测试老师询问。

(3)编辑、调试、运行输出程序,将自己学号输出到实验台右侧数据缓冲区框中。

4、实验结果(1)实验代码Data segmentBuffer db 1,5,0,5,0,1,0,2,0,8port_data equ 43aH ;数据端口port_status equ 43bH ;状态端口s db " Output 10 data with demand manner. Press any key to exit...",0dh,0ah,"$" ;程序功能提示Data endsCode segmentAssume cs:code,ds:data ;建立段寄存器和段名之间关系,不具有赋值功能Go: mov ax,dataMov ds,ax ;这两句的作用就是使DS的值为DATA.其中DATA为你定义的数据段,它的作用就是把数据段寄存器DS的值赋为DATA,就是让数据段指向正确的位置.;因为无法直接数据从内存移到DS,所以需要先把数据移到AX寄存器,然后再移到Ds寄存器。

mov dx,offset s ;显示提示,offset是取偏移地址mov ah,9 ;调用DOS功能,显示ds:dx处地址int 21hLEA si,buffer ;si寄存器MOV CX,10 ;将循环次数(数据块长度)送到CXL1: mov ah,0bhint 21h ;检测有无按键,返回AL=0FFh(有按键)或0(无按键) cmp al,0FFh ;比较指令,得出各个标志位的数据jz ExitMOV DX,port_statusIN AL,DX ;读状态端口TEST AL,00000001B ;TEST逻辑与运算。

如果AL右数第1位为1,jnz将会跳转(B表示二进制数)JNZ L1Mov al,[si] ;将si所指向地址存储单元中的数据送给alMOV DX,port_dataOUT DX,AL ;数据输出INC si ;si地址加1LOOP L1LA: mov ah,0bhint 21h ;检测有无按键,返回AL=0FFh(有按键)或0(无按键) cmp al,0jz LAexit: Mov ah,4ch ;结束当前正在执行的程序,返回DOS系统Int 21hCode endsEnd go(2)实验运行结果5、总结及心得体会通过本次实验是我第一次接触汇编语言,第一次运用DOS操作台。

相关主题