一种FPGA电路及窗口信号调整方法与流程

文档序号:12678615阅读:335来源:国知局
一种FPGA电路及窗口信号调整方法与流程

本发明涉及集成电路设计领域,尤其涉及一种FPGA(Field-Programmable Gate Array,现场可编程门阵列)电路及窗口信号调整方法。



背景技术:

在DDR(Double Data Rate,双倍速率同步动态随机存储器)存储器中,其输入输出数据与时钟的上升沿和下降沿同步,因此在读写操作中需要一个与时钟同频的双向DQS(Data Strobe Signal,数据选通信号)信号来抓取数据。这个DQS信号是一个三态信号,在不使用时处于高阻状态,当存储器接到读命令时DQS信号会在数据输出的前一个周期切换成逻辑低,当读命令完成后大概在DQS信号最后一个下降沿结束后半个时钟周期后DQS信号恢复到高阻状态。因此就需要一个DQS GATING电路在DQS信号从高阻切换到逻辑低之后到第一个上升沿的范围内产生一个窗口信号,且该窗口信号在DQS信号最后一个下降沿到恢复高阻状态之前关断。

由于DQS信号和该窗口信号之间是异步的,窗口信号和DQS信号之间的时序是不确定的,因此在每次执行读操作之前需要对窗口信号相对DQS信号的位置进行调整。参见图1,从FPGA发送读命令,到外部存储器接收到读命令的时间,以及从外部存储器发送DQS信号,到FPGA接收到DQS信号的时间为纳秒级,且随PVT变化很大,因此发送窗口控制信号的时机以及窗口位置的调整需要预估。现有的DQS GATEING电路大多是采用额外的VT检测电路来检测信号通路的延时,或者预估该延时,然后在此基础上进行调整,调整的幅度较大,所以调整的准确性和效率都会比较低,并且需要额外的资源。



技术实现要素:

本发明主要解决的技术问题是,提供一种FPGA电路及窗口信号调整方法,解决现有技术中,在调整窗口信号时,调整的幅度较大,调整的准确性和效率都比较低的问题。

为解决上述技术问题,本发明提供一种FPGA电路,包括:PHY(PhysicalLayer,物理层)、与PHY连接的DQS GATING电路、与DQS GATING电路连接的延迟补偿回路、连接在PHY与外部存储器之间的第一电路、连接在外部存储器与DQS GATING电路之间的第二电路;

PHY,用于通过第一电路发送读命令到外部存储器,并同时发送窗口控制信号到DQS GATING电路;

外部存储器在读操作完成时,输出DQS信号,并通过第二电路发送到DQSGATING电路;

窗口控制信号依次经过DQS GATING电路、延迟补偿回路,将经过延迟补偿回路后的信号作为目标窗口信号;

DQS GATING电路,用于根据目标窗口信号以及DQS信号,调整目标窗口信号相对DQS信号的位置。

其中,第一电路包括依次连接的第一IOL、第一IOB、第一PAD,第一IOL与PHY连接,第一PAD与外部存储器连接;

第二电路包括依次连接的第二PAD、第二IOB、第二IOL,第二PAD与外部存储器连接,第二IOL与DQS GATING电路连接;

延迟补偿回路包括依次连接的第三IOL、第三IOB、第三PAD、第四PAD、第四IOB、第四IOL,第三IOL、第四IOL分别与DQS GATING电路的两端连接。

其中,DQS GATING电路包括:

窗口生成模块,用于将并行的窗口控制信号转变为串行的窗口控制信号;

窗口位置调整模块,用于对串行的窗口控制信号的位置进行调整;

MUX选择模块,用于从目标窗口信号、窗口位置调整模块进行调整后的串行的窗口控制信号中选择出一者,并将其传输到DQS GATE处理模块;

DQS GATE处理模块,用于对DQS信号、以及MUX选择模块选择出的信号进行逻辑与操作。

其中,MUX选择模块为二输入选择器。

