CN111079362A - 一种利用层次化信息的并行综合算法 - Google Patents
一种利用层次化信息的并行综合算法 Download PDFInfo
- Publication number
- CN111079362A CN111079362A CN201911307254.7A CN201911307254A CN111079362A CN 111079362 A CN111079362 A CN 111079362A CN 201911307254 A CN201911307254 A CN 201911307254A CN 111079362 A CN111079362 A CN 111079362A
- Authority
- CN
- China
- Prior art keywords
- circuit
- netlist
- user
- sub
- circuits
- 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
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明的实施例提供一种FPGA芯片设计的综合方法,包括:获得用户网表描述的电路中用户模块的层次结构,再从用户网表描述的电路中抽取层次最低的用户模块,将其中包含门级单元及其连接进行组合,得到基本单元,用基本单元构建与用户网表描述的电路功能一样的重绘电路,对重绘电路进行划分,得到若干子电路,在所有子电路上执行并行综合计算,将在所有子电路执行的并行计算结果合并,得到综合后网表文件。该方法利用用户模块的层次化信息,和电路重绘,缩小了电路的规模,提高了网表划分的速度;划分时更容易看到全局,降低了陷入局部最优的可能性。
Description
技术领域
本发明涉及现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)芯片的设计技术领域,更具体地,一种利用层次化信息的并行综合算法。
背景技术
FPGA是由许多的逻辑单元构成的逻辑器件,其中逻辑单元包括门、查找表、和触发器,它具有丰富硬件资源、强大并行处理能力和灵活可重配置能力,在数据处理、通信、网络等很多领域得到了越来越多的广泛应用。
在FPGA芯片的设计流程通常包括:设计输入、调试、功能仿真、综合、布局布线、时序仿真、配置下载等步骤。其中,综合过程就是将设计者在EDA平台上编输入的HDL文本、原理图或状态图形描述,依给定的硬件结构组件和约束控制条件进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述网表文件。
现有的综合并行算法是先通过划分将门级电路划分成几个子电路,然后对子电路并行地进行综合。其缺点集中在两个方面:1)划分过程本身要占用时间,对超大规模的门级电路进行划分占用时间较长;2)由于是对划分为子电路后进行综合,容易陷入局部最优。
发明内容
本发明目的在于提供一种利用层次化信息来进行划分的方法,以提高并行综合算法的效率。
本发明为解决上述技术问题采用的技术方案为,一种FPGA设计的综合方法,所述方法包括:
获得用户网表;
根据用户网表描述的电路,取得其中各个用户模块的层次结构;
根据所述层次结构,从用户网表描述的电路中抽取层次最低的用户模块,将其中包含的门(gate)级电路元件及其连接进行组合,得到基本单元;
根据用户网表描述的电路,以所述基本单元作为最小构建单元,构建与用户网表描述的电路功能一样的重绘电路;
对所述重绘电路进行划分,得到若干子电路;
在各个子电路上并行执行综合计算。
优选地,所述的方法,还包括,将在各个子电路并行执行的综合计算的计算结果进行合并,得到综合后网表文件。
具体地,所述综合后网表文件,其中的基本电路单元包括查找表、寄存器。
优选地,构建与用户网表描述的电路功能一样的重绘电路包括,以基本单元为最小构建单元,以基本单元之间的连接关系为边,用所述基本单元和所述边,构建出新的电路图;基本单元的权重根据基本单元包含的门(gate)级元件的个数设置,基本单元之间的边的权重根据是否属于同一个上级用户模块设置。
具体地,对所述重绘电路进行划分包括,在重绘电路上执行划分算法,得到包含的基本单元权重之和大体相等的几个子电路。
具体地,对所述重绘电路进行划分包括,根据两个基本单元间的边的权重,调整它们被划分到同一个子电路的可能性。
优选地,所述用户网表是verilog/vhdl语言描述的FPGA设计文件。
本发明实施例提供的一种利用层次化信息的并行综合算法,具有以下的优点:
1)利用了用户模块的层次化信息,和电路重绘,缩小了电路的规模,提高了网表划分的速度。
2)用户模块的层次化信息引入后,划分时更容易看到全局,降低了陷入局部最优的可能性。
附图说明
图1为本发明实施例提供的一种利用层次化信息的并行综合算法的流程图;
图2为本发明实施例提供的用户网表层次图;
图3为本发明实施例提供的重绘电路的网表层次图;
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它的实施例,都属于本发明保护的范围。
综合(Synthesize),是FPGA设计的一个步骤,是将硬件语言或原理图等设计输入翻译成由基本逻辑单元组成的逻辑连接(网表)。综合过程的计算量比较大,而若进行综合计算的电路规模变大,其需要的计算能力的扩大是呈线性的,所以在进行综合计算时,利用多核CPU的并行算法就成为提高计算效率的可行方法,其提高的效率倍数大致同于增加的调用计算核心数。具体的,将待计算电路划分为体量大致相等的几个子电路,再利用多核计算机的并行计算能力对各子电路进行并行计算,最后将计算结果再合并为整个电路。经过测量,这种方法的效率大致为略小于N·E,N为调用的计算核心数,E为不使用并行计算方法的效率,也就是仅使用一个计算核心进行整个电路的综合计算的效率。
现有的综合并行算法中,先通过划分将用户网表的门级电路图划分成几个子电路,然后对子电路并行地进行综合。这样的计算规模较大,且因为是划分后再分别进行综合计算,得到的计算效果容易发生是局部最优,而不是全局最优的问题。本发明的方法,提出了在划分用户网表电路前,先根据网表中的用户模块的层级结构,提取最低级别模块,以最低级别的模块为构造单元,重新构建电路图,再根据新构建电路进行划分,由于构造单元变大,所以整个电路图的规模降低了,自然地,也就降低了后续划分和综合的计算量,同时降低了计算陷入局部最优的可能性。
图1为本发明实施例提供了一种利用层次化信息的并行综合算法的流程图。如图所示,所述方法包括如下步骤:
步骤110,获得用户网表,取得用户网表中各个用户模块的层次结构;
具体的,网表(netlist)通常传递的是电路连接方面的信息,例如模块的实例、线网以及相关属性,如果需要包含更多的硬件信息,通常会使用硬件描述语言,例如Verilog、VHDL或其他的专用语言来进行电路的描述、验证和仿真。
用户模块,指的是设计电路中,由用户根据业务功能而划分出的模块。一个用户设计由于其内部功能需要划分,一般包含若干个功能模块,而每个功能模块中根据子功能的划分,又可以进一步包含若干子模块。图2为本发明一个实施例提供的用户网表层次图,如图所示,最底层以上各层包含的都被定义为用户模块,最底一层的为门级元件层。
在一个本发明的一个实施例中,用户网表采用的是verilog/vhdl语言描述的FPGA设计文件。
在另一个实施例中,用户网表为门级网表,描述的电路元件基本是门(gate)或与此同级别的元件。
步骤120,基于上述步骤110中所得层次结构,从用户网表中抽取层次最低的用户模块,将其中包含的门(gate)级电路元件及其连接进行组合,得到基本单元。
在一个实施例中,用户网表中描述的电路为门级电路,所谓门级电路,是由与,或,非门、RAM、触发器等基本逻辑单元组成的逻辑电路。
步骤130,根据用户网表描述的电路,使用步骤120所得到的基本单元作为最小构建单元,构建与用户网表描述的电路功能一样的重绘电路;
新构建的电路图,在功能和设计结构上和原有的用户网表电路图,完全等价,只是最小构成单元变大,整个设计电路图的规模因此而降低。如图3所示。
在一个实施例中,以基本单元为最小构建单元,以基本单元之间的连接关系为边,用所述基本单元和所述边,构建出新的电路图;
在另一个实施例中,新构建的电路图标注了基本单元的权重、以及基本单元之间连接(边)的权重,基本单元的权重根据基本单元包含的门(gate)级元件的个数设置,基本单元之间的边的权重根据是否属于同一个上级用户模块设置。
步骤140,对重绘电路进行划分,得到若干子电路;
基于基本单元的重绘电路比之原有的用户网表门级电路在在电路规模上变小,因此其划分复杂度变小,计算量亦变小,同时划分后进行综合而陷入局部最优可能性亦变小。
在一个实施例中,在步骤130得到的重绘电路上执行划分算法,得到包含的基本单元权重之和大体相等的几个子电路。
在另一个实施例中,根据两个基本单元间的边的权重,调整它们被划分到同一个子电路的可能性,所述连接的权重越大,所述可能性越大。
步骤150,在步骤140得到的所有子电路上执行并行综合计算;
经过测量,使用并行计算的效率大致为略小于N·E,N为调用的计算核心数,E为不使用并行计算的效率,也就是仅使用一个计算核心进行不进行划分的整个电路的综合计算的效率。
步骤160,将在所有子电路执行的并行综合计算的计算结果,进行合并,得到综合后网表文件。
在一个实施例中,输出的综合后网表文件,电路单元以查找表、寄存器为主。
本发明实施例提供的一种利用层次化信息的并行综合算法,获得用户网表描述的电路中用户模块的层次结构,从用户网表描述的电路中抽取层次最低的用户模块,将其中包含门级单元及其连接进行组合,得到基本单元,用基本单元构建与用户网表描述的电路功能一样的重绘电路,对重绘电路进行划分,得到若干子电路,在所有子电路上执行并行综合计算,将在所有子电路执行的并行计算结果合并,得到综合后网表文件。通过应用本发明实施例提供的方法,可以利用用户模块的层次化信息,和电路重绘,缩小了电路的规模,提高了网表划分的速度;划分时更容易看到全局,降低了陷入局部最优的可能性。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种FPGA设计的综合方法,其特征在于,所述方法包括:
获得用户网表;
根据用户网表描述的电路,取得其中各个用户模块的层次结构;
根据所述层次结构,从用户网表描述的电路中抽取层次最低的用户模块,将其中包含的门(gate)级电路元件及其连接进行组合,得到基本单元;
根据用户网表描述的电路,以所述基本单元作为最小构建单元,构建与用户网表描述的电路功能一样的重绘电路;
对所述重绘电路进行划分,得到若干子电路;
在各个子电路上并行执行综合计算。
2.根据权利要求1所述的方法,还包括,将在各个子电路并行执行的综合计算的计算结果进行合并,得到综合后网表文件。
3.根据权利要求2所述的方法,其特征在于,所述综合后网表文件,其中的基本电路单元包括查找表、寄存器。
4.根据权利要求1所述的方法,其特征在于,构建与用户网表描述的电路功能一样的重绘电路包括,以基本单元为最小构建单元,以基本单元之间的连接关系为边,用所述基本单元和所述边,构建出新的电路图;基本单元的权重根据基本单元包含的门(gate)级元件的个数设置,基本单元之间的边的权重根据是否属于同一个上级用户模块设置。
5.根据权利要求4所述的方法,其特征在于,对所述重绘电路进行划分包括,在重绘电路上执行划分算法,得到包含的基本单元权重之和大体相等的几个子电路。
6.根据权利要求4所述的方法,其特征在于,对所述重绘电路进行划分包括,根据两个基本单元间的边的权重,调整它们被划分到同一个子电路的可能性。
7.根据权利要求1所述的方法,其特征在于,所述用户网表是verilog/vhdl语言描述的FPGA设计文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911307254.7A CN111079362A (zh) | 2019-12-18 | 2019-12-18 | 一种利用层次化信息的并行综合算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911307254.7A CN111079362A (zh) | 2019-12-18 | 2019-12-18 | 一种利用层次化信息的并行综合算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111079362A true CN111079362A (zh) | 2020-04-28 |
Family
ID=70315500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911307254.7A Pending CN111079362A (zh) | 2019-12-18 | 2019-12-18 | 一种利用层次化信息的并行综合算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111079362A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112257365A (zh) * | 2020-12-08 | 2021-01-22 | 南京集成电路设计服务产业创新中心有限公司 | 一种基于几何信息并行建立时序图的方法 |
CN112580286A (zh) * | 2020-12-18 | 2021-03-30 | 广东高云半导体科技股份有限公司 | 多线程综合方法及装置 |
CN113408225A (zh) * | 2021-05-19 | 2021-09-17 | 无锡中微亿芯有限公司 | 一种提升运行速度的fpga芯片设计方法 |
CN113608491A (zh) * | 2021-07-16 | 2021-11-05 | 广东财经大学 | 一种编译延时逻辑原理图到字节码方法 |
CN115879400A (zh) * | 2022-12-21 | 2023-03-31 | 广东高云半导体科技股份有限公司 | 实现网表文件处理的方法、装置、计算机存储介质及终端 |
WO2023070966A1 (zh) * | 2021-10-27 | 2023-05-04 | 国微集团(深圳)有限公司 | 电路划分的优化方法及系统、存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289491B1 (en) * | 1998-02-20 | 2001-09-11 | Lsi Logic Corporation | Netlist analysis tool by degree of conformity |
CN102323964A (zh) * | 2011-08-16 | 2012-01-18 | 北京芯愿景软件技术有限公司 | 一种数字电路网表数据的处理方法 |
US20120192132A1 (en) * | 2011-01-24 | 2012-07-26 | Kenney Robert D | Method for manipulating and repartitioning a hierarchical integrated circuit design |
CN103258066A (zh) * | 2012-02-17 | 2013-08-21 | 京微雅格(北京)科技有限公司 | 逻辑簇的布局方法 |
US20140282338A1 (en) * | 2013-03-14 | 2014-09-18 | Atrenta, Inc. | System and method for altering circuit design hierarchy to optimize routing and power distribution |
CN105373668A (zh) * | 2015-11-30 | 2016-03-02 | 上海华虹宏力半导体制造有限公司 | 芯片版图设计方法 |
US20170011139A1 (en) * | 2015-07-07 | 2017-01-12 | Mentor Graphics Corporation | Physically-aware circuit design partitioning |
CN106919769A (zh) * | 2017-03-15 | 2017-07-04 | 冷明 | 一种基于多层次方法和赋权超图的层次式fpga布局布线方法 |
CN110489812A (zh) * | 2019-07-25 | 2019-11-22 | 广东高云半导体科技股份有限公司 | 多层层级网表处理方法、装置、计算机设备及存储介质 |
-
2019
- 2019-12-18 CN CN201911307254.7A patent/CN111079362A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289491B1 (en) * | 1998-02-20 | 2001-09-11 | Lsi Logic Corporation | Netlist analysis tool by degree of conformity |
US20120192132A1 (en) * | 2011-01-24 | 2012-07-26 | Kenney Robert D | Method for manipulating and repartitioning a hierarchical integrated circuit design |
CN102323964A (zh) * | 2011-08-16 | 2012-01-18 | 北京芯愿景软件技术有限公司 | 一种数字电路网表数据的处理方法 |
CN103258066A (zh) * | 2012-02-17 | 2013-08-21 | 京微雅格(北京)科技有限公司 | 逻辑簇的布局方法 |
US20140282338A1 (en) * | 2013-03-14 | 2014-09-18 | Atrenta, Inc. | System and method for altering circuit design hierarchy to optimize routing and power distribution |
US20170011139A1 (en) * | 2015-07-07 | 2017-01-12 | Mentor Graphics Corporation | Physically-aware circuit design partitioning |
CN105373668A (zh) * | 2015-11-30 | 2016-03-02 | 上海华虹宏力半导体制造有限公司 | 芯片版图设计方法 |
CN106919769A (zh) * | 2017-03-15 | 2017-07-04 | 冷明 | 一种基于多层次方法和赋权超图的层次式fpga布局布线方法 |
CN110489812A (zh) * | 2019-07-25 | 2019-11-22 | 广东高云半导体科技股份有限公司 | 多层层级网表处理方法、装置、计算机设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
王丽英,杨军,罗岚: "SoC设计中的低功耗逻辑综合策略", 电子工程师 * |
陈意军;: "基于VHDL的FPGA开发", 电子与封装 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112257365A (zh) * | 2020-12-08 | 2021-01-22 | 南京集成电路设计服务产业创新中心有限公司 | 一种基于几何信息并行建立时序图的方法 |
CN112257365B (zh) * | 2020-12-08 | 2021-03-12 | 南京集成电路设计服务产业创新中心有限公司 | 一种基于几何信息并行建立时序图的方法 |
CN112580286A (zh) * | 2020-12-18 | 2021-03-30 | 广东高云半导体科技股份有限公司 | 多线程综合方法及装置 |
CN113408225A (zh) * | 2021-05-19 | 2021-09-17 | 无锡中微亿芯有限公司 | 一种提升运行速度的fpga芯片设计方法 |
CN113408225B (zh) * | 2021-05-19 | 2022-08-30 | 无锡中微亿芯有限公司 | 一种提升运行速度的fpga芯片设计方法 |
CN113608491A (zh) * | 2021-07-16 | 2021-11-05 | 广东财经大学 | 一种编译延时逻辑原理图到字节码方法 |
CN113608491B (zh) * | 2021-07-16 | 2022-09-02 | 广东财经大学 | 一种编译延时逻辑原理图到字节码方法 |
WO2023070966A1 (zh) * | 2021-10-27 | 2023-05-04 | 国微集团(深圳)有限公司 | 电路划分的优化方法及系统、存储介质 |
CN115879400A (zh) * | 2022-12-21 | 2023-03-31 | 广东高云半导体科技股份有限公司 | 实现网表文件处理的方法、装置、计算机存储介质及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111079362A (zh) | 一种利用层次化信息的并行综合算法 | |
Ling et al. | FPGA technology mapping: a study of optimality | |
Lin et al. | Placement-driven technology mapping for LUT-based FPGAs | |
US11356100B2 (en) | FPGA with reconfigurable threshold logic gates for improved performance, power, and area | |
Eldafrawy et al. | FPGA logic block architectures for efficient deep learning inference | |
Chen et al. | Simultaneous timing driven clustering and placement for FPGAs | |
Krasteva et al. | Straight method for reallocation of complex cores by dynamic reconfiguration in Virtex II FPGAs | |
US10860761B1 (en) | Systems and methods for enhanced clock tree power estimation at register transfer level | |
US9836567B2 (en) | Method of simulating a semiconductor integrated circuit, computer program product, and device for simulating a semiconductor integrated circuit | |
Barkalov et al. | Logic synthesis for finite state Machines Based on Linear Chains of States | |
US11669665B1 (en) | Application-specific integrated circuit (ASIC) synthesis based on lookup table (LUT) mapping and optimization | |
Sarker et al. | Synthesis of VHDL code for FPGA design flow using Xilinx PlanAhead tool | |
US9892227B1 (en) | Systems, methods and storage media for clock tree power estimation at register transfer level | |
Lin et al. | An Incremental Placement Flow for Advanced FPGAs With Timing Awareness | |
Turki et al. | Towards synthetic benchmarks generator for CAD tool evaluation | |
Boutros et al. | A Whole New World: How to Architect Beyond-FPGA Reconfigurable Acceleration Devices? | |
Ye | Field-programmable gate array architectures and algorithms optimized for implementing datapath circuits | |
Herath et al. | Communication-aware module placement for power reduction in large FPGA designs | |
Liu et al. | Floorplanning for high utilization of heterogeneous FPGAs | |
JM Veendrick et al. | Very Large Scale Integration (VLSI) and ASICs | |
Mo et al. | Layout driven FPGA packing algorithm for performance optimization | |
US20230205960A1 (en) | Design for testability circuitry placement within an integrated circuit design | |
Tan et al. | Recent research development in metal-only ECO | |
US10740529B1 (en) | Implementation of circuitry for radio frequency applications within integrated circuits | |
Ou et al. | Timing-driven partitioning using iterative quadratic programming |
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 |