IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机组成原理实验 MIPS RAM设计 -> 正文阅读

[网络协议]计算机组成原理实验 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的数据对应标记为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://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

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章           查看所有文章
加:2022-05-24 18:32:39  更:2022-05-24 18:34:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 11:43:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码