zynq7000中ddrc的配置

目标:为新项目中配置ddrc参数,使ddr能正常工作

工作环境:Win7sp1-64bit

工具:Vivado2015.4

1. 问题简介

       使用zynq7000系列SoC时,若使用DDR需对DDRC进行配置。Xilinx预设了几乎全是镁光的DDR芯片参数,因此若项目使用的就是镁光ddr,memory时序配置无需考虑,配置的只有pcb延时部分。
        Xilinx官方AR#46778(http://china.xilinx.com/support/answers/46778.html)指出了ddr延时由及trace lengths和package length两部分组成,前者对应ddrc中Length,后者对应Package Delay(Vivado)/Package Length(XPS)。
对于package length,Vivado或XPS均提供了依据所选芯片默认提取的参数(其实可以不用修改),但对有强迫症的童鞋(比如me)还是希望能有个详细的说明,但很不幸,Xilinx官方并未提供相关手册说明每个pin的package length,但我们可以通过Vivado的write_csv tcl命令得到

2. package length获取

这里举个例子,对ZedBoard上xc7z020clg484-1器件提取其参数

步骤:

a. 在Vivado下生成工程,并建立block design,添加zynq系统,使用ZedBoard预设参数。由于不存在PL部分,因此去除无用的PL时钟和连线,设置为顶层HDL

b. RTL Analysis -> Open Elaborated Design

c. 在Tcl Console(屏幕下方)中输入 write_csv C:/test.csv,这就在C盘输出了test.csv。这里有个bug,csv表里的Min Trace Delay和Max Trace Delay的单位其实是mil而不是ps

3. 实际工程应用

        上面那个表其实没啥用,因为vivado/xps其实都提供了默认package length,Xilinx的默认Propagation Delay(inch/ps) 是160,而镁光DDR Datasheet里是6.5ps/mm,即165.1inch/ps(按1inch=25.4mm)也差不多。
因此 ,需要填的其实也就是Length那一项(pcb上线长)。
此外,关于DRAM Training提供了3个算法,一般就都打开吧,能帮着计算延时参数,这时候上面提供的参数就作为搜索的初始值存在了!
我试过分别关闭DRAM Traing、不提供Length、不在最佳工作频率(如1066MHz)等措施,其实当pcb足够流弊时都不是问题(笑)经huyanjackson提醒,其实是配置寄存器中已经存放了默认参数信息了。。。


你可能感兴趣的:(FPGA,ZedBoard,zynq)