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

实验目的

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

设计要求

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

方案设计

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

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

    故障与调试

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

    最终发现是多路选择器的两根输入线并在了一起,并的位置与多路选择器的边框重合,需要对多路选择器进行拖拽才能发现问题。


    在排查故障的过程中我尝试了另一种方法,通过片选端控制寄存器的写操作(禁用信号与使能端的忽略脉冲信号相反,因此在解复用器后添加了非门),电路与结果如下图:


    错误出在将需要读取数据的寄存器也给禁用了,修改后如下:

    依旧需要通过使能端与解复用器进行写入寄存器的选择,不如第一个电路简洁。

    测试与分析

    两种方法均通过了测试

    实验总结

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

    物联沃分享整理
    物联沃-IOTWORD物联网 » Logisim实验四:设计寄存器文件

    发表评论