首页> 中国专利> 用于在FPGA上的DDR3应用的读取对准实现

用于在FPGA上的DDR3应用的读取对准实现

摘要

用于从装置的输入时钟域传送数据到核心时钟域的电路、方法和设备。实现此的一个实例通过在输入和核心电路之间使用重新定时元件。通过递增地掠过延迟和在每个增量接收数据来校准重新定时测量元件。将其中没有错误地接收数据的最小和最大延迟平均。该平均随后可以用于调整插入在由输入选通信号时钟控制的输入寄存器和由核心时钟信号时钟控制的输出寄存器之间的输入路径中的电路元件的时序。在一个实例中,可以将输入信号延迟对应于延迟设置的量。在其他实例中,使用在输入寄存器和输出寄存器之间的中间寄存器寄存每个输入信号,其中将时钟信号延迟对应于延迟设置的量。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-11-21

    授权

    授权

  • 2009-11-11

    实质审查的生效

    实质审查的生效

  • 2009-09-16

    公开

    公开

说明书

相关中请的交叉引用

[0001]本申请要求于2006年11月6日提交的美国临时申请 60/857,249的权益,将其完全包括于此作为参考。

背景技术

[0020]在计算机系统中的装置之间传送的数据量以惊人的速度增 加,且没有显示出减缓的迹象。具体来说,在存储器装置及其他装 置,例如使用现场可编程门阵列(FPGA)实现的装置,之间传送的 数据量惊人地增长。不幸地是,这些装置处理数据的速率增长得比存 储器装置提供数据的能力要快。为此,正在开发更快的存储器接口协 议。

[0003]一个这种更快的协议是双倍数据速率3(DDR3)接口标 准。在该标准中,若干个存储器装置与FPGA或者其他装置上的存 储器接口电路通信。每个存储器装置使用多个数据或者DQ信号以及 选通或者DQS信号通信。当FPGA接收数据时,FPGA向存储器装 置提供系统时钟信号,每个存储器装置向存储器接口电路提供DQS 和多个DQ信号。存储器装置使用系统时钟来调整DQS和DQ信号 的频率。然而,使用飞越(fly-by)拓扑将系统时钟路由到存储器装 置。因此,向存储器接口异步地提供DQ和DQS信号,即,每个存 储器装置可提供与系统时钟具有任何相位关系的DQS和DQ信号。

[0004]使用相应的DQS信号的相移版本来重新定时由存储器接 口接收的DQ信号。这些重新定时的信号需要再次被重新定时到内部 时钟,以将该信号传送到装置的核心,该内部时钟可能是系统时钟或 者第二时钟信号。不幸地,如果在相移的DQS信号和系统时钟之间 的时序不是最优的,则可能会产生数据恢复错误。现有技术包括使用 先入先出存储器,但是这些是相对大型和复杂的电路。

[0005]由此,需要的是为了从装置的输入到其核心电路高效地传 送数据的电路、方法和设备。

发明内容

[0006]因此,本发明的实施例提供用于从输入时钟域到装置的核 心时钟域的数据传送的电路、方法和设备。本发明的示例性实施例通 过使用装置的输入和核心电路之间的对准元件来实现上述目的。一个 实施例通过递增地扫过(sweep)延迟和以每个增量接收数据来校准 对准元件。记录并对其中无错误地接收数据的最小和最大延迟取平均 以产生延迟设置。随后该延迟能够用于调整插入在由输入选通信号时 钟控制的输入寄存器和由核心时钟信号时钟控制的输出寄存器之间的 输入路径中的对准元件。在本发明的各种实施例中,可以直接使用延 迟,即,可以将输入信号延迟对应于延迟设置的量。在本发明的其他 实施例中,对准元件是设置在输入寄存器和输出寄存器之间的中间寄 存器,其中使用中间寄存器重新定时每个输入信号,且其中将用于中 间寄存器的时钟信号延迟对应于延迟设置的量。在本发明的一个这种 实施例中,向中间寄存器提供多个时钟,将每个提供给一组数据输 入,其中独立地调整每个时钟信号的延迟或者相位。在本发明的另一 实施例中,向数据输入的每个组提供多个时钟,其中选择多个时钟之 一并用于该组中的中间寄存器的时钟控制。在本发明的其他实施例 中,例如锁存器的其他电路可以用作对准元件。

[0007]本发明的另一示例性实施例提供与例如在双列直插存储器 模块(DIMM)上布置的多个存储器装置接口连接的存储器接口电 路。每个存储器装置使用被称为DQS信号的选通信号和被称为DQ 信号的若干数据线与存储器接口电路通信。存储器接口向每一个存储 器装置提供系统时钟。存储器装置使用系统时钟以使得DQS和DQ 信号具有正确的基频,且由每个存储器装置提供的选通和数据信号彼 此对准。然而,最近的例如DDR3的存储器接口标准使用飞越拓扑 路由系统时钟。该拓扑使得由存储器装置在不同的时间接收系统时 钟。因此,每个存储器装置在相互之间偏斜的时间提供DQ和DQS 信号。结果,接收的DQS选通信号与系统时钟不同相。

[0008]存储器接口从存储器装置接收数据信号,并使用由相应的 选通信号时钟控制的输入寄存器对它们重新定时。然而,因为选通信 号与存储器控制器中的系统时钟不同相,因此使用由系统时钟时钟控 制的输出寄存器重新寄存输入数据信号,或者利用从连接到存储器接 口的核心电路使用的系统时钟导出的第二时钟重新寄存输入数据信 号。不幸地是,如果选通信号与系统时钟不正确地对准,则可能不恰 当地从输入寄存器向输出寄存器传送了数据,且可能发生数据接收错 误。

[0009]因此,本发明的特定实施例提供被实现为输入和输出寄存 器之间的延迟元件的对准元件,以使得将数据适当地传送到核心电 路。为校准延迟元件,由延迟元件提供的延迟在一定值的范围上递 增。在该特定实施例中,该值的范围大约覆盖一个时钟周期时间段, 然而在其他实施例中,该值的范围可以大于或者小于一个时钟周期。 在每个递增处,由每个存储器装置向存储器接口提供已知的数据样 本。对于在组中的每个DQ信号检查数据的接收错误。注意到其中对 于组中的DQ信号发生无错误接收的最小和最大延迟。可以平均这些 延迟且平均的延迟用于延迟输入信号。每个DQ/DQS组典型地被延 迟一独立地确定的延迟,然而,典型地将在组中每个DQ信号延迟相 同的量。在其他实施例中,可以将DQ/DQS组中的每个DQ延迟独 立的量。

[0010]本发明的另一实施例提供实现为输入和输出寄存器之间的 中间寄存器的对准元件。由系统时钟的延迟的版本对中间寄存器进行 时钟控制,其中校准延迟用于无错误数据接收。在该实施例中,锁相 环(PLL)产生系统时钟和系统时钟的若干个延迟的版本。对于一个 组的DQ输入向中间寄存器提供系统时钟的每一个延迟的版本。同 样,系统时钟的这些版本的延迟逐渐地增加(或者减小)且在每个增 量接收已知的数据样本。对于每个DQ组,对其中对于在组中的DQ 信号发生无错误接收的最小和最大延迟取平均,且将延迟了该量的时 钟提供给用于DQ组的中间寄存器。典型地,具有一个延迟的一个时 钟线用于DQ组中的每个中间寄存器,同时每个DQ组具有不同延迟 的时钟,其具有独立地校准的延迟。

[0011]本发明的另一实施例还提供实现为输入和输出寄存器之间 的中间寄存器的对准元件。由系统时钟的延迟的版本对这些中间寄存 器进行时钟控制,其中校准延迟用于无错误数据接收。在该实施例 中,多个延迟元件用于产生多个延迟的时钟,又使用时钟多路复用器 多路复用该多个延迟的时钟。具体地说,由产生多个延迟的时钟信号 的多个延迟元件接收例如对输出同步寄存器时钟控制的同步时钟或者 从系统时钟导出的第二时钟的一个时钟。将延迟的时钟信号路由到每 个DQ组。将时钟多路复用器与每个DQ组相关,其中时钟多路复用 器选择延迟的时钟信号之一,且将其提供给DQ组中的中间寄存器。 在校准期间,时钟多路复用器通过选择不同的输入时钟信号逐渐地调 整其输出的时钟信号的延迟。再一次,在每个增量接收已知的数据样 本。对于每个DQ组,平均其中对于在组中的DQ信号发生无错误接 收的最小和最大延迟,且由时钟多路复用器选择延迟了该量的时钟, 并提供给用于DQ组的中间寄存器。典型地,对于每个DQ组独立地 选择所选的多路复用器输入。

[0012]本发明的各种实施例可包括在这里描述的这些或者其他特 征的一个或多个。参考以下详细说明和附图可以更好地理解本发明的 特征和优点。

附图说明

[0013]图1是通过并入本发明的实施例改进的可编程逻辑器件的 简化框图;

[0014]图2是通过并入本发明的实施例改进的电子系统的框图;

[0015]图3是通过并入本发明的实施例改进的存储器接口的框 图;

[0016]图4是更详细地示出图3的存储器接口的一部分的框图;

[0017]图5是通过并入本发明的实施例改进的存储器接口的输入 路径的一部分的简化框图;

[0018]图6示出了用于图5的电路的可能的时序,其可能导致数 据接收期间的亚态(metastate)及其他不稳定性;

[0019]图7是示出了包括符合本发明的实施例的对准元件的存储 器接口电路的一部分的框图;

[0020]图8示出了图7示出的电路的时序;

[0021]图9是根据本发明的实施例的其中对准元件被实现为延迟 线的存储器接口的一部分的框图;

[0022]图10示出了可以用作图9或者本发明的其他实施例中的 延迟线940和942的延迟线;

[0023]图11是示出了用于通过图9中的延迟940和942设置延 迟的校准处理的流程图;

[0024]图12是符合本发明的实施例的其中对准元件是寄存器的 存储器接口的一部分的框图;

[0025]图13是示出了根据本发明的实施例的调整对准时钟的相 位的方法的流程图;

[0026]图14是根据本发明的实施例的存储器接口电路的一部分 的框图;

[0027]图15是示出了由本发明的实施例采用的校准逻辑的操作 的流程图;

[0028]图16是可以用于实现图14中,或者本发明的其他实施例 中的延迟锁定环路1460、延迟1420和延迟1440的延迟锁定环路、 延迟元件、多个延迟元件和时钟多路复用器的框图;和

[0029]图17示出了图16的电路的一个可能的简化。

具体实施方式

[0030]图1是其中能够使用根据本发明的技术的示例性高密度可 编程逻辑器件或者FPGA 100的简化的部分框图。PLD 100包括由变 化长度和速度的列和行互连的网络互连的可编程逻辑阵列块(或者 LAB)102的二维阵列。LAB 102包括多个(例如,10个)逻辑元件 (或者LE),LE是提供用于高效实现用户定义的逻辑功能的小的 逻辑单元。

[0031]PLD 100还包括分布存储器结构,其包括在整个阵列中 提供的尺寸变动的RAM块。RAM块包括,例如,512个位块104, 4K块106,和提供RAM的512个位的M-块108。这些存储器块还 可以包括移位寄存器和FIFO缓存器。PLD 100进一步包括数字信号 处理(DSP)块110,其能够实现,例如,具有加法或者减法特征的 乘法器。

[0032]将要理解在这里描述的PLD 100仅用于说明性的目的, 而能够以许多不同类型的PLD、FPGA和其他类型的数字集成电路 来实现本发明。

[0033]图1示出的类型的PLD或者FPGA提供了实现系统齐平 解决方案需要的许多资源,同时,本发明还可以有益于其中PLD是 几个组件中的一个的系统。

[0034]图2示出了在其中可以实现本发明的示例性数字系统200 的框图。系统200可以是编程的数字计算机系统、数字信号处理系 统、专用数字交换网或者其他处理系统。此外,这种系统可以设计用 于多种的应用,例如电信系统、汽车系统、控制系统、消费者电子设 备、个人计算机、因特网通信和网络连接等。进一步,系统200可以 被设置在单板上、设置在多个板上、或设置在多个包封物内。

[0035]系统200包括由一个或多个总线互连在一起的处理单元 202、存储器单元204和输入/输出单元206。根据该示例性实施例, 将可编程逻辑器件(PLD)208嵌入在处理单元202中。PLD 208可 在图2的系统内用作许多不同目的。例如,PLD 208可以是支持其内 部和外部操作的处理单元202的逻辑构建块。PLD 208被编程用于实 现在系统操作中执行其具体的角色所需的罗辑功能。PLD 208可以通 过连接210特别耦合到存储器204且通过连接212耦合到输入/输出 单元206。

[0036]处理单元202可将数据引导到适当的系统组件用于处理或 者存储,执行存储在存储器204中的程序,或者经由输入/输出单元 206接收和发送数据,或者其他类似的功能。处理单元202可以是中 央处理单元(CPU)、微处理器、浮点协处理器、图形协处理器、硬 件控制器、微控制器、编程以用作控制器的可编程逻辑器件、网络控 制器等。此外,在许多实施例中,通常不需要CPU。

[0037]例如,代替CPU,一个或多个PLD 208能够控制系统的 逻辑操作。在实施例中,PLD 208用作可重构的处理器,能够按照需 要重新编程以处理具体的计算任务。可选的,可编程逻辑器件208本 身可包括嵌入式微处理器。存储器单元204可以是随机存取存储器 (RAM)、只读存储器(ROM)、固定或者软盘介质、PC卡闪存 盘存储器、磁带、或任意其他存储器装置,或者这些存储器装置的任 何组合。

[0038]图3是通过并入本发明的实施例改进的存储器接口的框 图。该图包括多个存储器,在该实例中以双列直插式存储器模块 (DIMM)300布置,且包括集成电路,在该实例中是FPGA 340。 DIMM 300包括多个存储器装置310、320到330。FPGA 340包括存 储器控制器350和核心电路360。存储器控制器350使用多个 DQS/DQ组312、322和332读和写数据,并从核心电路360接收数 据和向核心电路360提供数据。从系统时钟352获得用于DQS和 DQ信号的时序,从存储器控制器350向存储器装置310、320和330 提供系统时钟352。

[0039]在DDR3系统中,使用飞越拓扑路由系统时钟352。也就 是说,存储器装置310到330以串行方式接收系统时钟352。还可以 用这种方法路由其他信号,例如控制信号(未示出)。该拓扑提供了 与更常规的路由相比更大的信号完整性。使用该拓扑的结果是存储器 装置310首先接收系统时钟352,且其他存储器装置在稍晚的时间接 收系统时钟,存储器装置330最后接收系统时钟。在系统时钟352到 达存储器装置之间的时滞可以与时钟周期类似。因为用于由存储器装 置提供的DQ和DQS信号的时序基于系统时钟352,因此由存储器 控制器350接收的DQ和DQS信号还可以时滞一时钟周期。

[0040]因此,来自存储器装置的DDQS和DQ信号组的每一个 都在相同频率操作,但是具有彼此不相关的相位关系。如下所示,不 需要更多,由于在从捕捉寄存器到同步寄存器的数据传送期间发生的 时序错误,这些相移能够引起存储器控制器350接收数据的错误。因 此,本发明的实施例提供了用于例如存储器控制器350的存储器控制 器的一致和精确数据接收的电路、方法和设备。

[0041]图4更详细地示出了图3的存储器接口的一部分的框图。 该图包括进一步包括存储器核心402、多用途寄存器404和存储器输 入和输出接口406的存储器装置400以及集成电路460,该集成电路 460例如是FPGA,其包括延迟元件410、捕捉寄存器420到424、 同步寄存器430到434、锁相环440和核心电路450。

[0042]在该实例实施例中,锁相环440将系统时钟提供给存储器 装置400。由此,存储器装置提供数据选通DQS信号和数据信号 DQ1、DQ2和DQN。数据选通信号由延迟电路410相移以产生延迟 的DQS信号,DDQS。延迟的选通信号DDQS为分别捕捉输入数据 信号DQ1、DQ2和DQN的捕捉寄存器420、422和424提供时钟控 制(clock)。将捕捉寄存器的输出提供给由系统时钟时钟控制的同 步寄存器430、432和434。将同步寄存器的输出提供给核心电路 450。

[0043]在典型系统中,当由存储器接口406提供数据选通信号 DQS时,该数据选通信号DQS与数据信号DQ1、DQ2和DQN对 准。一旦由FPGA460接收,延迟DQS信号,典型地延迟大约90度 (虽然可能需要其他相移),以使得延迟的DQS信号DDQS的边沿 位于输入(income)的DQ数据的位的中心。这使得捕捉寄存器能够 时钟控制引入的DQ数据。

[0044]再一次,DQS信号可具有与系统时钟的任何相位关系。 由此,DDQS信号也可以具有与系统时钟的任何可能的相位关系。这 意味着当数据从捕捉寄存器传递到同步寄存器时,可能发生亚态或者 其他不稳定性。这在下面的附图中进一步示出。

[0045]图5是通过并入本发明的实施例改进的存储器接口的输入 路径的一部分的简化框图。该图包括延迟元件510、捕捉寄存器 520、和同步寄存器530。由捕捉寄存器520在DQ线上接收数据。 从存储器装置接收DQS信号且由延迟电路510延迟或者相移以产生 延迟的DQS信号DDQS。DDQS信号时钟控制捕捉寄存器,捕捉寄 存器向同步寄存器530提供重新定时的数据输出CQ。该同步寄存器 530由同步时钟时钟控制,且向核心电路或者其他电路提供输出 DATAOUT。

[0046]如果在系统时钟的有效边沿附近发生信号CQ的数据转 变,可能在同步寄存器中出现亚态或者其他不稳定性,导致在 DATAOUT的接收数据的错误。在下面实例,同步寄存器530的有 效边沿被显示为上升沿,然而在本发明的其他实施例中,同步寄存器 530的有效边沿可以是下降沿。

[0047]图6示出了用于图5的电路的可能的时序,其可能导致数 据接收期间的亚态及其他不稳定性。这些亚态或者其他不稳定性通常 会导致数据接收中的错误。在该实例中,时序图示出了用于数据信号 DQ 610、数据选通信号DQS 620、延迟的DQS信号DDQS 630、重 新定时的数据信号CQ 640、同步时钟SYNC CLOCK 650和数据输 出信号DATAOUT 660的时序。

[0048]信号DQ 610和DQS 620是由例如FPGA的集成电路从 存储器装置接收的。将数据选通信号DQS 620相移量632,以产生 DDQS 630。DDQS 630时钟控制DQ 610信号以产生CQ 640。CQ 640的边沿在DQS上升沿之后时钟-到-Q延迟642。再一次,SYNC CLOCK 650可具有和DDQS 630的任意时序关系。如果SYNC CLOCK 650的上升沿以小于建立时间652的量接近数据边沿644, 则可能出现亚态或者数据不稳定性。类似地,如果SYNC CLOCK 650的上升沿接近于数据边沿646,则可能违反(violate)保持时间 656。如果这些条件之一发生,即,违反了建立时间652或者保持时 间656,则可能出现输出信号DATAOUT 660的不稳定性。因此,本 发明的实施例提供了对准元件,以使得信号CQ 640保持与SYNC CLOCK 650的关系以使得这些寄存器不会变得亚稳定且不出现不稳 定性。在下面的图中示出实例。

[0049]图7是示出了包括符合本发明的实施例的对准元件的存储 器接口电路的一部分的框图。该图包括捕捉寄存器720、对准元件 725、同步寄存器730、延迟710、延迟锁定环路740和锁相环750。 由捕捉寄存器720接收数据信号DQ。由延迟710接收数据选通信号 DQS且移相以产生时钟控制捕捉寄存器720的延迟的DQS信号 DDQS。捕捉寄存器720的输出由对准元件725接收,该对准元件 725依次向同步寄存器730提供输出。由锁相环750提供的同步时钟 对同步寄存器730进行时钟控制。同步寄存器730向其他电路(未示 出),例如FPGA的核心电路提供输出DATAOUT。延迟锁定环路 740同步到由锁相环750产生的本地时钟,且向延迟710提供控制信 号COUNT,以使得适当地移相DDQS信号以时钟控制引入的数据 DQ。

[0050]在不存在对准元件725的情况下,可以在同步时钟的有效 边沿附近向同步寄存器730提供由捕捉寄存器720提供的数据CQ。 在这种条件下,同步寄存器可能变得不稳定,且在DATAOUT线上 提供不正确的数据。因此,对准元件725重新定时来自捕捉寄存器 720的输出CQ为信号LQ,该信号LQ具有与同步时钟更期望的时 序关系。在本发明的各种实施例中,对准元件725可包括各种电路。 在本发明的特定实施例中,对准元件是改变其延迟以避免同步寄存器 730中的亚稳定性的延迟线。在本发明的其他实施例中,对准元件 720包括由其相位能够被改变的时钟定时的寄存器。在本发明的其他 实施例中,可以使用其他电路,例如锁存器。在下面图中示出说明图 7的电路的时序的时序图。

[0051]图8说明图7示出的电路的时序。该图包括用于信号DQ 810、DQS 820、DDQS 830、CQ 840、LQ 850、同步(SYNC) CLOCK 860、和DATAOUT 870的时序。数据选通信号DQS 820被 相移了量832以产生DDQS信号830。DDQS信号用于捕捉数据信号 DQ。捕捉寄存器的输出,CQ 840在时钟边沿之后时钟-到-Q延迟 842。

[0052]对准元件725将数据信号CQ 840相移了量846以产生 LQ 850,以使得LQ 850的数据边沿852远离SYNC CLOCK 860的 上升沿862和864。DATAOUT信号870在SYNC CLOCK 860的上 升沿864之后时钟-到-Q延迟872改变状态。再一次,在本发明的各 种实施例中,可以使用各种类型的电路实现对准元件。在本发明的特 定实施例中,对准元件725是延迟线。在以下图中示出实例。

[0053]图9是根据本发明的实施例的其中对准元件被实现为延迟 线的存储器接口的一部分的框图。该图包括被实现为触发器FF1、 FF2和FF3的捕捉寄存器、在此处被实现为延迟940和942的对准 元件、和同步寄存器触发器FF4和FF5。还包括延迟920、延迟锁定 环路960、锁相环970和校准逻辑980。

[0054]由捕捉寄存器触发器FF1和FF3在DDQS信号的交替边 沿上接收数据DQ。FF1的输出由触发器FF2重新定时,以使得由捕 捉寄存器在DDQS的上升沿提供数据输出CQ和CQ1。延迟数据选 通信号DQS以产生DDQS信号。捕捉寄存器CQ和CQ1的输出由 延迟元件940和942延迟以产生信号LQ和LQ1。信号LQ和LQ1 由提供数据输出DATAOUT和DATAOUT1的再同步寄存器FF4和 FF5重新定时。调整由延迟线940和942提供的延迟,以使得在再同 步寄存器FF4和FF5处避免不稳定性。

[0055]由锁相环970从晶体振荡器或者其他周期源接收到系统时 钟,该锁相环970以此产生本地时钟和同步时钟。同步时钟由延迟锁 定环路960跟踪,该延迟锁定环路960提供控制信号COUNT到延迟 920、940、942。这在延迟线中通过各个延迟元件设置延迟。以这种 方式,当温度、处理和电压改变时,能够调整COUNT的值,由此保 持延迟至少相对恒定。

[0056]因此,COUNT信号随着改变的温度、电压和处理递增或 者递减,以使得通过延迟940和942的延迟保持相当的恒定。再一 次,如果LQ和LQ1信号的数据边沿接近于同步时钟的有效边沿, 在同步寄存器中可能有亚稳定情况。因此,调整延迟元件940和942 的延迟以避免这些情况。具体地说,由校准逻辑980提供的一个或多 个SELECT信号调整通过延迟940和延迟942的延迟。以这种方 式,由COUNT信号和SELECT信号控制由延迟940和942提供的 延迟,COUNT信号调整以补偿温度和电源改变,以及该SELECT 信号调整延迟,以适当地传送数据。在以下图中示出了以这种方式调 整的延迟元件的实例。

[0057]图10示出了可以用作图9中的延迟线940和942,或者 本发明的其他实施例中的延迟线的延迟线。该图包括多个延迟元件 DE1、DE2、DE3和DE4,由多路复用器1020在由校准逻辑电路提 供的一个或多个选择信号的控制下选择其输出。在本发明的其他实施 例中,可以使用许多其他延迟元件。例如,需要更高分辨率时,能够 使用更多的延迟元件。具有“N”个元件的延迟线将提供360/N的分 辨率。

[0058]具体地说,在线1004上向延迟元件DE1、DE2、DE3和 DE4提供控制信号COUNT。其控制通过每个延迟元件的延迟,以使 得由它们提供的延迟具有对于温度、处理和电压的减小的变化性。具 体地说,每个延迟元件可以被实现为一个或多个单独的延迟电路,其 中延迟取决于COUNT信号的值。例如,每个延迟元件可以是具有将 电容器两端的电压放电的电流的一个或多个电路。另一方面,每个延 迟元件可以包括一个或多个电流饥饿(current starved)的反向器, 其中将电流饥饿的反向器实现为向反相级提供可变电流的电流源。电 流的值可以取决于COUNT信号的值,以使得较低的COUNT值向反 向器提供较少的电流,增加通过反向器的延迟。在本发明的其他实施 例中,可以实现其他类型的延迟元件。

[0059]将由多路复用器1020选择的信号作为数据信号提供给同 步寄存器之一。选择信号或者多个选择信号1006是由校准逻辑电路 产生的,以使得避免同步寄存器中的亚态或者不稳定性。在以下图中 示出校准逻辑怎样实现该任务的实例。

[0060]图11是说明用于设置通过图9中的延迟940和942的延 迟或者本发明的其他实施例中的延迟的校准处理的流程图。在该方法 中,以多个可能的延迟设置接收数据。确定以每个延迟设置的数据接 收的有效性,且由此找到最优延迟设置。

[0061]具体地说,在动作1110,设置初始延迟。在动作1120, 接收测试样本。在本发明的典型实施例中,该测试样本是从位于存储 器装置上的板上测试寄存器接收到的,例如,从多用途寄存器404。

[0062]在动作1130,确定是否已经正确地接收该测试样本。在 本发明的典型实施例中,检查来自每个双倍数据速率路径的仅一侧的 数据以确定是否已经正确地接收了数据。例如,在图9中,检查在 DATAOUT输出处的数据,同时在DATAOUT1处的数据是冗余的且 因此未进行检查以加快校准处理。在本发明的其他实施例中,仅检查 DATAOUT1输出,而在其它实施例中,检查两个输出。另外,在本 发明的各种实施例中,检查由在DQ/DQS组中的每个DQ路径接收 的数据以确定是否正确地接收了数据,即,需要由每个DQ路径正确 地接收数据以被认为是正确的接收。在其他实施例中,仅检查一个 DO路径,同样加快校准处理。在其他实施例中,可以混合这些及其 他技术。例如,可以使用DQ/DQS组中的每个DQ路径执行初始校 准,而仅使用一个DQ路径进行后来的调整。

[0063]在动作1140,改变延迟。例如,可以由图10中的多路复 用器1020选择新的多路复用器输入。在动作1150,再次接收测试样 本,而在动作1160,确定是否正确地接收了该样本。在动作1170, 确定是否已经测试了最后的延迟。如果不,在动作1140再次改变延 迟。如果已经测试了最后的延迟,则在动作1180,对其中正确地接 收了样本的最小和最大延迟取平均,且该延迟用作用于延迟元件940 和942的延迟。在本发明的其中延迟单调地递增或者递减的实施例 中,延迟被设置为其中正确地接收样本的第一和最后延迟的平均。

[0064]图12是符合本发明的实施例的存储器接口的一部分的框 图。在该实施例中,对准元件是寄存器。该图包括使用触发器FF1、 FF2和FF3实现的双倍数据速率捕捉寄存器,使用触发器FF4和 FF5实现的对准元件,同步寄存器FF6和FF7,延迟元件1220,延 迟锁定环路1260,和锁相环1270。

[0065]由触发器FF1和FF3在延迟的DQS信号DDQS的交替 边沿上在DQ线上接收数据。在DDQS信号的上升沿将捕捉寄存器 的输出作为CQ和CQ1提供给对准元件FF4和FF5。对准元件重新 定时该数据并将输出LQ和LQ1提供给同步寄存器FF6和FF7。这 些寄存器随后将数据输出DATAOUT和DATAOUT1提供给核心或 其他电路。

[0066]由延迟元件1220接收数据选通信号DQS,该延迟元件 1220对数据选通信号DQS移相以产生延迟的DQS信号DDQS。例 如,由晶体振荡器或者其他源产生的系统时钟由锁相环1270接收。 锁相环1270产生用于延迟锁定环路1260的本地时钟,用于对准元件 FF4和FF5的对准时钟,和用于同步寄存器FF6和FF7的同步时 钟。该延迟锁定环路1260同步到本地时钟并产生数字控制信号 COUNT,其将数字控制信号COUNT提供给延迟元件1220。

[0067]在这些电路中,从捕捉寄存器触发器FF2和FF3向对准 元件FF4和FF5传送数据,且再次从对准元件FF4和FF5向同步寄 存器FF6和FF7传送数据。因此,当对准元件FF4和FF5从捕捉寄 存器触发器FF2和FF3接收数据时,且再次当对准元件FF4和FF5 将数据提供到同步寄存器FF6和FF7时,应该定时对准时钟以使得 避免亚态和不稳定性。因此,在本发明的实施例中,由锁相环1270 调整关于同步时钟的对准时钟的延迟,以使得正确地接收数据并将数 据提供到核心电路。

[0068]在本发明的一个实施例中,锁相环1270对于由存储器接 口接收的信号的每个DQ/DQS组提供一个对准时钟信号。在本发明 的其他实施例中,可以向其他组信号路径提供其他多个对准时钟。在 以下图中示出调整对准时钟时序的一个方法。

[0069]图13是示出了根据本发明的实施例的调整对准时钟的相 位的方法的流程图。在该方法中,调整对准时钟信号和同步时钟信号 之间的相位关系,以优化存储器接口的数据接收。在本发明的其他实 施例中,可以关于其他时钟信号调整对准时钟的相位。

[0070]具体地说,在动作1310中,将锁相环产生的时钟的相位 设置为初始值。在动作1320,接收测试样本。在动作1330,确定是 否正确地接收了该样本。在动作1340,改变由锁相环提供的时钟的 相位。再一次,在动作1350,接收测试样本。在动作1360确定是否 正确地接收了该样本。在动作1370,确定是否已经测试了最后相 位。如果没有,则在动作1340再次改变由锁相环提供的时钟的相 位。如果已经测试了最后的相位,在动作1380将锁相环延迟提供的 对准时钟的相位设置为其中正确地接收了样本的最小和最大延迟的平 均。在其中延迟单调地递增或者递减的情形中,锁相环被设置为其中 正确地接收样本的第一和最后延迟的平均。

[0071]图14是根据本发明的实施例的存储器接口电路的一部分 的框图。该图包括使用触发器FF1、FF2和FF3实现的捕捉寄存 器,实现为触发器FF4和FF5的对准元件,同步寄存器FF6和 FF7,延迟元件1420,时钟多路复用器1430,延迟元件1440,校准 逻辑1450,延迟锁定环路1460,和锁相环1470。

[0072]由捕捉寄存器触发器FF1和FF3接收数据信号DQ,其由 DDQS信号的交替边沿时钟控制。触发器FF1的输出由触发器FF2 重新定时,以使得捕捉寄存器在DDQS信号的上升沿提供输出CQ 和CQ1。由对准元件寄存器FF4和FF5在对准时钟的上升沿接收这 些输出信号,该对准元件寄存器FF4和FF5在对准时钟的上升沿提 供输出LQ和LQ1。同步寄存器FF6和FF7在同步时钟的上升沿接 收该数据,且由此提供输出DATAOUT和DATAOUT1到其他电 路,例如到FPGA上的核心电路(未示出)。延迟元件1420延迟 DQS信号以产生延迟的DQS信号DDQS。锁相环1470从晶体振荡 器或者其他周期信号源接收系统时钟信号,产生本地时钟,且将其提 供给延迟锁定环路1460。延迟锁定环路1460将控制信号COUNT提 供给延迟元件1420和1440。锁相环1470还将同步时钟提供给同步 寄存器FF6和FF7。

[0073]同步时钟被延迟元件1440延迟,其产生多个时钟信号 CLK[1:n]。这些时钟信号的相位彼此分开,以使得时钟多路复用器 可选择具有不同相位的多个时钟中的一个。在本发明的特定实施例 中,向时钟多路复用器提供具有不同相位的八个时钟信号,选择其中 之一并作为对准时钟提供,然而在本发明的其他实施例中,可以提供 其他数目的时钟并从中进行选择。这些时钟信号由时钟多路复用器 1430多路复用,以将对准时钟信号提供给对准寄存器FF4和FF5。 由校准逻辑1450控制时钟多路复用器选择。

[0074]在本发明的特定实施例中,将多个时钟信号CLK[1:n]提 供给每个DQ/DQS组。每个DQ/DQS组包括选择这些时钟之一作为 用于该组的对准时钟的时钟多路复用器1430。该布置限制了需要的 延迟元件1440的数目,但是在向每个DQ/DQS组传递时钟信号 CLK[1:n]时耗费了路由资源。在其他实施例中,将同步时钟路由到 每个DQ/DQS组,每个DQ/DQS组具有延迟元件1440和时钟多路复 用器1430。这些实施例减少了耗费的路由资源,但是需要大量的延 迟元件1440。

[0075]再一次,对准时钟应该被定时以避免当对准元件寄存器 FF4和FF5从捕捉寄存器接收数据时,和当同步寄存器FF6和FF7 从对准寄存器FF4和FF5接收数据时的亚态和不稳定性。再一次, 在每个信号传送时,所提供的数据应该被提供为不违反寄存器建立和 保持时间。典型地,这意味着应该调整对准时钟以使得其边沿远离数 据信号CQ和CQ1的边沿,且应该调整在对准时钟信号之后时钟- 到-Q延迟的数据信号LQ和LQ1,以使得它们的边沿远离同步时钟 的有效边沿。通过使用校准逻辑1450选择时钟信号CLK[1:n]之一来 控制该调整。在以下图中示出怎样进行该示例。能够实现另外的保护 以同样帮助从寄存器到寄存器的数据传送。例如,能够选择性地插入 延迟元件。另外,能够在信号路径中选择性地插入负边沿触发寄存 器,其中在需要提供适当的建立和保持时间的位置插入负边沿触发寄 存器。并且,因为由用于系统时钟的飞越拓扑引起了偏斜,因此可以 选择性地插入或者除去附加的寄存器,以使得在相同的时钟周期上从 存储器控制器将从存储器装置接收到的每个组的DQ信号传送到核心 电路。在Bellis等人的标题为“I/O BLOCK FOR HIGH PERFORMANCE MEMORY INTERFACES”的于2007年11月5 日提交的共同未决共有专利申请号11/___,___中说明了可以并入本发 明的实施例的这些及其他电路技术,其代理人案号为015114-085010 US,将其通过引用完全包括在此。

[0076]图15是示出了由本发明的实施例采用的校准逻辑的操作 的流程图。在该方法中,将具有不同相位的多个时钟信号提供到多路 复用器。使用这些相位的每一个作为对准时钟来接收测试样本数据。 在每个相位,确定是否正确地接收了数据,且由此,确定用于对准时 钟的最优相位。

[0077]具体地说,在动作1510,将具有不同相位的多个时钟信 号作为输入提供到时钟多路复用器。选择初始的多路复用器输入。在 动作1520,例如,从多用途寄存器404接收测试样本。在动作 1530,确定是否正确地接收了样本。在动作1540中,选择新的时钟 多路复用器输入。再一次,在动作1550接收测试样本,而在动作 1560确定是否正确地接收了样本。在动作1570,确定是否已经检查 了最后的时钟多路复用器输入。如果没有,则在动作1540选择新的 时钟多路复用器输入。

[0078]如果在动作1570已经检查了最后的多路复用器输入,则 在动作1580将具有如下相位的时钟相位选为对准时钟,所述相位等 于其中正确地接收测试样本的最小和最大相位的平均。在本发明的各 种实施例中,选择时钟多路复用器输入以使得时钟相位单调地递增或 者递减。在这种情况下,具有如下相位的时钟相位可以被用作对准时 钟,所述相位等于用于其中正确地接收到测试样本数据的第一和最后 时钟输入的相位的平均。

[0079]再一次,在例如这里示出的实例的本发明的典型实施例 中,仅检查来自一个数据路径的数据以确定是否已经正确地接收了数 据。例如,在图14中,检查在DATAOUT输出处的数据,同时在 DATAOUT1处的数据是冗余的且因此未检查以加快校准处理。在本 发明的其他实施例中,仅检查DATAOUT1输出,而在其它实施例 中,检查两个输出。另外,在本发明的各种实施例中,检查由在 DQ/DQS组中的每个DQ路径接收的数据以确定是否正确地接收了数 据,即,数据需要被每个DQ路径正确地接收以被认为被正确地接收 了。在其他实施例中,仅检查一个DQ路径,同样加快了校准处理。 在其他实施例中,可以混合这些及其他技术。例如,可以使用 DQ/DQS组中的每个DQ路径执行初始校准,而仅使用一个DQ路径 进行后来的调整。

[0080]在上述实例中,延迟锁定环路产生控制信号COUNT,其 被用于控制由各种延迟元件提供的延迟。例如,在图15中,延迟锁 定环路1560产生COUNT信号,其由延迟元件1420使用以产生相移 的DQS信号,且由延迟元件1440使用以产生多个时钟信号。在以下 图中示出了可以使用的实例电路。

[0081]图16是可以用于实现图14中,或者本发明的其他实施例 中的延迟锁定环路1460、延迟1420和延迟1440的延迟锁定环路、 延迟元件、多个延迟元件和时钟多路复用器的框图。该图包括由延迟 元件DE1、DE2、DE3和DE4,相位检测器1640,计数器1650,延 迟元件DE5、DE6和DE7(其输出由时钟多路复用器1610选择以提 供对准时钟)和延迟元件DE8(其用于对数据选通DQS信号进行移 相以产生时钟控制输入数据捕捉寄存器的DDQS信号)构成的延迟 锁定环路。

[0082]在该实例中,延迟元件DE1到DE8中的每一个提供等于 本地时钟周期的90度的相移。在本发明的其他实施例中,能够使用 其他多个延迟元件,且每个延迟元件可提供不同于90度的相移。本 地时钟由延迟元件DE1接收,延迟元件DE1相移该本地时钟且将其 连续地提供给DE2、DE3和DE4。将该链的输出提供到也接收本地 时钟信号的相位检测器1640。该相位检测器1640提供递增或者递减 由计数器1650提供的COUNT的信号,计数器1650将控制信号 COUNT提供到延迟元件DE1到DE4。当锁定延迟锁定环路时,同 步本地时钟和延迟元件DE4的输出。在此,每个延迟元件DE1到 DE4提供90度相移,360相移,或者总计一个完整的周期。相同的 COUNT信号用于调整由延迟元件DE5、DE6和DE7提供的延迟。 由时钟多路复用器1610在由校准逻辑(未示出)提供的选择信号的 控制之下,多路复用本地时钟和延迟元件的输出。将多路复用器 1610的输出作为对准时钟提供到对准寄存器(未示出)。还将相同 的COUNT信号提供到延迟元件DE8,以使得延迟元件向DQS信号 提供90度相移以产生DDQS。

[0083]该图在延迟锁定环路中包括四个延迟元件DE1、DE2、 DE3和DE4。在其他实施例中,可以使用其他许多延迟元件。典型 地,延迟元件将时钟信号相移360度,或者一个时钟周期。然而,可 以反相延迟线的输出,而在这样情况下延迟元件将时钟周期相移180 度,且通过由信号反转实现另外的180度相移。其中四个延迟元件用 于将时钟延迟一个周期,每个延迟元件将时钟信号相移90度。在使 用“N”个延迟元件的情况下,每个延迟元件将时钟信号相移 360/N,或者如果使用信号反相,则相移180/N。并且,为简单起 见,仅一个延迟元件DE8用于延迟DQS信号。在实际的电路中,更 多延迟元件可以用于向用户提供更大的灵活性。另外,每个延迟元件 可以由多个子元件构成,其中可以改变子元件的数目以提供更大的灵 活性。例如,可以使用选择或者多路复用器电路来旁路一个或多个这 种子元件。

[0084]图17说明可以在本发明的某些实施例中期望的图16的电 路的可能的简化。在图16中,可以看出延迟元件DE1、DE2和DE3 的功能由延迟元件DE5,DE6和DE7重复。因此,在本发明的某些 实施例中,可以如图17所示简化电路。例如,在本发明的一个实施 例中,延迟元件DE5,DE6和DE7被放置在存储器接口中一次,且 将它们的输出路由到位于每个DQ/DQS组中的时钟多路复用器,同 时也将延迟元件DE1,DE2和DE3放置在存储器接口中一次。在该 实施例中,可以期望合并延迟元件DE1,DE2和DE3的功能与延迟 元件DE5,DE6和DE7的功能。在本发明的其他实施例中,由于布 局近似或者其他原因,这种简化可能是不期望的。例如,在本发明的 一个实施例中,延迟元件DE5,DE6和DE7重复一次,且与时钟多 路复用器一起被放置在每个DQ/DQS组附近,而对于存储器接口仅 实现延迟元件DE1,DE2和DE3一次。

[0085]已经为了说明和描述的目的呈现了本发明的示例性实施例 的上述描述。其不意在是穷举的或限制本发明到所述的确切形式,且 在上述教导下可作出许多修改和变化。选择和描述实施例以最好地解 释本发明的原理和其实际应用以由此使得本领域技术人员能够以各种 实施例最好地利用本发明,且做出适于考虑的具体的使用的各种修 改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号