CN106528921A - 一种fpga芯片布局中实现区域约束的方法 - Google Patents

一种fpga芯片布局中实现区域约束的方法 Download PDF

Info

Publication number
CN106528921A
CN106528921A CN201610856186.XA CN201610856186A CN106528921A CN 106528921 A CN106528921 A CN 106528921A CN 201610856186 A CN201610856186 A CN 201610856186A CN 106528921 A CN106528921 A CN 106528921A
Authority
CN
China
Prior art keywords
constraint
affined
layout
moved
chip layout
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.)
Granted
Application number
CN201610856186.XA
Other languages
English (en)
Other versions
CN106528921B (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.)
Jingwei Qili Beijing Technology Co ltd
Original Assignee
Beijing Deep Science And 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 Beijing Deep Science And Technology Co Ltd filed Critical Beijing Deep Science And Technology Co Ltd
Priority to CN201610856186.XA priority Critical patent/CN106528921B/zh
Publication of CN106528921A publication Critical patent/CN106528921A/zh
Application granted granted Critical
Publication of CN106528921B publication Critical patent/CN106528921B/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/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/18Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-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芯片布局中实现区域约束的方法
技术领域
本发明涉及微电子领域中的集成电路设计技术领域,尤其涉及一种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 (7)

1.一种FPGA芯片布局中实现区域约束的方法,其特征在于,所述方法包括:
获取包括多个实例的网表,并获取约束文件;
根据所述约束文件创建至少一个约束区域,并将所述多个实例中受约束的实例置于对应的约束区域,以及创建全局区域,并将所述多个实例中不受约束的实例置于所述全局区域;
当所述约束区域不存在约束错误时,进行芯片初始布局,为每个所述实例分配初始位置;
通过布局算法移动所述多个实例,并在移动完成后判断所述受约束的实例是否被移出对应的约束区域;
当所述受约束的实例被移出对应的约束区域时,将所述受约束的实例移入对应的约束区域;
判断所述芯片布局是否满足布局结束条件,若满足,则结束芯片布局。
2.根据权利要求1所述的方法,其特征在于,当所述约束区域的位置和大小固定时,所述将受约束的实例移入对应的约束区域,包括:
直接将不在对应约束区域的受约束的实例移至对应约束区域的边界上。
3.根据权利要求1所述的方法,其特征在于,当所述约束区域的位置不固定、大小固定时,所述将受约束的实例移入对应的约束区域,还包括:
获取所述约束区域所对应的多个受约束的实例的位置坐标,并根据多个置坐标获得所述多个受约束的实例对应的实际区域和所述实际区域的中心位置;
根据所述中心位置确定所述约束区域的位置,并将对应的所述多个受约束的实例按比例投射至所述约束区域。
4.根据权利要求3所述的方法,其特征在于,计算所述约束区域所对应的多个受约束的实例的位置坐标的平均值,获得新的位置坐标即为所述中心位置的位置坐标。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所示芯片布局不满足所述布局结束条件时,继续布局流程,通过所述布局算法移动所述多个实例。
6.根据权利要求1或5所述的方法,其特征在于,所述布局算法在所述全局区域的数据结构上运行。
7.根据权利要求1所述的方法,其特征在于,所述全局区域对应整个芯片的结构。
CN201610856186.XA 2016-09-27 2016-09-27 一种fpga芯片布局中实现区域约束的方法 Active CN106528921B (zh)

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 true CN106528921A (zh) 2017-03-22
CN106528921B 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)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111446238A (zh) * 2020-03-30 2020-07-24 安徽省东科半导体有限公司 用于优化芯片静电泄放能力的管脚环的自动布局方法
CN111753482A (zh) * 2020-06-30 2020-10-09 无锡中微亿芯有限公司 一种io自动分配的多裸片结构fpga的布局方法
CN111985175A (zh) * 2020-06-28 2020-11-24 京微齐力(北京)科技有限公司 一种现场可编程门阵列芯片设计的分屏布局方法
CN114548020A (zh) * 2022-04-25 2022-05-27 成都复锦功率半导体技术发展有限公司 一种多型号芯片的版图设计方法及其制备的芯片、终端
CN114994637A (zh) * 2022-07-28 2022-09-02 北京一径科技有限公司 可编程逻辑器件配置以及可编程逻辑器件

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436225A (zh) * 2008-12-11 2009-05-20 国网电力科学研究院 一种动态局部可重构的嵌入式数据控制器芯片的实现方法
CN102768692A (zh) * 2011-05-06 2012-11-07 中国科学院微电子研究所 应用于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的资源布局方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436225A (zh) * 2008-12-11 2009-05-20 国网电力科学研究院 一种动态局部可重构的嵌入式数据控制器芯片的实现方法
CN102768692A (zh) * 2011-05-06 2012-11-07 中国科学院微电子研究所 应用于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的资源布局方法及装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111446238A (zh) * 2020-03-30 2020-07-24 安徽省东科半导体有限公司 用于优化芯片静电泄放能力的管脚环的自动布局方法
CN111446238B (zh) * 2020-03-30 2021-04-09 安徽省东科半导体有限公司 用于优化芯片静电泄放能力的管脚环的自动布局方法
CN111985175A (zh) * 2020-06-28 2020-11-24 京微齐力(北京)科技有限公司 一种现场可编程门阵列芯片设计的分屏布局方法
CN111985175B (zh) * 2020-06-28 2024-10-18 京微齐力(北京)科技股份有限公司 一种现场可编程门阵列芯片设计的分屏布局方法
CN111753482A (zh) * 2020-06-30 2020-10-09 无锡中微亿芯有限公司 一种io自动分配的多裸片结构fpga的布局方法
CN111753482B (zh) * 2020-06-30 2022-03-22 无锡中微亿芯有限公司 一种io自动分配的多裸片结构fpga的布局方法
CN114548020A (zh) * 2022-04-25 2022-05-27 成都复锦功率半导体技术发展有限公司 一种多型号芯片的版图设计方法及其制备的芯片、终端
CN114548020B (zh) * 2022-04-25 2022-07-08 成都复锦功率半导体技术发展有限公司 一种多型号芯片的版图设计方法及其制备的芯片、终端
CN114994637A (zh) * 2022-07-28 2022-09-02 北京一径科技有限公司 可编程逻辑器件配置以及可编程逻辑器件
CN114994637B (zh) * 2022-07-28 2022-11-15 北京一径科技有限公司 可编程逻辑器件配置以及可编程逻辑器件

Also Published As

Publication number Publication date
CN106528921B (zh) 2021-11-02

Similar Documents

Publication Publication Date Title
CN106528921A (zh) 一种fpga芯片布局中实现区域约束的方法
He et al. Ripple: An effective routability-driven placer by iterative cell movement
US10248751B2 (en) Alternative hierarchical views of a circuit design
CN102169517B (zh) 用以调整集成电路设计的区域和全域图案密度的方法
US5754826A (en) CAD and simulation system for targeting IC designs to multiple fabrication processes
CN103092342B (zh) 移动终端的处理方法及装置
CN103093020B (zh) 访问设计规则和设计特征库的方法和系统
US6378115B1 (en) LSI manufacturing method and recording medium for storing layout software
US20120036491A1 (en) Constraint Programming Based Method for Bus-Aware Macro-Block Pin Placement in a Hierarchical Integrated Circuit Layout
US9780789B2 (en) Apparatus for automatically configured interface and associated methods
US6871336B1 (en) Incremental placement of design objects in integrated circuit design
CN109800534A (zh) Fpga设计电路图生成方法、装置、计算机设备及存储介质
He et al. Ripple: A robust and effective routability-driven placer
US8863062B2 (en) Methods and apparatus for floorplanning and routing co-design
Jiang et al. Integrated test-architecture optimization and thermal-aware test scheduling for 3-D SoCs under pre-bond test-pin-count constraint
WO2006137119A1 (ja) フロアプラン装置,フロアプランプログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
CN107944183A (zh) Fpga顶层网表的创建方法、装置、计算机设备及介质
CN106528923B (zh) 一种芯片全局布局方法
JP2003017388A (ja) ブロックマスク製造方法、ブロックマスク、および、露光装置
US10204203B2 (en) Pattern-based power-and-ground (PG) routing and via creation
CN109992808A (zh) 一种快速生成参数化单元的方法
Brown et al. Experience in designing a large-scale multiprocessor using field-programmable devices and advanced CAD tools
CN105956239A (zh) 一种电路设计中元器件的自动对齐方法及系统
Papa et al. Constructive benchmarking for placement
US6957406B1 (en) Analytical placement methods with minimum preplaced components

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

Effective date of registration: 20190104

Address after: 901-903, 9th Floor, Satellite Building, 63 Zhichun Road, Haidian District, Beijing

Applicant after: JINGWEI QILI (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 SHENWEI TECHNOLOGY CO.,LTD.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 601, Floor 6, Building 5, Yard 8, Kegu 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing, 100176 (Yizhuang Cluster, High-end Industrial Zone, Beijing Pilot Free Trade Zone)

Patentee after: Jingwei Qili (Beijing) Technology Co.,Ltd.

Country or region after: China

Address before: 901-903, 9th Floor, Satellite Building, 63 Zhichun Road, Haidian District, Beijing

Patentee before: JINGWEI QILI (BEIJING) TECHNOLOGY Co.,Ltd.

Country or region before: China

CP03 Change of name, title or address