CN115221831B - 实现电路版图代码化半自动布局的方法及装置 - Google Patents
实现电路版图代码化半自动布局的方法及装置 Download PDFInfo
- Publication number
- CN115221831B CN115221831B CN202210899959.8A CN202210899959A CN115221831B CN 115221831 B CN115221831 B CN 115221831B CN 202210899959 A CN202210899959 A CN 202210899959A CN 115221831 B CN115221831 B CN 115221831B
- Authority
- CN
- China
- Prior art keywords
- layout
- api
- device set
- acquiring
- embodiment device
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000003860 storage Methods 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 20
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000010295 mobile communication Methods 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000005669 field effect Effects 0.000 description 4
- 229910044991 metal oxide Inorganic materials 0.000 description 4
- 150000004706 metal oxides Chemical class 0.000 description 4
- 239000003990 capacitor Substances 0.000 description 3
- 239000002131 composite material Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101150060239 MOM1 gene Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 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/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请涉及集成电路技术领域,尤其涉及一种实现电路版图代码化半自动布局的方法及装置。其中,该实现电路版图代码化半自动布局的方法,包括:获取实施例化器件集合,实施例化器件集合中所有实施例化器件与计算机编程语言python中的实施例Instance类一一对应;通过布局应用程序编程接口API,获取针对实施例化器件集合输入的器件参数集合;基于器件参数集合,对实施例化器件集合进行摆放布局,以得到与实施例化器件集合对应的电路版图。采用上述方案的本申请可以提高集成电路的设计效率。
Description
技术领域
本申请涉及集成电路技术领域,尤其涉及一种实现电路版图代码化半自动布局的方法及装置。
背景技术
集成电路(Integrated Circuit,IC),是把一定数量的常用电子元件,如电阻、电容、晶体管等,以及这些元件之间的连线,通过半导体工艺集成在一起的具有特定功能的微型电子器件或部件。因此,集成电路具有体积小、重量轻、引脚少、寿命长、可靠性高、成本低、性能好等优点,同时还便于大规模生产。
随着集成电路的高速发展,芯片集成度越来越高。然而,集成电路设计成本高,周期长。一款芯片的研发,往往需要几百名专业的集成电路工程师一年甚至更长的时间才能完成。其原因在于集成电路设计流程冗长,例如对于数字集成电路,需要经过寄存器转换级电路(Register Transfer Level,RTL)设计,RTL综合,布局时钟树综合,布线等过程。每个环节都需要专业的工程师参与。对于模拟电路而言,情况也类似。而考虑到片上系统(System on Chip,SoC)中既包括数字集成电路又包括模拟电路,二者结合又需要额外的验证工作。因此,如何提高集成电路的设计效率成为人们关注的重点。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种实现电路版图代码化半自动布局的方法,以提高集成电路的设计效率。
本申请的第二个目的在于提出一种实现电路版图代码化半自动布局的装置。
本申请的第三个目的在于提出一种终端。
本申请的第四个目的在于提出一种非临时性计算机可读存储介质。
本申请的第五个目的在于提出一种计算机程序产品。
为达到上述目的,本申请第一方面实施例提出的一种实现电路版图代码化半自动布局的方法,包括:
获取实施例化器件集合,所述实施例化器件集合中所有实施例化器件与计算机编程语言python中的实施例Instance类一一对应;
通过布局应用程序编程接口API,获取针对所述实施例化器件集合输入的器件参数集合;
基于所述器件参数集合,对所述实施例化器件集合进行摆放布局,以得到与所述实施例化器件集合对应的电路版图。
可选地,在本申请的一个实施例中,在所述获取实施例化器件集合之前,还包括:
获取初始器件集合;
若所述初始器件集合中存在至少一个初始器件不与python中的Instance类一一对应,则对所述至少一个初始器件进行转换,以得到实施例化器件集合。
可选地,在本申请的一个实施例中,所述布局API为重合布局API,所述通过布局API,获取针对所述实施例化器件集合输入的器件参数集合,包括:
通过重合布局API,获取针对所述实施例化器件集合输入的器件形状参数;
或者,通过重合布局API,获取针对所述实施例化器件集合输入的器件形状参数、横坐标偏移参数和纵坐标偏移参数。
可选地,在本申请的一个实施例中,所述布局API为水平布局API或竖直布局API,所述通过布局API,获取针对所述实施例化器件集合输入的器件参数集合,包括:
通过水平布局API或竖直布局API,获取针对所述实施例化器件集合输入的间距参数。
可选地,在本申请的一个实施例中,所述基于所述器件参数集合,对所述实施例化器件集合进行摆放布局之后,还包括:
通过布局API,获取针对所述实施例化器件集合输入的位置摆放指令;
基于所述位置摆放指令,对所述实施例化器件集合中至少一个实施例化器件进行摆放布局。
为达到上述目的,本申请第二方面实施例提出的一种实现电路版图代码化半自动布局的装置,包括:
集合获取单元,用于获取实施例化器件集合,所述实施例化器件集合中所有实施例化器件与计算机编程语言python中的实施例Instance类一一对应;
参数获取单元,用于通过布局应用程序编程接口API,获取针对所述实施例化器件集合输入的器件参数集合;
器件布局单元,用于基于所述器件参数集合,对所述实施例化器件集合进行摆放布局,以得到与所述实施例化器件集合对应的电路版图。
可选地,在本申请的一个实施例中,所述装置还包括器件获取单元和器件转换单元,用于在所述获取实施例化器件集合之前:
所述器件获取单元,用于获取初始器件集合;
所述器件转换单元,用于若所述初始器件集合中存在至少一个初始器件不与python中的Instance类一一对应,则对所述至少一个初始器件进行转换,以得到实施例化器件集合。
可选地,在本申请的一个实施例中,所述布局API为重合布局API,所述参数获取单元,用于通过布局API,获取针对所述实施例化器件集合输入的器件参数集合时,具体用于:
通过重合布局API,获取针对所述实施例化器件集合输入的器件形状参数;
或者,通过重合布局API,获取针对所述实施例化器件集合输入的器件形状参数、横坐标偏移参数和纵坐标偏移参数。
可选地,在本申请的一个实施例中,所述布局API为水平布局API或竖直布局API,所述参数获取单元,用于通过布局API,获取针对所述实施例化器件集合输入的器件参数集合时,具体用于:
通过水平布局API或竖直布局API,获取针对所述实施例化器件集合输入的间距参数。
可选地,在本申请的一个实施例中,所述装置还包括指令获取单元和器件摆放单元,用于基于所述器件参数集合,对所述实施例化器件集合进行摆放布局之后:
所述指令获取单元,用于通过布局API,获取针对所述实施例化器件集合输入的位置摆放指令;
所述器件摆放单元,用于基于所述位置摆放指令,对所述实施例化器件集合中至少一个实施例化器件进行摆放布局。
为达到上述目的,本申请第三方面实施例提出了一种终端,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述一方面中任一项所述的方法。
为达到上述目的,本申请第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行前述一方面中任一项所述的方法。
为达到上述目的,本申请第五方面实施例提出了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现前述一方面中任一项所述的方法。
综上,在本申请一个或多个实施例中,通过获取实施例化器件集合,所述实施例化器件集合中所有实施例化器件与计算机编程语言python中的实施例Instance类一一对应;通过布局应用程序编程接口API,获取针对所述实施例化器件集合输入的器件参数集合;基于所述器件参数集合,对所述实施例化器件集合进行摆放布局,以得到与所述实施例化器件集合对应的电路版图。因此,通过采用布局API获取针对所述实施例化器件集合输入的器件参数集合,并根据该器件参数集合,对实施例化器件集合进行摆放布局,可以实现电路版图的半自动化布局,进而可以提高集成电路的设计效率。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所提供的一种实现电路版图代码化半自动布局的方法的流程图;
图2示出本公开实施例提供的一种重合布局的结果示意图;
图3示出本公开实施例提供的一种水平布局的结果示意图;
图4示出本公开实施例提供的一种竖直布局的结果示意图;
图5示出本公开实施例提供的一种模块CP_OP1B的布局结果示意图。
图6为本申请实施例提供的第一种实现电路版图代码化半自动布局的装置的结构示意图;
图7为本申请实施例提供的第二种实现电路版图代码化半自动布局的装置的结构示意图;
图8为本申请实施例提供的第三种实现电路版图代码化半自动布局的装置的结构示意图;
图9是用来实现本申请实施例的实现电路版图代码化半自动布局的方法的终端的框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
相关技术中,数字集成电路设计的自动化程度比模拟电路设计成熟。例如,数字集成电路设计中,Chisel是面向敏捷开发设计方法学的集成电路项目CRAFT的一个最具代表性产物。在人工智能(Artificial Intelligence,AI)嵌入式芯片的设计流程中,采用面向对象的基于超文本传输协议(Hyper Text Transfer Protocol,HTTP)的自适应码率流媒体传输协议(HTTP Live Streaming,HLS)实现整个芯片的设计和验证,集合软/硬件协同设计语言SystemC和Chisel将传统近3年的设计研发周期缩短到3个月。
而对于模拟电路设计而言,虽然存在一些模拟集成电路版图的自动布局布线的工具,例如,Cadence Virtuoso Layout Suite GXL、NeoCircuit、Genius、WiCked等等。但是这些工具仅能辅助设计者实现简单的版图自动布局和连线,并且采用该工具自动生成的版图寄生效应较大,优化得到的结果误差较大,很难自动生成高质量的版图,其自动化程度较低,从而导致集成电路的设计效率较低。
下面结合具体的实施例对本申请进行详细说明。
图1为本申请实施例所提供的一种实现电路版图代码化半自动布局的方法的流程图。如图1所示,图1示出本公开实施例提供的一种实现电路版图代码化半自动布局的方法的流程示意图,该方法可依赖于计算机程序实现,可运行于进行实现电路版图代码化半自动布局的的装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
其中,实现电路版图代码化半自动布局的装置可以是具有实现电路版图代码化半自动布局的功能的终端,该终端包括但不限于:可穿戴设备、手持设备、个人电脑、平板电脑、车载设备、智能手机、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中终端可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(personal digital assistant,PDA)、第五代移动通信技术(5th Generation Mobile Communication Technology,5G)网络、第四代移动通信技术(the 4th generation mobile communication technology,4G)网络、第三代移动通信技术(3rd-Generation,3G)网络或未来演进网络中的终端等。
具体的,该实现电路版图代码化半自动布局的方法,包括以下步骤:
步骤110,获取实施例化器件集合,实施例化器件集合中所有实施例化器件与计算机编程语言python中的实施例Instance类一一对应;
步骤120,通过布局应用程序编程接口(Application Programming Interface,API),获取针对实施例化器件集合输入的器件参数集合;
步骤130,基于器件参数集合,对实施例化器件集合进行摆放布局,以得到与实施例化器件集合对应的电路版图。
根据一些实施例,当进行实现电路版图代码化半自动布局时,可以获取电路模块对应的实施例化器件集合。其中,该电路模块与python中的模块Module类一一对应。因此,可以针对每一个电路模块进行电路版图代码化半自动布局,进而,可以实现电路模块的复用。
在本申请实施例中,在获取实施例化器件集合之前,还包括:
获取初始器件集合;
若初始器件集合中存在至少一个初始器件不与python中的Instance类一一对应,则对至少一个初始器件进行转换,以得到实施例化器件集合。
在本申请实施例中,布局API为重合布局API,通过布局API,获取针对实施例化器件集合输入的器件参数集合,包括:
通过重合布局API,获取针对实施例化器件集合输入的器件形状参数;
或者,通过重合布局API,获取针对实施例化器件集合输入的器件形状参数、横坐标偏移参数和纵坐标偏移参数。
根据一些实施例,通过重合布局API,获取到的针对实施例化器件集合输入的器件参数集合并不特指某一固定集合。例如,该器件参数集合可以包括器件形状参数、横坐标偏移参数和纵坐标偏移参数,即lay(r1,(r2,0.2,0)),其中,lay表示对器件进行重合布局,r1、r2表示实施例化器件1和实施例化器件2的形状为矩形,0.2表示实施例化器件2的横坐标偏移参数为0.2,0表示实施例化器件2的纵坐标偏移参数为0。该器件参数集合可以仅包括器件形状参数,即lay(r3,r4),其中,r3、r4表示实施例化器件3和实施例化器件4的形状为矩形。
在一些实施例中,器件形状参数并不特指某一固定参数。例如,器件参数的表现形式可以为r1=Rect(M1,0.2,0.1,connectTo=n1)。其中,Rect()表示r1为矩形,M1表示实施例化器件1,0.2表示实施例化器件1的横坐标长度,0.1表示实施例化器件1的纵坐标长度,n1表示电路中某一结点,等同于网表中的net。
根据一些实施例,当通过重合布局API,对实施例化器件集合进行摆放布局时,重合布局API的表现形式可以如下所示:
r1=Rect(M1,0.2,0.1,connectTo=n1);
r2=Rect(M1,0.2,0.1,connectTo=n1);
final=lay(r1,(r2,0.2,0));
在一些实施例中,图2示出本公开实施例提供的一种重合布局的结果示意图。如图2所示,在单位是微米的情况下,可以通过实施例化器件集合生成两个0.2*0.1的矩形,他们的电学结点都是n1。接着,可以通过重合布局API将r1代表的矩形放置在(0,0)的位置,将r2代表的放置在(0.2,0)的位置。
在本申请实施例中,布局API为水平布局API或竖直布局API,通过布局API,获取针对实施例化器件集合输入的器件参数集合,包括:
通过水平布局API或竖直布局API,获取针对实施例化器件集合输入的间距参数。
根据一些实施例,水平布局API或竖直布局API通过至少一个实施例化器件布局后产生。
在一些实施例中,当水平布局API通过至少一个实施例化器件重合布局后产生时,该水平布局API的表现形式可以如下所示:
r1=Rect(M1,0.2,0.1,connectTo=n1);
r2=Rect(M1,0.2,0.1,connectTo=n1);
final=lay(r1,(r2,0.2,0));
final=row(final,Rect(M1,0.2,0.1,connectTo=n1),spacing=0.2);
其中,final表示,row表示对器件进行水平布局,spacing表示器件的间距。
在一些实施例中,在单位是微米的情况下,可以利用水平布局API,在保证间距是0.2的情况下,对至少一个实施例化器件进行水平摆放。图3示出本公开实施例提供的一种水平布局的结果示意图。如图3所示,可以利用水平布局API,将图2生成的版图与一个尺寸是0.2*0.1、电学结点是n1的矩形r3进行水平摆放,并将r3代表的矩形放置在(0.6,0)的位置。
在一些实施例中,当竖直布局API通过至少一个实施例化器件重合布局、水平布局后产生时,该竖直布局API的表现形式可以如下所示:
r1=Rect(M1,0.2,0.1,connectTo=n1);
r2=Rect(M1,0.2,0.1,connectTo=n1);
final=lay(r1,(r2,0.2,0));
final=row(final,Rect(M1,0.2,0.1,connectTo=n1),spacing=0.2);
final=col(final,Rect(M2,0.2,0.1,connectTo=n1),spacing=0.2);
其中,col表示对器件进行竖直布局。
在一些实施例中,在单位是微米的情况下,可以竖直水平布局API,在保证间距是0.2的情况下,对至少一个实施例化器件进行竖直摆放。图4示出本公开实施例提供的一种竖直布局的结果示意图。如图4所示,可以将图3生成的版图与一个尺寸是0.2*0.1、电学结点是n1的矩形r4,进行竖直摆放,并将r4代表的矩形放置在(0,-0.2)的位置。
在本申请实施例中,基于器件参数集合,对实施例化器件集合进行摆放布局之后,还包括:
通过布局API,获取针对实施例化器件集合输入的位置摆放指令;
基于位置摆放指令,对实施例化器件集合中至少一个实施例化器件进行摆放布局。
根据一些实施例,当通过布局API,获取针对实施例化器件集合输入的位置摆放指令时,可以在位置摆放信息对应的输入位置获取针对实施例化器件集合输入的位置摆放指令。该位置摆放信息并不特指某一固定信息。例如,该位置摆放信息可以为横坐标位置摆放信息x_align。该位置摆放信息也可以为纵坐标位置摆放信息y_align。该位置摆放信息也可以为同时包括横坐标和纵坐标的位置摆放信息align。
在一些实施例中,位置摆放指令并不特指某一固定指令。该位置摆放指令包括但不限于左对齐、右对齐、上对齐、下对齐、居中对齐等等。例如,当align=MIDDLE时,对实施例化器件集合中至少一个实施例化器件进行中心对齐。当x_align=CENTER时,对实施例化器件集合中至少一个实施例化器件在横坐标方向上进行居中对齐。
以一个场景举例,对模块电荷泵运放1b(CP_OP1B)对应的实施例化器件集合进行布局,具体布局过程如下所示:
其中,pmos、pmos0、pmos1代表P型金属氧化物场效应晶体管,nmos代表N型金属氧化物场效应晶体管,rpoly和rpoly1代表电阻,pmosPair代表插指型P型金属氧化物场效应晶体管,nmosPair代表插指型N型金属氧化物场效应晶体管,mom1代表电容。
在一些实施例中,如上述代码所示,首先,通过使用竖直布局API col,可以将pmos0和rpoly以间距为3竖直摆放。接着,通过使用水平布局API row可以将pmos0和rpoly以间距为3竖直摆放后得到的部分与pmosPair、nmosPair、rpoly1进行水平摆放,并保证竖直方向居中对齐。其次,再次使用竖直布局API col,可以将水平摆放后得到的部分与pmos、nmos进行竖直摆放,并将得到的整体定义为final1。接着,通过重合布局API lay,可以将mom1和pmos1进行重叠水平、竖直居中放置,组成final2。最后,再次通过水平布局API row可以将final1、final2以间距为2进行水平摆放,并保证竖直居中,得到CP_OP1B对应的布局结果。
根据一些实施例,图5示出本公开实施例提供的一种模块CP_OP1B的布局结果示意图,如图5所示,A区域、B区域、C区域均由多个MOS管组成,D区域由电阻组成,E区域和F区域由对称管组成,G区域由电容组成。
综上,在本申请实施例提供的方法,通过获取实施例化器件集合,实施例化器件集合中所有实施例化器件与计算机编程语言python中的实施例Instance类一一对应;通过布局应用程序编程接口API,获取针对实施例化器件集合输入的器件参数集合;基于器件参数集合,对实施例化器件集合进行摆放布局,以得到与实施例化器件集合对应的电路版图。因此,通过采用布局API获取针对所述实施例化器件集合输入的器件参数集合,并根据该器件参数集合,对实施例化器件集合进行摆放布局,可以实现电路版图的半自动化布局,可以提高集成电路的设计效率。
为了实现上述实施例,本申请还提出一种实现电路版图代码化半自动布局的装置。
图6为本申请实施例提供的第一种实现电路版图代码化半自动布局的装置的结构示意图。
如图6所示,一种实现电路版图代码化半自动布局的装置600,包括:
集合获取单元610,用于获取实施例化器件集合,实施例化器件集合中所有实施例化器件与计算机编程语言python中的实施例Instance类一一对应;
参数获取单元620,用于通过布局应用程序编程接口API,获取针对实施例化器件集合输入的器件参数集合;
器件布局单元630,用于基于器件参数集合,对实施例化器件集合进行摆放布局,以得到与实施例化器件集合对应的电路版图。
在本申请实施例中,图7为本申请实施例提供的第二种实现电路版图代码化半自动布局的装置的结构示意图。如图7所示,该实现电路版图代码化半自动布局的装置600还包括器件获取单元640和器件转换单元650,用于在获取实施例化器件集合之前:
器件获取单元640,用于获取初始器件集合;
器件转换单元650,用于若初始器件集合中存在至少一个初始器件不与python中的Instance类一一对应,则对至少一个初始器件进行转换,以得到实施例化器件集合。
在本申请实施例中,布局API为重合布局API,参数获取单元620,用于通过布局API,获取针对实施例化器件集合输入的器件参数集合时,具体用于:
通过重合布局API,获取针对实施例化器件集合输入的器件形状参数;
或者,通过重合布局API,获取针对实施例化器件集合输入的器件形状参数、横坐标偏移参数和纵坐标偏移参数。
在本申请实施例中,布局API为水平布局API或竖直布局API,参数获取单元620,用于通过布局API,获取针对实施例化器件集合输入的器件参数集合时,具体用于:
通过水平布局API或竖直布局API,获取针对实施例化器件集合输入的间距参数。
在本申请实施例中,图8为本申请实施例提供的第三种实现电路版图代码化半自动布局的装置的结构示意图。如图8所示,该实现电路版图代码化半自动布局的装置600还包括指令获取单元660和器件摆放单元670,用于基于器件参数集合,对实施例化器件集合进行摆放布局之后:
指令获取单元660,用于通过布局API,获取针对实施例化器件集合输入的位置摆放指令;
器件摆放单元670,用于基于位置摆放指令,对实施例化器件集合中至少一个实施例化器件进行摆放布局。
综上,在本申请实施例提供的装置,通过集合获取单元获取实施例化器件集合,实施例化器件集合中所有实施例化器件与计算机编程语言python中的实施例Instance类一一对应;参数获取单元通过布局应用程序编程接口API,获取针对实施例化器件集合输入的器件参数集合;器件布局单元基于器件参数集合,对实施例化器件集合进行摆放布局,以得到与实施例化器件集合对应的电路版图。因此,通过采用布局API获取针对所述实施例化器件集合输入的器件参数集合,并根据该器件参数集合,对实施例化器件集合进行摆放布局,可以实现电路版图的半自动化布局,可以提高集成电路的设计效率。
根据本公开的实施例,本公开还提供了一种终端、一种可读存储介质和一种计算机程序产品。
图9示出了可以用来实施本公开的实施例的示例终端900的示意性框图。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,终端900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储终端900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
终端900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许终端900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如实现电路版图代码化半自动布局的方法。例如,在一些实施例中,实现电路版图代码化半自动布局的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到终端900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的实现电路版图代码化半自动布局的方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行实现电路版图代码化半自动布局的方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或终端上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据终端)、或者包括中间件部件的计算系统(例如,应用终端)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户机和终端。客户机和终端一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户机-终端关系的计算机程序来产生客户机和终端的关系。终端可以是云终端,又称为云计算终端或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual PrivateServer",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。终端也可以为分布式系统的终端,或者是结合了区块链的终端。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (6)
1.一种实现电路版图代码化半自动布局的方法,其特征在于,包括:
获取初始器件集合;
若所述初始器件集合中存在至少一个初始器件不与python中的Instance类一一对应,则对所述至少一个初始器件进行转换,以得到实施例化器件集合;
获取实施例化器件集合,所述实施例化器件集合中所有实施例化器件与计算机编程语言python中的实施例Instance类一一对应;
通过布局API,获取针对所述实施例化器件集合输入的器件参数集合,其中,
所述布局API为重合布局API时,通过重合布局API,获取针对所述实施例化器件集合输入的器件形状参数;或者,通过重合布局API,获取针对所述实施例化器件集合输入的器件形状参数、横坐标偏移参数和纵坐标偏移参数;
所述布局API为水平布局API或竖直布局API时,通过水平布局API或竖直布局API,获取针对所述实施例化器件集合输入的间距参数;
基于所述器件参数集合,对所述实施例化器件集合进行摆放布局,以得到与所述实施例化器件集合对应的电路版图,其中,将所述布局API之前布局得到的整体定义为final,所述布局API针对所述final和所述实施例化器件中的至少一种进行布局。
2.如权利要求1所述的方法,其特征在于,所述基于所述器件参数集合,对所述实施例化器件集合进行摆放布局之后,还包括:
通过布局API,获取针对所述实施例化器件集合输入的位置摆放指令;
基于所述位置摆放指令,对所述实施例化器件集合中至少一个实施例化器件进行摆放布局。
3.一种标准单元的自动构建装置,其特征在于,包括:
器件获取单元,用于获取初始器件集合;
器件转换单元,用于若所述初始器件集合中存在至少一个初始器件不与python中的Instance类一一对应,则对所述至少一个初始器件进行转换,以得到实施例化器件集合;
集合获取单元,用于获取实施例化器件集合,所述实施例化器件集合中所有实施例化器件与计算机编程语言python中的实施例Instance类一一对应;
参数获取单元,用于通过布局API,获取针对所述实施例化器件集合输入的器件参数集合;其中,
所述布局API为重合布局API时,通过重合布局API,获取针对所述实施例化器件集合输入的器件形状参数;或者,通过重合布局API,获取针对所述实施例化器件集合输入的器件形状参数、横坐标偏移参数和纵坐标偏移参数;
所述布局API为水平布局API或竖直布局API时,通过水平布局API或竖直布局API,获取针对所述实施例化器件集合输入的间距参数;
器件布局单元,用于基于所述器件参数集合,对所述实施例化器件集合进行摆放布局,以得到与所述实施例化器件集合对应的电路版图,其中,将所述布局API之前布局得到的整体定义为final,所述布局API针对所述final和所述实施例化器件中的至少一种进行布局。
4.如权利要求3所述的装置,其特征在于,所述装置还包括指令获取单元和器件摆放单元,用于基于所述器件参数集合,对所述实施例化器件集合进行摆放布局之后:
所述指令获取单元,用于通过布局API,获取针对所述实施例化器件集合输入的位置摆放指令;
所述器件摆放单元,用于基于所述位置摆放指令,对所述实施例化器件集合中至少一个实施例化器件进行摆放布局。
5.一种终端,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-2中任一项所述的方法。
6.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-2中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210899959.8A CN115221831B (zh) | 2022-07-28 | 2022-07-28 | 实现电路版图代码化半自动布局的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210899959.8A CN115221831B (zh) | 2022-07-28 | 2022-07-28 | 实现电路版图代码化半自动布局的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115221831A CN115221831A (zh) | 2022-10-21 |
CN115221831B true CN115221831B (zh) | 2023-10-13 |
Family
ID=83613774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210899959.8A Active CN115221831B (zh) | 2022-07-28 | 2022-07-28 | 实现电路版图代码化半自动布局的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115221831B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013084211A (ja) * | 2011-10-12 | 2013-05-09 | Renesas Electronics Corp | 半導体装置の自動配置配線プログラム、自動配置配線装置及び自動配置配線方法 |
CN106354894A (zh) * | 2015-07-15 | 2017-01-25 | 中国科学院微电子研究所 | 一种模拟电路的布局方法及系统 |
CN112989737A (zh) * | 2021-02-07 | 2021-06-18 | 北京大学 | 一种交互式模拟电路版图编辑方法及系统 |
CN114297974A (zh) * | 2021-12-20 | 2022-04-08 | 上海安路信息科技股份有限公司 | 集成电路版图布局方法及集成电路版图布局系统 |
CN114611452A (zh) * | 2022-03-22 | 2022-06-10 | 成都华大九天科技有限公司 | 基于电路原理图在版图中自动生成Sub Cell的方法 |
-
2022
- 2022-07-28 CN CN202210899959.8A patent/CN115221831B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013084211A (ja) * | 2011-10-12 | 2013-05-09 | Renesas Electronics Corp | 半導体装置の自動配置配線プログラム、自動配置配線装置及び自動配置配線方法 |
CN106354894A (zh) * | 2015-07-15 | 2017-01-25 | 中国科学院微电子研究所 | 一种模拟电路的布局方法及系统 |
CN112989737A (zh) * | 2021-02-07 | 2021-06-18 | 北京大学 | 一种交互式模拟电路版图编辑方法及系统 |
CN114297974A (zh) * | 2021-12-20 | 2022-04-08 | 上海安路信息科技股份有限公司 | 集成电路版图布局方法及集成电路版图布局系统 |
CN114611452A (zh) * | 2022-03-22 | 2022-06-10 | 成都华大九天科技有限公司 | 基于电路原理图在版图中自动生成Sub Cell的方法 |
Non-Patent Citations (9)
Title |
---|
A python-based layout-aware analog design methodology for nanometric technologies;Youssef S, Javid F, Dupuis D, et al.;《2011 IEEE 6th International Design and Test Workshop (IDT). IEEE》;62-67 * |
ALIGN: A system for automating analog layout;Dhar T, Kunal K, Li Y, et al.;《IEEE Design & Test》;38(2);8-18 * |
BAG: A designer-oriented integrated framework for the development of AMS circuit generators;Crossley J, Puggelli A, Le H P, et al.;《2013 IEEE/ACM International Conference on Computer-Aided Design (ICCAD). IEEE》;27(3);74-81 * |
BAG2: A process-portable framework for generator-based AMS circuit design;Chang E, Han J, Bae W, et al.;《2018 IEEE Custom Integrated Circuits Conference (CICC)》;第1-4章节 * |
Building a post-layout simulation performance model with global mapping model fusion technique;Wang Z, Hu W, Yin S, et al.;《Tsinghua Science and Technology》;第27卷(第3期);512-525 * |
Challenges and opportunities toward fully automated analog layout design;Chen H, Liu M, Tang X, et al.;《Journal of Semiconductors》;第41卷(第11期);全文 * |
MAGICAL: An open-source fully automated analog IC layout system from netlist to GDSII;Chen H, Liu M, Xu B, et al.;《IEEE Design & Test》;38(2);19-26 * |
基于Python语言的模拟电路全流程自动化设计系统;江南大学人工智能与计算机学院;《URL:http://ai.jiangnan.edu.cn/info/1102/2252.htm》;全文 * |
基于TED平台的模拟集成电路自动布局;方芳,辛建,秦仟,柴晨凯,叶佐昌,王燕;《微纳电子与智能制造》;第3卷(第4期);66-71 * |
Also Published As
Publication number | Publication date |
---|---|
CN115221831A (zh) | 2022-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112052242A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
KR102604306B1 (ko) | 이미지의 테이블 추출 방법, 장치, 전자 기기 및 저장 매체 | |
CN108604106B (zh) | 侧信道感知的自动布局和布线 | |
CN111625964B (zh) | 基于逻辑关系构建变电站图模方法、系统及设备 | |
CN115879406A (zh) | 集成电路后仿真方法、装置、电子设备及存储介质 | |
CN112631588A (zh) | 文件生成方法、装置、电子设备和计算机可读介质 | |
CN106815392B (zh) | 一种厂家端子排智能读取方法 | |
CN103246503A (zh) | 一种企业管理软件的应用开发架构 | |
CN115221831B (zh) | 实现电路版图代码化半自动布局的方法及装置 | |
CN116341481A (zh) | 一种时钟文件的确认方法、装置、电子设备及存储介质 | |
CN111753238A (zh) | 数据映射方法、装置和电子设备 | |
CN110515604A (zh) | 验证环境的可执行程序文件的获取方法及装置 | |
CN114548028B (zh) | 进行低功耗设计的方法、电子设备及存储介质 | |
CN106294905A (zh) | 印刷电路板布线系统及方法 | |
CN115130422B (zh) | 标准单元的自动构建方法及装置、终端和存储介质 | |
CN103164504A (zh) | 一种智能手机精细化图片搜索系统及方法 | |
CN108171567B (zh) | 一种订单转发方法和设备以及计算机存储介质 | |
CN112308678A (zh) | 基于图像识别的价格信息处理方法、装置、设备和介质 | |
CN111966734A (zh) | 结合rpa和ai的电子表格的数据处理方法与电子设备 | |
WO2023173465A1 (zh) | 集成电路的仿真方法及其仿真系统 | |
CN115437327B (zh) | 一种智能化核安全级dcs设计与验证方法、系统及存储介质 | |
US20220139097A1 (en) | Method for determining annotation capability information, related apparatus and computer program product | |
CN117611761B (zh) | 一种用于cad图纸的地图要素绘制方法、系统、设备及介质 | |
CN103164565A (zh) | 一种自动生成天线规则测试向量的方法 | |
US20240134763A1 (en) | System testing method, electronic device, and computer program product |
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 |