工程实例下载地址:http://pan.baidu.com/s/1hqJx3tMhttp://pan.baidu.com/s/1hqJx3tM
http://pan.baidu.com/s/1hqJx3tM
功能简介
本实例对Altera提供的DDR2控制器IP核模块进行操作,每1.78秒执行一次DDR2的写入和读出操作。先是从0地址开始遍历写256*64bits数据到DDR2的地址0-1023中;在执行完写入后,执行一次相同地址的读操作,将读出的256*64bits数据写入到片内RAM中供查看。在In-System Memory Content Editor中可以查看有规律变化的数据。
本实例系统功能框图如下图所示。
本实例有4个模块。
{C}● {C}Vip.v是顶层模块,其下例化了3个模块。
{C}● {C}Sys_ctrl.v模块中例化了PLL,并且对输入PLL的复位信号以及PLL锁定后的复位信号进行“异步复位,同步释放”的处理,确保系统的复位信号稳定可靠。
{C}● {C}Ddr2_controller.v模块是使用Mefunction例化的DDR2控制器IP核模块,这个模块预留了DDR2的读写控制接口供FPGA逻辑侧进行操作。
{C}● {C}data_source.v模块主要用于和DDR2控制器进行数据交互,它既产生写入DDR2的数据流,也读出DDR2已经写入地址的数据,同时将这些数据送往例化的onchip RAM中。
4个模块的层次结构如下图所示。
DDR2 IP核配置
如图所示,使用Megafunction选择DDR2的IP核。
各个配置页面的设置如下所示。首先预设我们所使用的DDR2型号。
点击“Modify parameters”,如图所示做一些定制化设置,修改burst length为8。
其它选项都使用默认设置。
实验说明
{C}1. 打开光盘目录“…\prj\vip_ex2”下的工程。
{C}2. 点击Quartus II菜单栏的ToolsàIn-System Memory Content Editor,在界面的右侧,如下图所示,选择“…\prj\vip_ex2\output_files”文件夹下的vip.sof,执行下载操作,即点击File右侧的小按钮。
{C}3. 下载完成后可以看到VIP板上的指示灯D1闪烁。此时我们接着选中Index下面的Memory项,然后单击循环读取按钮,如下图所示。
{C}4. 接着我们可以观察Memory当前的数据变化。如下图所示,绿色框起来的高字节数据,即我们每隔一秒多统一递增一次的数据,而其后的低字节数据则始终是从0开始递增和地址一一对应的递增数据。因此,我们看到的实验结果是,这个onchip RAM的所有16bit的高字节每隔一秒多递增一,而其后的数据则一直保持当前状态不变。
工程实例下载地址:http://pan.baidu.com/s/1hqJx3tMhttp://pan.baidu.com/s/1hqJx3tM
用户1755959 2015-12-21 14:57
用户377235 2015-10-25 21:51
用户1843194 2015-9-17 23:34
用户1825884 2015-1-16 10:47
zhujun74_602010376 2014-12-7 14:30
用户452567 2014-12-5 08:57