- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DDR2程序设计方案解读
DDR2程序设计方案
程序设计目标
实现DDR2的读写功能,并且读写正常。
程序设计思路
考虑到直接写DDR2读写时序有困难,所以使用DDR2 IP核。
调用DDR2 IP核,并且为DDR2 IP核生成相应的时钟,根据模块化思想,将读写操作进行封装成模块,在顶层模块为读写模块提供地址与数据。
程序具体设计
根据以上思路需要做到以下几点:
生成DDR2 IP核
基于DDR核的读写模块
顶层模块设计
使用PLL生成时钟
DDR2 IP核的生成过程
打开核生成器
创建一个新的工程
根据工程需要指定工程路径,并且给工程取名。
点击Part选择芯片型号,点击Generation选择语言,点击ok。
找到mig核,并双击,进入DDR2核生成过程。
进入DDR2 IP核的配置界面,核对建立工程时的信息,点击下一步
重新定义”Component Part”,点击下一步
点击下一步
选择DDR2_SDRAM,点击下一步
设置时钟为200M,数据位宽为16
点击此页的”Creat Custom Part”,设置器件名称为k4t1g164qf,此名称可以自由定义并作为DDR2芯片名,在最下方根据芯片手册选择相应的列地址,行地址以及BANK地址,点击保存,回到之前的页面,点击下一步
选择”Burst Length”为4,点击下一步
“System Clock”选择”Single-Ended”,单端时钟比较好操作,点击下一步。
接下来是DDR2引脚的配置,此时的配置需要明确DDR2在FPGA上的引脚,同时这一步也是检验DDR2引脚在FPGA上分配是否正确的方法。选择”Fixed Pin Out:...”这一选项,点击下一步
将FPGA的引脚标识添加到对应DDR2信号名称的引脚上。多余引脚,先找一些无用的引脚填上,之后再修改ucf文件即可。如果ucf已经存在,也可以使用”ReadUCF”来进行加载,如果引脚有不正确的分配,进行”Valide”时会提示错误。如果无错误,点击下一步
点击下一步
选择”Accept”,点击下一步,之后一直点击下一步,直到最后点击”Generate”,生成DDR2 IP核。
到此DDR2 IP核生成完成。
打开DDR2 IP核所在文件,ucf文件在par目录下,下图是路径,此ucf文件中有之前配置的引脚,其中一些引脚需要修改或删除。
基于DDR2核的读写模块设计
DDR2 IP核信号介绍
DDR2读写需要操作的信号如下:
信号 位宽 定义 phy_init_done 1 此信号为DDR2初始化信号,此信号为高有效 rst0_tb 1 DDR2操作时的复位信号,此信号高电平有效 clk0_tb 1 DDR2操作时的时钟信号 app_wdf_afull 1 写数据时FIFO满标志,为1时表示满 app_af_afull 1 写地址时FIFO满标志,为1时表示满 rd_data_valid 1 读数据时,数据输出有效标志 app_wdf_wren 1 写数据使能 app_af_wren 1 写地址使能 app_af_addr 31 地址线,无效的位写1(建议) app_af_cmd 3 命令信号,000为写数据,001为读数据 rd_data_fifo_out 32 数据输出端口 app_wdf_data 32 写数据时的数据输入线 app_wdf_mask_data 4 写入数据时的数据屏蔽信号
DDR2 IP核读写时序分析
写时序分析
此图中的写数据是4突发连续写
图中reset_tb为复位信号,本次生成核的复位信号为rst0_tb,此信号为1表示复位。phy_init_done为DDR2初始化完成信号,如果此信号不为高,表示DDR2核未完成初始化,此时DDR2核无法工作。
在复位无效并且phy_init_done为高的情况下,进行突发写数据。
这里突发长度为4个数据,4个16位的数据,app_wdf_data的位宽为32位,所以需要写两次数据,即图中所示的D1D0,D3D2。地址是4的倍数,如第一个地址为0,第二个地址便为4,之后就是8,12...
读时序分析
在不断写入地址的过程中,数据会在rd_data_valid拉高的时候通过rd_data_fifo_out输出。
不断写入地址,等待rd_data_valid拉高,读rd_data_fifo_out中的数据。
读数据也一样,地址是以4为基数不断累加输入的。
顶层模块设
您可能关注的文档
- 天府新城分中心农电实训基地大修---施工组织设计精要.doc
- C语言教学大纲解读.doc
- 斑马打印机105slplus驱动安装说明书讲述.doc
- C语言文件的输入与输出解读.ppt
- C语言测试题:文件解读.doc
- C语言期末复习1011-2解读.ppt
- C语言模拟题解读.doc
- C语言实验案列解读.doc
- C语言的文件操作函数讲解解读.doc
- 文艺复兴时期欧洲美术讲述.ppt
- 江西省鹰潭市贵溪市2024年数学六上期末质量检测模拟试题含解析.doc
- 江苏省南京市凤凰花园城小学2024-2025学年六年级数学第一学期期末学业水平测试试题含解析.doc
- 江苏省南京市雨花台区2024年数学六年级第一学期期末学业水平测试试题含解析.doc
- 江西省赣州市定南县2024-2025学年数学六上期末质量检测模拟试题含解析.doc
- 晋城市高平市2024年六年级数学第一学期期末达标检测模拟试题含解析.doc
- 江西省九江市瑞昌市2024-2025学年数学六年级第一学期期末学业水平测试试题含解析.doc
- 江西省吉安市万安县2025届数学六年级第一学期期末联考试题含解析.doc
- 江苏省徐州市明诚小学2025届六年级数学第一学期期末经典试题含解析.doc
- 江西省赣州区2025届六上数学期末综合测试试题含解析.doc
- 江苏省盐城市2024年数学六上期末经典试题含解析.doc
文档评论(0)