完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`例说FPGA连载44:DDR控制器集成与读写测试之Verilog代码解析 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc 本实例有8个模块,3个层级。其层次结构如图4.22所示。 图4.22 代码层次图 ● vip.v是顶层模块,其下例化了5个子模块,即sld_hub.vhd模块、ddr2_controller.v模块、data_source.v模块、onchipram_for_ddr.v模块、led_controller.v模块和sys_ctrl.v模块。该模块仅仅用于子模块间的接口连接,以及和FPGA外部的接口定义,该模块中未作任何的逻辑处理。 ● sld_hub.vhd二级子模块是一个软核IP,编译时自动产生,不是我们在顶层代码vip.v中例化的。它用于我们FPGA的片内RAM和Quartus II之间通过JTAG进行数据交互。换句话说,这个模块其实是一个JTAG协议的接口实现模块。该模块是VHDL编写,并且内部代码对用户是一个“黑盒”,我们只要会使用它就可以,无需关心它的代码内容。 ● ddr2_controller.v二级子模块也是一个软核IP,实现DDR2的时序控制功能,并且通过一个简单的Avalon接口实现DDR2和FPGA逻辑之间的读写数据传输。其实该模块下还有多个子模块,但由于只是一个IP核,内部代码不直接开放,所以我们姑且认为它是我们工程中的一个模块。 ● data_source.v二级子模块是用户逻辑,我们用它定时产生一组写入DDR2地址0-1023的连续的有规律的数据;并且我们也会定时的读出DDR2地址0-1023地址的数据,将这些数据再写入到FPGA例化的片内RAM里。 ● onchipram_for_ddr.v三级子模块是硬核IP,它例化实现了FPGA的一块片内RAM空间。 ● sys_ctrl.v二级子模块中例化了PLL模块,并且对输入PLL的复位信号以及PLL锁定后的复位信号进行“异步复位,同步释放”的处理,确保系统的复位信号稳定可靠。 ● pll_controller.v三级子模块为FPGA器件特有的IP硬核模块,其主要功能是产生多个特定输入时钟的分频、倍频、相位调整后的输出时钟信号。 ● led_controller.v二级子模块进行24位计数器的循环计数,产生分频信号用于实现LED指示灯的闪烁。 ` |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
884个成员聚集在这个小组
加入小组4532 浏览 0 评论
特权同学 Verilog边码边学 Lesson01 Vivado下载与安装
2644 浏览 1 评论
玩转Zynq连载50——[ex69] FIR滤波器IP仿真实例
4324 浏览 2 评论
玩转Zynq连载49——[ex68] MT9V034摄像头的图像FFT滤波处理
5264 浏览 1 评论
玩转Zynq连载48——[ex67] Vivado FFT和IFFT IP核应用实例
5310 浏览 0 评论
1941浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 12:23 , Processed in 0.607648 second(s), Total 66, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号