精华内容
下载资源
问答
  • MIPS寄存器文件设计

    千次阅读 2021-04-16 17:10:48
    设计一个寄存器文件,便于MIPS CPU执行指令时读取数据。实现MIPS寄存器组,为简化工作量,寄存器编号高3位不要,最终电路中只需要实现0-3号寄存器,注意0号寄存器恒零。 实验步骤: 第0号寄存器的值始终为零,用常量...

    功能描述:

    设计一个寄存器文件,便于MIPS CPU执行指令时读取数据。实现MIPS寄存器组,为简化工作量,寄存器编号高3位不要,最终电路中只需要实现0-3号寄存器,注意0号寄存器恒零。
    在这里插入图片描述

    实验步骤:

    1. 第0号寄存器的值始终为零,用常量0的32位数据位宽接入第0号寄存器的输入。
    2. 将Din的隧道接入剩下的3个寄存器输入处。
    3. 用一个解复用器完成WE对4个寄存器的使能端输入,W#为其选择端接口,并且为了简化实验过程,R1#R2#W#都只有2位位宽,也便于与解复用器的位宽对接。
    4. 将CLK与4个寄存器的时钟接口对接。
    5. 使用多路选择器完成寄存器RD1和RD2的输出,RD1和RD2为R1#和R2#的值。选择端接入R1#和R2#,R1#和R2#分别为第1个和第2个读寄存器的编号。

    最终实验完成电路图如图所示:

    在这里插入图片描述

    测试与分析:

    使用字库测试电路进行测试,测试结果如图所示:
    在这里插入图片描述

    展开全文
  • MIPS 寄存器文件设计——Logisim

    千次阅读 2020-06-19 15:23:53
    了解寄 MIPS 寄存器文件基本概念,进一步熟悉多路选择器、译码器、解复用器等 Logisim 组件的使用,并利用相关组件构建 MIPS 寄存器文件。 二、实验内容 利用 logisim 平台中构建一个简化的 MIPS 寄存器文件,内部...

    一、实验目的
    了解寄 MIPS 寄存器文件基本概念,进一步熟悉多路选择器、译码器、解复用器等 Logisim 组件的使用,并利用相关组件构建 MIPS 寄存器文件。
    二、实验内容
    利用 logisim 平台中构建一个简化的 MIPS 寄存器文件,内部包含 4 个 32 位寄存器,其具体引脚与功能描述如下表 ####电路框架 storage.circ

    三、电路设计图
    在这里插入图片描述
    四、运行结果
    在这里插入图片描述
    五、心得体会
    通过这次实验,我更加深入的了解了 MIPS 寄存器文件基本概念,进一步熟悉了多路选择器、译码器、解复用器等 Logisim 组件的使用。对Logisim的使用更加熟练了。
    六、logisim编译代码
    需要的可私信我。

    展开全文
  • 完成存储扩展设计后,可以在寄存器文件自动测试电路中进行测试,电路会自动进行评分,确认实验完成正确后,可利用文本编辑工具打开 storage.circ ,将所有文字信息复制粘贴到 Educoder 平台的 storage.circ 文件中,...
  • 现有如下 ROM 组件,4片4K32位 ROM ,7片16K32位 ROM,请在 Logisim 平台构建 GB2312 汉字编码的16K*16点阵汉字字库,电路输入为汉字区号和位号,电路输出为8×32位(256 位点阵信息),具体参见工程文件中的 ...

    一:实验要求

    项目1— 存储扩展实验

    现有如下 ROM 组件,4片4K32位 ROM ,7片16K32位 ROM,请在 Logisim 平台构建 GB2312 汉字编码的16K*16点阵汉字字库,电路输入为汉字区号和位号,电路输出为8×32位(256 位点阵信息),具体参见工程文件中的 storage.circ 文件,图中左侧是输入引脚,分别对应汉字区位码的区号和位号,中间区域为8个32位的输出引脚,可一次性提供一个汉字的256位点阵显示信息,右侧是实际显示区域,用于观测汉字显示是否正常。待完成字库子电路封装已经完成,请勿修改以免影响后续自动测试功能。

    项目2— MIPS寄存器文件设计

    利用 Logisim 平台构建一个简化的 MIPS 寄存器文件,内部包含4个32位寄存器,具体引脚与功能描述参见工程文件中的 storage.circ 文件。

    二、 实验原理(实验准备)

    1.项目1

    (1)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (2)用4片4K32位的ROM 替换其中一片16K32位器件——字扩展(需要片选信号)
    16K32=213bit32 即4片4K*32“串联”,其中第13-12为2-4译码器的输入端,4个输出端连接片选信号。
    (3)译码器
    在这里插入图片描述
    (4)多路选择器
    在这里插入图片描述

    2.项目2

    (1)设计MIPS寄存器文件(即寄存器组)
    可以选择多路选择器进行输出选择或者译码器加上三态门进行输出控制这两种方案之一。
    进行写入控制时,既可以使用译码器,也可以使用解复用器(即多路分配器)。
    注意:0号寄存器的值恒为0,且给一个异步清零信号常量1;
    WD----Din;
    我使用的是解复用器(DMX)进行写入控制;
    在这里插入图片描述

    (2)MIPS寄存器文件设计所需器件与引脚
    在这里插入图片描述
    (3)解复用器
    在这里插入图片描述

    三、 实验设计

    1.项目1

    在这里插入图片描述

    2.项目2

    在这里插入图片描述

    四、实验总结

    1、片选信号可以不连接即不做处理,或者接常量1,或者接译码器验证都是正确的。

    2、可以通过电路中线的颜色判断哪里除了问题。常见的颜色判断:蓝色表示位置状态;红色表示信号冲突;亮绿色表示高电平

    3、解复用器有一个输入、选择(定义哪个输出端输出输入数据)、输出,而译码器只有选择(选择哪个输出为1)和输出。

    展开全文
  • MIPS寄存器

    2014-05-28 16:12:05
    MIPS有32个通用寄存器($0-$31),各寄存器的功能及汇编程序中使用约定如下: 下表描述32个通用寄存器的别名和用途 REGISTER NAME USAGE $0 $zero 常量0(constant value 0...
    MIPS有32个通用寄存器($0-$31),各寄存器的功能及汇编程序中使用约定如下:

    下表描述32个通用寄存器的别名和用途

    REGISTER

    NAME

    USAGE

    $0

    $zero

    常量0(constant value 0)

    $1

    $at

    保留给汇编器(Reserved for assembler)

    $2-$3

    $v0-$v1

    函数调用返回值(values for results and expression evaluation)

    $4-$7

    $a0-$a3

    函数调用参数(arguments)

    $8-$15

    $t0-$t7

    暂时的(或随便用的)

    $16-$23

    $s0-$s7

    保存的(或如果用,需要SAVE/RESTORE)(saved)

    $24-$25

    $t8-$t9

    暂时的(或随便用的)

    $28

    $gp

    全局指针(Global Pointer)

    $29

    $sp

    堆栈指针(Stack Pointer)

    $30

    $fp

    帧指针(Frame Pointer)

    $31

    $ra

    返回地址(return address)



    下面给以详细说明
    $0:即$zero ,该寄存器总是返回零,为0这个有用常数提供了一个简洁的编码形式。
               move $t0,$t1
           实际为
               add $t0,$0,$t1
           使用伪指令可以简化任务,汇编程序提供了比硬件更丰富的指令集。
    $1:即$at,该寄存器为汇编保留 ,由于I型指令的立即数字段只有16位,在加载大常数时,编译器或汇编程序需要
           把大常数拆开,然后重新组合到寄存器里。比如加载一个32位立即数需要 lui(装入高位立即数)和addi两条
           指令。像MIPS程序拆散和重装大常数由汇编程序来完成,汇编程序必需一个临时寄存器来重组大常数,这
           也是为汇编 保留$at的原因之一。
    $2..$3:($v0-$v1)用于子程序的非浮点结果或返回值, 对于子程序如何传递参数及如何返回,MIPS范围有一套约
           定,堆栈中少数几个位置处的内容装入CPU寄存器,其相应内存位置保留未做定义,当这两个寄存器不够存
           放返回值时,编译器通过内存来完成。
    $4..$7:($a0-$a3)用来传递前四个参数给子程序,不够的用堆栈 a0-a3和v0-v1以及ra一起 来支持子程序/过程
           调用,分别用以传递参数,返回结果和存放返回地址。当需要使用更多的寄存器时,就需要堆栈(stack)
           了,MIPS编译器总是为参数在堆栈中留有空间以防有参数需要存储。
    $8..$15:($t0-$t7)临时寄存器, 子程序可以使用它们而不用保留。
    $16..$23:($s0-$s7)保存寄存器,在过程调用过程中需要保 留(被调用者保存和恢复,还包括 $fp和$ra ),MIPS
           提供了临时寄存器和保存寄存器,这样就减少了寄存器溢出(spilling,即将不常用的变量放到存储器的过程),
           编译器在编译一个叶(leaf)过程(不调用其它过程的过程)的时候,总是在临时寄存器分配完了才使用需要
           保存的寄存器。
    $24..$25:($t8-$t9)同($t0-$t7)
    $26..$27:($k0,$k1)为操作系统/异常处理保留,至少要预留一个 。 异常(或中断)是一种不需要在程序中显示
           调用的过程。MIPS有个叫异常程序计数器(exception program counter,EPC)的寄存器,属于CP0寄存器,

           用于保存造成异常的那条指令的地址。查看控制寄存器的唯一方法是把它复制到通用寄存器里,指令mfc0
           (move from system control)可以将EPC中的地址复制到某个通用寄存器中
    通过跳转语句(jr),程序可以
           回到造成异常的那条指令处继续执行
    MIPS程序员都必须保留两个寄存器$k0和$k1,供操作系统使用。

           发生异常时,这两个寄存器的值不会被恢复,编译器也不使用k0和k1, 异常处理函数可以将返回地址放到这
           两个中的任何一个,然后使用jr跳转到造成异常的指令处继续执行

    $28:($gp) 为了简化静态数据的访问,MIPS软件保留了一个寄存器:全局指针gp(global pointer,$gp),全局指针
           只想静态数据区中的运行时决定的地址,在存取位于gp值上下32KB范围内的数据时,只需要一条以gp为基
           指针的指令即可。在编译时,数据须在以gp为基指针的64KB范围内。
    $29:($sp)MIPS硬件并不直接支持堆栈 ,你可以把它用于别的目的,但为了使用别人的程序或让别人使用你的程
           序, 还是要遵守这个约定的,但这和硬件没有关系。
    $ 30:($fp)GNU MIPS C编译器使用了帧指针(frame pointer), 而SGI的C编译器没有使用, 而把这个寄存器当作保
           存寄存器使用($s8),
    这节省了调用和返回开销,但增加了代码生成的复杂性。
    $31:($ra)存放返回地址, MIPS有个jal(jump-and-link,跳转并 链接)指令,在跳转到某个地址时,把下一条指令的
           地址放到$ra中。用于支持子程序,例如调用程序把参数放到$a0~$a3,然后jal X跳到X过程,被调过程完成后
           把结果放到$v0,$v1,然后使用jr $ra返回。
    展开全文
  • 华中科技大学计算机组成原理实验(完整)+代码参考---自己写的 ...1.了解寄 MIPS 寄存器文件基本概念 2.进一步熟悉多路选择器、译码器、解复用器等 Logisim 组件的使用 3.利用相关组件构建 MIPS 寄存器文件
  • mips寄存器

    2013-05-03 15:36:36
    MIPS有32个通用寄存器($0-$31),各寄存器的功能及汇编程序中使用约定如下: 下表描述32个通用寄存器的别名和用途 ;REGISTER NAME USAGE $0 $zero 常量0...
  • 实验四:汉字字库存储芯片扩展实验 实验五:寄存器文件设计 实验六:MIPS RAM设计 实验七:4路组相连cache设计
  • MIPS寄存器组~~~~

    2010-12-16 00:48:55
    MIPS寄存器组 希望对大家有点帮助。 希望对大家有点帮助。 希望对大家有点帮助。
  • MIPS通用寄存器

    2018-11-02 23:03:00
    MIPS通用寄存器 MIPS有32个通用寄存器($0-$31),各寄存器的功能及汇编程序中使用约定如下: 下表描述32个通用寄存器的别名和用途 REGISTER NAME USAGE $0 $zero 常量0(constant value 0) $1 $at ...
  • MIPS 通用寄存器 + 指令

    万次阅读 多人点赞 2013-01-07 13:55:15
    MIPS通用寄存器 MIPS有32个通用寄存器($0-$31),各寄存器的功能及汇编程序中使用约定如下: 下表描述32个通用寄存器的别名和用途 REGISTER NAME USAGE $0 $zero 常量0...
  • mips指令与寄存器详解

    万次阅读 多人点赞 2015-03-28 21:21:36
    MIPS通用寄存器 MIPS有32个通用寄存器($0-$31),各寄存器的功能及汇编程序中使用约定如下: 下表描述32个通用寄存器的别名和用途 REGISTER NAME USAGE $0 $...
  • 本实训项目帮助大家理解计算机中重要部件—存储器,要求同学们掌握存储扩展的基本方法,能设计 MIPS 寄存器堆、MIPS RAM ...MIPS寄存器文件设计 MIPS RAM设计 全相联cache设计 直接相联cache设计 4路组相连cache设计
  • 本实训项目帮助大家理解计算机中重要部件—存储器,要求同学们掌握存储扩展的基本方法,能设计 MIPS 寄存器堆、MIPS RAM ...MIPS寄存器文件设计 MIPS RAM设计 全相联cache设计 直接相联cache设计 4路组相连cache设计
  • 存储系统设计(HUST)

    万次阅读 多人点赞 2020-05-11 20:21:28
    汉字字库存储芯片扩展实验 MIPS寄存器文件设计 MIPS RAM设计 全相联cache设计 4路组相连cache设计 直接相联cache设计
  • 存储系统设计(logisim)

    千次阅读 多人点赞 2020-05-15 18:01:42
    ** 存储系统设计(logisim) ** 汉字字库存储芯片扩展实验 MIPS寄存器文件设计 MIPS RAM设计 直接相联cache设计
  • 汉字字库存储芯片扩展实验,MIPS寄存器文件设计,MIPS RAM设计,全相联cache设计,直接相联cache设计, 4路组相连cache设计
  • 存储系统设计实验(logisim)计算机组成实验

    万次阅读 多人点赞 2020-05-14 15:52:31
    第2关:MIPS寄存器文件设计 了解 MIPS 寄存器文件基本概念,进一步熟悉多路选择器、译码器、解复用器等 Logisim 组件的使用,并利用相关组件构建 MIPS 寄存器文件。 第3关:MIPS RAM设计 理解主存地址基本概念,...
  • 寄存器设计实验

    千次阅读 2009-10-21 13:39:00
    试验三 寄存器设计实验1实验目的1 熟悉并掌握基本MIPS计算机组成的工作原理与设计方法。 2 掌握用Verilog语言设计一个由32个寄存器组成的字长为32位的寄存器组。3 完成一个由16个寄存器组成的字长为4位的寄存器组...
  • 本实训项目帮助大家理解计算机中重要部件—存储器,要求同学们掌握存储扩展的基本方法,能设计 MIPS 寄存器堆、MIPS RAM ...MIPS寄存器文件设计 MIPS RAM设计 全相联cache设计 直接相联cache设计 4路组相连cache设计
  • 华中科技进大学计算机组成原理存储器设计实验1-7

    千次阅读 热门讨论 2020-05-25 17:50:27
    这里写目录标题**华中科技进大学计算机组成原理存储器设计实验1-7**实验实验一 汉字字库存储芯片扩展实验实验二 MIPS寄存器文件设计实验三 MIPS RAM设计实验四 全相联cache设计实验五 直接相联cache设计实验六 4路组...
  • 单周期MIPS CPU设计

    2020-12-09 15:45:32
    单周期MIPS CPU设计,利用运算器实验,存储系统实验中构建的运算器、寄存器文件、存储系统等部件以及Logisim中其它功能部件构建一个32位MIPS CPU单周期处理器。
  • 存储系统设计(HUST).7z

    2021-06-10 12:36:13
    存储系统设计(HUST) 1 汉字字库存储芯片扩展实验 2 MIPS寄存器文件设计 3 MIPS RAM设计 4 全相联cache设计 5 直接相联cache设计 6 4路组相连cache设计 7 2路组相联cache设计
  • storage实验2.circ

    2020-06-26 21:58:19
    MIPS寄存器文件设计,MIPS RAM设计,直接相联cache设计,在educoder上测试通过。
  • 1 汉字字库存储芯片扩展实验 2 MIPS寄存器文件设计 3 MIPS RAM设计 4 全相联cache设计 5 直接相联cache设计 全通关(放入logisim可查看电路,改成txt可上传代码)
  • MIPS的32个通用寄存器

    万次阅读 2016-12-20 14:56:15
    本文对MIPS的32个通用寄存器及它们的常用场合进行了小结,...答案是为了效率,MIPS设计者只允许在寄存器内执行算术操作,而不允许直接操作立即数。所以对最常用的数字0单独留了一个寄存器,以提高效率 at 该寄存器
  • 本资源包含华中科技大学计算机组成...包含实验名称:8位可控加减法电路设计,CLA182四位先行进位电路设计,4位快速加法器设计,16位快速加法器设计,32位快速加法器设计,汉字字库存储芯片扩展实验,MIPS寄存器文件设计
  • 计算机组成原理-实验四-寄存器设计实验

    万次阅读 多人点赞 2018-06-08 10:37:08
    寄存器速度快,个数少,但是RISC CPU的设计强调设置大量的寄存器。例如,Intel 80x86系列CPU中只有8个寄存器,而SPARC RISC CPU中却有120个寄存器。MISP CPU中有32个32位的寄存器堆。 所谓寄存器堆,就是一个寄存器...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,490
精华内容 1,796
关键字:

mips寄存器文件设计