课程实验报告课程名称:计算机组成原理专业班级:信息安全1003班学号:U201014669姓名:蒋志斌同组成员:张源信报告日期:2012年5月计算机科学与技术学院目录一、实验名称...........................................................................................................................3二、实验目的...........................................................................................................................3三、实验设备...........................................................................................................................3四、实验任务...........................................................................................................................3五、预备知识...........................................................................................................................41、运算器的相关知识.....................................................................................................42、注意事项:.................................................................................................................4六、设计思路、电路实现与电路分析说明...........................................................................41、任务分析.....................................................................................................................42、设计思路.....................................................................................................................63、电路实现与详细分析说明.........................................................................................7七、实验结果的记录与分析...................................................................................................9八、实验中碰到的问题及解决办法.....................................................................................10九、收获与体会.....................................................................................................................10十、参考书目.........................................................................................................................11一、实验名称实验名称:运算器组成实验二、实验目的1、掌握带累加器的运算器实验2、掌握溢出检测的原理及实现方法3、理解有符号数和无符号数运算的区别4、理解基于补码的加\减运算实现原理5、熟悉运算器的数据传输通路6、利用74181和74182以及适当的门电路和多路选择器设计一个运算,要求支持有符号数和无符号数的运算支持补码加减法运算,支持有符号数溢出检测等功能三、实验设备JZYL—Ⅱ型计算机组成原理实验仪一台芯片:74LS181运算器芯片2片74LS3738D锁存器3片四、实验任务自己设计一个电路和利用实验参考电路进行实验,实验要求先将多个运算数据事先存入存储器中,再由地址选中,选择不同的运算指令,进行运算,并将结果显示,还可以进行连续运算和移位,最后将最终结果写入到存储器中。五、预备知识1、运算器的相关知识运算器是对数据进行加工处理的部件,它具体实现数据的算术运算和逻辑运算,所以又称算术逻辑运算部件,简称ALU,它是中央处理器的重要组成部分。计算机中的运算器结构一般都包含如下几个部分:加法器、一组通用寄存器、输入数据选择电路和输出数据控制电路等。74LS181能执行16种算术运算和16种逻辑运算,当工作方式控制端(M)为低电平时执行算术运算,当工作方式控制端(M)为高电平时执行逻辑运算,运算功能由功能选择端(S0-S3)决定。对74LS181的说明:引出端符号:30~AA运算数输入端(低电平有效)30~BB运算器输入端(低电平有效)nCI进位输入端4nCO进位输出端30~FF运算输出端(低电平有效)M工作方式控制30~SS功能选择2、注意事项:1)74LS181的输入和输出应按顺序,不能接乱或接反。2)实验中的开关较多,实验时若记不清楚就容易因混乱而发生错误,因此对于用不到的引脚就不用接开关了。六、设计思路、电路实现与电路分析说明1、任务分析方案选择:这个实验既可以自己设计电路,也可以参考老师所给的电路。我们选择了参考老师所给的参考电路。芯片选择与分析:根据方案的示意图,方案需要用到两片74LS181芯片和三片74LS373芯片。其中74LS181做数据运算器,74LS373做数据锁存器。各芯片介绍如下:1)74LS373:74LS373是一个8D锁存器。当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端LE为高电平时,O随数据D而变。当LE为低电平时,O被锁存在已建立的数据电平。当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。引出端符号:D0~D7数据输入端OE三态允许控制端(低电平有效)LE锁存允许端O0~O7输出端74LS373管脚图74LS373真值表DnLEOEOnHHLHLHLLXLLQ0XXH高阻态2)74LS181:74LS181是一个四位运算器。实验中要用多个如下图所示的异或门来实现数据的奇偶校验。74LS181管脚图2、设计思路1)将两片74LS181通过373连在一起,通过373的锁存功能实现八位运算2)溢出检测的设计:无符号:无符号运算中,若最高位存在进位,则表示有溢出,否则则表示无溢出,所以只需直接将最高进位位(即Cn+4)与灯相接,高电位表示有溢出,低电位表示无溢出(电路图略)有符号:根据运算过程中最高数据位的进位与符号位的进位位是否一致进行检测,设运算过程中最高数据位的进位产生的进位信号为Cd,符号位产生的进位信号为Cf,当参加运算的两数均为正数时,则Cf=0且符号位之和为Sf=0,此时若Cd=1,则导致运算结果的符号位与参加运算的数的符号位不同,会发生溢出;当参加运算的两数为负数,则Cf=1,且之和为Sf=0,此时只有Cd=1才能使Sf=1,运算结果的符号位才与参加运算的符号相同,若Cd=0,则Sf=0导致运算结果的符号位与参与运算的数的符号位不同,也会发生溢出。综上所述,利用公式fdCCV即可进行溢出检测。但上述方案在已有条件下难以实现,经老师建议,改为根据操作数和运算结果的符号是否一致进行溢出检测。设fX,fY为参加运算数的符号位,fS为结果的符号位,V为溢出标志符,当V取1时表示发生一处。基于该方法的公式为:ffffffSYXSYXV3、电路实现与详细分析说明1)74LS181模块:第一个cn接开关,第一个的cn+4接第二个的cn;第二个181的cn+4接入溢出检测模块;连个的M接在一起,接到开关上;S3至S0依次接到控制开关上;A0至A3分别依次接到两个373的输出端Q上;B0至B3分别依次和开关相连;F3至F0分别依次接到373的输入端D,同时接到指示灯上。74LS181在实验中的电路连接2)74LS373:373(U1)的8D至1D依次接到两个181的F3至F0上;U2和U3的8Q至5Q依次接到181的A0至A3上;373(U1)的8Q至1Q依次接到两个373的输入端D上;74LS373(U2、U3)中的电路连接3)溢出检测模块:运算数的符号位与求反后的运算结果符号位相与,与运算数符号位求反并与运算结果符号位相与的结果求或,结果输出至溢出检测灯。溢出检测部分的电路连接总电路图:七、实验结果的记录与分析1、实验过程1构造八位运算器检测记录:构造八位运算器检测记录表S3S2S1S0数据A数据B运算结果MCn10010000000100000001000000100110010000001000000001000000110110010000000100000010000000110110011000000010000000000000000111100000000100000001000000000111000000001000000000000000101110000000000000000100000001011101010101001010101111111110该记录表明:8位运算器构造成功2、实验过程2添加溢出检测检测记录添加溢出检测检测记录表S3S2S1S0数据A数据B运算结果MCn溢出10010111111110000000001111111011该记录表明:溢出检测添加失败,没有达到预期效果3、实验过程3添加373芯片后检测记录添加373芯片后检测记录表脉冲A脉冲BS3S2S1S0数据结果A结果BMCn1010010000000100000001000000000101100100000001000000010000000101101001000000010000001000000001010110010000000100000010000000100110100100000010000001000000001001011001000000100000010000000100011010010000001000000110000001000101100100000010000001100000011001该记录表明:可实现累计和数据传送4、实验过程4添加求补电路后检测记录添加求补电路后检测记录表脉冲A脉冲BS3S2S1S0数据结果A结果BMCn0/1101001000001010000010100000000011011001000001010000010100000101011001001100000110000010100000101000101001100000110000001000