CN104620242A - 相关时序架构 - Google Patents
相关时序架构 Download PDFInfo
- Publication number
- CN104620242A CN104620242A CN201380046641.4A CN201380046641A CN104620242A CN 104620242 A CN104620242 A CN 104620242A CN 201380046641 A CN201380046641 A CN 201380046641A CN 104620242 A CN104620242 A CN 104620242A
- Authority
- CN
- China
- Prior art keywords
- timing
- constraint
- event
- framework
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/35—Delay-insensitive circuit design, e.g. asynchronous or self-timed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Abstract
公开了一种用于使用相关计时模块生成相关时序架构的技术。在一个实例中,被实现用于钟控工具流程的电子设计自动化(EDA)工具可以包括:计算机电路,该计算机电路被配置成:使用相关计时模块生成硬件描述语言(HDL)集成电路(IC)架构;将相关时序约束映射到相关计时模块的相关计时实例;以及生成用于每个相关时序约束的时序目标。
Description
背景技术
电路时序可能影响电路的功率、性能、噪声和面积。时序可以通过多个替代电路设计风格调节,其可以提供超过工业标准钟控(clocked)设计方法和技术的益处。时序还可以是用于这些替代电路的商业化和采用的主要妨碍。异步电路设计是使用替代时序的电路族的一个实例。在电路和架构层级,异步设计使用连续时序模型,而钟控设计基于时钟循环使用离散时间模型。
用于信号排序的两种普通方法显现在设计社群中:钟控和异步。钟控设计基于限定离散时钟周期的基于频率的协议被建立。钟控方法包含在创建由公共频率控制的管道线阶段的锁存器或触发器(flop)之间的组合逻辑(CL)。除了钟控方法之外的所有其他方法都可以被认为是“异步”,包括但不限于采用握手协议、自复位多米诺电路、以及嵌入式顺序元件的方法,诸如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、只读存储器(ROM)、或者可编程逻辑阵列(PLA)。异步元件可以包含状态保持电路,诸如顺序控制器、多米诺门、或者存储器元件。输入到异步电路的到达可能不基于全局时钟频率。通过异步电路的延迟可以基于功能、应用、制造变化、以及诸如温度和电压波动的操作参数而变化。
附图说明
本发明的特征和优点将从以下结合附图进行的详细说明变得明显,其通过示例一起说明了本发明的特征;并且其中:
图1图示了根据一个实例的用于使用钟控电子设计自动化(EDA)工具执行时序驱动优化的示例性系统的框图和用于采用使用相关时序表征的模块的集成电路架构和系统的流程。
图2图示了根据一个实例的钟控管道线。
图3图示了根据一个实例的计时异步管道线。
图4图示了根据一个实例的计时延迟不敏感异步管道线。
图5图示了根据一个实例的使用预先表征的相关计时模块的系统设计的流程图。
图6图示了根据一个实例的用于使用电子设计自动化(EDA)工具创建时序驱动优化系统的处理。
图7图示了根据一个实例的有效线性管道线控制器规范。
图8图示了根据一个实例的图7的有效线性管道线控制器的电路实现。
图9图示了根据一个实例的使用130纳米(nm)工艺库的有效线性管道线控制器的Verilog实现。
图10图示了根据一个实例的基于路径的相关时序约束的表示。
图11图示了根据一个实例的适用于图8的有效线性管道线控制器以符合图7中的线性管道线控制器规范的相关时序约束的集合。
图12图示了根据一个实例的创建作为用于图9的电路的有向非循环图(DAG)的时序图的时序图切割的集合。
图13图示了根据一个实例的用于图9的控制器的仅尺寸约束的集合。
图14图示了根据一个实例的用于图3的控制器模块中的一个执行驱动合成和优化的时序约束的集合。
图15图示了根据一个实例的用于生成使得能够使用钟控电子设计自动化(EDA)工具流程的相关时序架构的方法的流程图。
图16描述了根据一个实例的被配置用于使用相关计时模块生成相关时序架构的钟控工具流程的电子设计自动化(EDA)工具的计算机电路的功能。
图17图示了根据一个实例的用于被配置用于相关时序架构生成的钟控工具流程的电子设计自动化(EDA)工具的框图。
现在将作出对所示的示例性实施例的参考,并且在此将使用特定语言来对其进行描述。然而,将理解,不旨在对本发明的范围的限制。
具体实施方式
在公开和描述本发明之前,将理解,本发明不限于在此公开的特定结构、处理步骤或者材料,而是扩展至如由相关领域中的普通技术人员认识到的其等同物。还应当理解,在此采用的术语仅被用于描述特定实例的目的,并且不旨在限制。
定义
如在此使用的,术语“基本”是指动作、特性、性质、状态、结构、项或结果的完全或几乎完全范围或程度。例如,“基本”被密封的对象意味着对象被完全密封或者几乎完全密封。离绝对完全的准确可允许偏离程度在一些情况下可能取决于特定上下文。然而,一般来说,完全的接近度可以具有与好像绝对和全部完全被获得那样相同的总体结果。当以负含义使用以指动作、特性、性质、状态、结构、项或结果的完全或几乎完全缺乏时,“基本”的使用可相等地应用。
如在此使用的,术语“集合”是指元件的集合,其可以包括任何自然数量的元件,包括一个、零个、或更大整数值。
贯穿本说明书对“实例”的参考是指结合实例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。从而,短语“在一个实例中”在贯穿本说明书的多个地方的出现不一定所有均指相同实施例。
在此使用词语“示例性”是指用作实例、例子、或说明。在此描述为“示例性”的任何方面或设计不一定被解释为比其他方面或设计优选或有利的。而且,为了本公开的目的并且除非另外指出,“一”或者“一个”是指“一个或多个”。示例性实施例可以使用标准编程和/或工程技术被实现为方法、装置或制品,以产生软件、固件、硬件、或其任何组合,以控制计算机实现所公开的实施例。
本发明的实例
以下提供技术改进的最初概述,并且然后随后进一步详细地描述特定技术实例。该初始概述旨在帮助读者更快地理解技术,而不旨在识别技术的关键特征或必要特征,或者不旨在限制所要求保护的主题的范围。
由于EDA的能力实现高生产率,使得钟控设计主要控制电子设计自动化(EDA)工业。可以通过采用将时序正确性限制到非常小数量的预定义顺序元件的方法来实现高生产率,主要是触发器和锁存器。这些预先定义元件可以被表征用于被用于设计正确性的时序条件,诸如建立和保持时间。钟控设计中的时序关键问题可能汇聚在触发器和锁存器。
该汇聚导致触发器和锁存器的时序要求变为基于钟控设计方法,直接被集成到在EDA工业中使用的计算机辅助设计(CAD)算法中。虽然时序到算法的该直接集成简化了钟控设计,但是该算法可以禁止应用采用其他时序方法的电路。
在此描述的技术(例如,EDA工具、方法、计算机电路、以及系统)可以通过以传统钟控EDA工具可以直接支持这些RTC设计模块的时序要求这样的方式,将表征相关时序约束(RTC)应用至在系统或架构中使用的实例,使用被预先表征用于相关时序的设计模块。使用该技术,一般异步模块可以被嵌入设计中,并且可以被用于建立使用标准商业EDA工具流程的系统。实际上,该技术使得任何相关时序表征模块能够被集成到架构或系统中,具有来自用于触发器和锁存器的标准EDA工具的类似时序算法支持。
如前所述,用于集成电路设计的电子设计自动化(EDA)可以基于钟控方法。使用其他时序方法的系统可能不由EDA工具和流程直接支持。提供使得EDA工具能够使用任意时序方法执行集成电路系统和架构的自动时序驱动设计和优化的技术。这样的系统可以基于已被预先表征用于它们的时序和操作要求的计时电路模块。可以以可以使得EDA工具中的时序驱动算法能够在所有等级的EDA流程(从高级合成到物理设计和时序验证)处支持时序驱动设计和优化这样的方式,提供将预先表征约束映射到模块实例和系统网表的方法。使用诸如异步设计的技术描述替代设计风格可以直接采用传统EDA工具和流程(例如,基于时钟的EDA工具和流程)。
以下提供先前描述的技术的简短概述。在此描述的技术(例如,EDA工具、方法、计算机电路、以及系统)基于相关时序(RT)的理论。从公共时序参考看,相对延迟必须保持跨过信号路径或信号频率,使得通过一个路径的最大延迟(max-延迟)必须小于通过另一个路径的最小延迟(min-延迟)。另外,在两个路径的延迟之间可以要求间隔裕度(margin of separation)。通常为min-延迟路径的一个路径可以是基于固定频率(诸如时钟)的延迟而不是沿着信号路径的延迟。从而,相关时序可以通过方程1表示。
方程1
变量pod可以表示时序参考或事件。如果pod是事件,则离散点(pod)和汇聚点(poc0和poc1)之间存在逻辑路径。如果pod是时序参考,诸如时钟,则时序参考对于poc0和poc1是公共的。值m可以是事件之间的裕度或最小间隔,并且值m可以是零或负的。为了方程1成立,从事件pod到事件poc0的最大路径延迟加上裕度m可以小于从事件pod到事件poc1的最小路径延迟。在一个实例中,诸如时钟的基于频率的信号的模拟延迟可以取代路径延迟,使得pod可以是上升时钟沿,并且poc1可以是时钟的随后上升沿。
在另一个实例中,先前已经执行了用于表征用于包括在商业EDA工具中的异步顺序电路模块的方法,如于2013年7月18日提交的名为“RELATIVE TIMING CHARACTERIZATION”的共同未决国际专利申请序列号No.PCT/US2013/051156中描述的。给出期望电路环境的延迟和行为、环境是钟控的还是异步的,表征电路可以被完全表征用于所有时序条件,以适用于设计正确地操作。通过从pod到poc0和poc1创建基于路径或者基于频率的约束,表征可以表达基于相关时序的延迟。还可以添加类似形式的性能约束。
在另一个实例中,预先表征模块可以包括用于以EDA工具中的时序驱动算法直接支持表征模块的正确设计、优化、测试和验证这样的方式,将表征模块(例如,相关时序约束(RTC)模块)正确地嵌入系统或架构中的信息。来自预先表征模块的约束的整个集合可以以与EDA工具中的时序驱动算法和在此描述的技术兼容的格式被表示。约束的子集可以被选择用于设计和验证处理中的各种步骤。例如,约束的集合可以通过诸如设计编译器的EDA工具,被选择用于合成。在另一个实施例中,约束的不同集合可以被用于通过PrimeTime的时序验证。预先表征流程还可以以自由形式(.lib)修改时序表征文件中的元件的延迟信息,以实现更准确的时序结果。时序约束可以以由设计流程中的各种步骤和钟控EDA工具支持的格式被创建。
在另一种配置中,可以提供一种计算机可读介质,包括计算机可读指令,当由处理器执行时,所述指令使得处理器执行选择设计约束集合并且将它们映射到系统和架构的方法的操作,用于设计流程中的各种步骤,其可以以直接支持工业标准EDA CAD流程的方式被包括。
在另一个实施例中,系统可以包括处理器,并且计算机可读介质可以可操作地耦合至处理器。计算机可读介质包括指令,当由处理器执行时,所述指令执行表征适用于包括在工业标准EDA CAD流程中的异步电路模块的方法的操作。
以下提供先前描述的技术的附加详情和实例。图1图示了用于相关计时集成电路设计系统100的框图。相关计时集成电路设计系统100可以包括任何波形因数的计算设备,其可以包括输出接口104、输入接口102、计算机可读介质108、处理器106、以及可能涉及相关计时集成电路设计系统100的相关计时系统设计应用110。不同和附加组件还可以被合并到相关计时集成电路设计系统100中。
输出接口104提供用于输出信息的接口,用于由相关计时集成电路设计系统100的用户的回顾。例如,输出接口104可以包括到显示器、打印机、扬声器、或类似输出设备的接口。显示器可以是薄膜晶体管显示器、发光二极管显示器、液晶显示器、或各种不同显示器中的任何一种。打印机可以是多种打印机中的任何一种。扬声器可以是多种扬声器中的任何一种。相关计时集成电路设计系统100可以具有使用相同或不同接口技术的一个或多个输出接口。
输入接口102提供用于从用户接收用于到相关计时集成电路设计系统100中的输入的信息的接口。输入接口102可以使用各种输入技术,包括但不限于键盘、笔和触摸屏、鼠标、跟踪球、触摸屏、键盘、一个或多个按钮、或类似输入设备,以允许用户将信息输入到相关计时集成电路设计系统100中,或者作出在输出接口104上显示的用户接口中呈现的选择。输入接口102可以提供输入和输出接口。例如,触摸屏允许用户输入,并且将输出呈现给用户。
计算机可读介质108可以是用于信息的电子保持位置或存储器,使得信息可以由处理器106访问。计算机可读介质108可以包括但不限于任何类型的随机存取存储器(RAM)、任何类型的只读存储器(ROM)、任何类型的闪存、或者类似介质,诸如,磁性存储设备(例如,硬盘、软盘、或磁带)、光盘(例如,光盘或数字多功能盘(DVD)或数字视频盘)、智能卡、或者闪存设备。相关计时集成电路设计系统100可以具有使用相同或不同存储媒体技术的一个或多个计算机可读媒体。相关计时集成电路设计系统100还可以具有支持诸如CD或DVD的存储介质的装载的一个或多个驱动器。
处理器106可以执行指令。指令可以由专用计算机、逻辑电路、或硬件电路执行。从而,处理器106可以在硬件、固件、软件或这些方法的任何组合中被实现。术语“执行”是运行应用或者执行由指令调度的操作的处理。可以使用一种或多种编程语言、脚本语言、汇编语言或类似语言编写所述指令。处理器106可以执行指令,意味着处理器可以执行由该指令调度的操作。处理器106可以与输出接口104、输入接口102、并且与计算机可读介质108(例如,存储器)可操作地耦合,以接收、发送、处理并且存储信息。处理器106可以从永久存储器设备检索指令的集合,并且以可执行形式将指令复制到暂时存储器设备,诸如,某种形式的RAM。相关计时集成电路设计系统100可以包括使用相同或不同处理技术的多个处理器。
相关计时系统设计应用110可以执行与设计包括相关计时设计组件的集成电路相关联的操作。所描述的一些或所有操作可以在相关计时系统设计应用110中被具体化。可以使用硬件、固件、软件、或者这些机制的任何组合实现所述操作。在一个实例中,如图1中所示,相关计时系统设计应用110可以在存储在计算机可读介质108中并且可由处理器106访问的软件中实现,用于执行具体化相关计时系统设计应用110的操作的指令。相关计时系统设计应用110可以使用一种或多种编程语言、汇编语言、脚本语言、或者类似语言编写。
基于时钟的设计通过如由电子设计自动化(EDA)工业使用的计算机辅助设计(CAD)直接支持。图2图示了通过基于时钟的EDA工具支持的电路的实例。电路可以包括数据路径210和时钟分发网络240。数据路径210可以包括第一寄存器212(例如,触发器)、第二寄存器214、以及第三寄存器216、第一组合逻辑(CL)框218和第二组合逻辑框220。第一寄存器212可以基于信号226上的时钟事件,接受输入222并且存储该值。第三寄存器216可以输出输出224。寄存器和组合逻辑框的输入和输出可以使用多条数据线n(例如,总线)。第一寄存器212的输出可以被提供给第一组合逻辑218的输入,并且可以在第一组合逻辑218的输出处产生结果。当在用于第二寄存器的时钟输入228上发生诸如上升沿的时钟事件时,第二寄存器214可以捕捉由第一组合逻辑218产生的结果。同样地,第二寄存器214的输出可以被提供给第二组合逻辑220的输入,并且可以在第二组合逻辑220的输出处产生结果。当在用于第三寄存器的时钟输入230上发生诸如上升沿的时钟事件时,第三寄存器216可以捕捉由第二组合逻辑220产生的结果。时钟网络240可以包括以指定频率产生周期波形的逻辑242。该周期波形信号在设计中可以跨过时钟网络244和246被分发至寄存器。传统EDA工具可以基于时钟发生器242的目标循环时间,支持组合逻辑框218和220的时序驱动优化和合成。时钟分发网络244和246可以保持来自时钟发生器242的频率,在不同时钟树路径244和246之间具有低偏离。
图3图示了具有相关计时电路模块的系统的异步电路300的实例,其可以不由传统基于时钟的EDA支持。在图3的实例中,使用独立数据路径310和控制网络340。数据路径310可以包括第一寄存器312(例如,锁存器,诸如,配置有数据输入“D”和数据输出“Q”的数据或延迟触发器(D触发器))、第二寄存器314、以及第三寄存器316、第一组合逻辑框318和第二组合逻辑框320。第一寄存器312可以基于在第一寄存器时钟输入326上的时钟事件,接受输入322并且存储值。第三寄存器316输出输出324。寄存器和组合逻辑框的输入和输出可以使用多条数据线n(例如,总线)。第一寄存器312的输出可以被提供给第一组合逻辑318的输入,并且可以在第一组合逻辑318的输出处产生结果。当诸如上升沿的时钟事件发生在第二寄存器时钟输入328上时,第二寄存器314可以捕捉由第一组合逻辑318产生的结果。同样地,第二寄存器314的输出可以被提供给第二组合逻辑320的输入,并且可以在第二组合逻辑320的输出处产生结果。当诸如上升沿的时钟事件发生在第三寄存器时钟输入330上时,第三寄存器316可以捕捉由第二组合逻辑320产生的结果。异步管道线中的寄存器312、314和316可以是锁存器、触发器、动态门、或者任何其他存储器元件。
除了使用图2中所示的时钟网络生成时钟事件之外,异步电路可以使用采用握手协议来确定何时将数据存储在寄存器中的计时电路模块,如图3的控制网络340中所示。图3中所示的异步网络的结构可以类似于图2的钟控网络。然而,可以使用不同结构,诸如,延迟不敏感管道线或者其他异步网络设计。该握手网络可以产生控制数据路径310中的数据的存储的时钟信号。这些事件可以通过任何延迟发生,只要时钟事件发生之前,寄存器的输入处的数据稳定即可。控制网络340可以包括第一控制模块342、第二控制模块344、以及第三控制模块346。数据路径中的锁存器之间的每条数据路径可以包括关联控制信道。输入控制信道352可以与输入数据322相关联,控制信道348可以与组合路径318相关联,控制信道350可以与数据逻辑路径320相关联,并且输出324可以与控制信道354相关联。控制信道可以包含被设计成使关联数据路径的信号传播和数据功能的延迟匹配的延迟逻辑。该延迟逻辑包括操纵控制信道上的握手信号并且创建延迟的结构,诸如,延迟模块358和360。控制信道348包括延迟元件350,并且控制信道350包括延迟元件360。图3中所示的延迟元件被放在前向握手路径上,但是可以根据所使用的协议被放在后向路径上。用于握手控制的计时电路模块342、344和346中的每个可以实现确定时钟信号和模块的输入和输出控制信道之间的握手协议关系的功能。可以使用很多可能协议。
图4图示了具有计时电路模块的另一个系统的延迟不敏感异步电路400的实例,其可以不由传统钟控EDA支持。在图4中,控制和数据路径410可以被集成在一起。集成路径410中的每个数据位可以通过识别数据值以及数据的有效性的通信协议编码。集成路径可以被编码为双轨、四分之一、m/n代码、延迟不敏感最小项合成(DIMS)、或者任何其他类似代码。数据路径410可以包括第一控制库412至414和第二控制库416至418。控制逻辑还可以包括完全检测(CD)逻辑422和424。当第一控制库412至414中的所有值有效时,CD逻辑422可以断言肯定应答(acki)452,并且当数据值不被断言时,不断言acki452。同样地,当第二控制库416至418所有均有效时,CD逻辑422可以断言随后ack(acki+1)454,并且当数据值空闲时,不断言acki+1454。数据可以根据所实现的协议被存储在控制库中。控制器可以实现各种协议,在输入和输出信道之间具有不同量并行性。在示例性协议中,当来自以下阶段的肯定应答不被断言时,数据可以被存储在控制库中,并且输入被编码为具有有效数据。同样地,当数据输入无效并且断言肯定应答时,控制库的输出可以指示有效数据。从而,在该示例性协议中,第一控制库412至414可以接受输入442至444。当acki+1454变为不断言时,可以将数据从控制寄存器输出到双轨n-位函数420,并且完成检测模块422可以断言肯定应答acki 452。第一寄存器集合412至414的输出可以经过编码功能模块420,其可以使用双轨、n的m代码、DIMS、或任何其他类似代码,对功能编码。当数据被编码为对于下一个控制库416至418有效并且输入信号456不被断言时,功能结果可以被存储在寄存器库416至418中。控制库还可以执行一些组合功能逻辑。
基于钟控的EDA流程可以仅具有用于非常少顺序元件的集成时序,诸如,触发器和锁存器。从而,在触发器或锁存器之间不具有组合逻辑的任何其他模块可以被预先表征,并且然后经过图1的相关计时集成电路设计系统,以便接收EDA工具流程中的时序驱动算法的支持。用于与钟控EDA工具流程的兼容性的相关计时集成电路设计系统的应用不限于在由图3和图4的300和400所示的实例中使用的模块,而是可以通常扩展至任何计时设计模块。
在此描述的技术实现了在商业EDA工具中存在的时序驱动算法以便以类似于由用于钟控设计方法的工具自然提供的内容的方式,支持相关计时模块和相关计时设计。基于钟控的EDA设计CAD和工具流程可以直接支持触发器212、214和216和锁存器312、314和316、以及组合框218、220、318、320和420的时序驱动优化。时钟网络240还可以直接由EDA工具支持。然而,时序控制逻辑340中的相关计时模块342、344和346可能不被传统EDA工具支持。同样地,在图4的400中,相关时序模块412、414、416、418、422和424可以不通过传统钟控工具流程支持。在此描述的技术可以以EDA工具中的算法然后可以直接支持这些模块的时序驱动优化,就像算法用于具有在EDA工具中的天生支持的模块那样的方式,将用于模块的时序(即,当前不被支持)映射至集成电路设计中的模块实例。
使用该技术,匹配延迟元件358和360和双轨n-位功能420可以采用两种形式中的一个:(1)设计模块可以由EDA工具直接合成,或者(2)设计模块可以是由其他工具和机制设计的组合逻辑。当由EDA工具流程直接合成时,这些设计模块可以不要求特定处理由EDA工具流程中的时序驱动算法支持。然而,设计模块还可以被设计和表征为相关时序模块。通过相关时序模块,这些模块可以变为天生不由EDA工具支持,并且可以使用实现EDA工具中的时序驱动算法的机制,就像具有其他天生不支持模块那样。
图5图示了用于相关计时系统设计应用110(图1)的处理。500中的操作可以是重复的,并且返回到流程图中的较早操作的迭代可以发生,如由双向箭头和其他流程箭头指示的。还可以根据所使用的EDA工具或协议,执行附加、更少或不同操作。图5的操作的呈现顺序被示出用于说明,并且不旨在限制。参考图5描述的操作可以通过执行相关计时系统设计应用110(图1)被实现。
相关计时(RT)模块可以被设计和表征510用于相关时序,所以设计和表征中的时序约束的表示支持架构的时序驱动优化。可以使用相关事件表征模块(例如,相关计时模块)520,设计创建用于集成电路(IC)的行为或结构硬件描述语言(HDL)IC系统架构。在一个实例中,设计的子集可以生成类似于图3的电路300的电路。在另一个实例中,设计可以以硬件描述语言(HDL)编码。例如,硬件描述语言可以包括Verilog、超高速集成电路(VHSIC)HDL(VHDL)、或任何其他硬件描述语言。设计可以使用对于硬件描述语言有效的任何方法,包括行为或结构技术。然而,相关计时模块的子集可以基于在设计中使用的元件库中的实例,使用结构设计描述,如图9中所示。
被提供有RT设计模块510的约束的子集可以被映射至用于集成电路设计520中的特定EDA工具应用530的模块的实例。这些映射可以以实现钟控EDA工具中的时序驱动算法支持RT模块510以及系统520的时序驱动设计和优化的方式作出。该映射可以使用任何算法或方法,其对于设计处理(例如,合成、布置和布线、或者时序验证)中的每个EDA工具或步骤不同。映射可以为EDA工具或设计步骤已知的格式。例如,约束可以被映射至Synopsys设计约束(.sdc)格式,其可以由大多数EDA工具普遍理解。
时序目标可以被创建用于每个RT延迟约束540。在一个实例中,RT延迟约束可以基于模块和架构功率和性能目标。在另一个实例中,RT延迟约束可以使用传统EDA工具和流程被映射,以合成和优化完成的集成电路。可以采用任何流程、方法或EDA工具,或者可以采用附加方法或者算法,来帮助本处理。例如,在一个实例中,时序封闭可以通过迭代地运行合成工具(例如,设计编译器)并且改变约束的延迟目标来实现,直到没有负时序余量发生为止。负时序余量可以表示时序违犯。
在一个实例中,被提供有RT设计模块510的约束的整个集合可以被映射到完成的集成电路中的模块实例,作为制造之前的最终验证。由于时序图是非循环的EDA工具中的一些RT设计模块和一些要求的循环特性,导致完全映射可以是映射到电路表示的多个独立约束的合并的结果。可以采用将设计约束映射到电路表示并且从非循环结果生成正确循环时序约束的任何算法或方法。
EDA工具可以运行迭代,以通过修改延迟值550,使用搜索算法创建封闭时序解决方案。封闭时序解决方案可以是没有时序违犯的IC架构。迭代可以汇聚IC架构或者提供到IC架构的封闭,用于电路正确性以及符合时序约束的性能。
在一个实例中,可以使用钟控EDA工具验证设计,以确保来自在设计520中使用的表征RT模块510的设计约束正确地保持在最终集成电路设计中。例如,可以在验证处理中使用布局后提取寄生。可以使用时序验证工具(例如,PrimeTime)验证该约束被保持。
各种搜索算法可以被用于运行EDA工具迭代550。例如,封闭算法对于合成、布置和布线、以及时序封闭可以不同。
例如,设计的每个部分都可以基于可以从架构性能和功率目标获得的相关时序约束和关联目标,被时序汇聚。在设计的该部分中,时序值可以在迭代循环中被修改,以实现设计工具可以完全解决的Synopsys设计约束(SDC)约束的集合。从而,作为该迭代的一部分,给出已经通过的约束集合,一个或多个商业EDA工具可以被用于创建设计。可以采用另一种工具(例如,PrimeTime),以确定设计是否具有负余量。可以估计该结果,并且可以使用一种算法来修改一些约束的时序目标。
任何负余量都可能导致设计的产量损失或故障。从而,可以修改延迟目标,以便实现汇聚。然而,修改时序目标以简化用于工具的汇聚可能导致更差性能或功率。从而,被采用的算法可能对设计质量具有直接影响。诸如合成或布局和布线工具的每个工具都具有不同设计目标,并且通常不同地反应以在约束集合方面改变。从而,不同算法可以适用于所采用的不同工具。
一些时序路径可能对整体设计性能比其他具有更大影响。从而,路径可以被加权、排序、或者涉及封闭算法中的其他节点,以便优化汇聚的概率,具有性能或功率的最小损失。可以使用搜索和修改用于敏感节点的替代路径的算法。还可以使用改变时序被修改的速度的算法(类似于模拟退火算法)。诸如数据路径节点的节点的类型对生成时钟信号的握手控制路径具有不同特性,并且可以在算法中被不同地处理。时序图中的特定小扰动有时可能导致负余量(slack)的大改变。例如,具有15微微秒(ps)最差负余量的解决方案可能导致商业EDA工具然后采用的修改,以仅发现具有230ps最差负余量的解决方案。补偿节点的敏感性、节点的类型、用于性能和功率的路径的临界性、以及相关路径的算法可能导致更快汇聚和更好功率和性能。
可以使用相关时序约束,以创建相关时序路径。相关时序路径可以创建基本时序要求,以保持在路径约束之间,其可以不直接由SDC约束支持。这样的关系可以维持在用于各种EDA工具610、616和622的时序封闭(timing closure)中,如图6中所示。时序关系可以被维持并且通过添加除了路径延迟目标之外的附加时序信息实现,其包括目标之间的关系。附加时序信息可以包括在SDC文件中作为注释,这是因为附加时序信息可以不直接由EDA工具支持。注释可以通过在SDC标准中使用的“附注”表示。
例如,假设相关事件延迟被表示为(即,方程1的变化),并且假设性能目标是500ps用于具有50ps裕度的RT约束,具有关联延迟的以下SDC附注可能得到:
set_max_delay-从a到b
set_min_delay-从a到c
如图14所示,这两个约束(例如,从a到b,以及从a到c)之间的关系可以通过#margin或者#dpmargin约束指定,其将两个约束捆绑在一起,并且包括关于间隔裕度的信息,如通过以下所示:
#margin 0.050-从a到b-从a到c
裕度附注涉及最大和最小延迟路径,以确保50ps裕度保持。该语法可以指定裕度值,继之以从a到b的最大延迟,继之以从a到c的最小延迟路径。除了最大延迟路径的值在比较之前可以被划分为一半之外,#dpmargin命令可以具有类似语法(即,最大延迟可以小于900ps用于将保持的裕度)。
如果在这两个路径任一个上出现负余量(最大延迟或最小延迟),则时序汇聚算法可以搜索设计空间,并且修改时序目标,以允许EDA工具汇聚用于全部设计。例如,如果最大延迟具有负余量,则算法可以增加该延迟。例如,假设最大延迟路径从450ps增加到475ps,则约束可以不保持,诸如,475ps+50ps不小于500ps。从而,最小延迟路径还可以增加25ps用于将保持的关系。
在另一个实例中,最小延迟约束可以不具有上延迟界限。从而,从路径a到c的800ps的延迟可以符合最小延迟路径。然而,如果最小延迟路径是性能敏感路径,则还可以包括关联最大延迟约束,如果性能目标是500ps,则其可能导致以下约束集合:
set_max_delay 0.400-从a到b
set_max_delay 0.500-从a到c
set_min_delay 0.450-从a到c
#margin 0.050-从a到b-从a到c
约束集合可以确保最长延迟路径实际上小于500ps。约束集合可以将从a到c的路径限制到小于或等于500ps并且大于或等于450ps。如果最小延迟路径通过这样的约束具有负余量,则增加最大延迟路径可能导致汇聚的解决方案。同样地,当可能时,减小最小延迟值也可能导致汇聚。
一些工具可以具有修改用于时序封闭的算法和方法的不同约束。例如,对于物理设计,Synopsys的ICC支持全部SDC规范。然而,Cadence的SoC Encounter EDI可以不支持SDC约束set_size_only。从而,通过SoC Encounter EDI,表征模块中的电路可以被指定为set_dont_touch,以应用相关时序约束。当使用SoC用于物理设计时,如果不实现时序封闭,则用户可以迭代回合成工具,以修改被识别为set_dont_touch的门的大小。
可以用于优化的算法可以使用不同时序目标,用于关于合成工具的时序目标的物理设计。例如,如果在物理设计中的最小延迟路径上存在负余量,则用户(或者自动化)可以增加合成中的最小延迟路径值,以便当路径被布局和布线时,减慢路径,但是不改变用于物理设计工具的时序目标。
在合成、物理设计、以及时序验证之间可以存在工具集合之间的另一个差异。合成和物理设计约束集合可以不完整,但是可以由约束的子集构成,其可以允许工具找到良好解决方案。同样地,用于合成和物理设计的约束可以仅包括速度依赖约束,其不考虑任意线延迟。为了时序验证,可以检验时序约束的全部集合。时序验证可以包括允许任意延迟跨过线段的所有延迟不敏感检验。时序验证中的另一个差异在于,局部修改时序的可能性可能不导致汇聚。任何约束都可以被添加到约束集合中,并且设计可以返回到具有额外约束的设计、合成、或物理设计工具,以确保最终解决方案是健壮的,并且所有时序都保持。
图6图示了示例性相关计时系统设计应用110(图1)的流程图。图6图示了支持具有计时模块的集成电路的时序驱动优化和验证的EDA流程,包括由工业和附加操作使用以约束钟控EDA工具的传统EDA工具。可以基于EDA系统配置,执行附加、更少或不同操作。图6的流程图的顺序操作不旨在限制。参考图6描述的操作可以通过执行相关计时系统设计应用110(图1)实现。
相关时序设计模块可以以硬件描述语言(例如,Verilog)表达,并且可以提供它们的表征数据和信息602。还可以提供诸如元件库信息或架构性能目标的附加信息。完整架构或系统可以通过功率和性能目标604设计。设计可以包括相关计时设计模块的实例。架构可以以诸如Verilog的硬件描述语言在行为上被表达。
已被表征用于相关时序的设计中的每个实例可以具有被映射至用于合成的特定设计实例606的约束。用于合成的特定设计实例可以包括必须实现EDA工具中的时序驱动算法用于设计优化的所有约束。在一个实例中,相关计时约束的映射可以包括不允许修改RT表征模块的逻辑的命令、在模块中切割时序循环的命令、或者限定关于该模块的时序路径的命令。可以根据EDA系统配置,执行附加、更少或不同操作。可以采用将时序约束映射到架构的任何方法。相关计时约束到设计实例606的映射可以实现相关计时设计模块的时序驱动优化。由于架构循环,导致时序循环可以被形成,其可以被切割以创建离散非循环时序图(DAG)。基于时钟的工具可以自动地执行循环切割,但是基于钟控的工具可以不固有地保持时序路径,包括由相关计时约束指定的时序路径。架构循环切割可以去除架构中的时序循环,并且还保持要求用于时序驱动优化的时序路径。可以使用架构循环切割,以使用基于钟控的EDA工具流程,支持相关时序模块。设计可以从行为硬件描述语言被合成608。合成可以采用传统的基于钟控的EDA工具,诸如,设计编译器。
在一个实例中,可以作出将采用的测试方法的确定。如果不采用测试,则处理可以继续合成时序封闭搜索算法610。制造可测试性可以被添加至设计。例如,可以选择扫描测试,并且同步EDA工具(例如,Tetramax或FastScan)可以被采用,以创建扫描链和测试矢量。一些附加相关时序表征模块可以被采用,以支持所选测试风格。
如先前关于搜索和封闭算法描述的,合成时序封闭搜索算法610可以执行用于包括在集成电路架构中的相关计时模块的时序封闭。当在基于钟控和相关时序延迟路径的系统中不发生时序违犯时,可以实现时序封闭。可以应用步骤604-610的迭代,以去除负余量或时序误差。电路设计可以被合成,并且被表示为负余量的时序误差可以被确定。可以修改延迟目标和裕度,以去除负余量。然后,电路设计可以被重新合成,并且时序目标被修改,直到在电路设计中不发生时序违犯为止。合成时序封闭还可能导致对架构或者相关计时设计模块的修改。合成时序封闭可以允许传统基于钟控的EDA工具流程中的迭代。
在另一个实例中,预先布局设计可以被验证用于正确性。正确性验证可以使用传统的基于钟控的EDA工具执行,诸如,ModelSim、NCVerilog、或Eldo。
附加方法或算法可以被应用至电路架构,以帮助优化用于功率和性能的设计。例如,相关计时架构可以是非同步设计,其可以包含多种循环和本地频率,其可以作出不同于传统钟控设计的架构优化。任何方法都可以被应用,以优化用于功率和性能的架构。功率和性能优化可以通过系统功率和性能优化器被执行,并且包括诸如事件的计时间隔、顶盖图、可视化技术、电压降低、或者功率门控的方法。功率和性能优化可以包括在钟控性能优化中不使用的附加方法和算法,其可以包括使用钟控EDA工具流程的CAD组件的迭代。
已被表征用于相关时序的设计中的每个实例可以具有被映射至用于物理布局612的特定设计实例的约束。用于物理布局的特定设计实例可以包括必须实现EDA工具中的时序驱动算法用于设计优化的所有约束。例如,用于物理布局的特定设计实例可以包括不允许修改RT表征模块的逻辑的命令、切割模块中的时序循环的命令、或者限定关于模块的时序路径的命令。用于物理布局的特定设计实例还可以包括将相关节点聚集到一起的命令,或者使用基于时序约束的力引导方法,以基于设计中的元件的布置优化设计的功率和性能。可以采用将时序约束映射至架构的任何方法。用于物理布局的特定设计实例的映射可以实现相关计时设计模块的时序驱动优化。
接下来,可以创建614物理设计。可以通过传统EDA设计工具和CAD工具中的任何一个执行物理设计,诸如,Magma、ICC或SoC。通过物理设计,可以完成集成电路的设计。类似于合成时序封闭,可以使用物理设计时序封闭搜索算法616,以去除负余量并且提供物理设计的时序封闭。当在基于钟控和相关时序延迟路径的系统中不发生时序违犯时,时序封闭可以被实现。步骤604-616的迭代可以被应用,以去除负余量或时序误差。
全部相关时序约束集合可以被应用至物理设计实例618,用于行为和时序正确性的时序验证。在一个实例中,在用于合成和物理设计的设计流程中,可以仅采用速度依赖时序约束的子集。为了最终设计验证,可以采用约束的完整健壮集合。用于时序验证的映射可以不仅包括速度依赖约束的全部集合,而且还包括当使用延迟不敏感(不定时)方法对系统建模时使用的附加约束。例如,可以创建约束的多个集合,其可以验证用于设计的可能时序要求,以便以期望性能正确地操作。时序验证可以使用其合并覆盖所有约束的不同约束集合,使用迭代验证运行。迭代可以由于与(a)切割时序循环以形成为有向非循环图(DAG)的时序图的需要、以及(b)保持必须检验的时序路径的期望结合的相关计时设计模块的正常顺序和循环性质。这两个条件对于不同时序约束路径可能通常相互排他,要求多个验证运行。可以采用将时序约束的全部集合映射到架构和多个运行集合的任何方法。用于时序验证的映射可以实现相关计时设计模块的时序驱动优化。布局后设计可以被验证620用于性能、正确性和产量。基于钟控的时序验证EDA工具可以包括PrimeTime和ModelSim。类似于合成时序封闭和物理设计时序封闭,可以使用完整时序封闭搜索算法,以去除负余量,并且提供完整布局后设计的时序封闭。当在基于钟控和相关时序延迟路径的系统中不发生时序违犯时,可以实现时序封闭。步骤604-622的迭代可以被应用,以去除负余量或者时序误差。在去除负余量之后,最终验证后的集成电路可以下线624,并且被发送至铸造厂用于制造。
在一个实例中,线性管道线阶段330(图3)可以是相关计时架构520(图5)的一部分。该管道线可以实现任何功能,诸如,管道线倍增操作。例如,图7图示了用于使用通信系统的演算(CCS)的控制模块342、344和346的行为的形式规范。
可以使用用于实现控制模块的很多不同方法和电路风格,诸如,状态图和符号转换图(STG)。在一个实例中,在图8中图示了规范700的电路实现800。控制模块电路(即,握手电路)包括七个组合逻辑门:状态逻辑门,诸如,逆变器804、806、以及810和NOR门808和814;以及复合门,诸如,AND-OR-反向门(AOI门)802和812。AOI门是从一个或多个“与(AND)”门继之以“或非(NOR)”门的结合构造的两级复合或复杂逻辑功能。还可以使用任何其他类型的门,诸如,动态逻辑、多米诺门、锁存器、或多数门。模型800的逻辑可以实现顺序函数。顺序逻辑可以通过反馈实现,如所示。反馈可以在电路的拓扑中创建循环,就像经过门802和804;门802、804和808;门812和814;以及门812、814和808的循环的情况。顺序电路还可以包含通过使用锁存器、动态门或多数门存在的状态。电路可以使用诸如Verilog的硬件描述语言描述。在一个实例中,由800表示的逻辑可以通过结构Verilog被映射至130纳米(nm)工匠元件库900,如图9中所示。然后,电路设计可以根据操作510被表征(图5)。
相关时序是实现异质时序要求一般电路和系统的准确捕捉、建模和验证的数学时序模型。时序约束在这些设计中可以是明确的,而不使用传统隐式表示,诸如,时钟频率,以允许设计者和工具指定并且理解隐含结论,并且操纵更一般电路结构和先进时钟技术的时序。影响电路的性能和正确性的时序约束可以被变换为逻辑约束,而不是通常的实值变量或延迟范围。逻辑约束可以支持紧凑表示,并且允许更有效的搜索和验证被开发,其可以大大增强结合时序与优化、物理布置、以及验证设计工具的能力。结果,通过设计者和CAD工具表示时序的方式可以以仍然允许EDA工具执行时序驱动优化的方式被更改,而且还给出跨过系统中的延迟目标的精细颗粒控制。使用明确时序约束的方法可以在一些电路设计中提供显著功率-性能优点。
电路中的时序可以确定性能和正确性。可以采用相关时序,以表示控制模块的正确性和性能条件。例如,时序约束可以被表示为使得某些状态不可达到的逻辑表示。被去除的状态可以包含电路故障,从而时序对于电路正确性可能是必须的。从而,如果所有时序在物理实现中都被满足,则电路可以操作而没有故障。性能约束对于正确电路操作可能不是关键的,但是性能约束可以确保性能目标被满足。图10图示了用于被用于指定相关时序约束1000(还在方程1中表示)的基于路径的相关时序的一般形式。方程包括离散点(pod)和汇聚点(poc)。离散点pod可以是在系统中创建其他事件的任何事件,诸如,时钟事件或握手信号。汇聚点由两个事件poc0和poc1和裕度m构成。两个poc事件在时间上被排序用于电路正确地操作,或者实现期望性能。事件pod和事件poc0之间的最大延迟加上裕度m可以小于从事件pod到事件poc1的最小延迟。
图11图示了用于图9的电路在系统中正确地操作的速度依赖时序约束1100。约束1100可以包括三个种类:局部实现约束、计时协议约束、以及捆绑数据约束。延迟不敏感约束的集合(未示出)可以是全部设计表征流程的一部分。约束的数量和类型可以基于用于实现的门、协议的并行性、以及系统设计被确定。在图11中的约束的示例性实施例中,如果没有到pod、poc0、以及poc1的索引存在,则事件可以是模块本地的参考节点。当索引存在诸如用于捆绑数据约束时,索引可以指示对设计中的不同模块实例或者较高层层级中的节点的参考。较大索引(即,较高数量索引)可以指示沿着经由设计中的请求信号达到的管道线(即,下游)向下的参考,而较小索引(即,较低数量指示)可以经由肯定应答信号向上经过管道线(即,上游)。从而,用于捆绑数据约束的路径可以经由到下游控制器的锁存器的请求信号移动到下游控制器。图11的时序约束1100提供实例,并且不旨在限制。还可以使用在相关计时方程中表示端点的附加、更少或不同方法。
约束可以被映射530(图5)到设计实例。例如,当被应用至图3中的实例344时,用于图11中的RT约束的路径和延迟约束可以是以下:路径的最大延迟lni+1+→la_i+1-→lai+1+→y_i+1-可以小于路径的最小延迟lri+1+→la_i+1-→lai+1+→rai+→ra_i-→rr_i+→rri-→lri+1-→la_i+1+→lai+1-。继之以下划线(_)的信号标记(例如,la)可以表示启用低信号(例如,la_),而没有下标的信号标记可以表示启用高信号(例如,la)。在信号标记之后的减号(-)可以表示信号的下降沿(例如,la-),同时信号标记之后的加号(+)可以表示信号的上升沿(例如,la+)。整数i可以表示上游设计实例,而整数i+1可以表示局部设计实例。该路径的多个显著方面存在。两个路径的前三个转换相同,从而可以采用基于钟控的EDA工具中的公共路径算法,诸如“公共路径悲观”。如所示,pod到poc1路径可以是循环的。从而,该循环路径可以在某处被打破,以确保时序图是非循环的。多种方法可以被用于该循环路径的合成和验证,包括作为路径的子集的设定目标,或者具有满足相关事件约束不相等的路径片段的总和。可以采用以由基于钟控的EDA工具支持的方式将路径正确地映射至时序工具的任何方法。在一个实例中,可以采用循环切割来创建有向非循环时序图,以及确保时序路径通过RT表征设计模块中的期望门。
图12中示出打破图9中的模块900的结构时序循环的示例性约束的集合1200。可以使用约束的集合1200,以跨过设计中的所有节点创建时序图,作为有向非循环图(DAG)。时序图可以切割命令1200,可以使用标准“set_dont_touch”命令,以打破从模块的门中的一些输入管脚到输出管脚的时序路径。这些切割1200可以指图8的示例性电路800和图9中的其示例性硬件描述语言表示900。在本实例中,两个门802和812中的切割时序路径可以充分切割从握手电路产生的局部循环和架构循环。从信号la、rr和y_创建的反馈循环可以通过门802和812被切割。另外,从握手信号产生的架构反馈循环还可以通过禁用这些门中的ra_管脚被切割。可以进行切割,使得至少一个时序路径可以保持用于每一个门。创建用于每一个门的至少一个时序路径允许每个门使用EDA工具中的时序驱动算法被适当地优化,只要时序弧(如图14中所示)经过每个门即可。可以使用切割时序循环以创建有向非循环时序图的不同方法。可以使用附加、更少或不同路径,以创建有向非循环图。
图13图示了被提供以确保被表征用于相关时序的设计模块在逻辑上不被钟控EDA工具修改的示例性约束1300的集合。被表征用于将被包括在EDA工具流程中的很多不支持模块可以具有反馈,并且可以具有冗余覆盖,以避免另外在多种操作模式下发生的危险或小事故。基于钟控的EDA工具可以优化冗余覆盖。对模块的局部修改还可以无效模块的表征结果。从而,可以防止相关事件表征模块中的大部分元件在合成流程中被逻辑修改。例如,图13中所示的命令的集合1300可以应用至图9的相关计时设计模块900。在图13中,使用set_size_only命令。set_size_only命令可以允许门实例被调整大小到不同驱动强度,以优化用于功率和性能的门实例,但是可能不允许门实例在逻辑上被修改。还可以使用诸如set_dont_touch的其他命令。set_size_touch命令不允许逻辑或非驱动强度被EDA工具修改。可以应用在逻辑上保护门同时允许一些修改的不同方法。可以使用附加、更少或不同约束集合,以允许工具流程中的灵活性,但是保持相关时序的基本特性。例如,主要输入和输出上的逆变器可能不需要通过约束保护。
图14图示了在用于相关计时实例344(图3)的合成和设计的RT约束映射530(图5)中创建的时序路径的集合1400。时序路径1400的集合假设在从时序图切割命令1200生成的有向非循环时序图上采用相关时序约束集合1100。1400中的时序路径可以被映射到如在示例性架构300中使用的实例。例如,时序路径1400假设组合数据路径318和320要求0.740ns的逻辑延迟,如由前两个约束指定的。1400的第一和第三个约束覆盖提供50ps裕度的1100的“捆绑数据约束”。1100中的所有其他路径还可以覆盖在时序图1400中。
在另一个实例中,用于第一“局部实现约束”的路径指示来自的最大延迟小于来自的最小延迟。全部最大延迟路径可以通过1400中的第五约束被约束为小于0.120ns。被映射到实例(如较早所示的)的最小延迟路径可以是lri+1+→la_i+1-→lai+1+→rai+→ra_i-→rr_i+→rri-→lri+1-→la_i+1+→lai+1-。该路径的子集可以从1400中的第三约束估计。约束可以从Ir而不是rr开始,但是可以通过相同门。路径还可以是全部路径的子集。由于该路径子集具有0.800ns的最小延迟,其基本大于用于相关时序约束的最大延迟分量的全部路径的0.120的延迟,所以电路可以被正确地合成,以满足该时序约束。
在一个实例中,来自时序约束1100的路径和路径的子集可以被映射至时序路径1400中的每个时序约束。当该映射被用于设计中的所有相关时序实例时,约束的集合可以被传送到基于钟控的EDA工具,其可以确保设计是被优化用于功率和性能的时序,同时满足系统中的时序约束。可以采用附加、更少或不同约束。可以采用用于生成约束集合的不同方法和算法。在一个实例中,图3的延迟元件358和360可以通过合成工具自动地生成。
如图12、图13和图14中所示的约束的类似但是不同子集的创建可以被用于设计流程中的每个步骤和CAD工具。可以使用附加、更少或不同约束。可以在不是传统EDA工具流程的一部分的设计流程中采用附加、更少或不同步骤。例如,在相关计时系统设计应用的示例性流程600中,可以使用合成时序封闭610,以创建在时序路径1400中使用的延迟目标。合成时序封闭610可以使用诸如设计编译器的合成工具,使用迭代处理。在一个实例中,设计中的实际路径的子集或近似可以充分用于设计流程中的很多步骤,如时序图1400中的约束的情况。然而,约束的最终集合可以更加严格和完整,其中,完整时序验证工具验证可能在包括线叉延迟的物理设计中的实际延迟和变化。从而,时序验证可以采用从延迟不敏感延迟模型而不是通常充分用于设计处理的速度依赖模型创建的相关时序约束。
另一个实例提供用于生成使得能够使用钟控电子设计自动化(EDA)工具流程的相关时序架构的方法1500,如图15中的流程图中所示。方法在机器或计算机电路上被执行为指令,其中,指令包括在至少一个计算机可读介质或者一个非暂时性机器可读存储介质上。该方法包括使用相关计时模块生成集成电路(IC)架构的操作,如框1510中。将相关时序约束(RTC)映射到相关计时模块的相关计时实例的操作如下,如框1520中。方法的下一个操作可以生成用于每个相关时序约束的延迟值,如框1530中。
在一个实例中,生成延迟值的操作可以进一步包括:迭代地修改相关时序约束的延迟值,直到在IC架构中不发生时序违犯为止,由此生成封闭时序解决方案。在另一个实例中,方法可以进一步包括:使用钟控工具流程内的相关计时模块的时序驱动优化,优化IC架构的功率和性能。优化功率和性能可以包括事件的计时间隔、顶盖图、可视化技术、电压降低、或功率门控。
在另一种配置中,相关时序约束(RTC)可以由表示,其中,pod是离散点(pod)事件,poc0是在用于合适电路操作的第二poc事件poc1之前发生的第一汇聚点(poc)事件,并且裕度m是poc0和poc1之间的最小间隔。延迟值可以提供用于在pod事件和第一poc事件之间的第一相关事件路径的最大目标延迟、用于pod事件和第二poc事件之间的第二相关事件路径的最小目标延迟、以及表示第一相关事件和第二相关事件之间的最小间隔的裕度目标延迟。
在另一个实例中,映射相关时序约束并且生成用于每个相关时序约束的延迟值的操作可以进一步包括:限定用于相关时序约束的端点,并且确定相关时序约束的端点之间的时序路径,其中,IC架构的每个门都可以在IC架构的至少一个时序路径中表示。
在另一种配置中,方法可以进一步包括:防止相关计时模块或相关计时实例的逻辑修改。
另一个实例提供用于被配置用于使用相关计时模块生成相关事件架构的钟控工具流程的电子设计自动化(EDA)工具的计算机电路的功能1600,如在图16中的流程图中所示。功能可以被实现为方法,或者功能可以被执行为机器上的指令,其中,指令包括在至少一个计算机可读介质或者一个非暂时性机器可读存储介质上。计算机电路可以被配置成使用相关计时模块生成硬件描述语言(HDL)集成电路(IC)架构,如框1610中。计算机电路可以进一步被配置成将相关时序约束(RTC)映射到相关计时模块的相关计时实例,如框1620中。计算机电路还可以被配置成生成用于每个相关时序约束的时序目标,如在框1630中。
在一个实例中,计算机电路可以进一步被配置成迭代地修改相关时序约束的时序目标,直到在HDL IC架构中不发生负时序余量为止。负时序余量可以表示时序违犯。在一种配置中,被配置成迭代地修改时序目标的计算机电路可以进一步被配置成汇聚用于钟控时序延迟路径和相关时序延迟路径的负时序余量。在另一种配置中,被配置成迭代地修改时序目标的计算机电路可以进一步被配置成将延迟元件添加到HDL IC架构中,以满足相关时序约束。在另一种配置中,计算机电路被配置成使用钟控工具流程内的相关计时模块的时序驱动优化,优化HDL IC架构的功率和性能。
在另一个实例中,被配置成映射相关时序约束的计算机电路可以进一步被配置成限定用于相关时序约束的端点。被配置成生成时序目标的计算机电路可以进一步被配置成确定跨过相关时序约束的时序路径的端点之间的时序弧,其中,时序弧的合成物中的一个经过IC架构的每个门。
在另一种配置中,相关时序约束(RTC)可以由表示,其中,pod是离散点(pod)事件,poc0是在用于合适电路操作的第二poc事件poc1之前发生的第一汇聚点(poc)事件,并且裕度m是poc0和poc1之间的最小间隔。时序目标可以提供用于pod事件和第一poc事件之间的第一相关事件路径的最大目标延迟、用于pod事件和第二poc事件之间的第二相关事件路径的最小目标延迟、或者表示第一相关事件和第二相关事件之间的最小间隔的裕度目标延迟。
在另一个实例中,计算机电路可以进一步被配置成设计和表征相关计时模块。在另一种配置中,被配置成生成用于每个相关时序约束的时序目标的计算机电路可以基于架构功率目标或者架构性能目标。
在另一个实例中,EDA工具可以是合成工具、优化工具、物理设计工具、物理布线和布置工具、或者时序验证工具。在另一种配置中,相关计时模块可以通过将设计编码到Verilog、HDL、或者超高速集成电路(VHSIC)HDL(VHDL)中,生成行为HDL IC架构或者结构HDL IC架构。
图17图示了用于被配置用于包括处理器1714的相关时序架构生成的钟控工具流程的示例性电子设计自动化(EDA)工具1712。在一个实例中,处理器可以被配置成实现如在图15的1500中描述的方法。在另一个实例中,处理器可以被配置成实现如在图16的1600中描述的计算机电路。
在一个实例中,处理器1714(图17)可以被配置成:使用相关计时模块生成集成电路(IC)架构;将相关时序约束(RTC)映射到相关计时模块的相关计时实例;以及生成用于每个相关时序约束的延迟目标。在另一种配置中,处理器可以被配置成递归地改变延迟目标,以使用时序封闭搜索算法消除时序违犯。
在另一个实例中,相关时序约束(RTC)可以由表示,其中,pod是离散点(pod)事件,poc0是在用于合适电路操作的第二poc事件poc1之前发生的第一汇聚点(poc)事件,并且裕度m是poc0和poc1之间的最小间隔。延迟目标可以提供用于pod事件和第一poc事件之间的第一相关事件路径的最大目标延迟、用于pod事件和第二poc事件之间的第二相关事件路径的最小目标延迟、或者使第一相关事件路径与第二相关事件路径相关的裕度约束,在第一相关事件和第二相关事件之间具有最小间隔。
在另一种配置中,处理器可以被配置成使用钟控工具流程内的相关计时模块的时序驱动优化,优化IC架构的功率和性能。在另一个实例中,处理器可以被配置成:限定用于相关时序约束的端点;以及确定相关时序约束的端点之间的时序路径。IC架构的每个门都可以被表示在IC架构的至少一个时序路径中。在另一种配置中,处理器可以被配置成防止相关计时模块的逻辑的修改。
在另一个实例中,使用EDA工具1712的电子设计自动化(EDA)系统1710可以被用于生成集成电路(IC)。EDA系统可以包括架构设计工具1720、合成工具1722、物理设计工具1724、以及时序验证工具1726。架构设计工具可以包括EDA工具,以通过使用硬件描述语言(HDL)对表征信息、元件库信息、以及架构性能目标编码,设计和表征集成电路(IC)架构。在一个实例中,架构设计工具可以使用Verilog、硬件描述语言(HDL)、或超高速集成电路(VHSIC)HDL(VHDL)。合成工具可以包括EDA工具,以生成硬件逻辑来实现HDL的行为。在一个实例中,合成工具可以使用Synopsys设计约束(.sdc)、设计编译器、Encounter寄存器传输级(RTL)、Xilinx集成软件环境(ISE)、Xilinx合成工具(XST)、Quartus、Synplify、LeonardoSpectrum、或者Precision。物理设计工具可以包括EDA工具,以基于硬件逻辑布置和布线硬件电路。在一个实例中,物理设计工具可以使用Synopsys集成电路编译器(ICC)、Cadence Encounter数字实现(EDI)、或Cadence芯片上系统(SoC)Encounter。时序验证工具可以包括EDA工具,以使用速度依赖时序约束和延迟不敏感时序约束,验证硬件电路,用于性能、正确性和产量。在一个实例中,时序验证工具可以使用PrimeTime、Tempus、Modelsim、Eldo、集成电路专用模拟程序(SPICE)、Verilog编译模拟器(VCS)、或者Cadence Verilog-L层扩展(Verilog-XL)。
多种技术、或特定方面或者其部分可以采用嵌入诸如软盘、光盘-只读存储器(CD-ROM)、硬盘驱动器、非暂时性计算机可读存储介质、或者任何其他机器可读存储介质的有形媒体中的程序代码(即,指令)的形式,其中,当程序代码被加载到诸如计算机的机器中并且由其执行时,机器变为用于实施多种技术的装置。电路可以包括硬件、固件、程序代码、可执行代码、计算机指令、和/或软件。非暂时性计算机可读存储介质可以是不包括信号的计算机可读存储介质。在可编程计算机上的程序代码执行的情况下,计算设备可以包括处理器、可由处理器读取的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。易失性和非易失性存储器和/或存储元件可以是随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪盘驱动器、光学驱动器、磁盘驱动器、固态驱动器、或者用于存储电子数据的其他介质。节点和无线设备还可以包括收发器模块(即,收发器)、计数器模块(即,计数器)、处理模块(即,处理器)、和/或时钟模块(即,时钟)或者定时器模块(即,定时器)。可以实现或者利用在此描述的多种技术的一个或多个程序可以使用应用编程接口(API)、可重用控制等。这样的程序可以以高级过程或面向对象编程语言被实现,以与计算机系统通信。然而,如果期望,程序可以以汇编或者机器语言被实现。在任何情况下,语言都可以是编译或者解释语言,并且与硬件实现结合。
应该理解,在本说明书中描述的很多功能单元都被标记为模块,以便更特别地强调它们的实现独立性。例如,模块可以被实现为硬件电路,包括定制超大规模集成(VLSI)电路或门阵列、非定制半导体,诸如,逻辑芯片、晶体管、或者其他离散组件。模块还可以在可编程硬件设备中被实现,诸如,现场可编程门阵列(FPGA)、可编程阵列逻辑、可编程逻辑器件等。
模块还可以在软件中被实现,用于由多种类型的处理器执行。可执行代码的被识别模块可以例如包括计算机指令的一个或多个物理或者逻辑块,其可以例如被组织为对象、过程或功能。然而,被识别模块的可执行体不需要在物理上定位在一起,而是可以包括存储在不同位置的离散指令,当在逻辑上被结合在一起时,其包括模块并且实现用于模块的所述目的。
实际上,可执行代码的模块可以是单个指令、或者很多指令,并且可以甚至分布在多个不同代码段上、不同程序之间、并且跨过多个存储设备。类似地,操作数据在此可以被识别并且图示在模块内,并且可以以任何合适形式被具体化,并且组织在任何合适类型的数据结构内。操作数据可以被收集为单个数据集合,或者可以分布在不同位置上,包括在不同存储设备之上,并且可以至少部分地、仅存在为系统或网络上的电子信号。模块可以是被动的或主动的,包括可操作以执行期望功能的代理。
贯穿本说明书对“实例”或“示例性”的参考是指结合实例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。从而,措辞“在一个实例中”或者词语“示例性”在贯穿本说明书的多个位置处的出现不一定均指相同实施例。
如在此使用的,为了方便起见,多个项、结构元件、组成元件、和/或材料可以在公共列表中出现。然而,这些列表应该被解释为列表的每个成员分别被识别为单独和唯一成员。从而,在没有对国家的指示的情况下,单独基于公共组中的它们的表示,这样的列表的各个成员不应该被解释为相同列表的任何其他成员的实际等价物。另外,在此可以参考本发明的多种实施例和实例以及用于其多种组件的更改。将理解,这样的实施例、实例和更改不被解释为相互的实际等价物,而是被认为是本发明的单独和自主表示。
而且,所描述的特征、结构或特性可以以任何合适方式被组合在一个或多个实施例中。在以下说明中,提供大量特定详情,诸如,布局、距离、网络实例等的实例,以提供本发明的实施例的彻底理解。然而,本领域技术人员将认识到,本发明可以在没有一个或多个特定详情、或者其他方法、组件、布局等的情况下被实现。在其他实例中,众所周知的结构、材料或操作不被详细地示出或描述,以避免模糊本发明的多个方面。
虽然以上实例在一个或多个特定应用中说明了本发明的原理,但是本领域普通技术人员将理解,可以在没有发明能力的运用的情况下并且在不脱离本发明的原理和概念的情况下,可以作出实现的形式、使用和详情的大量修改。从而,仅由阐述的权利要求来限制本发明。
Claims (26)
1.一种用于钟控工具流程的电子设计自动化(EDA)工具,所述电子设计自动化(EDA)工具被配置用于使用相关计时模块生成相关时序架构,具有计算机电路,所述计算机电路被配置成:
使用所述相关计时模块来生成硬件描述语言(HDL)集成电路(IC)架构;
将相关时序约束(RTC)映射到所述相关计时模块的相关计时实例;以及
生成用于每个相关时序约束的时序目标。
2.根据权利要求1所述的计算机电路,其中,所述计算机电路进一步被配置成:
迭代地修改所述相关时序约束的所述时序目标,直到在所述HDLIC架构中不出现负时序余量为止,其中所述负时序余量表示时序违犯。
3.根据权利要求2所述的计算机电路,其中,被配置成迭代地修改所述时序目标的所述计算机电路进一步被配置成:
汇聚用于钟控时序延迟路径和相关时序延迟路径两者的负时序余量。
4.根据权利要求2所述的计算机电路,其中,被配置成迭代地修改所述时序目标的所述计算机电路进一步被配置成:
将延迟元件添加到所述HDL IC架构中,以满足所述相关时序约束。
5.根据权利要求2所述的计算机电路,其中,被配置成迭代地修改所述时序目标的所述计算机电路进一步被配置成:
在所述钟控工具流程内使用所述相关计时模块的时序驱动优化来优化所述HDL IC架构的功率和性能。
6.根据权利要求1所述的计算机电路,其中:
被配置成映射所述相关时序约束的所述计算机电路进一步被配置成限定用于所述相关时序约束的端点;以及
被配置成生成所述时序目标的所述计算机电路进一步被配置成确定跨过所述相关时序约束的时序路径的端点之间的时序弧,其中所述时序弧的合成物中的一个经过所述IC架构的每个门。
7.根据权利要求1所述的计算机电路,其中:
所述相关时序约束(RTC)由表示,其中,pod是离散点(pod)事件,poc0是在用于合适电路操作的第二poc事件poc1之前发生的第一汇聚点(poc)事件,并且裕度m是所述poc0和所述poc1之间的最小间隔;以及
所述时序目标提供用于在所述pod事件和所述第一poc事件之间的第一相关事件路径的最大目标延迟、用于所述pod事件和所述第二poc事件之间的第二相关事件路径的最小目标延迟、或者表示所述第一相关事件和所述第二相关事件之间的最小间隔的裕度目标延迟。
8.根据权利要求1所述的计算机电路,其中,所述计算机电路进一步被配置成:
设计和表征所述相关计时模块。
9.根据权利要求1所述的计算机电路,其中,被配置成生成用于每个相关时序约束的所述时序目标的所述计算机电路基于架构功率目标或架构性能目标。
10.根据权利要求1所述的计算机电路,其中,所述EDA工具是合成工具、优化工具、物理设计工具、物理布线和布置工具、或者时序验证工具。
11.根据权利要求1所述的计算机电路,其中,所述相关计时模块通过将所述设计编码到Verilog、HDL、或者超高速集成电路(VHSIC)HDL(VHDL)中来生成行为HDL IC架构或结构HDL IC架构。
12.一种用于钟控工具流程的电子设计自动化(EDA)工具,所述电子设计自动化(EDA)工具被配置用于相关时序架构生成,包括:
处理器,以:
使用相关计时模块来生成集成电路(IC)架构;
将相关时序约束(RTC)映射至所述相关计时模块的相关计时实例;以及
生成用于每个相关时序约束的延迟目标。
13.根据权利要求12所述的EDA工具,其中,所述处理器进一步被配置成:
递归地改变延迟目标,以使用时序封闭搜索算法来消除时序违犯。
14.根据权利要求12所述的EDA工具,其中:
所述相关时序约束(RTC)由表示,其中,pod是离散点(pod)事件,poc0是在用于合适电路操作的第二poc事件poc1之前发生的第一汇聚点(poc)事件,并且裕度m是所述poc0和所述poc1之间的最小间隔;以及
所述延迟目标提供用于所述pod事件和所述第一poc事件之间的第一相关事件路径的最大目标延迟、用于所述pod事件和所述第二poc事件之间的第二相关事件路径的最小目标延迟、或者使第一相关事件路径与第二相关事件路径相关的裕度约束,其中所述第一相关事件和所述第二相关事件之间具有最小间隔。
15.根据权利要求12所述的EDA工具,其中,所述处理器进一步被配置成:
在所述钟控工具流程内使用所述相关计时模块的时序驱动优化来优化所述IC架构的功率和性能。
16.根据权利要求12所述的EDA工具,其中,所述处理器进一步被配置成:
限定用于所述相关时序约束的端点;以及
确定所述相关时序约束的端点之间的时序路径,其中,所述IC架构的每个门都表示在所述IC架构的至少一个时序路径中。
17.根据权利要求16所述的EDA工具,其中,所述处理器进一步被配置成:
防止所述相关计时模块的逻辑的修改。
18.一种使用权利要求12所述的电子设计自动化(EDA)工具以生成集成电路(IC)的EDA系统,包括:
架构设计工具,包括权利要求12所述的EDA工具,以通过使用硬件描述语言(HDL)编码表征信息、元件库信息、以及架构性能目标来设计和表征集成电路(IC)架构;
合成工具,包括权利要求12所述的EDA工具,以生成硬件逻辑来实现所述HDL的行为;
物理设计工具,包括权利要求12所述的EDA工具,以基于所述硬件逻辑来布置和布线硬件电路;以及
时序验证工具,包括权利要求12所述的EDA工具,以使用速度依赖时序约束和延迟不敏感时序约束来对硬件电路验证性能、正确性和产量。
19.根据权利要求18所述的EDA系统,其中,所述架构设计工具使用Verilog、硬件描述语言(HDL)、或超高速集成电路(VHSIC)HDL(VHDL);所述合成工具使用Synopsys设计约束(.sdc)、设计编译器、Encounter寄存器传输级(RTL)、Xilinx集成软件环境(ISE)、Xilinx合成工具(XST)、Quartus、Synplify、LeonardoSpectrum或者Precision;所述物理设计工具使用Synopsys集成电路编译器(ICC)、Cadence Encounter数字实现(EDI)、或者Cadence芯片上系统(SoC)Encounter;以及所述时序验证工具使用Primetime、Tempus、Modelsim、Eldo、集成电路专用模拟程序(SPICE)、Verilog编译仿真器(VCS)、或Cadence Verilog-L层扩展(Verilog-XL)。
20.一种用于生成使得能够使用钟控电子设计自动化(EDA)工具流程的相关时序架构的方法,包括:
使用相关计时模块来生成集成电路(IC)架构;
将相关时序约束(RTC)映射到所述相关计时模块的相关计时实例;以及
生成用于每个相关时序约束的延迟值。
21.根据权利要求20所述的方法,其中,生成用于每个相关时序约束的所述延迟值进一步包括:
迭代地修改所述相关时序约束的所述延迟值,直到在所述IC架构中不发生时序违犯为止,由此生成封闭时序解决方案。
22.根据权利要求20所述的方法,进一步包括:
在钟控工具流程内使用所述相关计时模块的时序驱动优化来优化所述IC架构的功率和性能,其中,优化功率和性能包括事件的计时间隔、顶盖图、可视化技术、电压降低、或者功率门控。
23.根据权利要求20所述的方法,其中:
所述相关时序约束(RTC)由表示,其中,pod是离散点(pod)事件,poc0是在用于合适电路操作的第二poc事件poc1之前发生的第一汇聚点(poc)事件,并且裕度m是所述poc0和所述poc1之间的最小间距;以及
所述延迟值提供用于所述pod事件和所述第一poc事件之间的第一相关事件路径的最大目标延迟、用于所述pod事件和所述第二poc事件之间的第二相关事件路径的最小目标延迟、以及表示所述第一相关事件和所述第二相关事件之间的最小间隔的裕度目标延迟。
24.根据权利要求20所述的方法,其中,映射相关时序约束并且生成用于每个相关时序约束的所述延迟值进一步包括:
限定用于所述相关时序约束的端点;以及
确定所述相关时序约束的端点之间的时序路径,其中,在所述IC架构的至少一个时序路径中表示所述IC架构的每个门。
25.根据权利要求20所述的方法,进一步包括:
防止所述相关计时模块或相关计时实例的逻辑修改。
26.至少一种非暂时性机器可读存储介质,包括:
多个指令,所述多个指令适于被执行以实现权利要求20所述的方法。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261672865P | 2012-07-18 | 2012-07-18 | |
US61/672,865 | 2012-07-18 | ||
US201261673849P | 2012-07-20 | 2012-07-20 | |
US61/673,849 | 2012-07-20 | ||
PCT/US2013/051160 WO2014015189A1 (en) | 2012-07-18 | 2013-07-18 | Relative timing architecture |
PCT/US2013/051156 WO2014015185A1 (en) | 2012-07-18 | 2013-07-18 | Relative timing characterization |
USPCT/US2013/051156 | 2013-07-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104620242A true CN104620242A (zh) | 2015-05-13 |
Family
ID=49949260
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380046641.4A Pending CN104620242A (zh) | 2012-07-18 | 2013-07-18 | 相关时序架构 |
CN201380046636.3A Pending CN104603784A (zh) | 2012-07-18 | 2013-07-18 | 相对定时表征 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380046636.3A Pending CN104603784A (zh) | 2012-07-18 | 2013-07-18 | 相对定时表征 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20140165022A1 (zh) |
EP (2) | EP2875455A4 (zh) |
JP (2) | JP2015524589A (zh) |
CN (2) | CN104620242A (zh) |
WO (1) | WO2014015189A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808839A (zh) * | 2016-03-04 | 2016-07-27 | 北京工业大学 | 一种电路路径的测试覆盖率分析方法 |
CN110532577A (zh) * | 2018-05-24 | 2019-12-03 | 大唐移动通信设备有限公司 | 数字逻辑电路编译方法及装置 |
CN110737890A (zh) * | 2019-10-25 | 2020-01-31 | 中国科学院信息工程研究所 | 一种基于异质时序事件嵌入学习的内部威胁检测系统及方法 |
CN113239655A (zh) * | 2020-05-21 | 2021-08-10 | 台湾积体电路制造股份有限公司 | 半导体电路的约束确定系统和方法 |
CN117151015A (zh) * | 2023-09-15 | 2023-12-01 | 上海合芯数字科技有限公司 | 集成电路布局布线方法、装置、集成电路芯片 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9135143B2 (en) * | 2012-10-08 | 2015-09-15 | National Instruments Corporation | Automated analysis of compilation processes in a graphical specification and constraint language |
CN104636509B (zh) * | 2013-11-08 | 2019-05-28 | 恩智浦美国有限公司 | 门级仿真中验证时序问题的系统及方法 |
US9734268B2 (en) * | 2015-08-12 | 2017-08-15 | International Business Machines Corporation | Slack redistribution for additional power recovery |
KR102556467B1 (ko) | 2015-09-10 | 2023-07-18 | 삼성디스플레이 주식회사 | 유기 발광 표시 장치 및 그의 감마 기준 전압 설정 방법 |
US9679092B1 (en) * | 2015-11-03 | 2017-06-13 | Xilinx, Inc. | Constraint handling for parameterizable hardware description language |
CN105676995B (zh) * | 2015-12-31 | 2017-03-22 | 南京华捷艾米软件科技有限公司 | 一种实现三维测量芯片低功耗的方法 |
US10073938B2 (en) * | 2016-06-29 | 2018-09-11 | International Business Machines Corporation | Integrated circuit design verification |
US10325045B2 (en) | 2017-05-25 | 2019-06-18 | International Business Machines Corporation | Estimating timing convergence using assertion comparisons |
US10733346B1 (en) * | 2018-12-12 | 2020-08-04 | Cadence Design Systems, Inc. | Systems and methods for arc-based debugging in an electronic design |
US10839126B1 (en) * | 2019-04-12 | 2020-11-17 | Dialog Semiconductor (Uk) Limited | Tools and methods for selection of relative timing constraints in asynchronous circuits, and asynchronous circuits made thereby |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5650938A (en) * | 1995-12-13 | 1997-07-22 | Synopsys, Inc. | Method and apparatus for verifying asynchronous circuits using static timing analysis and dynamic functional simulation |
US6058252A (en) * | 1995-01-19 | 2000-05-02 | Synopsys, Inc. | System and method for generating effective layout constraints for a circuit design or the like |
CN101361072A (zh) * | 2006-02-07 | 2009-02-04 | 国际商业机器公司 | 电路设计中电路元件的试探群集法 |
US20090210841A1 (en) * | 2008-02-12 | 2009-08-20 | University Of Southern California | Static timing analysis of template-based asynchronous circuits |
CN102004811A (zh) * | 2010-09-15 | 2011-04-06 | 华为技术有限公司 | 一种芯片电路的模拟测试方法和装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6005416A (en) * | 1997-05-02 | 1999-12-21 | International Business Machines Corporation | Compiled self-resetting CMOS logic array macros |
US6442739B1 (en) * | 1998-05-01 | 2002-08-27 | Cadence Design Systems, Inc. | System and method for timing abstraction of digital logic circuits |
US6519754B1 (en) * | 1999-05-17 | 2003-02-11 | Synplicity, Inc. | Methods and apparatuses for designing integrated circuits |
JP2001142927A (ja) * | 1999-11-16 | 2001-05-25 | Matsushita Electric Ind Co Ltd | 半導体集積回路装置の設計方法,回路の消費電力解析方法及び消費電力解析装置 |
US6763506B1 (en) * | 2000-07-11 | 2004-07-13 | Altera Corporation | Method of optimizing the design of electronic systems having multiple timing constraints |
US7194715B2 (en) * | 2004-04-30 | 2007-03-20 | International Business Machines Corporation | Method and system for performing static timing analysis on digital electronic circuits |
US7469392B2 (en) * | 2004-12-09 | 2008-12-23 | Synopsys, Inc. | Abstraction refinement using controllability and cooperativeness analysis |
US7773951B2 (en) * | 2006-05-23 | 2010-08-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for generating channel quality information for wireless communication |
US20080201671A1 (en) * | 2007-02-16 | 2008-08-21 | Atrenta, Inc. | Method for generating timing exceptions |
US8065647B2 (en) * | 2007-10-19 | 2011-11-22 | The University Of Utah Research Foundation | Method and system for asynchronous chip design |
US8103997B2 (en) * | 2009-04-20 | 2012-01-24 | International Business Machines Corporation | Method of employing slew dependent pin capacitances to capture interconnect parasitics during timing abstraction of VLSI circuits |
US8239796B2 (en) * | 2009-12-31 | 2012-08-07 | University Of Utah | Method and system for synthesizing relative timing constraints on an integrated circuit design to facilitate timing verification |
US8560988B2 (en) * | 2010-08-13 | 2013-10-15 | Atrenta, Inc. | Apparatus and method thereof for hybrid timing exception verification of an integrated circuit design |
US8365116B2 (en) * | 2010-12-06 | 2013-01-29 | University Of Utah Research Foundation | Cycle cutting with timing path analysis |
-
2013
- 2013-07-18 CN CN201380046641.4A patent/CN104620242A/zh active Pending
- 2013-07-18 EP EP13819908.8A patent/EP2875455A4/en not_active Withdrawn
- 2013-07-18 JP JP2015523265A patent/JP2015524589A/ja active Pending
- 2013-07-18 WO PCT/US2013/051160 patent/WO2014015189A1/en active Application Filing
- 2013-07-18 CN CN201380046636.3A patent/CN104603784A/zh active Pending
- 2013-07-18 EP EP13819907.0A patent/EP2875454A4/en not_active Withdrawn
- 2013-07-18 JP JP2015523267A patent/JP2015524590A/ja active Pending
- 2013-07-18 US US13/945,843 patent/US20140165022A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058252A (en) * | 1995-01-19 | 2000-05-02 | Synopsys, Inc. | System and method for generating effective layout constraints for a circuit design or the like |
US5650938A (en) * | 1995-12-13 | 1997-07-22 | Synopsys, Inc. | Method and apparatus for verifying asynchronous circuits using static timing analysis and dynamic functional simulation |
CN101361072A (zh) * | 2006-02-07 | 2009-02-04 | 国际商业机器公司 | 电路设计中电路元件的试探群集法 |
US20090210841A1 (en) * | 2008-02-12 | 2009-08-20 | University Of Southern California | Static timing analysis of template-based asynchronous circuits |
CN102004811A (zh) * | 2010-09-15 | 2011-04-06 | 华为技术有限公司 | 一种芯片电路的模拟测试方法和装置 |
Non-Patent Citations (1)
Title |
---|
KENNETH S. STEVENS ET AL: "Characterization of Asynchronous Templates for Integration into Clocked CAD Flows", 《ASYNCHRONOUS CIRCUITS AND SYSTEM, 15TH IEEE SYMPOSIUM》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808839A (zh) * | 2016-03-04 | 2016-07-27 | 北京工业大学 | 一种电路路径的测试覆盖率分析方法 |
CN105808839B (zh) * | 2016-03-04 | 2019-03-22 | 北京工业大学 | 一种电路路径的测试覆盖率分析方法 |
CN110532577A (zh) * | 2018-05-24 | 2019-12-03 | 大唐移动通信设备有限公司 | 数字逻辑电路编译方法及装置 |
CN110532577B (zh) * | 2018-05-24 | 2021-06-18 | 大唐移动通信设备有限公司 | 数字逻辑电路编译方法及装置 |
CN110737890A (zh) * | 2019-10-25 | 2020-01-31 | 中国科学院信息工程研究所 | 一种基于异质时序事件嵌入学习的内部威胁检测系统及方法 |
CN110737890B (zh) * | 2019-10-25 | 2021-04-02 | 中国科学院信息工程研究所 | 一种基于异质时序事件嵌入学习的内部威胁检测系统及方法 |
CN113239655A (zh) * | 2020-05-21 | 2021-08-10 | 台湾积体电路制造股份有限公司 | 半导体电路的约束确定系统和方法 |
CN117151015A (zh) * | 2023-09-15 | 2023-12-01 | 上海合芯数字科技有限公司 | 集成电路布局布线方法、装置、集成电路芯片 |
CN117151015B (zh) * | 2023-09-15 | 2024-03-15 | 上海合芯数字科技有限公司 | 集成电路布局布线方法、装置、集成电路芯片 |
Also Published As
Publication number | Publication date |
---|---|
JP2015524589A (ja) | 2015-08-24 |
CN104603784A (zh) | 2015-05-06 |
WO2014015189A1 (en) | 2014-01-23 |
JP2015524590A (ja) | 2015-08-24 |
EP2875455A1 (en) | 2015-05-27 |
EP2875455A4 (en) | 2016-06-22 |
EP2875454A1 (en) | 2015-05-27 |
US20140165022A1 (en) | 2014-06-12 |
EP2875454A4 (en) | 2016-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104620242A (zh) | 相关时序架构 | |
US6530073B2 (en) | RTL annotation tool for layout induced netlist changes | |
US20050091025A1 (en) | Methods and systems for improved integrated circuit functional simulation | |
US11256845B2 (en) | Machine-learning driven prediction in integrated circuit design | |
US20050268268A1 (en) | Methods and systems for structured ASIC electronic design automation | |
US9953120B2 (en) | Relative timing characterization | |
Kahng | Advancing placement | |
US20220075920A1 (en) | Automated Debug of Falsified Power-Aware Formal Properties using Static Checker Results | |
US20220300688A1 (en) | Fast synthesis of logical circuit design with predictive timing | |
US11347917B2 (en) | Determining and verifying metastability in clock domain crossings | |
Kahng et al. | RosettaStone: connecting the past, present, and future of physical design research | |
US20230351082A1 (en) | Satisfiability-based resubstitution for incremental mapped optimization | |
Gill et al. | Bottleneck analysis and alleviation in pipelined systems: A fast hierarchical approach | |
US20210390244A1 (en) | System and Method for Synchronizing Net Text Across Hierarchical Levels | |
Liang et al. | AMF-Placer 2.0: Open source timing-driven analytical mixed-size placer for large-scale heterogeneous FPGA | |
Bommu et al. | Retiming-based factorization for sequential logic optimization | |
Christensen et al. | PyLSE: A pulse-transfer level language for superconductor electronics | |
Pawar | Application of Machine Learning to Physical Design | |
US20230072923A1 (en) | Supervised machine learning based memory and runtime prediction using design and auxiliary constructs | |
US20240086602A1 (en) | Clock relationship based re-convergence analysis | |
Zervas et al. | Generalized Low Power Design Flow” | |
Sharma | Timing and Placement Driven Approaches to Improve Power and Performance in Relative Timed Designs | |
WO2014015185A1 (en) | Relative timing characterization | |
Murgai | Technology-based transformations | |
Wu | Physical design algorithms for asynchronous circuits |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150513 |