CN118153509A - 一种实现fpga的布局布线的方法及装置 - Google Patents
一种实现fpga的布局布线的方法及装置 Download PDFInfo
- Publication number
- CN118153509A CN118153509A CN202410264079.2A CN202410264079A CN118153509A CN 118153509 A CN118153509 A CN 118153509A CN 202410264079 A CN202410264079 A CN 202410264079A CN 118153509 A CN118153509 A CN 118153509A
- Authority
- CN
- China
- Prior art keywords
- resources
- replaced
- resource
- target
- module
- 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 description 28
- 238000013461 design Methods 0.000 claims abstract description 123
- 238000005457 optimization Methods 0.000 claims description 61
- 238000013507 mapping Methods 0.000 claims description 21
- 238000004458 analytical method Methods 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 12
- 238000011161 development Methods 0.000 abstract description 9
- 238000004804 winding Methods 0.000 abstract description 3
- 238000012546 transfer Methods 0.000 description 4
- 101100311330 Schizosaccharomyces pombe (strain 972 / ATCC 24843) uap56 gene Proteins 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 101150018444 sub2 gene Proteins 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition 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
-
- 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/394—Routing
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请公开了一种实现FPGA的布局布线的方法及装置,本申请实施例通过对接收到的布局绕线反馈的设计资源信息、器件资源信息的解析,根据配置信息确定出了设计资源中需要置换的资源并通过目标资源进行了动态置换,实现了优化不利于布局布线的资源的目的,降低了布局布线难度,提高了布局布线成功率,提升了FPGA研发进度。
Description
技术领域
本申请涉及但不限于数字电路设计和集成电路设计技术,尤指一种实现FPGA的布局布线的方法及装置。
背景技术
随着集成电路技术的飞速发展,现场可编程门阵列(FPGA,Field-ProgrammableGate Array)因逻辑资源丰富、集成度高、设计灵活等特点,在物联网、航空航天以及人工智能等领域得到了广泛的应用。
FPGA的设计流程主要包括设计输入、行为综合、布局和布线等流程,而电子设计自动化(EDA,Electronic Design Automation)工具在FPGA设计的不同阶段中扮演着关键的角色,帮助设计工程师完成从概念到实现的整个设计流程。其中,布局布线是极为重要的一个环节,布局布线直接影响到整个电路的质量和性能。但是,随着集成电路规模以及FPGA设计资源量的不断提高,EDA工具在布局布线流程所需的时间也越来越长,布局布线的难度也越来越大,产生布局布线失败的问题,严重制约了FPGA的快速发展。
如何降低布局布线难度,提高布局布线成功率,提升FPGA研发进度是一个亟需解决的技术问题。
发明内容
本申请提供一种实现FPGA的布局布线的方法及装置,能够降低布局布线难度,提高布局布线成功率,提升FPGA研发进度。
本发明实施例提供了一种实现FPGA的布局布线的方法,包括:
根据配置信息解析获得的布局布线的设计资源信息和器件资源信息;
根据配置信息和解析得到的结果,确定待置换资源和置换用的目标资源;
采用置换用的目标资源置换待置换资源。
在一种示例性实例中,所述配置信息包括:待置换资源、待置换资源期望利用率、目标资源、目标资源期望利用率;
从所述设计资源信息中解析得到的结果包括:设计各资源总数信息、待置换资源总数信息、待置换资源所在模块信息;
从所述器件资源信息器件资源信息中解析得到的结果包括:当前器件下各资源总数信息。
在一种示例性实例中,所述确定待置换资源和置换用的目标资源,包括:
根据所述配置信息中的待置换资源期望利用率、待置换资源,以及所述器件资源信息解析出的当前器件下待置换资源总数,计算设计资源中需要置换的待置换资源的总数;根据所述配置信息中的目标资源、目标资源期望利用率,以及所述器件资源信息解析出的当前器件下目标资源总数,确定设计资源中待置换资源对应的目标资源的总数。
在一种示例性实例中,所述采用置换用的目标资源置换待置换资源,包括:
对所述设计资源,采用所述目标资源的总数的所述目标资源置换所述待置换资源的总数的所述待置换资源,对所述待置换资源所在模块进行全局资源优化。
在一种示例性实例中,所述配置信息还包括:优化深度、文件类型信息;
所述采用置换用的目标资源置换待置换资源之前,还包括:
根据所述配置信息中的优化深度判断当前是深度优化还是微优化,如果是深度优化,执行所述采用置换用的目标资源置换待置换资源的步骤;如果是微优化,根据所述设计资源信息中解析出的待置换资源所在模块信息,采用所述置换用的目标资源置换待置换资源。
在一种示例性实例中,所述采用置换用的目标资源置换待置换资源,包括:
对于所述配置信息中的文件类型信息显示为RTL的情况,以预先设置的infer情景表为参考,对设计资源进行全遍历,如果发现该待置换资源所在模块中的语句与infer情景表中的内容相符,则根据所述目标资源添加相应的属性,以实现对所述待置换资源所在模块进行优化;每次置换后与所述目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历,直到遍历结束且均符合预期,输出新的设计;否则,输出原设计;
对于所述配置信息中的文件类型信息显示为网表的情况,以预先设置的原语映射表为参考,对设计资源进行全遍历,如果该待置换资源所在模块中的语句含有需要置换的原语资源,则根据原语映射表进行替换,以实现对所述待置换资源所在模块进行优化,并进行资源整合;每次置换后与所述目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历,直到遍历结束且均符合预期,输出新的网表;否则,输出网表。
在一种示例性实例中,所述根据所述设计资源信息中解析出的待置换资源所在模块信息,采用所述置换用的目标资源置换待置换资源,包括:
对于所述配置信息中的文件类型信息显示为RTL的情况,以预先设置的infer情景表为参考,对设计资源信息中解析出的待置换资源所在模块进行语句遍历,如果发现该指定模块中的语句与infer情景表中的内容相符,则根据目标资源添加相应的属性,以实现对该指定模块进行优化;每次置换后与所述目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历,直到遍历结束且均符合预期,输出新的设计;否则,输出原设计;
对于所述配置信息中的文件类型信息显示为网表的情况,以预先设置的原语映射表为参考,对设计资源信息中解析出的待置换资源所在模块进行语句遍历,如果发现该指定模块中的语句含有需要置换的原语资源,以实现对该指定模块进行优化,并进行资源整合;每次置换后与目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历。直到遍历结束且均符合预期,输出新的网表;否则,输原出网表。
本申请实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项所述实现FPGA的布局布线的方法。
本申请实施例再提供一种计算机设备,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行上述任一项所述实现FPGA的布局布线的方法的步骤。
本申请实施例又提供一种实现FPGA的布局布线的装置,包括:配置模块、解析模块、处理模块,以及控制模块;其中,
配置模块中设置有配置信息,配置信息可以包括但不限于待置换资源、待置换资源期望利用率、目标资源、目标资源期望利用率等;
解析模块,用于根据配置信息解析获得的布局布线的设计资源信息和器件资源信息;
处理模块,用于根据配置信息和解析得到的结果,确定待置换资源和置换用的目标资源;
控制模块,用于采用置换用的目标资源置换待置换资源。
在一种示例性实例中,所述处理模块用于:
根据所述配置信息中的待置换资源期望利用率、待置换资源,以及所述器件资源信息解析出的当前器件下待置换资源总数,计算设计资源中需要置换的待置换资源的总数;根据所述配置信息中的目标资源、目标资源期望利用率,以及所述器件资源信息解析出的当前器件下目标资源总数,确定设计资源中待置换资源对应的目标资源的总数。
在一种示例性实例中,所述控制模块用于:
对设计资源,采用所述目标资源的总数的目标资源置换所述待置换资源的总数的待置换资源,对所述待置换资源所在模块进行全局资源优化。
在一种示例性实例中,所述处理模块还用于:根据所述配置信息中的优化深度判断当前是深度优化还是微优化,如果是深度优化,通知所述控制模块执行深度优化;如果是微优化,通知所述控制模块执行微优化;
所述控制模块用于:接收到所述执行深度优化的通知,对设计资源,采用所述目标资源的总数的目标资源置换所述待置换资源的总数的待置换资源,对所述待置换资源所在模块进行全局资源优化;接收到所述执行微优化的通知,对设计资源信息中解析出的待置换资源所在模块,采用所述目标资源的总数的目标资源置换所述待置换资源的总数的待置换资源,对所述待置换资源所在模块进行局部资源优化。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请实施例中实现FPGA的布局布线的方法的流程示意图;
图2为本申请实施例中实现FPGA的布局布线的装置的组成结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的实施例。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使本申请的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
可以理解,本申请所使用的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个、三个等,除非另有明确具体的限定。
可以理解,以下实施例中的“连接”,如果被连接的电路、模块、单元等相互之间具有电信号或数据的传递,则应理解为“电连接”、“通信连接”等。
在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。同时,在本说明书中使用的术语“和/或”包括相关所列项目的任何及所有组合。
FPGA的布局布线是设计流程中的一个关键步骤,FPGA的布局布线涉及将逻辑元件在FPGA芯片上进行有效放置,并创建适当的物理互连,以确保电路在满足性能和时序要求的同时尽可能小地占用芯片面积。
图1为本申请实施例中实现FPGA的布局布线的方法的流程示意图,如图1所示,可以包括:
步骤100:根据配置信息解析获得的布局布线的设计资源信息和器件资源信息。
在一种示例性实例中,配置信息可以包括但不限于待置换资源、待置换资源期望利用率、目标资源、目标资源期望利用率等。
在一种示例性实例中,设计资源信息是设计中包括的各种资源的信息,比如包括有DSP资源,且包括n个。从设计资源信息中可以解析出设计各资源总数信息、待置换资源总数信息、待置换资源所在模块信息等解析结果;
器件资源信息中包括允许在设计中包括的各种资源的信息,比如允许设计中包括DSP资源,且数量最多为n个。从器件资源信息中可以解析出当前器件下各资源总数信息等解析结果。
步骤101:根据配置信息和解析得到的结果,确定待置换资源和置换用的目标资源。
在一种示例性实例中,配置信息中的待置换资源指的是不利于布局布线的等待被置换的资源。在一种实施例,比如需要将DSP资源置换为logic资源,那么,DSP资源即为待置换资源。
在一种示例性实例中,配置信息中的待置换资源期望利用率用于限制置换后的待置换资源的总数,对于待置换资源总数与当前器件下该资源总数的比值小于或等于待置换资源期望利用率的情况,表明能置换成功;否则,即对于待置换资源总数与当前器件下该资源总数的比值大于待置换资源期望利用率的情况,表明置换失败。在一种实施例中,比如以4K器件为例,如果要将DSP资源置换为logic,假设当前器件下DSP资源总数为4,当前设计中包括4个DSP资源,待置换资源期望利用率为75%,如果需要置换1个DSP,那么,待置换资源期望利用率=(4-1)/4=75%,表示待置换资源能置换成功;如果因目标资源总数的限制无法将DSP资源置换,那么,待置换资源置换失败。
在一种示例性实例中,配置信息中的目标资源指的是用于置换等待被置换的资源的资源。在一种实施例,比如需要将DSP资源置换为logic资源,那么,logic资源即为目标资源。
在一种示例性实例中,配置信息中的目标资源期望利用率用于限制置换后的目标资源的总数,对于目标资源总数与当前器件下该资源总数的比值小于或等于目标资源期望利用率的情况,表明置换成功;否则,对于目标资源总数与当前器件下该资源总数的比值大于目标资源期望利用率的情况,表明置换失败。在一种实施例中,以4K器件为例,如果需要将1个DSP资源(即待置换资源)置换为logic(即目标资源),假设当前器件下logic资源总数为4000,当前设计中logic资源总数为2000,目标资源期望利用率为70%,如果置换1个DSP需要的资源不超过800个logic,那么,目标资源期望利用率=(2000+800)/4000=70%,表示置换成功;如果置换1个DSP需要的资源超过800个logic,那么,无法将DSP资源置换为logic,表示置换失败。
在一种示例性实例中,步骤101中的确定待置换资源和置换用的目标资源,可以包括:
根据配置信息中的待置换资源期望利用率、待置换资源,以及器件资源信息解析出的当前器件下待置换资源总数,计算设计资源中需要置换的待置换资源的总数;根据配置信息中的目标资源、目标资源期望利用率,以及器件资源信息解析出的当前器件下目标资源总数,确定设计资源中待置换资源对应的目标资源的总数。
步骤103:采用置换用的目标资源置换待置换资源。
在一种示例性实例中,步骤103可以包括:对设计资源,采用计算出的目标资源的总数的目标资源置换计算出的待置换资源的总数的待置换资源,对待置换资源所在模块进行全局资源优化。
本申请实施例通过对接收到的布局绕线反馈的设计资源信息、器件资源信息的解析,根据配置信息确定出了设计资源中需要置换的资源并通过目标资源进行了动态置换,实现了优化不利于布局布线的资源的目的,降低了布局布线难度,提高了布局布线成功率,提升了FPGA研发进度。
进一步地,在一种示例性实例中,配置信息还可以进一步包括:优化深度、文件类型信息。
在一种示例性实例中,优化深度可以分为不同深度级别的优化。在一种实施例中,优化深度可以分为深度优化、微优化,其中,深度优化用于对指定模块进行全局资源优化;微优化用于对指定语句或指定模块进行局部资源优化,优化更精准更迅速。
在一种示例性实例中,文件类型可以配置为RTL,和/或网表。其中,文件类型为寄存器传输级别(RTL,Register-Transfer Level)通常指的是硬件描述语言(HDL)中的RTL代码文件。RTL是一种抽象层次,介于高级算法和底层电路实现之间。RTL描述了数字电路中的寄存器传输级别的操作,涉及到数据流和状态转换。文件类型为网表(Netlist)通常是一种在数字电路设计中用于表示电路结构的文件。网表是一个包含逻辑门、触发器、互连等元件以及它们之间连接关系的文本文件。这样的文件通常是由综合工具生成的,综合工具将高级的硬件描述语言(如Verilog或VHDL)翻译成更接近硬件的结构。
在一种示例性实例中,步骤103之前还可以包括:
步骤102:根据配置信息中的优化深度判断当前是深度优化还是微优化,如果是深度优化,执行步骤103;如果是微优化,执行步骤104;
步骤104:根据设计资源信息中解析出的待置换资源所在模块信息,采用置换用的目标资源置换待置换资源。
在一种示例性实例中,步骤104可以包括:对设计资源信息中解析出的待置换资源所在模块,采用计算出的目标资源的总数个目标资源置换计算出的待置换资源的总数个待置换资源,对待置换资源所在模块进行局部资源优化。在一种实施例中,待置换资源所在模块可以是在设计阶段设计人员指定的模块,也可以是已知的信息。
在一种示例性实例中,步骤103可以包括:
对于配置信息中的文件类型信息显示为RTL的情况,以预先设置的infer情景表为参考,对设计资源进行全遍历,如果发现该待置换资源所在模块中的语句与infer情景表中的内容相符,则根据目标资源添加相应的属性,以实现采用计算出的目标资源的总数的目标资源置换计算出的待置换资源的总数的待置换资源,从而对待置换资源所在模块进行优化。每次置换后需与目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历。直到遍历结束且均符合预期,那么,输出新的设计;否则,输出原设计。在一种实施例中,以RTL设计中包括3个文件,待置换资源所在模块为DSP,infer情景表提供的情景包括乘法、乘加、幂运算等infer情景为例,对设计资源进行全遍历可以包括:对3个文件进行逐行匹配这些infer情景,如果匹配成功则进行置换。
在一种实施例中,以RTL设计的置换为例,假设待置换资源对应模块的RTL代码如下:
module top(a,b,c,d,mout);
input[7:0]a,b,c,d;
output[15:0]mout;
wire[15:0]mout1,mout2,mout3,mout4;
assign mout1=a*b+c*c;
assign mout2=a*c+d;
assign mout3=a*d;
assign mout4=b*d+d*d;
assign mout=mout1+mout2+mout3-mout4;
endmodule
本实施例中,待置换资源为1个DSP,目标资源为logic,具体置换过程大致包括:
逐行遍历RTL设计,assign mout1=a*b+c*c符合置换条件进行置换,即该待置换资源所在模块中的语句与infer情景表中的内容相符,判断置换后的logic资源是否超出目标资源期望利用率,如果符合预期即未超出目标资源期望利用率,则表明置换成功,assignmout1=a*b+c*c,添加属性语句,输出新的RTL设计并结束;如果不符合预期即超出目标资源期望利用率,则表明置换失败,继续遍历;
继续遍历RTL设计,assign mout2=a*c+d符合置换条件进行置换,即该待置换资源所在模块中的语句与infer情景表中的内容相符,判断置换后的logic资源是否超出目标资源期望利用率,如果符合预期即未超出目标资源期望利用率,则表明置换成功,assignmout2=a*c+d,添加属性语句,输出新的RTL设计并结束;如果不符合预期即超出目标资源期望利用率,则表明置换失败,继续遍历;
继续遍历RTL设计,assign mout3=a*d符合置换条件进行置换,即该待置换资源所在模块中的语句与infer情景表中的内容相符,判断置换后的logic资源是否超出目标资源期望利用率,如果符合预期即未超出目标资源期望利用率,则表明置换成功,assignmout3=a*d,添加属性语句,输出新的RTL设计并结束;如果不符合预期即超出目标资源期望利用率,则表明置换失败,继续遍历;
继续遍历RTL设计,assign mout4=b*d+d*d符合置换条件进行置换,即该待置换资源所在模块中的语句与infer情景表中的内容相符,判断置换后的logic资源是否超出目标资源期望利用率,如果符合预期即未超出目标资源期望利用率,则表明置换成功,assignmout4=b*d+d*d,添加属性语句,输出新的RTL设计并结束;如果不符合预期即超出目标资源期望利用率,则表明置换失败并结束。
对于配置信息中的文件类型信息显示为网表的情况,以预先设置的原语映射表为参考,对设计资源进行全遍历,如果该待置换资源所在模块中的语句含有需要置换的原语资源,则根据原语映射表进行替换,以实现采用计算出的目标资源的总数的目标资源置换计算出的待置换资源的总数的待置换资源,从而对待置换资源所在模块进行优化,并进行资源整合。每次置换后需与目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历。直到遍历结束且均符合预期,那么,输出新的网表;否则,输出网表。在一种实施例中,以待置换资源所在模块为DSP,原语映射表提供的原语类型包含所有DSP原语(如MULT9X9、MULT18X18等)为例,对设计资源进行全遍历可以包括:根据这些原语的信息进行逐行匹配,如果某行存在该原语的实例化,则表明匹配成功,获取该原语例化的端口与参数信息并进行置换。
在一种实施例中,以网表的置换为例,假设网表代码形式如下:
本实施例中,MULTADDALU18X18,MULT18X18,MULT9X9表示需要置换的DSP原语,在原语映射表中有这些原语的转换方式,原语映射表,具体置换过程大致如下:
逐行遍历网表设计,MULTADDALU18X18 mult1对应例化语句,符合置换条件进行置换,即该待置换资源所在模块中的语句含有需要置换的原语资源,判断置换后的logic资源是否超出目标资源期望利用率,如果符合预期即未超出目标资源期望利用率,则表明置换成功,MULTADDALU18X18mult1置换为RTL形式并添加属性语句,MULTADDALU18X18 mult1优化为logic实现,输出新的网表设计并结束;如果不符合预期即超出目标资源期望利用率,则表明置换失败,继续遍历;
继续遍历网表设计,MULTADDALU18X18 mult2对应例化语句,符合置换条件进行置换,即该待置换资源所在模块中的语句含有需要置换的原语资源,判断置换后的logic资源是否超出目标资源期望利用率,如果符合预期即未超出目标资源期望利用率,则表明置换成功,MULTADDALU18X18mult2置换为RTL形式并添加属性语句,MULTADDALU18X18 mult2优化为logic实现,输出新的网表设计并结束;如果不符合预期即超出目标资源期望利用率,则表明置换失败,继续遍历;
继续遍历网表设计,MULT18X18 mult3对应例化语句,符合置换条件进行置换,即该待置换资源所在模块中的语句含有需要置换的原语资源,判断置换后的logic资源是否超出目标资源期望利用率,如果符合预期即未超出目标资源期望利用率,则表明置换成功,MULT18X18 mult3置换为RTL形式并添加属性语句,MULT18X18 mult3优化为logic实现,输出新的网表设计并结束;如果不符合预期即超出目标资源期望利用率,则表明置换失败,继续遍历;
继续遍历网表设计,MULT9X9 mult4对应例化语句,符合置换条件进行置换,即该待置换资源所在模块中的语句含有需要置换的原语资源,判断置换后的logic资源是否超出目标资源期望利用率,如果符合预期即未超出目标资源期望利用率,则表明置换成功,MULT9X9 mult4置换为RTL形式并添加属性语句,MULT9X9 mult4优化未logic实现,输出新的网表设计并结束;如果不符合预期即超出目标资源期望利用率,则表明置换失败并结束。
在一种示例性实例中,资源整合是为了将原语映射表提供的情景推断为目标资源,如待置换资源为DSP,通过原语映射表将该DSP转换为infer形式,然后根据目标资源(如logic)类型,配置相应的属性约束进行优化,进而将待置换资源(DSP)转换为目标资源(logic)。
在一种实施例中,infer情景表用于存储资源置换所需原语的infer情景,根据置换资源匹配出一些infer情景,使用这些infer情景与设计中的语句进行匹配遍历。在一种实施例中,infer情景表中原语资源与infer情景是一对多的关系,以DSP资源为例来说明infer情景表与资源的对应形式,infer情景表与DSP资源对应的情景包含乘法、乘加、幂运算等infer情景;若需要置换的资源为DSP资源,则在遍历语句时,会对这些infer情景信息进行筛选,如果符合要求(即为DSP资源对应的情景),则动态添加属性约束进行置换,每次置换后需与目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历。
在一种实施例中,原语映射表用于记录原语infer情景,与infer情景表类似,原语映射表可以根据原语类型以及参数配置反向推导infer情景。以DSP资源为例来说明原语映射表工作原理,DSP资源为MULT类型原语,那么,原语映射表根据原语类型匹配a*b形式的infer情景,并根据参数配置,提供相应的端口与实现。
在一种实施例中,本申请实施例中的端口与参数配置是指网表文件中DSP原语实例化的端口与参数,以MULT9X9实例化为例说明如下:
其中,DSP(即MULT9X9原语)的端口分别为DOUT、SOA、SOB、A、B、SIA、SIB、ASEL、BSEL、CLK、CE、RESET,通过遍历分析,上述端口仅输入端口A、输入端口B与输出端口DOUT有信号连接,其中输入端口A、输入端口B对应的信号分别为8位宽的数据a、数据b,输出端口DOUT对应16位宽的数据mout,可以得出,RTL设计有两个8位宽的输入即数据a、数据b;一个16位宽的输出即数据mout。DSP(即MULT9X9原语)的参数为AREG、ASIGN_REG、BREG、BSIGN_REG、MULT_RESET_MODE、OUT_REG、PIPE_REG、SOA_REG,通过分析上述参数输出、输入都不经过寄存器,复位方式为同步。根据端口与参数的信息可以推断RTL设计如下:
module top(a,b,mout);
input[7:0]a,b;
output[15:0]mout;
assign mout=a*b;
endmodule
在一种示例性实例中,步骤104可以包括:
对于配置信息中的文件类型信息显示为RTL的情况,以预先设置的infer情景表为参考,对设计资源信息中解析出的待置换资源所在模块进行语句遍历,如果发现该指定模块中的语句与infer情景表中的内容相符,则根据目标资源添加相应的属性,以实现采用计算出的目标资源的总数的目标资源置换计算出的待置换资源的总数的待置换资源,从而对该指定模块进行优化。每次置换后需与目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历。直到遍历结束且均符合预期,那么,输出新的设计;否则,输出原设计。在一种实施例中,比如RTL设计中有5个模块,分别为top,sub1、sub2、sub3、mult1、mult2,假设指定模块为mult1,则会对mult1模块从第一行到最后一行根据infer情景表提供的信息逐行遍历。
对于配置信息中的文件类型信息显示为网表的情况,以预先设置的原语映射表为参考,对设计资源信息中解析出的待置换资源所在模块进行语句遍历,如果发现该指定模块中的语句含有需要置换的原语资源,以实现采用计算出的目标资源的总数个目标资源置换计算出的待置换资源的总数个待置换资源,对该指定模块进行优化,并进行资源整合。每次置换后需与目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历。直到遍历结束且均符合预期,那么,输出新的网表;否则,输出原网表。在一种实施例中,比如网表设计中有5个模块,分别为top,sub1、sub2、sub3、mult1、mult2,假设指定模块为mult1,则会从mult1模块所在行到该模块的endmdule行,根据原语映射表提供的原语进行逐行遍历。比如待置换资源为DSP,原语映射表提供的原语类型为MULT9X9、MULT18X18、MULTADDALU18X18等原语。
本申请实施例提出了一种通过动态资源替换对FPGA布局布线进行辅助优化的方法,通过等价优化、等价替换方式将不利于布局布线的资源进行了置换,从布局布线的源头减少了由于设计资源问题导致的布局布线失败的问题,降低了布局布线难度,提高了布局布线成功率,提升了FPGA研发进度。
本申请还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项所述的实现FPGA的布局布线的方法。
本申请再提供一种计算机设备,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行上述任一项所述的实现FPGA的布局布线的方法的步骤。
图2为本申请实施例中实现FPGA的布局布线的装置的组成结构示意图,如图2所示,可以包括:配置模块、解析模块、处理模块,以及控制模块;其中,
配置模块中设置有配置信息,配置信息可以包括但不限于待置换资源、待置换资源期望利用率、目标资源、目标资源期望利用率等;
解析模块,用于根据配置信息解析获得的布局布线的设计资源信息和器件资源信息;
处理模块,用于根据配置信息和解析得到的结果,确定待置换资源和置换用的目标资源;
控制模块,用于采用置换用的目标资源置换待置换资源。
在一种示例性实例中,处理模块可以用于:
根据配置信息中的待置换资源期望利用率、待置换资源,以及器件资源信息解析出的当前器件下待置换资源总数,计算设计资源中需要置换的待置换资源的总数;根据配置信息中的目标资源、目标资源期望利用率,以及器件资源信息解析出的当前器件下目标资源总数,确定设计资源中待置换资源对应的目标资源的总数。
在一种示例性实例中,控制模块可以用于:
对设计资源,采用计算出的目标资源的总数个目标资源置换计算出的待置换资源的总数个待置换资源,对待置换资源所在模块进行全局资源优化。
本申请实施例通过对接收到的布局绕线反馈的设计资源信息、器件资源信息的解析,根据配置信息确定出了设计资源中需要置换的资源并通过目标资源进行了动态置换,实现了优化不利于布局布线的资源的目的,降低了布局布线难度,提高了布局布线成功率,提升了FPGA研发进度。
进一步地,在一种示例性实例中,配置信息还可以进一步包括:优化深度、文件类型信息。
处理模块还用于:根据配置信息中的优化深度判断当前是深度优化还是微优化,如果是深度优化,通知控制模块执行深度优化;如果是微优化,通知控制模块执行微优化;
控制模块可以用于:接收到执行深度优化的通知,对设计资源,采用计算出的目标资源的总数的目标资源置换计算出的待置换资源的总数的待置换资源,对待置换资源所在模块进行全局资源优化;接收到执行微优化的通知,对设计资源信息中解析出的待置换资源所在模块,采用计算出的目标资源的总数的目标资源置换计算出的待置换资源的总数的待置换资源,对待置换资源所在模块进行局部资源优化,其中,待置换资源所在模块是在设计阶段设计人员指定的模块。
在一种示例性实例中,控制模块执行的深度优化可以包括:
对于配置信息中的文件类型信息显示为RTL的情况,以预先设置的infer情景表为参考,对设计资源进行全遍历,如果发现该待置换资源所在模块中的语句与infer情景表中的内容相符,则根据目标资源添加相应的属性,以实现采用计算出的目标资源的总数的目标资源置换计算出的待置换资源的总数的待置换资源,从而对待置换资源所在模块进行优化。每次置换后需与目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历。直到遍历结束且均符合预期,那么,输出新的设计;否则,输出原设计。
对于配置信息中的文件类型信息显示为网表的情况,以预先设置的原语映射表为参考,对设计资源进行全遍历,如果该待置换资源所在模块中的语句含有需要置换的原语资源,则根据原语映射表进行替换,以实现采用计算出的目标资源的总数的目标资源置换计算出的待置换资源的总数的待置换资源,从而对待置换资源所在模块进行优化,并进行资源整合。每次置换后需与目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历。直到遍历结束且均符合预期,那么,输出新的网表;否则,输出网表。
在一种示例性实例中,控制模块执行的微优化可以包括:
对于配置信息中的文件类型信息显示为RTL的情况,以预先设置的infer情景表为参考,对设计资源信息中解析出的待置换资源所在模块进行语句遍历,如果发现该指定模块中的语句与infer情景表中的内容相符,则根据目标资源添加相应的属性,以实现采用计算出的目标资源的总数的目标资源置换计算出的待置换资源的总数的待置换资源,从而对该指定模块进行优化。每次置换后需与目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历。直到遍历结束且均符合预期,那么,输出新的设计;否则,输出原设计。
对于配置信息中的文件类型信息显示为网表的情况,以预先设置的原语映射表为参考,对设计资源信息中解析出的待置换资源所在模块进行语句遍历,如果发现该指定模块中的语句含有需要置换的原语资源,以实现采用计算出的目标资源的总数的目标资源置换计算出的待置换资源的总数的待置换资源,从而对该指定模块进行优化,并进行资源整合。每次置换后需与目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历。直到遍历结束且均符合预期,那么,输出新的网表;否则,输出网表。
本申请实施例提出了一种通过动态资源替换对FPGA布局布线进行辅助优化的方法,通过等价优化、等价替换方式将不利于布局布线的资源进行了置换,从布局布线的源头减少了由于设计资源问题导致的布局布线失败的问题,降低了布局布线难度,提高了布局布线成功率,提升了FPGA研发进度。
虽然本申请所揭露的实施方式如上,但所述的内容仅为便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (13)
1.一种实现FPGA的布局布线的方法,其特征在于,包括:
根据配置信息解析获得的布局布线的设计资源信息和器件资源信息;
根据配置信息和解析得到的结果,确定待置换资源和置换用的目标资源;
采用置换用的目标资源置换待置换资源。
2.根据权利要求1所述的方法,其中,所述配置信息包括:待置换资源、待置换资源期望利用率、目标资源、目标资源期望利用率;
从所述设计资源信息中解析得到的结果包括:设计各资源总数信息、待置换资源总数信息、待置换资源所在模块信息;
从所述器件资源信息器件资源信息中解析得到的结果包括:当前器件下各资源总数信息。
3.根据权利要求2所述的方法,其中,所述确定待置换资源和置换用的目标资源,包括:
根据所述配置信息中的待置换资源期望利用率、待置换资源,以及所述器件资源信息解析出的当前器件下待置换资源总数,计算设计资源中需要置换的待置换资源的总数;根据所述配置信息中的目标资源、目标资源期望利用率,以及所述器件资源信息解析出的当前器件下目标资源总数,确定设计资源中待置换资源对应的目标资源的总数。
4.根据权利要求3所述的方法,其中,所述采用置换用的目标资源置换待置换资源,包括:
对所述设计资源,采用所述目标资源的总数的所述目标资源置换所述待置换资源的总数的所述待置换资源,对所述待置换资源所在模块进行全局资源优化。
5.根据权利要求2所述的方法,所述配置信息还包括:优化深度、文件类型信息;
所述采用置换用的目标资源置换待置换资源之前,还包括:
根据所述配置信息中的优化深度判断当前是深度优化还是微优化,如果是深度优化,执行所述采用置换用的目标资源置换待置换资源的步骤;如果是微优化,根据所述设计资源信息中解析出的待置换资源所在模块信息,采用所述置换用的目标资源置换待置换资源。
6.根据权利要求5所述的方法,其中,所述采用置换用的目标资源置换待置换资源,包括:
对于所述配置信息中的文件类型信息显示为RTL的情况,以预先设置的infer情景表为参考,对设计资源进行全遍历,如果发现该待置换资源所在模块中的语句与infer情景表中的内容相符,则根据所述目标资源添加相应的属性,以实现对所述待置换资源所在模块进行优化;每次置换后与所述目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历,直到遍历结束且均符合预期,输出新的设计;否则,输出原设计;
对于所述配置信息中的文件类型信息显示为网表的情况,以预先设置的原语映射表为参考,对设计资源进行全遍历,如果该待置换资源所在模块中的语句含有需要置换的原语资源,则根据原语映射表进行替换,以实现对所述待置换资源所在模块进行优化,并进行资源整合;每次置换后与所述目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历,直到遍历结束且均符合预期,输出新的网表;否则,输出网表。
7.根据权利要求5所述的方法,其中,所述根据所述设计资源信息中解析出的待置换资源所在模块信息,采用所述置换用的目标资源置换待置换资源,包括:
对于所述配置信息中的文件类型信息显示为RTL的情况,以预先设置的infer情景表为参考,对设计资源信息中解析出的待置换资源所在模块进行语句遍历,如果发现该指定模块中的语句与infer情景表中的内容相符,则根据目标资源添加相应的属性,以实现对该指定模块进行优化;每次置换后与所述目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历,直到遍历结束且均符合预期,输出新的设计;否则,输出原设计;
对于所述配置信息中的文件类型信息显示为网表的情况,以预先设置的原语映射表为参考,对设计资源信息中解析出的待置换资源所在模块进行语句遍历,如果发现该指定模块中的语句含有需要置换的原语资源,以实现对该指定模块进行优化,并进行资源整合;每次置换后与目标资源期望利用率进行比较,如果符合预期,则替换成功,否则,继续遍历,直到遍历结束且均符合预期,输出新的网表;否则,输原出网表。
8.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1-7任一项所述实现FPGA的布局布线的方法。
9.一种计算机设备,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行权利要求1-7任一项所述实现FPGA的布局布线的方法的步骤。
10.一种实现FPGA的布局布线的装置,其特征在于,包括:配置模块、解析模块、处理模块,以及控制模块;其中,
配置模块中设置有配置信息,配置信息可以包括但不限于待置换资源、待置换资源期望利用率、目标资源、目标资源期望利用率等;
解析模块,用于根据配置信息解析获得的布局布线的设计资源信息和器件资源信息;
处理模块,用于根据配置信息和解析得到的结果,确定待置换资源和置换用的目标资源;
控制模块,用于采用置换用的目标资源置换待置换资源。
11.根据权利要求10所述的装置,其中,所述处理模块用于:
根据所述配置信息中的待置换资源期望利用率、待置换资源,以及所述器件资源信息解析出的当前器件下待置换资源总数,计算设计资源中需要置换的待置换资源的总数;根据所述配置信息中的目标资源、目标资源期望利用率,以及所述器件资源信息解析出的当前器件下目标资源总数,确定设计资源中待置换资源对应的目标资源的总数。
12.根据权利要求11所述的装置,其中,所述控制模块用于:
对设计资源,采用所述目标资源的总数的目标资源置换所述待置换资源的总数的待置换资源,对所述待置换资源所在模块进行全局资源优化。
13.根据权利要求11所述的装置,所述处理模块还用于:根据所述配置信息中的优化深度判断当前是深度优化还是微优化,如果是深度优化,通知所述控制模块执行深度优化;如果是微优化,通知所述控制模块执行微优化;
所述控制模块用于:接收到所述执行深度优化的通知,对设计资源,采用所述目标资源的总数的目标资源置换所述待置换资源的总数的待置换资源,对所述待置换资源所在模块进行全局资源优化;接收到所述执行微优化的通知,对设计资源信息中解析出的待置换资源所在模块,采用所述目标资源的总数的目标资源置换所述待置换资源的总数的待置换资源,对所述待置换资源所在模块进行局部资源优化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410264079.2A CN118153509A (zh) | 2024-03-07 | 2024-03-07 | 一种实现fpga的布局布线的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410264079.2A CN118153509A (zh) | 2024-03-07 | 2024-03-07 | 一种实现fpga的布局布线的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118153509A true CN118153509A (zh) | 2024-06-07 |
Family
ID=91293113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410264079.2A Pending CN118153509A (zh) | 2024-03-07 | 2024-03-07 | 一种实现fpga的布局布线的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118153509A (zh) |
-
2024
- 2024-03-07 CN CN202410264079.2A patent/CN118153509A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5737234A (en) | Method of optimizing resource allocation starting from a high level block diagram | |
US8719752B1 (en) | Hierarchical crosstalk noise analysis model generation | |
US20100251196A1 (en) | Method and System for Designing a Structural Level Description of an Electronic Circuit | |
JP2009517764A (ja) | 階層的soc設計でマージするタイミング規制 | |
CN113255258B (zh) | 逻辑综合方法、装置、电子设备及存储介质 | |
US6484292B1 (en) | Incremental logic synthesis system for revisions of logic circuit designs | |
US6526561B2 (en) | Database for designing integrated circuit device, and method for designing integrated circuit device | |
US8281269B2 (en) | Method of semiconductor integrated circuit device and program | |
JP4495865B2 (ja) | 業者間アプリケーションサービスプロバイダ | |
US7496869B1 (en) | Method and apparatus for implementing a program language description of a circuit design for an integrated circuit | |
CN117131834A (zh) | 芯片设计重组方法、电子设备和介质 | |
US6546542B2 (en) | Parameterized designing method of data driven information processor employing self-timed pipeline control | |
JPH06274568A (ja) | 階層図形データの展開方法 | |
JP2004102703A (ja) | レジスタ転送レベル設計支援装置 | |
US8904318B1 (en) | Method and apparatus for performing optimization using don't care states | |
US8782587B2 (en) | Systems and methods for generating a higher level description of a circuit design based on connectivity strengths | |
CN118153509A (zh) | 一种实现fpga的布局布线的方法及装置 | |
JP2002366597A (ja) | Fpga設計システムおよびfpga設計プログラム | |
CN117131824A (zh) | 自动生成芯片设计rtl代码的方法、电子设备和介质 | |
US6516453B1 (en) | Method for timing analysis during automatic scheduling of operations in the high-level synthesis of digital systems | |
US6877140B1 (en) | Method and system for generating a schematic representing bus structures | |
US7191412B1 (en) | Method and apparatus for processing a circuit description for logic simulation | |
CN118394176B (zh) | 一种基于Python的时钟网络自动生成的方法和装置 | |
CN118070724B (zh) | Fpga延时优化方法、装置、计算机设备及存储介质 | |
US9424040B2 (en) | LSI and LSI manufacturing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |