【技术实现步骤摘要】
一种逻辑电路规模缩减方法及装置
[0001]本申请涉及集成电路
,尤其涉及一种逻辑电路规模缩减方法及装置。
技术介绍
[0002]用户的逻辑电路设计常以RTL(寄存器传输级)或网表的形式存在,在被语法解析器解析后,用户的逻辑电路设计会在内存中形成树状结构,被称为实例树。在实例树中,顶层节点代表用户的top模块,一个节点下一层直接连接的节点被称为该节点的子节点,相应的该节点被称为下一层节点的父节点。子节点对应的模块在父节点内部被实例,也即在父节点对应的模块中被声明。最底层节点,即没有子节点的节点,被称为叶子节点。作为示例实例树可参考图1所示。
[0003]在需要使用多颗FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)的原型验证系统中,用户大规模逻辑电路设计在被解析之后通常会形成规模庞大的实例树,后续的EDA流程都要基于整棵实例树进行处理。然而,在规模庞大的实例树上进行的很多操作都会消耗大量的时间,给计算机的CPU和内存造成很大的负荷。如果不缩减实例树的规模,即以整棵实例树为对象进行操作,则需要占用大量的内存资源来保持整棵实例树处于随时可访问的状态,同时各种操作如查找、遍历、边界确定、连接关系提取等等过程需要消耗大量的CPU计算资源来访问大规模范围。同时,庞大的规模也不利于现有并行工具对RTL级实例树进行并行逻辑综合、布局布线等过程。对于当前分割工具来讲,快速布局规划是其主要功能定位,而并非消耗大量的不必要的时间来对整棵树进行处理和对局部进行仔细分析。因此,对大规 ...
【技术保护点】
【技术特征摘要】
1.一种逻辑电路规模缩减方法,其特征在于,所述方法包括:通过语法解析器解析用户的逻辑电路设计以在内存中形成实例树;获取所述实例树中每个节点的资源量信息,其中节点的资源量信息包括节点对应的逻辑电路模块所消耗的各类资源的资源量;获取资源阈值区间信息,所述资源阈值区间信息包括所述各类资源的资源量阈值区间;根据所述资源阈值区间信息和节点的资源量信息并结合节点的内部紧密度在所述实例树中确定一个或多个剪枝位置,其中所述内部紧密度用于指示节点内部连接关系的紧密程度;在所述剪枝位置对所述实例树进行剪枝以完成逻辑电路规模缩减。2.根据权利要求1所述的方法,其特征在于,获取所述实例树中每个节点的资源量信息,包括:从所述实例树的最底层向上直至最顶层节点,逐层获取每个节点的资源量信息;其中,如果当前节点不是叶子节点,则当前节点的资源量信息包括当前节点所有子节点的资源量,以及当前模块内除子模块外的所有连线所消耗的通信资源,其中所述当前模块为当前节点对应的逻辑电路模块,所述子模块为当前节点的子节点对应的逻辑电路模块;如果当前节点是叶子节点,则当前节点的资源量信息包括当前节点对应的逻辑电路模块所消耗的各类资源的资源量。3.根据权利要求1所述的方法,其特征在于,根据所述资源阈值区间信息和节点的资源量信息并结合节点的内部紧密度在所述实例树中确定一个或多个剪枝位置,包括:从最顶层节点开始从上往下访问所述实例树中未被访问过的节点;对于正在访问的当前节点,如果当前节点是叶子节点则跳过,继续访问下一个未被访问过的节点,如果当前节点不是叶子节点,则根据所述资源阈值区间信息及当前节点的资源量信息判断当前节点是否是资源合法节点;如果当前节点是资源合法节点,则:获取当前节点的内部紧密度,如果当前节点的内部紧密度超过预设的紧密度阈值,则将当前节点标记为所述剪枝位置并不再访问当前节点的子节点,如果当前节点的内部紧密度未超过所述紧密度阈值,则进一步判断当前节点的子节点是否都是资源合法节点,如果当前节点的子节点都是资源合法节点,则继续访问当前节点的子节点,如果当前节点的子节点不都是资源合法节点,则将当前节点标记为所述剪枝位置并不再访问当前节点的子节点;如果当前节点不是资源合法节点,则继续访问当前节点的子节点。4.根据权利要求3所述的方法,其特征在于,根据所述资源阈值区间信息及当前节点的资源量信息判断当前节点是否是资源合法节点,包括:如果当前节点每类资源的资源量均在所述资源阈值区间信息中相应的阈值区间的范围内,则判定当前节点是资源合法节点。5.根据权利要求3所述的方法,其特征在于,获取当前节点的内部紧密度,包括:根据:
获取当前节点A的内部紧密度T
A
,其中n为在电路图中节点A的各子节点之间的连线数量,Nnodes
i
代表第i条连线上的节点数量,Sour
ij
代表第i条连线上的第j个节点的资源值,所述资源值为节点各类资源的资源量分别乘以相应系数后的和,Sour_avg
i
代表第i条连线上所有节点的资源值的平均值,K、B为预设常数。6.根据权利要求3所述的方法,其特征在于,所述方法还包括:对于正在访问的当前节点,在判断当前节点是否是资源合法节点之前,先判断当前节点是否是特殊节点;如果当前节点是特殊节点,则将当前节点标记为所述剪枝位置并不再访问当前节点的子节点;其中,所述特殊节点为用户指定的剪枝位置处的节点或不可进入其内部的节点。7.根据权利要求1所述的方法,其特征在于,在所述剪枝位置对所述实例树进行剪枝,包括:将所述剪枝位置处的子树从所述实例树上剪下并保存,在所述剪枝位置处用一个新的叶子节点代替所述子树,其中,所述子树包括所述剪枝位置对应的节点及其所有子孙节点,所述新的叶子节点与所述子树的顶点具有相同的对外端口。8.根据权利要求7所述的方法,其特征在于,将所述剪枝位置处的子树从所述实例树上剪下并保存,在所述剪枝位置处用一个新的叶子节点代替所述子树,包括:对于RTL级别的逻辑电路设计:复制目标模块并改名后保存,其中所述目标模块为所述子树的顶点所对应的逻辑电路模块;删除原目标模块中的逻辑整体,只保留其指定信息;对于网表级别的逻辑电路设计:剪切目标网表及其所有子孙网表并将所述目标网表改名后保存,其中所述目标网表为所述剪枝位置处对应的网表;新建与原目标网表同名的网表顶层,依据原目标网表顶层的输入、输出端口重建新建网表对外通信端口,在新建网表的父网表中恢复连线与端口之间的连接关系。9.一种逻辑电路规模缩减装置,其特征在于,所述装置包括:实例树生成单...
【专利技术属性】
技术研发人员:邵中尉,张吉锋,
申请(专利权)人:上海国微思尔芯技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。