CN113095016B - 构建fpga原型验证平台的方法、装置、设备和介质 - Google Patents

构建fpga原型验证平台的方法、装置、设备和介质 Download PDF

Info

Publication number
CN113095016B
CN113095016B CN202110642566.4A CN202110642566A CN113095016B CN 113095016 B CN113095016 B CN 113095016B CN 202110642566 A CN202110642566 A CN 202110642566A CN 113095016 B CN113095016 B CN 113095016B
Authority
CN
China
Prior art keywords
gate
optimization
level netlist
parameter
operation result
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
CN202110642566.4A
Other languages
English (en)
Other versions
CN113095016A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202110642566.4A priority Critical patent/CN113095016B/zh
Publication of CN113095016A publication Critical patent/CN113095016A/zh
Application granted granted Critical
Publication of CN113095016B publication Critical patent/CN113095016B/zh
Priority to PCT/CN2021/127410 priority patent/WO2022257339A1/zh
Priority to US18/259,699 priority patent/US20240054271A1/en
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/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • 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]
    • 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]
    • G06F30/343Logical level
    • 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/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/06Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]

Abstract

本申请实施例公开了一种构建FPGA原型验证平台的方法、装置、设备和介质,基于设定的约束条件,将用于构建FPGA原型验证平台的代码转化为门级网表。基于满足时序收敛时各参数的取值范围设定预设参数要求,若门级网表的运行结果不满足预设参数要求,则按照设定的参数优化规则,对门级网表进行物理优化。物理优化过程可以看作对门级网表中各元件的布局进行优化的过程,对满足预设参数要求的门级网表或对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台。通过对门级网表进行物理优化,保证了门级网表中各元件布局的合理性,使得FPGA原型验证平台具有较高的准确性,提高了FPGA原型验证平台的时序收敛。

Description

构建FPGA原型验证平台的方法、装置、设备和介质
技术领域
本申请涉及产品检测技术领域,特别是涉及一种构建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、或技术领域内所公知的任意其它形式的存储介质中。

Claims (6)

1.一种构建FPGA原型验证平台的方法,其特征在于,包括:
基于设定的约束条件,将用于构建FPGA原型验证平台的代码转化为门级网表;
判断所述门级网表的运行结果是否满足预设参数要求;
若所述门级网表的运行结果不满足预设参数要求,则按照设定的参数优化规则,对所述门级网表进行物理优化;所述参数优化规则包括扇出优化规则、时序优化规则和拥塞优化规则;相应的,所述若所述门级网表的运行结果不满足预设参数要求,则按照设定的参数优化规则,对所述门级网表进行物理优化包括:若所述运行结果中扇出不满足设定的信号驱动个数,则调用逻辑复制指令,调整所述门级网表的扇出;若所述运行结果中时序存在违例,则调用时序调整指令,调整所述门级网表的时序;若所述运行结果中拥塞等级大于或等于预设等级值,则调用交替复制指令,调整所述门级网表的拥塞等级;
对满足预设参数要求的门级网表或对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台;
在所述按照设定的参数优化规则,对所述门级网表进行物理优化之后还包括:
每执行一次物理优化,则生成一个布局文件,并调用报告生成指令对物理优化后的门级网表生成对应的运行结果;
若最新一次物理优化后的运行结果中各参数大于或等于相邻的上一次物理优化后的运行结果中各参数,则基于上一次物理优化后的布局文件返回上一次物理优化的布局阶段;
若最新一次物理优化后的运行结果中各参数小于相邻的上一次物理优化后的运行结果中各参数,则判断所述最新一次物理优化后的运行结果中各参数是否满足预设参数要求;
若所述最新一次物理优化后的运行结果中存在不满足预设参数要求的目标参数,则基于所述目标参数对应的参数优化规则,对所述门级网表进行物理优化;
若所述最新一次物理优化后的运行结果中各参数满足预设参数要求,则执行所述对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台。
2.根据权利要求1所述的构建FPGA原型验证平台的方法,其特征在于,所述时序包括建立时间和保持时间;
相应的,所述若所述运行结果中时序存在违例,则调用时序调整指令,调整所述门级网表的时序包括:
若所述建立时间存在违例,则调用retime指令,调整所述门级网表的建立时间;
若所述保持时间存在违例,则调用hold fix指令,调整所述门级网表的保持时间。
3.根据权利要求1至2任意一项所述的构建FPGA原型验证平台的方法,其特征在于,在所述对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台之后还包括:
判断所述FPGA原型验证平台的时序是否存在违例;
若所述FPGA原型验证平台的时序存在违例,则调用post place策略对所述FPGA原型验证平台的布局进行调整,并基于调整的布局重新进行布线。
4.一种构建FPGA原型验证平台的装置,其特征在于,包括转化单元、判断单元、优化单元和布线单元;
所述转化单元,用于基于设定的约束条件,将用于构建FPGA原型验证平台的代码转化为门级网表;
所述判断单元,用于判断所述门级网表的运行结果是否满足预设参数要求;
所述优化单元,用于若所述门级网表的运行结果不满足预设参数要求,则按照设定的参数优化规则,对所述门级网表进行物理优化;所述参数优化规则包括扇出优化规则、时序优化规则和拥塞优化规则;相应的,所述优化单元用于若所述运行结果中扇出不满足设定的信号驱动个数,则调用逻辑复制指令,调整所述门级网表的扇出;若所述运行结果中时序存在违例,则调用时序调整指令,调整所述门级网表的时序;若所述运行结果中拥塞等级大于或等于预设等级值,则调用交替复制指令,调整所述门级网表的拥塞等级;
所述布线单元,用于对满足预设参数要求的门级网表或对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台;
还包括生成单元、返回单元和结果判断单元;所述生成单元,用于每执行一次物理优化,则生成一个布局文件,并调用报告生成指令对物理优化后的门级网表生成对应的运行结果;所述返回单元,用于若最新一次物理优化后的运行结果中各参数大于或等于相邻的上一次物理优化后的运行结果中各参数,则基于上一次物理优化后的布局文件返回上一次物理优化的布局阶段;所述结果判断单元,用于若最新一次物理优化后的运行结果中各参数小于相邻的上一次物理优化后的运行结果中各参数,则判断所述最新一次物理优化后的运行结果中各参数是否满足预设参数要求;所述优化单元还用于若所述最新一次物理优化后的运行结果中存在不满足预设参数要求的目标参数,则基于所述目标参数对应的参数优化规则,对所述门级网表进行物理优化;所述布线单元还用于若所述最新一次物理优化后的运行结果中各参数满足预设参数要求,则执行所述对物理优化后的门级网表中各元件进行布线,得到FPGA原型验证平台。
5.一种构建FPGA原型验证平台的设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至3任意一项所述构建FPGA原型验证平台的方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述构建FPGA原型验证平台的方法的步骤。
CN202110642566.4A 2021-06-09 2021-06-09 构建fpga原型验证平台的方法、装置、设备和介质 Active CN113095016B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110642566.4A CN113095016B (zh) 2021-06-09 2021-06-09 构建fpga原型验证平台的方法、装置、设备和介质
PCT/CN2021/127410 WO2022257339A1 (zh) 2021-06-09 2021-10-29 构建fpga原型验证平台的方法、装置、设备和介质
US18/259,699 US20240054271A1 (en) 2021-06-09 2021-10-29 Method, apparatus and device for constructing fpga-based prototype verification platform and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110642566.4A CN113095016B (zh) 2021-06-09 2021-06-09 构建fpga原型验证平台的方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN113095016A CN113095016A (zh) 2021-07-09
CN113095016B true CN113095016B (zh) 2021-09-17

Family

ID=76665914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110642566.4A Active CN113095016B (zh) 2021-06-09 2021-06-09 构建fpga原型验证平台的方法、装置、设备和介质

Country Status (3)

Country Link
US (1) US20240054271A1 (zh)
CN (1) CN113095016B (zh)
WO (1) WO2022257339A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113095016B (zh) * 2021-06-09 2021-09-17 苏州浪潮智能科技有限公司 构建fpga原型验证平台的方法、装置、设备和介质
CN115422863B (zh) * 2022-08-31 2023-10-10 山东启芯软件科技有限公司 一种嵌入式的逻辑优化验证流程框架及验证方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110580393A (zh) * 2019-09-09 2019-12-17 天津飞腾信息技术有限公司 一种门级网表修改后的快速收敛建立时间的方法
CN112100959A (zh) * 2020-09-21 2020-12-18 Oppo广东移动通信有限公司 基于eda工具的时序分析方法、装置及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6530073B2 (en) * 2001-04-30 2003-03-04 Lsi Logic Corporation RTL annotation tool for layout induced netlist changes
CN101539958B (zh) * 2008-03-18 2011-05-25 北京芯慧同用微电子技术有限责任公司 一种标准单元库和集成电路的设计方法和装置
CN103632001B (zh) * 2013-11-27 2016-03-30 中国人民解放军国防科学技术大学 基于缓冲单元复用的保持时间时序优化方法
CN108052769A (zh) * 2017-12-28 2018-05-18 天津芯海创科技有限公司 网表仿真验证方法和装置
CN112580295B (zh) * 2020-11-24 2022-07-05 北京智芯微电子科技有限公司 多核SoC芯片的自动化验证方法、系统及装置
CN112651208A (zh) * 2020-12-30 2021-04-13 杭州加速科技有限公司 一种fpga芯片内各模块之间的布线拥塞优化方法
CN112732636B (zh) * 2021-01-11 2023-05-30 北京东土军悦科技有限公司 基于多fpga的芯片原型验证系统的配置方法、装置和设备
CN112906328B (zh) * 2021-02-05 2024-03-08 博流智能科技(南京)有限公司 Fpga原型验证系统生成方法及系统、fpga原型验证方法及系统
CN113095016B (zh) * 2021-06-09 2021-09-17 苏州浪潮智能科技有限公司 构建fpga原型验证平台的方法、装置、设备和介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110580393A (zh) * 2019-09-09 2019-12-17 天津飞腾信息技术有限公司 一种门级网表修改后的快速收敛建立时间的方法
CN112100959A (zh) * 2020-09-21 2020-12-18 Oppo广东移动通信有限公司 基于eda工具的时序分析方法、装置及存储介质

Also Published As

Publication number Publication date
CN113095016A (zh) 2021-07-09
WO2022257339A1 (zh) 2022-12-15
US20240054271A1 (en) 2024-02-15

Similar Documents

Publication Publication Date Title
CN113095016B (zh) 构建fpga原型验证平台的方法、装置、设备和介质
CN105138774B (zh) 一种基于集成电路层次化设计的时序后仿真方法
US5751596A (en) Automated system and method for identifying critical timing paths in integrated circuit layouts for use with automated circuit layout system
CN101539958B (zh) 一种标准单元库和集成电路的设计方法和装置
US5883808A (en) Logic circuit optimization apparatus and its method
US7325218B2 (en) Wiring method, program, and apparatus
US20130091483A1 (en) Automatic flow of megacell generation
CN112100949A (zh) 集成电路芯片的自动开发方法及装置、电子设备
US8255851B1 (en) Method and system for timing design
US10915685B1 (en) Circuit stage credit based approaches to static timing analysis of integrated circuits
CN112069763A (zh) 修正电路的方法
US20180231604A1 (en) Computer implemented methods and computing systems for designing integrated circuits by considering back-end-of-line
CN109902318B (zh) 生成标准延时格式文件的方法和装置
US10867093B1 (en) System and method for an electronic design tool providing automated guidance and interface for circuit design processing
US10460059B1 (en) System and method for generating reduced standard delay format files for gate level simulation
US11574101B2 (en) Techniques for providing optimizations based on categories of slack in timing paths
US20130055187A1 (en) Floorplan creation information generating method, floorplan creation information generating program, floorplan creation information generating device, floorplan optimizing method, floorplan optimizing program, and floorplan optimizing device
US8146041B1 (en) Latch based optimization during implementation of circuit designs for programmable logic devices
US6941532B2 (en) Clock skew verification methodology for grid-based design
US20080300806A1 (en) Power consumption calculating method
CN109240872B (zh) 一种芯片验证关键信号覆盖率统计分析方法和存储介质
JP4992468B2 (ja) 検証方法、検証装置及びプログラム
US20090037860A1 (en) Apparatus, system and method for simulating operation of circuit
JP4053969B2 (ja) 半導体集積回路の設計装置および半導体集積回路の設計方法
US8972919B2 (en) Static timing analysis method and system considering capacitive coupling and double patterning mask misalignment

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
GR01 Patent grant
GR01 Patent grant