首页> 中国专利> 用于确定数据路径的路由的方法、系统及计算机程序产品

用于确定数据路径的路由的方法、系统及计算机程序产品

摘要

本发明公开了用于确定数据路径的路由的系统、方法及计算机程序产品。该方法包括以下步骤:定义要沿着宽接口提供的多个单元,每个其他设备与至少一个所述单元相关联;以及将互连电路定义为以行和列形成的块阵列,每个单元与一个所述列邻接。此外,该方法还包括以下步骤:提供预定的瓦片集合,每个瓦片提供一个预定的布线布局;以及对于每个块,应用预定规则来确定要用来实施该块的一个所述瓦片。所述预定规则考虑到所述阵列中的块的位置以及多个其他设备与所述多个单元之间的关联性,确保所述互连电路所提供的每条数据路径都具有相同的传播延迟。通过这种方法,提供一种使用了预定瓦片的结构化路由方法。

著录项

  • 公开/公告号CN101587508A

    专利类型发明专利

  • 公开/公告日2009-11-25

    原文格式PDF

  • 申请/专利权人 ARM有限公司;

    申请/专利号CN200910203077.8

  • 发明设计人 K·吉特切夫;王秉达;

    申请日2009-05-19

  • 分类号G06F17/50;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人马永利

  • 地址 英国剑桥郡

  • 入库时间 2023-12-17 23:01:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-06-08

    未缴年费专利权终止 IPC(主分类):G06F17/50 授权公告日:20130102 终止日期:20170519 申请日:20090519

    专利权的终止

  • 2013-01-02

    授权

    授权

  • 2011-04-27

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20090519

    实质审查的生效

  • 2009-11-25

    公开

    公开

说明书

技术领域

本发明涉及用于确定集成电路的互连电路中的数据路径的路由的技术。

背景技术

当前的设计工具,例如用于ASIC(专用集成电路)设计流程的数字布局EDA(电子设计自动化),对于在互连电路的时序关键数据路径的延迟匹配方面达到高精度具有严格的限制,这例如可能是深亚微米工艺中的高速网络和总线所要求的。此限制主要应归于EDA工具如何处理这个问题。

当前的数字布局EDA工具将时序约束用作设计布局的要求。这通常被称为“时序驱动的位置与路由”。这将实际上无限数量的布局实施呈现给了ASIC布局工具。面对此窘境,EDA工具通常使用启发式算法来自动产生ASIC布局,启发式算法并非是设计来确定最优解决方案的算法,而是旨在找出在目标功能方面接近最优解决方案的可行解决方案。设计的初始放置与路由很少会满足设计时序约束。结果,布局工具对设计的时序关键部分的位置和路由进行迭代,以希望符合设计时序约束。

当设计要求非常严格时,例如典型地对于高速平衡总线互连就是这种情况,布局迭代通常不收敛,因此工具无法产生可用的布局。当布局工具确实成功符合设计要求时,所产生的布局在元件放置或信号路由上不对称。网络具有随机的长度并且随机在层与层之间跳跃。无法精确地管理所得到的每个网络的电容、电阻、耦合以及电感。这导致布局内时序的不确定性。

已知的数字布局EDA工具使用几种技术来改进时序,这些技术包括:用具有相同功能但驱动强度不同的另一驱动元件来代替一个驱动元件;在关键路径上插入缓冲器来加速或减慢延迟;以及/或者用中继缓冲器断开长网络;移动关键单元以使其物理上更靠近。这些方法的时序变化被量化并且引入了时序的不确定性。通过工艺角(corner)也会大大减少不同时序关键路径之间的匹配,因为这些路径是用不同数量的元件或用具有不同驱动特性的元件来建立的。通过工艺-温度-电压角不能将不同元件的时序特性调整成相同的时序特性。符合一个角通常会使其他角失配。

由于数字EDA布局算法的启发式性质,所以相同的设计利用不同的工具版本或者来自不同供应商的版本会产生截然不同的布局。通常当重复布局过程时,相同的工具在相同的设计下将产生不同的布局。

当前数字EDA布局流程的另一个限制是工具无法使用差分信令来工作,差分信令是一种通过在两个分离的线路上所发送的两个互补信号来电传送信息的方法。这种差分信令技术能够使通过噪声环境的快速信号精确地传播,该噪声例如是由数字门的切换所产生的。

结果,已知的数字布局EDA工具与ASIC流程无法产生对于互连电路内的关键时序路径、网络与总线(在此被称为“数据路径”)要求高度的延迟匹配及抗噪声性的设计布局。

当必须将总线的不同位路由到物理上未靠在一起的设计块时,已知数字布局EDA工具的限制会被放大,但仍需要匹配的时序。此限制的一个好的实例是DDR(双数据率)存储器接口。DDR存储器在不增加时钟频率的情况下通过双重泵浦(pumping)(在时钟信号的上升沿与下降沿上传输数据)来获得几乎是非DDR(单数据率)存储器的带宽的两倍的带宽。DDR存储器控制器相对于其必须连接到的输入/输出(I/O)设备的跨距而言具有相对较小的布局,并且在设计用来将存储器控制器耦合到这些分布式I/O设备的互连电路时,这会产生显著的时序问题。

例如,DDR3是使用时钟的两个沿来以高达1600Mbs的数据率从片外SDRAM读取及写入数据的并行接口。必须严格控制数据信号DQ、选通信号DQS以及时钟信号CK之间的时序关系,而用于此设计的I/O设备可直线跨越超过2mm(即大于存储器控制器块的尺寸数个数量级)。

对于诸如时钟抖动、片上变化、工艺-电压-温度变化、印刷电路板迹线变化、系统噪声以及SDRAM设置及保持时序之类的无法控制的时序不确定性的预算,需要存储器控制器与I/O设备之间的互连电路中的数据路径的传播延迟在几十纳秒之内匹配。在2mm或以上的网络具有数百纳秒范围内的互连延迟的情况下,这种互连电路的设计难以用当前的数字布局EDA工具来获得。

因此,期望提供一种改进的技术以用于确定集成电路的互连电路中的数据路径的路由,其允许各种数据路径之间的延迟匹配具有高精度。

发明内容

从第一方面来看,本发明提供一种确定集成电路的互连电路中的数据路径的路由的方法,所述互连电路在第一侧上提供用于连接到第一设备的窄接口,并且在第二侧上提供用于连接到分布式的多个其他设备的宽接口,每条数据路径与一个所述其他设备相关联,并且通过所述互连电路在该相关联的其他设备与所述第一设备之间提供连接,该方法包括以下步骤:(i)定义要沿着所述宽接口提供的多个单元,每个所述其他设备与至少一个所述单元相关联;(ii)将所述互连电路定义为以行和列形成的块阵列,每个单元与一个所述列邻接;(iii)提供预定的瓦片(tile)集合,每个瓦片提供一个预定的布线布局;以及(iv)对于每个块,应用预定规则来确定要用来实施该块的一个所述瓦片,所述预定规则考虑到所述阵列中的块的位置以及所述多个其他设备与所述多个单元之间的关联性,并且确保所述互连电路所提供的每条数据路径都具有相同的传播延迟。

根据本发明,提供一种用于确定在互连电路中用来将第一设备与分布式的多个其他设备耦合的数据路径的路由的方法。所述互连电路具有与所述第一设备耦合的窄接口、以及与所述分布式的多个其他设备耦合的宽接口。所述互连电路被看作成以行和列形成的块阵列,并且提供预定的瓦片集合来用于构造所述互连电路,每个瓦片提供一个预定的布线布局。对于每个块,应用预定规则来确定要用来实施该块的一个所述瓦片。通过考虑到所述阵列中的块的位置以及所述多个其他设备与沿着所述宽接口而提供的多个单元之间的关联性来安排预定规则,该瓦片分配过程确保所述互连电路所提供的每条数据路径都具有相同的传播延迟。

因此,可以看到,本发明提供一种使用了预定瓦片的结构化路由方法,其中应用预定规则来确定要使用哪些瓦片来实施在形成互连电路的块阵列中的每个块,以便确保所述互连电路所提供的每条数据路径都具有相同的传播延迟。

通过使用本发明,与已知的现有技术的放置工具相比可产生许多益处。首先,除了提供有效机制来确保互连电路中的每条数据路径都具有相同的传播延迟以外,该过程还可以匹配其他物理效应,例如耦合、串扰、加载、噪声屏蔽等等。此外,在本发明的实施例中,该方法可以在不需要任何迭代的情况下实施,因此与需要执行迭代过程来旨在找出可行路由设计的已知EDA工具相比,可以提供显著的设计时间速度益处。而且,因为本发明涉及使用具有预定布线布局的瓦片来产生具有相同传播延迟的数据路径,所以这可以使得互连电路将消耗比那些使用已知EDA工具而设计的互连电路少得多的功率,那些使用已知EDA工具而设计的互连电路通常在某些路径中插入缓冲器和/或其他部件以便改进时序和匹配。

在一个实施例中,每条数据路径由一个瓦片序列形成,选择所述序列中的每个瓦片以具有一个布线布局,所述布线布局至少部分地与所述序列中的一个相邻瓦片的布线布局邻接。因此,每条数据路径由用来形成该条数据路径的相关联的瓦片序列中的各种布线布局的组合来形成。根据每个瓦片中的线路的物理布局,与每个瓦片相关联的传播延迟将被预先确定。预定的瓦片集合将提供具有不同传播延迟的多种不同的布线布局,并且这使得预定规则能够考虑到所述阵列中的块的位置以及要被连接到所述互连电路的各种其他设备的布置而确定要用来实施每个块的适当瓦片,以便确保每条数据路径的传播延迟都是匹配的。

在一个实施例中,预定规则将各瓦片分配给阵列中的各个块中以便产生树结构,与窄接口邻接的至少一个列被形成为树结构的主干,而剩余列中的行形成树结构的分支。在所述步骤(iv),当确定要用来实施阵列中的各个块的瓦片时,所述预定规则考虑到块是处于树结构的主干中还是处于树结构的分支中。已经发现使用这种树结构能够获得特别高效的数据路径的路由。

在一个实施例中,所述预定瓦片集合包括预定的主干瓦片子集和预定的分支瓦片子集,在所述步骤(iv)期间,对于每个块,如果所述块处于所述树结构的主干中,则预定规则从所述主干瓦片子集中选择瓦片,或者如果所述块处于树结构的分支中,则预定规则从所述分支瓦片子集中选择瓦片。

在一个实施例中,单元的数量超过要被连接到所述宽接口的其他设备的数量,使得存在至少一个非连接单元,其没有与其相关联的一个所述其他设备,并且对于被形成为树结构的主干的每一列而言,所选择的邻接于该列的单元是非连接单元。

因此在这种实施例中,当使用预定规则来选择用来实施形成所述树结构主干的一列块的主干瓦片时,这些瓦片不需要提供与一个所述其他设备的任何直接连接,并且作为替代,经由用来实施所述树结构分支的分支瓦片来与各种其他设备连接。

树结构可以以多种方式来设计。然而,在一个实施例中,树结构包括一个或多个树段(section),每个树段具有一个与窄接口邻接的列以形成该树段的主干,并且在树段的剩余列中的行形成该树段的分支。通过使得能够由分开的树段形成树结构,这对数据路径路由的布局以及对要连接到互连电路的宽接口的其他设备的放置提供了改进的灵活性。例如,在一个实施例中,至少一个树段被提供在与至少一个其他树段不同的轴上,从而允许沿着多于一个的轴来分布所述其他设备。在一个实施例中,轴的这种变化也可容纳于树段本身。

可以提供各种类型的树段。然而,在一个实施例中,每个树段包括一个左树段或一个右树段,在所述步骤(iv),所应用的预定规则取决于瓦片是被确定用于左树段的块还是被确定用于右树段的块,同时仍然确保互连电路所提供的每条数据路径(不论处于左树段内还是处于右树段内)都具有相同的传播延迟。在一个实施例中,这种方法可被用来产生互连电路的数据路径布局,以作为具有通常的中央主干的树结构,分支从该通常的中央主干以相反的方向形成。在一个实施例中,左树段和右树段都可被布置成具有相同数量的列和行,从而能够产生以树结构主干为中心的对称设计。

分布式的多个其他设备可以以多种方式而定位在集成电路上。然而,在一个实施例中,其他设备分布在遵循至少一个轴的分布式路径上。在一个实施例中,其他设备可全部沿着直线路径布置,而在其他实施例中,可沿着相对于彼此取向不同的多条直线路径提供所述设备。

在一个实施例中,在分布式路径中的至少一个点上发生轴改变,并且该方法还包括以下步骤:在所述步骤(ii),定义与发生轴改变的分布式路径中的每个点相关联的互连电路中的角元件,以使每个角元件定义阵列中的相邻两列的块之间的轴改变;在所述步骤(iv),预定规则使用所述预定瓦片集合所包含的预定角瓦片来实施每个角元件,并且当对于阵列中的每个块确定要使用的瓦片时,该预定规则考虑到互连电路中任何角元件的位置,以便确保互连电路所提供的每条数据路径都具有相同的传播延迟。

