CN106528921B - 一种fpga芯片布局中实现区域约束的方法 - Google Patents
一种fpga芯片布局中实现区域约束的方法 Download PDFInfo
- Publication number
- CN106528921B CN106528921B CN201610856186.XA CN201610856186A CN106528921B CN 106528921 B CN106528921 B CN 106528921B CN 201610856186 A CN201610856186 A CN 201610856186A CN 106528921 B CN106528921 B CN 106528921B
- Authority
- CN
- China
- Prior art keywords
- constraint
- constrained
- area
- layout
- instances
- 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
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/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/18—Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明实施例涉及一种FPGA芯片布局中实现区域约束的方法,包括:获取包括多个实例的网表、约束文件;根据约束文件创建约束区域,并将多个实例中受约束的实例置于对应的约束区域,以及创建全局区域,并将多个实例中不受约束的实例置于全局区域;当约束区域不存在约束错误时,进行芯片初始布局,为每个实例分配初始位置;通过布局算法移动多个实例,而后在当受约束的实例被移出对应的约束区域时,将受约束的实例移入对应的约束区域;判断芯片布局是否满足布局结束条件,若满足,则结束芯片布局。本发明在不增加布局算法的时间复杂度的情况下,实现区域约束的功能,保证了芯片布局在无约束、单个约束、多个约束等情况下布局功能的实现。
Description
技术领域
本发明涉及微电子领域中的集成电路设计技术领域,尤其涉及一种FPGA芯片布局中实现区域约束的方法。
背景技术
现场可编程门阵列(Field Programmable Gate Array,FPGA),它是作为专用集成电路(Application Specific Integrated Circuit,ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。适用于逻辑控制、信号处理、图像处理等多种领域,重要性不言而喻。
FPGA的使用离不开电子设计自动化(Electronic Design Automation,EDA)工具的配合,包括设计输入、调试、功能仿真、综合、布局布线等流程;其中,FPGA布局是将电路网表中的实例(instance)配置到FPGA结构中逻辑模块的过程,布局是自动化的过程。但在实际应用中,用户往往需要以物理约束等方式参与布局过程,比如将部分实例约束到FPGA结构中某些特定位置或特定区域中。因此,如何在FPGA布局中实现区域约束就显得尤为重要。
发明内容
本发明实施例提供了一种FPGA芯片布局中实现区域约束的方法,该方法包括:获取包括多个实例的网表,并获取约束文件;根据所述约束文件创建至少一个约束区域,并将所述多个实例中受约束的实例置于对应的约束区域,以及创建全局区域,并将所述多个实例中不受约束的实例置于所述全局区域;当所述约束区域不存在约束错误时,进行芯片初始布局,为每个所述实例分配初始位置;通过布局算法移动所述多个实例,并在移动完成后判断所述受约束的实例是否被移出对应的约束区域;当所述受约束的实例被移出对应的约束区域时,将所述受约束的实例移入对应的约束区域;判断所述芯片布局是否满足布局结束条件,若满足,则结束芯片布局。
可选地,在上述方法中,当所述约束区域的位置和大小固定时,所述将受约束的实例移入对应的约束区域,包括:直接将不在对应约束区域的受约束的实例移至对应约束区域的边界上。
可选地,在上述方法中,当所述约束区域的位置不固定、大小固定时,所述将受约束的实例移入对应的约束区域,还包括:获取所述约束区域所对应的多个受约束的实例的位置坐标,并根据多个置坐标获得所述多个受约束的实例对应的实际区域和所述实际区域的中心位置;根据所述中心位置确定所述约束区域的位置,并将对应的所述多个受约束的实例按比例投射至所述约束区域。
可选地,在上述方法中,计算所述约束区域所对应的多个受约束的实例的位置坐标的平均值,获得新的位置坐标即为所述中心位置的位置坐标。
可选地,在上述方法中,所述方法还包括:当所示芯片布局不满足所述布局结束条件时,继续布局流程,通过所述布局算法移动所述多个实例。
可选地,在上述方法中,所述布局算法在所述全局区域的数据结构上运行。
可选地,在上述方法中,所述全局区域对应整个芯片的结构。
本发明实施例提供一种FPGA芯片布局中实现区域约束的方法,通过建立约束区域数据结构,将受约束的实例置于对应的约束区域,同时建立全局区域数据结构,将不受约束的实例置于全局区域,通过布局算法移动实例,并通过对约束区域的控制实现了实例的约束,对于芯片布局中无约束、单个约束、多个约束等情况都能实现布局功能,并且不增加布局算法的时间复杂度。
附图说明
图1为本发明实施例所提供的一种FPGA区域及结构示意图;
图2为本发明实施例提供的一种FPGA芯片布局中实现区域约束的方法流程示意图;
图3为本发明实施例提供的移入方式一的移动过程示意图;
图4为本发明实施例提供的移入方式二的移动过程示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明实施例提供一种FPGA芯片布局中实现区域约束的方法,对于需要布局多个实例的芯片,根据约束文件创建对应的约束区域,将受约束的实例置于对应的约束区域中,并创建全局区域,将不受约束的实例置于全局区域中;当约束区域不存在约束错误时,进行芯片初始布局,为每个实例配置初始位置;而后进入布局流程,通过布局算法移动多个实例,并在移动完成后将被移出对应的约束区域的受约束的实例移入对应的约束区域;直至芯片布局满足布局结束条件,否则继续移动实例。
图1为本发明实施例所提供的一种FPGA区域及结构示意图,如图1所示,FPGA结构是由包括多个逻辑模块的逻辑模块阵列构成,区域约束的目标是将电路网表中的实例(instance)约束到FPGA结构中多个逻辑模块中。在布局过程中,FPGA结构中的逻辑模块用位置坐标(x,y)来表示位置信息,如:左下角的逻辑模块的位置坐标为(0,0)。
图2为本发明实施例提供的一种FPGA芯片布局中实现区域约束的方法流程示意图,如图2所示,该方法包括步骤S101-步骤S107,具体地:
步骤S101,获取网表以及约束文件;其中,网表即指在FPGA的设计过程中综合后生成的电路网表文件,该网表包括需要布局在FPGA上的多个实例;约束文件为用户设置,约束文件中对受约束的实例进行了设置,设置了受约束实例所属的约束区域。
步骤S102,根据约束文件创建至少一个约束区域,并将多个实例中受约束的实例置于对应的约束区域中;以及创建全局区域,并将不受约束的实例置于全局区域中。需要说明的是,全局区域对应整个芯片结构。
步骤S103,检查上述区域约束是否存在错误,若存在,则执行步骤S104,否则执行步骤S105.
在上述步骤中,区域约束存在错误即指在全局区域或约束区域存在的不合理约束,如:一个受约束的实例被约束与多个位置(受约束的实例被置于多个约束区域中);受约束的实例被置于错误位置(受约束的实例的类型和约束区域的模块类型不一致,如:IO类型的受约束的实例被放置与RAM模块上);约束区域内的受约束的实例超过该约束区域所能容纳的实例数量,或者约束区域内的受约束的实例超过该约束区域的容量。需要说明的是,以上对不合理约束的举例仅为本发明实施例的几个实施方式,并不限定本发明技术方案。
步骤S104,报错退出,由于检查出区域约束存在错误,因此需退出此次布局。
步骤S105,对芯片进行初始布局,为每个实例分配初始位置;
步骤S106,通过布局算法移动实例,并在移动完成后,执行步骤S107.
具体地,首先经过布局算法的计算获得每个实例的新位置坐标,而后根据新位置坐标将实例移动到对应的新位置上,并在移动完成后。
需要说明的是,布局算法在全局区域的数据结构上运行,以便在布局时,无论有无区域约束都能以同样的流程进行布局算法,完成实例的移动,是整个布局流程不受区域约束的限制。
步骤S107,判断受约束的实例是否被移出对应的约束区域,若是则执行步骤S108,否则执行步骤S109。
需要说明的是,由于基于布局算法的实例移动是全局的,所以受约束的实例存在被移出对应约束区域的可能,因此,需对受约束的实例是否被移出对应的约束区域进行检查判断。
步骤S108,将被移出对应的约束区域的受约束的实例移入对应的约束区域,具体移入方式详见移入方式一和移入方式二。
步骤S109,判断芯片的布局是个满足布局结束条件,若满足则执行步骤S110,否则继续执行步骤S106.
步骤S110,布局结束。
第一种区域约束:
当约束区域的位置固定、大小固定时,如果受约束的实例被移出对应的约束区域,本发明实施例采用移入方式一将受约束的实例移入对应的约束区域;具体地,
图3为本发明实施例提供的移入方式一的移动过程示意图,如图3所示,受约束的实例1在步骤S106的移动过程结束之后,被移出了受约束的实例A所对应的约束区域1,约束区域1的位置及大小固定,则直接将处于位置1的受约束的实例A移至约束区域1的边界位置1’处。此处仅对被移出的一个具体的受约束的实例的移动过程进行了描述,若被移出约束区域的受约束的实例为多个,其移动方式与受约束的实例A的移动方式相同,此处不予赘述。
需要说明的是,在直接移入的方法中将受约束的实例移入对应约束区域的具体位置不仅限于约束区域的边界,可以是约束区域内的随意位置,移至边界仅为本发明实施例提供的一种具体实施方式,并不限定本发明。
第二种区域约束:
当约束区域的位置不固定,但约束区域的大小固定时,如果受约束的实例被移出对应的约束区域,本发明实施例采用移入方式二将受约束的实例移入对应的约束区域;具体地,
图4为本发明实施例提供的移入方式二的移动过程示意图,如图4所示,在经过步骤S106的移动过程后,对应于约束区域2的四个受约束的实例01、02、03、04被移出了约束区域2,且约束区域2的位置不固定、大小固定,则采用移入方式二将四个受约束的实例01、02、03、04移入对应的约束区域2;具体过程为:
第一步,获取四个受约束的实例的当前的位置坐标,即获取受约束的实例01的当前位置坐标为(x1,y1)、获取受约束的实例02的当前位置坐标为(x2,y2)、获取受约束的实例03的当前位置坐标为(x3,y3)、获取受约束的实例04的当前位置坐标为(x4,y4),并计算四个受约束的实例所对应的实际区域。
第二步,计算中心位置(xc,yc),并以中心位置为约束区域2的中心,确定约束区域2的位置。
在本实施例中计算中心位置的所采用的公式为公式(1):
则,根据受约束的实例01、02、03、04的当前位置所获的中心位置的位置坐标为:
xc=(x1+x2+x3+x4)/4,yc=(y1+y2+y3+y4)/4。
第三步,按比例将受约束的实例01、02、03、04投射到约束区域2中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种FPGA芯片布局中实现区域约束的方法,其特征在于,所述方法包括:
用户设置约束文件,所述约束文件中设置了受约束的实例以及受约束的实例的约束区域;其中,所述约束是物理约束;
获取包括多个实例的网表,并获取约束文件;
根据所述约束文件创建至少一个约束区域,并将所述多个实例中受约束的实例置于对应的约束区域,以及创建全局区域,并将所述多个实例中不受约束的实例置于所述全局区域;
当所述约束区域不存在约束错误时,进行芯片初始布局,为每个所述实例分配初始位置;其中,所述约束错误为所述全局区域或所述约束区域存在不合理约束;
通过布局算法移动所述多个实例,并在移动完成后判断所述受约束的实例是否被移出对应的约束区域;所述布局算法在所述全局区域的数据结构上运行;
当所述受约束的实例被移出对应的约束区域时,将所述受约束的实例移入对应的约束区域;其中,当所述约束区域的位置和大小固定时,直接将不在对应约束区域的受约束的实例移至对应约束区域的边界上;当所述约束区域的位置不固定、大小固定时,获取所述约束区域所对应的多个受约束的实例的位置坐标,并根据多个置坐标获得所述多个受约束的实例对应的实际区域和所述实际区域的中心位置,根据所述中心位置确定所述约束区域的位置,并将对应的所述多个受约束的实例按比例投射至所述约束区域;
判断所述芯片布局是否满足布局结束条件,若满足,则结束芯片布局。
2.根据权利要求1所述的方法,其特征在于,计算所述约束区域所对应的多个受约束的实例的位置坐标的平均值,获得新的位置坐标即为所述中心位置的位置坐标。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所示芯片布局不满足所述布局结束条件时,继续布局流程,通过所述布局算法移动所述多个实例。
4.根据权利要求1所述的方法,其特征在于,所述全局区域对应整个芯片的结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610856186.XA CN106528921B (zh) | 2016-09-27 | 2016-09-27 | 一种fpga芯片布局中实现区域约束的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610856186.XA CN106528921B (zh) | 2016-09-27 | 2016-09-27 | 一种fpga芯片布局中实现区域约束的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106528921A CN106528921A (zh) | 2017-03-22 |
CN106528921B true CN106528921B (zh) | 2021-11-02 |
Family
ID=58344421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610856186.XA Active CN106528921B (zh) | 2016-09-27 | 2016-09-27 | 一种fpga芯片布局中实现区域约束的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106528921B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111446238B (zh) * | 2020-03-30 | 2021-04-09 | 安徽省东科半导体有限公司 | 用于优化芯片静电泄放能力的管脚环的自动布局方法 |
CN111985175A (zh) * | 2020-06-28 | 2020-11-24 | 京微齐力(北京)科技有限公司 | 一种现场可编程门阵列芯片设计的分屏布局方法 |
CN111753482B (zh) * | 2020-06-30 | 2022-03-22 | 无锡中微亿芯有限公司 | 一种io自动分配的多裸片结构fpga的布局方法 |
CN114548020B (zh) * | 2022-04-25 | 2022-07-08 | 成都复锦功率半导体技术发展有限公司 | 一种多型号芯片的版图设计方法及其制备的芯片、终端 |
CN114994637B (zh) * | 2022-07-28 | 2022-11-15 | 北京一径科技有限公司 | 可编程逻辑器件配置以及可编程逻辑器件 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436225B (zh) * | 2008-12-11 | 2010-09-15 | 国网电力科学研究院 | 一种动态局部可重构嵌入式数据控制器芯片的实现方法 |
CN102768692B (zh) * | 2011-05-06 | 2015-02-04 | 中国科学院微电子研究所 | 应用于fpga测试的导航布局布线方法 |
WO2016007140A1 (en) * | 2014-07-08 | 2016-01-14 | Intel Corporation | Techniques to achieve area reduction through co-optimizing logic core blocks and memory redundancies |
CN105740518A (zh) * | 2016-01-25 | 2016-07-06 | 深圳市同创国芯电子有限公司 | 一种fpga的资源布局方法及装置 |
-
2016
- 2016-09-27 CN CN201610856186.XA patent/CN106528921B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106528921A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106528921B (zh) | 一种fpga芯片布局中实现区域约束的方法 | |
US9081933B2 (en) | Methods and apparatus for RC extraction | |
CN1996318B (zh) | 用于半导体芯片的宏摆置的方法与多尺寸混合摆置方法 | |
US8769475B2 (en) | Method, system and software for accessing design rules and library of design features while designing semiconductor device layout | |
US9672611B2 (en) | Pattern analysis method of a semiconductor device | |
US8640080B1 (en) | Method and system for visualizing pin access locations | |
WO2020186851A1 (zh) | 光学基准点的选取方法、系统、计算机存储介质及设备 | |
US10275559B2 (en) | Method for legalizing mixed-cell height standard cells of IC | |
TW201712578A (zh) | 參數萃取之方法及其系統 | |
US9874810B2 (en) | Layout decomposition methods and systems | |
US9372954B2 (en) | Semiconductor device design system and method | |
US20100199252A1 (en) | Routability of integrated circuit design without impacting the area | |
JP2006344176A (ja) | 密度を考慮したマクロ配置設計装置、プログラム及び設計方法 | |
US9053289B1 (en) | Method and system for implementing an improved interface for designing electronic layouts | |
US20130290914A1 (en) | Methods and Apparatus for Floorplanning and Routing Co-Design | |
US8326018B2 (en) | Fast pattern matching | |
US10049178B2 (en) | Methodology for pattern density optimization | |
US20130339913A1 (en) | Semi-automated method of FPGA timing closure | |
US9390219B2 (en) | System for and method of semiconductor fault detection | |
US8972910B1 (en) | Routing method | |
US9552453B1 (en) | Integrated circuit with power network aware metal fill | |
US9651621B2 (en) | System for and method of semiconductor fault detection | |
US9454632B1 (en) | Context specific spare cell determination during physical design | |
US10949597B2 (en) | Through-silicon vias in integrated circuit packaging | |
US9218446B1 (en) | Optimization of integrated circuits for a reticle transmission process window using multiple fill cells |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190104 Address after: 901-903, 9th Floor, Satellite Building, 63 Zhichun Road, Haidian District, Beijing Applicant after: Jing Wei Qi Li (Beijing) Technology Co., Ltd. Address before: 100080 Beijing Haidian A62, East of Building No. 27, Haidian Avenue, 4th Floor, A District, Haidian District Applicant before: Beijing deep science and Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |