CN105680848B - 基于区域时钟的优化fpga芯片布局的方法 - Google Patents
基于区域时钟的优化fpga芯片布局的方法 Download PDFInfo
- Publication number
- CN105680848B CN105680848B CN201410664728.4A CN201410664728A CN105680848B CN 105680848 B CN105680848 B CN 105680848B CN 201410664728 A CN201410664728 A CN 201410664728A CN 105680848 B CN105680848 B CN 105680848B
- Authority
- CN
- China
- Prior art keywords
- layout
- register
- macroelement
- clock
- reg
- 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
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及一种基于区域时钟的优化FPGA芯片布局的方法,包括:初始化网表,在所述网表中例化区域时钟缓冲器rbuf和寄存器reg,确定rbuf和reg之间的连接关系;根据所述连接关系,将一个rbuf和所述一个rbuf驱动的多个reg封装为一个宏单元;基于所述宏单元进行全局布局,确定每一个宏单元的布局区域;在所述布局区域内进行局部布局,在每一个所述宏单元内确定每个reg的布局位置。本发明提供的方法,能够将同一区域时钟驱动的寄存器的物理位置设置在一个较小的区域内,实现了FPGA布局的优化,减小后续时钟线的布线长度,提高可布性,降低FPGA芯片的功耗。
Description
技术领域
本发明涉及集成电路技术领域,特别是一种基于区域时钟的优化现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片布局的方法。
背景技术
FPGA是一种具有丰富硬件资源、强大并行处理能力和灵活可重配置能力的逻辑器件。这些特征使得FPGA在数据处理、通信、网络等很多领域得到了越来越多的广泛应用。
FPGA内部的时钟分为多个区域,在这个区域内有特定的时钟能够驱动寄存器(reg)和随机存取存储器(Random Access Memory,RAM)的时钟端。在FPGA中,这些时钟由时钟树的专用的时钟线连接起来。FPGA的全局时钟路径需要专用时钟驱动器--全局时钟缓冲器(Global Clock buffer,GBUF),时钟信号只有经过GBUF之后才可以驱动全局时钟网络。然而全局时钟资源一般是非常有限的,并且由于全局时钟考虑的是较大区域内的时钟延迟,在局部未必能做到最好,在现有的FPGA芯片内部,通常是采用GBUF与区域时钟级联来驱动一个时钟区域或几个特定的模块的。
但是,构成这些模块的reg,实际的物理位置可以散落在FPGA芯片内任意位置的,如果同一个区域时钟驱动的两个reg的物理位置分开很远,或者虽然物理位置很近但是它们各自到时钟驱动端的布线长度相差很多时,会造成时钟信号到达每个reg的延时不同,也就是说在不同的接收端的时钟信号之间存在时钟偏移(skew)。时钟偏移会影响数字集成电路的同步进行,可能会造成两种时序违背:保持时间违背、建立时间违背。保持时间违背是指数据信号在连接到目标寄存器上,未能在有效边缘到来之后保持足够长的时间,会造成数据不能正确地被锁存在目标寄存器中。建立时间违背是指目标寄存器捕获有效时钟信号边缘的时间比数据信号的到达更早,导致时钟信号有效边缘到来之时,数据信号仍未稳定连接到目标寄存器,只能等待再下一次时钟信号有效边缘到来的时候才能做尝试。
发明内容
本发明的目的是针对现有技术的缺陷,提供了一种基于区域时钟的优化FPGA芯片布局的方法,能够将同一区域时钟驱动的寄存器的物理位置设置在一个较小的区域内,实现了FPGA布局的优化,减小后续时钟线的布线长度,提高可布性,降低FPGA芯片的功耗。
本发明实施例提供了一种基于区域时钟的优化FPGA芯片布局的方法,包括:
初始化网表,在所述网表中例化区域时钟缓冲器和寄存器,确定所述区域时钟缓冲器和所述寄存器之间的连接关系;
根据所述连接关系,将一个区域时钟缓冲器和所述一个区域时钟缓冲器驱动的多个寄存器封装为一个宏单元;
基于所述宏单元进行全局布局,确定每一个宏单元的布局区域;
在所述布局区域内进行局部布局,在每一个所述宏单元内确定每个寄存器的布局位置。
优选的,所述FPGA芯片包括多个布局区域,每个所述布局区域包括多个逻辑单元,每个逻辑单元包括多个所述寄存器;所述在所述布局区域内进行局部布局,在每一个所述宏单元内确定每个寄存器的布局位置具体为:
确定一个所述布局区域的中的寄存器的可用位置;
根据每个寄存器的可用位置的位置代价函数,确定所述每个寄存器的布局位置;
其中,所述位置代价函数为:与互连线长度和/或时序松弛度和/或逻辑单元密度相关的函数。
进一步优选的,所述根据每个寄存器的可用位置的位置代价函数,确定所述每个寄存器的布局位置具体为:
将所述每个寄存器的布局依次优先布局在所述位置代价函数最小的所述可用位置上。
优选的,FPGA芯片的时钟信号通过一个所述区域时钟缓冲器驱动所述区域时钟缓冲器连接的一个宏单元内的所有寄存器,使得所述一个宏单元内所有寄存器由相同时钟频率的时钟信号驱动。
本发明实施例提供的基于区域时钟的优化FPGA芯片布局的方法,将每个区域时钟驱动的寄存器打包成一个宏单元,在全局布局时,整体移动宏单元的布局位置,再在局部布局时对宏单元内部的寄存器的进行布局,使得同一区域时钟驱动的寄存器的物理位置设置在一个较小的区域内,实现了FPGA布局的优化,减小后续时钟线的布线长度,提高可布性,降低FPGA芯片的功耗。
附图说明
图1为本发明实施例提供的基于区域时钟的优化FPGA芯片布局的方法的流程图;
图2为本发明实施例提供的基于CME-HR系列FPGA的宏单元结构示意图;
图3为本发明实施例提供的基于CME-M系列FPGA的宏单元结构示意图;
图4为本发明实施例提供的进行全局布局的示意图;
图5为本发明实施例提供的进行局部布局的示意图。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它的实施例,都属于本发明保护的范围。
图1为本发明实施例提供了一种的FPGA芯片的局部布局的优化方法的流程图。如图所示,所述方法包括如下步骤:
步骤110,初始化网表,在所述网表中例化区域时钟缓冲器(rbuf)和寄存器(reg),确定rbuf和reg之间的连接关系;
具体的,在电子线路设计中,网表(net l ist)是用于描述电路元件相互之间连接关系的。利用综合工具将用户设计转换为网表,在网表中例化reg,以及FPGA时钟线网的rbuf。
FPGA芯片的时钟信号通过一个rbuf,驱动该rbuf连接的所有reg,因此在例化过程中也确定了rbuf和reg之间的连接关系。
其中,FPGA芯片中,rbuf可以有多个,每个rbuf可以驱动多个reg。
步骤120,根据所述连接关系,将一个rbuf和所述一个rbuf驱动的多个reg封装为一个宏单元;
具体的,基于rbuf和reg之间的连接关系,对同一rbuf驱动的多个reg以及驱动它们的这个rubf进行打包,‘封装’成一个宏单元(macro)。FPGA芯片的时钟信号通过一个rbuf驱动该rbuf连接的一个宏单元内的所有reg,使得一个宏单元内所有reg由相同时钟频率的时钟信号驱动。
此处的‘封装’并非是物理上的封装,而是指在全局布局过程中将统一buf驱动的多个reg视为一个整体的宏单元进行处理。
对于不同的FPGA架构来说,宏单元的结构可以是不同的。
例如,CME-HR3 FPGA的宏单元结构可以如图2所示。一个rbuf可以驱动4×4的LE阵列中的reg,一个LE中包括4个逻辑包(Logic Parcel,LP)(图中未示出),每个LP包括2个reg。因此,一个rbuf可以驱动的reg总数为4×4×4×2=128个。
又如,CME-M5/M7 FPGA的宏单元结构可以如图3所示,一个rbuf可以驱动2×8的LE阵列中的reg,一个LE中包括4个逻辑包(Logic Parcel,LP)(图中未示出),每个LP包括2个reg。因此,一个rbuf可以驱动的reg总数为2×8×4×2=128个。
在其他的FPGA架构中,一个rbuf可以驱动的reg个数可以更多或更少。
步骤130,基于所述宏单元进行全局布局,确定每一个宏单元的布局区域;
具体的,将宏单元作为一个整体在FPGA中进行布局,以CME-HR3 FPGA为例,全局布局过程可以如图4所示。FPGA芯片包括多个布局区域,每个布局区域包括逻辑单元(LogicElement,LE),每个LE包括多个reg。将宏单元内包括的所有reg作为整体在全局布局中求取最优解,然后确定其布局区域。同时,驱动该宏单元内所有reg的rbuf的位置也被确定下来。
其中,在全局布局过程中要保证宏单元中LE的布局位置满足布局合法化约束条件。
步骤140,在所述布局区域内进行局部布局,在每一个所述宏单元内确定每个reg的布局位置。
具体的,在对宏单元进行全局布局后,在每个布局区域内对宏单元内的reg再进行局部布局。
首先,确定一个布局区域的中的寄存器的可用位置;
具体可以是对布局区域的设计进行设计规则检查(design rule check,DRC),确定reg的放置位置是否合法,将所有DRC检测合法的位置作为寄存器的可用位置。
然后,根据每个寄存器的可用位置的位置代价函数,确定reg的最优布局位置。FPGA中reg的局部布局的示意图可以如图5所示。
其中,位置代价函数为:与互连线长度和/或时序松弛度和/或LE密度相关的函数。
位置代价函数是用于评价FPGA设计的优化程度的一个量化指标,具体可以通过如下公式进行加权计算获得:
C1=α×W1+β×T1+(1-α-β)×D1 (公式1)
其中,C1为一种布局下的位置代价函数、α为互连线长度代价函数的权重、β为时序松弛度代价函数的权重、W1为该布局下的互连线长度代价函数、T1为该布局下的时序松弛度代价函数、D1为该布局下的LE密度代价函数;α≥0,β≥0,并且α+β≤1。
对于reg布局在每个可用位置上,都可以得到一个位置代价函数。
将用户设计中的reg依次优先布局在位置代价函数最小的可用位置上。对每个宏单元都执行同样的过程,由此即可确定在每个布局区域内的每个reg的布局位置。
本发明实施例提供的基于区域时钟的优化FPGA芯片布局的方法,在初始化网表过程中例化rbuf,并确定rbuf与reg之间的连接关系,然后在全局布局时将一个rbuf驱动的所有reg视为一个宏单元进行处理,在全局布局求解最优解的过程中,整体移动宏单元,确定其在全局布局中的布局位置。最后在全局布局给定的区域内寻找每一个reg的最优位置,从而完成从全局布局到局部布局的rbuf驱动的reg的时钟约束的全流程支持。通过应用本发明实施例提供的方法,可以将同一区域时钟驱动的寄存器的物理位置设置在一个较小的区域内,实现了FPGA布局的优化,减小后续时钟线的布线长度,提高可布性,降低FPGA芯片的功耗。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种基于区域时钟的优化FPGA芯片布局的方法,其特征在于,所述方法包括:
初始化网表,在所述网表中例化区域时钟缓冲器和寄存器,通过所述例化过程确定所述区域时钟缓冲器和所述寄存器之间的连接关系;
根据所述连接关系,将一个区域时钟缓冲器和所述一个区域时钟缓冲器驱动的多个寄存器封装为一个宏单元;
基于所述宏单元进行全局布局,确定每一个宏单元的布局区域;
在所述布局区域内进行局部布局,在每一个所述宏单元内确定每个寄存器的布局位置;
所述FPGA芯片包括多个布局区域,每个所述布局区域包括多个逻辑单元,每个逻辑单元包括多个所述寄存器;所述在所述布局区域内进行局部布局,在每一个所述宏单元内确定每个寄存器的布局位置具体为:
确定一个所述布局区域的中的寄存器的可用位置;
根据每个寄存器的可用位置的位置代价函数,确定所述每个寄存器的布局位置;
其中,所述位置代价函数为:与互连线长度和/或时序松弛度和/或逻辑单元密度相关的函数。
2.根据权利要求1所述的方法,其特征在于,所述根据每个寄存器的可用位置的位置代价函数,确定所述每个寄存器的布局位置具体为:
将所述每个寄存器的布局依次优先布局在所述位置代价函数最小的所述可用位置上。
3.根据权利要求1所述的方法,其特征在于,FPGA芯片的时钟信号通过一个所述区域时钟缓冲器驱动所述区域时钟缓冲器连接的一个宏单元内的所有寄存器,使得所述一个宏单元内所有寄存器由相同时钟频率的时钟信号驱动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410664728.4A CN105680848B (zh) | 2014-11-19 | 2014-11-19 | 基于区域时钟的优化fpga芯片布局的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410664728.4A CN105680848B (zh) | 2014-11-19 | 2014-11-19 | 基于区域时钟的优化fpga芯片布局的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105680848A CN105680848A (zh) | 2016-06-15 |
CN105680848B true CN105680848B (zh) | 2018-11-06 |
Family
ID=56944879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410664728.4A Active CN105680848B (zh) | 2014-11-19 | 2014-11-19 | 基于区域时钟的优化fpga芯片布局的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105680848B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110728098B (zh) * | 2018-06-29 | 2023-12-29 | 中车株洲电力机车研究所有限公司 | Fpga重配置分区优化方法及系统 |
CN109753721B (zh) * | 2018-12-29 | 2020-03-10 | 广东高云半导体科技股份有限公司 | Fpga器件布局布线显示方法、装置、设备及存储介质 |
CN113139361A (zh) * | 2020-01-19 | 2021-07-20 | 上海复旦微电子集团股份有限公司 | 一种用于2.5d封装fpga的全局布局方法 |
CN111832241A (zh) * | 2020-07-03 | 2020-10-27 | 京微齐力(北京)科技有限公司 | 一种fpga多区域动态参数时序驱动设计方法 |
CN111930613B (zh) * | 2020-07-14 | 2023-11-28 | 深圳市紫光同创电子有限公司 | 待测芯片的测试用例生成方法、装置、电子设备以及介质 |
CN111931447B (zh) * | 2020-07-22 | 2024-06-18 | 深圳市紫光同创电子有限公司 | Fpga布局方法、装置、电子设备及存储介质 |
CN112257375B (zh) * | 2020-10-26 | 2023-10-10 | 海光信息技术(苏州)有限公司 | 用于集成电路设计的布局调整方法、装置和电子设备 |
CN114722763A (zh) * | 2021-01-06 | 2022-07-08 | 上海复旦微电子集团股份有限公司 | 布局fpga芯片内时钟线网的方法及设备 |
CN112732620B (zh) * | 2021-01-12 | 2022-03-18 | 东科半导体(安徽)股份有限公司 | 基于流水寄存器的物理层逻辑模块的信号中继方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436225A (zh) * | 2008-12-11 | 2009-05-20 | 国网电力科学研究院 | 一种动态局部可重构的嵌入式数据控制器芯片的实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8217679B2 (en) * | 2010-10-07 | 2012-07-10 | Lockheed Martin Corporation | Method and system for determining power measurement inside a field programmable gate array without external components |
-
2014
- 2014-11-19 CN CN201410664728.4A patent/CN105680848B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436225A (zh) * | 2008-12-11 | 2009-05-20 | 国网电力科学研究院 | 一种动态局部可重构的嵌入式数据控制器芯片的实现方法 |
Non-Patent Citations (1)
Title |
---|
全局时钟global clock--怎么设置FPGA的全局时钟资源;佚名;《CSDN》;20110331;第1-2页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105680848A (zh) | 2016-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105680848B (zh) | 基于区域时钟的优化fpga芯片布局的方法 | |
Thonnart et al. | A fully-asynchronous low-power framework for GALS NoC integration | |
US9508615B2 (en) | Clock tree synthesis for low cost pre-bond testing of 3D integrated circuits | |
US7268581B1 (en) | FPGA with time-multiplexed interconnect | |
US9582635B2 (en) | Optimizing IC performance using sequential timing | |
JP6333948B2 (ja) | 二重構造クロックツリー合成(cts) | |
US9912337B2 (en) | Systems and methods for configuring an SOPC without a need to use an external memory | |
CN104685845B (zh) | 使用非同步缓冲器的时钟域边界跨越 | |
CN103730149A (zh) | 一种双端口存储器的读写控制电路 | |
Swapna et al. | Design and analysis of five port router for network on chip | |
CN109690677A (zh) | 用于存储器的时钟整形的设备和方法 | |
US7800404B2 (en) | Field programmable application specific integrated circuit with programmable logic array and method of designing and programming the programmable logic array | |
CN105404728B (zh) | 一种基于fpga芯片多控制信号的布局方法 | |
US7669072B2 (en) | Clock circuitry architecture to improve electro-magnetic compatibility and optimize peak of currents in micro-controller | |
CN104050140B (zh) | 用于混合通道停转或无锁总线架构的方法、设备、系统 | |
CN105760558B (zh) | Fpga芯片中多输入查找表的布局方法 | |
CN104184456B (zh) | 用于io接口的低频多相位差分时钟树型高速低功耗串行器 | |
CN104678815A (zh) | Fpga芯片的接口结构及配置方法 | |
WO2015117524A1 (zh) | 一种时钟树实现方法、系统芯片及计算机存储介质 | |
CN105653748A (zh) | 一种时钟树资源的分配方法和时钟树架构 | |
Semião et al. | Robust solution for synchronous communication among multi clock domains | |
Strauch | Multi-FPGA system with unlimited and self-timed wave-pipelined multiplexed routing | |
US8686755B2 (en) | Double data rate clock gating | |
Schemm et al. | Hardware implementation of the double-tree scan architecture | |
Hill | Architecture and Synthesis for Dynamically Reconfigurable Asynchronous FPGAs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |