logisim实验四:寄存器文件设计

本文档详述了一次MIPS寄存器文件的设计过程,包括使用Logisim构建一个包含4个32位寄存器的简化版,并通过多路选择器和解复用器实现读写操作。在遇到故障时,作者通过调试找到了问题所在,即多路选择器的线路重叠。最后,作者比较了两种设计方案,并强调了理解每个组件功能的重要性以及在设计前明确实验要求的必要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验目的

了解寄 MIPS 寄存器文件基本概念,进一步熟悉多路选择器、译码器、解复用器等 Logisim 组件的使用,并利用相关组件构建 MIPS 寄存器文件。

设计要求

利用 logisim 平台中构建一个简化的 MIPS 寄存器文件,内部包含 4 个 32 位寄存器,完成存储扩展设计后可以在寄存器文件自动测试电路中进行测试。具体引脚与功能描述如下表:
在这里插入图片描述

方案设计

  • 简化的 MIPS 寄存器文件功能:将输入数据存入选定的寄存器,输出选定寄存器的值。
  • 设计思路:本次实验电路在逻辑上较为简单,利用解复用器实现对进行写操作的寄存器的选择,利用多路选择器实现对寄存器输出结果的选择,利用寄存器使能端使得不进行写操作的寄存器忽略时钟脉冲。
    在这里插入图片描述

实验步骤

  1. 弄清各个引脚的作用。
  2. 设计对写操作选择和读操作选择的电路。
  3. 连接电路。

故障与调试

开始有几组数据的输出结果不合预期,检查逻辑无误后通过认为的改变输入输出的方式进行了测试,如下图(开始时的错误输出均为0000000E):
在这里插入图片描述

最终发现是多路选择器的两根输入线并在了一起,并的位置与多路选择器的边框重合,需要对多路选择器进行拖拽才能发现问题。
在这里插入图片描述
在这里插入图片描述
在排查故障的过程中我尝试了另一种方法,通过片选端控制寄存器的写操作(禁用信号与使能端的忽略脉冲信号相反,因此在解复用器后添加了非门),电路与结果如下图:
在这里插入图片描述
在这里插入图片描述
错误出在将需要读取数据的寄存器也给禁用了,修改后如下:
在这里插入图片描述
依旧需要通过使能端与解复用器进行写入寄存器的选择,不如第一个电路简洁。

测试与分析

两种方法均通过了测试
在这里插入图片描述
在这里插入图片描述

实验总结

本次实验虽然难度较低,但是依然有不少收获。我对于寄存器、多路选择器、解复用器的理解加深了,同时在使用上更加熟练。特别是寄存器,我注意到在一个脉冲中如果要对寄存器中的数据进去操作,对数据的读取是在写入前面的,从本次实验的结果中来看,如果要通过寄存器将本次写入的数据读出,需要等到之后的脉冲,而且我认为在同一脉冲下对写入数据的读取也不应该是寄存器的意义所在。本次实验同时使我积累的经验,尤其是对故障进行调试的经验,同时使我认识到在设计电路前一定要先弄清楚各个引脚的功能与实验要求。本次实验使我收获良多。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈希表扁豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值