altera-ddr2-sdram-ip核参数设置及读写时序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1、Uniphy整体框图:2、存储控制器连接图PHY的时钟与复位信号1、pll_ref_clk:PLL参考时钟输入。2、global_reset_n:全局复位信号,对PLL和PHY里的所有逻辑单元进行复位。3、soft_reset_n:软复位信号,对phy复位,不对PLL复位。当soft_reset_n为低时,输出的afi_reset_n信号也为低。3、各个模块间的接口信号3、1控制器与用户接口间使用的Avalon相关信号线:下表是本地接口信号,在altera例化的IP核里,本地用户接口使用的是avalon总线Local_addr:指的是用户接口端的地址线,位宽计算方法如下:1)当只使用1pcs外部存储器时:位宽=bank位宽+行位宽+列位宽-1;2)当使用多片片外存储器时:位宽=芯片位宽+bank位宽+行位宽+列位宽-1;计算位宽时减1是因为用户数据接口宽度是memory侧数据宽度的两倍(memory侧是在时钟的上升和下降沿都收发数据,而用户侧只在时钟的上升沿收发数据,假如用户读写数据的时钟频率与memory侧的数据频率相同,那么,在时钟上升沿来时,用户侧发送的数据位宽应是memory侧数据位宽的两倍)。local_be:字节使能信号(用于向控制器写数据时),与memory侧的DM(datamask)信号作用一样,比如,当想使local_data的某8位数据无效,将local_be的对应位置0即可。local_burstbegin:本地突发开始信号,当avalon总线开始突发读写时,将此信号置位‘1’。(使用条件:本地接口是avalon总线,且memory侧的突发长度大于2)local_size:本地突发长度,即连续读或写的local_data个数。长度不能超过ddrip核里配置的maximumavalon-mmburstlength的长度。local_wdata:本地写数据。local_write_req:写请求信号。只有当local_ready信号为高时,才能发起写请求。local_rdata:本地读数据。local_read_req:读请求信号。只有当local_ready信号为高时,才能发起读请求。local_rdata_valid:本地读数据有效标志,当其为高时,表示此时local_rdata数据有效。local_ready:为‘1’时表示此时控制器可以接受读写请求信号。local_refresh_req:刷新控制器请求信号。local_refresh_ack:刷新请求确认标志,表示一次刷新完成标志。local_init_done:本地初始化memory完成标志。local_wdata_req:写数据请求信号。在avalon-mm模式时不使用该信号。3、2controller与PHY间的接口信号线时钟与复位信号afi_clk:AFI接口的所有数据变化都是与该时钟同步的。地址和控制信号写数据相关信号读数据相关信号afi校准状态信号跟踪管理信号3、3PHY与外部memory间的接口信号线ddr_dq:数据线接口,位宽是local_wdata,local_rdata的1/2(因为memory是双边沿读写数据)。ddr_dqs:探测ddr_dq上的数据信号。读操作时,ddr_dqs边沿与读数据边沿对齐;写操作时,ddr_dqs边沿与写数据中间对齐。clk_to_sdram,clk_to_sdram_n:memory的差分时钟输入。ddr_a[]:memory的地址总线。ddr_ba[]:memory的bank地址总线。ddr_cas_n:memory列地址有效信号。ddr_cke[]:memory的时钟使能信号。ddr_cs_n[]:memory的片选信号。ddr_dm:datamask写数据到memory时,ddr_dq上的数据是否屏蔽。(ddr_dm为‘1’时,对应ddr_dq数据无效;为‘0’时数据有效)。ddr_odt:memory内部终结电阻器控制信号。(memory在内部集成了终结电阻,以减少反射的干扰信号)ddr_cas_n:memory行地址有效信号。ddr_we_n:memory写数据使能信号。4、ddr2sdram的half-rate,full-rate读写时序。full-rate时:afi_clk与mem_ck频率相同。avl_data数据位宽是mem_data的2倍half-rate时:afi_clk是mem_ck频率的一半。avl_data数据位宽是mem_data的4倍4、1full-rateddr2sdramwrite时序4、2half-rateddr2sdramwrite时序4、3full-rateddr2sdramread时序4、4half-rateddr2sdramread时序5、altera例化ddr2sdramip核参数设置首先肯定是在quartusii里新建一个工程,然后选择tools-MegawizardPlug-inManager选择创建一个新的IP核,然后在interface-externalmemory里找到ddr2sdram选中,命名。然后点击next就出来ddr2ip核的配置界面。fpga芯片选用的是CycloneV:5CEFA5F23C8。速度等级是85.1InterfaceType勾选此项表示使能硬核外部存储器接口。不勾选表示用逻辑单元去生成ddr2ip核。硬核与软核的区别。1、硬核是固化在FPGA内部的专用硬件电路,而软核是用逻辑单元去构建的;1、硬核的可工作频率比软核更高;2、硬核的外接memory引脚只能用指定的引脚,而软核可以自己指定。5.2PHYSettingsSpeed_Grade:8(fpga芯片选用的是CycloneV:5CEFA5F23C8。速度等级是8。Generatephyonly:勾选此选项的话,就只会生成PHY模块,不会生成控制模块。Memoryclockfrequency:memory工作的时钟频率,此值不能超过min{fpga芯片指定的工作频率,Memorydevicespeedgrade}。本工程中设置的Memoryclockfrequency为200Mhz。PLLreferenceclockfrequency:25Mhz给IP核锁相环输入的时钟频率。RateonAvalon-MMinterface:有Half和Full两个选项。Half:指本地用户接口的时钟频率afi_clk为memory侧时钟的1/2。Full:则本地用户接口的时钟频率afi_clk与memory侧时钟频率相同。AdvancedPHYSettingsPLL,DLL,OCTsharingmode设置其PLL,DLL,OCT是否输出给其他的UniPHY模块使用。EnableAFIhalfrateclock:表示使能输出AFIhalfrateclock,频率为AFIrateclock的一半5、2MemoryParametersMemory的参数设置,根据memory的datasheet设置。Memoryvendor:选择memory的器件厂家,本工程选择MicronMemoryformat:选择memory的形式,本工程选择DiscretedeviceDiscretedevice:分立器件。就是单片的memoryDIMM:Dual-Inline-Memory-Modules,即双列直插式存储模块。UnbufferedDIMM:不带缓存的内存,也就是说在内存条PCB上没有缓存(buffer)或寄存器(register)的内存条。这类内存条主要定位于桌面PC市场,是我们常见的低价内存模组。它的主要工作原理是所有的信号都是从内存控制器直通到DRAM芯片颗粒上,信号传输延迟小性能较高。但也正是这个原因UnbufferedDIMM并不如带寄存器的内存模组工作稳定,因而UnbufferedDIMM一般不在服务器上应用,可以应用在要求不高的桌面PC上。RegisteredDIMM:最常见的内存模块类型。RDIMM使用寄存器,从电力上将内存模块从剩余主板中隔离出来。积极的一方面是,只需更少的电力负载支持,系统能够填充更多RDIMM,支撑内存容量。不好的是缓冲组件增加了对内存转换的延迟,稍微降低了性能并增加了能耗需求。Memorydevicespeedgrade:memory的速度等级,根据memory手册选择,本工程选333.333MhzTotalInterfacewidth:memroy数据总线(DQ)的宽度,本工程选择16位宽。DQ/DQSgroupsize:指每一组DQS对应的DQ位宽。自动生成位8NumberofDQSgroups:DQS的组数,自动生成为2Numberofchipselects:memory芯片的个数本工程用了1pcsmemroy,选择1Numberofclocks:memory使用的时钟个数。本工程为1。Rowaddresswidth:memory的行地址宽度,本工程为13。Columnaddresswidth:memory的列地址宽度,本工程为10。Bank-addreswidth:memory的bank宽度。EnableDMpins:使能memory的DM(datamask)pins。DQS#Enable:使能DQS(DQstrobe)引脚。Burstlength:设置memory的突发长度,即memory一次读写的数据(DQ)个数。ReadBurstType:设置突发读的方式一般都是用Sequential。Sequential:顺序读,即给一个初始地址,读的下一个数据的地址就是初始地址+1。Interleaved:交叉模式。下面截图是美光ddr2spec里Interleaved的工作模式。DLLprechargepowerdown:DLL在预充电下电时,DDL选择“fastexit”or“slowtxit”,选择默认fastexit。MemoryCASlatencysetting:指设置CAS(列地址选通脉冲)潜伏周期,从CAS与读取命令发出到第一个数据输出的时间。从memorydatasheet查找,本处为4。Outputdrivestrengthsetting:输出驱动阻抗设置,选择默认的full。MemoryadditiveCASlatencysetting:选择默认设置0。ODTsetting:终结电阻值设置。SRTEnable:刷新速率设置。0°到85°时选择1xrefreshrate,大于85°选2X;此处选择1X。5、3MemoryTiming该部分主要是设置memory的一些时序参数,具体参数值可以查询memory对应的datasheet。或者从下图的Preset里选择对应你使用的memory器件型号,双击就会设置好memorytiming里的参数。下面几个截图就是从美光memory型号MICRONMT47H64M16HR-3IT里边查找到的时序参数。tRP=15nstRCD=15ns,tRRD=10nstRFC=127.5nstDQSCK=400pstDQSS=0.25cycletDQSH=0.35cycletDSS=0.2cycletDSH=0.2cycletDQSQ=240pstQHS=340pstDSb=100pstDHb=175pstISb=200pstIHb=275pstRAS=40pstFAW=50pstRTP=7.5ps(因为tCK=3.75,所有tRTP=2cycle)tWR=15pstWTR=7.5nstMRD=2cycletRFC=127.5nsTREFIIT=3.9usTinit=200us初始化时间,从datasheet里的初始化时序图上得出。5、4BoardSettingPcb板仿真参数设置,主要是与PCB板上走线一些时序相关设置。采用默认的设置即可。5、5Contr

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功