CN117521586B - 芯片设计的布局规划方法及相关设备 - Google Patents

芯片设计的布局规划方法及相关设备 Download PDF

Info

Publication number
CN117521586B
CN117521586B CN202311846621.7A CN202311846621A CN117521586B CN 117521586 B CN117521586 B CN 117521586B CN 202311846621 A CN202311846621 A CN 202311846621A CN 117521586 B CN117521586 B CN 117521586B
Authority
CN
China
Prior art keywords
hard core
hard
layout
cores
core
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
Application number
CN202311846621.7A
Other languages
English (en)
Other versions
CN117521586A (zh
Inventor
张新城
刘安
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinxingji Technology Co ltd
Original Assignee
Xinxingji Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xinxingji Technology Co ltd filed Critical Xinxingji Technology Co ltd
Priority to CN202311846621.7A priority Critical patent/CN117521586B/zh
Publication of CN117521586A publication Critical patent/CN117521586A/zh
Application granted granted Critical
Publication of CN117521586B publication Critical patent/CN117521586B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]

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)
  • Architecture (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本申请提供的一种芯片设计的布局规划方法及相关设备。该方法,包括:读取所述芯片设计的初始布局规划数据,根据所述初始布局规划数据生成包含多个功能单元和走线网络的布局有向图;针对所述多个功能单元中的任一硬核,根据所述布局有向图,确定所述硬核的外连引脚连接的首个其他单元,生成连接结果;根据所述连接结果,按照预设规则对全部硬核进行分组,分别计算每个组内任意两个硬核之间的合规区间;输出分组结果及所述合规区间,以根据所述分组结果及所述合规区间进行每一类对应的规整对齐。

Description

芯片设计的布局规划方法及相关设备
技术领域
本申请涉及芯片布局规划技术领域,尤其涉及一种芯片设计的布局规划方法及相关设备。
背景技术
电子设计自动化(Electronic Design Automation,简称EDA),是指利用计算机辅助设计(CAD)软件,来完成超大规模集成电路(VLSI)芯片的功能设计、综合、验证、物理设计(包括布局、布线、版图、设计规则检查等)等流程的设计方式。
在数字芯片物理设计布局规划(floorplan)阶段,可以使用混合摆放(mixed-place)的方法来解决布局规划问题。该方法将硬核(hard macros)和标准单元(standardcells)同时摆放,减少了工程师的工作量和布局规划设计时间。布局规划(floorplan),通常是指,把硬核(hard macros)放置到设计当中,并满足后续标准单元(standard cells)布局要求。广义的布局规划还包括设计裸片(Die)的高宽比、摆放I/O Pad、纯物理单元(Welltap、Endcap)插入、电源地网络规划等。
在进行初步布局规划时,可以采用混合摆放的方法来完成布局规划。混合摆放(mixed-place),通常是指使用解析式摆放器同时摆放硬核和标准单元。该方法将硬核(hard macros)和标准单元(standard cells)同时摆放,减少了工程师的工作量和布局规划设计时间。但是,在很多时候,混合摆放后的硬核排列不整齐,这会导致多种问题。进一步在相关技术中,提供了硬核规整对齐(packing)技术来解决上述问题。规整对齐(packing)是把一组硬核在横向和纵向上进行对齐,并整体移动到指定位置,完成组与组的拼接或者对齐。在规整对齐技术中,无论是全自动的还是半自动的方案,都需要大量移动硬核并解决下述问题:1)哪些硬核应该分在同一组并摆放在一起。2)硬核能移动多远的距离。
一种解决办法是,将属于同一个层级模块(hierarchy module)的硬核摆放在一起,而模块(module)的划分来源于设计前端对功能模块的划分。另一种解决办法是,按照硬核的尺寸和混合摆放之后位置远近来分组:混合摆放后,在设定移动距离阈值内的相同尺寸硬核分在一组并摆放在一起。
但是,本申请的发明人发现,然而这样的分组方式,存在着很大的缺陷:1)按模块分组摆放,摆放结果的好坏和前端设计者对功能模块划分的精细程度有很大关系。2)在设定的移动距离阈值内按硬核的物理尺寸大小来分组摆放,相同大小的硬核分为一组。这种方式非常容易摆出规整的轮廓,但是完全忽略了硬核之间时序上和物理上的连接关系。可以看出相关技术中,对于混合摆放后的硬核规划在时序结果和绕通性上已经无法满足设计要求。
发明内容
有鉴于此,本申请提出一种芯片设计的布局规划方法及相关设备,以解决或部分解决上述问题。
基于上述目的,本申请第一方面,提供了一种芯片设计的布局规划方法,其特征在于,包括:
读取所述芯片设计的初始布局规划数据,根据所述初始布局规划数据生成包含多个功能单元和走线网络的布局有向图;
针对所述多个功能单元中的任一硬核,根据所述布局有向图,确定所述硬核的外连引脚连接的首个其他单元,生成连接结果;
根据所述连接结果,按照预设规则对全部硬核进行分组,分别计算每个组内任意两个硬核之间的合规区间;
输出分组结果及所述合规区间,以根据所述分组结果及所述合规区间进行每一类对应的规整对齐。
本申请第二方面,提供了一种计算机设备,包括一个或者多个处理器、存储器;和一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据第一方面所述的方法的指令。
本申请第三方面,提供了一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行第一方面所述的方法。
本申请提供的芯片设计的布局规划方法及相关设备,通过生成的布局有向图,确定硬核与其他单元之间的连接关系,根据连接关系进行分组,并计算不同组内硬核之间的合规区间,最终输出确定的分组结果及对应的合规区间,以此来进行对硬核的规整对齐。以此对混合摆放后的硬核规划进行优化,以提升布局规划时的时序结果和走线绕通性,从而得到能够满足当前设计要求的硬核布局规划。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例所提供的示例性计算机设备的硬件结构示意图。
图2A示出了根据本申请实施例的EDA工具的基本结构示意图。
图2B示出了根据本申请实施例的EDA工具的一个计算命令的基本执行流程的示意图。
图3示出了本申请实施例所提供的示例性方法的流程示意图。
图4A示出了本申请实施例所提供的第一组类的硬核间连接关系的示意图。
图4B示出了本申请实施例所提供的第二组类的硬核间一种连接关系的示意图。
图4C示出了本申请实施例所提供的第二组类的硬核间另一种连接关系的示意图。
图4D示出了本申请实施例所提供的第三组类的硬核间连接关系的示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本说明书进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件、物件或者方法步骤涵盖出现在该词后面列举的元件、物件或者方法步骤及其等同,而不排除其他元件、物件或者方法步骤。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
图1示出了本申请实施例所提供的一种计算机设备100的结构示意图。该计算机设备100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在设备内部的通信连接。
处理器102可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)或者一个或多个集成电路。处理器102可以用于执行与本申请描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1所示,处理器102可以包括多个处理器102a、102b和102c。
存储器104可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。例如,如图1所示,存储的数据可以包括程序指令(例如,用于实现本申请的技术方案的程序指令)以及待处理的数据。处理器102也可以访问存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口106可以配置为经由网络向计算机设备100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口108可以配置为将计算机设备100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
总线110可以被配置为在计算机设备100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
需要说明的是,尽管上述设备仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
图2A示出了根据本申请实施例的EDA工具200的基本结构示意图。
如图2A所示,虚线以上为用户部分;虚线以下为EDA工具200,EDA工具200可以由图1所示的设备100实现。在一些实施例中,该EDA工具200可以实现为EDA软件。更具体地,该EDA工具200可以是基于芯片设计进行布局(Placement)和布线(Routing)的软件。仿真工具200可以包括Tcl命令(或者图形/窗口界面)模块204、各计算模块(例如,Place计算模块206、Route计算模块208、Optimization计算模块210等)以及数据库系统212。用户202可以通过在Tcl命令(或者图形/窗口界面)模块204中输入相关命令来操作该EDA工具200。
Tcl命令模块204,主要起着消息传递或命令传递的功能。Tcl命令模块204可以读取用户202向仿真工具200输入的指令,并可以根据指令的具体内容,分配并传递给相应的计算模块去执行具体任务。
根据计算任务的不同,各计算模块可以分为,例如,Place计算模块206、Route计算模块208、Optimization计算模块210等。Place计算模块206可以用于为所有元器件计算出一个合理的摆放位置,Route计算模块208可以用于计算出各个元器件之间合理的导线连接方式,Optimization计算模块210则可以用于将各个元器件之间的摆放位置和导线连接方式进行优化。这些计算模块的计算过程可以在,例如,图1的处理器102中进行。
数据库系统212可以用于完整全面地记录、存储被仿真或者被设计的芯片的所有信息(如位置、方向、尺寸、结构、导线连接方式等等)。这些信息,例如,可以存储在图1的存储器104中。
图2B示出了根据本申请实施例的EDA工具200的一个计算命令的基本执行流程300。如图2B所示,在步骤302,用户202可以通过Tcl命令模块204提供的命令界面或者图形用户界面(GUI)向该EDA工具200下达一个命令。然后,在步骤304,Tcl命令模块204解析这一命令并将其分发到相应的计算模块(例如,Place计算模块206)。在步骤306,各计算模块执行各自所需进行的具体计算。在这期间,如步骤308所示,各计算模块需要(高频、反复)调取数据库系统212中的数据来进行计算。计算完成后,如步骤310所示,各计算模块可以将计算结果写入数据库系统212,并将计算结果返回给Tcl命令模块204。在步骤312,Tcl命令模块204通过命令界面或者图形用户界面(GUI)将计算结果返回给用户202,该EDA工具200对一个计算命令的处理过程结束。在步骤314,用户可以根据计算结果进行评估,然后确定下一步计划。
作为一个可选实施例,可以采用图2B所示的流程来完成初始布局规划,从而得到芯片设计的初始布局规划数据。在进行初步布局规划时,可以采用混合摆放的方法来完成布局规划。
但是,在很多时候,混合摆放后的硬核排列不整齐,这会导致多种问题:一、电源地布线困难,容易产生电压降(IR drop)的问题;二、占用更多的绕线资源;三、产生很多的封闭区域(dead area),这些封闭区域会导致时序优化困难和绕线困难。
在相关技术中,提供了如背景技术部分提供的不同的硬核规整对齐(packing)技术来解决上述问题。
然而在相关技术中的分组方式,存在着很大的缺陷:1)按模块分组摆放,摆放结果的好坏和前端设计者对功能模块划分的精细程度有很大关系。如果模块划分不够精细,一个模块内含有的硬核太多,就无法区分哪些硬核之间在时序上联系紧密,哪些硬核之间在时序上没有或者很少联系,无法有效指导分组摆放。甚至有些硬核被划入同一个模块,并不是它们之间有直接的时序上的联系,而只是因为在电路中有同类的功能。另外在相关的数字芯片物理实现技术中,存在将设计网表(netlist)的层级(hierarchy)打平的情况,使得相应工具无法得到模块的信息,无法直接按模块分组摆放。2)在设定的移动距离阈值内按硬核的物理尺寸大小来分组摆放,相同大小的硬核分为一组。这种方式非常容易摆出规整的轮廓,但是完全忽略了硬核之间时序上和物理上的连接关系。而且预先设定的移动距离阈值过小会导致有时序联系的硬核分在不同的组;过大又可能会导致没有任何时序关系的硬核被分入一组。从而以上两种分组方法都会导致最终的布局规划无论是时序结果还是绕通性都会变差。
有鉴于此,本申请实施例提供了一种芯片设计的布局规划方案,通过生成的布局有向图,确定硬核与其他单元之间的连接关系,根据连接关系进行分组,并计算不同组内硬核之间的合规区间,最终输出确定的分组结果及对应的合规区间,以此来进行对硬核的规整对齐。以此对混合摆放后的硬核规划进行优化,以提升布局规划时的时序结果和走线绕通性,从而得到能够满足当前设计要求的硬核布局规划。
图3示出了本申请实施例所提供的示例性方法400的流程示意图。该方法400可以由图1的计算机设备100实现,并可以实现为图2A的EDA工具200的一部分功能。如图3所示,该方法400可以进一步包括以下步骤。
步骤402,读取所述芯片设计的初始布局规划数据,根据所述初始布局规划数据生成包含多个功能单元和走线网络的布局有向图。
在本步骤中,初始布局规划数据可以是经过混合摆放之后得到的布局规划数据。在这些布局规划数据中,一般会包括不同或相同功能单元间的连接关系、电路走向、时序关系以及一些相关能够确定的数据等等。从而根据初始布局规划数据可以得到一个功能单元间的连接布局图,并且由于电路走向这里也已经固定,从而在连接的基础上,线路的走线也可以进行标定,以此生成布局有向图。但是,由于此时并没有完成功能单元的具体摆放,从而在布局有向图中,仅标明了连接关系、电路走向、时序关系等,但具体连接线路的长短,具体的走线布局、功能单元的位置布局等并没有标明。这里的功能单元可以为功能块(Instance)或端口(Port)中的至少一种,而功能块则可以为硬核或寄存器中的至少一种,这里的硬核(hard macros)也可以理解为宏单元,宏单元是由相对逻辑门抽象级别更高的触发器、算术逻辑单元、硬件暂存器等组成的预定义逻辑功能实现单元。而寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。同时由于在本方案中,寄存器(Register)和锁存器(Flip-Flop)的功能较为近似,进而在一些实施例中,也可以将锁存器看成本实施例中的寄存器。其中,锁存器主要用于存储一位二进制数,通常被用于触发器的设计中,也可以组成更复杂的寄存器或存储设备。
在一些实施例中,在初始布局规划数据中,会以设计网表(netlist)的形式记录功能单元间的连接关系并以线网(net)记录走线方向。从而在这些实施例中,可以先在初始布局规划数据中获取到对应需要进行规划部位的设计网表,再在设计网表中读取出功能单元,建立以功能块(Instance)和端口为节点,以线网(net)为边的布局有向图。即,在一些实施例中,所述根据所述初始布局规划数据生成包含多个功能单元和走线网络的布局有向图,包括:根据所述初始布局规划数据确定对应的设计网表;将所述设计网表记录的所述多个功能单元作为节点,将所述走线网络的每一条走线作为有向边,生成所述布局有向图;其中所述功能单元包括端口及功能块中的至少一种。
步骤404,针对所述多个功能单元中的任一硬核,根据所述布局有向图,确定所述硬核的外连引脚连接的首个其他单元,生成连接结果。
在本步骤中,根据步骤402可知,在功能单元中包括大量的硬核。对于任一个硬核,可以根据布局有向图去确定该硬核连接的首个其他单元,这里的其他单元主要是指的其他功能块,即其他的硬核或寄存器、锁存器等。由于在布局有向图中,记录了每个功能单元的连接关系,进而可以根据这些连接关系来找到每个硬核连接的首个其他单元,以此来生成连接结果。这里的连接结果可以记录有任一个硬核根据布局有向图最先与哪个或哪些其他单元连接。
在一些实施例中,虽然布局有向图中记录了功能单元的连接关系,但是由于其一般会记录所有大小单元的连接关系,即一些与本方案布局无关的组件或单元的连接关系在有向图中也是会进行记录的,例如部分电容、二极管、电阻等等,从而在进行查找时还是会带来一定的不方便,甚至在一些实施例中由于无法区分,需要人工进行干预。而在本方案中,需要进行分组的是一个信号的驱动端和接收端,一般在线网中,一个信号通常通过硬核或寄存器驱动,到达另一个硬核或寄存器。进而在一些实施例中,可以结合前向搜索及后向搜索的方式进行搜索,其中,前向搜索为从线网(net)的驱动端(output pin)向接收端(input pin),逻辑单元的输入端(input pin)到输出端(output pin)搜索;后向搜索为从线网(net)的接收端(input pin)向驱动端(output pin),逻辑单元的输出端(output pin)到输入端(input pin)搜索。
进而,可以先确定该硬核的输出和输入引脚(pin),对于输出引脚,进行前向搜索;对于输入引脚进行后向搜索。从而中间不论经过多少其他单元或组件,根据前向搜索及后向搜索的概念,其最终都会搜索到信号的接收端或驱动端才会停止,进而可以进行连接的快速确定。即,在具体实施例中,对于每一个硬核,从硬核的每个输出引脚(非时钟、复位等高扇出信号)出发沿着电路做前向搜索,可采用广度优先搜索(BFS)或者深度优先搜索(DFS)方式,当搜索到寄存器(register)或锁存器(Flip-Flop)或者其它硬核时即停止该分支的搜索。当所有分支的搜索停止时,记录搜索到的所有寄存器、锁存器及硬核名称。之后再从硬核的每个输入引脚(非时钟、复位等高扇出信号)出发沿着电路做后向搜索,可采用广度优先搜索(BFS)或者深度优先搜索(DFS)方式,当搜索到寄存器(register)或锁存器(Flip-Flop)或者其它硬核时即停止该分支的搜索。当所有分支的搜索停止时,记录搜索到的所有寄存器、锁存器及硬核名称。其中,广度优先搜索(BFS)是一种图遍历算法,它从一个起始点开始,逐层扩展搜索范围,直到找到目标节点为止;深度优先搜索(DFS)是一种图遍历算法,它从一个起始点开始,一直往下走直到不能再走为止,然后返回到前一个节点,继续探索它的其他分支,直到找到目标节点为止。即,在一些实施例中,所述确定所述硬核的外连引脚连接的首个其他单元,包括:确定所述外连引脚中的输出引脚,沿所述输出引脚在所述布局有向图的信号传输方向进行前向搜索,直至在所述信号传输方向上首次到达寄存器、锁存器或其他硬核。所述确定所述硬核的外连引脚连接的首个其他单元,包括:确定所述外连引脚中的输入引脚,沿所述输入引脚在所述布局有向图的信号接收方向进行后向搜索,直至在所述信号接收方向上首次到达寄存器、锁存器或其他硬核。所述前向搜索,具体为广度优先搜索或者深度优先搜索。所述后向搜索,具体为广度优先搜索或者深度优先搜索。
步骤406,根据所述连接结果,按照预设规则对全部硬核进行分组,分别计算每个组内任意两个硬核之间的合规区间。
在本步骤中,得到所有硬核的连接结果之后,即可开始对硬核进行分组。而由于本方案的目的是为了提升布局规划时的时序结果和走线绕通性,而这些主要受到硬核之间的距离影响,但是根据前述,在布局有向图中并不涉及距离的记录,仅有连接关系,进而在本步骤中需要引入具体的距离,而引入具体距离的方式可以是对硬核之间的最大间距进行设定,这里的最大间距可以是事先设定好的,统一的最大间距。但是这样预先设置的方式并不一定适应于越来越精细的高要求的芯片设计。进而可以利用时钟周期与单位长度延时(unit delay)进行最大间距的灵活计算。
即,在具体应用场景中,对于衡量两个硬核在时序关系上的紧密程度,可以从同步时序路径的角度来分析。排除多周期时序路径(Multiple cycle path),一般同步时序电路要求数据在一个时钟周期T内完成从上一个寄存器(或存储器)到下一个寄存器(存储器)的数据传输以满足时序约束,这也就要求两级寄存器(存储器)之间的摆放距离不能太远。两级寄存器(存储器)能够摆放的最大间距L可以通过周期除以单位长度延时(unit delay)估算出来。因而可以用两个硬核之间或者两个硬核与同一个寄存器之间时序路径类型、数量来衡量宏单元之间时序联系紧密程度。即,在一些实施例中,可以在进行分组的同时、之前或之后进行物理最大间距的计算。即,所述按照预设规则对全部硬核进行分组之前,所述方法还包括:获取所述初始布局规划数据中的时钟周期与单位长度延时,根据所述时钟周期与所述单位长度延时计算最大间距。
之后,由于本方案主要针对信号的驱动端和接收端,即针对硬核和寄存器进行分组,而对于芯片设计的布局,又主要考虑硬核间的摆放关系。进而最终对于分组,可以分为一个硬核的输出引脚直接与另一个硬核的输入引脚连接的第一组类,如图4A所示,其中组合逻辑单元,其主要由多个门电路组成,常用的门电路在逻辑功能上有与门、或门、非门、与非门、或非门、与或非门、异或门等多种,对于组合逻辑单元在不同实施例中的具体组合排列形式,本申请实施例不予限制。当然输出引脚和输入引脚在一些特定的实施例中,可能会连接其他硬核,即可能一个硬核通过一个输出引脚分别直接连接了至少两个其他硬核,在这种实施例中以此方式相连的每一组硬核都应分到第一组类中。还可以分为两个或多个硬核在经过一个时序的合并(分叉)点后与同一个寄存器连接的第二组类,这里信号可以是从硬核输送到寄存器的,如图4B所示,也可以是从寄存器输送到硬核的,如图4C所示。还可以分为一个硬核输出信号后,经过一个寄存器,再到达另一个硬核的第三组类,如图4D所示。同前述实施例,在一些特定实施例中,硬核或寄存器的同一引脚都可能连接多个其他单元,这里仅针对任一条最小单元间的组合进行说明。即,在一些实施例中,所述按照预设规则对全部硬核进行分组,包括:响应于所述任一硬核通过所述外连引脚与至少一个其他硬核直接通过走线连接,则将所述任一硬核与所述至少一个其他硬核划分为第一组类;响应于所述任一硬核与所述至少一个其他硬核的外连引脚连接的走线发生合并,并连接至同一个寄存器,则将所述任一硬核与所述至少一个其他硬核划分为第二组类;响应于所述任一硬核与所述至少一个其他硬核之间经过一个寄存器进行走线连接,则将所述任一硬核与所述至少一个其他硬核划分为第三组类。
再后,完成分组之后,需要确定每组的两硬核之间的合规区间,即每组的两个硬核之间被允许的间距区间。在前述实施例中,已经计算了得到了最大间距以及分类结果,那么对于第一组类,如图4A所示,硬核到硬核的时序路径,要满足同步电路时序上的约束,两个硬核物理上的间距不能超过最大间距L,即其合规区间可以设定为小于或等于最大间距。即,在一些实施例中,所述分别计算每个组内任意两个硬核之间的合规区间,包括:响应于所述任一硬核与所述至少一个其他硬核被分为所述第一组类,将所述任一硬核与所述至少一个其他硬核之间的合规区间设置为小于或等于所述最大间距。对于第二组类,硬核到寄存器的时序路径,如图4B所示,或寄存器到硬核的时序路径,如图4C所示。以寄存器到硬核的时序路径为例,要求寄存器到两个硬核的物理距离都不能超过最大间距L。但这并不意味着硬核1和硬核2的物理间距上限可以达到2L,还要考虑寄存器-to-硬核1和寄存器-to-硬核2两条时序路径分叉点的位置。假设寄存器到时序路径分叉点的中间间距为Lx,则硬核1和硬核2的物理距离上限为2(L-Lx),之后由于Lx可以由L得出,从而可以将2(L-Lx)简化为(2-a)L,a取值区间为(0,1)。即其合规区间可以设定为小于或等于最大间距与中间间距的差值的2倍。即,在一些实施例中,所述分别计算每个组内任意两个硬核之间的合规区间,包括:响应于所述任一硬核与所述至少一个其他硬核被分为所述第二组类,确定走线发生合并的分叉点,根据所述最大间距确定所述分叉点到所述寄存器的中间间距,将所述任一硬核与所述至少一个其他硬核之间的合规区间设置为小于或等于所述最大间距与所述中间间距的差值的2倍。对于第三组类,硬核经过一个寄存器到硬核的时序路径,如图4D所示,要满足同步电路时序上的约束,两个硬核分别到寄存器的间距不能超过最大间距L,则两个硬核物理上的间距不能超过最大间距L的2倍,即2L。即其合规区间可以设定为小于或等于2L。即,在一些实施例中,所述分别计算每个组内任意两个硬核之间的合规区间,包括:响应于所述任一硬核与所述至少一个其他硬核被分为所述第三组类,将所述任一硬核与所述至少一个其他硬核之间的合规区间设置为小于或等于所述最大间距的2倍。
步骤408,输出分组结果及所述合规区间,以根据所述分组结果及所述合规区间进行每一类对应的规整对齐。
在本步骤中,对于完成的分组及每组对应的合规区间,可以进行输出操作,以方便后续工序根据分组及每组合规区间的约束,进行硬核的规整对齐。这里在具体实施例中,对于第一组类可以将硬核间距设置的不超过最大间距L,甚至将两个硬核贴在一起摆放,不管规整对齐时的移动距离有多大。对于第二组类,将硬核在(2-a)L间距范围内对齐规整。对于第三组类在2L间距范围内对齐规整。之后,规整对齐后可以调整宏单元间距以满足绕线和缓冲器插入要求。再整体移动一组对齐好的硬核和其他组硬核按指定间距和方位完成拼接。组与组的拼接要求不能改变混摆阶段硬核组与组之间的上下左右相对物理位置关系。重复上述操作直到所有的宏单元完成规整和对齐。最终即可输出整体的芯片布局规划结果。
当然,在对于分组结果及合规区间的输出的方式可以不仅限于输出给后端工序单元,其还可以用以存储、展示、使用或再加工该分组结果。根据不同的应用场景和实施需要,具体的对于分组结果的输出方式可以灵活选择。
例如,对于本实施例的方法在单一设备上执行的应用场景,可以将分组结果直接在当前设备的显示部件(显示器、投影仪等)上以显示的方式输出,使得当前设备的操作者能够从显示部件上直接看到分组结果的内容。
又如,对于本实施例的方法在多个设备组成的系统上执行的应用场景,可以将分组结果通过任意的数据通信方式(有线连接、NFC、蓝牙、wifi、蜂窝移动网络等)发送至系统内的其他作为接收方的预设设备上,即同步终端上,以使得同步终端可以对其进行后续处理。可选的,该同步终端可以是预设的服务器,服务器一般设置在云端,作为数据的处理和存储中心,其能够对分组结果进行存储和分发;其中,分发的接收方是终端设备,该些终端设备的持有者或操作者可以是芯片的各级设计者、设计监管者、生产者等等。
再如,对于本实施例的方法在多个设备组成的系统上执行的应用场景时,可以将分组结果通过任意的数据通信方式直接发送至预设的终端设备,终端设备可以是前述段落列举中的一种或多种。
从上述实施例可以看出,本申请实施例提供的芯片设计的布局规划方法,通过生成的布局有向图,确定硬核与其他单元之间的连接关系,根据连接关系进行分组,并计算不同组内硬核之间的合规区间,最终输出确定的分组结果及对应的合规区间,以此来进行对硬核的规整对齐。以此对混合摆放后的硬核规划进行优化,以提升布局规划时的时序结果和走线绕通性,从而得到能够满足当前设计要求的硬核布局规划。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本申请实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法400。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法400,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法400相对应的,本申请还提供了一种计算机程序产品,其包括计算机程序。在一些实施例中,所述计算机程序由一个或多个处理器可执行以使得所述处理器执行所述的方法400。对应于方法400各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使处理器执行如上任一实施例所述的方法400,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (13)

1.一种芯片设计的布局规划方法,其特征在于,包括:
读取所述芯片设计的初始布局规划数据,根据所述初始布局规划数据生成包含多个功能单元和走线网络的布局有向图;
针对所述多个功能单元中的任一硬核,根据所述布局有向图,确定所述硬核的外连引脚连接的首个其他单元,生成连接结果;
获取所述初始布局规划数据中的时钟周期与单位长度延时,根据所述时钟周期与所述单位长度延时计算最大间距,根据所述连接结果,按照预设规则对全部硬核进行分组,根据所述最大间距分别计算每个组内任意两个硬核之间的合规区间;
输出分组结果及所述合规区间,以根据所述分组结果及所述合规区间进行每一类对应的规整对齐。
2.根据权利要求1所述的方法,其特征在于,所述根据所述初始布局规划数据生成包含多个功能单元和走线网络的布局有向图,包括:
根据所述初始布局规划数据确定对应的设计网表;
将所述设计网表记录的所述多个功能单元作为节点,将所述走线网络的每一条走线作为有向边,生成所述布局有向图;其中所述功能单元包括端口及功能块中的至少一种。
3.根据权利要求2所述的方法,其特征在于,所述功能块包括硬核或寄存器中的至少一种。
4.根据权利要求1所述的方法,其特征在于,所述确定所述硬核的外连引脚连接的首个其他单元,包括:
确定所述外连引脚中的输出引脚,沿所述输出引脚在所述布局有向图的信号传输方向进行前向搜索,直至在所述信号传输方向上首次到达寄存器、锁存器或其他硬核。
5.根据权利要求1所述的方法,其特征在于,所述确定所述硬核的外连引脚连接的首个其他单元,包括:
确定所述外连引脚中的输入引脚,沿所述输入引脚在所述布局有向图的信号接收方向进行后向搜索,直至在所述信号接收方向上首次到达寄存器、锁存器或其他硬核。
6.根据权利要求4所述的方法,其特征在于,所述前向搜索,具体为广度优先搜索或者深度优先搜索。
7.根据权利要求5所述的方法,其特征在于,所述后向搜索,具体为广度优先搜索或者深度优先搜索。
8.根据权利要求1所述的方法,其特征在于,所述按照预设规则对全部硬核进行分组,包括:
响应于所述任一硬核通过所述外连引脚与至少一个其他硬核直接通过走线连接,则将所述任一硬核与所述至少一个其他硬核划分为第一组类;
响应于所述任一硬核与所述至少一个其他硬核的外连引脚连接的走线发生合并,并连接至同一个寄存器,则将所述任一硬核与所述至少一个其他硬核划分为第二组类;
响应于所述任一硬核与所述至少一个其他硬核之间经过一个寄存器进行走线连接,则将所述任一硬核与所述至少一个其他硬核划分为第三组类。
9.根据权利要求8所述的方法,其特征在于,所述根据所述最大间距分别计算每个组内任意两个硬核之间的合规区间,包括:
响应于所述任一硬核与所述至少一个其他硬核被分为所述第一组类,将所述任一硬核与所述至少一个其他硬核之间的合规区间设置为小于或等于所述最大间距。
10.根据权利要求8所述的方法,其特征在于,所述根据所述最大间距分别计算每个组内任意两个硬核之间的合规区间,包括:
响应于所述任一硬核与所述至少一个其他硬核被分为所述第二组类,确定走线发生分叉的分叉点,根据所述最大间距确定所述分叉点到所述寄存器的中间间距,将所述任一硬核与所述至少一个其他硬核之间的合规区间设置为小于或等于所述最大间距与所述中间间距的差值的2倍。
11.根据权利要求8所述的方法,其特征在于,所述根据所述最大间距分别计算每个组内任意两个硬核之间的合规区间,包括:
响应于所述任一硬核与所述至少一个其他硬核被分为所述第三组类,将所述任一硬核与所述至少一个其他硬核之间的合规区间设置为小于或等于所述最大间距的2倍。
12.一种计算机设备,其特征在于,包括一个或者多个处理器、存储器;和一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据权利要求1至11任意一项所述的方法的指令。
13.一种包含计算机程序的非易失性计算机可读存储介质,其特征在于,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行权利要求1至11中任一项所述的方法。
CN202311846621.7A 2023-12-29 2023-12-29 芯片设计的布局规划方法及相关设备 Active CN117521586B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311846621.7A CN117521586B (zh) 2023-12-29 2023-12-29 芯片设计的布局规划方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311846621.7A CN117521586B (zh) 2023-12-29 2023-12-29 芯片设计的布局规划方法及相关设备

Publications (2)

Publication Number Publication Date
CN117521586A CN117521586A (zh) 2024-02-06
CN117521586B true CN117521586B (zh) 2024-03-12

Family

ID=89745975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311846621.7A Active CN117521586B (zh) 2023-12-29 2023-12-29 芯片设计的布局规划方法及相关设备

Country Status (1)

Country Link
CN (1) CN117521586B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483461A (en) * 1993-06-10 1996-01-09 Arcsys, Inc. Routing algorithm method for standard-cell and gate-array integrated circuit design
CN1776693A (zh) * 2005-12-01 2006-05-24 复旦大学 通用现场可编程门阵列布局布线模型
CN103886137A (zh) * 2014-03-03 2014-06-25 西安电子科技大学 一种实现现场可编程门阵列快速布局布线的方法
CN105760558A (zh) * 2014-12-16 2016-07-13 京微雅格(北京)科技有限公司 Fpga芯片中多输入查找表的布局方法
CN109271338A (zh) * 2018-08-14 2019-01-25 西安电子科技大学 一种面向存储系统的可重构片上光互连结构及通信方法
US10733350B1 (en) * 2015-12-30 2020-08-04 Sharat C Prasad On-chip and system-area multi-processor interconnection networks in advanced processes for maximizing performance minimizing cost and energy
CN112183015A (zh) * 2020-11-04 2021-01-05 南京师范大学 一种面向深度神经网络的芯片布图规划方法
CN116362190A (zh) * 2022-10-31 2023-06-30 芯行纪科技有限公司 芯片设计的交互布局规划方法及相关设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7624364B2 (en) * 2007-05-02 2009-11-24 Cadence Design Systems, Inc. Data path and placement optimization in an integrated circuit through use of sequential timing information

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483461A (en) * 1993-06-10 1996-01-09 Arcsys, Inc. Routing algorithm method for standard-cell and gate-array integrated circuit design
CN1776693A (zh) * 2005-12-01 2006-05-24 复旦大学 通用现场可编程门阵列布局布线模型
CN103886137A (zh) * 2014-03-03 2014-06-25 西安电子科技大学 一种实现现场可编程门阵列快速布局布线的方法
CN105760558A (zh) * 2014-12-16 2016-07-13 京微雅格(北京)科技有限公司 Fpga芯片中多输入查找表的布局方法
US10733350B1 (en) * 2015-12-30 2020-08-04 Sharat C Prasad On-chip and system-area multi-processor interconnection networks in advanced processes for maximizing performance minimizing cost and energy
CN109271338A (zh) * 2018-08-14 2019-01-25 西安电子科技大学 一种面向存储系统的可重构片上光互连结构及通信方法
CN112183015A (zh) * 2020-11-04 2021-01-05 南京师范大学 一种面向深度神经网络的芯片布图规划方法
CN116362190A (zh) * 2022-10-31 2023-06-30 芯行纪科技有限公司 芯片设计的交互布局规划方法及相关设备

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
FPGA工艺映射算法的研究与分析;李玉梅;《中国优秀硕士学位论文全文数据库》;20110531;信息科技辑 I135-107 *
FPGA技术及其开发方式概述;张小新等;《山西电子技术》;20081015(第05期);第86-87+90页 *
Multilayer chip-level global routing using an efficient graph-based Steiner tree heuristic;L.-C.E. Liu等;《 IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems》;19991031;第18卷(第10期);第1442-1451y页 *
一种面向并行设计规划的快速布局模型与算法;杨强等;《计算机研究与发展》;20011130(第11期);第1393-1398页 *
任意元胞Timing Driven初始布局算法研究及其实现;金玲;《微电子学》;19930225(第01期);第43-47页 *
可编程逻辑器件结构库的生成与验证;张新城;《中国优秀硕士学位论文全文数据库》;20160331;信息科技辑 I135-1477 *
可编程逻辑核关键技术研究;谢小东;《中国博士学位论文全文数据库》;20120630;信息科技辑 I135-50 *
基于传导闭包图结构的布图算法研究;李一明;《中国博士学位论文全文数据库》;20120630;信息科技辑 I138-1 *
电源网络拓扑优化方法研究;刘泽响等;《小型微型计算机系统》;20100515;第31卷(第05期);第1021-1024页 *

Also Published As

Publication number Publication date
CN117521586A (zh) 2024-02-06

Similar Documents

Publication Publication Date Title
CN107918694B (zh) 用于减少集成电路上的延迟的方法
US8239795B2 (en) Timing analyzing system for clock delay
US11922106B2 (en) Memory efficient scalable distributed static timing analysis using structure based self-aligned parallel partitioning
US10678979B2 (en) Method and apparatus for implementing a system-level design tool for design planning and architecture exploration
Coudert et al. Incremental cad
CN116911246B (zh) 芯片设计的布线规划方法及相关设备
US8516417B2 (en) Method and system for repartitioning a hierarchical circuit design
CN116151179B (zh) 芯片设计的布局规划方法及相关设备
US8281269B2 (en) Method of semiconductor integrated circuit device and program
CN114556352A (zh) 用于执行自动布线的方法和系统
CN113792519B (zh) 对电路进行布局规划的方法、电子设备及存储介质
US10417363B1 (en) Power and scan resource reduction in integrated circuit designs having shift registers
US11694016B2 (en) Fast topology bus router for interconnect planning
CN116822452B (zh) 芯片布局优化方法及相关设备
CN116090396B (zh) 显示芯片设计的数据流的方法及相关设备
CN116227407B (zh) 形成物理版图的模块边界的方法及相关设备
CN117521586B (zh) 芯片设计的布局规划方法及相关设备
US8074198B2 (en) Apparatus and method for circuit layout using longest path and shortest path search elements
JP5447547B2 (ja) マクロ遅延解析装置、マクロ境界パスの遅延解析方法、マクロ境界パスの遅延解析プログラム
CN116362190A (zh) 芯片设计的交互布局规划方法及相关设备
CN117688895B (zh) 电路图生成方法、计算机设备及存储介质
CN116956807B (zh) 芯片设计的全局布线拥塞图确定方法及相关设备
US20220335187A1 (en) Multi-cycle test generation and source-based simulation
US11537775B1 (en) Timing and placement co-optimization for engineering change order (ECO) cells
US20230083003A1 (en) Optical path tracing in an optical circuit design

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