CN109891843A - 用于可编程逻辑器件的时钟恢复和数据恢复 - Google Patents

用于可编程逻辑器件的时钟恢复和数据恢复 Download PDF

Info

Publication number
CN109891843A
CN109891843A CN201780067374.7A CN201780067374A CN109891843A CN 109891843 A CN109891843 A CN 109891843A CN 201780067374 A CN201780067374 A CN 201780067374A CN 109891843 A CN109891843 A CN 109891843A
Authority
CN
China
Prior art keywords
signal
serial data
data stream
gray code
calibration
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.)
Granted
Application number
CN201780067374.7A
Other languages
English (en)
Other versions
CN109891843B (zh
Inventor
B·沙佩-吉斯勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lattice Semiconductor Corp
Original Assignee
Lattice Semiconductor Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lattice Semiconductor Corp filed Critical Lattice Semiconductor Corp
Publication of CN109891843A publication Critical patent/CN109891843A/zh
Application granted granted Critical
Publication of CN109891843B publication Critical patent/CN109891843B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/0014Carrier regulation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M9/00Parallel/series conversion or vice versa
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/0014Carrier regulation
    • H04L2027/0024Carrier regulation at the receiver end
    • H04L2027/0026Correction of carrier offset
    • H04L2027/0036Correction of carrier offset using a recovered symbol clock

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Abstract

提供各种技术以有效地实现在可编程逻辑器件(PLD)中包含时钟和/或数据恢复电路系统和/或解串器的用户设计。在一个示例中,一种方法包括接收串行数据流,使用至少一个格雷码振荡器测量串行数据流中的信号转变之间的时间段,以及通过至少部分地将所测量的时间段与一个或多个校准时间段进行比较来生成与串行数据流相对应的恢复后的数据信号。在另一示例中,一种系统包括:被配置为在串行数据流中的信号转变之间递增格雷码计数的格雷码振荡器;以及被配置为近似地在信号转变处将格雷码计数转换为多个二进制计数的格雷码转换器,每个二进制计数对应于串行数据流中的一个或多个信号转变之间的时间段。

Description

用于可编程逻辑器件的时钟恢复和数据恢复
相关申请的交叉引用
本专利申请要求于2016年9月8日提交的题为“CDR IN PROGRAMMABLE LOGIC”的美国临时专利申请62/385,247、于2016年9月9日提交的题为“CDR IN PROGRAMMABLE LOGIC”的美国临时专利申请62/385,359、于2016年9月9日提交的题为“CDR IN PROGRAMMABLELOGIC”的美国临时专利申请62/385,437和于2017年1月30日提交的题为“CDR IN PLB”的美国临时专利申请62/452,213的优先权和权益,所有这些专利申请的全部内容通过引入并入本文。
技术领域
本发明总体上涉及可编程逻辑器件,并且更具体地涉及可编程逻辑器件中的时钟和/或数据恢复。
背景技术
可编程逻辑器件(PLD)(例如,现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、现场可编程片上系统(FPSC)或其他类型的可编程器件)可以配置有各种用户设计以实现期望的功能。通常,用户设计被合成并且映射到可配置资源(例如,可编程逻辑门、查找表(LUT)、嵌入式硬件或其他类型的资源)和特定PLD中可用的互连。然后可以确定合成和映射的用户设计的物理放置和布线以为特定PLD生成配置数据。
PLD通常用于对串行化输入数据流进行解串,并且因此通常利用有限数目的专用解串器块来实现,这些块可以用于从输入数据流中恢复或提取串行化数据。然而,这样的块需要相当大的面积以便在PLD中实现,并且可以用于实现包含这样的专用解串器块的用户设计的对应布线资源是有限的。此外,这样的块通常采用锁相环或准确时钟来对数据流进行过采样,这会对一般布线并且特别是时钟相关电路造成很大的时序负担,所有这些在相对便宜的PLD中都可能是有限供应的。这样的约束可能严重地限制可以在PLD中实现的用户设计的范围,可能导致PLD性能降低,并且可能显著地增加确定PLD的连接布线所需要的时间和处理资源。
附图说明
图1示出了根据本公开的实施例的可编程逻辑器件(PLD)的框图。
图2示出了根据本公开的实施例的用于PLD的逻辑块的框图。
图3示出了根据本公开的实施例的用于PLD的设计过程。
图4示出了根据本公开的实施例的用于PLD的时钟和/或数据恢复解串器的示意图。
图5示出了根据本公开的实施例的串行数据流分组。
图6示出了根据本公开的实施例的用于PLD的时钟和数据恢复解串器的框图。
图7-图9示出了根据本公开的实施例的用于PLD的格雷码振荡器实现。
图10-图11示出了根据本公开的实施例的用于PLD的格雷到二进制转换器实现。
图12-图15示出了根据本公开的实施例的实现用于PLD的数据恢复解串器的电路系统的框图。
图16示出了根据本公开的实施例的用于PLD的格雷振荡器实现。
图17示出了根据本公开的实施例的用于PLD的时钟和/或数据恢复解串器的框图。
图18示出了根据本公开的实施例的用于时钟和/或数据恢复解串器的定时电路的框图。
图19示出了根据本公开的实施例的用于定时电路的格雷到二进制转换器。
图20示出了根据本公开的实施例的用于定时电路的校准信号发生器的框图。
图21示出了根据本公开的实施例的用于校准信号发生器输出的触发器的框图。
图22示出了根据本公开的实施例的用于时钟和/或数据恢复解串器的校准电路的框图。
图23示出了根据本公开的实施例的用于时钟和/或数据恢复解串器的解码器/解码器电路的框图。
图24示出了根据本公开的实施例的用于解码器的恢复数据分离器2310的框图。
图25示出了根据本公开的实施例的用于恢复数据分离器的字对准数据分离器的框图。
图26示出了根据本公开的实施例的用于恢复数据分离器的模10积分器的框图。
图27示出了根据本公开的实施例的用于操作时钟和/或数据恢复解串器的方法。
图28示出了根据本公开的实施例的用于操作时钟和/或数据恢复解串器的方法。
通过参考下面的详细描述,可以最好地理解本公开的实施例及其优点。应当理解,相同的附图标记用于标识在一个或多个附图中示出的相同的元素。
具体实施方式
根据本文中阐述的各种实施例,提供了用于基本上在可编程逻辑器件(PLD)的可配置(例如,与专用相反)逻辑组件内实现时钟和/或数据恢复电路的技术。例如,在一些实施例中,PLD包括多个可编程逻辑块(PLB)、存储器块、数字信号处理块、输入/输出块和/或可以以各种方式互连以实现期望的电路设计和/或功能的其他组件。电路设计可以至少部分地由网表来表示,网表可以描述设计中的组件和组件之间的连接件。例如,用户设计可以被转换为网表并且由网表表示,该网表包括一组PLD组件(例如,被配置用于逻辑、算术、时钟和/或其他硬件功能)和PLD中可用的相关互连。网表可以用于相对于特定PLD(例如,使用从网表构建的期望电路设计的模拟)为设计放置组件和/或布线连接件(例如,使用PLD的布线资源)。
通常,PLD(例如,FPGA)构造包括各种布线结构和布置在可编程功能块(例如,PFB和/或PLB)内的类似地布置的逻辑单元的阵列。设计特定类型的PLD的目标是最大化功能,同时最小化构造的面积、功率和延迟。传统的时钟和/或数据恢复功能(例如,用于从串行数据流中提取时钟信号和/或数据信号,诸如在没有单独的时钟信号的情况下传输的单端数据流)通常由专用解串器块实现,这些专用解串器块可以采用锁相环或接口来实现准确(例如,随时间的低漂移)时钟并且通常占用典型PLD上的大量空间和特别有限的资源,以及在整个用户设计中规定附属时序约束(例如,由于延迟问题),所有这些都用于在用于实现包含解串器块的设计时最小化PLD的功能。
本公开的实施例通过使用通常可配置的逻辑块实现整个解串器(例如,时钟和/或数据恢复电路系统)来克服这些问题。例如,本公开的实施例通常在PLD中使用可配置的逻辑块来实现相对不准确的环型振荡器,该振荡器可以用于将恢复电路系统(例如,也在通常可配置的逻辑块中实现)校准到传入的串行数据流,并且然后可以用于从串行数据流中恢复时钟信号和/或数据信号。因为解串器块可以使用通常可配置的逻辑块来实现,所以包含本公开的实施例的用户设计通常可以由于增加的配置灵活性而更容易布线,并且可以包含比传统技术明显更多的解串器功能。
尽管本文中描述的实施例在PLD利用领域中提出了显著的改进,但是这样的设计也可以用在定制的寄存器传送级(RTL)逻辑中,该逻辑可以在通用集成电路中实现和/或实现为PLD中的其自己类型的专用解串器块。当在PLD中实现或者在用于定制IC的RTL逻辑中实现时,本设计的实施例已经示出了性能与成本、功率和空间利用率之间的显著改进。因此,本公开的实施例不应当被视为通常仅限于PLD实现。
现在参考附图,图1示出了根据本公开的实施例的PLD 100的框图。在各种实施例中,PLD 100可以实现为例如独立器件,或者可以嵌入在片上系统(SOC)、其他逻辑器件和/或其他集成电路中。PLD 100(例如,现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、现场可编程片上系统(FPSC)或其他类型的可编程器件)通常包括输入/输出(I/O)块102和逻辑块104(例如,也称为可编程逻辑块(PLB)、可编程功能单元(PFU)或可编程逻辑单元(PLC))。
I/O块102为PLD 100提供I/O功能(例如,以支持一个或多个I/O和/或存储器接口标准),而可编程逻辑块104为PLD 100提供逻辑功能(例如,基于查找表(LUT)的逻辑或基于逻辑门阵列的逻辑)。可以由串行器/解串器(SERDES)块150和物理编码子层(PCS)块152提供附加的I/O功能。PLD 100还可以包括硬知识产权核(IP)块160以提供附加功能(例如,用硬件提供的基本上预定的功能,其可以配置有比逻辑块104更少的编程)。
根据情况,PLD 100还可以包括存储器块106(例如,EEPROM块、块SRAM和/或闪存)、时钟相关电路系统108(例如,时钟驱动器源、PLL电路、DLL电路和/或馈线互连)和/或各种布线资源(例如,互连和适当的切换逻辑,以提供用于在整个PLD 100中布线信号的路径,诸如用于时钟信号、数据信号或其他信号)。通常,如本领域技术人员将理解的,PLD 100的各种元件可以用于执行其期望应用的预期功能。
例如,某些I/O块102可以用于编程存储器106或传送信息去往/来自PLD 100(例如,各种类型的用户数据和/或控制信号)。其他I/O块102包括第一编程端口(其可以表示中央处理单元(CPU)端口、外围数据端口、SPI接口和/或sysCONFIG编程端口)和/或第二编程端口(诸如联合测试动作组(JTAG)端口)(例如,通过采用诸如电气和电子工程师协会(IEEE)1149.1或1532标准等标准)。在各种实施例中,根据情况,可以包括I/O块102以接收配置数据和命令(例如,通过一个或多个连接140件)以针对其预期用途来配置PLD 100并且支持串行或并行设备配置以及与SERDES块150、PCS块152、硬IP块160和/或逻辑块104的信息传输。
在另一示例中,布线资源(例如,图2的布线资源180)可以用于在组件之间布线连接件,诸如在逻辑块104的I/O节点之间。在一些实施例中,这样的布线资源可以包括可以用于选择性地为PLD 100的组件之间的特定连接形成信号路径的可编程元件(例如,多个布线资源相交的节点)。
应当理解,各种元件的数目和放置不是限制性的,并且可以取决于期望的应用。例如,对于期望的应用或设计规范(例如,对于所选择的可编程器件类型),可能不需要各种元件。
此外,应当理解,为了清楚起见,元件以框图形式示出,并且各种元件通常分布在整个PLD 100中,诸如在逻辑块104、硬IP块160和布线资源(例如,图2的布线资源180)之中和之间以执行它们的传统功能(例如,存储用于配置PLD 100的配置数据或者在PLD 100内提供互连结构)。还应当理解,本文中公开的各种实施例不限于可编程逻辑器件,诸如PLD100,并且可以应用于各种其他类型的可编程器件,如本领域技术人员将理解的。
外部系统130可以用于创建PLD 100的期望的用户配置或设计,并且生成对应的配置数据以编程(例如,配置)PLD 100。例如,系统130可以将这样的配置数据存储到存储器134和/或机器可读介质136,和/或将这样的配置数据提供给一个或多个I/O块102、存储器块106、SERDES块150和/或PLD 100的其他部分。结果,可编程逻辑块104、各种布线资源和PLD 100的任何其他适当的组件可以被配置为根据用户指定的应用进行操作。
在所示实施例中,系统130实现为计算机系统。在这方面,系统130包括例如一个或多个处理器132,处理器132可以被配置为执行在一个或多个存储器134中提供的和/或以非暂态形式存储在一个或多个非暂态机器可读介质136(例如,其可以在系统130内部或外部)中的指令,诸如软件指令。例如,在一些实施例中,系统130可以运行PLD配置软件,诸如从Lattice Semiconductor Corporation可获取的Lattice Diamond System Planner软件,以允许用户创建期望的配置并且生成对应的配置数据以编程PLD 100。
例如,系统130还包括用户接口135(例如,屏幕或显示器)以向用户显示信息,并且还包括一个或多个用户输入设备137(例如,键盘、鼠标、轨迹球、触摸屏和/或其他设备)以接收用户命令或设计条目以准备PLD 100的期望配置。在一些实施例中,例如,用户接口135可以被适配为显示网表、组件放置、连接布线、硬件描述语言(HDL)代码、和/或期望的电路设计的其他最终和/或中间表示。
图2示出了根据本公开的实施例的PLD 100的逻辑块104的框图。如所讨论的,PLD100包括多个逻辑块104,逻辑块104包括用于提供逻辑和算术功能的各种组件,其也可以用于实现一个或多个时钟和/或数据恢复解串器或解串器块,如本文所述。
在图2所示的示例实施例中,逻辑块104包括可以在逻辑块104内部互连和/或使用布线资源180在外部互连的多个逻辑单元200。例如,每个逻辑单元200可以包括各种组件,诸如:查找表(LUT)202、模式逻辑电路204、寄存器206(例如,触发器或锁存器)、以及用于选择用于逻辑单元200的和/或在逻辑单元200之间的期望的信号路径的各种可编程多路复用器(例如,可编程多路复用器212和214)。在该示例中,LUT 202接受四个输入220A-220D,这使得它成为四输入LUT(其可以缩写为“4-LUT”或“LUT4”),该四输入LUT可以通过用于PLD100的配置数据被编程为实现具有四个或更少输入的任何适当的逻辑运算。模式逻辑204可以包括各种逻辑元件和/或附加输入,诸如输入220E,以支持针对逻辑单元200的各种模式的功能(例如,包括各种时钟信号处理和/或功能模式)。在其他示例中,LUT 202可以是具有用于PLD的特定实现的任何其他合适数目的输入的任何其他合适的大小。在一些实施例中,可以为不同的逻辑块104和/或不同的逻辑单元200提供不同尺寸的LUT。
在一些实施例中,来自LUT 202和/或模式逻辑204的输出信号222可以经过寄存器206以提供逻辑单元200的输出信号233。在各种实施例中,来自LUT 202和/或模式逻辑204的输出信号223可以直接传递到输出223,如图所示。取决于多路复用器210-214和/或模式逻辑204的配置,可以根据控制信号230将输出信号222临时存储(例如,锁存)在锁存器206中。在一些实施例中,PLD 100的配置数据可以配置逻辑单元200的输出223和/或233以使其被提供作为分级或级联布置(例如,包括多个级别)的另一逻辑单元200的一个或多个输入(例如,在另一逻辑块或同一逻辑块中)以配置不能在单个逻辑单元200中实现的逻辑和/或其他操作(例如,有太多输入要由单个LUT 202来实现的操作)。此外,逻辑单元200可以用多个输出和/或互连来实现以促进可选择的操作模式,如本文所述。
模式逻辑电路204可以用于PLD 100的一些配置以有效地实现诸如加法器、减法器、比较器、计数器或其他运算等算术运算,以有效地形成一些扩展逻辑运算(例如,更高阶LUT,处理多个比特数据),以有效地实现相对较小的RAM,和/或允许在逻辑、算术、扩展逻辑和/或其他可选择的操作模式之间进行选择。在这方面,跨多个逻辑单元202的模式逻辑电路204可以被链接在一起以在相邻逻辑单元202之间传递输入(carry-in)信号205和输出(carry-out)信号207和/或其他信号(例如,输出信号222),如本文所述。在图2的示例中,输入信号205可以例如直接传递到模式逻辑电路204,或者可以通过配置一个或多个可编程多路复用器而传递到模式逻辑电路204。在一些实施例中,模式逻辑电路204可以跨多个逻辑块104而链接。
图2所示的逻辑单元200仅是示例,并且根据不同的实施例的逻辑单元200可以包括PLD组件的不同组合和布置。而且,尽管图2示出了具有八个逻辑单元200的逻辑块104,但是根据其他实施例的逻辑块104可以包括更少的逻辑单元200或更多的逻辑单元200。逻辑块104的每个逻辑单元200可以用于实现由PLD100实现的用户设计的一部分。在这方面,PLD100可以包括很多逻辑块104,每个逻辑块104可以包括逻辑单元200和/或用于共同实现用户设计的其他组件。
图3示出了根据本公开的实施例的用于PLD的设计过程300。例如,图3的过程可以由系统130运行Lattice Diamond软件以配置PLD 100来执行。在一些实施例中,图3中引用的各种文件和信息可以存储在例如一个或多个数据库和/或存储器134、机器可读介质136和/或其他方式的其他数据结构中。
在操作310中,系统130接收指定PLD 100的期望功能的用户设计。例如,用户可以与系统130交互(例如,通过用户输入设备137和表示设计的硬件描述语言(HDL)代码)以标识用户设计的各种特征(例如,高级逻辑运算、硬件配置、I/O和/或SERDES操作、和/或其他特征)。在一些实施例中,用户设计可以在寄存器传输级(RTL)描述(例如,门级描述)中提供。系统130可以执行一个或多个规则检查以确认用户设计描述PLD100的有效配置。例如,根据情况,系统130可以拒绝无效配置和/或请求用户提供新设计信息。
在操作320,系统130合成设计以创建网表(例如,合成的RTL描述),该网表将用户设计的抽象逻辑实现标识为多个逻辑组件(例如,也称为网表组件)。在一些实施例中,网表可以以电子设计交换格式(EDIF)存储在本机通用数据库(NGD)文件中。
在一些实施例中,在操作320中将设计合成为网表可以涉及将用户设计中的逻辑运算、硬件配置和/或其他特征的高级描述转换(例如,翻译)成一组PLD组件(例如,逻辑块104、逻辑单元200和被配置用于实现用户设计的逻辑、算术或其他硬件功能的PLD 100的其他组件)及其相关联的互连或信号。取决于实施例,转换后的用户设计可以表示为网表。
在各种实施例中,例如,合成设计可以包括检测串行数据流输入和/或解串器块,解串器块被配置为生成与串行数据流的有效载荷部分(例如,由串行数据流输入提供)相对应的恢复后的数据信号。在这样的实施例中,合成这样的设计可以包括将设计合成为多个PLD组件,多个PLD组件被配置为实现用于解串器块的格雷码振荡器,该格雷码振荡器被配置为测量串行数据流中的信号转变之间的时间段,如本文所述,并且多个PLD组件还被配置为实现用于解串器块的至少一个比较器,该至少一个比较器被配置为将由格雷码振荡器提供的所测量的时间段与一个或多个校准时间段进行比较以生成恢复后的数据信号。
在一些实施例中,在操作320中将设计合成为网表还可以涉及对用户设计执行优化过程(例如,将用户设计转换/翻译成一组PLD组件及其相关联的互连或信号)以减少传播延迟、PLD资源和布线资源的消耗,和/或在被配置为实现用户设计时以其他方式优化PLD的性能。取决于实施例,可以对表示转换/翻译后的用户设计的网表执行优化过程。取决于实施例,优化过程可以表示网表中的优化的用户设计(例如,以产生优化的网表)。
在一些实施例中,优化过程可以包括优化在用户设计中标识的布线连接件。例如,优化过程可以包括在用户设计中检测具有定时误差的连接件,以及交换和/或调节实现无效连接件和/或其他连接件的PLD资源,以减少用于实现这些连接件的PLD组件和/或布线资源的数目和/或减少与这些连接件相关联的传播延迟。
在操作330中,系统130执行映射过程,该映射过程标识可以用于实现用户设计的PLD 100的组件。在这方面,系统130可以将优化的网表(例如,作为优化过程的结果而存储在操作320中)映射到由PLD 100(例如,逻辑块104、逻辑单元200、嵌入式硬件和/或PLD 100的其他部分)和它们的关联信号提供的各种类型的组件(例如,以逻辑方式,但尚未指定放置或布线)。在一些实施例中,可以对一个或多个先前存储的NGD文件执行映射,其中映射结果被存储为物理设计文件(例如,也称为NCD文件)。在一些实施例中,映射过程可以在操作320中作为合成过程的一部分来执行以产生映射到PLD组件的网表。
在操作340中,系统130执行放置过程以将映射的网表组件分配给驻留在PLD 100的特定物理位置处的特定物理组件(例如,分配给特定逻辑单元200、逻辑块104、时钟相关电路108、布线资源180和/或PLD 100的其他物理组件),并且因此确定用于PLD 100的布局。在一些实施例中,例如,可以在存储器中对从一个或多个先前存储的NCD文件检索的数据执行放置,和/或对一个或多个先前存储的NCD文件执行放置,其中放置结果存储(例如,在存储器134和/或机器可读介质136中)为另一物理设计文件。
在操作350中,系统130基于在操作340中确定的放置布局来执行用于在PLD 100的组件之间布线连接件(例如,使用布线资源180)的布线过程,以实现所放置的组件之间的物理互连。在一些实施例中,例如,可以在存储器中对从一个或多个先前存储的NCD文件检索的数据执行布线,和/或对一个或多个先前存储的NCD文件执行布线,其中布线结果存储(例如,在存储器134和/或机器可读介质136中)为另一物理设计文件。
在各种实施例中,在操作350中布线连接件还可以涉及对用户设计执行优化过程以减少传播延迟、PLD资源和/或布线资源的消耗,和/或在被配置为实现用户设计时以其他方式优化PLD的性能。在一些实施例中,可以对表示转换/翻译后的用户设计的物理设计文件执行优化过程,并且优化过程可以表示物理设计文件中的优化的用户设计(例如,以产生优化的物理设计文件)。
在一些实施例中,优化过程可以包括优化在用户设计中标识的布线连接件。例如,优化过程可以包括在用户设计中检测具有定时误差的连接件,以及交换和/或调节实现无效连接件和/或其他连接件的PLD资源以减少用于实现这些连接件的PLD组件和/或布线资源的数目,和/或减少与这些连接件相关联的传播延迟。
布线的变化可以传播回先前的操作,诸如合成、映射和/或放置,以进一步优化用户设计的各个方面。
因此,在操作350之后,可以提供一个或多个物理设计文件,这些文件在针对PLD100合成(例如,转换和优化)、映射、放置和布线(例如,进一步优化)之后指定用户设计(例如,通过组合对应的先前操作的结果)。在操作360中,系统130生成用于合成、映射、放置和布线的用户设计的配置数据。在操作370中,系统130由例如通过连接140将配置数据比特流加载到PLD100中来利用配置数据来配置PLD 100。
图4示出了根据本公开的实施例的用于PLD的时钟和/或数据恢复解串器400的示意图。如图4所示的实施例中所示,时钟和/或数据恢复解串器(例如,解串器电路或块)400的一般示意图包括两个异步运行的格雷码振荡器420和422,格雷码振荡器420和422提供定时信号以对串行数据流410的相应的低电平时间段和高电平时间段进行定时。例如,格雷码振荡器420和422中的每个可以被实现为过采样振荡器(例如,相对于串行数据流410),该过采样振荡器被配置为测量串行数据流410中的信号转变之间的时间段(例如,在针对格雷码振荡器420的串行数据流410中的负信号转变与相邻正信号转变之间,以及在针对格雷码振荡器420的串行数据流410中的正信号转变与相邻负信号转变之间)。
每个格雷码振荡器420和422可以被配置为在串行数据流410中的适当信号转变之间递增格雷码计数,并且将这样的计数提供给校准锁存器/存储寄存器440和442。例如,校准信号412可以用于引起存储寄存器440存储与训练前导码或串行数据流410的其他部分(例如,当被使能时)相对应的校准时间段(例如,通过相应的格雷码计数测量的),或者将有效载荷时间段(例如,也通过由格雷码振荡器420和422提供的相应格雷码计数测量的)以及校准时间段传递给框460。时钟和/或数据恢复解串器400可以可选地用单个格雷码振荡器来实现,该格雷码振荡器可以用于对高时间段和低时间段两者计时,如本文所述。
在一些实施例中,框460可以被配置为将所测量的有效载荷时间段与校准时间段进行比较,并且使用这样的比较的结果来生成恢复后的数据信号480和/或恢复后的时钟信号482。例如,框460可以被配置为在所测量的有效载荷时间段超过对应的校准时间段时在恢复后的时钟信号482中生成信号转变,并且然后使用信号转变来采样串行数据流410以生成恢复后的数据信号480。在其他实施例中,例如,框460可以被配置为将所测量的有效载荷时间段与多个不同的校准时间段进行比较,并且基于这样的比较来生成恢复后的数据信号。更一般地,时钟和/或数据恢复解串器400的实施例可以被配置为通过使用格雷码振荡器420和/或422的实施例来测量时间段和/或与由串行数据流传输的数据和/或数据编码相关联的其他信号特性,从根据各种不同编码方案(例如,脉冲宽度调制编码、相位调制编码、脉冲宽度相位调制编码、各种比特深度编码和/或可变比特深度编码)编码的串行数据流中恢复和/或解码数据信号。在图6-图26的讨论中提供附加实现细节。
图5示出了根据本公开的实施例的串行数据流/分组500。如图5所示,典型的串行数据流500包括用于指示串行数据流500的开始的前导码502、有效载荷部分504(例如,由串行数据流传输的实质数据)、以及用于指示串行数据流500/有效载荷部分504的结束的分组部分506。前导码502通常包括可以用于校准解串器/时钟和/或数据恢复解串器的具有已知信号转变模式和长度的训练部分512,如本文所述。分组部分514的开始可以包括用于指示有效载荷部分504的开始的已知的信号转变模式。例如,时钟和/或数据恢复解串器400可以被配置为使用格雷码振荡器420和422来测量训练部分512内的适当信号转变之间的相应的低和高时间段,并且将相应的低和高校准时间段存储在相应的存储寄存器440和442中以供框460稍后使用。
图5中还示出了正信号转变520(例如,从低到高)、负信号转变522(例如,从高到低)、高时间段524(例如,正信号转变与相邻负信号转变之间的时间段)和低时间段526(例如,负信号转变与相邻正信号转变之间的时间段)。另外示出了数据单元528,数据单元528可以是与单个数据比特的宽度和/或训练部分512中的两个相邻信号转变的宽度相对应的一段串行数据流500。
图6示出了根据本公开的实施例的用于PLD的时钟和数据恢复解串器600的框图。通常,时钟和数据恢复解串器600的操作类似于图4的时钟和数据恢复解串器400,但是包括用于减少竞争和/或其他定时问题的风险的附加功能。通常,时钟和数据恢复解串器600被配置为接收串行数据流/输入610,测量与串行数据流610相对应的信号转变之间的时间段,并且生成恢复后的时钟信号/输出682和恢复后的数据信号/输出680,并且可以完全用PLD的通常可配置资源来实现。
如图6所示,时钟和数据恢复解串器600包括校准信号发生器612和615、异步过采样格雷码振荡器620、低格雷码转换器640和高格雷码转换器642、校准存储寄存器644、时钟恢复电路660和数据恢复电路670。校准信号发生器612和615通常可以被配置为接收原始串行数据流(例如,直接来自输入610),并且在使能(例如,通过校准使能信号611)时生成和向格雷码振荡器620提供校准串行数据流。例如,当校准使能信号611为高时,校准信号发生器612的分频器块613可以被配置为生成周期为串行数据流610的周期的四倍的校准串行数据流,并且多路复用器617和618可以被配置为将所生成的校准串行数据流传递到格雷码振荡器620。
在检测到串行数据流610的前导码或训练部分和/或串行数据流610的分组部分的开始时,可以使能/禁用校准使能信号611。如图6所示的校准信号发生器615可以被配置为简单地传递串行数据流610的训练部分(例如,对应于校准使能信号611为低)。在一些实施例中,校准信号发生器615可以被配置为提供至少单个时钟宽度,该时钟宽度将在校准使能信号611被禁用之后但是在串行数据流610的有效载荷部分的开始之前发生。
在其他实施例中,被配置为生成其他校准串行数据流的其他校准信号发生器可以被包括在时钟和数据恢复解串器600中。通常,这样的校准串行数据流的特征可以在于与(例如,串行数据流610的训练部分的)原始串行数据流的时钟周期的整数倍相对应的校准时段。对应的校准时间段/二进制计数(例如,存储在存储寄存器644中)可以是整个校准时段的大约一半。在各种实施例中,校准信号发生器612和615可以被配置为检测串行数据流610的前导码中的训练部分和/或至少部分地基于串行数据流610的训练部分来生成一个或多个校准串行数据流。
异步过采样格雷码振荡器620可以包括一个或多个格雷码振荡器(例如,低格雷码振荡器621和高格雷码振荡器622),被配置为测量提供给时钟和数据恢复解串器600的各种元件或由其生成的串行数据流中(例如,校准或原始串行数据流中,和/或串行数据流的训练部分或有效载荷部分中)的信号转变之间的时间段(例如,校准、有效载荷、高、低和/或其他时间段)。每个格雷码振荡器621和622可以被配置为在串行数据流中的信号转变之间递增格雷码计数,并且因此,每个格雷码振荡器应当被实现以便在(原始)串行数据流610的时钟周期的半个周期期间多次递增其格雷码计数,以便提供足够的分辨率来恢复对应的时钟和/或数据信号。
具体地,低格雷码振荡器621可以被配置为在串行数据流610和/或对应的校准串行数据流(例如,这样的流的低部分)中的负信号转变与相邻正信号转变之间从零递增第一格雷码计数,并且格雷码振荡器622可以被配置为相对于第一格雷码计数异步地在串行数据流610和/或对应的校准串行数据流(例如,这样的流的高部分)中的正信号转变与相邻负信号转变之间从零递增第二格雷码计数。例如,格雷码振荡器621和622中的每个的开始、停止和重置的定时、以及串行数据流610和/或对应的校准串行数据流(例如,由多路复用器616和617提供给相应的格雷码振荡器621和622)中的适当信号转变可以由采样定时电路系统623、625和/或625控制。
在各种实施例中,采样定时电路系统623、625和/或625可以有利地包括耦合在格雷码振荡器620(例如,格雷码振荡器621和格雷码振荡器622)、格雷码转换器640和642、和/或存储寄存器644之间的元件,以便在不引起竞争情况或其他定时问题的情况下促进各种元件的操作之间的适当定时。例如,如图6所示,与门623要求格雷码振荡器622在重置格雷码振荡器621之前(例如,通过向格雷码振荡器621的输入f提供高信号)达到最小格雷码计数(例如,输出c1和b1的模式),并且与门624要求格雷码振荡器621在重置格雷码振荡器622之前达到最小格雷码计数。此外,迹线625要求格雷码振荡器621的格雷码计数在由格雷码振荡器622测量的高校准时间段存储在存储寄存器644中之前达到最小格雷码计数,并且要求格雷码振荡器622的格雷码计数在由格雷码振荡器621测量的低校准时间段存储在存储寄存器644中之前达到最小格雷码计数,如图所示。在一些实施例中,发起重置和存储的最小格雷码计数可以是相同的。格雷码振荡器621和622可以被配置为基于提供给格雷码振荡器621和622的输入e的信号(例如,由多路复用器616和617提供的校准/串行数据流)中的信号转变来开始递增它们相应的格雷码计数。
格雷码转换器640和642可以被配置为将由格雷码振荡器620提供的格雷码计数转换成不同的格式,诸如二进制计数,如图所示。这样的二进制计数可以表示由格雷码振荡器620测量的高或低时间段。例如,格雷码转换器640和642可以被配置为将由相应的低/高格雷码振荡器621/622提供的格雷码计数转换为对应的低/高二进制计数。具体地,格雷码转换器640可以被配置为将在提供给格雷码振荡器621的输入e的信号中的大致正信号转变处提供的格雷码计数转换为与在提供给格雷码振荡器621的输入e的信号中的负信号转变与相邻正信号转变之间的低时间段(例如,校准、训练和/或有效载荷时间段)相对应的低二进制计数。类似地,格雷码转换器642可以被配置为将在提供给格雷码振荡器622的输入e的信号中的大致负信号转变处提供的格雷码计数转换为与在提供给格雷码振荡器622的输入e的信号中的正信号转变与相邻负信号转变之间的高时间段相对应的高二进制计数。例如,这样的低和高二进制计数可以对应于低和高校准和/或有效载荷二进制计数。
在图6所示的实施例中,每个格雷码转换器640/642包括耦合到其相应的格雷码振荡器的相应的格雷到二进制块650/655、以及耦合到其相应的格雷码振荡器的最高有效位输出d0/d1的二进制计数器651/656。如图6所示,格雷码振荡器621和622的输出d0和d1对应于格雷码振荡器621和622的基频(例如,最低频率)输出,并且因此,这些输出中的转变可以通过传统的二进制计数器来计数而没有在存储寄存器644的输入和/或进一步沿着时钟和数据恢复解串器600中的信号传播路径的各种时钟/数据恢复电路系统生成竞争情况或其他定时问题的风险。此外,通过在每个格雷码振荡器经过其最大格雷码计数时递增,二进制计数器651/656允许格雷码振荡器621/622测量大于格雷码振荡器621/622可实现的最大格雷码计数的时间段。格雷码转换器640/642每个将由二进制计数器651/656提供的二进制计数的最高有效位(例如,最慢变化位)与由格雷到二进制块650/655提供的二进制计数的最低有效位(例如,最快变化位)连接起来并且然后将所得到的二进制计数提供给存储寄存器644。
通常,存储寄存器644可以被配置为存储表示由格雷码振荡器620测量的时间段(例如,校准时间段、训练时间段、有效载荷时间段和/或其他时间段)的数据,并且将所存储的时间段提供给时钟恢复电路660和/或数据恢复电路670(例如,电路660和/或670内的比较器和/或其他电路元件)。更具体地,存储寄存器644可以被配置为存储与由格雷码振荡器620测量的高和低时间段相对应的高和低二进制计数(例如,校准二进制计数和/或其他二进制计数)。
例如,如图6所示,存储寄存器652和657可以被配置为存储与由校准信号发生器615(例如,CAL1)生成的校准信号的低和高时间段相对应的相应的低和高校准二进制计数,并且存储寄存器653和658可以被配置为存储与由校准信号发生器612(例如,CAL4)生成的校准信号的低和高时间段相对应的相应的低和高校准二进制计数。在各种实施例中,例如,存储寄存器644可以包括附加或不同数目的存储寄存器652、653、657、658、和/或不同的锁存逻辑选择(例如,链接到存储寄存器644中的其相应的存储寄存器的与门)以存储与附加或不同时间段(诸如与附加或不同校准串行数据流、串行数据流的有效载荷部分等相关联的那些时间段)相对应的附加和/或不同二进制计数。此外,这样的锁存逻辑可以被配置为根据不同的采样时间选择来锁存存储寄存器644(例如,如至少部分地由采样定时电路系统/迹线625和/或串行数据流610指示的,如图所示)。
另外,如图6所示,在一些实施例中,存储寄存器644可以被配置为在二进制计数被存储时和/或当二进制计数被提供给时钟和数据恢复解串器600的其他元件时对二进制计数执行各种操作。具体地说,存储寄存器653和658可以被配置为将提供给那些寄存器的二进制计数除以4(例如,使用位移操作)以便存储和/或提供作为与例如在串行数据流610的训练部分/时钟信号的四个连续低或高时间段上求平均的串行数据流610的训练部分/时钟信号的单个高或低时间段相对应的平均低或高时间段的二进制计数。在一些实施例中,在串行数据流610的每个训练部分结束时,CAL4校准时间段存储在存储寄存器644中。存储寄存器644的输出处的逻辑可以被配置为提供初始延迟二进制计数以确定串行数据流610中的开始脉冲的中心。
还如图6所示,时钟和数据恢复解串器600可以包括输出多路复用器646,输出多路复用器646被配置为向例如可以由串行数据流610的即时高/低状态控制的时钟恢复电路660和/或数据恢复电路670提供高/低校准时间段/二进制计数和/或高/低有效载荷时间段/二进制计数。一旦校准信号发生器612和615被禁用,存储寄存器646中的值是稳定的,并且当由时钟和数据恢复解串器600处理串行数据流610时,仅更新非校准时间段输出N(例如,其可以是有效载荷时间段输出)。
时钟恢复电路660可以包括至少一个比较器(例如,比较器665)并且被配置为接收至少一个校准二进制计数(例如,高或低,从存储寄存器644)和二进制计数(例如,从存储寄存器644和/或直接来自格雷码转换器640和/或642,其可以是有效载荷二进制计数),并且生成与串行数据流610相对应的恢复后的时钟信号682。例如,如图6所示,恢复后的时钟信号682可以至少部分地基于比较器665的输出状态的改变。在一些实施例中,比较器665可以被配置为将所测量的有效载荷时间段(例如,提供给比较器665的输入A的信号N)与校准时间段(例如,其可以是基础校准时间段)进行比较,并且当所测量的有效载荷时间段超过校准时间段时,发起恢复后的时钟信号转变。
为了恢复与串行数据流610相对应的基础时钟(例如,串行数据流610中的信号转变的最高频率,通常在串行数据流610的训练部分中呈现),时钟恢复电路660可以包括多路复用器662、锁存器663和积分器664,积分器664被配置为确定高/低基础校准时间段(例如,对应于高/低基础时钟时间段)并且将基础校准时间段提供给比较器665。如图6所示的实施例中所示,时钟恢复电路660可以包括附加逻辑(例如,锁存器661和666以及寄存器668)以帮助稳定恢复后的时钟信号682(例如,相对于存储在锁存器652和653或锁存器657和658中的校准时间段)和/或生成恢复后的时钟信号682的双倍数据速率版本。如图所示,锁存器663可以基本上在由重置发生器618检测到的串行数据流610中的信号转变时重置。
在图6中,数据恢复电路670被配置为接收恢复后的时钟信号682(例如,如由锁存器666提供的)和串行数据流610(例如,其可以传播通过已知延迟,如图所示)并且生成与串行数据流610相对应的恢复后的数据信号680,恢复后的数据信号680可以至少部分地基于恢复后的时钟信号682和串行数据流610,如图所示。特别地,数据恢复电路670可以包括寄存器672,寄存器672被配置为接收串行数据流610并且周期性地提供串行数据流610的所存储的部分作为恢复后的数据信号680,如恢复后的时钟信号682中的信号转变所指示的。在一些实施例中,这样的布置可以用于对串行数据流610的每个比特单元的中心进行采样。
更一般地,数据恢复电路670可以被配置为通过至少部分地依赖于所测量的有效载荷时间段(例如,由格雷码振荡器620测量/提供的)与一个或多个校准时间段的比较来生成与串行数据流610的有效载荷部分相对应的恢复后的数据信号680,如图6所示,这可以由时钟恢复电路660执行。例如,数据恢复电路670可以被配置为通过在恢复后的时钟信号682中的恢复后的时钟信号转变处对串行数据流610的有效载荷部分进行采样来生成恢复后的数据信号680。时钟和数据恢复解串器600的其他实施例可以省略时钟恢复电路660,而是使用在数据恢复电路670内实现的一个或多个比较器来生成数据恢复信号680,如本文所述。可选地,时钟和数据恢复解串器600可以包括解码器,该解码器被配置为将恢复后的数据信号680转换为不同地经编码的或格式化后的数据信号,包括将8b10b经编码的数据转换回8位经编码的数据和/或并行数据信号,如本文所述。
图7-9示出了根据本公开的实施例的用于PLD的格雷码振荡器实现。例如,图7包括表700,表700示出了对于四位格雷码振荡器,格雷码振荡器(例如,格雷码振荡器621和622)的格雷码计数如何可以从零(在表700的顶部)递增到最大格雷码计数(例如,对应于十进制计数15)。值得注意的是,在递增计数的每次转变中,只有一比特改变状态。这在高计数率下是特别有利的,因为它有助于消除与单个递增期间的多个比特改变状态相关联的竞争情况和/或其他定时问题的风险以及对这样的状态变化的采样或计数的定时。此外,如本文所述,最高有效位d在整个递增中改变最慢,尽管它和位c实际上具有相同的频率,因为格雷计数被允许从15回到零(例如,从1000回到0000)。
图8示出格雷码振荡器621的实施例,其可以通过在逻辑802中每个等式使用两个链接的4-LUT来完全在单个可编程逻辑块104(例如,八个本地链接的可编程逻辑单元200)内实现。完全在PLB内实现这样的自由振荡的振荡器的优点在于,PLD中的每个PLB可以彼此相对紧密地链接并且需要相对较少的布线资源180来例如链接相邻PLC中的个体的4-LUT,这允许格雷码振荡器621近似地以由低层PLD支持的最大传播速度振荡或递增,从而最大化格雷码振荡器621的性能并且提高时钟和数据恢复解串器600的性能以及最大可恢复串行数据流频率/比特率/数据速率。类似地,图9示出了格雷码振荡器622的实施例,其可以通过在逻辑902中每个等式使用两个链接的4-LUT来完全在单个可编程逻辑块104(例如,八个本地链接的可编程逻辑单元200)内实现,并且它的实施受益于PLD资源的性能和有效使用方面的类似优势。
通常,格雷码振荡器621和622可以实现为纹波型格雷码振荡器,其工作频率最小约为串行数据流610的预期最大数据速率的五倍。格雷码振荡器621和622之一或两者的精确频率不需要设置、准确或已知,因为每个振荡器将有效地被同步到串行数据流610。此外,通常不需要它们各自频率的稳定性,无论是它们自身还是彼此,因为频率可以针对每个串行数据流分组进行重新同步。例如,格雷码振荡器621和622可以在串行数据流610的训练部分期间与串行数据流610的低级和高级之间的转变同步。训练部分可以短至4个数据单元,包括交替的零一序列,但是通常长度约为50个数据单元。
图10-图11示出了根据本公开的实施例的用于PLD的格雷到二进制转换器实现。例如,图10包括表1000,表1000示出了由格雷码振荡器(例如,格雷码振荡器621和622)提供的格雷码计数如何可以被转换为用于四位格雷码振荡器的二进制计数。图11示出了可以根据有限数目的逻辑元件1102实现的格雷到二进制块650的实施例,逻辑元件1102可以包括三个交叉链接的XOR逻辑门,如图所示。例如,逻辑1102可以由三个链接的4-LUT(例如,对应于三个链接的PLC)实现,其可以完全在PLD的PLB内实现,其益处类似于参考图7-图9中描述的格雷码振荡器实现所讨论的那些。
时钟和数据恢复解串器600的实施例可以用于从例如10-50Mbps的串行数据流和/或接近100Mbps的串行数据流中恢复时钟和/或数据。例如,这样的速率可以通过能够支持以大约10MHz或更好的速率传输六个LUT的链的信号的PLD构造来实现。如本领域技术人员理解的,这样的速率主要取决于用于制造低层PLD构造的工艺和技术,或者取决于用于制造低层IC的工艺和技术(例如,在时钟和数据恢复解串器600在RTL逻辑中实现的实施例中)。在每个成本、功率使用和/或空间利用的相对性能方面,实施例提供了优于传统技术的益处,而不管底层PLD或RTL逻辑结构如何。
图12-图15示出了根据本公开的实施例的实现用于PLD的数据恢复解串器1200的电路系统的框图。特别地,数据恢复解串器1200总体上不同于图6的时钟和数据恢复解串器600,因为它使用单个自由运行的格雷码振荡器来测量串行数据流的高和低时间段两者(例如,由校准信号发生器612和/或串行数据流610生成的校准串行数据流),并且它省略了时钟恢复电路660,而是依赖于嵌入在图14的数据恢复电路1264和图15的数据恢复电路1266内的多个比较器、以及附加的逻辑来生成恢复后的数据信号1280。类似于图6的时钟和数据恢复解串器600,数据恢复解串器1200可以完全利用PLD的通常可配置资源来实现。通常,数据恢复解串器1200被配置为接收串行数据流/输入610,使用格雷码振荡器1222测量与串行数据流610相对应的信号转变之间的时间段,并且生成恢复后的数据信号/输出1280。
如图12-图15所示,数据恢复解串器1200包括校准信号发生器612、过采样格雷码振荡器1222、格雷码计数器1242、低/高格雷计数存储寄存器1252和1257、格雷码转换器650和655(例如,格雷到二进制块650和655)、时间段逻辑块1260、存储寄存器1362、以及数据恢复电路,包括数据恢复电路部分1264、1266、逻辑块1267、寄存器1272和1273、以及多路复用器1274。在一般操作中,数据恢复解串器1200启动格雷码振荡器1222以在串行数据流610的训练部分之前或期间递增其格雷码计数,并且校准使能信号611被驱动为高,以从多路复用器1217提供与串行数据流610的训练部分相对应的校准串行数据流。
在该操作阶段期间,校准串行数据流中的信号转变用于将对应的低和高格雷码计数存储在相应的寄存器1252和1257中,这些低和高格雷码计数然后被提供给相应的格雷到二进制块650和655以便将格雷码计数转换为对应的二进制计数。时间段逻辑块1260确定低和高二进制计数之间的差值以便确定校准串行数据流中的相邻转变之间的对应的校准时间段/二进制计数,并且校准时间段/二进制计数被存储在存储寄存器1362中。然后,校准时间段/二进制计数被提供给数据恢复电路部分1264和1266内的各种比较器1464、1466、1568、1570和1573以及积分器1465、1566、1567、1569、1571和1572。
一旦校准阶段结束,串行数据流610的有效载荷部分中的信号转变用于将对应的低和高格雷码计数存储在相应的寄存器1252和1257中,这些低和高格雷码计数然后被提供给相应的格雷到二进制块650和655以便将格雷码计数转换为对应的二进制计数。时间段逻辑块1260确定低和高二进制计数之间的差值以便确定串行数据流610的有效载荷部分中的相邻转变之间的对应的有效载荷时间段/二进制计数,并且有效载荷时间段/二进制计数被提供给数据恢复电路部分1264和1266中的各种比较器和积分器,如图所示。
在图12-图15所示的实施例中,恢复电路部分1264和1266中的各种比较器和积分器被配置为通过在所比较的有效载荷时间段/二进制计数超过对应的校准时间段/二进制计数和/或数据模式时间段/二进制计数时改变比较器的输出状态来检测串行数据流610的有效载荷部分中预期的五种可能的数据模式中的一个模式(例如,高或低)。这样的数据模式可以被选择为通常对应于由格雷码振荡器1222测量的、并且由时间段逻辑块1260以二进制形式提供的任何有效载荷时间段/二进制计数。如逻辑块1267的逻辑1268所示,比较器输出p1的状态可以基于剩余的比较器输出p2、p3、p4和p5来推断。然后,逻辑块1267根据串行数据流610的对应低或高状态在存储寄存器1272或1273中提供检测数据模式,并且数据模式由多路复用器1274级联和/或输出作为恢复后的数据信号1280。这样,恢复后的数据信号1280可以至少部分地基于恢复电路部分1264和1266中的至少一个比较器的输出状态的变化。在一些实施例中,恢复后的数据信号1280可以被提供给解码器以将恢复后的数据信号1280转换成期望的编码或数据信号格式,如本文所述。
在图12-图15所示的实施例中,格雷码计数器1242被实现为被配置为使用格雷码对格雷码振荡器1222的最高有效位输出中的高到低转变进行计数的逻辑块。该实现用于帮助消除在其他方面可能由使用二进制代码进行的递增计数而引起的竞争情况和/或其他定时问题(例如,在寄存器1252和1257处)。
虽然数据恢复电路部分1264、1266、逻辑块1267、寄存器1272和1273以及多路复用器1274被配置为检测串行数据流610的有效载荷部分中的特定数据模式,但是在其他实施例中,例如,数据恢复解串器1200可以被实现为具有被配置为检测其他数据模式和/或另一数目的数据模式的备选数据恢复电路元件。在一些实施例中,数据恢复解串器1200可以用类似于图6所示的时钟恢复电路和数据恢复电路来实现。在其他实施例中,数据恢复解串器1200可以用两个格雷码振荡器(其布置类似于图6所示的布置)来实现,并且被配置为具有被配置为彼此分开地检测与低和高有效载荷二进制计数相对应的数据模式的单独的数据恢复电路部分。这样的实施例受益于参考参考图6描述的两个格雷码振荡器电路和相关联的采样定时电路系统而描述的竞争情况消除益处和/或其他定时问题益处。
图16示出了根据本公开的实施例的用于PLD的格雷振荡器实现。特别地,图16示出了格雷码振荡器1222的实施例,其可以通过在逻辑1602中每个等式使用一个4-LUT来完全在半个单个可编程逻辑块104(例如,四个本地链接的可编程逻辑单元200)内实现。完全在PLB内实现这样的自由振荡的振荡器的优点在于,PLD中的每个PLB可以彼此相对紧密地链接并且需要相对少的布线资源180来例如链接相邻PLC中的个体的4-LUT,这允许格雷代码振荡器1222近似地以由底层PLD支持的最大传播速度振荡或递增,从而最大化格雷码振荡器1222的性能并且提高数据恢复解串器1200的性能和最大可恢复串行数据流频率/比特率/数据速率。而且,这样的实现提供了PLD资源到相对有效的使用。
图17示出了根据本公开的实施例的用于PLD的时钟和/或数据恢复解串器1700的框图。特别地,时钟和/或数据恢复解串器1700总体上不同于图6的时钟和数据恢复解串器600以及图12的数据恢复解串器1200,因为其功能是相对流水线的,它省略了时钟恢复电路660,它使用两个独立的比较器系列1730-1738和1740-1746来生成恢复后的数据信号的单独的高和低部分(例如,由寄存器1750和1752输出),并且它包括解码器1770,该解码器1770被配置为通过将经编码的恢复后的数据信号转变为并行的8位恢复后的数据信号来解码恢复后的数据信号(例如,8b10b编码的恢复后的数据信号)的编码形式。类似于解串器600和1200,时钟和/或数据恢复解串器1700可以完全利用PLD的通常可配置资源来实现。
通常,时钟和/或数据恢复解串器1700被配置为在定时电路1710处接收串行数据流/输入1709,在定时电路1710处生成校准和有效载荷时间段,将校准时间段存储在校准电路1720内,在比较器1730-1738和1740-1746处将成对的相邻的低和高有效载荷时间段与各个校准时间段和/或数据模式进行比较,将对应的经编码的恢复后的数据信号存储在寄存器1750和1752中,并且对经编码的恢复后的数据信号进行解码以在解码器1770的输出处提供经解码的恢复后的数据信号1772。
如图17所示,时钟和/或数据恢复解串器1700包括定时电路1710、校准电路1720、比较器1730-1738和1740-1746、低/高存储寄存器1750和1752、以及可选的解码器1770。在一般操作中,定时电路1710接收串行数据流1709,检测串行数据流1709的训练部分(例如,或者假定串行数据流1709的开始是训练部分),进入校准操作阶段(例如,通过将一个或多个对应的校准使能信号驱动为高),测量一个或多个校准时间段(例如,针对一个或多个不同长度的校准串行数据流时段(诸如与串行数据流1709的2、3、4和5个数据单元相对应的信号时段)的低和高校准时间段),并且将所测量的校准时间段(例如,以二进制计数的形式)提供给校准电路1720以用于存储在多个对应的存储寄存器中。校准电路1720接收和存储校准时间段,并且可以被配置为根据串行数据流1790的有效载荷部分的有效载荷时间段中的预期数据模式来组合各种校准时间段,并且将各种校准时间段和/或数据模式时间段提供给比较器1730-1738和1740-1746。
然后,定时电路1710可以检测串行数据流1709的分组部分的开始(或者,在一些实施例中,当校准阶段通过测量/确定所有期望的校准/数据模式时间段而完成时,简单地退出校准操作阶段),退出校准操作阶段(例如,通过将各种校准使能信号驱动为低),测量成对的相邻的低和高有效载荷时间段(例如,针对串行数据流1709的有效载荷部分的低和高有效载荷时间段),并且将所测量的相邻的有效载荷时间段(例如,以二进制计数的形式)提供给比较器1730-1738和1740-1746,如图所示。比较器1730-1738和1740-1746可以被配置为将所测量的有效载荷时间段与由校准电路1720提供的校准/数据模式时间段进行比较,并且将恢复后的数据信号的所得到的相应的低和高部分存储在相应的寄存器1750和1752中。可选地,解码器1770然后可以接收经编码的恢复后的数据信号的低和高部分,将经编码的恢复后的数据信号解码成期望的恢复后的数据信号编码和/或格式。在一些实施例中,解码器1770可以被配置为检测串行数据流1709的有效载荷部分的开始(例如,在有效载荷部分的开始处在串行数据流1709内被编码的逗点),并且仅在检测到有效载荷部分开始之后开始提供经解码的恢复后的数据信号1772。在特定实施例中,解码器1770可以被配置为将8b10b经编码的恢复后的数据信号解码为八位并行格式的恢复后的数据信号1772,如图所示。在各种实施例中,解码器1770和/或时钟和/或数据恢复解串器1700的其他元件可以被配置为至少部分地基于串行数据流1709和/或由定时电路1710测量的一个或多个校准时间段来生成恢复后的时钟信号。
在串行数据流1709是8b10b经编码的串行数据流的特定实施例中,比较器1730-1738可以被配置为至少部分地通过检测由定时电路1709测量的低有效载荷时间段何时大致相当于两个、三个、四个或五个数据单元时间段来生成恢复后的经编码的数据信号的低部分(大致相当于一个数据单元时间段的低有效载荷时间段由比较器1730-1738的所有输出为零来推断),其中较大的低有效载荷时间段不是由串行数据流1709的预期编码生成的。类似地,在这样的特定实施例中,比较器1740-1748可以被配置为至少部分地通过检测由定时电路1709测量的高有效载荷时间段何时大致相当于两个、三个、四个或五个数据单元时间段来生成恢复后的经编码的数据信号的高部分(大致相当于一个数据单元时间段的高有效载荷时间段由比较器1740-1748的所有输出为零来推断),其中较大的高有效载荷时间段不是由串行数据流1709的预期编码生成的。
更一般地,在其他实施例中,时钟和/或数据恢复解串器1700可以包括不同数目的比较器1730-1738和/或1740-1748,校准电路1720可以生成校准时间段的和/或根据不同的预期数据模式的不同组合,和/或定时电路1710可以测量和生成不同的校准时间段,例如,根据串行数据流1709的已知编码。此外,在其他实施例中,例如,串行数据流1719可以根据各种不同的编码方案来编码,诸如脉冲宽度调制编码、相位调制编码、脉冲宽度相位调制编码、其他比特深度编码和/或可变比特深度编码,并且时钟和/或数据恢复解串器1700的元件(包括解码器1770)可以被修改以通过使用格雷码振荡器621、622和/或1222的实施例来测量与由串行数据流传输的数据相关联的时间段和/或其他信号特性来从这样的串行数据流中恢复和/或解码数据信号。
图18示出了根据本公开的实施例的用于时钟和/或数据恢复解串器1700的定时电路1710的框图。如图18所示,定时电路1710包括校准信号发生器1810、重置发生器1880、低格雷码振荡器621和高格雷码振荡器622、包括格雷到二进制块1850和二进制计数器1851的低格雷码转换器、包括格雷到二进制块1855和二进制计数器1856的高格雷码转换器、低存储寄存器1860和高存储寄存器1862、以及包括逻辑块1823、1824、1870、1872和1874的采样定时电路系统。校准信号发生器1810可以被配置为接收串行数据流1709并且生成各种对应的校准串行数据流和/或穿过串行数据流1709作为串行数据流es,如本文所述。在一般操作中,时序电路1710的格雷码振荡器、格雷码转换器和采样定时电路的操作类似于参考图6中的解串器600描述的类似元件。
例如,图18中标识的采样定时电路(例如,逻辑块1870、1872、1874、1823和/或1824)可以被配置为根据内部时钟信号CLK(例如,由逻辑块1870、1872和1874生成的)和由校准信号发生器1710生成的串行数据流es来控制格雷码振荡器621和622中的每个的启动、停止和重置的定时和/或低和高时间段(例如,以二进制计数的形式)在相应的低/高存储寄存器1860和1862中的存储。逻辑块1823和1824可以被配置为根据内部时钟信号CLK和串行数据流es来重置二进制计数器1850和1856。二进制计数器1851和1856每个可以用附加输出来实现,该附加输出被配置为当根据重置信号发生器1880组合时生成内部重置信号RST,如图所示。这样的内部重置信号RST可以被提供给校准信号发生器1810,如图所示。
在各种实施例中,图18中标识的采样定时电路(例如,逻辑块1870、1872、1874、1823和/或1824)可以有利地包括耦合在格雷码振荡器621与格雷码振荡器622、格雷码转换器(例如,格雷到二进制块1850和二进制计数器1851、以及格雷到二进制块1855和二进制计数器1856)、和/或存储寄存器1860和1862之间的元件,以便促进各种元件的操作之间的适当定时,而不会引起竞争情况或其他定时问题。
例如,如图18所示,逻辑块1870-1874要求格雷码振荡器622在重置格雷码振荡器621之前(例如,通过向格雷码振荡器621的输入f提供高CLK信号)达到最小格雷码计数(例如,输出a1和b1的模式),并且逻辑块1870-1874要求格雷码振荡器621在重置格雷码振荡器622之前达到最小格雷码计数。此外,逻辑块1870-1874要求格雷码振荡器621的格雷码计数在由格雷码振荡器622测量的高校准时间段存储在存储寄存器1862中之前达到最小格雷码计数,并且要求格雷码振荡器622的格雷码计数在由格雷码振荡器621测量的低校准时间段存储在存储寄存器1860中之前达到最小格雷码计数,如图所示。在一些实施例中,发起重置和存储的最小格雷码计数可以是相同的。格雷码振荡器621和622可以被配置为基于提供给格雷码振荡器621和622的输入e的信号中的信号转变来开始递增它们相应的格雷码计数(例如,由校准信号发生器1810作为信号es而提供的校准/串行数据流)。
图19示出了根据本公开的实施例的用于定时电路1710的格雷到二进制转换器(例如,格雷到二进制块1850)。格雷到二进制块1850的操作类似于如参考图6、10和11描述的格雷到二进制块650,但是可以用逻辑元件1902的不同布置来实现,如图19所示,其中输入g3通过延迟缓冲器1912耦合到输出b3以帮助减少与格雷到二进制块1850的操作相关联的竞争情况和/或其他时序问题。图19示出了格雷到二进制块1850的实施例,其可以根据有限数目的逻辑元件1902来实现,逻辑元件1902可以包括延迟缓冲器1912和三个交叉链接的异或逻辑门,如图所示。例如,逻辑1902可以由四个链接的4-LUT(例如,对应于四个链接的PLC)实现,其可以完全在PLD的PLB内实现,其益处类似于参考图7-图9中描述的格雷码振荡器实现和图10-图11中描述的格雷到二进制块实现所讨论的那些。
图20示出了根据本公开的实施例的用于定时电路1710的校准信号发生器1810的框图。如图20所示,根据情况,校准信号发生器1810包括计数器2010、逻辑块2060和串行数据信号发生器2040,计数器2010被配置为提供串行数据流1709(例如,输出a)和/或基于串行数据流1709(例如,输出b-g)为逻辑块2020、2030和2050生成训练信号/校准计数,逻辑块2060被配置为生成各种校准使能信号(例如,包括被配置为存储和提供校准使能信号CAL2、CAL3、CAL4和CAL5的寄存器,对应于具有为2、3、4和5个数据单元宽度的高和低校准时间段的校准串行数据流),串行数据信号发生器2040被配置为生成对应的校准串行数据流和/或传递串行数据流1709。
在典型操作中,逻辑块2020和2030可以被配置为使用由计数器2010提供的校准计数来生成校准定时信号t2-t5,校准定时信号t2-t5在通过与门2042被提供给触发器2044时引起串行数据信号发生器2040的触发器2044在多路复用器2048的输出ex处生成具有不同相关联时间段的各种校准串行数据流(例如,其然后被转发到图18中的定时电路1710的格雷码振荡器621和622)。多路复用器2048由计数器2010的输出g(例如,计数器2010的最高有效位,其可以对应于二进制计数器中的计数32)控制,如由寄存器2046根据串行数据流1709采样和存储的,其由串行数据信号发生器2040作为通用CAL使能信号而输出,如图所示。一旦计数器2010的输出g被驱动为高,串行数据信号发生器2040的多路复用器2040可以被配置为在输出es处传递串行数据流1709,并且计数器2010可以被禁用/停止,从而迫使多路复用器2040在输出es处传递串行数据流1709,直到计数器2010被内部重置信号RST重置,如图所示。
另外,逻辑块2050和2060可以被配置为使用由计数器2010提供的校准计数和由逻辑块2020提供的校准定时信号o0-o4来生成校准使能信号CAL2、CAL3、CAL4和CAL5,校准使能信号CAL2、CAL3、CAL4和CAL5与由串行数据信号发生器2040生成该瞬时校准串行数据流相对应,同时适当的校准使能信号CAL2、CAL3、CAL4和CAL5由逻辑块2060驱动为高。
图21示出了根据本公开的实施例的用于校准信号发生器1810的串行数据信号发生器2040的触发器2044的框图。如图21所示,触发器2044可以用三个互连的逻辑块2110、2112和2114实现,如图所示,并且在一些实施例中,可以被配置为生成低和高时间段的长度近似等于提供给输入D的信号的高时间段的输出串行数据流,如根据提供给触发器2044的锁存输入“>”的信号的最近转变而采样的。更一般地,触发器2044可以实现为被配置为在触发器2044的锁存输入“>”的上升和下降转变处,来锁存D处的输入的双边沿触发器。在一些实施例中,触发器2044的每个逻辑块2110、2112和2114可以由PLD内的单个LUT/PLC实现。
图22示出了根据本公开的实施例的用于时钟和/或数据恢复解串器1700的校准电路1720的框图。如图22所示,校准电路1720可以包括多个不同的存储寄存器(例如,低存储寄存器2210-2216和高存储寄存器2220-2226),这些存储寄存器被配置为存储由定时电路1710的格雷码振荡器621和622测量的低/高校准时间段(例如,以由低/高存储寄存器1860和1862存储和提供的对应的二进制计数的形式),如根据内部时钟信号CLK(例如,由定时电路1710的采样定时电路生成的)和各种校准使能信号(例如,CAL2、CAL3、CAL4和CAL5)采样的。还如图22所示,校准电路1720还可以包括被配置为根据串行数据流1709的有效载荷部分中预期的各种低/高数据模式来组合低/高校准时间段的多个低和高积分器2230-2234和2240-2244。
在一些实施例中,低存储寄存器2210-2216、高存储寄存器2220-2226和/或低和高积分器2230-2234和2240-2244可以包括被配置为进一步操纵低/高校准时间段以帮助生成被配置为帮助检测串行数据流1709的有效载荷部分内的特定数据模式(例如,利用图17中的比较器1730-1738和1740-1746)的各种数据模式时间段的附加逻辑,诸如位移逻辑、分频器、乘法器和/或其他逻辑和/或算术运算。在图22所示的特定实施例中,低和高积分器2230-2234和2240-2244被配置为对两个不同的校准时间段求和并且将结果除以2,以便提供被配置为根据预期数据模式的选择来区分预期的有效载荷时间段(例如,在图17中的比较器1730-1738和1740-1746处)的数据模式时间段。例如,逻辑块2230可以被配置为针对与7个数据单元相对应的总时间段,对与3个和4个数据单元相对应的校准时间段求和,然后将该和除以2以得到与大约3.5个数据单元相对应的数据模式时间段(例如,时间段微分器值),其可以用于(例如,在比较器1730-1738和1740-1746处)可靠地区分与大约3个数据单元相对应的有效载荷时间段和与大约4个数据单元相对应的有效载荷时间段。通常,例如,根据串行数据流1709的不同预期编码,或者根据用于从串行数据流1709的有效载荷部分生成恢复后的数据信号的不同的比较方案,校准电路1720可以包括不同数目和布置的存储寄存器和/或逻辑块2230-2234和2240-2244。
图23示出了根据本公开的实施例的用于时钟和/或数据恢复解串器1700的解码器/解码器电路1770的框图。如图23所示,解码器1770包括恢复数据分离器2310,恢复数据分离器2310被配置为接收存储在寄存器1750和1752中的经编码的恢复后的数据信号,并且生成六位和四位分割编码的数据信号。四位分割编码数据信号可以被提供给逻辑块2320、2322和2324(例如,分别根据逻辑2321、2323和2325实现),逻辑块2320、2322和2324可以被配置为将四位分割编码的数据信号解码为经解码的恢复后的数据信号(例如,经解码的恢复后的数据信号1772)的三个最高有效位(例如,位5、6和7)。六位分割编码的数据信号可以被提供给块2340,块2340可以被配置为将六位分割编码的数据信号解码为由解码器1770生成的经解码的恢复后的数据信号的五个最低有效位(例如,位0、1、2、3和4)。在一些实施例中,例如,块2340可以使用PLD的嵌入式块RAM来实现。总而言之,解码器1770的元件可以被配置为将8b10b经编码的恢复后的数据信号解码(例如,将本领域已知的8b10b编码反转)为8位恢复后的数据信号和/或将其格式化为并行数据信号,如图所示。
图24示出了根据本公开的实施例的用于解码器1770的恢复数据分离器2310的框图。如图24所示,恢复数据分离器2310可以包括被配置为处理和存储经编码的恢复后的数据信号的低部分(例如,由图17中的寄存器1750提供)的逻辑块2410-2412和寄存器2414-1418、被配置为处理和存储编码的恢复后的数据信号的高部分(例如,由图17中的寄存器1752提供)的逻辑块2420-2422和寄存器2424-1428、被配置为基于由解串器1700的其他元件(例如,定时电路1710的元件,其可以生成RST、CLK和/或CAL9/CAL)提供的信号来生成字对准信号WA的逻辑块2430-2434、被配置为对经编码的恢复后的数据信号的经处理的/重新布置的低和高部分进行字对准的逻辑块2440-2442和寄存器2444-2446、被配置为将经编码的恢复后的数据信号的字对准的低和高部分分割成六位和四位分割编码数据信号的字对准数据分离器2450、被配置为存储和转发六位分割编码数据信号的寄存器2460和2462、以及被配置为存储和转发四位分割编码数据信号的寄存器2464。
在一些实施例中,逻辑块2430-2434可以被配置为在解串器1700的校准阶段期间(例如,如由校准使能信号CAL9指示的)抑制字对准信号WA,以在解串器1700退出校准阶段之后(例如,通过将校准使能信号CAL9驱动为低)检测串行数据信号1709的有效载荷部分的开始(如在由寄存器1750和/或1752提供的恢复后的数据信号中提供的),并且以在检测到有效载荷部分的开始时触发字对准信号WA(例如,串行数据信号1709的有效载荷部分的第一时间)以便设置第一字对准边界。如图24所示,串行数据信号1709的有效载荷部分的开始可以由提供给比较器1740-1746的所测量的高时间段指示,该时间段足够长以在校准阶段完成之后(例如,CAL9被驱动为低)并且在串行数据流1709的训练部分完成之后(例如,在此期间,任何测量的转变时间段都对应于单个数据单元)改变恢复后的数据信号位ONE<5>的状态。
在各种实施例中,逻辑块2410-2412和寄存器2414-1418可以被配置为将经编码的恢复后的数据信号的低部分(例如,由图17中的寄存器1750提供)从与由比较器1730-1738检测的数据模式的选择相对应的数据模式编码转换为相对压缩的编码(例如,具有较短的位宽度,但是保留嵌入在编码的恢复后的数据信号的低部分内的所有信息(例如,ZERO<2:5>))。这样的相对压缩的或不同的编码可以被配置为促进经编码的恢复后的数据信号的字对准(例如,由逻辑块2440-2442和寄存器2444-2446执行)。类似地,逻辑块2420-2422和寄存器2424-1428可以被配置为对经编码的恢复后的数据信号的高部分执行类似的转换以促进经编码的恢复后的数据信号的高部分的字对准(例如,ONE<2:5>)。
图25示出了根据本公开的实施例的用于恢复数据分离器2310的字对准数据分离器2450的框图。如图25所示,字对准数据分离器2450可以包括多个输入选择器块2510,每个输入选择器块2510对应于特定位掩码2511,位掩码2511馈送第一层逻辑块2520(例如,每个针对输出f根据相应的逻辑等式2521实现),第一层逻辑块2520馈送第二和第三层逻辑块2522和2524(例如,根据所指示的逻辑等式实现)并且交叉馈送第一层逻辑块2520,如图所示。第二层逻辑块2522馈送第三层逻辑块2524,第三层逻辑块2524生成字对准数据信号(DAT<0>到DAT<9>)以被分割并且输出为六位和四位分割编码数据信号,如图24所示。与位掩码0011相关联的第一层逻辑块2520中的逻辑块2522可以用于生成内部CLOCK信号2530,并且与位掩码1001相关联的第一层逻辑块2520中的逻辑块2524可以用于生成内部CLOCK信号2530。在各种实施例中,内部CLK6信号2532可以用于将六位分割编码数据信号存储在寄存器2460中,并且内部CLOCK信号2530可以用于将六位分割编码数据信号存储和/或转发到寄存器2462并且将四位分割编码数据信号存储和/或转发到寄存器2464,如图24所示。
图26示出了根据本公开的实施例的用于恢复数据分离器2310的模10积分器(例如,逻辑块2440)的框图。如图26所示,模10积分器2440可以包括被配置为对两个输入求和的逻辑块2610、用于传递由逻辑块2610输出的和的最低有效位作为模10积分器2440的输出的最低有效位的缓冲器2620、以及每个被配置为基于和的剩余最高有效位和所指示的逻辑来生成模10积分器2440的输出的剩余最高有效位的三个逻辑块2622-2626(例如,根据所指示的逻辑等式实现)。
图27示出了根据本公开的实施例的用于操作时钟和/或数据恢复解串器(例如,解串器600、1200和/或1700)的方法。
在操作2702中,解串器接收串行数据流。例如,解串器600、1200和/或1700可以被配置为接收串行数据流610和/或1709。在一些实施例中,例如,解串器600、1200和/或1700的元件可以被配置为接收校准串行数据流,这些校准串行数据流可以由对应的校准信号发生器612和/或1810基于串行数据流610和/或1709生成,如本文所述。
在操作2704中,解串器使用格雷码振荡器来测量串行数据流的信号转变之间的时间段。例如,解串器600、1200和/或1700可以被配置为测量串行数据流610和/或1709和/或对应的校准串行数据流的信号转变之间的高和低校准和/或有效载荷时间段,如本文所述。在一些实施例中,解串器可以用两个格雷码振荡器实现,这两个格雷码振荡器被配置为通过在信号转变之间递增单独的格雷码计数并且近似地在信号转变处将格雷码计数转换为每个与所测量的低或高时间段相对应的二进制计数,来分别测量信号转变之间的低和高时间段,如本文所述。
在操作2706中,解串器生成与串行数据流相对应的恢复后的数据信号。例如,解串器600、1200和/或1700可以被配置为通过将有效载荷时间段/二进制计数与一个或多个校准时间段/二进制计数和/或预期的数据模式进行比较以标识特定的对应数据模式和/或生成对应的恢复后的数据信号,来生成恢复后的数据信号680、1280和/或1772,如本文所述。在一些实施例中,恢复后的数据信号可以是例如经编码的恢复后的数据信号,并且解串器可以用被配置为将经编码的恢复后的数据信号解码为不同地经编码和/或格式化的恢复后的数据信号的解码器(例如,解码器1770)来实现。例如,解串器1770可以被配置为在存储寄存器1750和1752处生成10位经编码的恢复后的数据信号,并且使用解码器1770来生成对应的8位经编码和/或并行格式化的恢复后的数据信号1772。
图28示出了根据本公开的实施例的用于操作时钟和/或数据恢复解串器(例如,解串器600、1200和/或1700)的第二方法。
在操作2802中,解串器在串行数据流中的信号转变之间递增格雷码计数。例如,解串器600、1200和/或1700可以被配置为使用格雷码振荡器621、622和/或1222来在串行数据流610和/或1709和/或对应的校准串行数据流中的信号转变之间递增格雷码计数。在一些实施例中,解串器可以包括被配置为在相邻的负和正信号转变和/或相邻的正和负信号转变之间基本上异步地递增两个格雷码计数的两个格雷码振荡器。
在操作2804中,解串器在串行数据流中的信号转变处将格雷码计数转换为校准二进制计数和与信号转变之间的时间段相对应的有效载荷二进制计数。例如,解串器600、1200和/或1700可以包括一个或多个格雷码转换器,一个或多个格雷码转换器被配置为在串行数据流610和/或1709和/或相关联的校准串行数据流中的信号转变处,将格雷码计数转换为每个与串行数据流610和/或1709和/或相关联的校准串行数据流中的一个或多个信号转变之间的时间段相对应的多个二进制计数。例如,这样的多个二进制计数可以包括校准二进制计数和/或有效载荷二进制计数。
在操作2806中,解串器存储校准二进制计数用于与有效载荷二进制计数进行比较。例如,解串器600、1200和/或1700可以被配置为将由格雷码转换器提供的校准二进制计数存储在存储寄存器644、1362和2210-2216和2220-2226中的一个或多个中,如本文所述。在一些实施例中,这样的校准二进制计数可以存储在各种中间存储寄存器中,诸如存储寄存器1860和/或1862。在存储校准二进制计数之后,各种存储寄存器可以被配置为向一个或多个比较器(例如,比较器665、恢复电路部分1264和1266的比较器、和/或比较器1730-1738和1740-1746)提供或转发校准二进制计数和/或相关联的数据模式时间段/二进制计数,以用于与有效载荷二进制计数进行比较和/或生成恢复后的时钟信号和/或恢复后的数据信号,如本文所述。
因此,本公开的实施例提供了用于串行数据流的解串的解决方案,其可以相对紧凑地实现并且在针对PLD的布局和布线方面具有更大程度的灵活性。此外,本解串器的实施例可以从每个性能的成本的角度相对有效地操作。
在适用的情况下,由本公开提供的各种实施例可以使用硬件、软件或硬件和软件的组合来实现。同样,在适用的情况下,在不脱离本公开的精神的情况下,本文中阐述的各种硬件组件和/或软件组件可以组合成包括软件、硬件和/或两者的复合组件。在适用的情况下,在不脱离本公开的精神的情况下,可以将本文中阐述的各种硬件组件和/或软件组件分成包括软件、硬件或两者的子组件。另外,在适用的情况下,预期软件组件可以实现为硬件组件,反之亦然。
根据本公开的软件(诸如程序代码和/或数据)可以存储在一个或多个非暂态机器可读介质上。还预期,本文中标识的软件可以使用一个或多个通用或专用计算机和/或计算机系统、联网和/或以其他方式实现。在适用的情况下,本文中描述的各种步骤的顺序可以改变,组合成复合步骤,和/或分成子步骤以提供本文中描述的特征。
上述实施例说明但不限制本发明。还应当理解,根据本发明的原理,可以进行很多修改和变化。因此,本发明的范围仅由所附权利要求限定。

Claims (40)

1.一种方法,包括:
接收串行数据流;
使用至少一个格雷码振荡器,来测量所述串行数据流的有效载荷部分中的信号转变之间的有效载荷时间段;以及
通过至少部分地将所测量的有效载荷时间段与一个或多个校准时间段进行比较,来生成与所述串行数据流的所述有效载荷部分相对应的恢复后的数据信号。
2.根据权利要求1所述的方法,其中测量所述有效载荷时间段包括:
通过所述格雷码振荡器,在所述串行数据流的所述有效载荷部分中的所述信号转变之间来递增格雷码计数;以及
近似地在所述信号转变处将所述格雷码计数转换为多个二进制计数,每个二进制计数对应于所述有效载荷时间段中的一个有效载荷时间段。
3.根据权利要求1所述的方法,其中所述格雷码振荡器包括第一格雷码振荡器,并且其中测量所述有效载荷时间段包括:
通过所述第一格雷码振荡器,在所述串行数据流的所述有效载荷部分中的负信号转变与相邻正信号转变之间、从零来递增第一格雷码计数;
近似地在所述相邻正信号转变处,将所述第一格雷码计数转换为和所述负信号转变与所述相邻正信号转变之间的低有效载荷时间段相对应的多个低二进制计数;
通过第二格雷码振荡器,在所述串行数据流的所述有效载荷部分中的正信号转变与相邻负信号转变之间、从零来递增第二格雷码计数;以及
近似地在所述相邻负信号转变处,将所述第二格雷码计数转换为和所述正信号转变与所述相邻负信号转变之间的高有效载荷时间段相对应的多个高二进制计数。
4.根据权利要求3所述的方法,其中对于所述串行数据流的所述有效载荷部分的每对相邻的低时间段和高时间段,生成所述恢复后的数据信号包括:
将对应的低二进制计数与一个或多个低校准二进制计数和/或数据模式进行比较,以标识与成对的相邻的低时间段和高时间段相关联的对应的低数据模式;
将对应的高二进制计数与一个或多个高校准二进制计数和/或数据模式进行比较,以标识与所述成对的相邻的低时间段和高时间段相关联的对应的高数据模式;以及
组合所述低数据模式和所述高数据模式,以形成与所述成对的相邻的低时间段和高时间段相对应的所述恢复后的数据信号的一部分。
5.根据权利要求1所述的方法,其中生成所述恢复后的数据信号包括:
通过至少部分地将所测量的有效载荷时间段与基础校准时间段进行比较、并且在所测量的有效载荷时间段超过所述基础校准时间段时启动恢复后的时钟信号转变,来生成与所述串行数据流相对应的恢复后的时钟信号;以及
通过在所述恢复后的时钟信号转变处对所述串行数据流的所述有效载荷部分进行采样,来生成所述恢复后的数据信号。
6.根据权利要求1所述的方法,其中所述串行数据流的所述有效载荷部分包括经编码的数据流,并且所述恢复后的数据信号包括相应的编码数据信号,所述方法还包括:
将所述恢复后的数据信号解码成8位经编码的数据信号。
7.根据权利要求1所述的方法,还包括:
检测所述串行数据流的前导码中的训练部分;
至少部分地基于所述串行数据流的所述训练部分,来生成一个或多个校准串行数据流;
使用所述至少一个格雷码振荡器,来测量对应的一个或多个校准串行数据流中的校准信号转变之间的所述一个或多个校准时间段;以及
将所述一个或多个校准时间段存储在对应的一个或多个存储寄存器中。
8.根据权利要求7所述的方法,其中测量所述一个或多个校准时间段包括:
通过所述格雷码振荡器,在对应的一个或多个校准串行数据流中的校准信号转变之间来递增格雷码计数;以及
近似地在所述校准信号转变处,将所述格雷码计数转换为多个校准二进制计数,每个校准二进制计数对应于所述一个或多个校准时间段中的一个校准时间段。
9.根据权利要求7所述的方法,其中所述格雷码振荡器包括第一格雷码振荡器,并且其中测量所述一个或多个校准时间段包括:
通过所述第一格雷码振荡器,在对应的一个或多个校准串行数据流中的负信号转变与相邻正信号转变之间、从零递增所述第一格雷码计数;
近似地在所述相邻正信号转变处,将所述第一格雷码计数转换为和所述负信号转变与所述相邻正信号转变之间的一个或多个校准时间段相对应的多个低校准二进制计数;
通过所述第二格雷码振荡器,在对应的一个或多个校准串行数据流中的正信号转变与相邻负信号转变之间、从零递增所述第二格雷码计数;以及
近似地在所述相邻负信号转变处,将所述第二格雷码计数转换为和所述正信号转变与所述相邻负信号转变之间的所述一个或多个校准时间段相对应的多个高校准二进制计数。
10.一种计算机实现的方法,包括:
在用于可编程逻辑器件(PLD)的设计中检测串行数据流输入和解串器块,所述解串器块被配置为生成与由所述串行数据流输入提供的串行数据流的有效载荷部分相对应的恢复后的数据信号;以及
将所述设计合成为多个PLD组件,其中所述多个PLD组件被配置为实现:
用于所述设计中的所述解串器块的格雷码振荡器,其中
所述格雷码振荡器被配置为测量由所述串行数据流输入提供的所述串行数据流的有效载荷部分中的信号转变之间的有效载荷时间段;以及
用于所述设计中的所述解串器块的至少一个比较器,其中所述至少一个比较器被配置为将由所述格雷码振荡器提供的所测量的有效载荷时间段与一个或多个校准时间段进行比较,以生成所述恢复后的数据信号。
11.根据权利要求10所述的计算机实现的方法,其中所述多个PLD组件还被配置为实现:
用于所述设计中的所述解串器块的格雷码转换器,其中所述格雷码转换器被配置为近似地在所述信号转变处,将由所述格雷码振荡器提供的格雷码计数转换为多个二进制计数,每个二进制计数对应于所述有效载荷时间段中的一个有效载荷时间段。
12.根据权利要求10所述的计算机实现的方法,其中所述多个PLD组件还被配置为实现:
用于所述设计中的所述解串器块的至少一个存储寄存器,其中所述至少一个存储寄存器被配置为存储与所述一个或多个校准时间段相对应的一个或多个校准二进制计数,并且将所述一个或多个校准二进制计数提供给所述至少一个比较器。
13.根据权利要求10所述的计算机实现的方法,其中所述串行数据流的所述有效载荷部分包括经编码的数据流,以及所述恢复后的数据信号包括对应的编码数据信号,其中所述多个PLD组件还被配置为实现:
用于所述设计中的所述解串器块的解码器,其中所述解码器被配置为将所述恢复后的数据信号解码为8位经编码的数据信号。
14.根据权利要求10所述的计算机实现的方法,其中所述多个PLD组件还被配置为实现:
用于所述设计中的所述解串器块的数据恢复电路,包括所述至少一个比较器,其中所述数据恢复电路被配置为接收所述一个或多个校准时间段和所测量的有效载荷时间段,并且生成与所述串行数据流相对应的恢复后的数据信号,并且其中所述恢复后的数据信号至少部分地基于所述至少一个比较器的输出状态的变化。
15.根据权利要求10所述的计算机实现的方法,其中所述多个PLD组件还被配置为实现:
用于所述设计中的所述解串器块的校准信号发生器,其中所述校准信号发生器被配置为检测所述串行数据流的前导码中的训练部分、和/或至少部分地基于所述串行数据流的所述训练部分来生成一个或多个校准串行数据流。
16.根据权利要求10所述的计算机实现的方法,其中所述格雷码振荡器包括第一格雷码振荡器,并且其中所述多个PLD组件还被配置为实现:
用于所述设计中的所述解串器块的第二格雷码振荡器,其中所述第一格雷码振荡器被配置为在所述串行数据流的所述有效载荷部分中的负信号转变与相邻正信号转变之间、从零递增第一格雷码计数,并且所述第二格雷码振荡器被配置为在所述串行数据流的所述有效载荷部分中的正信号转变与相邻负信号转变之间、从零递增第二格雷码计数。
17.根据权利要求16所述的计算机实现的方法,其中:
所述第一格雷码振荡器和/或所述第二格雷码振荡器每个完全在所述PLD的可编程逻辑块内被实现。
18.根据权利要求10所述的计算机实现的方法,还包括:
接收所述设计;
在所述多个PLD组件之间布线连接件;
生成配置数据,以根据所述多个PLD组件和用于所述设计的布线来配置所述PLD的物理组件;以及
利用所述配置数据来编程所述PLD。
19.一种包括配置数据的PLD,所述PLD包括根据权利要求10所述的计算机实现的方法合成的所述多个PLD组件。
20.一种用于执行根据权利要求10所述的计算机实现的方法的系统,所述系统包括:
处理器;以及
存储器,被适配为存储多个计算机可读指令,所述多个计算机可读指令在由所述处理器执行时被适配为引起所述系统执行根据权利要求10所述的计算机实现的方法。
21.一种系统,包括:
格雷码振荡器,被配置为在串行数据流中的信号转变之间递增格雷码计数;
格雷码转换器,被配置为近似地在所述串行数据流中的信号转变处,将所述格雷码计数转换为多个二进制计数,每个二进制计数对应于所述串行数据流中的一个或多个信号转变之间的时间段;以及
至少一个存储寄存器,被配置为存储所述多个二进制计数的相应的对应一个校准二进制计数,并且提供所述至少一个校准二进制计数,以用于与所述多个二进制计数的有效载荷二进制计数进行比较。
22.根据权利要求21所述的系统,还包括:
至少一个比较器,被配置为将所述有效载荷二进制计数与所述至少一个校准二进制计数和/或数据模式二进制计数进行比较,并且当所比较的有效载荷二进制计数超过所述至少一个校准二进制计数和/或数据模式二进制计数时,改变所述至少一个比较器的输出状态。
23.根据权利要求22所述的系统,还包括:
数据恢复电路,包括所述至少一个比较器,其中所述数据恢复电路被配置为接收所述至少一个校准二进制计数和/或数据模式二进制计数和所述有效载荷二进制计数,并且生成与所述串行数据流相对应的恢复后的数据信号,并且其中所述恢复后的数据信号至少部分地基于所述至少一个比较器的所述输出状态的所述改变。
24.根据权利要求23所述的系统,其中所述串行数据流包括经编码的数据流,并且所述恢复后的数据信号包括对应的经编码的数据信号,所述系统还包括:
解码器电路,被配置为从所述数据恢复电路接收所述恢复后的数据信号,并且将所述恢复后的数据信号解码为8位经编码的数据信号;
其中所述格雷码振荡器、所述格雷码转换器、所述至少一个存储寄存器、所述至少一个比较器、所述数据恢复电路和所述解码器电路中的一个或多个完全在可编程逻辑器件内被实现。
25.根据权利要求22所述的系统,还包括:
时钟恢复电路,包括所述至少一个比较器,其中所述时钟恢复电路被配置为接收所述至少一个校准二进制计数和所述有效载荷二进制计数,并且生成与所述串行数据流相对应的恢复后的时钟信号,并且其中所述恢复后的时钟信号至少部分地基于所述至少一个比较器的所述输出状态的所述改变。
26.根据权利要求25所述的系统,还包括:
数据恢复电路,被配置为接收所述恢复后的时钟信号和所述串行数据流,并且至少部分地基于所述恢复后的时钟信号和所述串行数据流来生成与所述串行数据流相对应的恢复后的数据信号;
其中所述格雷码振荡器、所述格雷码转换器、所述至少一个存储寄存器、所述至少一个比较器、所述时钟恢复电路和所述数据恢复电路中的一个或多个完全在可编程逻辑器件内被实现。
27.根据权利要求21所述的系统,其中:
所述格雷码振荡器完全在可编程逻辑器件的可编程逻辑块内被实现。
28.根据权利要求21所述的系统,还包括:
校准信号发生器,被配置为接收原始串行数据流,并且在所述校准信号发生器被使能的同时生成校准串行数据流作为串行数据流,其中:
所述校准串行数据流包括与所述原始串行数据流的时钟周期的整数倍相对应的校准时段,以及
所述至少一个存储寄存器中的所述至少一个校准二进制计数对应于所述校准时段的大约一半。
29.根据权利要求21所述的系统,其中:
所述格雷码振荡器包括第一格雷码振荡器,所述第一格雷码振荡器被配置为在所述串行数据流中的负信号转变与相邻正信号转变之间、从零递增第一格雷码计数;
所述系统还包括第二格雷码振荡器,所述第二格雷码振荡器被配置为在所述串行数据流中的正信号转变与相邻负信号转变之间、从零递增第二格雷码计数;
所述格雷码转换器被配置为:
近似地在所述相邻正信号转变处,将所述第一格雷码计数转换为多个低二进制计数,每个低二进制计数对应于所述负信号转变与所述相邻正信号转变之间的时间段,以及
近似地在所述相邻负信号转变处,将所述第二格雷码计数转换成多个高二进制计数,每个高二进制计数对应于所述正信号转变与所述相邻负信号转变之间的时间段;以及
所述至少一个存储寄存器包括被配置为存储所述多个低二进制计数的对应的第一校准二进制计数的第一存储寄存器、和被配置为存储所述多个高二进制计数的对应的第二校准二进制计数的第二存储寄存器。
30.根据权利要求29所述的系统,还包括:
采样定时电路系统,被耦合在所述第一格雷码振荡器、所述第二格雷码振荡器、所述格雷码转换器和/或所述第一存储寄存器和所述第二存储寄存器之间,其中所述采样定时电路装置被配置为:
当所述第二格雷码振荡器达到第一最小格雷码计数时,将所述第一格雷码振荡器重置为零;
当所述第二格雷码振荡器达到第二最小格雷码计数时,触发所述第一存储寄存器存储所述第一校准二进制计数;
当所述第一格雷码振荡器达到第三最小格雷码计数时,将所述第二格雷码振荡器重置为零;和/或
当所述第一格雷码振荡器达到第四最小格雷码计数时,触发所述第二存储寄存器存储所述第二校准二进制计数。
31.根据权利要求29所述的系统,其中:
所述第一格雷码振荡器和所述第二格雷码振荡器每个完全在可编程逻辑器件的可编程逻辑块内被实现。
32.一种方法,包括:
通过格雷码振荡器,在串行数据流中的信号转变之间递增格雷码计数;
近似地在所述串行数据流中的信号转变处,将所述格雷码计数转换为多个二进制计数,每个二进制计数对应于所述串行数据流中的一个或多个信号转变之间的时间段;
将所述多个二进制计数的至少一个校准二进制计数存储在对应的至少一个存储寄存器中;以及
提供所述至少一个校准二进制计数,以用于与多个二进制计数的有效载荷二进制计数进行比较。
33.根据权利要求32所述的方法,还包括:
将所述有效载荷二进制计数与所述至少一个校准二进制计数进行比较;以及
当所比较的有效载荷二进制计数超过所述至少一个校准二进制计数时,改变至少一个比较器的输出状态。
34.根据权利要求33所述的方法,还包括:
生成与所述串行数据流相对应的恢复后的数据信号,其中所述恢复后的数据信号至少部分地基于所述至少一个比较器的所述输出状态的所述改变。
35.根据权利要求34所述的方法,其中所述串行数据流包括经编码的数据流,并且所述恢复后的数据信号包括对应的经编码的数据信号,所述方法还包括:
将所述恢复后的数据信号解码成8位经编码的数据信号。
36.根据权利要求33所述的方法,还包括:
生成与所述串行数据流相对应的恢复后的时钟信号,其中所述恢复后的时钟信号至少部分地基于所述至少一个比较器的所述输出状态的所述改变。
37.根据权利要求36所述的方法,还包括:
至少部分地基于所述恢复后的时钟信号和所述串行数据流,来生成与所述串行数据流相对应的恢复后的数据信号。
38.根据权利要求32所述的方法,还包括:
接收原始串行数据流;以及
生成校准串行数据流作为所述串行数据流,其中所述校准串行数据流包括与所述原始串行数据流的时钟周期的整数倍相对应的校准时段,并且其中所述至少一个存储寄存器中的所述至少一个校准二进制计数对应于所述校准串行数据流的校准时段的大约一半。
39.根据权利要求32所述的方法,其中所述递增包括:通过第一格雷码振荡器,在所述串行数据流中的负信号转变与相邻正信号转变之间、从零递增第一格雷码计数,并且通过第二格雷码振荡器,在所述串行数据流中的正信号转变与相邻负信号转变之间、从零递增第二格雷码计数,所述方法还包括:
近似地在所述相邻正信号转变处,将所述第一格雷码计数转换为多个低二进制计数,每个低二进制计数对应于所述负信号转变与所述相邻正信号转变之间的时间段,
近似地在所述相邻负信号转变处,将所述第二格雷码计数转换为多个高二进制计数,每个高二进制计数对应于所述正信号转变与所述相邻负信号转变之间的时间段;以及
将所述多个低二进制计数的第一校准二进制计数存储在第一存储寄存器中,并且将所述多个高二进制计数的第二校准二进制计数存储在第二存储寄存器中。
40.根据权利要求39所述的方法,还包括:
当所述第二格雷码振荡器达到第一最小格雷码计数时,将所述第一格雷码振荡器重置为零;
当所述第二格雷码振荡器达到第二最小格雷码计数时,触发所述第一存储寄存器存储所述第一校准二进制计数;
当所述第一格雷码振荡器达到第三最小格雷码计数时,将所述第二格雷码振荡器重置为零;和/或
当所述第一格雷码振荡器达到第四最小格雷码计数时,触发所述第二存储寄存器存储所述第二校准二进制计数。
CN201780067374.7A 2016-09-08 2017-09-08 计算机实现的方法和执行计算机实现的方法的系统 Active CN109891843B (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201662385247P 2016-09-08 2016-09-08
US62/385,247 2016-09-08
US201662385437P 2016-09-09 2016-09-09
US201662385359P 2016-09-09 2016-09-09
US62/385,437 2016-09-09
US62/385,359 2016-09-09
US201762452213P 2017-01-30 2017-01-30
US62/452,213 2017-01-30
PCT/US2017/050848 WO2018049280A1 (en) 2016-09-08 2017-09-08 Clock recovery and data recovery for programmable logic devices

Publications (2)

Publication Number Publication Date
CN109891843A true CN109891843A (zh) 2019-06-14
CN109891843B CN109891843B (zh) 2022-03-08

Family

ID=61281699

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780067374.7A Active CN109891843B (zh) 2016-09-08 2017-09-08 计算机实现的方法和执行计算机实现的方法的系统

Country Status (4)

Country Link
US (2) US10326627B2 (zh)
EP (1) EP3510738B1 (zh)
CN (1) CN109891843B (zh)
WO (1) WO2018049280A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581144A (zh) * 2020-03-24 2020-08-25 惠州市德赛西威智能交通技术研究院有限公司 一种车载摄像头热插入自恢复方法、装置及存储介质
CN115428340A (zh) * 2019-12-09 2022-12-02 美国莱迪思半导体公司 用于可编程逻辑器件的输入/输出总线保护系统和方法
CN117254872A (zh) * 2023-11-17 2023-12-19 江苏信而泰智能装备有限公司 一种高精度时间戳的获取方法、系统、设备及存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6449518B2 (ja) * 2015-07-20 2019-01-09 ラティス セミコンダクタ コーポレーションLattice Semiconductor Corporation 低速バスタイムスタンプの方法及び回路
CN113110278B (zh) * 2021-04-13 2022-05-27 珠海格力智能装备有限公司 信息交互方法、装置、存储介质及处理器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030212930A1 (en) * 2000-03-14 2003-11-13 Altera Corporation Clock data recovery circuitry associated with programmable logic device circuitry
US20070054643A1 (en) * 2002-11-21 2007-03-08 Stefan Kraegeloh Receiver and method for operating a receiver
CN101267292A (zh) * 2007-03-16 2008-09-17 株式会社理光 时钟和数据恢复电路以及包括其的通信设备
CN101657966A (zh) * 2007-03-20 2010-02-24 株式会社爱德万测试 时钟数据恢复电路、方法及测试装置
CN102820885A (zh) * 2012-07-13 2012-12-12 电子科技大学 一种时钟恢复控制器
CN103490775A (zh) * 2013-09-03 2014-01-01 电子科技大学 基于双环结构的时钟数据恢复控制器

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4513427A (en) * 1982-08-30 1985-04-23 Xerox Corporation Data and clock recovery system for data communication controller
US4817432A (en) * 1985-09-27 1989-04-04 Design Team Partners Digital ultrasonic instrument for ophthalmic use
US5015970A (en) * 1990-02-15 1991-05-14 Advanced Micro Devices, Inc. Clock recovery phase lock loop having digitally range limited operating window
US5301196A (en) * 1992-03-16 1994-04-05 International Business Machines Corporation Half-speed clock recovery and demultiplexer circuit
US5838749A (en) * 1995-06-05 1998-11-17 Broadband Communications Products, Inc. Method and apparatus for extracting an embedded clock from a digital data signal
US5671259A (en) * 1995-08-24 1997-09-23 Northern Telecom Limited Clock recovery circuit
US5987085A (en) * 1997-03-26 1999-11-16 Lsi Logic Coporation Clock recovery circuit
US6211741B1 (en) * 1998-10-16 2001-04-03 Cypress Semiconductor Corp. Clock and data recovery PLL based on parallel architecture
US6157231A (en) * 1999-03-19 2000-12-05 Credence System Corporation Delay stabilization system for an integrated circuit
CA2293173A1 (en) * 1999-12-29 2001-06-29 Nortel Networks Corporation Agile phase noise filter using vcxo and frequency synthesis
CA2327906A1 (en) * 2000-12-08 2002-06-08 Nortel Networks Limited Apparatus and method for attaching a data sub-channel to a digital payload
US6650140B2 (en) * 2001-03-19 2003-11-18 Altera Corporation Programmable logic device with high speed serial interface circuitry
US20030025957A1 (en) * 2001-07-24 2003-02-06 Anthony Jayakumar Low cost, all electronic and unobtrusive method of implementing a wavelength supervisory channel for the control and management of individual and multiple wavelengths in an optical communication system
US6507294B1 (en) * 2002-01-10 2003-01-14 Applied Micro Circuits Corporation System and method for measuring pseudorandom NRZ data stream rates
JP4158465B2 (ja) * 2002-09-10 2008-10-01 日本電気株式会社 クロック再生装置、および、クロック再生装置を用いた電子機器
CN1802810B (zh) * 2003-03-04 2010-09-22 阿尔特拉公司 时钟与数据恢复方法和装置
US6894530B1 (en) * 2003-04-28 2005-05-17 Lattice Semiconductor Corporation Programmable and fixed logic circuitry for high-speed interfaces
US7352835B1 (en) * 2003-09-22 2008-04-01 Altera Corporation Clock data recovery circuitry with dynamic support for changing data rates and a dynamically adjustable PPM detector
US7433442B2 (en) * 2004-09-23 2008-10-07 Standard Microsystems Corporation Linear half-rate clock and data recovery (CDR) circuit
US7840887B2 (en) 2006-08-25 2010-11-23 Freescale Semiconductor, Inc. Data stream processing method and system
US8831140B2 (en) * 2007-03-16 2014-09-09 Altera Corporation Protocol-agnostic automatic rate negotiation for high-speed serial interface in a programmable logic device
US7956695B1 (en) 2007-06-12 2011-06-07 Altera Corporation High-frequency low-gain ring VCO for clock-data recovery in high-speed serial interface of a programmable logic device
US20090180783A1 (en) * 2008-01-11 2009-07-16 Tellabs Petaluma, Inc. Method, network, apparatus and computer program for using leaky counters in clock and data recovery circuits
US8351559B1 (en) * 2010-04-13 2013-01-08 Smsc Holdings S.A.R.L. Sample time correction for multiphase clocks
US8798223B2 (en) * 2010-12-23 2014-08-05 Ashish K. Choudhury Clock and data recovery unit without an external reference clock
US9432178B2 (en) * 2014-03-24 2016-08-30 Mediatek Inc. Clock and data recovery circuit using an injection locked oscillator
US9509319B1 (en) * 2016-04-26 2016-11-29 Silab Tech Pvt. Ltd. Clock and data recovery circuit
US10027332B1 (en) * 2017-08-07 2018-07-17 Pericom Semiconductor Corporation Referenceless clock and data recovery circuits

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030212930A1 (en) * 2000-03-14 2003-11-13 Altera Corporation Clock data recovery circuitry associated with programmable logic device circuitry
US20070054643A1 (en) * 2002-11-21 2007-03-08 Stefan Kraegeloh Receiver and method for operating a receiver
CN101267292A (zh) * 2007-03-16 2008-09-17 株式会社理光 时钟和数据恢复电路以及包括其的通信设备
CN101657966A (zh) * 2007-03-20 2010-02-24 株式会社爱德万测试 时钟数据恢复电路、方法及测试装置
CN102820885A (zh) * 2012-07-13 2012-12-12 电子科技大学 一种时钟恢复控制器
CN103490775A (zh) * 2013-09-03 2014-01-01 电子科技大学 基于双环结构的时钟数据恢复控制器

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115428340A (zh) * 2019-12-09 2022-12-02 美国莱迪思半导体公司 用于可编程逻辑器件的输入/输出总线保护系统和方法
CN111581144A (zh) * 2020-03-24 2020-08-25 惠州市德赛西威智能交通技术研究院有限公司 一种车载摄像头热插入自恢复方法、装置及存储介质
CN117254872A (zh) * 2023-11-17 2023-12-19 江苏信而泰智能装备有限公司 一种高精度时间戳的获取方法、系统、设备及存储介质
CN117254872B (zh) * 2023-11-17 2024-04-05 江苏信而泰智能装备有限公司 一种高精度时间戳的获取方法、系统、设备及存储介质

Also Published As

Publication number Publication date
EP3510738A4 (en) 2020-04-08
US10326627B2 (en) 2019-06-18
EP3510738B1 (en) 2021-08-25
CN109891843B (zh) 2022-03-08
US20180069736A1 (en) 2018-03-08
US10148472B2 (en) 2018-12-04
US20180069735A1 (en) 2018-03-08
WO2018049280A1 (en) 2018-03-15
EP3510738A1 (en) 2019-07-17

Similar Documents

Publication Publication Date Title
CN109891843A (zh) 用于可编程逻辑器件的时钟恢复和数据恢复
Nanda et al. Universal asynchronous receiver and transmitter (uart)
Yakovlev et al. Advances in asynchronous logic: From principles to GALS & NoC, recent industry applications, and commercial CAD tools
CN102970013B (zh) 基于扫描链的芯片内部寄存器复位方法及复位控制装置
WO2009102626A1 (en) Synchronous to asynchronous logic conversion
EP1506503A2 (en) Method and apparatus for optimizing distributed multiplexed bus interconnects
CN103336731A (zh) 用于jtag驱动的远程扫描的方法和装置
US9639416B1 (en) CRC circuits with extended cycles
Lim et al. A multi-lane MIPI CSI receiver for mobile camera applications
EP1116087B1 (en) Synchronous polyphase clock distribution system
Campobello et al. GALS networks on chip: a new solution for asynchronous delay-insensitive links
WO2000014875A1 (en) Circuit for distribution of clock signals using muller elements
US8234607B2 (en) Token enhanced asynchronous conversion of synchonous circuits
Jusoh et al. An FPGA implementation of shift converter block technique on FIFO for RS232 to universal serial bus converter
Jusoh et al. An FPGA implementation of shift converter block technique on FIFO for UART
Jackson et al. Asynchronous embryonics
CN102938642A (zh) 基于扫描链的芯片内部寄存器的复位方法
Zhou Investigation of asynchronous pipeline circuits based on bundled-data encoding: Implementation styles, behavioral modeling, and timing analysis
Calazans et al. Asynchronous Circuit Principles and a Survey of Associated Design Tools
Onizawa et al. High-throughput bit-serial LDPC decoder LSI based on multiple-valued asynchronous interleaving
Maniraj Analysis of asynchronous routers for network-on-chip applications
CN207720100U (zh) 一种cpld双边沿触发器电路
Nigussie et al. Boosting performance of self-timed delay-insensitive bit parallel on-chip interconnects
CN101860359A (zh) 时钟产生系统和时钟分频模块
Onizawa et al. High-throughput protocol converter based on an independent encoding/decoding scheme for asynchronous Network-on-Chip

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant