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

在验证期间的逻辑设计中的根时钟频率的动态调整的制作方法

2022-02-22 17:29:16 来源:中国专利 TAG:


1.本公开涉及集成电路(ic)芯片设计验证的技术领域,并且更具体地涉及一种在验证期间动态地调整逻辑系统设计中的根时钟频率的方法和装置。


背景技术:

2.在ic芯片设计过程中,通常通过在多个现场可编程门阵列(fpga)上运行ic芯片的硬件描述语言以仿真ic芯片,从而验证ic芯片设计。在硬件仿真中,多个fpga由根时钟同步。通常,根时钟频率由信号可以由从任意输入向任意输出传播的所有路径的最长路径来确定。因为硬件仿真过程可能花费许多时钟周期来完成,所以将根时钟频率动态地调整为比由最长路径确定的根时钟频率更高可以显著地减少仿真过程的持续时间。


技术实现要素:

3.根据本公开,提供了一种用于在仿真系统上动态地调整逻辑系统设计的根时钟频率的方法。所述方法包括:识别从所述逻辑系统设计的多个信号输入中的一个到所述逻辑系统设计的多个信号输出中的一个的多个信号路径,所述多个信号路径中的每一个具有信号传播延迟;使用放置在所述目标信号输入处的校验逻辑确定到当前根时钟周期中的目标信号输入的输入信号的状态;基于到所述当前根时钟周期中的所述目标信号输入的所述输入信号的状态和沿着与所述目标信号输入相关联的每个信号路径的一个或多个逻辑器件,从所述当前根时钟周期中的所述多个信号路径中确定目标信号路径;以及基于排除所述目标信号路径的所述多个信号路径的所述信号传播延迟的最长信号传播延迟,确定所述逻辑系统设计的所述根时钟频率。
4.此外,根据本公开,提供了一种用于动态地调整仿真系统上的逻辑设计的根时钟频率的装置。该装置包括存储程序指令的存储器和被配置为执行程序指令以进行以下操作的处理器:从逻辑系统设计的多个信号输入中的一个到逻辑系统设计的多个信号输出中的一个的多个信号路径,多个信号路径中的每一个具有信号传播延迟;使用放置在目标信号输入处的校验逻辑来确定到当前根时钟周期中的目标信号输入的输入信号的状态;基于输入信号到当前根时钟周期中的目标信号输入的状态和沿着与目标信号输入相关联的每个信号路径的一个或多个逻辑器件,从当前根时钟周期中的多个信号路径中确定目标信号路径;以及基于排除目标信号路径的多个信号路径的信号传播延迟的最长信号传播延迟来确定用于逻辑系统设计的根时钟频率。
5.此外,根据本公开,提供了一种计算机可读存储介质,其存储用于动态地调整仿真系统上的逻辑设计的根时钟频率的计算机程序。所述计算机程序执行:识别从所述逻辑系统设计的多个信号输入中的一个到所述逻辑系统设计的多个信号输出中的一个的多个信号路径,所述多个信号路径中的每一个具有信号传播延迟;使用放置在所述目标信号输入处的校验逻辑确定到当前根时钟周期中的目标信号输入的输入信号的状态;基于到所述当前根时钟周期中的所述目标信号输入的所述输入信号的所述状态和沿着与所述目标信号
输入相关联的每个信号路径的一个或多个逻辑器件,从所述当前根时钟周期中的所述多个信号路径中确定目标信号路径;以及基于排除所述目标信号路径的所述多个信号路径的所述信号传播延迟的最长信号传播延迟,确定所述逻辑系统设计的所述根时钟频率。
附图说明
6.图1示出了根据本发明的一些实施例的动态地调整芯片设计验证中的根时钟频率的示例性方法的流程图。
7.图2是示出根据本公开的一些实施例的、使用多个现场可编程门阵列 (fpga)的逻辑设计的仿真的示意图。
8.图3示出了图2中所示的多个fpga的信号路径的示例性完整列表。
9.图4示出了根据本公开的一些实施例的、排除具有处于不变状态的一个信号输入的目标信号路径的示例性结果。
10.图5示出了根据本发明的一些实施例的、排除三个信号输入中的一个处于0状态的目标信号路径的示例性结果。
11.图6示出了根据本发明的一些实施例的、在芯片设计检验中动态地调整根时钟频率的示例性设备。
具体实施方式
12.下面参考附图详细描述本公开的实施例。在整个说明书中,附图中相同或相似的附图标记表示具有相同或相似功能的相同或相似的元件。所描述的实施例是本公开的一些而非全部实施例。本领域普通技术人员基于所描述的实施例在无需创造性的努力的情况下获得的其他实施例应该落入本公开的范围内。除非存在冲突,否则实施例的以下实施例和特征可以彼此组合。
13.在被最终用于生产之前,逻辑系统设计(例如,集成电路(ic)芯片) 通常需要被验证。可以通过使用多个现场可编程门阵列(fpga)来仿真 (emulate)逻辑系统设计来实现逻辑设计的验证。逻辑设计的仿真可以包括将逻辑设计的硬件描述语言(hdl)代码编译成门级网表,并且在配置为模仿逻辑设计的多个fpga上实现该门级网表。通过在fpga上运行仿真的逻辑设计系统,可以生成逻辑设计系统的波形以用于进一步验证。
14.由于一个fpga仅可以提供有限数量的门,多个fpga中的每个fpga仅模拟逻辑设计的一个或多个组件。可以连接多个fpga以硬件地模拟整个逻辑系统设计。根据仿真逻辑设计系统的根时钟来同步多个fpga之间的信号传输。在一个根时钟周期内,在仿真逻辑设计系统的信号输入处的输入信号可能需要通过多个fpga传播,以达到目标信号输出处,从而使得跨fpga的每个仿真组件的状态可以被同步。
15.通常,仿真逻辑设计系统包括多个信号输入和多个信号输出。输入信号从一个信号输入传播到一个信号输出的路径被称为信号路径。多个fpga中的每一个包括至少一个逻辑器件,诸如触发器、逻辑门、寄存器等。当信号传播通过逻辑器件时,出现传播延迟。当信号通过连接两个逻辑器件的导线传播时,也会出现传播延迟。通过将信号路径沿线的逻辑器件和导线的传播延迟累加,可以计算信号路径的传播延迟。
16.仿真逻辑设计系统通常包括具有不同传播延迟的多个信号路径。为了确保输入信
号在根时钟周期内传播通过所有信号路径,根时钟周期需要大于或等于仿真逻辑设计系统的所有信号路径中的最长信号路径的传播延迟。最长信号路径称为关键路径。因此,关键路径的传播延迟决定根时钟频率。
17.在一些实施例中,在编译期间,可以编译逻辑系统设计的硬件描述语言 (hdl)代码,并且可以计算所有信号路径的传播延迟。通过求解关键路径的传播延迟的倒数可以确定根时钟频率。在仿真期间,根时钟用于同步仿真系统中的多个fpga。根时钟在整个仿真期间保持恒定。
18.通常,可以根据关键路径的传播延迟来确定根时钟频率。由于关键路径的传播延迟是多个信号路径中的最长信号路径,所以将根时钟频率设置为相应地最低,从而导致仿真非常耗时。
19.在某些情况下,信号输入处的某个特定输入信号可能在当前根时钟周期中保持不变。换句话说,该特定输入信号不通过仿真系统从信号输入传播到一个或多个信号输出。也就是说,对于该特定输入信号而言,从输入到一个或多个信号输出的信号路径在当前根时钟周期中不携带变化的信号。因此,与本公开一致,这样的信号路径从用于确定当前根时钟周期中的根时钟频率的信号路径中排除,并且仅在当前根时钟周期中携带改变信号的信号路径用于确定根时钟频率。排除承载不变信号的信号路径不影响逻辑设计的功能的验证。
20.在编译期间,hdl代码可以被编译成门级网表以在多个fpga上实现。在一些实施例中,当代码正被编译时,计算所有信号路径的传播延迟。当所计算的信号路径的传播延迟大于或等于目标延迟阈值时,信号路径的信号输入可以被确定为目标信号输入。根据目标延迟阈值,可以确定一个或多个目标信号输入。在实际应用中,可以选择目标延迟阈值,使得与具有长传播延迟的信号路径相关联的足够数量的信号输入可以被确定为目标信号输入。在一些实施例中,可以确定目标延迟阈值,使得目标信号输入的数量与仿真系统的所有信号输入的数量的比率大于或等于目标百分比。在一些实施例中,目标百分比可以在20%至90%的范围内,比如50%。
21.在确定目标信号输入之后,可以将校验逻辑放置在每个目标信号输入处,以确定到当前根时钟周期内的目标信号输入的输入信号的状态。目标信号输入的状态可以包括目标信号输入处的输入信号为0或1,和/或输入信号保持不变或在当前根时钟周期中改变。输入信号为0的状态也被称为“0状态”,并且输入信号为1的状态也被称为“1状态”。进一步地,输入信号保持不变的状态也被称为“不变状态”,并且输入信号改变的状态也被称为“改变状态”。然后,与具有不变状态的目标信号输入关联的信号路径可以被识别。在一些情况下,即使对应的目标信号输入处于不变状态,信号路径的信号输出处的输出信号仍可改变。可以理解的是,即使一个信号路径的信号输出处的输出信号改变了,该改变状态也不是由该信号路径的不变的输入信号引起的。也就是说,该信号路径的输入信号对于该信号输出处的输出信号没有任何影响。故而,由保持不变的输入信号的延迟可以被无视。
22.在一些实施例中,可以基于在当前根时钟周期中输入的目标信号的状态和沿着与目标信号输入相关联的每个信号路径的一个或多个逻辑器件来在当前根时钟周期中确定目标信号路径。作为示例,可以首先确定当前根时钟周期中目标信号输入是否处于不变状态。响应于目标信号输入在当前时钟周期中处于不变状态,可以基于沿着信号路径的一个或多个逻辑器件来确定与目标信号输入相关联的信号路径的信号输出的输出信号是否保
持不变。响应于输出信号保持不变,信号路径可以被确定为目标信号路径。
23.在一些实施例中,可以首先确定目标信号输入是在当前根时钟周期中的 0状态还是1状态。响应于目标信号输入在当前时钟周期中处于的0状态或1 状态,基于沿信号路径的一个或多个逻辑器件确定与目标信号输入相关联的信号路径的信号输出的输出信号是否保持不变。响应于输出信号保持不变,信号路径被确定为目标信号路径。
24.通过沿着信号路径跟踪逻辑器件可以确定在信号路径的信号输出处的输出信号是否改变。例如,当与门逻辑器件的信号输入中的一个在当前根时钟周期中是0时,与门逻辑器件的信号输出在当前根时钟周期中是0。作为另一示例,当或门逻辑器件的信号输入中的一个在当前根时钟周期中是1时,或门逻辑器件的信号输出在当前根时钟周期中是1。
25.在仿真期间,针对当前根时钟周期动态地确定根时钟频率。目标信号路径被排除在确定根时钟频率之外。根据实际的逻辑系统设计,在确定根频率的过程中,可以排除一个或多个目标信号路径。因为目标信号路径通常具有相对长的传播延迟,所以在排除目标信号路径之后,与在编译阶段期间确定的关键路径的传播延迟相比,仿真系统的剩余信号路径的最长传播延迟通常更短。因此,根时钟频率可以增加并且仿真过程不太耗时。
26.图1示出了根据本发明的一些实施例的动态地调整芯片设计验证中的根时钟频率的示例性方法100的流程图。动态调整芯片设计验证中的根时钟频率的方法也被称为“动态频率调整方法”、“动态调整方法”或“调整方法”。
27.如图1所示,在110处,识别从逻辑系统设计的多个信号输入中的一个到逻辑系统设计的多个信号输出中的一个的多个信号路径,该多个信号路径中的每一个都具有信号传播延迟。
28.信号路径是信号从信号输入传播到信号输出的路径。当信号通过逻辑装置或导线连接逻辑装置传播时,可能发生信号传播延迟。信号路径的信号传播延迟包括逻辑器件和沿着信号路径的导线的信号延迟。具有最长信号传播延迟的信号路径被称为关键路径。关键路径的信号传播延迟通常确定根时钟频率。
29.图2是示出根据本公开的一些实施例的、使用多个现场可编程门阵列 (fpga)的逻辑设计的仿真的示意图。包括被配置为仿真逻辑系统设计的多个fpga的系统也被称为“仿真系统”。图2所示的逻辑系统设计包括4个信号输入(a、b、c和d)、3个信号输出(u、v和w)以及8个fgpa(fpga 1-fpga8)。fpga 4包括与门x,fpga 5包括两个与门y和z。在图2中标记了逻辑器件和导线的信号传播延迟。
30.在编译期间,可以针对所有信号路径计算信号传播延迟,并且在图3中示出了图2中的示例系统的结果。最长信号路径是从信号输入d到信号输出 w,信号传播延迟为209ns。因此,根时钟频率为约4.7mhz。
31.再次参考图1,在120处,使用放置在目标信号输入处的校验逻辑可以确定在当前根时钟周期中到目标信号输入的输入信号的状态。
32.可以从与具有相对长的信号传播延迟的信号路径相关联的所有信号输入中选择目标信号输入。在一些实施例中,目标信号输入可以是逻辑系统设计的任何输入。校验逻辑可以被配置为确定目标信号输入的状态,其包括0、1、不变和/或改变。信号输入的0状态对应于在当前根时钟周期中的信号输入处等于0的输入信号。信号输入的1状态对应于在当前根时钟周期中的信号输入处等于1的输入信号。信号输入的不变状态对应于在当前根时钟
周期中输入信号在信号输入处相同。信号输入的改变状态对应于在当前根时钟周期中输入信号在信号输入处切换。
33.在一些实施例中,校验逻辑是x或门。当前根时钟周期中的输入信号可与先前根时钟周期中的输入信号进行xor运算。如果它们不同,则x或门的输出是1。如果它们相同,则x或门的输出为0。因此,校验逻辑能够确定信号输入是处于不变状态还是处于变化状态。
34.在130处,基于在当前根时钟周期中目标信号输入的输入信号的状态和沿着与目标信号输入相关联的每个信号路径的一个或多个逻辑器件,可以在当前根时钟周期中确定目标信号路径。
35.在当前根时钟周期中确定目标信号输入的状态之后,可以基于目标信号输入的状态来确定目标信号路径。作为示例,可以首先确定在当前根时钟周期中目标信号输入是否处于的不变状态。响应于目标信号输入在当前时钟周期中处于不变状态,源自目标信号输入的信号路径可以被确定为目标信号路径。
36.在一些实施例中,可以确定目标信号输入是在当前根时钟周期中的0状态还是1状态。响应于目标信号输入在当前时钟周期中处于的0状态或1状态,基于沿信号路径的一个或多个逻辑器件可以确定与目标信号输入相关联的信号路径的信号输出的输出信号是否保持不变。响应于输出信号保持不变,信号路径被确定为目标信号路径。
37.在一些实施例中,通过沿着信号路径跟踪逻辑器件可以确定在信号路径的信号输出处的输出信号是否改变。例如,当与门逻辑器件的信号输入中的一个在当前根时钟周期中是0时,与门逻辑器件的信号输出在当前根时钟周期中是0。在另一示例中,当或门逻辑器件的信号输入中的一个在当前根时钟周期中是1时,或门逻辑器件的信号输出在当前根时钟周期中是1。即,响应于目标信号输入处于0状态,目标信号路径可由多个连续与门组成。类似地,响应于目标信号输入处于1状态,目标信号路径可以由多个连续或门组成。
38.在140处,基于排除目标信号路径的多个信号路径的信号传播延迟的最长信号传播延迟可以确定逻辑系统设计的根时钟频率。
39.在仿真期间,针对当前的根时钟周期可以动态地确定根时钟频率。目标信号路径可以从用于确定根时钟频率的信号路径中排除。其余信号路径可以被称为工作信号路径。根据实际逻辑系统设计,对于确定根频率可以排除一个或多个目标信号路径。因为目标信号路径通常具有相对长的传播延迟,所以在排除目标信号路径之后,与在编译阶段期间确定的关键路径的传播延迟相比,仿真系统的剩余信号路径的最长传播延迟通常更短。因此,可以增加根时钟频率,并且仿真过程较少耗时。
40.图4示出了根据本公开的一些实施例的、排除如图2中所示的仿真系统的不变状态中的一个信号输入的目标信号路径的示例结果。在这种情况下,信号输入c处于不变状态。换句话说,fpga 2的触发器c停留在旧值。
41.再次参考图2,一个信号路径从信号输入c开始并且传播通过触发器c (具有5ns的延迟)、连接触发器c和与门x的线(具有80ns的延迟)、与门 x(具有2ns 2ns=4ns的延迟)、连接与门x和与门y的线(具有30的延迟)、与门y(具有2ns 3ns=5ns的延迟)、连接与门y和触发器u的线(具有80ns 的延迟)以及触发器u(具有5ns的延迟),从而累加209ns信号传播延迟。类似地,另一信号路径从信号输入c开始并且传播通过触发器c(具有5ns 的延迟)、连接触发器c和与门x的线(具有80ns的延迟)、与门x(具有2ns 2ns =4ns的延迟)、连接与门x
和与门y的线(具有30ns的延迟)、与门y(具有2ns 3ns=5ns的延迟)、连接与门y和与门z的内部线(具有0ns的延迟)、与门z(具有3ns 2ns=5ns的延迟)、连接与门z和触发器v的线(具有40ns 的延迟)、以及触发器v(具有5ns的延迟),从而累加171ns信号传播延迟。这两个信号路径分别恰好是最长信号路径(209n)和第二最长信号路径 (171ns)。这两个信号路径被确定为目标信号路径并且被排除在用于确定当前根时钟周期的根时钟频率之外。
42.如图4所示,在排除目标信号路径之后,最长信号路径是从信号输入b 到信号输出u的信号路径,而这个信号路径具有150ns的信号传播延迟。因此,根时钟频率被确定为约6.67mhz(即,1/150ns)。与在不排除目标信号路径的情况下确定的根时钟频率(即,4.76mhz)相比,当前根时钟周期的根时钟频率增加了1.42倍。
43.图5示出根据本发明的一些实施例的、在图2中所示的仿真系统中排除三个信号输入中的一个处于0状态的目标信号路径的示例性结果。在这种情况下,信号输入a、信号输入b和信号输入c中的一个处于0状态。换句话说,fpga 1的触发器a、fpga 2的触发器b和触发器c中的一个在当前根时钟周期中输出0。
44.再次参考图2,从信号输入a、信号输入b和信号输入c中的一个开始的信号路径可以类似地确定为目标信号路径。例如,信号输入a处于0状态。因为触发器a输出0,这又迫使与门y和与门z输出0,并且进一步迫使触发器u和触发器v两者输出0,所以从信号输入a开始到信号输出u和信号输出v的两个信号路径都是目标信号路径。另一方面,因为与门y和与门z均输出0并且迫使触发器u和触发器v均输出0,所以从信号输入b开始到信号输出u和信号输出v的信号路径、从信号输入c开始到信号输出u和信号输出v的信号路径以及从信号输入d开始到信号输出v的信号路径不携带变化的信号(例如,信号路径的输入信号和输出信号都是0)并且被确定为目标信号路径。类似地,当信号输入b或信号输入c处于0状态时,这同样的七个信号路径是目标信号路径。这些目标信号路径被排除在用于确定当前根时钟周期的根时钟频率之外。因此,响应于目标信号输入处于0状态,目标信号路径可由多个连续与门组成。类似地,响应于目标信号输入处于1状态,目标信号路径可以由多个连续或门组成。
45.如图5所示,在排除目标信号路径之后,仅保留从信号输入d到信号输出w的一个信号路径,其具有35ns的信号传播延迟。因此,根时钟频率被确定为约28.6mhz。与在不排除目标信号路径(即,4.76mhz)的情况下确定的原根时钟频率相比,当前根时钟周期的根时钟频率是原根时钟频率的6.1 倍。
46.本公开还提供了一种在逻辑系统设计验证中动态调整根时钟频率的装置,其也被称为“动态频率调整装置”、“动态调整装置”或“调整装置”。图 6示出了根据本公开的一些实施例的示例性动态频率调整装置600。如图6 中所示,装置600包括存储程序指令的存储器601和被配置为执行程序指令以进行以下操作的处理器602:识别从逻辑系统设计的多个信号输入中的一个到逻辑系统设计的多个信号输出中的一个的多个信号路径,多个信号路径中的每一个均具有信号传播延迟;使用放置在目标信号输入处的校验逻辑来确定到当前根时钟周期中的目标信号输入的输入信号的状态;基于输入信号到当前根时钟周期中的目标信号输入的状态和沿着与目标信号输入相关联的每个信号路径的一个或多个逻辑器件,从当前根时钟周期中的多个信号路径中确定目标信号路径;以及基于排除目标信号路径的多个信号路径的信号传播延迟中的最长信号传播延迟来确定用于逻辑系统设计的根时钟频率。
47.在一些实施例中,在逻辑设计的编译期间通过累加沿着信号路径的逻辑器件以及连接逻辑器件中的两个的一条或多条线的信号传播延迟来确定该信号路径的信号传播延迟。
48.在一些实施例中,目标信号输入是与具有大于目标延迟阈值的信号传播延迟的信号路径相关联的信号输入。
49.在一些实施例中,设置目标延迟阈值,使得一个或多个目标信号输入的数量与多个信号输入的数量的比率大于或等于目标百分比。
50.在一些实施例中,目标信号输入的状态包括输入信号在当前根时钟周期中是0的0状态、在当前根时钟周期中输入信号是1的1状态、在当前根时钟周期中输入信号不变的不变状态、或者在当前根时钟周期中输入信号改变的变化状态。
51.在一些实施例中,处理器602还被配置为:确定目标信号输入在当前根时钟周期中是否处于不变状态;并且响应于目标信号输入在当前时钟周期中处于不变状态,确定源自目标信号输入的信号路径作为目标信号路径。
52.在一些实施例中,处理器602还被配置为:确定目标信号输入在当前根时钟周期中是0状态还是1状态;响应于目标信号输入在当前时钟周期中处于0状态或1状态,基于沿着信号路径的一个或多个逻辑器件,确定与目标信号输入相关联的每个信号路径的信号输出的输出信号是否保持不变;以及响应于输出信号保持不变,将信号路径确定为目标信号路径。
53.在一些实施例中,处理器602还被配置为:确定目标信号输入在当前根时钟周期中是0状态还是1状态;响应于目标信号输入处于0状态并且与目标信号输入相关联的信号路径包括多个级联的与门,将信号路径确定为目标信号路径;以及响应于目标信号输入处于1状态并且与目标信号输入相关联的信号路径包括多个级联或门,将信号路径确定为目标信号路径。
54.在一些实施例中,存储逻辑系统设计的根时钟频率与多个信号路径之间的关系的查找表基于多个信号路径的信号传播延迟在编译期间生成,并且用于基于与排除目标信号路径的多个信号路径的信号传播延迟的最长信号传播延迟对应的信号路径来确定用于逻辑系统设计的根时钟频率。
55.本领域普通技术人员可以理解,上述方法实施例中的过程的全部或部分可以通过经由计算机程序指示相关硬件来实现。计算机程序可以存储在计算机可读存储介质中。当被执行时,计算机程序可以包括上述方法实施例的过程。计算机可读存储介质可以是磁盘、光盘、只读存储器(rom)或随机存取存储器(ram)。
56.以上公开的仅是本公开的一些实施例,当然可以不用于限制本公开的范围。因此,根据本公开的实施例进行的等同变化仍然落入本公开的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献