通过使用预定角瓦片,在使用这种角瓦片时所涉及的传播延迟将被预先确定,因此当对于每个块确定要使用的适当瓦片以实施互连电路中的该块时,该预定规则可以考虑到任何角元件的位置,以便确保互连电路中的每条数据路径都具有相同的传播延迟。

如果角元件相对较短,那么在不造成布局拥塞的情况下这将限制在角元件的远侧上(相对于主干来说)可提供的分支的数量。在一个实施例中,通过在角元件的任一侧上定义填充元件,然后使用在预定瓦片集合内所提供的预定填充瓦片来实施每个填充元件,可以减轻上述问题。与角瓦片相结合的这种填充瓦片将有效地扩展角元件的尺寸,以便允许建立在角元件的远侧上需要大量分支的树结构。

在存在非连接单元的实施例中,该方法还可包括将一个或多个非连接单元与不需要连接到互连电路的集成电路的一个或多个其他部件相关联的步骤。作为可以与非连接单元相关联的这种部件的实例,这种部件可包括电源线,其被用来为要连接到互连电路的分布式的多个其他设备供电。

当应用预定规则来确定将哪些瓦片分配给定义互连电路的块阵列内的每个块时,如果预定规则确定在特定块位置上不需要布线布局,则在一个实施例中就不将瓦片分配给该块。在可替换的实施例中,预定的瓦片集合可包括一个或多个不具有布线布局的填充瓦片,并且如果预定规则确定在特定块位置上不需要布线布局,则将这些填充瓦片中的一个分配给该块。在一个实施例中,这种填充瓦片可具有金属填充物来满足给定工艺的金属密度要求。

在一个实施例中,所有单元都具有相等宽度,结果,块的每一列的宽度都相等,因此预定的瓦片集合可以以等宽来制成。然而,在可替换的实施例中,所定义的多个单元具有多个不同的宽度,并且预定的瓦片集合包括具有相应的多个不同宽度的瓦片,以便使每个单元都能够与一个所述列邻接。

然而,在可替换的实施例中,通过使用填充单元可避免对于提供用于所有可能宽度的单元的瓦片的需要。更特别地,在所述步骤(i),一些单元由初始单元与填充单元的组合来形成,以使与阵列中的列邻接的每个单元具有相等的宽度。通过这种方法,块的每一列都可布置成具有相同的宽度,因此预定的瓦片集合只需要包括具有该指定宽度的瓦片,从而减少了在预定集合内需要提供的瓦片的数量。

在一个实施例中,将第一设备直接连接到互连电路的窄接口。然而,在可替换的实施例中,该方法还包括以下步骤:定义从所述互连电路的所述窄接口到所述第一设备的根通道,从而允许将所述第一设备放置在集成电路中除了所述窄接口的位置之外的位置上。在一个特定实施例中,所述预定瓦片集合包括根瓦片子集,该方法还包括使用来自所述子集的一个或多个根瓦片来产生根通道的步骤。通过这种方法,这提供了有关第一设备的放置相对于分布式的多个其他设备的放置的自由性,同时仍能确保所述互连电路所提供的每条数据路径都具有相同的传播延迟。特别地,在一个实施例中,每条数据路径通过所述根通道的传播延迟都是完全相同的,因此所包括的根通道保持与本发明实施例的技术的特性相匹配的传播延迟。

所述第一设备与所述其他设备可采用多种形式。在一个实施例中,分布式的多个其他设备包括放置在集成电路外围周围的输入/输出设备。在一个这样的设备中,所述第一设备是用来控制多个输入/输出设备的存储器控制器设备。诸如SDR、DDR之类的存储器接口以及诸如PCI之类的并行总线架构是可以得益于本发明实施例的路由方法的主要技术实例。更一般地,本发明实施例的技术适用于对将窄接口连接到沿着宽接口物理上间隔相对较远的设备的数据路径而言需要高度的时序匹配的所有互连电路。

在一个实施例中,将各种其他设备直接连接到互连电路内相关联列中的相邻瓦片。然而,在可替换的实施例中,该方法还包括以下步骤:提供一个或多个桥瓦片,其提供所述其他设备的引脚与所述预定瓦片集合内瓦片的布线布局之间的引脚映射;以及对于特定的其他设备而言,当其引脚并未直接映射到与其邻接的所述互连电路内瓦片的布线布局时,则在所述特定其他设备与互连电路中的所述瓦片之间引入至少一个桥瓦片,以将所述特定其他设备的引脚映射到该瓦片的布线布局。因此,这种桥瓦片可被用来转换所述其他设备上的引脚位置,以符合与所述互连电路中的相关瓦片邻接所需的引脚位置。这种桥瓦片也可被用来避免互连电路中的布线与不需要通过互连电路进行连接的其他设备中的引脚的意外邻接。

在一个实施例中,沿着所述宽接口提供非连接单元,因此增加这种非连接单元并不影响所述窄接口。此外,在这种实施例中,沿着所述宽接口增加这种非连接单元也不影响数据路径连接到所述窄接口的顺序。因此,在沿着所述宽接口提供单元的方式以及所述其他设备与各个单元之间的关联性方面,具有很大程度的灵活性。

在一个实施例中,预定集合中的至少一个瓦片的布线布局使得:当至少一个瓦片被用来实施所述阵列中的块时,并非利用该瓦片中的所有布线布局。因此,在这种实施例中,在互连电路中的该瓦片的所有实例中并非将利用每个瓦片的布线布局中的所有各个线路。通过以这种方式设计瓦片,这提供有关使用这些瓦片的改进的灵活性。

从第二方面来看,本发明提供一种包括计算机程序的计算机程序产品,当在计算机系统上执行所述计算机程序时,所述计算机程序使得该计算机系统执行用于确定集成电路的互连电路中的数据路径的路由的方法,所述互连电路在第一侧上提供用于连接到第一设备的窄接口,并且在第二侧上提供用于连接到分布式的多个其他设备的宽接口,每条数据路径与一个所述其他设备相关联,并且通过所述互连电路在该相关联的其他设备与所述第一设备之间提供连接,该方法包括以下步骤:(i)定义要沿着所述宽接口提供的多个单元,每个所述其他设备与至少一个所述单元相关联;(ii)将所述互连电路定义为以行和列形成的块阵列,每个单元与一个所述列邻接;(iii)提供预定的瓦片集合,每个瓦片提供一个预定的布线布局;以及(iv)对于每个块,应用预定规则来确定要用来实施该块的一个所述瓦片,所述预定规则考虑到所述阵列中的块的位置以及所述多个其他设备与所述多个单元之间的关联性,并且确保所述互连电路所提供的每条数据路径都具有相同的传播延迟。

从第三方面来看,本发明提供一种用于确定集成电路的互连电路中的数据路径的路由的系统,所述互连电路在第一侧上提供用于连接到第一设备的窄接口,并且在第二侧上提供用于连接到分布式的多个其他设备的宽接口,每条数据路径与一个所述其他设备相关联,并且通过所述互连电路在该相关联的其他设备与所述第一设备之间提供连接,该系统包括:用于定义要沿着所述宽接口提供的多个单元的装置,每个所述其他设备与至少一个所述单元相关联;用于将所述互连电路定义为以行和列形成的块阵列的装置,每个单元与一个所述列邻接;用于提供预定的瓦片集合的装置,每个瓦片提供一个预定的布线布局;以及数据路径确定装置,其对于每个块,应用预定规则来确定要用来实施该块的一个所述瓦片,所述预定规则考虑到所述阵列中的块的位置以及所述多个其他设备与所述多个单元之间的关联性,并且确保所述互连电路所提供的每条数据路径都具有相同的传播延迟。

附图说明

将仅以实例的方式来进一步描述本发明,参考在附图中所示的本发明的实施例,其中:

图1是示意性地说明使用本发明实施例的技术所产生的结合了互连电路的集成电路的图;

图2是说明在本发明一个实施例中用来确定互连电路中的数据路径的路由的方法的流程图;

图3示意性地说明在本发明的实施例中用于互连电路的树结构;

图4示意性地说明根据本发明一个实施例如何使用各个瓦片中的布线布局来产生互连电路中的各种数据路径;

图5示意性地说明根据本发明一个实施例的作为包括左树段与右树段二者的平衡树结构而产生的互连电路;

图6示意性地说明根据本发明一个实施例所产生的左树段;

图7示意性地说明根据本发明一个实施例所产生的右树段;

图8示意性地说明根据本发明一个实施例所产生的平衡树结构,其中左树段与右树段由角元件分开;

图9是示意性地说明根据本发明一个实施例的用来产生右树段的方法的流程图:

图10是示意性地说明根据本发明一个实施例的用来产生左树段的方法的流程图;

图11至图32说明在本发明的一个实施例中所使用的预定瓦片集合;

图33至图69说明根据本发明一个实施例如何通过邻接来连接不同瓦片;

图70示出根据本发明一个实施例的用来产生示例互连结构的瓦片放置;

图71和图72说明根据本发明一个实施例如何使用各种瓦片来将各种设备连接到互连电路;以及

图73示意性地说明可以执行计算机程序来实施本发明实施例的技术的通用计算机的架构。

具体实施方式

图1是使用本发明实施例的技术所涉及的结合了互连电路40的集成电路60的说明性实例。

如图1所示,横跨集成电路60两侧的多个设备/部件经由互连电路40与集成电路中的设备20相连。设备30包括需要经由互连电路40连接到设备20的设备,在图1中将这些设备标记为IO(输入/输出)设备,并且也可包括一个或多个不需要连接到设备20的设备。在图1中,电源部件“VDD”34、“VDDA”35、“VSS”36和“VSSA”37是这种不需要连接到设备20的部件的实例。在设备的两条直线分布式路径之间的接合点处也可提供角元件38。

互连电路40提供到分布式设备30的宽接口,但是将窄接口呈现给设备20。如图1所示,可以提供根通道50以用于将信号从互连电路40的窄接口路由到设备20,以便增加关于设备20放置在集成电路60内的位置的灵活性。可替换地,设备20可被直接连接到互连电路的窄接口,而不需要这种根通道。

如稍后将更详细地讨论的那样,在设计互连电路时,沿着互连电路的宽接口提供许多单元(在图1中也被称为焊垫(pad)),然后各种设备/部件30的每一个与至少一个所述单元相关联。在一个实施例中,每个设备30与一个所述单元相关联,但是在可替换的实施例中,例如在设备太大而不能仅与单个单元相关联的情况下,某些设备可与多于一个的单元相关联。

在本发明的一个实施例中,设计该互连电路中的数据路径,以便采用包括一个主干部分和多个分支部分的树结构。该树结构可包括一个或多个树段,并且例如可以包括左树段和/或右树段。在图1的实例中,该树结构包括左树段和右树段二者,该左树段在图1所示虚线的左边,而该右树段在虚线的右边。每一树段的主干都与虚线任一侧的单元对齐,因此左树段的主干与VDD单元42对齐,并且右树段的主干与VSS单元44对齐。

在图1所示的实施例中,在左树段和右树段中有相等数量的单元/焊垫。通过在该设计上设置这种约束,更容易产生具有相同传播延迟的各种数据路径的互连电路,正如将参考剩余的图来进行更详细地讨论的那样。然而,在可替换的实施例中,如果分别为左树段与右树段设计不同类型的瓦片,则将有可能去掉此约束,以便确保互连电路中的所有数据路径都具有相同的传播延迟。

在图1中,假设设备20是存储器控制器设备,并且沿着该互连电路的宽接口提供的分布式的多个设备是由该存储器控制器设备所控制的IO设备32。然而,本发明实施例的技术也可应用于任何其他互连结构,在所述互连结构中,设备需要经由互连以传播延迟与通过所述互连的所有数据路径都匹配的方式来耦合到分布式的多个其他设备。

图2示意性地说明在本发明的一个实施例中用于确定互连电路40中数据路径的路由的方法。首先,在步骤100,确定要沿着该互连电路的宽接口提供的单元的数量。这个被确定的数量与必须通过该互连电路而连接到设备20的设备的数量以及需要容纳的非连接部件的数量有关。在本发明的一个实施例中,需要有与树结构的任何主干部分对齐的单元相关联的非连接部件。

在步骤100之后,在步骤110,形成块阵列以代表该互连,该阵列被形成为块的行和列。然后,每个单元与阵列中的一列邻接。因此,可以看到在步骤100所确定的单元数量决定阵列中需要提供的列数。在一个实施例中,选择比树结构的任何特定树段中的列数还要少一的行数。因此,仅以实例的方式,如果在步骤100确定有100个单元,并且该互连电路要由具有左树段和右树段的树结构形成,则每一树段将具有50列和49行。

在步骤120,依次考虑阵列中的每个块,并且对所考虑的每个块,应用预定规则来从预定的多个瓦片中确定用来代表该块的一个瓦片。如稍后将更详细地讨论的那样,提供预定的瓦片集合,每一瓦片之内具有一个预定布线布局。不同瓦片将被提供给不同宽度的单元,并且因此被提供给互连电路中不同宽度的列。所述预定规则考虑到阵列中块的位置、以及连接到互连电路的多个设备(例如图1中的IO单元32)与多个单元之间的关联性(即考虑到这些各种设备与哪些单元相关联)。基于此信息,该预定规则可选择用于每个块位置的适当瓦片,以便一旦考虑了每个块,那么就将在互连电路中提供设备20与每个所述IO设备32之间所需的数据路径,从而使每一条所述数据路径都具有相同的传播延迟。

因此,如步骤130所示,一旦已经在步骤120考虑了每个块,那么就为互连电路输出布局设计,其中每条所需的数据路径都由互连瓦片的序列形成,并且每条数据路径都具有相同的传播延迟。

图3示意性地更详细说明用于互连电路40的树结构。如所示,设备20可经由可选的根通道50耦合到互连树结构40的窄接口160。在此实例中,互连树结构40被形成为左树段,其具有由列165形成的一个主干、以及从主干165的左边伸出的多个分支170、175、180、185、190。在此实例中,可以看到,块阵列被构成为五行和六列,其中六列提供到设备将要关联的各种单元的宽接口150。在此实例中,将因此有六个单元沿着该宽接口,并且与每个单元相关联的将是要被连接到该互连的设备,或者将是不被连接到该互连的设备/部件。

图4说明互连树结构40的同一形成,但是示意性地说明一旦将瓦片分配给了每个块就可在树结构中产生的数据路径。如前所述,提供可选的根通道50以将设备20连接到互连40的窄接口。将从图4认识到,设备20与单元1到单元5之间提供的数据路径的每一条都具有相同的长度,并且因此将具有相同的传播延迟。如较早所讨论的那样,在给定较早提到的约束的情况下,即需要连接到该互连的任何设备都不会放置在邻接树结构主干的位置,则需要选择与单元0、200相关联的任何设备来作为不需要连接到互连40的设备。关于其他单元205、210、215、220、225,所有这些单元可能都具有与其相关联的连接设备,或者这些单元中的一个或多个可能具有与其相关联的非连接设备。

图5是使用本发明的一个实施例所产生的互连电路配置的实例。这些标记为NC(非连接)的IO单元260是与不需要经由该互连电路而连接到设备20的部件/设备相关联的单元。此实例说明这个互连的主要子部件:

·根50-其将设备20连接到树结构40。该根是使用瓦片10和11建立的。

·树结构40-其将根50连接到各个IO单元260。它是使用瓦片0L、0R、1L、1R、2L、2R、3L、3R、4L、4R、5L、5R、6L、6R、7L、7R、8L和8R建立的。这组成了该互连电路的主体。

树本身分成两个段,左树段使用瓦片0L、0R、1L、2L、3L、4L、5L、6L、7L和8L来建立。在图5中,该左树段从图的中间(即列C=0)跨越到左末端(即列C=12)。此段包含未赋予列号的角元件250。角元件用瓦片0L和0R来建立。每一0L和0R瓦片用其行号来索引。在图5中,该索引在方括号中被显示为0L[R]和0R[R],其中方括号中的R是与该瓦片相关联的行。

右树段使用瓦片0L、0R、1R、2R、3R、4R、5R、6R、7R和8R来建立。在图5中,该右树段从图的中间(即列C=0)跨越到右末端(列C=12)。此段在图5中并未包含角,但是如果期望的话可将角结合到该右树段的布局中。

该左树段和右树段再次被分成两个部分,即主干与分支。左树分支与右树分支使用瓦片0L、0R、1L、1R、2L、2R、3L、3R、4L、4R、5L和5R来建立。它们被包含在值C>0的列中。该树分支具有与该树的行R相同的编号。对于该左树段与右树段,这些行分别被显示在图的左下部与右侧。

该树主干使用瓦片6L、6R、7L、7R、8L和8R来建立。在图5中,该树主干由列C=0中的瓦片组成。

标记为X的瓦片是“无关的”瓦片,并且在产生该互连电路时可省略这些瓦片,或者代之以可使用包含金属填充单元的瓦片以符合该技术的金属填充密度要求。

有三种主要的树配置类型。左分支树只包含左树段而省略右树段。左分支树可包含角元件。图6示出左分支树270在其主干的窄接口处直接连接到设备20的实例。再次示出与每一列都关联的IO单元260,一些所述单元与要连接到该互连电路的数据路径的设备(IOL单元)相关联,并且其他单元与非连接设备(NC IOL单元)相关联。图6的实例中的这个左分支树不具有角元件或根。

右分支树包含右树段而省略左树段。如同左分支树一样,右分支树可包含角元件。图7示出不具有角元件或根的右分支树290的实例。同样在此实例中,右分支树290在其主干的窄接口处直接连接到设备20,并且示出与每一列都相关联的单元260。

正如较早参考图5以实例的方式所示,平衡树包含左树段与右树段二者。平衡树可以具有两个角元件,一个在左树段上,一个在右树段上。

在左树段与右树段之间具有角元件的有角平衡树是该平衡树的特殊情况。图8示出有角平衡树的实例。有角平衡树可具有三个角元件,即一个在左树段上、一个在右树段上、并且一个在左树段与右树段之间。在图8的实例中,有角平衡树具有左树段270,角280将左树段270与右树段290分开。设备20用由瓦片9、10和11所形成的根50来与该树分开。如同较早的图5到图7一样,示出与该树的每一列相关联的单元260,以与连接设备或非连接设备相关联。

尽管在上述实例中表明任何树段之内都可具有至多一个角元件,但是将会认识到,在可替换的实施例中可在每一树段中提供多于一个的角元件。

图9示出在一个实施例中用于建立右分支树的算法的流程图。该算法也被用来建立平衡树的右树段。图10示出在一个实施例中用于建立左分支树的算法的流程图。该算法也被用来建立平衡树的左树段。这两个算法都使用下面的参数与变量:

N-给定配置的常数,其值代表作为经由该互连电路而连接的部分的IO单元的数量。

CCL-给定配置的常数,其值代表在其后将例示角单元的IO单元的列位置。

c-包含所选的列位置以例示瓦片的变量。

r-包含所选的行位置以例示所述瓦片的变量。

在图9和图10中,瓦片被称为GDS瓦片。算法通过指定瓦片类型以及使用行r和列c坐标在树中指定其位置来建立该树。图9和图10中所说明的算法并未例示“无关的”瓦片,如果它们被使用的话。如图6所示,左分支树从右向左来建立。这意味着列c=0是最右边的列,并且列c=N-1是最左边的列。如图7所示,右分支树从左向右来建立。这意味着列c=0是最左边的列,并且列c=N-1是最右边的列。该平衡树通过将如图5所示在列c=0处邻接的左分支树和右分支树放置在一起来建立,或者通过将如图8所示成90°角的左分支树和右分支树来建立。使用图9和图10中所说明的算法为该互连电路产生的树结构具有以下约束:

1、所有瓦片、IO单元以及设备20都通过邻接而连接在一起。

2、当邻接元件时,必须维持用于互连总线(数据路径)的位位置。

3、当建立平衡树时,用于左树段与右树段的列数必须相同,以确保传播延迟匹配。

4、与列c=0相关联的IO单元不可以与需要通过该互连而连接到设备20的设备相关联。

5、角利用未被赋予列号但放置在具有网格位置(c,r)的瓦片后的瓦片0L和0R来建立。

通过遵循在图9和图10中所定义的过程,可以如较早所显示的那样来形成右树段与左树段。例如,通过应用图9的过程,可产生图7中所示的右树段。在此实例中,N=11。从位置r=0、c=0开始,可以看到,该过程从步骤300、305、310、320、325、330、405进行到步骤415,其中确定在此树段上没有角。因此,该过程进行到步骤420,其中在行0、列0处插入瓦片6R,此后该过程转到步骤400。在步骤400,列值c递增,此后该过程经由步骤325、330、335、350、360进行到步骤370。在这一点上,符合步骤370中所指定的条件,从而导致该过程分支到步骤375,其中瓦片1R被放置在列1、行0上,此后该过程返回到步骤400。

一旦列值在步骤400递增到等同于值N的值,则该过程分支到步骤450,在此步骤中行值递增,并且之后在步骤320列值被重置为0,从而导致针对行1的所有块位置来重复所述过程。当在步骤310确定递增的行值不再小于N-1时,则该过程结束于步骤315。

图10说明用来产生左树段的相应过程。因此,例如考虑图6的左树段,通过执行图10的过程来产生如图6所示的此瓦片分配。仅以实例的方式,考虑在r=5、c=5处的块位置,将会看到,从步骤525开始,该过程沿着路径530、535、550到达点560。在这一点上,因为r=5、c=5并且N=11,所以将符合在步骤560所指定的条件。因此,该过程分支到步骤565,在此步骤中瓦片2L被放置在该网格位置上,正如确实在图6中清楚地示出的那样。

从与图5到图8中的任一图相关联的图9与图10的类似评述,将会看到这些图所描述的过程将产生图5到图8中所示的瓦片布局。由于在这些瓦片中的每一个瓦片中都提供有布线布局,所以图9和图10的过程在该互连结构中产生全都具有相同传播延迟的数据路径。此外,从图9和图10中将会认识到,此设计布局过程不需要评估所产生的布局以看它是否符合时序约束,因此不需要现有技术的EDA工具通常所需的任何迭代。

并非每一互连类型都需要根结构。如图6和图7所示,设备20可直接邻接于树主干。一般而言,根由瓦片9、10和11来建立。左分支树、右分支树以及平衡树可以使用瓦片9、10和11来将根连接到树。有角平衡树使用瓦片9将根连接到树。如图8所说明的,瓦片11和12被用来将该根扩展到其与设备20邻接的位置。

该互连树结构由放在一起时通过邻接而相连的一个瓦片集合来建立。存在描述这些瓦片的多个公共参数:

N-IO的数量。此参数列出将为IO环260的一部分的IO单元的总数。

I-相连的IO数量。此参数指出需要通过该互连而连接到设备20的IO单元数量。

P-端口宽度。此参数指出IO单元将需要通过互连传播到设备20的连接或位的最大数量。

Z-所需的最长水平金属长度。此参数指出下列中的最长长度:

1、从任何瓦片的东端口连接到西端口所需的最长线路。

2、从任何0R或0L瓦片的东端口连接到西端口所需的最长线路的两倍。

V-所需的最长垂直金属长度。此参数指出从任何瓦片的北端口连接到南端口的最长线路。

H-瓦片高度。此参数指出支持任何瓦片的东侧或西侧上的宽度为P位的两个端口所需的最小高度。

图11是用于说明性目的的瓦片“0L”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·该瓦片宽度根据其行位置而变化。

·所有端口(2、3、4和5)中的每个端口都具有P个连接(位)。

·互连布线6和7具有长度M,其中:

M=0.5*Z。

图12是用于说明性目的的瓦片“0R”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·该瓦片宽度根据其行位置以及角元件的尺寸而变化。

·所有端口(2、3、4和5)中的每个端口都具有P个连接(位)。

·互连布线6和7具有长度M,其中:

M=0.5*Z。

如果左瓦片和右瓦片具有相等宽度,则通过使用水平翻转,相同的瓦片布线设计可被用于给定行r的类型0L[r]和0R[r]。

图13是用于说明性目的的瓦片“1L”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·将建立一个瓦片以用于该互连电路中所使用的每个IO单元宽度,该互连电路包括未连接到设备20的IO单元。

·所有端口(2、3、4、5、6和7)中的每个端口都具有P个连接(位)。

·互连布线8和9具有长度M,其中:

M=Z。

·互连布线10具有长度V。

图14是用于说明性目的的瓦片“1R”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·将建立一个瓦片以用于互连电路中所使用的每个IO单元宽度。

·所有端口(2、3、4、5、6和7)中的每个端口都具有P个连接(位)。

·互连布线8和9具有长度M,其中:

M=Z。

·互连布线10具有长度V。

如果北侧和南侧上的端口具有垂直对称性,则通过使用水平翻转,相同的瓦片布线设计可被用于类型1L和1R。

图15是用于说明性目的的瓦片“2L”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·将建立一个瓦片以用于该互连电路中所使用的每个IO单元宽度。

·所有端口(2、3、4和5)中的每个端口都具有P个连接(位)。

·互连布线6具有长度M,其中:

M=0.5*Z+0.5*V。

·互连布线7具有长度M,其中:

M=Z。

图16是用于说明性目的的瓦片“2R”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·将建立一个瓦片以用于该互连电路中所使用的每个IO单元宽度。

·所有端口(2、3、4和5)中的每个端口都具有P个连接(位)。

·互连布线6具有长度M,其中:

M=0.5*Z+0.5*V。

·互连布线7具有长度M,其中:

M=Z。

如果北侧上的端口具有垂直对称性,则通过使用水平翻转,相同的瓦片布线设计可被用于类型2L和2R。

图17是用于说明性目的的瓦片“3L”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·将建立一个瓦片以用于该互连电路中所使用的每个IO单元宽度。

·所有端口(2和3)中的每个端口都具有P个连接(位)。

·互连布线4具有长度M,其中:

M=2*Z+0.5*V。

图18是用于说明性目的的瓦片“3R”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·将建立一个瓦片以用于该互连电路中所使用的每个IO单元宽度。

·所有端口(2和3)中的每个端口都具有P个连接(位)。

·互连布线4具有长度M,其中:

M=2*Z+0.5*V。

通过使用水平翻转,相同的瓦片布线设计可被用于类型3L和3R。

图19是用于说明性目的的瓦片“4L”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·将建立一个瓦片以用于该互连电路中所使用的每个IO单元宽度。

·所有端口(2和3)中的每个端口都具有P个连接(位)。

·互连布线4具有长度M,其中:

M=Z+0.5*V。

图20是用于说明性目的的瓦片“4R”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·将建立一个瓦片以用于该互连电路中所使用的每个IO单元宽度。

·所有端口(2和3)中的每个端口都具有P个连接(位)。

·互连布线4具有长度M,其中:

M=Z+0.5*V。

通过使用水平翻转,相同的瓦片布线设计可被用于类型4L和4R。

图21是用于说明性目的的瓦片“5L”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·将建立一个瓦片以用于该互连电路中所使用的每个IO单元宽度。

·所有端口(2和3)中的每个端口都具有P个连接(位)。

·互连布线4具有长度M,其中:

M=1.5Z+0.5*V。

图22是用于说明性目的的瓦片“5R”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·将建立一个瓦片以用于该互连电路中所使用的每个IO单元宽度。

·所有端口(2和3)中的每个端口都具有P个连接(位)。

·互连布线4具有长度M,其中:

M=1.5Z+0.5*V。

如果北侧上的端口具有垂直对称性,则通过使用水平翻转,相同的瓦片布线设计可被用于类型5L和5R。

图23是用于说明性目的的瓦片“6L”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·该瓦片宽度与该树主干上IO单元的宽度相同。

·端口2和3具有S个连接,其中:

S>=(I-1)*P。

·端口4和5都具有S个连接,其中:

S=P。

·互连布线6具有长度M,其中:

M=V。

·互连布线7具有长度M,其中:

M=Z+0.5*V。

图24是用于说明性目的的瓦片“6R”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·该瓦片宽度与该树主干上IO单元的宽度相同。

·端口2和3具有S个连接,其中:

S>=(I-1)*P。

·端口4和5具有S个连接,其中:

S=P。

·互连布线6具有长度M,其中:

M=V。

·互连布线7具有长度M,其中:

M=Z+0.5*V。

通过使用水平翻转,相同的瓦片布线设计可被用于类型6L和6R。

图25是用于说明性目的的瓦片“7L”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·该瓦片宽度与该树主干上IO单元的宽度相同。

·端口2和3具有S个连接,其中:

S>=I*P。

·互连布线4具有长度M,其中:

M=V。

图26是用于说明性目的的瓦片“7R”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·该瓦片宽度与该树主干上IO单元的宽度相同。

·端口2和3具有S个连接,其中:

S>=I*P。

·互连布线4具有长度M,其中:

M=V。

通过使用水平翻转,相同的瓦片布线设计可被用于类型7L和7R。

图27是用于说明性目的的瓦片“8L”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·该瓦片宽度与该树主干上IO单元的宽度相同。

·端口2和3具有S个连接,其中:

S>=(I-1)*P。

·端口4和5具有S个连接,其中:

S=P。

·互连布线6具有长度M,其中:

M=V。

·互连布线7具有长度M,其中:

M=2*Z+0.5*V。

图28是用于说明性目的的瓦片“8R”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度H。

·该瓦片宽度与该树主干上IO单元的宽度相同。

·端口2和3具有S个连接,其中:

S>=(I-1)*P。

·端口4和5具有S个连接,其中:

S=P。

·互连布线6具有长度M,其中:

M=V。

·互连布线7具有长度M,其中:

M=2*Z+0.5*V。

通过使用水平翻转,相同的瓦片布线设计可被用于类型8L和8R。

图29是用于说明性目的的瓦片“9L”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度T,其中:

如果X是该树主干上的IO单元宽度,

则T=2*X。

·该瓦片具有宽度U,其中:

如果X是该树主干上的IO单元宽度,

则U=X。

·端口2、3、4和5具有S个连接,其中:

S>=(I-1)*P。

·互连布线6和7具有长度M,其中M可以是任何值,但优选是瓦片可能的最小长度。

图30是用于说明性目的的瓦片“9R”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度T,其中:

如果X是该树主干上的IO单元宽度,

则T=2*X。

·该瓦片具有宽度U,其中:

如果X是该树主干上的IO单元宽度,

则U=X。

·端口2、3、4和5具有S个连接,其中:

S>=(I-1)*P。

·互连布线6和7具有长度M,其中M可以是任何值,但优选是瓦片可能的最小长度。

通过使用水平翻转,相同的瓦片布线设计可被用于类型9L和9R。

图31是用于说明性目的的瓦片“10”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连。

·该瓦片具有高度T,其中

如果X是该树主干上的IO单元宽度,

则T=2*X。

·该瓦片具有宽度U,其中

如果X是该树主干上的IO单元宽度,

则U=2*X。

·端口2、3、4和5具有S个连接,其中

S>=(I-1)*P。

·互连布线6和7具有长度M,其中M可以是任何值,但优选是瓦片可能的最小长度。

瓦片10可以被旋转以及翻转来适合应用。

图32是用于说明性目的的瓦片“11”的实例。大部分实施将使用多个金属层和过孔来创建端口和互连布线。

·该瓦片具有高度T,其中:

如果X是该树主干上的IO单元宽度,

则T=2*X。

·该瓦片宽度是任意长度。宽度越短,互连根就可以越精确地将设备20放置在ASIC中。当设备20必须放置在远离互连树的位置时,则以必须使用更短宽度的10个瓦片中的多个瓦片为代价来得到更短宽度的10个瓦片。可建立具有多个宽度的瓦片10,以将放置精度与瓦片实例的数量减少相结合。

·端口2、3、4和5具有S个连接,其中:

S>=(I-1)*P。

·互连布线6和7具有长度M,其中M可以是任何值,但优选是瓦片可能的最小长度。

瓦片10可以旋转以及翻转来适合应用。

所有瓦片、IO单元以及设备20都以邻接的方式连接。在邻接时总是维持所有总线位的顺序。图33到图69说明不同瓦片如何邻接的各种实例。图的列表不是穷尽性的,而是如何将瓦片一起放置在布局中的广泛构思的实例。

图70说明对于具有左树段和右树段的平衡树的相对较简单的实例产生的布线布局,其中每一树段具有与其相关联的五个单元。在典型的实施例中,沿着宽接口将提供更多的单元,并且图70仅被提供以用于说明的目的。从图70可以看到,各种瓦片中的各个布线布局提供通过互连的数据路径,并且将连接的点提供给要被连接到该互连中的每个IO设备32。如图70的实例所示,在该左树段中有三个这种IO设备32,并且在该右树段中有四个这种IO设备32。图71和图72示意性地示出可以使用各个瓦片中的布线布局来提供到已连接IO设备32的连接或者避免到非连接IO设备的连接的方式。如图71所示,需要连接的IO设备32上的引脚位置使得它们与相邻瓦片上所需的布线布局连接,而那些不需连接的IO设备就未使其引脚与相邻瓦片的布线布局对齐。

类似地,在图72中,其示出瓦片6L和6R的组合如何被用来提供设备20所需的连接。

图73示意性地说明可用来实施上述技术的类型的通用计算机700。通用计算机700包括中央处理单元702、随机存取存储器704、只读存储器706、网络接口卡708、硬盘驱动器710、显示驱动器712和监视器714、以及具有都经由公用总线722连接的键盘718和鼠标720的用户输入/输出电路716。在操作中,中央处理单元702将执行计算机程序指令,这些指令可被存储在随机存取存储器704、只读存储器706以及硬盘驱动器710的一个或多个中,或者经由网络接口卡708动态下载。所执行的处理的结果可经由显示驱动器712和监视器714显示给用户。用于控制通用计算机700的操作的用户输入可以经由用户输入输出电路716从键盘718或鼠标720接收。将会认识到,计算机程序可用多种不同的计算机语言来编写。计算机程序可被存储并分布在记录介质上,或者动态下载到通用计算机700。当在适当计算机程序的控制下操作时,通用计算机700可执行上述用于确定互连电路中数据路径的路由的技术,并且可被考虑以形成用于执行上述技术的装置。通用计算机700的架构可有相当多的变化,并且图73仅是一个实例。

在上述本发明的实施例中,对于不需要布线布局的任何块位置而言,未例示瓦片(例如参见图5到图8中标记为“x”的瓦片)。然而,在可替换的实施例中,预定的瓦片集合可包括用来例示用于这些块的瓦片的填充瓦片。在一个实施例中,这些填充瓦片将具有金属填充物来满足给定制造工艺的金属密度要求。

此外,在一些实施例中,IO单元库可具有短角IO单元,这将限制在不造成布局拥塞的情况下角元件的远侧上(相对于主干)可提供的分支数量。在一个实施例中,通过在角元件任一侧上定义填充元件,然后使用预定的瓦片集合中所提供的预定填充瓦片来实施每一填充元件,可以减轻这一问题。与角瓦片相结合的这种填充瓦片将有效扩展该角元件的尺寸,以允许建立在该角元件的远侧上需要大量分支的树结构。

在较早描述的实施例中,已分别例示各种瓦片以用于每个可能宽度的单元。然而,在可替换的实施例中,通过使用填充单元可避免对于提供用于所有可能宽度的单元的瓦片的需要。更特别地,填充单元可与现有IO单元结合,以便建立组合的IO单元库,其具有与每个IO单元相同的宽度。这将显著地降低该预定瓦片集合中需要提供的瓦片宽度的数量以便建立互连电路。

在较早描述的实施例中,要被连接到互连电路的树结构的各种设备,被布置成直接连接到互连电路的相关联的列中的相邻瓦片。然而,在可替换的实施例中,可以提供一个或多个桥瓦片,其提供这些设备的引脚与预定的瓦片集合中瓦片的布线布局之间的引脚映射。因此这些桥瓦片转换IO设备的引脚位置,以符合将该IO设备邻接到该互连树所需的引脚位置。这些单元也可用来将互连电路与设备分开,以便避免意外邻接到不需要通过该互连电路的连接的IO设备/部件。这种桥瓦片也可用来创建具有垂直对称端口的IO设备接口,从而允许通过水平翻转来重用左树和右树的瓦片布线设计。

从上面对本发明实施例的描述中,将会认识到这些实施例具有下列优点:

1、使用本发明实施例的技术而设计的互连电路使得在其接口之间有极大尺寸差异的两个物理块能够被连接;

2、使用本发明实施例的技术而设计的互连电路能够有效地处理差分信号,特别是本发明实施例的对称线路长度以及寄生匹配(物理效应匹配)特性使其特别适用于处理差分信号;

3、该技术提供精确匹配的传播延迟,并且也可匹配其他物理方面,例如耦合、串扰、加载、噪声屏蔽等等;

4、该技术可处理具有不同宽度的IO设备的混合;

5、该技术能够在不修改核心接口引脚与信号位置的情况下,有效地处理通过该互连而连接的IO设备与不通过该互连而连接的IO设备/部件的不同混合;

6、通过使用较早提到的根通道,核心接口可相对于该IO设备的放置而被放置在任何地方;

7、该技术可分别为左、右和中央核心接口放置提供优化的拓扑;

8、该技术提供使用了具有预定布线布局的预定瓦片的结构化路由方法;

9、有可能仅使用少量预定布局元件(瓦片)就建立大量不同的互连;

10、使用本发明实施例的技术而建立的互连具有基于精确几何信息的预特征化时序;

11、该技术以算法为基础,并且可根据前馈方法针对各种总线宽度立即编译。不同于最熟知的ASIC工具,不需要过程的迭代;

12、与使用现有技术的工具而设计的互连相比,使用本发明实施例的技术而设计的互连通常显示出降低的功率消耗,因为本技术避免需要为了改进时序以及延迟匹配而在各种路径中插入缓冲器与其他部件。

本发明实施例的技术可应用于所有高速总线,当将其连接到物理上彼此远离的块时需要时序的高度匹配。本发明实施例的技术尤其适用于从局部设计的并行总线连接到集成电路上的IO单元,其中数据路径的物理宽度在尺寸上相差很大。诸如SDR、DDR之类的存储器接口以及诸如PCI之类的并行总线架构是将从本发明实施例的技术的使用中大大得益的主要技术实例。随着这些架构的数据速率的增大,本发明实施例的技术将是特别有益的。

虽然在此已描述了本发明的特定实施例,但是下述将是显而易见的,即本发明不限于此,并且在本发明范围之内可进行许多修改和添加。例如,在不偏离本发明范围的情况下,可以进行后面的从属权利要求的特征与独立权利要求的特征的各种组合。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号