CN109543217B - 串行等效的fpga并行布局方法 - Google Patents

串行等效的fpga并行布局方法 Download PDF

Info

Publication number
CN109543217B
CN109543217B CN201811201104.3A CN201811201104A CN109543217B CN 109543217 B CN109543217 B CN 109543217B CN 201811201104 A CN201811201104 A CN 201811201104A CN 109543217 B CN109543217 B CN 109543217B
Authority
CN
China
Prior art keywords
unit
queue
movement
layout
sub
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
Application number
CN201811201104.3A
Other languages
English (en)
Other versions
CN109543217A (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.)
Chengdu Hua Microelectronics Technology Co ltd
Fudan University
Original Assignee
Chengdu Hua Microelectronics Technology Co ltd
Fudan University
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 Chengdu Hua Microelectronics Technology Co ltd, Fudan University filed Critical Chengdu Hua Microelectronics Technology Co ltd
Priority to CN201811201104.3A priority Critical patent/CN109543217B/zh
Publication of CN109543217A publication Critical patent/CN109543217A/zh
Application granted granted Critical
Publication of CN109543217B publication Critical patent/CN109543217B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • 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]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Architecture (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明属于电子设计技术领域,具体为一种串行等效的FPGA并行布局方法。本发明将布局过程中的一次单元移动,分成提出、评估、终结三个阶段,由主线程执行耗时很少的提出和终结阶段,而评估阶段最为耗时,采用多个子线程并行评估多个单元移动,以提高布局速度。本发明通过主线程的任务切换来解决并行带来的单元移动间的冲突问题,该策略不会带来数据损失。本发明通过数据存储的并行架构设计,保证数据流动和串行布局相同。本发明中,最终的并行布局结果与串行相同,在布局质量没有损失的前提下,大大加快布局速度。

Description

串行等效的FPGA并行布局方法
技术领域
本发明属于电子设计技术领域,具体涉及串行等效的FPGA并行布局方法。
背景技术
现场可编程逻辑门阵列FPGA(Field Programmable Gate Array)是目前应用最为广泛的可编程硬件,相比ASIC电路,FPGA具有开发周期短、成本低的优点。FPGA在使用的过程中,需要借助CAD工具,将用户使用的语言如Verilog等,转变为可以下载到FPGA开发边上的位流。一个典型的FPGA CAD流程包括:综合、打包、布局、布线、位流生成等。
其中,布局是整个CAD流程的重要环节,随着半导体技术的发展,单个FPGA片上的资源的种类和容量越来越大,CAD工具的计算需求增速大约是单个CPU性能增速的4倍左右,这使得布局的运行时间问题越来越严峻,一些大规模电路的布局时间在数小时甚至数天左右。
解决运行时间问题的一个有效措施是将传统的布局算法并行化,目前已提出的并行方法中,布局结果的不确定和并行带来的质量损失是很难克服的问题。因此,需要提出一种实用的FPGA并行布局方法,其结果是要是确定的,并且相对于并行布局没有明显的质量损失。
参考文献:
[1] J.~B. Goeders, et al.: ``Deterministic timing-driven parallelplacement by simulated annealing using half-box window decomposition,''Reconfigurable Computing and FPGAs (2011) 41.
[2] J.~Rose, et al.: ``The VTR project: architecture and CAD forFPGAs from verilog to routing,''Proceedings of the ACM/SIGDA internationalsymposium on Field Programmable Gate Arrays. ACM (2012) 77.
[3] S.~Birk, et al.: ``Parallelizing FPGA placement usingtransactional memory,''
Field-Programmable Technology (2010) 61.
[4] M.~An, et al.: ``Speeding up fpga placement: Parallel algorithmsand methods,''
Field-Programmable Custom Computing Machines (2014) 178。
发明内容
本发明的目的在于提供一种大容量的串行等效FPGA的并行布局方法,在并行布局结果与串行布局相同的前提下,加快布局速度。
本发明提供的串行等效FPGA的并行布局方法,基于传统模拟退火的布局思想,传统的模拟退火布局,具体步骤如下:
步骤一,对输入的电路网表进行初始化布局;
步骤二,根据得到的初始化布局,计算初始温度T=TO
步骤三,判断温度T是否满足退出条件,如果满足,转到步骤四,如果不满足,转到步骤五;
步骤四,结束模拟退火过程,输出布局后的电路网表;
步骤五,判断内循环的次数是否达到设定值,如果达到,转到步骤六;如果未达到,转到步骤七;
步骤六,更新模拟退火的温度T,转到步骤三;
步骤七,随机选择一个单元,在一定范围内对其进行移动,计算代价函数变化并以此判断单元移动是否接受,如果接受,则将数据提交到全局;如果不接受,回滚改变的数据;然后,转到步骤五。
传统模拟退火的主要过程就是每个温度下多次单元移动;本发明用多个线程并行执行单元移动的任务,来加快布局速度,同时本发明需要解决并行带来的冲突问题以及布局结果不确定问题,最终实现与串行布局相同的布局结果。
本发明提供的串行等效FPGA的并行布局方法,主要涉及三个层次:并行布局的基本做法、并行冲突的检测与处理、数据存储的并行架构设计。
(一)并行布局的基本做法
由上面传统布局算法的描述可以看出,整个布局过程是由一次次单元移动构成的;本发明将一次单元移动分成三个阶段:提出、评估、终结;在提出阶段,随机选取一个布局单元,并在一定物理范围内随机找到一个合适的移动位置;在评估阶段,计算布局单元移动前后代价函数的变化值;如果代价函数值变差,那么是否接受该次交换由随机数决定;在终结阶段,如果单元移动被接受,那么引起的数据变化将会被提交到全局的布局结果,如果单元移动被拒绝,那么引起的数据变化将会被回滚。
在三个阶段中,最为耗时的部分是单元移动的评估,本发明中包括一个主线程和多个子线程,利用主线程来进行提出和终结的任务,利用多个子线程同时评估多个单元的移动;整个算法的主体流程如图1所示,并行主要发生在内循环阶段,由主线程和子线程同时工作,保证有多个单元移动同时执行。
本发明中,一次布局移动需要经由主线程和子线程分别处理,为了提高处理效率,将一次布局移动封装为一个完整的数据结构是其中的一种处理方法,但不限于这一方法;将一次布局移动封装为一个完整的数据结构的方法,如图2所示,一个单元移动(例如单元要从201位置移动到206位置)的整个过程都存储在右边的数据结构中;该数据结构包括三个部分:
该次单元移动涉及的数据、任务(提出,评估,终结),一个指示该次单元移动是否评估完成的标识;这个标识在子线程完成该次单元移动的评估后设置,主线程之后会通过检查该标识来判断评估阶段是否完成,只有评估完成的单元移动,才能够被终结;该数据结构的设计可以保证单元移动的更改都在自己的数据结构内,不会影响其他单元移动的数据获取与提交。
(二)并行冲突的检测与处理
多个单元移动的并行执行可能会带来三种冲突:(a)同一单元移动到不同位置;(b)不同单元移动到同一位置;(c)各个单元移动间共享线网;前两种冲突会导致布局结果错误,最后一种冲突可能会导致代价函数计算错误,影响布局质量。
为了避免这些冲突,本发明在单元移动的提出阶段,进一步进行冲突的检测与处理,冲突的检测采用的是“标签”法,但不限于这一方法;所谓“标签”法,是在主线程标记每次单元移动占用的单元、线网、位置等资源;如果要标记的资源已经被标记,冲突就会发生;这里不仅要标记资源是否被占用,还要标记被哪次单元移动占用,便于后续的冲突处理;这些标记将会在终结阶段被清除;通过这种方式,上面提到的三种冲突都可以检测出来。
本发明中,主线程首先进行单元移动的提出,如果检测到冲突,则切换到终结任务,消除冲突;通过主线程任务的切换,保证所有子线程上并行执行的、需要评估的单元移动都是无冲突的;如图3所示,主线程首先执行的任务是单元移动的提出;(1)在提出单元M1、 M2、M3、M4移动时,未检测到冲突,所以主线程继续提出任务;(2)但当进行单元M5移动提出时,发现单元M5与单元M1、单元 M3发生冲突,因此主线程不再继续提出,而是切换到终结任务,将与单元M5冲突的单元M1、单元M3终结;这里需要注意的是,单元M1, M3的评估是由子线程进行的,因此主线程需要终结它们的时候,可能对单元M1, M3的评估尚未完成,这时候,需要主线程进行等待,评估完成后才能终结;(3)在完成单元M1, M3的评估后,冲突消除了,这时候主线程切换回提出任务,单元M5的提出完成,接着进行单元M6的提出。
在上面介绍的冲突处理过程中,如果在整个提出阶段完成后,再进行冲突的检测;一旦冲突发生,那提出的单元移动里,涉及的数据会是错误的,当主线程再次切换回提出任务时,整个单元移动必须重新提出;这会导致主线程工作的浪费。
为了避免冲突的单元移动需要重新提出,这里对单元移动的提出阶段进行了细分。如图4所示,单元移动的提出阶段被细分为四个步骤:
步骤1:选取一个单元,检测是否有资源被标记,如果为否,直接进入步骤2,如果为是,则切换到终极任务,消除冲突,进入步骤2;
步骤2:选取要移送的位置,检测是否有资源被标记,如果为否,直接进入步骤3,如果为是,则切换到终极任务,消除冲突,进入步骤3;
步骤3:寻找所有受影响的单元或线网,检测是否有资源被标记,如果为否,直接进入步骤4,如果为是,则切换到终极任务,消除冲突,进入步骤4;
步骤4:标记所有资源,完成单元移动的提出。
在完成1,2,3的每个步骤后,都会通过“标签”的方式进行冲突检测;如果发生冲突,该单元移动的提出阶段将暂停在相应的步骤;主线程切换到终结任务;冲突消除后,该单元移动可以从暂停的步骤继续提出;在步骤4,所有的冲突已经被处理完毕,单元移动占用的资源会被标记。
(三)数据存储的并行架构设计
本发明中,当多个单元移动同时在多个子线程评估时,它们评估完成的顺序具有一定不确定性;如果不加以限制,会导致单元移动终结的顺序不同,进而导致布局结果的不确定性;为此,本发明设计了高效的并行架构解决这一问题的方法,但不限于这一方法;本发明设计的高效并行架构解决这一问题的方法,分为两个部分:一个是主线程与数据队列1,一个是子线程与数据队列2。如图5所示。
队列1是用来存放单元移动的队列,该队列的使用可以让各个单元移动有序进出,保证单元移动产生的顺序与终结的顺序相同;当主线程提出一个单元移动时,会进行冲突检测;如果没有冲突,那么主线程会将该单元移动(相应的数据结构)提交到队列1,将单元移动的评估任务提交到队列2;如果有冲突,主线程将切换到终结任务来解决冲突。
队列2是用来缓冲评估任务的,该队列可以在子线程繁忙时存储等待的评估任务,提高子线程工作效率;当子线程空闲时,会从队列2的尾部取出一个评估任务,当评估完成后,子线程会设置单元移动数据结构中对应的标识位。
这样的并行框架有三个优点:(1)队列1的进出是有序的,因此所有单元移动提交到全局布局的数据顺序与串行布局过程是相同的,这是串行等效性的前提;(2)通讯负荷不随线程数目变化而变化;在该并行框架中,主线程不需要直接与子线程直接通讯,每个线程只需要访问队列的头尾;(3)子线程的数据只影响加速,不影响最终的布局结果。
将本发明上述三个方面综合起来,本发明串行等效FPGA的并行布局方法,具体操作步骤如下:
主线程:
步骤一,处理输入的打包后电路网表;
步骤二,进行随机的初始化布局;
步骤三,产生N个子线程,创建数据队列1,用来存储单元移动,创建任务队列2,用来存储评估任务;
步骤四,计算初始的退火温度T;
步骤五,判断温度T是否满足退出条件;如果满足,执行步骤十七;如果不满足,执行步骤六;
步骤六,设置内循环次数Inner_num为0;
步骤七,判断内循环次数是否达到设定值;如果达到,执行步骤八;如果未达到,执行步骤九;
步骤八,终结完队列1中剩余的单元移动,更新退火温度T , 转回步骤五;
步骤九,选取一个单元,检查该单元是否被标记;如果被标记,转到步骤十;如果没有被标记,转到步骤十一;
步骤十,从队列2的尾部不断取出单元进行终结,直到所有冲突的单元全部终结,转到步骤十一;
步骤十一,选取要移动到的位置,检查位置是否被标记;如果被标记,转到步骤十二;如果没有被标记,转到步骤十三;
步骤十二,从队列2的尾部不断取出单元进行终结,直到所有冲突的单元全部终结,转到步骤十三;
步骤十三,寻找所有受影响的线网和单元,检查这些单元和线网是否被标记;如果被标记,转到步骤十四;如果没有被标记,转到步骤十五;
步骤十四,从队列2的尾部不断取出单元进行终结,直到所有冲突的单元全部终结,转到步骤十五;
步骤十五,标记该次单元移动占用的所有资源,完成单元移动的提出;
步骤十六,将新的单元移动提交到队列1,将对应的评估任务提交到队列2,将内循环次数Inner_num加一,转回步骤七;
步骤十七,销毁所有子线程,结束并行布局,输出布局后的电路网表。
其中,子线程(在子线程产生后开始执行下面步骤):
步骤1,尝试从队列2中取出一个单元移动的评估任务;如果失败,执行步骤2;如果成功,执行步骤3;
步骤2,等待一个很短的时间,转回步骤1;
步骤3,执行评估任务,并将单元移动相应数据结构中的标识位设置,转回步骤1。
技术效果
本发明能够实现串行等效的并行布局,在保证与串行布局同样的质量指标的前提下,极大提升FPGA布局速度。
附图说明
图1为本发明并行布局算法流程图。
图2为单元移动对应的数据结构。
图3为主线程任务切换示意图。
图4 为单元移动的提出阶段具体步骤。
图5 为并行框架。
具体实施方式
下面将具体介绍本发明的一个详细施例,需要注意的是,本发明的技术要点与方案在前面已经介绍过了,下面的施例用来进一步阐释本发明,而非对本发明加以限制。
本施例用C++编程语言实现,其中并行相关的部分调用C++标准库编写。
测试的方法是将本发明的FPGA并行布局方法,应用在串行模拟退火布局器中,比较并行前后的布局结果(相同用户电路、相同型号FPGA)。
并行模拟退火布局具体流程如下:
主线程:
步骤一,读入打包后的电路网表文件、FPGA结构文件;
步骤二,进行随机的初始布局;
步骤三,产生N个子线程,创建数据队列1,创建任务队列2,队列的长度一般为15左右;
步骤四,根据布局单元的数目,进行一定次数的单元移动,计算代价函数(可以是线长和时序等)变化值的标准差;初始温度To = 代价函数变化值标准差*系数;
步骤五,判断温度 是否成立,其中,是系数,初始布局的代价函数值,是电路网表中的线网数目;如果成立,执行步骤十八;如果不成立,执行步骤六;
步骤六,设置内循环次数;
步骤七,判断,其中,是系数,是布局单元的数目;如果不成立,执行步骤八; 如果成立,执行步骤十;
步骤八,终结完队列1中剩余的单元移动;终结的详细过程如下:查看该次单元移动的代价函数变化值,如果成立,则单元移动成功,将单元移动对坐标的更改提交到布局数据;如果不成立,产生一个0~1之间的随机数,若,则单元移动成功,否则单元移动失败,不提交该次单元移动涉及的数据更改;然后,清除该次单元移动标记的资源;
步骤九,更新退火温度, 转回步骤五;其中是温度更新系数,其值与上一轮内循环中单元移动成功率有关;
步骤十,选取一个单元,检查该单元是否被标记;如果被标记,转到步骤十一;如果没有被标记,转到步骤十二;
步骤十一,从队列2的尾部不断取出单元,检测单元中的标识位,如果评估完成,则终结单元;如果未评估完成,则等待其评估完成后再进行终结;直到所有冲突的单元全部终结后,转到步骤十二;
步骤十二,选取要移动到的位置,检查位置是否被标记;如果被标记,转到步骤十三;如果没有被标记,转到步骤十四;
步骤十三,从队列2的尾部不断取出单元,检测单元中的标识位,如果评估完成,则终结单元;如果未评估完成,则等待其评估完成后再进行终结;直到所有冲突的单元全部终结后,转到步骤十四;
步骤十四,寻找所有受影响的线网和单元,检查这些单元和线网是否被标记;如果被标记,转到步骤十五;如果没有被标记,转到步骤十六;
步骤十五,从队列2的尾部不断取出单元,检测单元中的标识位,如果评估完成,则终结单元;如果未评估完成,则等待其评估完成后再进行终结;直到所有冲突的单元全部终结后,转到步骤十六;
步骤十六,标记该次单元移动占用的所有资源(单元,位置,线网),完成单元移动的提出;
步骤十七,将新的单元移动提交到队列1,将对应的评估任务提交到队列2,内循环次数,转回步骤七;
步骤十八,销毁所有子线程,结束并行布局,输出布局后的电路网表。
子线程:
(在子线程产生后开始执行下面步骤)
步骤1,尝试从队列2中取出一个单元移动;如果失败,执行步骤2;如果成功,执行步骤3;
步骤2,子线程会休眠短暂时间,队列2不为空时,子线程被通知苏醒,转回步骤1;
步骤3,计算该次单元移动的代价函数变化,代价函数中的线网代价是指所有线网的边界框半周长之和,时序代价是所有时序边的时序权重之和等等;
步骤4,完成后设置单元移动中的标识,转回步骤1。
最终得到的实验结果是,在2,3,4线程上分别加速1.9、2.5、2.9倍,并行布局结果与原有的串行布局结果完全相同,验证了串行等效性,该数据的实验的运行环境是:Windows 64位系统,硬件条件是四核处理器 Intel(R)Core(TM)i7-4790。

Claims (4)

1. 一种串行等效FPGA的并行布局方法,其特征在于,包括:
(一)并行布局的基本做法
将一次单元移动分成三个阶段:提出、评估、终结;在提出阶段,随机选取一个布局单元,并在一定物理范围内随机找到一个合适的移动位置;在评估阶段,计算布局单元移动前后代价函数的变化值;如果代价函数值变差,那么是否接受该次移动由随机数决定;在终结阶段,如果单元移动被接受,那么引起的数据变化被提交到全局的布局结果,如果单元移动被拒绝,那么引起的数据变化被回滚;
对于单元移动,包括一个主线程和多个子线程,利用主线程来进行提出和终结的任务,利用多个子线程同时评估多个单元的移动;并行发生在内循环阶段,由主线程和子线程同时工作,保证有多个单元移动同时执行;
其中,一次布局移动经由主线程和子线程分别处理,为了提高处理效率,将一次布局移动封装为一个完整的数据结构,即一个单元移动的整个过程都存储在一个数据结构中;该数据结构包括三个部分:
该次单元移动涉及的数据、任务,一个指示该次单元移动是否评估完成的标识;这个标识在子线程完成该次单元移动的评估后设置,主线程之后通过检查该标识来判断评估阶段是否完成,只有评估完成的单元移动,才能够被终结。
2. 根据权利要求1所述串行等效FPGA的并行布局方法,其特征在于,还包括:
(二)并行冲突的检测与处理
多个单元移动的并行执行会带来三种冲突:(a)同一单元移动到不同位置;(b)不同单元移动到同一位置;(c)各个单元移动间共享线网;为此,
采用“标签”法在单元移动的提出阶段进行冲突的检测,即主线程标记每次单元移动占用的单元、线网、位置;如果要标记的资源已经被标记,冲突就会发生;这里不仅要标记资源是否被占用,还要标记被哪次单元移动占用,便于后续的冲突处理;这些标记在终结阶段被清除;
主线程首先进行单元移动的提出,如果检测到冲突,则切换到终结任务,消除冲突;通过主线程任务的切换,保证所有子线程上并行执行的、需要评估的单元移动都是无冲突的;
为了避免冲突的单元移动需要重新提出,将单元移动的提出阶段细分为四个步骤:
单元移动的提出阶段被细分为四个步骤:
步骤1:选取一个单元,检测是否有资源被标记,如果为否,直接进入步骤2,如果为是,则切换到终极任务,消除冲突,进入步骤2;
步骤2:选取要移送的位置,检测是否有资源被标记,如果为否,直接进入步骤3,如果为是,则切换到终极任务,消除冲突,进入步骤3;
步骤3:寻找所有受影响的单元或线网,检测是否有资源被标记,如果为否,直接进入步骤4,如果为是,则切换到终极任务,消除冲突,进入步骤4;
步骤4:标记所有资源,完成单元移动的提出。
3. 根据权利要求2所述串行等效FPGA的并行布局方法,其特征在于,还包括:
(三)数据存储的并行架构设计
针对多个单元移动同时在多个子线程评估时,它们评估完成的顺序是不确定的这情况,将数据存储的并行架构分为两个部分:一个是主线程与数据队列1,一个是子线程与数据队列2;其中:
队列1用来存放单元移动的队列,该队列的使用可以让各个单元移动有序进出,保证单元移动产生的顺序与终结的顺序相同;当主线程提出一个单元移动时,进行冲突检测;如果没有冲突,那么主线程将该单元移动包括相应的数据结构提交到队列1,将单元移动的评估任务提交到队列2;如果有冲突,主线程将切换到终结任务来解决冲突;
队列2用来缓冲评估任务,该队列可以在子线程繁忙时存储等待的评估任务,提高子线程工作效率;当子线程空闲时,从队列2的尾部取出一个评估任务,当评估完成后,子线程设置单元移动数据结构中对应的标识位。
4.根据权利要求3所述串行等效FPGA的并行布局方法,其特征在于,具体操作步骤如下:
主线程:
步骤一,处理输入的打包后电路网表;
步骤二,进行随机的初始化布局;
步骤三,产生N个子线程,创建数据队列1,用来存储单元移动,创建任务队列2,用来存储评估任务;
步骤四,计算初始的退火温度T;
步骤五,判断温度T是否满足退出条件;如果满足,执行步骤十七;如果不满足,执行步骤六;
步骤六,设置内循环次数Inner_num为0;
步骤七,判断内循环次数是否达到设定值;如果达到,执行步骤八;如果未达到,执行步骤九;
步骤八,终结完队列1中剩余的单元移动,更新退火温度T , 转回步骤五;
步骤九,选取一个单元,检查该单元是否被标记;如果被标记,转到步骤十;如果没有被标记,转到步骤十一;
步骤十,从队列2的尾部不断取出单元进行终结,直到所有冲突的单元全部终结,转到步骤十一;
步骤十一,选取要移动到的位置,检查位置是否被标记;如果被标记,转到步骤十二;如果没有被标记,转到步骤十三;
步骤十二,从队列2的尾部不断取出单元进行终结,直到所有冲突的单元全部终结,转到步骤十三;
步骤十三,寻找所有受影响的线网或单元,检查这些单元或线网是否被标记;如果被标记,转到步骤十四;如果没有被标记,转到步骤十五;
步骤十四,从队列2的尾部不断取出单元进行终结,直到所有冲突的单元全部终结,转到步骤十五;
步骤十五,标记该次单元移动占用的所有资源,完成单元移动的提出;
步骤十六,将新的单元移动提交到队列1,将对应的评估任务提交到队列2,将内循环次数Inner_num加一,转回步骤七;
步骤十七,销毁所有子线程,结束并行布局,输出布局后的电路网表;
其中,在子线程产生后开始执行下面步骤:
步骤1,尝试从队列2中取出一个单元移动的评估任务;如果失败,执行步骤2;如果成功,执行步骤3;
步骤2,子线程会休眠短暂时间,队列2不为空时,子线程被通知苏醒,转回步骤1;
步骤3,执行评估任务,并将单元移动相应数据结构中的标识位设置,转回步骤1。
CN201811201104.3A 2018-10-16 2018-10-16 串行等效的fpga并行布局方法 Active CN109543217B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811201104.3A CN109543217B (zh) 2018-10-16 2018-10-16 串行等效的fpga并行布局方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811201104.3A CN109543217B (zh) 2018-10-16 2018-10-16 串行等效的fpga并行布局方法

Publications (2)

Publication Number Publication Date
CN109543217A CN109543217A (zh) 2019-03-29
CN109543217B true CN109543217B (zh) 2023-05-02

Family

ID=65844174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811201104.3A Active CN109543217B (zh) 2018-10-16 2018-10-16 串行等效的fpga并行布局方法

Country Status (1)

Country Link
CN (1) CN109543217B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112307700B (zh) * 2019-12-17 2022-07-29 成都华微电子科技股份有限公司 可编程器件的位流并行生成方法及系统
CN111709205B (zh) * 2020-05-29 2023-05-16 成都华微电子科技股份有限公司 Fpga布线方法
CN112269755A (zh) * 2020-11-17 2021-01-26 中山大学 一种用于FPGA芯片的分布式并行packing方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101771408A (zh) * 2010-01-05 2010-07-07 中国人民解放军信息工程大学 一种fpga硬件构件的生成方法及装置
CN103714384A (zh) * 2013-12-24 2014-04-09 西安电子科技大学 基于移动模式序列与遗传禁忌的集成电路的布图方法
CN103886137A (zh) * 2014-03-03 2014-06-25 西安电子科技大学 一种实现现场可编程门阵列快速布局布线的方法
CN107124358A (zh) * 2017-07-11 2017-09-01 吉林大学 一种基于fpga的4g‑profibus嵌入式系统网关设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101771408A (zh) * 2010-01-05 2010-07-07 中国人民解放军信息工程大学 一种fpga硬件构件的生成方法及装置
CN103714384A (zh) * 2013-12-24 2014-04-09 西安电子科技大学 基于移动模式序列与遗传禁忌的集成电路的布图方法
CN103886137A (zh) * 2014-03-03 2014-06-25 西安电子科技大学 一种实现现场可编程门阵列快速布局布线的方法
CN107124358A (zh) * 2017-07-11 2017-09-01 吉林大学 一种基于fpga的4g‑profibus嵌入式系统网关设备

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
High-Quality, Deterministic Parallel Placement for FPGAs on Commodity Hardware;Adrian Ludwin et al;《ACM》;20080226;第14-23页 *
Parallelizing FPGA Placement Using Transactional Memory;Steven Birk et al;《IEEE》;20101231;第61-69页 *
一种基于并行模拟退火的FPGA布局算法;王臻和来金梅;《复旦学报(自然科学版)》;20121231;第51卷(第6期);第716-721页 *
一种用于FPGA布局的模拟退火算法;刘战等;《微计算机信息》;20071231;第23卷;第184-186页 *

Also Published As

Publication number Publication date
CN109543217A (zh) 2019-03-29

Similar Documents

Publication Publication Date Title
CN109543217B (zh) 串行等效的fpga并行布局方法
Guo et al. Gpu-accelerated static timing analysis
US8751211B2 (en) Simulation using parallel processors
US9311157B2 (en) Method and apparatus for dynamic resource allocation of processing units on a resource allocation plane having a time axis and a processing unit axis
CN104765589B (zh) 基于mpi的网格并行预处理方法
CN114785696A (zh) 复杂网络节点的重要度评估方法及装置
CN110837483B (zh) 张量维度变换的方法以及装置
CN109542713A (zh) 一种验证方法及验证装置
US11275661B1 (en) Test generation of a distributed system
CN113449861A (zh) 使用部分梯度更新的推测性训练
CN113599798A (zh) 基于深度强化学习方法的中国象棋博弈学习方法及系统
Gong et al. Improving hw/sw adaptability for accelerating cnns on fpgas through a dynamic/static co-reconfiguration approach
CN108875914B (zh) 对神经网络数据进行预处理和后处理的方法和装置
Lai et al. GPU-based hybrid parallel logic simulation for scan patterns
US10209990B2 (en) Conditional atomic operations in single instruction multiple data processors
US10795404B2 (en) Information processing acceleration control system
WO2011058657A1 (ja) 並列計算装置、並列計算方法、および並列計算プログラム
US20240078736A1 (en) Hair model rendering method and apparatus, electronic device, and storage medium
CN103713944A (zh) 一种内核中线程的处理方法、装置和系统
CN104166539A (zh) 并行原子递增
CN111028132A (zh) 一种基于SystemC的GPU命令处理器单元硬件TLM微结构
CN104636509B (zh) 门级仿真中验证时序问题的系统及方法
CN114662662A (zh) 构建子图以及分配子图中的条带大小的方法
US10997277B1 (en) Multinomial distribution on an integrated circuit
US9098917B2 (en) Method and system for accelerating collision resolution on a reconfigurable processor

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: No. 2201 and 2301, Floor 22-23, Building 1, No. 1800, Middle Section, Yizhou Avenue, Chengdu High-tech Zone, China (Sichuan) Free Trade Pilot Zone, Chengdu, Sichuan 610000

Applicant after: Chengdu Hua Microelectronics Technology Co.,Ltd.

Applicant after: FUDAN University

Address before: 22nd Floor, Building G1, No. 1800 Middle Yizhou Avenue, High tech Zone, Chengdu, Sichuan, 610041

Applicant before: CHENGDU SINO MICROELECTRONICS TECHNOLOGY Co.,Ltd.

Applicant before: FUDAN University

GR01 Patent grant
GR01 Patent grant