UG388翻译Chapter4.docx
- 文档编号:3709653
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:14
- 大小:380.08KB
UG388翻译Chapter4.docx
《UG388翻译Chapter4.docx》由会员分享,可在线阅读,更多相关《UG388翻译Chapter4.docx(14页珍藏版)》请在冰豆网上搜索。
UG388翻译Chapter4
Spartan-6存储器控制器用户手册UG388
Chapter4
MCBOperation
•启动顺序
•校准
•指令
•寻址
•命令路径的时序
•写时序路径
•读取路径的时序
•存交易
•自刷新
•暂停
•字节地址到存地址转换
•交易订货和一致性
启动顺序
图4-1显示了MCB的启动过程。
后在FPGA已经完全
配置和PLL提供的系统时钟锁定,一些初始化
并通过MCB自动进行校准步骤,准备进行正常的
操作。
FPGA配置及PLL锁定
第1阶段校准输入端接
存储设备模式寄存器加载
第2阶段校准DQS居中
开始正常运行
第3阶段连续校准调整DQS
关于关图4-1的注:
1。
软校准模块实现阶段1,2的一些方面,与3的
校准。
2。
MCB的硬校准逻辑不执行单独的逐比特去歪斜DQ数据总线。
按照PCB布局考量的准则,第40页,以确保DQ/DQS电路板走线的长度正确匹配。
(1)第一个主要的操作是校准的第一阶段。
在该步骤中,软校准模块测量RZQ引脚的外部电阻器的值,以确定若干预先定义的MCB标签(例如,DQ总线)所需的片上输入端接值。
仅当用户选择MIGGUI流量校准输入终端选项(参见UG416“设定的FPGA选项”部分的Spartan-6FPGA存储器接口解决方案用户指南)发生。
否则,一个近似的未校准的片端接或外部端接假设,而这个启动的步骤被跳过。
(2)启动顺序的第二个主要步骤是加载存储设备模式寄存器与所需的参数。
存储设备已配置后,校准的第2阶段发生。
这个阶段添加延迟到进入FPGA的DQS选通信号的输入路径。
我们的目标是在DQS选通转移到了将成为读数据采集窗口的中心。
(3)一旦所有的启动顺序中的操作已经完成,MCB的进入正常运行。
当启动序列正在进行中,命令和数据可以被加载到用户界面的FIFO,但没有执行命令,直到校准完成和块进入正常运行。
在正常操作时,软校准模块连续监测用于延迟DQS输入路径(上IDELAY的更多信息,请参阅了Spartan-6FPGA的SelectIO™资源用户指南)的IDELAY单元的抽头延迟值。
这样做的目的是测量在每个抽头的延迟值,由于操作过程中的电压或温度变化的任何变化。
如果tap延迟值的转变被检测到,在DQS选通输入路径的tap延迟计数可调节,以保持他们在读数据采集窗口居中。
更新到IDELAY值是在存刷新操作来完成,以避免影响正常的数据操作和控制效率。
校准第三阶段被称为连续DQS调整。
见校准就calibration.To各个阶段的详细信息实现最佳的信号完整性和最大的时序裕量(因此,最高性能)的存储器接口,MCB的自动执行几种形式校准的启动顺序,第43页的简要概述。
在MCB和MIG工具(或EDK)中产生的软校准模块硬盘校准逻辑共同努力,实现一个可靠,灵活的校准方案。
校准的每一相将在下面更详细地讨论。
注:
校准阶段2,在这第3条的说明假设
C_MC_CALIBRATION_MODE属性设置为“校准”,如表2-2,第20页所述
阶段1:
输入终端
片上匹配减少了元件数量并通过移动终端的接近信号传输尽可能的端点改善信号完整性。
米格和EDKGUI界面允许“校准输入终端”被选定为MCB的预先定义的PIN。
此功能可创建一个片上输入端接MCB上根据引脚上的外部电阻器已校准,使其使用“未校准输入终端”选项时比更精确。
软校准模块使用两个I/O引脚,RZQ和ZIO,由MIG工具(或EDK)的产生来执行输入端接的校准。
RZQ是所有小型断路器设计所需的引脚。
当校准输入终端时,一个电阻必须连接之间的RZQ引脚和地与一个值的两倍所需的输入阻抗(例如,一个100Ω的电阻,以实现有效的50Ω输入终端)的(2R)表示。
RZQ应保留为一个无连接(NC)引脚不使用校准输入终端的设计。
此外,RZQ引脚必须是相同的I/O组的存储器接口引脚。
该ZIO针时,才需要使用校准输入终端的设计,必须是一个无连接引脚(即没有连接到任何PCB走线)分配给MCB段(bank)部有效的封装引脚(即保税I/O)的位置。
的RZQ和ZIO引脚的默认位置可以在UCF约束文件中找到。
软校准模块依赖于执行必要的输入端接所需的校准为SSTLI/O标准的VREF供应。
当不同的I/O标准的使用(例如,用于移动DDR),通常不会要求VREF电源,外部VREF源仍必须要是一个校准输入终端是需要提供的。
校准阶段1有效测量外部2R电阻和方案的MCB引脚的I/O模块来创建VCCO和GND之间的分裂终端的价值。
这项计划将创建一个戴维宁等效终端接VCCO/2与R值,如图4-2所示。
第2阶段:
DQS居中
为了获得最佳性能和最大的时序余量,DQS选通信号的边缘必须集中在读取数据的捕获窗口与输入捕捉触发器。
校准的第二阶段是负责这DQS定心操作。
DDR存储器器件输出引脚发送读数据(DQ)和DQS选通边沿对齐到FPGA输入引脚,如图4-3所示。
可靠的操作,DQS选通信号必须延迟相对于DQ位,这样它捕获读取数据远离数据总线的过渡区域。
在这个阶段,在DQS选通输入路径的IDELAY模块的抽头延时计数递增转移部的DQS信号的捕获触发器进会变成什么样的读数据采集窗口,如图4所示中心-3。
第3阶段:
连续调整DQS
期间在IDELAY抽头值操作的变化,引起电压和温度变化。
因为DQS选通信号是由半个位周期延迟超过了DQ位,它使用更显著IDELAY抽头。
因此,如果每响应于电压或温度漂移的IDELAY元素改变抽头的延迟值,DQS选通信号输入端路径上的延迟看到一个不相称的移相到DQ位。
为了补偿电压和DQS选通与温度有关的转移,校准三期正常运行期间连续运行。
它使用的软校准模块连续监测用于延迟DQS输入路径的IDELAY元件的抽头延迟值。
如果tap延迟值的转变被检测到,在DQS选通输入路径的tap延迟计数可调节,以保持他们在读数据采集窗口居中。
更新到IDELAY值是在存刷新操作来完成,以避免影响正常的数据操作和控制效率。
Instructions
表4-1提供了MCB实现的所有存储器指令的详细说明。
加载指令到一个用户界面端口的命令FIFO中,3位代码的指令被移入pX_cmd_clk的上升沿pX_cmd_instr[2:
0]输入。
Write000
存储器写。
写入的由pX_cmd_bl[5:
0]至开头处由pX_cmd_addr指定[29:
0]的字节地址处的存储器设备中指定的数据字的数目。
之前发出此指令时,有足够的数据必须被装入写数据FIFO来完成交易。
否则数据“不足”的情况发生。
该指令是有效的只写和双向端口。
Read001
存读取。
读取由pX_cmd_bl[5:
0]从在由pX_cmd_addr[29:
0]中指定的字节地址开始的存储装置中指定的数据字的数目。
之前发出这个指令,读取数据FIFO必须有足够的空间来完成交易。
否则数据“溢出”的情况发生。
该指令是有效的只读和双向端口。
WritewithAutoPrecharge
存储器写带自动预充电。
该指令是一样的写指令,但与自动预充电突发完成后追加。
自动预充电关闭交易结束那里的DRAM组。
这样可以提高延迟时间与倾向于在同一组的行间跳转更多的随机接入模式的应用程序。
注:
MCB朝前看在随后的交易。
如果下面的交易是在当前事务访问的同一行中的自动预充电被跳过。
ReadwithAutoPrecharge
存储器写带自动预充电。
该指令是一样的写指令,但与自动预充电突发完成后追加。
自动预充电关闭交易结束那里的DRAM组。
这样可以提高延迟时间与倾向于在同一组的行间跳转更多的随机接入模式的应用程序。
注:
MCB朝前看在随后的交易。
如果下面的交易是在当前事务访问的同一行中的自动预充电被跳过。
...
Refresh
存刷新。
提示MCB发出刷新命令到存储设备。
重置tREFI计数器允许数据流不间断完全刷新周期。
此指令只能用于高度定制的数据流结构。
在一般情况下,断路器自动发出自身的刷新命令,周期性地导致对交易延迟增加。
寻址
从用户界面的角度来看,MCB提供了一个简单和连续字节寻址方案到物理存。
在固定段的DRAM存储数据是通过该方案抽象,允许一个简单的类似SRAM的地址接口的事实。
关于如何在段,行和列地址位被映射到字节地址的详细信息,请参阅字节地址到存地址的转换,第58页。
表4-2显示了如何呈现给用户界面的字节地址必须对齐到端口宽度。
这取决于在该端口宽度的字节数,一定数量的低地址位必须被设置为0,以确保连续的地址落在数据字的边界。
写数据屏蔽输入(pX_wr_mask)的用户界面,可用于抵销的起始地址字节的位置。
例如,要开始使用32位(4字节)的用户界面时,在字节地址0x01写作,呈现给用户界面的命令端口字节地址应该是0x00,以满足表4-2的要求,但的至少显著掩膜位应该被设置为1,使得仅在字节地址0x01和更高的实际写入。
表4-2:
用于字节地址对齐地址的要求
每个数据字地址要求端口宽度字节
32位4pX_cmd_addr[1:
0]=2'b00
64比特8pX_cmd_addr[2:
0]=3'b000
128比特16pX_cmd_addr[3:
0]=4'b0000
同样重要的是要了解解决关系时,32位和64位端口一起使用的用户界面(见端口配置,第17页)。
对于32位端口存出现在4字节边界对齐,而对于64位端口存出现在8字节边界对齐。
表4-3显示了两个数据字为32位端口映射成一个64位端口一个数据字的地址空间如何。
表4-3:
32位和64位端口地址的关系
32位端口的64位端口
地址数据地址数据
0x00[31:
0]0x00[31:
0]
0x04[31:
0]0x00[63:
32]
0x08[31:
0]0x08[31:
0]
0x0C[31:
0]0x08[63:
32]
命令时序路径
用户界面的命令路径使用一个简单的4级深度FIFO结构来保存挂起的命令。
指令类型,地址,以及为所请求的事务处理突发长度都加载到这个命令FIFO。
满标志(pX_cmd_full)信号从命令的FIFO必须是低的被接纳进入FIFO时pX_cmd_en期间pX_cmd_clk的上升沿被断言一个新的命令。
否则,该命令将被忽略。
图4-4和图4-5展示了协议,用于加载命令到FIFO。
交互参照目标-图4-4
cmd_empty置为无效与写入登记在配置边缘时CMD_EN断言在FIFO中第一的位置。
从字节地址0x005AD3F0写17个用户的话。
写带自动预充电1个用户字字节地址0x00EE16FFC。
读取字节地址0x00B2D3FC16个用户的话。
写时序路径
用户界面的写入路径使用一个简单的64级深度的FIFO结构,准备写事务存保存数据。
从写数据FIFO类似命令FIFO,满标志(pX_wr_full)必须是低的新数据FIFO接收时pX_wr_en期间pX_wr_clk上升沿有效。
否则,该数据将被忽略。
如果满标志为低时,pX_wr_data总线数据在pX_wr_clk的上升沿,被捕获到FIFO上。
该pX_wr_en被断言每个时钟周期,必须有pX_wr_data总线上的有效数据。
图4-6展示了协议,用于将数据加载到数据写入FIFO。
user_empty拉高与写入FIFO中第一个位置登记在写入FIFO配置边缘D0。
WE在最后一个数据被取消有效。
D7写入FIFO。
计数应该反映周期的总数在WE有效时,
从MEMC端延迟读指针的用户界面数是灵活的。
计数投入未定义的增量
计数可以在不确定的增量跳。
该pX_wr_underrun信号指示的存控制器试图发送更多的数据比是目前在写数据FIFO并认为这是针对存中的数据从未达到存的用户。
必须避免这种情况,以保证可靠的操作。
为了避免欠载情况,用户必须保证所有必要的数据可在该写数据的FIFO,以容纳一个事务提交该事务的命令FIFO之前。
计数信号总线(pX_wr_count)提供了在FIFO中的条目数的计数。
由于MCBFIFO的异步性,计数信号总线具有比空和满的标志较长的等待时间。
因此,该总线应该只被用于中间参考文献和水印。
计数将对于通过用户的FIFO操作立即转换。
但是,较长时间提交由控制器才能看到明显比完整或空信号计数信号的操作。
。
因此,对于写数据FIFO的FIFO被充填,计数始终报告至少尽可能多的条目是在FIFO。
、
计数将立即对用户所提交的FIFO操作的过渡。
但是,较长时间提交由控制器才能看到明显比完整或空信号计数信号的操作。
因此对于写数据FIFO作为FIFO灌装、计数总是报告至少许多条目,正如在FIFO中
例如,如果用户写八个字到FIFO中,计数可能会报告8,即使某处写入FIFO的过程中,控制器可以开始提取数据从FIFO中。
此外,如果控制器继续发送数据到存储器,计数仍然可以表示在FIFO条目,即使在FIFO已经是空的。
用于写数据FIFO,它是完全适合于使用该计数信号总线作为一个几乎满标志因为FIFO永远不会满,如果计数是报告小于满。
然而,这是非常重要的,使用其他方法来确保溢条件不发生。
ReadPathTiming
用户界面的读取路径使用一个简单的64级深度的FIFO结构来保存数据从读事务返回。
从读数据FIFO的空标志(pX_rd_empty)可以作为一个数据有效指示器。
每当pX_rd_empty置为无效,有pX_rd_data总线有效的数据存在。
从读取数据FIFO的数据传输到FPGA的逻辑,pX_rd_en信号必须置位在pX_rd_clk的上升沿。
该pX_rd_data总线转换在pX_rd_clk的上升沿。
该pX_rd_en信号可以保持有效,在任何时候都与pX_rd_empty信号可以作为有效数据
指示灯,如果需要的话。
图4-7展示了协议,用于加载数据输出读取数据的FIFO。
user_empty拉高与FIFO中重合配置边缘第一个数据的写入。
由于控制器侧时钟域跃迁允许额外的延迟。
计数可以在不确定的增量跳。
计数和呈现上配置边缘数据。
计数必须经过解码逻辑。
user_empty断言,在FIFO中最后一个数据的读取。
该pX_rd_overflow信号指示该存返回的数据超出装配到所读取的数据的FIFO,并且该数据被丢失的用户。
必须避免这种情况,以保证可靠的操作。
为了避免溢出状况,用户必须保证有足够的空间在读取数据FIFO,以适应一个事务提交的事务到命令的FIFO之前。
计数信号总线(pX_rd_count)提供了在FIFO中的条目数的计数。
由于在MCBFIFO的异步性时,计数信号具有长于空和满标志的延迟。
因此,该总线应该只被用于中间参考文献和水印。
计数将相对于致力于通过用户的FIFO操作立即转换,但它需要较长时间的操作员:
控制器是表观上比满或空信号的计数信号。
因此,对于读取数据FIFO的FIFO被排空时,计数总是报告小于或等于,实际上是在FIFO中的条目数。
例如,如果FIFO包含8字,计数可能会报告8即使某处的从FIFO读出的过程中,控制器可开始推动更多的数据到FIFO。
此外,如果控制器继续将数据推入FIFO中,计数可以表示在FIFO条目较少,即使在FIFO已满或者甚至已经溢出。
对于读数据FIFO,计数必须谨慎使用,因为很可能会在FIFO比计数报告,特别是在飞行中的交易更多的数据。
计数可以用来作为一个几乎空标志,但只到油门读数据通路管道,不进行节流的命令到命令FIFO中。
存交易
执行读或写交易需要适当的顺序,在命令和数据路径之间。
下面的部分证展示简单的写和读交易的协议。
简单的写
要实现一个写事务,写数据FIFO首先必须装入足够的数据,来完成所决定的,是进入”命令FIFO”突发请求的长度值。
否则,当事务尝试执行,一个欠载情况就会发生。
图4-8显示了最基本的协议,用于装载“写入数据FIFO”。
数据被呈现在pX_wr_data总线上,并且pX_wr_en被激活,使得数据被写入到FIFO在pX_wr_clk的上升沿。
该pX_wr_empty和pX_wr_count值反映该数据已被加载到FIFO的事实。
在这个例子中,一共有三个数据字(每个32位)被加载到FIFO。
之前断言写使能写数据到数据路径。
数据写入FIFO上WR_CLK哪里写使能目前正沿。
从空的状态下,空标志被置为无效的一个周期后,数据被写入到FIFO由于同步寄存器,计数开始更新。
随后写道:
更新计数立即数据,如果不被拉断的FIFO。
图4-9示出了协议用于输入写请求到命令后FIFO中的数据已经被加载到写入数据的FIFO。
该pX_cmd_bl值(b'10=突发长度3)与加载的数据字的数量是一致的。
当写请求被加载到命令FIFO,MCB的自动执行交易到存设备时,仲裁服务,此端口。
写命令与指令,突发长度和起始地址。
命令和地址写入FIFO的cmd_clk的上升沿哪里CMD_EN存在。
简单阅读
要实现一个事务读取,读取数据FIFO必须有足够的空间来完成所决定的,是进入命令FIFO突发长度值的请求。
否则,当事务试图执行溢出的情况发生。
图4-10显示了协议,进入读请求到命令FIFO。
该pX_cmd_bl值指定的来自存储器请求的数据字的数目。
当读请求被加载到命令FIFO,MCB的自动与存储设备执行交易,当仲裁者服务这个端口时。
读命令与指令,突发长度和起始地址。
命令和地址被写入FIFO在cmd_clk的上升沿,在CMD_EN显现。
图4-10:
进入读请求到命令FIFO
图4-11显示了所请求的数据从存中,并返回被加载到读取数据FIFO。
然后,数据呈现的pX_rd_data总线上用于由FPGA逻辑访问。
该pX_rd_empty和pX_rd_count值表示数据已被加载到FIFO。
从存中读取数据。
在RD_DATA总线提供第一个有效数据字。
空取消有效和计数反映FIFO中的数据。
图4-11:
从存储设备读取数据返回
从读取数据FIFO的数据传输到FPGA的逻辑,pX_rd_en信号在pX_rd_clk的上升沿,如图4-12激活。
该pX_rd_count值相应地更新。
第一个有效数据字可在RD_DATA总线。
计数的更新,以反映写入FIFO的数据。
RD_EN弹出数据从FIFO和计数递减..
读取延迟
读延时是指从读命令写入到用户界面的命令路径FIFO中,当对应的第一个数据字可在读取数据的FIFO路径定义为存的时钟周期数。
当基准读取延迟,它来指定在其下的测量发生的确切情况是非常重要的。
根据条件,比如读取延迟变化:
•发出已经在READ命令之前,FIFO流水线指令数
•是否激活命令需要颁发打开新的段/行
•无论是预充电命令必须发出来关闭先前打开的段
•与总线时钟频率结合具体的时序参数的存,如tRAS的和的tRCD
•在多端口设计的仲裁者的国家
•存储设备CAS延迟
•板级和芯片级(适用于存和FPGA)传播延迟
表4-4给出了MCB在两个存时钟频率读取延迟为两种不同的情况。
在第一种方案中,读出发生的行是已经打开的存储装置,这意味着没有预充电或行激活命令需要访问所请求的数据之前。
在第二种情况下,在发生读取到一个新的行地址位置(行/列的冲突)。
这需要一个预充电来关闭先前打开的行,然后激活新行,从而增加读取延迟的。
表4-4两种情景假设与等候在没有其他命令一个端口MCB的用户界面(即小型断路器早于读请求闲置)和CAS延迟等于5的存储设备。
表4-4:
MCB读取延迟
读取延迟方案读取延迟(存时钟周期)
MEMCLK=333MHz的(667Mb/秒)MEMCLK=400MHz的(800Mb/秒)
阅读从打开的行
outbound命令路径12.512.5
存CAS延迟(CL)5
入读数据通路4.54.5
总延时周期中(时间(ns))22个周期(66纳秒)22个周期(55纳秒)
读取新行
outbound命令路径12.512.5
预充电/激活1012
存CAS延迟(CL)5
入读数据通路4.54.5
总延时周期中(时间(ns))32周期(96纳秒)34个循环(85纳秒)
自刷新
自刷新界面,通过其用户可以请求存储器进入或退出其自刷新模式的机制。
自刷新只在LPDDR,DDR2和DDR3存的支持。
自刷新允许存储器,同时保留数据时,该存储器并不需要积极地传输数据节省电力。
自刷新接口使用一个简单的协议进入和退出自刷新模式。
一个单一的模式状态引脚(selfrefresh_mode)指示存储器当前是否处于自刷新模式。
异步selfresh_enter信号进行采样MCB的核心时脉,这往往是在运行速度比用户界面的时钟速度要快得多。
进入自刷新模式,selfrefresh_enter信号有效,直到selfrefresh_mode变高(见图4-13)。
该selfrefresh_enter信号必须保持高留在自刷新模式。
要退出该模式,selfrefresh_enter信号无效(见图4-14)。
该selfrefresh_mode信号变为低电平,指示自刷新模式已经退出。
该selfresh_enter信号必须保持在一个稳定状态的条件,因为线路上的任何毛刺可以被解释为一个请求。
在一般情况下,这些信号必须由用户才去MCB,以保证这些信号仅在需要时切换登记。
在Spartan-6器件可置于进入暂停模式,而外部存储器处于自刷新模式,以进一步降低系统功耗。
然而,在Spartan-6器件不能被重新配置,而所述存储器设备处于自刷新模式。
重新配置导致国家损失的小型断路器,防止适当从自刷新模式退出。
暂停
本节介绍使用Spartan-6器件包含一个MCB的界面设计的挂起模式功能两种推荐方式。
暂停模式没有DRAM的数据保留
在保留存储与DRAM设备中的数据并不重要情况下,挂起引脚可以简单地被带到High有效状态,进入挂起模式。
在此之前将暂停引脚为高电平时,断路器应放置在复位带来async_rst到High有效状态。
而在暂停模式下,MCB保持在复位状态。
当暂停引脚为低电平退出挂起模式时,MCB保持在复位状态,直到PLL_LOCK信号被激活,这表明一个稳定的时钟源MCB。
对MCB然后退出复位和使用过程中的MCB的初始上电或系统复位时发生的相同的启动顺序初始化的DRAM。
退出在这种情况下暂停模式时,所有的DRAM的数据应被视为无效。
挂起模式与DRAM的数据保留
在所述DRAM的数据必须被保留的情况下,SUSPEND_SYNC原始必须使用与MCB的自刷新界面结合,以实现适当的暂停模式。
该SUSPEND_SYNC原语用于确保MCB使DRAM的设备进入自刷新模式(见自刷新部分),以保持其状态将在FPGA进入暂停模式之前。
图4-15显示了如何SUSPEND_SYNC原始连接到暂停引脚的逻辑和MCB的接口来实现与DRAM的数据保留挂起模式。
在图4-16中的时序图说明了成功取到FPGA所需的信号关系,出在这种情况下挂起模式。
为应对有源高挂起引脚,SUSPEND_SYNC原始发送一个暂停请求(SREQ)信号MCB的指示,进入暂停模式的愿望。
该SREQ信号直接连接到顶层的MIG(或EDK)的包装,从它被路由到软校准模块的selfrefresh_enter输入。
软校准模块
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UG388 翻译 Chapter4