构建FPGA原型验证平台的方法、装置、设备和介质
文献发布时间:2023-06-19 11:45:49
技术领域
本申请涉及产品检测技术领域,特别是涉及一种构建FPGA原型验证平台的方法、装置、设备和计算机可读存储介质。
背景技术
原型验证是芯片流片前检验芯片与预期效果是否一致的必要的验证流程,由于直接流片的成本很高,通常采用的方式是将设计进行移植,综合,布局布线,在现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)原型验证平台进行验证,FPGA具有可编程的特点,可以反复的修改和实现,直到达到预期结果。
时序收敛是集成电路设计过程中,调整、修改设计,从而使得所设计的电路满足时序要求的过程。时序收敛是判断实现结果是否可用的一个重要标准。
FPGA原型验证受限于FPGA的逻辑资源,设计很大,常规技术中往往注重于FPGA原型验证平台的构建效率,而忽略了FPGA原型验证平台对芯片验证的准确性,导致构建出的FPGA原型验证平台的时序收敛较差。
可见,如何提高FPGA原型验证平台的时序收敛,是本领域技术人员需要解决的问题。
发明内容
本申请实施例的目的是提供一种构建FPGA原型验证平台的方法、装置、设备和计算机可读存储介质,可以提高FPGA原型验证平台的时序收敛。
为解决上述技术问题,本申请实施例提供一种构建FPGA原型验证平台的方法,包括:
基于设定的约束条件,将用于构建FPGA原型验证平台的代码转化为门级网表;
判断所述门级网表的运行结果是否满足预设参数要求;
若所述门级网表的运行结果不满足预设参数要求,则按照设定的参数优化规则,对所述门级网表进行物理优化;
对满足预设参数要求的门级网表或对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台。
可选地,所述参数优化规则包括扇出优化规则,相应的,所述若所述门级网表的运行结果不满足预设参数要求,则按照设定的参数优化规则,对所述门级网表进行物理优化包括:
若所述运行结果中扇出不满足设定的信号驱动个数,则调用逻辑复制指令,调整所述门级网表的扇出。
可选地,所述参数优化规则包括时序优化规则,相应的,所述若所述门级网表的运行结果不满足预设参数要求,则按照设定的参数优化规则,对所述门级网表进行物理优化包括:
若所述运行结果中时序存在违例,则调用时序调整指令,调整所述门级网表的时序。
可选地,所述时序包括建立时间和保持时间;
相应的,所述若所述运行结果中时序存在违例,则调用时序调整指令,调整所述门级网表的时序包括:
若所述建立时间存在违例,则调用retime指令,调整所述门级网表的建立时间;
若所述保持时间存在违例,则调用hold fix指令,调整所述门级网表的保持时间。
可选地,所述参数优化规则包括拥塞优化规则,相应的,所述若所述门级网表的运行结果不满足预设参数要求,则按照设定的参数优化规则,对所述门级网表进行物理优化包括:
若所述运行结果中拥塞等级大于或等于预设等级值,则调用交替复制指令,调整所述门级网表的拥塞等级。
可选地,在所述按照设定的参数优化规则,对所述门级网表进行物理优化之后还包括:
每执行一次物理优化,则生成一个布局文件,并调用报告生成指令对物理优化后的门级网表生成对应的运行结果;
若最新一次物理优化后的运行结果中各参数大于或等于相邻的上一次物理优化后的运行结果中各参数,则基于上一次物理优化后的布局文件返回上一次物理优化的布局阶段;
若最新一次物理优化后的运行结果中各参数小于相邻的上一次物理优化后的运行结果中各参数,则判断所述最新一次物理优化后的运行结果中各参数是否满足预设参数要求;
若所述最新一次物理优化后的运行结果中存在不满足预设参数要求的目标参数,则基于所述目标参数对应的参数优化规则,对所述门级网表进行物理优化;
若所述最新一次物理优化后的运行结果中各参数满足预设参数要求,则执行所述对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台的步骤。
可选地,在所述对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台之后还包括:
判断所述FPGA原型验证平台的时序是否存在违例;
若所述FPGA原型验证平台的时序存在违例,则调用post place策略对所述FPGA原型验证平台的布局进行调整,并基于调整的布局重新进行布线。
本申请实施例还提供了一种构建FPGA原型验证平台的装置,包括转化单元、判断单元、优化单元和布线单元;
所述转化单元,用于基于设定的约束条件,将用于构建FPGA原型验证平台的代码转化为门级网表;
所述判断单元,用于判断所述门级网表的运行结果是否满足预设参数要求;
所述优化单元,用于若所述门级网表的运行结果不满足预设参数要求,则按照设定的参数优化规则,对所述门级网表进行物理优化;
所述布线单元,用于对满足预设参数要求的门级网表或对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台。
可选地,所述参数优化规则包括扇出优化规则,相应的,所述优化单元用于若所述运行结果中扇出不满足设定的信号驱动个数,则调用逻辑复制指令,调整所述门级网表的扇出。
可选地,所述参数优化规则包括时序优化规则,相应的,所述优化单元用于若所述运行结果中时序存在违例,则调用时序调整指令,调整所述门级网表的时序。
可选地,所述时序包括建立时间和保持时间;
相应的,所述优化单元包括建立时间优化子单元和保持时间优化子单元;
所述建立时间优化子单元,用于若所述建立时间存在违例,则调用retime指令,调整所述门级网表的建立时间;
所述保持时间优化子单元,用于若所述保持时间存在违例,则调用hold fix指令,调整所述门级网表的保持时间。
可选地,所述参数优化规则包括拥塞优化规则,相应的,所述优化单元用于若所述运行结果中拥塞等级大于或等于预设等级值,则调用交替复制指令,调整所述门级网表的拥塞等级。
可选地,还包括生成单元、返回单元和结果判断单元;
所述生成单元,用于每执行一次物理优化,则生成一个布局文件,并调用报告生成指令对物理优化后的门级网表生成对应的运行结果;
所述返回单元,用于若最新一次物理优化后的运行结果中各参数大于或等于相邻的上一次物理优化后的运行结果中各参数,则基于上一次物理优化后的布局文件返回上一次物理优化的布局阶段;
所述结果判断单元,用于若最新一次物理优化后的运行结果中各参数小于相邻的上一次物理优化后的运行结果中各参数,则判断所述最新一次物理优化后的运行结果中各参数是否满足预设参数要求;
所述优化单元还用于若所述最新一次物理优化后的运行结果中存在不满足预设参数要求的目标参数,则基于所述目标参数对应的参数优化规则,对所述门级网表进行物理优化;
所述布线单元还用于若所述最新一次物理优化后的运行结果中各参数满足预设参数要求,则执行所述对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台的步骤。
可选地,还包括时序判断单元和调整单元;
所述时序判断单元,用于在所述对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台之后,判断所述FPGA原型验证平台的时序是否存在违例;
所述调整单元,用于若所述FPGA原型验证平台的时序存在违例,则调用postplace策略对所述FPGA原型验证平台的布局进行调整;
所述布线单元还用于基于调整的布局重新进行布线。
本申请实施例还提供了一种构建FPGA原型验证平台的设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述任意一项所述构建FPGA原型验证平台的方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述构建FPGA原型验证平台的方法的步骤。
由上述技术方案可以看出,基于设定的约束条件,将用于构建FPGA原型验证平台的代码转化为门级网表;门级网表中记录了各元件的物理结构以及各元件的连接关系。为了提升FPGA原型验证平台的准确性,可以判断门级网表的运行结果是否满足预设参数要求;预设参数要求可以基于满足时序收敛时各参数的取值范围设定。若门级网表的运行结果不满足预设参数要求,则按照设定的参数优化规则,对门级网表进行物理优化。物理优化过程可以看作对门级网表中各元件的布局进行优化的过程,对满足预设参数要求的门级网表或对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台。在该技术方案中,通过对门级网表进行物理优化,保证了门级网表中各元件布局的合理性,使得基于物理优化后的门级网表进行布线得到的FPGA原型验证平台具有较高的准确性,提高了FPGA原型验证平台的时序收敛。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种构建FPGA原型验证平台的方法的流程图;
图2为本申请实施例提供的一种确定最优布局的方法的流程图;
图3为本申请实施例提供的一种构建FPGA原型验证平台的装置的结构示意图;
图4为本申请实施例提供的一种构建FPGA原型验证平台的设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
接下来,详细介绍本申请实施例所提供的一种构建FPGA原型验证平台的方法。图1为本申请实施例提供的一种构建FPGA原型验证平台的方法的流程图,该方法包括:
S101:基于设定的约束条件,将用于构建FPGA原型验证平台的代码转化为门级网表。
约束条件指的是构建门级网表的限定条件。约束条件可以包括主时钟的约束、PLL时钟的自动约束、不确定时间的自动检测、不希望综合工具进行分析的路径和IO引脚的约束。
在实际应用中,可以将用于构建FPGA原型验证平台的代码转化为初始网表;基于设定的设计指标对所述初始网表进行设计优化,得到满足设计指标的逻辑关系网表。依据约束条件将逻辑关系网表中的各元件配置到FPGA里,以得到门级网表。
其中,设计指标可以包括全局缓冲器(BUFG),移位寄存器,存储器,重映射等优化参数。在本申请实施例中,可以根据时序、面积、功耗等方面的要求,将初始网表优化成为满足设计指标的逻辑关系网表。
S102:判断门级网表的运行结果是否满足预设参数要求。
预设参数要求可以包括对扇出、时序和拥塞的要求。针对不同类型的参数,可以设置其对应的取值范围。
当门级网表的运行结果中各参数的取值不满足设定的取值范围时,即门级网表的运行结果不满足预设参数要求,则说明当前门级网表的布局方式存在问题,需要进行物理优化,此时可以执行S103。
S103:按照设定的参数优化规则,对门级网表进行物理优化。
结合上述介绍,参数可以包括扇出、时序和拥塞,相应的,参数优化规则可以包括扇出优化规则、时序优化规则和拥塞优化规则。
以扇出为例,扇出表示单个逻辑门能够驱动的数字信号输入最大量。扇出取值太高会影响FPGA原型验证平台的时序收敛。在实际应用中,通过get_nets命令找到并定义为highfanout_nets的高扇出网络,可以将高扇出网络的运行结果中扇出与设定的信号驱动个数进行比较,若运行结果中扇出不满足设定的信号驱动个数,即扇出高于设定的信号驱动个数,则可以调用逻辑复制指令,调整门级网表的扇出。
以时序为例,时序可以包括建立时间(Setup-time)和保持时间(Hold-time)。WNS(Worst Negative Slack)代表最差的建立时间的时序裕量,负数表示建立时间不满足设计的时序要求。WHS (Worst Hold Slack)代表最差保持时序裕量,负数表示保持时间不满足设计的时序要求。
在实际应用中,可以从时序报告里面看WNS和WHS的正负。当WNS或WHS为负数时,说明运行结果中时序存在违例,此时可以调用时序调整指令,调整门级网表的时序。
对于建立时间而言,若建立时间存在违例,可以调用retime(重新定时)指令,调整门级网表的建立时间。对于保持时间而言,若保持时间存在违例,可以调用hold fix(修正时间)指令,调整门级网表的保持时间。
以拥塞为例,拥塞等级越高越容易引起布线失败。在本申请实施例中,可以将运行结果中拥塞等级与预设等级值进行比较,若运行结果中拥塞等级大于或等于预设等级值,则调用交替复制指令,调整门级网表的拥塞等级。
预设等级值可以依据实际需求设置,例如,可以将预设等级值设置为6。
拥塞是一个常见的引起布线失败的原因,在设计布线前,可以检查拥塞等级,拥塞等级大于6则需要对设计进行拥塞原因分析,可以先检查拥塞路径是否布线延迟太大,若布线延迟太大,可以执行一次对布线延迟的物理优化,之后再执行物理优化重映射。拥塞等级的物理优化可以通过调用交替复制指令实现。
设计非常大的情况下,布线的时间会非常长,若执行物理优化后,检测到拥塞等级仍大于6时,可以及时的停止,以节约时间。
S104:对满足预设参数要求的门级网表或对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台。
当门级网表执行了物理优化或者门级网表中各参数满足预设参数要求时,说明门级网表的布局合理,此时可以依据对该门级网表的各元件进行布线。
由上述技术方案可以看出,基于设定的约束条件,将用于构建FPGA原型验证平台的代码转化为门级网表;门级网表中记录了各元件的物理结构以及各元件的连接关系。为了提升FPGA原型验证平台的准确性,可以判断门级网表的运行结果是否满足预设参数要求;预设参数要求可以基于满足时序收敛时各参数的取值范围设定。若门级网表的运行结果不满足预设参数要求,则按照设定的参数优化规则,对门级网表进行物理优化。物理优化过程可以看作对门级网表中各元件的布局进行优化的过程,对满足预设参数要求的门级网表或对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台。在该技术方案中,通过对门级网表进行物理优化,保证了门级网表中各元件布局的合理性,使得基于物理优化后的门级网表进行布线得到的FPGA原型验证平台具有较高的准确性,提高了FPGA原型验证平台的时序收敛。
考虑到在布局布线之间执行多次物理优化,可能会出现与上一次优化结果相比时序完全没有得到优化的情况。为了保留最优的布局,可以每执行一次物理优化,以文件的形式记录当前的布局。通过不断的物理优化以及优化结果的对比,确定出一个最优的布局。
如图2所示为本申请实施例提供的一种确定最优布局的方法的流程图,该方法包括:
S201:每执行一次物理优化,则生成一个布局文件,并调用报告生成指令对物理优化后的门级网表生成对应的运行结果。
布局文件可以采用.dcp(Delphi Compiled Package ,Delphi 编译包)文件。布局文件中记录了门级网表当前的布局方式。
S202:判断最新一次物理优化后的运行结果中各参数是否大于或等于相邻的上一次物理优化后的运行结果中各参数。
在本申请实施例中,相比于上一次物理优化后的运行结果,若当前物理优化后的运行结果不理想时,则可以退回到上一步的.dcp文件即执行S203。
相比于上一次物理优化后的运行结果,若当前物理优化后的运行结果中的某些参数比上一次物理优化后的参数取值更加贴合设定的参数范围,则说明当前物理优化后的运行结果比上一次物理优化后的运行结果理想,此时可以只针对于仍存在问题的参数进行物理优化,即执行S204至S206。
S203:基于上一次物理优化后的布局文件返回上一次物理优化的布局阶段。
S204:判断最新一次物理优化后的运行结果中各参数是否满足预设参数要求。
若最新一次物理优化后的运行结果中存在不满足预设参数要求的目标参数,则说明仍需要对目标参数进行物理优化,此时可以执行S205。
若最新一次物理优化后的运行结果中各参数满足预设参数要求,则说明当前的布局已达到最优,此时可以执行S206。
S205:基于目标参数对应的参数优化规则,对门级网表进行物理优化。
目标参数可以为扇出、时序或拥塞等,对于目标参数的优化可以参见S103的介绍,在此不再赘述。对门级网表进行物理优化后可以返回S202。
S206:执行对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台的步骤。
在本申请实施例中,通过记录每次物理优化后的布局方式,将相邻两次物理优化的结果进行比较,可以在当前物理优化不理想时退回上一次的布局方式,保证了多次物理优化可以得到相对最优的布局方式,从而使得布线后的FPGA原型验证平台有较高的准确性。
上述介绍是在布局和布线之间进行物理优化,考虑到实际应用中,在布线之后也有可能出现时序违例的问题,因此,在本申请实施例中,在对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台之后,可以判断FPGA原型验证平台的时序是否存在违例;若FPGA原型验证平台的时序存在违例,则可以调用post place(时序约束)策略对FPGA原型验证平台的布局进行调整,并基于调整的布局重新进行布线。
post place策略用于对存在时序违例的部分进行重新布局,因此在布线时仅对重新布局的部分进行布线即可,其它不存在时序违例的部分仍按照原来的布线方式。
通过对布线后的时序进行检查,可以进一步优化FPGA原型验证平台的布局布线,进一步提高了FPGA原型验证平台的时序收敛。并且布线之后的优化仅对出现时序违例的部分进行重新的布局布线,降低了再次执行FPGA原型验证平台优化所花费的时间。
图3为本申请实施例提供的一种构建FPGA原型验证平台的装置的结构示意图,包括转化单元31、判断单元32、优化单元33和布线单元34;
转化单元31,用于基于设定的约束条件,将用于构建FPGA原型验证平台的代码转化为门级网表;
判断单元32,用于判断门级网表的运行结果是否满足预设参数要求;
优化单元33,用于若门级网表的运行结果不满足预设参数要求,则按照设定的参数优化规则,对门级网表进行物理优化;
布线单元34,用于对满足预设参数要求的门级网表或对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台。
可选地,参数优化规则包括扇出优化规则,相应的,优化单元用于若运行结果中扇出不满足设定的信号驱动个数,则调用逻辑复制指令,调整门级网表的扇出。
可选地,参数优化规则包括时序优化规则,相应的,优化单元用于若运行结果中时序存在违例,则调用时序调整指令,调整门级网表的时序。
可选地,时序包括建立时间和保持时间;
相应的,优化单元包括建立时间优化子单元和保持时间优化子单元;
建立时间优化子单元,用于若建立时间存在违例,则调用retime指令,调整门级网表的建立时间;
保持时间优化子单元,用于若保持时间存在违例,则调用hold fix指令,调整门级网表的保持时间。
可选地,参数优化规则包括拥塞优化规则,相应的,优化单元用于若运行结果中拥塞等级大于或等于预设等级值,则调用交替复制指令,调整门级网表的拥塞等级。
可选地,还包括生成单元、返回单元和结果判断单元;
生成单元,用于每执行一次物理优化,则生成一个布局文件,并调用报告生成指令对物理优化后的门级网表生成对应的运行结果;
返回单元,用于若最新一次物理优化后的运行结果中各参数大于或等于相邻的上一次物理优化后的运行结果中各参数,则基于上一次物理优化后的布局文件返回上一次物理优化的布局阶段;
结果判断单元,用于若最新一次物理优化后的运行结果中各参数小于相邻的上一次物理优化后的运行结果中各参数,则判断最新一次物理优化后的运行结果中各参数是否满足预设参数要求;
优化单元还用于若最新一次物理优化后的运行结果中存在不满足预设参数要求的目标参数,则基于目标参数对应的参数优化规则,对门级网表进行物理优化;
布线单元还用于若最新一次物理优化后的运行结果中各参数满足预设参数要求,则执行对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台的步骤。
可选地,还包括时序判断单元和调整单元;
时序判断单元,用于在对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台之后,判断FPGA原型验证平台的时序是否存在违例;
调整单元,用于若FPGA原型验证平台的时序存在违例,则调用post place策略对FPGA原型验证平台的布局进行调整;
布线单元还用于基于调整的布局重新进行布线。
图3所对应实施例中特征的说明可以参见图1和图2所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,基于设定的约束条件,将用于构建FPGA原型验证平台的代码转化为门级网表;门级网表中记录了各元件的物理结构以及各元件的连接关系。为了提升FPGA原型验证平台的准确性,可以判断门级网表的运行结果是否满足预设参数要求;预设参数要求可以基于满足时序收敛时各参数的取值范围设定。若门级网表的运行结果不满足预设参数要求,则按照设定的参数优化规则,对门级网表进行物理优化。物理优化过程可以看作对门级网表中各元件的布局进行优化的过程,对满足预设参数要求的门级网表或对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台。在该技术方案中,通过对门级网表进行物理优化,保证了门级网表中各元件布局的合理性,使得基于物理优化后的门级网表进行布线得到的FPGA原型验证平台具有较高的准确性,提高了FPGA原型验证平台的时序收敛。
图4为本申请实施例提供的一种构建FPGA原型验证平台的设备40的结构示意图,包括:
存储器41,用于存储计算机程序;
处理器42,用于执行计算机程序以实现如上述任意实施例所述的构建FPGA原型验证平台的方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任意实施例所述的构建FPGA原型验证平台的方法的步骤。
以上对本申请实施例所提供的一种构建FPGA原型验证平台的方法、装置、设备和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
- 构建FPGA原型验证平台的方法、装置、设备和介质
- 固态硬盘SOC芯片FPGA原型验证DDR的装置、方法、计算机设备及存储介质