CN114072806B - 用于将电路设计集成的方法和系统 - Google Patents

用于将电路设计集成的方法和系统 Download PDF

Info

Publication number
CN114072806B
CN114072806B CN202080032599.0A CN202080032599A CN114072806B CN 114072806 B CN114072806 B CN 114072806B CN 202080032599 A CN202080032599 A CN 202080032599A CN 114072806 B CN114072806 B CN 114072806B
Authority
CN
China
Prior art keywords
circuit
clock
data
timing
circuit design
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
Application number
CN202080032599.0A
Other languages
English (en)
Other versions
CN114072806A (zh
Inventor
纳米特·瓦尔马
希里什·贾瓦莱
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.)
Ahronix Semiconductor
Original Assignee
Ahronix Semiconductor
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 Ahronix Semiconductor filed Critical Ahronix Semiconductor
Publication of CN114072806A publication Critical patent/CN114072806A/zh
Application granted granted Critical
Publication of CN114072806B publication Critical patent/CN114072806B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

高级时序模式具有源于主专用集成电路(ASIC)并且终止于嵌入式现场可编程门阵列(FPGA)内的寄存器处的路径,从而将接口集群寄存器旁路。终止寄存器可以存在于主ASIC与嵌入式FPGA之间的边界处或者嵌入式FPGA的内部深处。在具有内部发散的时钟主干输入的时序场景中,通过时钟主干将来自主ASIC中的锁相环(PLL)的时钟输出驱动至嵌入式FPGA中,并且从该嵌入式FPGA发散至接口集群寄存器和ASIC边界中。除了时钟发散在时钟进入嵌入式FPGA主干之前出现之外,具有外部发散的时钟主干输入的时序场景与内部发散场景类似。在边界时钟输入场景中,PLL驱动主ASIC和嵌入式FPGA接口集群两者。

Description

用于将电路设计集成的方法和系统
相关申请的交叉引用
本申请是于2019年3月25日提交的美国专利申请第16/363,434号的继续申请,并要求该美国专利申请第16/363,434号的优先权,该美国专利申请的内容通过引用整体并入本文。
技术领域
本公开涉及一种嵌入式现场可编程门阵列时序签发。
背景技术
专用集成电路(ASIC)是针对特定应用构建的定制电路。许多ASIC是通过将多个分立电路设计进行组合来设计的。例如,ASIC可以与执行通用功能的现有电路设计组合来利用用于定制应用的新电路设计。
现场可编程门阵列(FPGA)是在生产之后进行定制的电路。ASIC可以包括FPGA,并且可以通过将定制的电路设计与现有的FPGA设计进行组合来设计ASIC。
在制造集成设计之前,进行签发检查。签发检查对集成设计进行测试,以确定所制造的电路是否将按预期执行。签发检查中的一个是静态时序分析。静态时序分析验证设计中的所有逻辑路径在预期的时钟频率下按照预期操作。
确保静态时序分析成功的一个方法是在主ASIC与集成FPGA之间添加接口集群,使得使用寄存器来保持在设计之间传输的每个数据值。这种方法需要用于寄存器的附加的电路系统,并且为寄存器值的设置和读取添加了延迟。
附图说明
在附图的图中以示例而非限制的方式示出了所公开的技术的一些实施方式。
图1是根据一些示例实施方式的时序模式的高层级示意图。
图2是根据一些示例实施方式的使用具有内部发散的时钟主干输入的时序场景的示意图。
图3是根据一些示例实施方式的使用具有外部发散的时钟主干输入的时序场景的示意图。
图4是根据一些示例实施方式的使用边界时钟输入的时序场景的示意图。
图5是示出根据一些示例实施方式的用于执行本文所述方法的系统的部件的框图。
图6是示出根据本发明的各实施方式的用于将第一电路设计与第二电路设计集成的方法的操作的流程图。
图7是根据一些示例实施方式的将时钟信号和数据提供至嵌入式FPGA的电路的示意图。
图8是根据一些示例实施方式的将时钟信号提供至嵌入式FPGA并且接收来自该嵌入式FPGA的数据的电路的示意图。
图9是根据一些示例实施方式的将数据提供至嵌入式FPGA并且接收来自该嵌入式FPGA的时钟信号的电路的示意图。
图10是根据一些示例实施方式的接收来自嵌入式FPGA的时钟信号和数据的电路的示意图。
具体实施方式
现在将描述用于嵌入式FPGA签发的示例方法、系统和电路。在以下描述中,阐述了具有特定于示例的细节的许多示例以提供对示例实施方式的理解。然而,对于本领域普通技术人员将明显的是,可以在没有这些特定于示例的细节的情况下以及/或者在与此处给出的细节的组合不同的情况下实践这些示例。因此,给出具体实施方式是为了简化说明的目的,而不是限制性的。
高级时序模式具有源于主ASIC并且终止于嵌入式FPGA内的寄存器处的路径,从而将接口集群寄存器旁路。终止寄存器可以存在于主ASIC与嵌入式FPGA之间的边界处或者嵌入式FPGA的内部深处。路径可以包括逻辑元件。这样的路径在集成ASIC时序签发期间不能被精确地建模,这是因为这样的路径取决于特定设计的放置与布线实现。因此,这种模式使用时序预算以对静态时序分析期间的延迟进行建模。
在具有内部发散的时钟主干输入的时序场景中,通过时钟主干将来自主ASIC中的锁相环(PLL)的时钟输出驱动至嵌入式FPGA中,并且从该嵌入式FPGA中发散至接口集群寄存器和ASIC边界中。结果是时钟发散点在时钟树中较晚发生。因此,发散时钟路径短并且具有相对小的延迟。
除了时钟发散在时钟进入嵌入式FPGA主干之前出现之外,具有外部发散的时钟主干输入的时序场景与内部发散场景类似。
在边界时钟输入场景中,PLL驱动主ASIC和嵌入式FPGA接口集群两者。每个接口集群驱动嵌入式FPGA的相关联的逻辑集群中的逻辑。PLL还驱动嵌入式FPGA的时钟主干。这种场景允许时钟发散点在时钟树中晚出现,减少了时钟偏移和片上变化的影响。然而,当在来自不同边界时钟分支(例如,时钟主干和接口集群时钟)的两个寄存器之间创建路径时,这种场景可能导致边界时钟偏移。因此,在将主ASIC与嵌入式FPGA集成时,考虑边界约束。
在这些所描述的场景中的每一个场景中,避免了由现有技术解决方案所需要的接口寄存器中的至少一部分接口寄存器,允许得到的ASIC更小,消耗更少功率,或者更快地执行操作。
图1是根据本发明的各实施方式的时序模式100的高层级示意图。时序模式100使用接口集群120将包含在库(或.LIB)文件中的用于主ASIC 110的第一电路设计与用于嵌入式FPGA 130(也称为FPGA结构)的第二电路设计集成。FPGA设计通常由重复的构建块例如查找表(LUT)、加法器和触发器构成。
主ASIC包括寄存器140。嵌入式FPGA包括寄存器160。接口集群120包括一组接口集群寄存器和对应的多路复用器。为清楚起见,仅示出了单个接口集群寄存器150和对应的多路复用器170。接口集群120使数据能够在主ASIC 110与嵌入式FPGA 130之间传输。
多路复用器170使得能够在两个数据路径之间进行选择。在一个数据路径中,数据直接从寄存器140传输至寄存器160,而不需要从寄存器150中检索。这个数据路径避免了存储和检索寄存器数据中固有的延迟。然而,如果从寄存器140至寄存器160的路径无法满足时序约束(例如,太长),则由寄存器160接收到的数据将不总是准确的,并且计算误差将会产生。
使用多路复用器170的另一路径,来自寄存器140的输出被存储在寄存器150中,并且来自寄存器150的输出被提供至寄存器160。寄存器150示出在接口集群内,但如由时序约束所允许的,该寄存器150可以在嵌入式FPGA 130内。尽管图1示出了寄存器140、150和160之间的直接连接,但是逻辑元件可以存在于寄存器之间的路径上,从而修改数据和引入延迟。
通过多路复用器170至寄存器160的路径在ASIC时序签发期间不能被精确地建模,这是因为路径的时序很大程度上取决于包括第一电路设计和第二电路设计的集成设计的放置与布线实现。因此,集成软件(例如,Achronix ACE)使用时序预算方法来对延迟进行建模。尽管图1为了清楚起见示出了接口集群120中的单个寄存器150,但是由于主ASIC 110和嵌入式FPGA 130两者的复杂性,在实际应用中生成了许多这样的寄存器。
图2是根据一些示例实施方式的使用具有内部发散的时钟主干输入的时序场景200的示意图。时序场景200应用于包括经由接口集群250连接的主ASIC(第一电路设计)和嵌入式FPGA(EFPGA)240(第二电路设计)的集成电路设计。主ASIC包括ASIC设计210(也称为ASIC知识产权(IP)210)和PLL 220。EFPGA 240包括多个逻辑集群例如逻辑集群270A、270B和270C,以及时钟主干260。
PLL 220生成提供至时钟主干260的时钟信号。时钟信号从时钟主干260提供至逻辑集群270A至270C。时钟信号从逻辑集群270A至270C提供至多路复用器230,将接口集群250旁路。
EFPGA 240的逻辑部件负责建立和保持寄存器中的用于由接口集群250访问的值。测量接口输出时钟延迟作为由时钟主干260从PLL 220接收时钟信号的时间与由接口集群250从FPGA结构时钟网络接收对应的时钟信号的时间之间的延迟。
在时钟树中,时序场景200具有在主ASIC与EFPGA 240之间的晚的时钟发散点,使发散时钟路径短、具有相对小的延迟。通过与具有较早的时钟发散点的现有技术解决方案相比,减少了延迟,使得能够制造更高效的集成电路。
图3是根据一些示例实施方式的使用具有外部发散的时钟主干输入的时序场景300的示意图。时序场景300应用于包括经由接口集群340连接的主ASIC(第一电路设计)和EFPGA 330(第二电路设计)的集成电路设计。主ASIC包括ASIC设计310(也称为ASIC IP310)和PLL 320。EFPGA 330包括多个逻辑集群例如逻辑集群360A、360B和360C,以及时钟主干350。
PLL 320生成提供至时钟主干350和ASIC IP 310的时钟信号。时钟信号从时钟主干350提供至逻辑集群360A至360C。将时钟信号从逻辑集群360A至360C提供至接口集群340的对应部分。通过与时序场景200相比,在时钟树中时序场景300具有早得多的时钟发散。
接口集群340与时钟主干350之间的时序延迟近似为1纳秒至2纳秒。逻辑集群与其对应接口之间的时序延迟为约250皮秒。跨单个逻辑集群的时序延迟也为约250皮秒。逻辑集群时钟与同一逻辑集群的输出寄存器之间的时序延迟为约100皮秒。
图4是根据一些示例实施方式的使用边界时钟输入的时序场景400的示意图。时序场景400应用于包括经由接口集群440连接的主ASIC(第一电路设计)和EFPGA 430(第二电路设计)的集成电路设计。主ASIC包括ASIC设计410(也称为ASIC IP 410)和PLL 420。EFPGA430包括多个逻辑集群例如逻辑集群460A、460B和460C,以及时钟主干450。接口集群440包括一个或更多个寄存器。
PLL 420生成提供至时钟主干450、ASIC IP 410以及接口集群440的寄存器的时钟信号。时钟信号从时钟主干450提供至逻辑集群460A至460C。将时钟信号从逻辑集群460A至460C提供至接口集群440的对应部分。因此,接口集群440访问逻辑集群460A至460C以及PLL420两者的时钟。如果在由不同时钟分支驱动的两个寄存器之间存在数据路径,则时序场景400可能导致时钟交叉问题,这可能需要同步电路。
逻辑集群460A至460C中的每一个逻辑集群的接口时钟可以以低偏移驱动其自身集群以及接口集群的对应部分。附加地或替选地,逻辑集群460A至460C中的每一个逻辑集群的接口时钟可以以高偏移驱动其自身集群以及接口集群的对应部分。因此,在各实施方式中,对于每个时钟在具有较多接口时钟与较低偏斜或者具有较少接口时钟与较高偏斜之间进行权衡。
图5是示出根据一些示例实施方式的对FPGA进行编程的计算机500的部件的框图。无需在各实施方式中使用所有部件。例如,客户端、服务器、自主系统和基于云的网络资源可以均使用不同组的部件,或者在服务器的情况下,使用例如较大的存储装置。
计算机500(也称为计算装置500和计算机系统500)形式的一个示例计算装置可以包括全部通过总线540连接的处理器505、存储器存储装置510、可移除存储装置515和不可移除存储装置520。尽管示例计算装置被示出并被描述为计算机500,但是在不同的实施方式中,计算装置可以具有不同的形式。例如,计算装置可以替代地为智能电话、平板电脑、智能手表或者包括与关于图5示出和描述的元件相同或相似的元件的其他计算装置。诸如智能电话、平板电脑和智能手表的装置统称为“移动装置”。此外,尽管各种数据存储元件被示为计算机500的一部分,但该存储装置还可以或替选地包括可经由诸如因特网的网络访问的基于云的存储装置,或基于服务器的存储装置。
存储器存储装置510可以包括易失性存储器545和非易失性存储器550,并且可以存储程序555。计算机500可以包括或访问计算环境,该计算环境包括各种计算机可读介质,例如易失性存储器545、非易失性存储器550、可移除存储装置515和不可移除存储装置520。计算机存储装置包括随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)和电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、致密盘只读存储器(CD ROM)、数字多功能盘(DVD)或其他光盘存储器、磁带盒、磁带、磁盘存储装置或其他磁存储装置、或任何其他能够存储计算机可读指令的介质。
计算机500可以包括或访问计算环境,该计算环境包括输入接口525、输出接口530和通信接口535。输出接口530可以接口至或包括诸如触摸屏的显示装置,显示装置也可以用作输入装置。输入接口525可以接口至或包括以下中的一个或更多个:触摸屏、触摸板、鼠标、键盘、摄像装置、一个或更多个特定于装置的按钮、集成在计算机500内或者经由有线或无线数据连接耦接至计算机500的一个或更多个传感器以及其他输入装置。计算机500可以使用通信接口535在联网环境中操作,以连接至一个或更多个远程计算机例如数据库服务器。远程计算机可以包括个人计算机(PC)、服务器、路由器、网络PC、对等装置或其他公共网络节点等。通信接口535可以连接至局域网(LAN)、广域网(WAN)、蜂窝网络、WiFi网络、蓝牙网络或其他网络。
存储在计算机可读介质上的计算机指令(例如,存储在存储器存储装置510中的程序555)可由计算机500的处理器505执行。硬盘驱动器、CD-ROM以及RAM是包括非暂态计算机可读介质例如存储装置的物品的一些示例。在载波被认为过暂态的程度上,术语“计算机可读介质”和“存储装置”不包括载波。“计算机可读非暂态介质”包括所有类型的计算机可读介质,包括磁存储介质、光存储介质、闪存介质和固态存储介质。应当理解,软件可以安装在计算机中并且与计算机一起销售。替选地,可以获得软件并且将其加载至计算机中,包括通过物理介质或分发系统来获得软件,例如包括从由软件创建者所拥有的服务器或者从并非由软件创建者拥有但由软件创建者使用的服务器来获得软件。例如,软件可以存储在服务器上以通过因特网分发。
程序555被示出为包括配置模块560以及放置与布线模块565。本文描述的模块中的任何一个或更多个模块可以使用硬件(例如,机器的处理器、ASIC、FPGA或其任何合适的组合)来实现。此外,这些模块中的任何两个或更多个模块可以被组合成单个模块,并且本文中针对单个模块描述的功能可以在多个模块之中细分。此外,根据各示例实施方式,本文中描述为在单个机器、数据库或装置内实现的模块可以跨多个机器、数据库或装置分布。
时序模块560生成时序模式的选择。例如,时序模块560可以提供用户接口以允许用户从多个时序模式中选择时序模式。基于所选择的时序模式,时序模块560为与第二电路设计集成的第一电路设计生成边界条件。
基于第一电路设计、第二电路设计和时序模式,放置与布线模块565确定得到的集成电路的物理布局。例如,包括ASIC IP形式的第一电路、EFPGA形式的第二电路的集成电路和接口集群可以基于时序场景200、时序场景300或时序场景400的选择在物理层级处进行布局。
图6是示出根据本发明的各实施方式的用于将第一电路设计与第二电路设计集成的方法600的操作的流程图。方法600包括操作610和620。作为示例而非限制,方法600被描述为由图5的计算机500执行。
在操作610中,基于时序模式,时序模块560通过在第二电路内的一个或更多个寄存器处终止第一电路设计与第二电路设计的第二电路之间的时序来为第一电路(例如,ASIC)的第一电路设计生成边界条件,第二电路是可编程逻辑电路(例如,EFPGA)。例如,时序场景200至400中的一个或更多个时序场景可以在时序模式100下使用以确定边界条件。
在操作620中,基于所生成的边界条件,放置与布线模块565将第一电路设计与第二电路设计集成为集成电路设计。集成电路设计可以被制造成集成电路。当与使用现有技术时序模式制造的集成电路相比时,通过使用时序模式100得到的集成电路具有优越的性能,这是因为在第一电路设计与第二电路设计之间的接口处减少了时钟延迟。
在一些示例实施方式中,边界条件的生成包括执行第一电路的时序分析。例如,可以确定第一电路的输出中的每一个输出处相对于第一电路的时钟信号的延迟。在一些示例实施方式中,第一电路设计与第二电路设计的集成包括基于第一电路的时序分析来确定第二电路中寄存器的位置。
考虑来自第一电路的单个输出,通过将第一电路边界处的延迟与到第二电路中的一组寄存器中的每一个寄存器的延迟进行组合,可以确定到每个寄存器的总延迟,并且将总延迟与预定阈值(例如,最大允许延迟)进行比较。寄存器中满足时序要求的一个寄存器被选择为用于存储来自第一电路的输出的寄存器。对来自第一电路的每个输出重复这一处理,使用于第一电路的终止寄存器被放置在第二电路内的适当位置处。
可以在第一电路设计与第二电路设计的集成之前制造第一电路。例如,可以制造将第一电路的ASIC与未编程的FPGA结构进行组合的电路。在操作620中确定的集成电路设计是通过对现有的FPGA结构进行编程来实现的。
图7是根据一些示例实施方式的将来自第一电路710的时钟信号和数据提供至嵌入式FPGA 720的电路700的示意图。第一电路710包括时钟发生器730;寄存器(也称为触发器)740A、740B、740C和740D;以及逻辑块750A、750B、750C、750D、750E、750F、750G和750H。嵌入式FPGA 720包括寄存器760以及逻辑块770A和770B。
逻辑块750A至750H以及770A至770B可以包括任意数量的基本电路元件。因此,在时钟信号或数据信号至逻辑元件的输入与来自逻辑元件的输出之间存在时间滞后。这在图7中示出为Tc1至Tc10,其指示由时钟发生器730生成的时钟信号上的10种不同的延迟;以及Td1至Td11,其指示数据信号上的11个不同的延迟。如果至逻辑块的时钟信号和数据信号不同步,则数据信号必须存储在寄存器中,使得该数据信号可以在逻辑元件准备好访问数据时由逻辑块访问。
因此,时序约束协助寄存器740A至740D以及寄存器760的放置。如果满足针对逻辑块的时序约束并且时钟信号和数据信号同步(在误差裕度内),则无需插入寄存器。如果时钟信号和数据信号不同步,则添加寄存器以满足时序约束。在读取寄存器的值之前,由于该值设置在时钟周期中,因此寄存器的添加在电路中引入延迟。
在电路700中,将时钟和数据两者输入至嵌入式FPGA 720,但是由时钟信号和数据所采用的路由是不同的。因此,延迟Td9与Tc3可能不相等。附加地,逻辑块770A和770B可以具有不相等的延迟,从而增加或减少寄存器760处的时序差。
为了确定针对电路700的时序约束,限定了裕度。在一些示例实施方式中,启动时钟具有用于建立的+5%片上变化(OCV)的裕度和用于保持的-5%OCV的裕度;数据路径具有用于建立的+5%OCV的裕度和用于保持的-5%OCV的裕度;并且捕获时钟具有用于建立的-5%OCV的裕度和用于保持的+5%OCV的裕度。附加地,进行了假设,以使得能够执行计算。在一些示例实施方式中,假设:建立来自FF1(寄存器740A)的路径对于正沿启动时钟是关键的;保持来自FF2(寄存器740B)的路径对于正沿启动时钟是关键的;建立来自FF3(寄存器740C)的路径对于负沿启动时钟是关键的;保持来自FF4(寄存器740D)的路径对于负沿启动时钟是关键的;并且每个延迟具有最大值和最小值以及上升值和下降值。附加值包括启动时钟延迟值、数据路径延迟值和捕获时钟延迟值。启动时钟延迟值、数据路径延迟值和捕获时钟延迟值通过第一电路710的分析确定。例如,通过模拟时钟发生器730、寄存器740A至740D和逻辑元件750A至750H,确定了标称时钟时序与时钟信号和数据信号至第一电路710的边缘或嵌入式FPGA 720的传播之间的各种延迟值。基于这些裕度和值,定义了以下变量:
Ta_Mr–最大上升延迟
Ta_Mf–最大下降延迟
Ta_M–最大延迟
Ta_mr–最小上升延迟
Ta_mf–最小下降延迟
Ta_m–最小延迟
Ts–捕获时钟的建立时间
Th–捕获时钟的保持时间
Tp–启动时钟的周期
使用裕度、所定义的变量和通过逻辑块的延迟,限定了使得能够求解时序约束的式。
对于通过data_in上升的数据的正沿建立关键时序:
1.05*(Tc1_Mr+Tc6_Mr+Tc7_Mr)+1.05*(Td1_Mr+Td2_Mf+Td4_Mf+Td9_Mr+Td10_Mr+Td11_Mf)<=0.95*(Tc1_mr+Tc2_mr+Tc3_mr+Tc4_mr+Tc5_mr)+Tp-Ts+CRPR1
对于通过data_in下降的数据的正沿建立关键时序:
1.05*(Tc1_Mr+Tc6_Mr+Tc7_Mr)+1.05*(Td1_Mr+Td2_Mf+Td4_Mf+Td9_Mf+Td10_Mf+Td11_Mf)<=0.95*(Tc1_mr+Tc2_mr+Tc3_mr+Tc4_mr+Tc5_mr)+Tp-Ts+CRPR2
对于通过data_in上升的数据的负沿建立关键时序:
1.05*(Tc1_Mf+Tc6_Mf+Tc9_Mf)+1.05*(Td5_Mr+Td6_Mf+Td8_Mf+Td9_Mr+Td10_Mr+Td11_Mf)+Tp/2<=0.95*(Tc1_mr+Tc2_mr+Tc3_mr+Tc4_mr+Tc5_mr)+Tp-Ts+CRPR3
对于通过data_in下降的数据的负沿建立关键时序:
1.05*(Tc1_Mf+Tc6_Mf+Tc9_Mf)+1.05*(Td5_Mr+Td6_Mf+Td8_Mf+Td9_Mf+Td10_Mf+Td11_Mf)+Tp/2<=0.95*(Tc1_mr+Tc2_mr+Tc3_mr+Tc4_mr+Tc5_mr)+Tp-Ts+CRPR4
对于通过data_in上升的数据的正沿保持关键时序:
0.95*(Tc1_mr+Tc6_mr+Tc8_mr)+0.95*(Td3_mr+Td4_mf+Td9_mr+Td10_mr+Td11_mf)>=1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr+Tc4_Mr+Tc5_Mr)+Th+CRPR5
对于通过data_in下降的数据的正沿保持关键时序:
0.95*(Tc1_mr+Tc6_mr+Tc8_mr)+0.95*(Td3_mr+Td4_mf+Td9_mf+Td10_mf+Td11_mf)>=1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr+Tc4_Mr+Tc5_Mr)+Th+CRPR6
对于通过data_in上升的数据的负沿保持关键时序:
0.95*(Tc1_mf+Tc6_mf+Tc10_mf)+0.95*(Td7_mr+Td8_mf+Td9_mr+Td10_mr+Td11_mf)+Tp/2>=1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr+Tc4_Mr+Tc5_Mr)+Th+CRPR7
对于通过data_in下降的数据的负沿保持关键时序:
0.95*(Tc1_mf+Tc6_mf+Tc10_mf)+0.95*(Td7_mr+Td8_mf+Td9_mf+Td10_mf+Td11_mf)+Tp/2>=1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr+Tc4_Mr+Tc5_Mr)+Th+CRPR8
在求解八个时钟再收敛悲观移除(clock reconvergence pessimism removal,CRPR)值之后,定义时钟和延迟:
##时钟定义与延迟
create_clock CLK-period Tp[get_ports clk_in]
create_clock VCLK-period Tp
set_clock_latency-source-late-rise[expr 1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr)][get_clocks CLK]
set_clock_latency-source-late-fall[expr 1.05*(Tc1_Mf+Tc2_Mf+Tc3_Mf)][get_clocks CLK]
set_clock_latency-source-early-rise[expr 0.95*(Tc1_mr+Tc2_mr+Tc3_mr)][get_clocks CLK]
set_clock_latency-source-early-fall[expr 0.95*(Tc1_mf+Tc2_mf+Tc3_mf)][get_clocks CLK]
##数据延迟
set_input_delay-clock VCLK-rise-max-add_delay[expr 1.05*(Tc1_Mr+Tc6_Mr+Tc7_Mr)+1.05*(Td1_Mr+Td2_Mf+Td4_Mf+Td9_Mr)-CRPR1][get_ports data_in]
set_input_delay-clock VCLK-fall-max-add_delay[expr 1.05*(Tc1_Mr+Tc6_Mr+Tc7_Mr)+1.05*(Td1_Mr+Td2_Mf+Td4_Mf+Td9_Mf)-CRPR2][get_ports data_in]
set_input_delay-clock VCLK-clock_fall-rise-max-add_delay[expr 1.05*(Tc1_Mf+Tc6_Mf+Tc9_Mf)+1.05*(Td5_Mr+Td6_Mf+Td8_Mf+Td9_Mr)-CRPR3][get_portsdata_in]
set_input_delay-clock VCLK-clock_fall-fall-max-add_delay[expr 1.05*(Tc1_Mf+Tc6_Mf+Tc9_Mf)+1.05*(Td5_Mr+Td6_Mf+Td8_Mf+Td9_Mf)-CRPR4][get_portsdata_in]
set_input_delay-clock VCLK-rise-min-add_delay[expr 0.95*(Tc1_mr+Tc6_mr+Tc7_mr)+0.95*(Td3_mr+Td4_mf+Td9_mr)-CRPR5][get_ports data_in]
set_input_delay-clock VCLK-fall-min-add_delay[expr 0.95*(Tc1_mr+Tc6_mr+Tc7_mr)+0.95*(Td3_mr+Td4_mf+Td9_mf)-CRPR6][get_ports data_in]
set_input_delay-clock VCLK-clock_fall-rise-min-add_delay[expr 0.95*(Tc1_mf+Tc6_mf+Tc10_mf)+0.95*(Td7_mr+Td8_mf+Td9_mr)-CRPR7][get_ports data_in]
set_input_delay-clock VCLK-clock_fall-fall-min-add_delay[expr 0.95*(Tc1_mr+Tc6_mr+Tc7_mr)+0.95*(Td3_mr+Td4_mf+Td9_mf)-CRPR8][get_ports data_in]
使用所定义的时钟执行时序检查:
对于通过data_in上升的数据的正沿建立关键时序:
<clock_rise_max_rise_input_delay on data_in>+1.05*(Td10_Mr+Td11_Mf)<=<min_rise_latency on clk_in>+0.95*(Tc4_mr+Tc5_mr)+Tp-Ts=>1.05*(Tc1_Mr+Tc6_Mr+Tc7_Mr)+1.05*(Td1_Mr+Td2_Mf+Td4_Mf+Td9_Mr)-CRPR1+1.05*(Td10_Mr+Td11_Mf)<=0.95*(Tc1_mr+Tc2_mr+Tc3_mr)+0.95*(Tc4_mr+Tc5_mr)+Tp-Ts
对于通过data_in下降的数据的正沿建立关键时序:
<clock_rise_max_fall_input_delay on data_in>+1.05*(Td10_Mf+Td11_Mf)<=<min_rise_latency on clk_in>+0.95*(Tc4_mr+Tc5_mr)+Tp-Ts=>1.05*(Tc1_Mr+Tc6_Mr+Tc7_Mr)+1.05*(Td1_Mr+Td2_Mf+Td4_Mf+Td9_Mf)-CRPR2+1.05*(Td10_Mf+Td11_Mf)<=0.95*(Tc1_mr+Tc2_mr+Tc3_mr)+0.95*(Tc4_mr+Tc5_mr)+Tp-Ts
对于通过data_in上升的数据的负沿建立关键时序:
<clock_fall_max_rise_input_delay on data_in>+1.05*(Td10_Mr+Td11_Mf)+Tp/2<=<min_rise_latency on clk_in>+0.95*(Tc4_mr+Tc5_mr)+Tp-Ts=>1.05*(Tc1_Mf+Tc6_Mf+Tc9_Mf)+1.05*(Td5_Mr+Td6_Mf+Td8_Mf+Td9_Mr)-CRPR3+1.05*(Td10_Mr+Td11_Mf)+Tp/2<=0.95*(Tc1_mr+Tc2_mr+Tc3_mr)+0.95*(Tc4_mr+Tc5_mr)+Tp-Ts
对于通过data_in下降的数据的负沿建立关键时序:
<clock_fall_max_fall_input_delay on data_in>+1.05*(Td10_Mf+Td11_Mf)+Tp/2<=<min_rise_latency on clk_in>+0.95*(Tc4_mr+Tc5_mr)+Tp-Ts=>1.05*(Tc1_Mf+Tc6_Mf+Tc9_Mf)+1.05*(Td5_Mr+Td6_Mf+Td8_Mf+Td9_Mf)-CRPR4+1.05*(Td10_Mf+Td11_Mf)+Tp/2<=0.95*(Tc1_mr+Tc2_mr+Tc3_mr)+0.95*(Tc4_mr+Tc5_mr)+Tp-Ts
对于通过data_in上升的数据的正沿保持关键时序:
<clock_rise_min_rise_input_delay on data_in>+0.95*(Td10_mr+Td11_mf)>=<max_rise_latency on clk_in>+1.05*(Tc4_Mr+Tc5_Mr)+Th=>0.95*(Tc1_mr+Tc6_mr+Tc8_mr)+0.95*(Td3_mr+Td4_mf+Td9_mr)-CRPR5+0.95*(Td10_mr+Td11_mf)>=1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr)+1.05*(Tc4_Mr+Tc5_Mr)+Th
对于通过data_in下降的数据的正沿保持关键时序:
<clock_rise_min_fall_input_delay on data_in>+0.95*(Td10_mf+Td11_mf)>=<max_rise_latency on clk_in>+1.05*(Tc4_Mr+Tc5_Mr)+Th=>0.95*(Tc1_mr+Tc6_mr+Tc8_mr)+0.95*(Td3_mr+Td4_mf+Td9_mf)-CRPR6+0.95*(Td10_mf+Td11_mf)>=1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr)+1.05*(Tc4_Mr+Tc5_Mr)+Th
对于通过data_in上升的数据的负沿保持关键时序:
<clock_fall_min_rise_input_delay on data_in>+0.95*(Td10_mr+Td11_mf)+Tp/2>=<max_rise_latency on clk_in>+1.05*(Tc4_Mr+Tc5_Mr)+Th=>0.95*(Tc1_mf+Tc6_mf+Tc10_mf)+0.95*(Td7_mr+Td8_mf+Td9_mr)-CRPR7+0.95*(Td10_mr+Td11_mf)+Tp/2>=1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr)+1.05*(Tc4_Mr+Tc5_Mr)+Th
对于通过data_in下降的数据的负沿保持关键时序:
<clock_fall_min_fall_input_delay on data_in>+0.95*(Td10_mf+Td11_mf)+Tp/2>=<max_rise_latency on clk_in>+1.05*(Tc4_Mr+Tc5_Mr)+Th=>0.95*(Tc1_mf+Tc6_mf+Tc10_mf)+0.95*(Td7_mr+Td8_mf+Td9_mf)-CRPR8+0.95*(Td10_mf+Td11_mf)+Tp/2>=1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr)+1.05*(Tc4_Mr+Tc5_Mr)+Th
图8是根据一些示例实施方式的将来自第一电路710的时钟信号提供至嵌入式FPGA 720的电路800的示意图,第一电路710接收来自嵌入式FPGA 720的数据。第一电路710、嵌入式FPGA 720、时钟发生器730以及逻辑块750A至750C是与图7所示的电路相同的电路,但是图8处理从嵌入式FPGA 720至第一电路710的返回数据路径。因此,第一电路710还包括逻辑块850A、850B、850C和850D以及支持寄存器840A、840B、840C和840D,这些寄存器在图7中均未示出。类似地,嵌入式FPGA 720还包括逻辑块870A和870B以及支持寄存器860,其在图7中未示出。如图7所示,时序约束协助寄存器840A至840D以及寄存器860的放置。
为了清楚起见,图7至图8均示出了将第一电路710与嵌入式FPGA连接的时钟与数据路径的单个示例,但是应当理解,实际电路可能包括第一电路710与嵌入式FPGA 720之间的在两个方向上的许多数据路径。
用于电路700的裕度、假设和变量定义与用于电路800的相同。限定了使得能够求解时序约束的式。
对于通过data_in上升的数据的正沿建立关键时序:
1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr+Tc4_Mr+Tc5_Mr)+1.05*(Td11_Mf+Td10_Mr+Td9_Mr+Td4_Mf+Td2_Mf+Td1_Mr)<=0.95*(Tc1_mr+Tc6_mr+Tc7_mr)+Tp-Ts+CRPR1
对于通过data_in下降的数据的正沿建立关键时序:
1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr+Tc4_Mr+Tc5_Mr)+1.05*(Td11_Mf+Td10_Mf+Td9_Mf+Td4_Mf+Td2_Mf+Td1_Mr)<=0.95*(Tc1_mr+Tc6_mr+Tc7_mr)+Tp-Ts+CRPR2
对于通过data_in上升的数据的负沿建立关键时序:
1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr+Tc4_Mr+Tc5_Mr)+1.05*(Td11_Mf+Td10_Mr+Td9_Mr+Td8_Mf+Td6_Mf+Td5_Mr)<=0.95*(Tc1_mf+Tc6_mf+Tc9_mf)+Tp/2-Ts+CRPR3
对于通过data_in下降的数据的负沿建立关键时序:
1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr+Tc4_Mr+Tc5_Mr)+1.05*(Td11_Mf+Td10_Mf+Td9_Mf+Td8_Mf+Td6_Mf+Td5_Mr)<=0.95*(Tc1_mf+Tc6_mf+Tc9_mf)+Tp/2-Ts+CRPR4
对于通过data_in上升的数据的正沿保持关键时序:
0.95*(Tc1_mr+Tc2_mr+Tc3_mr+Tc4_mr+Tc5_mr)+0.95*(Td11_mf+Td10_mr+Td9_mr+Td4_mf+Td3_mr)>=1.05*(Tc1_Mr+Tc6_Mr+Tc8_Mr)+Th+CRPR5
对于通过data_in下降的数据的正沿保持关键时序:
0.95*(Tc1_mr+Tc2_mr+Tc3_mr+Tc4_mr+Tc5_mr)+0.95*(Td11_mf+Td10_mf+Td9_mf+Td4_mf+Td3_mr)>=1.05*(Tc1_Mr+Tc6_Mr+Tc8_Mr)+Th+CRPR6
对于通过data_in上升的数据的负沿保持关键时序:
0.95*(Tc1_mr+Tc2_mr+Tc3_mr+Tc4_mr+Tc5_mr)+0.95*(Td11_mf+Td10_mr+Td9_mr+Td8_mf+Td7_mr)>=1.05*(Tc1_Mf+Tc6_Mf+Tc10_Mf)+Th-Tp/2+CRPR7
对于通过data_in下降的数据的负沿保持关键时序:
0.95*(Tc1_mr+Tc2_mr+Tc3_mr+Tc4_mr+Tc5_mr)+0.95*(Td11_mf+Td10_mf+Td9_mf+Td8_mf+Td7_mr)>=1.05*(Tc1_Mf+Tc6_Mf+Tc10_Mf)+Th-Tp/2+CRPR8
在求解八个CRPR值之后,定义时钟和延迟:
##时钟定义与延迟
create_clock CLK-period Tp[get_ports clk_in]
create_clock VCLK-period Tp
set_clock_latency-source-late-rise[expr 1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr)][get_clocks CLK]
set_clock_latency-source-late-fall[expr 1.05*(Tc1_Mf+Tc2_Mf+Tc3_Mf)][get_clocks CLK]
set_clock_latency-source-early-rise[expr 0.95*(Tc1_mr+Tc2_mr+Tc3_mr)][get_clocks CLK]
set_clock_latency-source-early-fall[expr 0.95*(Tc1_mf+Tc2_mf+Tc3_mf)][get_clocks CLK]
##数据延迟
set_output_delay-clock VCLK-rise-max-add_delay[expr 1.05*(Td9_Mr+Td4_Mf+Td2_Mf+Td1_Mr)-0.95*(Tc1_mr+Tc6_mr+Tc7_mr)+Ts-CRPR1][get_ports data_out]
set_output_delay-clock VCLK-fall-max-add_delay[expr 1.05*(Td9_Mf+Td4_Mf+Td2_Mf+Td1_Mr)-0.95*(Tc1_mr+Tc6_mr+Tc7_mr)+Ts-CRPR2][get_ports data_out]
set_output_delay-clock VCLK-clock_fall-rise-max-add_delay[expr 1.05*(Td9_Mr+Td8_Mf+Td6_Mf+Td5_Mr)-0.95*(Tc1_mf+Tc6_mf+Tc9_mf)+Ts-CRPR3][get_portsdata_out]
set_output_delay-clock VCLK-clock_fall-fall-max-add_delay[expr 1.05*(Td9_Mf+Td8_Mf+Td6_Mf+Td5_Mr)-0.95*(Tc1_mf+Tc6_mf+Tc9_mf)+Ts-CRPR4][get_portsdata_out]
set_output_delay-clock VCLK-rise-min-add_delay[expr 0.95*(Td9_mr+Td4_mf+Td3_mr)-1.05*(Tc1_Mr+Tc6_Mr+Tc8_Mr)-Th-CRPR5][get_ports data_out]
set_output_delay-clock VCLK-fall-min-add_delay[expr 0.95*(Td9_mf+Td4_mf+Td3_mr)-1.05*(Tc1_Mr+Tc6_Mr+Tc8_Mr)-Th-CRPR6][get_ports data_out]
set_output_delay-clock VCLK-clock_fall-rise-min-add_delay[expr 0.95*(Td9_mr+Td8_mf+Td7_mr)-1.05*(Tc1_Mf+Tc6_Mf+Tc10_Mf)-Th-CRPR7][get_ports data_out]
set_output_delay-clock VCLK-clock_fall-fall-min-add_delay[expr 0.95*(Td9_mf+Td8_mf+Td7_mr)-1.05*(Tc1_Mf+Tc6_Mf+Tc10_Mf)-Th-CRPR8][get_ports data_out]
使用所定义的时钟执行时序检查:
对于通过data_in上升的数据的正沿建立关键时序:
<clock_rise_max_rise_input_delay on data_in>+1.05*(Td10_Mr+Td11_Mf)<=<min_rise_latency on clk_in>+0.95*(Tc4_mr+Tc5_mr)+Tp-Ts=>1.05*(Tc1_Mr+Tc6_Mr+Tc7_Mr)+1.05*(Td1_Mr+Td2_Mf+Td4_Mf+Td9_Mr)-CRPR1+1.05*(Td10_Mr+Td11_Mf)<=0.95*(Tc1_mr+Tc2_mr+Tc3_mr)+0.95*(Tc4_mr+Tc5_mr)+Tp-Ts
对于通过data_in下降的数据的正沿建立关键时序:
<clock_rise_max_fall_input_delay on data_in>+1.05*(Td10_Mf+Td11_Mf)<=<min_rise_latency on clk_in>+0.95*(Tc4_mr+Tc5_mr)+Tp-Ts=>1.05*(Tc1_Mr+Tc6_Mr+Tc7_Mr)+1.05*(Td1_Mr+Td2_Mf+Td4_Mf+Td9_Mf)-CRPR2+1.05*(Td10_Mf+Td11_Mf)<=0.95*(Tc1_mr+Tc2_mr+Tc3_mr)+0.95*(Tc4_mr+Tc5_mr)+Tp-Ts
对于通过data_in上升的数据的负沿建立关键时序:
<clock_fall_max_rise_input_delay on data_in>+1.05*(Td10_Mr+Td11_Mf)+Tp/2<=<min_rise_latency on clk_in>+0.95*(Tc4_mr+Tc5_mr)+Tp-Ts=>1.05*(Tc1_Mf+Tc6_Mf+Tc9_Mf)+1.05*(Td5_Mr+Td6_Mf+Td8_Mf+Td9_Mr)-CRPR3+1.05*(Td10_Mr+Td11_Mf)+Tp/2<=0.95*(Tc1_mr+Tc2_mr+Tc3_mr)+0.95*(Tc4_mr+Tc5_mr)+Tp-Ts
对于通过data_in下降的数据的负沿建立关键时序:
<clock_fall_max_fall_input_delay on data_in>+1.05*(Td10_Mf+Td11_Mf)+Tp/2<=<min_rise_latency on clk_in>+0.95*(Tc4_mr+Tc5_mr)+Tp-Ts=>1.05*(Tc1_Mf+Tc6_Mf+Tc9_Mf)+1.05*(Td5_Mr+Td6_Mf+Td8_Mf+Td9_Mf)-CRPR4+1.05*(Td10_Mf+Td11_Mf)+Tp/2<=0.95*(Tc1_mr+Tc2_mr+Tc3_mr)+0.95*(Tc4_mr+Tc5_mr)+Tp-Ts
对于通过data_in上升的数据的正沿保持关键时序:
<clock_rise_min_rise_input_delay on data_in>+0.95*(Td10_mr+Td11_mf)>=<max_rise_latency on clk_in>+1.05*(Tc4_Mr+Tc5_Mr)+Th=>0.95*(Tc1_mr+Tc6_mr+Tc8_mr)+0.95*(Td3_mr+Td4_mf+Td9_mr)-CRPR5+0.95*(Td10_mr+Td11_mf)>=1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr)+1.05*(Tc4_Mr+Tc5_Mr)+Th
对于通过data_in下降的数据的正沿保持关键时序:
<clock_rise_min_fall_input_delay on data_in>+0.95*(Td10_mf+Td11_mf)>=<max_rise_latency on clk_in>+1.05*(Tc4_Mr+Tc5_Mr)+Th=>0.95*(Tc1_mr+Tc6_mr+Tc8_mr)+0.95*(Td3_mr+Td4_mf+Td9_mf)-CRPR6+0.95*(Td10_mf+Td11_mf)>=1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr)+1.05*(Tc4_Mr+Tc5_Mr)+Th
对于通过data_in上升的数据的负沿保持关键时序:
<clock_fall_min_rise_input_delay on data_in>+0.95*(Td10_mr+Td11_mf)+Tp/2>=<max_rise_latency on clk_in>+1.05*(Tc4_Mr+Tc5_Mr)+Th=>0.95*(Tc1_mf+Tc6_mf+Tc10_mf)+0.95*(Td7_mr+Td8_mf+Td9_mr)-CRPR7+0.95*(Td10_mr+Td11_mf)+Tp/2>=1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr)+1.05*(Tc4_Mr+Tc5_Mr)+Th
对于通过data_in下降的数据的负沿保持关键时序:
<clock_fall_min_fall_input_delay on data_in>+0.95*(Td10_mf+Td11_mf)+Tp/2>=<max_rise_latency on clk_in>+1.05*(Tc4_Mr+Tc5_Mr)+Th=>0.95*(Tc1_mf+Tc6_mf+Tc10_mf)+0.95*(Td7_mr+Td8_mf+Td9_mf)-CRPR8+0.95*(Td10_mf+Td11_mf)+Tp/2>=1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr)+1.05*(Tc4_Mr+Tc5_Mr)+Th
图9是根据一些示例实施方式的将来自第一电路910的数据提供至嵌入式FPGA920的电路900的示意图,第一电路910接收来自嵌入式FPGA 920的时钟信号。第一电路910包括寄存器970A和970B以及逻辑块960A、960B、960C和960D。嵌入式FPGA 920包括时钟发生器930、寄存器940和逻辑块950。
逻辑块950以及960A至960D可以包括任意数量的基本电路元件。因此,在时钟信号或数据信号至逻辑元件的输入与来自逻辑元件的输出之间存在时间滞后。这在图9中示出为Tc1至Tc5,其指示由时钟发生器930所生成的时钟信号上的五种不同的延迟,以及示出为Td1至Td6,其指示数据信号上的六种不同的延迟。如图7至图8,如果至逻辑块的时钟信号和数据信号不同步,则数据信号必须存储在寄存器中,使得该数据信号可以在逻辑元件准备好访问数据时由逻辑块访问。
因此,时序约束协助寄存器940以及寄存器970A至970B的放置。在电路900中,时钟信号被输入至第一电路910并且数据从第一电路910输出。因此,Tc6(经由嵌入式FPGA 920内的路径从时钟发生器930至寄存器940的时间)与Td6(经由通过第一电路910(包括用于生成寄存器940的数据的逻辑块)的路径从时钟发生器930至寄存器940的时间)之间的延迟差可能相当大。因此,可以使用中间寄存器970A至970B来满足时序约束。
为了确定针对电路900的时序约束,限定了裕度。在一些示例实施方式中,启动时钟具有用于建立的+5%OCV的裕度和用于保持的-5%OCV的裕度;数据路径具有用于建立的+5%OCV的裕度和用于保持的-5%OCV的裕度;以及捕获时钟具有用于建立的-5%OCV的裕度和用于保持的+5%OCV的裕度。附加地,进行了假设,以使得能够执行计算。在一些示例实施方式中,假设:建立来自FF1(寄存器970A)的路径对于正沿启动时钟是关键的;保持来自FF2(寄存器970B)的路径对于正沿启动时钟是关键的;并且每个延迟具有最大值和最小值以及上升值和下降值。
使用裕度、变量和通过逻辑块的延迟,限定了使得能够求解时序约束的式。
对于通过data_in上升的数据的正沿建立关键时序:
1.05(Tc1_Mr+Tc2_Mr+Tc3_Mr+Tc4_Mr)+1.05*(Td1_Mr+Td3_Mr+Td4_Mr+Td5_Mr+Td6_Mr)<=0.95*(Tc6_mr)+Tp-Ts+CRPR1
对于通过data_in下降的数据的正沿建立关键时序:
1.05(Tc1_Mr+Tc2_Mr+Tc3_Mr+Tc4_Mr)+1.05*(Td1_Mr+Td3_Mr+Td4_Mf+Td5_Mf+Td6_Mr)<=0.95*(Tc6_mr)+Tp-Ts+CRPR2
对于通过data_in上升的数据的正沿保持关键时序:
0.95*(Tc1_mr+Tc2_mr+Tc3_mr+Tc5_mr)+0.95*(Td2_mr+Td3_mr+Td4_mr+Td5_mr+Td6_mr)>=1.05*(Tc6_Mr)+Th+CRPR3
对于通过data_in下降的数据的正沿保持关键时序:
0.95*(Tc1_mr+Tc2_mr+Tc3_mr+Tc5_mr)+0.95*(Td2_mr+Td3_mr+Td4_mf+Td5_mf+Td6_mr)>=1.05*(Tc6_Mr)+Th+CRPR4
在求解四个CRPR值之后,定义时钟和延迟:
##时钟定义与延迟
create_clock CLK-period Tp[get_ports clk_out]
create_clock VCLK-period Tp
set_clock_latency-source 0.0[get_clocks CLK]
##数据延迟
set_input_delay-clock VCLK-rise-max-add_delay[expr 1.05*(Tc2_Mr+Tc3_Mr+Tc4_Mr)+1.05*(Td1_Mr+Td3_Mr+Td4_Mr)-CRPR1][get_ports data_in]
set_input_delay-clock VCLK-fall-max-add_delay[expr 1.05*(Tc2_Mr+Tc3_Mr+Tc4_Mr)+1.05*(Td1_Mr+Td3_Mr+Td4_Mf)-CRPR2][get_ports data_in]
set_input_delay-clock VCLK-rise-min-add_delay[expr 0.95*(Tc2_mr+Tc3_mr+Tc5_mr)+0.95*(Td2_mr+Td3_mr+Td4_mr)-CRPR3][get_ports data_in]
set_input_delay-clock VCLK-fall-min-add_delay[expr 0.95*(Tc2_mr+Tc3_mr+Tc5_mr)+0.95*(Td2_mr+Td3_mr+Td4_mf)-CRPR4][get_ports data_in]
使用所定义的时钟执行时序检查:
对于通过data_in上升的数据的正沿建立关键时序:
1.05*(Tc1_Mr)+<clock_rise_max_rise_input_delay on data_in>+1.05*(Td5_Mr+Td6_Mr)<=<min_rise_latency on clk_in>+0.95*(Tc6_mr)+Tp-Ts=>1.05*(Tc1_Mr)+1.05*(Tc2_Mr+Tc3_Mr+Tc4_Mr)+1.05*(Td1_Mr+Td3_Mr+Td4_Mr)-CRPR1+1.05*(Td5_Mr+Td6_Mr)<=0.0+0.95*(Tc6_mr)+Tp-Ts
对于通过data_in下降的数据的正沿建立关键时序:
1.05*(Tc1_Mr)+<clock_rise_max_fall_input_delay on data_in>+1.05*(Td5_Mf+Td6_Mr)<=<min_rise_latency on clk_in>+0.95*(Tc6_mr)+Tp-Ts=>1.05*(Tc1_Mr)+1.05*(Tc2_Mr+Tc3_Mr+Tc4_Mr)+1.05*(Td1_Mr+Td3_Mr+Td4_Mf)-CRPR2+1.05*(Td5_Mf+Td6_Mr)<=0.0+0.95*(Tc6_mr)+Tp-Ts
对于通过data_in上升的数据的正沿保持关键时序:
0.95*(Tc1_mr)+<clock_rise_min_rise_input_delay on data_in>+0.95*(Td5_mr+Td6_mr)>=<max_rise_latency on clk_in>+1.05*(Tc6_Mr)+Th=>0.95*(Tc1_mr)+0.95*(Tc2_mr+Tc3_mr+Tc5_mr)+0.95*(Td2_mr+Td3_mr+Td4_mr)-CRPR3+0.95*(Td5_mr+Td6_mr)>=0.0+1.05*(Tc6_Mr)+Th
对于通过data_in下降的数据的正沿保持关键时序:
0.95*(Tc1_mr)+<clock_rise_min_fall_input_delay on data_in>+0.95*(Td5_mf+Td6_mr)>=<max_rise_latency on clk_in>+1.05*(Tc6_Mr)+Th=>0.95*(Tc1_mr)+0.95*(Tc2_mr+Tc3_mr+Tc5_mr)+0.95*(Td2_mr+Td3_mr+Td4_mf)-CRPR4+0.95*(Td5_mf+Td6_mr)>=0.0+1.05*(Tc6_Mr)+Th
图10是根据一些示例实施方式的包括第一电路1010和嵌入式FPGA 1020的电路1000的示意图,第一电路1010将时钟信号提供至嵌入式FPGA 1020。第一电路1010包括时钟发生器1030、分频时钟发生器1040、逻辑块1050A和1050B以及寄存器1060。嵌入式FPGA1020包括逻辑块1070和寄存器1080。
逻辑块1050A、1050B和1070可以包括任意数量的基本电路元件。因此,在时钟信号或数据信号至逻辑元件的输入与来自逻辑元件的输出之间存在时间滞后。这在图10中示出为Tc1至Tc4,其指示由时钟发生器1030所生成的时钟信号上的四种不同的延迟,以及示出为Td1至Td3,其指示数据信号上的三种不同的延迟。如图7至图8,如果至逻辑块的时钟信号和数据信号不同步,则数据信号必须存储在寄存器中,使得该数据信号可以在逻辑元件准备好访问数据时由逻辑块访问。
为了确定针对电路1000的时序约束,限定了裕度。在一些示例实施方式中,启动时钟具有用于建立的+5%OCV的裕度和用于保持的-5%OCV的裕度;数据路径具有用于建立的+5%OCV的裕度和用于保持的-5%OCV的裕度;以及捕获时钟具有用于建立的-5%OCV的裕度和用于保持的+5%OCV的裕度。附加地,进行了假设,以使得能够执行计算。在一些示例实施方式中,假设:每个延迟具有最大值和最小值以及上升值和下降值。使用裕度、变量和通过逻辑块的延迟,限定了使得能够求解时序约束的式。
对于通过data_in上升的数据的正沿建立关键时序:
1.05(Tc1_Mr+Tc5_Mr+Tc6_Mr)+1.05*(Td1_Mr+Td2_Mr+Td3_Mr)<=0.95*(Tc1_mr+Tc2_mr+Tc3_mr+Tc4_mr)+2*Tp-Ts+CRPR1
对于通过data_in下降的数据的正沿建立关键时序:
1.05(Tc1_Mr+Tc5_Mr+Tc6_Mr)+1.05*(Td1_Mr+Td2_Mf+Td3_Mf)<=0.95*(Tc1_mr+Tc2_mr+Tc3_mr+Tc4_mr)+2*Tp-Ts+CRPR2
对于通过data_in上升的数据的正沿保持关键时序:
0.95*(Tc1_mr+Tc5_mr+Tc6_mr)+0.95*(Td1_mr+Td2_mr+Td3_mr)>=1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr+Tc4_Mr)+Th+CRPR3
对于通过data_in下降的数据的正沿保持关键时序:
0.95*(Tc1_mr+Tc5_mr+Tc6_mr)+0.95*(Td1_mr+Td2_mf+Td3_mf)>=1.05*(Tc1_Mr+Tc2_Mr+Tc3_Mr+Tc4_Mr)+Th+CRPR4
在求解四个CRPR值之后,定义时钟和延迟:
##时钟定义与延迟
create_clock CLKDIV2-period[expr 2*Tp][get_ports clk_in]
create_clock VCLKDIV2-period[expr 2*Tp]
set_clock_latency-source-late-rise[expr 1.05*(Tc1_Mr+Tc2_Mr)][get_clocks CLKDIV2]
set_clock_latency-source-late-fall[expr 1.05*(Tc1_Mf+Tc2_Mf)][get_clocks CLKDIV2]
set_clock_latency-source-early-rise[expr 0.95*(Tc1_mr+Tc2_mr)][get_clocks CLKDIV2]
set_clock_latency-source-early-fall[expr 0.95*(Tc1_mf+Tc2_mf)][get_clocks CLKDIV2]
##数据延迟
set_input_delay-clock VCLKDIV2-rise-max-add_delay[expr 1.05*(Tc1_Mr+Tc5_Mr+Tc6_Mr)+1.05*(Td1_Mr+Td2_Mr)-CRPR1][get_ports data_in]
set_input_delay-clock VCLKDIV2-fall-max-add_delay[expr 1.05*(Tc1_Mr+Tc5_Mr+Tc6_Mr)+1.05*(Td1_Mr+Td2_Mf)-CRPR2][get_ports data_in]
set_input_delay-clock VCLKDIV2-rise-min-add_delay[expr 0.95*(Tc1_mr+Tc5_mr+Tc6_mr)+0.95*(Td1_mr+Td2_mr)-CRPR3][get_ports data_in]
set_input_delay-clock VCLKDIV2-fall-min-add_delay[expr 0.95*(Tc1_mr+Tc5_mr+Tc6_mr)+0.95*(Td1_mr+Td2_mf)-CRPR4][get_ports data_in]
使用所定义的时钟执行时序检查:
对于通过data_in上升的数据的正沿建立关键时序:
<clock_rise_max_rise_input_delay on data_in>+1.05*(Td3_Mr)<=<min_rise_latency on clk_in>+0.95*(Tc3_mr+Tc4_mr)+2*Tp-Ts=>1.05*(Tc1_Mr+Tc5_Mr+Tc6_Mr)+1.05*(Td1_Mr+Td2_Mr)-CRPR1+1.05*(Td3_Mr)<=0.95*(Tc1_mr+Tc2_mr)+0.95*(Tc3_mr+Tc4_mr)+2*Tp-Ts
对于通过data_in下降的数据的正沿建立关键时序:
<clock_rise_max_fall_input_delay on data_in>+1.05*(Td3_Mf)<=<min_rise_latency on clk_in>+0.95*(Tc3_mr+Tc4_mr)+2*Tp-Ts=>1.05*(Tc1_Mr+Tc5_Mr+Tc6_Mr)+1.05*(Td1_Mr+Td2_Mf)-CRPR2+1.05*(Td3_Mf)<=0.95*(Tc1_mr+Tc2_mr)+0.95*(Tc3_mr+Tc4_mr)+2*Tp-Ts
对于通过data_in上升的数据的正沿保持关键时序:
<clock_rise_min_rise_input_delay on data_in>+0.95*(Td3_mr)>=<max_rise_latency on clk_in>+1.05*(Tc3_Mr+Tc4_Mr)+Th=>0.95*(Tc1_mr+Tc5_mr+Tc6_mr)+0.95*(Td1_mr+Td2_mr)-CRPR3+0.95*(Td3_mr)>=1.05*(Tc1_Mr+Tc2_Mr)+1.05*(Tc3_Mr+Tc4_Mr)+Th
对于通过data_in下降的数据的正沿保持关键时序:
<clock_rise_min_fall_input_delay on data_in>+0.95*(Td3_mf)>=<max_rise_latency on clk_in>+1.05*(Tc3_Mr+Tc4_Mr)+Th=>0.95*(Tc1_mr+Tc5_mr+Tc6_mr)+0.95*(Td1_mr+Td2_mf)-CRPR4+0.95*(Td3_mf)>=1.05*(Tc1_Mr+Tc2_Mr)+1.05*(Tc3_Mr+Tc4_Mr)+Th
提供了本公开内容的摘要以符合37C.F.R.§1.72(b),其要求摘要使得读者能够快速地确定技术性公开内容的性质。提交摘要时将理解,摘要将不用于解释或限制权利要求书。另外,在前述具体实施方式中,可以看到的是,出于使本公开内容精简的目的,各个特征在单个实施方式中被组合在一起。本公开内容的该方法不应被解释为限制权利要求书。因此,所附权利要求书由此被并入具体实施方式中,其中每个权利要求自身独立地作为单独的实施方式。

Claims (20)

1.一种用于将电路设计集成的方法,包括:
基于时序模式,通过在第二电路内的一个或更多个寄存器处终止第一电路与具有第二电路设计的所述第二电路之间的时序,针对所述第一电路从第一电路设计生成边界条件,所述第二电路是可编程逻辑电路;以及
基于所生成的边界条件,将所述第一电路设计与所述第二电路设计集成为集成电路设计。
2.根据权利要求1所述的方法,还包括:
基于所述集成电路设计制造集成电路。
3.根据权利要求1所述的方法,其中,所述可编程逻辑电路是现场可编程门阵列FPGA。
4.根据权利要求1所述的方法,其中:
所述边界条件的生成包括执行所述第一电路的时序分析;以及
所述第一电路设计与所述第二电路设计的集成包括基于所述第一电路的时序分析来确定所述第二电路中寄存器的位置。
5.根据权利要求1所述的方法,其中,在所述第一电路设计与所述第二电路设计的集成之前制造所述第一电路。
6.根据权利要求1所述的方法,其中,所生成的边界条件指示:
通过时钟主干驱动来自所述第一电路的时钟输出,所述时钟输出发散至接口集群寄存器输入和所述第一电路的边界中。
7.根据权利要求6所述的方法,其中,所述边界条件的生成包括通过应用用于建立分析的一组假设来确定用于数据的负沿建立关键时序值。
8.根据权利要求1所述的方法,其中,所生成的边界条件指示:
来自所述第一电路设计的时钟输出连接至所述第一电路和时钟主干;以及
所述时钟主干连接至所述第二电路。
9.根据权利要求8所述的方法,其中,所生成的边界条件指示:
所述第二电路包括第一集群,所述第一集群包括能够以第一偏移驱动所述第一集群并且能够以大于所述第一偏移的第二偏移驱动第二集群的接口时钟。
10.根据权利要求1所述的方法,其中,所述边界条件的生成包括应用用于建立分析的一组假设,所述用于建立分析的一组假设包括启动时钟延迟、数据路径延迟和捕获时钟延迟。
11.根据权利要求10所述的方法,其中,所述边界条件的生成包括通过应用所述用于建立分析的一组假设来确定用于数据的正沿建立关键时序值。
12.根据权利要求10所述的方法,还包括驱动来自所述第一电路设计的所述启动时钟延迟、所述数据路径延迟和所述捕获时钟延迟。
13.根据权利要求1所述的方法,其中,所述边界条件的生成包括应用用于保持分析的一组假设,所述用于保持分析的一组假设包括启动时钟延迟、数据路径延迟和捕获时钟延迟。
14.根据权利要求13所述的方法,其中,所述边界条件的生成包括通过应用所述用于保持分析的一组假设来确定用于数据的正沿保持关键时序值。
15.根据权利要求13所述的方法,其中,所述边界条件的生成包括通过应用所述用于保持分析的一组假设来确定用于数据的负沿保持关键时序值。
16.一种包含指令的非暂态机器可读存储介质,所述指令在由一个或更多个处理器执行时使所述一个或更多个处理器执行操作,所述操作包括:
基于时序模式,通过在第二电路内的一个或更多个寄存器处终止第一电路与具有第二电路设计的所述第二电路之间的时序,针对所述第一电路从第一电路设计生成边界条件,所述第二电路是可编程逻辑电路;以及
基于所生成的边界条件,将所述第一电路设计与所述第二电路设计集成为集成电路设计。
17.根据权利要求16所述的存储介质,其中,所述操作还包括:
基于所述集成电路设计制造集成电路。
18.根据权利要求16所述的存储介质,其中,所述可编程逻辑电路是现场可编程门阵列FPGA。
19.根据权利要求16所述的存储介质,其中:
所述边界条件的生成包括执行所述第一电路的时序分析;以及
所述第一电路设计与所述第二电路设计的集成包括基于所述第一电路的时序分析来确定所述第二电路中寄存器的位置。
20.一种用于将电路设计集成的系统,包括:
存储器,所述存储器存储指令;以及
一个或更多个处理器,所述一个或更多个处理器通过所述指令被配置成执行操作,所述操作包括:
基于时序模式,通过在第二电路内的一个或更多个寄存器处终止第一电路与具有第二电路设计的所述第二电路之间的时序,针对所述第一电路从第一电路设计生成边界条件,所述第二电路是可编程逻辑电路;以及
基于所生成的边界条件,将所述第一电路设计与所述第二电路设计集成为集成电路设计。
CN202080032599.0A 2019-03-25 2020-03-20 用于将电路设计集成的方法和系统 Active CN114072806B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/363,434 US10831959B2 (en) 2019-03-25 2019-03-25 Embedded FPGA timing sign-off
US16/363,434 2019-03-25
PCT/US2020/023790 WO2020197980A1 (en) 2019-03-25 2020-03-20 Embedded fpga timing sign-off

Publications (2)

Publication Number Publication Date
CN114072806A CN114072806A (zh) 2022-02-18
CN114072806B true CN114072806B (zh) 2023-04-14

Family

ID=72607942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080032599.0A Active CN114072806B (zh) 2019-03-25 2020-03-20 用于将电路设计集成的方法和系统

Country Status (4)

Country Link
US (1) US10831959B2 (zh)
EP (1) EP3948637B1 (zh)
CN (1) CN114072806B (zh)
WO (1) WO2020197980A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3701270B1 (en) * 2017-10-23 2024-08-14 F. Hoffmann-La Roche AG Laboratory system for automatically processing biological samples, use thereof and method for processing biological samples by means of such a laboratory system
US10990733B1 (en) * 2020-03-10 2021-04-27 Cadence Design Systems, Inc. Shared timing graph propagation for multi-mode multi-corner static timing analysis
CN113158604B (zh) * 2021-04-30 2023-11-17 海光信息技术股份有限公司 基于物理走线划分的时序分析方法与装置以及设备和介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555201A (en) * 1990-04-06 1996-09-10 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information
US6324678B1 (en) * 1990-04-06 2001-11-27 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design
CN1632878A (zh) * 2003-12-24 2005-06-29 华为技术有限公司 一种eeprom在板编程方法
US7823112B1 (en) * 2003-05-30 2010-10-26 Golden Gate Technology, Inc. Method, software and system for ensuring timing between clocked components in a circuit
US8594988B1 (en) * 2006-07-18 2013-11-26 Cadence Design Systems, Inc. Method and apparatus for circuit simulation using parallel computing
CN104182570A (zh) * 2014-08-01 2014-12-03 三星半导体(中国)研究开发有限公司 用于实现集成电路的逻辑综合的方法和设备
CN106503282A (zh) * 2015-09-04 2017-03-15 阿尔特拉公司 集成电路设计的增量寄存器重定时

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5541849A (en) * 1990-04-06 1996-07-30 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of timing parameters
US6263478B1 (en) * 1997-08-12 2001-07-17 Cadence Design Systems, Inc. System and method for generating and using stage-based constraints for timing-driven design
JP2001142921A (ja) * 1999-11-12 2001-05-25 Nec Ic Microcomput Syst Ltd 機能ブロック間制約高速抽出方法、及び、機能ブロック間制約高速抽出プログラムを記録した記録媒体
JP2001357090A (ja) * 2000-06-13 2001-12-26 Hitachi Ltd 論理合成方法及び論理合成装置
US20050177357A1 (en) * 2004-02-09 2005-08-11 Amatangelo Matthew J. Static timing model for combinatorial gates having clock signal input
US8977995B1 (en) * 2007-01-10 2015-03-10 Cadence Design Systems, Inc. Timing budgeting of nested partitions for hierarchical integrated circuit designs
US8056038B2 (en) * 2009-01-15 2011-11-08 International Business Machines Corporation Method for efficiently checkpointing and restarting static timing analysis of an integrated circuit chip
US10037394B1 (en) * 2016-06-14 2018-07-31 Cadence Design Systems, Inc. Hierarchical timing analysis for multi-instance blocks
US10467365B1 (en) * 2017-04-10 2019-11-05 Cadence Design Systems, Inc. Systems and methods for calculating common clock path pessimism for hierarchical timing analysis in an electronic design

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555201A (en) * 1990-04-06 1996-09-10 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information
US6324678B1 (en) * 1990-04-06 2001-11-27 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design
US7823112B1 (en) * 2003-05-30 2010-10-26 Golden Gate Technology, Inc. Method, software and system for ensuring timing between clocked components in a circuit
CN1632878A (zh) * 2003-12-24 2005-06-29 华为技术有限公司 一种eeprom在板编程方法
US8594988B1 (en) * 2006-07-18 2013-11-26 Cadence Design Systems, Inc. Method and apparatus for circuit simulation using parallel computing
CN104182570A (zh) * 2014-08-01 2014-12-03 三星半导体(中国)研究开发有限公司 用于实现集成电路的逻辑综合的方法和设备
CN106503282A (zh) * 2015-09-04 2017-03-15 阿尔特拉公司 集成电路设计的增量寄存器重定时

