ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

计算机组成原理实验 MIPS RAM设计

2026/8/8 22:05:47 拓冰建站 浏览量
计算机组成原理实验 MIPS RAM设计 一、设计要求Logisim中RAM组件只能提供固定的地址位宽数据输出也只能提供固定的数据位宽访问时无法同时支持字节/半字/字三种访问模式实验要求利用4个4K * 8 位的 RAM 组件进行扩展设计完成既能按照8位、也能按照16位、也能按照32位进行读写访问的32位存储器最终存储器引脚定义如下图。图1.1 实验电路框架图图1.2 电路引脚与功能描述二、方案设计1.设计原理字节8位半字16位字32位2.设计思路RAM:因为要实现不同模式的访问最小单位为字节所以RAM位宽为8位最大单位为字32位所以一共需要4片8位RAM组件。把这四片RAM的数据对应标记为byte0byte1byte2byte3字节地址输入:Addr为12位字节地址RAM的地址位宽为10位所以可用分线器将字节地址低2位作为片选地址高10位为RAM的块内地址每个RAM可输出一个字节。读出数据:字读出时直接将四个RAM的数据全部输出半字读出时根据字节地址倒数第二位决定输出哪个半字(此时忽略字节地址最低位倒数第二位实现片选)字节读出时根据字节地址低两位决定输出哪个字节(字节地址低两位实现片选)写入数据:设每一个RAM的输入分别为r0,r1,r2,r3.字写入时r0,r1,r2,r3分别得到Din的第0 ~ 7,8 ~ 15,16 ~ 23,24 ~ 31位半字写入时根据边界对齐和忽略高位的原则r0和r2得到Din的第0 ~ 7位r1和r3得到Din的第8 ~ 15位然后根据写入的片选信号选择高半字或低半字存储字节写入时根据忽略高位的原则r0,r1,r2,r3都得到Din的第0 ~ 7位然后根据写入的片选信号选择一个RAM写入写入数据时的片选信号:可以结合Mode对r0,r1,r2,r3的输入条件分类讨论Mode00字访问01字节访问10半字访问输入r0条件: ①Mode00; ②Mode01,字节地址末两位为00; ③Mode10,字节地址倒数第二位为0输入r1条件: ①Mode00; ②Mode01,字节地址末两位为01; ③Mode10,字节地址倒数第二位为0输入r2条件: ①Mode00; ②Mode01,字节地址末两位为10; ③Mode10,字节地址倒数第二位为1输入r3条件: ①Mode00; ②Mode01,字节地址末两位为11; ③Mode10,字节地址倒数第二位为1可构造数字逻辑电路得到写入的片选信号与写使能信号通过或门即可确定是否写入数据。综上所述设计完成了既能按照8位、也能按照16位、也能按照32位进行读写访问的32位存储器。3.设计电路图三、实验步骤1.下载educoder平台上的初始代码并用Logisim打开2.连接好RAM以及时钟、使能端等3.读出逻辑实现(从左到右为字读出、半字读出、字节读出)4.写入逻辑及写入片选信号逻辑实现5.调整布局使线路整体匀称、美观四、故障与调适按照整体思路连接后在“MIPS RAM测试”子电路进行测试发现并没有出现“PASS”而是“FAIL”原因分析通过对右下方报错信息分析结合对每一部分电路的检查发现是在“Dout”电路中半字和字节的连接顺序连接错误解决方案将半字和字节的连接顺序调换实现正确的逻辑五、测试与分析在“MIPS RAM测试”子电路中按下CTRLK进行自动测试Educoder平台测试结果六、实验总结1.根据实验要求结合各个引脚要求实现的功能进行整体构思2.对功能进行划分确定各引脚功能实现的顺序采取“逐个击破”策略3.对引脚功能的实现进行具体设计从RAM连接到片选信号的设计4.将各部分功能电路组合起来争取实现目标要求并进行测试5.根据测试结果寻找并纠正错误完成电路设计------本次实验看似简单其实难度还是比较大有几个细节要特别注意。整体来看实验要求我们根据MODE信号WE信号字节地址信号给出存储器访问的相关控制信号。虽然是一个组合电路设计但是需要对内存地址有着比较深的理解。刚刚开始实验时一时间不知从哪里入手还是去MOCC慕课听了谭老师讲解的一些注意事项又深入了解学习了内存地址后才逐渐摸到门道。最终在不断试错、结合前辈经验一路“摸爬滚打”构建出了实验的大体框架。在连接完电路后我又结合之前实验对隧道的妙用对电路进行了美化自我感觉还是很好的。总之通过这次实验大大加深了我对内存地址的理解对于Logisim的使用以及对逻辑电路的美化也是一次很好的训练总之这次实验我收获很多参考https://zhuanlan.zhihu.com/p/144958263https://blog.csdn.net/weixin_45775050/article/details/122974628https://blog.csdn.net/gyp0205/article/details/124694193?spm1001.2014.3001.5502