其中,DQS GATING电路,具体用于根据目标窗口信号以及DQS GATE处理模块输出的信号,调整目标窗口信号相对DQS信号的位置。

为解决上述技术问题,本发明提供一种窗口信号调整方法,应用于FPGA电路,FPGA电路包括:PHY、与PHY连接的DQS GATING电路、与DQS GATING电路连接的延迟补偿回路、连接在PHY与外部存储器之间的第一电路、连接在外部存储器与DQS GATING电路之间的第二电路;

方法包括:

PHY通过第一电路发送读命令到外部存储器,并同时发送窗口控制信号到DQS GATING电路;

外部存储器在读操作完成时,输出DQS信号,并通过第二电路发送到DQS GATING电路;

窗口控制信号依次经过DQS GATING电路、延迟补偿回路,将经过延迟补偿回路后的信号作为目标窗口信号;

DQS GATING电路根据目标窗口信号以及DQS信号,调整目标窗口信号相对DQS信号的位置。

其中,第一电路包括依次连接的第一IOL、第一IOB、第一PAD,第一IOL与PHY连接,第一PAD与外部存储器连接;

第二电路包括依次连接的第二PAD、第二IOB、第二IOL,第二PAD与外部存储器连接,第二IOL与DQS GATING电路连接;

延迟补偿回路包括依次连接的第三IOL、第三IOB、第三PAD、第四PAD、第四IOB、第四IOL,第三IOL、第四IOL分别与DQS GATING电路的两端连接。

其中,DQS GATING电路包括:

窗口生成模块,用于将并行的窗口控制信号转变为串行的窗口控制信号;

窗口位置调整模块,用于对串行的窗口控制信号的位置进行调整;

MUX选择模块,用于从目标窗口信号、窗口位置调整模块进行调整后的串行的窗口控制信号中选择出一者,并将其传输到DQS GATE处理模块;

DQS GATE处理模块,用于对DQS信号、以及MUX选择模块选择出的信号进行逻辑与操作。

其中,MUX选择模块为二输入选择器。

其中,DQS GATING电路根据目标窗口信号以及DQS信号,调整目标窗口信号相对DQS信号的位置包括:DQS GATING电路根据目标窗口信号以及DQS GATE处理模块输出的信号,调整目标窗口信号相对DQS信号的位置。

本发明的有益效果是:

根据本发明提供的一种FPGA电路及窗口信号调整方法,该FPGA电路包括:PHY、与PHY连接的DQS GATING电路、与DQS GATING电路连接的延迟补偿回路、连接在PHY与外部存储器之间的第一电路、连接在外部存储器与DQS GATING电路之间的第二电路;PHY,用于通过第一电路发送读命令到外部存储器,并同时发送窗口控制信号到DQS GATING电路;外部存储器在读操作完成时,输出DQS信号,并通过第二电路发送到DQS GATING电路;窗口控制信号依次经过DQS GATING电路、延迟补偿回路,将经过延迟补偿回路后的信号作为目标窗口信号;DQS GATING电路,用于根据目标窗口信号以及DQS信号,调整目标窗口信号相对DQS信号的位置;采用上述方案,将窗口控制信号经过延迟补偿回路,从而补偿PHY发送读命令,到外部存储器接收到读命令的时间,和外部存储器发送DQS信号,到DQS GATING电路接收到DQS信号的时间;回路延时补偿可以跟随PVT变化,匹配性好,通过该补偿,可以做到初始窗口信号位置在DQS信号附近,那么就可以迅速将窗口信号调整到合理的位置,提高窗口信号调整效率。

附图说明

图1为现有技术提供的一种FPGA电路的示意图;

图2为本发明实施例一提供的一种FPGA电路与外部存储器连接的示意图;

图3为本发明实施例一、二提供的一种GATE处理模块的示意图;

图4为本发明实施例一、二提供的一种未做补偿时的窗口和DQSI之间的相对位置关系的示意图;

图5为本发明实施例一、二提供的一种补偿后的窗口信号和DQSI之间的相对位置关系的示意图;

图6为本发明实施例一、二提供的一种正确窗口处理时的时序的示意图;

图7为本发明实施例二提供的一种窗口信号调整方法的流程图。

具体实施方式

下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。

实施例一

本实施例提供一种FPGA电路,参见图2,图2为本实施例提供的一种FPGA电路与外部存储器连接的示意图;在图2中,外部存储器204与FPGA电路相连;该FPGA电路包括:

PHY201、与PHY 201连接的DQS GATING电路202、与DQS GATING电路202连接的延迟补偿回路203、连接在PHY201与外部存储器204之间的第一电路205、连接在外部存储器204与DQS GATING电路202之间的第二电路206;其中,

延迟补偿回路203的两端分别与DQS GATING电路202的两端连接;

PHY201,用于通过第一电路205发送读命令到外部存储器204,并同时发送窗口控制信号到DQS GATING电路202;

可选的,第一电路205包括依次连接的第一IOL2051、第一IOB2052、第一PAD2053,第一IOL2051与PHY 201连接,第一PAD2053与外部存储器204连接;

PHY201在生成读命令之后,将读命令通过第一电路205发送给外部存储器204,即PHY201在生成读命令之后,读命令依次经过第一IOL2051、第一IOB2052、第一PAD2053,然后传输到外部存储器204;将读命令从发出,到外部存储器204接收到读命令所花的时间记为t1;

外部存储器204在接收到读命令之后,开始进行读操作;

外部存储器204在读操作完成时,输出DQS信号,并通过第二电路206发送到DQS GATING电路202,即发送到DQS GATING电路202的GATE处理模块2024中;

可选的,第二电路206包括依次连接的第二PAD2061、第二IOB2062、第二IOL2063,第二PAD2061与外部存储器204连接,第二IOL2063与DQSGATING电路202连接,第二IOL2063与DQS GATING电路202的GATE处理模块2024连接;

外部存储器204输出的DQS信号依次经过第二PAD2061、第二IOB2062、第二IOL2063,然后传输到DQS GATING电路202,即传输到DQS GATING电路202的GATE处理模块2024;将DQS信号从发出,到DQS GATING电路202接收到DQS信号所花的时间记为t2;

窗口控制信号依次经过DQS GATING电路202、延迟补偿回路203,将经过延迟补偿回路203后的信号作为目标窗口信号;

可选的,延迟补偿回路203包括依次连接的第三IOL2031、第三IOB2032、第三PAD2033、第四PAD2034、第四IOB2035、第四IOL2036,第三IOL2031、第四IOL2036分别与DQS GATING电路202的两端连接;

第三IOL2031与DQS GATING电路202的窗口位置调整模块2022连接,第四IOL2036与DQS GATING电路202的MUX选择模块2023连接;

窗口控制信号依次经过DQS GATING电路202、第三IOL2031、第三IOB2032、第三PAD2033、第四PAD2034、第四IOB2035、第四IOL2036,将经过第四IOL2036之后的信号作为目标窗口信号,然后再将目标窗口信号传输到DQS GATING电路202中,即传输到DQS GATING电路202中的MUX选择模块2023;

窗口控制信号经过延迟补偿回路203的时间可以补偿t1+t2中的部分时间;

DQS GATING电路202,用于根据目标窗口信号以及DQS信号,调整目标窗口信号相对DQS信号的位置。

其中,DQS GATING电路202包括:窗口生成模块2021、窗口位置调整模块2022、MUX选择模块2023、GATE处理模块2024,其中,

窗口生成模块2021,用于将并行的窗口控制信号转变为串行的窗口控制信号;

窗口生成模块2021用于将PHY发出的并行的窗口控制信号转变为串行的窗口控制信号;

窗口位置调整模块2022,用于对串行的窗口控制信号的位置进行调整;

示例性的,可以由系统检测GATE处理模块2024输出信号脉冲的个数是否是偶数个,若是偶数个(例如2个、4个等),则不需要调整窗口控制信号的位置,若是奇数个,则需要调整窗口控制信号的位置;

MUX选择模块2023,用于从目标窗口信号、窗口位置调整模块2022进行调整后的串行的窗口控制信号中选择出一者,并将其传输到GATE处理模块2024;

MUX选择模块2023在对信号进行选择时,其选择的信号要么是目标窗口信号(经过延迟补偿回路203的),要么是窗口位置调整模块2022进行调整后的串行的窗口控制信号(内部输出的);

在一种实施方式中,MUX选择模块2023选择的是窗口位置调整模块2022进行调整后的串行的窗口控制信号时,则不做环路补偿(即不经过延迟补偿回路203),这样就可以用来debug。

可选的,MUX选择模块2023为二输入选择器;

GATE处理模块2024,用于对DQS信号、以及MUX选择模块2023选择出的信号进行逻辑与操作;

当选择出的信号为目标窗口信号时,则GATE处理模块2024对DQS信号、以及目标窗口信号进行逻辑与操作;

当选择出的信号为窗口位置调整模块2022进行调整后的串行的窗口控制信号时,则GATE处理模块2024对DQS信号、以及窗口位置调整模块2022进行调整后的串行的窗口控制信号进行逻辑与操作;

其中,DQS GATING电路202,具体用于根据目标窗口信号,以及GATE处理模块2024输出的信号,调整目标窗口信号相对DQS信号的位置。

GATE处理模块2024输出的信号用于在FPGA后续电路读操作中抓取来自外部存储器204的数据。

在一种实施方式中,参见图3,图3为本实施例提供的一种GATE处理模块2024的示意图;GATE处理模块2024包括与门20241和D触发器20242,DQS信号经过第二PAD2061、第二IOB2062、第二IOL2063之后到GATE处理模块2024输入端的信号(记为DQSI)。MUX选择模块2023从窗口位置调整模块2022输出的窗口控制信号、经过延迟补偿回路203反馈回来的目标窗口信号中选择出一者之后,将其传输到D触发器20242;与门20241将DQSI和D触发器20242输出的信号DQS_ena进行逻辑与操作,输出一路DQS_GATED信号。与门20241输出的另一路DQS_GATED信号反馈回D触发器20242,该路DQS_GATED信号用于采集窗口状态,当信号由低电平变为高电平时,将D触发器20242的输出拉高。DQS_GATED信号是下降沿触发;当D触发器20242的输出变为低电平时,与门20241关断,DQS_GATED信号拉低;当D触发器20242的输出变为高电平时,与门20241打开。

下面对补偿前和补偿后的区别进行描述。

参见图4,图4为本实施例提供的一种未做补偿时的窗口和DQSI之间的相对位置关系的示意图;从图4中可以看出,由于没有做延迟补偿,因此产生的窗口信号可能会相对于DQSI超前很大延时。

参见图5,图5为本实施例提供的一种补偿后的窗口信号和DQSI之间的相对位置关系的示意图;从图5中可以看出,做延迟补偿后,窗口信号相对于DQSI超前或者滞后延迟得到大幅减小(几个ns)。

参见图6,图6为本实施例提供的一种正确窗口处理时的时序的示意图;由图6可知,把图4调整成图6的正确时序就需要很大的调整步数,而把图5调整成图6的正确时序就调整和幅度都很小,命中率会大大提高。

通过本实施例的实施,将窗口控制信号经过延迟补偿回路,从而补偿PHY发送读命令,到外部存储器接收到读命令的时间,和外部存储器发送DQS信号,到DQS GATING电路接收到DQS信号的时间;回路延时补偿可以跟随PVT变化,匹配性好,通过该补偿,可以做到初始窗口信号位置在DQS信号附近,那么就可以迅速将窗口信号调整到合理的位置,提高窗口信号调整效率。

实施例二

