MIPS RAM设计实验

实验目的

理解主存地址基本概念,理解存储位扩展基本思想,并能利用相关原理构建能同时支持字节、半字、字访问的存储子系统。

主要任务

Logisim \text{Logisim} Logisim RAM \text{RAM} RAM 组件只能提供固定的地址位宽,数据输出也只能提供固定的数据位宽,访问时无法同时支持字节/半字/字三种访问模式,实验要求利用 4 4 4 8 8 8 位的 RAM \text{RAM} RAM 组件进行扩展,设计完成既能按照 8 8 8 位、也能按 16 16 16 位、也能按照 32 32 32 位进行读写访问的 32 32 32 位存储器。
A d d r Addr Addr 12 12 12 字节地址输入(字访问时忽略最低两位,半字访问时忽略最低位,倒数第二位片选,字节访问时,低两位进行片选)。 D i n Din Din 32 32 32 位写入数据 (不同访问模式有效数据均存放在最低位,高位忽略)。 M o d e Mode Mode 为访问模式控制位( 00 00 00 表示字访问, 01 01 01 表示 1 1 1 字节访问, 10 10 10 表示 2 2 2 字节访问)。 W E WE WE 是写使能, 1 1 1 表示写入, 0 0 0 表示读出。 D o u t Dout Dout 是读出数据 (不同访问模式有效数据均存放在最低位,高位补零)。

实验原理

A d d r Addr Addr 12 12 12 字节地址,低两位为片选地址,高 10 10 10 位为 RAM \text{RAM} RAM 的块内地址,每一个 RAM \text{RAM} RAM 可输出一个字节。
先考虑输出。整个字输出时,将四个 RAM \text{RAM} RAM 的数据全部输出。单字输出时根据字节地址末两位,选择一个 RAM \text{RAM} RAM 输出。半字输出时,若地址末两位为 00 00 00 或01,输出的是 0 0 0 号和 1 1 1 RAM \text{RAM} RAM 组成的半字;否则,输出 2 2 2 号和 3 3 3 RAM \text{RAM} RAM 组成的半字;因此片选为字节地址的倒数第二位。
再考虑输入,定义每一个 RAM \text{RAM} RAM 的输入为 I n 0 , I n 1 , I n 2 , I n 3 In_0,In_1,In_2,In_3 In0,In1,In2,In3。整字输入时, I n 0 , I n 1 , I n 2 , I n 3 In_0,In_1,In_2,In_3 In0,In1,In2,In3 分别得到 D i n Din Din 的第 0 ∼ 7 , 8 ∼ 15 , 16 ∼ 23 , 24 ∼ 31 0\sim7,8\sim15,16\sim23,24\sim31 07,815,1623,2431 位。单字输入时,根据忽略高位的原则, I n 0 , I n 1 , I n 2 , I n 3 In_0,In_1,In_2,In_3 In0,In1,In2,In3 都得到 D i n Din Din 的第 0 ∼ 7 0\sim7 07 位,然后根据写入片选信号选择一个 RAM \text{RAM} RAM 输入。半字输入时,根据边界对齐和忽略高位的原则, I n 0 , I n 2 In_0,In_2 In0,In2 得到 D i n Din Din 的第 0 ∼ 7 0\sim7 07 位, I n 1 , I n 3 In_1,In_3 In1,In3 得到 D i n Din Din 的第 8 ∼ 15 8\sim15 815 位,然后根据写入的片选信号选择高半字或低半字存储。
接下来分析写入数据时的片选信号,我们可以考虑 I n 0 , I n 1 , I n 2 , I n 3 In_0,In_1,In_2,In_3 In0,In1,In2,In3 的输入条件(根据 M o d e Mode Mode 分类讨论)。若要输入 I n 0 In_0 In0:① M o d e = 1 Mode=1 Mode=1;② M o d e = 2 Mode=2 Mode=2,字节地址末两位为 00 00 00;③ M o d e = 3 Mode=3 Mode=3,字节地址倒数第二位为 0 0 0。若要输入 I n 1 In_1 In1:① M o d e = 1 Mode=1 Mode=1;② M o d e = 2 Mode=2 Mode=2,字节地址末两位为 01 01 01;③ M o d e = 3 Mode=3 Mode=3,字节地址倒数第二位为 0 0 0。若要输入 I n 2 In_2 In2:① M o d e = 1 Mode=1 Mode=1;② M o d e = 2 Mode=2 Mode=2,字节地址末两位为 10 10 10;③ M o d e = 3 Mode=3 Mode=3,字节地址倒数第二位为 1 1 1。若要输入 I n 3 In_3 In3:① M o d e = 1 Mode=1 Mode=1;② M o d e = 2 Mode=2 Mode=2,字节地址末两位为 11 11 11;③ M o d e = 3 Mode=3 Mode=3,字节地址倒数第二位为 1 1 1
可构造数字逻辑电路得到输入的片选信号,与写使能信号通过或门,即可确定是否输入数据。
综上所述,设计完成了既能按照 8 8 8 位、也能按 16 16 16 位、也能按照 32 32 32 位进行读写访问的 32 32 32 位存储器。

电路图

MIPS RAM.png

  • 8
    点赞
  • 105
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值