热度 25
2014-12-10 10:38
4095 次阅读|
6 个评论
FPGA-VIP 视频工程开发连载 1 —— DDR2 控制器 工程实例下载地址: http://pan.baidu.com/s/1hqJx3tM http://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/1hqJx3tM http://pan.baidu.com/s/1hqJx3tM