本实施例提供一种窗口信号调整方法,应用于实施例一中的FPGA电路,PHY201、与PHY 201连接的DQS GATING电路202、与DQS GATING电路202连接的延迟补偿回路203、连接在PHY201与外部存储器204之间的第一电路205、连接在外部存储器204与DQS GATING电路202之间的第二电路206;延迟补偿回路203的两端分别与DQS GATING电路202的两端连接;参见图7,图7为本实施例提供的一种窗口信号调整方法的流程图,该窗口信号调整方法包括以下步骤:

S701:PHY201通过第一电路205发送读命令到外部存储器204,并同时发送窗口控制信号到DQS GATING电路202;

可选的,第一电路205包括依次连接的第一IOL2051、第一IOB2052、第一PAD2053,第一IOL2051与PHY 201连接,第一PAD2053与外部存储器204连接;

PHY201在生成读命令之后,将读命令通过第一电路205发送给外部存储器204,即PHY201在生成读命令之后,读命令依次经过第一IOL2051、第一IOB2052、第一PAD2053,然后传输到外部存储器204;将读命令从发出,到外部存储器204接收到读命令所花的时间记为t1;

外部存储器204在接收到读命令之后,开始进行读操作;

S702:外部存储器204在读操作完成时,输出DQS信号,并通过第二电路206发送到DQS GATING电路202;

将输出的DQS信号发送到DQS GATING电路202的GATE处理模块2024中;

可选的,第二电路206包括依次连接的第二PAD2061、第二IOB2062、第二IOL2063,第二PAD2061与外部存储器204连接,第二IOL2063与DQS GATING电路202连接,第二IOL2063与DQS GATING电路202的GATE处理模块2024连接;

外部存储器204输出的DQS信号依次经过第二PAD2061、第二IOB2062、第二IOL2063,然后传输到DQS GATING电路202,即传输到DQS GATING电路202的GATE处理模块2024;将DQS信号从发出,到DQS GATING电路202接收到DQS信号所花的时间记为t2;

S703:窗口控制信号依次经过DQS GATING电路202、延迟补偿回路203,将经过延迟补偿回路203后的信号作为目标窗口信号;

可选的,延迟补偿回路203包括依次连接的第三IOL2031、第三IOB2032、第三PAD2033、第四PAD2034、第四IOB2035、第四IOL2036,第三IOL2031、第四IOL2036分别与DQS GATING电路202的两端连接;

第三IOL2031与DQS GATING电路202的窗口位置调整模块2022连接,第四IOL2036与DQS GATING电路202的MUX选择模块2023连接;

窗口控制信号依次经过DQS GATING电路202、第三IOL2031、第三IOB2032、第三PAD2033、第四PAD2034、第四IOB2035、第四IOL2036,将经过第四IOL2036之后的信号作为目标窗口信号,然后再将目标窗口信号传输到DQS GATING电路202中,即传输到DQS GATING电路202中的MUX选择模块2023;

窗口控制信号经过延迟补偿回路203的时间可以补偿t1+t2中的部分时间;

DQS GATING电路202,用于根据目标窗口信号以及DQS信号,调整目标窗口信号相对DQS信号的位置。

S704:DQS GATING电路202根据目标窗口信号以及DQS信号,调整目标窗口信号相对DQS信号的位置。

其中,DQS GATING电路202包括:窗口生成模块2021、窗口位置调整模块2022、MUX选择模块2023、GATE处理模块2024,其中,

窗口生成模块2021,用于将并行的窗口控制信号转变为串行的窗口控制信号;

窗口生成模块2021用于将PHY发出的并行的窗口控制信号转变为串行的窗口控制信号;

窗口位置调整模块2022,用于对串行的窗口控制信号的位置进行调整;

示例性的,可以由系统检测GATE处理模块2024输出信号脉冲的个数是否是偶数个,若是偶数个(例如2个、4个等),则不需要调整窗口控制信号的位置,若是奇数个,则需要调整窗口控制信号的位置;

