特权同学

FPGA-VIP视频工程开发连载1——DDR2控制器

0
阅读(2342)

FPGA-VIP视频工程开发连载1——DDR2控制器

工程实例下载地址: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中可以查看有规律变化的数据。

本实例系统功能框图如下图所示。

QQ图片20141201104104.jpg

本实例有4个模块。

Vip.v是顶层模块,其下例化了3个模块。

Sys_ctrl.v模块中例化了PLL,并且对输入PLL的复位信号以及PLL锁定后的复位信号进行“异步复位,同步释放”的处理,确保系统的复位信号稳定可靠。

Ddr2_controller.v模块是使用Mefunction例化的DDR2控制器IP核模块,这个模块预留了DDR2的读写控制接口供FPGA逻辑侧进行操作。

data_source.v模块主要用于和DDR2控制器进行数据交互,它既产生写入DDR2的数据流,也读出DDR2已经写入地址的数据,同时将这些数据送往例化的onchip RAM中。

4个模块的层次结构如下图所示。

QQ图片20141201105245.jpg

DDR2 IP核配置

如图所示,使用Megafunction选择DDR2IP核。

QQ图片20141201105346.jpg

各个配置页面的设置如下所示。首先预设我们所使用的DDR2型号。

QQ图片20141201105429.jpg

点击“Modify parameters”,如图所示做一些定制化设置,修改burst length8

QQ图片20141201105449.jpg

其它选项都使用默认设置。

实验说明

1.打开光盘目录“…\prj\vip_ex2”下的工程。

2.点击Quartus II菜单栏的ToolsàIn-System Memory Content Editor,在界面的右侧,如下图所示,选择“…\prj\vip_ex2\output_files”文件夹下的vip.sof,执行下载操作,即点击File右侧的小按钮。

QQ图片20141201105519.jpg

3.下载完成后可以看到VIP板上的指示灯D1闪烁。此时我们接着选中Index下面的Memory项,然后单击循环读取按钮,如下图所示。


4.接着我们可以观察Memory当前的数据变化。如下图所示,绿色框起来的高字节数据,即我们每隔一秒多统一递增一次的数据,而其后的低字节数据则始终是从0开始递增和地址一一对应的递增数据。因此,我们看到的实验结果是,这个onchip RAM的所有16bit的高字节每隔一秒多递增一,而其后的数据则一直保持当前状态不变。

QQ图片20141201105542.jpg

工程实例下载地址:http://pan.baidu.com/s/1hqJx3tMhttp://pan.baidu.com/s/1hqJx3tM


Baidu
map