实验三 MIPS运算器设计
设计要求:
利用前面实验封装好的32位加法器以及 Logisim 平台中现有运算部件,构建一个32位算术逻辑运算单元(禁用 Logisim 系统自带的加法器,减法器),可支持算术加、减、乘、除,逻辑与、或、非、异或运算、逻辑左移、逻辑右移、算术右移运算,支持常用程序状态标志(有符号溢出 OF 、无符号溢出 UOF ,结果相等 Equal
-
搭建【四位先行进位芯片CLA74182】
-
在上一步基础上,搭建【4位快速加法器】
-
在上一步基础上,搭建【32位快速加法器】
-
ALU内部功能模块搭建,引脚与各功能如下
将加、减、乘、除,逻辑与、或、非、异或运算、逻辑左移、逻辑右移、算术右移分别进行运算并得到结果,通过多路选择器将所选运算方式对应的结果给Result,乘除运算时将高位结果或余给Result2,其余情况Result2结果为0
实验目的:
学生理解算术逻辑运算单元(ALU)的基本构成,掌握 Logisim 中各种运算组件的使用方法,熟悉多路选择器的使用,能利用前述实验完成的 32 位加法器、 Logisim 中的运算组件构造指定规格的 ALU 单元。
方案设计:
A.宏观设计
a. 加减法溢出判断
b. 两数比较模块
c. 算数 / 逻辑 左右移动
d. 基础运算模块
e. 支持模块-32位加法器
f. 支持模块-CAL74182芯片
g. 支持模块-四位快速加法器
B.实验步骤
从小到大开展电路构建,到ALU设计区进行分模块设计,步步为营
a.CAL74182
b.四位快速加法器
c. 32位加法器
d. ALU-位移模块:y取0-4即可,题目要求
e. ALU-运算模块
f. ALU-溢出检测模块
g. ALU-比较模块:结果需要位拓展保持32位
h.MUX选择输出模块
这里是无奈之举,做好所有运算结果,然后选择部分输出
C.故障调试
a.MUX在连线密集时候,出现重叠连线导致提交报错,在编辑布线过程中要格外小心
(MUX连起来时候,结点会变成圆形,有时候会和器件叠加在一起,不拖动极难发觉出错)
b.对减的时候要取补码处理,忘了又炸了一次
c.进位溢出判断是一个藏着很深的bug,无符号加减法溢出位永远是0,判断溢出应该是看运真实数值得出
d.位移取得第5位就可以了,多的不要
电路优点:功能丰富,集成度高
电路缺点:我们这个设计是同时启用所有运算部件,最后根据请求来选择输出部分数据;而不是看需要什么运算来启用部分组件,这会导致额外的资源支出
成果展示:
文章来源:https://www.toymoban.com/news/detail-426205.html
心得体会:
这次搭建的电路极多,设计量大,电路逻辑复杂,bug频出而且极难调整,甚至都没有可用的参考资料,对心理素质是极大的考验;通过严谨的分析和思考,在最终成果上能够有所突破,令我感到慰藉,这是对攻坚精神的最好诠释。通过本次实验深刻理解了各类运算芯片的使用方法,是一次收获颇丰的实践过程。文章来源地址https://www.toymoban.com/news/detail-426205.html
到了这里,关于Logism · MIPS运算器设计 实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!