拓冰建站拓冰建站
首页 / 资讯中心 / 正文

华中科技大学计算机组成原理——运算器实验实验报告

所有资源都已打包工具 | 盗梦空间一、实验目的1掌握1位全加器的实现逻辑掌握多位可控减法器电路的实现逻辑2掌握先行进位的原理能够利用相关知识设计4位先行进位电路并利用设计的4位先行进位电路构造4位快速加法器3理解成组进位生成函数、成组进位传递函数的概念能利用4位先行进位电路和4位快速加法器电路构建16位、32位快速加法器4理解算术逻辑运算单元ALU的基本组成能利用已完成的32位加法器、Logisim中的运算组件构造指定规格的ALU5掌握阵列乘法器的实现原理能够分析阵列乘法器的性能并能设计实现阵列乘法器电路6掌握原码一位乘法运算的基本原理设计实现一个8位×8位的无符号数一位乘法器电路7掌握补码一位乘法运算的基本原理并能设计实现一个8位×8位的补码一位乘法器电路8掌握运算流水基本概念理解将复杂运算步骤细分成子过程的思想能够实现简单的乘法运算流水线。二、实验内容1可控加减法电路设计实验在对应子电路中利用已经封装好的全加器设计8位串行可控加减法电路24位快速加法器设计实验①4位先行进位电路在对应子电路中利用基本逻辑门实现可级联的4位先行进位电路②4位快速加法器在4位快速加法器子电路中利用已经设计好的4位先行进位电路以及基本逻辑门实现4位快速加法器3多位快速加法器设计实验①16位快速加法器设计②32位快速加法器设计432位ALU设计实验5阵列乘法器设计实验①5位无符号阵列乘法器设计在对应的子电路中实现5位无符号阵列乘法器②6位补码陈列乘法器设计在对应的子电路中利用已经设计好的5位阵列乘法器实现6位补码阵列乘法器6原码一位乘法器设计实验在对应子电路中利用寄存器、加法器等基本电路设计无符号一位乘法器7补码一位乘法器设计实验在对应子电路中利用寄存器、加法器等基本电路设计8位补码一位乘法器8乘法流水线设计实验三、实验工具Logisim仿真实验软件四、方案设计与实验步骤及结果图表 11可控加减法电路设计实验补码的符号位参与运算。对于无符号数的加法运算溢出符号就是Cn对于有符号数的溢出检测信号overflow可以直接用最高位数值进位和符号位进位异或得到。将8个全加器的进位链串联即可得到8位串行加法器。可控电路实现如图表1所示。24位快速加法器设计实验①4位先行进位电路n位串行加法电路中和数与进位输出的逻辑表达式如下SiXi⊕Yi⊕Ci Ci1XiYi(Xi⊕Yi)Ci假设GiXiYi, Pi Xi⊕Yi。当Gi1时Ci1一定为1所以将Gi称为进位生成函数当Pi1时进位信号Ci才能传递到进位输出Ci1处所以称Pi为进位传递函数。有了进位生成函数和进位传递函数则有以下公式SiPi⊕Ci Ci1GiPiCi电路实现结果如图表2所示。图表 2②4位快速加法器4位先行电路加上生成GiPi的与门异或门电路再加上4个异或门就可以构成4位快速加法器也称为并行加法器。电路实现结果如图表3所示。图表 33多位快速加法器设计实验①16位快速加法器设计利用先行进位电路提前产生C4、C8、C12、C16信号将4个4位快速加法器输出的成组进位生成、传递函数G*和P*及C0连接到先行进位电路的输入端再将对应信号连接到相应的快速加法器的进位输入端即可构成16位组内并行进位、组间并行进位的快速加法器实现结果如图表4所示。图表 4②32位快速加法器设计在实现16位快速加法器的基础上将16位快速加法器进行组间串联连接即可实现32位快速加法器实现结果如图表5所示。图表 5电路实现结果如图标6所示。图表 6通过给出的ALU自动测试电路进行测试不断修改错误直到出现正确的实验结果。实验结果如图表7、8所示。图表 7图表 85阵列乘法器设计实验①5位无符号阵列乘法器设计用与门阵列同时产生手动乘法中的各乘积项同时用一位全加器按照手动乘法运算的需要构成全加器阵列实现结果如图表9所示。图表 9②6位补码陈列乘法器设计由于补码乘法中的乘数、被乘数和乘积的结果都以补码的形式给出为了能利用无符号阵列乘法器需要在运算前将乘数和被乘数先转换成无符号数因此在相加数电路前增加了两个n位运算前求补电路并且分别用各自的符号位作为求补控制信号。又因为无符号阵列乘法器的输出结果是无符号数为将结果转换为补码需要在最后增加一个2n位运算后求补电路同时结果的符号位由异或门产生并作为运算后求补电路的求补控制信号。6位补码阵列乘法器的实现结果如图表10所示。图表 106乘法流水线设计实验5位无符号乘法用横向进位阵列乘法器实现。该乘法器可看成4个5位串行加法器的级联。根据运算流水线的基本原理可以在4个5位串行加法器之间增加流水寄存器缓存中间运算结果P1-P4。实现结果如图表11所示。图表 117原码一位乘法器设计实验无符号原码一位乘法的计算 维护一个部分积初始为0每次取乘数b的最低位如果最低位为1部分积部分积乘数a如果最低位为0部分积部分积0然后将部分积右移一位同时将乘数b右移一位。第i次i8对部分积的右移操作移出来的数为最终乘积的第i低位8次结束后的部分积为最终乘积的高8位。该计算方法本质是计算乘数a与乘数b的各位相乘得到的部分积然后将所有的部分积相加。实现结果如图表12所示。图表 128补码一位乘法器设计实验补码一位乘法器和原码一位乘法器的逻辑十分类似,计算核心逻辑为{P,y}{(P(yn1-yn)[x]补),y}/2。不同点如下①符号位参与运算②每次对乘数寄存器中的yn、yn1两位进行判断并根据yn1-yn的值决定累加值。③控制逻辑需要控制电路进行n1次累加与位移操作最终结果存放在R0与R1当中比实际多移动了一位最终结果的最高n位存放在R0低位中低n1位存放在R1高位中。补码一位乘法器的实现结果如图表13所示。图表 13五、遇到的问题及解决方法1.对各实验原理不太了解。结合教材上提示的电路原理图以及网上的相关资料最后在理解试验背后理论知识原理的基础上完成了电路的设计工作。2. Logisim仿真软件存在BUG。试验过程中会出现明明电路正确出现整块报错的问题。重启软件后才恢复正常。3.对某些元器件的功能使用不太了解。最初我将计数器误认为是寄存器导致原码一位乘法器始终无法正常使用百思不得其解在和同学讨论后才发现元器件的错误使用改正后电路才能够正常使用。六、心得体会总体来说本次试验比上次好。但还是不知道从何处入手去解决问题在翻阅课本和查阅大量资料后才知道怎么去做。在后面的实验中要提前将实验原理理解这样做实验的时候会轻松很多。当然在试验过程中也遇到了很多的问题或是通过查阅相关资料或是和同学探讨或是向老师咨询最后都顺利解决了问题。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门