CN113255264A - 增量分割处理方法、装置、计算机设备和存储介质 - Google Patents
增量分割处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113255264A CN113255264A CN202110628384.1A CN202110628384A CN113255264A CN 113255264 A CN113255264 A CN 113255264A CN 202110628384 A CN202110628384 A CN 202110628384A CN 113255264 A CN113255264 A CN 113255264A
- Authority
- CN
- China
- Prior art keywords
- programmable logic
- node
- logic device
- initial
- difference
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
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)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供了一种增量分割处理方法、装置、计算机设备和存储介质,属于分割算法领域,具体方法包括获取并解析初始设计文件的初始语法树结构以及修改设计文件的修改语法树结构;获取全流程运行所述初始设计文件的初始运行数据,设定第一可编程逻辑器件;比较初始语法树结构以及修改语法树结构之间的差异节点;根据差异节点识别第一可编程逻辑器件和第二可编程逻辑器件;计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,得到增量分割处理结果。通过本申请的处理方案,可以对发生少量修改的设计文件进行快速分割处理,节省时间提高效率。
Description
技术领域
本发明涉及分割算法领域,具体涉及一种增量分割处理方法、装置、计算机设备和存储介质。
背景技术
在正式投入工厂进行芯片制作前,必须验证芯片设计文件中的RTL语言设计或网表逻辑的正确性和性能指标。在芯片设计中,常常采用可编程逻辑验证阵列对Verilog/SystemVerilog/VHDL等语言编写的RTL设计进行验证,需要在计算机内部生成语法树,将语法树中分割边界的边界节点铺展(flatten)到顶层后抽象成超图,分割算法引擎在超图上将节点分割成指定数量的不同部分,各部分经过超图转硬件描述语言(HDL)的过程还原成RTL级设计,再采用可编程逻辑器件对各部分RTL设计进行逻辑综合操作生成网表,各FPGA在布局布线等过程后同时上电运行,并通过阵列间的互连线通信交流信号,通过在FPGA上监听不同的信号验证芯片设计文件中的逻辑。其中,逻辑综合过程会消耗大量时间,一般情况下的大规模设计要几十个小时,综合所得各部分网表在所属FPGA中进行布局布线同样需要花费甚至几十个小时。
但是,在逻辑验证过程中,有时需要对其设计进行少量的修改实现设计文件的调试,从而调试错误或者优化性能,这种调试操作是不可避免、且频繁发生的。但是即便用户为了调试只改变了有限的几个操作符,对整个设计来说可能是千分之一或万分之一的微小改动,RTL分割整个过程也要重新进行一次,需要再次发生几十个小时的消耗,不仅浪费了大量的时间和计算资源,而且调试效率极低,甚至可能会影响整个产品的生产计划。
发明内容
因此,为了克服上述现有技术的缺点,本发明提供一种可以对发生少量修改的设计文件进行快速处理从而节省时间提高效率的增量分割处理方法、装置、计算机设备和存储介质。
为了实现上述目的,本发明提供一种增量分割处理方法,包括:获取可编程逻辑验证阵列的初始设计文件和修改设计文件,并解析所述初始设计文件的初始语法树结构以及所述修改设计文件的修改语法树结构;当判定所述初始语法树结构以及所述修改语法树结构的差异量不高于预设增量阈值时,获取全流程运行所述初始设计文件的初始运行数据,并将存储初始运行数据的可编程逻辑器件设定为第一可编程逻辑器件;比较所述初始语法树结构以及所述修改语法树结构之间的差异节点;根据所述差异节点识别所述可编程逻辑验证阵列中的第一可编程逻辑器件和第二可编程逻辑器件,所述第二可编程逻辑器件执行的修改语法树结构中节点未被运行并保存运行数据;根据所述差异节点的数量与预设节点阈值的比对结果、各第二可编程逻辑器件的节点位置分布状态,计算得到在所述节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,得到增量分割处理结果。
在其中一个实施例中,所述比较所述初始语法树结构以及所述修改语法树结构之间的差异节点,包括:分别从所述初始语法树结构以及所述修改语法树结构中的顶层节点方向向下进行广度优先递归遍历搜索,获取两棵语法树结构中相同位置的操作对象分别对应的初始模块和修改模块;判断所述初始模块和所述修改模块是否存在逻辑内容或连接关系的不同;当判定存在不同时,标记修改模块为差异模块,通过比较所述初始模块和所述修改模块中的各节点得到所述差异模块中的差异节点和保留节点。
在其中一个实施例中,所述根据所述差异节点识别所述可编程逻辑验证阵列中的第一可编程逻辑器件和第二可编程逻辑器件,包括:根据指定固定分割位置的节点,通过边界寻找模块分别确定所述初始语法树结构的初始分割边界以及所述修改语法树结构的修改分割边界;遍历所述初始分割边界中被分配在每块可编程逻辑器件上的每个节点,并根据所述可编程逻辑器件上节点的层级路径逐一与所述修改分割边界中的节点比对;当判定可编程逻辑器件中存在所述差异节点时,设定此可编程逻辑器件为第二可编程逻辑器件;当判定可编程逻辑器件中不存在任何所述差异节点时,设定此可编程逻辑器件为第一可编程逻辑器件。
在其中一个实施例中,所述根据所述差异节点的数量与预设节点阈值的比对结果、各第二可编程逻辑器件的节点位置分布状态,计算得到在所述节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,包括:判断第二可编程逻辑器件中的差异节点数量是否超过预设节点阈值;当判定超过时,采用聚类划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在所述节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配;当判定未超过时,采用贪婪划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在所述节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配。
在其中一个实施例中,所述采用贪婪划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在所述节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,包括:获取第二可编程逻辑器件的总数量,并建立与所述总数量对应的优先队列,所述优先队列用于存储差异节点的初始权重,所述初始权重用于表征该差异节点被分配到第二可编程逻辑器件所引起的切割代价;计算每个差异节点分配到各第二可编程逻辑器件运行的修改权重,并替换存储所述初始权重;将所述优先队列中修改权重最小的差异节点分配到第二可编程逻辑器件中后,从所述优先队列中删除;重复计算各差异节点分配到各第二可编程逻辑器件运行的修改权重,并对差异节点进行分配,直至差异节点被分配完毕,此时第二可编程逻辑器件的节点布局为最优分配。
在其中一个实施例中,方法还包括:根据所述最优分配控制所述第二可编程逻辑器件执行被分配的差异节点,并将存储运行修改语法树结构的运行数据的所述第二可编程逻辑器件设定为第一可编程逻辑器件。本发明还提供了一种增量分割处理装置,所述装置包括:文件解析获取模块,用于获取可编程逻辑验证阵列的初始设计文件和修改设计文件,并解析所述初始设计文件的初始语法树结构以及所述修改设计文件的修改语法树结构;语法树运行模块,用于当判定所述初始语法树结构以及所述修改语法树结构的差异量不高于预设增量阈值时,获取全流程运行所述初始设计文件的初始运行数据,并将存储初始运行数据的可编程逻辑器件设定为第一可编程逻辑器件;比较模块,用于比较所述初始语法树结构以及所述修改语法树结构之间的差异节点;器件识别模块,用于根据所述差异节点识别所述可编程逻辑验证阵列中的第一可编程逻辑器件和第二可编程逻辑器件,所述第二可编程逻辑器件执行的修改语法树结构中节点的运行数据未被运行保存;节点分配模块,用于根据所述差异节点的数量与预设节点阈值的比对结果、各第二可编程逻辑器件的节点位置分布状态,计算得到在所述节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配;数据运行模块,用于根据所述最优分配控制所述第二可编程逻辑器件执行被分配的差异节点,并将存储运行修改语法树结构的运行数据的所述第二可编程逻辑器件设定为第一可编程逻辑器件;验证模块,用于验证所有第一可编程逻辑器件,得到增量分割处理结果。
本发明还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
与现有技术相比,本发明的优点在于:通过增量式处理的方法,仅对少部分存在变化的可编程逻辑器件重新分割、逻辑综合、布局布线,并计算该可编程逻辑器件的增量分割处理结果,并减少了未发生变化的可编程逻辑器件的二次运算处理,不仅节省时间和计算资源,还提高了调试效率,加速整个产品的生产计划。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是一个实施例中增量分割处理方法的流程示意图;
图2为一个实施例中增量分割处理步骤的流程示意图;
图3为一个实施例中增量分割处理装置的结构框图;
图4为一个实施例中计算机设备的内部结构图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践方面。
如图1所示,本申请实施例提供一种增量分割处理方法,可以应用在终端或服务器上,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式智能设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现,方法包括以下步骤:
步骤101,获取可编程逻辑验证阵列的初始设计文件和修改设计文件,并解析初始设计文件的初始语法树结构以及修改设计文件的修改语法树结构。
设计文件用于描述电路***的各电路节点的结构以及电路节点之间的连接关系。设计文件中包含很多逻辑程序块(module),逻辑程序块间存在嵌套或并列等关系,每个逻辑程序块与电路***的各电路节点对应。电路节点可以是一个或多个电子元件。初始设计文件是修改之前的设计文件,在可编程逻辑器件中可以实现存储有该初始设计文件在转换成初始语法树结构后运行参数、器件执行数据等。修改设计文件是修改后的设计文件,是用于替换在可编程逻辑器件中存储的初始设计文件及其初始运行数据等。
可编程逻辑验证阵列是由多个可编程逻辑器件组成的元件阵列。在一个实施例中,可编程逻辑器件可以是FPGA。服务器可以获取可编程逻辑验证阵列的初始设计文件和修改设计文件,并解析初始设计文件的初始语法树结构以及修改设计文件的修改语法树结构。服务器可以对初始设计文件进行解析,并在内存中保存初始语法树结构Tree_Ref,保存其节点分配位置的分割结果为design.fpga.out.Ref。服务器可以对修改设计文件Design_Main解析,得到修改设计文件的修改语法树结构Tree_Main。
步骤102,当判定初始语法树结构以及修改语法树结构的差异量不高于预设增量阈值时,获取初始设计文件的全部初始运行数据,并将存储初始运行数据的可编程逻辑器件设定为第一可编程逻辑器件。
服务器先判断初始语法树结构以及修改语法树结构的差异量是否大于预设增量阈值,服务器判断Design_Main与Design_Ref的差异量是否大于预设增量阈值。预设增量阈值可以根据增量阈值评估模块计算得到的,也可以根据用户输入的参数确定的,优选为15%。当服务器判定设计Design_Main与Design_Ref的差异量大于预设增量阈值时,放弃增量式处理方法,直接按照全新的用户设计重新执行完整流程;当服务器判定设计Design_Main与Design_Ref的差异量不大于15%,进行增量处理步骤。
初始运行数据是服务器对初始设计文件进行一次全流程处理最终得到的各个FPGA运行的数据,全流程处理是指服务器根据初始设计文件进行HDL转超图、重新分割、超图转回HDL、各部分设计重新逻辑综合、布局布线等操作。服务器获取全流程运行所述初始设计文件的初始运行数据。服务器将存储初始运行数据的可编程逻辑器件设定为第一可编程逻辑器件,初始分割结果可以作为后续修改设计文件的输入参考。
步骤103,比较初始语法树结构以及修改语法树结构之间的差异节点。
服务器比较初始语法树结构以及修改语法树结构之间的差异节点。服务器比较并搜索Design_Ref和Tree_Main两棵树的差异节点(different nodes),具体地,差异节点包括新增节点、删除节点、改动节点等三类。这里的节点对应着设计中的模块(Module),Module是包含了用户的设计逻辑的模板,实际上语法树中的节点是模块(Module)的实例。改动节点是那些对应的module发生逻辑内容或内部连接关系改动或者是对外连接关系变动的节点,可以称为polluted node。新增节点是修改语法树结构相较初始语法树结构增加的节点。删除节点是修改语法树结构相较初始语法树结构减少的节点。不变节点是那些对应的module没有发生逻辑内容和内部连接关系改动,对外连接关系也没变动的节点,可以称为clean node。如果子节点是新增或者删除节点,那么至少有一个其祖先节点是改动节点,因为新增和删除必然要体现在某祖先节点对应的module的逻辑内容或者连接关系的变化;如果父节点是改动节点,那么它的子孙节点的逻辑内容或者连接关系可能受到其影响,也变为改动节点;某个叶子节点如果是clean node,那么它的直接祖先节点全都必然是clean node。
步骤104,根据差异节点识别可编程逻辑验证阵列中的第一可编程逻辑器件和第二可编程逻辑器件,第二可编程逻辑器件执行的修改语法树结构中节点未被运行并保存运行数据。
第一可编程逻辑器件是设计逻辑没有发生任何改变(即、分配在可编程逻辑器件上的节点均是不变节点,没有差异节点),包括逻辑内容和内部连接关系、对外连接关系,它不需要重新进行编译(逻辑综合和布局布线),称为fix FPGA。第二可编程逻辑器件是逻辑内容或者内部连接关系或者对外连接关系发生改变,需要重新逻辑综合和布局布线,需要消耗时间和计算资源,此时可编程逻辑器件的重新编译是不可避免的,称为free FPGA。服务器将修改语法树结构中节点分配给第二可编程逻辑器件,且第二可编程逻辑器件的节点布局中至少包含一个差异节点。由于服务器没有控制第二可编程逻辑器件解析并运行修改设计文件,因此第二可编程逻辑器件执行的修改语法树结构中节点未被运行并保存运行数据。
服务器根据差异节点识别可编程逻辑验证阵列中的第一可编程逻辑器件和第二可编程逻辑器件,第二可编程逻辑器件执行的修改语法树结构中节点未被运行并保存运行数据。服务器识别出free FPGAs和fix FPGAs,对于fix FPGAs已经不需要任何处理,因而节约了位于fix FPGA上各节点的重新编译时间。free FPGAs是新的待分配的阵列。
步骤105,根据差异节点的数量与预设节点阈值的比对结果、各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,得到增量分割处理结果。
Boundary_Main是服务器采用边界寻找模块在修改语法树结构中确定的分割边界,将分割边界上的每个节点下面的子树定义为黑盒,黑盒化后的语法树的叶子节点即为分割边界节点,分割边界节点将以整体的形式参与分割。服务器将Tree_Main的Boundary_Main中的边界节点,属性为不变节点的依然分配在原有FPGA位置;服务器将Tree_Main的Boundary_Main中的差异节点作为待分配的自由节点free nodes分配给第二可编程逻辑器件。服务器根据差异节点的数量与预设节点阈值的比对结果、各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点free nodes和第二可编程逻辑器件free FPGAs之间的最优分配,得到增量分割处理结果。
在一个实施例中,方法还包括:根据所述最优分配控制所述第二可编程逻辑器件执行被分配的差异节点,并将存储运行修改语法树结构的运行数据的所述第二可编程逻辑器件设定为第一可编程逻辑器件。
服务器可以对增量分割处理结果进行验证,服务器可以根据增量分割处理结果控制FPGA运行全流程处理最终得到的各个FPGA运行的数据。服务器根据最优分配控制第二可编程逻辑器件执行被分配的差异节点,并将存储运行修改语法树结构的运行数据的第二可编程逻辑器件设定为第一可编程逻辑器件。服务器根据最优分配编译free FPGA,包括逻辑综合和布局布线,对于fix FPGA上的逻辑不做任何操作。因此,相比于现有技术中的全部FPGA重新编译,节约的时间长度可观。
上述增量分割处理方法,通过增量式处理的方法,仅对少部分存在变化的可编程逻辑器件重新分割、逻辑综合、布局布线,并计算该可编程逻辑器件的增量分割处理结果,并减少了未发生变化的可编程逻辑器件的二次运算处理,不仅节省时间和计算资源,还提高了调试效率,加速整个产品的生产计划。
在一个实施例中,比较初始语法树结构以及修改语法树结构之间的差异节点,包括:分别从初始语法树结构以及修改语法树结构中的顶层节点方向向下进行广度优先递归遍历搜索,获取两棵语法树结构中相同位置的操作对象分别对应的初始模块和修改模块;判断初始模块和修改模块是否存在逻辑内容或连接关系的不同;当判定存在不同时,标记修改模块为差异模块,通过比较初始模块和修改模块中的各节点得到差异模块中的差异节点和保留节点。
服务器先将Design_Ref和Tree_Main中的所有节点均标记为不变节点;分别从两棵树的顶层节点(top node)开始,方向向下进行广度优先(BFS)递归遍历搜索,找到两棵语法树结构中相同位置的实例节点分别对应的初始模块module_ Ref和修改模块module_Main。服务器通过将初始模块和修改模块输入语法比较器,比较两个module是否有逻辑内容或连接关系的不同。当判定存在不同时,标记修改模块为差异模块,并标记差异模块对应的节点为polluted node,并判定polluted node下面的子树上的节点可能是改动节点,均直接标记为polluted node,这样可以快速处理所有节点,且不用深入、详细地进一步解析语法。服务器从polluted node处继续向下搜索子树,检查并标记Tree_Main和Tree_Ref中初始模块和修改模块之间的差异节点,直至标记树中所有叶子节点完毕;最后输出两棵语法树的叶子节点集合(即、分割边界集合),其中,初始语法树的分割边界集合为Boundary_Ref,修改语法树的分割边界集合为Boundary_Main,每个节点均携带标记信息。
在其中一个实施例中,根据差异节点识别可编程逻辑验证阵列中的第一可编程逻辑器件和第二可编程逻辑器件,包括:根据指定固定分割位置的节点,通过边界寻找模块分别确定初始语法树结构的初始分割边界以及修改语法树结构的修改分割边界;遍历初始分割边界中被分配在每块可编程逻辑器件上的每个节点,并根据可编程逻辑器件上节点的层级路径逐一与修改分割边界中的节点比对;当判定可编程逻辑器件中存在差异节点时,设定此可编程逻辑器件为第二可编程逻辑器件;当判定可编程逻辑器件中不存在任何差异节点时,设定此可编程逻辑器件为第一可编程逻辑器件。
服务器根据指定固定分割位置的节点,通过边界寻找模块分别确定初始语法树结构的初始分割边界以及修改语法树结构的修改分割边界。初始分割结果design.fpga.out.Ref不仅包含初始分割边界和节点分配结果,还包含初始分割边界上的每个节点下面的子树构成的黑盒,服务器可以根据初始分割边界对应生成初始分割结果。修改分割边界Boundary_Main包含了修改分割边界节点集合,服务器可以根据修改分割边界对应生成修改分割结果。
服务器遍历初始分割结果design.fpga.out.Ref中每块可编程逻辑器件上的每个节点,并根据可编程逻辑器件上节点的层级路径逐一与修改分割边界Boundary_Main中的节点比对。
当判定可编程逻辑器件中存在差异节点时,服务器设定此可编程逻辑器件为第二可编程逻辑器件free FPGA;当判定可编程逻辑器件中不存在差异节点时,服务器设定此可编程逻辑器件为第一可编程逻辑器件fix FPGA。
在其中一个实施例中,根据差异节点的数量与预设节点阈值的比对结果、各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,包括:判断第二可编程逻辑器件中的差异节点数量是否超过预设节点阈值;当判定超过时,采用聚类划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配;当判定未超过时,采用贪婪划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配。
服务器判断第二可编程逻辑器件中的差异节点数量是否超过预设节点阈值。预设节点阈值来自于分割算法阈值评估模块,作用是根据待分割节点的数量进行不同分割算法的选用。其中聚类分割算法适用于大规模节点的划分,时间复杂度相对较高,分割效果(即、被分割网络的分割代价权重的总和)更好;贪婪快速分割法适合于少量节点的快速划分,时间复杂度小,分割效果也能够达到需要。当判定超过时,服务器采用聚类划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配;当判定未超过时,服务器采用贪婪划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配。
如图2所示,在其中一个实施例中,采用贪婪划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,包括以下步骤:
步骤201,获取第二可编程逻辑器件的总数量,并建立与总数量对应的优先队列,优先队列用于存储差异节点的初始权重,所述初始权重用于表征该差异节点被分配到第二可编程逻辑器件所引起的切割代价。
服务器获取第二可编程逻辑器件的总数量,并建立与总数量对应的优先队列,优先队列用于存储差异节点的初始权重,初始权重用于表征该差异节点被分配到第二可编程逻辑器件所引起的切割代价。在一个实施例中,权重为cut size代价。假定free FPGAs的数量num_FPGA,则建立num_FPGA个优先队列priority_queue,该优先队列将存储每个freenode被分别分配在每一块free FPGA上引起的cut size增长的代价。例如,num_FPGA = 4,那么将有四个优先队列,priority_queue_1中的某个free node的值代表该free node如果分配在1号FPGA上引起的cut size代价。定义FPGA节点分布情况为FPGA_distribution,FPGA_distribution的初始状态为Tree_Main分割边界Boundary_Main中被标记为不变节点的初始分配位置的分布情况。
队列是一种先进先出的数据结构,优先队列是一种更高级的队列,它里面的元素被赋予优先级,当弹出元素时,不是先进先出,而是优先级最高的先出。在本实施例中优先级是cut size,cut size越小优先级越高,每个元素也对应了某个具体的free node。Cutsize是图被分割后,被割到的边(net)的权重的总和,分割后权重值越小,分割效果越佳。
步骤202,计算每个差异节点分配到各第二可编程逻辑器件运行的修改权重,并替换存储初始权重。
服务器计算每个差异节点分配到各第二可编程逻辑器件运行的修改权重,并替换存储初始权重。服务器分别重新计算每个free node被分配到现有FPGA_distribution中的每块free FPGA上引起的cut size大小,并更新替换优先队列中对应节点的cut size代价值。
步骤203,将优先队列中修改权重最小的差异节点分配到第二可编程逻辑器件中后,从优先队列中删除。
服务器将优先队列中修改权重最小的差异节点分配到第二可编程逻辑器件中后,从优先队列中删除。服务器弹出每个队列的首元素,各队列首元素取cut size代价最小值元素,获得该元素对应的free node和所在队列的编号,将该节点分配到此优先队列所对应的FPGA编号的逻辑阵列中,完成此free node的分配,并将此free node分配位置更新至FPGA_distribution中。服务器从free nodes集合中删除此节点,并记录本次分配所付出cut size的代价。
步骤204,重复计算各差异节点分配到各第二可编程逻辑器件运行的修改权重,并对差异节点进行分配,直至差异节点被分配完毕,此时第二可编程逻辑器件的节点布局为最优分配。
服务器重复计算各差异节点分配到各第二可编程逻辑器件运行的修改权重,并对差异节点进行分配,直至差异节点被分配完毕,此时第二可编程逻辑器件的节点布局对应的是节点和第二可编程逻辑器件之间的最优分配。
在一个实施例中,如图3所示,提供了一种增量分割处理装置,装置包括文件解析获取模块301、语法树运行模块302、比较模块303、器件识别模块304和节点分配模块305。
文件解析获取模块301,用于获取可编程逻辑验证阵列的初始设计文件和修改设计文件,并解析初始设计文件的初始语法树结构以及修改设计文件的修改语法树结构。
语法树运行模块302,用于当判定初始语法树结构以及修改语法树结构的差异量不高于预设增量阈值时,获取全流程运行初始设计文件的初始运行数据,并将存储初始运行数据的可编程逻辑器件设定为第一可编程逻辑器件。
比较模块303,用于比较初始语法树结构以及修改语法树结构之间的差异节点。
器件识别模块304,用于根据差异节点识别可编程逻辑验证阵列中的第一可编程逻辑器件和第二可编程逻辑器件,第二可编程逻辑器件执行的修改语法树结构中节点未被运行并保存运行数据。
节点分配模块305,用于根据差异节点的数量与预设节点阈值的比对结果、各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,得到增量分割处理结果。
在一个实施例中,比较模块303包括:
获取单元,用于分别从初始语法树结构以及修改语法树结构中的顶层节点方向向下进行广度优先递归遍历搜索,获取两棵语法树结构中相同位置的操作对象分别对应的初始模块和修改模块。
判断单元,用于判断初始模块和修改模块是否存在逻辑内容或连接关系的不同。
标记单元,用于当判定存在不同时,标记修改模块为差异模块,通过比较初始模块和修改模块中的各节点得到差异模块中的差异节点和保留节点。
在一个实施例中,器件识别模块304包括:
分割单元,用于根据指定固定分割位置的节点,通过边界寻找模块分别确定初始语法树结构的初始分割边界以及修改语法树结构的修改分割边界。
比对单元,用于遍历初始分割边界中被分配在每块可编程逻辑器件上的每个节点,并根据可编程逻辑器件上节点的层级路径逐一与修改分割边界中的节点比对。
设定单元,用于当判定可编程逻辑器件中存在差异节点时,设定此可编程逻辑器件为第二可编程逻辑器件;当判定可编程逻辑器件中不存在差异节点时,设定此可编程逻辑器件为第一可编程逻辑器件。
在一个实施例中,节点分配模块305包括:
节点判断单元,用于判断第二可编程逻辑器件中的差异节点数量是否超过预设节点阈值。
分配选择单元,用于当判定超过时,采用聚类划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配;当判定未超过时,采用贪婪划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配。
在一个实施例中,节点分配模块305包括:
队列生成单元,用于获取第二可编程逻辑器件的总数量,并建立与总数量对应的优先队列,优先队列用于存储各第二可编程逻辑器件运行每个被分配到的差异节点对应的初始节点的初始权重。
权重替换单元,用于计算每个差异节点分配到各第二可编程逻辑器件运行的修改权重,并替换存储初始权重。
节点分配单元,用于将优先队列中修改权重最小的差异节点分配到第二可编程逻辑器件中后,从优先队列中删除。
重复单元,用于重复计算各差异节点分配到各第二可编程逻辑器件运行的修改权重,并对差异节点进行分配,直至差异节点被分配完毕,此时第二可编程逻辑器件的节点布局为最优分配。
关于增量分割处理装置的具体限定可以参见上文中对于增量分割处理方法的限定,在此不再赘述。上述增量分割处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储增量分割处理数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种增量分割处理方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取可编程逻辑验证阵列的初始设计文件和修改设计文件,并解析初始设计文件的初始语法树结构以及修改设计文件的修改语法树结构;当判定初始语法树结构以及修改语法树结构的差异量不高于预设增量阈值时,获取全流程运行所述初始设计文件的初始运行数据,并将存储初始运行数据的可编程逻辑器件设定为第一可编程逻辑器件;比较初始语法树结构以及修改语法树结构之间的差异节点;根据差异节点识别可编程逻辑验证阵列中的第一可编程逻辑器件和第二可编程逻辑器件,第二可编程逻辑器件执行的修改语法树结构中节点未被运行并保存运行数据;根据差异节点的数量与预设节点阈值的比对结果、各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配;根据最优分配控制第二可编程逻辑器件执行被分配的差异节点,得到增量分割处理结果。
在一个实施例中,处理器执行计算机程序时实现的比较初始语法树结构以及修改语法树结构之间的差异节点,包括:分别从初始语法树结构以及修改语法树结构中的顶层节点方向向下进行广度优先递归遍历搜索,获取两棵语法树结构中相同位置的操作对象分别对应的初始模块和修改模块;判断初始模块和修改模块是否存在逻辑内容或连接关系的不同;当判定存在不同时,标记修改模块为差异模块,通过比较初始模块和修改模块中的各节点得到差异模块中的差异节点和保留节点。
在一个实施例中,处理器执行计算机程序时实现的根据差异节点识别可编程逻辑验证阵列中的第一可编程逻辑器件和第二可编程逻辑器件,包括:根据指定固定分割位置的节点,通过边界寻找模块分别确定初始语法树结构的初始分割边界以及修改语法树结构的修改分割边界;遍历初始分割边界中被分配在每块可编程逻辑器件上的每个节点,并根据可编程逻辑器件上节点的层级路径逐一与修改分割边界中的节点比对;当判定可编程逻辑器件中存在差异节点时,设定此可编程逻辑器件为第二可编程逻辑器件;当判定可编程逻辑器件中不存在差异节点时,设定此可编程逻辑器件为第一可编程逻辑器件。
在一个实施例中,处理器执行计算机程序时实现的根据差异节点的数量与预设节点阈值的比对结果、各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,包括:判断第二可编程逻辑器件中的差异节点数量是否超过预设节点阈值;当判定超过时,采用聚类划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配;当判定未超过时,采用贪婪划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配。
在一个实施例中,处理器执行计算机程序时实现的,采用贪婪划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,包括:获取第二可编程逻辑器件的总数量,并建立与总数量对应的优先队列,优先队列用于存储差异节点的初始权重,所述初始权重用于表征该差异节点被分配到第二可编程逻辑器件所引起的切割代价;计算每个差异节点分配到各第二可编程逻辑器件运行的修改权重,并替换存储初始权重;将优先队列中修改权重最小的差异节点分配到第二可编程逻辑器件中后,从所述优先队列中删除;重复计算各差异节点分配到各第二可编程逻辑器件运行的修改权重,并对差异节点进行分配,直至差异节点被分配完毕,此时第二可编程逻辑器件的节点布局为最优分配。
在一个实施例中,处理器执行计算机程序时实现的方法还包括:根据所述最优分配控制所述第二可编程逻辑器件执行被分配的差异节点,并将存储运行修改语法树结构的运行数据的所述第二可编程逻辑器件设定为第一可编程逻辑器件。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取可编程逻辑验证阵列的初始设计文件和修改设计文件,并解析初始设计文件的初始语法树结构以及修改设计文件的修改语法树结构;当判定初始语法树结构以及修改语法树结构的差异量不高于预设增量阈值时,获取全流程运行所述初始设计文件的初始运行数据,并将存储初始运行数据的可编程逻辑器件设定为第一可编程逻辑器件;比较初始语法树结构以及修改语法树结构之间的差异节点;根据差异节点识别可编程逻辑验证阵列中的第一可编程逻辑器件和第二可编程逻辑器件,第二可编程逻辑器件执行的修改语法树结构中节点未被运行并保存运行数据;根据差异节点的数量与预设节点阈值的比对结果、各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,得到增量分割处理结果。
在一个实施例中,计算机程序被处理器执行时实现的比较初始语法树结构以及修改语法树结构之间的差异节点,包括:分别从初始语法树结构以及修改语法树结构中的顶层节点方向向下进行广度优先递归遍历搜索,获取两棵语法树结构中相同位置的操作对象分别对应的初始模块和修改模块;判断初始模块和修改模块是否存在逻辑内容或连接关系的不同;当判定存在不同时,标记修改模块为差异模块,通过比较初始模块和修改模块中的各节点得到差异模块中的差异节点和保留节点。
在一个实施例中,计算机程序被处理器执行时实现的根据差异节点识别可编程逻辑验证阵列中的第一可编程逻辑器件和第二可编程逻辑器件,包括:根据指定固定分割位置的节点,通过边界寻找模块分别确定初始语法树结构的初始分割边界以及修改语法树结构的修改分割边界;遍历初始分割边界中被分配在每块可编程逻辑器件上的每个节点,并根据可编程逻辑器件上节点的层级路径逐一与修改分割边界中的节点比对;当判定可编程逻辑器件中存在差异节点时,设定此可编程逻辑器件为第二可编程逻辑器件;当判定可编程逻辑器件中不存在差异节点时,设定此可编程逻辑器件为第一可编程逻辑器件。
在一个实施例中,计算机程序被处理器执行时实现的根据差异节点的数量与预设节点阈值的比对结果、各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,包括:判断第二可编程逻辑器件中的差异节点数量是否超过预设节点阈值;当判定超过时,采用聚类划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配;当判定未超过时,采用贪婪划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配。
在一个实施例中,计算机程序被处理器执行时实现的采用贪婪划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,包括:获取第二可编程逻辑器件的总数量,并建立与总数量对应的优先队列,优先队列用于存储差异节点的初始权重,初始权重用于表征该差异节点被分配到第二可编程逻辑器件所引起的切割代价;计算每个差异节点分配到各第二可编程逻辑器件运行的修改权重,并替换存储初始权重;将优先队列中修改权重最小的差异节点分配到第二可编程逻辑器件中后,从优先队列中删除;重复计算各差异节点分配到各第二可编程逻辑器件运行的修改权重,并对差异节点进行分配,直至差异节点被分配完毕,此时第二可编程逻辑器件的节点布局为最优分配。
在一个实施例中,计算机程序被处理器执行时实现的方法还包括:根据所述最优分配控制所述第二可编程逻辑器件执行被分配的差异节点,并将存储运行修改语法树结构的运行数据的所述第二可编程逻辑器件设定为第一可编程逻辑器件。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种增量分割处理方法,其特征在于,包括:
获取可编程逻辑验证阵列的初始设计文件和修改设计文件,并解析所述初始设计文件的初始语法树结构以及所述修改设计文件的修改语法树结构;
当判定所述初始语法树结构以及所述修改语法树结构的差异量不高于预设增量阈值时,获取全流程运行所述初始设计文件的初始运行数据,并将存储初始运行数据的可编程逻辑器件设定为第一可编程逻辑器件;
比较所述初始语法树结构以及所述修改语法树结构之间的差异节点;
根据所述差异节点识别所述可编程逻辑验证阵列中的第一可编程逻辑器件和第二可编程逻辑器件,所述第二可编程逻辑器件执行的修改语法树结构中节点未被运行并保存运行数据;
根据所述差异节点的数量与预设节点阈值的比对结果、各第二可编程逻辑器件的节点位置分布状态,计算得到在所述节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,得到增量分割处理结果。
2.根据权利要求1所述的增量分割处理方法,其特征在于,所述比较所述初始语法树结构以及所述修改语法树结构之间的差异节点,包括:
分别从所述初始语法树结构以及所述修改语法树结构中的顶层节点方向向下进行广度优先递归遍历搜索,获取两棵语法树结构中相同位置的操作对象分别对应的初始模块和修改模块;
判断所述初始模块和所述修改模块是否存在逻辑内容或连接关系的不同;
当判定存在不同时,标记修改模块为差异模块,通过比较所述初始模块和所述修改模块中的各节点得到所述差异模块中的差异节点和保留节点。
3.根据权利要求1所述的增量分割处理方法,其特征在于,所述根据所述差异节点识别所述可编程逻辑验证阵列中的第一可编程逻辑器件和第二可编程逻辑器件,包括:
根据指定固定分割位置的节点,通过边界寻找模块分别确定所述初始语法树结构的初始分割边界以及所述修改语法树结构的修改分割边界;
遍历所述初始分割边界中被分配在每块可编程逻辑器件上的每个节点,并根据所述可编程逻辑器件上节点的层级路径逐一与所述修改分割边界中的节点比对;
当判定可编程逻辑器件中存在所述差异节点时,设定此可编程逻辑器件为第二可编程逻辑器件;当判定可编程逻辑器件中不存在任何所述差异节点时,设定此可编程逻辑器件为第一可编程逻辑器件。
4.根据权利要求1所述的增量分割处理方法,其特征在于,所述根据所述差异节点的数量与预设节点阈值的比对结果、各第二可编程逻辑器件的节点位置分布状态,计算得到在所述节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,包括:
判断第二可编程逻辑器件中的差异节点数量是否超过预设节点阈值;
当判定超过时,采用聚类划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在所述节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配;当判定未超过时,采用贪婪划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在所述节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配。
5.根据权利要求4所述的增量分割处理方法,其特征在于,所述采用贪婪划分方法结合各第二可编程逻辑器件的节点位置分布状态,计算得到在所述节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,包括:
获取第二可编程逻辑器件的总数量,并建立与所述总数量对应的优先队列,所述优先队列用于存储差异节点的初始权重,所述初始权重用于表征该差异节点被分配到第二可编程逻辑器件所引起的切割代价;
计算每个差异节点分配到各第二可编程逻辑器件运行的修改权重,并替换存储所述初始权重;
将所述优先队列中修改权重最小的差异节点分配到第二可编程逻辑器件中后,从所述优先队列中删除;
重复计算各差异节点分配到各第二可编程逻辑器件运行的修改权重,并对差异节点进行分配,直至差异节点被分配完毕,此时第二可编程逻辑器件的节点布局为最优分配。
6.根据权利要求1~5中任一项所述的增量分割处理方法,其特征在于,方法还包括:根据所述最优分配控制所述第二可编程逻辑器件执行被分配的差异节点,并将存储运行修改语法树结构的运行数据的所述第二可编程逻辑器件设定为第一可编程逻辑器件。
7.一种增量分割处理装置,其特征在于,所述装置包括:
文件解析获取模块,用于获取可编程逻辑验证阵列的初始设计文件和修改设计文件,并解析所述初始设计文件的初始语法树结构以及所述修改设计文件的修改语法树结构;
语法树运行模块,用于当判定所述初始语法树结构以及所述修改语法树结构的差异量不高于预设增量阈值时,获取全流程运行所述初始设计文件的初始运行数据,并将存储初始运行数据的可编程逻辑器件设定为第一可编程逻辑器件;
比较模块,用于比较所述初始语法树结构以及所述修改语法树结构之间的差异节点;
器件识别模块,用于根据所述差异节点识别所述可编程逻辑验证阵列中的第一可编程逻辑器件和第二可编程逻辑器件,所述第二可编程逻辑器件执行的修改语法树结构中节点未被运行并保存运行数据;
节点分配模块,用于根据所述差异节点的数量与预设节点阈值的比对结果、各第二可编程逻辑器件的节点位置分布状态,计算得到在所述节点位置分布状态下的节点和第二可编程逻辑器件之间的最优分配,得到增量分割处理结果。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110628384.1A CN113255264B (zh) | 2021-06-07 | 2021-06-07 | 增量分割处理方法、装置、计算机设备和存储介质 |
PCT/CN2021/126683 WO2022257330A1 (zh) | 2021-06-07 | 2021-10-27 | 增量分割处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110628384.1A CN113255264B (zh) | 2021-06-07 | 2021-06-07 | 增量分割处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113255264A true CN113255264A (zh) | 2021-08-13 |
CN113255264B CN113255264B (zh) | 2021-10-01 |
Family
ID=77186582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110628384.1A Active CN113255264B (zh) | 2021-06-07 | 2021-06-07 | 增量分割处理方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113255264B (zh) |
WO (1) | WO2022257330A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114330173A (zh) * | 2022-03-08 | 2022-04-12 | 上海国微思尔芯技术股份有限公司 | 边界节点连接关系获取方法、装置、设备和存储介质 |
WO2022257330A1 (zh) * | 2021-06-07 | 2022-12-15 | 上海国微思尔芯技术股份有限公司 | 增量分割处理方法、装置、计算机设备和存储介质 |
CN116451624A (zh) * | 2023-06-20 | 2023-07-18 | 北京汤谷软件技术有限公司 | 一种电路设计的分割方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116126450B (zh) * | 2023-04-07 | 2023-08-04 | 小米汽车科技有限公司 | 界面布局方法、装置、车辆及存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1376382A2 (en) * | 2002-04-26 | 2004-01-02 | Xerox Corporation | Method and system for efficient interpolation using programmable node spacing |
JP2004139309A (ja) * | 2002-10-17 | 2004-05-13 | Matsushita Electric Ind Co Ltd | 半導体集積回路検証方法 |
CN102693324A (zh) * | 2012-01-09 | 2012-09-26 | 西安电子科技大学 | 一种分布式数据库同步***、同步方法和节点管理方法 |
CN104243315A (zh) * | 2013-06-18 | 2014-12-24 | 西普联特公司 | 用于唯一枚举解析树中的路径的装置和方法 |
US20160147779A1 (en) * | 2014-11-26 | 2016-05-26 | Microsoft Technology Licensing, Llc. | Systems and Methods for Providing Distributed Tree Traversal Using Hardware-Based Processing |
EP3246832A2 (de) * | 2016-05-19 | 2017-11-22 | Siemens Aktiengesellschaft | Verfahren zum schutz eines fpgas vor einer unautorisierten anwendung des rtl-quellcodes |
CN109074261A (zh) * | 2016-04-28 | 2018-12-21 | 微软技术许可有限责任公司 | 用于乱序块isa处理器的增量调度器 |
CN109143952A (zh) * | 2018-06-13 | 2019-01-04 | 华东师范大学 | 可编程逻辑控制器编程语言转换*** |
CN111241076A (zh) * | 2020-01-02 | 2020-06-05 | 西安邮电大学 | 一种基于张量链分解的流式数据增量处理方法及装置 |
CN111859929A (zh) * | 2020-08-05 | 2020-10-30 | 杭州安恒信息技术股份有限公司 | 一种数据可视化方法、装置及其相关设备 |
CN112183002A (zh) * | 2020-12-02 | 2021-01-05 | 上海国微思尔芯技术股份有限公司 | 一种基于fpga逻辑的软件分割方法 |
CN112257369A (zh) * | 2020-12-21 | 2021-01-22 | 上海国微思尔芯技术股份有限公司 | 一种逻辑设计分割方法及*** |
CN112734011A (zh) * | 2021-01-04 | 2021-04-30 | 北京大学 | 一种基于增量综合的深度神经网络加速器协同设计方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113255264B (zh) * | 2021-06-07 | 2021-10-01 | 上海国微思尔芯技术股份有限公司 | 增量分割处理方法、装置、计算机设备和存储介质 |
-
2021
- 2021-06-07 CN CN202110628384.1A patent/CN113255264B/zh active Active
- 2021-10-27 WO PCT/CN2021/126683 patent/WO2022257330A1/zh active Application Filing
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1376382A2 (en) * | 2002-04-26 | 2004-01-02 | Xerox Corporation | Method and system for efficient interpolation using programmable node spacing |
JP2004139309A (ja) * | 2002-10-17 | 2004-05-13 | Matsushita Electric Ind Co Ltd | 半導体集積回路検証方法 |
CN102693324A (zh) * | 2012-01-09 | 2012-09-26 | 西安电子科技大学 | 一种分布式数据库同步***、同步方法和节点管理方法 |
CN104243315A (zh) * | 2013-06-18 | 2014-12-24 | 西普联特公司 | 用于唯一枚举解析树中的路径的装置和方法 |
US20160147779A1 (en) * | 2014-11-26 | 2016-05-26 | Microsoft Technology Licensing, Llc. | Systems and Methods for Providing Distributed Tree Traversal Using Hardware-Based Processing |
CN109074261A (zh) * | 2016-04-28 | 2018-12-21 | 微软技术许可有限责任公司 | 用于乱序块isa处理器的增量调度器 |
EP3246832A2 (de) * | 2016-05-19 | 2017-11-22 | Siemens Aktiengesellschaft | Verfahren zum schutz eines fpgas vor einer unautorisierten anwendung des rtl-quellcodes |
CN109143952A (zh) * | 2018-06-13 | 2019-01-04 | 华东师范大学 | 可编程逻辑控制器编程语言转换*** |
CN111241076A (zh) * | 2020-01-02 | 2020-06-05 | 西安邮电大学 | 一种基于张量链分解的流式数据增量处理方法及装置 |
CN111859929A (zh) * | 2020-08-05 | 2020-10-30 | 杭州安恒信息技术股份有限公司 | 一种数据可视化方法、装置及其相关设备 |
CN112183002A (zh) * | 2020-12-02 | 2021-01-05 | 上海国微思尔芯技术股份有限公司 | 一种基于fpga逻辑的软件分割方法 |
CN112257369A (zh) * | 2020-12-21 | 2021-01-22 | 上海国微思尔芯技术股份有限公司 | 一种逻辑设计分割方法及*** |
CN112734011A (zh) * | 2021-01-04 | 2021-04-30 | 北京大学 | 一种基于增量综合的深度神经网络加速器协同设计方法 |
Non-Patent Citations (4)
Title |
---|
PAPAPHILIPPOU, P.等: "An Adaptable High-Throughput FPGA Merge Sorter for Accelerating Database Analytics", 《2020 30TH INTERNATIONAL CONFERENCE ON FIELD-PROGRAMMABLE LOGIC AND APPLICATIONS (FPL) 》 * |
SANGJUN YANG 等: "A new RTL debugging methodology in FPGA-based verification platform", 《PROCEEDINGS OF 2004 IEEE ASIA-PACIFIC CONFERENCE ON ADVANCED SYSTEM INTEGRATED CIRCUITS》 * |
刘沙莉: "基于FPGA的蚁群算法硬件化技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
阚京: "面向DAG计算框架的增量计算关键技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022257330A1 (zh) * | 2021-06-07 | 2022-12-15 | 上海国微思尔芯技术股份有限公司 | 增量分割处理方法、装置、计算机设备和存储介质 |
CN114330173A (zh) * | 2022-03-08 | 2022-04-12 | 上海国微思尔芯技术股份有限公司 | 边界节点连接关系获取方法、装置、设备和存储介质 |
CN114330173B (zh) * | 2022-03-08 | 2023-03-28 | 上海思尔芯技术股份有限公司 | 边界节点连接关系获取方法、装置、设备和存储介质 |
CN116451624A (zh) * | 2023-06-20 | 2023-07-18 | 北京汤谷软件技术有限公司 | 一种电路设计的分割方法及装置 |
CN116451624B (zh) * | 2023-06-20 | 2023-09-29 | 北京汤谷软件技术有限公司 | 一种电路设计的分割方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113255264B (zh) | 2021-10-01 |
WO2022257330A1 (zh) | 2022-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113255264B (zh) | 增量分割处理方法、装置、计算机设备和存储介质 | |
Hagen et al. | New spectral methods for ratio cut partitioning and clustering | |
US8001510B1 (en) | Automated method of architecture mapping selection from constrained high level language description via element characterization | |
US5497334A (en) | Application generator for use in verifying a hierarchical circuit design | |
KR100186869B1 (ko) | 회로와 시스템들의 고레벨의 의미론적 명세들과 기술들로부터 회로와 시스템들의 실행가능한 저레벨의 구조적 기술과 정당한물리적구현들을추론하는방법론 | |
US5541849A (en) | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of timing parameters | |
Otero et al. | Dreams: A tool for the design of dynamically reconfigurable embedded and modular systems | |
US20120233575A1 (en) | Layout method for integrated circuit including vias | |
US8620628B2 (en) | Run-time tunable sample time in programming or modeling environments | |
CN112232017A (zh) | 分割边界优化方法、装置、计算机设备和存储介质 | |
CN113255263B (zh) | 颗粒带分割方法、装置、计算机设备和存储介质 | |
CN103699653A (zh) | 数据聚类方法和装置 | |
CN114330173B (zh) | 边界节点连接关系获取方法、装置、设备和存储介质 | |
US11790139B1 (en) | Predicting a performance metric based on features of a circuit design and explaining marginal contributions of the features to the prediction | |
CN113255262B (zh) | 对象分配方法、装置、计算机设备和存储介质 | |
CN107315863B (zh) | 布局优化方法及装置、终端及存储介质 | |
US20220058328A1 (en) | Synthesis placement bounds based on physical timing analysis | |
CN115758789A (zh) | 一种复杂实时嵌入式***的软件架构设计与架构传递方法 | |
CN116457789A (zh) | 针对异构集成电路的基于模型的设计和分割 | |
CN113312865B (zh) | 分割时钟筛选方法、装置、计算机设备和存储介质 | |
US11210440B1 (en) | Systems and methods for RLGC extraction based on parallelized left-looking incomplete inverse fast multipole operations | |
US11610042B1 (en) | Scalable scribe regions for implementing user circuit designs in an integrated circuit using dynamic function exchange | |
US7290241B1 (en) | Method and system for managing behavior of algorithms | |
Bai et al. | VPC: Pruning connected components using vector-based path compression for Graph500 | |
Sinaei et al. | Tree-based algorithm for design space exploration and mapping application onto heterogeneous platforms |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: Room 27, 6th floor, No. 29 and 30, Lane 1775, Qiushan Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306 Patentee after: Shanghai Sierxin Technology Co.,Ltd. Address before: Room 27, 6th floor, No. 29 and 30, Lane 1775, Qiushan Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306 Patentee before: Shanghai Guowei silcore Technology Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |