CN116796678A - 一种基于解析式技术的fpga布局方法 - Google Patents
一种基于解析式技术的fpga布局方法 Download PDFInfo
- Publication number
- CN116796678A CN116796678A CN202310768580.8A CN202310768580A CN116796678A CN 116796678 A CN116796678 A CN 116796678A CN 202310768580 A CN202310768580 A CN 202310768580A CN 116796678 A CN116796678 A CN 116796678A
- Authority
- CN
- China
- Prior art keywords
- layout
- fpga
- logic
- logic units
- logic unit
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000004458 analytical method Methods 0.000 claims abstract description 22
- 238000013507 mapping Methods 0.000 claims abstract description 15
- 238000005457 optimization Methods 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 31
- 238000010008 shearing Methods 0.000 claims description 26
- 238000005520 cutting process Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 14
- 238000005192 partition Methods 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000000605 extraction Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000002922 simulated annealing Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical 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/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/347—Physical level, e.g. placement or routing
-
- 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]
- G06F30/343—Logical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/06—Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种基于解析式技术的FPGA布局方法,首先对综合后的网表文件进行解析,完成对网表文件中所包含的逻辑单元的提取。将逻辑单元的布局问题建模为半周线长的二次优化问题进行求解,得到逻辑单元的初始位置坐标。在此基础上,通过建立源割以及目标割间的映射关系,完成对逻辑单元位置合法化的操作,得到逻辑单元最终的布局位置,最终将布局结果按照特定的格式输出到布局结果文件中。本发明利用解析式方法完成对FPGA逻辑单元的自动布局,能够大幅度提升布局方法的运行效率。
Description
技术领域
本发明涉及一种基于解析式技术的FPGA布局方法,属于集成电路技术领域。
背景技术
现场可编程门阵列(FieldProgrammableGateArray,FPGA)是一种基于查找表和灵活布线技术的可编程逻辑器件,其抽象层次高、开发周期短、且可以随时重新配置实现不同的功能,消除了用户定制专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)漫长的等待周期以及需要承担的巨大的成本风险。凭借其开发周期短、通用性和易用性好的优势,自上世纪80年代出现以来,一直受到广大用户的青睐。FPGA的硬件设计离不开电子设计自动化工具的支持,但随着FPGA规模的不断增大以及片上设计复杂度的不断提升,对FPGA电子设计自动化工具中的布局方法的性能提出了更高的要求。传统的基于模拟退火的FPGA布局方法面临着性能收敛慢、布局耗费时间过长的问题。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了一种基于解析式技术的FPGA布局方法,将从综合后的网表文件中提取出的逻辑单元布局问题建模为半周线长的二次优化问题进行求解,得到逻辑单元的初始位置坐标,随后通过建立源割以及目标割间的映射关系,实现对逻辑单元位置的合法化,能够大幅度缩短布局方法的运行时间。
本发明的技术解决方案是:一种基于解析式技术的FPGA布局方法,包括:
初始化网表文件,提取出网表文件中所包含的目标FPGA器件内部所能够实现的逻辑单元;
对所述逻辑单元,通过求解半周线长的二次优化问题,确定所述逻辑单元的位置坐标;
对所得到的逻辑单元的位置执行合法化操作,得到最终的布局位置;
输出布局结果文件。
进一步地,所述提取出网表文件中所包含的目标FPGA器件内部所能够实现的逻辑单元包括:
初始化网表文件,使用词法分析器对FPGA网表文件进行词法分析,将FPGA网表文件中的字符代码分解为一个个的词块;
对网表文件进行语法分析,确定所述各个词块彼此间的关联关系,提取出网表文件中所包含的FPGA逻辑单元的集合。
进一步地,所述确定所述逻辑单元的位置坐标包括:
将逻辑单元的集合建模为超图H=(V,E),其中,超图的顶点V={v1,v2,…,vn},v1,v2,…,vn分别为所述FPGA逻辑单元集合中所包含的n个逻辑单元,超图的边E={e1,e2,…,em},e1,e2,…,em分别为由所述n个逻辑单元所构成的m个线网;
定义xi和yi分别表示在布局过程中所述逻辑单元vi中心的x方向和y方向的坐标;
使用半周线长为目标函数,建立布局过程的目标函数模型:
其中,W表示半周线长目标函数;
使用加权二次目标函数对所述布局过程的目标函数模型进行近似:
其中,权重值与/>分别表示为/>其中p表示线网e中所包含的逻辑单元顶点的数量;得到布局过程中的线长最小化问题表示:
对布局过程中的线长最小化问题表示进行求解,得到所有逻辑单元的位置坐标。
进一步地,所述对所得到的逻辑单元的位置执行合法化操作包括:
寻找FPGA中被过度使用的区域,所述过度使用区域即该区域内逻辑单元的位置存在重叠关系;
根据过度使用区域划分源割以及目标割;其中,源割与待布局的逻辑单元相对应,目标割与待逻辑单元的布局区域相对应;源割将已布局的逻辑单元切割为两个分区,目标割逻辑单元的布局区域即所述过度使用区域切割为两个子区域;在此过程中,两个目标函数将分别被最小化:每个分区的逻辑单元数量间的差异以及每个子区域利用率间的差异;
采用线性插值的方法在每个子区域内完成每个逻辑单元从其原始位置到合法位置的映射。
进一步地,划分源割包括:根据需要确定需要剪切的方向,即按照x方向或是按照y方向对逻辑单元进行切割;确定剪切方向后,将剪切后一侧的所有的逻辑单元分配给左下子区域,剩余另一侧的所有的逻辑单元分配给右上子区域。
进一步地,划分目标割包括:确定需要剪切的方向,即按照x方向或是y方向对所述过度使用区域进行剪切;确定剪切方向后,完成对该区域的剪切,最终实现对源割与目标割的映射,同时需要满足最小的要求;其中,/>表示源割与目标割形成后两个子区域的利用率。
一种基于解析式技术的FPGA布局系统,包括:
第一模块,用于初始化网表文件,提取出网表文件中所包含的目标FPGA器件内部所能够实现的逻辑单元;
第二模块,对所述逻辑单元,通过求解半周线长的二次优化问题,确定所述逻辑单元的位置坐标;
第三模块,对所得到的逻辑单元的位置执行合法化操作,得到最终的布局位置,输出布局结果文件。
进一步地,所述提取出网表文件中所包含的目标FPGA器件内部所能够实现的逻辑单元包括:
初始化网表文件,使用词法分析器对FPGA网表文件进行词法分析,将FPGA网表文件中的字符代码分解为一个个的词块;
对网表文件进行语法分析,确定所述各个词块彼此间的关联关系,提取出网表文件中所包含的FPGA逻辑单元的集合;
所述确定所述逻辑单元的位置坐标包括:
将逻辑单元的集合建模为超图H=(V,E),其中,超图的顶点V={v1,v2,…,vn},v1,v2,…,vn分别为所述FPGA逻辑单元集合中所包含的n个逻辑单元,超图的边E={e1,e2,…,em},e1,e2,…,em分别为由所述n个逻辑单元所构成的m个线网;
定义xi和yi分别表示在布局过程中所述逻辑单元vi中心的x方向和y方向的坐标;
使用半周线长为目标函数,建立布局过程的目标函数模型:
其中,W表示半周线长目标函数;
使用加权二次目标函数对所述布局过程的目标函数模型进行近似:
其中,权重值与/>分别表示为/>其中p表示线网e中所包含的逻辑单元顶点的数量;得到布局过程中的线长最小化问题表示:
对布局过程中的线长最小化问题表示进行求解,得到所有逻辑单元的位置坐标;
所述对所得到的逻辑单元的位置执行合法化操作包括:
寻找FPGA中被过度使用的区域,所述过度使用区域即该区域内逻辑单元的位置存在重叠关系;
根据过度使用区域划分源割以及目标割;其中,源割与待布局的逻辑单元相对应,目标割与待逻辑单元的布局区域相对应;源割将已布局的逻辑单元切割为两个分区,目标割逻辑单元的布局区域即所述过度使用区域切割为两个子区域;在此过程中,两个目标函数将分别被最小化:每个分区的逻辑单元数量间的差异以及每个子区域利用率间的差异;
采用线性插值的方法在每个子区域内完成每个逻辑单元从其原始位置到合法位置的映射;
划分源割包括:根据需要确定需要剪切的方向,即按照x方向或是按照y方向对逻辑单元进行切割;确定剪切方向后,将剪切后一侧的所有的逻辑单元分配给左下子区域,剩余另一侧的所有的逻辑单元分配给右上子区域;
划分目标割包括:确定需要剪切的方向,即按照x方向或是y方向对所述过度使用区域进行剪切;确定剪切方向后,完成对该区域的剪切,最终实现对源割与目标割的映射,同时需要满足最小的要求;其中,/> 表示源割与目标割形成后两个子区域的利用率。
一种计算机可读存储介质,所述的计算机可读存储介质存储有计算机程序,所述的计算机程序被处理器执行时实现所述一种基于解析式技术的FPGA布局方法的步骤。
一种基于解析式技术的FPGA布局设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述的处理器执行所述的计算机程序时实现所述一种基于解析式技术的FPGA布局方法的步骤。
本发明与现有技术相比的优点在于:
(1)本发明通过在布局阶段集成词法解析器与语法分析器的方式,实现了对网表文件的解析,能够精准的识别出能够在目标FPGA器件内部所能够实现的逻辑单元;
(2)本发明通过建立源割与目标割间的映射关系的方法,能够快速实现逻辑单元位置的合法化操作;
(3)本发明所提出的一种基于解析式的FPGA布局方法与传统的基于模拟退火的FPGA布局方法相比较,能够节省85%以上的布局耗时,极大地提升了FPGA布局方法的运行效率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明执行流程图;
图2是本发明中源割以及目标割构建方法示意图;
图3是本发明中布局结果文件的示意图;
图4是本发明中布局运行时间的曲线示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本申请技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
以下结合说明书附图对本申请实施例所提供的一种基于解析式技术的FPGA布局方法做进一步详细的说明,具体实现方式可以包括(如图1~4所示):
步骤S1,初始化网表文件,对网表文件进行词法解析与语法分析,提取出网表文件中所包含的目标FPGA器件内部所能够实现的逻辑单元;
步骤S2,对所述逻辑单元,通过求解半周线长的二次优化问题,确定所述逻辑单元的位置坐标;
步骤S3,对所得到的逻辑单元的位置执行合法化操作,得到最终的布局位置;
步骤S4,输出布局结果文件。
进一步地,所述步骤S1按如下步骤执行:
步骤S101:初始化网表文件,使用词法分析器对FPGA网表文件进行词法分析,将FPGA网表文件中的字符代码分解为一个个的词块;
步骤S102:对网表文件进行语法分析,确定所述各个词块彼此间的关联关系,从而提取出网表文件中所包含的FPGA逻辑单元的集合。
进一步地,所述步骤S2按如下步骤执行:
步骤S201:将所述步骤S2得到的逻辑单元的集合建模为一个超图H=(V,E),其中,超图的顶点V={v1,v2,…,vn}表示所述FPGA逻辑单元集合中所包含的n个逻辑单元。超图的边E={e1,e2,…,em}表示由所述n个逻辑单元所构成的m个线网。
步骤S202:定义xi和yi分别表示在布局过程中所述逻辑单元vi中心的x方向和y方向的坐标。
步骤S203:使用半周线长为目标函数,对布局过程的目标函数进行建模,具体如公式(1)所示:
步骤S204:由于所述公式(1)不可导,使用加权二次目标函数所述公式(1)进行近似,具体如公式(2)所示:
其中,权重值与/>分别表示为/>其中p表示线网e中所包含的逻辑单元顶点的数量。因此,布局过程中的线长最小化问题便可以表示为:
步骤S205:对公式(3)进行求解,便可以得到所有逻辑单元的位置坐标。
进一步地,在求解出所有逻辑单元初始位置坐标后,由于各逻辑单元的位置可能存在相关重叠,因此需要执行位置合法化才做,以消除不同逻辑单元间的重叠关系,具体执行步骤如下:
步骤S301:寻找FPGA中被过度使用的区域,所述过度使用区域即该区域内逻辑单元的位置存在重叠关系。
步骤S302:所述过度使用区域被找到后,建立两个割,即源割以及目标割。其中,源割与待布局的逻辑单元相对应,目标割与待逻辑单元的布局区域相对应。源割将已布局的逻辑单元切割为两个分区,目标割逻辑单元的布局区域即所述过度使用区域切割为两个子区域。在此过程中,两个目标函数将分别被最小化:(1)每个分区的逻辑单元数量间的差异以及(2)每个子区域利用率间的差异。子区域利用率的定义如公式(4)所示:
其中,Osub-area表示该子区域内实际所容纳的逻辑单元的数量,Csub-area表示该子区域内所能够容纳的逻辑单元数量的上限。
步骤S303:对于源割的建立,首先根据需要确定需要剪切的方向,即按照x方向或是按照y方向对逻辑单元进行切割。在确定剪切方向后,将剪切后一侧的所有的逻辑单元分配给左/下子区域,剩余另一侧的所有的逻辑单元分配给右/上子区域。
步骤S304:对于目标割的建立,同样首先需要确定需要剪切的方向,即按照x方向或是y方向对所述过度使用区域进行剪切。在确定剪切方向后,便可以完成对该区域的剪切,最终实现对源割与目标割的映射,同时需要满足最小的要求。
步骤S305:在完成所述源割以及所述目标割的划分后,接下来采用线性插值的方法在每个子区域内完成每个逻辑单元从其原始位置到合法位置的映射。
进一步地,在求解出网表文件中所包含的所有逻辑单元的位置坐标后,将按照指定的文件格式,将布局结果写入布局结果文件中进行输出。
在本申请实施例所提供的方案中,本发明的思路如图1所示:步骤S1,初始化网表文件,对网表文件进行词法解析与语法分析,提取出网表文件中所包含的目标FPGA器件内部所能够实现的逻辑单元;步骤S2,对所述逻辑单元,通过求解半周线长的二次优化问题,确定所述逻辑单元的位置坐标;步骤S3,对所得到的逻辑单元的位置执行合法化操作,得到最终的布局位置;步骤S4,输出布局结果文件。
进一步地,所述步骤S1按如下步骤执行:
步骤S101:初始化网表文件,使用词法分析器对FPGA网表文件进行词法分析,将FPGA网表文件中的字符代码分解为一个个的词块;
步骤S102:对网表文件进行语法分析,确定所述各个词块彼此间的关联关系,从而提取出网表文件中所包含的FPGA逻辑单元的集合。
进一步地,所述步骤S2按如下步骤执行:
步骤S201:将所述步骤S2得到的逻辑单元的集合建模为一个超图H=(V,E),其中,超图的顶点V={v1,v2,…,vn}表示所述FPGA逻辑单元集合中所包含的n个逻辑单元。超图的边E={e1,e2,…,em}表示由所述n个逻辑单元所构成的m个线网。
步骤S202:定义xi和yi分别表示在布局过程中所述逻辑单元vi中心的x方向和y方向的坐标。
步骤S203:使用半周线长为目标函数,对布局过程的目标函数进行建模,具体如公式(1)所示:
步骤S204:由于所述公式(1)不可导,使用加权二次目标函数所述公式(1)进行近似,具体如公式(2)所示:
其中,权重值与/>分别表示为/>其中p表示线网e中所包含的逻辑单元顶点的数量。因此,布局过程中的线长最小化问题便可以表示为:
步骤S205:对公式(3)进行求解,便可以得到所有逻辑单元的位置坐标。
进一步地,在求解出所有逻辑单元初始位置坐标后,由于各逻辑单元的位置可能存在相关重叠,因此需要执行位置合法化才做,以消除不同逻辑单元间的重叠关系,具体执行步骤如下:
步骤S301:寻找FPGA中被过度使用的区域,所述过度使用区域即该区域内逻辑单元的位置存在重叠关系。
步骤S302:所述过度使用区域被找到后,建立两个割,即源割以及目标割。其中,源割与待布局的逻辑单元相对应,目标割与待逻辑单元的布局区域相对应。源割将已布局的逻辑单元切割为两个分区,目标割逻辑单元的布局区域即所述过度使用区域切割为两个子区域。在此过程中,两个目标函数将分别被最小化:(1)每个分区的逻辑单元数量间的差异以及(2)每个子区域利用率间的差异。子区域利用率的定义如公式(4)所示:
其中,Osub-area表示该子区域内实际所容纳的逻辑单元的数量,Csub-area表示该子区域内所能够容纳的逻辑单元数量的上限。
步骤S303:对于源割的建立,首先根据需要确定需要剪切的方向,即按照x方向或是按照y方向对逻辑单元进行切割。在确定剪切方向后,将剪切后一侧的所有的逻辑单元分配给左/下子区域,剩余另一侧的所有的逻辑单元分配给右/上子区域。
步骤S304:对于目标割的建立,同样首先需要确定需要剪切的方向,即按照x方向或是y方向对所述过度使用区域进行剪切。在确定剪切方向后,便可以完成对该区域的剪切,最终实现对源割与目标割的映射,同时需要满足最小的要求。
所述源割以及目标割的计算方法如图2所示。图中左侧表示待布局的逻辑单元,右侧表示FPGA中逻辑单元的可布局位置。考虑一下两种情况:(1)所述第一割线将源割划分为左右两个部分,左侧部分包含有4个待布局的逻辑单元,右侧包含有5个待布局的逻辑单元。与此同时,所述第一割线将目标割同样划分为两个子区域。但对于右侧的子区域而言,其子区域利用率Usub-area>1,无法满足上述条件。(2)所述第二割线将源割划分为左右两个部分,左侧部分包含有3个待布局的逻辑单元,右侧包含6个待布局的逻辑单元。同理,所述第二割线能够将目标割划分为两个子区域,且两个子区域都能够满足Usub-area<1的条件。因此,所述第二割线是合法的。
步骤S305:在完成所述源割以及所述目标割的划分后,接下来采用线性插值的方法在每个子区域内完成每个逻辑单元从其原始位置到合法位置的映射。
进一步地,在求解出网表文件中所包含的所有逻辑单元的位置坐标后,将按照指定的文件格式,将布局结果写入布局结果文件中进行输出。具体的布局结果文件的示意图如图3所示,分别指出了所指向的FPGA阵列的大小、逻辑单元的名称以及相对应的位置信息。
图4给出了布局运行时间变化的曲线图,其中的测试用例来源于国际上通用的Titans测试用例集,图中可以观察得到,本发明所提出的基于解析式的FPGA的布局方法的运行时间较传统的模拟退火布局方法的运行时间平均缩短了85%,能够大幅度节省FPGA电子设计自动化工具的运行时间。
本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行图1所述的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (10)
1.一种基于解析式技术的FPGA布局方法,其特征在于,包括:
初始化网表文件,提取出网表文件中所包含的目标FPGA器件内部所能够实现的逻辑单元;
对所述逻辑单元,通过求解半周线长的二次优化问题,确定所述逻辑单元的位置坐标;
对所得到的逻辑单元的位置执行合法化操作,得到最终的布局位置;
输出布局结果文件。
2.根据权利要求1所述的一种基于解析式技术的FPGA布局方法,其特征在于,所述提取出网表文件中所包含的目标FPGA器件内部所能够实现的逻辑单元包括:
初始化网表文件,使用词法分析器对FPGA网表文件进行词法分析,将FPGA网表文件中的字符代码分解为一个个的词块;
对网表文件进行语法分析,确定所述各个词块彼此间的关联关系,提取出网表文件中所包含的FPGA逻辑单元的集合。
3.根据权利要求1所述的一种基于解析式技术的FPGA布局方法,其特征在于,所述确定所述逻辑单元的位置坐标包括:
将逻辑单元的集合建模为超图H=(V,E),其中,超图的顶点V={v1,v2,…,vn},v1,v2,…,vn分别为所述FPGA逻辑单元集合中所包含的n个逻辑单元,超图的边E={e1,e2,…,em},e1,e2,…,em分别为由所述n个逻辑单元所构成的m个线网;
定义xi和yi分别表示在布局过程中所述逻辑单元vi中心的x方向和y方向的坐标;
使用半周线长为目标函数,建立布局过程的目标函数模型:
其中,W表示半周线长目标函数;
使用加权二次目标函数对所述布局过程的目标函数模型进行近似:
其中,权重值与/>分别表示为/>其中p表示线网e中所包含的逻辑单元顶点的数量;得到布局过程中的线长最小化问题表示:
对布局过程中的线长最小化问题表示进行求解,得到所有逻辑单元的位置坐标。
4.根据权利要求1所述的一种基于解析式技术的FPGA布局方法,其特征在于,所述对所得到的逻辑单元的位置执行合法化操作包括:
寻找FPGA中被过度使用的区域,所述过度使用区域即该区域内逻辑单元的位置存在重叠关系;
根据过度使用区域划分源割以及目标割;其中,源割与待布局的逻辑单元相对应,目标割与待逻辑单元的布局区域相对应;源割将已布局的逻辑单元切割为两个分区,目标割逻辑单元的布局区域即所述过度使用区域切割为两个子区域;在此过程中,两个目标函数将分别被最小化:每个分区的逻辑单元数量间的差异以及每个子区域利用率间的差异;
采用线性插值的方法在每个子区域内完成每个逻辑单元从其原始位置到合法位置的映射。
5.根据权利要求4所述的一种基于解析式技术的FPGA布局方法,其特征在于,划分源割包括:根据需要确定需要剪切的方向,即按照x方向或是按照y方向对逻辑单元进行切割;确定剪切方向后,将剪切后一侧的所有的逻辑单元分配给左下子区域,剩余另一侧的所有的逻辑单元分配给右上子区域。
6.根据权利要求5所述的一种基于解析式技术的FPGA布局方法,其特征在于,划分目标割包括:确定需要剪切的方向,即按照x方向或是y方向对所述过度使用区域进行剪切;确定剪切方向后,完成对该区域的剪切,最终实现对源割与目标割的映射,同时需要满足最小的要求;其中,/>表示源割与目标割形成后两个子区域的利用率。
7.一种基于解析式技术的FPGA布局系统,其特征在于,包括:
第一模块,用于初始化网表文件,提取出网表文件中所包含的目标FPGA器件内部所能够实现的逻辑单元;
第二模块,对所述逻辑单元,通过求解半周线长的二次优化问题,确定所述逻辑单元的位置坐标;
第三模块,对所得到的逻辑单元的位置执行合法化操作,得到最终的布局位置,输出布局结果文件。
8.根据权利要求7所述的一种基于解析式技术的FPGA布局系统,其特征在于,所述提取出网表文件中所包含的目标FPGA器件内部所能够实现的逻辑单元包括:
初始化网表文件,使用词法分析器对FPGA网表文件进行词法分析,将FPGA网表文件中的字符代码分解为一个个的词块;
对网表文件进行语法分析,确定所述各个词块彼此间的关联关系,提取出网表文件中所包含的FPGA逻辑单元的集合;
所述确定所述逻辑单元的位置坐标包括:
将逻辑单元的集合建模为超图H=(V,E),其中,超图的顶点V={v1,v2,…,vn},v1,v2,…,vn分别为所述FPGA逻辑单元集合中所包含的n个逻辑单元,超图的边E={e1,e2,…,em},e1,e2,…,em分别为由所述n个逻辑单元所构成的m个线网;
定义xi和yi分别表示在布局过程中所述逻辑单元vi中心的x方向和y方向的坐标;
使用半周线长为目标函数,建立布局过程的目标函数模型:
其中,W表示半周线长目标函数;
使用加权二次目标函数对所述布局过程的目标函数模型进行近似:
其中,权重值与/>分别表示为/>其中p表示线网e中所包含的逻辑单元顶点的数量;得到布局过程中的线长最小化问题表示:
对布局过程中的线长最小化问题表示进行求解,得到所有逻辑单元的位置坐标;
所述对所得到的逻辑单元的位置执行合法化操作包括:
寻找FPGA中被过度使用的区域,所述过度使用区域即该区域内逻辑单元的位置存在重叠关系;
根据过度使用区域划分源割以及目标割;其中,源割与待布局的逻辑单元相对应,目标割与待逻辑单元的布局区域相对应;源割将已布局的逻辑单元切割为两个分区,目标割逻辑单元的布局区域即所述过度使用区域切割为两个子区域;在此过程中,两个目标函数将分别被最小化:每个分区的逻辑单元数量间的差异以及每个子区域利用率间的差异;
采用线性插值的方法在每个子区域内完成每个逻辑单元从其原始位置到合法位置的映射;
划分源割包括:根据需要确定需要剪切的方向,即按照x方向或是按照y方向对逻辑单元进行切割;确定剪切方向后,将剪切后一侧的所有的逻辑单元分配给左下子区域,剩余另一侧的所有的逻辑单元分配给右上子区域;
划分目标割包括:确定需要剪切的方向,即按照x方向或是y方向对所述过度使用区域进行剪切;确定剪切方向后,完成对该区域的剪切,最终实现对源割与目标割的映射,同时需要满足最小的要求;其中,/> 表示源割与目标割形成后两个子区域的利用率。
9.一种计算机可读存储介质,所述的计算机可读存储介质存储有计算机程序,其特征在于,所述的计算机程序被处理器执行时实现如权利要求1~权利要求6任一所述方法的步骤。
10.一种基于解析式技术的FPGA布局设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述的处理器执行所述的计算机程序时实现如权利要求1~权利要求6任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310768580.8A CN116796678A (zh) | 2023-06-27 | 2023-06-27 | 一种基于解析式技术的fpga布局方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310768580.8A CN116796678A (zh) | 2023-06-27 | 2023-06-27 | 一种基于解析式技术的fpga布局方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116796678A true CN116796678A (zh) | 2023-09-22 |
Family
ID=88043538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310768580.8A Pending CN116796678A (zh) | 2023-06-27 | 2023-06-27 | 一种基于解析式技术的fpga布局方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116796678A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117151003A (zh) * | 2023-10-27 | 2023-12-01 | 中科亿海微电子科技(苏州)有限公司 | 一种基于时钟域划分的fpga布局方法及装置 |
-
2023
- 2023-06-27 CN CN202310768580.8A patent/CN116796678A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117151003A (zh) * | 2023-10-27 | 2023-12-01 | 中科亿海微电子科技(苏州)有限公司 | 一种基于时钟域划分的fpga布局方法及装置 |
CN117151003B (zh) * | 2023-10-27 | 2024-01-30 | 中科亿海微电子科技(苏州)有限公司 | 一种基于时钟域划分的fpga布局方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7966610B2 (en) | Application of optimization techniques to intermediate representations for code generation | |
JP6267711B2 (ja) | モデル化された依存関係に基づく、レガシーソフトウェアシステムのモダニゼーション | |
US8572540B2 (en) | Method and system for approximate placement in electronic designs | |
CN112541310B (zh) | 逻辑综合控制方法及装置 | |
CN116796678A (zh) | 一种基于解析式技术的fpga布局方法 | |
CN116911227B (zh) | 一种基于硬件的逻辑映射方法、装置、设备及存储介质 | |
US7027071B2 (en) | Selecting elements from an electronic document | |
WO2021031137A1 (zh) | 人工智能应用开发系统、计算机设备及存储介质 | |
CN114091589B (zh) | 模型训练方法、装置、电子设备及介质 | |
CN105404611A (zh) | 一种基于矩阵模型的多计算引擎的自动选择方法 | |
CN111752958A (zh) | 智能关联标签方法、装置、计算机设备及存储介质 | |
CN110837707B (zh) | 一种有限元分析系统、方法、计算机设备及存储介质 | |
US10310823B2 (en) | Program development support system and program development support software | |
CN114154095A (zh) | 页面图片生成方法、装置、设备和存储介质 | |
CN107256281B (zh) | 一种基于裁剪法的fpga可重构资源非矩形布局方法 | |
CN111563946A (zh) | 一种对虚拟模型蒙皮的方法及装置、存储介质及电子设备 | |
JP2007018313A (ja) | 回路設計プログラム、回路設計装置、回路設計方法 | |
CN109675314B (zh) | 虚拟模型优化方法与装置、电子设备、存储介质 | |
CN110110280A (zh) | 对坐标的曲线积分计算方法、装置、设备及存储介质 | |
CN115659900B (zh) | 用于呈现集成电路版图的方法、设备和介质 | |
CN111459849B (zh) | 一种内存的设置方法及装置、电子设备、存储介质 | |
CN112989752B (zh) | 一种电源方案的仿真方法、仿真装置、终端设备及介质 | |
JP4219706B2 (ja) | システムlsi設計支援装置及び設計支援方法 | |
CN114416088A (zh) | 移动工具页面生成方法、装置、计算机设备及存储介质 | |
CN116956840A (zh) | 一种工程造价清单的项目特征描述填写方法和装置 |
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 |