CN104603784A - 相对定时表征 - Google Patents

相对定时表征 Download PDF

Info

Publication number
CN104603784A
CN104603784A CN201380046636.3A CN201380046636A CN104603784A CN 104603784 A CN104603784 A CN 104603784A CN 201380046636 A CN201380046636 A CN 201380046636A CN 104603784 A CN104603784 A CN 104603784A
Authority
CN
China
Prior art keywords
poc
constraint
event
timing
relative timing
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
Application number
CN201380046636.3A
Other languages
English (en)
Inventor
肯尼斯·S·史蒂文斯
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.)
University of Utah Research Foundation UURF
Original Assignee
University of Utah Research Foundation UURF
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 University of Utah Research Foundation UURF filed Critical University of Utah Research Foundation UURF
Priority claimed from PCT/US2013/051156 external-priority patent/WO2014015185A1/en
Publication of CN104603784A publication Critical patent/CN104603784A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/35Delay-insensitive circuit design, e.g. asynchronous or self-timed
    • 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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

公开了使得能够使用钟控电子设计自动化(EDA)的相对定时表征的技术。在示例中,一种方法能够包括EDA工具,该EDA工具识别电路模型中的单元在离散点(pod)事件与两个汇聚点(poc)事件之间的相对定时约束(RTC),其中,所述两个poc事件包括第一poc事件(poc0)和第二poc事件(poc1)。所述EDA工具能够对于所述pod事件与所述第一poc事件之间的第一poc事件路径生成最大目标延迟。所述EDA工具能够对于所述pod事件与所述第二poc事件之间的第二poc事件路径生成最小目标延迟。所述EDA工具然后能够使用所述最大目标延迟和所述最小目标延迟来优化所述电路模型。

Description

相对定时表征
背景技术
电路定时能够影响电路的功率、性能、噪声以及面积。能够通过可以提供优于工业标准钟控设计方法和技术的益处的许多替代电路设计风格来调整定时。定时还可能是这些替代电路的商业化和采用的主要障碍。异步电路设计是使用替代定时的电路族的示例。在电路和架构级上,异步设计使用连续定时模型,而钟控设计使用基于时钟循环的时间的离散模型。
用于信号定序的两个一般方法已在设计界中出现:钟控和异步的。钟控设计建立在定义离散时钟周期的基于频率的协议上。钟控方法包含创建被公共频率控制的流水线级的锁存器(latch)或触发器(flip-flop)之间的组合逻辑(CL)。除钟控方法之外的所有其它方法可以被认为是“异步的”,包括但不限于采用握手协议、自重置多米诺(domino)电路以及嵌入式时序元件(诸如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、只读存储器(ROM)或可编程逻辑阵列(PLA))的方法。异步元件能够包含状态保持电路,诸如时序控制器、多米诺门或存储器元件。输入到异步电路的到达可能不基于全局时钟频率。通过异步电路的延迟能够基于功能、应用、制造变化以及操作参数(诸如温度和电压波动)而变化。
附图说明
本发明的特征和优点从结合附图进行的以下具体描述将是显而易见的,附图通过示例的方式共同说明本发明的特征;并且,其中:
图1图示依照示例的使用钟控电子设计自动化(EDA)工具和流程的定时电路模块表征系统的框图。
图2图示依照示例的钟控流水线。
图3图示依照示例的定时异步流水线。
图4图示依照示例的定时延迟不敏感异步流水线。
图5图示依照示例的定时电路模块表征过程的流程图。
图6图示依照示例的创建定时异步控制器设计的流程图。
图7图示依照示例的使用相对定时来表征定时异步控制器电路并且创建约束信息以用于在基于钟控电子设计自动化(EDA)工具流程中使用的流程图。
图8图示依照示例的高效线性流水线控制器规范。
图9图示依照示例的图8的高效线性流水线控制器的电路实现。
图10图示依照示例的使用130纳米(nm)Artisan库的高效线性流水线控制器的Verilog实现。
图11图示依照示例的基于路径的相对定时约束的表示。
图12图示依照示例的适用图9的高效线性流水线控制器以符合图8中的线性流水线控制器规范的相对定时约束的集合。
图13图示依照示例的从图12中的定时约束的子集得到的定时路径的集合以及用来为图10的异步控制电路生成循环分割的设计架构。
图14图示依照示例的图10的电路中的循环。
图15图示依照示例的为图10的电路创建作为有向非循环图(DAG)的定时图的定时图分割的集合。
图16图示依照示例的足以在图10中的控制器被用在图3的设计示例中时执行定时驱动优化和评估的延迟约束的集合。
图17图示依照示例的针对图10的控制器的仅尺寸约束的集合。
图18图示依照示例的使用四个与非(NAND)门的C-元件的电路实现。
图19图示依照示例的映射到180nm(nm)国际商用机器公司(IBM)单元库的Verilog单元库中规定的图18的C-元件的表征设计模块。
图20图示依照示例的双输入与非门的形式通信系统演算(CCS)半模块化和布尔模型。
图21图示依照示例的用于定义布尔函数和函数名称映射的形式通信系统演算(CCS)头函数文件。
图22图示依照示例的用来将库中的单元名称映射到包括引脚名称映射的形式模型的图18的C-元件的头函数文件。
图23图示依照示例的通信系统演算(CCS)中的用于图18的C-元件的设计模块的形式模型。
图24图示依照示例的由形式验证工具生成的针对图18的C-元件的设计的输入与输出之间的因果路径。
图25图示依照示例的针对图18的C-元件的速度无关相对定时约束。
图26图示依照示例的采用FORK元件的线分叉上的任意延迟的建模。
图27图示依照示例的联合和分叉模板的电路实现。
图28图示依照示例的针对使用FORK元件的图18的C-元件的延迟不敏感相对定时约束。
图29图示依照示例的针对图18的C-元件的不修改约束的集合。
图30图示依照示例的针对图18的C-元件的输入的端点映射的集合。
图31图示依照示例的针对图18的C-元件的映射到输出引脚的输入信号引脚的集合。
图32图示依照示例的作为可操作用于在Synopsys设计约束脚本中使用的工具命令语言(Tcl)变量规定的图18的C-元件的延迟。
图33图示依照示例的在相对定时端点存在于当前模块外部时对于图3的控制器使用C-元件的设计。
图34图示依照示例的针对使用自包含约束的图3的控制器的相对定时约束和映射约束。
图35图示依照示例的具有性能和功率值的后布图(post-layout)设计报告。
图36描绘依照示例的使得能够使用钟控电子设计自动化(EDA)工具流程的相对定时表征的方法的流程图。
图37描绘依照示例的针对相对定时表征配置的钟控工具流程的电子设计自动化(EDA)工具的计算机电路的功能性。
图38描绘依照示例的针对相对定时约束生成的钟控工具流程的电子设计自动化(EDA)工具的框图。
现在将参考所图示的示例性实施例,并且将在本文中使用特定语言来描述示例性实施例。然而将理解,在此不旨在限制本发明的范围。
具体实施方式
在公开和描述本发明之前,应当理解,本发明不限于本文所公开的特定结构、过程步骤或材料,而是被扩展到如将由相关领域的普通技术人员所认识的其等同物。应该理解,本文所采用的术语被用于仅描述特定示例的目的,并且不旨在为限制性的。
定义
如本文所使用的,术语“基本上”指代动作、特性、属性、状态、结构、项目或结果的完全或几乎完全的范围或程度。例如,被“基本上”包封的对象将意味着该对象要么被完全包封要么几乎完全包封。偏离绝对完整性的确切容许程度可能在一些情况下取决于特定上下文。然而,一般地说,完成的接近可能是以便具有相同的总体结果,如同获得了绝对且全部完成一样。“基本上”的使用当以贬义用来指代动作、特性、属性、状态、结构、项目或结果的完全或几乎完全缺少时同样地适用。
如本文所使用的,术语“集合”指代元件的合集,其能够包括任何自然数的元件,包括一个、零或更高整数值。
遍及本描述对“示例”的参考意味着连同该示例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,短语“在示例中”遍及本说明书在各种地方中的出现未必全部参考同一实施例。
单词“示例性”在本文中被用来意指用作示例、实例或图示。在本文中描述为“示例性”的任何方面或设计未必被解释为优于其它方面或设计而优选或有利的。另外,出于本公开的目的并且除非另外规定,否则“一”或“一个”意指“一个或多个”。示例性实施例可以使用标准编程和/或工程技术被实现为方法、装置或制品,以产生软件、固件、硬件或其任何组合以控制计算机实现所公开的实施例。
本发明的示例
在下面提供了技术改进的初始综述,并且然后稍后更详细地描述特定术语示例。该初始概要旨在帮助读者更迅速地理解技术,但是不旨在识别技术的关键特征或必要特征,它也不旨在限制所要求保护的主题的范围。
钟控设计由于EDA实现高生产率的能力而大大优于电子设计自动化(EDA)工业。能够通过采用将定时正确性限制于很少量的预定义时序单元(主要是触发器和锁存器)的方法学来实现高生产率。能够针对被用于设计正确性(诸如建立和保持时间)的定时条件表征这些预定义单元。钟控设计中的定时关键问题可以汇聚于触发器和锁存器。
该汇聚已产生直接集成到基于钟控设计方法学的EDA工业中使用的计算机辅助设计(CAD)算法中的触发器和锁存器的定时要求。虽然定时到算法中的这个直接集成简化钟控设计,但是算法能够抑制采用其它定时方法的电路的应用。
本文所描述的技术(例如,EDA工具、方法、计算机电路以及系统)能够以允许设计模块定时贯穿EDA设计工具流程被支持的方式表征设计模块。表征的结果可能具有至少两个结果。首先,能够创建贯穿工具流程传递以指导CAD算法在商业EDA工具中的操作以在所表征的模块上适当地操作的电路约束集合。第二,能够基于这个表征增强对EDA能够用来评估电路定时的标准电路定时库的修改,以在通过库门的延迟弧被分割成产生有向非循环定向图(DAG)时实现准确的静态定时分析。当被表征时,包括异步电路的一般设计模块能够被嵌入到钟控设计中或者用来使用标准商业基于时钟的EDA工具流程来构建系统。表征能够以与由基于时钟的工具流程直接支持的触发器和锁存器的方式相似的方式来实现对设计中使用的组件的定时算法支持。
如先前所描述的,技术能够被用于表征定时电路模块并且创建允许该定时电路模块被集成到当前基于钟控EDA工具中以得到定时驱动设计流程优化的约束。依赖于定时以得到正确操作的电路模块能够采用电路的行为的形式规范加以设计。能够针对电路和线延迟可能导致不正确的操作或者可能不满足性能要求的条件来评估这个电路模块。电路定时图然后能够被表示为有向非循环图,并且能够创建在基于时钟的EDA流程中驱动标准定时驱动商业设计优化和验证CAD工具算法的定时约束。
下文提供了先前描述的技术的简要综述。本文所描述的技术(例如,EDA工具、方法、计算机电路以及系统)基于相对定时(RT)的理论。根据公共定时基准,相对延迟必须跨越信号路径或信号频率保持,使得通过一个路径的最大延迟(max-delay)必须小于通过另一路径的最小延迟(min-delay)。此外,可能在两个路径的延迟之间需要分离的裕量(margin)。一个路径(通常是最小延迟路径)可以是基于固定频率(诸如时钟)的延迟,而不是沿着信号路径的延迟。因此,能够采用式1表示相对定时。
    式1
变量pod能够表示定时基准或事件。如果pod是事件,则逻辑路径存在于离散点(pod)与两个汇聚点(poc0和poc1)之间。如果pod是定时基准,诸如时钟,则定时基准能够为poc0和poc1这二者所共有。值m可以是事件之间的裕量或最小分离,并且值m可以为零或负的。为让式1成立,从事件pod到事件poc0的最大路径延迟加上裕量m可能小于从事件pod到事件poc1的最小路径延迟。在示例中,基于频率的信号(诸如时钟)的模拟延迟可以取代路径延迟,使得pod可以是上升时钟沿并且poc1可以是时钟的后续下降沿。
在另一示例中,能够执行用于表征用于包括在商业EDA工具中的异步时序电路模块的方法。能够充分地表征该表征电路以便所有定时条件成立并且以便设计考虑到期望电路环境的延迟和行为正确地操作,而无论该环境是钟控还是异步的。该表征能够通过创建从pod到poc0和pod1为基于路径的或基于频率的约束基于相对定时来表达延迟。能够添加相似形式的性能约束。能够选择完全约束集合的子集以用于表征并且以用于在EDA设计流程中以后使用。能够基于选择的约束的子集执行循环分割以创建作为能够贯穿EDA工具流程使用的DAG(有向非循环图)的定时图。能够针对延迟来表征技术(例如,电路)。延迟能够被用来修改自由(.lib)文件中的单元以允许循环电路延迟的更准确评估。能够存储定时和循环分割约束的完全集合。能够将选择的约束的各种子集转化成能够在设计和验证过程中在不同的定时驱动EDA工具的操作中直接使用的形式。例如,用于所选择的约束的格式能够包括.cstr格式,其能够被基于时钟的EDA工具使用。
在另一配置中,能够提供包括计算机可读指令的计算机可读介质,所述计算机可读指令在由处理器执行时,使该处理器执行表征适合于包括到工业标准EDA CAD流程中的定时电路模块的方法的操作。
在另一实施例中,系统能够包括处理器并且计算机可读介质能够被操作地耦合到处理器。计算机可读介质能够包括指令,所述指令当由处理器执行时,执行表征适合于包括到工业标准EDA CAD流程中的定时电路模块的方法的操作。
下文提供了先前描述的技术的附加细节和示例。图1图示定时电路模块表征系统100的框图。定时电路模块表征系统100可以包括任何形状因数的计算设备,其可以包括输出接口104、输入接口102、计算机可读介质108、处理器106、定时电路模块设计应用110以及能够根据110表征定时电路模块的定时电路模块表征应用112。不同的和附加的组件还可以被并入到定时电路模块表征系统100中。
输出接口104提供用于输出信息以供由定时电路模块表征系统100的用户检查的接口。例如,输出接口104能够包括显示器、打印机、扬声器或相似的输出设备的接口。显示器可以是薄膜晶体管显示器、发光二极管显示器、液晶显示器,或各种不同的显示器中的任一个。打印机可以是各种打印机中的任一个。扬声器可以是各种扬声器中的任一个。定时电路模块表征系统100能够具有使用相同或不同的接口技术的一个或多个输出接口。
输入接口102提供用于从用户接收信息以用于输入到定时电路模块表征系统100中的接口。输入接口102能够使用各种输入技术,包括但不限于键盘、笔和触摸屏、鼠标、轨迹球、触摸屏、小键盘、一个或多个按钮,或允许用户将信息键入到定时电路模块表征系统100中或者做出在输出接口104上显示的用户接口中所呈现的选择的相似的输入设备。输入接口102可以提供既输入且输出接口。例如,触摸屏都允许用户输入并且将输出呈现给用户。
计算机可读介质108可以是用于信息的电子存放地或存储部,使得信息能够被处理器106访问。计算机可读介质108能够包括但不限于任何类型的随机存取存储器(RAM)、任何类型的只读存储器(ROM)、任何类型的闪速存储器或相似的介质,诸如磁存储设备(例如,硬盘、软盘或磁带)、光盘(例如,紧凑盘(CD)或数字通用盘(DVD)或数字视频盘)、智能卡或闪速存储器设备。定时电路模块表征系统100能够具有使用相同或不同的存储器介质技术的一个或多个计算机可读介质。定时电路模块表征系统100还能够具有支持存储器介质的加载的一个或多个驱动器,诸如CD或DVD。
处理器106能够执行指令。指令能够由专用计算机、逻辑电路或硬件电路执行。因此,处理器106能够用硬件、固件、软件或这些方法的任何组合加以实现。术语“执行”是运行应用的过程或由指令要求的操作的执行。能够使用一个或多个编程语言、脚本语言、汇编语言或相似语言来编写指令。处理器106能够执行指令,意味着该处理器能够执行由该指令要求的操作。处理器106能够与输出接口104、输入接口102操作地耦合,并且与计算机可读介质108(例如,存储器)耦合以接收、发送、处理并且存储信息。处理器106能够从永久性存储器设备中检索指令集合并且以可执行形式将指令拷贝到临时存储器设备,诸如某种形式的RAM。定时电路模块表征系统100能够包括使用相同或不同的处理技术的多个处理器。
定时电路模块表征系统100能够执行与设计集成电路模块相关联的操作。所描述的操作中的一些或全部可以用定时电路模块设计应用110加以具体化。能够使用硬件、固件、软件或这些机制的任何组合来实现操作。在示例中,如由图1所图示的,定时电路模块设计应用110能够用存储在计算机可读介质108中并且可由处理器106访问以用于执行具体化定时电路模块设计应用110的操作的指令的软件加以实现。可以使用一个或多个编程语言、汇编语言、脚本语言或相似语言来编写定时电路模块设计应用110。
定时电路模块表征112能够执行与表征集成电路模块相关联的操作。所描述的操作中的一些或全部可以用定时电路模块表征112加以具体化。表征能够从定时电路模块设计应用110对定时电路模块进行操作。能够使用硬件、固件或软件来实现针对定时电路模块表征的操作。在示例中,如由图1所图示的,定时电路模块表征112能够用存储在计算机可读介质108中并且可由处理器106访问以用于执行具体化定时电路模块设计应用110的操作的指令的软件加以实现。可以使用一个或多个编程语言、汇编语言、脚本语言或相似语言来编写定时电路模块表征112。在示例中,定时电路模块表征112能够包括各种算法并且以各种表示存储在计算机可读介质108中。
能够采用如由电子设计自动化(EDA)工业所使用的计算机辅助设计(CAD)直接支持基于钟控的设计。图2图示采用基于钟控EDA工具支持的电路的示例。该电路能够包括数据路径210和时钟分配网络240。数据路径210能够包括第一寄存器212(例如,触发器)、第二寄存器214以及第三寄存器216、第一组合逻辑(CL)块218和第二组合逻辑块220。第一寄存器212能够接受输入222并且基于信号226上的时钟事件存储值。第三寄存器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能够在不同的时钟树路径244和246之间的低歪斜情况下维持来自时钟发生器242的频率。
图3图示具有可能不被传统的基于钟控EDA支持的定时电路模块的系统的异步电路300的示例。在图3的示例中,使用了单独的数据路径310和控制网络340。数据路径310能够包括第一寄存器312(例如,锁存器,诸如数据或延迟触发器(D触发器)或配置有数据输入端“D”和数据输出端“Q”的锁存器)、第二寄存器314以及第三寄存器316、第一组合逻辑块318和第二组合逻辑块320。第一寄存器312能够接受输入322并且基于第一寄存器时钟输入端326上的时钟事件存储值。第三寄存器316输出输出324。寄存器和组合逻辑块的输入和输出能够使用多个数据线n(例如,总线)。能够将第一寄存器312的输出呈现给第一组合逻辑318的输入端,并且能够在第一组合逻辑318的输出端处产生结果。当在第二寄存器时钟输入端328上发生时钟事件(诸如上升沿)时,第二寄存器314能够捕获由第一组合逻辑318产生的结果。同样地,能够将第二寄存器314的输出呈现给第二组合逻辑320的输入端,并且能够在第二组合逻辑320的输出端处产生结果。当在第三寄存器时钟输入端330上发生时钟事件(诸如上升沿)时,第三寄存器316能够捕获由第二组合逻辑320产生的结果。异步流水线中的寄存器312、314以及318可以是锁存器、触发器、动态门或任何其它存储器元件。
不是使用如图2中所示的时钟网络240来生成时钟事件,而是异步电路能够使用采用握手协议的定时电路模块来确定何时将数据存储在寄存器中,如图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以及348中的每一个能够实现确定模块的时钟信号及输入与输出控制通道之间的握手协议关系的功能。能够使用许多可能的协议。
图4图示具有可能不被传统钟控EDA支持的定时电路模块的另一系统的延迟不敏感异步电路400的示例。在图4中,控制和数据路径410能够被集成在一起。集成路径410中的每个数据位能够采用识别数据值以及数据的有效性的通信协议加以编码。集成路径能够被编码为双轨(dual-rail)、四中取一、n中取m码、延迟不敏感小项合成(DIMS)或任何其它相似码。数据路径410能够包括第一控制组412至414和第二控制组416至418。控制逻辑还能够包括完成检测(CD)逻辑422和424。CD逻辑422能够在第一控制组412至414中的所有值有效时断言(assert)应答(acki)452,并且在数据值不能断言时解除断言(unassert)acki 452。同样地,CD逻辑422能够在第二控制组416至418全部有效时断言后续ack(acki+i)454,并且在数据值空闲时解除断言acki+i 454。能够根据所实现的协议将数据存储在控制组中。控制器能够实现在输入和输出通道之间具有不同量的并发性的各种协议。在示例性协议中,当来自下一级的应答不能断言并且输入被编码为具有有效数据时,能够将数据存储在控制组中。同样地,当数据输入无效并且应答被断言时,控制组的输出能够指示无效数据。因此,在该示例性协议中,第一控制组412至414能够接受输入442至444。当acki+i 454变得不能断言时,能够将数据从控制寄存器输出到双轨n位函数420中,并且完成检测模块422能够断言应答acki 452。第一寄存器集合412至414的输出能够通过编码函数模块420,其能够使用双轨、n中取m码、DIMS或任何其它相似码来对功能进行编码。当数据被编码为对控制组416至418有效并且输入信号456不能断言时,函数结果能够被存储在寄存器组416至418中。控制组还可以执行组合函数逻辑中的一些。
基于钟控EDA流程可以仅集成极少数时序单元(诸如触发器和锁存器)的定时。因此,可以使用图1的定时电路模块表征来表征不是触发器或锁存器之间的组合逻辑的任何其它模块,以便在EDA工具流程中接收定时驱动算法的支持。应用定时电路模块表征以得到与钟控EDA工具流程的兼容性不限于在由图3的300和图4的400所图示的示例中使用的模块,但是能够被一般地扩展到任何定时设计模块。
作为时序电路或逻辑模块的设计模块能够具有可以被表征以得到与基于钟控EDA工具和流程的兼容性的定时电路模块的组合循环。如由异步电路300的异步捆绑数据路径所图示的,能够表征控制模块342、344以及346。在设计流程中预先表征的这些控制模块和任何阻挡锁存结构之间的逻辑能够被表示为还能够像本文所描述的那样被表征的模块。由设计流程表征的阻挡锁存结构可以使用D触发器、锁存器、主从锁存器或任何其它时序元件。如图3中所图示的,这些模块之间的逻辑能够被表征为包括延迟模块358和360。诸如分叉和联合元件(见图27)以及其它逻辑的控制引导逻辑还能够被表示为待由基于钟控流程表征的模块。如由延迟不敏感异步电路400所图示的,待表征的控制元件能够包括控制组412至414、控制组416至418以及完成检测逻辑422和424。因为附加的逻辑可以在控制组之间,所以为了表征能够对整个系统进行建模。
图5图示表征过程500。能够设计定时电路模块510,这参考图6被进一步讨论。在示例中,定时电路模块能够用硬件描述语言(HDL)编码。例如,硬件描述语言可以使用Verilog、超高速集成电路(VHSIC)HDL(VHDL)或任何其它硬件描述语言。能够定义或选择定时电路模块参数和架构风格。例如,能够选择延迟不敏感流水线400;能够选择捆绑数据流水线300;或者能够组成流水线结构的混合物或任何其它架构风格或协议。还能够识别其它参数,诸如操作电压、局部约束、不同的频率以及协议约束。可以被定义或选择的一般类型的参数能够包括定时电路模块的数目和复杂性、局部约束参数、协议约束参数或定时约束参数。这些参数能够被应用来产生定时电路或逻辑。能够表征定时电路520,这参考图7被进一步讨论。能够在操作510中设计这些定时电路模块加上包括已在操作510中表征的阻挡锁存结构和定时电路之间的任何逻辑。例如,能够表征第一控制模块342、第二控制模块344以及第三控制模块346,这可能暗示还能够表征延迟逻辑358和360。已被表征的控制模块能够使表征信息以各种格式作为传递给EDA工具的生成约束集合530存储输出。这些约束集合在设计中采用所表征的控制模块的实例的系统或架构的设计中的各种阶段期间能够被用作输入,如参考图7所进一步讨论的。完全约束集合能够作为文本文件、在数据库(例如,SQL)中、以EDA基础设施格式(例如,银河数据库)或以表示约束集合的任何其它格式被保存。
图6图示针对异步控制器的定时控制电路设计过程600的流程图。取决于配置,可以执行附加的、较少的或不同的操作。定时控制电路设计过程600中的操作的次序不旨在为限制性的。在示例中,可以通过执行定时电路模块设计应用110来实现定时控制电路设计过程600。能够设计控制模块(诸如图3和图4中所描述的)602。能够定义控制模块的参数,包括协议、输入和输出以及模块设计的其它方面。然后能够创建设计的形式规范604。能够做出有效设计是否已经存在的确定608。如果是这样的话,则能够跳过操作608和610。如果有效设计不存在,则控制器(即,控制模块)能够从规范合成608。在示例中,合成能够使用CAD工具,诸如Petrify、3D、minimalist、MEAT或任何其它合成CAD系统。还能够手动地生成设计以满足规范的要求。能够将设计技术映射610到正在制造过程中使用的特定设计库。能够创建技术映射的设计612。这些技术映射的设计能够包括状态逻辑,并且可以包含可以包括待正确地初始化的重置逻辑的组合循环。在操作614中,能够评估设计以确定该设计是否正确地重置614。如果是这样的话,则能够跳过操作616和618。如果设计未正确地重置,则可以识别和创建通过电路的因果延迟路径和性能路径616。因果延迟路径和性能路径信息能够被用来生成重置逻辑618。能够为电路创建618重置逻辑并且能够添加或修改对应的元件。如果提供了因果延迟路径和性能路径,则这些路径能够被用来针对延迟而优化重置生成。能够用硬件描述语言(诸如Verilog或任何其它硬件描述语言)为最终设计创建电路的描述。
图7图示设计表征过程的流程图。取决于配置,可以执行附加的、较少的或不同的操作。设计表征过程700中的操作的次序不旨在为限制性的。在示例中,可以通过执行异步设计表征112来实现设计表征过程700。能够表征设计中使用的控制模块和有关元件(诸如图3和图4中所描述的)700。能够提供用于表征的数据702。这个表征数据能够包括但不限于设计规范、硬件描述语言的设计、设计中使用的单元库的各种描述、用于设计的性能参数、架构循环和有关的必须分割路径,或用来执行设计表征的任何其它信息。能够为设计生成使用无界延迟模型来满足定时正确性的相对定时约束的完整集合704。这些相对定时约束能够取决于它们的属性(诸如速度无关约束和延迟不敏感约束)而被分解成各种集合。相对定时约束能够被用于电路正确地操作。能够将附加的架构性能约束706添加到设计。这些附加的架构性能约束能够被表示为相对定时约束。虽然这些附加的架构性能约束对于正确操作可能不是必需的,但是附加的架构性能约束能够被用来保证设计的性能。能够在操作706中添加如设计所需的其它附加的定时约束。能够为EDA工具流程的定时驱动合成和布局布线(place and route)部分选择708相对定时约束和架构性能约束的子集。这些相对定时约束能够被用于通过设计流程的主要过程来生成循环分割和约束集合生成。可以采用多个集合。能够针对循环评估设计模块,并且能够分割710表示为定时约束的电路中的每个定时循环以便创建DAG。操作708中规定的相对定时路径可能不作为相对定时循环分割的一部分被分割,因为循环分割可能不准路径被EDA工具遵循。因此,操作708中的相对定时路径能够被用来驱动循环分割操作710。还能够评估待分割以便分解外部架构循环的路径并且能够生成针对这些路径的约束。能够生成定时分割的集合以创建作为DAG的定时图,所述DAG还能够将定时路径保存在所生成的相对定时约束和架构性能约束708的子集中。能够经由性能特征器表征712控制器的性能。能够针对循环时间、正向和反向等待时间、流水线属性、内部门的上升和下降时间或对设计过程有帮助的任何其它表征参数来表征设计。能够做出使用表征信息来修改单元库延迟文件的确定714。能够以自由(.lib)格式表示单元库延迟文件。能够将具有延迟的边引脚添加到库中的特定门716以帮助循环延迟或其中定时路径被分割的延迟的正确评估。能够创建和存储设计表征过程的结果718。结果能够包括循环分割信息、限制工具修改设计中的单元的能力的信息、相对定时约束、最小延迟约束和最大延迟约束及其关联的延迟目标或对于设计的验证要求。在示例中,能够以由Synopsys设计约束(.sdc)文件格式所支持的格式(诸如.cstr格式)或能够由EDA工具所使用的任何其它格式表示设计表征过程的结果。结果信息能够包括由在EDA工具流程中使用的设计优化和验证过程的不同方面所使用的数个不同的子集。
例如,异步控制器能够被表征为能够被任意地插入到较大系统的设计中的库宏单元。例如,控制器能够包括:(a)由每个控制器实现的协议的规范800,如图8中所示;(b)作为时序异步控制器实现的电路实现900,如图9中所示;以及(c)时序异步控制器的硬件描述语言(HDL)实现1000,如图10中所示。能够使用各种合成工具以及定制设计来实现控制器。
能够形式上规定时序电路的并发性和功能行为。图8包含针对通信系统演算(CCS)中规定的突发模式控制电路的规范800的示例性实施例。在该示例中,语句802能够被用来规定输入通道和输入与输出通道的同步。语句804能够定义输出通道和输出的同步的行为。语句806能够并行组合两个代理(例如,输入代理和输出代理)以创建顶层规范。规范能够采用适合于时序控制规范的任何语言,包括petri网、状态图、状态机、通信顺序进程(CSP)、CSS或用于规范的任何其它语言。
图9图示实现图3中的控制模块i342、344以及346的电路900。能够使用用于实现控制模块的许多不同的方法和电路风格,诸如状态图和信号转换图(STG)。在示例中,在图9中图示了规范800的电路实现900。控制模块电路(即,握手电路)包括七个组合逻辑门:静态逻辑门,诸如反相器904、906和910以及或非门(NOR)门908和914,以及复杂门,诸如与-或-反相门(AOI门)902和912。AOI门是从后面是或非门的一个或多个与(AND)门的组合构造的两级组合或复杂逻辑函数。还可以使用任何其它类型的门,诸如动态门、多米诺门、锁存器或多数门。模块900的逻辑能够实现时序函数。时序逻辑能够实现有反馈,如所示。反馈能够在电路的拓扑中创建循环,如具有通过门902和904;门902、904以及908;门912和914;以及门912、914和908的循环的情况那样。时序电路还能够包含通过使用锁存器、动态门或多数门而存在的状态。能够使用硬件描述语言(诸如Verilog)来描述电路。在示例中,由900表示的逻辑能够采用结构Verilog被映射到130纳米(nm)Artisan单元库1000,如图10中所例示的。然后,能够表征电路设计700(图7)。
相对定时是实现一般电路和系统中的异构定时要求的准确捕获、建模以及验证的数学定时模型。能够在这些设计中使定时约束成为显式的,而不是使用传统的隐式表示,诸如时钟频率,以允许设计者和工具规定和理解暗示并且操纵更一般的电路结构和高级钟控技术的定时。影响电路的性能和正确性的定时约束能够被变换成逻辑约束而不是通常的实值变量或延迟范围。逻辑约束能够支持紧凑表示并且允许开发更高效的搜索和验证算法,这能够大大地增强使定时与优化、物理布局以及验证设计工具组合的能力。结果,能够以仍然允许EDA工具执行定时驱动优化、但是同样对系统中的延迟目标给予细粒控制的方式更改定时由设计者和CAD工具表示的方式。使用显式定时约束的这个方法能够在一些电路设计中提供显著的功率-性能优点。
电路中的定时能够确定性能和正确性这二者。能够采用相对定时来表示控制模块的正确性和性能条件这二者。例如,定时约束能够被表示为使特定状态变得不能到达的逻辑表达式。被去除的状态能够包含电路故障,从而定时对于电路正确性可能是必需的。因此,如果在物理实现中满足所有定时,则电路能够在没有故障的情况下操作。性能约束对于正确的电路操作可能不是关键的,但是相反性能约束能够确保性能目标被满足。图11图示用于规定相对定时约束1100(也在式1中表示)采用的基于路径的相对定时的一般形式。式包括离散点(pod)和汇聚点(poc)。离散点pod可以是在系统中创建其它事件(诸如时钟事件或握手信号)的任何事件。汇聚点由两个事件poc0和poc1以及裕量m构成。两个poc事件在时间上被排序以便电路正确地操作,或者以实现期望的性能。事件pod与事件poc0之间的最大延迟加上裕量m能够小于从事件pod到事件poc1的最小延迟。
能够在逻辑域和行为域中针对设计显式地表示的定时条件的完全集合。能够为握手控制和完整系统这二者生成定时约束,所述完整系统能够包括数据路径、功能单元以及存储元件。图12图示用于图9的电路在系统中正确地操作的速度无关定时约束1200。约束1200能够包括三类:局部实现约束、定时协议约束以及捆绑数据约束。延迟不敏感约束(未示出)的集合可以是完全设计表征流程的一部分。能够基于用于实现的门、协议的并发性或系统设计确定约束的数目和类型。当控制器被用在流水线300中时捆绑数据约束1200可能是有效的。能够在操作704和706中生成这些相对定时约束。这些约束能够成为电路的表征信息的一部分,并且能够在操作718中与所表征的电路相关联。
在图2中,后面是下划线(_)的信号标签(例如,la)能够表示启用低信号(例如,la_),而没有下标的信号标签能够表示启用高信号(例如,la)。紧跟信号标签之后的负号(-)能够表示信号的下降沿(例如,la-),而紧跟信号标签之后的加号(+)能够表示信号的上升沿(例如,la+)。整数i+1能够表示上游设计实例,而整数i能够表示局部设计实例。
异步设计表征112(图1)能够被用来创建以EDA工具流程直接支持的格式表示的约束集合。这个约束集合能够正确地约束和优化设计中的每个门的功率和性能。如果基于路径的定时约束通过每个门,则能够发生这个优化。因此,在示例控制器900中,门902至914中的全部都能够具有通过每个门的至少一个定时弧(例如,定时路径)。生成通过控制器的每个门的定时弧由于控制器的结构、控制器的定时约束以及由基于时钟的EDA工具所强加的约束而或许不可能。例如,EDA工具能够将电路的定时图表示为有向非循环图(DAG),而电路可以包括循环。附加地,用来采用定时驱动优化的语句可以在端点分割电路的定时图。能够存在其它约束,诸如由限制能够约束电路的方式的工具所支持的约束的类型。同样地,约束中的一些在性质上可以是循环的,因而可能在表示为DAG的系统内未被充分地支持。
出于优化目的,定时约束的完全集合可能不全部被同时应用于电路。因此在操作708中,能够基于电路和在其中使用了该电路的系统的结构为贯穿设计和验证流程的各种部分的使用创建在操作704和708中生成的约束的子集。附加地,相对定时约束路径的子集可以在流程的各种部分中被用作约束路径。例如,能够生成约束集合708。这些约束集合能够包括在操作710中用于相对定时循环分割的约束的集合。在示例中,用于循环分割的约束的子集能够将第一两个局部实现约束(例如,)以及捆绑数据约束包括在速度无关定时约束1200中。如图13中所图示的,能够从电路900的这三个约束以及必须分割路径1300得到定时路径。定时路径中的一些可以是从其得到定时路径的相对定时(RT)约束的子路径。
能够通过分解通过电路的定时路径中的一些来创建710作为有向非循环图(DAG)的电路的定时图。在示例中,分解定时路径中的一些能够禁用从门的输入端到输出端的定时路径。能够以自由(.lib)文件格式存储门延迟信息。生成电路的定时图能够包括由操作708提供的定时路径的集合和由操作702提供的必须分割路径的集合以及设计模块1000的HDL表示作为输入。来自图13的示例定时路径1300能够被用在操作710中并且能够包括可以在操作702中提供的必须分割路径。可能不分割传递给循环分割算法的定时路径,并且可以分割必须分割路径。假定定时路径1300被视为相对定时路径,并且路径ra→ra_→rr_→rr被视为必须分割路径,四个定时循环1400能够产生,如图14中所示。能够分割每个定时循环1400以创建DAG。能够存在针对定时循环的许多可能的分割。然而,用来分割la_→la→la_循环同时保存lr→la_→la路径的唯一选择可能是分割在门902中从la到la_的定时弧。
在示例中,由EDA工具所允许的显式循环分割命令可以是set_disable_timing命令。这些命令能够被放置在Synopsys设计约束(.sdc)文件或相似类型的文件中。图15图示用来分割所有四个循环并且用来分割必须分割路径、同时保存传递给set_disable_timing命令的相对定时路径中的全部的命令集合1500。命令中使用的控制者引脚名称和实例名称能够取自Verilog HDL门的库引脚名称,如图10中所图示的。命令1500的格式是代表性的,并且可以使用由基于时钟的EDA工具所理解的任何有效的定时图分割命令。
还能够创建适合于优化设计的命令集合708。图16图示适合于优化设计300的约束集合1600。该命令集合1600能够包括被EDA工具流程理解的命令,所述EDA工具流程能够执行设计的定时驱动功率和性能优化。在该过程的这个阶段中,电路中的门能够具有通过这些门的适当命令。set_max_delay和set_min_delay命令能够被EDA工具理解并且能够执行定时驱动优化。操作708还可以为命令1600提供目标延迟。操作712能够创建控制器的结构流水线,并且模拟这些控制器以生成适合于为架构中使用的所表征的单元提供良好延迟目标的目标延迟和性能值。操作712还能够提供对自由文件的修改以在使用静态定时分析的同时帮助优化和验证设计中的循环延迟。操作708可以迭代地模拟设计以便修改延迟目标,以及以便表征电路延迟。在操作716中,能够将新的输入引脚添加到库中的每个表征的模块,并且能够从新的输入引脚到输出引脚将来自表征的延迟添加到库。
能够生成约束的最终集合718。能够经由计算机可读介质108存储结果以供由完整电路系统100在操作708中使用。通过定时电路模块表征操作112生成的约束能够在操作708中束缚于设计控制者。架构中的每个实例化的设计实例能够使用生成的约束来使用标准EDA工具创建针对功率、性能以及定时正确性优化的设计。
图17图示操作718中生成的约束1700的附加集合。不修改门的这些约束1700能够确保表征的设计不是从已表征的功能上修改的。能够在操作718中创建和保存来自设计流程的附加的约束。
定时驱动设计优化和设计验证一直是在使用诸如异步电路的方法来创建非传统设计时设计生产率的主要障碍。已在本文中描述了形式上提供定时约束、表征异步设计模块的定时约束以及提供设计信息以将这些异步设计模块集成到EDA设计流程(例如,基于时钟的EDS设计流程)中从而支持定时驱动设计优化和验证的方法。
能够采用本文所描述的技术来表征异步设计模块。能够设计包括形式规范的异步控制器,如图6中所示。电路能够具有与图8至图10中的那些表示相似的表示。能够使用基于模型检查的相对定时来表征这些控制器以保证如图7中所示的定时约束的完整集合。能够在图11至图14中示出示例约束集合和格式。能够生成表征信息的集合以用于在采用这些设计模块的系统和架构的设计和验证中使用。能够在图15至图17中示出表征信息的示例集合。基于本文所描述的过程,具有如800中所规定的行为的异步设计模块能够被表征并且插入到使用在EDA设计流程中针对钟控设计创建的定时驱动设计和优化算法的异步架构中。
图18图示能够由本文所描述的技术来表征的电路(例如,使用四个与非门的C-元件电路1800)的另一示例。所描述的流程或过程能够基于能够生成正确性的证据的形式方法。该技术能够使用模型检查引擎,其中公理化被采用来证明规范和实现的模型之间的一致性。通信系统演算(CCS)能够出于图示作为形式体系被采用,但是任何形式体系能够工作。表征能够基于形式验证,其可以基于所采用的向量集合和定时的模拟。
能够表征并且从单元库中的单元构建设计模块。设计模块1900的示例是C-元件,其能够用Verilog加以规定,如图19中所图示的。还可以使用同样支持结构表示的任何其它高级设计描述语言。如所图示的,该设计模块能够被映射到IBM 180nm单元库,其中NAND2是2输入与非门并且NAND3是3输入与非门。“_B”扩展可以是单元的驱动强度。
在该流程中,能够连同在设计电路(例如,IBM 180nm单元库)时能够被使用的头文件和函数一起创建单元库的形式模型。能够使用脚本(例如,Perl脚本)使创建形式模型自动化。在示例中,用于单元库中的单元的两个类型的形式模型能够包括半模块化模型2010或布尔模型2020,如在图20中针对NAND2模型所图示的。半模块化模型可能不准输入以禁用输出。布尔模型可以允许输出被禁用。在NAND2模型的图示中,a和b是输入并且’c是输出,并且最后三个字符表示a、b以及c的电压电平,其中a和b的低电平是‘0’而高电平是‘a’或‘b’,以及输出被表示为0或1。输入转换不存在于CCS中能够由阻塞输入或禁用输入产生,这在其它形式模型中能够被表示为到故障状态的转换。
能够创建头函数以帮助单元库的形式表示的映射。图21图示形式CSS头函数文件2100或头文件1。在该示例中,能够为存在于2、3以及4输入与门和与非门的单元库中的形式CCS函数创建头文件。能够选择命名习惯以将函数的输入和输出的布尔逻辑电平映射到特定状态。例如,如果对于低布尔值或高布尔值输入映射到0或映射到引脚名称,以及如果输出映射到0或1(针对低电压或高电压),则可以使用能够包括函数的名称、输入逻辑电平和输出逻辑电平所映射的名称的索引、输出的名称以及用于模型的布尔函数的命名习惯。头文件1的图示2100假定了这些静态门具有仅单个输出,但是其它示例能够被扩展为包括多个输出门。在另一示例中,还可以使用另一命名习惯。
图22图示用来将库中的单元名称映射到包括引脚名称映射的形式模型的第二头文件2200或头文件2。能够将单元名称驱动强度映射到同一形式模型。针对引用IBM库(例如,IBM 180nm单元库)的两输入和三输入与非门示出了第二头文件2200。规范能够使用结构Verilog表示,其中库单元是控制者名称,CSS模型是实例名称,并且引脚名称用Verilog语法映射在控制者名称与实例引脚名称之间。在其它示例中,还可以使用头文件2的其它表示。
能够对于来自单元库中的设计中使用的每个门使用形式模型来创建设计模块的形式模型。还能够使从设计模型转化形式模型自动化。能够像图19的c_element_nand 1900中所示的那样提供充分地技术映射的设计。设计中的每个网络表(netlist)的一组网络表值能够提供设计中使用的初始状态。例如,输入、输出以及线的名称可以在集合(例如{~a~b~y ab ay by})中。如果名称前面是波浪字符(~)则信号的状态是布尔0,否则信号的状态是布尔1。还能够使用名称的其它表示。还能够规定输入和输出的集合,如在下面表达式1中所示,表达式1可以是从模块定义(图19的1900)直接得到的。
input a,b;
output y;    表达式1
根据初始状态以及输入和输出规范,能够创建设计的形式模型2300,如图23中所图示的。能够根据Verilog设计、正在使用的单元库的映射和头文件以及信号电压创建模块的形式模型。图23图示可能适合于采用CCS形式体系的Concurrency Workbench和其它工具的CSS中的c_元件的形式设计的形式模型表示2300。
能够创建通过电路的因果路径。例如,能够提供模块的形式CCS规范。在CCS中,c-元件规范能够被表示如表达式2中所示。
agent C_ELEENT_SPEC=a.b.'y.C_ELEMENT_SPEC+b.a.'y.C_ELE ENT_SPEC;
表达式2
能够采用能够生成设计的输入与输出之间的因果路径的形式验证工具,如图6的616中所图示的。形式验证工具能够使用模块的形式表示(C_ELEMENT_NAND(2300))和规范(C_ELEMENT_SPEC(表达式2))。结果可能是以图24中所图示的形式规定的路径,其中序列2400从输入a和b生成以在上升转换(例如,a+和b+)和下降转换(例如,a-和b-)这二者时输出y。
能够生成针对功率或性能优化的重置设计,如图6的618中所图示的。重置设计优化能够使用单元库的形式模型的模块和头,并且重置设计优化可能使用因果路径。用于重置设计优化的附加信息能够包括性能路径信息,并且主输入是否已知为在重置时被定义。能够使用任何算法来优化使用因果路径的设计的重置逻辑。
能够创建速度无关(SI)相对定时(RT)约束,如图7的704中所图示的。单元库的形式模型(例如,图20)、形式设计表示(例如,图23)以及形式规范(例如,表达式2)能够被用来生成相对定时约束(例如,),其能够被应用于设计以符合规范。所生成的RT约束的集合2500对于速度无关定时约束可能是充足且完整的,如图25中所图示的。形式体系能够使用“速度无关”约束,其中门具有任意延迟,但是线具有零延迟。图25图示针对使用该形式体系的c-元件的RT约束的集合2500。
能够创建延迟不敏感(DI)相对定时(RT)约束,如图7的704中所图示的。能够扩展速度无关相对定时约束以将电路作为延迟不敏感设计进行建模。为了生成延迟不敏感相对定时约束,线以及门还能够具有任意延迟。能够在具有FORK元件2600的线分叉上对任意延迟进行建模,其中a是输入,并且b和c是FORK的输出,以及b、c和d是FORK3的输出,并且变量之前的撇号(‘)表示输出,并且变量之前无撇号(‘)表示输入,如图26中所示。分叉能够具有一个输入(例如,rb)和两个输出(例如,r0和r1),如图27的2700中所图示的。如果线具有多个分叉,则在所采用的分叉中使用的输出的次序可以是不相关的。还可以采用三通分叉规范。还可以使分叉的生成自动化。相反地,联合能够具有两个输入(例如,a0和a1)(或多个输入)以及一个输出(例如,ab),并且可以使用门(例如,C-元件门),如图27中所图示的。
能够将分叉插入到设计中以生成延迟不敏感相对定时约束。图28图示具有基于信号重命名的经重新映射的速度无关RT约束的修改设计2800。对新的设计执行验证能够添加两个延迟不敏感(DI)相对定时约束,如表达式3中所示。“a 2”语法指示多循环约束。“a 2”规定信号a上的第二上升事件,并且“b 2”规定输入b上的第二上升信号。表达式3陈述当y0下降(-)时,信号a和b能够上升,所以信号a和b能够具有比到ay和by门的输入端的线延迟更大的延迟。
rtc=rtc2:y0-=>y1-<a 2;
rtc=rtc3:y0-=>y2-<b 2;    表达式3
能够在各种集合中生成表征信息。例如,2500、2600、2800以及表达式3能够被用来生成表征约束的完整集合。能够包括一些附加的引脚信息以满足EDA要求,诸如如本文所规定的有向非循环定时图。
在示例中,能够以由Synopsys设计约束(.sdc)所支持的格式表示表征信息,如图7的706、708、710以及716中所图示的。如Synopsys设计约束这样的约束跨越许多商业上可得到的工具流程可能是一般的。本文所描述的技术能够经由合成工具3822生成用来驱动合成的信息,经由物理设计工具3824生成物理设计,并且采用这些.sdc约束经由定时验证工具3826生成后布图定时验证,所述.sdc约束能够被表示为模块的形式相对定时表征,如图38中所图示的。
信息的每个集合能够包含相似的数据,但是可能目标是基于所采用的工具的特定约束和行为的优化。例如,用于使用SoC Encounter和ICC的物理设计的方法可以不同。每个工具能够使用不同的表征信息。同样地,对于使用设计编译器的合成与使用Soc Encounter的布局布线可能需要不同的信息。可以经由自动化生成表征信息。
能够生成约束的至少三个集合。例如,针对合成的约束的一个集合、针对布局布线(或布图设计)的约束的一个集合、以及针对后布图定时(或定时验证)的约束的一个集合。一些集合可以具有多个子集。能够基于EDA工具或EDA系统配置来生成约束的或多或少集合。
合成集合和布局布线集合能够包含约束的一个或多个自身一致集合,如图7的706中所图示的。能够从速度无关相对定时约束集合或既速度无关又延迟不敏感RT约束生成约束的集合。约束的集合能够包括基于裕量以及合成和布局布线如何利用这些约束的RT约束的子集。能够开发用来确定约束和约束的集合的各种算法和方法。本文所描述的技术提供了使用由各种手段先前生成的约束集合的算法、过程、流程、方法、EDA工具以及系统。
后布图定时约束能够使用完整速度无关且延迟不敏感约束集合。在示例中,后布图定时约束能够包括自身一致约束的多个子集,其中Synopsys设计约束(.sdc)的和涵盖两个集合中的RT约束以及目标延迟定时信息。
能够生成用来防止规定电路结构的修改的约束(例如,set_dont_touch约束或命令),如图7的708中所图示的。这些电路结构修改防止约束能够确保合成和布局布线工具不修改设计的结构。能够基于设计的特定门结构采用形式验证,所以如果特定门结构改变,则表征结果可能是无效的。图29图示用于c_element_nand模块以防止模块中的规定元件的结构修改的约束的集合2900。在其它示例中,其它表示还可以是有效的。
能够禁用模块中的定时和定时的架构使用以确保系统的定时图是有向非循环图(DAG),如图7的710中所图示的。系统架构能够被表示为两个模块的DAG被表征并且在系统中如何采用模块的DAG。分割循环的方法能够取决于模块和模块的使用而不同。表达式4图示针对c_element_nand的循环分割的示例。在其它示例中,其它表示也可能是可能的。
set_disable_timing-from B-to Z[find-hier cell c_element_nand3]
set_disable_timing-from C-to Z[find-hier cell c_element_nand3]
表达式4
能够基于相对定时约束生成延迟目标,如图7的718中所图示的。在示例中,能够使生成延迟目标自动化。例如,图25、图28以及表达式3中的RT约束集合能够被映射到Synopsys设计约束(.sdc)。表达式5图示能够被用来帮助RT约束集合到Synopsys设计约束(.sdc)的映射的约束。
rtc=rtc0:y+=>ay-+m<a-;    表达式5
能够开发表示约束的数据库、文件或其它方法以得到迅速访问并且以确保所生成的约束的完整性和一致性。
在示例中,能够确定两个路径的目标延迟和裕量(m)。目标延迟和裕量可能取决于设计,在示例中,门的平均延迟在180nm设计中能够被假定为75皮秒(ps),并且能够使用路径之间的至少一个完全门延迟的裕量。从y+到ay-的延迟能够被假定为75ps。结果,从y+到a-的延迟可以是至少150ps。目标延迟和裕量的确定可以是设计、技术节点或库相关的,并且能够产生特定设计产出。
能够采用set_max_delay命令对从pod至pod0的延迟进行建模,如表达式8和图34中所示,其中延迟以纳秒加以规定。在表达式6的示例中,能够做出到电路的特定库引脚的映射,其中RT约束中的y映射到模块中的门实例c_element_nand3的引脚Z并且ay映射到同一门实例的引脚B。能够使用图22中规定的映射文件。能够使用在哪里选择端点的数个选择。表达式6中所示的约束的-fall_to端点可以是c_element_nand3/B或c_element_nand1/Z(图19),这能够导致设计的不同裕量和鲁棒性,并且基于设计方法在端点之间更清楚地匹配。在另一示例中,如果c_elemerit_nand1/Z被用于-fall_to端点,则同一门能够在这个约束和表达式8的约束中被用于端点。
set_max_delay 0.075-rise_from c_element_nand3/Z
-fall_to c_element_nand3/B    表达式6
能够采用set_min_delay命令对从pod到pod1的延迟进行建模,如表达式7和图34中所示,其中延迟以纳秒加以规定。在表达式7的示例中,能够做出到电路的特定库引脚的映射,其中RT约束中的y映射到模块中的门实例c_element_nand3的引脚Z并且a映射到门实例c_eiement_nand1的引脚A。映射的确定能够基于形式验证约束和如由形式验证引擎所确定的约束的因果路径。
set_min_delay 0.150-rise_from c_element_nand3/Z
-fall_to c_element_nand1/A    表达式7
编译指示(例如,裕量编译指示)能够被用来以.sdc格式使max_delay约束和min_delay约束彼此相关联。编译指示可以是注释的标准化形式,其可能对编译器或一些其它工具(例如,EDA工具)有意义。max_delay约束和min_delay约束的扩展能够被用来使这些约束彼此相关联以在事件之间确保充足的裕量(例如,75ps)。在注释内部(例如,紧跟‘#’字符之后)的编译指示(例如,“裕量”编译指示)能够被用于max_delay约束和min_deiay约束之间的关系。表达式8和图34图示“裕量”编译指示。在其它示例中,能够使用各种编译指示和针对编译指示的行为。表达式8的编译指示能够首先列举最大延迟路径,然后列举最小延迟路径。裕量加上最大延迟路径的和可以小于或等于最小延迟路径。另一编译指示(例如,‘dpmargin’编译指示)能够具有最大延迟路径加上裕量的一半以小于最小延迟路径。在其它示例中,还能够定义和规定其它裕量行为。在另一示例中,能够针对每个相对定时约束定义至少一个裕量。在另一配置中,“#margin”或“#dpmargin”编译指示能够在CAD中被用来正确地执行定时闭合,如2013年7月18日提交、标题为“RELATIVE TIMING ARCHITECTURE”的共同待决的国际专利申请序号PCT/US2013/051160中所描述的。
#margin 0.075-rise_from c_element_nand3/Z-fall_to c_element_nand3/B
-rise_from c_element_nand3/Z-fall_to c_element_nand1/A
表达式8
在另一配置中,裕量约束可能不存在于各种约束集合(例如,合成、布局布线或后布图定时约束集合)。例如,如果min_delay在特定相对定时约束中为最大延迟的六分之一,则可能不需在针对合成生成的约束的集合中规定裕量约束。
针对输入的端点映射的集合3000能够生成,如图30中所图示的。在示例中,针对输入的端点映射的集合能够驻留在数据库中以用于查找以基于模块的分割集合来确定信号的引脚名称。针对输入的端点映射的集合能够基于所使用的工具和分割集合而不同。例如,设计编译器可以在set_max_delay和set_min_delay约束的端点处分割定时图,但是SoC Encounter可能不分割。定时图分割能够取决于使用对于门产生不同的端点定义。图30图示在设计中基于正使用的约束集合针对信号A和B的端点的定义3000。在示例中,能够在图30中规定设计1900(图19)的端点。定义可以是设计中的实际输入门端点的子集的完整集合。还能够规定用于表示和映射在输入引脚与实际引脚名称之间的机制,如图30中所图示的。
由于循环分割或网络表连接性,输入的所有端点可能不传递到输出端。还能够规定映射到输出引脚的输入信号引脚的集合3100,如图31中所示。
驱动时钟的引脚能够具有与这些模块中的其它引脚不同的定义行为。“$name”语法能够允许端点和引脚映射为一般的并且在运行时基于设计和模块被映射。
能够为被用在sdc脚本中的延迟提供变量。在示例中,EDA工具能够支持工具命令语言(Tcl)变量,所以延迟能够被规定为Tcl变量3200,如图32中所图示的。结果,能够采用这些Tcl变量来规定裕量或延迟,如表达式9和图34中所示。Tcl能够被用于在嵌入式系统平台上使用的快速原型设计、脚本应用以及测试。
set_max_delay$GATE_DELAYS_1-rise_from c_element_nand3/Z
-fall_to c_eIement_nand3/B
表达式9
当相对定时端点存在于当前模块外部时,语法的修改能够被用来在相对定时端点约束映射中引用上游示例、局部实例以及下游实例。在示例中,控制器342、344、346(图3)能够被构建为SutherlandMicropipeline。这些控制器能够包括c-元件和反相器。图33图示如用Verilog规定的针对控制器的设计3300。表达式10的相对定时约束(同样图34中所图示的)能够被用来确保从左请求(lr)到达控制器344起,数据320在时钟信号330之前到达锁存器316。
rtc=rtc2$i1/$lr=>$i2/$d<$i2/$clk    表达式10
能够提供相邻设计实例之间的映射。能够在变量$i1指代正被表征的局部实体(或当前实例)(例如,图3中的344)情况下使用一般的引用机制。变量$i2能够指代与局部实例相邻的下游实例(例如346和316)并且$i0能够指代上游实例(例如342和312)。下游实例和上游实例的定义能够包括正被表征的控制器(例如,Sutherland Micropipelinesrnp)和正被控制器控制的关联的锁存器或触发器组(例如312由342控制,314由344控制,并且316由346控制)。一般地,下游实例能够使用较高编号(例如,$i2),上游实例能够使用较低编号(例如,$i0),以及局部实例能够使用上游实例与下游实例之间的编号(例如,$i1)。
如先前描述的相邻设计实例之间的相对映射能够被扩展到所有约束,所以能够像图34中所图示的那样表示相对定时约束和映射约束3400。实例引用的相对映射能够在设计中简化这些约束到实际实例的映射。自包含约束能够使用$i1实例名称来确保自引用定时约束。时钟约束能够映射到局部受控时钟引脚,使得用于控制器344的$i1/clk能够指代锁存器组314中的时钟引脚。
单元的物理布图能够确定单元面积。本文所描述的技术能够提供面积信息以帮助电路设计者或CAD工具选择要在设计中使用的表征模块。可以使用任何物理设计工具,诸如ICC或SoC Encounter。能够采用编译指示来测量和报告面积,如表达式11中所图示的。
AREA 138um2    表达式11
能够模拟后布图设计以确定性能和功率。本文所描述的技术能够提供定时信息以帮助设计者或CAD工具选择要在设计中使用的表征模块。可以使用任何模拟工具,诸如ModelSim。模拟能够使用来自单元的物理布图的后布图值,其能够包括反注释延迟和寄生效应。图35图示后布图值的报告3500。
还能够包括附加的模拟信息。延迟能够包括最大延迟或最小延迟,并且如果任一种类型的延迟是需要的,则最大延迟能够被规定为MAX_DELAY,或者最小延迟能够被规定为MIN_DELAY。还能够在与单元库中的其它门相似的信号斜率/负载表中表征最大延迟或最小延迟。
对于异步模块的表征,能够生成各种相对定时约束、过程以及报告,诸如速度无关RT约束的集合、延迟不敏感RT约束的集合、这些约束集合中的每一个的因果路径、合理大小的负载的数个引脚到引脚后布图延迟、设计的内部门的典型延迟、RT约束路径的目标延迟、针对RT约束的汇聚点(poc)之间的建议裕量、基于合成和布局布线的约束的危急程度、模块的总面积、模块的循环时间、模块的操作的能量、模块的形式规范、模块的CCS实现、set_size_only和set_dont_touch约束、set_disable_timing约束、在时钟引脚的特殊条件并且视需要其它条件下针对设计的输入到输出路径的PROVIDES约束的集合、用于设计的输入的门端点的集合、RT约束集合到set_max_delay、set_min_delay以及#margin的映射,或将端点映射到相邻门的方法(例如,$i0、$i1或$i2方法)。
本文所描述的技术可能足以创建实现采用这些表征模块的系统的合成、物理设计以及验证的工业标准EDA工具的使用的Synopsys设计约束(sdc)和附加的方法。
另一示例提供了使得能够使用钟控电子设计自动化(EDA)工具流程的相对定时表征的方法3600,如图36中的流程图所示。该方法可以作为指令在机器或计算机电路上被执行,其中指令被包括在至少一个计算机可读介质或一个非暂时性机器可读存储介质上。该方法包括识别电路模型中的单元在离散点(pod)事件与两个汇聚点(poc)事件之间的相对定时约束(RTC)的操作,其中,两个poc事件包括第一poc事件(poc0)和第二poc事件(poc1),如在块3610中一样。对于pod事件与第一poc事件之间的第一poc事件路径生成最大目标延迟的操作跟随,如在块3620中一样。该方法的下一个操作可能是对于pod事件与第二poc事件之间的第二poc事件路径生成最小目标延迟,如在块3630中一样。该方法能够进一步包括使用最大目标延迟和最小目标延迟来优化电路模型,如在块3640中一样。
在示例中,识别相对定时的操作能够进一步包括将相对定时映射到Synopsys设计约束(.sdc)文件格式,在另一示例中,相对定时能够由表示,其中pod是离散点事件,poc0是在用于适当电路操作的第二汇聚点事件poc1之前发生的第一汇聚点事件,并且裕量m是poc0与poc1之间的最小分离。pod、poc0以及poc1中的每一个可以是输入、输出或引脚连接。
在另一配置中,该方法能够进一步包括基于裕量m来生成裕量编译指示以使最大目标延迟与最小目标延迟相关联,在另一示例中,在生成目标延迟之前,该方法能够进一步包括:识别相对定时路径以在电路模型的单元内保持原封不动;以及对于在合成和布局布线EDA工具流程期间使用的相对定时路径生成“不修改”约束。单元能够包括门,并且“不修改”约束能够包括set_size_only约束以防止单元的结构修改但是允许单元的驱动强度的优化,或者“不修改”约束能够包括set_dont_touch约束以不准单元的修改。
在另一配置中,该方法能够进一步包括:对于输入端点生成到单元的输入引脚名称的端点映射;以及将输入端点映射到输出引脚名称。在另一示例中,优化电路模型的操作能够进一步包括将延迟元件添加到电路中以满足相对定时约束。
在另一配置中,该方法能够进一步包括:映射在单元内的本地端点和在单元外部的外部端点;采用离散点(pod)事件和两个汇聚点(poc)事件来识别本地端点与外部端点之间的外部相对定时约束(RTC);对于外部RTC生成外部最大目标延迟和外部最小目标延迟;以及使用外部最大目标延迟和外部最小目标延迟来优化电路模型。本地端点能够使用来自外部端点的输出或者将输入提供给外部端点。
另一示例提供针对相对定时表征配置的钟控工具流程的电子设计自动化(EDA)工具的计算机电路的功能性3700,如图37中的流程图所示。功能性可以作为方法被实现,或者功能性可以作为指令在机器上被执行,其中指令被包括在至少一个计算机可读介质或一个非暂时性机器可读存储介质上。计算机电路能够被配置成识别相对定时路径以在电路模型的单元内保持原封不动,其中单元包括门,如在块3710中一样。计算机电路能够进一步被配置成对于相对定时路径生成“不修改”约束,如在块3720中一样。计算机电路还能够被配置成对单元使用合成和布局布线EDA工具流程来表征电路模型,如在块3730中一样。
在示例中,“不修改”约束可以包括set_size_only约束以防止单元的门逻辑行为的修改但是允许单元的驱动强度的优化,或者“不修改”约束能够包括set_dont_touch约束以不准单元的修改。
在另一示例中,计算机电路能够进一步被配置成生成电路模型的单元库形式模型。单元库形式模型能够包括半模块化模型或布尔模型;用来将布尔逻辑映射到特定状态的函数的输入和输出的逻辑头文件;以及用来将控制者名称表示映射到示例引脚名称的引脚头文件。控制者名称表示能够使用结构硬件描述语言(HDL)表示,并且实例引脚名称能够使用形式模型实例。形式模型能够使用通信系统演算(CCS)实例、状态图以及符号转换图(STG)。计算机电路能够进一步被配置成:生成包括初始状态的电路模型的设计模块形式模型以及输入和输出的集合;为电路模型生成输入与输出之间的因果路径;生成速度无关相对定时约束以用于电路模型的合成;并且生成包括线延迟的延迟不敏感相对定时约束以用于电路模型的验证。速度无关相对定时约束和延迟不敏感相对定时约束能够提供电路模型的正确操作。
在另一配置中,计算机电路能够进一步被配置成生成电路模型的架构性能约束。架构性能约束能够包括合成约束;布局布线约束;以及后布图定时约束。合成约束、布局布线约束以及后布图定时约束能够使用速度无关相对定时约束和包括线延迟的延迟不敏感相对定时约束。
在另一示例中,计算机电路能够进一步被配置成使用.sdc格式来分割电路模型的相对定时循环以创建有向非循环图(DAG)同时保存具有“不修改”约束的相对定时路径。“不修改”约束能够包括“set_disable_timing”约束。在另一配置中,计算机电路能够进一步被配置成:采用包括循环时间、正向或反向等待时间、流水线特性、内部门的上升或下降时间、有向非循环图(DAG)延迟、每操作的功率和能量、或面积修改流水线特性到行为和流水线特性的表征参数来表征单元;并且当表征参数改变时,使用自由(.lib)文件来修改单元库延迟文件中的用于单元的表征模块。
在另一示例中,计算机电路能够进一步被配置成:识别在电路模型中离散点(pod)事件与两个汇聚点(poc)事件之间的相对定时约束(RTC),其中相对定时由表示,其中pod是离散点事件,poc0是在用于适当电路操作的第二poc事件poc1之前发生的第一poc事件,并且裕量m是poc0与poc1之间的最小分离;对于pod事件与第一poc事件之间的第一poc事件路径生成最大目标延迟;对于pod事件与第二poc事件之间的第二poc事件生成最小目标延迟;并且使用最大目标延迟和最小目标延迟来优化电路模型。在配置中,被配置成优化电路模型的计算机电路能够进一步被配置成将延迟元件添加到单元中以满足相对定时约束。在另一示例中,计算机电路能够进一步被配置成:对于输入端点生成到输入引脚名称的端点映射;以及将输入端点映射到输出引脚名称。
图38图示包括处理器3814的针对相对定时约束生成配置的钟控工具流程的示例电子设计自动化(EDA)工具3812。在示例中,处理器能够被配置成实现如图36的3600中所描述的方法。在另一示例中,处理器能够被配置成实现如图37的3700中所描述的计算机电路。
在示例中,处理器3814(图38)能够被配置成:识别电路模型中的单元在离散点(pod)事件与两个汇聚点(poc)事件之间的相对定时约束(RTC),其中两个poc事件包括第一poc事件(poc0)和第二poc事件(poc1);对于pod事件与第一poc事件之间的第一poc事件路径生成最大目标延迟;对于pod事件与第二poc事件之间的第二poc事件路径生成最小目标延迟;生成表示第一poc事件与第二poc事件之间的最小分离的裕量编译指示;并且使用最大目标延迟、最小目标延迟以及裕量编译指示来优化电路模型。
在另一示例中,相对定时约束(RTC)能够由表示,其中pod是离散点事件,poc0是在用于适当电路操作的第二汇聚点事件poc 1之前发生的第一汇聚点(poc)事件,并且用裕量编译指示表示的裕量m是poc0与poc1之间的最小分离。
在另一配置中,处理器3814能够被配置成:识别相对定时路径以在电路模型的单元内保持原封不动,其中单元包括门;并且对于在合成和布局布线EDA工具流程期间使用的相对定时路径生成“不修改”约束。“不修改”约束能够包括set_size_only约束以防止单元的结构修改但是允许单元的驱动强度的优化,或者“不修改”约束能够包括set_dont_touch约束以不准单元的修改。
在另一示例中,被配置为优化电路模型的处理器3814能够进一步被配置成:将延迟元件添加到单元中以满足相对定时约束;对于输入端点生成到输入引脚名称的端点映射;并且将输入端点映射到输入引脚名称。
在另一配置中,使用EDA工具3812的电子设计自动化(EDA)系统3810能够包括架构设计工具3820、合成工具3822、布局布线工具、后布图定时工具、物理设计工具3824或定时验证工具3826。EDA工具能够使用硬件描述语言(HDL)、超高速集成电路(VHSIC)HDL(VHDL)、Verilog、单元库、Synopsys设计约束(.sdc)、Synopsys集成电路编译器(ICC)、Encounter数字实现(EDI)、Cadence片上系统(SoC)Encounter、Concurrency Workbench、设计编译器、Encounter寄存器传送级(RTL)、Xilinx集成软件环境(ISE)、Xilinx合成工具(XST)、Quartus、Synplify、LeonardoSpectrum、Precision、Primetime、Tempus、Modelsim、Eldo、集成电路通用模拟程序(SPICE)、Verilog编译模拟器(VCS)或Cadence Verilog-L层扩展(Verilog-XL)。
在另一示例中,使用EDA工具3812的电子设计自动化(EDA)系统3810能够被用来生成集成电路(IC)。EDA系统能够包括架构设计工具3820、合成工具3822、物理设计工具3824以及定时验证工具3826。架构设计工具能够包括用来通过使用硬件描述语言(HDL)对表征信息、单元库信息以及架构性能目标进行编码来设计和表征集成电路(IC)架构的EDA工具。在示例中,架构设计工具能够使用Verilog、硬件描述语言(HDL)或超高速集成电路(VHSIC)HDL(VHDL)。合成工具能够包括用来生成硬件逻辑以实现HDL的行为的EDA工具。在示例中,合成工具能够使用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 (24)

1.一种用于使得能够使用钟控电子设计自动化(EDA)工具流程的相对定时表征的方法,包括:
识别电路模型中的单元在离散点(pod)事件与两个汇聚点(poc)事件之间的相对定时约束(RTC),其中,所述两个poc事件包括第一poc事件(poc0)和第二poc事件(poc1);
对于所述pod事件与所述第一poc事件之间的第一poc事件路径生成最大目标延迟;
对于所述pod事件与所述第二poc事件之间的第二poc事件路径生成最小目标延迟;以及
使用所述最大目标延迟和所述最小目标延迟来优化所述电路模型。
2.根据权利要求1所述的方法,其中,识别所述相对定时还包括:
将所述相对定时映射到Synopsys设计约束(.sdc)文件格式。
3.根据权利要求1所述的方法,其中,所述相对定时由表示,其中pod是所述离散点事件,poc0是在用于适当电路操作的第二汇聚点事件poc1之前发生的第一汇聚点事件,并且裕量m是所述poc0与所述poc1之间的最小分离。
4.根据权利要求3所述的方法,还包括:
基于所述裕量m生成裕量编译指示以使所述最大目标延迟与所述最小目标延迟相关。
5.根据权利要求1所述的方法,还包括在生成目标延迟之前:
识别相对定时路径以在电路模型的单元内保持原封不动,其中所述单元包括门;以及
对于在合成和布局布线EDA工具流程期间使用的所述相对定时路径生成“不修改”约束,其中,所述“不修改”约束包括set_size_only约束以防止所述单元的结构修改但是允许所述单元的驱动强度的优化,或者所述“不修改”约束包括set_dont_touch约束以不准所述单元的修改。
6.根据权利要求1所述的方法,还包括:
对于输入端点生成到所述单元的输入引脚名称的端点映射;以及
将所述输入端点映射到输出引脚名称。
7.根据权利要求1所述的方法,其中,优化所述电路模型还包括:
将延迟元件添加到所述电路中以满足所述相对定时约束。
8.根据权利要求1所述的方法,还包括:
映射在所述单元内的本地端点和在所述单元外部的外部端点,其中,所述本地端点使用来自所述外部端点的输出或者将输入提供给所述外部端点;
采用离散点(pod)事件和两个汇聚点(poc)事件来识别所述本地端点与所述外部端点之间的外部相对定时约束(RTC);
对于所述外部RTC生成外部最大目标延迟和外部最小目标延迟;以及
使用所述外部最大目标延迟和所述外部最小目标延迟来优化所述电路模型。
9.根据权利要求1所述的方法,其中,所述pod、所述poc0以及所述poc1中的每一个是输入、输出或引脚连接。
10.至少一个非暂时性机器可读存储介质,包括适于被执行以实现根据权利要求1所述的方法的多个指令。
11.一种用于针对相对定时表征配置的钟控工具流程的电子设计自动化(EDA)工具,使计算机电路配置成:
识别相对定时路径以在电路模型的单元内保持原封不动,其中所述单元包括门;
对于所述相对定时路径生成“不修改”约束;以及
对所述单元使用合成和布局布线EDA工具流程来表征所述电路模型。
12.根据权利要求11所述的计算机电路,其中,所述“不修改”约束包括set_size_only约束以防止所述单元的门逻辑行为的修改但是允许所述单元的驱动强度的优化,或者所述“不修改”约束包括set_dont_touch约束以不准所述单元的修改。
13.根据权利要求11所述的计算机电路,其中,所述计算机电路进一步被配置成:
生成包括以下的所述电路模型的单元库形式模型:
半模块化模型或布尔模型,其中,所述形式模型使用通信系统演算(CCS)实例、状态图以及符号转换图(STG);
逻辑头文件,所述逻辑头文件用来将函数的输入和输出的布尔逻辑映射到特定状态;以及
引脚头文件,所述引脚头文件用来将控制者名称表示映射到实例引脚名称,其中,所述控制者名称表示使用结构硬件描述语言(HDL)表示并且所述实例引脚名称使用形式模型实例;并且
生成包括初始状态的所述电路模型的设计模块形式模型、以及输入和输出的集合;
为所述电路模型生成输入和输出之间的因果路径;
生成速度无关相对定时约束以用于所述电路模型的合成;并且
生成包括线延迟的延迟不敏感相对定时约束以用于所述电路模型的验证,其中,所述速度无关相对定时约束和所述延迟不敏感相对定时约束提供所述电路模型的正确操作。
14.根据权利要求11所述的计算机电路,其中,所述计算机电路进一步被配置成:
生成包括以下的针对所述电路模型的架构性能约束:
合成约束;
布局布线约束;以及
后布图定时约束,其中,所述合成约束、所述布局布线约束以及所述后布图定时约束使用速度无关相对定时约束和包括线延迟的延迟不敏感相对定时约束。
15.根据权利要求11所述的计算机电路,其中,所述计算机电路进一步被配置成:
使用.cstr格式来分割所述电路模型的相对定时循环以创建有向非循环图(DAG)同时保存具有所述“不修改”约束的所述相对定时路径,其中所述“不修改”约束包括“set_disable_timing”约束。
16.根据权利要求11所述的计算机电路,其中,所述计算机电路进一步被配置成:
采用包括循环时间、正向或反向等待时间、流水线特性、内部门的上升或下降时间、有向非循环图(DAG)延迟、每操作的功率和能量、或面积修改流水线特性到行为和流水线特性的表征参数来表征所述单元;并且
当表征参数改变时,使用自由(.lib)文件来修改单元库延迟文件中的用于所述单元的表征模块。
17.根据权利要求11所述的计算机电路,其中,所述计算机电路进一步被配置成:
识别在所述电路模型中离散点(pod)事件与两个汇聚点(poc)事件之间的相对定时约束(RTC),其中,所述相对定时由表示,其中pod是所述离散点事件,poc0是在用于适当电路操作的第二poc事件poc1之前发生的第一poc事件,并且裕量m是所述poc0与所述poc1之间的最小分离。
对于所述pod事件与所述第一poc事件之间的第一poc事件路径生成最大目标延迟;
对于所述pod事件与所述第二poc事件之间的第二poc事件路径生成最小目标延迟;并且
使用所述最大目标延迟和所述最小目标延迟来优化所述电路模型。
18.根据权利要求17所述的计算机电路,其中,被配置成优化所述电路模型的所述计算机电路进一步被配置成:
将延迟元件添加到所述单元中以满足所述相对定时约束。
19.根据权利要求11所述的计算机电路,其中,所述计算机电路进一步被配置成:
对于输入端点生成到输入引脚名称的端点映射;并且
将所述输入端点映射到输出引脚名称。
20.一种用于针对相对定时约束生成配置的钟控工具流程的电子设计自动化(EDA)工具,包括:
处理器,所述处理器用来:
识别电路模型中的单元在离散点(pod)事件与两个汇聚点(poc)事件之间的相对定时约束(RTC),其中所述两个poc事件包括第一poc事件(poc0)和第二poc事件(poc1);
对于所述pod事件与所述第一poc事件之间的第一poc事件路径生成最大目标延迟;
对于所述pod事件与所述第二poc事件之间的第二poc事件路径生成最小目标延迟;
生成表示所述第一poc事件与所述第二poc事件之间的最小分离的裕量编译指示;以及
使用所述最大目标延迟、所述最小目标延迟以及所述裕量编
译指示来优化所述电路模型。
21.根据权利要求20所述的EDA工具,其中,所述相对定时由表示,其中pod是所述离散点事件,poc0是在用于适当电路操作的第二汇聚点事件poc1之前发生的第一汇聚点事件,并且用所述裕量编译指示表示的裕量m是所述poc0与所述poc1之间的最小分离。
22.根据权利要求20所述的EDA工具,其中,所述处理器进一步被配置成:
识别相对定时路径以在电路模型的单元内保持原封不动,其中所述单元包括门;并且
对于在合成和布局布线EDA工具流程期间使用的所述相对定时路径生成“不修改”约束,其中,所述“不修改”约束包括set_size_only约束以防止所述单元的结构修改但是允许所述单元的驱动强度的优化,或者所述“不修改”约束包括set_dont_touch约束以不准所述单元的修改。
23.根据权利要求20所述的EDA工具,其中,被配置成优化所述电路模型的所述处理器进一步被配置成:
将延迟元件添加到所述单元中以满足所述相对定时约束;
对于输入端点生成到输入引脚名称的端点映射;并且
将所述输入端点映射到输出引脚名称。
24.根据权利要求20所述的EDA工具,其中,所示EDA工具包括合成工具、布局布线工具、后布图定时工具、物理设计工具或定时验证工具中的至少一个,所述EDA工具使用硬件描述语言(HDL)、超高速集成电路(VHSIC)HDL(VHDL)、Verilog、单元库、Synopsys设计约束(.sdc)、Synopsys集成电路编译器(ICC)、Encounter数字实现(EDI)、Cadence片上系统(SoC)Encounter、ConcurrencyWorkbench、设计编译器、Encounter寄存器传送级(RTL)、Xilinx集成软件环境(ISE)、Xilinx合成工具(XST)、Quartus、Synplify、LeonardoSpectrum、Precision、Primetime、Tempus、Modelsim、Eldo、集成电路通用模拟程序(SPICE)、Verilog编译模拟器(VCS)或CadenceVerilog-L层扩展(Verilog-XL)。
CN201380046636.3A 2012-07-18 2013-07-18 相对定时表征 Pending CN104603784A (zh)

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
USPCT/US2013/051160 2013-07-18
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

Publications (1)

Publication Number Publication Date
CN104603784A true CN104603784A (zh) 2015-05-06

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 Before (1)

Application Number Title Priority Date Filing Date
CN201380046641.4A Pending CN104620242A (zh) 2012-07-18 2013-07-18 相关时序架构

Country Status (5)

Country Link
US (1) US20140165022A1 (zh)
EP (2) EP2875454A4 (zh)
JP (2) JP2015524590A (zh)
CN (2) CN104620242A (zh)
WO (1) WO2014015189A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
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 南京华捷艾米软件科技有限公司 一种实现三维测量芯片低功耗的方法
CN105808839B (zh) * 2016-03-04 2019-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
CN110532577B (zh) * 2018-05-24 2021-06-18 大唐移动通信设备有限公司 数字逻辑电路编译方法及装置
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
CN110737890B (zh) * 2019-10-25 2021-04-02 中国科学院信息工程研究所 一种基于异质时序事件嵌入学习的内部威胁检测系统及方法
CN113239655B (zh) * 2020-05-21 2024-06-28 台湾积体电路制造股份有限公司 半导体电路的约束确定系统和方法
CN117151015B (zh) * 2023-09-15 2024-03-15 上海合芯数字科技有限公司 集成电路布局布线方法、装置、集成电路芯片

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090106719A1 (en) * 2007-10-19 2009-04-23 Stevens Kenneth S Method and system for asynchronous chip design
CN101449503A (zh) * 2006-05-23 2009-06-03 艾利森电话股份有限公司 用于产生无线通信的信道质量信息的方法和设备
US20090210841A1 (en) * 2008-02-12 2009-08-20 University Of Southern California Static timing analysis of template-based asynchronous circuits
US20110161902A1 (en) * 2009-12-31 2011-06-30 Stevens Kenneth S Method and System for Synthesizing Relative Timing Constraints on an Integrated Circuit Design to Facilitate Timing Verification

Family Cites Families (15)

* Cited by examiner, † Cited by third party
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
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
US7509611B2 (en) * 2006-02-07 2009-03-24 International Business Machines Corporation Heuristic clustering of circuit elements in a circuit design
US20080201671A1 (en) * 2007-02-16 2008-08-21 Atrenta, Inc. Method for generating timing exceptions
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
US8560988B2 (en) * 2010-08-13 2013-10-15 Atrenta, Inc. Apparatus and method thereof for hybrid timing exception verification of an integrated circuit design
CN102004811B (zh) * 2010-09-15 2012-11-07 华为技术有限公司 一种芯片电路的模拟测试方法和装置
US8365116B2 (en) * 2010-12-06 2013-01-29 University Of Utah Research Foundation Cycle cutting with timing path analysis

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101449503A (zh) * 2006-05-23 2009-06-03 艾利森电话股份有限公司 用于产生无线通信的信道质量信息的方法和设备
US20090106719A1 (en) * 2007-10-19 2009-04-23 Stevens Kenneth S Method and system for asynchronous chip design
US20090210841A1 (en) * 2008-02-12 2009-08-20 University Of Southern California Static timing analysis of template-based asynchronous circuits
US20110161902A1 (en) * 2009-12-31 2011-06-30 Stevens Kenneth S Method and System for Synthesizing Relative Timing Constraints on an Integrated Circuit Design to Facilitate Timing Verification

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KENNETH S. STEVENS: ""Characterization of Asynchronous Templates for Integration into Clocked CAD Flows"", 《2009 15TH IEEE SYMPOSIUM ON ASYNCHRONOUS CIRCUITS AND SYSTEMS》 *

Also Published As

Publication number Publication date
CN104620242A (zh) 2015-05-13
EP2875454A1 (en) 2015-05-27
WO2014015189A1 (en) 2014-01-23
JP2015524590A (ja) 2015-08-24
EP2875455A1 (en) 2015-05-27
US20140165022A1 (en) 2014-06-12
JP2015524589A (ja) 2015-08-24
EP2875454A4 (en) 2016-06-22
EP2875455A4 (en) 2016-06-22

Similar Documents

Publication Publication Date Title
CN104603784A (zh) 相对定时表征
US9141740B2 (en) Methods, systems, and articles of manufacture for implementing full-chip optimization with reduced physical design data
KR100186869B1 (ko) 회로와 시스템들의 고레벨의 의미론적 명세들과 기술들로부터 회로와 시스템들의 실행가능한 저레벨의 구조적 기술과 정당한물리적구현들을추론하는방법론
US6530073B2 (en) RTL annotation tool for layout induced netlist changes
CN1885295B (zh) 使用逻辑单元建置集成电路
US8719743B1 (en) Method and system for implementing clock tree prototyping
US9953120B2 (en) Relative timing characterization
US7971178B1 (en) System to merge custom and synthesized digital integrated circuit design data
US8549461B2 (en) Generation of independent logical and physical hierarchy
US8539405B2 (en) Method and system for implementing top down design and verification of an electronic design
Han et al. Optimal generalized H-tree topology and buffering for high-performance and low-power clock distribution
CN106503282A (zh) 集成电路设计的增量寄存器重定时
JP4393450B2 (ja) 論理回路モデル変換装置及び論理回路モデル変換プログラム
US10073942B1 (en) Methods, systems, and computer program product for implementing synchronous clones for an electronic design
Liang et al. AMF-Placer 2.0: Open source timing-driven analytical mixed-size placer for large-scale heterogeneous FPGA
Kahng et al. RosettaStone: connecting the past, present, and future of physical design research
Goswami et al. Application of Machine Learning in FPGA EDA Tool Development
Hemani Charting the EDA roadmap
US8707228B1 (en) Method and system for implementing hierarchical prototyping of electronic designs
TWI841724B (zh) 執行模擬基礎物理設計規則以最佳化電路佈局
US9760667B1 (en) Method, system, and computer program product for implementing prototyping and floorplanning of electronic circuit designs
Loh et al. VLSI Design Course with Commercial EDA Tools to Meet Industry Demand–From Logic Synthesis to Physical Design
Frangieh A design assembly technique for FPGA back-end acceleration
US9858372B1 (en) Methods, systems, and computer program product for verifying an electronic design
Chhabria et al. OpenROAD and CircuitOps: Infrastructure for ML EDA Research and Education

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: 20150506