一种FPGA布局布线的方法、系统及设备技术方案

技术编号:21200424 阅读:30 留言:0更新日期:2019-05-25 01:24
本申请公开了一种FPGA布局布线的方法,包括:接收输入的布局布线请求;执行布局布线请求对各模块进行布局布线,得到布局布线结果;判断布局布线结果的时序是否收敛;若未收敛,则根据预设布局布线调整策略对布局布线结果进行调整,直至布局布线结果的时序收敛;若收敛,则结束此次布局布线。在面对布局布线结果不满足时序收敛时,本申请不需要用户去手动调整,而是自行根据预设布局布线调整策略对布局布线结果进行调整,避免了人力资源的浪费,同时提高了布局布线的效率。本申请同时还提供了一种FPGA布局布线的系统、设备及计算机可读存储介质,具有上述有益效果。

A Method, System and Device for Layout and Routing of FPGA

This application discloses a method of layout and routing for FPGA, which includes receiving input layout and routing requests, executing layout and routing requests to layout and routing each module to obtain layout and routing results, judging whether the timing of layout and routing results is convergent or not, and adjusting layout and routing results according to the preset layout and routing adjustment strategy until the layout and routing results are achieved. Ordinal convergence; if convergence, the layout and routing will be terminated. When the result of layout and routing does not satisfy the timing convergence, this application does not need users to adjust manually, but adjusts the result of layout and routing according to the strategy of pre-layout and routing adjustment, which avoids the waste of human resources and improves the efficiency of layout and routing. The application also provides a system, device and computer readable storage medium for the layout and wiring of the FPGA, which has the above beneficial effects.

【技术实现步骤摘要】
一种FPGA布局布线的方法、系统及设备
本申请涉及FPGA布局布线领域,特别涉及一种FPGA布局布线的方法、系统、设备及计算机可读存储介质。
技术介绍
近年来,机器学习不断兴起,FPGA由于具有并行性结构以及相对降低的功耗被广泛使用,其中,CNN卷积神经网络算法等在FPGA中实现成为研究热点。算法的加速在FPGA中实现通常利用的架构如图1所示。FPGA一端通过PCIE接口与HOST主机相连,外部挂着多片DDR等存储器件。其中CNN等算法加速的实现,基于FPGA的逻辑部分通常包含PCIE部分(包含DMA部分)、DDR部分、Kernel部分以及板卡其他功能控制部分。其中Kernel部分主要是用来实现CNN算法的功能。如何将逻辑在FPGA中进行布局布线进行映射以满足时序收敛并且充分利用FPGA资源成为关键课题。现在的解决方法,大部分是自动布局布线,这种方法的缺点是,当逻辑规模较大时,布局布线的结果有时不满足时序收敛,需要人工手动调整,极大的浪费了人力资源,使得布局布线的效率较低。因此,如何提高FPGA中布局布线的效率是本领域技术人员目前需要解决的技术问题。
技术实现思路
本申请的目的是提供一种FPGA布局布线的方法、系统、设备及计算机可读存储介质,用于提高FPGA中布局布线的效率。为解决上述技术问题,本申请提供一种FPGA布局布线的方法,该方法包括:接收输入的布局布线请求;执行所述布局布线请求对各模块进行布局布线,得到布局布线结果;判断所述布局布线结果的时序是否收敛;若未收敛,则根据预设布局布线调整策略对所述布局布线结果进行调整,直至所述布局布线结果的时序收敛;若收敛,则结束此次布局布线。可选的,执行所述布局布线请求对各模块进行布局布线,得到布局布线结果,包括:根据FPGA引脚位置划分PCIE模块和DDR模块的布局位置区域,并确定所述PCIE模块和所述DDR模块的布局位置,得到初始布局;判断所述初始布局的时序是否收敛;若否,则对所述PCIE模块和所述DDR模块的布局位置进行调整,直至所述初始布局的时序收敛;若是,则在所述DDR模块的周围为Kernel中与DDR存储交互的模块划分布局位置区域,并确定所述与DDR存储交互的模块的布局位置,得到二次布局;完成所述二次布局内各所述模块的布线,得到所述布局布线结果。可选的,所述根据FPGA引脚位置划分PCIE模块和DDR模块的布局位置区域,包括:调用Xilinx或Altera的布局布线工具,根据FPGA引脚位置为所述PCIE模块和所述DDR模块设定相应的物理位置约束。可选的,在所述结束此次布局布线之后,还包括:记录当前布局布线次数,并生成布局布线报告。本申请还提供一种FPGA布局布线的系统,该系统包括:接收模块,用于接收输入的布局布线请求;布局布线模块,用于执行所述布局布线请求对各模块进行布局布线,得到布局布线结果;判断模块,用于判断所述布局布线结果的时序是否收敛;布局布线调整模块,用于当所述布局布线结果的时序未收敛时,根据预设布局布线调整策略对所述布局布线结果进行调整,直至所述布局布线结果的时序收敛;结束模块,用于当所述布局布线结果的时序收敛时,结束此次布局布线。可选的,所述布局布线模块包括:第一布局子模块,用于根据FPGA引脚位置划分PCIE模块和DDR模块的布局位置区域,并确定所述PCIE模块和所述DDR模块的布局位置,得到初始布局;第一判断子模块,用于判断所述初始布局的时序是否收敛;调整子模块,用于当所述初始布局的时序不收敛时,对所述PCIE模块和所述DDR模块的布局位置进行调整,直至所述初始布局的时序收敛;第二布局子模块,用于当所述初始布局的时序收敛时,在所述DDR模块的周围为Kernel中与DDR存储交互的模块划分布局位置区域,并确定所述与DDR存储交互的模块的布局位置,得到二次布局;布线子模块,用于完成所述二次布局内各所述模块的布线,得到所述布局布线结果。可选的,所述第一布局子模块包括:调用单元,用于调用Xilinx或Altera的布局布线工具,根据FPGA引脚位置为所述PCIE模块和所述DDR模块设定相应的物理位置约束。可选的,所述系统还包括:记录模块,用于记录当前布局布线次数,并生成布局布线报告。本申请还提供一种FPGA布局布线设备,该FPGA布局布线设备包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上述任一项所述FPGA布局布线的方法的步骤。本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述FPGA布局布线的方法的步骤。本申请所提供FPGA布局布线的方法,包括:接收输入的布局布线请求;执行布局布线请求对各模块进行布局布线,得到布局布线结果;判断布局布线结果的时序是否收敛;若未收敛,则根据预设布局布线调整策略对布局布线结果进行调整,直至布局布线结果的时序收敛;若收敛,则结束此次布局布线。本申请所提供的技术方案,先执行接收到的布局布线请求对各模块进行布局布线,得到布局布线结果;然后判断布局布线结果的时序是否收敛;若未收敛,则根据预设布局布线调整策略对布局布线结果进行调整,直至布局布线结果的时序收敛;若收敛,则结束此次布局布线;在面对布局布线结果不满足时序收敛时,本申请不需要用户去手动调整,而是自行根据预设布局布线调整策略对布局布线结果进行调整,避免了人力资源的浪费,同时提高了布局布线的效率。本申请同时还提供了一种FPGA布局布线的系统、设备及计算机可读存储介质,具有上述有益效果,在此不再赘述。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为现有技术中一种FPGA的结构示意图;图2为本申请实施例所提供的一种FPGA布局布线的方法的流程图;图3为图2所提供的一种FPGA布局布线的方法中S202的一种实际表现方式的流程图;图4为本申请实施例提供的一种FPGA布局布线结果的示意图;图5为本申请实施例所提供的一种FPGA布局布线的系统的结构图;图6为本申请实施例所提供的另一种FPGA布局布线的系统的结构图;图7为本申请实施例所提供的一种FPGA布局布线设备的结构图。具体实施方式本申请的核心是提供一种FPGA布局布线的方法、系统、设备及计算机可读存储介质,用于提高FPGA中布局布线的效率。为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。请参考图2,图2为本申请实施例所提供的一种FPGA布局布线的方法的流程图。其具体包括如下步骤:S201:接收输入的布局布线请求;FPGA是目前市场上广泛使用的可编程器件,具有开发周期短和成本低等优点。FPGA可以实现各种各样的应用,在FPGA设计的CAD软本文档来自技高网...

【技术保护点】
1.一种FPGA布局布线的方法,其特征在于,包括:接收输入的布局布线请求;执行所述布局布线请求对各模块进行布局布线,得到布局布线结果;判断所述布局布线结果的时序是否收敛;若未收敛,则根据预设布局布线调整策略对所述布局布线结果进行调整,直至所述布局布线结果的时序收敛;若收敛,则结束此次布局布线。

【技术特征摘要】
1.一种FPGA布局布线的方法,其特征在于,包括:接收输入的布局布线请求;执行所述布局布线请求对各模块进行布局布线,得到布局布线结果;判断所述布局布线结果的时序是否收敛;若未收敛,则根据预设布局布线调整策略对所述布局布线结果进行调整,直至所述布局布线结果的时序收敛;若收敛,则结束此次布局布线。2.根据权利要求1所述的方法,其特征在于,执行所述布局布线请求对各模块进行布局布线,得到布局布线结果,包括:根据FPGA引脚位置划分PCIE模块和DDR模块的布局位置区域,并确定所述PCIE模块和所述DDR模块的布局位置,得到初始布局;判断所述初始布局的时序是否收敛;若否,则对所述PCIE模块和所述DDR模块的布局位置进行调整,直至所述初始布局的时序收敛;若是,则在所述DDR模块的周围为Kernel中与DDR存储交互的模块划分布局位置区域,并确定所述与DDR存储交互的模块的布局位置,得到二次布局;完成所述二次布局内各所述模块的布线,得到所述布局布线结果。3.根据权利要求2所述的方法,其特征在于,所述根据FPGA引脚位置划分PCIE模块和DDR模块的布局位置区域,包括:调用Xilinx或Altera的布局布线工具,根据FPGA引脚位置为所述PCIE模块和所述DDR模块设定相应的物理位置约束。4.根据权利要求1所述的方法,其特征在于,在所述结束此次布局布线之后,还包括:记录当前布局布线次数,并生成布局布线报告。5.一种FPGA布局布线的系统,其特征在于,包括:接收模块,用于接收输入的布局布线请求;布局布线模块,用于执行所述布局布线请求对各模块进行布局布线,得到布局布线结果;判断模块,用于判断所述布局布线结果的时序是否收敛;布局布线调整模块,用于当所述布局布线...

【专利技术属性】
技术研发人员:葛海亮阚宏伟
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1