用于管理电路设计的方法和系统的制作方法

文档序号:6608430阅读:206来源:国知局
专利名称:用于管理电路设计的方法和系统的制作方法
技术领域
本发明一般涉及在电路设计中放置单元(cell),并且更特别地涉及一种基于所得到的配线(wire)长度递增地放置单元的解决方案。
背景技术
已经提出了大量方法用以解决门阵列和/或标准单元电路设计中的单元放置。一般来说,这些方法假定电路设计在很大程度上是未经放置的(unplaced),可以预先放置例如相对较少的重要单元,如阵列或寄存器。在这些方法中,单元是全局放置的(例如电路设计中的任意位置)。
在目前和将来的硅技术中,实现电路设计中的所有连接所需的配线量是一个重要的考虑因素。例如,随着电路特征尺寸的减小,配线延迟成为所得到的电路设计中延迟的主要来源。进一步,配线延迟与特征尺寸成反比例变化。也就是说,随着技术达到低于90纳米的特征尺寸,配线延迟正在变得相对较慢并且也确实更慢了。因此,考虑放置所需的配线量对于单元放置来说是很重要的。
在电路设计中的大部分单元或所有单元都被放置后,通常期望增加额外的单元和/或优化一个或多个单元的位置。例如,可能期望以略微不同的方式实现一组特定的功能性,从而需要一个或多个新的单元(例如,增加反相器从而以NAND(与非)门代替AND(与)门)。然而,由于所实现的算法的性质,大部分目前的单元放置方法都不能递增地放置单元以便使额外的配线长度最小化。
已经提出了一些方法用以解决递增的放置。例如,一种方法是确定用于将单元放置在内的限制框,并将该单元放置在该限制框的质心或加权质心。可以基于单元所连的管脚的位置确定该限制框。在共同所有的美国专利No.5,825,661中描述了一种替代性方法,此处通过引用的方式包含其内容。在该方法中,计算单元输入的源端(source)的第一质心和单元输出的汇端(sink)的第二质心。随后将该单元放置在由这两个质心以及沿与根据这两个质心计算的放置位置相交的45度对角线限定的限制矩形内。
考虑到前述内容,在本领域中需要克服此处所述的一个或多个缺点和/或此处未讨论的一个或多个其它缺点。

发明内容
本发明提供了一种用于管理电路设计的解决方案,其使得可以基于所得到的配线距离将单元递增地放置在电路设计中。获得要放置在电路设计中的单元及电路设计中该单元要连接的一组相应的网。可以基于用于该单元的该组网产生布线栅格(routing grid),该布线栅格在电路设计中限定了多个小块(tile)以便在放置该单元时考虑。可以使用该组网计算布线栅格中每一个小块的配线距离度量。该配线距离度量随后被用于确定用来放置该单元的目标小块。该目标小块可以被用于寻找精确的和/或粗略的单元放置。
本发明的第一方面提供了一种管理电路设计的方法,该方法包括获得要放置在该电路设计中的单元及该电路设计中该单元要连接的一组网;获得用于该单元的布线栅格,该布线栅格在该电路设计中限定了多个小块;基于该组网获得该多个小块中的每一个小块的配线距离度量;以及基于相应的配线距离度量在该多个小块中确定用于放置该单元的目标小块。
本发明的第二方面提供了一种用于管理电路设计的系统,该系统包括用于获得要放置在该电路设计中的单元及该电路设计中该单元要连接的一组网的系统;用于获得用于该单元的布线栅格的系统,该布线栅格在该电路设计中限定了多个小块;用于基于该组网获得该多个小块中的每一个小块的配线距离度量的系统;以及用于基于相应的配线距离度量在该多个小块中确定用于放置该单元的目标小块的系统。
本发明的第三方面提供了一种存储在计算机可读介质上的程序产品,当被实现时,该程序产品使得计算机基础设施能够管理电路设计,该程序产品包括计算机程序代码,该程序代码使计算机基础设施能够获得要放置在该电路设计中的单元及该电路设计中该单元要连接的一组网;获得用于该单元的布线栅格,该布线栅格在该电路设计中限定了多个小块;基于该组网获得该多个小块中的每一个小块的配线距离度量;以及基于相应的配线距离度量在该多个小块中确定用于放置该单元的目标小块。
本发明的第四方面提供了一种产生用于管理电路设计的系统的方法,该方法包括提供计算机基础设施,其可操作为获得要放置在该电路设计中的单元及该电路设计中该单元要连接的一组网;获得用于该单元的布线栅格,该布线栅格在该电路设计中限定了多个小块;基于该组网获得该多个小块中的每一个小块的配线距离度量;以及基于相应的配线距离度量在该多个小块中确定用于放置该单元的目标小块。
本发明的第五方面提供了一种用于管理电路设计的商业方法,该商业方法包括管理实现此处描述的处理的计算机基础设施;以及基于该管理收取报酬。
本发明的示例方面针对于解决此处描述的一个或多个问题和/或未讨论的一个或多个其它问题。


结合描述本发明不同实施例的附图,通过下面的对本发明不同方面的详细描述,能够更容易地理解本发明的这些和其它特征,其中图1示出了根据本发明实施例的用于管理电路设计的示例环境;图2示出了根据本发明实施例的用于在电路设计中放置单元的示例处理;图3示出了根据本发明实施例的用于示例电路设计的示例布线栅格;图4A-图4C示出了根据本发明实施例的与图3所示的每一个网对应的示例的特定于网的配线距离的矩阵;图5A-图5B示出了可以基于图4A-图4C所示的特定于网的配线距离而产生的示例配线距离度量的矩阵;以及图6示出了图3所示的电路设计的示例放置栅格。
需要注意的是,附图并非按比例绘制。附图仅旨在描述本发明的典型方面,因此不应被认为是本发明范围的限制。在附图中,不同附图中相同的编号代表相同的单元。
具体实施例方式
如前所述,本发明提供了一种用于管理电路设计的解决方案,其使得可以基于所得到的配线距离将单元递增地放置在电路设计中。获得要放置在电路设计中的单元及电路设计中该单元要连接的一组相应的网。可以基于用于该单元的该组网产生布线栅格,该布线栅格在电路设计中限定了多个小块以便在放置该单元时考虑。可以使用该组网计算布线栅格中每一个小块的配线距离度量。该配线距离度量随后被用于确定用来放置该单元的目标小块。该目标小块可以被用于寻找精确的和/或粗略的单元放置。正如此处所用的,除非另有说明,术语“组”具有一种或多种(也就是至少一种)含义,短语“任意解决方案”意指任意的现在已知的或以后开发的解决方案。
参考附图,图1示出了根据本发明实施例的用于管理电路设计50的示例环境10。至此,环境10包括能够执行此处描述的处理以便管理电路设计50的计算机基础设施12。特别地,所示的计算机基础设施12包括具有设计管理系统30的计算设备14,该设计管理系统30使得计算设备14可操作为通过执行此处描述的处理来管理电路设计50。
将计算设备14示出为包括处理器20、存储器22A、输入/输出(I/O)接口24和总线26。进一步,将计算设备14示出为与外部的I/O设备/资源28以及存储系统22B通信。在本领域中已知,一般来说,处理器20执行计算机程序代码,如存储在存储器22A和/或存储系统22B中的设计管理系统30。当执行计算机程序代码时,处理器20能够对存储器22A、存储系统22B和/或I/O接口24读取和/或写入数据,例如电路设计50。总线26提供计算设备14中每一组件间的通信链路。I/O设备28可以包括使个人能够与计算设备14进行交互的任意设备,或使计算设备14能够使用任意类型的通信链路与一个或多个其它计算设备通信的任意设备。
在任意情况下,计算设备14可以包括具有执行安装于其上的计算机程序代码的能力的任意通用计算产品(例如个人计算机、服务器、手持设备等)。然而,需要理解的是计算设备14和设计管理系统30仅仅是可以执行此处描述的处理的各种可能的等同计算设备中的代表。至此,在其它实施例中,计算设备14和设计管理系统30提供的功能性可以被包括通用/专用的硬件和/或计算机程序代码的任意组合的计算产品所实现。在每一个实施例中,可以分别使用标准的编程和工程技术来产生该程序代码和硬件。
类似地,计算机基础设施12仅仅是对用于实现本发明的不同类型计算机基础设施的说明。例如,在一个实施例中,计算机基础设施12包括两个或更多的计算设备(例如服务器集群),这些计算设备通过如网络、共享存储器之类的任意类型的通信链路通信,以执行此处描述的处理。进一步,当实现此处描述的处理时,计算机基础设施12中的一个或多个计算设备可以使用任意类型的通信链路与计算机基础设施12外部的一个或多个其它计算设备进行通信。在任一情况下,通信链路可以包括不同类型的有线和/或无线链路的任意组合;包括一种或多种类型的网络(例如因特网、广域网、局域网、虚拟专用网等)的任意组合;和/或使用不同类型的传输技术和协议的任意组合。
正如此处所讨论的,设计管理系统30使计算机基础设施12能够管理电路设计50。至此,所示的设计管理系统30包括单元组件32、栅格组件34、定位组件36和放置组件38。这些系统中的每一个系统的操作都会在此处进一步讨论。然而,需要理解的是,图1中所示的不同系统中的某一些系统可以被计算机基础设施12中所包括的一个或多个单独的计算设备独立地实现,组合地实现,和/或保存在存储器中。进一步,需要理解的是一些系统和/或功能性可能不会被实现,或附加的系统和/或功能性可以被包括为计算机基础设施12的一部分。
无论如何,本发明提供了一种用于管理电路设计50的解决方案。一般来说,设计管理系统30使一个或多个用户16能够查看、修改、删除和/或以类似方式处理一个或多个电路设计50。至此,设计管理系统30可以使用任意方法对存储系统22A-22B读取和写入针对电路设计50的数据。在一个实施例中,针对电路设计50的数据作为一个或多个文件被存储在文件系统中,该数据定义了不同的对象/结构,其中可以使用设计管理系统30在动态存储器中对这些对象/结构进行操作(例如修改、添加、删除等)并随后将其存储为一个或多个文件。然而,需要理解的是可以使用任意方法对针对电路设计50的数据进行管理。
在任意情况下,图2示出了根据本发明实施例的在电路设计50中放置单元的示例处理,该处理可以由计算机基础设施12(图1)实现。参考图1和图2,在图2的步骤S1中,单元组件32可以获得要放置在电路设计50中的单元。单元组件32可以使用任意方法获得单元。例如,单元组件32可以产生用于显示给用户16的用户界面,该界面呈现一些或所有的电路设计50。在这种情况下,该用户界面可以使用户16能够选择要添加到电路设计50中的单元。类似地,作为电路设计50的优化处理的一部分,用户16可以使用用户界面在电路设计50中选择特定的单元,其中将会针对配线距离而对该单元的位置进行优化。进一步,单元组件32可以定义应用程序接口(API)等,该API使用户16(在此例中是另一计算系统)能够请求将单元添加到电路设计50中和/或针对配线距离而对单元进行优化。
在步骤S2中,单元组件32能够获得电路设计50中单元要连接的一组网。在本领域中已知,“网”包括电路设计50中的一组需要电连接的终端。进一步,“网”可以包括用于连接该组终端中的一些或所有终端的现有配线。一般来说,电路设计50中的每一个单元将包括针对该单元的每一个输入和每一个输出的唯一的网。单元组件32可以用任意方法获得单元的该组网。例如,用户32可以指定(例如,使用用户界面、API等)与单元的每一个输入对应的源端,以及与单元的每一个输出对应的汇端。另外,当单元当前被包括在电路设计50中时,单元组件32可以自动地使用电路设计50中现有的配线信息确定单元的源端/汇端。在这种情况下,单元组件32可以去掉仅用于连接正被放置的单元的每一个网中所包括的任意配线信息。
在步骤S3中,栅格组件34能够获得用于电路设计50中的单元的布线栅格。例如,图3示出了根据本发明实施例的用于示例电路设计50A的示例布线栅格52。布线栅格52在电路设计50A中限定了多个小块,如小块54A-54F。如图所示,布线栅格52可以包括一个矩形,在该矩形中每一个小块54A-54F也是矩形。然而,针对布线栅格52和小块54A-54F可以使用任意期望的形状。
在一个实施例中,栅格组件34(图1)基于正被放置的单元的源端位置和汇端位置为布线栅格52限定了一个区域。例如,将电路设计50A示出为包括单元56A-56E和配线信息58A-58B。要放置在电路设计50A中的单元60可以具有源端在单元56A和56D处的两个输入,以及汇端在单元56C处的一个输出。在这种情况下,栅格组件34可以限定一个有界区域,用于将单元60放置为例如包括单元60所有终端的最小矩形(例如单元56A、56D和56E)。随后栅格组件34可以基于该有界区域(例如必须至少包括该有界区域)限定用于布线栅格52的区域。
接下来,栅格组件34(图1)可以将用于布线栅格52的该区域划分成多个小块54A-54F。至此,栅格组件34可以基于包括在其中的每一个小块54A-54F的期望尺寸调整布线栅格52的实际尺寸和/或位置(例如,以便容纳全部数目的垂直和/或水平的小块)。栅格组件34可以使用任意方法确定每一个小块54A-54F的尺寸。一般来说,较小的小块尺寸会得到更精确的单元60的放置,但是会增加用于放置单元60的运行时间。在一个实施例中,栅格组件34基于单元60的尺寸选择每一个小块54A-54F的尺寸(例如作为该尺寸的倍数)。例如,可以使得每一个小块54A-54F的宽度为单元60宽度的二倍,而可以使得每一个小块54A-54F的高度为单元60高度的二倍。作为替代,栅格组件34可以针对布线栅格52使用预定数量和/或最大数量的水平和/或垂直的小块54A-54F以确定每一个小块54A-54F的相应尺寸。
在步骤S4(图2)中,定位组件36(图1)可以基于用于单元60的一组网获得多个小块54A-54F中每一个小块的配线距离度量。例如,正如以上所讨论的,单元60可以包括源端在单元56A和56D处的两个输入和汇端在单元56C处的一个输出。在这种情况下,单元60具有三个网,定义为网62A,包括单元56A的输出,配线信息58A,及单元56B的输入;网62B,包括单元56C的输入;以及网62C,包括单元56D的输出,配线信息58B,及单元56E的输入。
为获得每一个小块54A-54F的配线距离度量,定位组件36(图1)可以针对每一个小块54A-54F和每一个网获得特定于网的配线距离。例如,图4A-图4C示出了根据本发明实施例的分别与每一个网62A-62C(图3)对应的示例的特定于网的配线距离的矩阵70A-70C。参考图3和图4A-图4C,每一个矩阵70A-70C包括与布线栅格52中每一个小块54A-54F到相应的网62A-62C的配线距离对应的值。定位组件36可以使用任意方法为矩阵70A-70C确定特定于网的配线距离值。
例如,定位组件36(图1)可以为相应的网62A-62C所经过的每一个小块54A-54F指定配线距离零。对于每一个其它小块54A-54F,定位组件36基于到达配线距离为零的小块54A-54F所需的配线量确定配线距离。在这种情况下,定位组件36可以使用任意的布线度量方式。在一个实施例中,定位组件36使用直线布线方法(例如斯泰纳(Steiner)、全局、轨迹、详细等),其中配线层为垂直的或水平的,实际布线(route)被表示为水平和垂直的配线段。
至此,定位组件36(图1)可以基于到达距离为零的小块所需的一系列小块位移(a set oftile movements)获得每一个小块54A-54F的配线距离。例如,每一个小块可以包括矩形区域,定位组件36可以使用基于小块尺寸和移动方向的加权计数。例如,栅格52包括高度接近宽度的1.5倍的小块54A-54F。在这种情况下,定位组件36可以针对每一次垂直的小块位移将配线距离值递增1.5,针对每一次水平的小块位移将配线距离值递增1。需要理解的是小块54A-54F的相对高度和宽度仅仅用于说明,小块54A-54F的尺寸可以使用任意比率。无论如何,为了简化矩阵70A-70C中的值和此处的讨论,通过针对每一次垂直或水平的小块位移将配线距离递增1来计算矩阵70A-70C中的每一个值。
随后,定位组件36(图1)可以对每一个小块54A-54F的每一个特定于网的配线距离进行组合,从而为相应的小块54A-54F产生配线距离度量。图5A-图5B示出了可以基于矩阵70A-70C(图4A-图4C)所示的特定于网的配线距离来产生的示例配线距离度量的矩阵72A-72B。在矩阵72A中,定位组件36通过为每一个小块54A-54F添加相应的特定于网的配线距离,来计算每一个配线距离度量。作为替代,定位组件36可以将放置单元60(图3)时的一个或多个其它考虑因素考虑在内。例如,为了将影响电路设计50(图1)中的定时的RC延迟考虑在内,定位组件36可以通过首先针对每一个小块54A-54F的每一个特定于网的配线距离求平方,然后将求平方的特定于网的配线距离相加来计算每一个配线距离度量,从而得到矩阵72B所示的配线距离度量。
回到图3,在产生配线距离度量的过程中,定位组件36(图1)可以使用特定于网的配线距离的加权(有偏)组合。特别地,可以使用网62A-62C的一个或多个特征来指定相对于该网的权值,该权值随后被用于产生配线距离度量。例如,一个特定的网,如网62A,可以包括还没有放置在电路设计50A中的一个或多个单元56A-56B。在这种情况下,未放置的单元56A-56B的源端可以被用于产生用来放置单元60的网62A。进一步,网62A可被赋予小于网62B-62C的权值和/或不被用于产生配线距离度量。例如,针对网62A的特定于网的配线距离可被到达所放置的源端所需的逻辑级数所除(例如,当一个单元未被放置时为2)。类似地,网62A-62C中的一个或多个网可以构成一个关键网(critical net)。在这种情况下,关键网的延迟应被最小化,因此关键网应被指定较高的权值。相反,非关键网或配线相对较长的网应被指定较低的权值。定位组件36可以使用任意方法来实现相对权重。例如,一个或多个特定于网的配线距离可乘以/除以相应的权值以增强和/或减轻其对整个配线距离度量的影响。
在任意情况下,参考图1和图2,在步骤S5中,定位组件36可以确定用于单元的目标小块。特别地,定位组件36可以确定具有所需的配线量最少的配线距离度量(例如,配线距离度量的最低值)的目标小块。例如,使用图5B中的一组配线距离度量和图3中的布线栅格52,小块54C将被确定为目标小块。然而,使用图5A中的一组配线距离度量和图3中的布线栅格52,小块54C和小块54D具有相同的配线距离度量,该配线距离度量是所有小块中最低的。在这种情况下,可以使用一种或多种试探法(heuristics)来确定目标小块。
定位组件36可以使用任意类型的试探技术来选择目标小块。在一个实施例中,定位组件36选择接近布线栅格52(图3)中心的小块,该中心可以对应于布线栅格52所基于的有界区域的中心。然而,定位组件36可以实现不同的其它试探法。例如,可以以基于到单元60(图3)要连接的源端/汇端质心的距离、基于小块54C-54D的密度、随机地、任意地等方式来选择目标小块。进一步,需要理解的是当一种试探法未能相对于其它小块而选择一个小块时可以组合或以打破僵局(break tie)的方式使用多种试探法。
在任意情况下,一旦确定了一个目标小块,如小块54C(图3),放置组件38就可以基于目标小块54C在电路设计50A(图3)中放置单元60(图3)。例如,放置组件38可以在目标小块54C中确定一个区域,其大到足以容纳单元60。在一个实施例中,使用目标小块54C来获得用于单元60的近似区域,随后将该区域与单元60的可用位置相关。
可以以任意的详细程度来实现单元60(图3)的放置。特别地,该放置可以包括单元60的精确放置。在一个实施例中,可以使用放置服务来确定一组位置,其中可以将单元60放置在该位置上,而不会影响电路设计50A中的其它单元。在这种情况下,放置组件38可以将目标小块54C提供给放置服务,该放置服务使用放置锁定映射(blockagemap)等来选择目标小块54C中或接近目标小块54C的那一组位置。放置组件38可以从对布线和/或定时来说最佳的一组位置中选择位置。
放置还可以包括单元60(图3)的粗略放置。至此,在步骤S6中,放置组件38可以获得电路设计50A的放置栅格,在步骤S7中,放置组件38可以基于目标小块54C在放置栅格中确定用于放置单元60的位置。图6示出了电路设计50A的示例放置栅格80。放置栅格80包括一组位置,如位置82A-82D,单元可放置在其中。放置组件38(图1)可以使用任意方法基于目标小块54C在放置栅格80中选择位置82A-82D。在一个实施例中,放置组件38将目标小块54C的中心映射到其所位于的相应的位置82D,并选择位置82D来放置单元60(图3)。放置组件38可以确定用于位置82D的一组可用资源(如空间、配线、电源等)是否足以包括单元60。如果用于位置82D的一组可用资源足以包括单元60,则随后单元60被定位在位置82D上。
当位置82D没有包括足够的用于单元60的资源(图3)时,放置组件38(图1)可使用任意方法来选择另一位置82A-82C。例如,放置组件38可以选择一个位置82A-82C,目标小块54C的至少一部分位于该位置中。可以使用任意试探法例如以螺旋方式选择位置82A-82C。如果单元60不能被放置在与目标小块54C对应的任意位置82A-82D上,则放置组件38可以基于另一小块来选择另一位置。例如,使用任意试探法(如第二低的配线距离度量),定位组件36可确定一个替代性的目标小块,如小块54D(图3),并且放置组件38可以选择与小块54D对应的位置。进一步,放置组件38可以采用螺旋方式选择邻近位置,直到定位了具有足够的用于单元60的资源的位置为止。
正如此处所讨论的,各种系统和组件被描述为“获得”数据(例如电路设计、要放置的单元、栅格等)。需要理解的是相应数据可以使用任意方法获得。例如,相应系统/组件可以产生和/或被用于产生数据,从一个或多个数据存储器(如数据库)中获取数据,从另一系统/组件接收数据,等等。当特定系统/组件没有产生数据时,需要理解的是,除所示系统/组件外,可以实现另一系统/组件,该另一系统/组件产生数据并将其提供给该系统/组件,和/或存储该数据以供该系统/组件访问。
尽管在此被示出和描述为一种用于管理单元设计的方法和系统,但需要理解的是本发明进一步提供了多个替代性实施例。例如,在一个实施例中,本发明提供了存储于计算机可读介质上的程序产品,当其被执行时,该程序产品使计算机基础设施能够管理单元设计。至此,该计算机可读介质包括程序代码,如设计管理系统30(图1),其实现此处所述的处理。需要理解的是术语“计算机可读介质”包括程序代码表述(如物理实施方式)的一个或多个任意类型的有形介质。特别地,计算机可读介质包括的程序代码可以具体体现在一个或多个便携式存储产品(如压缩光盘、磁盘、磁带等)上,计算设备中的一个或多个数据存储部分上,如存储器22A(图1)和/或存储系统22B(图1)(例如硬盘、只读存储器、随机存取存储器、高速缓冲存储器等)上,作为网络中传输(例如在程序产品的有线/无线电子分发期间)的数据信号,纸上(例如能够作为电子数据而被扫描),等等。
在另一实施例中,本发明提供了一种产生用于管理电路设计的系统的方法。在这种情况下,可以获得(如创建、维护、使其可用等)如计算机基础设施12(图1)之类的计算机基础设施,以及获得(如创建、购买、使用、修改等)一个或多个执行此处描述的处理的系统,并被部署到计算机基础设施中。至此,每一个系统的部署可以包括以下各项中的一个或多个(1)从计算机可读介质向如计算设备14(图1)之类的计算设备上安装程序代码;(2)将一个或多个计算设备添加到计算机基础设施中;以及(3)合并和/或修改计算机基础设施的一个或多个现有系统,使计算机基础设施能够执行本发明的处理步骤。
在又一实施例中,本发明提供了一种在订购、广告和/或费用的基础上执行此处描述的处理的商业方法。也就是说,服务提供商,如应用服务提供商,可以提供如此处所描述的对电路设计的管理。在这种情况下,该服务提供商可以管理(例如创建、维护、支持等)计算机基础设施,如计算机基础设施12(图1),该计算机基础设施为一个或多个客户执行此处描述的处理。作为回报,该服务提供商可以根据订购和/或费用合同从客户处收取报酬,通过销售对一个或多个第三方发放的广告来收取报酬,等等。
正如此处所用的,需要理解的是术语“程序代码”和“计算机程序代码”同义,并意味着以任意语言、代码或符号编写的一组指令的任意表述,该组指令使计算设备直接地或在与以下内容进行任意组合之后具有执行特定功能的信息处理能力(a)转换为其它语言、代码或符号;(b)以不同的材料形式复制;和/或(c)解压缩。至此,程序代码可被具体体现为一种或多种类型的程序产品,如应用/软件程序,组件软件/功能库,操作系统,特定计算和/或I/O设备的基本I/O系统/驱动器,等等。进一步,需要理解的是,正如此处所用的,术语“组件”和“系统”同义,并代表可以执行某些功能的硬件和/或软件的任意组合。
出于说明和描述的目的,已经提出了对本发明不同方面的前述描述。这并非旨在穷举或者将本发明限于所公开的准确形式,并且很明显,很多修改和变更都是可能的。这些对于本领域普通技术人员而言十分明显的修改和变更被包括在由所附权利要求所限定的发明范围内。
权利要求
1.一种管理电路设计的方法,所述方法包括获得要放置在所述电路设计中的单元及所述电路设计中所述单元要连接的一组网;获得用于所述单元的布线栅格,所述布线栅格在所述电路设计中限定了多个小块;基于所述一组网获得所述多个小块中的每一个小块的配线距离度量;以及基于所述相应的配线距离度量在所述多个小块中确定用于放置所述单元的目标小块。
2.根据权利要求1所述的方法,进一步包括获得用于所述电路设计的放置栅格;以及基于所述目标小块在所述放置栅格中确定用于放置所述单元的位置。
3.根据权利要求2所述的方法,所述确定位置进一步基于用于所述放置栅格中每一个位置的一组可用资源。
4.根据权利要求1所述的方法,所述获得布线栅格包括在所述电路设计中确定用于放置所述单元的有界区域;以及基于所述有界区域和所述单元的尺寸产生所述布线栅格。
5.根据权利要求1所述的方法,所述获得配线距离度量包括对于所述一组网中的每一个网,获得所述多个小块中的每一个小块的特定于网的配线距离;以及对于所述多个小块中的每一个小块,结合每一个特定于网的配线距离产生所述相应小块的配线距离度量。
6.根据权利要求5所述的方法,所述获得特定于网的配线距离包括为相应的网所经过的每一个小块指定距离为零;以及基于到达被指定距离为零的小块所需的一系列小块位移,为每一个其它小块确定距离。
7.根据权利要求5所述的方法,所述结合包括,对于每一个小块针对所述一组网中的每一个网的所述特定于网的配线距离求平方;以及将所述求平方的特定于网的配线距离相加以获得所述相应小块的配线距离度量。
8.根据权利要求1所述的方法,所述获得配线距离度量包括获得针对所述一组网中的每一个网的相对权值,所述配线距离度量进一步基于对应于每一个网的所述相对权值。
9.一种用于管理电路设计的系统,所述系统包括用于获得要放置在所述电路设计中的单元及所述电路设计中所述单元要连接的一组网的系统;用于获得用于所述单元的布线栅格的系统,所述布线栅格在所述电路设计中限定了多个小块;用于基于所述一组网获得所述多个小块中的每一个小块的配线距离度量的系统;以及用于基于所述相应的配线距离度量在所述多个小块中确定用于放置所述单元的目标小块的系统。
10.根据权利要求9所述的系统,进一步包括用于获得用于所述电路设计的放置栅格的系统;以及用于基于所述目标小块在所述放置栅格中确定用于放置所述单元的位置的系统。
11.根据权利要求9所述的系统,所述用于获得布线栅格的系统包括用于在所述电路设计中确定用于放置所述单元的有界区域的系统;以及用于基于所述有界区域和所述单元的尺寸产生所述布线栅格的系统。
12.根据权利要求9所述的系统,所述用于获得配线距离度量的系统包括用于针对所述多个小块中的每一个小块和所述一组网中的每一个网获得特定于网的配线距离的系统;以及用于结合每一个特定于网的配线距离产生所述多个小块中的每一个小块的配线距离度量的系统。
13.根据权利要求12所述的系统,所述用于结合的系统包括,对于每一个小块用于针对所述一组网中的每一个网的所述特定于网的配线距离求平方的系统;以及用于将所述求平方的特定于网的配线距离相加以获得所述相应小块的配线距离度量的系统。
14.根据权利要求9所述的系统,所述用于获得配线距离度量的系统包括用于获得针对所述一组网中的每一个网的相对权值的系统,所述配线距离度量进一步基于对应于每一个网的所述相对权值。
15.一种产生用于管理电路设计的系统的方法,所述方法包括提供计算机基础设施,其可操作为获得要放置在所述电路设计中的单元及所述电路设计中所述单元要连接的一组网;获得用于所述单元的布线栅格,所述布线栅格在所述电路设计中限定了多个小块;基于所述一组网获得所述多个小块中的每一个小块的配线距离度量;以及基于所述相应的配线距离度量在所述多个小块中确定用于放置所述单元的目标小块。
全文摘要
一种用于管理电路设计的解决方案,其使得可以基于所得到的配线距离将单元递增地放置在电路设计中。获得要放置在电路设计中的单元及电路设计中该单元要连接的一组相应的网。可以基于用于该单元的该组网产生布线栅格,该布线栅格在电路设计中限定了多个小块单元,以便于在放置单元时加以考虑。可以使用该组网计算布线栅格中每一个小块的配线距离度量。该配线距离度量随后被用于确定用来放置该单元的目标小块。该目标小块可以被用于寻找精确的和/或粗略的单元位置。
文档编号G06F17/50GK101051329SQ20071009227
公开日2007年10月10日 申请日期2007年4月3日 优先权日2006年4月4日
发明者L·H·特里维尔扬, A·D·德鲁姆, P·M·科特查, R·普里 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1