实验 55 SDRAM 读写测试实验.docx
- 文档编号:10965807
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:14
- 大小:487.34KB
实验 55 SDRAM 读写测试实验.docx
《实验 55 SDRAM 读写测试实验.docx》由会员分享,可在线阅读,更多相关《实验 55 SDRAM 读写测试实验.docx(14页珍藏版)》请在冰豆网上搜索。
实验55SDRAM读写测试实验
实验5.5SDRAM读写测试实验
·实验说明
该实验主要完成对SDRAM读写的测试。
主要讲解如何使用SDRAM,由于DE2-115上的SDRAM是两片,所以比使用Flash稍微复杂一点点。
通过本实验,读者应该了解不同器件对时钟的需求不同,并学会如何创建新的时钟。
两片SDRAM的用法可以是统一使用,即只建立一个SOPC的SDRAM模块,数据宽32位,也可以分开使用,即建立两个SOPC的模块,数据宽度16位。
本例是读写测试,使用前一种用法。
·实验步骤
5.5.1建立Quartus工程
1.建立一个新的工程SDRAMTest。
2.重新设置编译输出目录为../SDRAMTest/release
5.5.2建立SOPC系统
3.打开SOPCBuilder,建立一个名为SDRAMTest_System的SOPC系统,并指定
VHDL为描述系统的语言。
4.在系统上添加On-ChipMemory。
大小设置20k。
5.添加NiosIIProcessor。
依旧选择S型。
6.添加左侧的MemoriesandMemoryControllers->SDRAM->SDRAMController:
图5-61SDRAMController设置第一页
配置第一页中,presets选择Custom,DataWidth选择32,ChipSelect选1,Bank4,Row选13,Column选10,确认Memoriessize=128MB。
第二页中,Issueonerefreshcommandevery填15.625us,Delayafterpowerup,beforeinitialization填100us,Accesstime(t_ac):
6ns。
如图5-61与图5-62。
图5-62SDRAMController设置第二页
注意:
这两页的配置数据出自友晶DE2-115的光盘上的样例
7.如此再添加一块SDRAM,分别命名为sdram。
8.添加jtag_uart,这个系统的输出连到NiosIIIDE的Console,需要jtag_uart支持。
9.添加pll,在左侧PLL->PLL,在弹出的窗口中选择LaunchAltera’sALTPLLMegaWizard,如图5-63。
图5-63PLL设置第一页
10.弹出窗口如图5-64所示,单击next按钮。
图5-64ALTPLL设置第一页
11.如图5-65所示,继续执行next按钮。
图5-65ALTPLL设置第二页
5.如图5-66所示,继续执行next。
图5-66ALTPLL设置第三页
13.来到第一个输出时钟的设置,倍频选2,即给系统时钟100MHz,如图5-67。
第二输出时钟设为一个负65度相位的100MHz时钟,给SDRAM,如图5-68。
图5-67ALTPLL设置第四页
图5-68ALTPLL设置第五页
14.之后一路执行next,直到MegaWizardfinish,回到PLL添加页面。
如图5-69所示,单击Finish。
图5-69ALTPLL设置第五页
15.回到SOPC系统视图,在右上方时钟视图中右击对应时钟信号选择Rename修改时钟名字,clk改为clk_50,pll.c0改为pll.c0_system,pll.c1改为pll.c1_memory,并将除pll外各器件的时钟用下拉框选择系统时钟,如图5-70.
图5-70ALTPLL设置第五页
16.SystemAuto-AssignAddress分配地址,generate生成系统。
5.5.3完成顶层实体
17.添加代码到SDRAMTest.vhd。
18.分配引脚
clkInputPIN_Y22
rstInputPIN_M23
za_ba[1]OutputPIN_R42
za_ba[0]OutputPIN_U72
zs_addr[12]OutputPIN_Y72
zs_addr[11]OutputPIN_AA5
zs_addr[10]OutputPIN_R52
zs_addr[9]OutputPIN_Y62
zs_addr[8]OutputPIN_Y52
zs_addr[7]OutputPIN_AA7
zs_addr[6]OutputPIN_W7
zs_addr[5]OutputPIN_W8
zs_addr[4]OutputPIN_V52
zs_addr[3]OutputPIN_P11
zs_addr[2]OutputPIN_U82
zs_addr[1]OutputPIN_V82
zs_addr[0]OutputPIN_R62
zs_cas_nOutputPIN_V72
zs_ckeOutputPIN_AA6
zs_clkOutputPIN_AE5
zs_cs_nOutputPIN_T42
zs_data[31]BidirPIN_U12
zs_data[30]BidirPIN_U42
zs_data[29]BidirPIN_T32
zs_data[28]BidirPIN_R32
zs_data[27]BidirPIN_R22
zs_data[26]BidirPIN_R12
zs_data[25]BidirPIN_R72
zs_data[24]BidirPIN_U52
zs_data[23]BidirPIN_L71
zs_data[22]BidirPIN_M7
zs_data[21]BidirPIN_M4
zs_data[20]BidirPIN_N41
zs_data[19]BidirPIN_N31
zs_data[18]BidirPIN_P21
zs_data[17]BidirPIN_L81
zs_data[16]BidirPIN_M8
zs_data[15]BidirPIN_AC2
zs_data[14]BidirPIN_AB3
zs_data[13]BidirPIN_AC1
zs_data[12]BidirPIN_AB2
zs_data[11]BidirPIN_AA3
zs_data[10]BidirPIN_AB1
zs_data[9]BidirPIN_Y42
zs_data[8]BidirPIN_Y32
zs_data[7]BidirPIN_U32
zs_data[6]BidirPIN_V12
zs_data[5]BidirPIN_V22
zs_data[4]BidirPIN_V32
zs_data[3]BidirPIN_W1
zs_data[2]BidirPIN_V42
zs_data[1]BidirPIN_W2
zs_data[0]BidirPIN_W3
zs_dqm[3]OutputPIN_N81
zs_dqm[2]OutputPIN_K81
zs_dqm[1]OutputPIN_W4
zs_dqm[0]OutputPIN_U22
zs_ras_nOutputPIN_U62
zs_we_nOutputPIN_V62
19.编译下载
5.5.4软件设计
20.打开NiosIIIDE进行软件设计。
将工作空间切换到../SDRAMTest/software。
21.新建空白工程,添加以下C代码到main.c。
#include"stdio.h"
#include"system.h"
#include"altera_avalon_pio_regs.h"
#include"alt_types.h"
intmain()
{
short*sdram=(short*)SDRAM_BASE;
inti;
intright;
shorttemp;
printf("testingsdram...\n");
for(i=0;i<0x1000000;i++)
*(sdram+i)=0x55aa;
right=1;
for(i=0;i<0x1000000;i++)
{
temp=*(sdram+i);
if(temp!
=0x55aa)
{right=0;
printf("sdramtestfailedat%d",i);
break;
}
}
if(right)
printf("sdramtestok!
\n");
return0;
}
22.配置编译器参数为-Os。
23.置SystemLibraryProperties,去掉SupportC++,勾上SmallClibrary,确认右边使用的是onchip_mem,没有使用两块SDRAM,输入输出使用jtag_uart,如图5-71所示。
5-71SystemLibrary配置
24.编译工程并运行之,结果正确。
参看图5-72。
图5-72100MHz下的测试结果
25.如图5-73所示。
如果没有按照前文中指示的那样,修改时钟为100MHz,而使用默认的50MHz,则会出现下面这种情况:
图5-7350MHz下的测试结果
这主要是器件切换的时延和CPU指令执行的时延不匹配造成的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 55 SDRAM 读写测试实验 读写 测试