CN108153920A - 集成电路设计的rtl阶段期间的时钟门控验证 - Google Patents
集成电路设计的rtl阶段期间的时钟门控验证 Download PDFInfo
- Publication number
- CN108153920A CN108153920A CN201611095503.7A CN201611095503A CN108153920A CN 108153920 A CN108153920 A CN 108153920A CN 201611095503 A CN201611095503 A CN 201611095503A CN 108153920 A CN108153920 A CN 108153920A
- Authority
- CN
- China
- Prior art keywords
- clock
- signal
- clock signal
- enabling
- door controling
- 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.)
- Withdrawn
Links
- 238000013461 design Methods 0.000 title claims abstract description 147
- 238000012795 verification Methods 0.000 title claims abstract description 29
- 238000012360 testing method Methods 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000013507 mapping Methods 0.000 claims abstract description 30
- 238000009415 formwork Methods 0.000 claims abstract description 11
- 230000004044 response Effects 0.000 claims description 15
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 claims description 14
- 239000010931 gold Substances 0.000 claims description 14
- 229910052737 gold Inorganic materials 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 14
- 230000009466 transformation Effects 0.000 claims description 6
- 230000003466 anti-cipated effect Effects 0.000 abstract description 3
- 230000006399 behavior Effects 0.000 description 75
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 45
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 41
- 230000015654 memory Effects 0.000 description 20
- 238000005070 sampling Methods 0.000 description 15
- 230000000630 rising effect Effects 0.000 description 12
- 238000004088 simulation Methods 0.000 description 8
- 239000004065 semiconductor Substances 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 238000009227 behaviour therapy Methods 0.000 description 6
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 229910052710 silicon Inorganic materials 0.000 description 5
- 239000010703 silicon Substances 0.000 description 5
- 241000220317 Rosa Species 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 2
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000009966 trimming Methods 0.000 description 2
- 102100040856 Dual specificity protein kinase CLK3 Human genes 0.000 description 1
- 102100040858 Dual specificity protein kinase CLK4 Human genes 0.000 description 1
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 1
- 101000749304 Homo sapiens Dual specificity protein kinase CLK3 Proteins 0.000 description 1
- 101000749298 Homo sapiens Dual specificity protein kinase CLK4 Proteins 0.000 description 1
- 229910000577 Silicon-germanium Inorganic materials 0.000 description 1
- 238000000137 annealing Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005260 corrosion Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 229910052738 indium Inorganic materials 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 230000005291 magnetic effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000007769 metal material Substances 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 1
- 230000003647 oxidation Effects 0.000 description 1
- 238000007254 oxidation reaction Methods 0.000 description 1
- 238000001259 photo etching Methods 0.000 description 1
- 238000005498 polishing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- 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
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/06—Structured ASICs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/04—Clock gating
-
- 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/06—Power analysis or power optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/396—Clock trees
Abstract
本文所提供的实施例包括一种用于在寄存器传递级RTL电路设计阶段期间的时钟门控验证的方法,该方法包括:获得根据时钟门控格式在时钟门控CG规格中定义的时钟门控信息,其中时钟门控信息描述由集成电路设计利用的至少第一门控时钟信号的目标时钟门控行为,CG规格包括模板结构和顶部映射,该模板结构基于启用条件来定义输出门控时钟与输入时钟之间的关系,该顶部映射将集成电路设计的包括第一门控时钟的顶级信号关联到模板结构;以及自动产生第一时钟门控CG检查器,以基于在集成电路设计的测试期间的预期输出时间和预期门控时间来验证时钟门控行为。
Description
技术领域
本公开大体上涉及时钟门控分析,且更具体而言涉及集成电路设计的时钟门控验证。
背景技术
现代的数字集成电路(IC)设计经常需要提供高速操作同时还具有低功耗。为了提供此类相反需求,实施技术例如时钟门控以减小数字IC装置的动态功耗。时钟门控对IC设计的同步电路添加逻辑部件以“修剪”时钟树。此类修剪禁用各种电路系统(例如电路时钟树、硬件寄存器和其它时钟相关装置)的冗余硬件转换。当未转换或切换时,被禁用的硬件的动态功耗转至0并且只引发泄漏电流。
寄存器传递级(RTL)是按照硬件寄存器之间的数字信号(例如数据)的流动和对那些信号执行的逻辑运算来模拟同步数字IC设计的设计抽象。RTL抽象在硬件描述语言(HDL)中用于创建IC的高级表示,从该高级表示可以导出较低级表示(例如晶体管级或门级表示)并且最终导出实际硅的表示。在RTL阶段的设计是现代数字IC设计中的常规实践。同步随机电路包括两种元件:寄存器和组合逻辑。寄存器(例如实施为D型触发器)使电路的操作与时钟信号的边沿同步,并且是电路中仅有的具有存储器特性的元件。组合逻辑执行电路中的所有逻辑功能,并且通常仅包括逻辑门(例如“与”门、“与非”门、“或”门、“或非”门等)。在HDL中,设计者声明寄存器并且通过使用编程语言中流行的构建体(例如if-then-else语句和算术运算)来描述组合逻辑。一般而言,RTL集中于描述在寄存器之间的信号的流动。
发明内容
在本公开的一个实施例中,提供一种用于在寄存器传递级(RTL)电路设计阶段期间的时钟门控验证的方法,该方法包括:获得根据时钟门控格式在时钟门控(CG)规格中定义的时钟门控信息,其中该时钟门控信息描述由集成电路设计利用的至少第一门控时钟信号的目标时钟门控行为,CG规格包括模板结构和顶部映射,该模板结构基于启用条件定义输出门控时钟与输入时钟之间的关系,该顶部映射包括集成电路设计的顶级信号与模板结构之间的关联,并且该顶级信号包括映射到输出门控时钟的第一门控时钟信号、映射到输入时钟的第一非门控时钟信号和映射到启用条件的第一启用信号;以及自动产生第一时钟门控(CG)检查器以验证第一门控时钟信号的时钟门控行为,其中第一CG检查器基于在CG规格中定义的时钟门控信息产生,并且第一CG检查器在集成电路设计的测试期间验证第一门控时钟信号是否在第一预期时间被输出和第一门控时钟信号是否在第二预期时间被门控。
上述实施例的一个方面提供的是,自动产生第一CG检查器包括:基于在CG规格中定义的时钟门控信息自动产生启用特性,该启用特性包括:启用标准和启用行为序列,该启用标准指示响应于第一非门控时钟信号的转变边沿和第一启用信号的第一状态而输出第一门控时钟信号,该启用行为序列指示当满足启用标准时预期第一非门控时钟作为第一门控时钟信号被输出。
上述实施例的另一方面提供的是,自动产生第一CG检查器包括:基于在CG规格中定义的时钟门控信息自动产生禁用特性,该禁用特性包括:禁用标准和禁用行为序列,该禁用标准指示响应于第一非门控时钟信号的转变边沿和第一启用信号的第二状态而门控第一门控时钟信号,该禁用行为序列指示当满足禁用标准时预期第一门控时钟信号被门控。
上述实施例的另一方面提供的是,第一非门控时钟信号的转变边沿包括上升时钟边沿,第一启用信号的第一状态包括激活状态,并且第一启用信号的第二状态包括去激活状态。
上述实施例的另一方面提供的是,自动产生第一CG检查器另外包括:自动产生用于启用特性的启用特性断言,其中启用特性断言被配置成提供对在集成电路的测试期间的启用特性断言的失效的指示;以及自动产生用于禁用特性的禁用特性断言,其中禁用特性断言被配置成提供对在集成电路的测试期间的禁用特性断言的失效的指示,其中第一CG检查器包括启用特性断言和禁用特性断言。
上述实施例的另一方面提供的是,时钟门控信息另外包括被包括于启用行为序列中的接通周期时间和包括于禁用行为序列中的断开周期时间,该接通周期时间指示预期在满足启用标准之后第一非门控时钟信号何时作为第一门控时钟信号被输出,并且断开周期时间指示预期在满足禁用标准之后何时门控第一门控时钟信号。
上述实施例的另一方面提供的是,接通周期时间包括第一数量的时钟周期,并且断开周期时间包括第二数量的时钟周期。
上述实施例的另一方面提供的是,CG规格包括定义第二输出门控时钟与第二输入时钟之间的第二关系的第二模板结构和第二启用条件,并且顶部映射的顶级信号另外包括映射到第二输出门控时钟的第二门控时钟信号、映射到第二输入时钟的第二非门控时钟信号和映射到第二启用条件的第二启用信号;并且方法另外包括:自动产生第二CG检查器以验证第二门控时钟信号的时钟门控行为,其中第二CG检查器基于在CG规格中定义的时钟门控信息产生,并且第二CG检查器在集成电路设计的测试期间验证第二门控时钟信号是否在第三预期时间被输出和第二门控时钟信号是否在第四预期时间被门控。
上述实施例的另一方面提供的是,集成电路设计包括利用第一门控时钟信号的至少一个软知识产权(IP)块。
上述实施例的另一方面提供的是,集成电路设计和第一CG检查器各自用硬件描述语言(HDL)代码来实施。
上述实施例的另一方面提供的是,方法另外包括:在集成电路设计的测试期间实施第一CG检查器,其中响应于第一CG检查器验证第一门控时钟的所测试时钟门控行为匹配在CG规格中描述的目标时钟门控行为,时钟门控验证是成功的,并且响应于第一CG检查器指示第一门控时钟的所测试时钟门控行为不匹配在CG规格中描述的目标时钟门控行为,时钟门控验证是不成功的。
在本公开的另一个实施例中,提供一种用于在寄存器传递级(RTL)电路设计阶段期间验证时钟门控行为的方法,该方法包括:检索存储于存储装置中的时钟门控(CG)规格,其中CG规格包括黄金时钟门控关系和信号图,该黄金时钟门控关系是基于启用条件在输出时钟信号和输入时钟信号之间定义的,该信号图包括映射到输出时钟信号的第一门控时钟信号、映射到输入时钟信号的第一非门控时钟信号和映射到启用条件的第一启用信号,第一门控时钟信号、第一非门控时钟信号和第一启用信号是在集成电路设计中利用的顶级信号,并且CG规格基于第一非门控时钟信号和第一启用信号来描述第一门控时钟信号的目标时钟门控行为;以及基于CG规格自动产生第一断言检查和第二断言检查,其中在集成电路设计的测试期间,第一断言检查验证第一门控时钟信号是否在第一预期时间被输出,且在集成电路设计的测试期间,第二断言检查验证第一门控时钟信号是否在第二预期时间被门控。
上述实施例的一个方面提供的是,自动产生第一断言检查和第二断言检查包括:自动产生包括以下各项的启用特性:基于第一非门控时钟信号和第一启用信号的第一状态的启用标准,和指示当预期第一非门控时钟信号作为第一门控时钟信号被输出时的第一预期时间的启用行为序列。
上述实施例的另一方面提供的是,自动产生第一断言检查和第二断言检查包括:自动产生包括以下各项的禁用特性:基于第一非门控时钟信号和第一启用信号的第二状态的禁用标准,和指示当预期第一门控时钟信号被门控时的第二预期时间的禁用行为序列。
上述实施例的另一方面提供的是,黄金时钟门控关系另外包括被包括于启用行为序列中的接通周期时间和包括于禁用行为序列中的断开周期时间,该接通周期时间指示在通过第一数量的时钟周期满足启用标准之后第一预期时间发生,并且该断开周期时间指示在通过第二数量的时钟周期满足禁用标准之后第二预期时间发生。
上述实施例的另一方面提供的是,方法另外包括:在集成电路设计的测试期间实施第一断言检查和第二断言检查,其中响应于第一断言检查和第二断言检查中的一个或多个指示第一门控时钟的所测试时钟门控行为不匹配目标时钟门控行为,时钟门控验证失效。
上述实施例的另一方面提供的是,方法另外包括:在集成电路设计的测试期间验证第一门控时钟信号之后,根据集成电路设计制造集成电路。
在本公开的另一个实施例中,提供一种非暂时性计算机可读存储媒体,该非暂时性计算机可读存储媒体被配置成存储程序指令,该程序指令被配置成在处理器上执行时实施:被配置成与模拟器通信的时钟门控(CG)检查器逻辑、被配置成使用硬件描述语言(HDL)代码在测试环境中模拟寄存器传递级(RTL)集成电路设计的模拟器、CG检查器逻辑,该CG检查器逻辑被配置成:存取存储于存储装置中的时钟门控(CG)规格,该CG规格包括黄金时钟门控表示和信号图,其中CG规格描述在RTL集成电路设计中利用的至少一个门控时钟信号的目标时钟门控行为;识别输入时钟信号、输出门控时钟信号和在黄金时钟门控表示中定义的启用条件;识别映射到输入时钟信号的第一非门控时钟信号、映射到输出门控时钟信号的第一门控时钟信号和映射到启用条件的第一启用信号,如在信号图中所定义;以及基于黄金时钟表示和信号图自动产生第一断言检查和第二断言检查,其中在集成电路设计的测试期间,第一断言检查验证第一门控时钟信号是否在第一预期时间被输出,并且在集成电路设计的测试期间,第二断言检查验证第一门控时钟信号是否在第二预期时间被门控。
上述实施例的一个方面提供的是,CG检查器逻辑另外被配置成:向模拟器提供第一断言检查和第二断言检查。
上述实施例的另一方面提供的是,在集成电路设计的测试期间实施第一断言检查和第二断言检查,并且该测试包括形式验证和动态模拟中的至少一个。
附图说明
通过参考附图,可以更好地理解本发明,并且使得本领域的技术人员清楚本发明的多个目的、特征和优点。
图1示出现有技术的集成电路设计流程。
图2示出根据一些实施例的在其中实施本公开的示例集成电路设计流程。
图3示出描绘根据一些实施例的在其中实施本公开的示例时钟门控验证过程的流程图。
图4示出描绘根据一些实施例的用于集成电路设计的软IP(知识产权)模块的示例时钟门控规格的方块图。
图5和图6示出根据一些实施例的描述用于软IP模块的时钟门控规格的示例时钟门控格式(CGF)文件。
图7示出根据一些实施例的在实施软IP模块的集成电路设计的时钟门控验证期间产生的示例时钟信号波形。
图8示出根据一些实施例的示例时钟门控检查器。
图9是示出根据一个实施例的在其中可以实施本公开的示例计算装置的相关部件的方块图。
本发明通过举例的方式示出而不局限于附图,在附图中,除非另外指出,否则相似的标记指示类似要素。附图中的要素出于简单和清楚的目的示出,并且不必按比例绘制。
具体实施方式
以下内容阐述旨在说明本发明且不应视为限制的各种实施例的详细描述。
综述
本公开包括提供模板结构(也被称作时钟门控(CG)模块)和信号图(也被称作顶部CGF映射)的时钟门控格式(CGF),以表示被设计成实施用于集成电路(IC)设计的低功率架构的时钟门控(CG)规格。CG规格描述在IC设计中利用的一个或多个门控时钟信号的目标时钟门控行为。CG模块基于启用条件模拟输入时钟与输出时钟之间的黄金时钟门控关系(例如定义的理想模型)。输出时钟基于输入时钟,其中激活的启用条件(例如启用条件载运逻辑电平1或断言信号)指示输出时钟被输出(例如输入时钟作为输出时钟被输出),并且去激活的启用条件(例如启用条件载运逻辑电平0或清除信号)指示输出时钟被门控或停止(例如接地信号作为输出时钟被输出)。
顶部CGF映射将在CG模块中定义的模型属性与IC设计中的顶级信号相关联。例如,在IC设计中利用的第一门控时钟信号与CG模块的输出时钟相关联,在IC设计中利用的第一非门控时钟信号与CG模块的输入时钟相关联,并且在IC设计中利用的启用信号与CG模块的启用条件相关联。CG模块和顶部CGF映射一起定义时钟门控信息,该时钟门控信息描述用于第一门控时钟信号的目标时钟门控行为。
在一些实施例中,模型属性还包括接通周期时间和断开周期时间,该接通周期时间指示在激活启用条件之后预期输出时钟何时被输出,该断开周期时间指示在去激活启用条件之后预期输出时钟何时被门控或停止。接通周期时间和断开周期时间在顶部CGF映射中各自被定义为时间量或时钟周期数量。在一些实施例中,时钟门控格式以硬件描述语言(HDL)代码定义各种语法结构、模型属性类型和映射关联,该映射关联实施CG模块与顶部CGF映射。
在IC设计的寄存器传递级(RTL)测试期间,包括一个或多个CG模块和顶部CGF映射的CG规格被提供到CGF检查器逻辑,该CGF检查器逻辑自动产生用于被验证的一个或多个门控时钟信号的一个或多个CG检查器。CG检查器包括特性断言检查,该特性断言检查是基于在CG规格中定义的时钟门控信息自动产生的。CGF检查器逻辑将一个或多个CG检查器提供到RTL模拟器或提供到单独的特性检查器工具,该RTL模拟器或特性检查器工具将CG检查器并入到在其中测试IC设计的测试环境中。在测试(其可以是形式验证或动态模拟)期间,CG检查器验证一个或多个门控时钟信号是否以与在CG规格中描述的目标时钟门控行为一致的方式来表现。如果一个或多个门控时钟信号中的任一个以不一致(例如非理想或非目标)的方式表现,则一个或多个CG检查器中的相应一个指示失效已发生。IC设计者接着可以校正失效的原因,例如通过修正IC设计、CG规格或这两者,同时保持在RTL设计阶段中。
示例实施例
当设计新的集成电路(IC)时,与图1所示相似的设计流程通常以描述IC的整体功能的系统级设计开始。在设计流程的寄存器传递级(RTL)设计阶段期间,IC的功能的不同方面通过以硬件描述语言(HDL)代码定义的多个功能模型来表示,该HDL代码的例子包括Verilog和VHDL(VHSIC HDL或极高速集成电路HDL)。IC设计者可以选择将功能模型中的一个或多个作为一个或多个软IP(知识产权)块102实施,这些软IP块102在RTL设计阶段中是IC设计者完全可修改的。软IP 102通常是由IC设计者在RTL设计阶段期间产生的源码。软IP块102被并入到集成电路(IC)设计104中,该IC设计104包括表示所设计的IC的功能的所有功能模型的HDL代码。IC设计者还可以选择将功能模型中的一个或多个作为提供一个或多个预定义功能模型的一个或多个硬IP块实施,该硬IP块在RTL阶段不可由IC设计者修改并且通常从第三方供应商获得。软IP 102和IC设计104作为RTL数据105存储(例如作为多个文件存储在存储装置或存储器中)。
随后使用RTL模拟器106来验证IC设计104,该RTL模拟器106被配置成模拟IC设计104以再现IC设计104的行为。IC设计104在由测试台定义的测试环境中被模拟,该测试台实施如由IC设计者指定的用于IC设计模拟的某些参数。RTL模拟器106被配置成在IC设计104上运行多个测试模拟以捕获通过IC设计104产生的寄存器间信号,这些寄存器间信号用于验证IC设计是否如预期运转。
一旦IC设计104在RTL阶段中被验证,设计流程继续到电路设计阶段,其中门级合成器108使用RTL数据105(例如软IP 102和IC设计104)来产生用于IC设计104的门级网表110。网表110描述IC设计的逻辑部件和它们的连接。门级合成器108还可以产生标准延迟格式(SDF)的时序信息,该时序信息包括时序信息例如路径延迟、互连延迟和偏斜时序限制。作为电路设计阶段的一部分,IC设计者可以使用电子设计自动化(EDA)工具对IC设计104的合成结果执行功率分析,例如网表110是否适用于实现高工作频率、较低功耗、小的硅面积等。
一旦功率分析完成,设计流程继续到物理设计阶段114,其中网表110被用于创建IC布局或蓝图,该IC布局或蓝图绘制所有IC部件(例如电容器、电阻器、逻辑门和将作为IC的一部分以硅形成的晶体管)的几何表示。IC布局随后用于以硅制造IC。
随着集成电路(IC)设计变得更加复杂,在此类设计中实现低功率变得更具挑战性。在集成电路设计中使用多种低功率技术,例如时钟门控、功率门控、多功率域等。多种EDA功率分析工具是常用的,但此类工具通常需要在电路设计阶段期间获得的经编译的门级网表和SDF时序信息以执行功率分析。在电路设计阶段期间使用此类工具的时钟门控验证需要IC设计流程返回到更早的寄存器传递级(RTL)设计阶段,以校正在电路设计阶段验证期间发现的任何错误并重复该电路设计阶段,包括网表和时序信息的重新编译和重新运行验证。此方法通常是反复的,以便捕捉直到其它错误被捕捉才可能展现的各种错误,这在时间和开销两方面代价都是高昂的(例如延迟整体产品到市场时间表)。
本公开提供其各方面在图2中示出的经修改的IC设计流程,该经修改的IC设计流程提供在RTL设计阶段期间的时钟门控验证,而不需要编译网表110或SDF时序信息。由本公开提供的经修改的IC设计流程避免了由于后期反复在电路设计阶段中发现错误而发生的任何代价高昂的时延。
如上所述,IC设计者可以将所设计的IC的功能模型中的一个或多个作为软IP 102来实施,该软IP 102被并入到包括所设计的IC的所有功能模型的IC设计104中。而且在RTL设计阶段期间,IC设计者使用时钟门控格式来定义用于IC设计104的时钟门控(CG)规格。在一些实施例中,CG规格被设计成实施用于IC设计104的低功率架构,其中IC设计104中的一些时钟在各种时间被门控以节省功率。时钟门控格式提供两种结构来限定CG规格:模板结构,其也被称作时钟门控格式(CGF)模块202,和映射结构,其也被称作顶部CGF映射204。
作为模板结构,CGF模块充当所定义的理想模型或理想时钟门控电路的表示,该理想时钟门控电路基于非门控输入时钟和启用条件产生门控输出时钟。启用条件指示输出时钟何时被激活(例如当理想时钟门控电路将输入时钟作为输出时钟通过时)和输出时钟何时被去激活(例如当理想时钟门控电路输出已清除信号作为输出时钟时)。输出时钟、输入时钟和启用条件是CGF模块的模型属性,其中这些模型属性之间的关系也被称作黄金时钟门控关系。换句话说,CGF模块基于启用条件模拟非门控输入时钟与门控输出时钟之间的黄金时钟门控关系。应指出,黄金时钟门控关系是不需要实施具体逻辑的概念关系(例如理想时钟门控电路并不实施为IC设计104的HDL代码中的实际时钟门控电路),这是因为门控输出时钟的目标时钟门控行为在CG规格中描述,如下文另外论述。
顶部CGF映射204定义CGF模块202的模型属性与在IC设计104中实施的顶级信号之间的关联。例如,CGF模块的输入时钟与IC设计104中的非门控时钟信号相关联或映射到该非门控时钟信号,CG模块的输出时钟与IC设计104中的门控时钟信号相关联或映射到该门控时钟信号,并且CG模块的启用条件与IC设计104中的启用信号相关联或映射到该启用信号。换句话说,顶部CGF映射204将CGF模块与在IC设计104中利用的特定门控时钟信号相关联。CGF模块202和顶部CGF映射204一起描述用于在IC设计104中利用的特定门控时钟信号的目标时钟门控行为(经由黄金时钟门控关系)。也可以定义额外的模型属性以另外修整目标时钟门控行为,例如接通周期时间和断开周期时间,如下文所论述。在一些实施例中,门控时钟信号在并入IC设计104中的软IP块102中利用。
CG规格可包括CGF模块的一个或多个实例,其中每个CGF模块实例可以与在IC设计中利用的不同门控时钟信号相关联,如在顶部CGF映射204中所映射。由此,每个CGF模块实例模拟用于该特定门控时钟信号、非门控时钟信号和基于其产生门控时钟信号的启用条件信号的黄金时钟门控关系。一个或多个CGF模块202和顶部CGF映射204也被称作CGF数据。
CGF数据被提供到CGF检查器逻辑206,该CGF检查器逻辑206被配置成辨识时钟门控格式并且自动产生用于IC设计的一个或多个门控时钟信号中的每个的时钟门控(CG)检查器,该一个或多个门控时钟信号的目标时钟门控行为在CGF数据中描述并且需要被验证。CGF检查器逻辑206被配置成识别在每个CGF模块中定义的模型属性,并且基于顶部CGF映射来识别映射到那些属性的顶级信号。CGF检查器逻辑206随后通过自动产生特性断言来产生用于特定门控时钟信号的CG检查器208,该特性断言中的每个是被断言为真的语句或所定义的特性。特性断言基于在CGF数据中识别的属性和所映射顶级信号来定义标准和行为序列,该标准和行为序列表示用于IC设计的CG规格的门控时钟信号的目标行为。
CGF检查器逻辑206还自动产生断言检查,该断言检查验证特性断言是否在测试期间保持为真(通过动态模拟或通过形式验证)。特性断言可由断言检查动态地通过模拟(例如与RTL模拟器106合作)来检查,或以统计方式通过单独的特性检查器工具(其也可以与RTL模拟器106合作)(例如证明门控时钟信号的所测试时钟门控行为是否匹配在CG规格中描述的预期目标行为的形式验证工具)来进行检查。断言检查和特性断言(也被称作CG检查器208)在一些实施例中被提供到RTL模拟器106,或者在其它实施例中被提供到单独的特性检查器工具。
在图2所示的实施例中,RTL模拟器106还获得RTL数据105(其包括软IP 102和IC设计104)并且在测试环境中模拟IC设计。在其中使用单独的特性检查器工具的实施例中,工具获得RTL数据105以测试IC设计。在IC设计104的测试期间(其可以是动态模拟或形式验证)期间,CG检查器208验证一个或多个门控时钟是否以与在CGF数据中定义的理想行为(即,在CG规格中描述的目标行为)一致的方式来表现。
如果与特性断言相关联的门控时钟在测试期间以非理想方式表现,则门控时钟的所测试行为违反特性断言(例如特性断言被确定为假)并且其相关联的CG检查器208指示失效。CG检查器可以提供旗标以指示错误已发生或以其它方式识别失效。IC设计者可随后返回到RTL数据(例如软IP 102或可选地返回到IC设计104)并且校正失效的原因,同时保持在RTL设计阶段中,而不必重复电路设计阶段。一旦完成时钟门控验证、RTL阶段验证或这两者,设计流程可以继续到如图1中所示的电路设计阶段(例如门级合成)。
图3示出描绘示例时钟门控验证过程的流程图,该时钟门控验证过程可以部分地通过CGF检查器逻辑206实施,该CGF检查器逻辑206被配置成辨识本文所述的时钟门控格式。如上文所论述,IC设计者在RTL设计阶段期间在软IP 102中描述IC设计的功能。而且在RTL设计阶段期间,IC设计者描述被设计用于IC设计104的时钟门控(CG)规格的目标时钟门控行为,该目标时钟门控行为被示出为两个步骤:操作302和操作304。在一些实施例中,CG规格被设计成实施IC设计104的软IP 102中的低功率架构。CG规格的例子在下文关于图4论述。
在操作302中,IC设计者定义模拟黄金时钟门控关系的CGF模块202的一个或多个实例,其中CGF模块202的每个实例包括一组模型属性(例如输入时钟、输出时钟和启用条件)。CG模块的例子在下文关于图5论述。
在操作304中,IC设计者定义顶部CGF映射,该顶部CGF映射将在每个CGF模块实例中描述的模型属性(例如输入时钟、输出时钟和启用条件)映射到或关联在IC设计104中利用的顶级信号。CGF模块202的每个实例与在IC设计104中(例如在软IP 102中)利用的门控时钟信号相关联。示例顶部CGF映射在下文关于图6论述。
在操作306中,CGF检查器逻辑206被配置成自动产生断言检查或CG检查器208以验证与CGF模块实例相关联的门控时钟信号的时钟门控行为,其中CG检查器208是基于在CGF数据中定义的时钟门控信息,该CGF数据包括CGF模块的实例和顶部CGF映射的实例这两者。CGF检查器逻辑206被配置成识别在CGF模块实例中定义的属性和与那些属性相关联的所映射信号,自动产生将属性和所映射信号并入到标准中的特性断言,和表示在IC设计104中利用的需要验证的门控时钟信号的目标行为的行为序列,并且自动产生验证那些特性断言的断言检查或CG检查器208。特性断言和断言检查的例子在下文关于图8论述。
在操作308中,IC设计104的RTL数据105(包括软IP 102)和断言检查或CG检查器208被提供作为到RTL模拟器106的输入。CG检查器208被并入到在其中模拟并测试IC设计104的测试环境中。在IC设计104的测试期间,例如在RTL验证(或形式验证)期间或在一个或多个动态模拟期间,断言检查基于CG规格(其包括CGF模块实例、顶部CGF映射)指示门控时钟信号的所测试行为是否匹配在特性断言中描述的目标行为,这被示出为操作310。
如果断言检查或CG检查器中的至少一个检测到失效(例如检测到门控时钟信号的所测试行为违反特性断言),则失效的断言检查进行标记或以其它方式识别失效点,这被示出为操作312。IC设计者可以使用断言检查失效来在IC设计104中(例如在软IP 102中,或在CG规格中)识别需要被校正的区域,这被示出为操作314。返回到操作310,如果通过所有断言检查,则CG规格被成功地验证,如在操作315中所示。示出在IC设计104中实施的顶级信号的示例所测试行为的波形在下文关于图7论述。
图4示出用于包括于软IP 102中的被命名为IP_A的软IP模块的示例时钟门控(CG)规格400,其示出由CGF模块表示的理想时钟门控电路404的例子。CGF模块模拟时钟门控电路404的输入时钟与输出时钟之间的概念关系,该输入时钟和输出时钟与作为输入时钟的顶级IC设计时钟信号非门控_CLK1和作为输出时钟的门控_CLK1相关联。CLK1_启用还作为启用条件进行关联,该启用条件通过由启用电路402表示的启用逻辑而被提供到时钟门控电路404。
时钟门控电路404提供基于启用条件(或CLK1_启用)的逻辑电平状态的输出时钟(或门控_CLK1)和输入时钟(或非门控_CLK1)。例如,响应于启用条件被激活或断言(例如启用条件载运逻辑电平1),通过时钟门控电路404提供(或通过)输入时钟作为输出时钟。响应于启用条件被去激活或清除(例如启用条件载运逻辑电平0),清除时钟门控电路404的输出(例如输出逻辑电平0信号或接地)。时钟门控格式将该基线或目标行为定义到每个CGF模块中作为黄金时钟门控关系,其中CGF模块的模型属性用于基于同样存在于软IP 102中的特定非门控输入时钟(例如非门控_CLK1)和特定启用条件(CLK1_启用),将该基线或目标行为与在软IP 102中使用的特定输出门控时钟(例如门控_CLK1)相关联。
在其它实施例中,额外的模型属性也可以包括于CGF模块的一组属性中,以便另外加强由CGF模块表示的基线或目标行为。例如,可以包括接通周期时间属性,该接通周期时间属性指示在启用条件(或CLK1_启用)被激活之后何时将输出时钟(或门控_CLK1)输出。类似地,可以包括断开周期时间属性,该断开周期时间属性指示在启用条件(或CLK1_启用)被清除之后何时门控或停止输出时钟(或门控_CLK1)。接通周期时间和断开周期时间用于对可以在时钟门控期间发生的传播延迟做出解释。例如,可以预期通过时钟门控电路404将输出时钟输出,该时钟门控电路404包括由测试环境中的采样时钟信号计时的至少一个触发器,该采样时钟信号的输出相对于其输入延迟多个时钟周期。在此例子中,输出时钟(门控_CLK1)可以在启用条件(CLK1_启用)被激活之后的一些时间量(例如采样时钟信号的多个时钟周期)处输出。在其中触发器在采样时钟信号的上升沿上被触发的实施例中,输出时钟在启用条件被激活并且输入时钟(非门控_CLK1)的上升沿已发生之后的一些时间处输出。
应指出,时钟门控电路的具体结构不必在RTL设计阶段期间已知,这是因为时钟门控格式提供接通周期时间和断开周期时间,以此方式来另外描述通过这种时钟门控电路产生的门控时钟的目标行为,而不需要具体的详述逻辑来这样做。还应注意,在一些实施例中,接通周期时间和断开周期时间可以是相同数量的时钟周期或时间量,或者在其它实施例中可以各自是不同数量的时钟周期或时间量。
图5示出定义用于软IP模块IP_A的CG规格400的一部分的示例时钟门控格式(CGF)文件描述。CGF文件包括在软IP模块IP_A中利用的非门控时钟信号的列表,该列表被示出为非门控_时钟_列表。非门控时钟列表包括N数量的非门控时钟信号的信号名称,在所示例子中,N为3:非门控_CLK1(其在图4中示出)、非门控_CLK2和非门控_CLKN。应指出,非门控时钟信号并不具有在CG规格400中描述的相关联时钟门控信息。
CGF文件描述还包括同样在软IP模块IP_A中利用的门控时钟信号的列表,该列表被示出为门控_时钟_列表。门控时钟列表包括N数量的门控时钟信号的信号名称,在所示例子中,N为5:门控_CLK1(其在图4中示出)、门控_CLK2、门控_CLK3、门控_CLK4和门控_CLKN。如本文所使用,应指出,N为表示一些数量的整数,其中在一些实施例中,N数量的非门控时钟信号不等于N数量的门控时钟信号,而在其它实施例中,针对非门控时钟信号和门控时钟信号这两者的N数量可以相同。应指出,门控时钟信号具有在CG规格400中描述的相关联时钟门控信息。
CGF文件描述还包括被命名为CG_模块A的CGF模块定义,其按顺序定义一组模型属性:被命名为CLK_输入的输入时钟属性、被命名为CG_启用的启用条件属性和被命名为GCLK_输出的输出时钟属性。在图5中示出的例子还包括被命名为接通_周期的接通周期时间和被命名为断开_周期的断开周期时间。每种属性基于由时钟门控格式定义的相应属性类型来定义。例如,时钟门控格式使用“CKB”指示输入时钟属性类型,“启用”指示启用条件属性类型,“GCKB”指示输出时钟属性类型,“接通_周期”指示接通周期时间属性类型,以及“断开_周期”指示断开周期时间属性类型。虽然单个CGF模块在图5中示出(示出为CG_模块A),但其它实施例可包括多个CGF模块(例如针对另一个软IP模块IP_B定义的CG_模块B)。
图6示出将CGF模块定义CG_模块A实例化并且包括顶部CGF映射(示出为信号_映射)的示例CGF实例文件,该顶部CGF映射与CG_模块A相关联。顶部CGF映射将在IC设计104中利用的顶级非门控时钟信号和门控时钟信号与在相关联CGF模块中定义的模型属性相关联。在CGF模块实例中定义的每个属性名称与在IC设计104的RTL数据中定义的信号名称相关联。例如,信号映射关联以下各项:
CG_模块A的CLK_输入与IP_A的非门控_CLK1,
CG_模块A的CG_启用与IP_A的CLK1_启用,以及
CG_模块A的GCLK_输出与IP_A的门控_CLK1。
信号映射还将用于接通_周期和断开_周期时间的值定义为用于测试IC设计104的采样时钟的2个时钟周期。
图8示出由CGF检查器逻辑206基于CGF数据自动产生的示例断言检查或CG检查器,该CGF数据包括在图5所示的CGF模块和图6所示的顶部CGF映射两者中定义的时钟门控信息。针对在IC设计中利用且包括于CG规格400中的每个门控时钟信号产生CG检查器。CG检查器包括一对特性断言:启用特性断言(被命名为门控_CLK1_启用)和禁用特性断言(被命名为门控_CLK1_禁用)。
启用特性断言包括启用标准,该启用标准指示至少部分基于启用条件(CLK1_启用)的第一状态(例如激活或断言状态,例如逻辑电平1)和描述在IC设计的测试期间预期的输出时钟(门控_CLK1)的目标行为的行为序列,将输入时钟(非门控_CLK1)作为输出时钟(门控_CLK1)输出或通过。在一些实施例中,启用特性断言的结构可以被定义为
(启用标准)|->(行为序列),
其中|->符号指示响应于启用标准被满足而评估行为序列。
启用特性断言的初始版本可以使用属性类型作为用于顶级信号名称的占位符。使用此类占位符的启用标准的示例伪码可以被示出为:
当((启用条件为真)并且(输入时钟具有上升沿))时,
并且启用行为序列的示例伪码可包括:
评估输出时钟是否等于输入时钟。
CGF检查器逻辑206被配置成识别或解析在与包括于启用特性断言的初始版本中的属性类型相关联的CGF模块中所声明的每个属性名称,并且识别或解析在与(解析的)属性名称相关联的顶部CGF映射中的顶级信号名称。CGF检查器逻辑206随后将启用特性断言的初始版本中的属性类型替换为其相关联的顶级信号名称,以产生启用特性断言的最终版本。以此方式,启用条件类型将被替换为顶级启用条件信号名称,并且输入时钟类型将被替换为顶级非门控时钟信号名称,其中所得启用标准被示出为:
((CLK1_启用===1)&&$ROSE(非门控_CLK1))。
CGF检查器逻辑206还可以使用关于在其中测试IC设计104的测试环境已知的信息,以产生特性断言中的信息。如上所述,由CGF模块CG模块A表示的时钟门控电路404在测试期间使用采样时钟(被命名为采样_CLK)来计时。在启用标准的一些实施例中,CGF检查器逻辑206另外包括指示应当在采样时钟的转变边沿处评估启用标准的时序要求,以便精确地表示由时钟门控电路404(其可包括触发器或由采样时钟计时的其它电路系统)输出的门控时钟信号的行为。启用标准的此种实施例被示出为:
@(正沿采样_CLK)((CLK1_启用===1)&&$ROSE(非门控_CLK1))。
类似地,在行为序列中,输出时钟类型将被替换为顶级门控时钟信号名称,并且输入时钟类型将被替换为顶级非门控时钟信号名称,其中所得行为序列被示出为:
门控_CLK1==非门控_CLK1。
在包括接通周期时间的实施例中,CGF检查器逻辑206另外包括指示在满足启用标准之后的时间评估行为序列的时序要求,其中该时间由接通周期时间(例如N数量的时钟周期,例如两个时钟周期)指定。行为序列的这种实施例被示出为:
##2门控_CLK1==非门控_CLK1。
禁用特性断言包括禁用标准,该禁用标准指示至少部分基于启用条件的第二状态(例如已清除状态,例如逻辑电平0)和描述在IC设计的测试期间预期的输出时钟(门控_CLK1)的目标行为的行为序列来门控或停止输出时钟。类似地,在一些实施例中,禁用特性断言的结构可以被定义为:
(禁用标准)|->(行为序列),
其中|->符号指示响应于禁用标准被满足而评估行为序列。
禁用特性断言的初始版本还可以使用属性类型作为用于顶级信号名称的占位符。使用此类占位符的禁用标准的示例伪码可以被示出为:
当((启用条件为真)并且(输入时钟具有上升沿))时,
并且禁用行为序列的示例伪码可包括:
评估输出时钟是否停止。
如上所述,CGF检查器逻辑206被配置成识别或解析在与包括于禁用特性断言的初始版本中的属性类型相关联的CGF模块中所声明的每个属性名称,并且识别或解析在与(解析的)属性名称相关联的顶部CGF映射中的顶级信号名称。CGF检查器逻辑206随后将禁用特性断言的初始版本中的每个属性类型替换为其相关联的顶级信号名称,以产生禁用特性断言的最终版本。以此方式,启用条件类型将被顶级启用条件信号名称替换,并且输入时钟类型将被顶级非门控时钟信号名称替换,其中所得禁用标准被示出为:
((CLK1_启用===0)&&$ROSE(非门控_CLK1))。
在禁用标准的一些实施例中可以包括时序要求,该时序要求指示应在采样时钟的转变边沿处评估禁用标准,这被示出为:
@(正沿样本_CLK)((CLK1_启用===0)&&$ROSE(非门控_CLK1))。
类似地,在行为序列中,输出时钟类型将被替换为顶级门控时钟信号名称,其中所得行为序列被示出为:
门控_CLK1===0。
在包括断开周期时间的实施例中,CGF检查器逻辑206另外包括指示在满足禁用标准之后的时间评估行为序列的时序要求,其中该时间由断开周期时间(例如N数量的时钟周期,例如两个时钟周期)指定。行为序列的这种实施例被示出为:
##2门控_CLK1===0。
图8还示出针对该对特性断言而产生的一对特性断言检查(也被简称作断言检查),该对特性断言和该对特性断言检查一起被认为是CG检查器。第一断言检查被命名为第一_检查,该第一断言检查在测试期间检查启用特性断言,并且第二断言检查被命名为第二_检查,该第二断言检查在测试期间检查禁用特性断言。如上所述,该第一断言检查和第二断言检查将在测试期间验证启用和禁用特性断言是否保持为真(通过动态模拟或通过形式验证)。
图7示出在实施软IP模块的集成电路设计的时钟门控验证期间产生的示例时钟信号波形。顶级信号非门控_CLK1(输入时钟)、CLK1_启用(启用条件)和门控_CLK1(输出时钟,以及测试环境采样_CLK(采样时钟)被随时间示出。图7参考图8的特性断言进行论述。
在时间A,CLK1_启用被激活,这满足启用特性断言的表达式CLK1_启用===1。但是,直至时间B才在采样时钟的正沿或上升沿处评估启用特性断言。在时间B,CG检查器评估是否满足启用标准。由于非门控_CLK1的上升沿在时间B发生并且CLK1_启用仍在时间B激活,因此在时间B满足启用标准。CG检查器随后评估是否满足行为序列。但是,由于启用特性断言包括时序要求##2,因此CG检查器在时间C评估行为序列之前等待采样时钟的两个时钟周期。当CG检查器确认门控_CLK1等于非门控_CLK1时,在时间C验证门控_CLK1,其中两个时钟信号都在上升沿上。CG检查器继续在采样时钟的每个正沿或上升沿处评估启用标准,并且确认门控_CLK1的所测试行为匹配在CGF数据中定义的目标行为。如果在任一点处门控_CLK1偏离目标行为,则CG检查器将指示失效。
在时间D,CLK1_启用被清除,这满足禁用特性断言的表达式CLK1_启用===0。但是,直到时间E才在采样时钟的正沿或上升沿处评估禁用特性断言。在时间E,CG检查器评估是否满足禁用标准。由于非门控_CLK1的上升沿在时间E发生并且CLK1_启用仍在时间E被清除,因此在时间E满足禁用标准。CG检查器随后评估是否满足行为序列。但是,由于禁用特性断言包括时序要求##2,因此CG检查器在时间F评估行为序列之前等待采样时钟的两个时钟周期。当CG检查器确认门控_CLK1等于0或接地时,在时间F验证门控_CLK1。CG检查器继续在采样时钟的每个正沿或上升沿处评估禁用标准,并且确认门控_CLK1的所测试行为匹配在CGF数据中定义的目标行为。如果在任一点处门控_CLK1偏离目标行为,则CG检查器将指示失效。
图9示出描绘示例计算装置900的相关部件的方块图,其示出CGF检查器逻辑模块206如何可以在软件中实施。计算装置900包括至少一个处理单元、相关联的存储器和多个输入/输出(I/O)装置。计算装置900根据程序来处理信息并且经由I/O装置产生所得的输出信息。程序是指令列表,例如特定应用程序和/或操作系统。计算机程序通常在内部存储于计算机可读存储媒体上或者经由计算机可读传输媒体被传输到计算装置900。计算机过程通常包括执行(运行)程序或程序的一部分、当前程序值和状态信息(也被简称为数据)和由操作系统用以管理过程的执行的资源。计算装置900的例子包括大型主机、服务器、工作站、个人计算机、小型计算机等。
如所示,计算装置900包括被配置成执行存储于存储器906和/或908中的程序指令的一个或多个处理器902(例如微处理器、可编程逻辑装置(PLD)或专用集成电路(ASIC))。存储器906和908可以包括各种类型的RAM(随机存取存储器)、ROM(只读存储器)、非易失性存储器如快闪存储器、易失性存储器等。计算装置900还包括一个或多个端口904(例如一个或多个硬件端口或可以链接到其它网络装置、主机、服务器、存储装置等的其它网络接口)。处理器902、端口904与存储器906和908耦合以通过一个或多个总线或其它互连件来发送和接收数据和控制信号。
在这个例子中,可执行以实施RTL模拟器910和CGF检查器逻辑206的程序指令存储于存储器906中。CGF检查器逻辑206包括基于CGF数据自动产生一个或多个CG检查器和将CG检查器提供到RTL模拟器106或单独的特性检查器工具所需的功能。RTL数据105(其包括软IP 102和IC设计104)可以连同CGF数据916(其包括CG模块202和顶部CG映射204)存储于存储器908中,RTL数据105和CGF数据916这两者可被产生作为如图2中所示的IC设计流程的一部分。这些数据可以在经由端口904在网络上发送之前和/或响应于经由端口904从网络从接收而存储于存储器908中。例如,计算装置900可耦合以经由端口904通过有线或无线网络连接来接收来自设计设备的RTL数据105或CGF数据。
可执行以实施CGF检查器逻辑206的程序指令和/或数据可以存储在各种计算机可读存储媒体例如存储器(例如RAM(随机存取存储器))或其它计算机系统上的其它媒体上。此类计算机可读媒体可以永久地、可拆卸地或远程地耦合到信息处理系统例如计算装置900。计算机可读媒体可包括例如且不限于任何数量的以下各项:包括磁盘和磁带存储媒体的磁性存储媒体;光学存储媒体例如光盘媒体(例如CD ROM、CD R等)和数字通用光盘(DVD)存储媒体;包括基于半导体的存储器单元(例如快闪存储器、EEPROM、EPROM、ROM)的非易失性存储器存储媒体;铁磁数字存储器;MRAM;包括寄存器、缓存器或高速缓冲存储器、主存储器、RAM等的易失性存储媒体;以及包括计算机网络、点到点电信设备和载波传输媒体的数据传输媒体,仅举几例。在一些实施例中,指令和/或数据被从另一种计算机可读存储媒体加载到存储器906和/或908中以便被执行。指令和/或数据还可经由网络例如互联网或在载体媒体上传送到计算装置以便存储在存储器中。在一些实施例中,使用载体媒体(例如网络)和/或在其上载运信号(例如电信号、电磁信号或数字信号)的无线链路来输送指令和/或数据。
还应注意,在图2中,IC设计可用于在IC设计已经通过时钟门控验证和RTL验证之后制造集成电路。IC设计104的一个例子实施片上系统(SoC),该片上系统包括系统的各种部件作为单个集成电路。集成电路的示例部件包括不限于:处理器、存储器、逻辑、模拟电路系统、传感器、MEMS装置,独立式分立装置例如电阻器、电感器、电容器、二极管、功率晶体管等。在一些实施例中,集成电路可包括上文所列的集成电路部件类型的组合或者可以是另一类型的微电子装置。
集成电路可以在半导体基板或晶片上实施,该半导体基板或晶片可以是任何半导体材料或材料的组合,例如砷化镓、锗化硅、绝缘体上硅(SOI)、硅、单晶硅等以及以上材料的组合。半导体晶片是使用一系列的大量过程步骤形成的,这些过程步骤包括但不限于沉积包括电介质材料和金属的半导体材料(例如生长、氧化、溅镀和保形沉积)、蚀刻半导体材料(例如使用湿式蚀刻剂或干式蚀刻剂)、将半导体材料平坦化(例如执行化学机械抛光或平坦化、执行用于图案化的光刻,包括沉积和去除光刻掩模或其它光致抗蚀剂材料)、离子注入、退火等。
至今应了解已经提供了时钟门控格式(CGF),该时钟门控格式(CGF)提供模板结构(也被称作时钟门控(CG)模块)和信号图(也被称作顶部CGF映射)来表示时钟门控(CG)规格,该时钟门控(CG)规格描述在IC设计中利用的一个或多个门控时钟信号的目标时钟门控行为。
由于实施本发明的设备大部分由本领域的技术人员已知的电子部件和电路组成,因此为了理解和了解本发明的基本概念并且为了不混淆或偏离本发明的教示,将不会以比上述说明认为必要的任何更大程度阐述电路细节。
如本文所使用,术语“实质性”和“大体上”意味着足以用切实可行的方式实现所陈述的目的或值,这考虑由可在晶片制造期间发生的常见和预期过程异常引起的任何轻微缺陷或偏差(如果存在的话),这些轻微缺陷或偏差对于所陈述的目的或值并不显著。
虽然参照具体实施例在本文描述了本发明,但在不脱离如在以下权利要求中阐述的本发明的范围的情况下可以进行各种修改和变更。例如,可以在图9的RTL数据和CGF数据中定义多个RTL文件和CGF文件。因此,本说明书和附图应被视为说明性而非限制性意义,并且所有此类修改旨在包括在本发明的范围内。在本文中关于具体实施例描述的任何益处、优点或问题的解决方案并不旨在被解释为任何或所有权利要求的关键、必要或基本的特征或要素。
此外,如本文所使用,术语“一个(a)”或“一个(an)”被定义为一个或多于一个。并且,权利要求中的引导短语例如“至少一个”和“一个或多个”的使用不应被解释为暗示通过不定冠词“一个(a)”或“一个(an)”引入另一权利要求要素将包含此引入的权利要求要素的任何特定权利要求限制到只包含一个此要素的发明,即使当同一权利要求包括引导短语“一个或多个”或“至少一个”和不定冠词例如“一个(a)”或“一个(an)”时。定冠词的使用同样如此。
除非另外说明,否则术语例如“第一”和“第二”用于任意地区别由此类术语描述的要素。因此,这些术语不必旨在指示此类要素的时间或其它优先级排序。
Claims (10)
1.一种用于在寄存器传递级RTL电路设计阶段期间的时钟门控验证的方法,其特征在于,所述方法包括:
获得根据时钟门控格式在时钟门控CG规格中定义的时钟门控信息,其中
所述时钟门控信息描述由集成电路设计利用的至少第一门控时钟信号的目标时钟门控行为,
所述CG规格包括模板结构和顶部映射,
所述模板结构基于启用条件来定义输出门控时钟与输入时钟之间的关系,
所述顶部映射包括所述集成电路设计的顶级信号与所述模板结构之间的关联,以及
所述顶级信号包括映射到所述输出门控时钟的所述第一门控时钟信号、映射到所述输入时钟的第一非门控时钟信号和映射到所述启用条件的第一启用信号;以及
自动产生第一时钟门控CG检查器以验证所述第一门控时钟信号的时钟门控行为,其中
所述第一CG检查器基于在所述CG规格中定义的所述时钟门控信息产生,以及
在所述集成电路设计的测试期间,所述第一CG检查器验证所述第一门控时钟信号是否在第一预期时间被输出和所述第一门控时钟信号是否在第二预期时间被门控。
2.根据权利要求1所述的方法,其特征在于,所述自动产生所述第一CG检查器包括:
基于在所述CG规格中定义的所述时钟门控信息自动产生启用特性,所述启用特性包括:
启用标准,所述启用标准指示响应于所述第一非门控时钟信号的转变边沿和所述第一启用信号的第一状态而输出所述第一门控时钟信号,以及
启用行为序列,所述启用行为序列指示当满足所述启用标准时,预期所述第一非门控时钟作为所述第一门控时钟信号被输出。
3.根据权利要求2所述的方法,其特征在于,所述自动产生所述第一CG检查器包括:
基于在所述CG规格中定义的所述时钟门控信息自动产生禁用特性,所述禁用特性包括:
禁用标准,所述禁用标准指示响应于所述第一非门控时钟信号的所述转变边沿和所述第一启用信号的第二状态而门控所述第一门控时钟信号,以及
禁用行为序列,所述禁用行为序列指示当满足所述禁用标准时,预期所述第一门控时钟信号被门控。
4.根据权利要求3所述的方法,其特征在于,所述自动产生所述第一CG检查器另外包括:
自动产生用于所述启用特性的启用特性断言,其中所述启用特性断言被配置成提供关于在所述集成电路的测试期间所述启用特性断言的失效的指示;以及
自动产生用于所述禁用特性的禁用特性断言,其中所述禁用特性断言被配置成提供关于在所述集成电路的测试期间所述禁用特性断言的失效的指示,其中
所述第一CG检查器包括所述启用特性断言和所述禁用特性断言。
5.根据权利要求3所述的方法,其特征在于,
所述时钟门控信息另外包括被包括于所述启用行为序列中的接通周期时间和包括于所述禁用行为序列中的断开周期时间,
所述接通周期时间指示在满足所述启用标准之后,预期所述第一非门控时钟信号何时作为所述第一门控时钟信号被输出,以及
所述断开周期时间指示在满足所述禁用标准之后,预期所述第一门控时钟信号何时被门控。
6.根据权利要求1所述的方法,其特征在于
所述CG规格包括定义第二输出门控时钟与第二输入时钟之间的第二关系的第二模板结构和第二启用条件,以及
所述顶部映射的所述顶级信号另外包括映射到所述第二输出门控时钟的第二门控时钟信号、映射到所述第二输入时钟的第二非门控时钟信号和映射到所述第二启用条件的第二启用信号;以及
所述方法另外包括:
自动产生第二CG检查器以验证所述第二门控时钟信号的时钟门控行为,其中
所述第二CG检查器基于在所述CG规格中定义的所述时钟门控信息产生,以及
在所述集成电路设计的测试期间,所述第二CG检查器验证所述第二门控时钟信号是否在第三预期时间被输出和所述第二门控时钟信号是否在第四预期时间被门控。
7.根据权利要求1所述的方法,其特征在于,所述方法另外包括:
在所述集成电路设计的测试期间实施所述第一CG检查器,其中
响应于所述第一CG检查器验证所述第一门控时钟的所测试时钟门控行为匹配在所述CG规格中描述的所述目标时钟门控行为,时钟门控验证是成功的,以及
响应于所述第一CG检查器指示所述第一门控时钟的所述所测试时钟门控行为不匹配在所述CG规格中描述的所述目标时钟门控行为,时钟门控验证是不成功的。
8.一种用于在寄存器传递级RTL电路设计阶段期间验证时钟门控行为的方法,其特征在于,所述方法包括:
检索存储于存储装置中的时钟门控CG规格,其中
所述CG规格包括黄金时钟门控关系和信号图,
所述黄金时钟门控关系是基于启用条件在输出时钟信号和输入时钟信号之间定义的,
所述信号图包括映射到所述输出时钟信号的第一门控时钟信号、映射到所述输入时钟信号的第一非门控时钟信号和映射到所述启用条件的第一启用信号,
所述第一门控时钟信号、所述第一非门控时钟信号和所述第一启用信号是在集成电路设计中利用的顶级信号,以及
所述CG规格基于所述第一非门控时钟信号和所述第一启用信号描述所述第一门控时钟信号的目标时钟门控行为;以及
基于所述CG规格自动产生第一断言检查和第二断言检查,其中
在所述集成电路设计的测试期间,所述第一断言检查验证所述第一门控时钟信号是否在第一预期时间被输出,以及
在所述集成电路设计的测试期间,所述第二断言检查验证所述第一门控时钟信号是否在第二预期时间被门控。
9.根据权利要求8所述的方法,其特征在于,所述自动产生所述第一断言检查和所述第二断言检查包括:
自动产生启用特性,所述启用特性包括:
基于所述第一非门控时钟信号和所述第一启用信号的第一状态的启用标准,以及
指示所述第一预期时间的启用行为序列,在所述第一预期时间,预期所述第一非门控时钟信号作为所述第一门控时钟信号被输出。
10.根据权利要求8所述的方法,其特征在于,所述方法另外包括:
在所述集成电路设计的测试期间实施所述第一断言检查和第二断言检查,其中
响应于所述第一断言检查和第二断言检查中的一个或多个指示所述第一门控时钟的所测试时钟门控行为不匹配所述目标时钟门控行为,时钟门控验证失效。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611095503.7A CN108153920A (zh) | 2016-12-02 | 2016-12-02 | 集成电路设计的rtl阶段期间的时钟门控验证 |
US15/374,109 US9934342B1 (en) | 2016-12-02 | 2016-12-09 | Clock gating verification during RTL stage of integrated circuit design |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611095503.7A CN108153920A (zh) | 2016-12-02 | 2016-12-02 | 集成电路设计的rtl阶段期间的时钟门控验证 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108153920A true CN108153920A (zh) | 2018-06-12 |
Family
ID=61711517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611095503.7A Withdrawn CN108153920A (zh) | 2016-12-02 | 2016-12-02 | 集成电路设计的rtl阶段期间的时钟门控验证 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9934342B1 (zh) |
CN (1) | CN108153920A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110346618A (zh) * | 2019-07-29 | 2019-10-18 | 天津大学 | 一种针对于多时钟域at-speed测试的OCC电路 |
CN113055099A (zh) * | 2019-12-26 | 2021-06-29 | 大唐移动通信设备有限公司 | 一种时钟门控模块的检测方法及装置 |
CN113722163A (zh) * | 2021-08-20 | 2021-11-30 | 浪潮电子信息产业股份有限公司 | 一种芯片验证方法、装置及芯片验证平台 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2519181B (en) * | 2014-03-31 | 2015-09-09 | Imagination Tech Ltd | Clock verification |
US10599800B2 (en) * | 2017-07-27 | 2020-03-24 | Synopsys, Inc. | Formal clock network analysis, visualization, verification and generation |
US11176293B1 (en) * | 2018-03-07 | 2021-11-16 | Synopsys, Inc. | Method and system for emulation clock tree reduction |
CN112559437A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 一种调试单元及处理器 |
CN111931445B (zh) * | 2020-10-09 | 2020-12-29 | 芯华章科技股份有限公司 | 用于调试逻辑系统设计的方法、仿真器及存储介质 |
US11704461B1 (en) * | 2022-01-04 | 2023-07-18 | International Business Machines Corporation | Dynamic control of coverage by a verification testbench |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6536024B1 (en) * | 2000-07-14 | 2003-03-18 | International Business Machines Corporation | Method for making integrated circuits having gated clock trees |
US20030188272A1 (en) * | 2002-03-27 | 2003-10-02 | Peter Korger | Synchronous assert module for hardware description language library |
US20030229870A1 (en) * | 2002-06-05 | 2003-12-11 | Mielke David James | Systems and methods for performing clock gating checks |
JP2012221119A (ja) * | 2011-04-06 | 2012-11-12 | Renesas Electronics Corp | 半導体集積回路の設計支援装置、設計方法、及び設計支援プログラム |
US20130151228A1 (en) * | 2010-08-24 | 2013-06-13 | Joonhwan YI | Power consumption prediction method for clock gating integrated circuit devices |
US20140325463A1 (en) * | 2013-04-30 | 2014-10-30 | Freescale Semiconductor, Inc. | Integrated Circuit Design Verification Through Forced Clock Glitches |
US20140325461A1 (en) * | 2013-04-30 | 2014-10-30 | Freescale Semiconductor, Inc. | Method and apparatus for generating gate-level activity data for use in clock gating efficiency analysis |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7958475B2 (en) * | 2007-09-28 | 2011-06-07 | Cadence Design Systems, Inc. | Synthesis of assertions from statements of power intent |
US8443344B1 (en) * | 2008-09-25 | 2013-05-14 | Xilinx, Inc. | Methods for identifying gating opportunities from a high-level language program and generating a hardware definition |
US8166444B2 (en) * | 2009-06-23 | 2012-04-24 | International Business Machines Corporations | Clock gating using abstraction refinement |
US8904255B2 (en) * | 2012-02-21 | 2014-12-02 | Lsi Corporation | Integrated circuit having clock gating circuitry responsive to scan shift control signal |
US9411912B1 (en) * | 2012-11-30 | 2016-08-09 | Cadence Design Systems, Inc. | Clock topology planning for reduced power consumption |
-
2016
- 2016-12-02 CN CN201611095503.7A patent/CN108153920A/zh not_active Withdrawn
- 2016-12-09 US US15/374,109 patent/US9934342B1/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6536024B1 (en) * | 2000-07-14 | 2003-03-18 | International Business Machines Corporation | Method for making integrated circuits having gated clock trees |
US20030188272A1 (en) * | 2002-03-27 | 2003-10-02 | Peter Korger | Synchronous assert module for hardware description language library |
US20030229870A1 (en) * | 2002-06-05 | 2003-12-11 | Mielke David James | Systems and methods for performing clock gating checks |
US20130151228A1 (en) * | 2010-08-24 | 2013-06-13 | Joonhwan YI | Power consumption prediction method for clock gating integrated circuit devices |
JP2012221119A (ja) * | 2011-04-06 | 2012-11-12 | Renesas Electronics Corp | 半導体集積回路の設計支援装置、設計方法、及び設計支援プログラム |
US20140325463A1 (en) * | 2013-04-30 | 2014-10-30 | Freescale Semiconductor, Inc. | Integrated Circuit Design Verification Through Forced Clock Glitches |
US20140325461A1 (en) * | 2013-04-30 | 2014-10-30 | Freescale Semiconductor, Inc. | Method and apparatus for generating gate-level activity data for use in clock gating efficiency analysis |
Non-Patent Citations (2)
Title |
---|
LETICIA BOLZANI等: "Enabling concurrent clock and power gating in an industrial design flow", 《2009 DESIGN,AUTOMATION & TEST IN EUROPE CONFERENCE & EXHIBITION》 * |
翟亮等: "基于门控时钟的片上网络路由单元低功耗设计", 《南京师范大学学报(工程技术版)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110346618A (zh) * | 2019-07-29 | 2019-10-18 | 天津大学 | 一种针对于多时钟域at-speed测试的OCC电路 |
CN113055099A (zh) * | 2019-12-26 | 2021-06-29 | 大唐移动通信设备有限公司 | 一种时钟门控模块的检测方法及装置 |
CN113722163A (zh) * | 2021-08-20 | 2021-11-30 | 浪潮电子信息产业股份有限公司 | 一种芯片验证方法、装置及芯片验证平台 |
CN113722163B (zh) * | 2021-08-20 | 2024-02-13 | 浪潮电子信息产业股份有限公司 | 一种芯片验证方法、装置及芯片验证平台 |
Also Published As
Publication number | Publication date |
---|---|
US9934342B1 (en) | 2018-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108153920A (zh) | 集成电路设计的rtl阶段期间的时钟门控验证 | |
US10325041B2 (en) | Circuit design analyzer | |
Mehta | ASIC/SoC functional design verification | |
TWI528199B (zh) | 用於從客製化類比/客製化數位/混合信號自動提取功率意圖之圖解設計系統與方法 | |
US20110054875A1 (en) | Design Specifications-Driven Platform for Analog, Mixed-signal, and Radio Frequency Verification | |
TWI479351B (zh) | 模擬電路設計之方法及設備以及電腦可讀取儲存媒體 | |
US8788993B2 (en) | Computer system for generating an integrated and unified view of IP-cores for hierarchical analysis of a system on chip (SoC) design | |
Bricaud | Reuse methodology manual: for system-on-a-chip designs | |
US7849430B2 (en) | Reverse donut model | |
US7139988B2 (en) | Modeling metastability in circuit design | |
US10846455B2 (en) | Automatic definition and extraction of functional coverage metric for emulation-based verification | |
US11461523B1 (en) | Glitch analysis and glitch power estimation system | |
US7254793B2 (en) | Latch modeling technique for formal verification | |
CN107862155A (zh) | 对芯片进行功能覆盖率模型验证的方法和装置 | |
Balasubramanian et al. | Solutions for mixed-signal soc verification using real number models | |
US11347917B2 (en) | Determining and verifying metastability in clock domain crossings | |
US10949589B2 (en) | Method for compression of emulation time line in presence of dynamic re-programming of clocks | |
US10878153B1 (en) | Apparatuses and methods for accurate and efficient clock domain and reset domain verification with register transfer level memory inference | |
US11475293B1 (en) | Learning-based toggle estimation | |
CN104981806B (zh) | 自动时钟树综合例外生成 | |
Cohen et al. | SystemVerilog Assertions Handbook:--for Formal and Dynamic Verification | |
Karnane et al. | Solutions for mixed-signal SoC verification | |
Prakash | Library characterization and static timing analysis of asynchronous circuits | |
US11816409B1 (en) | Strongly connected component (SCC) graph representation for interactive analysis of overlapping loops in emulation and prototyping | |
Edlund | Timing analysis and simulation for signal integrity engineers |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180612 |
|
WW01 | Invention patent application withdrawn after publication |