实现静态时序分析的方法、装置、计算机存储介质及终端
文献发布时间:2023-06-19 19:35:22
技术领域
本文涉及但不限于现场可编程门阵列技术,尤指一种实现静态时序分析的方法、装置、计算机存储介质及终端。
背景技术
现场可编程门阵列(FPGA,Field Programmable Gate Array)软件开发工具主要包括综合、布局、布线、时序分析和生成比特流等环节。
FPGA时序分析主要是指静态时序分析,FPGA的静态时序分析有两个基本的用途:一是确定用户设计在经过布局布线后的电路速度;二是对电路网表中的时序模型进行全面分析,计算电路中时序路径的延迟数据,判断其是否满足要求。静态时序分析的关键是建立有效的时序模型,对时序模型中时序路径和时序余量信息进行快速和准确的计算,然后将计算出的时序信息及时反馈到FPGA的布局布线过程,协助布局布线进行时序优化,提高用户设计的电路速度。
图1为相关技术中的静态时序分析的流程图,如图1所示,静态时序分析是一个串行的过程,包括:步骤101、遍历网表文件,建立时序模型;步骤102、确定时序模型的时序路径;步骤103、依次对每一条时序路径进行时序分析,并确定是否完成所有时序路径的时序分析;未完成所有时序路径的时序分析时,回到步骤103;完成所有时序路径的时序分析时,执行步骤104;步骤104、结束流程。通常,静态时序分析是一个迭代的过程,需要根据布局布线信息进行多次迭代,每次迭代都要重新建立时序模型并对时序路径进行时序分析和余量计算。静态时序分析,需要对每一条时序路径进行时序分析,直到所有的时序路径分析完成为止。相关技术按照预设策略确定时序路径的顺序后,按照确定的顺序对时序路径进行分析,每一次只能进行一个时序路径进行分析,排序在后的时序路径,必须在在前一个时序路径的时序分析完成后才能开始。当用户的设计逻辑资源较多、时序路径复杂或者静态时序分析过程需要根据布局布线信息进行迭代,且迭代计算频繁时,静态时序分析执行效率低、分析速度慢和耗用时间长的缺点,会限制FPGA软件工具的运行速度,降低用户设计的效率。
综上,如何提升FPGA的静态时序分析的执行效率,成为一个有待解决的问题。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供一种实现静态时序分析的方法、装置、计算机存储介质及终端,能够提升静态时序分析的执行效率。
本发明实施例提供了一种实现静态时序分析的方法,包括:
将时序模型划分为两个以上时序相关模型;
根据划分的时序相关模型的个数和执行静态时序分析的系统环境参数信息,确定用于静态时序分析的线程数;
根据确定的线程数开启线程,并将划分的时序相关模型通过开启的线程进行并行的静态时序分析;
其中,所述时序模型通过遍历网表文件获得,所述时序相关为时序相关模型中包含的实例,通过输入端口或输出端口建立连接;所述用于静态时序分析的线程数大于或等于2。
在一种示例性实例中,所述将时序模型划分为两个以上时序相关模型,包括:
选定任一实例,将所述时序模型中与该选定的实例时序相关的所有实例,确定为一个时序相关模型;
剔除确定的所述时序相关模型中包含的所有实例,判断剔除确定的所述时序相关模型中包含的所有实例后,所述时序模型中是否有剩余实例;
判断出剔除确定的所述时序相关模型中包含的所有实例后,所述时序模型中有剩余实例时,从所述时序模型的剩余实例中重新选定任一实例,将所述时序模型中与该重新选定的实例时序相关的所有实例,确定为一个时序相关模型;
判断出剔除确定的所述时序相关模型中包含的所有实例后,所述时序模型中不包含剩余实例时,将确定的所有时序相关模型确定为划分的所述两个以上时序相关模型。
在一种示例性实例中,所述系统环境参数信息包括:
所述执行静态时序分析的中央处理器的内核数。
在一种示例性实例中,所述确定用于静态时序分析的线程数,包括:
将所述时序相关模型的个数除以所述系统环境参数信息,获得线程数相关值信息;
根据预先设定的线程数相关值范围与线程数个数的对应关系,确定与获得的所述线程数相关值信息对应的线程数个数。
在一种示例性实例中,所述将划分的时序相关模型通过开启的线程进行并行的静态时序分析,包括:
根据所述时序模型,确定将划分的所述时序相关模型读入到开启的线程的先后顺序;
根据确定的所述将划分的所述时序相关模型读入到开启的线程的先后顺序,进行并行的所述静态时序分析。
另一方面,本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述实现静态时序分析的方法。
再一方面,本发明实施例还提供一种终端,包括:存储器和处理器,所述存储器中保存有计算机程序;其中,
处理器被配置为执行存储器中的计算机程序;
所述计算机程序被所述处理器执行时实现如上述实现静态时序分析的方法。
还一方面,本发明实施例还提供一种实现静态时序分析的装置,包括:划分模型单元设置为:将时序模型划分为两个以上时序相关模型;
确定线程单元设置为:根据划分的时序相关模型的个数和执行静态时序分析的系统环境参数信息,确定用于静态时序分析的线程数;
处理单元设置为:根据确定的线程数开启线程,并将划分的时序相关模型通过开启的线程进行并行的静态时序分析;
其中,所述时序模型通过遍历网表文件获得,所述时序相关为时序相关模型中包含的实例,通过输入端口或输出端口建立连接;所述用于静态时序分析的线程数大于或等于2。在一种示例性实例中,所述划分模型单元是设置为:
选定任一实例,将所述时序模型中与该选定的实例时序相关的所有实例,确定为一个时序相关模型;
剔除确定的所述时序相关模型中包含的所有实例,判断剔除确定的所述时序相关模型中包含的所有实例后,所述时序模型中是否有剩余实例;
判断出剔除确定的所述时序相关模型中包含的所有实例后,所述时序模型中有剩余实例时,从所述时序模型的剩余实例中重新选定任一实例,将所述时序模型中与该重新选定的实例时序相关的所有实例,确定为一个时序相关模型;
判断出剔除确定的所述时序相关模型中包含的所有实例后,所述时序模型中不包含剩余实例时,将确定的所有时序相关模型确定为划分的所述两个以上时序相关模型。
在一种示例性实例中,所述系统环境参数信息包括:
所述执行静态时序分析的中央处理器的内核数。
本申请技术方案包括:将时序模型划分为两个以上时序相关模型;根据划分的时序相关模型的个数和执行静态时序分析的系统环境参数信息,确定用于静态时序分析的线程数;根据确定的线程数开启线程,并将划分的时序相关模型通过开启的线程进行并行的静态时序分析;其中,所述时序模型通过遍历网表文件获得,所述时序相关为时序相关模型中包含的实例,通过输入端口或输出端口建立连接;所述用于静态时序分析的线程数大于或等于2。本发明实施例将时序模型划分为两个以上时序相关模型,根据时序相关模型的个数和系统环境参数信息调用两个以上线程,实现静态时序分析的并行处理,提升了静态时序分析的效率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为相关技术中的静态时序分析的流程图;
图2为本发明一实施例实现静态时序分析的方法的流程图;
图3为本发明另一实施例实现静态时序分析的方法的流程图;
图4为本发明实施例实现静态时序分析的装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2为本发明一实施例实现静态时序分析的方法的流程图,如图2所示,包括:
步骤201、将时序模型划分为两个以上时序相关模型;
步骤202、根据划分的时序相关模型的个数和执行静态时序分析的系统环境参数信息,确定用于静态时序分析的线程数;
步骤203、根据确定的线程数开启线程,并将划分的时序相关模型通过开启的线程进行并行的静态时序分析;
其中,时序模型通过遍历网表文件获得,时序相关为时序相关模型中包含的实例,通过输入端口或输出端口建立连接;用于静态时序分析的线程数大于或等于2。本发明实施例将时序模型划分为两个以上时序相关模型,根据时序相关模型的个数和系统环境参数信息调用两个以上线程,实现静态时序分析的并行处理,提升了静态时序分析的效率。
在一种示例性实例中,本发明实施例静态时序分析包括:现场可编程门阵列(FPGA)的静态时序分析;本发明实施例中的时序模型可以通过遍历FPGA的网表文件确定;具体的,本发明实施例读取上述网表文件中的时序器件信息,基于读取的时序器件信息对网表文件进行解析,建立网表文件的时序模型。
在一种示例性实例中,本发明实施例将时序模型划分为两个以上时序相关模型,包括:
选定任一实例,将时序模型中与该选定的实例时序相关的所有实例,确定为一个时序相关模型;
剔除确定的时序相关模型中包含的所有实例,判断剔除确定的时序相关模型中包含的所有实例后,时序模型中是否有剩余实例;
判断出剔除确定的时序相关模型中包含的所有实例后,时序模型中有剩余实例时,从时序模型的剩余实例中重新选定任一实例,将时序模型中与该重新选定的实例时序相关的所有实例,确定为一个时序相关模型;
判断出剔除确定的时序相关模型中包含的所有实例后,时序模型中不包含剩余实例时,将确定的所有时序相关模型确定为划分的两个以上时序相关模型。
在一种示例性实例中,本发明实施例可以以网表文件为基础,基于时序相关模型的定义遍历确定每一个时序相关模型。
在一种示例性实例中,本发明实施例系统环境参数信息包括:
执行静态时序分析的中央处理器的内核数。
在一种示例性实例中,本发明实施例系统环境参数信息包括:执行静态时序分析的中央处理器的内核数与执行静态时序分析的内存大小;在一种示例性实例中,本发明实施例中央处理器的内核数与内存大小,主要用于衡量静态时序分析的运算能力,通过运算可以获得用于确定用于静态时序分析的线程数的信息即可,在一种示例性实例中,本发明实施例可以将执行静态时序分析的中央处理器的内核数乘以执行静态时序分析的内存大小,将乘积用于确定用于静态时序分析的线程数。
在一种示例性实例中,本发明实施例中的内存大小的单位为吉(G)。
在一种示例性实例中,本发明实施例确定用于静态时序分析的线程数,包括:
将时序相关模型的个数除以系统环境参数信息,获得线程数相关值信息;
根据预先设定的线程数相关值范围与线程数个数的对应关系,确定与获得的线程数相关值信息对应的线程数个数。
在一种示例性实例中,本发明实施例将划分的时序相关模型通过开启的线程进行并行的静态时序分析,包括:
根据时序模型,确定将划分的时序相关模型读入到开启的线程的先后顺序;
根据确定的将划分的时序相关模型读入到开启的线程的先后顺序,进行并行的静态时序分析。
在一种示例性实例中,本发明实施例对时序相关模型进行时序分析的先后顺序可以参照相关技术确认,例如,按照划分的时序相关模组中起始的实例,在时序模型中的先后顺序,确定时序相关模型进行时序分析的先后=。
在一种示例性实例中,本发明实施例参照相关技术,根据时序路径的源端位置信息、汇端位置信息以及经过的instance(实例)的位置信息及实例端口,进行静态时序分析。在一种示例性实例中,本发明实施例中的实例包括时序路径中的查找表(LUT)和寄存器(DFF)等器件,根据网表文件中追踪的所有实例,根据实例的位置和输入输出端口的连接关系,参照相关原理建立时序模型。
图3为本发明另一实施例实现静态时序分析的方法的流程图,如图3所示,包括:
步骤301、通过读取网表文件中的实例,对网表文件进行解析,建立对应于网表文件的时序模型;
步骤302、确定并保存时序模型;
步骤303、将时序模型划分为两个以上时序相关模型;
步骤304、根据划分的时序相关模型的个数和执行静态时序分析的中央处理器的内核数,确定用于静态时序分析的线程数;
在一种示例性实例中,确定用于静态时序分析的线程数包括:
将划分的时序相关模型的个数除以执行静态时序分析的中央处理器的内核数,获得线程数相关值信息;
根据预先设定的线程数相关值范围与线程数个数的对应关系,确定与获得的线程数相关值信息对应的线程数个数。在一种示例性实例中,线程数相关值范围与线程数个数的对应关系,可以由本领域技术人员根据执行静态时序分析的中央处理器的运算能力和静态时序分析的处理效率进行分析设定;
步骤305、根据确定的线程数开启线程;
步骤306、根据时序模型,确定将划分的时序相关模型读入到开启的线程的先后顺序;
步骤307、根据确定的将划分的时序相关模型读入到开启的线程的先后顺序,进行并行的静态时序分析。
本发明实施例以时序路径的数据结构作为输入,依次将时序相关模型读入线程池,通过线程调度将所有的时序相关模型动态分配至不同的线程中进行并行的时序分析,直至所有的时序分析完成;其中,数据结构包括:源端位置信息、汇端位置信息以及经过的实例的位置信息及实例端口。
本发明实施例根据时序关系将时序模型划分为两个以上时序相关模型,通过时序相关模型个数和运行环境信息等进行分析,动态开启线程池,对时序路径进行并行的时序分析,解决了串行的FPGA的静态时序分析在逻辑资源较多、时序路径复杂或者静态时序分析需要依据布局布线结果进行迭代,且迭代计算频繁时,分析速度慢的问题,提高了FPGA的设计效率。
本发明实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机程序,计算机程序被处理器执行时实现上述实现静态时序分析的方法。
本发明实施例还提供一种终端,包括:存储器和处理器,存储器中保存有计算机程序;其中,
处理器被配置为执行存储器中的计算机程序;
计算机程序被处理器执行时实现如上述实现静态时序分析的方法。
图4为本发明实施例实现静态时序分析的装置的结构框图,如图4所示,包括:划分模型单元、确定线程单元和处理单元;其中,
划分模型单元设置为:将时序模型划分为两个以上时序相关模型;
确定线程单元设置为:根据划分的时序相关模型的个数和执行静态时序分析的系统环境参数信息,确定用于静态时序分析的线程数;
处理单元设置为:根据确定的线程数开启线程,并将划分的时序相关模型通过开启的线程进行并行的静态时序分析;
其中,时序模型通过遍历网表文件获得,时序相关为时序相关模型中包含的实例,通过输入端口或输出端口建立连接;用于静态时序分析的线程数大于或等于2。
本发明实施例将时序模型划分为两个以上时序相关模型,根据时序相关模型的个数和系统环境参数信息调用两个以上线程,实现静态时序分析的并行处理,提升了静态时序分析的效率。
在一种示例性实例中,本发明实施例划分模型单元是设置为:
选定任一实例,将时序模型中与该选定的实例时序相关的所有实例,确定为一个时序相关模型;
剔除确定的时序相关模型中包含的所有实例,判断剔除确定的时序相关模型中包含的所有实例后,时序模型中是否有剩余实例;
判断出剔除确定的时序相关模型中包含的所有实例后,时序模型中有剩余实例时,从时序模型的剩余实例中重新选定任一实例,将时序模型中与该重新选定的实例时序相关的所有实例,确定为一个时序相关模型;
判断出剔除确定的时序相关模型中包含的所有实例后,时序模型中不包含剩余实例时,将确定的所有时序相关模型确定为划分的两个以上时序相关模型。
在一种示例性实例中,本发明实施例系统环境参数信息包括:
执行静态时序分析的中央处理器的内核数。
在一种示例性实例中,本发明实施例确定线程单元是设置为:
将时序相关模型的个数除以系统环境参数信息,获得线程数相关值信息;
根据预先设定的线程数相关值范围与线程数个数的对应关系,确定与获得的线程数相关值信息对应的线程数个数。
在一种示例性实例中,本发明实施例处理单元将划分的时序相关模型通过开启的线程进行并行的静态时序分析,包括:
根据时序模型,确定将划分的时序相关模型读入到开启的线程的先后顺序;
根据确定的将划分的时序相关模型读入到开启的线程的先后顺序,进行并行的静态时序分析。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
- 终端遥控方法、装置及系统、终端及计算机可读存储介质
- 双屏终端立体声实现方法、终端及计算机可读存储介质
- 人脸识别的方法、装置、终端及计算机可读存储介质
- 一种对象推荐方法、装置、终端及计算机可读存储介质
- 一种实现数据存储的方法、装置、计算机存储介质及终端
- 实现数据存储处理的方法、装置、计算机存储介质及终端