CN117396877A - 使用逻辑复制从io焊盘去除非功能性环回路径 - Google Patents
使用逻辑复制从io焊盘去除非功能性环回路径 Download PDFInfo
- Publication number
- CN117396877A CN117396877A CN202280036834.0A CN202280036834A CN117396877A CN 117396877 A CN117396877 A CN 117396877A CN 202280036834 A CN202280036834 A CN 202280036834A CN 117396877 A CN117396877 A CN 117396877A
- Authority
- CN
- China
- Prior art keywords
- original
- logic
- netlist
- duplicate
- graph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000010076 replication Effects 0.000 title claims description 21
- 238000013461 design Methods 0.000 claims abstract description 28
- 238000012360 testing method Methods 0.000 claims abstract description 9
- 238000004088 simulation Methods 0.000 claims description 66
- 238000000034 method Methods 0.000 claims description 36
- 230000006870 function Effects 0.000 claims description 21
- 230000015654 memory Effects 0.000 claims description 19
- 230000001902 propagating effect Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims 3
- 238000002347 injection Methods 0.000 description 24
- 239000007924 injection Substances 0.000 description 24
- 238000005192 partition Methods 0.000 description 21
- 238000013507 mapping Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/333—Design for testability [DFT], e.g. scan chain or built-in self-test [BIST]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/337—Design optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
所描述的是一种用于从被测芯片设计(DUT)中的仿真网表中去除假路径的配置。该配置在原始网表中标识原始逻辑门的原始子图、输入的子集(TI)和输出的子集(TO)。该配置生成原始子图的复制子图,复制子图具有与原始逻辑门相对应的复制逻辑门。该配置将具有第一复制逻辑门的TI连接到恒定传播源,并且将复制逻辑门的其余输入与原始网表中的对应原始逻辑门连接。该配置断开在原始网表中的TO的输出负载,并且将TO的输出负载与复制子图中的对应等效TO连接。该配置删除原始网表中的未与原始网表中的TO的输出负载连接的原始逻辑门。
Description
相关申请的交叉引用
本申请要求于2021年05月25日提交的美国临时申请号63/192,850和于2022年05月23日提交的美国申请号17/750,777的优先权权益,出于所有目的以其整体并入本文。
技术领域
本公开涉及硬件仿真系统,并且更具体地,涉及用于使用逻辑复制提供从输入-输出(IO)焊盘去除非功能性环回路径的系统和方法。
背景技术
速度是用来验证网表正确性的仿真工具的期望质量。网表的仿真速度越快,覆盖越多,对芯片质量的信心就越高。网表的仿真速度受该网表中最长组合路径的限制:信号需要及时遍历沿路径的所有门,然后才能被寄存器捕获。
网表可能具有假路径,即,在芯片上是结构性而非功能性的路径。这些假路径通常导致对时序的过度悲观估计。因此,性能优化算法可能会关注错误的路径。这使得仿真的速度低于实际可以实现的速度。从网表手动去除这些假路径需要专业知识。然而,该手动过程使仿真容易出错。这可能导致将真实的功能路径声明为错误,这使设计在仿真时不起作用。
手动去除假路径的备选方案是直接修改客户的寄存器传输逻辑(RTL),但这通常不被允许,因为它可能对芯片设计的其他方面产生不利影响。假路径也可以通过时序约束文件(例如,设计约束(SDC)文件)来进行处理,但它需要任何时序驱动算法才能注意到它们,这需要向编译器添加更多代码,这使编译器更加复杂并且处理更慢。
发明内容
公开了用于通过消除被测芯片设计(DUT)的所选路径来从仿真网表中去除假路径的配置(例如,系统、方法和存储有如本文描述的指令的非暂态计算机可读存储介质)。作为示例,该配置从原始逻辑电路标识原始网表子图,该原始逻辑电路具有输入(I)、输出(O)、原始驱动器门、输入中的输入子集(TI)以及输出中的输出子集(TO)。该配置从原始网表生成复制子图。复制子图对应于复制逻辑电路,该复制逻辑电路包括与所描述的网表电路中的原始驱动器门相对应的复制驱动器门。该配置将复制子图中具有第一复制驱动器门的TI连接到恒定传播源,并且将复制子图的复制驱动器门的其余输入(I-TI)与原始网表中的原始驱动器门连接。该配置断开原始网表中的TO的输出负载,并且将原始网表中的TO的输出负载与复制子图中的对应等效TO连接。然后,该配置可以通过标识原始网表中的未与TO的输出负载连接的逻辑门来去除网表中的原始逻辑门,该TO的输出负载用于继续仿真系统中的编译流程。
附图说明
从下面给出的详细描述并且从本公开实施例的附图,将更充分地理解本公开。附图用于提供本公开的实施例的知识和理解,并且不将本公开的范围限制于这些特定实施例。此外,附图不一定按比例绘制。
图1图示了根据本公开的一个示例的从“输入”到“输出”的结构路径和假路径。
图2图示了根据本公开的一个示例的示例焊盘。
图3图示了根据本公开的一个示例的环回路径。
图4在子图中图示了根据本公开的一个示例的组合逻辑,该组合逻辑实现了环回路径的至少一部分的布尔函数。
图5图示了根据本公开的一个示例的原始子图与变换后的复制子图。
图6图示了根据本公开的一个示例的子图标识过程。
图7图示了根据本公开的一个示例的逻辑复制过程。
图8图示了根据本公开的一个示例的逻辑重新连接过程。
图9图示了根据本公开的一个示例的逻辑简化(或优化)过程。
图10图示了根据本公开的一个示例的焊盘模块的复制。
图11描绘了根据本公开的一个示例的仿真系统的图。
图12描绘了本公开的实施例可以在其中操作的示例计算机系统的图。
具体实施方式
公开了一种用于使用逻辑复制从输入-输出(IO)焊盘(“IO-PAD)”去除非功能性环回路径的配置(包括系统和过程)。焊盘可以是物理芯片上的连接点。所公开的配置可以适用于仿真系统,在该仿真系统中,网表利用硬件来被实现并且照此被仿真。所公开的配置对被仿真的网表的一部分进行变换,使得网表功能被保留,但一些特定的非功能路径被物理去除。通过解释一些用户命令或通过自动网表分析,可以获得要被变换的逻辑的标识。该配置特别适合处理可以被标识的IO-PAD。
所公开的配置比手动干预快得多并且更加可靠。基于网表中所标识的IO-PAD,所公开的配置自动地对网表的适当部分进行变换以去除假路径。所公开的配置不会去除真实的功能路径,并且因此不会损害网表功能。该解决方案不需要对编译器现有的性能驱动算法进行任何改变,并且因此可以被用在任何编译器中。
作为示例,所公开的配置提供了一种用于通过消除被测芯片设计(DUT)的所选路径来从仿真网表中去除假路径的配置。该配置从具有输入(I)、输出(O)和原始门的原始逻辑电路中标识出子图,并且标识出输入中的输入子集(TI)和输出中的输出子集(TO)。该配置从原始逻辑电路的网表生成复制子图。复制子图是与原始电路相对应的复制电路。复制子图具有与原始门相对应的复制门。该配置将复制子图中的TI连接到恒定传播源,并且将复制子图的其余输入(I-TI)与原始网表中的原始驱动器连接。原始子图的输入连接保持不变。该配置断开原始网表中的TO的输出负载,并且将原始网表中的TO的输出负载与复制子图中的对应等效TO连接。该配置通过对缺少输出负载的逻辑门进行标识来去除网表中的原始逻辑门,并且通过对在复制子图的TI上引入的恒定值进行传播来简化电路逻辑。
芯片可以由形成有向图的门的互连来表示。每个门具有输入针脚和输出针脚。芯片中的最长结构路径的延迟决定了仿真的速度。芯片中的假路径是通过组合逻辑的结构路径,该结构路径存在于芯片的原理图中,但不能被任何设计寄存器捕获。去除假路径会产生更准确的时序估计,因此可以导致更快的仿真。
作为示例,参考假路径的具体情况,指定图S={V,E}作为网表的图,其中V是顶点,并且E是边,并且指定S’={V’,E’}作为网表的组合子图。变量I可以是其输入的集合,并且变量O可以是其输出的集合。将TI视为I的子集,并且将变量o视为子图的输出。变量f可以被指定为根据子图S’的输入I计算o的函数。当o对TI中的任何输入不敏感时,存在一条通过TI的任何输入到S’的输出o的假路径。
现在参考图1,作为示例,它图示了根据本公开的一个示例的清洁焊盘实现方式中的从输入到输出的结构路径。在该示例中,条件缓冲器cb0 105和cb1 110两者仅以相反的灵敏度通过。这意味着不存在先经过“输入”再经过“输出”的功能路径。因此,穿过这两个缓冲门的路径不应当被视为芯片中的关键。
接下来,图2图示了根据本公开的一个示例的示例PAD配置。PAD(或焊盘)是一种网表结构,该网表结构允许设计(DUT,即被测设计)和外部电路(其可以被称为相对于DUT的“外部世界”)之间的通信。具体地,DUT 205向PAD 210提供输入。DUT 205接收PAD 210的输出。PAD 210在DUT 205和外部电路215之间在两个方向上传输信号,因此PAD 210可以被称为输入-输出PAD或IO-PAD。
图3图示了根据本公开的一个示例的环回路径。环回路径是从DUT 205经过PAD210实例的输入和输出的路径。通常,来自DUT 205的输出被传送到外部电路215(例如,通用串行总线(USB)端口、以太网卡等)。在PAD 210实例本身内通常没有环回路径。如果存在从PAD 210的输出作为回到DUT 205的输入的环回,则认为该路径是假路径。即使该路径未被强制为假路径,设计功能通常也不会被通过PAD 210实例的环回路径影响。下面进一步描述了PAD 210中的环回路径,该环回路径是假路径或者可以保证它的去除不会产生芯片故障。
图4在子图中图示了组合逻辑415,该组合逻辑415实现了图3中描述的环回路径的至少一部分的布尔函数。子图对应于组合逻辑415的输入及其输出。作为示例,I和O是子图的输入(分别,输出)的集合。此外,TI 405和TO 410分别是I和O的子集,使得通过组合逻辑415(其实现布尔函数O=f(I))而从TI到TO的所有路径都是假路径,即,它们不影响芯片行为。可以使用多种技术来标识这些子图,例如,关于假路径的逻辑云:
使用详尽的仿真或形式化方法,例如二元决策图(BDD)、SAT(可满足性)。
用户可以通过指向PAD实例(通过实例或模块名称)来标识这种子图。
用户可以使用标准时序约束文件中的set_false_path事务控制语言(TCL)命令,来显式通知假路径。
这里,TI 405至TO 410是网表内提供的结构子图。TI 405是I的子集,I是子图的输入。TO 410是子图的O输出的子集。编译器可以自动收集TI 405和TO 410之间的组合逻辑415。利用该信息,可以开发重新布线的复制来标识假路径,如下文进一步描述的。
子图的副本利用输入I的集合中的元素生成TO 410。也就是说,子图中的原始元素被复制,以构建如下的逻辑,该逻辑利用I生成TO。生成输出TO的原始逻辑被断开,并且此后被重新连接到复制子图中的它们的等价物。在复制子图中,除了TI 405中的输入之外,所有输入被连接到其原始驱动逻辑。此外,TI 405中的所有输入可以被连接到任意信号,因为TO410中的任何输出都不依赖于TI 405中的输入。该任意的重新连接可以被用来尽可能地优化复制(或重复)子图。特别地,这些输入可以被重新连接到恒定值。
接下来,所得的网表变换被优化。具体地,在复制子图中,替代TI 405的恒定值被传播,以消除恒定值的门。这可以被称为恒定值传播。恒定值传播删除了可以被证明是恒定值的门,因为它们在硬件中没有用处。该过程在网表的图中向前传播恒定值。每当恒定值的集合到达门的输入,并且足以证明该门的输出始终输出相同的值时,则可以进一步推进该当前门的输出处的恒定值。也就是说,它允许删除如下的门:该门在引入的恒定值的传递扇出中可以被证明是恒定值。例如,如果门实现两个数字之间的乘法器,并且如果可以证明这两个数字中的一个数字是零,例如任何数字乘以零等于零,则乘法器门的输出将始终是零。该零可以被进一步推进到扇出中的下一个门,并且只要可以证明下一个门是恒定值,就可以重复相同的操作。在原始子图中,产生输出TO 410的逻辑现在已被断开,并且因此不再被需要。该断开的逻辑可以被递归地删除或去除,这可以被称为死逻辑去除。在变换(在该变换中,删除不需要的逻辑)之后,TI 405和TO 410之间的路径不再存在于网表中。
图5A图示了根据本公开的一个示例的原始子图505与复制子图510。复制子图510是假路径中的逻辑的精确副本,并且现在被用来计算TO 410。然而,来自TI 405的元素已被该子图中的恒定值代替。因此,不存在从TI 405到TO 410的路径。复制子图510接收地信号(GND)515(例如,逻辑‘0’或逻辑低信号)以计算TO 410。注意,由于I-TI不是假路径的一部分,因此它可以被保留作为输入,该输入被输入到复制子图510。该变换不会增加新路径的长度。因此,它不会创建比以前更糟糕的真实路径。在从TI 405到TO 410的路径已被物理消除的情况下,被消除路径的逻辑对于任何时序驱动的优化算法都不再可见。因此,对实际功能性关键路径进行关注导致更高的仿真速度。在图5中,原始逻辑和输入TI 405也被维持,以便使O-TO达到存在可选路径的程度,因为它也不是假路径的一部分。
图5B图示了根据本公开的一个示例的、用于使用逻辑复制从IO焊盘去除非功能性环回路径的过程流程。该过程开始于550,在555处标识子图。参考图6,图示了根据本公开的一个示例的子图的标识。在图6中,图示了与DUT 205的输入和用户输入(例如605a-605e)连接的PAD(例如210)。PAD 210包括到外部电路(例如215)的输出。PAD 210包括组合逻辑门(例如415)、第一逻辑与门620a和第二逻辑与门620b,以及驱动器逻辑门。这些门生成(或形成)所标识的子图(例如,门的互连)。在该示例中,PAD 210具有驱动器逻辑门a 630、b 635、c 640和d 645,它们来自多驱动器网络,并且被拉入以允许对将位于子图内的每一个信号的值进行重新计算。此外,外部电路215还包括在信号分析中可能需要考虑的驱动器逻辑门650。
该示例中的PAD 210对TI 405和TO 410进行分析。在TI 405和TO 410之间标识了经过驱动器逻辑门b 635、c 640和d 645的假路径。TO 410的存在示出了输出,该输出将返回到DUT 205的输入。因此,TO的存在标识了TI和TO之间的如下的驱动器逻辑门:这些驱动器逻辑门形成b 635、c 640和d 645的假路径(注意,a 630没有被连接到图中的TI,而是b635被连接到图中的TI)。
返回参考图5b,在子图在555处被标识的情况下,该过程在560处复制具有内部连接的驱动器逻辑门,该驱动器逻辑门是图7中的b’735、c’740和d’745。图7图示了根据本公开的一个示例的驱动器逻辑门复制。具体地,在该步骤中,子图中的所有驱动器逻辑门被复制,并且内部连接性被恢复。在图7中,复制的驱动器逻辑门用其原始名称的撇号后缀来指示。具体地,在TI和TO之间的路径中的、TO的逻辑方程(如网表中所示)的功能所需的每个门被复制,并且具有原始门的主要名称。例如,在PAD 210内部的复制驱动器逻辑门a’730、b’735、c’740和d’745以及在PAD 210外部并且是外部电路215的一部分的复制驱动器逻辑门e’750分别对应于如下项:PAD 210的驱动器逻辑门a 630、b 635、c 640和d 645、以及外部电路215的驱动器逻辑门e’750。与PAD 210内的并且被连接到外部电路215的逻辑门e 650的原始驱动器逻辑门a 630、b 635、c 640和d 645类似,复制驱动器逻辑门a’730、b’735、c’740和d’745中的每个复制驱动器逻辑门被连接在一起。
返回参考图5B,在565处,在驱动器逻辑门被复制和连接的情况下,PAD中的其他逻辑门被连接。转到图8,它图示了根据本公开的一个示例的逻辑重新连接。具体地,在该示例中,除TI之外,组合逻辑门415和与门620a、620b被重新连接到的原始网表中的、它们所对应的驱动器逻辑门a 630、b 635、c 640和d 645。复制逻辑中的TI被重新连接到恒定值(在该示例中,GND)。原始子图中的TO与原始驱动器门d 645断开,并且被重新连接到来自复制子图的复制驱动器逻辑门d’745的贡献。也就是说,为了重新连接复制逻辑的逻辑,除了TI之外,所有复制输入都被重新连接到原始驱动器,即,即复制输入与复制驱动器逻辑门a’730、b’735、c’740和d’745连接,以及原始输入与驱动器逻辑门a 630、b 635、c 640和d 645连接。如前所述,复制子图中的TI被连接到恒定值(例如地(或逻辑‘0’))。
在该示例中,原始子图的所有输入保持不变,并且连接到它们的原始驱动器逻辑门a 630、b 635、c 640和d 645。在复制子图的驱动器逻辑门a’730、b’735、c’740和d’745中,除了TI输入子集中的输入之外,复制子图中的用于这些驱动器逻辑门a’730、b’735、c’740和d’745的所有输入被连接到原始网表中的、它们所对应的驱动器逻辑门a 630、b 635、c 640和d 645。此外,复制子图中的驱动器逻辑门a’730、b’735、c’740和d’745的所有输入(它们是输入子集TI的一部分)被重新连接到恒定值(例如地(或逻辑‘0’))。
返回参考图5B,在逻辑被重新连接的情况下,该过程可以可选地在570处对逻辑进行简化。图9图示了根据本公开的一个示例的逻辑简化(或优化)。具体地,一些逻辑可以被简化为恒定值或无负载(没有读取器)。例如,复制驱动器门逻辑b’735具有仅一个非恒定值输入1b’1。因此,该复制驱动器门逻辑b’735可以通过从网表删除(或去除)它来进行简化,因为该门已被证明是逻辑‘0’或‘1’。此外,原始子图的原始驱动器门逻辑d 645没有负载。因此,可以从原始网表中删除原始驱动器门逻辑d 645。也就是说,通过去除路径中具有仅一个输入或没有负载的门,来简化原始子图的逻辑和复制子图的逻辑。在该示例中,连接到TO的驱动器门逻辑被连接到复制驱动器逻辑门745,而不被连接到原始驱动器逻辑门645。因此,原始驱动器门逻辑d 645被视为不需要的门,并且可以被去除,而所有其他门连接起来。返回参考图5B,在575处,在焊盘中的逻辑门被连接的情况下,仿真系统的编译流程可以继续。此外,通过原始网表的简化,可以基于删除的逻辑门来生成更新的网表。
图10图示了根据本公开的一个示例的PAD模块的复制。在图示的示例中是模块复制而不是跟踪子图复制。这可以在提供IO-PAD模块或实例时被应用。图10图示了具有TI405和I-TI 1002以及TO 410和O-TO 1003的焊盘1010。TO 405的导线不依赖于TI 405。焊盘1010与DUT驱动器1015耦合。过程生成复制焊盘1015,其中I-T 1002和地1004作为输入、并且TO 410作为输出。复制焊盘1015与复制DUT驱动器1020耦合。TO贡献可以由I-TI 1002和地1004生成。此外,跨边界复制的DUT驱动器1015(即,复制DUT驱动器1020)被复制,因为它们的值可以取决于新插入的地1004。该过程还生成焊盘1025,其中I-TI 1002和TI 405作为输入、并且O-TO 1003作为输出。所有其他输出具有原始驱动器。根据所公开的配置,对PAD内不改变设计功能的环回路径的标识与上述复制算法相结合,以可靠和简单的方式改进了仿真性能。由于它经过简单的网表变换,因此不要求时序驱动算法中的代码改变。
本文的细节提供了所公开配置的操作结果的确认的一个示例。在基础水平处,有向图G可以由具有顶点V和边E的(V,E)表示。边E的集合是VxV的子集。当且仅当(iff)(v1,v2)是边时,顶点v2是顶点v1的后继,并且当且仅当存在边的序列(v_i,v_{i+1})(0<=i<=n),使得v_0=v1且v_{n+1}=v2时,v2可从v1获得。
G的子图是图G’=(V’,E’),使得V’被包括在V中,并且E’被包括在(V’xV’)和E中。子图G’=(V’,E’)的输入是E的所有边(u,v),使得并且v∈V’。相反,子图G’=(V’,E’)的输出是E的所有边(u,v),诸如u∈V’和/>
网表可以被简化为由单输出门组成的等效网表。因此,网表可以被建模为有向图(V,E),该有向图的顶点是门,并且使得当且仅当存在网表的导线将门v1的输出端口连接到门v2的输入端口时,存在边(v1,v2)。继续,通过将B={0,1}定义为布尔值的集合,具有n个变量的布尔函数是从B^n到B的函数。变量X、Y和S是布尔变量的矢量,例如,Y={y_1...y_m}。
接下来,g(Y,X)是从B^m x B^n到B的布尔函数,其中Y属于B^m并且X属于B^n。对于B^n中的S,从B^m到B的布尔函数g^S被定义为:g^S(X)=g(S,X)。此外,g^S是g相对于S的辅因子。变量S[k](0<=k<=n)是属于B^n的n元组S的第k个布尔值。
如果对于任何Y,X上的值改变都不能触发g的结果上的值改变,则布尔函数o=g(X,Y)对X不敏感。接下来,g(x,X)是从B xB^n到B的布尔函数。g关于x的偏导函数如下:这表明,关于x(其为零)的导函数相当于g对x不敏感。
图11描绘了示例仿真环境1100的图,仿真环境1100可以是当前配置可以在其中操作的仿真系统的一部分。仿真环境1100可以被配置成验证电路设计的功能。仿真环境1100可以包括主机系统1107(例如,作为EDA系统的一部分的计算机)和仿真系统1102(例如,诸如现场可编程门阵列(FPGA)或处理器的可编程设备的集合)。主机系统通过使用编译器1110来生成数据和信息,从而构造仿真系统以仿真电路设计。要被仿真的电路设计也被称为被测设计(DUT),其中来自仿真的数据和信息被用于验证DUT的功能。
主机系统1107可以包括一个或多个处理器。在主机系统包括多个处理器的实施例中,这里描述的由主机系统执行的功能可以分布在多个处理器之间。主机系统1107可以包括编译器1110,以转换以表示DUT的描述语言编写的规范,并且产生用于构造仿真系统1102以仿真DUT的数据(例如,二进制数据)和信息。编译器1110可以变换、改变、重建、向DUT添加新函数和/或控制DUT的定时。
主机系统1107和仿真系统1102使用由仿真连接承载的信号来交换数据和信息。该连接可以是但不限于一个或多个电缆,诸如具有与推荐的标准232(RS232)或通用串行总线(USB)协议兼容的管脚结构的电缆。该连接可以是有线通信介质或网络,诸如局域网或广域网,诸如因特网。该连接可以是无线通信介质、或具有使用诸如蓝牙或IEEE 1102.11的无线协议的一个或多个接入点的网络。主机系统1107和仿真系统1102可以通过诸如网络服务器的第三设备来交换数据和信息。
仿真系统1102包括多个FPGA(或其他模块),诸如FPGA 11041和11042以及附加的FPGA至1104N。每个FPGA可以包括一个或多个FPGA接口,通过这些接口,FPGA与其他FPGA(以及潜在的其他仿真组件)相连,以便FPGA交换信号。FPGA接口可以被称为输入/输出管脚或FPGA焊盘。虽然仿真器可以包括FPGA,但是仿真器的实施例可以包括替代用于仿真DUT的FPGA或与该FPGA一起使用的其他类型的逻辑块。例如,仿真系统1102可以包括定制的FPGA、用于仿真或原型的专用ASIC、存储器和输入/输出设备。
可编程设备可以包括可编程逻辑块阵列和互连层次,该互连层级可以使可编程逻辑块能够根据HDL码中的描述互连。每个可编程逻辑块可以启用复杂的组合功能或启用逻辑门,诸如AND逻辑块以及XOR逻辑块。在一些实施例中,逻辑块还可以包括存储器元件/设备,其可以是简单的锁存器、触发器或其他存储器块。根据不同逻辑块之间的互连的长度,信号可以在不同的时间到达逻辑块的输入端,从而可以临时存储在存储器元件/设备中。
可以将FPGA 11041-1104N布局在一个或多个板11121和11122以及附加板1112M上。可以将多个板布局到仿真单元11141中。可以使用仿真单元的底板或任何其他类型的连接来连接仿真单元内的板。此外,多个仿真单元(例如,11141和11142至1114K)可以通过电缆或任何其他方式彼此连接,以形成多仿真单元系统。
对于要被仿真的DUT,主机系统1107向仿真系统1102发送一个或多个位文件。位文件可以指定DUT的描述,并且可以进一步指定由主机系统1107利用跟踪和注入逻辑创建的DUT的分区、分区到仿真器的FPGA的映射、以及设计约束。仿真器使用位文件来构造FPGA以执行DUT的功能。在一些实施例中,仿真器的一个或多个FPGA可以将跟踪和注入逻辑内置于FPGA的硅中。在这种实施例中,主机系统可以不将FPGA构建为对跟踪和注入逻辑进行仿真。
主机系统1107接收要仿真的DUT的描述。在一些实施例中,DUT描述采用描述语言(例如,寄存器传输语言(RTL))。在一些实施例中,DUT描述是网表级别文件、或网表级别文件和HDL文件的混合。如果部分DUT描述或整个DUT描述在HDL语言中,则主机系统可以合成DUT描述,以使用DUT描述创建门级网表。主机系统可以使用DUT的网表来将DUT划分成多个分区,其中一个或多个分区包括跟踪和注入逻辑。跟踪和注入逻辑跟踪通过FPGA的接口交换的接口信号。此外,跟踪和注入逻辑可以将跟踪的接口信号注入到FPGA的逻辑中。主机系统将每个分区映射到仿真器的FPGA。在一些实施例中,跟踪和注入逻辑被包括在用于一组FPGA的选择分区中。跟踪和注入逻辑可以内置于仿真器的一个或多个FPGA中。主机系统可以合成多路复用器以映射到FPGA中。跟踪和注入逻辑可以使用多路复用器来将接口信号注入DUT逻辑。
主机系统创建描述DUT的每个分区以及分区到FPGA的映射的位文件。对于包含跟踪和注入逻辑的分区,位文件还描述了包含的逻辑。位文件可以包括布局和布线信息以及设计约束。主机系统存储位文件和如下的信息,该信息描述哪些FPGA要仿真DUT的每个组件(例如,每个组件映射到哪个FPGA)。
在请求时,主机系统将位文件传输到仿真器。主机系统向仿真器发信号以开始DUT的仿真。在DUT的仿真期间或在仿真结束时,主机系统通过仿真连接从仿真器接收仿真结果。仿真结果是仿真器在DUT的仿真期间生成的数据和信息,其包括接口信号和接口信号的状态,这些数据和信息已经被每个FPGA的跟踪和注入逻辑跟踪。主机系统可以存储仿真结果和/或将仿真结果发送到另一个处理系统。
在对DUT进行仿真之后,电路设计者可以请求调试DUT的组件。如果提出这种请求,则电路设计者可以指定要调试的仿真的时间段。主机系统使用存储的信息标识哪些FPGA正在仿真该组件。主机系统检索存储的接口信号,该接口信号与该时间段相关联,并且由每个标识的FPGA的跟踪和注入逻辑跟踪。主机系统向仿真器发信号以重新仿真标识的FPGA。主机系统将检索到的接口信号发送到仿真器,以在指定的时间段内重新仿真组件。每个标识的FPGA的跟踪和注入逻辑将从主机系统接收的其各自的接口信号注入到DUT的逻辑中,该DUT逻辑被映射到该FPGA。在多次重新仿真FPGA的情况下,合并结果会产生完全调试视图。
主机系统在部件的重新仿真期间从仿真系统接收由所标识的FPGA的逻辑跟踪的信号。主机系统存储从仿真器接收的信号。在重新仿真期间跟踪的信号可以具有比初始仿真期间的采样速率更高的采样速率。例如,在初始仿真中,跟踪信号可以包括每X毫秒保存的组件状态。然而,在重新仿真中,跟踪的信号可以包括每Y毫秒保存的状态,其中Y小于X。如果电路设计者请求查看在重新仿真期间跟踪的信号的波形,则主机系统可以检索存储的信号并显示该信号的曲线图。例如,主机系统可以生成信号的波形。之后,电路设计者可以请求在不同的时间段内重新仿真相同的组件或重新仿真另一个组件。
主机系统1107和/或编译器1110可以包括子系统,诸如但不限于设计合成器子系统、映射子系统、运行时子系统、结果子系统、调试子系统、波形子系统和存储子系统。可以将子系统构建并启用为单个或多个模块,或者可以将两个或多个模块构建为模块。这些子系统一起构成仿真器并监控仿真结果。
设计合成器子系统将表示DUT 1105的硬件描述语言HDL转换成门级逻辑。对于要被仿真的DUT,设计合成器子系统接收该DUT的描述。如果DUT的描述完全或部分采用HDL语言(例如,RTL或其他表示级别),则设计合成器子系统合成DUT的HDL语言以创建门级网表,该门级网表具有根据门级逻辑对DUT的描述。
映射子系统对DUT进行分区,并且将分区映射到仿真器FPGA中。映射子系统使用DUT的网表将门级的DUT划分为多个分区。对于每个分区,映射子系统检索跟踪和注入逻辑的门级描述,并且将该逻辑添加到该分区。如上所述,包括在分区中的跟踪和注入逻辑被用于跟踪信号(跟踪接口信号),该信号经由该分区所映射到的FPGA的接口而被交换。跟踪和注入逻辑可以在分区之前添加到DUT。例如,跟踪和注入逻辑可以由设计合成器子系统在合成DUT的HDL语言之前或之后添加。
除了包括跟踪和注入逻辑之外,映射子系统还可以在分区中包括附加的跟踪逻辑,以跟踪未被跟踪和注入跟踪的某些DUT组件的状态。映射子系统可以在分区之前的DUT中或在分区之后的分区中包括附加跟踪逻辑。设计合成器子系统可以在合成HDL描述之前将附加跟踪逻辑包括在DUT的HDL描述中。
映射子系统将DUT的每个分区映射到仿真器的FPGA。对于分区和映射,映射子系统使用设计规则、设计约束(例如,定时或逻辑约束)以及关于仿真器的信息。对于DUT的组件,映射子系统在存储子系统中存储如下的信息,该信息描述哪些FPGA要仿真每个组件。
使用分区和映射,映射子系统生成一个或多个位文件,所述一个或多个位文件描述所创建的分区以及逻辑到仿真器的每个FPGA的映射。位文件可以包括附加信息,诸如DUT的约束和在FPGA之间的连接的布线信息、和每个FPGA内的连接。映射子系统可以为DUT的每个分区生成位文件,并且可以将该位文件存储在存储子系统中。根据电路设计者的请求,映射子系统将位文件传输到仿真器,并且仿真器可以使用位文件来构造FPGA以仿真DUT。
如果仿真器包括专用ASIC,其包括跟踪和注入逻辑,则映射子系统可以生成将专用ASIC连接到DUT的特定结构。在一些实施例中,映射子系统可以保存跟踪/注入信号的信息以及该信息存储在专用ASIC上的位置。
运行时子系统控制由仿真器执行的仿真。运行时子系统可以使仿真器开始或停止执行仿真。此外,运行时子系统可以向仿真器提供输入信号和数据。输入信号可以通过连接直接提供给仿真器,或者通过其他输入信号设备间接提供给仿真器。例如,主机系统可以控制输入信号设备向仿真器提供输入信号。输入信号设备可以是例如测试板(直接或通过电缆)、信号发生器、另一仿真器或另一主机系统。
结果子系统处理仿真器生成的仿真结果。在仿真期间和/或在完成仿真之后,结果子系统从仿真器接收在仿真期间生成的仿真结果。仿真结果包括在仿真期间跟踪的信号。具体地,仿真结果包括由每个FPGA仿真的跟踪和注入逻辑跟踪的接口信号,并且可以包括由包括在DUT中的附加逻辑跟踪的信号。每个跟踪信号可以跨越多个仿真周期。跟踪信号包括多个状态,并且每个状态与仿真的时间相关联。结果子系统将跟踪信号存储在存储子系统中。对于每个存储的信号,结果子系统可以存储指示哪个FPGA生成跟踪信号的信息。
调试子系统允许电路设计者调试DUT组件。在仿真器已经仿真了DUT并且结果子系统已经在仿真期间接收到由跟踪和注入逻辑跟踪的接口信号之后,电路设计者可以通过在特定时间段内重新仿真组件来请求调试DUT的组件。在调试组件的请求中,电路设计者标识组件并指示要调试的仿真的时间段。电路设计者的请求可以包括采样率,该采样率指示跟踪信号的逻辑应当以多频繁的频率保存被调试组件的状态。
调试子系统使用如下的信息来标识正在仿真组件的仿真器的一个或多个FPGA:该信息由映射子系统存储在存储子系统中。对于每个所标识的FPGA,调试子系统从存储子系统检索接口信号,在由电路设计者指示的时间段期间,该接口信号由FPGA的跟踪和注入逻辑跟踪。例如,调试子系统检索由与时间段相关联的跟踪和注入逻辑跟踪的状态。
调试子系统将检索到的接口信号发送到仿真器。调试子系统指示调试子系统使用所标识的FPGA,并且指示每个所标识的FPGA的跟踪和注入逻辑将其各自的跟踪信号注入到FPGA的逻辑中,以在所请求的时间段内重新仿真组件。调试子系统还可以将电路设计者提供的采样率传输到仿真器,从而跟踪逻辑以适当的间隔跟踪状态。
为了调试组件,仿真器可以使用组件已映射到的FPGA。此外,组件的重新仿真可以在电路设计者指定的任何点上执行。
对于所标识的FPGA,调试子系统可以向仿真器发送指令,以加载具有所标识的FPGA的相同配置的多个仿真器FPGA。调试子系统还向仿真器发信号以并行使用多个FPGA。多个FPGA中的每个FPGA与接口信号的不同时间窗一起使用,以在较短的时间量内生成较大的时间窗。例如,所标识的FPGA可能需要一个小时或更长时间才能使用一定数目的周期。然而,如果多个FPGA具有相同的数据和所标识的FPGA的结构,并且这些FPGA中的每一个运行周期的子集,则仿真器可能需要几分钟时间才能使FPGA共同使用所有周期。
电路设计者可以标识要重新仿真的DUT信号的层级或列表。为了实现这一点,调试子系统确定仿真信号层次或列表所需的FPGA,检索必要的接口信号,并且将检索到的接口信号传送到仿真器以用于重新仿真。因此,电路设计者可以标识要调试/重新仿真的DUT的任何元件(例如,组件、设备或信号)。
波形子系统使用跟踪信号生成波形。如果电路设计者请求查看在仿真运行期间跟踪的信号的波形,则主机系统从存储子系统检索该信号。波形子系统显示信号的曲线图。对于一个或多个信号,当从仿真器接收到信号时,波形子系统可以自动生成信号的曲线图。
图12图示了计算机系统1200的示例机器,在该示例机器中可以执行用于使机器执行本文所讨论的方法中的任何一个或多个方法的指令集。在备选实施方式中,机器可以连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其他机器,机器可以在客户端-服务器网络环境中的服务器或客户端机器的容量下操作,作为对等(或分布式)网络环境中的对等机器,或者作为云计算基础设施或环境中的服务器或客户端机器操作。计算机系统1200也可以是用于仿真环境1100的仿真系统的主机系统。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web设备、服务器、网络路由器、交换机或网桥、或者能够执行指定要由该机器采取的动作的一组指令(顺序地或以其他方式)的任何机器。此外,虽然示出了单个机器,但是术语“机器”还应当被认为包括单独地或联合地执行指令的集合(或多个集合)以执行本文所讨论的任何一个或多个方法的机器的任何集合。
示例计算机系统1200包括处理设备1202、主存储器1204(例如,只读存储器(ROM)、闪存、诸如同步DRAM(SDRAM)的动态随机存取存储器(DRAM)、静态存储器1206(例如,闪存、静态随机存取存储器(SRAM)等))和数据存储设备1218,它们经由总线1230彼此通信。
处理设备1202表示一个或多个处理器,诸如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实现其他指令集的处理器、或实现指令集的组合的处理器。处理设备1202还可以是一个或多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备1202可以被配置成执行用于执行本文描述的操作和步骤的指令1226。
计算机系统1200还可以包括网络接口设备1208以通过网络1220进行通信。计算机系统1200还可以包括视频显示单元1210(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备1212(例如,键盘)、光标控制设备1214(例如,鼠标)、图形处理单元1222、信号生成设备1216(例如,扬声器)、图形处理单元1222、视频处理单元1228以及音频处理单元1232。
数据存储设备1218可以包括机器可读存储介质1224(也被称为非暂态计算机可读介质),其上存储有体现本文所描述的方法或功能中的任何一个或多个的一个或多个指令集1226或软件。指令1226还可以在其由计算机系统1200执行期间完全或至少部分地驻留在主存储器1204内和/或处理设备1202内,主存储器1204和处理设备1202也构成机器可读存储介质。
在一些实施方式中,指令1226包括用于实现与本公开相对应的功能的指令。虽然机器可读存储介质1224在示例实现中被示为单个介质,但是术语“机器可读存储介质”应当被认为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“机器可读存储介质”还应当被认为包括能够存储或编码指令集的任何介质,所述指令集用于由机器执行并且使得机器和处理设备1202执行本公开的任何一个或多个方法。因此,术语“机器可读存储介质”应当被认为包括但不限于固态存储器、光学介质和磁性介质。
附加信息
已经根据对计算机存储器内的数据位的操作的算法和符号表示呈现了前述详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们工作的实质传达给本领域的其他技术人员的方式。算法可以是导致期望结果的操作的序列。操作是需要对物理量进行物理操纵的操作。这种量可以采取能够被存储、组合、比较和以其他方式操纵的电信号或磁信号的形式。这种信号可以被称为位、值、元素、符号、字符、项、数字等。
然而,应当记住,所有这些和类似的术语将与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非特别声明,否则如从本公开明显的,应当理解,在整个说明书中,某些术语指的是计算机系统或类似电子计算设备的动作和过程,其将计算机系统的寄存器和存储器内表示为物理(电子)量的数据操纵和变换成计算机系统存储器或寄存器或其他这种信息存储设备内类似地表示为物理量的其他数据。
本公开还涉及用于执行本文中的操作的装置。该装置可以被专门构造用于预期目的,或者其可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的计算机。这种计算机程序可以存储在计算机可读存储介质中,诸如但不限于任何类型的磁盘,包括软盘、光盘、CD-ROM和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、或适于存储电子指令的任何类型的介质,每个都耦合到计算机系统总线。
本文呈现的算法和显示并不固有地与任何特定计算机或其他装置相关。各种其他系统可以与根据本文的教导的程序一起使用,或者可以证明对于构造更专用的装置来执行该方法是方便的。此外,不参考任何特定编程语言来描述本公开。应当理解,可以使用各种编程语言来实现如本文所述的本公开的教导。
本公开可以被提供为计算机程序产品或软件,其可以包括其上存储有指令的机器可读介质,所述指令可以用于对计算机系统(或其他电子设备)进行编程以执行根据本公开的过程。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存设备等。
在前述公开内容中,已经参考本公开内容的特定示例实现方式描述了本公开内容的实现方式。将明显的是,在不脱离所附权利要求中阐述的本公开的实施方式的更广泛的精神和范围的情况下,可以对其进行各种修改。在本公开涉及单数形式的一些元件的情况下,在附图中可以描绘多于一个的元件,并且相同的元件用相同的附图标记而被标记。因此,本公开和附图应被视为说明性意义而非限制性意义。
Claims (20)
1.一种通过消除被测芯片设计(DUT)的所选路径来从用于仿真的原始网表中去除假路径的方法,所述方法包括:
在所述原始网表中标识原始子图,所述原始子图包括原始逻辑门、输入的子集(TI)和输出的子集(TO);
根据所述原始网表生成复制子图,所述复制子图包括与所述原始逻辑门相对应的复制逻辑门;
将所述复制子图中具有第一复制逻辑门的所述TI连接到恒定传播源,并且将所述复制逻辑门的其余输入与所述原始网表中的对应原始逻辑门连接;
断开所述原始网表中的TO的输出负载;
将所述原始网表中的TO的所述输出负载与所述复制子图中的对应等效TO连接;以及
删除所述原始网表中的未与TO的输出负载连接的原始逻辑门。
2.根据权利要求1所述的方法,其中所述原始逻辑门包括多个逻辑门。
3.根据权利要求1所述的方法,还包括将所述复制逻辑门的输入与如下的输入逻辑电平连接,所述输入逻辑电平为恒定逻辑值。
4.根据权利要求3所述的方法,其中所述恒定值是逻辑‘0’或地。
5.根据权利要求1所述的方法,其中所述复制子图包括与所述原始网表中指定的TO的功能相对应的复制驱动器逻辑门。
6.根据权利要求1所述的方法,还包括:通过在所述复制子图中的TI上传播恒定逻辑值,来简化原始逻辑电路和复制逻辑电路。
7.根据权利要求6所述的方法,其中所述简化还包括以下操作中的一个:删除仅连接有一个输入负载的所述原始逻辑门,以及删除没有连接输入负载的所述原始逻辑门。
8.根据权利要求7所述的方法,还响应于简化而生成更新的网表,以及编译所述更新的网表。
9.一种非暂态计算机可读存储介质,包括所存储的指令,所述指令用于通过消除被测芯片设计(DUT)的所选路径来从仿真网表中去除假路径,所述指令在被执行时,使得至少一个处理器:
在原始网表中标识原始子图,所述原始子图包括原始逻辑门、输入的子集(TI)和输出的子集(TO);
根据所述原始网表生成复制逻辑电路的复制子图,所述复制子图包括与所述原始逻辑门相对应的复制逻辑门;
将所述复制子图中具有第一复制逻辑门的所述TI连接到恒定传播源,并且将所述复制逻辑门的其余输入与所述原始网表中的对应原始逻辑门连接;
断开所述原始网表中的TO的输出负载;
将所述原始网表中的TO的所述输出负载与所述复制子图中的对应等效TO连接;以及
删除所述原始网表中的未与TO的输出负载连接的原始逻辑门。
10.根据权利要求9所述的计算机可读存储介质,其中所述原始逻辑门包括多个逻辑门。
11.根据权利要求9所述的计算机可读存储介质,还包括以下指令,所述指令在被执行时,使得所述处理器将所述复制逻辑门的输入与作为恒定值的输入逻辑信号连接。
12.根据权利要求11所述的计算机可读存储介质,其中所述恒定值是逻辑‘0’或地。
13.根据权利要求9所述的计算机可读存储介质,其中所述复制子图包括与所述原始网表中指定的TO的功能相对应的复制驱动器逻辑门。
14.根据权利要求9所述的计算机可读存储介质,还包括以下指令,所述指令在被执行时,使得所述处理器通过在所述复制子图中的TI上传播恒定逻辑值,来简化原始逻辑电路和所述复制逻辑电路。
15.根据权利要求14所述的计算机可读存储介质,其中所述用于简化的指令还包括在被执行时使得所述处理器进行以下操作中的一个的指令:删除仅连接有一个输入的所述原始逻辑门,或删除没有连接输入负载的所述原始逻辑门。
16.根据权利要求15所述的计算机可读存储介质,还包括在被执行时使得所述处理器响应于指令而生成更新的网表的所述指令,并且还包括在被执行时使得所述处理器编译所述更新的网表的指令。
17.一种系统,包括:
处理器;以及
非暂态存储器,与所述处理器耦合,所述存储器包括所存储的指令,所述指令用于通过消除被测芯片设计(DUT)的所选路径来从仿真网表中去除假路径,所述指令在被执行时,使得所述处理器:
在原始网表中标识原始逻辑门、输入的子集(TI)和输出的子集(TO)的原始子图;
生成所述原始子图的复制子图,所述复制子图具有与所述原始逻辑门相对应的复制逻辑门;
将所述复制子图中具有第一复制逻辑门的所述TI连接到恒定传播源,并且将所述复制逻辑门的其余输入与所述原始网表中的对应原始逻辑门连接;
断开所述原始网表中的TO的输出负载;
将所述原始网表中的TO的所述输出负载与所述复制子图中的对应等效TO连接;以及
删除所述原始网表中的未与TO的输出负载连接的原始逻辑门。
18.根据权利要求17所述的系统,还包括以下指令,所述指令在被执行时,使得所述处理器通过在所述复制子图中的TI上传播恒定逻辑值,来简化原始逻辑电路和复制逻辑电路。
19.根据权利要求18所述的系统,其中所述用于简化的指令还包括在被执行时使得所述处理器删除仅连接有一个输入的所述原始逻辑门的指令,并且所述用于简化的指令还包括在被执行时使得所述处理器删除没有连接输入负载的所述原始逻辑门的指令。
20.根据权利要求18所述的系统,还包括在被执行时使得所述处理器响应于指令而生成更新的网表的所述指令,并且还包括在被执行时使得所述处理器编译所述更新的网表的指令。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163192850P | 2021-05-25 | 2021-05-25 | |
US63/192,850 | 2021-05-25 | ||
US17/750,777 US20220382942A1 (en) | 2021-05-25 | 2022-05-23 | Non-functional loopback-paths removal from io-pads using logic replication |
US17/750,777 | 2022-05-23 | ||
PCT/US2022/030742 WO2022251227A1 (en) | 2021-05-25 | 2022-05-24 | Non-functional loopback-paths removal from io-pads using logic replication |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117396877A true CN117396877A (zh) | 2024-01-12 |
Family
ID=84193102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280036834.0A Pending CN117396877A (zh) | 2021-05-25 | 2022-05-24 | 使用逻辑复制从io焊盘去除非功能性环回路径 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220382942A1 (zh) |
EP (1) | EP4348488A1 (zh) |
KR (1) | KR20240011671A (zh) |
CN (1) | CN117396877A (zh) |
-
2022
- 2022-05-23 US US17/750,777 patent/US20220382942A1/en active Pending
- 2022-05-24 CN CN202280036834.0A patent/CN117396877A/zh active Pending
- 2022-05-24 EP EP22732758.2A patent/EP4348488A1/en active Pending
- 2022-05-24 KR KR1020237036988A patent/KR20240011671A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
EP4348488A1 (en) | 2024-04-10 |
KR20240011671A (ko) | 2024-01-26 |
US20220382942A1 (en) | 2022-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Habibi et al. | Design and verification of SystemC transaction-level models | |
US8181131B2 (en) | Enhanced analysis of array-based netlists via reparameterization | |
US10180850B1 (en) | Emulating applications that use hardware acceleration | |
US8214195B2 (en) | Testing in a hardware emulation environment | |
US7076416B2 (en) | Method and apparatus for evaluating logic states of design nodes for cycle-based simulation | |
US20110271243A1 (en) | Enhanced Analysis of Array-Based Netlists Via Phase Abstraction | |
CN113656227A (zh) | 一种芯片验证方法、装置、电子设备及存储介质 | |
US7979822B2 (en) | Apparatus and method for performing a sequence of verification tests to verify a design of a data processing system | |
JP6600011B2 (ja) | エミュレーションのための効率的波形生成 | |
US20230252212A1 (en) | Testbench for sub-design verification | |
US9317628B1 (en) | Automatic comparison and performance analysis between different implementations | |
CN116457788A (zh) | 仿真系统的机器学习延迟估计 | |
Villarraga et al. | Software in a Hardware View: New Models for HW-dependent Software in SoC Verification | |
Dobis et al. | Open-source verification with chisel and scala | |
US20220382942A1 (en) | Non-functional loopback-paths removal from io-pads using logic replication | |
US8145466B1 (en) | Clustering of electronic circuit design modules for hardware-based and software-based co-simulation platforms | |
KR102325612B1 (ko) | 시뮬레이터를 구현하는 방법, 장치, 기기 및 매체 | |
WO2022251227A1 (en) | Non-functional loopback-paths removal from io-pads using logic replication | |
US20220300690A1 (en) | Incremental compilation for fpga-based systems | |
US6775814B1 (en) | Dynamic system configuration for functional design verification | |
US7519928B2 (en) | Method for propagating phase constants in static model analysis of circuits | |
US12032510B1 (en) | Self-recovery mechanism for multi-hosts and multi-devices emulation and prototyping system bus | |
Jayasena et al. | HIVE: Scalable Hardware-Firmware Co-Verification using Scenario-based Decomposition and Automated Hint Extraction | |
US20230267253A1 (en) | Automated synthesis of virtual system-on-chip environments | |
Lund | Design and Application of a Co-Simulation Framework for Chisel |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |