一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数字芯片的子模块后仿真方法和系统与流程

2022-10-26 17:12:49 来源:中国专利 TAG:


1.本发明涉及集成电路技术领域,具体涉及一种数字芯片的子模块后仿真方法、系统、电子设备及存储介质。


背景技术:

2.在数字芯片设计流程中,后仿真是很重要的一环。通常后仿真是对于综合后得到的网表和延迟文件做功能仿真,来检查网表功能是否正确以及延迟是否符合时序要求。如果网表顶层包括多个子模块,仿真环境通常要求能够对所有子模块功能能够做完全覆盖。但是顶层仿真环境和子模块仿真环境往往覆盖程度有差异,子模块仿真环境通常比顶层仿真环境验证覆盖更加全面。如果要在子环境中做功能仿真,那么不能直接使用顶层网表,需要另外生成子模块网表以及延迟文件。在顶层环境中对子模块做后仿,能够覆盖接口时序,但是降低了子环境覆盖率;在子环境中进行子模块后仿,则无法对接口做时序仿真,导致后仿真验证不全面。


技术实现要素:

3.因此,本发明实施例提供的数字芯片的子模块后仿真方法、系统、电子设备及存储介质,以解决现有技术中子模块后仿真验证不全面的问题。
4.为达到上述目的,本发明提供如下技术方案:第一方面,本发明实施例提供一种数字芯片的子模块后仿真方法,包括:获取待测子模块对应的子模块门级网表、子模块sdf文件,顶层模块对应的顶层门级网表和延迟信息,所述顶层模块包括待测子模块;获取待测子模块中各个端口的端口信息,所述端口信息包括端口名称和端口类型,其中,所述端口类型包括时钟信号输入端口、同步信号输入端口、同步信号输出端口、异步信号端口;根据所述顶层门级网表、延迟信息和端口信息确定待测子模块中各个端口的延迟数据,其中,时钟信号输入端口的延迟数据包括从时钟源到待测子模块的时钟信号输入端口路径上的各级延迟,同步信号输入端口的延迟数据包括前一级触发器延迟和从前一级触发器到待测子模块的同步信号输入端口路径上的各级延迟,同步信号输出端口的延迟数据包括同步信号输出端口到后一级触发器路径上的各级延迟和后一级触发器延迟,异步信号端口的延迟数据为无延迟;其中,各级延迟包括路径上每一级的单元延迟和走线延迟,前一级触发器延迟包括从时钟源到前一级触发器时钟端的延迟和从前一级触发器时钟端到前一级触发器输出端的延迟,后一级触发器延迟包括从时钟源到后一级触发器时钟端的延迟、后一级触发器的建立时间和保持时间;根据待测子模块中各个端口的延迟数据在待测子模块的前仿真验证环境中添加各级延迟单元、前一级触发器和后一级触发器,并将延迟数据标注到各级延迟单元、前一级触发器和后一级触发器对应的参数中;
将子模块门级网表、子模块sdf文件加入到待测子模块的前仿真验证环境中,运行待测子模块前仿真验证环境的前仿真激励对待测子模块进行后仿真验证。
5.在一实施例中,当顶层模块中的所有子模块的输出级为寄存器输出时,在待测子模块前仿真验证环境中,将待测子模块对应的前一级触发器和前仿真验证环境中的驱动触发器作为同一个行为级单元,将前一级触发器对应的延迟标注到前仿真验证环境中的驱动触发器的输出端上。
6.在一实施例中,当同步信号输出端口对应多个后一级触发器时,同步信号输出端口的延迟数据包括输出端口到每一个后一级触发器路径上的各级延迟和每一个后一级触发器的延迟。
7.在一实施例中,运行待测子模块前仿真验证环境的前仿真激励对待测子模块进行后仿真验证的步骤之前,还包括:选取多个后一级触发器中的任意一个后一级触发器作为同步信号输出端口的采样触发器,剩余的后一级触发器作为检查触发器,采样触发器连接前仿真验证环境中的接口采样单元,每一个检查触发器分别连接一个第一检查器,所述第一检查器用于比对采样触发器和检查触发器的输出结果。
8.在一实施例中,后一级触发器包括建立时间触发器和保持时间触发器,并在数据路径和时钟路径上添加建立时间和保持时间,并将建立时间触发器和保持时间触发器中的其中一个触发器作为输出触发器,另一个触发器连接第二检查器,所述第二检查器用于检查建立时间和保持时间的时序。
9.在一实施例中,运行待测子模块前仿真验证环境的前仿真激励对待测子模块进行后仿真验证的步骤中,包括:若延迟时间大于1个时钟周期减去后一级触发器建立时间并且延迟时间小于1个时钟周期加上后一级触发器保持时间, 则前仿真验证环境的功能检查器和后一级触发器中的第二检查器均报错,后仿真验证不通过;若延迟时间大于或者等于1个时钟周期加上后一级触发器保持时间,则前仿真验证环境的功能检查器报错,后一级触发器中的第二检查器不报错,后仿真验证不通过。
10.在一实施例中,运行待测子模块前仿真验证环境的前仿真激励对待测子模块进行后仿真验证的步骤中,还包括:若后一级触发器的数据信号发生建立时间违例,则数据变化滞后1个时钟周期被采样到;若后一级触发器的时钟信号发生保持时间违例,则数据变化超前1个时钟周期被采样到。
11.第二方面,本发明实施例提供一种数字芯片的子模块后仿真系统,包括:第一获取模块,用于获取待测子模块对应的子模块门级网表、子模块sdf文件,顶层模块对应的顶层门级网表和延迟信息,所述顶层模块包括待测子模块;第二获取模块,用于获取待测子模块中各个端口的端口信息,所述端口信息包括端口名称和端口类型,其中,所述端口类型包括时钟信号输入端口、同步信号输入端口、同步信号输出端口、异步信号端口;第一处理模块,用于根据所述顶层门级网表、延迟信息和端口信息确定待测子模
块中各个端口的延迟数据,其中,时钟信号输入端口的延迟数据包括从时钟源到待测子模块的时钟信号输入端口路径上的各级延迟,同步信号输入端口的延迟数据包括前一级触发器延迟和从前一级触发器到待测子模块的同步信号输入端口路径上的各级延迟,同步信号输出端口的延迟数据包括同步信号输出端口到后一级触发器路径上的各级延迟和后一级触发器延迟,异步信号端口的延迟数据为无延迟;其中,各级延迟包括路径上每一级的单元延迟和走线延迟,前一级触发器延迟包括从时钟源到前一级触发器时钟端的延迟和从前一级触发器时钟端到前一级触发器输出端的延迟,后一级触发器延迟包括从时钟源到后一级触发器时钟端的延迟、后一级触发器的建立时间和保持时间;第二处理模块,用于根据待测子模块中各个端口的延迟数据在待测子模块的前仿真验证环境中添加各级延迟单元、前一级触发器和后一级触发器,并将延迟数据标注到各级延迟单元、前一级触发器和后一级触发器对应的参数中;第三处理模块,用于将子模块门级网表、子模块sdf文件加入到待测子模块的前仿真验证环境中,运行待测子模块前仿真验证环境的前仿真激励对待测子模块进行后仿真验证。
12.在一实施例中,当顶层模块中的所有子模块的输出级为寄存器输出时,在待测子模块前仿真验证环境中,将待测子模块对应的前一级触发器和前仿真验证环境中的驱动触发器作为同一个行为级单元,将前一级触发器对应的延迟标注到前仿真验证环境中的驱动触发器的输出端上。
13.在一实施例中,当同步信号输出端口对应多个后一级触发器时,同步信号输出端口的延迟数据包括输出端口到每一个后一级触发器路径上的各级延迟和每一个后一级触发器的延迟。
14.在一实施例中,上述系统还包括:第四处理模块,用于选取多个后一级触发器中的任意一个后一级触发器作为同步信号输出端口的采样触发器,剩余的后一级触发器作为检查触发器,采样触发器连接前仿真验证环境中的接口采样单元,每一个检查触发器分别连接一个第一检查器,所述第一检查器用于比对采样触发器和检查触发器的输出结果。
15.在一实施例中,后一级触发器包括建立时间触发器和保持时间触发器,并在数据路径和时钟路径上添加建立时间和保持时间,并将建立时间触发器和保持时间触发器中的其中一个触发器作为输出触发器,另一个触发器连接第二检查器,所述第二检查器用于检查建立时间和保持时间的时序。
16.在一实施例中,所述第三处理模块包括:第一处理单元,用于若延迟时间大于1个时钟周期减去后一级触发器建立时间并且延迟时间小于1个时钟周期加上后一级触发器保持时间, 则前仿真验证环境的功能检查器和后一级触发器中的第二检查器均报错,后仿真验证不通过;第二处理单元,用于若延迟时间大于或者等于1个时钟周期加上后一级触发器保持时间,则前仿真验证环境的功能检查器报错,后一级触发器中的第二检查器不报错,后仿真验证不通过。
17.在一实施例中,所述第三处理模块还包括:第三处理单元,用于若后一级触发器的数据信号发生建立时间违例,则数据变化
滞后1个时钟周期被采样到;第四处理单元,用于若后一级触发器的时钟信号发生保持时间违例,则数据变化超前1个时钟周期被采样到。
18.第三方面,本发明实施例提供一种计算机设备,包括:至少一个处理器,以及与至少一个处理器通信连接的存储器,其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器执行本发明实施例第一方面的数字芯片的子模块后仿真方法。
19.第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行本发明实施例第一方面的数字芯片的子模块后仿真方法。
20.本发明技术方案,具有如下优点:本发明提供的数字芯片的子模块后仿真方法、系统、电子设备及存储介质,其中,该方法先获取待测子模块对应的子模块门级网表、子模块sdf文件,顶层模块对应的顶层门级网表和延迟信息、以及待测子模块中各个端口的端口信息,端口信息包括端口名称和端口类型,其中,所述端口类型包括时钟信号输入端口、同步信号输入端口、同步信号输出端口、异步信号端口;然后,根据顶层门级网表、延迟信息和端口信息确定待测子模块中各个端口的延迟数据,上述延迟数据包括与待测子模块相连接的前一级触发器延迟、后一级触发器的延迟、以及前一级触发器到待测子模块输入端口的路径延迟和待测子模块输出端口到后一级触发器的路径延迟;之后,根据延迟数据在待测子模块的前仿真验证环境中添加各级延迟单元、前一级触发器和后一级触发器,并将延迟数据标注到对应的参数中;最后,将子模块门级网表、子模块sdf文件加入到待测子模块的前仿真验证环境中,运行待测子模块前仿真验证环境的前仿真激励对待测子模块进行后仿真验证。该方法在待测子模块的前仿真环境中标注与待测子模块端口相连接的前、后级模块的接口延迟和路径延迟,同时采用前仿真验证环境中的前仿真激励,在前仿真验证环境中运行待测子模块的后仿真验证,使得待测子模块在后仿真时能够模拟接口延迟时序,从而使待测子模块后仿验证更加全面。
附图说明
21.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1为本发明实施例中提供的数字芯片的子模块后仿真方法的一个具体示例的流程图;图2为本发明实施例中提供的数字芯片的子模块后仿真方法的时钟信号输入端口延迟的一个具体示例的示意图;图3为本发明实施例中提供的数字芯片的子模块后仿真方法的同步信号输入端口延迟的一个具体示例的示意图;图4为本发明实施例中提供的数字芯片的子模块后仿真方法的同步信号输出端口
延迟的一个具体示例的示意图;图5为本发明实施例中提供的数字芯片的子模块后仿真方法的待测子模块的前仿真验证环境的一个具体实例的示意图;图6为本发明实施例中提供的数字芯片的子模块后仿真方法的时钟信号输入端口延迟数据标注的一个具体示例的示意图;图7为本发明实施例中提供的数字芯片的子模块后仿真方法的同步信号输入端口延迟数据标注的一个具体示例的示意图;图8为本发明实施例中提供的数字芯片的子模块后仿真方法的同步信号输出端口延迟数据标注的一个具体示例的示意图;图9为本发明实施例中提供的数字芯片的子模块后仿真方法的同步信号输入端口延迟数据标注的另一个具体示例的示意图;图10为本发明实施例中提供的数字芯片的子模块后仿真方法的同步信号输出端口延迟的另一个具体示例的示意图;图11为本发明实施例中提供的数字芯片的子模块后仿真方法的同步信号输出端口延迟数据标注的另一个具体示例的示意图;图12为本发明实施例中提供的数字芯片的子模块后仿真方法的同步信号输出端口延迟数据标注的另一个具体示例的示意图;图13为本发明实施例中提供的数字芯片的子模块后仿真方法的后一级触发器的一个具体示例的示意图;图14为本发明实施例中提供的数字芯片的子模块后仿真系统的一个具体示例的模块组成图;图15为本发明实施例中提供的计算机设备一个具体示例的组成图。
具体实施方式
23.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0024] 此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
[0025]
实施例1本发明实施例提供一种数字芯片的子模块后仿真方法,如图1所示,该方法包括以下步骤:步骤s1:获取待测子模块对应的子模块门级网表、子模块sdf文件,顶层模块对应的顶层门级网表和延迟信息,所述顶层模块包括待测子模块。
[0026]
本实施例中,在数字芯片设计过程中,顶层模块通常由多个子模块构成,顶层模块包括待测子模块。数字设计时,将顶层模块或者子模块对应的rtl级(register-transfer level,寄存器传输级)代码(如verilog代码、vhdl代码)通过综合工具生成对应的门级网表(gate-level netlist)。综合是将rtl转换成门级网表的过程。网表(netlist)是用于描述电路元件相互之间连接关系的,一般来说是一个遵循某种比较简单的标记语法的文本文
件。门级(gate-level)指的是网表描述的电路综合级别。
[0027]
对顶层模块进行逻辑综合后得到顶层模块对应的顶层门级网表,对待测子模块进行逻辑综合后得到待测子模块对应的子模块门级网表。
[0028]
在逻辑综合过程中,还会生成用于后仿真的sdf文件 (standard delay format,标准延时格式文件)。因此,待测子模块综合后得到待测子模块对应的子模块sdf文件。待测子模块对应的子模块sdf文件中包含待测子模块内部的iopath,interconnect、timing check 等延迟时间和时序约束的参数。
[0029]
本实施例中,顶层模块的延迟信息为顶层模块的spef文件。spef(standard parasitic exchange format)是集成电路设计流程中eda工具间传递互连线寄生参数的标准媒介文件。本实施例中,对顶层模块进行综合得到顶层模块对应的spef文件,顶层模块的spef文件中包括子模块之间的延迟信息。
[0030]
步骤s2:获取待测子模块中各个端口的端口信息,端口信息包括端口名称和端口类型,其中,所述端口类型包括时钟信号输入端口、同步信号输入端口、同步信号输出端口、异步信号端口。
[0031]
本实施例中,端口信息包括端口名称和端口类型,根据待测子模块确定各个输入、输出端口的端口名称和端口类型。具体地,端口类型包括时序检查信号端口和非时序检查信号端口;时序检查信号端口包括时钟信号输入端口、同步信号输入端口和同步信号输出端口;非时序检查信号端口包括异步信号端口。
[0032]
步骤s3:根据顶层门级网表、延迟信息和端口信息确定待测子模块中各个端口的延迟数据,其中,时钟信号输入端口的延迟数据包括从时钟源到待测子模块的时钟信号输入端口路径上的各级延迟,同步信号输入端口的延迟数据包括前一级触发器延迟和从前一级触发器到待测子模块的同步信号输入端口路径上的各级延迟,同步信号输出端口的延迟数据包括同步信号输出端口到后一级触发器路径上的各级延迟和后一级触发器延迟,异步信号端口的延迟数据为无延迟;其中,各级延迟包括路径上每一级的单元延迟和走线延迟,前一级触发器延迟包括从时钟源到前一级触发器时钟端的延迟和从前一级触发器时钟端到前一级触发器输出端的延迟,后一级触发器延迟包括从时钟源到后一级触发器时钟端的延迟、后一级触发器的建立时间和保持时间。
[0033]
本实施例中,根据顶层门级网表、延迟信息和端口信息,通过静态时序分析工具,得到确定待测子模块中各个端口的延迟数据。
[0034]
本实施例中,路径上的各级延迟包括路径上每一级的单元延迟和走线延迟。单元延迟包括信号经过单元时的单元上升延迟和单元下降延迟;走线延迟包括信号经过走线时的走线上升延迟和走线下降延迟。
[0035]
时钟信号输入端口的延迟数据通过静态时序分析工具报出待测子模块输入时钟路径的各级延迟,输入时钟路径为从时钟源到待测子模块的时钟信号输入端口的路径,时钟源是顶层网表中的时钟源,例如可以为锁相环输出或者顶层时钟输入端口输入的时钟。具体地,如图2所示,时钟源到待测子模块的时钟信号输入端口的路径需要经过单元a和单元b,则时钟信号输入端口的延迟数据包括从时钟源到单元a的走线延迟(走线延迟a)、单元 a的延迟(单元延迟a)、单元 a到单元 b的走线延迟(走线延迟b)、单元 b的延迟(单元延迟b)、单元 b到待测子模块时钟信号输入端口的走线延迟(走线延迟c)。
[0036]
同步信号输入端口的延迟数据通过静态时序分析工具得到,同步信号输入端口的延迟数据包括前一级触发器延迟和从前一级触发器到待测子模块的同步信号输入端口路径上的各级延迟。其中,同步信号输入端口的前一级触发器延迟包括从时钟源到前一级触发器时钟端的延迟,以及从前一级触发器时钟端到前一级触发器数据输出端的延迟。具体地,如图3所示,前一级触发器延迟包括时钟源到待测子模块的前一级触发器时钟端的路径延迟,前一级触发器时钟端到前一级触发器数据输出端的延迟(时钟到输出延迟)。前一级触发器数据输出端到待测子模块的同步信号输入端的路径需要经过单元d和单元 e,则前一级触发器到待测子模块的同步信号输入端口路径上的延迟包括前一级触发器数据输出端到单元 d的走线延迟(走线延迟d)、单元 d的延迟(单元延迟d)、单元 d到单元 e的走线延迟(走线延迟e)、单元 e的延迟(单元延迟e)、单元 e到待测子模块同步信号输入端口的走线延迟(走线延迟f)。
[0037]
同步信号输出端口的延迟数据通过静态时序分析工具得到,同步信号输出端口的延迟数据包括同步信号输出端口到后一级触发器路径上的各级延迟和后一级触发器延迟。其中,后一级触发器延迟包括从时钟源到后一级触发器时钟端的延迟、后一级触发器的建立时间和保持时间。如图4所示,待测子模块的同步数据信号输出端口到后一级触发器的路径需要经过单元 g和单元 h,则同步信号输出端口到后一级触发器路径上的各级延迟包括同步信号数据输出端口到单元 g的走线延迟(走线延迟g)、 单元 g的延迟(单元延迟g)、单元 g到单元 h的走线延迟(走线延迟h)、单元 h的延迟(单元延迟h)、单元 h到待测子模块同步信号输出端口的走线延迟(走线延迟k)。后一级触发器延迟包括从时钟源到后一级触发器时钟端的延迟、后一级触发器的建立时间和保持时间。
[0038]
异步信号与时钟信号无关,故异步信号端口的延迟数据可以设为无延迟,延迟数据设置为0。
[0039]
步骤s4:根据待测子模块中各个端口的延迟数据在待测子模块的前仿真验证环境中添加各级延迟单元、前一级触发器和后一级触发器,并将延迟数据标注到各级延迟单元、前一级触发器和后一级触发器对应的参数中。
[0040]
本实施例中,待测子模块的前仿真验证环境中,待测子模块的输入端口由前仿真验证环境的触发器 di来驱动,输出端口由前仿真验证环境的触发器 do来采样,如图5所示。其中,触发器 di表示输入端口的前仿真验证环境驱动d触发器,触发器 do表示输出端口的前仿真验证环境采样d触发器,具体的,d触发器可以是边沿触发器。
[0041]
根据待测子模块中各个端口的延迟数据,在前仿真验证环境中生成对应的延迟单元,并将上述延迟数据标注到生成的各级延迟单元、前一级触发器和后一级触发器对应的参数中,完成延迟信息反标至前仿真验证环境。
[0042]
本实施例中,通过脚本处理这些延迟数据,对于每一级走线延迟或单元延迟,生成对应的延迟单元,具体的延迟单元可以使用verilog门级单元buf(延迟buf,也称为延迟缓冲器),将上升时间和下降时间分别标注到 buf的例化参数中。在前仿真验证环境中,将输入端口对应的前一级触发器添加到输入端口的前仿真验证环境驱动d触发器和输入端口的延迟链前端之间,并将输入端口前一级触发器的延迟数据标注到前一级触发器的例化参数中;将输出端口对应的后一级触发器添加到输出端口的延迟链末端和输出端口的前仿真验证环境采样d触发器之间,并将输出端口后一级触发器的延迟数据标注到后一级触发器的
例化参数中。
[0043]
本实施例中,对于时钟信号输入端口进行延迟数据标注,以图2所示时钟信号输入端口的延迟路径为例,根据时钟延迟路径得到该路径上的延迟buf,将延迟数据标注到对应的延迟buf参数中,得到时钟信号输入端口的延迟数据,如图6所示。
[0044]
对于同步信号输入端口进行延迟数据标注,以图3所示同步信号输入端口的延迟路径为例,根据延迟路径得到该路径上的延迟buf和前一级触发器,将延迟数据标注到对应的延迟buf参数中和前一级触发器参数中,得到同步信号输入端口的延迟数据,如图7所示。
[0045]
在前仿真验证环境中,待测子模块的输出端口会连接监视器(monitor),通常用一个触发器来采样。
[0046]
为了保证输出端口后一级触发器的时序都能够被检查到,需要在待测子模块的输出端口添加延迟链,通过例化buf的方式,反标从静态时序分析工具sta中获得的输出路径延迟。另外还需要将前仿真验证环境中添加后一级触发器,插入到输出延迟链末端和前仿真验证环境监视器采样触发器(触发器do)之间,后一级触发器的时钟延迟也通过延迟链反标sta中获得的时钟延迟信息。对于同步信号输出端口进行延迟数据标注,以图4所示同步信号输出端口的延迟路径为例,根据延迟路径得到该路径上的延迟buf和后一级触发器,将延迟数据标注到对应的延迟buf参数中和后一级触发器参数中,得到同步信号输出端口的延迟数据,如图8所示。
[0047]
步骤s5:将子模块门级网表、子模块sdf文件加入到待测子模块的前仿真验证环境中,运行待测子模块前仿真验证环境的前仿真激励对待测子模块进行后仿真验证。
[0048]
本实施例中,将待测子模块对应的子模块门级网表、子模块sdf文件加入到待测子模块的前仿真验证环境中,通过待测子模块的前仿真激励对待测子模块进行后仿真验证。
[0049]
在前仿真验证环境中对待测试子模块的端口时序反标完成后,将子模块的门级网表和子模块网表对应的sdf加入到前仿真验证环境中,运行子模块前仿真验证环境的前仿真激励,如果有时序错误,会通过前仿真环境的功能检查器或者后一级触发器采样同一个输出端口检查一致性报错,或者后一级触发器中采样时间和保持时间对比报错。
[0050]
上述方法,先获取待测子模块对应的子模块门级网表、子模块sdf文件,顶层模块对应的顶层门级网表和延迟信息、以及待测子模块中各个端口的端口信息,端口信息包括端口名称和端口类型,其中,所述端口类型包括时钟信号输入端口、同步信号输入端口、同步信号输出端口、异步信号端口;然后,根据顶层门级网表、延迟信息和端口信息确定待测子模块中各个端口的延迟数据,上述延迟数据包括与待测子模块相连接的前一级触发器延迟、后一级触发器的延迟、以及前一级触发器到待测子模块输入端口的路径延迟和待测子模块输出端口到后一级触发器的路径延迟;之后,根据延迟数据在待测子模块的前仿真验证环境中添加各级延迟单元、前一级触发器和后一级触发器,并将延迟数据标注到对应的参数中;最后,将子模块门级网表、子模块sdf文件加入到待测子模块的前仿真验证环境中,运行待测子模块前仿真验证环境的前仿真激励对待测子模块进行后仿真验证。该方法在待测子模块的前仿真环境中标注与待测子模块端口相连接的前、后级模块的接口延迟和路径延迟,同时采用前仿真验证环境中的前仿真激励,在前仿真验证环境中运行待测子模块的后仿真验证,使得待测子模块在后仿真时能够模拟接口延迟时序,从而使待测子模块后仿验证更加全面。
[0051]
作为示例性的实施例,当顶层模块中的所有子模块的输出级为寄存器输出时,在待测子模块前仿真验证环境中,将待测子模块对应的前一级触发器和前仿真验证环境中的驱动触发器作为同一个行为级单元,将前一级触发器对应的延迟标注到前仿真验证环境中的驱动触发器的输出端上。
[0052]
本发明实施例中,前仿真验证环境的激励驱动模块通常会模拟触发器输出的行为,比如在时钟上升沿将激励内容发送到子模块输入端口。由于要求所有子模块输出级为寄存器输出,所以在前仿真验证环境中,可以将网表中前一级触发器和环境驱动触发器视为同一个行为级单元。在反标延迟时,将输入信号路径上所有的延迟都反标到环境驱动触发器的输出端上。通过脚本处理从sta获得的延迟信息,得到用延迟buf描述的延迟链,连接对应的环境驱动触发器和子模块输入端口。图7中对应的同步信号输入端口延迟标注中,将前一级触发器的延迟标注到环境驱动触发器的输出端上,如图9所示,无需在前仿真验证环境中添加前一级触发器。这样反标延迟对前仿真环境改动最小,不会影响驱动器行为,只影响驱动器和待测子模块之间的连接。
[0053]
作为示例性的实施例,当同步信号输出端口对应多个后一级触发器时,同步信号输出端口的延迟数据包括输出端口到每一个后一级触发器路径上的各级延迟和每一个后一级触发器的延迟。
[0054]
本实施例中,对于同步信号输出端口有多个扇出后一级触发器的情况,如图10所示,数据输出端口2有两个扇出后一级触发器。从数据输出端口2出发有两条时序路径,那么仿真环境需要把这两条路径都添加进来。数据输出端口2中与数据输出端口1时序路径相同的部分需要额外复制一份,因为采样的输出端口不同。同步信号输出端口标注延迟数据如图11所示。通过上述方法,保证待测子模块输出端口的所有延迟路径均被检查到,提高了时序检查的准确性。
[0055]
作为示例性的实施例,步骤s5运行待测子模块前仿真验证环境的前仿真激励对待测子模块进行后仿真验证的步骤之前,还包括步骤s6。
[0056]
步骤s6:选取多个后一级触发器中的任意一个后一级触发器作为同步信号输出端口的采样触发器,剩余的后一级触发器作为检查触发器,采样触发器连接前仿真验证环境中的接口采样单元,每一个检查触发器分别连接一个第一检查器,所述第一检查器用于比对采样触发器和检查触发器的输出结果。
[0057]
本实施例中,对于同步信号输出端口有两个或者更多个后一级触发器采样结果,需要添加额外的检查器来检查这多个采样结果是否相同,使得所有的后一级触发器均满足时序要求。可以选择任意一个后一级触发器作为采样对象,也就是将多个后一级触发器中的任意一个后一级触发器作为同步信号输出端口的采样触发器,那么,剩余的其它后一级触发器则作为检查触发器。采样触发器连接前仿真验证环境中的接口采样单元,每一个检查触发器分别连接一个第一检查器,所述第一检查器用于比对采样触发器和检查触发器的输出结果。如图12示,数据输出端口2有两个后一级触发器采样结果,将后一级触发器2作为采样触发器,与前仿真验证环境中的端口2采样触发器直接连接;后一级触发器1b作为检查触发器,检查触发器的输出端与第一检查器连接,第一检查器还与采样触发器连接。在后仿真检查时,第一检查器将采样触发器的输出与检查触发器的输出进行比较,检查这两个采样结果是否相同;保证待测子模块输出端口后一级触发器的延迟时序均被检查到,提高了
时序检查的准确性。
[0058]
需要说明的是,通常网表中dff之间的时钟偏斜(clock skew)不会超过一个时钟周期,所以对于前仿真验证环境监视器中的采样触发器,其时钟延迟可以设为与后一级触发器中时钟路径延迟最短的一致。在图12的示例中,可以将端口2的采样触发器时钟延迟设置为后一级触发器1时钟延迟和后一级触发器2时钟延迟中的最小值。
[0059]
作为示例性的实施例,后一级触发器包括建立时间触发器和保持时间触发器,并在数据路径和时钟路径上添加建立时间和保持时间,并将建立时间触发器和保持时间触发器中的其中一个触发器作为输出触发器,另一个触发器连接第二检查器,第二检查器用于检查建立时间和保持时间的时序。
[0060]
本实施例中,在仿真环境添加的后一级触发器中,为了能够输出建立时间和保持时间违例的结果,采用如图13所示的结构,后一级触发器中有两个触发器,分别为建立时间触发器dff_s和保持时间触发器dff_h。在数据路径和时钟路径上增加相应的建立时间和保持时间,然后再采样。选择建立时间触发器dff_s和保持时间触发器dff_h中的任意一个触发器的输出作为整体的输出,具体的可以是将建立时间触发器dff_s作为整体的输出,将保持时间触发器dff_h连接第二检查器,第二检查器检查建立时间和保持时间的时序,检查两个触发器的输出一致性,这样就可以把建立时间和保持时间的违例反映在后一级触发器的输出上。在待测子模块前仿真验证环境中添加对于输出信号的建立/保持时间检查器,能够在后仿真时准确发现接口时序违例,使子模块后仿验证更加全面。
[0061]
作为示例性的实施例,步骤s5运行待测子模块前仿真验证环境的前仿真激励对待测子模块进行后仿真验证的步骤中,包括步骤s51和s52。
[0062]
步骤s51:若延迟时间大于1个时钟周期减去后一级触发器建立时间并且延迟时间小于1个时钟周期加上后一级触发器保持时间, 则前仿真验证环境的功能检查器和后一级触发器中的第二检查器均报错,后仿真验证不通过。
[0063]
本实施例中,如果delay 》 1t
ꢀ–ꢀ
setup time && delay 《 1t hold time, 其中,delay为延迟时间,1t为1个时钟周期,setup time为后一级触发器的建立时间,hold time为后一级触发器的保持时间;那么前仿真验证环境的功能检查器和后一级触发器中建立时间触发器dff_s和保持时间触发器dff_h对比检查(第二检查器)都报错,待测子模块的后仿真不通过。
[0064]
步骤s52:若延迟时间大于或者等于1个时钟周期加上后一级触发器保持时间,则前仿真验证环境的功能检查器报错,后一级触发器中的第二检查器不报错,后仿真验证不通过。
[0065]
本实施例中,如果delay ≥ 1t hold time, 那么只有前仿真验证环境的功能检查器报错,后一级触发器中dff_s和dff_h对比结果一致,第二检查器不报错,待测子模块的后仿真不通过。
[0066]
上述步骤,通过不同的检查器报错以确定不同时序违例,便于后续时序相关问题的定位和解决。
[0067]
作为示例性的实施例,步骤s5运行待测子模块前仿真验证环境的前仿真激励对待测子模块进行后仿真验证的步骤中,还包括步骤s53和s54。
[0068]
步骤s53:若后一级触发器的数据信号发生建立时间违例,则数据变化滞后1个时
钟周期被采样到。
[0069]
本实施例中,对后一级触发器进行建立时间检查,具体为对后一级触发器输入数据信号额外延迟setup time的时间,再用时钟采样。如果发生建立时间违例,那么数据变化会比正常时序延后1个周期被前仿真验证环境中的功能检查器采样到,从而前仿真验证环境中的功能检查器报错,待测子模块的后仿真不通过。
[0070]
步骤s54:若后一级触发器的时钟信号发生保持时间违例,则数据变化超前1个时钟周期被采样到。
[0071]
本实施例中,对后一级触发器进行保持时间检查,具体为对后一级触发器的时钟信号额外延迟hold time的时间,再来采样数据。如果发生保持时间违例,那么数据变化会比正常时序提前1个周期被前仿真验证环境中的功能检查器采样到,从而前仿真验证环境中的功能检查器报错,待测子模块的后仿真不通过。
[0072]
上述步骤,根据采样的数据变化和正常时序进行比较以暴露时序错误。
[0073]
实施例2本发明实施例提供一种数字芯片的子模块后仿真系统,如图14所示,包括:第一获取模块1,用于获取待测子模块对应的子模块门级网表、子模块sdf文件,顶层模块对应的顶层门级网表和延迟信息,所述顶层模块包括待测子模块;此模块执行实施例1中的步骤s1所描述的方法,在此不再赘述。
[0074]
第二获取模块2,用于获取待测子模块中各个端口的端口信息,所述端口信息包括端口名称和端口类型,其中,所述端口类型包括时钟信号输入端口、同步信号输入端口、同步信号输出端口、异步信号端口;此模块执行实施例1中的步骤s2所描述的方法,在此不再赘述。
[0075]
第一处理模块3,用于根据所述顶层门级网表、延迟信息和端口信息确定待测子模块中各个端口的延迟数据,其中,时钟信号输入端口的延迟数据包括从时钟源到待测子模块的时钟信号输入端口路径上的各级延迟,同步信号输入端口的延迟数据包括前一级触发器延迟和从前一级触发器到待测子模块的同步信号输入端口路径上的各级延迟,同步信号输出端口的延迟数据包括同步信号输出端口到后一级触发器路径上的各级延迟和后一级触发器延迟,异步信号端口的延迟数据为无延迟;其中,各级延迟包括路径上每一级的单元延迟和走线延迟,前一级触发器延迟包括从时钟源到前一级触发器时钟端的延迟和从前一级触发器时钟端到前一级触发器输出端的延迟,后一级触发器延迟包括从时钟源到后一级触发器时钟端的延迟、后一级触发器的建立时间和保持时间;此模块执行实施例1中的步骤s3所描述的方法,在此不再赘述。
[0076]
第二处理模块4,用于根据待测子模块中各个端口的延迟数据在待测子模块的前仿真验证环境中添加各级延迟单元、前一级触发器和后一级触发器,并将延迟数据标注到各级延迟单元、前一级触发器和后一级触发器对应的参数中;此模块执行实施例1中的步骤s4所描述的方法,在此不再赘述。
[0077]
第三处理模块5,用于将子模块门级网表、子模块sdf文件加入到待测子模块的前仿真验证环境中,运行待测子模块前仿真验证环境的前仿真激励对待测子模块进行后仿真验证;此模块执行实施例1中的步骤s5所描述的方法,在此不再赘述。
[0078]
作为示例性的实施例,当顶层模块中的所有子模块的输出级为寄存器输出时,在
interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。通信总线402可以分为地址总线、数据总线、控制总线等。为便于表示,图15中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
[0086]
其中,存储器404可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:ram);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:hdd)或固降硬盘(英文:solid-state drive,缩写:ssd);存储器404还可以包括上述种类的存储器的组合。
[0087]
其中,处理器401可以是中央处理器(英文:central processing unit,缩写:cpu),网络处理器(英文:network processor,缩写:np)或者cpu和np的组合。
[0088]
其中,处理器401还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:asic),可编程逻辑器件(英文:programmable logic device,缩写:pld)或其组合。上述pld可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:cpld),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:fpga),通用阵列逻辑(英文:generic array logic, 缩写:gal)或其任意组合。
[0089]
可选地,存储器404还用于存储程序指令。处理器401可以调用程序指令,实现如本技术执行实施例1中的数字芯片的子模块后仿真方法。
[0090]
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机可执行指令,该计算机可执行指令可执行实施例1的数字芯片的子模块后仿真方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固降硬盘(solid-state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
[0091]
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献