CN105335105B - 一种适用于fpga的qdr iv超高速存储控制器 - Google Patents
一种适用于fpga的qdr iv超高速存储控制器 Download PDFInfo
- Publication number
- CN105335105B CN105335105B CN201510966465.7A CN201510966465A CN105335105B CN 105335105 B CN105335105 B CN 105335105B CN 201510966465 A CN201510966465 A CN 201510966465A CN 105335105 B CN105335105 B CN 105335105B
- Authority
- CN
- China
- Prior art keywords
- array
- data
- qdr
- clock
- module
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
本发明公开了一种适用于FPGA的QDR IV超高速存储控制器,由时钟树、全局复位模块、高速输入输出接口模块、用户低速读写访问模块和主控模块组成。时钟树主要接收外部125MHz时钟和QDR芯片输出的QKB时钟信号,经PLL完成相位锁定后送至全局时钟网络以驱动FPGA内部各种可编程资源;全局复位模块用于复位主控模块和高速输入输出接口模块内部必要的寄存器;主控模块主要完成整个控制器的初始化及读写测试;高速输入输出接口模块和用户低速读写访问模块则用于完成高速、低速时钟信号的可靠转换。本发明实现了500MHz双倍数据速率下的超高速可靠读写,FPGA内部的其它模块只需在单一的125MHz时钟上升沿驱动下访问控制器的外部端口,支持与目前市面上所有QDR IV芯片的无缝连接。
Description
技术领域
本发明涉及高速数据传输技术及FPGA应用开发,尤其涉及一种适用于FPGA的QDRIV超高速存储控制器。
背景技术
QDR IV是第4代四倍数据速率存储器的英文简称,它具有极高的随机传输速率,可用于雷达信号处理、网络路由交换等许多场合中。FPGA则是现场可编程门阵列的英文简称,在许多信号处理平台中承担着运算核心的功能。
为了提升存储能力,FPGA设计中通常需要采用QDR IV作为片外大容量存储器,然而由于复杂的内部结构和走线策略,FPGA内部逻辑的工作频率难以得到实质改善,这导致许多FPGA***与***芯片的工作频率存在较大差异,难以充分发挥***芯片的全部性能。目前,虽然有一些设计实现了基于FPGA的QDR、QDR II读写控制器,但QDR、QDR II等均属于QDR的早期产品,其工作频率普遍较低且读写时序简单,相应的FPGA设计难度较小。而当QDR存储器工作速度超过200MHz后,基于现有技术的FPGA设计难度就大大增加,难以保证设计的静态时序收敛及不同工作温度下采样时钟相位的准确性,进而导致读写出现错误,许多设计采用人工测试多个时钟策略的方案来修正该问题,但不具有普适性,而且大量的人工调试也极易出现各种问题。
综上所述,目前针对最新的QDR IV存储器,由于其工作频率高、访问时序复杂,尚未有相应的FPGA超高速读写控制器解决方案。
发明内容
针对现有相关技术在利用FPGA完成QDR IV存储控制器设计时难以达到高的工作频率及保证采样时钟相位的稳定性等缺陷,本发明要解决的技术问题在于提供一种完整的QDR IV超高速存储控制器实现策略,通过合理的时钟树设计和精确的路径延时控制策略,使整个控制器与QDR IV芯片的最高工作频率达到500MHz,等效随机传输速率达到2GT/s,支持与目前市面上所有QDR IV芯片的无缝连接,而且在FPGA全工作温度范围下均有足够的时序裕量,无需人工搜索最佳相位即可保证数据采样的正确性。本发明适用于各种以FPGA为处理核心且需要极高吞吐量的数字信号处理***中。
为解决上述技术问题,本发明采用以下技术方案:
一种适用于FPGA的QDR IV超高速存储控制器,其特征在于:由时钟树、全局复位模块、高速输入输出接口模块、用户低速读写访问模块和主控模块组成,其中:
时钟树,接收外部输入的基准频率时钟及QDR IV芯片输出的数据随路时钟,并完成时钟再生及倍频处理,再生时钟与输入时钟具有确知的相位关系,时钟树输出的时钟信号供全局复位模块、高速输入输出接口模块、用户低速读写访问模块和主控模块使用。
全局复位模块,接收外部输入的异步复位信号,经过同步处理后输出,作为复位主控模块和高速输入输出接口模块内部必要寄存器的全局复位信号。
高速输入输出接口模块,接收QDR IV芯片高速信号并转换为低速并行信号,并送至主控模块和用户低速读写访问模块;输出QDR IV芯片的工作时钟;接收用户低速读写访问模块低速并行信号并转换为高速信号输出至QDR IV芯片。
用户低速读写访问模块,将主控模块产生的测试数据或控制器外部端口数据送至高速输入输出接口模块;将由高速输入输出接口模块输出的QDR IV回读低速并行数据经寄存后送至主控模块和控制器的外部端口。
主控模块,实现QDR IV芯片复位模式、读写测试模式以及正常工作模式的切换;产生测试信号,并经用户低速读写访问模块和高速输入输出接口模块完成对QDR IV芯片的写测试操作;在读写测试模式下验证QDR IV芯片写入数据和回读数据是否一致,在完全一致时切换至正常工作模式,通过用户低速读写访问模块接收控制器外部读写端口信号,完成对QDR IV芯片高速读写操作。
所述全局复位模块,包括相互级联的第一寄存器、第二寄存器和第三寄存器,用于将外部输入的异步复位信号转换为FPGA本地时钟域下的同步复位信号,复位主控模块和高速输入输出接口模块内部必要的寄存器和可编程资源。
所述高速输入输出接口模块,包括输入路径延时器阵列、串并转换器阵列、滑动移位器阵列Ⅰ、滑动移位器阵列Ⅱ、并串转换器阵列Ⅰ~并串转换器阵列Ⅴ、输出路径延时器阵列Ⅰ~输出路径延时器阵列Ⅲ;其中:
输入路径延时器阵列,用于对从QDR IV芯片读取得到的数据施加额外延时,将边沿对齐式样修正为中心对齐式样,符合FPGA高速串并转换器阵列的输入时序要求,然后输出至串并转换器阵列。
串并转换器阵列,用于接收经输入路径延时器阵列转换输出的QDR IV芯片高速信号,串并转换为低速信号后输出至滑动移位器阵列Ⅰ。
滑动移位器阵列Ⅰ,接收主控模块的移位控制信号,对串并转换器阵列的输出数据进行重排序,以实现数据的正确对齐。
并串转换器阵列Ⅰ,用于输出QDR IV芯片工作时钟及数据输入时钟信号。
并串转换器阵列Ⅱ,用于输出QDR IV芯片工作时钟及数据输入时钟信号的互补反相信号。
并串转换器阵列Ⅲ,用于将来自用户低速读写访问模块的读写控制信号转换为高速信号,经输出路径延时器阵列Ⅰ延时后输出至QDR IV芯片。
滑动移位器阵列Ⅱ,用于将来自用户低速读写访问模块的写数据进行重排序,并依次经并串转换器阵列Ⅳ转换为高速信号、经输出路径延时器阵列Ⅱ延时后输出至QDR IV芯片,最终实现高速时钟域下的写数据比写地址及控制信号延迟5个时钟周期。
并串转换器阵列Ⅳ,用于将滑动移位器阵列Ⅱ输出的写数据转换为高速信号,并经输出路径延时器阵列Ⅱ延时后输出至QDR IV芯片。
输出路径延时器阵列Ⅱ,用于对并串转换器阵列Ⅳ输出的高速信号进行延时,以符合QDR IV芯片的时序要求。
并串转换器阵列Ⅴ,用于将来自用户低速读写访问模块的读写地址转换为高速信号,经输出路径延时器阵列Ⅲ延时后输出至QDR IV芯片。
输出路径延时器阵列Ⅲ,用于对并串转换器阵列Ⅴ输出的高速信号进行延时,以符合QDR IV芯片的时序要求。
所述滑动移位器阵列Ⅰ和滑动移位器阵列Ⅱ中滑动移位器输入信号包括8位比特数据DIN,工作时钟信号CLK,以及3位比特数据选择端口SEL信号;DIN经过D寄存器寄存后输出得到DIN_d1, DIN_d1相对DIN有一个CLK时钟周期的延时,然后将信号DIN和DIN_d1经过位拼接得到新的16位比特宽度变量,然后由8个重排器分别从中顺序挑出8比特数据,这8个重排器的输出同时送到8选1数据选择器,由数据选择器数据选择端口SEL信号的值决定将哪一组重排器的数据输出;滑动移位器阵列Ⅰ中数据选择器的数据选择端口SEL信号由主控模块产生且可变,滑动移位器阵列II中数据选择器的数据选择端口SEL信号则固定接3位二进制数101,使低速写数据比写地址及控制信号错位5个比特,经并串转换后达到高速时钟域下输出相比输入延迟5个时钟周期的目的。
所述用户低速读写访问模块,包括数据选择器阵列Ⅰ~数据选择器阵列Ⅲ,以及寄存器阵列Ⅰ~寄存器阵列Ⅳ;其中:
数据选择器阵列Ⅰ,接收主控模块的数据选择信号,将控制器外部的写数据或者主控模块的测试读写数据输出至寄存器阵列Ⅰ。
数据选择器阵列Ⅱ,接收主控模块的数据选择信号,将控制器外部的写地址阵列、读地址阵列,或者主控模块的测试读地址阵列输出至寄存器阵列Ⅱ。
数据选择器阵列Ⅲ,接收主控模块的数据选择信号,将控制器外部的写使能信号、读使能信号,或者主控模块的测试写使能信号、读使能信号输出至寄存器阵列Ⅲ。
寄存器阵列Ⅰ~寄存器阵列Ⅲ,用于寄存数据选择器阵列Ⅰ~数据选择器阵列Ⅲ输出的信号,并经高速输入输出接口模块发送至QDR IV芯片的读写端口。
寄存器阵列Ⅳ,用于将高速输入输出接口模块输出的QDR IV芯片回读数据寄存后送至主控模块和控制器外部端口。
当主控模块在读写测试模式下时,将主控模块产生的测试数据利用数据选择器阵列Ⅰ~数据选择器阵列Ⅲ,寄存器阵列Ⅰ~寄存器阵列Ⅲ送至高速输入输出接口模块并最终到达QDR IV芯片的读写端口;当主控模块在正常工作模式下时,则将控制器外部读写端口信号利用数据选择器阵列Ⅰ~数据选择器阵列Ⅲ,寄存器阵列Ⅰ~寄存器阵列Ⅲ送至高速输入输出接口模块并最终到达QDR IV芯片的读写端口,同时还将由高速输入输出接口模块输出的QDR IV芯片回读数据经寄存器阵列Ⅳ寄存后送至主控模块和控制器外部端口。
所述主控模块包括复位时序产生器、伪随机数产生器、读写测试模块、滑动移位数据记录器、主控状态机;其中:
复位时序产生器,由主控状态机使能并产生QDR IV芯片所需的复位时序。
伪随机数产生器,用于产生伪随机数据,经读写测试模块输出测试读写数据。
滑动移位数据记录器,记录高速输入输出接口模块的滑动移位器的移位索引值,输出移位控制信号至高速输入输出接口模块的滑动移位器阵列Ⅰ中数据选择器的数据选择端口。
读写测试模块,接收伪随机数产生器输出的伪随机数据并输出测试读写数据,产生相应的测试写地址、测试写使能信号,并经用户低速读写访问模块和高速输入输出接口模块最终完成对QDR IV芯片的写测试操作;利用伪随机数产生器输出的数据进行写数据与回读数据的比对,查看是否有错误,调节滑动移位数据记录器以更新高速输入输出接口模块的滑动移位器阵列Ⅰ中数据选择器的数据选择端口。
主控状态机,控制复位时序产生器、伪随机数产生器、读写测试模块、滑动移位数据记录器有序工作,通过状态机实现QDR IV芯片复位模式、读写测试模式以及正常工作模式的切换,在读写测试模式下,由主控模块占用QDR IV芯片的读写端口,通过伪随机数产生器写入QDR IV芯片并回读,然后逐步调节滑动移位数据记录器以更新高速输入输出接口模块的滑动移位器阵列Ⅰ中数据选择器的数据选择端口,最终当写入数据与回读数据完全相同时即证明读写测试已经通过,可转入正常工作模式,并将QDR IV芯片的读写端口控制权转至控制器外部读写端口。
所述时钟树,包括时钟管理模块Ⅰ、时钟管理模块Ⅱ、时钟管理模块Ⅲ,以及8个全局布线资源;其中,外部输入的基准频率时钟经全局时钟资源Ⅰ、时钟管理模块Ⅰ后输出3路时钟,所述3路时钟各自经过一个全局时钟资源处理后输出:全局时钟资源Ⅳ的输出用于驱动控制器的低速时钟逻辑,提供主控模块和用户低速读写访问模块的工作时钟,全局时钟资源Ⅴ的输出用于高速输入输出接口模块中输入路径延时器阵列、输出路径延时器阵列的工作参考时钟,全局时钟资源Ⅵ的输出用于高速输入输出接口模块,驱动控制器的高速时钟逻辑;QDR IV芯片输出的一组数据输出时钟信号经全局时钟资源Ⅱ、时钟管理模块Ⅱ、全局布线资源Ⅶ输出后用于驱动高速输入输出接口模块的串并转换器阵列;QDR IV芯片输出的另一组数据输出时钟信号经全局时钟资源Ⅲ、时钟管理模块Ⅲ、全局布线资源Ⅷ输出后用于驱动高速输入输出接口模块的串并转换器阵列。
本发明通过合理的时钟树设计和专用高速数据串并转换模块的使用,使FPGA对外引脚接口传输时钟达到500MHz,支持双倍数据速率传输(Double Data Rate, DDR),并采用输入路径延时器和输出路径延时器对关键信号进行了额外延时,可将QDR IV芯片输出的边沿对齐格式数据修正为中心对齐格式然后再进行数据接收,经专业的静态时序工具分析后表明,整个设计在500MHz高速时钟频率下仍达到了良好的时序设计裕量,而且信号传输的稳定性不受高低温变化的影响,该控制器支持最高等效随机传输速率为2GT/s,远超现有的各类QDR存储控制器设计。使用本发明可大大提高FPGA访问片外存储器的读写效率和吞吐量,进而改善***性能。
附图说明
图1为本发明的结构原理框图。
图2为本发明的时钟树内部结构图。
图3为本发明的全局复位模块内部结构图。
图4为本发明的并串转换器对外接口图。
图5为本发明的并串转换器工作时序图。
图6为本发明的串并转换器对外接口图。
图7为本发明的串并转换器工作时序图。
图8为本发明的滑动移位器内部结构图。
图9为本发明的输入路径延时器将边沿对齐修正为中心对齐工作时序图。
图10为本发明的高速输入输出接口模块内部结构图。
图11为本发明的用户低速读写访问模块内部结构图。
图12为本发明的主控模块内部结构。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细说明。
目前QDR IV存储器主要有72Mbit和144Mbit两种规格,不失一般性,本实施例以目前容量最大、数据位宽最大的QDR IV存储器CY7C4142和Xilinx公司的XCKU060-FFVA1156-2型FPGA为代表,描述本发明存储控制器的技术方案。在本发明的具体实施方式中,高速指信号变化频率为500MHz,低速则为该高速信号频率的四分之一,即125MHz,但实际应用中并不局限于该特定频率,通常高速频率区间为信号频率200~500MHz,低速频率区间为50~125MHz。
1、整体结构设计
QDR IV同时具有2组真正独立的数据读写及控制总线,仅使用单芯片也可以实现双端口读写操作,但同时QDR IV芯片的对外接口信号也较多,表1列出了本发明设计中需要的关键信号及其说明。
表1 QDR IV芯片关键信号列表
在表1列出的信号中,除RST_为LVCMOS电平外,其余信号均可通过外部配置支持HSTL和POD两种电平,但考虑到目前支持POD电平的FPGA器件仍较少,因此可采用HSTL电平开展相应设计。此外,虽然QDR IV芯片的DQA、DQB均为双向端口,但实际应用中多采用简单双口RAM方案,即其中一个端口仅用于读操作,另一个端口仅用于写操作,本发明也采用了该策略,DQA用于实现写操作,DQB用于实现读操作。
本发明QDR IV控制器的整体结构框图如图1所示。
该控制器主要由时钟树、全局复位模块、主控模块、高速输入输出接口模块、用户低速读写访问模块这5个模块组成,其中外部的QDR芯片主要与时钟树和高速输入输出接口模块相连,此外,为了使整个***正常工作,***外部提供有复位信号和工作时钟。本发明采用高电平有效的异步复位信号和125MHz晶振时钟,由于晶振时钟频率较高,可采用LVDS差分电平形式输出该时钟。
图1中,时钟树主要接收外部125MHz时钟和QDR芯片输出的QKB时钟信号,经PLL完成相位锁定后送至全局时钟网络以驱动FPGA内部各种可编程资源;全局复位模块用于复位主控模块和高速输入输出接口模块内部必要的寄存器;主控模块内部又包括一个复杂状态机和一系列子模块,主要完成整个控制器的初始化及读写测试;高速输入输出接口模块和用户低速读写访问模块则用于完成高速时钟信号与低速时钟信号的可靠转换,而FPGA其它模块访问该控制器的工作频率仅为125MHz,且只在时钟的上升沿时刻访问,大大减轻了FPGA内部其余模块的时序设计压力。
以下介绍各模块的详细设计实现策略。
2、时钟树设计
时钟树,接收外部输入的基准频率时钟及QDR IV芯片输出的数据随路时钟,并完成时钟再生及倍频处理,再生时钟与输入时钟具有确知的相位关系,时钟树输出的时钟信号供全局复位模块、高速输入输出接口模块、用户低速读写访问模块和主控模块使用。
时钟树,包括时钟管理模块Ⅰ、时钟管理模块Ⅱ、时钟管理模块Ⅲ,以及8个全局布线资源;其中,外部输入的基准频率时钟经全局时钟资源Ⅰ、时钟管理模块Ⅰ后输出3路时钟,所述3路时钟各自经过一个全局时钟资源处理后输出:全局时钟资源Ⅳ的输出用于驱动控制器的低速时钟逻辑,提供主控模块和用户低速读写访问模块的工作时钟;全局时钟资源Ⅴ的输出用于高速输入输出接口模块中输入、输出路径延时器阵列的工作参考时钟;全局时钟资源Ⅵ的输出用于高速输入输出接口模块,驱动控制器的高速时钟逻辑。QDR IV芯片输出的一组数据输出时钟信号经全局时钟资源Ⅱ、时钟管理模块Ⅱ、全局布线资源Ⅶ输出后用于驱动高速输入输出接口模块的串并转换器阵列;QDR IV芯片输出的另一组数据输出时钟信号经全局时钟资源Ⅲ、时钟管理模块Ⅲ、全局布线资源Ⅷ输出后用于驱动高速输入输出接口模块的串并转换器阵列。
本实施例的时钟树输入时钟包括以下三组信号:
(1)***外部输入125MHz时钟CLK_EXT,电平形式为LVDS;
(2)QDR IV芯片输出的QKB[0],电平形式为HSTL;
(3)QDR IV芯片输出的QKB[1],电平形式为HSTL。
上述三组信号均需经过FPGA专用的全局时钟引脚(以下简称GC引脚)引脚送至FPGA内部,然后各自经过全局时钟资源和时钟管理模块完成时钟再生及倍频处理,整个时钟树结构图如图2所示。
图2中,全局时钟资源是FPGA中的一种专有资源,用于增强时钟的驱动能力及改善时钟到达各可编程资源的不一致性;时钟管理模块是FPGA的一种可编程资源,可完成各种时钟分频、倍频操作。本发明共使用3组时钟管理模块,其中时钟管理模块Ⅰ对CLK_EXT进行再生和倍频,输出3路时钟信号并经过全局时钟资源输出,这3路时钟资源频率分别为125MHz,250MHz,500MHz,故各自记作CLK_125M,CLK_250M,以及CLK_500M。
CLK_125M频率最低,适合FPGA内部普通逻辑及时序组件使用,它在本发明中主要用于提供主控模块和用户低速读写访问模块的工作时钟。CLK_250M则是用于提供FPGA内部输入输出可编程延时模块的工作参考时钟。CLK_500M频率最高,主要供FPGA的高速输入输出接口模块使用。CLK_QKB0和CLK_QKB1分别来源于QKB[0]和QKB[1],工作频率也为500MHz,但与CLK_500M之间存在一定的相位差,主要供FPGA的高速输入输出接口模块使用。
需要注意的是,由于CLK_QKB0和CLK_QKB1工作频率很高,而且QDR芯片同时在时钟的上升沿和下降沿传输数据,导致实际有效的数据捕捉窗口十分有限,因此这两路时钟与DQB数据路径的延时相对关系必须精确保证,为此,时钟管理模块2和时钟管理模块3模块必须使能其相位对齐功能,以便使输出的CLK_QKB0/ CLK_QKB1时钟与QKB[0]/ QKB[1]时钟相位精确对齐。这样才可以在后续设计中通过合理的数据路径规划达到正确捕捉数据的目的。
3、全局复位模块设计
复位模块用于在***上电或外部复位状态下复位相关的寄存器以消除其不定态,许多FPGA设计通常大量使用复位信号以复位所有寄存器及其它可编程资源。然而这种复位策略会导致全局复位信号极高的扇出系数,进而显著增加复位信号走线复杂度及路径延时,最终限制了整个设计的最高工作频率。事实上,多数复位信号的目的仅仅是用于完成寄存器初始化,而这可以简单地通过变量赋初值实现,因此只应对一些必要的寄存器及可编程资源进行复位即可,以便简化复位路径的时序,从而达到从整体上改善性能、缩小面积和降低功耗的目的。
由于复位信号来源于外部端口输入,对FPGA内部工作时钟是一个典型的异步信号,因此需要对其进行同步化,如图3所示,全局复位模块内部设有相互级联的第一寄存器、第二寄存器及第三寄存器,使异步信号经多级同步后最终成为FPGA本地时钟域下的全局复位信号输出,复位主控模块和高速输入输出接口模块内部必要的寄存器和可编程资源,其中RST为输入信号,RST_D1~ RST_D3为经过D寄存器同步后的信号,RST_D3为整个模块的输出,该信号已经经过了3级寄存器同步,可使亚稳态的概率降低至可忽略不计。而且,本发明采用的同步复位策略可比异步复位策略使综合后电路的最高工作频率得到改善,静态时序分析效率也大为提高。
4、高速输入输出接口模块设计
高速输入输出接口模块,接收QDR IV芯片高速信号并转换为低速并行信号,并送至主控模块和用户低速读写访问模块;输出QDR IV芯片的工作时钟;接收用户低速读写访问模块低速并行信号并转换为高速信号输出至QDR IV芯片。
高速输入输出接口模块,包括输入路径延时器阵列、串并转换器阵列、滑动移位器阵列Ⅰ、滑动移位器阵列Ⅱ、并串转换器阵列Ⅰ~并串转换器阵列Ⅴ、输出路径延时器阵列Ⅰ~输出路径延时器阵列Ⅲ;其中:
输入路径延时器阵列,用于对从QDR IV芯片读取得到的数据施加额外延时,将边沿对齐式样修正为中心对齐式样,符合FPGA高速串并转换器阵列的输入时序要求,然后输出至串并转换器阵列;
串并转换器阵列,用于接收经输入路径延时器阵列转换输出的QDR IV芯片高速信号,串并转换为低速信号后输出至滑动移位器阵列Ⅰ;
滑动移位器阵列Ⅰ,接收主控模块的移位控制信号,对串并转换器阵列的输出数据进行重排序,以实现数据的正确对齐;
并串转换器阵列Ⅰ,用于输出QDR IV芯片工作时钟及数据输入时钟信号;
并串转换器阵列Ⅱ,用于输出QDR IV芯片工作时钟及数据输入时钟信号的互补反相信号;
并串转换器阵列Ⅲ,用于将来自用户低速读写访问模块的读写控制信号转换为高速信号,经输出路径延时器阵列Ⅰ延时后输出至QDR IV芯片;
滑动移位器阵列Ⅱ,用于将来自用户低速读写访问模块的写数据进行重排序,并依次经并串转换器阵列Ⅳ转换为高速信号、经输出路径延时器阵列Ⅱ延时后输出至QDR IV芯片,最终实现高速时钟域下的写数据比写地址及控制信号延迟5个时钟周期;
并串转换器阵列Ⅳ,用于将滑动移位器阵列Ⅱ输出的写数据转换为高速信号,并经输出路径延时器阵列Ⅱ延时后输出至QDR IV芯片;
输出路径延时器阵列Ⅱ,用于对并串转换器阵列Ⅳ输出的高速信号进行延时,以符合QDR IV芯片的时序要求;
并串转换器阵列Ⅴ,用于将来自用户低速读写访问模块的读写地址转换为高速信号,经输出路径延时器阵列Ⅲ延时后输出至QDR IV芯片;
输出路径延时器阵列Ⅲ,用于对并串转换器阵列Ⅴ输出的高速信号进行延时,以符合QDR IV芯片的时序要求。
QDR芯片同时使用时钟上升沿和下降沿传输数据,即所谓的DDR模式,而本发明中QDR芯片的工作时钟可达500MHz,因此真正有效的数据保持时间长度实际上只有1ns左右,如此高的数据传输速率是FPGA内部的寄存器、查找表等常规资源难以承受的,为此,本发明采用FPGA中的高速并串转换器和串并转换器硬件原语完成高速时钟域和低速时钟域的切换,其转换比可达1:8,因此,QDR IV芯片的待写入数据只需以125MHz的单倍数据速率(Single Data Rate, SDR)写入高速并串转换器组件,然后经过8:1并串转换,输出数据的工作频率提高至500MHz,并且由SDR模式切换至DDR模式。同样地,QDR芯片输出的DDR模式500MHz频率数据也由串并转换器组件经过1:8串并转换后得到125MHz下SDR模式数据。
高速并串转换器组件的对外接口和工作时序如图4和图5所示。高速并串转换器组件可在CLK_DIV的驱动下最多接收8路并行数据输入,并将其转换为1路高速串行数据DQ,然后在高速时钟CLK的驱动下,DQ依次输出D1~D8的数据。
串并转换器组件可以看作是并串转换器的逆变换,它可以将接收到的高速数据转换至低速时钟域,不同FPGA器件的串并转换器组件接口信号略有不同,以Xilinx公司的XCKU060-FFVA1156-2型FPGA为例,其对外接口和工作时序分别如图6和图7所示。其中D和CLK分别是输入高速数据和随路同步时钟,FIFO_RD_CLK为FIFO读时钟,在1:8 DDR串并比模式下,其频率为CLK的1/4,FIFO_RD_EN为FIFO读使能信号,FIFO_EMPTY为FIFO空标志,高电平有效,Q1~Q8为输出并行数据,其驱动时钟为FIFO_RD_CLK,因此只需要在检测到FIFO_EMPTY为低电平时,置FIFO_RD_EN为高电平,即可在下一个FIFO_RD_CLK时钟周期从Q1~Q8端口得到解串后的数据。
然而,需要明确指出,由于CLK与CLK_DIV之间的相位差异,以及串并转换器需要完成跨时钟域数据处理,图7所示的工作时序仅是可能出现的多种时序之一,在图7中的CLK1期间,Q1~Q8输出数据还有可能是XABCDEFG,BCDEFGHI, CDEFGHIJ等等。这多种时序之间存在着移位关系,为了保证所有串并转换器组件的Q1~Q8输出数据式样相同,希望Q1总是输出在FIFO_RD_CLK上升沿之后的D端口第一个数据,并以此类推。为此,需要为串并转换器增加输出数据滑动移位功能,以下介绍数据滑动移位功能的实现。
如图8所示,滑动移位器阵列Ⅰ和滑动移位器阵列Ⅱ中滑动移位器的输入信号包括8位比特数据DIN,工作时钟信号CLK,以及3位比特数据选择端口SEL信号。DIN在滑动移位器内部经过D寄存器寄存后从Q端输出得到DIN_d1,该信号相对DIN有一个CLK时钟周期的延时。然后将DIN和DIN_d1经过位拼接得到新的16位比特宽度变量,然后由8个重排器从中顺序挑出8比特数据,设16位比特宽度变量为ABCDEFGHIJKLMNOP,则8个重排器的输出分别为:
重排器I:ABCDEFGH;
重排器II:BCDEFGHI;
重排器III:CDEFGHIJ;
重排器IV:DEFGHIJK;
重排器V:EFGHIJKL;
重排器VI:FGHIJKLM;
重排器VII:GHIJKLMN;
重排器VIII:HIJKLMNO;
这8个重排器的输出同时送到8选1数据选择器,由数据选择器数据选择端口SEL信号的值决定将哪一组重排器的数据输出。通过使用该滑动移位器后,无论串并转换器输出Q1~Q8数据如何错位,总可以通过遍历SEL的值(二进制000-111,即十进制0~7)找出一组正确的输出样式。滑动移位器阵列I和滑动移位器阵列II的内部结构基本相同,但前者的数据选择器数据选择端口SEL信号来自于主控模块且可变,用于实现读取得到的QDR数据对齐,而后者的数据选择器数据选择端口SEL信号固定为3位二进制数101,使低速写数据比写地址及控制信号错位5个比特,经并串转换后达到高速输出数据相比输入数据延迟5个时钟周期的目的。
此外,QDR IV的输入输出均采用了源同步方式,需保证QDR IV输入信号变化均与CK时钟严格同步,且数据为中心对齐式样,如CY7C4142要求建立时间和保持时间不小于0.125ns,且要求写数据相对写地址及控制信号有5个CK周期的延时。
为了达到建立保持时间要求,CK信号可直接通过并串转换器输出,而其它数据及控制信号则需在并串转换器输出信号后增加输出路径延时器(可使用FPGA专用资源实现)完成约0.5ns的延时操作后再输出至引脚,即可在500MHz的工作频率下,使这些信号相对CK时钟的建立保持时间均可达到0.5ns左右,已经超出了数据手册要求,同时也保证了较大的时序裕量。
采用输出路径延时器完成输出信号的建立保持时间要求是本发明相对许多现有设计的改进,许多设计通过调整PLL输出时钟相位达到同样的目的,但这种方法会占用宝贵的时钟管理模块及全局布线资源,而输出路径延时器在每一个FPGA IO引脚中均有分布,且不占用任何寄存器和LUT资源,可以自动补偿高低温延时变化,也不会降低输出信号质量,十分适合在高速高频场合下采用。
为了符合QDR IV时序,需要保证写数据DQA相对写地址及控制信号有5个CK周期的延时效果,由于5个CK周期已经超过了输出路径延时器的最大延时长度1.25ns,因此不能再使用输出路径延时器,但可以在DQA数据进入并串转换器前也加入一个与图8所示相同的滑动移位器组件,并利用该组件始终保持输出数据始终比输入数据右移5比特即可。
同样地,按照QDR IV数据手册要求,QDR IV的36比特宽度数据总线DQB输出信号变化则与QKB时钟严格同步,且数据为边沿对齐式样,如CY7C4142输出DQB数据相对QKB时钟沿前后最大抖动不超过0.1ns。然而,FPGA的串并转换器只能接收中心对齐式样的数据,为此本发明使用输入信号延时组件输入路径延时器在DQB数据路径上增加了约0.5ns的额外延时,输入路径延时器功能与输出路径延时器类似,只是主要用于输入信号延时,使用输入路径延时器后,可使边沿对齐修正为中心对齐,以下对该策略进行详细解释:
图9给出了QKB和DQB之间的相位变化情况,在FPGA引脚处,二者为边沿对齐式样。如时钟树设计部分所述,QKB时钟经全局时钟引脚输入后送至时钟树中的时钟管理模块Ⅱ~时钟管理模块Ⅲ,并产生与其相位严格对齐的同频时钟信号CLK_QKB0/1,该信号经过FPGA走线资源送到串并转换器的CLK端口,即图8中的ISERDES_CLK,而DQB则是由普通IO引脚进入FPGA内部,即图9中的DQB_d1,二者在FPGA内部的走线延时基本一致,因此DQB_d1和ISERDES_CLK仍为边沿对齐式样,然后由于本发明对DQB_d1***了输入路径延时器组件,使其延时额外增加了0.5ns,恰好是1/4个CLK_QKB时钟周期,真正到达串并转换器数据D端口的信号是ISERDES_D,可以看到,ISERDES_D信号的变化时刻正好处在ISERDES_CLK时钟上升沿和下降沿的中间,这样就使边沿对齐式样修正为了中心对齐式样,从而满足了串并转换器输入信号建立保持时间要求,达到正确输入数据的目的。
整个高速输入输出接口模块需接收QDR IV芯片以下信号:
端口B数据总线信号DQB[35:0],共36位,经过输入路径延时器延时0.5ns后到达串并转换器的D端,然后由串并转换器输出降速后的并行数据。
同样地,整个模块需向QDR芯片输出信号:
QDR芯片工作时钟CK,CK_,直接由并串转换器输出,
地址总线A[21:0],共22位,并串转换器与输出路径延时器配合实现0.5ns延时输出;
端口A数据时钟DKA[1:0], DKA_[1:0], 共4位,直接由并串转换器输出,
端口A数据总线DQA[35:0],共36位,并串转换器与输出路径延时器配合实现0.5ns延时输出;
端口A/B操作使能信号LDA_, LDB_,共2位,并串转换器与输出路径延时器配合实现0.5ns延时输出;
端口A/B读写指示信号RWA_, RWB_,共2位,并串转换器与输出路径延时器配合实现0.5ns延时输出;
综上所述,整个高速输入输出接口模块的结构可如图10所示(注:图中的所有并串转换器工作时钟均来源于时钟树提供的CLK_500M和CLK_125M,所有的输出路径延时器和输入路径延时器工作时钟则来源于时钟树提供的CLK_250M,由于结构较复杂,故图中未标出)。
可以看到,高速输入输出接口模块完成了以下工作:
(1)接收QDR芯片高速数据信号DQB[35:0](500MHz,DDR传输模式),并经输入路径延时器阵列、串并转换器阵列和滑动移位器阵列Ⅰ后转换为低速时钟域信号DQB_150M[287:0](125MHz,SDR传输模式,同时数据宽度变为原来的8倍),该信号同时送至主控模块和用户低速读写访问模块,滑动移位器阵列Ⅰ同时接受来自主控模块的移位控制信号,以决定数据的移位输出样式。
(2)并串转换器阵列Ⅰ将8位并行二进制数据10101010转化为高速输出,从而得到QDR IV芯片的CK、DKA[1:0]时钟信号,该时钟频率为500MHz,同样利用并串转换器阵列Ⅱ将8位并行二进制数据01010101转化为高速输出,从而得到QDR IV芯片的CK_、DKA_[1:0]信号,该时钟频率为500MHz,但相位与CK、DKA[1:0]正好相差180度。
(3)用户低速读写访问模块的写数据(图10 中的8组写数据,每组写数据宽度均为36位)、读写地址(图10中的4组写地址和4组读地址)、125MHz,SDR传输模式读写控制信号(图10 中的低速端口A写控制信号,以及低速端口B读控制信号)转换为500MHz,DDR传输模式高速信号(图10中的DQA[35:0],A[21:0],LDA_[1:0],RWA_[1:0],LDB_[1:0],RWB_[1:0])并输出至QDR IV芯片。
整个高速输入输出接口模块需要66个并串转换器组件,36个串并转换器组件,60个输出路径延时器组件,36个输入路径延时器组件,以及2个滑动移位器阵列。
5、用户低速读写访问模块
用户低速读写访问模块,将主控模块产生的测试数据或控制器外部端口数据送至高速输入输出接口模块;将由高速输入输出接口模块输出的QDR IV回读低速并行数据经寄存后送至主控模块和控制器的外部端口。
用户低速读写访问模块,包括数据选择器阵列Ⅰ~数据选择器阵列Ⅲ,以及寄存器阵列Ⅰ~寄存器阵列Ⅳ;其中:
数据选择器阵列Ⅰ,接收主控模块的数据选择信号,将控制器外部的写数据或者主控模块的测试读写数据输出至寄存器阵列Ⅰ;
数据选择器阵列Ⅱ,接收主控模块的数据选择信号,将控制器外部的写地址阵列、读地址阵列,或者主控模块的测试读地址阵列输出至寄存器阵列Ⅱ;
数据选择器阵列Ⅲ,接收主控模块的数据选择信号,将控制器外部的写使能信号、读使能信号,或者主控模块的测试写使能信号、读使能信号输出至寄存器阵列Ⅲ;
寄存器阵列Ⅰ~寄存器阵列Ⅲ,用于寄存数据选择器阵列Ⅰ~数据选择器阵列Ⅲ输出的信号,并经高速输入输出接口模块发送至QDR IV芯片的读写端口;
寄存器阵列Ⅳ,用于将高速输入输出接口模块输出的QDR IV芯片回读数据寄存后送至主控模块和控制器外部端口。
当主控模块在读写测试模式下时,将主控模块产生的测试数据利用数据选择器阵列Ⅰ~数据选择器阵列Ⅲ,寄存器阵列Ⅰ~寄存器阵列Ⅲ送至高速输入输出接口模块并最终到达QDR IV芯片的读写端口;当主控模块在正常工作模式下时,则将控制器外部读写端口信号利用数据选择器阵列Ⅰ~数据选择器阵列Ⅲ,寄存器阵列Ⅰ~寄存器阵列Ⅲ送至高速输入输出接口模块并最终到达QDR IV芯片的读写端口,同时还将由高速输入输出接口模块输出的QDR IV芯片回读数据经寄存器阵列Ⅳ寄存后送至主控模块和控制器外部端口。
该模块的功能相对简单,它主要是在125MHz,SDR模式的低工作频率下完成与主控模块、存储控制器外部其它模块的信息交互并经选择及寄存后转发至高速输入输出接口模块,以及接收来自高速输入输出接口模块的DQB_150M[143:0],经寄存处理后经控制器外部数据端口输出。该模块的结构框图如图11所示。
该模块的输入信号主要有:
a、来自控制器外部的写数据端口WRDAT_EXT[287:0];
b、来自主控模块的测试读写数据TEST_DAT[287:0];
c、来自控制器外部的写地址阵列WRADDR_ARRAY_EXT[87:0](包含4组QDR IV写地址),以及读地址阵列RDADDR_ARRAY_EXT[87:0] (包含4组QDR IV读地址);
d、来自主控模块的测试写地址阵列WRADDR_ARRAY_EXT[87:0](包含4组QDR IV写地址),以及测试读地址阵列RDADDR_ARRAY_EXT[87:0] (包含4组QDR IV读地址);
e、来自控制器外部的写使能信号WREN_EXT,读使能RDEN_EXT;
f、来自主控模块的测试写使能信号TEST_WREN,读使能TEST_RDEN;
g、来自主控模块的数据选择端DAT_SEL;
h、来自高速输入输出接口模块的低速端口B读数据DQB_150M[287:0]。
上述用户低速读写访问模块输入信号中的a和b、c和d、e和f各自通过数据选择器阵列Ⅰ~数据选择器阵列Ⅲ,其中数据选择器阵列Ⅰ~数据选择器阵列Ⅲ的数据选择端为输入信号g,该信号为低电平时选择将来自控制器外部的信号输出,为高电平时则将来自主控模块的测试信号输出,此后三组数据选择器列阵的输出信号各自经过寄存器阵列寄存后输出,输出信号分别为8组写数据、交叉排列的4组写地址和4组读地址、低速端口A写控制信号、以及低速端口B读控制信号,这些信号最终都送至高速输入输出接口模块。同时该模块也接收来自高速输入输出接口模块的低速端口B读数据DQB_150M[287:0],并同样经寄存处理后输出至控制器外部端口。
可以看到,整个用户低速读写访问模块所有的输出信号均采用寄存器阵列输出,这相当于额外***一级流水线,从而改善静态时序分析性能,并提高***的最高工作频率。
6、主控模块设计
主控模块是整个控制器的中央控制部分,主要实现QDR IV芯片上电复位时序以及基本读写测试。具体实现QDR IV芯片复位模式、读写测试模式以及正常工作模式的切换;产生测试信号,并经用户低速读写访问模块和高速输入输出接口模块完成对QDR IV芯片的写测试操作;在读写测试模式下验证QDR IV芯片写入数据和回读数据是否一致,在完全一致时切换至正常工作模式,通过用户低速读写访问模块接收控制器外部读写端口信号,完成对QDR IV芯片高速读写操作。其内部结构如图12所示。
主控模块包括复位时序产生器、伪随机数产生器、读写测试模块、滑动移位数据记录器、主控状态机;其中:
复位时序产生器,由主控状态机使能并产生QDR IV芯片所需的复位时序;
伪随机数产生器,用于产生伪随机数据,经读写测试模块输出测试读写数据;
滑动移位数据记录器,记录高速输入输出接口模块的滑动移位器的移位索引值,输出移位控制信号至高速输入输出接口模块的滑动移位器阵列Ⅰ中数据选择器的数据选择端口SEL;
读写测试模块,接收伪随机数产生器输出的伪随机数据并输出测试读写数据,产生相应的测试写地址、测试写使能信号,并经用户低速读写访问模块和高速输入输出接口模块最终完成对QDR IV芯片的写测试操作;利用伪随机数产生器输出的数据进行写数据与回读数据的比对,查看是否有错误,调节滑动移位数据记录器以更新高速输入输出接口模块的滑动移位器阵列Ⅰ中数据选择器的数据选择端口SEL;
主控状态机,控制复位时序产生器、伪随机数产生器、读写测试模块、滑动移位数据记录器有序工作,通过状态机实现QDR IV芯片复位模式、读写测试模式以及正常工作模式的切换,在读写测试模式下,由主控模块占用QDR IV芯片的读写端口,通过伪随机数产生器写入QDR IV芯片并回读,然后逐步调节滑动移位数据记录器以更新高速输入输出接口模块的滑动移位器阵列Ⅰ中数据选择器的数据选择端口SEL,最终当写入数据与回读数据完全相同时即证明读写测试已经通过,可转入正常工作模式,并将QDR IV芯片的读写端口控制权转至控制器外部读写端口。
下面详述主控模块工作过程:
(1)***上电后, 主控状态机置DAT_SEL为高电平,使能复位时序产生器,产生芯片RST_、CFG_引脚所需的复位时序,复位完成后禁用复位时序产生器,进入写测试状态;
(2)清零滑动移位数据记录器,置伪随机数产生器为初始状态,伪随机数产生器每隔一个时钟周期产生一组288位伪随机数据,由读写测试模块经TEST_DAT[287:0]输出,产生相应的测试写地址TEST_WRADDR_ARRAY[87:0]、测试写使能TEST_WREN信号,并经用户低速读写访问模块和高速输入输出接口模块最终完成对QDR IV芯片的写测试操作,此后转入读测试操作;
(3)在读测试操作,再次置伪随机数产生器为初始状态,并将其输出数据经寄存器阵列寄存后,与低速端口B读数据DQB_150M[287:0]在读写测试模块内进行对比,查看是否有错误,如果有则证明高速输入输出接口模块的滑动移位器数据选择SEL[2:0]需要更新,对滑动移位数据记录器的值作加1操作以修正移位控制信号,然后再次回到写测试状态。正常情况下,最多经过连续8次读写测试,总能找出一种正确的移位控制信号,否则应该考虑检查芯片自身质量及焊接等硬件问题。如果对比无错误,直接跳至正常工作状态。
(4)在正常工作状态,置DAT_SEL为低电平,释放主控模块对QDR IV读写端口的占用,此后控制器通过用户低速读写访问模块即可接收外部读写端口信号,完成对QDR IV芯片500MHz时钟下的高速读写操作。
综上所述,本发明通过上述设计策略,有效解决了500MHz双倍数据速率下的超高速可靠读写问题, FPGA内部的其它模块只需在单一的125MHz时钟上升沿驱动下访问控制器的外部端口即可,然后由控制器完成对QDR IV芯片的高速数据交换,并从设计上保证了充足的时序裕量和各个时钟采样相位的准确性,使开发者不再需要手动测试各时钟的最佳采样时刻,传输速率也比现有QDR控制器设计有明显提高。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (7)
1.一种适用于FPGA的QDR IV超高速存储控制器,其特征在于:由时钟树、全局复位模块、高速输入输出接口模块、用户低速读写访问模块和主控模块组成,其中:
时钟树,接收外部输入的基准频率时钟及QDR IV芯片输出的数据随路时钟,并完成时钟再生及倍频处理,再生时钟与输入时钟具有确知的相位关系,时钟树输出的时钟信号供全局复位模块、高速输入输出接口模块、用户低速读写访问模块和主控模块使用;
全局复位模块,接收外部输入的异步复位信号,经过同步处理后输出,作为复位主控模块和高速输入输出接口模块内部必要寄存器的全局复位信号;
高速输入输出接口模块,接收QDR IV芯片高速信号并转换为低速并行信号,并送至主控模块和用户低速读写访问模块;输出QDR IV芯片的工作时钟;接收用户低速读写访问模块低速并行信号并转换为高速信号输出至QDR IV芯片;
用户低速读写访问模块,将主控模块产生的测试数据或控制器外部端口数据送至高速输入输出接口模块;将由高速输入输出接口模块输出的QDR IV回读低速并行数据经寄存后送至主控模块和控制器的外部端口;
主控模块,实现QDR IV芯片复位模式、读写测试模式以及正常工作模式的切换;产生测试信号,并经用户低速读写访问模块和高速输入输出接口模块完成对QDR IV芯片的写测试操作;在读写测试模式下验证QDR IV芯片写入数据和回读数据是否一致,在完全一致时切换至正常工作模式,通过用户低速读写访问模块接收控制器外部读写端口信号,完成对QDRIV芯片高速读写操作;
所述用户低速读写访问模块,包括数据选择器阵列Ⅰ~数据选择器阵列Ⅲ,以及寄存器阵列Ⅰ~寄存器阵列Ⅳ;其中:
数据选择器阵列Ⅰ,接收主控模块的数据选择信号,将控制器外部的写数据或者主控模块的测试读写数据输出至寄存器阵列Ⅰ;
数据选择器阵列Ⅱ,接收主控模块的数据选择信号,将控制器外部的写地址阵列、读地址阵列,或者主控模块的测试读地址阵列输出至寄存器阵列Ⅱ;
数据选择器阵列Ⅲ,接收主控模块的数据选择信号,将控制器外部的写使能信号、读使能信号,或者主控模块的测试写使能信号、读使能信号输出至寄存器阵列Ⅲ;
寄存器阵列Ⅰ~寄存器阵列Ⅲ,用于寄存数据选择器阵列Ⅰ~数据选择器阵列Ⅲ输出的信号,并经高速输入输出接口模块发送至QDR IV芯片的读写端口;
寄存器阵列Ⅳ,用于将高速输入输出接口模块输出的QDR IV芯片回读数据寄存后送至主控模块和控制器外部端口。
2.根据权利要求1所述的适用于FPGA的QDR IV超高速存储控制器,其特征在于:所述全局复位模块,包括相互级联的第一寄存器、第二寄存器和第三寄存器,用于将外部输入的异步复位信号转换为FPGA本地时钟域下的同步复位信号,复位主控模块和高速输入输出接口模块内部必要的寄存器和可编程资源。
3.根据权利要求1所述的适用于FPGA的QDR IV超高速存储控制器,其特征在于:所述高速输入输出接口模块,包括输入路径延时器阵列、串并转换器阵列、滑动移位器阵列Ⅰ、滑动移位器阵列Ⅱ、并串转换器阵列Ⅰ~并串转换器阵列Ⅴ、输出路径延时器阵列Ⅰ~输出路径延时器阵列Ⅲ;其中:
输入路径延时器阵列,用于对从QDR IV芯片读取得到的数据施加额外延时,将边沿对齐式样修正为中心对齐式样,符合FPGA高速串并转换器阵列的输入时序要求,然后输出至串并转换器阵列;
串并转换器阵列,用于接收经输入路径延时器阵列转换输出的QDR IV芯片高速信号,串并转换为低速信号后输出至滑动移位器阵列Ⅰ;
滑动移位器阵列Ⅰ,接收主控模块的移位控制信号,对串并转换器阵列的输出数据进行重排序,以实现数据的正确对齐;
并串转换器阵列Ⅰ,用于输出QDR IV芯片工作时钟及数据输入时钟信号;
并串转换器阵列Ⅱ,用于输出QDR IV芯片工作时钟及数据输入时钟信号的互补反相信号;
并串转换器阵列Ⅲ,用于将来自用户低速读写访问模块的读写控制信号转换为高速信号,经输出路径延时器阵列Ⅰ延时后输出至QDR IV芯片;
滑动移位器阵列Ⅱ,用于将来自用户低速读写访问模块的写数据进行重排序,并依次经并串转换器阵列Ⅳ转换为高速信号、经输出路径延时器阵列Ⅱ延时后输出至QDR IV芯片,最终实现高速时钟域下的写数据比写地址及控制信号延迟5个时钟周期;
并串转换器阵列Ⅳ,用于将滑动移位器阵列Ⅱ输出的写数据转换为高速信号,并经输出路径延时器阵列Ⅱ延时后输出至QDR IV芯片;
输出路径延时器阵列Ⅱ,用于对并串转换器阵列Ⅳ输出的高速信号进行延时,以符合QDR IV芯片的时序要求;
并串转换器阵列Ⅴ,用于将来自用户低速读写访问模块的读写地址转换为高速信号,经输出路径延时器阵列Ⅲ延时后输出至QDR IV芯片;
输出路径延时器阵列Ⅲ,用于对并串转换器阵列Ⅴ输出的高速信号进行延时,以符合QDR IV芯片的时序要求。
4.根据权利要求3所述的适用于FPGA的QDR IV超高速存储控制器,其特征在于:所述滑动移位器阵列Ⅰ和滑动移位器阵列Ⅱ中滑动移位器输入信号包括8位比特数据DIN,工作时钟信号CLK,以及3位比特数据选择端口SEL信号;DIN经过D寄存器寄存后输出得到DIN_d1,DIN_d1相对DIN有一个CLK时钟周期的延时,然后将信号DIN和DIN_d1经过位拼接得到新的16位比特宽度变量,然后由8个重排器分别从中顺序挑出8比特数据,这8个重排器的输出同时送到8选1数据选择器,由数据选择器数据选择端口SEL信号的值决定将哪一组重排器的数据输出;滑动移位器阵列Ⅰ中数据选择器的数据选择端口SEL信号由主控模块产生且可变,用于实现读取得到的QDR数据对齐;滑动移位器阵列II中数据选择器的数据选择端口SEL信号则固定为3位二进制数101,使低速写数据比写地址及控制信号错位5个比特,经并串转换后达到高速时钟域下输出相比输入延迟5个时钟周期的目的。
5.根据权利要求1所述的适用于FPGA的QDR IV超高速存储控制器,其特征在于:当主控模块在读写测试模式下时,将主控模块产生的测试数据利用数据选择器阵列Ⅰ~数据选择器阵列Ⅲ,寄存器阵列Ⅰ~寄存器阵列Ⅲ送至高速输入输出接口模块并最终到达QDR IV芯片的读写端口;当主控模块在正常工作模式下时,则将控制器外部读写端口信号利用数据选择器阵列Ⅰ~数据选择器阵列Ⅲ,寄存器阵列Ⅰ~寄存器阵列Ⅲ送至高速输入输出接口模块并最终到达QDR IV芯片的读写端口,同时还将由高速输入输出接口模块输出的QDR IV芯片回读数据经寄存器阵列Ⅳ寄存后送至主控模块和控制器外部端口。
6.根据权利要求4所述的适用于FPGA的QDR IV超高速存储控制器,其特征在于:所述主控模块包括复位时序产生器、伪随机数产生器、读写测试模块、滑动移位数据记录器、主控状态机;其中:
复位时序产生器,由主控状态机使能并产生QDR IV芯片所需的复位时序;
伪随机数产生器,用于产生伪随机数据,经读写测试模块输出测试读写数据;
滑动移位数据记录器,记录高速输入输出接口模块的滑动移位器的移位索引值,输出移位控制信号至高速输入输出接口模块的滑动移位器阵列Ⅰ中数据选择器的数据选择端口;
读写测试模块,接收伪随机数产生器输出的伪随机数据并输出测试读写数据,产生相应的测试写地址、测试写使能信号,并经用户低速读写访问模块和高速输入输出接口模块最终完成对QDR IV芯片的写测试操作;利用伪随机数产生器输出的数据进行写数据与回读数据的比对,查看是否有错误,调节滑动移位数据记录器以更新高速输入输出接口模块的滑动移位器阵列Ⅰ中数据选择器的数据选择端口;
主控状态机,控制复位时序产生器、伪随机数产生器、读写测试模块、滑动移位数据记录器有序工作,通过状态机实现QDR IV芯片复位模式、读写测试模式以及正常工作模式的切换,在读写测试模式下,由主控模块占用QDR IV芯片的读写端口,通过伪随机数产生器写入QDR IV芯片并回读,然后逐步调节滑动移位数据记录器以更新高速输入输出接口模块的滑动移位器阵列Ⅰ中数据选择器的数据选择端口,最终当写入数据与回读数据完全相同时即证明读写测试已经通过,可转入正常工作模式,并将QDR IV芯片的读写端口控制权转至控制器外部读写端口。
7. 根据权利要求3所述的适用于FPGA的QDR IV超高速存储控制器,其特征在于:所述时钟树,包括时钟管理模块Ⅰ、时钟管理模块Ⅱ、时钟管理模块Ⅲ,以及8个全局布线资源;其中,外部输入的基准频率时钟经全局时钟资源Ⅰ、时钟管理模块Ⅰ后输出3路时钟,所述3路时钟各自经过一个全局时钟资源处理后输出:全局时钟资源Ⅳ的输出用于驱动控制器的低速时钟逻辑,提供主控模块和用户低速读写访问模块的工作时钟,全局时钟资源Ⅴ的输出用于高速输入输出接口模块中输入路径延时器阵列、输出路径延时器阵列的工作参考时钟,全局时钟资源Ⅵ的输出用于高速输入输出接口模块,驱动控制器的高速时钟逻辑;QDR IV芯片输出的一组数据输出时钟信号经全局时钟资源Ⅱ、时钟管理模块Ⅱ、全局布线资源Ⅶ输出后用于驱动高速输入输出接口模块的串并转换器阵列;QDR IV芯片输出的另一组数据输出时钟信号经全局时钟资源Ⅲ、时钟管理模块Ⅲ、全局布线资源Ⅷ输出后用于驱动高速输入输出接口模块的串并转换器阵列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510966465.7A CN105335105B (zh) | 2015-12-22 | 2015-12-22 | 一种适用于fpga的qdr iv超高速存储控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510966465.7A CN105335105B (zh) | 2015-12-22 | 2015-12-22 | 一种适用于fpga的qdr iv超高速存储控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105335105A CN105335105A (zh) | 2016-02-17 |
CN105335105B true CN105335105B (zh) | 2018-05-15 |
Family
ID=55285686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510966465.7A Expired - Fee Related CN105335105B (zh) | 2015-12-22 | 2015-12-22 | 一种适用于fpga的qdr iv超高速存储控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335105B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9818462B1 (en) * | 2017-01-19 | 2017-11-14 | Micron Technology, Inc. | Apparatuses and methods for providing internal clock signals of different clock frequencies in a memory device |
US10169264B1 (en) * | 2017-06-30 | 2019-01-01 | Xilinx, Inc. | Implementing robust readback capture in a programmable integrated circuit |
CN109032966B (zh) * | 2018-07-26 | 2021-10-29 | 郑州云海信息技术有限公司 | 一种高速缓存装置及数据高速读写终端 |
CN110780846B (zh) * | 2019-09-29 | 2023-03-21 | 太原理工大学 | 一种由低速物理随机数产生高速物理随机数的方法及装置 |
CN110852026B (zh) * | 2019-11-07 | 2023-10-20 | 许继集团有限公司 | 一种fpga及其时序收敛方法 |
CN111162842B (zh) * | 2019-12-20 | 2021-10-01 | 西安空间无线电技术研究所 | 一种适用于空间光通信的高速率的裸并串信号产生*** |
CN111157881B (zh) * | 2020-01-03 | 2022-05-31 | 深圳市紫光同创电子有限公司 | 测试电路及电路测试方法 |
CN112311492B (zh) * | 2020-03-24 | 2024-04-05 | 李鸿明 | 基于fpga的高精度时钟同步方法 |
CN113434455B (zh) * | 2021-06-22 | 2023-10-24 | 中国电子科技集团公司第十四研究所 | 一种基于fpga的光纤接口数据缓存管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101334766A (zh) * | 2008-06-30 | 2008-12-31 | 东软飞利浦医疗设备***有限责任公司 | 一种并行微处理器及其实现方法 |
US8019950B1 (en) * | 2008-03-27 | 2011-09-13 | Xilinx, Inc. | Memory controller interface for an embedded processor block core in an integrated circuit |
CN104795091A (zh) * | 2015-04-29 | 2015-07-22 | 信阳师范学院 | 在fpga中实现zbt读写的时序稳定度的***及方法 |
-
2015
- 2015-12-22 CN CN201510966465.7A patent/CN105335105B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8019950B1 (en) * | 2008-03-27 | 2011-09-13 | Xilinx, Inc. | Memory controller interface for an embedded processor block core in an integrated circuit |
CN101334766A (zh) * | 2008-06-30 | 2008-12-31 | 东软飞利浦医疗设备***有限责任公司 | 一种并行微处理器及其实现方法 |
CN104795091A (zh) * | 2015-04-29 | 2015-07-22 | 信阳师范学院 | 在fpga中实现zbt读写的时序稳定度的***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105335105A (zh) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105335105B (zh) | 一种适用于fpga的qdr iv超高速存储控制器 | |
US20210027825A1 (en) | Memory controller | |
CN103064809B (zh) | 源同步双倍数据速率接口的采样装置及其采样方法 | |
CN101364432B (zh) | 存储器器件及其操作方法 | |
CN107590085B (zh) | 一种具有多级缓存的动态可重构阵列数据通路及其控制方法 | |
CN1991731B (zh) | 芯片烧录*** | |
CN101692346B (zh) | 一种存储器数据采样装置及一种采样控制器 | |
CN106297861A (zh) | 可扩展的多端口存储器的数据处理方法及数据处理*** | |
CN101770437B (zh) | 实现同步双端口存储器ip的并行读写的装置及方法 | |
CN106250321B (zh) | 2r1w存储器的数据处理方法及数据处理*** | |
CN102931994B (zh) | 应用于信号处理芯片的高速信号采样和同步的架构及方法 | |
CN102360342A (zh) | 海量影像数据快速存储显示固态硬盘 | |
CN105988970A (zh) | 共享存储数据的处理器和芯片 | |
CN106302260A (zh) | 4r4w全共享报文的数据缓存处理方法及数据处理*** | |
CN108038068A (zh) | 一种基于ddr读数据同步方法及*** | |
CN104795091B (zh) | 在fpga中实现zbt读写的时序稳定度的***及方法 | |
CN116721691A (zh) | 芯片存储器的测试方法、存储介质 | |
CN103678729B (zh) | 一种基于fpga实现的高速a/d采样数据实时存储方法 | |
KR102685395B1 (ko) | 반도체 장치, 반도체 시스템 및 반도체 장치의 동작 방법 | |
US8751853B2 (en) | Quad-data rate controller and implementing method thereof | |
US7190631B2 (en) | Multi-port memory | |
CN105487994A (zh) | 可扩展的2.5d接口架构 | |
CN102789190B (zh) | 适用于不同类型fpga电路编程的列地址分配器电路 | |
CN109426671A (zh) | 一种边界扫描链的生成方法及装置、计算机可读存储介质 | |
CN106650128A (zh) | 一种图形化显示时钟结构及时序相关性的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180515 Termination date: 20191222 |
|
CF01 | Termination of patent right due to non-payment of annual fee |