检测集成电路用时序路径中异步路径的方法、装置与流程

文档序号:17944635发布日期:2019-06-18 23:27阅读:854来源:国知局
检测集成电路用时序路径中异步路径的方法、装置与流程

本发明涉及集成电路设计的技术领域,尤其涉及一种检测集成电路用时序路径中异步路径的方法、装置及电子装置、非易失性存储介质。



背景技术:

在集成电路设计开发过程中,需要对所有的时序路径进行约束,例如,在片上系统(英文全称systemonchip,简称soc)类集成电路的开发过程中,需要对所有的时序路径进行约束,然后通过静态时序分析工具(例如primetime)检查路径是否满足时序要求。

发明人在实现本发明的过程中发现:会有大量的时序路径违例,经确认这其中有许多违例是异步路径。而实际上,真正的异步路径是不需要作时序分析的,通常在设计时,会通过两级触发器作专门的异步数据传输处理,以避免亚稳态的出现。所以在用静态时序分析工具作时序分析前,需要在约束文件(英文全称synopsysdesignconstraints,简称sdc)中,指明这些路径是异步路径,以避免静态时序分析工具作无畏的时序分析与优化。

但是在sdc文件中,目前对异步路径的方式是:如果检查出了时序违例,再经过检查发现是异步路径,然后在sdc文件中补充对于这些路径的异步声明,然后重新进行静态时序分析(英文全称statictiminganalysis,简称sta)分析。由于目前的soc设计规模不断加大,复杂度不断提升,导致时序路径的约束复杂度也不断提升,所以设计人员很难快速地将所有的异步路径都完全声明。

由于目前这种补充声明异步时序路径的方式,是一种被动的方式;而且这是个耗时很长的过程,尤其是在项目时间紧张的情况下,会影响项目的进度。另外,有些异步路径并没有时序违例,所以从报告中我们也不会注意到这些路径,然而这些路径确也需要耗费静态时序分析工具去做时序优化,增加了一些不必要的逻辑,仅以耗费项目开发的时间。



技术实现要素:

为了解决现有技术中缺少能快速检测集成电路用时序路径中异步路径的问题,本发明提供一种检测集成电路用时序路径中异步路径的方法、装置及电子装置、非易失性存储介质,能够通过遍历查询的方式,快速识别出异步时序路径。进一步地,便于在集成电路设计开发过程中,快速、准确分析出异步路径,这样对时序路径进行约束时,能够更准确地检查路径是否满足时序要求。

为了实现上述目的,本发明提供的技术方案包括:

本发明一方面提供一种检测集成电路用时序路径中异步路径的方法,其特征在于,包括:

遍历待检测集成电路设计中的寄存器,

获取任一寄存器的数据端对应的时序路径属性信息,基于所述时序路径属性信息,判断当前寄存器的数据端对应的时序路径是否属于异步路径,并对属于异步路径的时序路径进行标识;

其中,所述时序路径属性信息包括起点时钟、终点时钟,判断所述当前寄存器的数据端对应的时序路径是否属于异步路径包括:如果判断所述起点时钟的值不等于所述终点时钟的值,且当前寄存器的数据端对应的时序路径不满足时序约束条件;则将所述当前寄存器的数据端对应的时序路径判断为异步路径。

本发明实施例优选的实施方式中,上述方法还包括:基于所述寄存器的数据端的类型创建寄存器集合;并按照所述寄存器的数据端的类型,依次遍历待检测集成电路设计中的寄存器。

本发明实施例进一步优选的实施方式中,所述寄存器的种类包括触发器、锁存器、时钟门控单元,所述寄存器的数据端的类型包括a或b、d、e,所述寄存器集合包括数据端的类型为a或b、d或e的三类集合;并依次遍历e类寄存器集合、a或b类寄存器集合、d类寄存器集合。

本发明实施例优选的实施方式中,上述方法还包括:当判断所述当前寄存器的数据端对应时序路径属性信息不包括起点时钟或终点时钟,输出报错信息。

本发明实施例优选的实施方式中,上述方法还包括:当判断所述当前寄存器的数据端对应时序路径满足时序约束条件时,输出存在时序约束条件的反馈信息。

本发明实施例优选的实施方式中,所述获取任一寄存器的数据端对应的时序路径属性信息,基于所述时序路径属性信息,判断当前寄存器的数据端对应的时序路径是否属于异步路径,并对属于异步路径的时序路径进行标识包括:

通过异步路径检测函数,获取任一寄存器的数据端对应的时序路径属性信息;

通过所述异步路径检测函数,获取所述路径属性信息中的起点时钟、终点时钟;

通过所述异步路径检测函数,判断所述起点时钟的值是否等于所述终点时钟的值,且当前寄存器的数据端对应的时序路径是否满足时序约束条件;

如果所述异步路径检测函数,判断所述起点时钟的值不等于所述终点时钟的值,且当前寄存器的数据端对应的时序路径不满足时序约束条件;则将所述当前寄存器的数据端对应的时序路径判断为异步路径;

通过所述异步路径检测函数,对属于异步路径的时序路径进行标识。

本发明实施例优选的实施方式中,对属于异步路径的时序路径进行标识包括:对所述属于异步路径的时序时序路径赋予指定标识值;所述指定标识值用于对寄存器的数据端对应的时序路径,进行静态时序分析时,静态时序分析工具能够基于所述标识信息快速获取属于异步路径的时序路径,并且不对属于异步路径的时序路径作时序分析。

本发明实施例进一步优选的实施方式中,所述静态时序分析工具采用primetime。

本发明第二方面还提供一种检测集成电路用时序路径中异步路径的装置,其特征在于,包括:

遍历查询模块,用于遍历待检测集成电路设计中的寄存器,

异步路径判断模块,用于获取任一寄存器的数据端对应的时序路径属性信息,基于所述时序路径属性信息,判断当前寄存器的数据端对应的时序路径是否属于异步路径,并对属于异步路径的时序路径进行标识;

其中,所述时序路径属性信息包括起点时钟、终点时钟,所述异步路径判断模块判断当前寄存器的数据端对应的时序路径是否属于异步路径包括:如果所述异步路径判断模块判断所述起点时钟的值不等于所述终点时钟的值,且当前寄存器的数据端对应的时序路径不满足时序约束条件;则将所述当前寄存器的数据端对应的时序路径判断为异步路径。

本发明实施例优选的实施方式中,上述装置还包括:寄存器集合分类模块,用于基于所述寄存器的数据端的类型创建寄存器集合;所述遍历查询模块按照所述寄存器的数据端的类型,依次遍历待检测集成电路设计中的寄存器。

本发明实施例优选的实施方式中,所述寄存器的种类包括触发器、锁存器、时钟门控单元,所述寄存器的数据端的类型包括a或b、d、e,所述寄存器集合包括数据端的类型为a或b、d或e的三类集合;所述遍历查询模块遍历待检测集成电路设计中的寄存器包括:依次遍历e类寄存器集合、a或b类寄存器集合、d类寄存器集合。

本发明实施例优选的实施方式中,上述装置还包括:时钟信息错误反馈模块,用于在所述异步路径判断模块判断所述当前寄存器的数据端对应时序路径属性信息不包括起点时钟或终点时钟,输出报错信息。

本发明实施例优选的实施方式中,上述装置还包括:时序约束条件反馈模块,用于在所述异步路径判断模块判断当前寄存器的数据端对应时序路径满足时序约束条件时,输出存在时序约束条件的反馈信息。

本发明实施例优选的实施方式中,所述异步路径判断模块包括异步路径检测函数,所述异步路径检测函数用于:获取任一寄存器的数据端对应的时序路径属性信息,并获取所述路径属性信息中的起点时钟、终点时钟;判断所述起点时钟的值是否等于所述终点时钟的值,且当前寄存器的数据端对应的时序路径是否满足时序约束条件;如果所述异步路径检测函数判断当前寄存器的数据端对应的路径属性信息中起点时钟的值不等于终点时钟的值,且当前寄存器的数据端对应的时序路径不满足时序约束条件;则将所述当前寄存器的数据端对应的时序路径判断为异步路径;并且对属于异步路径的时序路径进行标识。

本发明实施例优选的实施方式中,所述异步路径判断模块对属于异步路径的时序路径进行标识包括:对所述属于异步路径的时序时序路径赋予指定标识值;所述指定标识值用于对寄存器的数据端对应的时序路径,进行静态时序分析时,静态时序分析工具能够基于所述标识信息快速获取属于异步路径的时序路径,并不对属于异步路径的时序路径作时序分析。

本发明实施例进一步优选的实施方式中,所述静态时序分析工具采用primetime。

本发明第三方面还提供一种电子装置,其特征在于,包括:存储器、处理器和如第二方面提供的任意一种所述检测集成电路用时序路径中异步路径的装置,该检测集成电路用时序路径中异步路径的装置包括一个或多个存储于所述存储器中并由所述处理器执行的软件功能模块。

本发明第四方面还提供一种非易失性存储介质,其上存储有计算机程序,其特征在于,该计算机程序被执行时实现如第一方面提供的任意一种所述方法的步骤。

由于本申请提供上述技术方案中,通过时序路径属性信息中的起点时钟、终点时钟是否满足要求,来判断当前寄存器的数据端对应的时序路径是否属于异步路径,而且还可以通过遍历的方式依次判断需要分析的寄存器,这样能够快速对待检测集成电路设计中的寄存器完成判断,无需依赖人工标记,速度快、结果准确。进一步地,异步路径的时序时序路径赋予指定标识值,该指定标识值用于对寄存器的数据端对应的时序路径,进行静态时序分析时,静态时序分析工具能够基于该标识信息快速获取属于异步路径的时序路径;所以静态时序分析工具可以快速对不需要分析的异步路径剔除,整个静态时序分析的结果更准确、更快。

发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书变得显而易见,或者通过实施本发明的技术方案而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构和/或流程来实现和获得。

附图说明

图1为现有技术中一种异步数据传输的原理图。

图2为本发明实施例一提供一种检测集成电路用时序路径中异步路径的方法的流程图。

图3为本发明实施例二提供一种检测集成电路用时序路径中异步路径的方法的流程图。

图4为本发明实施例三提供一种检测集成电路用时序路径中异步路径对应遍历过程的流程图。

图5为本发明实施例四提供一种检测集成电路用时序路径中异步路径的装置的内部结构框图。

图6为本发明实施例五提供一种检测集成电路用时序路径中异步路径的装置的内部结构框图。

图7为本发明实施例六提供一种检测集成电路用时序路径中异步路径的装置的内部结构框图。

图8为本发明实施例七提供一种电子装置的内部结构框图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,这些具体的说明只是让本领域普通技术人员更加容易、清晰理解本发明,而非对本发明的限定性解释;并且只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

另外,在附图的流程图示出的步骤可以在诸如一组控制器可执行指令的控制系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

下面通过附图和具体实施例,对本发明的技术方案进行详细描述:

图1为一种常见的异步数据传输的原理图,其中:clka和clkb是两个异步时钟,那么跨时钟域路径即rega到regb0之间的路径可采用如下约束:

create_clock–period10.0[get_portsclka]

create_clock–period5.0[get_portsclkb]

set_clock_groups–async–groupclka–groupclkb

上述约束等效于:

set_false_path–from[get_clocksclka]–to[get_clocksclkb]

set_false_path–from[get_clocksclkb]–to[get_clocksclka]

但通常建议采用前者。

如果还有两个虚拟时钟vclka和vclkb,分别与clka和clkb同步,那么上面的约束可以修改为:

set_clock_groups–async–group{clkavclka}–group{clkbvclkb}

上面的约束是在时序约束文件(英文全称timingconstraintfile,简称sdc)中,目前对异步路径的一种常见声明方式:当静态时序分析工具(例如下文提及的primetime)在作静态时序分析(英文全称statictiminganalysis,简称sta)时,如果识别到时序路径(英文或者计算机代码中表述为timingpath)的起点时钟(英文或者计算机代码中表述为startpoint_clock)、终点时钟(英文或者计算机代码中表述为endpoint_clock),分别属于不同的时钟组,那么就不作时序分析。但是对于集成电路(例如片上系统)的设计方案中,设计规模不断加大,复杂度不断提升,导致时序路径的约束复杂度也不断提升;造成设计人员很难一次性的将异步路径声明完全。往往是出现了时序违例,经过检查发现是异步路径(真正的异步路径是不需要作时序分析的,通常在设计时,会通过两级触发器作专门的异步数据传输处理,以避免亚稳态的出现);然后在sdc文件中补充对于这些路径的异步声明,然后重新进行sta分析,这是个不断迭代的过程。

发明人在发现上述问题之后,提供一种解决方案,在利用分析工具作时序分析前,需要在约束文件(sdc)中,指明这些路径是异步路径,以避免分析工具作无畏的时序分析与优化。进一步地,通过一次性的检查与声明,可以避免工程中,发现一个违例处理一个的现象;从而避免了无畏的排除错误(debug)时间,加快了项目的进度。

实施例一

本实施例提供一种检测集成电路用时序路径中异步路径的方法,其中,集成电路为涉及到时序路径的集成电路系统,例如,片上系统(英文全称systemonchip,简称soc)、或者现场可编程门阵列(英文全称field-programmablegatearray,简称fpga),只有对上述技术问题需求的集成电路,都可以采用本实施例提供的检测方法,例如,存储系统,传输系统等等,它们中也可能会存在异步路径,就也可以采用本实施例提供的技术方案快速识别时序路径中的异步路径,也可以对异步路径进行标识。为了便于表述,下文具体以soc作为集成电路进行解释,其他类型的集成电路也可以参照相同或相似的技术手段进行处理。

如图2所示,本实施例提供的检测集成电路用时序路径中异步路径的方法包括:

s110、遍历待检测集成电路设计中的寄存器:例如,可以使用静态分析工具对应的编译工具,设计遍历函数(或调用已经设计好的遍历函数),通过遍历函数查询待检测集成电路设计中的每一个寄存器;具体遍历的对象是设计方案的门级格式,该门级格式对应的保存文件,也称为“门级网表”。

s120、获取任一寄存器的数据端对应的时序路径属性信息,基于时序路径属性信息,判断当前寄存器的数据端对应的时序路径是否属于异步路径,并对属于异步路径的时序路径进行标识;

其中,时序路径属性信息包括起点时钟、终点时钟,判断当前寄存器的数据端对应的时序路径是否属于异步路径包括:如果判断起点时钟的值不等于终点时钟的值,且当前寄存器的数据端对应的时序路径不满足时序约束条件;则将当前寄存器的数据端对应的时序路径判断为异步路径。

具体地,可以使用静态分析工具对应的编译工具,调用一个或者多个能够实现上述异步路径判断的函数来实现对时序路径是否属于异步路径的检测方案,例如,提前编写好一个能查询某个寄存器对应时序路径的遍历函数、以及能够判断时序路径是否属于异步路径、对异步路径输出标识值的异步路径判断函数;也可以直接在静态分析工具对应的编译工具中编写能够实现上述方案的指令,例如编译工具中提供有查询路径属性信息的查询指令,以及能够判断起点时钟的值不等于终点时钟的值、当前寄存器的数据端对应的时序路径是否满足时序约束条件的判断指令等;本实施例不对这些不同的具体实施方式进行限制。

而上述提及的时序约束条件,指当前时序路径是否存在预定的约束条件,该约束条件有特定的用途,例如当前时序是否存在path_group(即pathgroup是否为none)。

其中,path_group是一种时序优化技术,可以事先人为定义,如果不定义,工具会使用默认的方法定义path_group,但效果不如人为定义的好。下面是定义pathgroup的例子,定义时会起个名字,以后报告中的pathgroup后面就跟你定义的这个名字(或工具默认定义的):

group_path-namea5_0_hclk-from[get_clocksa5_0_hclk]-to[get_clocksa5_0_hclk]

group_path-namea5_0_mclk-from[get_clocksa5_0_mclk]-to[get_clocksa5_0_hclk]

具体地,下面是一份异步路径的报告内容:

其中,report_timing是检测工具支持的若干命令之一。

因此,本实施例提供的技术方案中:通过时序路径属性信息中的起点时钟、终点时钟是否满足要求来判断当前寄存器的数据端对应的时序路径是否属于异步路径,而且还可以通过遍历的方式依次判断需要分析的寄存器,这样能够快速对待检测集成电路设计中的寄存器完成判断,无需依赖人工标记,速度快、结果准确。

本实施例优选的实施方式中,对属于异步路径的时序路径进行标识包括:对属于异步路径的时序时序路径赋予指定标识值;该指定标识值用于对寄存器的数据端对应的时序路径,进行静态时序分析时,静态时序分析工具能够基于标识信息快速获取属于异步路径的时序路径,并且不对属于异步路径的时序路径作时序分析。因此,本实施例提供的解决方案,能够一次性搜索出设计方案中所有异步路径,并针对统计出的结果,可以检查时序约束文件(sdc)中,是否对这些异步路径作了正确的声明;另一方面,基于统计出的结果,我们可以在作vcs(编译型verilog模拟器,它完全支持ovi标准的veriloghdl语言、pli和sdf,vcs具有目前行业中最高的模拟性能,其出色的内存管理能力足以支持千万门级的asic设计,而其模拟精度也完全满足深亚微米asicsign-off的要求)后仿真时,对这些异步路径作特定声明(例如,notiming声明),否则会导致仿真出现异常(例如,x态)。

由于异步路径的时序时序路径赋予指定标识值,该指定标识值用于“对寄存器的数据端对应的时序路径,进行静态时序分析时”,静态时序分析工具能够基于该标识信息快速获取属于异步路径的时序路径;所以静态时序分析工具可以快速对不需要分析的异步路径剔除,整个静态时序分析的结果更准确、更快。

实施例二

本实施例在实施例一的基础上进一步对检测出不属于异步路径信息的情况进一步细化。其中:

本实施例优选的实施方式中,检测集成电路用时序路径中异步路径的方法还包括:当判断当前寄存器的数据端对应时序路径属性信息不包括起点时钟或终点时钟,输出报错信息。

本实施例优选的实施方式中,检测集成电路用时序路径中异步路径的方法还包括:当判断当前寄存器的数据端对应时序路径满足时序约束条件时,输出存在时序约束条件的反馈信息。

具体地,如图3所示,本实施例提供的检测集成电路用时序路径中异步路径的方法包括:

s112、选择待检测集成电路设计中的一个寄存器,和实施例一中的s110类似,从待检测集成电路设计中选择一个寄存器。

s121、获取当前寄存器的数据端对应的时序路径属性信息,和实施例一类似,可以通过创建好的函数来获取,也可以直接通过查询指令来获取;

s122、判断当前寄存器的数据端对应的时序路径属性信息是否包括起点时钟或终点时钟;基于s121获取的时序路径属性信息,来判断是否存在起点时钟和终点时钟,如果缺少任意一个,则执行s140;如果两个都有,则执行s123;

s123、当前寄存器的数据端对应的时序路径是否满足时序约束条件:和实施例一中的时序约束条件判断类似,如果当前寄存器的数据端对应的时序路径不满足时序约束条件,则执行s124;如果满足,则执行s150;

s124、当前寄存器的数据端对应的时序路径判断为异步路径;

s125、对属于异步路径的时序路径进行标识;