Also Published As

Publication number Publication date
EP3948637B1 (en) 2024-08-14
CN114072806A (zh) 2022-02-18
US20200311219A1 (en) 2020-10-01
EP3948637A1 (en) 2022-02-09
EP3948637A4 (en) 2022-05-11
WO2020197980A1 (en) 2020-10-01
US10831959B2 (en) 2020-11-10

Similar Documents

Publication Publication Date Title
CN114072806B (zh) 用于将电路设计集成的方法和系统
US8164966B2 (en) Variable-loop-path ring oscillator test circuit and systems and methods utilizing same
JP5955764B2 (ja) 半導体装置のデータ出力タイミング制御回路
EP2762991B1 (en) Bypassable clocked storage circuitry for dynamic voltage-frequency scaling
US8493109B2 (en) System and method to control a power on reset signal
US8897083B1 (en) Memory interface circuitry with data strobe signal sharing capabilities
US8917128B1 (en) Phase determination circuit and delay locked loop circuit using the same
US8957716B2 (en) Multiple threshold voltage standard cells
KR20190053717A (ko) 레이턴시 제어를 위한 메모리 장치 및 메모리 장치의 동작 방법
US9659123B2 (en) Systems and methods for flexibly optimizing processing circuit efficiency
US20210133380A1 (en) Methods for automated hardware system synthesis
US20140306746A1 (en) Dynamic clock skew control
WO2023020238A1 (en) Balancing cycle stealing with early mode violations
US11681324B2 (en) Synchronous reset deassertion circuit
TWI357215B (en) Clock generating ciruit and digital circuit incorp
US8407037B2 (en) Methods and apparatus for clock simulation with calibration
US10459501B2 (en) System and method for augmentation of reset recovery operation timing
JP5741817B2 (ja) 半導体集積回路
US20130166269A1 (en) Simulation apparatus, simulation method, and recording medium
US7683659B1 (en) Integrated circuits with jitter-reducing balancing logic
KR101680015B1 (ko) 고속 테스트 클락의 펄스 수 조절 가능한 클락 발생기 구성 방법 및 장치
JP2014006564A (ja) 半導体集積回路の設計方法及び設計プログラム
US9715912B2 (en) Source synchronous clock generation circuits and methods for a system on a chip (SOC) data processing system
CN104702246A (zh) 数字输出时钟的生成
Custodio et al. Self-healing partial reconfiguration of an FPGA

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40070458

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant