基于指令集控制的DDR训练系统、训练方法及介质与流程
- 国知局
- 2024-07-31 19:48:01
本发明涉及集成电路设计,尤其涉及一种基于指令集控制的ddr训练系统、训练方法及介质。
背景技术:
1、双倍数据传输速率(double data rate,ddr)系统是双数据传输速率同步动态随机存取存储器系统的习惯性简称,其优点是存储容量大、成本低、接口成熟,而且并行突发访问时,可以达到较高的访问速率。ddr的对外信号接口主要有:时钟信号、数据信号、选通信号和命令/地址信号。
2、为了完成正常的ddr写功能,需要保证ddr颗粒接收到的wdqs的上升沿与时钟ck_t的上升沿对齐,并且保证ddr颗粒接收到写指令后,间隔固定的写延迟时间再收到wdqs。根据ddr标准文档的描述,前者可以通过写均衡训练实现,但是写均衡训练无法保证颗粒接收到指令及wdqs的时间间隔满足写延迟需求。因此,在完成写均衡训练之后,需要进行写延迟训练来保证写指令到wdqs之间的延迟满足需求。一般情况下,传统写延迟的基本训练过程如下:首先设置wdqs的延迟位置,然后向ddr颗粒的某个地址发送写命令,之后发送wdqs和wdq,再读回数据并判断读回的码型与发送的码型是否一致,如果不一致,则返回调整wdqs的延迟位置并重复上述过程。考虑ddr颗粒在训练前可能已经在该地址存储了和发送码型一样的数据,为避免由于这种特殊情况导致的训练失败,通常在发送正常写命令前,会向该地址发送一笔特殊的写操作,将该地址的数据改写成全1。该写操作的wdq为全1,并且需要将wdqs进行扩展,以保证wdq能正确写入。当前常规做法是直接扩展写命令的wdqs信号,并且同时扩展对应信号的输出输入使能信号。该做法需要增加对wdqs及使能信号的特殊控制,控制逻辑比较复杂,且灵活性不够高。
技术实现思路
1、本发明的目的在于提供一种基于指令集控制的ddr训练系统、训练方法及介质,使用多笔连续写命令扩展wdqs信号,操作灵活简单。
2、第一方面,本发明提供一种基于指令集控制的ddr训练系统,包括:ddr训练控制模块和io模块,所述io模块连接至外部的ddr颗粒,所述ddr训练控制模块包括命令生成子模块、片选处理子模块、第一整ui延迟子模块、第二整ui延迟子模块、延迟控制逻辑子模块;所述io模块中设有第一延迟子模块、第二延迟子模块数据检测子模块;所述命令生成子模块,用于生成ddr颗粒的写命令和读命令,以及根据所述写命令生成对应的wdqs信号和wdq信号;片选处理子模块,用于在写延迟训练过程中,从多个片选信号中选择一个片选信号,供ddr颗粒识别写命令;第一整ui延迟模块,用于通过数字逻辑对所述wdqs信号完成至少一个整ui的粗粒度延迟处理;第二整ui延迟模块,用于通过数字逻辑对所述wdq信号完成至少一个整ui的粗粒度延迟处理;所述第一延迟子模块,用于对所述粗延迟处理后的wdqs信号进行细粒度延迟处理;所述第二延迟子模块,用于对所述粗延迟处理后的wdq信号进行细粒度延迟处理;数据检测子模块,用于对读数据进行检测及判断;延迟控制逻辑子模块,用于在训练过程中,根据读回数据的检测结果,调整wdqs和wdq传输过程中经过的标准延迟单元的数量,使wdq相对于wdqs位置不断变化。
3、一种可能的实施例中,所述第一延迟子模块和第二延迟子模块均包括sdl和cdl,其中,sdl是由组合逻辑级联组成的具有固定延迟功能的标准延迟单元,cdl是由模拟电路组成的具有固定延迟功能的标准延迟单元。可选的,所述第一延迟子模块和第二延迟子模块均由96级sdl和4级cdl串联组成。
4、另一种可能的实施例中,数据检测子模块对数据进行检测,具体用于:对于每个wdq的位置,根据读回的数据和写入数据是否相等,判断这笔写数据是否被正确写入ddr颗粒;当读出数据与写入数据一致时,表明当前的wdqs设置满足写延迟需求,否则,则不满足。
5、其它可能的实施例中,对于wdqs信号与wdq信号的偏差比较大的ddr系统,所设置的wdq信号的起始位置到终止位置的区间为第一区间,对于wdqs信号与wdq信号的偏差比较小的ddr系统,所设置的wdq信号的起始位置到终止位置的区间为第二区间,所述第一区间大于或等于所述第二区间。
6、一种可能的实施例中,所述ddr训练系统频率越低,所述wdq可设置的每次延迟增加的标准延迟单元的数量越大。
7、另一种可能的实施例中,所述ddr训练系统应用于fpga平台,或应用于ddr颗粒的集成电路系统及soc。
8、第二方面,本发明提供一种基于指令集的ddr写延迟训练方法,应用于如第一方面所述的ddr训练系统,包括:
9、s1,设置wdqs信号的初始位置,并完成写均衡训练;
10、s2,基于写均衡训练的结果,通过所述第一整ui延迟模块和第一延迟子模块,对wdqs信号进行延迟处理;
11、s3,根据wdqs的延迟设置,设置wdq的初始位置;
12、s4,在发送写命令前,向ddr颗粒的目标地址写入背景值;该过程通过指令控制命令生成子模块生成连续多笔写命令,所述写命令用于生成对应的wdqs信号和wdq信号,以将wdqs信号进行扩展;并且通过片选处理子模块从多个片选信号中选择一个片选信号,供ddr颗粒识别所述写命令;
13、s5,针对每一个wdqs信号的位置,通过所述第二整ui延迟模块和第二延迟子模块,对wdq信号进行延迟处理,使wdq相对于wdqs位置不断变化;
14、s6,通过命令生成子模块生成写命令并向所述ddr颗粒发送所述写命令;
15、s7,通过命令生成子模块向所述目标地址发送读命令;
16、s8,数据检测子模块对读数据进行检测,当判断读回数据与发送的数据不一致,则返回s5,继续对写均衡训练的wdq信号进行延迟处理,并重复上述过程,直至读回数据与发送的数据一致结束训练或wdq延迟达到设置终点。
17、s9,如果wdq达到设置终点,训练未结束,则返回s2,继续对写均衡训练的wdqs信号进行延迟处理,并重复上述过程,直至读回数据与发送的数据一致或wdqs延迟达到设置终点结束训练。
18、一种可能的实施例中,对wdq信号进行延迟处理之后,通过命令生成子模块向所述目标地址发送读命令时,还包括:通过指令控制命令生成子模块生成连续多笔所述写命令;所述片选处理子模块从多个片选信号中选择一个片选信号,供ddr颗粒识别所述写命令。
19、第三方面,本技术实施例中还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得所述电子设备执行上述第一方面中的任意一种可能的设计的方法。
20、第四方面,本技术实施例还提供一种包含计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行上述第一方面中的任意一种可能的设计的方法。
21、本发明提供的一种基于指令集控制的ddr训练系统、训练方法及介质的有益效果在于:针对ddr颗粒类型多,系统多样的特点,本实施例提供的方法基于fpga设计了一种基于指令集控制的ddr训练系统,该系统可以通过指令的组合完成颗粒的初始化及基本的读写,延迟控制等功能。该逻辑模块可以使用fpga的可编程逻辑搭建,也可以集成到各种使用ddr系统的soc上。另外,本实施例提供的系统针对wdqs扩展不够灵活的方式,提出了一种使用多笔连续写命令扩展wdqs的方式,根据写命令地址信号和wdqs信号的延迟差距,可以发送任意笔连续的写命令,该写命令与常规写命令相同,只需要在控制逻辑内部将多余的片选信号掩盖掉即可,操作灵活简单。
22、本实施例提供的上述训练方法,在移动wdq的过程中,可以通过标准延迟单元sdl对wdq进行延迟控制,所以可以根据系统频率,决定wdq每次延迟增加的数量。对于低频系统,每次可以增加多个sdl的延迟。另外,可以根据预估的wdqs及wdq偏移的大小,调整wdq扫描的起始和终止位置,上述操作可以大幅缩短写延迟训练的时间。此外,对训练时间不敏感或无法预估wdqs及wdq相对偏移量的系统,可以直接设置wdq的起始位置和终止位置为最大范围,此设置可以满足所有系统需求。上述控制过程都通过指令携带的信息进行控制,系统调试方便,控制灵活。
本文地址:https://www.jishuxx.com/zhuanli/20240731/184096.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表