s130、判断当前寄存器是否属于待检测集成电路设计中最后一个寄存器?如果是,则执行s160,否则,返回s112;

s140、输出报错信息;例如,通过错误日志的形式反馈出来;

s150、输出存在时序约束条件的反馈信息;例如,可以通过日志的形式反馈本次查询结果中有哪些时序路径存在时序约束条件,以及具体的时序路径是哪些。

s160、结束。

实施例三

本实施例在实施例一或实施例二基础上,结合图4,以静态时序分析工具采用primetime为例子,进一步解释检测集成电路用时序路径中异步路径的方法;其中,primetime是synopsys公司开发的一款静态时序分析工具,是一个signoff的独立工具。并且本实施例以arm40库举例说明,该数据库中的寄存器(register)包括:

触发器:延迟触发器(英文全称d-typeflip-flop,简称dff),半动态触发器(简称sdff),还有a2sdff类型的触发器);

锁存器(例如,lat类型的锁存器);

时钟门控单元(例如,preicg类型的时钟门控单元)

其中,数据端(datapin)的名称为d的包括:dff、sdff、lat;

其中,数据端(datapin)的名称为a/b的包括a2sdff;

其中,数据端(datapin)的名称为e的包括preicg;

因此,arm40中所有的register就是上面3类具有不同datapin的寄存器集合。而本实施例优选的实施方式中,检测集成电路用时序路径中异步路径的方法在上述实施例基础上还包括:基于寄存器的数据端的类型创建寄存器集合;并按照寄存器的数据端的类型,依次遍历待检测集成电路设计中的寄存器。进一步优选的实施方式中,寄存器的种类包括触发器、锁存器、时钟门控单元,寄存器的数据端的类型包括a或b、d、e,寄存器集合包括数据端的类型为a或b、d或e的三类集合;并依次遍历e类寄存器集合、a或b类寄存器集合、d类寄存器集合;即先依次遍历e类寄存器集合中的每个寄存器,再依次遍历a或b类寄存器集合中的每个寄存器、然后遍历d类寄存器集合中的每个寄存器。

本实施例优选的实施方式中,获取任一寄存器的数据端对应的时序路径属性信息,基于当前寄存器的数据端对应的时序路径属性信息,判断当前寄存器的数据端对应的时序路径是否属于异步路径,并对属于异步路径的时序路径进行标识,具体实现方法包括:

通过异步路径检测函数,获取任一寄存器的数据端对应的时序路径属性信息;

通过异步路径检测函数,获取路径属性信息中的起点时钟、终点时钟;

通过异步路径检测函数,判断起点时钟的值是否等于终点时钟的值,且当前寄存器的数据端对应的时序路径是否满足时序约束条件;

如果异步路径检测函数,判断起点时钟的值不等于终点时钟的值,且当前寄存器的数据端对应的时序路径不满足时序约束条件;则将当前寄存器的数据端对应的时序路径判断为异步路径;

通过异步路径检测函数,对属于异步路径的时序路径进行标识。

更具体地,本实施例提供的检测集成电路用时序路径中异步路径的方法包括:

创建寄存器集合,例如将arm40中所有的寄存器,按照上面3类具有不同数据端(datapin)的寄存器集合。

创建一个异步路径检测函数,该函数中使用两个变量,一个是寄存器的单元名称(cellname),一个是寄存器datapin的pinname(例如前面提到的a/b、d、e)。两个参数组合在一起,就是寄存器输出端对应的时序路径的终点(endpoint)。该函数的名称可以根据用户的需求进行自定义即可,例如async_check{data_pin}。

该函数用于检测到一个寄存器的数据端是否有异步路径;分为以下几步:

1、获取到寄存器输出端对应的时序路径的终点(endpoint)的时序路径(timingpath);例如,get_timing_paths。

2、获取timingpath的属性信息,包括:startpoint_clock,endpoint_clock,path_group;例如,get_attribute。

3、根据上面得到的属性,进行判断;当同时满足下列条件时,则为异步时序路径:

-startpoint_clock存在

-endpoint_clock存在

-startpoint_clock不等于endpoint_clock

-path_group不存在(即空字符)

4、如果判断为异步路径,则设置参数flag=1。

遍历集合中的每一个寄存器,调用上述已创建好的异步路径检测函数,根据返回的flag参数的状态,写出相应的结果:

遍历的过程,及相应的流程图如下:

1、通过foreach_in_collection命令,每次得到一个寄存器;并通过命令得到该寄存器的单元名称(cellname)和参考名称(referencename)。

2、根据referencename,判断该寄存器的集合种类,并调用异步路径检测函数;

-如果是e类集合中的preicg,则将参数cellname和e,传递给异步路径检测函数;

-如果是a/b类集合中的a2sdff,则将参数cellname和a(或b),传递给异步路径检测函数(a2sdff类型的触发器,虽然可能有a输出或者b输出,但是实际中一般只会使用一个);如果异步路径检测函数通过cellname和a判断出flag为1,则退出;否则,异步路径检测函数继续通过cellname和b判断;

-如果既不是e类,也不是a/b类,则将参数cellname和d,传递给异步路径检测函数;

异步路径检测函数返回的flag状态,如果为1,则表示该寄存器存在异步路径,纪录该寄存器。

具体地,如图4所示,本实施例提供的检测集成电路用时序路径中异步路径对应遍历过程包括:

s300、开始

s310、选择待检测集成电路设计中的一个寄存器;

s320、判断s310中选择的寄存器是否属于e类寄存器集合?如果是,则执行s340(由于上述集合中e类型的寄存器只有preicg,所以直接将参数cellname和e,传递给异步路径检测函数;如果有多个时,继续判断寄存器具体的种类),否则执行s330;

s330、判断s310中选择的寄存器是否属于a/b类寄存器集合?如果是,还需获取具体寄存器的种类,并将cellname和a/b,传递给异步路径检测函数;否则,可以判断s310中选择的寄存器属于d类型,继续执行s340;

s340、调用路径检测函数,检查当前寄存器是否存在异步路径?(具体判断逻辑和过程参照前述解释)如果是,执行s350;如果不是,且不存在实施例二提及的报错信息、反馈信息等,则可以直接到s360,如果不是最后一个寄存器,继续选择下一个(s310);

s350、将标识信息flag设置为1,该寄存器存在异步路径,纪录该寄存器。

s360、判断当前寄存器是否为最后一个寄存器?如果是,则结束(s370),否则,返回s310。

实施例四

如图5所示,本实施例提供一种检测集成电路用时序路径中异步路径的装置100,该装置包括:

遍历查询模块110,用于遍历待检测集成电路设计中的寄存器,

异步路径判断模块120,用于获取任一寄存器的数据端对应的时序路径属性信息,基于当前寄存器的数据端对应时序路径属性信息,判断当前寄存器的数据端对应的时序路径是否属于异步路径,并对属于异步路径的时序路径进行标识;

其中,时序路径属性信息包括起点时钟、终点时钟,异步路径判断模块120判断当前寄存器的数据端对应的时序路径是否属于异步路径具体实现方式,包括:如果异步路径判断模块120判断起点时钟的值不等于终点时钟的值,且当前寄存器的数据端对应的时序路径不满足时序约束条件;则将当前寄存器的数据端对应的时序路径判断为异步路径。

本实施例优选的实施方式中,异步路径判断模块120对属于异步路径的时序路径进行标识包括:对属于异步路径的时序时序路径赋予指定标识值;指定标识值用于对寄存器的数据端对应的时序路径,进行静态时序分析时,静态时序分析工具能够基于标识信息快速获取属于异步路径的时序路径,并不对属于异步路径的时序路径作时序分析。

本实施例提供一种检测集成电路用时序路径中异步路径的装置100在执行具体检测方法时,可以参照实施例一的技术方案,并且也可以产生相同的技术效果;在此不再赘述。

实施例五

本实施例在实施例四的基础上,对上述检测集成电路用时序路径中异步路径的装置100进一步优化;对于与实施例四相同的模块,可以直接参照实施例四的解释。具体地,如图6所示:

本实施例优选的实施方式中,上述检测集成电路用时序路径中异步路径的装置100还包括:时钟信息错误反馈模块130,用于在异步路径判断模块120判断当前寄存器的数据端对应时序路径属性信息不包括起点时钟或终点时钟,输出报错信息。

本实施例优选的实施方式中,上述检测集成电路用时序路径中异步路径的装置100还包括:时序约束条件反馈模块140,用于在异步路径判断模块120判断当前寄存器的数据端对应时序路径满足时序约束条件时,输出存在时序约束条件的反馈信息。

本实施例优选的实施方式中,异步路径判断模块120包括异步路径检测函数,异步路径检测函数用于:获取任一寄存器的数据端对应的时序路径属性信息,并获取路径属性信息中的起点时钟、终点时钟;判断起点时钟的值是否等于终点时钟的值,且当前寄存器的数据端对应的时序路径是否满足时序约束条件;如果异步路径检测函数判断当前寄存器的数据端对应的路径属性信息中起点时钟的值不等于终点时钟的值,且当前寄存器的数据端对应的时序路径不满足时序约束条件;则将当前寄存器的数据端对应的时序路径判断为异步路径;并且对属于异步路径的时序路径进行标识。

本实施例提供一种检测集成电路用时序路径中异步路径的装置100在执行具体检测方法时,可以参照实施例二的技术方案,并且也可以产生相同的技术效果;在此不再赘述。

实施例六

本实施例在实施例五的基础上,对上述检测集成电路用时序路径中异步路径的装置100进一步优化,对于与实施例五相同的模块,可以直接参照实施例五的解释。当然本实施例提供的技术方案也可以在实施例四的基础上进行优化。

本实施例以静态时序分析工具采用primetime为例,进一步解释检测集成电路用时序路径中异步路径的方法。并且本实施例以arm40库举例说明,具体地,如图7所示:

本实施例优选的实施方式中,上述检测集成电路用时序路径中异步路径的装置100还包括:寄存器集合分类模块150,用于基于寄存器的数据端的类型创建寄存器集合;遍历查询模块110按照寄存器的数据端的类型,依次遍历待检测集成电路设计中的寄存器。

本实施例优选的实施方式中,寄存器的种类包括触发器、锁存器、时钟门控单元,寄存器的数据端的类型包括a或b、d、e,寄存器集合包括数据端的类型为a或b、d或e的三类集合;遍历查询模块110遍历待检测集成电路设计中的寄存器包括:依次遍历e类寄存器集合、a或b类寄存器集合、d类寄存器集合。

本实施例提供一种检测集成电路用时序路径中异步路径的装置100在执行具体检测方法时,可以参照实施例三的技术方案,并且也可以产生相同的技术效果;在此不再赘述。

实施例七

如图8所示,本实施例提供一种电子装置,该电子装置包括:存储器210、处理器220和如实施例四至实施例六中提供的任意一种检测集成电路用时序路径中异步路径的装置,该检测集成电路用时序路径中异步路径的装置包括一个或多个存储于存储器中并由处理器执行的软件功能模块。

本实施例还提供一种非易失性存储介质,其上存储有计算机程序,该计算机程序被执行时实现如实施例一至实施例三提供的任意一种方法的步骤。

本领域普通技术人员可以理解:上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如cdrom、ram、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如asic、fpga或soc)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,ram、rom、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的处理方法。此外,当通用计算机访问用于实现在此示出的处理的代码时,代码的执行将通用计算机转换为用于执行在此示出的处理的专用计算机。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。

最后需要说明的是,上述说明仅是本发明的最佳实施例而已,并非对本发明做任何形式上的限制。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围内,都可利用上述揭示的做法和技术内容对本发明技术方案做出许多可能的变动和简单的替换等,这些都属于本发明技术方案保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1