System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于对电路进行仿真的方法、电子设备、计算机可读存储介质和程序产品技术_技高网

用于对电路进行仿真的方法、电子设备、计算机可读存储介质和程序产品技术

技术编号:40077256 阅读:11 留言:0更新日期:2024-01-17 01:39
本公开涉及一种用于对电路进行仿真的方法和电子设备。该方法包括:将待仿真的电路划分为时钟和重置发生器CRG单元和多个逻辑分区,CRG单元被配置为发出CRG信号,CRG信号包括时钟信号和重置信号中的至少一项;以及响应于CRG信号,按时隙对多个逻辑分区进行并行逻辑仿真以生成逻辑仿真集。由于电路被划分为CRG单元和各个逻辑分区,因此各个逻辑分区在每个时隙内的寄存器逻辑进程没有数据依赖,可以按时隙对各个逻辑分区进行相互独立的仿真,而只需要在每个时隙开始时对CRG单元和多个逻辑分区进行同步。相对于目前同步发生在每个region的情况,这可以减小调度开销和同步开销,从而提高仿真的效率。

【技术实现步骤摘要】

本公开涉及硬件设计领域,更具体而言涉及用于对电路进行仿真的方法、电子设备、计算机可读存储介质和程序产品


技术介绍

1、在集成电路(integrated circuit,ic)芯片设计领域,通常使用硬件描述语言(hardware description language,hdl)进行电路设计和描述。例如,systemverilog语言是常用的硬件描述语言之一。一些硬件描述语言描述的程序是由执行线程组成,用事件(event)来模拟集成电路中的信号或变量状态的变化。为避免在同一个时刻执行线程执行顺序的不确定性,hdl可以规定不同执行线程执行所在的域(region)。

2、用hdl描述的芯片在流片之前,需要用电子设计自动化(electronic designautomation,eda)工具对它进行完整的功能仿真。目前主要采用的仿真技术是多核并行仿真技术。商业上能够支持多核并行仿真的方案都是把事件作为基本单位进行任务分割。但是,为了确保事件的确定性执行顺序,事件之间须在每个region完成一次同步。由于在每个时隙(timeslot)内要执行多个region,这就导致了基于事件分离的任务之间调度开销和同步开销过大,使得多核并行仿真的加速效果不够理想。


技术实现思路

1、鉴于上述问题,本公开的实施例旨在提供用于对电路进行仿真的方法、电子设备、计算机可读存储介质和程序产品,其可以用于提高电路仿真的效率。

2、根据本公开的第一方面,提供一种用于对电路进行仿真的方法。该方法包括:将待仿真的电路划分为时钟和重置发生器crg单元和多个逻辑分区,crg单元被配置为发出crg信号,crg信号包括时钟信号和重置信号中的至少一项;以及响应于crg信号,按时隙对多个逻辑分区进行并行逻辑仿真以生成逻辑仿真集。由于电路被划分为crg单元和各个逻辑分区,因此各个逻辑分区在每个时隙内的寄存器逻辑进程没有数据依赖,可以按时隙对各个逻辑分区进行相互独立的仿真,而只需要在每个时隙开始时对crg单元和多个逻辑分区进行同步。相对于目前同步发生在每个region的情况,这可以减小调度开销和同步开销,从而提高仿真的效率。

3、在第一方面的一种实现方式中,响应于来自crg单元的crg信号按时隙对多个逻辑分区进行并行仿真以生成逻辑仿真集包括:在第一仿真时隙内,基于crg信号触发多个逻辑分区中的相应逻辑分区,使用来自存储器的在第二仿真时隙期间计算完成的数据来对相应分区进行并行仿真,第二仿真时隙位于第一仿真时隙之前;在第一仿真时隙内对多个逻辑分区进行并行仿真,以生成第一仿真子集并且将相应逻辑分区的逻辑仿真的第一完成状态集反馈给crg单元;以及基于第一仿真子集和第一完成状态集生成逻辑仿真集。通过上述设置,在当前时隙,只需要从存储器中读取上一时隙计算完成的数据,便可以让每个逻辑分区开始独立进行计算。因此执行线程之间同步只会发生在每个时隙的开始时刻,从而提高了仿真的效率。

4、在第一方面的一种实现方式中,多个逻辑分区中的每个逻辑分区包括多个寄存器逻辑进程,寄存器逻辑进程包括寄存器和由寄存器驱动的组合逻辑。

5、在第一方面的一种实现方式中,将待仿真的电路划分为crg单元和多个逻辑分区包括:将待仿真的电路初步划分为顶层模块和多个初始分区;指定顶层模块为crg单元;确定多个初始分区的多个输出信号是否是crg信号;响应于多个初始分区中的至少一个初始分区的输出信号是crg信号,将至少一个初始分区合并到crg单元,并且将多个初始分区中除至少一个初始分区之外的初始分区确定为多个逻辑分区。

6、在第一方面的一种实现方式中,确定多个初始分区的多个输出信号是否是crg信号包括:遍历所有多个初始分区中的功能模块的输入信号列表中的敏感信号,形成敏感信号集合;遍历所有多个初始分区以确定多个初始分区中的每个初始分区是否为另一初始分区的输入敏感信号列表;基于多个初始分区中的至少一个初始分区是否是另一初始分区的输入敏感信号列表,确定至少一个初始分区的输出信号是否是crg信号。

7、在第一方面的一种实现方式中,将多个初始分区中除至少一个初始分区之外的分区确定为多个逻辑分区还包括:构建针对待仿真的电路的模块的节点的超图;在构建超图连接关系时判断每个图边的可切分性;以及基于可切分性来确定多个逻辑分区。相对于基于事件构建超图,上述切分方式可以使图的节点数量缩减,大大降低了切分的复杂度;其次,在切分前分析每个图边的可细分性可以减少后期处理的复杂性。

8、在第一方面的一种实现方式中,将多个初始分区中除至少一个初始分区之外的分区确定为多个逻辑分区还包括:对初始分区的边界进行调整以使多个逻辑分区的负载平衡。上述调整可以进一步减小调度开销。

9、在第一方面的一种实现方式中,将多个初始分区中除至少一个初始分区之外的分区确定为多个逻辑分区还包括:响应于待仿真的电路中具有多个异步时钟,将跨异步时钟的数据流动划分在同一逻辑分区内。通过上述切分方式,使得异步时钟不会跨不同的逻辑分区,从而进一步减少了同步开销。

10、在第一方面的一种实现方式中,对多个逻辑分区进行并行逻辑仿真还包括:将待仿真的电路中的最高频时钟设为基准,将其他低频时钟的时钟沿与最高频时钟的时钟沿对齐;基于对齐后的时钟对多个逻辑分区进行并行逻辑仿真。上述设置可以实现集成电路的大部分逻辑分区在同一个调度区间之内并行仿真,从而将多个逻辑分区之间的同步次数减少到有效高频时钟沿数,多个逻辑分区之间同步的次数不会随着异步时钟数量的增加而增加,进一步提高了仿真效率。

11、在第一方面的一种实现方式中,该方法还包括:确定多个逻辑分区的数目;如果多个逻辑分区的数目不低于处理器核的数目的预定倍数,则将多个逻辑分区中相互之间具有数据交换的多个逻辑分区划分成一个组;以及优先调度同一组内的多个逻辑分区来对多个逻辑分区进行并行逻辑仿真。上述设置可以减少处理器核的空闲时间,从而进一步提高仿真的效率。

12、在第一方面的一种实现方式中,将待仿真的电路划分为时钟和重置发生器crg单元和多个逻辑分区包括:确定待仿真电路中的共有电路模块,共有电路模块被多个逻辑分区中的至少两个分区共享;以及将共有电路模块复制以将共有电路模块划分至至少两个分区。上述设置可以确保单个逻辑分区的完整性,提高了仿真的准确性。

13、在第一方面的一种实现方式中,将待仿真的电路划分为crg单元和多个逻辑分区还包括:响应于crg单元的输出不包括多个逻辑分区之间交换数据使用的时钟,在crg单元中添加伪时钟,其中伪时钟的时钟周期小于或等于crg单元和多个逻辑分区中的最短周期。

14、在第一方面的一种实现方式中,对多个逻辑分区进行并行逻辑仿真还包括:在对多个逻辑分区进行并行逻辑仿真时,在第二仿真时隙期间,控制crg单元在处理器核的空闲期间发出第一仿真时隙的crg信号。上述设置可以隐藏crg单元和多个逻辑分区之间的同步开销,从而进一步提高仿真效率。

15、根据本公开的本文档来自技高网...

【技术保护点】

1.一种用于对电路进行仿真的方法,包括:

2.根据权利要求1所述的方法,其中响应于来自所述CRG单元的CRG信号按时隙对所述多个逻辑分区进行并行逻辑仿真以生成逻辑仿真集包括:

3.根据权利要求1或2所述的方法,其中所述多个逻辑分区中的每个逻辑分区包括多个寄存器逻辑进程,所述寄存器逻辑进程包括寄存器和由所述寄存器驱动的组合逻辑。

4.根据权利要求1-3中任一项所述的方法,其中所述将所述待仿真的电路划分为所述CRG单元和所述多个逻辑分区包括:

5.根据权利要求4所述的方法,其中确定所述多个初始分区的多个输出信号是否是CRG信号包括:

6.根据权利要求4或5所述的方法,其中,所述将所述多个初始分区中除所述至少一个初始分区之外的分区确定为所述多个逻辑分区还包括:

7.根据权利要求4-6中任一项所述的方法,其中,所述将所述多个初始分区中除所述至少一个初始分区之外的分区确定为所述多个逻辑分区还包括:

8.根据权利要求4-7中任一项所述的方法,其中所述将所述多个初始分区中除所述至少一个初始分区之外的分区确定为所述多个逻辑分区还包括:

9.根据权利要求4-8中任一项所述的方法,其中对所述多个逻辑分区进行并行逻辑仿真还包括:

10.根据权利要求1-9中任一项所述的方法,还包括:

11.根据权利要求1-10中任一项所述的方法,其中,将待仿真的电路划分为时钟和重置发生器CRG单元和多个逻辑分区包括:

12.根据权利要求1-11中任一项所述的方法,其中,将待仿真的电路划分为所述CRG单元和所述多个逻辑分区还包括:

13.根据权利要求1-12中任一项所述的电路仿真方法,其中,对所述多个逻辑分区进行并行逻辑仿真还包括:

14.一种用于对电路进行仿真的电子设备,包括:

15.根据权利要求14所述的电子设备,其中所述划分单元被进一步配置为:

16.根据权利要求14或15所述的电子设备,其中所述划分单元被进一步配置为:

17.根据权利要求16所述的电子设备,其中所述划分单元被进一步配置为:

18.根据权利要求14-17中任一项所述的电子设备,其中所述仿真单元被进一步配置为:

19.根据权利要求14-18中任一项所述的电子设备,其中所述仿真单元被进一步配置为:

20.根据权利要求14-19中任一项所述的电子设备,还包括:

21.一种电子设备,包括:

22.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1至13中任一项所述的方法。

23.一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述计算机可执行指令在被处理器执行时,使计算机实现根据权利要求1至13中任一项所述的方法。

...

【技术特征摘要】

1.一种用于对电路进行仿真的方法,包括:

2.根据权利要求1所述的方法,其中响应于来自所述crg单元的crg信号按时隙对所述多个逻辑分区进行并行逻辑仿真以生成逻辑仿真集包括:

3.根据权利要求1或2所述的方法,其中所述多个逻辑分区中的每个逻辑分区包括多个寄存器逻辑进程,所述寄存器逻辑进程包括寄存器和由所述寄存器驱动的组合逻辑。

4.根据权利要求1-3中任一项所述的方法,其中所述将所述待仿真的电路划分为所述crg单元和所述多个逻辑分区包括:

5.根据权利要求4所述的方法,其中确定所述多个初始分区的多个输出信号是否是crg信号包括:

6.根据权利要求4或5所述的方法,其中,所述将所述多个初始分区中除所述至少一个初始分区之外的分区确定为所述多个逻辑分区还包括:

7.根据权利要求4-6中任一项所述的方法,其中,所述将所述多个初始分区中除所述至少一个初始分区之外的分区确定为所述多个逻辑分区还包括:

8.根据权利要求4-7中任一项所述的方法,其中所述将所述多个初始分区中除所述至少一个初始分区之外的分区确定为所述多个逻辑分区还包括:

9.根据权利要求4-8中任一项所述的方法,其中对所述多个逻辑分区进行并行逻辑仿真还包括:

10.根据权利要求1-9中任一项所述的方法,还包括:

11.根据权利要求1-10中任一项所述的方法,其中,将待仿...

【专利技术属性】
技术研发人员:杨德勇张月万辰
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1