CN114186527A - 一种不依赖于网格点实现集成电路自动布线的方法及装置 - Google Patents
一种不依赖于网格点实现集成电路自动布线的方法及装置 Download PDFInfo
- Publication number
- CN114186527A CN114186527A CN202111536776.1A CN202111536776A CN114186527A CN 114186527 A CN114186527 A CN 114186527A CN 202111536776 A CN202111536776 A CN 202111536776A CN 114186527 A CN114186527 A CN 114186527A
- Authority
- CN
- China
- Prior art keywords
- wiring
- pins
- priority
- route
- adopted
- 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
Images
Classifications
-
- 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
-
- 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/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/06—Structured ASICs
Abstract
本申请涉及集成电路技术领域,尤其涉及一种不依赖于网格点实现集成电路自动布线的方法及装置。其中,一种不依赖于网格点实现集成电路自动布线的方法,包括:基于引脚数据集,获取任意两个相邻引脚间的布线优先级;从布线优先级最高的两个引脚开始布线,并保证任意两个相邻引脚间的布线均通过isvalid检查,直至所有引脚均完成布线。采用上述方案的本申请可以减少布线算法的运行时间,提高布线的质量,缩短集成电路设计周期,减少集成电路设计成本。
Description
技术领域
本申请涉及集成电路技术领域,尤其涉及一种不依赖于网格点实现集成电路自动布线的方法及装置。
背景技术
布线作为集成电路设计中的一个关键步骤,即在矩形器件摆放之后,使用金属线将同属一个电学节点的器件全部相连。传统的迷宫布线由于搜索规则的局限性,即使在相对简单的布线情况下,也会产生大量的时间消耗,布线的质量也参差不齐。所以在很多情况下仍然需要由专业人员手工布线。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种不依赖于网格点实现集成电路自动布线的方法,以解决传统的布线方法布线效率低且布线质量差的技术问题。
本申请的第二个目的在于提出一种不依赖于网格点实现集成电路自动布线的装置。
本申请的第三个目的在于提出一种终端。
为达到上述目的,本申请第一方面实施例提出的一种不依赖于网格点实现集成电路自动布线的方法,包括:
基于引脚数据集,获取任意两个相邻引脚间的布线优先级;
从布线优先级最高的两个引脚开始布线,并保证任意两个相邻引脚间的布线均通过isvalid检查,直至所有引脚均完成布线。
可选地,在本申请的一个实施例中,在所述基于引脚数据集,获取任意两个相邻引脚间的布线优先级之前,还包括:
获取所有引脚的空间位置关系,根据所述空间位置关系确定引脚数据集。
可选地,在本申请的一个实施例中,所述基于引脚数据集,获取任意两个相邻引脚间的布线优先级,包括:
确定任意两个相邻引脚间的最大优先级,并获取任意两个相邻引脚间的曼哈顿距离;
根据所述最大优先级以及所述曼哈顿距离确定任意两个相邻引脚间的布线优先级。
可选地,在本申请的一个实施例中,所述根据所述最大优先级以及所述曼哈顿距离确定任意两个相邻引脚间的布线优先级,包括:
确定所述曼哈顿距离与所述最大优先级的商为任意两个相邻引脚间的布线优先级。
可选地,在本申请的一个实施例中,所述并保证任意两个相邻引脚间的布线均通过isvalid检查,包括:
所述isvalid检查包括短路检查以及设计规则检查;
所述引脚数据集采用RTree作为底层数据结构,基于RTree进行空间索引,若没有短路问题,则说明通过短路检查;
从设计规则文件中获取设计规则判断条件,基于所述规则判断条件进行设计规则检查,若没有设计规则问题,则说明通过设计规则检查。
可选地,在本申请的一个实施例中,所述从布线优先级最高的两个引脚开始布线,并保证任意两个相邻引脚间的布线均通过isvalid检查,直至所有引脚均完成布线,包括:
若任意两个引脚在y轴方向上有重叠区域,且重叠区域不小于最小线宽,则采用route_x布线;
若任意两个引脚在x轴方向上有重叠区域,且重叠区域不小于最小线宽,则采用route_y布线;
若任意两个引脚在z轴方向不同层,且在x轴方向与y轴方向的重叠区域均不小于最小线宽,则采用route_z布线;
若任意两个引脚在z轴方向相同层,且在x轴方向与y轴方向存在重叠区域,则采用route_overlap布线。
可选地,在本申请的一个实施例中,还包括:
当采用route_x布线时,利用两个引脚的坐标构建出一个x方向的矩形,使得两个引脚分别所在的两个矩形通过所述x方向的矩形相连;
当采用route_y布线时,利用两个引脚的坐标构建出一个y方向的矩形,使得两个引脚分别所在的两个矩形通过所述y方向的矩形相连;
当采用route_z布线时,以起始引脚的右上角或者左下角作为起始打孔点,并在所述起始打孔点上放置矩形;
当采用route_overlap布线时,令两个引脚在x轴方向与y轴方向的重叠区域均不小于最小线宽,且返回空集。
可选地,在本申请的一个实施例中,还包括:
当采用route_x布线时,若布线失败,则采用U型布线,或者Z型布线;
当采用route_y布线时,若布线失败,则采用U型布线,或者Z型布线;
当采用route_z布线时,若布线失败,则跳过当前引脚。
综上,本申请第一方面实施例提出的方法,通过基于引脚数据集,获取任意两个相邻引脚间的布线优先级;从布线优先级最高的两个引脚开始布线,并保证任意两个相邻引脚间的布线均通过isvalid检查,直至所有引脚均完成布线。本申请可以减少布线算法的运行时间,提高布线的质量,缩短集成电路设计周期,减少集成电路设计成本。
为达到上述目的,本申请第二方面实施例提出的一种不依赖于网格点实现集成电路自动布线的装置,包括:
获取模块,用于基于引脚数据集,获取任意两个相邻引脚间的布线优先级;
布线模块,用于从布线优先级最高的两个引脚开始布线,并保证任意两个相邻引脚间的布线均通过isvalid检查,直至所有引脚均完成布线。
综上,本申请第二方面实施例提出的装置,通过获取模块基于引脚数据集,获取任意两个相邻引脚间的布线优先级;布线模块从布线优先级最高的两个引脚开始布线,并保证任意两个相邻引脚间的布线均通过isvalid检查,直至所有引脚均完成布线。本申请可以减少布线算法的运行时间,提高布线的质量,缩短集成电路设计周期,减少集成电路设计成本。
为达到上述目的,本申请第三方面实施例提出了一种终端,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述一方面中任一项所述的方法。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所提供的一种不依赖于网格点实现集成电路自动布线的方法的流程图;
图2为本申请实施例所提供的L型布线的结构示意图;
图3本申请实施例所提供的U布线的结构示意图;
图4本申请实施例所提供的Z布线的结构示意图;
图5本申请实施例所提供的一种不依赖于网格点实现集成电路自动布线的装置的结构示意图。
图6本申请实施例提供的一种终端的结构示意图;
图7本申请实施例提供的操作系统和用户空间的结构示意图;
图8图7中安卓操作系统的架构图;
图9图7中IOS操作系统的架构图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
需要说明的是,在实际布线中,并非所有的布线都需要复杂的搜索,可能存在一部分布线相对宽松的环境。无网格布线利用器件之间的空间关系,不依赖网格提供的搜索环境,仅以较少的尝试和空间索引作为代价,这个代价相对于传统的布线算法降低了不少。因此,无网格布线是提高自动布线效率的一种有效方法。
下面结合具体的实施例对本申请进行详细说明。
图1为本申请实施例所提供的一种不依赖于网格点实现集成电路自动布线的方法的流程图。
如图1所示,本申请实施例提供的一种不依赖于网格点实现集成电路自动布线的方法,包括以下步骤:
步骤101,基于引脚数据集,获取任意两个相邻引脚间的布线优先级;
步骤102,从布线优先级最高的两个引脚开始布线,并保证任意两个相邻引脚间的布线均通过isvalid检查,直至所有引脚均完成布线。
在本申请实施例中,在基于引脚数据集,获取任意两个相邻引脚间的布线优先级之前,还包括:
获取所有引脚的空间位置关系,根据空间位置关系确定引脚数据集。
具体的,引脚数据集可以用于获取任一引脚的空间位置关系以及对任一引脚进行空间索引。
在本申请实施例中,基于引脚数据集,获取任意两个相邻引脚间的布线优先级,包括:
确定任意两个相邻引脚间的最大优先级,并获取任意两个相邻引脚间的曼哈顿距离;
根据最大优先级以及曼哈顿距离确定任意两个相邻引脚间的布线优先级。
在本申请实施例中,根据最大优先级以及曼哈顿距离确定任意两个相邻引脚间的布线优先级,包括:
确定曼哈顿距离与最大优先级的商为任意两个相邻引脚间的布线优先级。
在本申请实施例中,并保证任意两个相邻引脚间的布线均通过isvalid检查,包括:
isvalid检查包括短路检查以及设计规则检查;
引脚数据集采用RTree作为底层数据结构,基于RTree进行空间索引,若没有短路问题,则说明通过短路检查;
从设计规则文件中获取设计规则判断条件,基于规则判断条件进行设计规则检查,若没有设计规则问题,则说明通过设计规则检查。
具体的,isvalid检查指的是确定检查对象变量是否已经实例化,即实例变量的值是否是个有效的对象。在本申请实施例中,isvalid检查用于确定任意两个相邻引脚间的布线是否产生短路问题,以及是否产生DRC问题。
具体的,引脚数据集采用RTree作为底层数据结构,可以将单次空间索引的最坏时间复杂度由O(n)降低至O(log2n)。
在本申请实施例中,从布线优先级最高的两个引脚开始布线,并保证任意两个相邻引脚间的布线均通过isvalid检查,直至所有引脚均完成布线,包括:
若任意两个引脚在y轴方向上有重叠区域,且重叠区域不小于最小线宽,则采用route_x布线;
若任意两个引脚在x轴方向上有重叠区域,且重叠区域不小于最小线宽,则采用route_y布线;
若任意两个引脚在z轴方向不同层,且在x轴方向与y轴方向的重叠区域均不小于最小线宽,则采用route_z布线;
若任意两个引脚在z轴方向相同层,且在x轴方向与y轴方向存在重叠区域,则采用route_overlap布线。
在本申请实施例中,还包括:
当采用route_x布线时,利用两个引脚的坐标构建出一个x方向的矩形,使得两个引脚分别所在的两个矩形通过x方向的矩形相连;
当采用route_y布线时,利用两个引脚的坐标构建出一个y方向的矩形,使得两个引脚分别所在的两个矩形通过y方向的矩形相连;
当采用route_z布线时,以起始引脚的右上角或者左下角作为起始打孔点,并在起始打孔点上放置矩形;
当采用route_overlap布线时,令两个引脚在x轴方向与y轴方向的重叠区域均不小于最小线宽,且返回空集。
具体的,当采用route_x布线时,首先获取两个引脚的空间坐标,保证起始引脚在目标引脚的x轴负方向;若起始引脚不在目标引脚的x轴负方向,则将原起始引脚调换为目标引脚,将原目标引脚调换为起始引脚。
具有的,当采用route_y布线时,首先获取两个引脚的空间坐标,保证起始引脚在目标引脚的y轴负方向;若起始引脚不在目标引脚的y轴负方向,则将原起始引脚调换为目标引脚,将原目标引脚调换为起始引脚。
具有的,当采用route_z布线时,首先获取两个引脚的空间坐标,保证起始引脚在目标引脚下层;若起始引脚不在目标引脚下层,则将原起始引脚调换为目标引脚,将原目标引脚调换为起始引脚。
具体的,当采用route_overlap布线时,若两个引脚在x轴方向或者y轴方向的重叠区域小于最小线宽,则令两个引脚分别所在的两个矩形在x轴或y轴方向上扩展,直至满足最小线宽的长度。
在本申请实施例中,还包括:
当采用route_x布线时,若布线失败,则采用U型布线,或者Z型布线;
当采用route_y布线时,若布线失败,则采用U型布线,或者Z型布线;
当采用route_z布线时,若布线失败,则跳过当前引脚。
具体的,route_x布线、route_y布线、route_z布线中任意两种布线组合为L型布线,即route_zx,route_zy,route_xy,如图2所示。其中,L型布线通过设置一个中间矩形作为两种布线组合的连接枢纽,选取返回矩形集的首个或最后一个矩形作为布线。中间矩形的坐标可以依据两个引脚的空间坐标进行确定。
进一步的,中间矩形不需要考虑通过isvalid检查,因为route_x布线、route_y布线、route_z布线保证通过isvalid检查。
具体的,U型布线为route_x布线、route_y布线、route_z布线中的任意一种与L型布线的组合,即route_detoures_x,route_detoures_y,route_detoures_z,如图3所示。其中,通过设置一个中间矩形作为这两种布线组合的连接枢纽。采用最小线宽作为步长,通过多次尝试,确定中间矩形的坐标。
具体的,Z型布线为route_x布线、route_y布线、route_z布线中的任意一种与L型布线的组合,即route_detoures_x,route_detoures_y,route_detoures_z,如图4所示。其中,通过设置一个中间矩形作为这两种布线组合的连接枢纽。采用最小线宽作为步长,通过多次尝试,确定中间矩形的坐标。
综上,本申请实施例提出的方法,通过基于引脚数据集,获取任意两个相邻引脚间的布线优先级;从布线优先级最高的两个引脚开始布线,并保证任意两个相邻引脚间的布线均通过isvalid检查,直至所有引脚均完成布线。本申请不依赖网格点,利用两个引脚的空间位置关系进行布线,避免了引脚的空间坐标与格点浮点数精度不一致导致时间和质量上的损失,可以减少布线算法的运行时间,提高布线的质量,缩短集成电路设计周期,减少集成电路设计成本。
为了实现上述实施例,本申请还提出一种不依赖于网格点实现集成电路自动布线的装置。
图5为本申请实施例提供的一种不依赖于网格点实现集成电路自动布线的装置的结构示意图。
如图5所示,一种不依赖于网格点实现集成电路自动布线的装置,包括:
获取模块501基于引脚数据集,获取任意两个相邻引脚间的布线优先级;
布线模块502从布线优先级最高的两个引脚开始布线,并保证任意两个相邻引脚间的布线均通过isvalid检查,直至所有引脚均完成布线。
综上,本申请实施例提出的装置,通过获取模块基于引脚数据集,获取任意两个相邻引脚间的布线优先级;布线模块从布线优先级最高的两个引脚开始布线,并保证任意两个相邻引脚间的布线均通过isvalid检查,直至所有引脚均完成布线。本申请可以减少布线算法的运行时间,提高布线的质量,缩短集成电路设计周期,减少集成电路设计成本。
请参考图6其示出了本申请一个示例性实施例提供的终端的结构方框图。本申请中的终端可以包括一个或多个如下部件:处理器110、存储器120、输入装置130、输出装置140和总线150。处理器110、存储器120、输入装置130和输出装置140之间可以通过总线150连接。所述处理器加载并执行如上述图3-图9所示实施例的所述网络连接方法,具体执行过程可以参见图3-图9所示实施例的具体说明,在此不进行赘述。
处理器110可以包括一个或者多个处理核心。处理器110利用各种接口和线路连接整个终端内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行终端100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(digital signal processing,DSP)、现场可编程门阵列(field-programmable gate array,FPGA)、可编程逻辑阵列(programmable logicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(centralprocessing unit,CPU)、图像处理器(graphics processing unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(random Access Memory,RAM),也可以包括只读存储器(read-only memory,ROM)。可选地,该存储器120包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等,该操作系统可以是安卓(Android)系统,包括基于Android系统深度开发的系统、苹果公司开发的IOS系统,包括基于IOS系统深度开发的系统或其它系统。存储数据区还可以存储终端在使用中所创建的数据比如电话本、音视频数据、聊天记录数据,等。
参见图7示,存储器120可分为操作系统空间和用户空间,操作系统即运行于操作系统空间,原生及第三方应用程序即运行于用户空间。为了保证不同第三方应用程序均能够达到较好的运行效果,操作系统针对不同第三方应用程序为其分配相应的系统资源。然而,同一第三方应用程序中不同应用场景对系统资源的需求也存在差异,比如,在本地资源加载场景下,第三方应用程序对磁盘读取速度的要求较高;在动画渲染场景下,第三方应用程序则对GPU性能的要求较高。而操作系统与第三方应用程序之间相互独立,操作系统往往不能及时感知第三方应用程序当前的应用场景,导致操作系统无法根据第三方应用程序的具体应用场景进行针对性的系统资源适配。
为了使操作系统能够区分第三方应用程序的具体应用场景,需要打通第三方应用程序与操作系统之间的数据通信,使得操作系统能够随时获取第三方应用程序当前的场景信息,进而基于当前场景进行针对性的系统资源适配。
以操作系统为Android系统为例,存储器120中存储的程序和数据如图8示,存储器120中可存储有Linux内核层320、系统运行时库层340、应用框架层360和应用层380,其中,Linux内核层320、系统运行库层340和应用框架层360属于操作系统空间,应用层380属于用户空间。Linux内核层320为终端的各种硬件提供了底层的驱动,如显示驱动、音频驱动、摄像头驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。系统运行库层340通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL/ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。在系统运行时库层340中还提供有安卓运行时库(Android runtime),它主要提供了一些核心库,能够允许开发者使用Java语言来编写Android应用。应用框架层360提供了构建应用程序时可能用到的各种API,开发者也可以通过使用这些API来构建自己的应用程序,比如活动管理、窗口管理、视图管理、通知管理、内容提供者、包管理、通话管理、资源管理、定位管理。应用层380中运行有至少一个应用程序,这些应用程序可以是操作系统自带的原生应用程序,比如联系人程序、短信程序、时钟程序、相机应用等;也可以是第三方开发者所开发的第三方应用程序,比如游戏类应用程序、即时通信程序、相片美化程序、网络连接程序等。
以操作系统为IOS系统为例,存储器120中存储的程序和数据如图9示,IOS系统包括:核心操作系统层420(Core OS layer)、核心服务层440(Core Services layer)、媒体层460(Media layer)、可触摸层480(Cocoa Touch Layer)。核心操作系统层420包括了操作系统内核、驱动程序以及底层程序框架,这些底层程序框架提供更接近硬件的功能,以供位于核心服务层440的程序框架所使用。核心服务层440提供给应用程序所需要的系统服务和/或程序框架,比如基础(Foundation)框架、账户框架、广告框架、数据存储框架、网络连接框架、地理位置框架、运动框架等等。媒体层460为应用程序提供有关视听方面的接口,如图形图像相关的接口、音频技术相关的接口、视频技术相关的接口、音视频传输技术的无线播放(AirPlay)接口等。可触摸层480为应用程序开发提供了各种常用的界面相关的框架,可触摸层480负责用户在终端上的触摸交互操作。比如本地通知服务、远程推送服务、广告框架、游戏工具框架、消息用户界面接口(User Interface,UI)框架、用户界面UIKit框架、地图框架等等。
在图9示出的框架中,与大部分应用程序有关的框架包括但不限于:核心服务层440中的基础框架和可触摸层480中的UIKit框架。基础框架提供许多基本的对象类和数据类型,为所有应用程序提供最基本的系统服务,和UI无关。而UIKit框架提供的类是基础的UI类库,用于创建基于触摸的用户界面,iOS应用程序可以基于UIKit框架来提供UI,所以它提供了应用程序的基础架构,用于构建用户界面,绘图、处理和用户交互事件,响应手势等等。
其中,在IOS系统中实现第三方应用程序与操作系统数据通信的方式以及原理可参考Android系统,本申请在此不再赘述。
其中,输入装置130用于接收输入的指令或数据,输入装置130包括但不限于键盘、鼠标、摄像头、麦克风或触控设备。输出装置140用于输出指令或数据,输出装置140包括但不限于显示设备和扬声器等。在一个示例中,输入装置130和输出装置140可以合设,输入装置130和输出装置140为触摸显示屏,该触摸显示屏用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户界面。触摸显示屏通常设置在终端的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本申请实施例对此不加以限定。
除此之外,本领域技术人员可以理解,上述附图所示出的终端的结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端中还包括射频电路、输入单元、传感器、音频电路、无线保真(wirelessfidelity,WiFi)模块、电源、蓝牙模块等部件,在此不再赘述。
在本申请实施例中,各步骤的执行主体可以是上文介绍的终端。可选地,各步骤的执行主体为终端的操作系统。操作系统可以是安卓系统,也可以是IOS系统,或者其它操作系统,本申请实施例对此不作限定。
本申请实施例的终端,其上还可以安装有显示设备,显示设备可以是各种能实现显示功能的设备,例如:阴极射线管显示器(cathode ray tubedisplay,简称CR)、发光二极管显示器(light-emitting diode display,简称LED)、电子墨水屏、液晶显示屏(liquidcrystal display,简称LCD)、等离子显示面板(plasma display panel,简称PDP)等。用户可以利用终端100上的显示设备,来查看显示的文字、图像、视频等信息。所述终端可以是智能手机、平板电脑、游戏设备、AR(Augmented Reality,增强现实)设备、汽车、数据存储装置、音频播放装置、视频播放装置、笔记本、桌面计算设备、可穿戴设备诸如电子手表、电子眼镜、电子头盔、电子手链、电子项链、电子衣物等设备。
本领域的技术人员可以清楚地了解到本申请的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(Field-ProgrammaBLE GateArray,FPGA)、集成电路(Integrated Circuit,IC)等。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
Claims (10)
1.一种不依赖于网格点实现集成电路自动布线的方法,其特征在于,所述方法包括:
基于引脚数据集,获取任意两个相邻引脚间的布线优先级;
从布线优先级最高的两个引脚开始布线,并保证任意两个相邻引脚间的布线均通过isvalid检查,直至所有引脚均完成布线。
2.如权利要求1所述的方法,其特征在于,在所述基于引脚数据集,获取任意两个相邻引脚间的布线优先级之前,还包括:
获取所有引脚的空间位置关系,根据所述空间位置关系确定引脚数据集。
3.如权利要求1所述的方法,其特征在于,所述基于引脚数据集,获取任意两个相邻引脚间的布线优先级,包括:
确定任意两个相邻引脚间的最大优先级,并获取任意两个相邻引脚间的曼哈顿距离;
根据所述最大优先级以及所述曼哈顿距离确定任意两个相邻引脚间的布线优先级。
4.如权利要求3所述的方法,其特征在于,所述根据所述最大优先级以及所述曼哈顿距离确定任意两个相邻引脚间的布线优先级,包括:
确定所述曼哈顿距离与所述最大优先级的商为任意两个相邻引脚间的布线优先级。
5.如权利要求1所述的方法,其特征在于,所述并保证任意两个相邻引脚间的布线均通过isvalid检查,包括:
所述isvalid检查包括短路检查以及设计规则检查;
所述引脚数据集采用RTree作为底层数据结构,基于RTree进行空间索引,若没有短路问题,则说明通过短路检查;
从设计规则文件中获取设计规则判断条件,基于所述规则判断条件进行设计规则检查,若没有设计规则问题,则说明通过设计规则检查。
6.如权利要求1所述的方法,其特征在于,所述从布线优先级最高的两个引脚开始布线,并保证任意两个相邻引脚间的布线均通过isvalid检查,直至所有引脚均完成布线,包括:
若任意两个引脚在y轴方向上有重叠区域,且重叠区域不小于最小线宽,则采用route_x布线;
若任意两个引脚在x轴方向上有重叠区域,且重叠区域不小于最小线宽,则采用route_y布线;
若任意两个引脚在z轴方向不同层,且在x轴方向与y轴方向的重叠区域均不小于最小线宽,则采用route_z布线;
若任意两个引脚在z轴方向相同层,且在x轴方向与y轴方向存在重叠区域,则采用route_overlap布线。
7.如权利要求6所述的方法,其特征在于,还包括:
当采用route_x布线时,利用两个引脚的坐标构建出一个x方向的矩形,使得两个引脚分别所在的两个矩形通过所述x方向的矩形相连;
当采用route_y布线时,利用两个引脚的坐标构建出一个y方向的矩形,使得两个引脚分别所在的两个矩形通过所述y方向的矩形相连;
当采用route_z布线时,以起始引脚的右上角或者左下角作为起始打孔点,并在所述起始打孔点上放置矩形;
当采用route_overlap布线时,令两个引脚在x轴方向与y轴方向的重叠区域均不小于最小线宽,且返回空集。
8.如权利要求6或7任一项所述的方法,其特征在于,还包括:
当采用route_x布线时,若布线失败,则采用U型布线,或者Z型布线;
当采用route_y布线时,若布线失败,则采用U型布线,或者Z型布线;
当采用route_z布线时,若布线失败,则跳过当前引脚。
9.一种不依赖于网格点实现集成电路自动布线的装置,其特征在于,所述装置包括:
获取模块,用于基于引脚数据集,获取任意两个相邻引脚间的布线优先级;
布线模块,用于从布线优先级最高的两个引脚开始布线,并保证任意两个相邻引脚间的布线均通过isvalid检查,直至所有引脚均完成布线。
10.一种终端,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111536776.1A CN114186527A (zh) | 2021-12-15 | 2021-12-15 | 一种不依赖于网格点实现集成电路自动布线的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111536776.1A CN114186527A (zh) | 2021-12-15 | 2021-12-15 | 一种不依赖于网格点实现集成电路自动布线的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114186527A true CN114186527A (zh) | 2022-03-15 |
Family
ID=80544016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111536776.1A Pending CN114186527A (zh) | 2021-12-15 | 2021-12-15 | 一种不依赖于网格点实现集成电路自动布线的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114186527A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115017861A (zh) * | 2022-06-29 | 2022-09-06 | 苏州浪潮智能科技有限公司 | 一种pcb自动布线的方法、装置、设备及可读介质 |
CN116976272A (zh) * | 2023-09-21 | 2023-10-31 | 华芯巨数(杭州)微电子有限公司 | 一种集成电路设计优化布线方法、电子设备及存储介质 |
-
2021
- 2021-12-15 CN CN202111536776.1A patent/CN114186527A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115017861A (zh) * | 2022-06-29 | 2022-09-06 | 苏州浪潮智能科技有限公司 | 一种pcb自动布线的方法、装置、设备及可读介质 |
CN115017861B (zh) * | 2022-06-29 | 2024-01-16 | 苏州浪潮智能科技有限公司 | 一种pcb自动布线的方法、装置、设备及可读介质 |
CN116976272A (zh) * | 2023-09-21 | 2023-10-31 | 华芯巨数(杭州)微电子有限公司 | 一种集成电路设计优化布线方法、电子设备及存储介质 |
CN116976272B (zh) * | 2023-09-21 | 2023-12-22 | 华芯巨数(杭州)微电子有限公司 | 一种集成电路设计优化布线方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109766053B (zh) | 用户界面显示方法、装置、终端及存储介质 | |
CN107889070B (zh) | 图片处理方法、装置、终端及计算机可读存储介质 | |
EP4130994A1 (en) | Remote assistance method and apparatus, and storage medium and terminal | |
CN111124668B (zh) | 内存释放方法、装置、存储介质及终端 | |
CN109471626B (zh) | 页面逻辑结构、页面生成方法、页面数据处理方法及装置 | |
CN114186527A (zh) | 一种不依赖于网格点实现集成电路自动布线的方法及装置 | |
CN113282214A (zh) | 笔画渲染方法、装置、存储介质以及终端 | |
CN111127469A (zh) | 缩略图显示方法、装置、存储介质以及终端 | |
CN107562324B (zh) | 数据显示控制的方法和终端 | |
CN111913614B (zh) | 多画面显示控制方法、装置、存储介质及显示器 | |
CN111589111B (zh) | 图像处理方法、装置、设备和存储介质 | |
CN112486807A (zh) | 一种压力测试方法、装置、电子设备和可读存储介质 | |
CN114186526A (zh) | 一种基于r树mbr算法的集成电路自动打孔方法及装置 | |
CN110730300A (zh) | 相机控制方法、装置、存储介质和终端 | |
WO2022242419A1 (zh) | 分区创建方法、装置、存储介质及计算机设备 | |
CN112612633B (zh) | 进程间通信方法、装置、存储介质以及终端 | |
CN115591243A (zh) | 渲染通道的性能检测方法、装置、电子设备及存储介质 | |
CN113972989B (zh) | 数据校验方法及存储介质、电子设备 | |
CN113268221A (zh) | 文件匹配方法、装置、存储介质及计算机设备 | |
CN114281773A (zh) | 动画显示方法、装置、电子设备及计算机可读存储介质 | |
CN113268414A (zh) | 实验版本的分配方法、装置、存储介质及计算机设备 | |
CN111859999A (zh) | 消息翻译方法、装置、存储介质及电子设备 | |
US20160224258A1 (en) | Generating computer programs for use with computers having processors with dedicated memory | |
CN113098859B (zh) | 网页页面回退方法、装置、终端及存储介质 | |
CN113692026B (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 |