Logism · MIPS文件寄存器 实验

实验 MIPS文件寄存器

设计要求:

利用 Logisim 平台构建一个简化的 MIPS 寄存器文件,内部包含4个32位寄存器

Logism · MIPS文件寄存器 实验_第1张图片

实验目的

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

方案设计

        A.宏观设计

                a.寄存器的选择
                通过解复用器,将【使能信号】通过【芯片选择W#】,输出给对应寄存器
        实现四个寄存器启动一个并进行数据写入工作

                b.写入数据的分配
        1号寄存器部署常量0,234号部署【输入数据Din】

                c.输出数据的选择
                采用2个MUX,在其中一个没启动时候,默认输出1号寄存器全0;
        只启动其中一个时,根据输入的【输出选择需求R1#】,选择芯片进行输出

        B.实验步骤

                a.寄存器选择

Logism · MIPS文件寄存器 实验_第2张图片

                b.数据输入

Logism · MIPS文件寄存器 实验_第3张图片

                c.输出数据

Logism · MIPS文件寄存器 实验_第4张图片

        C.debug过程

                a.接线重叠问题(极其隐蔽)

理论上可行,但是提交就WA了,而且错了一小部分,实在难以找出bug的位置;

Logism · MIPS文件寄存器 实验_第5张图片

 重做了一遍,但是做到一半发现接线有问题,为什么是圆点?Logism · MIPS文件寄存器 实验_第6张图片Logism · MIPS文件寄存器 实验_第7张图片

 拉开后发现是重叠上去了,修正把额外连线扬了,修正结果如下

Logism · MIPS文件寄存器 实验_第8张图片

成果展示

Logism · MIPS文件寄存器 实验_第9张图片

Logism · MIPS文件寄存器 实验_第10张图片

心得体会

        挺简单的,寄存器和芯片差不多,这次多了个解复用器,相当于对MUX的逆运算;最难的应该是找bug的部分,还好电路不算复杂,找起来还算OK,远不如之前MIPS运算器ALU设计找bug那种难度,相比起来这个bug已经是可爱的小天使了。

你可能感兴趣的:(附加实验库,fpga开发)