一、 设计要求
学生理解主存地址基本概念,理解存储位扩展基本思想,并能利用相关原理构建能同时支持字节、半字、字访问的存储子系统。
Logisim 中 RAM 组件只能提供固定的地址位宽,数据输出也只能提供固定的数据位宽,访问时无法同时支持字节/半字/字三种访问模式,实验要求利用 4 个4 K*8 位的 RAM 组件进行扩展,设计完成既能按照 8 位、也能按 16 位、也能按照 32 位进行读写访问的 32 位存储器,最终存储器引脚定义如下图。
二、 方案设计
输入:
1.题目给出的ROM的地址位宽位10位,所以地址取高10位。Str信号由各rom的wi此信号给出,表示仅当写模式下,该ROM需要参与写时才有效。sel端置一。
2.确定输入数据的取值:如果Mode为00时表示字访问,即写入32位数据,4片ROM都被选中,分别对应第0,1,2,3个字节;Mode为01表示单字节访问,即写入8位数据,这时只选中一片ROM,而且写入的是Din的最低字节;Mode位10时表示半字访问,即写入16位数据。这里要选中2片ROM,由于要对齐所以只能选高两位或低两位。
3.确定wi的取值
先使用一个解码器,根据Mode的取值来决定要进行的访问方式。
然后在三种访问方式下设计如下的电路来确定wi的取值
地址在字访问时忽略最低两位;半字访问时忽略最低位,倒数第二位为片选;字节访问时,第二位进行片选。
或门表示任一模式下选中都有效
当写入字节时我们需要判断地址的低两位是否指向了此片ROM
当写入半字时,我们需要判断地址的次低位是否指向了该ROM所在的组
输出:
三、 实验步骤
1、 阅读题目要求,弄清各个引脚的功能
2、 思考怎样实现输入输出
3、 设计完整电路
4、 测试与调试
5、 总结收获
四、 故障调试
在本次实验测试时发现了以下错误
经过排查发现错误出现确定在w2和w3 中 半字地址后多加了一个非门
改正过后成功通关
五、 心得体会
通过本次实验,我对使用Logisim自带的测试电路更熟悉了,同时也掌握了系统设计电路的方法。将一个大问题切分成几个互相关联子问题。然后逐一解决这些子问题。
总之,本次实验使我受益匪浅。