实验六 MIPS运算器设计 (基于logisim)

一、设计要求

利用前面实验封装好的 32 位加法器以及 logisim 平台中现有运算部件构建一个 32 位算术逻辑运算单元(禁用 Logisim 系统自带的加法器,减法器),可支持算术加、减、乘、除,逻辑与、或、非、异或运算、逻辑左移、逻辑右移、算术右移运算,支持常用程序状态标志(有符号溢出 OF 、无符号溢出 UOF ,结果相等 Equal ),ALU 功能以及输入输出引脚见后表,在主电路中详细测试自己封装的 ALU ,并分析该运算器的优缺点。

二、设计目的

  1. 掌握定点数加减法溢出检测方法
  2. 理解算术逻辑运算单元ALU的基本构成口
  3. 熟悉Logisim中各种运算组件(逻辑运算部件和算术运算组件)
  4. 悉多路选择器的使用
  5. 设计32位简单ALU
    -利用已完成的32位加法器、其他运算组件构造
    -禁止使用Logisim中内置的加法器, 减法器

三、方案设计

在本实验中我们需要利用前面实验封装好的 32 位加法器以及 logisim 平台中现有运算部件构建一个 32 位算术逻辑运算单元。可支持算术加、减、乘、除,逻辑与、或、非、异或运算、逻辑左移、逻辑右移、算术右移运算。

实验原理:ALU电路是通过输入s3s2s1s0 来进行工作方式的选择。功能表如下:
实验六 MIPS运算器设计 (基于logisim)_第1张图片

整体框架:通过多路选择器处理,将加、减、乘、除,逻辑与、或、非、异或运算、逻辑左移、逻辑右移、算术右移分别进行运算并得到结果,通过多路选择器将所选运算方式对应的结果给Result,乘除运算时将高位结果或者余数给Result2,其余情况下Result2结果为0。

功能实现:
逻辑左移、右移、算数右移运算使用移位器实现

实验六 MIPS运算器设计 (基于logisim)_第2张图片

加减乘除运算使用封装好的32位加法器,遵循补码的加减法运算规则
实验六 MIPS运算器设计 (基于logisim)_第3张图片

实验六 MIPS运算器设计 (基于logisim)_第4张图片

与、或、非、异或运算分别使用与门、非门、异或门、或非门实现

实验六 MIPS运算器设计 (基于logisim)_第5张图片

比较器 结果需要拓展
实验六 MIPS运算器设计 (基于logisim)_第6张图片

总电路图
实验六 MIPS运算器设计 (基于logisim)_第7张图片

四、实验步骤

1、弄清实验原理和实验要求
2、选择32位加法器和Logisim中合适的元件构造指定规格的ALU单元
3、连接总的电路图
4、进行实验测试
5、进行故障分析与调试

五、测试与分析

故障描述:使用无符号型比较器时忘记加一个equal;

实验六 MIPS运算器设计 (基于logisim)_第8张图片
实验六 MIPS运算器设计 (基于logisim)_第9张图片

实验六 MIPS运算器设计 (基于logisim)_第10张图片

解决后的测试截图
实验六 MIPS运算器设计 (基于logisim)_第11张图片
实验六 MIPS运算器设计 (基于logisim)_第12张图片

此外在实验过程总还多次出现了位宽不匹配的问题。其中最典型的就是进行比较运算的时候应将结果进行位扩展来保证数据位数的统一。

六、实验总结

本次实验是完成一个ALU算数逻辑运算单元的设计。相对于前面的实验来说比较综合。难度也更大。我也是通过查阅有关资料、学习慕课才完成本次实验。通过本次实验,我学会了综合各种运算组件的方法、掌握了加减溢出判断的方法。并把课堂上所学的知识融入到本次实验中。总体来说感觉收获颇丰。

你可能感兴趣的:(计算机组成原理,经验分享)