CN118151846A - 一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法 - Google Patents
一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法 Download PDFInfo
- Publication number
- CN118151846A CN118151846A CN202410206048.1A CN202410206048A CN118151846A CN 118151846 A CN118151846 A CN 118151846A CN 202410206048 A CN202410206048 A CN 202410206048A CN 118151846 A CN118151846 A CN 118151846A
- Authority
- CN
- China
- Prior art keywords
- dqs
- die
- phase
- clock
- tap
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000005070 sampling Methods 0.000 claims abstract description 93
- 238000006243 chemical reaction Methods 0.000 claims abstract description 19
- 230000003111 delayed effect Effects 0.000 claims abstract description 4
- 238000012549 training Methods 0.000 claims description 62
- 238000011084 recovery Methods 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 7
- 238000012360 testing method Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 10
- 238000011161 development Methods 0.000 description 4
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 229940044442 onfi Drugs 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012536 packaging technology Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明公开提供了一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法,包括以下步骤:将读DQS信号和经IDELAY延迟的DQ信号作为数据输入串并转换单元ISEREDES;确保各个Die读DQS信号频率相同,在FPGA内部生成时钟对DQS进行采样,通过遍历采样时钟的不同相位来确定读取各个Die时采样时钟的最佳相位;对FPGA输出至各个Die的RE信号进行延时调整,使各个Die共享同一个读数据采样时钟;调整IDELAY抽头系数,以确定在读取各个Die时各DQ信号的最佳延时。本发明的一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法,有效提高读数据通道的IO速率,同时使时序更容易收敛;节约时钟资源并且降低带宽损失;能够降低亚稳态发生的概率,提高传输的可靠性。
Description
技术领域
本发明涉及NAND Flash控制器领域,尤其涉及一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法。
背景技术
随着电子信息产业的不断发展,数据量呈现爆发式的增长,这对存储系统的容量、速率等都提出了更高的发展需求。Nand Flash凭借其大容量、高速率、高存储密度以及低成本等特点,成为存储芯片的主流。并且随着封装技术的发展,多Die封装型Nand Flash由于具有极大容量的特点,越来越受到消费市场的青睐。目前,Nand Flash主要支持ONFI和TOGGLE协议,以ONFI协议为例,经过多年的发展,其支持的IO速率已经从传统异步接口的50MB/s发展至如今NV-DDR3接口的1600MB/s,并且仍然在向更高速率迈进,这对Nand Flash物理层控制器带来了更高的挑战。通常情况下,Nand Flash物理层控制器的实现平台分为ASIC和FPGA两种,其中ASIC由于其高定制化设计,已实现较高的IO速率。但FPGA以其灵活性、并行性的特点也有广泛的应用空间,如何在FPGA上实现Nand Flash在高IO速率下的数据读写,具有重要意义。其中NandFlash高IO速率下的读数据方法,以及减小多个Die之间读数据切换时带来的带宽损失,是研究的难点。
现有的Nand Flash读数据方法,主要分为两种,一种是直接将读DQS信号作为时钟信号,先将DQS通过DLL延迟90°相位作为FPGA内嵌单元IDDR的参考时钟,再通过IDDR对DQ信号进行双边沿采集,将采样的数据进行同步化处理即得到正确的数据。该方案的实现方式优点是结构简单,但FPGA内部器件的工作频率有上限,在更高DQS速率下FPGA时序不易收敛。另一种方法则是对DQS进行采样,在FPGA内部恢复与DQS同频且相位相差约90°的时钟,在恢复时钟下对DQ信号采样,根据对DQS的采样结果来恢复正确的数据。其中对DQS的恢复方法,一种是用两倍频的时钟对DQS进行采样,该方法同样受限于FPGA内部时钟频率上限,另一种是利用MMCM生成同频时钟,通过不断的移相来调整MMCM输出时钟与DQS的相位差达到近似90°。专利“一种NAND Flash读DQS采样方法-山东华芯半导体有限公司”中采用该方案,但其通过IDDR实现对DQS的采样同样受限于FPGA内工作频率上限,并且该方法没有在多Die封装型Nand Flash读数据的场景下进行扩展应用。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是现有的基于FPGA的Nand Flash控制器读数据实现方法的IO速率较低,以及读取不同Die时切换不同采样时钟会消耗更多时钟资源并带来带宽损失。本发明提供了一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法,有效提升了FPGA读取Nand Flash数据的IO速率,同时使时序更容易收敛;通过训练确定DQS与DQ最佳采样点,减小亚稳态发生的概率;切换不同Die进行数据读取时,无需切换采样时钟,从而节约了时钟资源并且降低了带宽损失。
为实现上述目的,本发明提供了一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法,包括以下步骤:
DQS信号作为数据输入串并转换单元ISERDES数据端口;DQ经过延迟单元后输入转换单元ISERDES,经过转换单元ISERDES转换后的DQ和DQS写入异步FIFO,进行跨时域转换;通过训练状态机从异步FIFO中读取数据用于训练,训练状态机控制生成并行RE信号,输入并串转换单元OSERDES后再经过延迟单元ODELAY后,输出至Nand Flash;
确保各个Die读DQS信号频率相同,在FPGA内部生成时钟对DQS进行采样,通过遍历采样时钟的不同相位来确定读取各个Die时采样时钟的最佳相位;
对FPGA输出至各个Die的RE信号进行延时调整,使各个Die共享同一个读数据采样时钟;
调整每个Die的DQ信号与共用的读数据采样时钟dqs_shift的相位关系,以确定在读取各个Die时的各DQ信号的最佳延时值。
进一步地,模式时钟管理器MMCM输出时钟dqs_shift作为ISERDES参考时钟。
进一步地,训练状态机,具体包括以下6个状态:初始状态IDLE,恢复每个Die的最佳相位采样时钟dqs_shift的状态Clk_recovery,调整各个Die共用同一个读数据采样时钟dqs_shift的状态Shared_clk,确定读取各个Die时各DQ信号的最佳延时值的状态Dq_traing,训练完成后的状态Training_done,读取数据的状态Read_data。
进一步地,确保各个Die读DQS信号频率相同,在FPGA内部生成时钟对DQS进行采样,通过遍历采样时钟的不同相位来确定读取各个Die时采样时钟的最佳相位,具体包括以下步骤:
MMCM配置输出相位精度为45°的8个相位的时钟,定义8个比特寄存器phase_record[7:0],其中,8个比特寄存器一一映射MMCM输出的采样时钟dqs_shift的8个相位,其映射关系为相位n*45°对应phase_record[n](n∈Z,0≤n≤7);
训练状态机配置MMCM输出采样时钟dqs_shift,向Nand Flash的某个Die发送读数据指令并等待DQS全部写入异步FIFO后,读空异步FIFO数据,根据DQS采样结果来判定当前相位时钟dqs_shift能否正确采样DQS,正确则将其映射的phase_record比特置1,错误则置0;
训练状态机调整MMCM输出dqs_shift相位,上一步骤,直至遍历所有8个相位值;
训练状态机根据phase_record寄存的结果,确定当前Die读DQS信号的最佳相位采样时钟dqs_shift。重复前述两个步骤,确定并分别记录所有Die读DQS信号的最佳相位。
进一步地,读DQS信号,是由输入Nand Flash的RE信号经过内部驱动,然后延时tDQSRE后输出,从而,对RE进行延时使得相应的DQS也产生相同的延时。
进一步地,对FPGA输出至各个Die的RE信号进行延时调整,使各个Die共享同一个读数据采样时钟,具体包括以下步骤:
训练状态机根据记录的所有Die读DQS信号的采样时钟dqs_shift的最佳相位,选取其中最滞后的相位作为各个Die的共用相位;
训练状态机计算各个Die采样时钟dqs_shift最佳相位与共用相位的相位差值,并计算每个Die输出RE信号经过ODLEAY延时所需抽头数tap;
在读取各个Die时,确保ODLEAY抽头数等于步骤S2中计算值,即可进行读取操作。
进一步地,训练状态机计算各个Die采样时钟dqs_shift最佳相位与共用相位的相位差值,并计算每个Die输出RE信号经过ODLEAY延时所需抽头数tap,具体包括假设相位差值为ΔP(单位π/4),采样时钟dqs_shift频率为f(单位MHz),ODLEAY延时精度为d(单位ns),则需要延时的抽头数tap为:109*ΔP/(8*f*d)。
进一步地,调整每个Die的DQ信号与共用的读数据采样时钟dqs_shift的相位关系,以确定在读取各个Die时的各DQ信号的最佳延时值,具体包括以下步骤:
定义32比特寄存器idelay_tap_record[31:0],各比特寄存器一一映射IDELAY的不同延时值,其映射关系为tap n对应idelay_tap_record[n](n∈Z,0≤n≤31);
训练状态机选定一个Die,配置ODELAY抽头系数tap;
配置IDELAY抽头系数tap后,向Nand Flash发送测试数据后读取数据,等待DQ全部写入异步FIFO后,读空异步FIFO数据,根据DQ采样结果来判定当前tap下能否正确采样DQ,正确则将其映射的idelay_tap_record比特置1,错误则置0;
训练状态机调整IDELAY抽头系数tap,重复上一步骤,直至遍历所有32个tap值;
训练状态机根据idelay_tap_record寄存的结果,确定当前Die各DQ的最佳延时值,重复前述步骤,确定并分别记录读取所有Die时各DQ信号的最佳延时值。
技术效果
本发明提供了一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法,将DQS与DQ作为数据信号输入ISREDES,在FPGA内部恢复采样时钟对DQS和DQ进行采样,经过串并转换到低频率时钟下进行处理,使时序更容易收敛,同时有效提升了Nand Flash读数据通道的IO传输速率;通过调整读取各个Die时输出RE的延时,使各个Die共享同一个读数据采样时钟,在切换不同Die进行数据读取时无需切换采样时钟,从而节约了时钟资源并且降低了带宽损失;通过遍历DQ的不同延时值调整DQ与采样时钟的相位关系,并从中选取最佳采样点,能够减小亚稳态发生的概率,提高传输的可靠性;本发明灵活便利,适用于符合ONFI协议的各种NAND Flash型号,并能应对布局布线存在差异的情况。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明的一个较佳实施例的一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法在FPGA平台实现的系统结构示意图;
图2是本发明的一个较佳实施例的一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法的一种支持NV-DDR3协议的Nand Flash读取数据的部分IO总线时序简化示意图;
图3是本发明的一个较佳实施例的一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法的训练状态机控制MMCM输出遍历采样时钟dqs_shift的8个相位,并确定最佳相位值的示意图;
图4是本发明的一个较佳实施例的一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法的训练状态机调整各DQ延时值之前与确定最佳延时值之后,某个Die各DQ比特相对于采样时钟dqs_shift的相位关系变化的示意图;
图5是本发明的一个较佳实施例的一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法的训练状态机的示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下描述中,为了说明而不是为了限定,提出了诸如特定内部程序、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
本发明提供了一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法,其基于FPGA的电路结构,系统整体结构如下:DQS信号输入串并转换单元ISERDES的数据端口,DQ经过IDELAY延迟后输入ISERDES,模式时钟管理器MMCM输出时钟dqs_shift作为ISERDES参考时钟。经ISERDES转换后的DQ和DQS写入异步FIFO,进行跨时钟域转换后,训练状态机从异步FIFO中读取数据用于训练。训练状态机生成并行RE信号,输入并串转换单元OSERDES后再经过延迟单元ODELAY,输出至Nand Flash。其中,FPGA中,ISERDES是串行转并行的内部电路名称,OSERDES是并行转串行输出的内部电路名称。
本发明提供了一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法,具体包括以下步骤:
步骤100,确保各个Die读DQS信号频率相同,在FPGA内部生成时钟对DQS进行采样,通过遍历采样时钟的不同相位来确定读取各个Die时采样时钟的最佳相位;具体包括以下步骤:
步骤101,训练状态机通过配置MMCM输出采样时钟dqs_shift,其相位精度为45°,可配置为8种不同相位。定义8比特寄存器phase_record[7:0],其中,寄存器的8个比特一一映射MMCM输出的采样时钟dqs_shift的8个相位,其映射关系为相位n*45°对应phase_record[n](n∈Z,0≤n≤7);
步骤102,训练状态机锁定当前相位采样时钟dqs_shift不变,向Nand Flash的某个Die发送读数据指令并等待DQS全部写入异步FIFO后,读空异步FIFO数据,根据DQS采样结果来判定当前相位时钟dqs_shift能否正确采样DQS,正确则将其映射的phase_record比特置1,错误则置0;
步骤103,训练状态机调整MMCM输出的dqs_shift相位,重复步骤102,直至遍历所有8个相位值;
步骤204,训练状态机根据phase_record寄存的结果,确定当前Die读DQS信号的最佳相位采样时钟dqs_shift。重复前述步骤202-203,确定并分别记录所有Die读DQS信号的最佳相位。
步骤200,对FPGA输出至各个Die的RE信号进行延时调整,使各个Die共享同一个读数据采样时钟;其原理是:读DQS信号,是由输入Nand Flash的RE信号经过内部驱动,然后延时tDQSRE后输出,从而,对RE进行延时使得相应的DQS也产生相同的延时。具体包括以下步骤:
步骤201,训练状态机根据步骤102记录的所有Die读DQS信号的采样时钟dqs_shift的最佳相位,选取其中最滞后的相位作为各个Die的共用相位;
步骤202,训练状态机计算各个Die采样时钟dqs_shift最佳相位与共用相位的相位差值,并计算每个Die输出RE信号经过ODLEAY延时所需抽头数tap;具体包括假设相位差值为ΔP(单位π/4),采样时钟dqs_shift频率为f(单位MHz),ODLEAY延时精度为d(单位ns),则需要延时的抽头数tap为:109*ΔP/(8*f*d)。时钟有360°相位(即2π),采样时钟的调节精度为π/4,所以如果相位差值为ΔP,那么对应到时间上的差值T就是T=1/f*((ΔP*π/4)/2π)单位为s,化简并将单位转换为ns即为T=10^9*ΔP*1/(8*f),所以抽头数tap等于T/d。
步骤203,在读取各个Die时,确保ODLEAY抽头数等于步302中计算值,即可进行读取操作。
步骤300,调整每个Die的DQ信号与共用的读数据采样时钟dqs_shift的相位关系,以确定在读取各个Die时的各DQ信号的最佳延时值;具体包括以下步骤:
步骤301,定义32比特寄存器idelay_tap_record[31:0],寄存器各个比特一一映射IDELAY的32个不同延时值,其映射关系为tap n对应idelay_tap_record[n](n∈Z,0≤n≤31);
步骤302,训练状态机选定一个Die,配置ODELAY抽头系数tap为步骤302所述计算值;
步骤303,配置IDELAY抽头系数tap后,向Nand Flash发送测试数据后读取数据,等待DQ全部写入异步FIFO后,读空异步FIFO数据,根据DQ采样结果来判定当前tap下能否正确采样DQ,正确则将其映射的idelay_tap_record比特置1,错误则置0;
步骤304,训练状态机调整IDELAY抽头系数tap,重复上一步骤,直至遍历所有32个tap值;
步骤305,训练状态机根据idelay_tap_record寄存的结果,确定当前Die各DQ的最佳延时值,重复步骤402-404,确定并分别记录读取所有Die时各DQ信号的最佳延时值。
如图1所示,本发明的一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法在FPGA平台实现的系统结构示意图。FPGA对Nand Flash发起读数据操作时,先向NandFlash发送RE信号,延迟一段时间tDQSRE后Nand Flash返回的DQ信号通过IDELAY进行延时后与DQS信号一同输入ISERDES进行串并转换,其中ISERDES的输入时钟dqs_shift由训练状态机控制的MMCM动态生成。转换后的DQ和DQS经过异步FIFO跨时钟域处理后,反馈至训练状态机用于调节dqs_shift相位和DQ延时。然后,训练状态机通过调整RE输出经过ODELAY的延迟来确保对各个Die进行读数据时,共用同一个采样时钟,无需时钟切换。最后将经过训练调整后的有效DQ数据及其相关信息写入同步FIFO。
下面将通过具体实例对本发明做进一步说明。假设Nand Flash支持NV-DDR3协议,4个Die封装且共用一个读数据通道,单通道位宽为8比特,IO速率为800MHz,现基于FPGA对其进行控制。将ISERDES配置为8:1DDR模式,MMCM输出时钟dqs_shift频率f=800MHz,dqs_shift_div为dqs_shift的四分频时钟,系统工作频率设为fsys=200MHz。如图2所示是一种支持NV-DDR3协议的Nand Flash读取数据的部分IO总线时序简化示意图,向Nand Flash发起读数据时,FPGA先拉低RE信号,延迟一段时间后切换为连续的10……序列,结束时先拉低RE信号一段时间最后再次拉高,RE输入Nand Flash经过内部电路驱动后,延迟tDQSRE将RE返回至FPGA侧,即为DQS信号。Nand Flash输出DQS与DQ[7:0]满足中心对齐,但由于电路实际布线拓扑、布线长度的影响,其位置关系将会发生变化。
训练状态机先确定MMCM输出时钟dqs_shift的频率和初始相位,然后向NandFlash的其中一个Die发送读数据指令,DQS输入ISERDES进行串并转换后被写入异步FIFO进行跨时钟域处理,之后训练状态机读取异步FIFO的数据并对当前相位下DQS的采样结果进行记录,然后重新配置MMCM遍历输出时钟的8个相位,最终确定采样时钟dqs_shift的最佳相位,定义为final_phase。定义8个比特寄存器phase_record[7:0],初始值为全0,8个比特寄存器一一映射MMCM输出的采样时钟dqs_shift的8个相位,其映射关系为相位n*45°对应phase_record[n](n∈Z,0≤n≤7)。若从异步FIFO读取的DQS采样结果包含10……序列,则表明采样正确,将phase_record对应的比特置1,否则置0。
如图3为训练状态机控制MMCM输出遍历采样时钟dqs_shift的8个相位,并确定最佳相位值的示意图。如图3所示,phase_record初始值为8’b0000_0000,MMCM首先输出0°相位时钟dqs_shift对DQS进行采样,此时采样的数据为010101……,因此采样错误,phase_record[0]保持为0;然后MMCM改变相位为45°,此时的采样结果为101010……,判定为采样正确,因此将phase_record[1]置1;接着,MMCM输出90°、135°、180°相位的时钟,均能正确采样,phase_record变为8'b0001_1110;此后,MMCM继续更改相位,但后续相位均无法正确采样DQS,因此其映射的比特位置均为0。最后,遍历完全部8个相位以后,phase_record寄存的数值为8'b0001_1110,训练状态机选取phase_record的比特2为最中间的1,其对应的135°相位的采样时钟dqs_shift即为读取当前Die时最终确定的最佳相位时钟。重复上述步骤,直到确定每个Die读数据采样时钟的最佳相位。
在本实例中,假设4个Die最终确定的采样时钟的最佳相位分别为π/2、π/4、3*π/4、π/2,ODELAY每个抽头延时量为78.125ps,采样时钟频率为800MHz。可以从中选出最滞后的相位为第三个Die的3*π/4,由此可以计算第一个、第二个、第四个Die采样时钟的最佳相位与其相位差值ΔP(单位π/4)分别为1、2、2,根据前文所述计算公式计算可得这三个Die的ODELAY需要延时的抽头数分别为2、4、4。此后,FPGA在读取Nand Flash不同Die的数据时,只需通过ODLEAY提前将输出RE信号延时该计算值,即可使用3*π/4相位的采样时钟对各个Die的读DQS信号正确采样,无需进行时钟切换。
DQ经过IDELAY延时单元后,输入ISERDES进行转换,经过异步FIFO跨时钟域处理后反馈至训练状态机,训练状态机遍历每个DQ信号的IDLEAY的不同延时值,并根据不同延时下DQ的采样结果,最终确定IDELAY提供的最佳延时值。首先选择一个Die,定义二维寄存器组idelay_tap_record[7:0][31:0],初始值为全0,映射DQ_0~DQ_7及其连接的IDLEAY单元的32个不同抽头系数。训练状态机配置IDELAY初始延时抽头tap=0,向Nand Flash发送测试数据后读取数据,等待DQ全部写入异步FIFO后,训练状态机控制读空异步FIFO数据,若DQS为10……序列时指示的DQ数据与测试数据完全一致无误码,则表明当前延时下DQ能被正确采样,将该DQ和当前IDELAY延时下idelay_tap_record对应的比特置1,否则置0。此后更改tap值,重复该过程,直到遍历所有tap值。最后,统计每个DQ信号对应的idelay_tap_record中的比特1的个数n,选择第floor((n+1)/2)对应的延时值即为DQ的最佳延时值,训练状态机配置IDLEAY锁定该延时值。重复上述操作,直到确定读取每个Die时各DQ信号的最佳延时值。图4是本发明所述在训练状态机调整各DQ延时值之前与确定最佳延时值之后,某个Die各DQ比特相对于采样时钟dqs_shift的相位关系变化的示意图。可以看到,在调整后,时钟dqs_shift采样各DQ信号的裕量相对于调整前均有较大提升,因此能够减小亚稳态发生的概率,提高传输的可靠性。
如图5所示为训练状态机的示意图。训练状态机包括以下6个状态:恢复每个Die的最佳相位采样时钟dqs_shift的状态Clk_recovery,调整各个Die共用同一个读数据采样时钟dqs_shift的状态Shared_clk,确定读取各个Die时各DQ信号的最佳延时值的状态Dq_traing,训练完成后的状态Training_done,读取数据的状态Read_data。系统在上电后处于IDLE状态,首先收到训练指令Trainig_flag=1后进入Clk_recovery状态,然后在恢复每个Die的最佳相位采样时钟后跳转至Shared_clk状态,确定并调整各个Die共用同一个采样时钟之后,跳转至Dq_traing状态进行各DQ延时的调整,记录每个Die各DQ的最佳延时值,最后进入Training_done状态。在Training_done状态,若收到读数据指令,则进入Read_data状态,读取Nand Flash数据,读取完成后回到Training_done状态,等待下一次读数据指令。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (9)
1.一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法,其特征在于,其系统结构包括以下模块:
DQS信号作为数据输入串并转换单元ISERDES的数据端口;DQ经过延迟单元后输入转换单元ISERDES,经过转换单元ISERDES转换后的DQ和DQS写入异步FIFO,进行跨时域转换;通过训练状态机从异步FIFO中读取数据用于训练,且所述训练状态机控制生成并行RE信号,输入并串转换单元OSERDES后再经过延迟单元ODELAY后,输出至Nand Flash。
2.如权利要求1所述的一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法,其特征在于,包括以下步骤:
确保各个Die读DQS信号频率相同,在FPGA内部生成时钟对DQS进行采样,通过遍历采样时钟的不同相位来确定读取各个Die时采样时钟的最佳相位;
对FPGA输出至各个Die的RE信号进行延时调整,使各个Die共享同一个读数据采样时钟;
调整每个Die的DQ信号与共用的读数据采样时钟dqs_shift的相位关系,以确定在读取各个Die时的各DQ信号的最佳延时值。
3.如权利要求1所述的一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法,其特征在于,模式时钟管理器MMCM输出时钟dqs_shift作为ISERDES参考时钟。
4.如权利要求1所述的一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法,其特征在于,所述训练状态机,具体包括以下6个状态:初始状态IDLE,恢复每个Die的最佳相位采样时钟dqs_shift的状态Clk_recovery,调整各个Die共用同一个读数据采样时钟dqs_shift的状态Shared_clk,确定读取各个Die时各DQ信号的最佳延时值的状态Dq_traing,训练完成后的状态Training_done,读取数据的状态Read_data。
5.如权利要求2所述的一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法,其特征在于,确保各个Die读DQS信号频率相同,在FPGA内部生成时钟对DQS进行采样,通过遍历采样时钟的不同相位来确定读取各个Die时采样时钟的最佳相位,具体包括以下步骤:
MMCM配置输出相位精度为45°的8个相位的时钟,定义8个比特寄存器phase_record[7:0],其中,8个比特寄存器一一映射MMCM输出的采样时钟dqs_shift的8个相位,其映射关系为相位n*45°对应phase_record[n](n∈Z,0≤n≤7);
训练状态机配置MMCM输出采样时钟dqs_shift,向Nand Flash的某个Die发送读数据指令并等待DQS全部写入异步FIFO后,读空异步FIFO数据,根据DQS采样结果来判定当前相位时钟dqs_shift能否正确采样DQS,正确则将其映射的phase_record比特置1,错误则置0;
训练状态机调整MMCM输出dqs_shift相位,上一步骤,直至遍历所有8个相位值;
训练状态机根据phase_record寄存的结果,确定当前Die读DQS信号的最佳相位采样时钟dqs_shift。重复前述两个步骤,确定并分别记录所有Die读DQS信号的最佳相位。
6.如权利要求5所述的一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法,其特征在于,读DQS信号,是由输入Nand Flash的RE信号经过内部驱动,然后延时tDQSRE后输出,从而,对RE进行延时使得相应的DQS也产生相同的延时。
7.如权利要求6所述的一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法,其特征在于,对FPGA输出至各个Die的RE信号进行延时调整,使各个Die共享同一个读数据采样时钟,具体包括以下步骤:
训练状态机根据记录的所有Die读DQS信号的采样时钟dqs_shift的最佳相位,选取其中最滞后的相位作为各个Die的共用相位;
训练状态机计算各个Die采样时钟dqs_shift最佳相位与共用相位的相位差值,并计算每个Die输出RE信号经过ODLEAY延时所需抽头数tap;
在读取各个Die时,确保ODLEAY抽头数等于步骤S2中所述计算值,即可进行读取操作。
8.如权利要求7所述的一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法,其特征在于,训练状态机计算各个Die采样时钟dqs_shift最佳相位与共用相位的相位差值,并计算每个Die输出RE信号经过ODLEAY延时所需抽头数tap,具体包括:假设相位差值为ΔP(单位π/4),采样时钟dqs_shift频率为f(单位MHz),ODLEAY延时精度为d(单位ns),则需要延时的抽头数tap为:109*ΔP/(8*f*d)。
9.如权利要求8所述的一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法,其特征在于,调整每个Die的DQ信号与共用的读数据采样时钟dqs_shift的相位关系,以确定在读取各个Die时的各DQ信号的最佳延时值,具体包括以下步骤:
定义32比特寄存器idelay_tap_record[31:0],各比特寄存器一一映射IDELAY的不同延时值,其映射关系为tap n对应idelay_tap_record[n](n∈Z,0≤n≤31);
训练状态机选定一个Die,配置ODELAY抽头系数tap;
配置IDELAY抽头系数tap后,向Nand Flash发送测试数据后读取数据,等待DQ全部写入异步FIFO后,读空异步FIFO数据,根据DQ采样结果来判定当前tap下能否正确采样DQ,正确则将其映射的idelay_tap_record比特置1,错误则置0;
训练状态机调整IDELAY抽头系数tap,重复上一步骤,直至遍历所有32个tap值;
训练状态机根据idelay_tap_record寄存的结果,确定当前Die各DQ的最佳延时值,重复前述步骤,确定并分别记录读取所有Die时各DQ信号的最佳延时值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410206048.1A CN118151846A (zh) | 2024-02-26 | 2024-02-26 | 一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410206048.1A CN118151846A (zh) | 2024-02-26 | 2024-02-26 | 一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118151846A true CN118151846A (zh) | 2024-06-07 |
Family
ID=91297653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410206048.1A Pending CN118151846A (zh) | 2024-02-26 | 2024-02-26 | 一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118151846A (zh) |
-
2024
- 2024-02-26 CN CN202410206048.1A patent/CN118151846A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7098714B2 (en) | Centralizing the lock point of a synchronous circuit | |
US8010866B2 (en) | Memory system and method using stacked memory device dice, and system using the memory system | |
CN1794580B (zh) | 用于半导体存储器装置中的延迟锁定回路及其方法 | |
JP4634803B2 (ja) | データ取得の方法と装置 | |
CN108038068B (zh) | 一种基于ddr读数据同步方法及系统 | |
JPH11275066A (ja) | 信号伝送システム | |
JP2003050738A (ja) | キャリブレーション方法及びメモリシステム | |
US20090150706A1 (en) | Wrapper circuit for globally asynchronous locally synchronous system and method for operating the same | |
KR100535649B1 (ko) | 디디알 메모리 소자의 디큐에스 신호 생성 회로 및 생성방법 | |
US7567483B2 (en) | Semiconductor memory device and method for operating the same | |
US10972248B2 (en) | Method of calibrating clock phase and voltage offset, data recovery circuit performing the same and receiver including the same | |
US8284880B2 (en) | Clock data recovery circuit and method for operating the same | |
US5758131A (en) | Bus adapter for synchronizing communications between two circuits running at different clock rates | |
US9330034B2 (en) | Levelization of memory interface for communicating with multiple memory devices | |
CN118151846A (zh) | 一种基于DQS恢复时钟的多Die封装Nand Flash的读数据方法 | |
US10715308B2 (en) | Transmitting circuit, semiconductor apparatus and semiconductor system configured to use the transmitting circuit | |
KR102173881B1 (ko) | 스큐 제거 동작을 수행하는 반도체 장치 | |
US20210111861A1 (en) | Deskewing method for a physical layer interface on a multi-chip module | |
JP2007274049A (ja) | 半導体集積回路および半導体集積回路設計方法 | |
CN102081965B (zh) | 一种产生dram内部写时钟的电路 | |
US20240072772A1 (en) | Interface device and signal transceiving method thereof | |
CN111723027A (zh) | 一种基于电力边缘网关的动态存储缓冲区读取控制方法 | |
US20240056083A1 (en) | Delay-locked loop, delay locking method, clock synchronization circuit, and memory | |
Liao et al. | Optimization of TDM Using Single-ended Transmission for Multi-FPGA Platforms | |
KR20230014613A (ko) | 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |