用于RTL和带SDF网表的联合仿真的装置和方法与流程

文档序号:34856980发布日期:2023-07-22 21:54阅读:181来源:国知局
用于RTL和带SDF网表的联合仿真的装置和方法与流程

本公开总体上涉及集成电路仿真领域,并且具体地涉及一种用于rtl和带sdf网表的联合仿真的装置和方法。


背景技术:

1、在集成电路的设计过程中,仿真和验证是至关重要的环节。针对集成电路的仿真过程包括功能前仿真和时序后仿真这两个阶段。功能前仿真一般是针对rtl(registertransfer level,寄存器传输级)的仿真,其主要手段是通过仿真验证所设计电路的逻辑功能正确性,仿真速度相对较快。时序后仿真一般是基于基本门单元组成的网表(netlist)、同时将网表的门级电路延迟和各种门级电路之间的连线延迟(通过sdf(standard delayfile,标准延迟文件)表示)等考虑在内的仿真,其目的是发现设计中潜在的约束和时序问题,仿真速度相对较慢。

2、在现有技术中,当执行时序后仿真时,一般会将整个芯片作为待测设计,并且针对整个芯片进行后仿真,但是仿真速度可能会在复杂集成电路逻辑的情况下变得非常慢。为了加快后仿真速度,提出了层次化策略,即,将整个设计对象划分为多个相对独立的子系统来验证,以缩短后仿真验证的周期。然而,这种层次化策略在超大规模soc场景中仍然很慢。

3、因此,需要开发一种用于对集成电路进行时序后仿真的技术,该技术能够在各种芯片场景、甚至是超大规模soc场景中也能够提供较快的仿真速度。


技术实现思路

1、为了解决上述问题,本公开提供了一种利用rtl和带sdf网表的联合仿真来提升大规模集成电路的gls速度的装置和方法,所述装置和方法除了采用了层次化的gls仿真策略之外,还支持利用rtl和带sdf网表一起进行联合仿真,以进一步实现仿真速度提升的目的。此外,本公开进一步解决了现有技术中由于直接在目标模块(即,待测试的模块)之前设置人为的传输延时所导致的无法真实还原目标模块、尤其是其边界处的时序情况的缺陷,因此改进了针对芯片时序的后仿真过程的真实性和完备性。

2、根据本公开的一个方面,提供了一种用于rtl和带sdf网表的联合仿真的方法,其特征在于,包括:将第一模块、第二模块以及芯片顶层设置为网表形态,并且将第三模块设置为rtl形态,其中第一模块是仿真用例所经过的数据路径上的目标模块,第二模块是所述数据路径上与第一模块直接交互的模块,并且第三模块是所述数据路径上除第一模块和第二模块之外的其他模块;获取第一sdf文件、第二sdf文件和顶层sdf文件以用于分别配置第一模块、第二模块以及所述芯片顶层,其中顶层sdf文件包括互连延时模型的延时参数;以及基于所述延时参数在第二模块与第三模块之间设置所述互连延时模型。在一些示例中,通过仅将芯片顶层、所述数据路径上的目标模块(即,第一模块)以及与其直接交互的模块(即,第二模块)设置为网表形态,而将其他模块(即,第三模块)均设置为rtl形态,可以大大提高对芯片进行后仿真的速度。此外,在一些示例中,通过在第二模块与第三模块之间、而不是第一模块与第二模块之间插入所述互连延时模型,使得在作为目标模块的第一模块的边界处测量到的时序信息是真实的,从而改进了时序仿真的完备性。

3、在一些实施例中,第一sdf文件包括第一模块的时序信息,并且第二sdf文件包括第二模块的时序信息。

4、在一些实施例中,所述方法还包括:将所述仿真用例经过的数据路径以外的模块设置为dummy形态。具体而言,将所述仿真用例所不会经过的数据路径上的模块设置为dummy形态。在这些示例中,由于所述仿真用例不会所经过的数据路径上的模块均被设置为“无功能”模式,因此这显著地减小了所述仿真用例的仿真逻辑规模。

5、在一些实施例中,所述方法还包括:将第三模块中所引用的标准库单元和存储器单元设置为行为模型。在这些示例中,由于rtl形态模块中的标准库和存储器被设置为行为模型,从而不参与任何时序仿真,因此这规避了时序仿真所引入的不必要的时序检查信息,并且消除了整个后仿真需要做时序检查所误报的时序违例。

6、在一些实施例中,所述配置第一模块、第二模块以及所述芯片顶层包括:将第一sdf文件、第二sdf文件和顶层sdf文件分别加载到第一模块、第二模块以及所述芯片顶层,使得它们被设置为带sdf网表形态。

7、在一些实施例中,所述方法还包括:提取第三模块与第二模块直接交互的相对于第二模块为输入和输出的端口信号,并且将所述端口信号发送到后端设备以用于所述sdf文件的获取。

8、在一些实施例中,所述延时参数包括第二模块与第三模块之间的线延时,并且所述基于所述延时参数在第二模块与第三模块之间设置所述互连延时模型包括:将第二模块与第三模块之间的线延时设置为0。在一些实施例中,所述延时参数包括:所述芯片顶层至第三模块内最后发送去往第二模块的输出信号的寄存器的第一延时;以及所述芯片顶层至第二模块内最先接收来自第三模块的输入信号的寄存器的第二延时;其中所述基于所述延时参数在第二模块与第三模块之间设置所述互连延时模型包括:设置第二延时大于第一延时。在这些实施例中,所述第二延时比所述第一延时大10~20%。在一些实施例中,所述延时参数包括:第二模块内最后发送去往第三模块的输出信号的寄存器与第三模块内最先接收来自第二模块的输入信号的寄存器之间的第三延时。在这些实施例中,所述基于所述延时参数在第二模块与第三模块之间设置所述互连延时模型包括:将所述第三延时设置为5~10ps。在上面这些示例中,由于第二模块和第三模块分别属于不同的形态,即网表形态和rtl形态,因此需要相应地设置第二模块与第三模块之间的延时,从而保证从第二模块到第三模块以及从第三模块到第二模块的交互握手数据采样均是正确的,具体而言,即分别保证第二和第三模块中接收信号的寄存器的建立时间没有错误,从而实现了rtl形态模块与网表形态模块之间的信号时延的全局平衡。

9、在一些实施例中,所述方法还包括:将所述芯片顶层至第三模块的输入端的线延时设置为0。在一些实施例中,所述方法还包括:将所述芯片顶层至第三模块的输出端的线延时设置为0。这样,可以最大程度地减少与目标模块(即,第一模块)不相关的模块或单元的线延时对时序仿真过程的影响。

10、根据本公开的另一方面,提供了一种用于rtl和带sdf网表的联合仿真的装置,其特征在于,包括:模块设置组件,其被配置成:将第一模块、第二模块以及芯片顶层设置为网表形态,并且将第三模块设置为rtl形态,其中第一模块是仿真用例所经过的数据路径上的目标模块,第二模块是所述数据路径上与第一模块直接交互的模块,并且第三模块是所述数据路径上除第一模块和第二模块之外的其他模块;文件获取组件,其被配置成获取第一sdf文件、第二sdf文件和顶层sdf文件以用于分别配置第一模块、第二模块以及所述芯片顶层,其中顶层sdf文件包括互连延时模型的延时参数;以及延时设置组件,其被配置成基于所述延时参数在第二模块与第三模块之间设置所述互连延时模型。

11、根据本公开的又一方面,提供了一种其上存储有可执行指令的计算机可读介质,所述指令在被处理器执行时使得所述处理器实行根据前述方面的步骤的方法。

12、通过本公开提供的用于rtl和带sdf网表的联合仿真的方法和装置,可以允许在采用层次化仿真策略之外,还根据需求对芯片中的各个模块进行rtl和带sdf网表仿真的任意组合,从而缩短后仿真验证的时间,提高仿真验证的效率。具体而言,本公开通过在芯片内仅将所述数据路径上的目标模块以及与目标模块直接交互的模块设置为带sdf网表形态、并且将其他模块都设置为rtl形态,使得所述数据路径上的大部分模块都处于仿真速度相对较快的rtl模式,而只有目标模块以及与目标模块直接交互的模块处于仿真速度相对较慢的sdf网表模式,从而大大提升了原本耗时的后仿真过程的仿真速度。

13、此外,本公开通过在目标模块以及与目标模块直接交互的模块之前插入特定的互连延时模型,也就是说,将互连延时模型插入在被设置为rtl形态的其他模块与跟目标模块直接交互的模块之间,使得目标模块与跟其直接交互的模块之间的信号时序是真实的,换句话说,使得目标模块的边界处的时序情况是真实的而非人为设定的,因此有助于提高芯片后仿真的真实性和完备性。

14、总体而言,本公开的技术实现了仿真速度的提升,并且能够对目标模块进行更加真实完备的时序仿真。

15、根据在下文中所描述的实施例,本公开的这些和其他方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。

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