南通大学计算机科学与技术学院
计算机组成原理****实验报告
实 验 名 称 半导体存储器原理实验
班 级
学 号
姓 名 jontyy
指 导 教 师
日 期
**一、**实验目的
**二、**实验用软件、器件等
**三、**实验内容
**四、**电路原理图
**五、**实验过程及数据记录
**六、**实验数据分析与小结
**七、**实验心得体会
一、实验目的
1、熟悉静态随机存储器RAM和只读存储器ROM的工作特性和使用方法;
2、熟悉半导体存储器存储和读出数据的过程;
3、了解使用半导体存储器电路时的定时要求。
二、实验用软件、器件等
1、软件:QUARTUS 2.0、WPS文字、Visio 2013
2、器件:lpm_rom(lpm_rom0)、lpm_ram_dq(lpm_ram_dq0)、lpm_ram_io(lpm_ram_io1)、7408、NOT、AND2、74273b、74374b、74244b、input、output、BIDIR
三、实验内容
1、利用Quartus Ⅱ器件库提供的参数化存储单元lpm_rom设计一个由128╳8位的ROM(地址空间:00H~7FH)构成的只读存储器系统。
(1)设计实验电路图,在QuartusⅡ的编辑环境下,进行原理图的输入和编辑工作,要求编译通过,无错误。
(2)利用.mif文件,对ROM的存储单元00H~05H进行初始化。
(3)给定ROM存储区的地址:00H~05H,读ROM存储单元。要求通过分析仿真波形,检查数据的正确性。记录仿真波形、分析方法、分析过程和分析结果。
2、利用Quartus Ⅱ器件库提供的参数化存储单元lpm_ram_dq,设计一个由128╳8位的RAM(地址空间:80H~FFH)构成的随机存储器系统。
(1)设计实验电路图,在QuartusⅡ的编辑环境下,进行原理图的输入和编辑工作,要求编译通过,无错误。
(2)给RAM的存储单元80H~85H写入数据。要求通过分析仿真波形,检查数据的正确性。记录仿真波形、分析方法、分析过程和分析结果。
(3)给定RAM存储区的地址:80H~85H,读RAM存储单元。要求通过分析仿真波形,检查数据的正确性。记录仿真波形、分析方法、分析过程和分析结果。
3、利用Quartus Ⅱ器件库提供的参数化存储单元lpm_ram_io,设计一个由128╳8位的RAM(地址空间:80H~FFH)构成的随机存储器系统。
(1)设计实验电路图,在QuartusⅡ的编辑环境下,进行原理图的输入和编辑工作,要求编译通过,无错误。
(2)给RAM的存储单元80H~85H写入数据。要求通过分析仿真波形,检查数据的正确性。记录仿真波形、分析方法、分析过程和分析结果。
(3)给定RAM存储区的地址:80H~85H,读RAM存储单元。要求通过分析仿真波形,检查数据的正确性。记录仿真波形,仿真结果的分析方法、分析过程和分析结果。
4、利用Quartus Ⅱ器件库提供的参数化存储单元lpm_rom、lpm_ram_dq或lpm_ram_io设计一个由128╳8位的ROM(地址空间:00H7FH)和一个由128╳8位的RAM(地址空间:80HFFH)构成的存储器系统。
(1)设计实验电路图,在QuartusⅡ的编辑环境下,进行原理图的输入和编辑工作,要求编译通过,无错误。
(2)利用.mif文件,对ROM的存储单元00H~05H进行初始化。
(3)从05H单元读出一个8位数据存入88H单元。
(4)将90H存入06H单元,将11H存入90H单元,请置相关控制信号(注意时序关系)实现下列功能:
给定06H,读出数据11H(即,实现间接寻址功能)。
(5)思考题:若给定起始地址后,要能实现自动从连续存储区读出数据,则实验电路应作怎样的改进,如何验证这一功能?
四、电路原理图
实验电路原理图如下图所示,图(1)是只读存储器系统电路原理图,图(2)是lpm_ram_dq随机存储器系统电路原理图,图(3)是lpm_ram_io随机存储器系统电路原理图,图(4)是存储器系统电路原理图。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LIBWNkM4-1576743826794)(cid:clip_image002.jpg)]
图(1)只读存储器系统电路原理图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i3dVFQ3Z-1576743826795)(cid:clip_image004.jpg)]
图(2)lpm_ram_dq随机存储器系统电路原理图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cVPY3R2x-1576743826796)(cid:clip_image006.jpg)]
图(3)lpm_ram_io随机存储器系统电路原理图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qt9bddo6-1576743826799)(cid:clip_image008.jpg)]图(4)存储器系统电路原理图
**五、**实验过程及数据记录
1、利用lpm_rom设计一个由128╳8位的ROM(地址空间:00H~7FH)构成的只读存储器系统。
(1)参考图(1),在QUARTUS II里输入原理图,设计只读存储器系统。
只读存储器系统电路图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GWojMQcj-1576743826800)(cid:clip_image010.jpg)]
图1-1
(2)利用.mif文件,对ROM的存储单元00H~05H进行初始化。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E1UaaAA9-1576743826805)(cid:clip_image012.jpg)]
图1-2
(3)给定ROM存储区的地址:00H~05H,读ROM存储单元。要求通过分析仿真波形,检查数据的正确性。记录仿真波形、分析方法、分析过程和分析结果。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VF2rGkdV-1576743826807)(cid:clip_image014.jpg)]
图1-3
2、利用lpm_ram_dq,设计一个由128╳8位的RAM(地址空间:80H~FFH)构成的随机存储器系统。
(1)参考图(2),在QuartusⅡ中输入原理图,设计随机存储器系统。
随机存储器系统电路图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7RXydPcE-1576743826808)(cid:clip_image016.jpg)]
图2-1
(2)给RAM的存储单元80H~85H写入数据。要求通过分析仿真波形,检查数据的正确性。记录仿真波形、分析方法、分析过程和分析结果。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kIOK9QQw-1576743826808)(cid:clip_image018.jpg)]
图2-2
(3)给定RAM存储区的地址:80H~85H,读RAM存储单元。要求通过分析仿真波形,检查数据的正确性。记录仿真波形、分析方法、分析过程和分析结果。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xydhzhU2-1576743826809)(cid:clip_image020.jpg)]
图2-3
3.利用Quartus Ⅱ器件库提供的参数化存储单元lpm_ram_io,设计一个由128╳8位的RAM(地址空间:80H~FFH)构成的随机存储器系统。
(1)参考图(3),在QuartusⅡ中输入原理图,设计随机存储器系统。
随机存储器系统:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BnjQa39l-1576743826809)(cid:clip_image022.jpg)]
图3-1
(2)给RAM的存储单元80H~85H写入数据。要求通过分析仿真波形,检查数据的正确性。记录仿真波形、分析方法、分析过程和分析结果。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bgCaa1r2-1576743826810)(cid:clip_image024.jpg)]
图3-2
(3)给定RAM存储区的地址:80H~85H,读RAM存储单元。要求通过分析仿真波形,检查数据的正确性。记录仿真波形,仿真结果的分析方法、分析过程和分析结果。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X2f8lSKc-1576743826810)(cid:clip_image026.jpg)]
图3-3
4.利用Quartus Ⅱ器件库提供的参数化存储单元lpm_rom、lpm_ram_dq或lpm_ram_io设计一个由128╳8位的ROM(地址空间:00H7FH)和一个由128╳8位的RAM(地址空间:80HFFH)构成的存储器系统。
(1)参考图(4),在QuartusⅡ中输入原理图,设计存储器系统。
存储器系统:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w0i0Cubn-1576743826810)(cid:clip_image028.jpg)]
图4-1
(2)利用.mif文件,对ROM的存储单元00H~05H进行初始化。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FiVWYwOu-1576743826810)(cid:clip_image029.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6MhAhPWd-1576743826811)(cid:clip_image030.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fBMBLXn7-1576743826811)(cid:clip_image032.jpg)]
图4-2
(3)从05H单元读出一个8位数据存入88H单元。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RmICcFnu-1576743826811)(cid:clip_image034.jpg)]
图4-3
(4)将90H存入06H单元,将11H存入90H单元,请置相关控制信号(注意时序关系)实现下列功能:
给定06H,读出数据11H(即,实现间接寻址功能)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-18gqf1pa-1576743826819)(cid:clip_image035.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ddU1fozL-1576743826819)(cid:clip_image036.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HxSddC2V-1576743826820)(cid:clip_image038.jpg)]
图4-4
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1g0t530A-1576743826820)(cid:clip_image040.jpg)]
图4-5
(5)思考题:若给定起始地址后,要能实现自动从连续存储区读出数据,则实验电路应作怎样的改进,如何验证这一功能?
**六、**实验数据分析与小结
1、lpm_rom_dq只读存储系统
给定ROM存储区的地址:00H~05H,读ROM存储单元。
address[6…0] | inclock | outclock | q[7…0] |
---|---|---|---|
00H | ↑ | (inclock结束后)↑ | 0CH |
01H | ↑ | (inclock结束后)↑ | 16H |
02H | ↑ | (inclock结束后)↑ | 20H |
03H | ↑ | (inclock结束后)↑ | 2AH |
04H | ↑ | (inclock结束后)↑ | 38H |
05H | ↑ | (inclock结束后)↑ | 30H |
先给出需要访问的存储单元地址,然后给inclock一个上升沿,调动ROM.mif对应地址中的数据进行输入,然后给outclock一个上升沿,在输出端输出数据。
2、lpm_ram_dq随机存储器系统
(1)给RAM的存储单元80H~85H写入数据。
address[6…0] | data[7…0] | in | we |
---|---|---|---|
80H | 11H | ↑ | 1 |
81H | 12H | ↑ | 1 |
82H | 13H | ↑ | 1 |
83H | 14H | ↑ | 1 |
84H | 15H | ↑ | 1 |
85H | 16H | ↑ | 1 |
we保持高电平,进行写操作;给出存储单元地址,并对应给出需要存储在该地址的数据,然后给in一个上升沿,存入数据。过程中out保持低电平,无输出。
(2)给定RAM存储区的地址:80H~85H,读RAM存储单元。
address[6…0] | we | in | out | q[7…0] |
---|---|---|---|---|
80H | 0 | ↑ | (in结束后)↑ | 11H |
81H | 0 | ↑ | (in结束后)↑ | 12H |
82H | 0 | ↑ | (in结束后)↑ | 13H |
83H | 0 | ↑ | (in结束后)↑ | 14H |
84H | 0 | ↑ | (in结束后)↑ | 15H |
85H | 0 | ↑ | (in结束后)↑ | 16H |
we保持低电平,进行读操作;给出需要读数据的存储单元地址,无数据输入,首先给in一个上升沿,从RAM.mif存储单元中输入对应数据,然后给out一个上升沿,数据从输出端q[7…0]输出。
3、lpm_ram_io随机存储器系统
(1)给RAM的存储单元80H~85H写入数据。
address[7…0] | we | outenab | in | dio[7…0] | dio~r[7…0] |
---|---|---|---|---|---|
80H | 1 | 0 | ↑ | 11H | 11H |
81H | 1 | 0 | ↑ | 12H | 12H |
82H | 1 | 0 | ↑ | 13H | 13H |
83H | 1 | 0 | ↑ | 14H | 14H |
84H | 1 | 0 | ↑ | 15H | 15H |
85H | 1 | 0 | ↑ | 16H | 16H |
we保持高电平,outenab保持低电平,进行写操作;首先在address中给出需要写入数据的存储单元地址,并在dio中对应给出要写入的数据,然后给in一个上升沿,写入数据,out保持低电平。
(2)给定RAM存储区的地址:80H~85H,读RAM存储单元。
address[7…0] | we | outenab | in | out | dio~r[7…0] |
---|---|---|---|---|---|
80H | 0 | 1 | ↑ | (in结束后)↑ | 11H |
81H | 0 | 1 | ↑ | (in结束后)↑ | 12H |
82H | 0 | 1 | ↑ | (in结束后)↑ | 13H |
83H | 0 | 1 | ↑ | (in结束后)↑ | 14H |
84H | 0 | 1 | ↑ | (in结束后)↑ | 15H |
85H | 0 | 1 | ↑ | (in结束后)↑ | 16H |
we保持低电平,outenab保持高电平,进行读操作;首先在address中给出需要写入数据的存储单元地址,然后给in一个上升沿,从RAMio.mif存储单元中输入对应数据,之后给out一个上升沿,数据从输出端dio~r输出。
4、存储器系统
(1)从05H单元读出一个8位数据存入88H单元。运行期间nR0_BUS保持高电平,LDR0保持低电平。
第一周期:输入05H单元的地址
IN[7…0] | nSW_BUS | LDAR | cs_rom1 | rom_out | romgn | DBUS | ABUS |
---|---|---|---|---|---|---|---|
05H | 0 | ↑ | 0 | 0 | 1 | 05H | 00H→05H |
第二周期:读05H单元数据
IN[7…0] | nSW_BUS | LDAR | cs_rom1 | rom_out | romgn | DBUS | ABUS |
---|---|---|---|---|---|---|---|
00H | 1 | 0 | ↑ | ↑ | 0 | 00H→06H | 05H |
第三周期:输入88H单元的地址
IN[7…0] | nSW_BUS | LDAR | cs_rom1 | rom_out | romgn | DBUS | ABUS |
---|---|---|---|---|---|---|---|
88H | 0 | ↑ | 0 | 0 | 1 | 88H | 05H→88H |
之后:存入并读出88H数据
IN[7…0] | nSW_BUS | LDAR | romgn | WE | cs_ram1 | ram_out | ramgn | DBUS | ABUS |
---|---|---|---|---|---|---|---|---|---|
00H | 1 | 0 | 0 | 1 | ↑ | 0 | 1 | 06H | 88H |
00H | 1 | 0 | 1 | 0 | 0 | ↑ | 0 | 06H | 88H |
第一个周期输入05H单元的地址:保持nsw-bus低电平,给LDRD一个上升沿,将地址存入地址寄存器;第二个周期读05H单元数据:保持nsw-bus高电平,ROM的输出缓冲器输出时序信号romgn保持低电平,给ROM的输入时序信号一个上升沿,地址05H进入ROM,然后给输出时序信号一个上升沿,05H单元的数据输出为06H;第三个周期输入88H单元的地址:保持nsw-bus低电平,给LDRD一个上升沿,将地址存入地址寄存器;之后,给romgn一个下降沿,RAM的控制信号WE一个上升沿,数据06H进入RAM的数据端,给RAM的输入时序信号一个上升沿,数据存入88H单元;最后RAM的输出缓冲器输出时序信号ramgn保持低电平,给RAM的输出时序信号一个上升沿,数据输出为06H。
(2)给定06H,读出数据11H(即,实现间接寻址功能)。
第一、二、三个周期将11H存入90H单元,并输出
IN[7…0] | nSW_BUS | LDAR | romgn | WE | cs_ram1 | ram_out | ramgn | DBUS | ABUS |
---|---|---|---|---|---|---|---|---|---|
90H | 0 | ↑ | 1 | 0 | 0 | 0 | 1 | 90H | 90H |
11H | 0 | 0 | 1 | 1 | ↑ | 0 | 0 | 11H | 90H |
00H | 1 | 0 | 1 | 0 | 0 | ↑ | 0 | 11H | 90H |
第四个周期输入06H单元的地址
IN[7…0] | nSW_BUS | LDAR | cs_rom1 | rom_out | romgn | DBUS | ABUS |
---|---|---|---|---|---|---|---|
05H | 0 | ↑ | 0 | 0 | 1 | 06H | 06H |
之后,将06H的数据作为地址输入ROM读出其中的数据
IN[7…0] | nSW_BUS | LDAR | romgn | cs_rom1 | rom_out | cs_ram1 | ram_out | ramgn | DBUS | ABUS |
---|---|---|---|---|---|---|---|---|---|---|
00H | 1 | 0 | 0 | ↑ | ↑ | 0 | 0 | 1 | 90H | 06H |
00H | 1 | ↑ | 0 | 0 | 0 | 0 | 0 | 1 | 90H | 90H |
00H | 1 | 0 | 1 | 0 | 0 | ↑ | 0 | 1 | zzH | 90H |
00H | 1 | 0 | 1 | 0 | 0 | 0 | ↑ | 0 | 11H | 90H |
第一个周期输入90H单元的地址:保持nsw-bus低电平,给LDRD一个上升沿,将地址存入地址寄存器;第二个周期输入11H数据:保持nsw-bus高电平,保持RAM的控制信号WE高电平,进行写操作,然后给RAM的输入时序信号一个上升沿,数据11H存入90H单元;第三个周期RAM的输出缓冲器输出时序信号ramgn保持低电平,给RAM的输出时序信号一个上升沿,数据输出为11H;第四个周期输入06H单元的地址,保持nsw-bus低电平,给LDRD一个上升沿,将地址存入地址寄存器;之后,给romgn一个下降沿,RAM的控制信号WE保持低电平,进行读操作,然后给ROM的输入时序信号一个上升沿,再给其输出时序信号一个上升沿ROM数据90H进入DBUS,之后给LDRD一个上升沿,90H进入地址缓冲器,然后给RAM输入时序信号一个上升沿,保持RAM输出缓冲器时序信号ramgn保持低电平,给RAM的输出时序信号一个上升沿,数据输出为11H。
七、实验心得体会
通过本次实验,熟悉了静态随机存储器RAM和只读存储器ROM的工作特性和使用方法,熟悉了半导体存储器存储和读出数据的过程,了解使用半导体存储器电路时的定时要求,同时,对其原理组成也有了一定的认识。
在实验中也遇到了一些问题,在做最后一个存储器系统实验中,输出存在一定的问题,最后经过老师的指导,发现了仿真过程中,周期设定的问题,之后也发现原理图出现一些错误,得到了很好的解决。在此过程中,经过老师的讲解,熟悉了各个器件的作用以及运行流程,对半导体存储器的时序关系有了更透彻的了解。
1、lpm_rom0创建过程
第一步:存储器初始化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H0veF1AP-1576743826821)(cid:clip_image042.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0iF3W4WY-1576743826821)(cid:clip_image044.jpg)]
第二步:保存为.mif文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IZp3kuSA-1576743826822)(cid:clip_image046.jpg)]
第三步:存储器设置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xan7cUlT-1576743826823)(cid:clip_image048.jpg)]
图(a)开始设置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0FtmJR93-1576743826823)(cid:clip_image050.jpg)]
图(b)存储位置及名称
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-77L6n5Vt-1576743826823)(cid:clip_image052.jpg)]
图(c)数据位数大小
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dp2TYY3v-1576743826823)(cid:clip_image054.jpg)]
图(d)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BtteBOqU-1576743826824)(cid:clip_image056.jpg)]
图(e)与存储器关联
2**、lpm_ram_dq0****创建过程**
第一步:存储器初始化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FP7amQdC-1576743826824)(cid:clip_image042.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U3mL6WYC-1576743826824)(cid:clip_image058.jpg)]
第二步:保存为.mif文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sw4lbpaE-1576743826825)(cid:clip_image060.jpg)]
第三步:存储器设置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XEbAfn1m-1576743826825)(cid:clip_image062.jpg)]
图(a)开始设置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4NiRL5qJ-1576743826826)(cid:clip_image064.jpg)]
图(b)存储位置及名称
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i5H3j3iY-1576743826826)(cid:clip_image066.jpg)]
图(c)数据位数大小
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T38EuNau-1576743826826)(cid:clip_image068.jpg)]
图(d)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bGbowjOy-1576743826826)(cid:clip_image070.jpg)]
图(e)与存储器关联
3**、Lpm_ram_io1****创建过程**
第一步:存储器初始化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1iUQgi0O-1576743826827)(cid:clip_image072.jpg)]
第二步:保存为.mif文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8rHoOTJG-1576743826827)(cid:clip_image074.jpg)]
第三步:存储器设置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CgeHjVyg-1576743826849)(cid:clip_image076.jpg)]
图(a)开始设置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mTh1r3wd-1576743826849)(cid:clip_image078.jpg)]
图(b)存储位置及名称
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Atb75Ft2-1576743826850)(cid:clip_image080.jpg)]
图(c)数据位数大小
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q75eAYhI-1576743826850)(cid:clip_image082.jpg)]
图(d)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LlbbiKFT-1576743826850)(cid:clip_image084.jpg)]
图(e)与存储器关联
git下载地址https://gitee.com/jontyy/jontyy-Composition-principle.git