CN207249670U - 防止保持时间违例的电路 - Google Patents
防止保持时间违例的电路 Download PDFInfo
- Publication number
- CN207249670U CN207249670U CN201721177654.7U CN201721177654U CN207249670U CN 207249670 U CN207249670 U CN 207249670U CN 201721177654 U CN201721177654 U CN 201721177654U CN 207249670 U CN207249670 U CN 207249670U
- Authority
- CN
- China
- Prior art keywords
- trigger
- clock signal
- clock
- signal
- circuit
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/1776—Structural details of configuration resources for memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
- H03K3/037—Bistable circuits
- H03K3/0372—Bistable circuits of the master-slave type
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
- H03K3/037—Bistable circuits
- H03K3/0375—Bistable circuits provided with means for increasing reliability; for protection; for ensuring a predetermined initial state when the supply voltage has been applied; for storing the actual state when the supply voltage fails
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Architecture (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本公开的各实施例的方面涉及用于防止时钟同步电路中的保持时间违例的电路。在示例性实施例中,电路至少包括连接在从第一触发器到第二触发器的信号路径中的第一触发器、第二触发器和电平敏感锁存器。第一触发器的时钟节点被连接以接收第一时钟信号,并且第二触发器的时钟节点被连接以接收第二时钟信号。从第一触发器通过电平敏感锁存器到第二触发器的传播延迟小于第一时钟与第二时钟之间的偏移,从而导致保持时间违例。电平敏感锁存器控制电路被配置为通过向一个电平敏感锁存电路的时钟节点提供脉冲时钟信号来防止保持时间违例。
Description
技术领域
本公开大体涉及电子电路,更具体地,涉及一种在电子电路中防止保持时间违例(hold time violation)的方法和结构。
背景技术
无论是以集成电路(IC)还是以分立的形式实现的现代数字电路,都经常利用锁存器来同步数据信号的传播。一种类型的锁存器被称为电平敏感锁存器,其能提供输出信号,该信号具有的状态取决于时钟输入节点处的时钟信号的活动。特别地,电平敏感锁存器的输出信号的逻辑值在输入时钟周期的部分期间中反映输入节点处的信号的逻辑值。在这个工作阶段,锁存器将其输入节点处的逻辑值直接传递到其输出节点。该阶段中工作的锁存器可以被称为是透明的。在第二个工作阶段,电平敏感锁存器在输入时钟周期的剩余部分期间内将输出信号保持在固定的逻辑值,而与输入节点处的逻辑值无关。在第二阶段中运行的锁存器可以被称为是锁存的或保持的。
另一种类型的锁存器被称为触发器或边沿触发锁存器,其被配置为在被提供到时钟输入节点的时钟信号的边沿期间将输出信号设置和保持为输入节点处的逻辑值。触发器的一个实施例包括两个电平敏感锁存器的组合。第一电平敏感锁存器(即主级)在输入时钟的第一阶段期间是透明的,而第二电平敏感锁存器(即从级)在输入时钟的第二阶段期间是透明的。该组合的行为使得仅当时钟信号呈现从低到高的逻辑跳转时,输入数据才被捕获并传递到输出节点。输出信号的值一直保持到时钟信号的下一次从低到高的跳转。相反地,可以通过改变两个电平敏感锁存器的配置,在时钟信号的高到低的逻辑转换期间捕获输入数据。
实用新型内容
各种示例性实施例涉及用于防止时钟同步电路中的保持时间违例的电路和方法。在一个示例性实施例中,电路至少包括第一触发器、第二触发器和连接在从第一触发器到第二触发器的第一信号路径中的电平敏感锁存器。时钟分配电路向第一触发器的时钟节点提供第一时钟信号,并向第二触发器的时钟节点提供第二时钟信号。从第一触发器通过电平敏感锁存器到第二触发器的传播延迟小于第一时钟和第二时钟之间的偏移(skew),从而导致保持时间违例。电平敏感锁存器控制电路被配置为通过向该电平敏感锁存电路的时钟节点提供脉冲时钟信号来防止保持时间违例。
在一些实施例中,在所述第二时钟信号的每个周期中,所述脉冲时钟信号包括一个脉冲,所述脉冲具有出现在所述第二时钟信号的上升沿之后的上升沿,以及出现在所述第一时钟信号的上升沿之前的下降沿。
在一些实施例中,所述脉冲时钟信号的每个周期包括具有第一值的第一部分和具有第二值的第二部分,并且其中所述第一部分的持续时间小于所述第二部分的持续时间。
在一些实施例中,所述脉冲时钟信号具有上升沿和下降沿,其使得所述电平敏感锁存器在所述第一时钟信号的下一周期之前锁存从所述第一触发器输出的信号值。
在一些实施例中,所述脉冲时钟信号是所述第一时钟信号的反相。
在一些实施例中,所述第一时钟信号与所述第二时钟信号异相。
在一些实施例中,所述电路还包括:所述触发器组中的第三触发器,其被配置为接收所述第二时钟信号;以及第二信号路径,其是从由所述第一时钟信号时钟控制的所述触发器组中的一个触发器的输出到所述第三触发器的输入的信号路径;其中所述第二信号路径上的传播延迟比所述第一信号路径上的传播延迟长;并且其中所述第一时钟信号的上升沿与所述第二时钟信号的上升沿之间的延迟基于来自所述触发器组中的一个触发器的输出,防止所述第二信号路径上所述第三触发器的输入数据信号的建立违例。
在一些实施例中,所述电平敏感锁存器由基于多路复用器的锁存电路实施。
在另一示例性实施例中,集成电路包括一组包含多个触发器的可编程逻辑资源。该集成电路还包括一组在各自的可编程信号路径中具有电平敏感锁存器的可编程路由资源。配置电路被配置为响应接收到一组配置数据而对可编程逻辑资源和该组可编程路由资源进行编程以实现电路设计。该电路设计包括由第一时钟时钟控制的触发器中的第一个,由第二时钟时钟控制的第二触发器和连接第一触发器的输出到第二触发器的信号路径中的一个电平敏感锁存器。从第一触发器通过电平敏感锁存器到第二触发器的传播延迟小于第一时钟和第二时钟之间的偏移,从而导致保持时间违例。集成电路还包括电平敏感的锁存器控制电路,其被配置为通过使用脉冲时钟信号来对该电平敏感锁存器进行时钟控制来防止保持时间违例。
在一些实施例中,该组路由资源是可编程路由资源,并且各信号路径分别是可编程信号路径,并且所述集成电路还包括:一组可编程逻辑资源,其包括所述多个触发器;和配置控制电路,其被配置和安排为响应于接收到一组配置数据而编程该组可编程逻辑资源和该组可编程路由资源,以根据电路设计实施所述电路;其中:该组配置数据指定所述可编程信号路径的子集;并且所述电平敏感锁存器控制电路还被配置为:将所述脉冲时钟信号提供给所述可编程信号路径的子集中的每个相应可编程信号路径中的所述电平敏感锁存器,和对于不在所述可编程信号路径的子集的相应可编程信号路径中的每个所述电平敏感锁存器,将一常数值提供给所述电平敏感锁存器的时钟输入,以保持电平敏感锁存器处于透明状态。
在一些实施例中,在所述第二时钟信号的每个周期中,所述脉冲时钟信号包括一个脉冲,所述脉冲具有出现在所述第二时钟信号的上升沿之后的上升沿,以及出现在所述第一时钟信号的上升沿之前的下降沿。
在又一个实施例中,提供了一种用于布置和布线电路设计的方法。通过确定电路设计的电路元件的位置并确定电路设计中电路元件之间用于指定连接的一组路由,来生成布局布线电路设计。通过评估所确定的一组路由的时序以识别出导致布局布线电路设计中的触发器保持时间违例的信号路径。响应于识别出的导致保持时间违例的信号路径,通过使用脉冲时钟信号以使能对连接在所识别的信号路径中的电平敏感锁存器的时钟控制来防止保持时间违例。
结合下文的具体实施方式和所附权利要求,可以认识到其它特征。
附图说明
在审阅以下具体实施方式并参考附图之后,所述电路和方法的各个方面和特征将变得显而易见,其中:
图1示出了被配置为防止保持时间违例的示例电路图,并与一个或多个实施例一致;
图2示出了在图1所示的电路的操作期间产生的一组示例信号的波形,并与一个或多个实施例一致;
图3示出了具有可编程锁存互连的示例性集成电路,所述可编程锁存互连可配置为在各种可编程信号路径上防止保持时间违例,与一个或多个实施例一致;
图4示出了用于消除电路设计中的保持时间违例的示例过程,与一个或多个实施例一致;
图5示出了可以用于调整电路设计以消除保持时间违例及配置可编程集成电路以实现所得到的电路设计的示例性计算系统,其与一个或多个实施例一致;以及
图6示出了可被调整以包括所公开的可配置锁存电路的示例性可编程集成电路,其与一个或多个实施例一致。
具体实施方式
在下面的描述中,阐述了许多具体细节来描述本文给出的具体示例。然而,对于本领域技术人员应当显而易见的是,可以在没有下面给出的所有具体细节的情况下也可以实践一个或多个其他示例和/或这些示例的变体。在其他情况下,未详细描述众所周知的特征,以免使本文中的示例的描述变得晦涩。为了便于说明,在不同的图中可能会使用相同的附图标记来表示相同元件或者相同元件的附加实例。
满足所需的建立和保持时间是电子电路设计中的一个考虑因素。时钟电路元件(例如,触发器、锁存器、寄存器、RAM模式或移位寄存器模式下的查找表以及其它时钟元件)的建立时间是在时钟脉冲的前沿(leading edge)被施加到电路元件的时钟输入端之前,数据信号能够在电路元件的输入端处必须达到可用并稳定的最小时间长度。如果在数据信号之后过快施加时钟脉冲,将导致建立时间违例(小于最小时间长度),并且时钟元件可能输出不正确的信号。被时钟控制的(clocked)电路元件的保持时间是在将时钟前沿施加到时钟输入端之后数据信号必须达到稳定的最小时间量。如果输入信号在时钟前沿之后的所要求的时间内在输入端没有保持稳定,则会导致保持时间违例。如果违反了建立或保持时间要求,电路元件可能无法正常工作。
在保持时间违例的情况下,通过在信号路径中重新路由来增加将信号传播到输入端所需的时间,一些设计方法消除保持时间违例。然而,在面积和/或路由资源可能有限的拥塞区域中,在信号路径中重新路由可能是困难的。公开了用于消除保持时间违规而不用在信号路径中重新路由的方法和电路。
在一些示例性实施例中,在出现保持时间违例的信号路径中对电平敏感锁存器进行脉冲时钟控制被用来消除保持时间违例。在示例性实施例中,电路至少包括第一触发器、第二触发器和连接在从第一触发器到第二触发器的第一信号路径中的电平敏感锁存器。第一触发器由第一时钟信号时钟控制,第二触发器由第二时钟信号时钟控制。从第一触发器通过电平敏感锁存器到第二触发器的传播延迟小于第一时钟和第二时钟之间的偏移,从而导致保持时间违例。通过向该电平敏感锁存电路的时钟节点提供相移脉冲时钟信号可以防止保持时间违例。
如参考附图更详细地描述的,使用相移脉冲时钟信号对电平敏感锁存器进行时钟控制允许信号在更长的时间内被锁存并提供到第二触发器的输出。通过这种方式,防止了保持时间违例。
现在转到附图,图1示出了在示例电路中使用脉冲锁存器来防止保持时间违例。示例电路100包括由第一时钟信号CLK_Src同步的一组源触发器110,和由第二时钟信号 CLK_Dest同步并且被配置为接收该组源触发器输出的信号的目标触发器122和124。在该示例中,该电路包括一个源触发器110和两个目标触发器。在一些实施例中,电路100可以被调整为包括由第一时钟信号CLK_Src时钟控制的额外源触发器和/或包括额外的或更少的目标触发器。例如,电路可以调整为包括在单个目标触发器的输入的扇入(fan-in)中的两个源触发器。
为了确保正确工作,当CLK_Dest时钟触发目标触发器来锁存信号的值时,由源触发器110产生的信号必须出现在目标触发器122和124的输入上。在该示例中,源触发器110和目标触发器124之间的信号路径114包括多个逻辑电路120,这使得信号路径114的传播时间大于从触发器110到目标触发器122的信号路径112的传播时间。为了便于描述,具有到逻辑电路的最长传播时间的信号路径可以被称为建立路径。具有到逻辑电路的最短传播时间并且可能出现保持时间违例的信号路径可以被称为保持路径。根据传播延迟,可以调整CLK_Dest时钟信号(例如,相移),从而使得上升沿在两个目标触发器122和124 上出现正确信号时产生。如果传播时间相差过大,则通过信号路径114传送的信号被提供给目标触发器124时,经由信号路径112传送的信号未能被提供。结果就是发生了保持时间违例。
电路100包括保持路径112中的电平敏感锁存器116,用于防止保持时间违例。如图2中更详细的展示,电平敏感锁存器116由锁存器控制电路115用相移脉冲时钟信号CLK_P时钟控制,这使得电平敏感锁存器116将提供给触发器122的信号延迟一段时间以满足保持时间要求。以这种方式,防止了保持时间违例。
在一些实施例中,电路可以包括多个可能或不可能表现出持续时间违例的信号路径中的电平敏感锁存器116和118。如果稍后发现保持时间违例(例如,在仿真和/或测试期间),则可以通过使用相移脉冲时钟信号使能对保持路径中的电平敏感锁存器的时钟控制来消除保持时间违例。不存在保持时间违例的信号路径中的电平敏感锁存器(例如,锁存器118) 则运行在透明状态下,例如,通过向锁存器的时钟输入节点提供恒定信号(例如,逻辑1)。
图2示出了在图1所示的电路的工作期间产生的一组示例信号的波形,其与一个或多个实施例一致。波形210示出的是用于对源触发器(例如,图1所示的电路中的114)进行时钟控制的示例时钟CLK_Src。波形230示出了用于对目标触发器(例如,122和124) 进行时钟控制的示例时钟CLK_Dest,所述目标触发器的各自的扇入中具有源触发器。波形220示出了用于对电平敏感锁存器148进行时钟控制的相移脉冲时钟信号CLK_P。相移脉冲时钟信号CLK_P的上升沿对准或跟随CLK_Dest的上升沿,CLK_P的下降沿则在 CLK_Src的上升沿之前。
波形240示出了工作期间在信号路径上由源触发器发送到目标触发器的信号值。波形 250示出了由信号路径中的锁存器输出并由相移脉冲时钟信号CLK_P时钟控制的信号值。波形260示出了由目标触发器输出的信号值,所述目标触发器具有连接以接收波形250所示的信号并由时钟信号CLK_Dest进行时钟控制的输入。波形240、250和260被标记以指示相应的时钟周期,在该时钟周期中信号的每个部分在保持路径上传输(例如,从源触发器114到目标触发器122)。例如,D1表示在第一时钟周期中发送的信号,D2表示在第二时钟周期中发送的信号。
在该示例中,CLK_Dest相对于源时钟CLK_Src被延迟一段时间(CLK偏移)。在一些情况下,延迟可能是由时钟分配网络上的传播延迟引入的无意延迟。在某些其他情况下,CLK_Dest时钟可能被故意延迟以解决在另一信号路径上的建立路径违例。作为延迟 CLK_Dest时钟的后果,当CLK_Dest的上升沿触发目标触发器以采样并保持将在下一个时钟周期信号路径上发送的信号值时,波形240中的信号值D1不可用,由此导致保持时间违例。对信号路径中的电平敏感锁存器的时钟控制允许信号值D1延迟到如波形250所示的较晚时间。因此,目标锁存器能够在延迟的CLK_Dest时钟的上升沿锁存信号值D1。通过这种方式,防止了保持时间违例。
相移脉冲时钟CLK_P中的脉冲的位置和持续时间可以在不同的实施例中变化。在一些实施例中,相移脉冲时钟CLK_P被配置为具有跟随在CLK_Dest时钟的上升沿之后的上升沿。这样可以防止目标锁存器在比预期更早的时钟周期内错误地锁存信号值。相移脉冲时钟CLK_P还被配置为在源时钟CLK_Src的下一个上升沿之前具有下降沿。这确保了信号值在源触发器的值在CLK_Src下一个周期变化之前被锁存。在其他实施例中,相移脉冲时钟可以是CLK_Src的反相。
这些电路和方法可被调整以用于避免许多应用中的保持时间违例。该电路和方法被认为特别适用于具有可根据不同电路布局进行编程的电路装置(例如,可编程集成电路或片上系统)的集成电路(IC)。在这种情况下,所公开的方法和电路可以使得在电路设计中更容易地去除保持时间违例,而无需在信号路径中重新路由。可编程集成电路可以包括多个可配置逻辑块和一组可编程路由资源,所述可编程路由资源在可配置逻辑块之间提供可编程信号路径,其具有电平敏感锁存器,可用于防止如参考图1和2所描述的保持时间违例。
图3示出了具有可配置为防止保持时间违例的可编程锁存互连的示例集成电路。集成电路300包括多个可配置逻辑块(CLB)320、322、324和328。在不同的实施方式中,可配置逻辑块可以包括各种逻辑电路336,所述逻辑电路336包括例如输入/输出块(IOB)、专用随机访问存储块(BRAM)、乘法器、数字信号处理块(DSP)、处理器、时钟管理器、延迟锁相环(DLL)、总线或网络接口。在该示例中,可配置逻辑块320、322、324 和328包括触发器330、332和334,这些触发器连接逻辑电路336的输入/输出到可配置逻辑块320、322、324和328的输入/输出节点。集成电路300还包括一组可编程路由资源以及多个锁存互连302、304、306、308、310、312、314、316和318。锁存互连可以被配置控制电路360配置为形成由一组配置数据指定的信号路径。在示例实施方式中,锁存互连可以被实现为基于多路复用器的锁存电路,如由Ilya Ganusov等人在题为“多模式的基于多路复用器的电路”,专利申请号15/234,640代理档案号X-4925US的审查中的专利申请所描述的那样。该审查中的申请于2016年8月11日提交,后被转让给赛灵思公司,并通过引用整体并入本文。
根据该组配置数据,配置控制电路360对可编程路由资源和可配置逻辑块进行编程。可编程路由资源和可配置逻辑块可以通过例如将配置数据值加载到内部配置存储单元来编程,所述内部配置存储单元定义了如何配置可配置逻辑块和可编程逻辑电路。然后各个存储单元的集体状态确定路由资源和可配置逻辑块的操作。可以通过外部设备从存储器(例如,从外部PROM)读取配置数据或向集成电路300写入。
由锁存互连提供的信号路径包括可用于消除保持时间违例的电平敏感锁存器。集成电路包括电平敏感锁存器控制电路350,所述电路350被配置为控制对锁存器的脉冲时钟控制。参考图1和2所描绘的细节,电平敏感锁存控制电路350被配置为通过使能用相移脉冲时钟信号对出现保持时间违例的信号路径中的电平敏感锁存器进行时钟控制,来防止保持时间违例。
出现保持时间违例的信号路径可以,比如在提供给集成电路300或由集成电路300检索的配置数据的集合中被指定。电平敏感锁存器控制电路350被配置为将其它信号路径中的锁存器保持为透明状态(例如通过向其他电平敏感锁存器的时钟输入提供恒定信号)。以这种方式,可以消除布局布线电路设计中的保持时间违例,而不用修改信号路径的路由。因此,可以减少为实现计时要求的布局布线电路设计所需的计算时间和资源。
图4示出了与一个或多个实现一致的用于识别和消除电路设计中的保持时间违例的示例过程。在框402中,电路设计被布局布线以在目标集成电路器件上实现。在框404中,评估到电路设计的触发器的输入的信号路径的时序以识别保持时间违例(例如,通过仿真布局布线的电路设计)。对于每个识别到的保持时间违例,在框406处修改布局布线设计,以使能在出现保持时间违例的信号路径中对电平敏感锁存器的脉冲控制。在一些罕见的情况下,可能无法使用上述脉冲锁存器来纠正所有保持时间违例。在框408,重新分析时序以确定是否已经校正了所有保持时间违例。如果不是所有保持时间违例都被校正,则执行从框410到框412的过程。在框412处,修改电路设计的布局和/或布线以试图改善时序。过程返回到框404,重新评估时序。该过程以这种方式重复,直到所有保持时间违例都被校正。一旦校正了所有保持时间违例,则进行到框414。在框414,生成一组配置数据。配置数据可以存储在非易失性存储器中,之后用于对目标设备的编程以实现布局布线电路设计。
图5示出了可以用于调整电路设计以消除保持时间违例并且配置可编程集成电路以实施所得到的电路设计的示例性计算系统,其与一个或多个实施方式相一致。应当理解,包括一个或多个处理器和由程序代码配置的存储器布置的各种替代计算布置将适用于组织公开的过程和数据结构。实现所公开的过程的计算机代码被以处理器可执行的格式进行编码,并且可以经由各种计算机可读存储介质或诸如磁盘、光盘、磁带、光带、电子存储设备或者是作为网络上的应用服务而存储或提供。
处理器计算布置500包括一个或多个处理器502、时钟信号发生器504、存储器布置506和输入/输出控制单元510,它们都被耦接到主机总线512。布置500可以由电路板上分立的组件或者在集成电路内部实施。当在集成电路内部实施时,处理器计算装置被称为微控制器。
计算布置的架构取决于本领域技术人员认为的实施要求。处理器502可以是一个或多个通用处理器,或一个或多个通用处理器和合适的协处理器,或一个或多个专用处理器(例如RISC、CISC、流水线处理器等)的组合。存储器布置506通常包括多级缓存存储器和主存储器。存储器布置506可以包括本地和/或远程持久存储器,如由磁盘(未示出)、闪存、EPROM或其它非易失性数据存储器提供的。存储器布置506可具有读取或读/写能力。
处理器502执行存储器布置506中的软件,从存储器布置508读取数据并将数据存储到存储器布置508,并通过输入/输出控制布置510与外部装置进行通信。这些功能由时钟信号发生器504同步。计算布置的资源可以由操作系统(未示出)或硬件控制单元(未示出)来管理。
在一些实施方式中,存储器装置506存储一组指令,当被执行时,该指令使处理器502 提供CAD工具524。CAD工具524可以提供计算机图形界面(GUI),其被配置为辅助设计、仿真、测试、布局和布线,和/或系统设计的保持时间校正,例如参考图1-4所描述的。
在一些实施方式中,CAD工具524可以被配置为自动编译用于在SOC上实施系统设计的HLL源文件520。CAD工具524可以被配置为识别并确定函数调用(function call) 子集,该函数调用调用硬件加速的函数以在SOC的可编程逻辑资源中实施。CAD工具524 可生成或检索用于实现硬件加速功能的硬件描述语言(HDL)电路设计。
CAD工具524布局布线硬件描述语言电路设计并且消除保持时间违例,例如图5所示的过程所描述的。CAD工具524生成可编程逻辑(PL)配置数据528的集合,用于实施所得到的布局布线电路设计。CAD工具524还可以用HLL代码(例如,接口代码)来补充HLL源文件520,以在HLL函数调用和由可编程逻辑配置数据528实施的硬件加速函数之间传送数据。CAD工具编译补充的HLL源文件以产生被配置为在SOC的处理器上执行的可执行程序526。CAD工具524可以将可执行程序526和可编程逻辑配置数据528打包成用于引导SOC的一个或多个引导映像。
图6示出了可以根据一个或多个实施方式来配置的示例性可编程集成电路602。可编程集成电路还可以被称为片上系统(SOC),其包括处理器子系统610和可编程逻辑子系统630。处理器子系统610可以被编程,并通过执行用户程序以实施用户设计的软件部分。该程序可以被指定为配置数据流的一部分,或者可以从片上或片外数据存储装置中检索。处理器子系统610可以包括用于执行一个或多个软件程序的各种电路612、614、616和618。电路612、614、616和618可以包括例如一个或多个处理器核、浮点单元(FPU)、中断处理单元、片上存储器、存储器高速缓存和/或高速缓存一致性互连。
可编程集成电路602的可编程逻辑子系统630可以被编程以实施用户设计的硬件部分。例如,可编程逻辑子系统可以包括多个可编程资源632,其可以被编程以实现在配置数据流中指定的一组电路。可编程资源632包括诸如可编程互连电路,可编程逻辑电路和配置存储器单元。可编程逻辑使用包括例如函数发生器、寄存器、算术逻辑等的可编程元件来实现用户设计的逻辑。可编程互连电路可以包括通过可编程互连点(PIP)互连的大量不同长度的互连线。
可编程资源632可以通过将配置数据流加载到配置存储器单元中来进行编程,配置存储器单元用于定义如何配置可编程互连电路和可编程逻辑电路。例如,将可配置锁存器的配置存储单元设置为第一值可以指示可配置锁存器作为单边沿驱动锁存器操作。将配置存储单元设置为第二个值可以指示可配置的锁存器作为双边沿驱动的锁存器工作。然后各个存储单元的集体状态确定可编程资源632的功能。可以通过外部设备从存储器(例如,从外部PROM)读取配置数据或将配置数据写入可编程集成电路602。在一些实施方式中,包括在可编程逻辑子系统630中的配置控制器634可通过从被耦接到可编程集成电路的非易失性存储器检索配置数据并加载配置数据到配置存储单元,以响应于编程逻辑电路的供电来给可编程资源编程。在一些其他实施方式中,可以通过由处理器子系统610执行的启动过程将配置数据加载到配置存储器单元中。
可编程集成电路602可以包括各种电路,用以将处理器子系统610与在可编程逻辑子系统630内实施的电路互连。在该示例中,可编程集成电路602包括核心交换机626,其可以在处理器子系统610和可编程逻辑子系统630的各个数据端口之间路由数据信号。核心交换机626还可以在可编程逻辑或处理子系统610和630之间以及诸如内部数据总线的可编程IC的各种其它电路之间路由数据信号。另外,处理器子系统610可以包括直接与可编程逻辑子系统连接而绕过核心交换机626的接口。这样的接口可以使用例如由ARM发布的AMBA AXI协议规范(AXI)来实现。
在一些实施方式中,处理器子系统610和可编程逻辑子系统630还可以经由存储器控制器621对片上存储器622或片外存储器(未示出)的存储器位置进行读取或写入。存储器控制器621可以实现与一个或多个不同类型的存储器电路通信,所述存储器电路包括但不限于双数据速率(DDR)2、DDR3、低功耗(LP)DDR2类型的存储器,无论是16位、 32位还是具有ECC的16位等。存储器控制器621能够通信的不同存储器类型的列表仅是为了说明目的而提供,并不旨在作为限制或穷举。如图6所示,可编程集成电路602可以包括存储器管理单元620和转换后备缓冲器(translation look-aside buffer)624,用以将由子系统610和630使用的虚拟存储器地址转换为物理存储器地址,由存储器控制器621用于访问特定存储器位置。
可编程集成电路可以包括用于与外部电路进行数据通信的输入/输出(I/O)子系统650。 I/O子系统650可以包括各种类型的I/O设备或接口,包括例如闪存型I/O设备、较高性能 I/O设备、较低性能接口、调试I/O设备和/或RAM I/O设备。
I/O子系统650可以包括被示为660A和660B的一个或多个闪存接口660。例如,闪存接口660中的一个或多个可以被配置为用于4位通信的四串行外设接口(QSPI)。闪存接口660中的一个或多个可以被实施为并行8位NOR/SRAM类型的接口。闪存接口660 中的一个或多个可以被实施为NAND接口,其被配置以用于8位和/或16位通信。应当理解,所描述的特定接口是为了说明而非限制的目的而提供的。也可以使用具有不同位宽的其他接口。
I/O子系统650可以包括能提供比闪存接口660更高级别性能的一个或多个接口662。接口662A-662C中的每一个可以分别被耦接到DMA控制器664A-664C。例如,一个或多个接口662可以被实现为通用串行总线(USB)类型的接口。一个或多个接口662可以被实现为千兆以太网类型的接口。一个或多个接口662可以被实施为安全数字(SD)类型的接口。
I/O子系统650还可以包括一个或多个接口666,例如接口666A-666D,其提供比接口 662更低的性能水平。例如,接口666中的一个或多个可以被实施为通用I/O(GPIO)接口类型。接口666中的一个或多个可以被实施为通用异步收发器(UART)类型的接口。一个或多个接口666可以以串行外设接口(SPI)总线类型的接口的形式实现。一个或多个接口666可以以控制器-区域-网络(CAN)类型的接口和/或I2C类型接口的形式来实现。一个或多个接口666也可以以定时器类型的接口的形式来实施。
I/O子系统650可以包括一个或多个调试接口668,例如处理器JTAG(PJTAG)接口668A和跟踪接口668B。PJTAG接口668A可以为可编程集成电路602提供外部调试接口。跟踪接口668B可以提供端口来接收来自处理器子系统610或可编程逻辑子系统630的调试(比如跟踪)信息。
如图所示,接口660、662、666和668中的每一个都可以被耦接到多路复用器670。多路复用器670提供可直接路由或被耦接到可编程集成电路602的外部引脚的多个输出,比如用于放置可编程集成电路602的封装的焊球(ball)。例如,可编程集成电路602的 I/O引脚可以在接口660、662、666和668之间共用。用户可以通过配置数据流来配置多路复用器670,以选择要使用接口660-668中的哪一个从而经由多路复用器670被耦接到可编程集成电路602的I/O引脚。I/O子系统650还可以包括将接口662-668连接到可编程逻辑子系统的可编程逻辑电路的结构多路复用器I/O(fabric multiplexer,FMIO)接口(未示出)。另外或替代地,可编程逻辑子系统630可以被配置为在可编程逻辑内实现一个或多个I/O电路。在一些实施方式中,可编程集成电路602还可以包括具有用于电力和/或安全管理的各种电路的子系统640。例如,子系统640可以包括被配置为监视和维护为可编程集成电路602的各个子系统供电的一个或多个电压域的功率管理单元646。在一些实施方式中,功率管理单元646可以禁用空闲的单个子系统的功率以降低功耗,而不会对正在使用的子系统断电。
子系统640还可以包括安全电路,以监视子系统的状态并确保其正确工作。例如,子系统640可以包括被配置为监视各种子系统(例如在状态寄存器644中所示)状态的一个或多个实时处理器642。实时处理器642可以被配置为响应检测错误而执行多个任务。例如,对于一些错误,实时处理器642可以响应检测到错误而产生警报。作为另一示例,实时处理器642可以重置子系统以尝试恢复子系统和校正操作。子系统640包括可用于互连各种子系统的交换机网络648。例如,交换机网络648可以被配置为将各种子系统610、 630和640连接到I/O子系统650的各种接口。在一些应用中,交换机网络648还可以用于从要监视的子系统中隔离出实时处理器642。某些应用标准(例如IEC-61508SIL3或 ISO-26262标准)可能需要这种隔离,以确保实时处理器642不受其他子系统中发生的错误的影响。
本方法和电路被认为可以应用于采用锁存电路的各种系统。通过结合本说明书,其他方面和特征对本领域技术人员是显而易见的。例如,尽管在某些情况下可以在单独的附图中描述某些方面和特征,但是应当理解,一个附图中的特征可以与另一个附图的特征组合,即使该组合未被明确地显示或明确地描述为组合。方法和系统可以被实施为一个或更多个被配置以执行软件的处理器、专用集成电路(ASIC)或可编程逻辑器件上的逻辑设备。本说明书和附图的用意是仅作为示例,本申请的实际范围由所附权利要求书指出。
Claims (11)
1.一种电路,其特征在于,所述电路包括:
一组触发器,其至少包括被配置为接收第一时钟信号的第一触发器和被配置为接收第二时钟信号的第二触发器;
电平敏感锁存器,其被连接在从第一触发器的输出到第二触发器的输入的第一信号路径中;和
电平敏感锁存器控制电路,其被配置为向所述电平敏感锁存器的时钟节点提供相移脉冲时钟信号,并且防止保持时间违例,所述保持时间违例是由于从所述第一触发器通过所述电平敏感锁存器到所述第二触发器的延迟小于所述第一时钟信号与所述第二时钟信号之间的偏移而造成的。
2.根据权利要求1所述的电路,其特征在于,在所述第二时钟信号的每个周期中,所述脉冲时钟信号包括一个脉冲,所述脉冲具有出现在所述第二时钟信号的上升沿之后的上升沿,以及出现在所述第一时钟信号的上升沿之前的下降沿。
3.根据权利要求1所述的电路,其特征在于,所述脉冲时钟信号的每个周期包括具有第一值的第一部分和具有第二值的第二部分,并且其中所述第一部分的持续时间小于所述第二部分的持续时间。
4.根据权利要求1所述的电路,其特征在于,所述脉冲时钟信号具有上升沿和下降沿,其使得所述电平敏感锁存器在所述第一时钟信号的下一周期之前锁存从所述第一触发器输出的信号值。
5.根据权利要求1所述的电路,其特征在于,所述脉冲时钟信号是所述第一时钟信号的反相。
6.根据权利要求1所述的电路,其特征在于,所述第一时钟信号与所述第二时钟信号异相。
7.根据权利要求1所述的电路,其特征在于,所述电路还包括:
所述触发器组中的第三触发器,其被配置为接收所述第二时钟信号;以及
第二信号路径,其是从由所述第一时钟信号时钟控制的所述触发器组中的一个触发器的输出到所述第三触发器的输入的信号路径;
其中所述第二信号路径上的传播延迟比所述第一信号路径上的传播延迟长;并且
其中所述第一时钟信号的上升沿与所述第二时钟信号的上升沿之间的延迟基于来自所述触发器组中的一个触发器的输出,防止所述第二信号路径上所述第三触发器的输入数据信号的建立违例。
8.根据权利要求1所述的电路,其特征在于,所述电平敏感锁存器由基于多路复用器的锁存电路实施。
9.一种集成电路,其特征在于,所述集成电路包括:
多个触发器;
一组路由资源,其包括各信号路径中的电平敏感锁存器;
电路,其包括所述多个触发器中由第一时钟信号时钟控制的第一触发器,所述多个触发器中由第二时钟信号时钟控制的第二触发器,以及所述电平敏感锁存器中的一个,所述其中一个电平敏感锁存器位于将所述第一触发器的输出连接到所述第二触发器的信号路径中,其中从所述第一触发器通过所述电平敏感锁存器到所述第二触发器的传播延迟小于所述第一时钟信号与所述第二时钟信号之间的偏移;和
电平敏感锁存器控制电路,其被配置为通过使能用相移脉冲时钟信号对所述其中一个电平敏感锁存器进行时钟控制来防止保持时间违例,所述保持时间违例是由于从所述第一触发器通过所述其中一个电平敏感锁存器到所述第二触发器的传播延迟小于所述第一时钟信号与所述第二时钟信号之间的偏移而造成的。
10.根据权利要求9所述的集成电路,其特征在于,该组路由资源是可编程路由资源,并且各信号路径分别是可编程信号路径,并且所述集成电路还包括:
一组可编程逻辑资源,其包括所述多个触发器;和
配置控制电路,其被配置和安排为响应于接收到一组配置数据而编程该组可编程逻辑资源和该组可编程路由资源,以根据电路设计实施所述电路;
其中:
该组配置数据指定所述可编程信号路径的子集;并且
所述电平敏感锁存器控制电路还被配置为:
将所述脉冲时钟信号提供给所述可编程信号路径的子集中的每个相应可编程信号路径中的所述电平敏感锁存器,和
对于不在所述可编程信号路径的子集的相应可编程信号路径中的每个所述电平敏感锁存器,将一恒定值提供给所述电平敏感锁存器的时钟输入,以保持电平敏感锁存器处于透明状态。
11.根据权利要求9所述的集成电路,其特征在于,在所述第二时钟信号的每个周期中,所述脉冲时钟信号包括一个脉冲,所述脉冲具有出现在所述第二时钟信号的上升沿之后的上升沿,以及出现在所述第一时钟信号的上升沿之前的下降沿。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/267,880 US9954534B2 (en) | 2016-09-16 | 2016-09-16 | Methods and circuits for preventing hold time violations |
US15/267,880 | 2016-09-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN207249670U true CN207249670U (zh) | 2018-04-17 |
Family
ID=61617580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201721177654.7U Active CN207249670U (zh) | 2016-09-16 | 2017-09-14 | 防止保持时间违例的电路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9954534B2 (zh) |
CN (1) | CN207249670U (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111027276A (zh) * | 2018-10-09 | 2020-04-17 | 刘保 | 基于多相电平敏感锁存器的集成电路优化系统和方法 |
CN114167264A (zh) * | 2021-12-03 | 2022-03-11 | 中国人民解放军国防科技大学 | 一种核辐射环境下用于检测数字电路保持时间违例的装置 |
CN114428753A (zh) * | 2020-10-29 | 2022-05-03 | 施耐德电器工业公司 | 显示数据传输装置和显示数据传输方法 |
CN115276613A (zh) * | 2022-08-05 | 2022-11-01 | 珠海錾芯半导体有限公司 | 基于边缘触发器和敏感锁存器的集成电路及其可编程电路 |
CN117215983A (zh) * | 2023-11-09 | 2023-12-12 | 辉芒微电子(深圳)股份有限公司 | I2c接口规避错误起始和停止条件的电路结构及方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10651853B1 (en) * | 2019-05-23 | 2020-05-12 | Xilinx, Inc. | Timing insulation circuitry for partial reconfiguration of programmable integrated circuits |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6698005B2 (en) * | 2002-02-19 | 2004-02-24 | Telefonaktiebolaget L M Ericsson (Publ) | Min-time / race margins in digital circuits |
US20130222029A1 (en) * | 2012-01-31 | 2013-08-29 | Qualcomm Incorporated | Method for pulse-latch based hold fixing |
US9385696B1 (en) * | 2014-09-26 | 2016-07-05 | Applied Micro Circuits Corporation | Generating a pulse clock signal based on a first clock signal and a second clock signal |
-
2016
- 2016-09-16 US US15/267,880 patent/US9954534B2/en active Active
-
2017
- 2017-09-14 CN CN201721177654.7U patent/CN207249670U/zh active Active
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111027276A (zh) * | 2018-10-09 | 2020-04-17 | 刘保 | 基于多相电平敏感锁存器的集成电路优化系统和方法 |
CN114428753A (zh) * | 2020-10-29 | 2022-05-03 | 施耐德电器工业公司 | 显示数据传输装置和显示数据传输方法 |
CN114167264A (zh) * | 2021-12-03 | 2022-03-11 | 中国人民解放军国防科技大学 | 一种核辐射环境下用于检测数字电路保持时间违例的装置 |
CN114167264B (zh) * | 2021-12-03 | 2024-03-15 | 中国人民解放军国防科技大学 | 一种核辐射环境下用于检测数字电路保持时间违例的装置 |
CN115276613A (zh) * | 2022-08-05 | 2022-11-01 | 珠海錾芯半导体有限公司 | 基于边缘触发器和敏感锁存器的集成电路及其可编程电路 |
CN117215983A (zh) * | 2023-11-09 | 2023-12-12 | 辉芒微电子(深圳)股份有限公司 | I2c接口规避错误起始和停止条件的电路结构及方法 |
CN117215983B (zh) * | 2023-11-09 | 2024-03-22 | 辉芒微电子(深圳)股份有限公司 | I2c接口规避错误起始和停止条件的电路结构及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180083633A1 (en) | 2018-03-22 |
US9954534B2 (en) | 2018-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN207249670U (zh) | 防止保持时间违例的电路 | |
US8937496B1 (en) | Clock monitor | |
US20050131670A1 (en) | Clock distribution in a circuit emulator | |
US8683265B2 (en) | Debug state machine cross triggering | |
US20120150474A1 (en) | Debug state machine cross triggering | |
EP3356966B1 (en) | Interactive multi-step physical synthesis | |
US9529686B1 (en) | Error protection for bus interconnect circuits | |
CN107070795A (zh) | 多通道交换网络中的通道选择 | |
US7568138B2 (en) | Method to prevent firmware defects from disturbing logic clocks to improve system reliability | |
CN106663061A (zh) | 用于可编程逻辑的存储器的虚拟化 | |
US11321511B2 (en) | Reset crossing and clock crossing interface for integrated circuit generation | |
CN112115664A (zh) | 一种多模式多时钟域的芯片集成控制系统 | |
WO2016076963A1 (en) | System and method for preparing partially reconfigurable circuit designs | |
US9000806B2 (en) | Preventing A-B-A race in a latch-based device | |
US9946823B2 (en) | Dynamic control of design clock generation in emulation | |
US9170911B1 (en) | Protocol error monitoring on an interface between hard logic and soft logic | |
US10042692B1 (en) | Circuit arrangement with transaction timeout detection | |
JP2009539186A (ja) | ハードウエアエミュレーションシステムのプロセッサを同期化する方法及び装置 | |
US9864830B1 (en) | Method and apparatus for placement and routing of circuit designs | |
US9805152B1 (en) | Compilation of system designs | |
US10275259B1 (en) | Multi-stage booting of integrated circuits | |
US8229725B1 (en) | Method and apparatus for modeling processor-based circuit models | |
US10043027B1 (en) | Generation of mask-value pairs for managing access to memory segments | |
Haron et al. | Internet of things platform on ARM/FPGA using embedded linux | |
US10230374B1 (en) | Methods and circuits for preventing hold violations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant |