一、设计要求
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的数据对应标记为byte0,byte1,byte2,byte3
字节地址输入:
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的输入条件分类讨论(Mode:00字访问,01字节访问,10半字访问)
输入r0条件: ①Mode=00; ②Mode=01,字节地址末两位为00; ③Mode=10,字节地址倒数第二位为0
输入r1条件: ①Mode=00; ②Mode=01,字节地址末两位为01; ③Mode=10,字节地址倒数第二位为0
输入r2条件: ①Mode=00; ②Mode=01,字节地址末两位为10; ③Mode=10,字节地址倒数第二位为1
输入r3条件: ①Mode=00; ②Mode=01,字节地址末两位为11; ③Mode=10,字节地址倒数第二位为1
可构造数字逻辑电路得到写入的片选信号,与写使能信号通过或门,即可确定是否写入数据。
综上所述,设计完成了既能按照8位、也能按照16位、也能按照32位进行读写访问的32位存储器。
3.设计电路图
三、实验步骤
1.下载educoder平台上的初始代码,并用Logisim打开
2.连接好RAM以及时钟、使能端等
3.读出逻辑实现(从左到右为字读出、半字读出、字节读出)
4.写入逻辑及写入片选信号逻辑实现
5.调整布局,使线路整体匀称、美观
四、故障与调适
按照整体思路连接后,在“MIPS RAM测试”子电路进行测试,发现并没有出现“PASS”,而是“FAIL”
原因分析:
通过对右下方报错信息分析,结合对每一部分电路的检查,发现是在“Dout”电路中,半字和字节的连接顺序连接错误
解决方案:
将半字和字节的连接顺序调换,实现正确的逻辑
五、测试与分析
在“MIPS RAM测试”子电路中,按下CTRL+K进行自动测试
Educoder平台测试结果
六、实验总结
1.根据实验要求,结合各个引脚要求实现的功能进行整体构思
2.对功能进行划分,确定各引脚功能实现的顺序,采取“逐个击破”策略
3.对引脚功能的实现进行具体设计(从RAM连接到片选信号的设计)
4.将各部分功能电路组合起来,争取实现目标要求,并进行测试
5.根据测试结果,寻找并纠正错误,完成电路设计
------
本次实验看似简单,其实难度还是比较大,有几个细节要特别注意。整体来看,实验要求我们根据MODE信号,WE信号,
字节地址信号给出存储器访问的相关控制信号。虽然是一个组合电路设计,但是需要对内存地址有着比较深的理解。
刚刚开始实验时,一时间不知从哪里入手,还是去MOCC慕课听了谭老师讲解的一些注意事项,又深入了解学习了内存地址
后才逐渐摸到门道。最终在不断试错、结合前辈经验一路“摸爬滚打”构建出了实验的大体框架。在连接完电路后,我又结合之前实验对隧道的妙用,对电路进行了美化,自我感觉还是很好的。总之通过这次实验大大加深了我对内存地址的理解,对于Logisim的使用以及对逻辑电路的美化也是一次很好的训练,总之这次实验我收获很多!文章来源:https://www.toymoban.com/news/detail-439490.html
参考:
https://zhuanlan.zhihu.com/p/144958263
https://blog.csdn.net/weixin_45775050/article/details/122974628
https://blog.csdn.net/gyp0205/article/details/124694193?spm=1001.2014.3001.5502文章来源地址https://www.toymoban.com/news/detail-439490.html
到了这里,关于计算机组成原理实验 MIPS RAM设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!