本技术涉及电路设计领域,尤其涉及一种电路综合方法、装置、电子设备、存储介质及产品。
背景技术:
1、目前的芯片设计主要基于标准单元库实现。标准单元库是一组已经设计好的数字芯片电路单元的集合,其包括版图库、符号库以及电路逻辑库等。但是这种设计方法设计的电路会因为标准单元库的限制而无法达到最优的性能。尤其是对一些对性能要求较高的模块而言,采用标准单元库进行电路设计的效果较差。因此,开发一种晶体管级的电路综合方法具有重要的意义,有助于晶体管级的电路设计。
技术实现思路
1、本技术提供一种电路综合方法、装置、电子设备、存储介质及产品,以提升设计出的电路的性能。
2、第一方面,本技术提供一种电路综合方法,包括:获得第一电路的门级电路描述,第一电路包括具有基本逻辑功能的多个门电路;基于门级电路描述,将第一电路的各个子电路的电路结构转换为树结构;通过对每个树结构进行节点合并,获得各个子电路的节点集合;其中,节点集合的至少之一对应于复杂逻辑功能;基于各个子电路的节点集合,确定第一电路的晶体管级电路描述。
3、在一些可能的实施方式中,基于门级电路描述,将第一电路的各个子电路的电路结构转换为树结构,包括:根据门级电路描述,按照预设的门电路扇出值,从第一电路中提取出多个子电路;以门级布尔代数的形式,分别对各个子电路的电路结构进行描述,以得到各个子电路的布尔代数描述;按照布尔代数描述,将各个子电路的电路结构转换为树结构。
4、在一些可能的实施方式中,树结构中的节点用于表征子电路中的门电路,树结构中的节点间指针用于表征门电路的输入端口,节点间指针所指向的节点用于表征输入端口对应的节点。
5、在一些可能的实施方式中,通过对每个树结构进行节点合并,获得各个子电路的节点集合,包括:针对每个树结构,从每个树结构中的第i个节点开始,将第i个节点依次与第i个节点的子节点进行合并,直至满足预设约束条件,以得到第i个节点对应的节点集合;其中,i为正整数;遍历每个树结构的节点,得到各个子电路的节点集合。
6、在一些可能的实施方式中,预设约束条件为合并的节点数量达到预设的串联晶体管最大数量。
7、在一些可能的实施方式中,树结构为二叉树结构,其中,树结构中的节点间指针包括左指针和右指针,左指针所指向的第m个节点为第i个节点的左子节点,右指针所指向的第n个节点为第i个节点的右子节点,n、m为正整数;将第i个节点依次与第i个节点的多个子节点进行合并,包括:以第i个节点作为起始节点,将第i个节点与第m个节点合并;在合并的节点数量未达到预设的串联晶体管最大数量的情况下,将合并后第i个节点和第m个节点与第n个节点进行合并;或,在合并的节点数量达到预设的串联晶体管最大数量的情况下,以第m个节点作为起始节点,将第m个节点与第m个节点的左子节点合并。
8、在一些可能的实施方式中,在将合并后第i个节点和第m个节点与第n个节点进行合并之后,该方法还包括:在合并的节点数量未达到预设的串联晶体管最大数量的情况下,以第m个节点作为起始节点,将合并后第i个节点、第m个节点和第n个节点与第m个节点的左子节点合并;或,在合并的节点数量达到预设的串联晶体管最大数量的情况下,以第n个节点作为起始节点,将第n个节点与第n个节点的左子节点合并。
9、在一些可能的实施方式中,基于各个子电路的节点集合,确定第一电路的晶体管级电路描述,包括:以积之和布尔代数的形式,分别对各个子电路的节点集合进行描述,以得到各个子电路的晶体管级电路描述;根据各个子电路的晶体管级电路描述,确定第一电路的晶体管级电路描述。
10、第二方面,本技术提供一种电路综合装置,包括:
11、第一获取模块,被配置为获得第一电路的门级电路描述,所述第一电路包括具有基本逻辑功能的多个门电路;转换模块,被配置为基于所述门级电路描述,将所述第一电路的各个子电路的电路结构转换为树结构;第二获取模块,被配置为通过对每个树结构进行节点合并,获得各个子电路的节点集合;其中,节点集合的至少之一对应于复杂逻辑功能;确定模块,被配置为基于各个子电路的节点集合,确定第一电路的晶体管级电路描述。
12、在一些可能的实施方式中,转换模块,被配置为:根据门级电路描述,按照预设的门电路扇出值,从第一电路中提取出多个子电路;以门级布尔代数的形式,分别对各个子电路的电路结构进行描述,以得到各个子电路的布尔代数描述;按照布尔代数描述,将各个子电路的电路结构转换为树结构。
13、在一些可能的实施方式中,树结构中的节点用于表征子电路中的门电路,树结构中的节点间指针用于表征门电路的输入端口,节点间指针所指向的节点用于表征输入端口对应的节点。
14、在一些可能的实施方式中,第二获取模块,包括:第一合并子模块,被配置为针对每个树结构,从每个树结构中的第i个节点开始,将第i个节点依次与第i个节点的子节点进行合并,直至满足预设约束条件,以得到第i个节点对应的节点集合;其中,i为正整数;确定子模块,被配置为遍历每个树结构的节点,得到各个子电路的节点集合。
15、在一些可能的实施方式中,预设约束条件为合并的节点数量达到预设的串联晶体管最大数量。
16、在一些可能的实施方式中,树结构为二叉树结构,其中,树结构中的节点间指针包括左指针和右指针,左指针所指向的第m个节点为第i个节点的左子节点,右指针所指向的第n个节点为第i个节点的右子节点,n、m为正整数;第一合并子模块,被配置为:针对每个树结构,从每个树结构中的第i个节点开始,以第i个节点作为起始节点,将第i个节点与第m个节点合并;在合并的节点数量未达到预设的串联晶体管最大数量的情况下,将合并后第i个节点和第m个节点与第n个节点进行合并;或,在合并的节点数量达到预设的串联晶体管最大数量的情况下,以第m个节点作为起始节点,将第m个节点与第m个节点的左子节点合并。
17、在一些可能的实施方式中,第二获取模块,还包括:第二合并子模块,被配置为:在将合并后第i个节点和第m个节点与第n个节点进行合并之后,在合并的节点数量未达到预设的串联晶体管最大数量的情况下,以第m个节点作为起始节点,将合并后第i个节点、第m个节点和第n个节点与第m个节点的左子节点合并;或,在合并的节点数量达到预设的串联晶体管最大数量的情况下,以第n个节点作为起始节点,将第n个节点与第n个节点的左子节点合并。
18、在一些可能的实施方式中,确定模块,被配置为:以积之和布尔代数的形式,分别对各个子电路的节点集合进行描述,以得到各个子电路的晶体管级电路描述;根据各个子电路的晶体管级电路描述,确定第一电路的晶体管级电路描述。
19、根据本技术实施例的第三方面,提供一种电子设备,包括:
20、处理器;
21、用于存储处理器可执行指令的存储器;
22、其中,所述处理器被配置为:执行时实现上述第一方面中任一种电路综合方法中的步骤。
23、根据本技术实施例的第四方面,提供一种计算机可读存储介质,当所述存储介质中的指令由处理器执行时,能够执行上述第一方面中任一种电路综合方法。
24、根据本技术实施例的第五方面,提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时,能够执行上述第一方面中任一种电路综合方法。
25、本技术的实施例提供的技术方案可以包括以下有益效果:
26、在本技术中,获得第一电路的门级电路描述,由于门级电路描述为用来表示第一电路的基本逻辑功能的文件,那么根据门级电路描述,能够将第一电路的各个子电路的电路结构转换为树结构。通过对每个树结构进行节点合并,获得各个子电路的节点集合,并基于各个子电路的节点集合,能够确定第一电路的晶体管级电路描述。这样,本技术无需依赖标准单元库,基于第一电路的逻辑,能够生成标准单元库之外的电路拓扑结构,且可以在确定第一电路的电路结构的过程中使用实际电路中的各种逻辑。相比于积之和形式,本方案的使用范围更广泛。此外,通过晶体管级电路描述能够对第一电路进行优化,提升电路的性能。
27、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
1.一种电路综合方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述门级电路描述,将所述第一电路的各个子电路的电路结构转换为树结构,包括:
3.根据权利要求1或2所述的方法,其特征在于,所述树结构中的节点用于表征子电路中的门电路,所述树结构中的节点间指针用于表征所述门电路的输入端口,所述节点间指针所指向的节点用于表征所述输入端口对应的节点。
4.根据权利要求1或2所述的方法,其特征在于,所述通过对每个树结构进行节点合并,获得所述各个子电路的节点集合,包括:
5.根据权利要求4所述的方法,其特征在于,所述预设约束条件为合并的节点数量达到预设的串联晶体管最大数量。
6.根据权利要求5所述的方法,其特征在于,所述树结构为二叉树结构,其中,所述树结构中的节点间指针包括左指针和右指针,所述左指针所指向的第m个节点为所述第i个节点的左子节点,所述右指针所指向的第n个节点为所述第i个节点的右子节点,n、m为正整数;
7.根据权利要求6所述的方法,其特征在于,在所述将合并后所述第i个节点和所述第m个节点与所述第n个节点进行合并之后,所述方法还包括:
8.根据权利要求1所述的方法,其特征在于,所述基于所述各个子电路的节点集合,确定第一电路的晶体管级电路描述,包括:
9.一种电路综合装置,其特征在于,包括:
10.一种电子设备,其特征在于,包括:
11.一种计算机可读存储介质,其特征在于,当所述存储介质中的指令由处理器执行时,能够执行如权利要求1至8中任一项所述的电路综合方法。
12.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时,实现权利要求1至8中任一项所述的电路综合方法。