CN114330217B - 被测设计引脚位置驱动的同时的信号分组和引脚分配 - Google Patents
被测设计引脚位置驱动的同时的信号分组和引脚分配 Download PDFInfo
- Publication number
- CN114330217B CN114330217B CN202111152348.9A CN202111152348A CN114330217B CN 114330217 B CN114330217 B CN 114330217B CN 202111152348 A CN202111152348 A CN 202111152348A CN 114330217 B CN114330217 B CN 114330217B
- Authority
- CN
- China
- Prior art keywords
- channel
- signal pin
- signal
- die
- pin
- 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.)
- Active
Links
- 238000013461 design Methods 0.000 title claims abstract description 25
- 238000012360 testing method Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 56
- 230000015654 memory Effects 0.000 claims description 19
- 230000001419 dependent effect Effects 0.000 claims 2
- 238000004088 simulation Methods 0.000 description 51
- 238000005192 partition Methods 0.000 description 24
- 238000013507 mapping Methods 0.000 description 20
- 238000002347 injection Methods 0.000 description 19
- 239000007924 injection Substances 0.000 description 19
- 230000008569 process Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000001413 cellular effect Effects 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
- 230000000704 physical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 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/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/347—Physical level, e.g. placement or routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
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)
- Computer Networks & Wireless Communication (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本公开的各实施例涉及被测设计引脚位置驱动的同时的信号分组和引脚分配。一种方法包括:基于第一集成电路(IC)管芯的第一信号引脚和第二IC管芯的第二信号引脚的多路复用数据速率(XDR),生成第一信号引脚和第二信号引脚之间的通道配置。该通道配置包括XDR到通道的关联。该方法还包括:基于通道配置确定信号引脚通道分配;基于信号引脚通道分配和导线长度来更新通道配置,导线长度表示第一信号引脚、第二信号引脚和通道的物理端口之间的总距离;以及基于经更新的通道配置和信号引脚通道分配执行插座实例化。
Description
相关申请的交叉引用
本申请要求于2020年9月29日提交的美国临时专利申请号63/084,801的权益,上述申请出于所有目的通过引用以其整体并入本文。
技术领域
本公开总体上涉及被测设计(design under test)。特别地,本公开涉及被测设计引脚位置驱动的同时的信号分组和引脚分配。
背景技术
常规的软件仿真不能跟上越来越复杂的集成电路(IC)产品。基于硬件的仿真系统可以克服基于软件的仿真方法中存在的低效率和缺乏可扩展性的问题。用于构造基于硬件的仿真器的一种常用方法是多FPGA系统(MFS)。MFS包括具有在每对FPGA之间的预定义互连的多个现场可编程门阵列(FPGA)。可以将设计划分和映射到每个单独的FPGA。成功且高性能的编译的一个关键是正确地处理FPGA边界之间的互连以满足时序,同时在没有布线拥塞的情况下确保编译成功。
发明内容
在一个方面中,一种方法包括:基于第一集成电路(IC)模块的第一信号引脚和第二IC管芯的第二信号引脚的多路复用数据速率(XDR),生成第一信号引脚和第二信号引脚之间的通道配置。该通道配置包括XDR到通道的关联。该方法还包括:基于通道配置确定信号引脚通道分配;基于信号引脚通道分配和导线长度来更新通道配置,导线长度表示第一信号引脚、第二信号引脚和通道的物理端口之间的总距离;以及基于经更新的通道配置和信号引脚通道分配执行插座实例化。
在一个方面中,一种系统包括存储指令的存储器和处理器,该处理器与存储器耦合并且用于执行指令,指令在被执行时使处理器:基于第一IC管芯的第一信号引脚和第二IC管芯的第二信号引脚的多路复用数据速率(XDR),生成第一信号引脚和第二信号引脚之间的通道配置。该通道配置包括XDR到通道的关联。该处理器还:基于通道配置确定信号引脚通道分配;基于信号引脚通道分配和导线长度来更新通道配置,导线长度表示第一信号引脚、第二信号引脚和通道的物理端口之间的总距离;以及基于经更新的通道配置和信号引脚通道分配执行插座实例化。
附图说明
通过下面给出的详细描述和根据本公开的实施例的附图,将更全面地理解本公开。附图用于提供对本公开的实施例的知识和理解,并且不将本公开的范围限制于这些特定实施例。此外,附图不一定按比例绘制。
图1示出了根据本公开的实施例的一对FPGA的框图。
图2示出了根据本公开的实施例的一对FPGA之间的通道。
图3A示出了根据本公开的实施例的在引脚分配之前的一对FPGA。
图3B示出了根据本公开的实施例的在引脚分配之后的一对FPGA。
图4示出了根据本公开的实施例的用于引脚和通道分配的过程的流程图。
图5至图13示出了根据本公开的实施例的用于引脚和通道分配的过程的步骤。
图14至图19示出了根据本公开的实施例的用于引脚和通道分配的过程的步骤。
图20描绘了根据本公开的一些实施例的示例仿真系统的示图。
图21描绘了本公开的实施例可以在其中操作的示例计算机系统的示图。
具体实施方式
本公开的各方面涉及被测设计(DUT)引脚位置驱动的同时的信号分组和引脚分配。
在一对现场可编程门阵列(FPGA)之间的信号通信通过被称为插座(socket)的物理设备来传输。引脚分配指的是将特定的设计导线分配给特定的插座。一对FPGA之间的插座的数目是有限的,这又限制了可以在该对FPGA之间传输的信号的数目。为了克服该限制,可以使用被称为多时分复用(MTDMX)的技术,使得多个信号共享物理导线。在示例性配置中,复用器被部署在发送器侧FPGA中,并且解复用器被部署在接收器侧FPGA中,其中信号在发送器侧被顺序地发送并且在接收器侧被顺序地接收。此外,不同的信号被分配给被称为复用数据速率(XDR)的不同MTDMX速率。
在一些实施例中,信号分组之后可以是插座分配。然而,通过同时执行信号分组和插座分配,导线长度被最小化。
本文描述的是同时确定信号分组和插座(通道)分配的导线长度驱动的插座生成算法。执行粗略的分析布局以估计逻辑(例如,信号引脚)的物理位置。在获得逻辑的物理位置之后,插座的位置和需要共享同一物理导线的信号通过网络流方法被确定,其中导线长度的增加最小。导线长度表示逻辑信号端口和物理端口之间的距离之和。通过将逻辑信号端口(物理坐标由布局引擎确定)分配到(预定的)特定物理端口来确定距离。在一个示例中,可以使用曼哈顿距离度量。
本文描述的方法确定信号的分配(即,信号将连接到哪个通道),并且确定通道配置。通道配置是指通道是否被使用和与通道相关联的XDR值。信号引脚可以仅连接到具有相同XDR的通道。基于信号的时序关键性和总可用通道计数来确定信号XDR值。可以实施布局引擎(例如,解析式布局引擎)以确定信号引脚的相应位置。在通道配置和引脚通道分配期间,信号引脚的位置可以被固定。对于每个信号引脚,确定XDR值。通过一个通道的所有信号具有相同的XDR值。
在一些实施例中,可以使用优化技术(例如,最小成本最大流技术)来确定信号引脚通道分配。最小成本最大流技术最小化通过流网络的流的成本。例如,表示两个FPGA之间的信号引脚和通道的网络图可以被创建。然后,可以使用数值技术(例如,埃德蒙兹-卡普(Edmonds and Karp)、福特-富尔克森(Ford-Fulkerson))来求解使用网络图的最小成本最大流。数值技术通过使用广度优先搜索(BFS)找到增强路径来最小化在网络图的所有边上的流的总成本。
在一些实施例中,在信号引脚分配之后更新通道配置。可以基于用于信号引脚通道分配的导线长度来更新通道配置。可以重复信号引脚通道分配和通道配置,直到满足预定迭代终止条件为止。
本公开的优点包括但不限于:满足用于处理管芯边界之间的互连的时序要求,同时确保在没有布线拥塞的情况下编译成功,并且通过执行同时的信号分组和引脚分配来在管芯之间提供优化的导线长度。
图1示出了根据本公开的实施例的一对FPGA(即,模块、FPGA管芯)的框图。第一FPGA 102包括第一物理端口106。第二FPGA 104包括第二物理端口108。在图1中,通过非限制性示例,XDR等于4。XDR表示可以共享相同物理连接的逻辑信号的数目。信号的XDR用于表示信号要连接到具有相同XDR的物理端口。例如,如果信号1、信号2、信号3和信号4具有等于4的XDR,则这四个信号可以分组在一起并且共享相同的物理端口(例如,第一物理端口106)。第一FPGA 102可以表示发送器侧。第二FPGA 104可以表示接收器侧。如图1中所示,四个信号(信号1、信号2、信号3、信号4)使用复用器110被多路复用。然后,使用第二FPGA 104中的解复用器112解复用这些信号。
图2是示出了根据本公开的一个实施例的一对FPGA之间的通道的示意图。三个通道:通道1、通道2和通道3可以连接第一FPGA 102和第二FPGA 104。每个通道包含固定数目的物理端口(例如,80个端口)。由于硬件约束,与通道相关联的所有物理端口具有相同的XDR。在一些实施例中,信号引脚的位置可以由布局引擎(例如,解析式布局引擎)确定。解析式布局引擎之所以如此称呼是因为它可以将导线长度建模为凸函数(例如,二次导线长度模型)。二次导线长度可以取决于信号引脚的坐标和信号引脚之间的连接。每个通道(例如,通道1、通道2和通道3)被配置有XDR值。通道允许具有相同XDR值的信号通过。因此,通过通道的所有信号具有相同的XDR值。例如,对于具有80个端口和等于4的XDR的通道,通过该通道的所有320个信号具有相同的数据速率。
图3A和图3B示出了根据本公开的实施例的在引脚分配之前和在引脚分配之后的一对FPGA(第一FPGA 102和第二FPGA 104)。第一FPGA 102可以包括第一信号引脚302、第二信号引脚304和第三信号引脚306。第二FPGA 104可以包括第四信号引脚308、第五信号引脚310和第六信号引脚312。在图3A中,第一信号引脚302(发送器侧)具有等于XDR1的XDR。虚线表示发送器侧的信号引脚和接收器侧上的信号引脚将通过通道连接在一起。例如,第一信号引脚302通过通道与具有XDR1的第四信号引脚308(接收器侧)连接。第二信号引脚304和第三信号引脚306具有等于XDR2的XDR。在接收器侧(即,FPGA 104)中,第五信号引脚310和第六信号引脚312具有等于XDR2的XDR。第二信号引脚304将与第五信号引脚310连接,并且第三信号引脚306将与第六信号引脚312连接。在一些实施例中,第一信号引脚302具有(x,y)作为坐标。
在图3B中,第一通道被分配给XDR1,并且第二通道被分配给XDR2。信号引脚302通过通道1连接到信号引脚308。具有XDR2的信号引脚306和304经由通道2连接到信号引脚310和312。第三通道是未分配的。实线表示在信号引脚通道分配之后信号引脚到通道的连接。可以使用本文描述的方法来获得图3B中所示的信号引脚通道分配和通道配置。
在一些实施例中,算法旨在找到最佳信号分配和通道配置,使得对于每个信号到通道的总距离(即,距离的总和)(例如,左管芯距离+右管芯距离)最小。左管芯距离可以是指在发送器侧中从信号引脚到通道的距离。右管芯距离可以是指在接收器侧中从通道到信号引脚的距离。在一个实施方式中,本文描述的过程使每对信号引脚的距离的总和(例如,左管芯距离和右管芯距离的曼哈顿距离)最小化。
图4示出了根据本公开的实施例的用于引脚和通道分配的过程400的流程图。在402中,可以获取DUT数据。DUT数据可以包括信号引脚的位置和与信号引脚相关联的XDR。DUT信号引脚对与XDR值以及和DUT信号引脚对相关联的位置一起被输入。在一些实施例中,每个信号引脚的位置在引脚和通道分配过程期间被固定。此外,与每个信号相关联的XDR值可以基于信号的时序关键性和总可用通道计数而被预先确定。
在404中,确定通道配置(即,初始通道配置)。如本文先前所描述的,通道配置是指通道是否被使用以及与通道相关联的XDR值。基于信号数目和每个信号的XDR值来确定每个XDR的信号的总数目。在一些实施例中,由布局引擎确定的每个信号的XDR值。由于每个通道可以仅容纳针对特定XDR的固定数目的信号,因此可以确定每个XDR所需的通道的数目。然后,基于所有可用通道中的通道的所需数目来配置每个通道。可以连续地(逐个地)从具有最高XDR的通道开始向具有最低XDR的通道配置通道。注意,一些通道可以未被使用,因为在FPGA对之间可能存在较少的信号。在一些实施例中,基于信号的相关联名称(例如,按字母顺序)来配置通道。在一些实施例中,可以使用其他排序或随机顺序。例如,第一信号(即,按字母顺序排序)可以被分配给第一通道。
在一个方面中,算法使用迭代技术而被执行。在每次迭代中,交替地执行两个步骤(406和408)。
在406中,使用最小成本最大流算法来标识信号通道分配。信号引脚的坐标和通道配置先前在402期间和在404中被标识。独立地处理不同的XDR值。参考图5至图13进一步描述最小成本最大流算法。例如,可以创建表示模块的信号引脚的图。然后,可以使用数值技术(例如,埃德蒙兹-卡普)来求解使用该图的最小成本最大流。当在图中在信号引脚和通道之间存在流时,信号引脚被分配给通道。
在408中,基于信号引脚通道分配和导线长度来重新配置通道。导线长度可以等于发送器侧和接收器侧(即,FPGA 102和FPGA 104)中的相应通道的信号引脚和物理端口之间的总距离。在一些实施例中,调整通道以使导线长度最小化。
在410中,确定导线长度是否已经被改善(即,与前一迭代相比,导线长度是否减小)。响应于确定导线长度未被改善,过程进行到步骤412。响应于确定导线长度已经被改善,过程返回到步骤406。重复步骤406和408,直到满足预定迭代终止条件为止。例如,成本不能进一步降低。在一些方面中,当阈值导线长度条件被满足时,迭代终止条件被满足。在一些方面中,阈值导线长度条件可以是当成本(即,导线长度)减小小于预定值(例如,百分比减小)时。可以针对仿真器硬件中的所有FPGA对重复过程400。在一些实施例中,当编译时间超过阈值时,迭代终止条件被满足。
在后优化阶段中,在412处使用固件库将插座实例化,该固件库定义了它可以连接的信号数目的容量和信号的方向。基于通道配置来进行从每个信号引脚到对应通道(插座)的物理端口的连接。
应当理解的是,图4的流程图的上述步骤中的一些步骤可以以不同于图中所示和所述的顺序或次序被执行或实行。此外,上述步骤中的一些步骤可以先于其他步骤被执行,或者可以基本上同时或并行地被执行或实行。
图5至图13示出了根据本公开的实施例的用于引脚和通道分配的过程400的步骤。在说明性示例中,假设所有信号引脚具有相同的XDR。第一FPGA 502包括信号引脚506、508、510、512。第二FPGA 504包括信号引脚514、516、518、520。两个FPGA经由第一通道522、第二通道524和第三通道526连接。在初始通道配置(例如,在图4的404处)之后,第一通道522和第二通道524被分配与信号引脚的XDR相等的XDR值。第三通道526未被分配XDR,并且不用于连接信号引脚。
如图5所示,信号引脚506可以经由第一通道522或第二通道524连接到信号引脚514,因为第一通道522和第二通道524具有与信号引脚502相同的XDR值。第一FPGA 502中的虚线分别表示信号引脚506到第一通道522或第二通道524的物理端口的可能连接。类似地,第二FPGA 504中的虚线表示从第一通道522的物理端口和第二通道524的物理端口到信号端口514的可能连接。信号对508、516、信号对510、518和信号对512、520可以经由第一通道506或第二通道508连接。
使用最小成本最大流算法标识信号通道分配。构建网络图600。创建起始节点602和结束节点604。针对每个信号端口创建节点。例如,如图6所示,针对信号引脚506创建信号节点606。针对每个通道创建通道节点。例如,如图7中所示,针对第一通道522创建通道节点608。然后,在每个信号节点和通道节点之间创建边。例如,在信号节点606和通道节点608之间创建第一边610,如图8所示。
由于每个通道具有固定坐标(在硬件中固定),因此第一边610被注释为具有等于1的容量,并且具有作为权重的总距离(即,左管芯距离+右管芯距离)。左管芯距离可以表示第一FPGA 502中信号引脚和通道之间的距离。右管芯距离可以表示第二FPGA 504中通道和信号引脚之间的距离。在图8中,D1表示信号引脚506与通道522之间的左管芯距离,并且D2表示通道522与信号引脚514之间的右管芯距离。因此,第一边610的权重等于D1+D2。在起始节点602和信号节点606之间添加第二边612。第二边612具有等于1的容量和等于零的权重。
如图9中所示,第三边614被添加在通道节点608和结束节点604之间。第三边具有零的权重和等于XDR值的容量。然后,对于所有剩余的信号引脚重复该过程。完成的网络图600在图10中示出。
使用诸如埃德蒙兹-卡普网络流方法之类的数值技术来求解最小-最大流问题,以获得信号引脚-通道分配。可以使用其他数值技术。如果在对应网络图中存在流,则将信号引脚分配给通道。埃德蒙兹-卡普技术可以使用广度优先搜索来寻找网络中的增强路径。通过寻找流增强路径来使从起始节点到结束节点的流递增。以在路径中找到的最大容量来增加流。如果不存在更多的流增强路径,则找到最大流。在一些实施例中,所有边中的流被设置为零并且残余图等于网络图。然后,确定起始节点和结束节点之间的最短路径。最短路径可以使用广度优先搜索来寻找。最短路径可以是残余图中具有最少数目的边的路径。确定最短路径的最大流。更新残余图中的流。重复该过程,直到起始节点和结束节点之间的所有路径都处于满容量为止。
图11示出了根据实施例的应用最小成本最大流算法之后的网络图600。网络图600中的实线表示信号节点和通道节点之间的流。虚线表示在信号节点和通道节点之间没有流。例如,信号节点606和通道节点616之间以及信号节点620和通道节点616之间存在流。因此,信号引脚506、510被分配给第二通道524。信号引脚508和512被分配给第一通道522。
如上所述,在过程400的408中,通道被重新配置。通道的重新配置包括确定在当前通道配置下,当前通道配置的总距离是否最小。可以针对与通道相关联的所有信号寻找进一步减小总距离的另一通道。
例如,对于图12中所示的图,连接到通道1的所有导线的距离可以被表达为abs(y1-y_ch1)+abs(y1’-y_ch1’)+abs(y3-y_ch1)+abs(y3-y_ch1’)(x距离可以被忽略,因为x距离不会改变),其中x1、y1是信号端口506的坐标,x1’、y1’是信号引脚510的坐标。x3、y3是信号端口514在发送器侧(即第一FPGA 500)处的坐标。x3’、y3’是信号引脚518在接收器侧(即第二FPGA 502)处的坐标。y_ch1是第一通道522在发送器侧处的y坐标,y_ch1’是第一通道522在接收器侧处的y坐标,y_ch2和y_ch2’分别是第二通道524在发送器侧和接收器侧处的y坐标。y_ch3和y_ch3’分别是第三通道526在发送器侧和接收器侧处的y坐标。由于y_ch1’=die_height–y_ch1(物理性质),距离可以被写作∑abs(yi–y_ch1)+abs(die_height-yi’-y_ch1),其中i=1或2。yi、yi’和die_height是已知的。y_ch的最佳值是所有值yi和(die_height-yi’)的中值(median value)。
假定图12的示例中的最佳通道位置是2。通道位置指的是通道的坐标。当所有的导线经由第二通道524连接时,针对导线1和导线3的总距离确定。导线1表示从信号引脚506到通道524以及从通道524到信号引脚514的连接。导线3表示从信号引脚510到通道524以及从通道524到信号引脚518的连接。如果总距离小于前一总距离,则导线1和导线3被重新配置到通道2以进一步减小距离,如图13所示。连接到相同通道的信号被视为一组。例如,信号端口506和信号端口510属于同一组。针对在过程400的406中被分配信号的所有通道重复相同的流程。在该示例中,第三通道526不被重新配置,因为没有信号被分配给第三通道526。选择距离对其被最小化的组的通道分配。。
如本文先前所讨论的,在完成通道重新配置并且确定经更新的通道配置之后,引脚对通道分配被重新优化。如果没有获得进一步的导线长度减小或达到最大迭代数目,则迭代(即,步骤406和408)停止。在每次迭代中,总距离减小,因此算法可以收敛。
图14至图19示出了根据本公开的实施例的引脚分配。在一个示例中,第一FPGA1402可以包括四个信号引脚。第二FPGA 1404可以包括四个对应的信号引脚。在一个示例中,所有信号都具有等于2的XDR(XDR=2)。在一个示例中,第一通道1406、第二通道1408、第三通道1410和第四通道1412可以连接第一FPGA 1402和第二FPGA 1404。第一通道1406、第二通道1408、第三通道1410和第四通道1412具有等于2的XDR。在初始化期间,可以选择前两个通道。例如,第一通道1406和第二通道1408可以被选择用于如图15所示的信号通道分配。
如先前在本文中描述的,最小-最大流算法被实施以确定信号引脚-通道分配。例如,第一信号引脚1和第二信号引脚2被分配给第一通道1406。如图16所示,第三信号引脚3和第四信号引脚4被分配给第二通道1408。在通道重新配置期间,可以为每个信号组重新分配通道。第一信号引脚1和第二信号引脚2可以形成第一信号组。第三信号引脚3和第四信号引脚4可以形成第二信号组。可以将信号组中的一个信号组的信号引脚重新分配给另一个通道。例如,第三信号引脚3和第四信号引脚4可以被重新分配到通道1408,如图17中所示。
在一些实施例中,可以基于图17中所示的通道配置来确定信号引脚通道分配。可以为每个信号组重新分配通道,如图18所示。例如,第一信号引脚1和第三信号引脚3可以被重新分配给第四通道1412。第二信号引脚2和第四信号引脚4可以被重新分配给第一通道1406。然后,可以重新配置通道,如图19所示。第一信号引脚1和第三信号引脚3形成信号组。可以将第一信号引脚1和第三信号引脚3重新分配给第二通道1408。可以将第二信号引脚2和第四信号引脚4重新分配给第三通道1410。
图20描绘了示例仿真环境2000的示图。仿真环境2000可被配置为验证电路设计的功能。仿真环境2000可以包括主机系统2007(例如,作为EDA系统一部分的计算机)和仿真系统2002(例如,可编程设备集合,诸如现场可编程门阵列(FPGA)或处理器)。主机系统通过使用编译器2010构造仿真系统来生成数据和信息,以仿真电路设计。待仿真的电路设计也称为被测设计(“DUT”),其中来自仿真的数据和信息用于验证DUT的功能。
主机系统2007可以包括一个或多个处理器。在主机系统包括多个处理器的实施例中,本文描述的由主机系统执行的功能可以分布在多个处理器之间。主机系统2007可以包括编译器2010,以转换以表示DUT的描述语言编写的规范并且生成用于构造仿真系统2002以仿真DUT的数据(例如,二进制数据)和信息。编译器2010可转换、改变、重构DUT、向DUT添加新函数和/或控制DUT的时序。
主机系统2007和仿真系统2002使用由仿真连接承载的信号交换数据和信息。连接可以是但不限于一条或多条电缆,诸如具有与推荐标准232(RS232)或通用串行总线(USB)协议兼容的引脚结构的电缆。连接可以是有线通信介质或网络(诸如局域网)或广域网(诸如因特网)。连接可以是无线通信介质或具有使用诸如蓝牙或IEEE 802.11的无线协议的一个或多个接入点的网络。主机系统2007和仿真系统2002可通过诸如网络服务器的第三设备交换数据和信息。
仿真系统2002包括多个FPGA(或其他模块),诸如FPGA 20041和20042以及附加的FPGA 2004N。每个FPGA可包括一个或多个FPGA接口,FPGA通过该接口连接到其他FPGA(以及可能的其他仿真组件)来用于FPGA交换信号。FPGA接口可称为输入/输出引脚或FPGA焊盘。虽然仿真器可包括FPGA,但仿真器的实施例可包括其他类型的逻辑块来代替用于仿真DUT的FPGA或者与FPGA一起使用。例如,仿真系统2002可包括定制FPGA、用于仿真或原型化的专用ASIC、存储器和输入/输出设备。
可编程设备可包括可编程逻辑块阵列和互连层级,可根据HDL代码中的描述互连可编程逻辑块。每个可编程逻辑块能够实现复杂的组合功能或者能够实现逻辑门,诸如AND和XOR逻辑块。在一些实施例中,逻辑块还可以包括存储元件/设备,其可以是简单的锁存器、触发器或其它存储块。根据不同逻辑块之间互连的长度,信号可在不同时间到达逻辑块的输入端子,由此可临时存储在存储元件/设备中。
FPGA 20041-2004N可放置在一个或多个板20121和20122直到附加板2012M上。可将多个板放置在仿真单元20141中。可以使用仿真单元的背板或任何其他类型的连接来连接仿真单元中的板。此外,多个仿真单元(例如,20141和20142到2014K)可通过电缆或任何其他方式相互连接,以形成多仿真单元系统。
对于将被仿真的DUT,主机系统2007向仿真系统2002发送一个或多个位文件。位文件可指定DUT的描述,并且可进一步利用跟踪和注入逻辑、分区到仿真器的FPGA的映射以及设计约束指定由主机系统2007创建的DUT的分区。使用位文件,仿真器构造FPGA以执行DUT的功能。在一些实施例中,仿真器的一个或多个FPGA可具有内置于FPGA的硅中的跟踪和注入逻辑。在这样的实施例中,可不由主机系统构造FPGA来仿真跟踪和注入逻辑。
主机系统2007接收将被仿真的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的跟踪和注入逻辑将其从主机系统接收的对应接口信号注入映射到FPGA的DUT的逻辑中。在FPGA多次重新仿真的情况下,合并结果产生完整的调试视图。
主机系统从仿真系统接收在组件的重新仿真期间由已识别FPGA的逻辑跟踪的信号。主机系统存储从仿真器接收的信号。重新仿真期间跟踪的信号的采样率可高于初始仿真期间的采样率。例如,在初始仿真中,跟踪信号可以每X毫秒包括组件的保存状态。然而,在重新仿真中,跟踪信号可以每Y毫秒包括保存状态,其中Y小于X。如果电路设计者要求查看在重新仿真期间跟踪的信号波形,则主机系统可检索存储的信号并显示信号的曲线。例如,主机系统可生成信号的波形。之后,电路设计者可请求在不同的时间段内重新仿真同一组件,或者重新仿真另一组件。
主机系统2007和/或编译器2010可包括子系统,诸如但不限于设计综合器子系统、映射子系统、运行时间子系统、结果子系统、调试子系统、波形子系统和存储子系统。子系统可作为单个或多个模块来构造和启用,或者两个或多个子系统可作为模块来构造。这些子系统共同构成仿真器并监控仿真结果。
设计综合器子系统将表示DUT的HDL 2005转换为门级逻辑。对于将被仿真的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的组件来调试DUT的组件。在调试组件的请求中,电路设计者识别组件并指示要调试的仿真时间段。电路设计者的请求可包括采样率,该采样率指示应由跟踪信号的逻辑保存的已调试组件状态的频率。
调试子系统使用由映射子系统在存储子系统中存储的信息识别正在仿真的仿真器的一个或多个FPGA。对于每个已识别FPGA,调试子系统从存储子系统检索由FPGA的跟踪和注入逻辑在由电路设计者指示的时间段内跟踪的接口信号。例如,调试子系统检索与时间段相关联的由跟踪和注入逻辑跟踪的状态。
调试子系统将检索到的接口信号传输给仿真器。调试子系统指示调试子系统使用已识别FPGA,并针对每个已识别FPGA的跟踪和注入逻辑,将其对应的跟踪信号注入FPGA的逻辑,从而在请求的时间段内重新仿真组件。调试子系统可进一步将电路设计者提供的采样率传输到仿真器,使得跟踪逻辑以适当的间隔跟踪状态。
为了调试组件,仿真器可使用组件所映射的FPGA。此外,可以在电路设计者指定的任何点处执行组件的重新仿真。
对于已识别FPGA,调试子系统可向仿真器传输指令,以加载具有已识别FPGA的相同配置的多个仿真器FPGA。调试子系统还向仿真器发送信号,以并行地使用多个FPGA。来自多个FPGA的每个FPGA与接口信号的不同时间窗口一起使用,以在较短的时间内生成较大的时间窗口。例如,已识别FPGA可要求一小时或更长的时间来使用特定量的循环。然而,如果多个FPGA具有已识别FPGA的相同数据和结构,并且这些FPGA中的每一个都运行循环的子集,则仿真器可需要几分钟时间以使FPGA共同使用所有循环。
电路设计者可识别重新仿真的DUT信号的层级或列表。为了实现这一点,调试子系统确定仿真信号层级或列表所需的FPGA,检索必要的接口信号,并将检索到的接口信号传输到仿真器进行重新仿真。因此,电路设计者可识别DUT的任何元件(例如,组件、设备或信号)以进行调试/重新仿真。
波形子系统使用跟踪信号生成波形。如果电路设计者请求查看在仿真运行期间跟踪的信号的波形,则主机系统从存储子系统检索信号。波形子系统显示信号曲线。对于一个或多个信号,当从仿真器接收到信号时,波形子系统可自动生成信号曲线。
图21示出了计算机系统2100的示例机器,其中可以执行用于使机器执行本文讨论的任何一种或多种方法的指令集。在备选实施中,机器可连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其他机器。该机器可以客户端-服务器网络环境中的服务器或客户端机器的能力操作,作为对等(或分布式)网络环境中的对等机,或者作为云计算架构或环境中的服务器或客户端机器。
该机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络布线器、交换机或网桥、或者能够执行指定将由机器采取的动作的指令集(顺序或其他方式)的任何机器。此外,虽然示出单个机器,但术语“机器”还应被视为包括单独或联合执行指令集(或多个集合)以执行本文所讨论的任何一种或多种方法的任何机器集合。
示例计算机系统2100包括处理设备2102、主存储器2104(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM),诸如同步DRAM(SDRAM))、静态存储器2106(例如,闪存、静态随机存取存储器(SRAM)等)和数据存储设备2118,它们经由总线2130相互通信。
处理设备2102表示一个或多个处理器,诸如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其他指令集的处理器或者实施指令集组合的处理器。处理设备2102还可以是一个或多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备2102可被配置为执行用于执行本文所述的操作和步骤的指令2126。
计算机系统2100还可以包括网络接口设备2108,以通过网络2120进行通信。计算机系统2100还可以包括视频显示单元2110(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备2112(例如,键盘)、光标控制设备2114(例如,鼠标)、图形处理单元2122、信号生成设备2116(例如,扬声器)、图形处理单元2122、视频处理单元2128和音频处理单元2132。
数据存储设备2118可包括机器可读存储介质2124(也称为非暂态计算机可读介质),其上存储一组或多组指令2126或体现本文所述任何一种或多种方法或功能的软件。在被计算机系统2100执行期间,指令2126可以完全或至少部分地驻留在主存储器2104内和/或处理设备2102内,主存储器2104和处理设备2102还构成机器可读存储介质。
在一些实施中,指令2126包括实现与本发明相对应的功能的指令。虽然机器可读存储介质2124在示例实施中被示为单个介质,但术语“机器可读存储介质”应被视为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的缓存和服务器)。术语“机器可读存储介质”还应被视为包括能够存储或编码被机器执行并且使机器和处理设备2102执行本公开的任何一种或多种方法的指令集的任何介质。术语“机器可读存储介质”应相应地被视为包括但不限于固态存储器、光学介质和磁性介质。
前面详细描述的一些部分已经根据计算机存储器内的数据位操作的算法和符号表示给出。这些算法描述和表示是数据处理领域的技术人员用来最有效地将其工作实质传达给本领域其他技术人员的方法。算法可以是导致期望结果的一系列操作。这些操作需要对物理量进行物理操作。这些量可采取能够被存储、组合、比较和以其他方式操纵的电信号或磁信号的形式。这种信号可以被称为位、值、元素、符号、字符、术语、数字等。
然而,应记住,所有这些和类似的术语都与适当的物理量相关联,并且只是应用于这些量的方便标签。除非本公开另有明确说明,否则应理解,在整个描述中,特定术语指计算机系统或类似电子计算设备的动作和处理,将计算机系统的寄存器和存储器中表示为物理(电子)量的数据操纵并转换为计算机系统存储器或寄存器或其他此类信息存储设备中类似表示为物理量的其他数据。
本公开还涉及一种用于执行本文中操作的装置。该装置可针对预期目的而专门构造,或者其可包括由存储在计算机中的计算机程序选择性地激活或重新配置的计算机。这种计算机程序可存储在计算机可读存储介质中,诸如但不限于任何类型的盘(包括软盘、光盘、CD-ROM和磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或者适用于存储电子指令的任何类型的介质,它们均耦合到计算机系统总线。
本文介绍的算法和显示与任何特定计算机或其他设备没有内在联系。根据本文的教导,各种其他系统可与程序一起使用,或者可以证明构造更专用的设备来执行该方法是方便的。此外,本公开未参考任何特定编程语言进行描述。应当理解,可以使用各种编程语言来实施如本文所述的本公开的教导。
本公开可作为计算机程序产品或软件提供,其可包括在其上存储指令的机器可读介质,可用于编程计算机系统(或其他电子设备)以执行根据本公开的处理。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存设备等。
在前述公开中,已参考本公开的具体示例实施来描述本公开的实施。显而易见,在不脱离如以下权利要求所述的本公开的更宽泛的精神和实施范围的情况下,可以对其进行各种修改。在本公开涉及一些单数元件的情况下,可以在附图中示出多个元件。相似的元件用相似的数字标记。因此,本公开和附图应以说明性意义而非限制性意义来看待。
Claims (20)
1.一种方法,包括:
基于第一IC管芯的第一信号引脚和第二IC管芯的第二信号引脚的多路复用数据速率XDR,生成所述第一信号引脚和所述第二信号引脚之间的通道配置,其中所述通道配置包括所述XDR到通道的关联;
由处理器基于所述通道配置确定信号引脚通道分配;
由所述处理器基于所述信号引脚通道分配和导线长度来更新所述通道配置,所述导线长度表示所述第一信号引脚、所述第二信号引脚和所述通道的物理端口之间的总距离;以及
基于经更新的通道配置和所述信号引脚通道分配来执行插座实例化。
2.根据权利要求1所述的方法,还包括:
获取被测设计DUT数据,其中所述DUT数据包括所述第一信号引脚和所述第二信号引脚的位置、以及与所述第一信号引脚和所述第二信号引脚中的每个信号引脚相关联的所述XDR。
3.根据权利要求1所述的方法,还包括:
重复所述确定的步骤和所述更新的步骤,直到迭代终止条件被满足为止。
4.根据权利要求3所述的方法,还包括:
确定在所述通道配置下是否满足阈值导线长度条件,以及
其中当所述阈值导线长度条件被满足时,所述迭代终止条件被满足。
5.根据权利要求1所述的方法,还包括:
确定从所述第一信号引脚到所述第一IC管芯中的所述通道的第一物理端口的第一距离;
确定从所述第二信号引脚到所述第二IC管芯中的所述通道的第二物理端口的第二距离;以及
其中所述总距离取决于所述第一距离和所述第二距离。
6.根据权利要求1所述的方法,其中更新所述通道配置包括:
确定信号引脚组的所述导线长度,其中所述信号引脚组包括连接到相同的所述通道的一个或多个信号引脚。
7.根据权利要求6所述的方法,还包括:
将所述信号引脚组中的信号引脚分配给所述通道,并且将所述信号引脚组中的另一个信号引脚分配给另一个通道。
8.根据权利要求1所述的方法,其中确定所述信号引脚通道分配包括:
创建表示所述第一IC管芯的所述第一信号引脚和所述第一IC管芯与所述第二IC管芯之间的通道的图;以及
当在所述图中在所述第一信号引脚与所述通道之间存在流时,将所述第一信号引脚分配给所述通道。
9.根据权利要求8所述的方法,创建所述图还包括:
为所述第一信号引脚创建信号节点;
为在所述第一IC管芯和所述第二IC管芯之间的通道中的每个通道创建通道节点;
在所述信号节点和所述通道节点之间创建第一边,所述第一边具有与表示所述第一信号引脚和所述第二信号引脚之间的总距离的距离相等的权重;
创建起始节点和结束节点;
在所述起始节点和所述信号节点之间创建第二边;以及
在所述通道节点和所述结束节点之间创建第三边,所述第三边具有与所述通道的对应XDR值相等的容量。
10.根据权利要求1所述的方法,还包括:针对第二XDR值,重复所述生成的步骤、所述确定的步骤和所述更新的步骤。
11.一种系统,包括:
存储器,所述存储器存储指令;以及
处理器,所述处理器与所述存储器耦合,并且用于执行所述指令,所述指令在被执行时使所述处理器:
基于第一IC管芯的第一信号引脚和第二IC管芯的第二信号引脚的多路复用数据速率XDR,生成所述第一信号引脚和所述第二信号引脚之间的通道配置,其中所述通道配置包括所述XDR到通道的关联;
基于所述通道配置来确定信号引脚通道分配;
基于所述信号引脚通道分配和导线长度来更新所述通道配置,所述导线长度表示所述第一信号引脚、所述第二信号引脚和所述通道的物理端口之间的总距离;以及
基于经更新的通道配置和所述信号引脚通道分配来执行插座实例化。
12.根据权利要求11所述的系统,其中所述处理器还被配置为:
获取被测设计DUT数据,其中所述DUT数据包括所述第一信号引脚和所述第二信号引脚的位置、以及与所述第一信号引脚和所述第二信号引脚中的每个信号引脚相关联的所述XDR。
13.根据权利要求11所述的系统,其中所述处理器还被配置为:
重复所述确定的步骤和所述更新的步骤,直到迭代终止条件被满足为止。
14.根据权利要求13所述的系统,其中所述处理器还被配置为:
确定在所述通道配置下所述导线长度是否是最小的,并且当所述导线长度是最小的时,预定的所述迭代终止条件被满足。
15.根据权利要求11所述的系统,其中所述处理器还被配置为:
确定从所述第一信号引脚到所述第一IC管芯中的所述通道的第一物理端口的第一距离;
确定从所述第二信号引脚到所述第二IC管芯中的所述通道的第二物理端口的第二距离;以及
其中所述总距离取决于所述第一距离和所述第二距离。
16.根据权利要求11所述的系统,其中更新所述通道配置包括:
确定信号引脚组的所述导线长度,其中所述信号引脚组包括连接到相同的所述通道的一个或多个信号引脚。
17.根据权利要求16所述的系统,其中所述处理器还被配置为:
将所述信号引脚组中的信号引脚分配给所述通道,并且将所述信号引脚组中的另一个信号引脚分配给另一个通道。
18.根据权利要求11所述的系统,其中所述处理器还被配置为:
创建表示所述第一IC管芯的所述第一信号引脚和所述第一IC管芯与所述第二IC管芯之间的通道的图;以及
当在所述图中在所述第一信号引脚与所述通道之间存在流时,将所述第一信号引脚分配给所述通道。
19.根据权利要求18所述的系统,其中所述处理器还被配置为:
为所述第一信号引脚创建信号节点;
为在所述第一IC管芯和所述第二IC管芯之间的通道中的每个通道创建通道节点;
在所述信号节点和所述通道节点之间创建第一边,所述第一边具有与表示所述第一信号引脚和所述第二信号引脚之间的总距离的距离相等的权重;
创建起始节点和结束节点;
在所述起始节点和所述信号节点之间创建第二边;以及
在所述通道节点和所述结束节点之间创建第三边,所述第三边具有与所述通道的所述XDR值相等的容量。
20.一种非暂态计算机可读介质,包括被存储的指令,所述指令在由处理器执行时使所述处理器:
基于第一IC管芯的第一信号引脚和第二IC管芯的第二信号引脚的多路复用数据速率XDR,生成所述第一信号引脚和所述第二信号引脚之间的通道配置,其中所述通道配置包括所述XDR到通道的关联;
基于所述通道配置来确定信号引脚通道分配;
基于所述信号引脚通道分配和导线长度来更新所述通道配置,所述导线长度表示所述第一信号引脚、所述第二信号引脚和所述通道的物理端口之间的总距离;以及
基于经更新的通道配置和所述信号引脚通道分配来执行插座实例化。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063084801P | 2020-09-29 | 2020-09-29 | |
US63/084,801 | 2020-09-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114330217A CN114330217A (zh) | 2022-04-12 |
CN114330217B true CN114330217B (zh) | 2024-04-30 |
Family
ID=80823712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111152348.9A Active CN114330217B (zh) | 2020-09-29 | 2021-09-29 | 被测设计引脚位置驱动的同时的信号分组和引脚分配 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11727178B2 (zh) |
CN (1) | CN114330217B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659164A (zh) * | 2018-06-28 | 2020-01-07 | 美光科技公司 | 调试半导体装置的方法及系统 |
CN111182830A (zh) * | 2017-10-02 | 2020-05-19 | 韦伯斯特生物官能(以色列)有限公司 | 随机引脚分配导管 |
CN111538260A (zh) * | 2020-04-01 | 2020-08-14 | 深圳市汇顶科技股份有限公司 | 引脚配置方法及装置、多引脚互连互通系统 |
CN111666234A (zh) * | 2019-03-05 | 2020-09-15 | 英特尔公司 | 用于多通道链路的部分链路宽度状态 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080168206A1 (en) * | 2007-01-05 | 2008-07-10 | Mark David Bellows | Methods and Apparatus for Interfacing a Processor and a Memory |
US7772892B2 (en) * | 2009-01-15 | 2010-08-10 | Advantest Corporation | Differential hybrid circuit |
US10218580B2 (en) * | 2015-06-18 | 2019-02-26 | Netspeed Systems | Generating physically aware network-on-chip design from a physical system-on-chip specification |
US10628625B2 (en) * | 2016-04-08 | 2020-04-21 | Synopsys, Inc. | Incrementally distributing logical wires onto physical sockets by reducing critical path delay |
-
2021
- 2021-09-29 CN CN202111152348.9A patent/CN114330217B/zh active Active
- 2021-09-29 US US17/488,908 patent/US11727178B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111182830A (zh) * | 2017-10-02 | 2020-05-19 | 韦伯斯特生物官能(以色列)有限公司 | 随机引脚分配导管 |
CN110659164A (zh) * | 2018-06-28 | 2020-01-07 | 美光科技公司 | 调试半导体装置的方法及系统 |
CN111666234A (zh) * | 2019-03-05 | 2020-09-15 | 英特尔公司 | 用于多通道链路的部分链路宽度状态 |
CN111538260A (zh) * | 2020-04-01 | 2020-08-14 | 深圳市汇顶科技股份有限公司 | 引脚配置方法及装置、多引脚互连互通系统 |
Also Published As
Publication number | Publication date |
---|---|
US11727178B2 (en) | 2023-08-15 |
US20220100942A1 (en) | 2022-03-31 |
CN114330217A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7080365B2 (en) | Method and apparatus for simulation system compiler | |
US7076416B2 (en) | Method and apparatus for evaluating logic states of design nodes for cycle-based simulation | |
CN115315702A (zh) | 早期阶段电路设计中基于机器学习的度量的预测 | |
US20240094290A1 (en) | Integrating Machine Learning Delay Estimation in FPGA-Based Emulation Systems | |
CN115130407A (zh) | 用于在处理器与fpga之间划分仿真模型的方法 | |
CN114756085A (zh) | 用于现场可编程门阵列(fpga)综合的形式化门控时钟转换 | |
US11080446B2 (en) | Method to regulate clock frequencies of hybrid electronic systems | |
CN114330217B (zh) | 被测设计引脚位置驱动的同时的信号分组和引脚分配 | |
KR20040028598A (ko) | 주문형 vcd 시스템 및 방법 | |
US20040025073A1 (en) | Method for transforming behavioral architectural and verification specifications into cycle-based compliant specifications | |
CN117280350A (zh) | 多处理器并行计算系统中的确定性网表变换 | |
US20220382942A1 (en) | Non-functional loopback-paths removal from io-pads using logic replication | |
US20230186006A1 (en) | Slack budgeting and discretization for a programmable device | |
US20240028812A1 (en) | Waveform capture using multicycle path properties | |
US11941339B1 (en) | Automated equal-resistance routing in compact pattern | |
US20230195982A1 (en) | Transformations for multicycle path prediction of clock signals | |
US20210303336A1 (en) | Advanced Register Merging | |
US20230409788A1 (en) | Synchronizing distributed simulations of a circuit design | |
WO2022251227A1 (en) | Non-functional loopback-paths removal from io-pads using logic replication | |
CN117829042A (zh) | 管理仿真系统的高性能模拟表示 | |
WO2022260870A1 (en) | Deterministic netlistic transformations in a multi-processor parallel computing system | |
Estragués Muñoz | High Performance Finite Volume Methods solver for multi-scale cell simulations | |
Kim et al. | Parallelizing post-placement timing optimization | |
CN115298664A (zh) | 用于捕获硬件仿真数据的系统和方法 | |
CN116305713A (zh) | 一种芯片仿真系统及仿真方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |