CN118131854A - 时钟插入延迟系统和方法 - Google Patents
时钟插入延迟系统和方法 Download PDFInfo
- Publication number
- CN118131854A CN118131854A CN202311633970.0A CN202311633970A CN118131854A CN 118131854 A CN118131854 A CN 118131854A CN 202311633970 A CN202311633970 A CN 202311633970A CN 118131854 A CN118131854 A CN 118131854A
- Authority
- CN
- China
- Prior art keywords
- block
- clock
- delay
- clock signal
- data signal
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000003780 insertion Methods 0.000 title abstract description 4
- 230000037431 insertion Effects 0.000 title abstract description 4
- 238000012360 testing method Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 10
- 230000015654 memory Effects 0.000 claims description 9
- 238000013461 design Methods 0.000 description 20
- 230000001934 delay Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000013481 data capture Methods 0.000 description 2
- 229910003460 diamond Inorganic materials 0.000 description 2
- 239000010432 diamond Substances 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000012086 standard solution Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
Abstract
本公开涉及一种时钟插入延迟系统和方法,其中提供各种技术来有效地同步可编程逻辑器件(PLD)中的时钟和数据信号。在一个示例中,一种方法包括:配置PLD的知识产权(IP)块以在IP块的第一组件处接收第一时钟信号和第一数据信号;确定在第一输入和第一组件之间与第一时钟信号相关联的延迟;配置可编程逻辑单元(PLC)以接收第二时钟信号并将第一数据信号输出到IP块;确定用以在IP块的第一组件处同步第一时钟信号和第一数据信号的延迟时段;以及配置可调延迟元件以将延迟时段施加到第二时钟信号,来在IP块的第一组件处同步第一时钟信号和第一数据信号。还提供了另外的系统和方法。
Description
技术领域
本公开涉及可编程逻辑器件(PLD),诸如现场可编程门阵列(FPGA),并且具体地,例如涉及用于控制时钟信号以防止可编程逻辑器件中的保持时间违规的系统和方法,该可编程逻辑器件包括具有时钟插入延迟不同的多个类型的电路块。
背景技术
可编程逻辑器件(PLD)(例如,现场可编程门阵列(FPGA),复杂可编程逻辑器件(CPLD),片上现场可编程系统(FPSC),或其他类型的可编程器件)可以被配置有各种用户设计以实现所需功能性。通常,用户设计被合成且映射到可配置资源(例如,可编程逻辑门,查找表(LUT),嵌入式硬件,或其他类型的资源)和特定PLD中可用的互连中。然后可以确定针对合成和映射的用户设计的物理放置和路由,以生成用于特定PLD的配置数据。
PLD中的时钟和数据信号的定时受PLD的面积、处理操作和各种PLD组件的复杂性的影响,该复杂性可能导致诸如PLD组件之间的延迟或定时失配的失配。用于消除时钟信道和数据信道之间的失配的各种方法包括布局技术、提供门延迟以及修整。然而,这些方法常常增加延迟元件以减慢处理,这进一步增加了成本和PLD面积。鉴于上述内容,需要用于PLD的改进的时钟技术,其可以减少和/或控制失配并提供改进的偏移控制。
发明内容
提供各种技术来有效地使可编程逻辑器件(PLD)中的时钟和数据信号同步。在一个示例中,同步过程包括:配置PLD的知识产权(IP)块,以在IP块的第一组件处接收第一时钟信号和第一数据信号;确定在第一输入和第一组件之间与第一时钟信号相关联的延迟;配置可编程逻辑单元(PLC),以接收第二时钟信号并且将第一数据信号输出到IP块;确定用以在IP块的第一组件处同步第一时钟信号和第一数据信号的延迟时段;以及配置PLC的可调延迟元件,以将延迟时段施加到第二时钟信号,来在IP块的第一组件处同步第一时钟信号和第一数据信号。
在另一示例中,可编程逻辑器件(PLD)包括:知识产权(IP)块,被配置为在第一组件处接收第一时钟信号和第一数据信号;可编程逻辑单元(PLC),被配置为接收第二时钟信号并且将第一数据信号输出到IP块;以及可调延迟元件,被配置为将延迟时段施加到第二时钟信号,以在IP块的第一组件处同步第一时钟信号和第一数据信号。
附图说明
图1图示了根据本公开的实现的可编程逻辑器件(PLD)的框图。
图2图示了根据本公开的实现的用于PLD的逻辑块的框图。
图3图示了根据本发明的实现的用于示例PLD的元件的时钟延迟。
图4图示了根据本公开的实现的用于在PLC与IP块之间寻址时钟延迟的示例实现。
图5A和图5B图示了根据本公开的实现的使用添加的数据延迟元件的实现和在没有添加的数据延迟元件的情况下使用时钟偏移的实现的示例的时序图。
图6图示了用于实现本公开的时钟延迟解决方案的示例过程。
图7图示了根据本公开的实现的示例时钟解决方案。
图8图示了根据本公开的实现的示例IP块。
图9图示了根据本公开的实现的包括测试模式的示例时钟解决方案。
通过参考下面的详细描述,可以最好地理解本公开的实现及其优势。应当理解,相同的附图标记用于标识一个或多个附图中图示的相同元件。
具体实施方式
本公开涉及用于以避免在PLD的各种组件中引入延迟元件的方式改进时钟信号与数据信号之间的同步的技术。在各种实现中,被提供给PLD的低复杂度组件的时钟信号可以以补偿关联到延迟的高复杂度组件的方式被有意地延迟。
例如,PLD的低复杂度组件(例如,可编程逻辑单元(PLC)和/或其他)可以在接收到时钟信号的时间与准备向其写入或向另一组件提供数据信号的时间之间表现出相对短的延迟。相反,高复杂度组件(例如,知识产权(IP)硬件块,诸如嵌入式RAM块(EBR)块,数字信号处理(DSP)块,可编程输入/输出(PIO)块,和/或其他)可以在接收到时钟信号的时间与准备向其写入或向另一组件提供数据信号的时间之间表现出相对长的延迟。
通常,延迟上的这种差异可能需要将硬件延迟元件添加到高复杂度组件的数据输入路径。该延迟元件可以使通过数据输入路径从低复杂度组件接收的数据信号延迟,直到时钟信号已经传播通过高复杂度组件之后并且在其相关联的保持时间已经过去之后。通过以这种方式使高复杂度组件中的数据信号延迟,可以将数据信号可靠地写入高复杂度组件,而不管与高复杂度组件相关联的固有时钟信号传播延迟。
这种常规方法需要在分布于整个PLD的众多组件中物理地实现硬件延迟元件。这可能导致在功耗、所使用的物理面积和附加复杂性上的大量成本。因此,通过如本公开中所阐述的有意地使被提供给PLD的低复杂度组件的时钟信号延迟,可以可靠地同步时钟信号和数据信号(例如,以满足各种设置时间和保持时间要求),而不需要与常规方法相关联的附加硬件延迟元件。
现在参考附图,图1图示了根据本公开的实现的PLD 100的框图。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的逻辑或基于逻辑门阵列的逻辑)。附加的I/O功能性可以由串行器/解串器(SERDES)块150和物理编码子层(PCS)块152提供。PLD 100还可以包括硬知识产权核心(IP)块160,以提供附加功能性(例如,在硬件中提供的基本上预定的功能性,其可以用比逻辑块104更少的编程来配置)。
PLD 100还可以适当地包括存储器块106(例如,EEPROM块,SRAM块,和/或闪存)、时钟相关电路系统108(例如,时钟源,PLL电路,和/或DLL电路)、和/或各种路由资源180(例如,互连和适当的开关逻辑,以提供用于在整个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的信息传送。
应当理解,各种元件的数目和布置不是限制性的,并且可以取决于所期望的应用。例如,对于所期望的应用或设计规范(例如,对于所选择的可编程器件的类型)可能不需要各种元件。
此外,应当理解,为了清楚起见,以框的形式图示了元件,并且各种元件通常分布在整个PLD 100中,诸如在逻辑块104、硬IP块160和路由资源(例如,图2的路由资源180)之中以及在逻辑块104、硬IP块160和路由资源(例如,图2的路由资源180)之间,以执行它们的常规功能(例如,存储配置PLD 100的配置数据或在PLD 100内提供互连结构)。还应当理解,本文中所公开的各种实现不限于可编程逻辑器件(诸如PLD 100),并且可以应用于各种其他类型的可编程器件,如本领域技术人员所理解的。
外部系统130可以用于创建期望的用户配置或PLD 100的设计,并且生成对应的配置数据以编程(例如,配置)PLD 100。例如,系统130可以向PLD 100的一个或多个I/O块102、SERDES块150、和/或其他部分提供这种配置数据。结果,可编程逻辑块104、各种路由资源、以及PLD 100的任何其他适当组件可以被配置为根据用户指定的应用来操作。
在所图示的实现中,系统130被实现为计算机系统。在这方面,系统130包括例如一个或多个处理器132,处理器132可以被配置为执行在一个或多个存储器134中提供的和/或以非瞬态形式被存储在一个或多个非瞬态机器可读介质136(例如,其可以在系统130的内部或外部)中的指令,诸如软件指令。例如,在一些实现中,系统130可以运行PLD配置软件,诸如可以从莱迪思半导体公司(Lattice Semiconductor Corporation)获得的莱迪思钻石系统设计器软件(Lattice Diamond System Planner software),以允许用户创建期望的配置并生成对应的配置数据来编程PLD 100。
系统130还包括例如用户接口135(例如,屏幕或显示器)以及一个或多个用户输入设备137(例如键盘,鼠标,跟踪球,触摸屏和/或其他设备)以准备PLD 100的期望配置,该用户接口135用于向用户显示信息,该用户输入设备137用于接收用户命令或设计入口。
图2图示了根据本公开的实现的PLD 100的逻辑块104的框图。如上所述,PLD 100包括多个逻辑块104,该逻辑块104包括用于提供逻辑和算术功能性的各种组件。
在图2所示的示例实现中,逻辑块104包括多个逻辑单元200,该逻辑单元200可以使用路由资源180在逻辑块104内部和/或在外部互连。例如,每个逻辑单元200可以包括各种组件,诸如:查找表(LUT)202,模式逻辑电路204,寄存器206(例如,触发器或锁存器),以及各种可编程多路复用器(例如,图中用于控制信号的可编程多路复用器210、212和214)。其他多路复用器可以是在模式逻辑中,以如由信号M控制的在一个4-LUT输出和不同4-LUT的输出之间进行动态选择。因此,针对逻辑单元200和/或在逻辑单元200之间选择期望的信号路径。在该示例中,LUT 202接受四个输入220A至220D,这使得它成为一个四输入LUT(可以缩写为“4-LUT”或“LUT4”),该LUT可以由PLD 100的配置数据编程以实现具有四个输入或更少的任何适当的逻辑操作。模式逻辑204可以包括各种逻辑元件和/或诸如输入220E的附加输入,以支持如本文所述的各种模式的功能。在其他示例中,LUT 202可以是具有用于PLD的特定实现的任何其他合适数目的输入的任何其他合适大小的LUT。在一些实现中,可以针对不同的逻辑块104和/或不同的逻辑单元200提供不同大小的LUT。
在一些实现中,来自LUT 202和/或模式逻辑204的输出信号222可以通过寄存器206,以提供逻辑单元200的输出信号233。在各种实现中,来自LUT 202和/或模式逻辑204的输出信号223可以被直接传递到输出223,如所示出的。取决于多路复用器210至214和/或模式逻辑204的配置,输出信号222可以根据控制信号230被临时存储(例如锁存)在锁存器(或FF)206中。在一些实现中,用于PLD 100的配置数据可以将逻辑单元200的输出223和/或233配置为作为另一逻辑单元200的一个或多个输入(例如,在另一逻辑块或同一逻辑块中)以分级或级联布置(例如,包括多级)来提供,以配置不能在单个逻辑单元200中实现的逻辑操作(例如,具有太多输入而不能由单个LUT 202实现的逻辑操作)。此外,逻辑单元200可以利用多个输出和/或互连来实现,以便于可选择的操作模式。
模式逻辑电路204可以用于PLD 100的某些配置以有效地实现算术运算,诸如加法器、减法器、比较器、计数器、或者其他运算,来有效地形成某些扩展逻辑运算(例如,较高阶LUT,对多位数据起作用),来有效地实现相对小的RAM,和/或来允许在逻辑、算术、扩展逻辑、和/或其他可选操作模式之间进行选择。在这方面,跨多个逻辑单元202的模式逻辑电路204可以链接在一起以在相邻的逻辑单元202之间传递进位输入信号205和进位输出信号207、和/或其他信号(例如,输出信号222),如本文所述。在图2的示例中,进位输入信号205可以例如直接传递到模式逻辑电路204,或者可以通过配置一个或多个可编程多路复用器来传递到模式逻辑电路204,如本文中所描述的。在一些实现中,模式逻辑电路204可以跨多个逻辑块104而链接。
图2所示的逻辑单元200仅是示例,并且根据不同实现的逻辑单元200可以包括PLD组件的不同组合和布置。此外,虽然图2图示了具有八个逻辑单元200的逻辑块104,但是根据其他实现的逻辑块104可以包括更少的逻辑单元200或更多的逻辑单元200。逻辑块104的每个逻辑单元200可以用于实现由PLD 100实现的用户设计的部分。在这方面,PLD 100可以包括许多逻辑块104,每个逻辑块104可以包括逻辑单元200和/或用于共同实现用户设计的其他组件。
当PLD 100被配置为实现用户设计时,用户设计的部分可以被调整为占用更少的逻辑单元200、更少的逻辑块104、和/或在路由资源180上具有更少的负担。根据各种实现的这种调整可以标识要在占用逻辑单元200和/或逻辑块104的多个实现的布置中实现的某些逻辑、算术和/或扩展逻辑运算。优化过程可以路由与算术/逻辑运算相关联的各种信号连接,使得逻辑、波纹算术或扩展逻辑运算可以被实现到一个或多个逻辑单元200和/或逻辑块104中以与先前算术/逻辑运算相关联。PLD中的时钟信号、数据以及其他信号的同步是系统设计和性能的重要方面。许多数据信号将基于处理延迟、信号路径长度以及其他设计方面和系统约束在不同时间到达电路组件。这些变化会限制设计的性能。
如前面关于图1至图2所论述的,PLD被设计为使用各种互连的元件来执行所需功能,该互连的元件可以包括存储器块(例如,嵌入式块存储器(EBR))、时钟分配网络(例如,时钟树)、特殊功能块(例如,数字信号处理(DSP)块)、路由资源、逻辑块(例如,可编程逻辑单元(PLC))、以及其他元件。各种元件/块具有不同的时钟和数据信号延迟(通常通过在数据输入路径中插入保持时间固定延迟来寻址)。
图3图示了用于示例PLD的元件的时钟延迟。所图示的PLD元件300包括全局时钟树310、PLC块320和EBR块330。应当理解,出于图示本文所描述的时钟延迟解决方案的目的,图3的元件是以高级呈现的,并且PLD将包括比所图示的更多和/或更少的元件。全局时钟树300将同步的时钟信号分配给PLD的各种元件/块(包括PLC块320和EBR块330)。可调延迟元件322和332可以用于使PLC行的输入处的时钟信号PLC_CLK与EBR行的输入处的时钟信号CIB_CLK同步。
在操作中,EBR块330通常比PLC块320更大(例如,更复杂),导致EBR块330中的时钟延迟更大。结果,可能发生PLC块320中的寄存信号到EBR块330的输入寄存器(例如,数据信号路径350)的保持时间违规。一种常规的方法是在EBR的所有数据和地址输入上添加延迟元件,这通常会减慢PLD的性能,并向PLD设计增加大量组件和面积,从而增加成本。EBR块330中的延迟可以在可能进一步降低性能的其他元件中产生附加延迟。例如,在EBR块330的输出被提供作为PLC块320的输入(例如,数据信号路径360)的实现中,EBR块中的较长时钟延迟推出Tco,Tco变为向PLC添加的设置延迟。
参考图4,图示了用于解决时钟延迟的示例实现。在该方法中,在PLC电平处或之前添加延迟,以使图3的PLC块320中的触发器与EBR块330触发器之间的相对定时均衡。
如图所示,可配置互连块(CIB)块440提供PLC块420与IP块430之间的接口。IP块430可以被实现为EBR块、DSP块、可编程输入/输出单元(PIC)、或者其他IP块。在各种实现中,CIB块440包括路由块,并且可以被配置为缓冲信号并生成用于其他块的控制信号。在所图示的实现中,CIB 440从时钟源(例如,时钟树310)接收时钟信号CIB_CLK,该时钟信号被路由通过ISB 442且进入时钟缓冲器444以用于到IP块430的输入(CLK_IP)。CIB 440还提供从PLC 420到IP块的数据路径,该数据路径将PLC输出路由通过ISB 446并进入输出缓冲器448以用于到IP块430的输入(DATA_IP)。
PLC 420从源时钟(诸如从时钟树310)接收时钟信号PLC_CLK。时钟信号PLC_CLK可以例如被可调延迟元件322延迟/偏移。PLC块420数据路径还包括输入开关块(ISB)422、具有相关联的块以输出延迟(由TCO 425表示)的缓冲器425、以及ISB 426。PLC 420数据路径中的附加固有延迟由1x延迟428表示。在各种实现中,可调延迟元件322补偿IP块420中的延迟,使得PLC输出DATA_IP与时钟信号CLK_IP同步地到达IP块430的缓冲器436(例如,寄存器,触发器等)。在一些实现中,通过将通过时钟缓冲器444(clkbuf)和IP块430的时钟信号延迟(由CLK延迟434表示)与PLC数据信号路径中的延迟(包括TCO 425、其他PLC 420延迟)(由1x延迟428表示)之间的差与在PLC 420输出和IP块430的输入缓冲器436之间的输出缓冲器448(outbuf)进行比较,来确定由可调延迟元件322施加的延迟时段。
图4的实现提供了优于常规方法的许多优势。在一种常规方法中,将人工延迟添加到IP块的所有数据线(可能显著增加PLD设计中的组件数目),从而增加所需的设计面积和成本。相反,如图3所示,可以使用单个可调延迟元件322(例如,在时钟树级)来同步多个PLC320和EBR 330。此外,通过从IP块430中去除延迟元件,IP块430不再被内部延迟减慢。这不仅导致更快的IP块430,而且还可以改善整个周期时间。例如,在该设计中,从PLC 420到IP块430的数据路径较短(例如,没有延迟元件),并且由于增加的时钟延迟,PLC 420针对从IP块430接收到的数据具有较短的等待时间(例如,如图3中的数据信号路径360所示)。
图5A和图5B图示了本公开中描述的不同实现的示例的时序图。图5A图示了具有被添加到数据信号路径的延迟元件的实现的时序图。如图所示,在接收到时钟信号之后,存在延迟,直到在IP块触发器处接收到来自PLC块的数据和来自CIB块的CLK信号。从PLC块接收到的数据被时钟延迟到输出延迟(TCO 425)、输出缓冲延迟(OB 448)以及附加数据路径延迟X1 428。所添加的延迟510(例如,来自IP块的数据线上的延迟组件)使数据的输出延迟,直到在IP块的触发器处接收到时钟信号(其被CIB缓冲器(CB)444和CLK延迟434延迟)之后。在常规系统中,将延迟组件添加到IP块的数据路径以保持数据,直到接收到时钟信号。在一些实现中,从IP块输出的数据可以由PLC块接收,以用于在下一个时钟周期中的处理。
图5B图示了使PLC时钟偏移(例如,通过图3和图4的可调延迟322)的实现的时序图。在该实现中,在IP块的数据信号路径或PLC块的数据信号路径中不需要附加的延迟元件。如图所示,PLC_clock被偏移了延迟时段520,以使数据与IP块的触发器处的时钟信号同步。在接收到CIB时钟信号之后,在PLC_CLK信号中存在延迟以考虑与时钟缓冲延迟、CLK延迟和IP块的保持容限延迟相关联的延迟。在一些实现中,从IP块输出的数据可以由PLC块接收,以用于在下一个时钟周期中的处理。在一些实现中,所添加的延迟可以通过在IP块中或在IP块处将时钟偏移延迟和延迟元件组合来实现。
图6图示了用于实现本公开的时钟延迟解决方案的示例过程600。在操作610中,完成IP块(例如,EBR,DSP,PIC等)的设计和布局和相关路由。在操作620中,到IP块的组件(例如,寄存器,触发器等)的时钟延迟根据最终IP块设计来计算。在操作630中,计算出从PLC块处的时钟信号输入到在IP块的组件(例如,与操作620中使用的组件相同的组件)处接收PLC数据信号的延迟。接下来,在操作640中,确定用于在IP组件处同步IP时钟信号和PLC数据信号的延迟时段。在一个实现中,延迟时段是计算出的IP时钟延迟(来自操作620)与PLC数据信号延迟(来自操作630)之间的差。在操作650中,施加延迟时段来使PLC时钟偏移和/或在PLC块处或之前配置可调延迟元件。在一个实现中,PLC时钟被数据时段偏移。在一些实现中,通过PLC时钟偏移与将延迟元件添加到PLC数据信号路径的组合来施加延迟时段。在一些实现中,PLD包括多个PLC和IP块,并且可调延迟元件使PLC时钟偏移和/或配置可调延迟元件以用于到多个PLD的输入。
图7至图9图示了本公开的各种示例设计和测试考虑。当设计PLD(例如,前面参考图1至图6所描述的PLD)时,通常期望将时钟树设计为统一的且尽可能快。例如,快速时钟是理想的,因为它倾向于具有较小的抖动和偏移。此外,EBR(DSP)大于PLC,并且具有大于PLC的内部时钟延迟。这导致从附近的PLC到EBR的输入寄存器的寄存信号的潜在保持时间违规。标准解决方案是在EBR(DSP)的所有数据和地址输入上内部添加足够的延迟,使得相对于其边界,其满足零保持时间。然后,如果时钟同时到达所有IP块的边界,则系统可以满足跨芯片的零保持时间。
参考图7,使用本公开的系统和方法的IP块不需要满足零保持时间。在所图示的系统700中,时钟延迟710被添加在时钟树720中,并且可以被配置为仅影响不具有保持时间问题的块。EBR(DSP)大于PLC,并且EBR(DSP)中的内部时钟延迟大于PLC中的内部时钟延迟。这导致从附近的PLC到EBR的输入寄存器的寄存信号的潜在保持时间违规。在本公开的各种实现中,一种方法是将延迟元件710添加到用于PLC行的时钟分支,以使PLC中的FF与EBR中的FF之间的相对定时均衡。这解决了在芯片级(而不是在IP级)处的EBR保持时间。如图所示,例如,时钟树720可以具有一个或多个可选延迟元件710(例如,金属延迟元件),可选延迟元件710可以用于补偿EBR中的时钟延迟。时钟延迟还可以包括到EBR行的可选延迟元件712(例如,金属可选延迟),可选延迟元件712可以用于使延迟最小化。
参考图8,图示了具有大时钟延迟的IP块800的示例。在常规系统中,IP块增加了用于数据(EBR写数据捕获)的输入延迟,以便满足零保持时间要求。如图所示,示例IP块800的特征在于大的时钟延迟但小的用于数据(EBR写数据捕获)的输入延迟,导致在IP边界处的正保持时间。在各种实现中,单个时钟输入具有与其串联的使能逻辑810和使用内部时钟树的64寄存器扇出,所有这些具有延迟时钟的效果。对于数据路径D(63:0),几乎没有延迟。这种布置表示EBR(嵌入式块RAM)的输入部分。注意,相同的时钟也需要扇出到15个地址寄存器。对于EBR读取,出于相同的原因,存在较长的Tco(向外时钟)。
参考图9,现在将描述包括测试模式的系统900(诸如本文中参考图1至图8所描述的PLD)的示例实现。如前所述,EBR(DSP)大于PLC,并且EBR(DSP)中的内部时钟延迟大于PLC。这导致从附近的PLC到EBR的输入寄存器的寄存信号的潜在保持时间违规。在该实现中,延迟元件910(在时钟树920中)被添加到PLC时钟行,以使PLC中的FF与EBR(DSP)FF之间的相对定时均衡。测试信号被用来使通过开关930(例如,多路复用器)的延迟旁通,以使用扫描链进行测试。这可以被实现为可测性(DFT)特征。在一些实现中,延迟元件912可以与开关932一起被添加到EBR行,以用于实现针对EBR行的测试模式来使延迟912旁通。
在适用的情况下,本公开所提供的各种实现可以使用硬件、软件、或者硬件与软件的组合来实现。此外,在适用的情况下,在不脱离本公开的精神的情况下,本文所阐述的各种硬件组件和/或软件组件可以被组合成包括软件、硬件和/或两者的复合组件。在适用的情况下,在不脱离本公开的精神的情况下,本文所阐述的各种硬件组件和/或软件组件可以被分成包括软件、硬件或两者的子组件。此外,在适用的情况下,预期软件组件可以被实现为硬件组件,且反之亦然。
在这方面,本文所描述的各种实现可以用各种类型的硬件和/或软件来实现,并且允许例如性能和空间利用上的显著改进。
根据本公开的软件(例如程序代码和/或数据)可以被存储在一个或多个非瞬态机器可读介质上。还可以预期,本文所标识的软件可以使用(联网的和/或其他的)一个或多个通用或专用计算机和/或计算机系统来实现。在适用的情况下,本文所述的各个步骤的顺序可以改变、组合成复合步骤,和/或分成子步骤,以提供本文所述的特征。
上述实现示出但不限制本发明。还应当理解,根据本发明的原理,许多修改和变化是可能的。因此,本发明的范围仅由所附权利要求限定。
Claims (20)
1.一种用于在可编程逻辑器件PLD中同步数据信号和时钟信号的方法,所述方法包括:
配置所述PLD的知识产权IP块,以在所述IP块的第一组件处接收第一时钟信号和第一数据信号;
确定在第一输入和所述第一组件之间与所述第一时钟信号相关联的延迟;
配置可编程逻辑单元PLC,以接收第二时钟信号并且将所述第一数据信号输出到所述IP块;
确定用以在所述IP块的所述第一组件处同步所述第一时钟信号和所述第一数据信号的延迟时段;以及
配置可调延迟元件,以将所述延迟时段施加到所述第二时钟信号,以在所述IP块的所述第一组件处同步所述第一时钟信号和所述第一数据信号。
2.根据权利要求1所述的方法,其中所述IP块包括可编程输入输出单元(PIC)、嵌入式分布式存储器(EBR)、或者数字信号处理(DSP)块。
3.根据权利要求1所述的方法,还包括:将可配置互连块CIB块配置为在多个PLC块与多个IP块之间进行接口。
4.根据权利要求3所述的方法,其中经延迟时段调整的所述第二时钟信号被输入到所述多个PLC块中的每个PLC块,以使所述PLC块与所述多个IP块同步。
5.根据权利要求4所述的方法,其中所述CIB包括扫描测试逻辑,所述扫描测试逻辑被配置为当在测试模式中被激活时使时钟延迟旁通。
6.根据权利要求1所述的方法,还包括:
配置时钟树以生成多个时钟信号,所述多个时钟信号包括所述第一时钟信号和所述第二时钟信号;并且
其中所述时钟树包括所述可调延迟元件。
7.根据权利要求1所述的方法,其中配置所述PLC以将所述延迟时段施加到所述第一数据信号来在所述IP块的所述第一组件处同步所述第一时钟信号和所述第一数据信号包括:
使所述第二时钟信号偏移,以将所述第一数据信号的输出延迟所述延迟时段。
8.根据权利要求1所述的方法,其中配置所述PLC以将所述延迟时段施加到所述第一数据信号来在所述IP块的所述第一组件处同步所述第一时钟信号和所述第一数据信号包括:
将延迟元件添加到所述第一数据信号的数据信号路径,以将所述第一数据信号的输出延迟所述延迟时段。
9.根据权利要求1所述的方法,其中:
所述IP块包括第一数据路径,所述第一数据路径被配置为将所述第一数据信号路由到所述第一组件;并且
所述第一数据路径不包括延迟元件。
10.根据权利要求8所述的方法,还包括:配置可配置互连块(CIB)块,以将所述第一数据信号从所述PLC路由到所述IP块并且将从所述IP块输出的第二数据信号路由到所述PLC。
11.一种可编程逻辑器件PLD,包括:
知识产权IP块,被配置为在第一组件处接收第一时钟信号和第一数据信号;
可编程逻辑单元PLC,被配置为接收第二时钟信号并且将所述第一数据信号输出到所述IP块;以及
可调延迟元件,被配置为将延迟时段施加到所述第二时钟信号,以在所述IP块的所述第一组件处同步所述第一时钟信号和所述第一数据信号。
12.根据权利要求11所述的PLD,其中所述延迟时段对应于以下延迟之间的差异:在第一输入和所述第一组件之间与所述第一时钟信号相关联的延迟,以及在第二时钟信号与于所述第一组件处接收所述第一数据符号之间的PLC延迟。
13.根据权利要求11所述的PLD,其中所述IP块包括可编程输入输出单元(PIC)、嵌入式分布式存储器(EBR)、或者数字信号处理(DSP)块。
14.根据权利要求11所述的PLD,还包括可配置互连块(CIB)块,以在多个PLC块和多个IP块之间进行接口。
15.根据权利要求11所述的PLD,还包括:
时钟树,所述时钟树被配置为生成多个时钟信号,所述多个时钟信号包括所述第一时钟信号和所述第二时钟信号;并且
其中所述时钟树包括所述可调延迟元件。
16.根据权利要求11所述的PLD,其中所述可调延迟元件被配置为:通过使所述第二时钟信号偏移以将所述第一数据信号的输出延迟所述延迟时段,将所述延迟时段施加到所述第二时钟信号,以在所述IP块的所述第一组件处同步所述第一时钟信号和所述第一数据信号。
17.根据权利要求11所述的PLD,其中所述可调延迟元件被配置为:通过将延迟元件添加到所述第一数据信号的所述PLC处的第二时钟信号路径以将所述第一数据信号的输出延迟所述延迟时段,将所述延迟时段施加到所述第二时钟信号,以在所述IP块的所述第一组件处同步所述第一时钟信号和所述第一数据信号。
18.根据权利要求11所述的PLD,还包括可配置互连块CIB块,所述CIB块被配置为:将所述第一数据信号从所述PLC路由到所述IP块,并且将第二数据信号从所述IP块路由到所述PLC。
19.根据权利要求18所述的PLD,其中所述CIB包括扫描测试逻辑,所述扫描测试逻辑被配置为当在测试模式中被激活时使时钟延迟旁通。
20.根据权利要求11所述的PLD,其中:
所述IP块包括第一数据路径,所述第一数据路径被配置为将所述第一数据信号路由到所述第一组件;并且
所述第一数据路径不包括延迟元件。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/430,056 | 2022-12-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118131854A true CN118131854A (zh) | 2024-06-04 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6829756B1 (en) | Programmable logic device with time-multiplexed interconnect | |
JP5354427B2 (ja) | 集積回路のための再構成可能論理ファブリックおよび再構成可能論理ファブリックを構成するためのシステムおよび方法 | |
US6864710B1 (en) | Programmable logic device | |
US9685957B2 (en) | System reset controller replacing individual asynchronous resets | |
US9543956B2 (en) | Systems and methods for configuring an SOPC without a need to use an external memory | |
US8248110B1 (en) | Clock switch-over circuits and methods | |
US10354706B1 (en) | Delaying start of user design execution | |
US10630269B2 (en) | Multiple mode device implementation for programmable logic devices | |
US7827433B1 (en) | Time-multiplexed routing for reducing pipelining registers | |
US8988125B1 (en) | Circuits for and methods of routing signals in an integrated circuit | |
US20240183902A1 (en) | Clock Insertion Delay Systems and Methods | |
CN118131854A (zh) | 时钟插入延迟系统和方法 | |
US8086986B1 (en) | Clock boosting systems and methods | |
US9672307B2 (en) | Clock placement for programmable logic devices | |
US11749368B2 (en) | Quick configurable universal register for a configurable integrated circuit die | |
AKELLA | PGA-STC: Programmable gate array for implementing self-timed circuits | |
US9331701B1 (en) | Receivers and methods of enabling the calibration of circuits receiving input data | |
US20240184968A1 (en) | Configurable clock enable and reset signal for programmable logic devices systems and methods | |
Aydin et al. | Implementation of a programmable phased logic cell [FPGA] | |
CN118133746A (zh) | 用于可编程逻辑器件的可配置时钟使能和复位信号的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |