掌桥专利:专业的专利平台
掌桥专利
首页

用于检测集成电路的时钟定义的方法和装置

文献发布时间:2024-04-18 19:58:26


用于检测集成电路的时钟定义的方法和装置

技术领域

本公开的实施例涉及一种用于检测集成电路的时钟定义的方法、装置、电子设备和存储介质。

背景技术

在集成电路的设计过程中,利用特定工具对测试模块添加激励并检查输出结果是否符合设计意图的过程称为仿真,其包括前仿真和后仿真两个过程。前仿真又称为功能仿真,是针对寄存器传输级(Register Transfer Level,RTL)的仿真,寄存器传输级仿真是基于RTL文件进行仿真,对逻辑功能进行测试模拟,以验证电路的逻辑关系是否正确,仿真速度比较快。后仿真又称为时序仿真,是针对门级网表(Gate-level Netlist)的仿真,是将电路的门延迟参数和时钟延迟考虑在内后进行的仿真,其仿真结果可以判断时序是否正确。

作为仿真过程的输出文件,仿真波形记录了信号电平值随时间的跳变过程。从仿真波形中可以提取出时钟信号,时钟信号是一切时序逻辑的基础,用于决定逻辑单元中的状态何时更新,保证相关的电子组件得以同步运作。

为了确保电路中的各个元件(例如逻辑门、触发器、寄存器等)能够在同一时钟信号的控制下协调工作以实现预期的功能和性能,需要对时钟信号的周期、占空比、相位关系等参数和特性进行定义,从而确保电路在不同的条件下都能够正常工作。时钟信号的不正确定义可能导致电路故障、时序问题和性能下降。

发明内容

本公开至少一实施例提供一种用于检测集成电路的时钟定义的方法,所述方法包括:获取目标时钟在仿真波形中对应的第一时钟信号;计算所述第一时钟信号的第一参数信息;提取所述目标时钟在时钟定义中的第二参数信息;基于所述第一参数信息和所述第二参数信息的比较结果判断所述时钟定义的准确性。

例如,在本公开至少一实施例提供的方法中,所述获取目标时钟在仿真波形中对应的第一时钟信号,包括:基于所述目标时钟指定的电路对象检查所述仿真波形中是否存在所述目标时钟对应的时钟信号;如果存在,则将所述仿真波形中的所述电路对象的时钟信号作为所述第一时钟信号;如果不存在,则选取所述仿真波形中与所述电路对象的时钟信号等效的时钟信号作为所述第一时钟信号。

例如,在本公开至少一实施例提供的方法中,所述第一参数信息包括所述第一时钟信号的周期、高电平最小值和低电平最小值中的至少一项,对应于所述第一参数信息,所述第二参数信息包括所述目标时钟的定义周期、定义高电平占空比和定义低电平占空比中的至少一项。

例如,在本公开至少一实施例提供的方法中,所述基于所述第一参数信息和所述第二参数信息的比较结果判断所述时钟定义的准确性,包括:如果所述目标时钟的所述定义周期不等于所述第一时钟信号的所述周期,则判断所述时钟定义的所述定义周期错误;以及

如果所述目标时钟的所述定义周期等于所述第一时钟信号的所述周期,则判断所述时钟定义的所述定义周期正确,如果所述目标时钟的所述定义周期乘以所述定义高电平占空比不等于所述第一时钟信号的所述高电平最小值,则判断所述时钟定义的所述定义高电平占空比错误;或者如果所述目标时钟的所述定义周期乘以所述定义低电平占空比不等于所述第一时钟信号的所述低电平最小值,则判断所述时钟定义的所述定义低电平占空比错误。

例如,本公开至少一实施例提供的方法还包括:获取缩放下限和/或缩放上限,其中,所述缩放上限大于等于所述缩放下限,所述缩放下限大于0;其中,所述基于所述第一参数信息和所述第二参数信息的比较结果判断所述时钟定义的准确性,包括:如果所述目标时钟的所述定义周期乘以所述缩放下限大于所述第一时钟信号的所述周期,则判断所述定义周期的约束过松;以及

如果所述目标时钟的所述定义周期乘以所述缩放下限小于等于所述第一时钟信号的所述周期,且所述定义周期乘以所述缩放上限大于等于所述第一时钟信号的所述周期,则判断所述定义周期的约束合适,如果所述目标时钟的所述定义周期乘以所述缩放上限小于所述第一时钟信号的所述周期,则判断所述定义周期的约束过紧;如果所述目标时钟的所述定义周期乘以所述定义高电平占空比乘以所述缩放下限大于所述第一时钟信号的所述高电平最小值,则判断所述定义高电平占空比的约束过松;如果所述目标时钟的所述定义周期乘以所述定义高电平占空比乘以所述缩放上限小于所述第一时钟信号的所述高电平最小值,则判断所述定义高电平占空比的约束过紧;如果所述目标时钟的所述定义周期乘以所述定义低电平占空比乘以所述缩放下限大于所述第一时钟信号的所述低电平最小值,则判断所述定义低电平占空比的约束过松;如果所述目标时钟的所述定义周期乘以所述定义低电平占空比乘以所述缩放上限小于所述第一时钟信号的所述低电平最小值,则判断所述定义低电平占空比的约束过紧。

例如,在本公开至少一实施例提供的方法中,所述目标时钟包括源时钟。

例如,在本公开至少一实施例提供的方法中,所述时钟定义包括静态时序分析、综合、时钟树生成、布局布线或用户文本描述中的时钟定义。

例如,在本公开至少一实施例提供的方法中,所述仿真波形包括FPGA波形、示波器输出波形、加速器波形或基于用户文本描述得到的波形。

本公开至少一实施例还提供一种用于检测集成电路的时钟定义的装置,所述装置包括:获取单元,配置为获取目标时钟在仿真波形中对应的第一时钟信号;计算单元,配置为计算所述第一时钟信号的第一参数信息;提取单元,配置为提取所述目标时钟在时钟定义中的第二参数信息;判断单元,配置为基于所述第一参数信息和所述第二参数信息的比较结果判断所述时钟定义的准确性。

本公开至少一实施例还提供一种用于检测集成电路的时钟定义的方法,所述方法包括:获取目标生成时钟和目标主时钟在仿真波形中对应的生成时钟信号和主时钟信号,计算所述生成时钟信号与所述主时钟信号的第一关联参数信息;提取所述目标生成时钟和所述目标主时钟在时钟定义中的第二关联参数信息;基于所述第一关联参数信息和所述第二关联参数信息的比较结果判断所述时钟定义的准确性。

例如,在本公开至少一实施例提供的方法中,所述获取目标生成时钟和目标主时钟在仿真波形中对应的生成时钟信号和主时钟信号,包括:基于所述目标生成时钟和所述目标主时钟指定的电路对象检查所述仿真波形中是否存在所述目标生成时钟和所述目标主时钟对应的时钟信号;如果存在,则将所述仿真波形中的所述目标生成时钟指定的电路对象的时钟信号作为所述生成时钟信号,将所述仿真波形中的所述目标主时钟指定的电路对象的时钟信号作为所述主时钟信号;如果不存在,则选取所述仿真波形中与所述目标生成时钟指定的电路对象的时钟信号等效的时钟信号作为所述生成时钟信号,选取所述仿真波形中与所述目标主时钟指定的电路对象的时钟信号等效的时钟信号作为所述主时钟信号。

例如,在本公开至少一实施例提供的方法中,所述第一关联参数信息包括所述生成时钟信号相对于所述主时钟信号的分频系数或倍频系数、上升沿相位偏移、下降沿相位偏移、高电平对应关系和低电平对应关系中的至少一项,对应于所述第一关联参数信息,所述第二关联参数信息包括所述目标生成时钟相对于所述目标主时钟的定义分频系数或定义倍频系数、定义上升沿相位偏移、定义下降沿相位偏移、定义高电平对应关系和定义低电平对应关系中的至少一项。

例如,在本公开至少一实施例提供的方法中,所述基于所述第一关联参数信息和所述第二关联参数信息的比较结果判断所述时钟定义的准确性,包括:如果所述定义分频系数不等于所述分频系数,则判断所述时钟定义的所述定义分频系数错误;如果所述定义倍频系数不等于所述倍频系数,则判断所述时钟定义的所述定义倍频系数错误;如果所述上升沿相位偏移与所述定义上升沿相位偏移的比值减1的差的绝对值大于第一参数,则判断所述时钟定义的所述定义上升沿相位偏移错误,其中,所述第一参数大于等于0;如果所述下降沿相位偏移与所述定义下降沿相位偏移的比值减1的差的绝对值大于第二参数,则判断所述时钟定义的所述定义下降沿相位偏移错误,其中,所述第二参数大于等于0;如果所述定义高电平对应关系与所述高电平对应关系中的值没有一一对应,则判断所述目标生成时钟与所述目标主时钟的所述定义高电平对应关系错误;或者如果所述定义低电平对应关系与所述低电平对应关系中的值没有一一对应,则判断所述目标生成时钟与所述目标主时钟的所述定义低电平对应关系错误。

例如,在本公开至少一实施例提供的方法中,所述时钟定义包括静态时序分析、综合、时钟树生成、布局布线或用户文本描述中的时钟定义。

例如,在本公开至少一实施例提供的方法中,所述仿真波形包括FPGA波形、示波器输出波形、加速器波形或基于用户文本描述得到的波形。

本公开至少一实施例还提供一种用于检测集成电路的时钟定义的装置,该装置包括:获取单元,获取目标生成时钟和目标主时钟在仿真波形中对应的生成时钟信号和主时钟信号;计算单元,配置为计算所述生成时钟信号与所述主时钟信号的第一关联参数信息;提取单元,配置为提取所述目标生成时钟和所述目标主时钟在时钟定义中的第二关联参数信息;判断单元,配置为基于所述第一关联参数信息和所述第二关联参数信息的比较结果判断所述时钟定义的准确性。

本公开至少一实施例还提供一种电子设备,所述电子设备包括:存储器和处理器;所述存储器非瞬时性地存储有计算机可执行指令;所述处理器配置为运行所述计算机可执行指令,其中,所述计算机可执行指令被所述处理器运行时实现本公开任一实施例所述的方法。

本公开至少一实施例还提供一种非瞬时性计算机可读存储介质,其中,所述非瞬时性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现本公开任一实施例所述的方法。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。

图1为一种时钟树的结构示意图;

图2为本公开至少一实施例提供的用于检测时钟定义的检测方法的流程图;

图3为本公开至少一实施例提供的一种示例性源时钟仿真波形的示意图;

图4为本公开至少一实施例提供的用于检测时钟定义的检测方法的流程图;

图5为本公开至少一实施例提供的一种示例性的主时钟和分频生成时钟的波形图;

图6为本公开至少一实施例提供的一种示例性的主时钟和倍频生成时钟的波形图;

图7为本公开至少一实施例提供的存储介质的示意图;以及

图8为本公开至少一实施例提供的一种电子装置的示意图。

具体实施方式

为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。

除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。

下面通过几个具体的实施例对本公开进行说明。为了保持本公开实施例的以下说明清楚且简明,可省略已知功能和已知部(元)件的详细说明。当本公开实施例的任一部(元)件在一个以上的附图中出现时,该部(元)件在每个附图中由相同或类似的参考标号表示。

集成电路仿真是确保集成电路设计功能正确的一种重要方法,通过添加激励对数字电路实际的工作行为进行动态仿真以检查电路功能是否符合设计要求。主流的仿真工具都可以生成信号的跳变波形并将其保存为特定格式的波形文件,例如快速信号数据库(Fast Signal DataBase,FSDB)文件或值更改转储(Value Change Dump,VCD)文件等。时钟信号的仿真波形是对时钟的一种具象的描述(例如通过图形描述时钟),是对时钟实际工作情况的反映,通过波形可以提取源时钟的周期、占空比等关键信息,以及生成时钟与主时钟的相互关系等。

为了确保设计的正确性和可靠性,设计团队需要清晰而准确地定义时钟信息,也即,需要进行时钟定义。时钟定义是对时钟的一种抽象的描述(例如通过命令描述时钟)。定义时钟需要描述时钟波形和指定时钟名,例如需要定义时钟源、时钟名字、周期、边沿时间(上升沿和下降沿的时刻)等。源时钟(create-clock)用于描述时钟源,包括周期、占空比、时钟抖动等基本信息。生成时钟(generated-clock)是指由设计中已有的主时钟(master-clock)通过倍频、分频或者相移等操作(例如通过时钟树中分频器、倍频器、选择器、门控等特定时钟电路)后产生的新的时钟信号,例如由倍频电路生成的倍频时钟信号或由分频电路生成的分频时钟信号。在时钟树中,主时钟和生成时钟之间存在层次关系。

图1为一种时钟树的结构示意图。时钟树包括产生主时钟信号的源头(根)、时钟树分支和时钟树端点等。如图1所示,PLL的时钟输出端CLKO输出的时钟为源时钟CLK_R,倍频电路BUF的输出为生成时钟CLK_B,分频电路DIV的输出为生成时钟CLK_D。

生成时钟有一个关联的主时钟,该主时钟可以是源时钟或者是另一个生成时钟,例如时钟树上位于源时钟与生成时钟之间的其他生成时钟。例如,对于生成时钟CLK_B,其主时钟为CLK_R;对于生成时钟CLK_D,其主时钟为CLK_B。生成时钟的属性直接来自其主时钟,定义生成时钟时,不是指定生成时钟的周期或波形,而是描述如何从主时钟转换到生成时钟。例如,生成时钟和主时钟之间的关系可以是简单的分频、简单的倍频、分频和倍频的组合、移相或反相、改变占空比或这些关系的任意组合。

时钟定义在集成电路设计过程的多个阶段中都是至关重要的,通常需要在早期的设计阶段制定,并在后续的设计和验证过程中持续更新和维护,以确保整个设计流程中时钟要求得到满足。

本公开至少一些实施例中的时钟定义包括在电路设计阶段、物理设计阶段、验证和测试阶段等过程中的时钟定义,例如静态时序分析(Static Timing Analysis,STA)、综合、时钟树生成、布局布线或用户文本描述中的时钟定义。

不同阶段的时钟定义可能会有不同的重点和详细要求。

例如,静态时序分析是保证集成电路能够在特定的工作环境(电压、温度等)下稳定的工作的一种重要分析与签核方法,时钟信号的定义是否准确会直接影响静态时序分析结果是否可信。这是因为在静态时序分析中,工具和方法会使用这些时钟定义信息来评估电路的时序性能,确保信号在时钟边沿上采样和传播的正确性,并识别是否存在任何时序冲突或违反时序约束的情况。在静态时序分析中,时钟定义通常包括时钟频率(或周期)、占空比、生成时钟与主时钟的关系等。

例如,时钟定义在综合阶段也是非常重要的,因为其涉及到了将逻辑设计映射到实际的物理资源和时序约束上。时钟定义在综合阶段的目标是确保综合工具能够正确理解和优化电路的时序行为,以满足性能和时序约束要求。例如,在综合阶段中,还可以对时钟域、时序约束和时钟路径等进行定义。

例如,时钟树是用于分配时钟信号到整个集成电路的关键组成部分,在生成时钟树之前,必须清楚地定义时钟信号的性质和要求,例如时钟延迟和相位要求、时钟缓冲和时钟分频等。例如,在布局和布线阶段,时钟定义直接影响着时钟信号能否正确传输和满足时序要求,例如最小延迟、最大延迟、时钟抖动等。

时钟信号定义错误可能导致芯片良率下降,性能受损,工作环境受限甚至完全不工作等严重后果。例如,在集成电路设计的静态时序分析阶段,确保时钟定义的准确性是非常有必要的,如果仿真波形中时钟信号跳变所体现的源时钟的周期、占空比或者生成时钟与主时钟的关系等与时钟定义不匹配,往往意味着时钟定义与时钟实际的工作情形不一致,比如时钟定义过严、过松、占空比错误、生成时钟描述错误等,从而导致时序分析结果错误。另外,静态时序分析对时钟的定义通常是从时序收敛角度对时钟实际工作行为的抽象表达,其所描述的时钟波形与实际仿真波形往往存在预期的差异,例如时钟定义往往对时钟周期进行特定缩放以确保更高要求的签核保准等,因此仿真波形并非时钟定义所描述波形的简单重复。

目前,例如静态时序分析等工具对于时钟信号定义的准确性检查能力非常有限。例如,静态时序分析只能基于电路连接进行连通性检查以及进行简单的电路逻辑功能检查(比如时钟反向等),无法确定诸如时钟周期、占空比、生成时钟与主时钟的相互关系等信息,因此这些信息的准确性往往需要设计者逐一检查确认。

针对上述问题,本公开的至少一实施例提供了用于检测集成电路的时钟定义的方法,能够通过从仿真波形中获取的时钟周期、占空比、主频时钟与分频时钟的相互关系等信息对时钟定义的正确性进行检查,从而确保时钟定义与设计意图相匹配。

如上所述,时钟定义包括两种类型,一种是定义时钟本身的周期或波形,另一种是定义从主时钟转换到生成时钟的转换关系。对应于这两种类型的时钟定义,本公开的一些实施例提供了两种检测方法来分别检测单个时钟(本公开中的“目标时钟”)的时钟定义和两个时钟(本公开中的“目标主时钟和目标生成时钟”)之间的关系的时钟定义。在实际应用中,例如可以先采用第一种检测方法检测针对一个目标时钟的时钟定义,然后采用第二种检测方法检测针对该目标时钟及其生成时钟之间的关系的时钟定义,如此依此类推,就可以全覆盖地检测整个时钟树中的全部时钟和时钟之间关系的定义是否正确。

下面结合附图分别对这两种检测方法进行详细说明。

本公开的至少一个实施例提供了一种用于检测集成电路的时钟定义的检测方法,可以检测目标时钟的定义是否准确。图2示出了该检测方法的流程图。如图2所示,该检测方法包括如下步骤S110~S140:

步骤S110:获取目标时钟在仿真波形中对应的第一时钟信号;

步骤S120:计算第一时钟信号的第一参数信息;

步骤S130:提取目标时钟在时钟定义中的第二参数信息;

步骤S140:基于第一参数信息和第二参数信息的比较结果判断时钟定义的准确性。

例如,在本公开的一些实施例中,可以从FPGA波形、示波器输出波形、加速器波形或基于用户文本描述得到的波形中获取目标时钟的仿真波形,本公开的实施例对仿真波形的获取途径和文件载体不作限制。

例如,在本公开实施例的至少一个示例中,步骤S110,即获取目标时钟在仿真波形中对应的第一时钟信号,其一具体示例可以包括:基于目标时钟指定的电路对象检查仿真波形中是否存在目标时钟对应的时钟信号;如果存在,则将仿真波形中的电路对象的时钟信号作为第一时钟信号;如果不存在,则选取仿真波形中与电路对象的时钟信号等效的时钟信号作为第一时钟信号。

例如,在获取目标时钟在仿真波形中对应的第一时钟信号时,可能存在仿真波形中没有该目标时钟的仿真波形的情况,这种情况通常是因为在做仿真的时候,没有把所有的电路对象或时钟树分叉都一一仿真出来,导致该电路对象相当于一个黑盒子,那么如果对该电路对象的时钟进行了定义,并且需要检查该时钟定义的准确性时,就可能无法直接找到其对应的仿真波形,也即本公开的实施例中的“第一时钟信号”。

在这种情况下,可以根据功能描述从仿真波形中寻找与该电路对象的时钟信号等效的时钟信号作为第一时钟信号。

例如,在本公开实施例的至少一个示例中,根据功能描述选取仿真波形中与电路对象的时钟信号等效的时钟信号作为第一时钟信号,其一具体示例可以包括:获取目标时钟的功能描述信息,根据功能描述信息获取等效的时钟信号作为第一时钟信号。例如,可以从已有的仿真波形中寻找符合该功能描述信息的时钟信号作为等效的时钟信号。也就是说,即使找到的时钟信号的电路对象与目标时钟的电路对象并无直接或间接关联,也可以将其作为目标时钟在仿真波形中的“第一时钟信号”。

例如,在本公开实施例的至少一个示例中,根据功能描述选取仿真波形中与电路对象的时钟信号等效的时钟信号作为第一时钟信号,其一具体示例可以包括:获取目标时钟的功能描述信息,根据功能描述信息选取与目标时钟等效的时钟,将该等效的时钟所指定的等效电路对象的时钟信号作为第一时钟信号。例如,对于时钟树上的从同一节点分出的两个时钟树分叉A和B来说,如果A的仿真波形不存在或不可得,但B的仿真波形存在或者可以被探测出来,并且A和B的功能描述是等效的,那么可以用B的仿真波形来代替A的仿真波形,提取出仿真波形中的时钟信息,从而进一步与A的时钟定义进行比对,以验证A的时钟定义的准确性。

因此,通过该方法可以灵活地应对不同的设计场景,提高其在复杂的集成电路设计中的适用性,确保对各个时钟定义都能够全面地进行验证。

在本公开的上述至少一实施例中,目标时钟包括时钟树中的任意时钟,例如源时钟或其他生成时钟,可以根据需要确定待检测的时钟定义所针对的时钟为目标时钟,本公开的实施例对目标时钟的类型不作限制。

在本公开以下的描述中,以源时钟为例详细说明检测目标时钟定义的方法。但本领域技术人员应当知道,该方法同样适用于检测时钟树中的其他时钟的定义。

例如,在本公开实施例的至少一个示例中,第一参数信息包括第一时钟信号的周期、高电平最小值和低电平最小值中的至少一项,对应于第一参数信息,第二参数信息包括源时钟的定义周期、定义高电平占空比和定义低电平占空比中的至少一项。

这里,获取的第一参数信息应当对应于(或多于)需要验证的第二参数信息。例如,如果需要对源时钟的周期和高电平占空比进行检测,则至少应该获取第一时钟信号的周期和高电平最小值。

需要说明的是,在芯片的制造过程中不同元件之间存在差异,除此之外,元件的实际工作情况也会因PVT条件(电压、温度、压力等条件)而不同,例如,这些工作情况包括最好情况(best case)、正常情况(typical case)和最差情况(worst case)。其中,最差情况是指芯片工作在极限条件下。为了保证芯片在某些极端条件下仍能进行工作,通常需要对芯片在最差情况下的时钟定义进行检查,也就是说,需要获取时钟信号中的周期和高低电平的最小值。然而这并不作为对本公开的限制,实际上,也可以根据其他的工作情况选择获取时钟信号中的高低电平的平均值或最大值等。

图3为本公开至少一实施例提供的一种示例性源时钟仿真波形的示意图。该仿真波形例如可以是图1所示的时钟树中的源时钟CLK_R的第一时钟信号。

例如,在步骤S120,计算第一时钟信号的第一参数信息包括获取第一时钟信号在某一时间段(例如1毫秒)内的波形,提取这段时间内波形中的所有高电平时长THi和所有低电平时长TLi,并据此计算得出第一时钟信号的周期ST、高电平最小时长STh、低电平最小时长STl等信息。

例如,STh=min{THi},其中min{THi}为所有高电平时长最小值。

例如,STl=min{TLi},其中min{TLi}为所有低电平时长最小值。

例如,ST=min{THj+TLj},THj和TLj是连续出现的一个高电平与一个低电平。

例如,如图3所示,对于选取的16纳秒(ns)内的第一时钟信号的波形来说,计算得出的源时钟CLK_R的高电平最小值STh为1ns,低电平最小值STl为1ns,周期ST为2ns。

例如,在步骤S130,提取目标时钟在时钟定义中的第二参数信息包括获取定义中源时钟CLK_R的定义周期T、定义高电平占空比h%和定义低电平占空比l%。

例如,在本公开实施例的至少一个示例中,步骤S140,即基于第一参数信息和第二参数信息的比较结果判断时钟定义的准确性,其一具体示例可以包括:判断时钟定义的定义周期是否正确。

例如,如果源时钟的定义周期T不等于第一时钟信号的周期ST,也即,T≠ST,则判断时钟定义的定义周期T错误;如果源时钟的定义周期T等于第一时钟信号的周期ST,也即,T=ST,则判断时钟定义的定义周期T正确。

例如,在该示例中,该检测方法还可以包括:判断时钟定义的定义高电平占空比和/或定义低电平占空比是否正确。

假如已经确定定义周期T是正确的,那么如果源时钟的定义周期T乘以定义高电平占空比h%不等于第一时钟信号的高电平最小值STh,也即,T*h%≠STH,则判断时钟定义的定义高电平占空比h%错误;如果源时钟的定义周期T乘以定义低电平占空比l%不等于第一时钟信号的低电平最小值STl,也即,T*l%≠STl,则判断时钟定义的定义低电平占空比l%错误。

在集成电路的设计过程中,为了保障芯片制造的可靠性更高,通常会设置缩放因子来让设计更加严格。例如,在本公开上述至少一实施例的至少一个示例中,该检测方法还包括:获取缩放下限K和/或缩放上限L,其中,缩放上限L大于缩放下限K,缩放下限K大于0。

在项目设计中,缩放下限K和缩放上限L用于限制定义周期相对第一时钟信号的周期(波形周期)的缩放下限和上限,这里,缩放下限可以理解为波形周期除以定义周期的最小值,缩放上限可以理解为波形周期除以定义周期的最大值,缩放下限K和缩放上限L均大于0。例如,在项目设计中,如果仿真波形的周期比实际波形的周期小,则缩放下限K和缩放上限L可以被分别设置为0.8和0.9;如果仿真波形的周期比实际波形的周期大,则缩放下限K和缩放上限L可以被分别设置为1.1和1.2。缩放下限K过小,时钟定义周期相对于第一时钟信号的周期过大,不能保证性能;缩放上限L过大,时钟定义周期相对于第一时钟信号的周期过小,会造成资源浪费。

例如,在该示例中,如果源时钟的定义周期T乘以缩放下限K大于第一时钟信号的周期ST,也即,T*K>ST,则判断定义周期T的约束过松;如果源时钟的定义周期T乘以缩放上限L小于第一时钟信号的周期ST,也即,T*L

如果源时钟的定义周期T乘以缩放下限K小于等于第一时钟信号的周期ST,且定义周期T乘以缩放上限L大于等于第一时钟信号的周期ST,也即,T*K≤ST且T*L≥ST,则判断定义周期的约束合适。

假如已经确定定义周期T是合适的,那么如果源时钟的定义周期T乘以定义高电平占空比h%乘以缩放下限K大于第一时钟信号的高电平最小值STh,也即,T*h%*K>STh,则判断定义高电平占空比h%的约束过松。如果源时钟的定义周期T乘以定义高电平占空比h%乘以缩放上限L小于第一时钟信号的高电平最小值STh,也即,T*h%*L

假如已经确定定义周期T是合适的,那么如果源时钟的定义周期T乘以定义低电平占空比l%乘以缩放下限K大于第一时钟信号的低电平最小值STl,也即,T*l%*K>STl,则判断定义低电平占空比l%的约束过松;如果源时钟的定义周期T乘以定义低电平占空比l%乘以缩放上限L小于第一时钟信号的低电平最小值STl,也即,T*l%*L

例如,在判断时钟定义存在错误后,可以报告出来,从而辅助设计者及时修改定义周期、定义高低电平占空比或缩放上下限。

上述检测方法中的一些步骤的顺序可以根据实际应用需要进行调整(例如,步骤S110~S130的顺序不限于上述顺序,可以不分先后地进行调整),某些步骤可以省略以简化实施过程(例如,可以不检查仿真波形中是否有等效的时钟信号),某些步骤可以在实施时合并为一个步骤或者拆分为多个子步骤等,本公开的实施例对此不作限制。

对应于上述检测方法,本公开的至少一实施例还提供了一种用于检测集成电路的时钟定义的检测装置,该检测装置包括:

获取单元,配置为获取目标时钟在仿真波形中对应的第一时钟信号;

计算单元,配置为计算第一时钟信号的第一参数信息;

提取单元,配置为提取目标时钟在时钟定义中的第二参数信息;

判断单元,配置为基于第一参数信息和第二参数信息的比较结果判断时钟定义的准确性。

例如,在至少一个实施例的预取装置中,对于获取模块,获取目标时钟在仿真波形中对应的第一时钟信号,包括:基于源时钟指定的电路对象检查仿真波形中是否存在源时钟对应的时钟信号;如果存在,则将仿真波形中的电路对象的时钟信号作为第一时钟信号;如果不存在,则选取仿真波形中与电路对象的时钟信号等效的时钟信号作为第一时钟信号。

本公开上述实施例提供的用于检测集成电路的时钟定义的方法和装置能够检查例如源时钟等目标时钟的定义的周期、占空比等信息是否正确,操作简单,检查速度快,能够在项目早期阶段确认时钟的正确性,保证分析结果符合设计预期,有益于项目周期,也可以作为芯片流片的签发(sign-off)辅助,避免出现因两者不一致导致的约束错误或者功能错误,降低流片风险。

本公开的至少一个实施例还提供了一种用于检测集成电路的时钟定义的检测方法,可以检测主时钟和生成时钟之间的关系定义是否准确。图4示出了该检测方法的流程图。如图4所示,该检测方法包括如下步骤210~240:

步骤S210:获取目标生成时钟和目标主时钟在仿真波形中对应的生成时钟信号和主时钟信号;

步骤S220:计算生成时钟信号与主时钟信号的第一关联参数信息;

步骤S230:提取目标生成时钟和目标主时钟在时钟定义中的第二关联参数信息;

步骤S240:基于第一关联参数信息和第二关联参数信息的比较结果判断时钟定义的准确性。

例如,在本公开的一些实施例中,可以从FPGA波形、示波器输出波形、加速器波形或基于用户文本描述得到的波形中获取主时钟和生成时钟的仿真波形,本公开的实施例对仿真波形的获取途径和文件载体不作限制。

例如,在本公开实施例的至少一个示例中,步骤S210,即获取目标生成时钟和目标主时钟在仿真波形中对应的生成时钟信号和主时钟信号,其一具体示例包括:基于目标生成时钟和目标主时钟指定的电路对象检查仿真波形中是否存在目标生成时钟和目标主时钟对应的时钟信号;如果存在,则将仿真波形中的目标生成时钟指定的电路对象的时钟信号作为生成时钟信号,将仿真波形中的目标主时钟指定的电路对象的时钟信号作为主时钟信号;如果不存在,则选取仿真波形中与目标生成时钟指定的电路对象的时钟信号等效的时钟信号作为生成时钟信号,选取仿真波形中与目标主时钟指定的电路对象的时钟信号等效的时钟信号作为主时钟信号。关于如何获取等效的时钟信号可以参考上文的相关描述,此处不再赘述。

在本公开的实施例中,目标主时钟和目标生成时钟可以是时钟树中的任意两个关联的时钟,例如图1所示的主时钟CLK_R和生成时钟CLK_B,或者是主时钟CLK_B和生成时钟CLK_D。

例如,在本公开实施例的至少一个示例中,第一关联参数信息包括生成时钟信号相对于主时钟信号的分频系数DIV_w或倍频系数MUT_w、上升沿相位偏移Sr_w、下降沿相位偏移Sf_w、高电平对应关系Vh_w{}和低电平对应关系Vl_w{}中的至少一项。

例如,在步骤S220,首先可以获取生成时钟信号的周期及其主时钟信号的周期,然后计算分频系数或倍频系数。如果生成时钟信号的周期大于主时钟信号的周期,则生成时钟描述为分频时钟,如果生成时钟信号的周期小于主时钟信号的周期,则生成时钟描述为倍频时钟。

在本公开至少一实施例中,如果生成时钟为分频时钟,则分频系数DIV_w为生成时钟信号的周期GT1与主时钟信号的周期MT1的比值。

例如,可以根据生成时钟信号的上升沿与相邻主时钟信号的边沿跳变时刻,计算上升沿相位偏移Sr_w1。例如,生成时钟信号的某个上升沿发生时刻为gt_r,该时刻后主时钟信号的第一个跳变沿发生时刻为gt_r+Δr1,Δr1≥0,则上升沿相位偏移Sr_w1=Δr1/GT1。

例如,可以根据生成时钟信号的下降沿与相邻主时钟信号的边沿跳变时刻,计算下降沿相位偏移Sf_w1。例如,生成时钟信号的某个下降沿发生时刻为gt_f,该时刻后主时钟信号的第一个跳变沿发生时刻为gt_f+Δf1,Δf1≥0,则下降沿相位偏移Sf_w1=Δf1/GT1。

例如,可以根据生成时钟信号的高电平期间内对应的主时钟信号的电平跳变顺序得出高电平对应关系Vh_w1{}。例如,从gt_r+Δr1开始到gt_r+Δr1+GTh为止的时间窗内,主时钟信号依次跳变的电平值记录为Vh_w1{}={0,1,0,1…},或者Vh_w1{}={1,0,1,0,…},其中GTh为高电平时长。

例如,可以根据生成时钟信号的低电平期间内对应的主时钟信号的电平跳变顺序得出低电平对应关系Vl_w1{}。例如,从gt_f+Δf1开始到gt_f+Δf1+GTl为止的时间窗内,主时钟信号依次跳变的电平值记录为Vl_w1{}={0,1,0,1…},或者Vl_w1{}={1,0,1,0,…},其中GTl为低电平时长。

图5为本公开至少一实施例提供的一种示例性的主时钟和分频生成时钟的波形图,主时钟和生成时钟之间的关系是简单的分频。如图5所示,主时钟信号1的周期MT1为2ns,生成时钟信号1的周期GT1为4ns,DIV_w=GT1/MT1=2。

例如,选择gt_r=0ns时刻,在gt_r后Δr=0的时刻主时钟信号1跳变,由此计算得到Sr_w1=0;GTh1=2ns,则从0ns开始到2ns时间内,主时钟信号1依次跳变电平为1、0,由此计算得到的高电平对应关系Vh_w1{}={1,0}。

例如,选择gt_f=2ns时刻,在gt_f后Δf=0的时刻主时钟信号1跳变,由此计算得到Sf_w1=0;GTl1=2ns,则从2ns开始到4ns时间内,主时钟信号1依次跳变电平为1、0,由此计算得到的低电平对应关系Vl_w1{}={1,0}。

在本公开至少一实施例中,如果生成时钟为倍频时钟,则倍频系数MUT_w为主时钟信号的周期MT2与生成时钟信号的周期GT2的比值。

例如,可以根据主时钟信号的上升沿与相邻生成时钟信号的边沿跳变时刻,计算上升沿相位偏移Sr_w2。例如,主时钟某个上升沿发生时刻为mt_r,该时刻后生成时钟信号的第一个跳变沿发生时刻为mt_r+Δr2,Δr2≥0,则上升沿相位偏移Sr_w2=Δr2/GT2。

例如,可以根据主时钟信号的下降沿与相邻生成时钟信号的边沿跳变时刻,计算下降沿相位偏移Sf_w2。例如,主时钟某个下降沿发生时刻为mt_f,该时刻后生成时钟信号的第一个跳变沿发生时刻为mt_f+Δf2,Δf2≥0,则下降沿相位偏移Sf_w2=Δf2/GT2。

例如,可以根据主时钟信号的高电平期间内对应的生成时钟信号的电平跳变顺序得出高电平对应关系Vh_w2{}。例如,从mt_r+Δr2开始到mt_r+Δr2+MTh为止的时间窗内,生成时钟信号依次跳变的电平值记录为Vh_w2{}={0,1,0,1…},或者Vr_w2{}={1,0,1,0,…},其中MTh为高电平时长。

例如,可以根据主时钟信号的低电平期间内对应的生成时钟信号的电平跳变顺序得出低电平对应关系Vl_w2{}。例如,从mt_f+Δf2开始到mt_f+Δf2+MTl为止的时间窗内,生成时钟信号依次跳变的电平值记录为Vl_w2{}={0,1,0,1…},或者Vl_w2{}={1,0,1,0,…},其中MTl为低电平时长。

图6为本公开至少一实施例提供的一种示例性的主时钟和倍频生成时钟的波形图,主时钟和生成时钟之间的关系是倍频和反相的组合。如图6所示,主时钟信号2的周期MT2为4ns,生成时钟信号2的周期GT2为2ns,MUT_w=MT2/GT2=2。

例如,选择mt_r=0ns时刻,在mt_r后的Δr2=0时刻生成时钟信号2跳变,由此计算得到Sr_w2=0;MTh2=2ns,则从0ns开始到2ns时间内,生成时钟信号2依次跳变电平为0、1,由此计算得到的高电平对应关系Vh_w2{}={0,1}。

例如,选择mt_f=2ns时刻,在mt_f后的Δf2=0时刻生成时钟信号2跳变,由此计算得到Sf_w2=0;MTl2=2ns,则从2ns开始到4ns时间内,生成时钟信号2依次跳变电平为0、1,由此计算得到的低电平对应关系Vl_w2{}={0,1}。

在本公开至少一实施例中,如果主时钟信号的周期等于生成时钟信号的周期,则生成时钟既可以描述为DIV_w为1的分频时钟,也可以描述为MUT_w为1的倍频时钟。

例如,在本公开实施例的至少一个示例中,对应于第一关联参数信息,第二关联参数信息包括目标生成时钟相对于目标主时钟的定义分频系数DIV_d或定义倍频系数MUT_d、定义上升沿相位偏移Sr_d、定义下降沿相位偏移Sf_d、定义高电平对应关系Vh_d{}和定义低电平对应关系Vl_d{}中的至少一项。

例如,在步骤S230,可以根据时钟定义提取定义分频系数DIV_d或者定义倍频系数MUT_d。例如,可以根据目标生成时钟的定义逐级找到对应的源时钟,然后根据源时钟的时钟周期反向计算,得出目标生成时钟的定义周期gT以及与其对应的目标主时钟的定义周期mT。例如,可以根据时钟定义,提取定义上升沿相位偏移Sr_d为上升沿相位偏移绝对值与时钟周期gT的比值;提取定义下降沿相位偏移Sf_d为下降沿相位偏移绝对值与时钟周期gT的比值。

例如,如果生成时钟被定义为分频时钟,则根据时钟定义的描述可以推算出目标生成时钟的高电平期间的目标主时钟的电平跳变顺序,也即定义高电平对应关系Vh_d1{},以及目标生成时钟的低电平期间的目标主时钟的电平跳变顺序,也即定义低电平对应关系Vl_d2{};如果目标生成时钟被定义为倍频时钟,则根据时钟定义的描述推算出目标主时钟高电平期间的目标生成时钟的电平跳变顺序,也即定义高电平对应关系Vh_d1{},以及根据时钟定义的描述推算出目标主时钟低电平期间的目标生成时钟的电平跳变顺序,也即定义低电平对应关系Vl_d2{}。

例如,在本公开实施例的至少一个示例中,步骤S240,即基于第一关联参数信息和第二关联参数信息的比较结果判断时钟定义的准确性,其一具体示例包括:

如果定义分频系数DIV_d不等于分频系数DIV_w,也即,DIV_w≠DIV_d,则判断时钟定义的定义分频系数DIV_d错误。

如果定义倍频系数MUT_d不等于倍频系数MUT_w,也即,MUT_w≠MUT_d,则判断时钟定义的定义倍频系数MUT_d错误。

如果上升沿相位偏移Sr_w与定义上升沿相位偏移Sr_d的比值减1的差的绝对值大于第一参数r,也即,|(Sr_w/Sr_d)-1|>r,则判断时钟定义的定义上升沿相位偏移Sr_w错误,其中,第一参数r大于等于0,第一参数r可以根据需求进行设置以提供一定的裕量。

如果下降沿相位偏移Sf_w与定义下降沿相位偏移Sf_d的比值减1的差的绝对值大于第二参数f,也即,|(Sf_w/Sf_d)-1|>f,则判断时钟定义的定义下降沿相位偏移Sr_w错误,其中,第二参数f大于等于0,第二参数f可以根据需求进行设置以提供一定的裕量。

如果定义高电平对应关系Vh_d{}与高电平对应关系Vh_w{}中的值没有一一对应,则判断目标生成时钟与目标主时钟的定义高电平对应关系Vh_d{}错误。例如,Vh_d{}={1,0},而Vh_w{}={0,1}。

如果定义低电平对应关系Vl_d{}与低电平对应关系Vl_w{}中的值没有一一对应,则判断目标生成时钟与目标主时钟的定义低电平对应关系Vl_d{}错误。例如,Vl_d{}={1,0},而Vl_w{}={0,1}。

上述方法中的一些步骤的顺序可以根据实际应用需要进行调整(例如,步骤S210~S230的顺序不限于上述顺序,可以不分先后地进行调整),某些步骤可以省略以简化实施过程(例如,可以不检查仿真波形中是否有等效的时钟信号),某些步骤可以在实施时合并为一个步骤或者拆分为多个子步骤等,本公开的实施例对此不作限制。

对应于上述检测方法,本公开的至少一实施例还提供了一种用于检测集成电路的时钟定义的检测装置,该检测装置包括:

获取单元,获取目标生成时钟和目标主时钟在仿真波形中对应的生成时钟信号和主时钟信号;

计算单元,配置为计算生成时钟信号与主时钟信号的第一关联参数信息;

提取单元,配置为提取目标生成时钟和目标主时钟在时钟定义中的第二关联参数信息;

判断单元,配置为基于第一关联参数信息和第二关联参数信息的比较结果判断时钟定义的准确性。

例如,在至少一个实施例的预取装置中,对于获取模块,获取目标生成时钟和目标主时钟在仿真波形中对应的生成时钟信号和主时钟信号,包括:基于目标生成时钟和目标主时钟指定的电路对象检查仿真波形中是否存在目标生成时钟和目标主时钟对应的时钟信号;如果存在,则将仿真波形中的目标生成时钟指定的电路对象的时钟信号作为生成时钟信号,将仿真波形中的目标主时钟指定的电路对象的时钟信号作为主时钟信号;如果不存在,则选取仿真波形中与目标生成时钟指定的电路对象的时钟信号等效的时钟信号作为生成时钟信号,选取仿真波形中与目标主时钟指定的电路对象的时钟信号等效的时钟信号作为主时钟信号。

本公开上述实施例提供的用于检测集成电路的时钟定义的方法和装置能够检查生成时钟与主时钟的相互关系是否正确,操作简单,检查速度快,能够在项目早期阶段确认时钟的正确性,保证分析结果符合设计预期,有益于项目周期,也可以作为芯片流片的sign-off辅助,避免出现因两者不一致导致的约束错误或者功能错误,降低流片风险。

本公开的至少一实施例还提供了一种电子设备,该电子设备包括存储器和处理器,存储器非瞬时性地存储有计算机可执行指令,处理器配置为运行计算机可执行指令,其中,计算机可执行指令被处理器运行时实现如上述任一实施例的检测方法。

本公开的至少一实施例还提供了一种非瞬时性计算机可读存储介质的示意图。例如,如图7所示,在存储介质700上可以非暂时性地存储一个或多个计算机可执行指令701。例如,当计算机可执行指令701由处理器执行时可以执行根据上文所述的检测方法中的一个或多个步骤。

例如,上述非瞬时可读存储介质实现为存储器,例如易失性存储器和/或非易失性存储器。上述实施例中存储器可以为易失性存储器,例如可以包括随机存取存储器(RAM)和/或高速缓存等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。存储器中还可以存储各种应用程序(代码、指令)和数据以及应用程序使用和/或产生的各种数据等。

本公开的一些实施例还提供了一种电子装置,该电子装置包括上述任一实施例的检测装置或者可执行上述任一实施例的检测方法。

图8为本公开至少一个实施例提供的一种电子装置的示意框图。本公开实施例中的电子装置可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图8示出的电子装置1000仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

例如,如图8所示,在一些示例中,电子装置1000包括处理装置(例如中央处理器、图形处理器等)1001,该处理装置可以包括上述任一实施例的检测装置,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储装置1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。在RAM 1003中,还存储有计算机系统操作所需的各种程序和数据。处理器1001、ROM 1002以及RAM 1003通过总线1004被此相连。输入/输出(I/O)接口1005也连接至总线1004。

例如,以下部件可以连接至I/O接口1005:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1006;包括诸如液晶显示器(LCD)、扬声器、振动器等的输出装置1007;包括例如磁带、硬盘等的存储装置1008;例如还可以包括诸如LAN卡、调制解调器等的网络接口卡的通信装置1009。通信装置1009可以允许电子装置1000与其他设备进行无线或有线通信以交换数据,经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸存储介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储装置1008。虽然图8示出了包括各种装置的电子装置1000,但是应理解的是,并不要求实施或包括所有示出的装置。可以替代地实施或包括更多或更少的装置。

例如,该电子装置1000还可以进一步包括外设接口(图中未示出)等。该外设接口可以为各种类型的接口,例如为USB接口、闪电(lighting)接口等。该通信装置1009可以通过无线通信来与网络和其他设备进行通信,该网络例如为因特网、内部网和/或诸如蜂窝电话网络之类的无线网络、无线局域网(LAN)和/或城域网(MAN)。无线通信可以使用多种通信标准、协议和技术中的任何一种,包括但不局限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi(例如基于IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE 802.11n标准)、基于因特网协议的语音传输(VoIP)、Wi-MAX,用于电子邮件、即时消息传递和/或短消息服务(SMS)的协议,或任何其他合适的通信协议。

例如,电子装置1000可以为手机、平板电脑、笔记本电脑、电子书、游戏机、电视机、数码相框、导航仪等任何设备,也可以为任意的数据处理装置及硬件的组合,本公开的实施例对此不作限制。

虽然上文中已经用一般性说明及具体实施方式,对本公开作了详尽的描述,但在本公开实施例基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本公开精神的基础上所做的这些修改或改进,均属于本公开要求保护的范围。

对于本公开,还有以下几点需要说明:

(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。

(2)为了清晰起见,在用于描述本公开的实施例的附图中,层或区域的厚度被放大或缩小,即这些附图并非按照实际的比例绘制。

(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。

以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 用于集成电路板的定位装置和用于包括这种定位装置的集成电路板的检测装置
  • 一种构建用于集成电路设计的时钟树的方法及装置
  • 集成电路中时钟树布局流程方法和时钟树偏差补偿装置
  • 用于片上系统的时钟偏差检测方法和装置
  • 用于检测爆管检测装置的压降速率检测装置及检测方法
  • 用于构建用于集成电路设计的时钟树的方法和装置
  • 用于构建用于集成电路设计的时钟树的方法和装置
技术分类

06120116491564