实验 存储系统设计实验
本次实验只有两道题目,但其实具有一定难度,这两题分别为汉字字库存储芯片扩展实验和mips寄存器文件设计,这次实验利用logisim进行设计,实验报告分为两个主要部分,在这两个部分中依次对两个实验的方案设计,设计思路进行了介绍。
字库存储芯片扩展实验
1.1设计要求
现有如下 rom 组件,4片4k32位 rom ,7片 16k32位 rom,实验中有一个 16*16 点阵字库文件(存储字库的存储系统),由 7 片 16k× 32 位 rom 和一个空白器件构成。空白处表示缺少一个器件,请按照字扩展(容量扩展,地址线扩展)的方式利用图中第一行所给出的 4 片 4k×32 位 rom 的 存储器完成最终字库存储器,并把字库数据进行简单的分割后,存入这 4 片 4k ×32 位的 rom 中。
字库电路输入输出引脚如图所示,输入引脚是 7 位的区号和位号;输出 引脚是 32 位的 d7~d0,每一个输出都是 32 位的汉字点阵信息,用于连接到汉 字点阵输入端(拆分为高低 16 位)
1.2设计原理
1.2.1 字括展
由题目得,要求我们用4片4k×32 位rom按照字扩展的括展方式实现16k×32位rom,因此这边给大家介绍一下字括展的原理
字括展也称为容量括展或地址总线括展,当存储芯片的存储容量不能满足存储器对存储容量的要求时,需要进行字括展的方式来括展,其中需要将所有存储芯片的数据线,读写控制线各自并联,同时分别与cpu的数据线和读写控制线连接,各存储芯片的片选信号可以由cpu多余的地址线通过译码器译码产生,通过计算得出,为实现上图电路,共需要16k/4k=4个rom芯片实现
1.2.2 地址线连接
cpu分为地址线、数据线和控制线,地址线是用来传输地址信息用的,因为需要16k×32位的rom系统,所以目标芯片中含有16k个地址,对应着14条地址线(2的14次方=16k),其中备用芯片12条地址线,高两位(分线器分开)用作片选,可以接到2-4译码器的输入端,在这边的话,需要分线器进行工作,将14个地址分开,分为低12位和高两位,对其进行编辑,将0-11设为0,其他位为1,高两位地址用于芯片的选择。
低 12 位地址直接连 4k×32b 的 rom 芯片的地址线。4 个芯片的 32 位输出直接连到 d1,因为同时只有一个芯片工作,因此不会冲突
1.2.3 数据线连接
题目告诉我们,数据为32位,但输出led矩阵位为16×16,所以说,该数据线应该有16位
每个16k×32b 的 rom 的内部各自存储 16k 个地址,每个地址里存放 4 个字节数据。地址范围都一样:0x0000~0x3fff
4 个 4k×32b 的 rom,地址范围分别是也都一样:0x000~0xfff,每个共有 4k个地址,现在需要把 16k×32b 的 rom 中的数据按照顺序 每 4k 个为一组分为四组,分别放到 4 个 4k×32b 的 rom 中去。hzk16_1 .txt 中的 1~4096 个数据放到 0 号 4k 的 rom 中,4097~ 8192 个数据放到 1 号 4k 的 rom 中,8193~12288 个数据放到 2 号 4k 的 rom 中,12289~16384 个数据放到 3 号 4k 的 rom 中
1.2.4 片选信号连接
在运行时,还需要对于片选信号线进行连接,将鼠标放置在上面,会得到相应的记录,如得到信号是1,不工作。对于连接片选信号线,可以选择译码器或是多路选择器,我选择的是译码器,连接原理为:将整个存储系统地址线的高位用于译码器的输入端,而译码器的输出端用于连接四个芯片各自合适的片选信号线。
在页面中增加一个译码器,数据位宽改为2,对于连发,需要进行讨论,对应的16k数据放置芯片位置,需要对应其译码器的连接
1.3实验步骤
1.理解题目,按照实验要求对四个4×32位的芯片进行字括展,使其成为16k×32位的芯片
2.了解数据线,地址线,片选信号的连接方式,然后进行连接
3.地址线通过分线器来进行分离,其中还需要对其中的数据进行调整,分为高2位和低14位,高位为1,低位为0
4.之后对于片选信号进行连接,加入译码器,其中译码器位宽为2,可选为00,01,10,11四个信号
5.进行编译测评,改正错误
1.4故障与调试
1.4.1 led灯展示不正确
故障现象:led无法正确明亮与熄灭
原因分析:结果检查,线条的连接没有问题,应该是只读存储器中,存储的数据存在问题,
解决方案:四个4k×32位的rom当中,数据并不是平分的,并且对于不同的连接方式,前4k的数据需要放在不同的芯片当中
1.5测试与分析
自行测试与头歌网测试皆正确
1.6最终电路图
mips寄存器文件设计
2.1设计要求
利用 logisim平台构建一个简化的mips寄存器文件,内部包含 4个 32 位寄存器。通过 r1#、r2#给定两个寄存器的地址编号,就可以从右侧的 r1、r2 引脚 读读出对应寄存器的值。输入引脚还包括写入寄存器的编号 w#,数据写入引脚 din,当写使能信号 we 有效,时钟的配合下将数据总线上的数据通过 din 端写入寄存器文件内部对 应的寄存器中具体引脚为下图所示
2.2设计原理
2.2.1 封装
首先需要看寄存器文件的封装,由输入引脚(r1,r2,w#,din,we,clk时钟信号)
2.2.2 读控制电路设计
r1,r2分别为读寄存器的编号,我们寄存器设计好之后,一次可以读入两个寄存器里面的值,那么指定哪两个寄存器里面的值输出呢,那就需要我们通过r1#,r2#这两个信号,给出寄存器的编码,然后rd1,rd2分别是寄存器一二的数据输出引脚,它工作原理为,如果对寄存器文件进行读的话,可以读出寄存器中的值,寄存器由r1#,r2#的编号来指定是那两个寄存器,值由rd1,rd2进行输出。
由指令执行过程中,需要读两个寄存器的值,把他们送到目的寄存器中,所读寄存器的编号,由电路设计决定,为源寄存器中的编码决定的,由rd1,rd2进行输出。
数据输出可以根据 r1#、r2#的编码控制多路选择器进行选择输出。也可以采用译码器+三态门进行输出控制。由于这里需要同时读出两个寄存器,所以相关逻辑必须有两份。
2.2.3 写控制电路设计
w#这个输入引脚,是写寄存器的时候用,写寄存器时,要求we,w#信号有效,然后数据从din输入引脚写入数据,din为32位,所有寄存器皆为32位。we为写使能信号,数据必须由w#指定写入哪个寄存器,同时,we有效,在时钟脉冲下,将din端数据写到寄存器文件(由w#指定)中。
在指令执行时,通过分线器,将相应位提取出来,相应位代表着最终指令执行之后,想写入的目的寄存器的编号,数据送到din端,然后regwrite也就是写使能信号有效后,由clk信号,把指定寄存器的数据,写入。
写入时根据 w#收到的写入寄存器编号,利用译码器或多路选择器选择具体 寄存器(写信号 we 和译码信号同时有效时,令寄存器的使能端 en=1)
2.3实验步骤
(1)理解题目,按照实验要求进行电路连接
(2)w#为两位,可能值为00,01,10,11。当值不同时,选择不同寄存器,所以加入译码器,通过w#输出信号,由输出信号进行选择
(3)写信号还需要别的信号有效,才具备写入条件,如何控制写入寄存器,将we和译码信号的值送入使能端,=1时,可以写入
(4)查看寄存器片选信号,如为1有效,为0无效
(5)同步置1和清零可不连,可以将电源连到地线,一直无效
(6)写入数据要把数据输出引脚连在对应寄存器输入引脚
(7)选择与门,并更改与门位宽,w#需要译码器,改为两位,w#连到译码器输入端,然后译码器四个输出引脚,we是1时,w#如果也是1,与门相连
(8)按要求连接,进行测试
2.4故障与调试
2.4.1 位宽不匹配
故障现象:led无法正确明亮与熄灭
原因分析:题目只给出四个寄存器,所以只需要两个位宽就足够
解决方案:将位宽改为2
2.5测试与分析
自行测试与头歌网测试皆正确
2.6最终电路图
沁恒股份USB总线接口芯片:CH374概述
【节能学院】高校学生公寓智慧用电系统的研究与应用
光纤⽹络可以实现哪些新的技术
如何在Bash shell中使用花括号扩展{..}
4端口USB 3.0集线器控制器VL813概述
头歌计算机组成原理存储系统设计实验报告(字库存储芯片,MIPS寄存器文件设计)
美国ALTI UAS新推搜索和救援无人机
什么是MEMS芯片,什么是MEMS传感器
智能停车场一体化控制器方案简述
离购买又近一步 3788元起的华为P10有大惊喜
轮胎逆向设计解决方案
周志华:中国人工智能活跃度仅次于美国 人工智能研究要靠人的聪明
三星S10新机刚发布 曝光了检测和评分
耐压测试仪的操作方法和测试步骤
基于AVR32的隧道环境监测系统设计方案解析
基于CY7C68013与GPIF模式的USB2.0数据传输系统的设计
三星成为Linux基金会白金会员 获董事席位
TDA7056B各引脚功能及电压
电动汽车和卡车的新时代正在迅速成型
浅谈PLC编程规范