MUX选择模块2023,用于从目标窗口信号、窗口位置调整模块2022进行调整后的串行的窗口控制信号中选择出一者,并将其传输到GATE处理模块2024;

MUX选择模块2023在对信号进行选择时,其选择的信号要么是目标窗口信号(经过延迟补偿回路203的),要么是窗口位置调整模块2022进行调整后的串行的窗口控制信号(内部输出的);

在一种实施方式中,MUX选择模块2023选择的是窗口位置调整模块2022进行调整后的串行的窗口控制信号时,则不做环路补偿(即不经过延迟补偿回路203),这样就可以用来debug。

可选的,MUX选择模块2023为二输入选择器;

GATE处理模块2024,用于对DQS信号、以及MUX选择模块2023选择出的信号进行逻辑与操作;

当选择出的信号为目标窗口信号时,则GATE处理模块2024对DQS信号、以及目标窗口信号进行逻辑与操作;

当选择出的信号为窗口位置调整模块2022进行调整后的串行的窗口控制信号时,则GATE处理模块2024对DQS信号、以及窗口位置调整模块2022进行调整后的串行的窗口控制信号进行逻辑与操作;

其中,DQS GATING电路202,具体用于根据目标窗口信号,以及GATE处理模块2024输出的信号,调整目标窗口信号相对DQS信号的位置。

GATE处理模块2024输出的信号用于在FPGA后续电路读操作中抓取来自外部存储器204的数据。

应当理解的是,上述步骤S701、S702、S703、S704执行的先后顺序并不在此不做限定。

在一种实施方式中,参见图3,图3为本实施例提供的一种GATE处理模块2024的示意图;GATE处理模块2024包括与门20241和D触发器20242,DQS信号经过第二PAD2061、第二IOB2062、第二IOL2063之后到GATE处理模块2024输入端的信号(记为DQSI)。MUX选择模块2023从窗口位置调整模块2022输出的窗口控制信号、经过延迟补偿回路203反馈回来的目标窗口信号中选择出一者之后,将其传输到D触发器20242;与门20241将DQSI和D触发器20242输出的信号DQS_ena进行逻辑与操作,输出一路DQS_GATED信号。与门20241输出的另一路DQS_GATED信号反馈回D触发器20242,该路DQS_GATED信号用于采集窗口状态,当信号由低电平变为高电平时,将D触发器20242的输出拉高。DQS_GATED信号是下降沿触发;当D触发器20242的输出变为低电平时,与门20241关断,DQS_GATED信号拉低;当D触发器20242的输出变为高电平时,与门20241打开。

下面对补偿前和补偿后的区别进行描述。

参见图4,图4为本实施例提供的一种未做补偿时的窗口和DQSI之间的相对位置关系的示意图;从图4中可以看出,由于没有做延迟补偿,因此产生的窗口信号可能会相对于DQSI超前很大延时。

参见图5,图5为本实施例提供的一种补偿后的窗口信号和DQSI之间的相对位置关系的示意图;从图5中可以看出,做延迟补偿后,窗口信号相对于DQSI超前或者滞后延迟得到大幅减小(几个ns)。

参见图6,图6为本实施例提供的一种正确窗口处理时的时序的示意图;由图6可知,把图4调整成图6的正确时序就需要很大的调整步数,而把图5调整成图6的正确时序就调整和幅度都很小,命中率会大大提高。

通过本实施例的实施,将窗口控制信号经过延迟补偿回路,从而补偿PHY发送读命令,到外部存储器接收到读命令的时间,和外部存储器发送DQS信号,到DQS GATING电路接收到DQS信号的时间;回路延时补偿可以跟随PVT变化,匹配性好,通过该补偿,可以做到初始窗口信号位置在DQS信号附近,那么就可以迅速将窗口信号调整到合理的位置,提高窗口信号调整效率。

显然,本领域的技术人员应该明白,上述本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储介质(ROM/RAM、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。

以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1