基于标准单元库的可灵活配置驱动能力的方法与流程

文档序号:31546604发布日期:2022-09-17 01:20阅读:139来源:国知局
基于标准单元库的可灵活配置驱动能力的方法与流程

1.本发明涉及集成电路数字后端设计技术领域,尤其涉及一种基于标准单元库的可灵活配置驱动能力的方法。


背景技术:

2.用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路,或数字系统。由于它具有逻辑运算和逻辑处理功能,所以又称数字逻辑电路。现代的数字电路由半导体工艺制成的若干数字集成器件构造而成。
3.在业内常用的设计流程中,数字电路的设计都是基于标准单元库实现的。标准单元库包括版图库、符号库、电路逻辑库等,包含了组合逻辑、时序逻辑、功能单元和特殊类型单元,是集成电路芯片后端设计过程中的基础部分。数字电路设计工程师通过运用预先设计好的优化的库单元进行自动逻辑综合和版图布局布线,可以极大地提高设计效率,加快产品进入市场的时间。通常每个工艺厂商在每个工艺下都会提供相应的标准单元库。
4.随着现在数字电路的发展脚步逐步加快,对数字电路体系中端口驱动能力的要求不断提高。数字电路中通常使用缓冲器来提升电路驱动能力,保证信号在驱动的过程中有足够的驱动电流,同时还能对信号起到一个稳定的作用,能够提高信号的抗干扰能力。
5.然而标准单元库中提供的缓冲器的种类是有限的,驱动能力也是有限的,后端设计工程师往往会遇到标准单元库中提供的缓冲器无法满足涉及所要求的负载驱动能力。
6.对此,就需要后端设计工程师单独进行电路设计(circuit design),然后根据电路设计绘制版图(layout),再经过仿真,提库,形成可用的缓冲器单元。
7.这一工作费时费力,电路设计(circuit design)、绘制版图(layout)都需要单独的工程师来完成,不但消耗人力还拉长设计周期。


技术实现要素:

8.基于以上问题及现状,本发明实施例提供了一种基于标准单元库的可灵活配置驱动能力的方法,能够基于标准单元库通过拓扑结构实现驱动单元的构建,从而获得满足负载驱动能力要求的驱动单元,实现驱动能力的可灵活配置。
9.为此,本发明实施例提供了一种基于标准单元库的可灵活配置驱动能力的方法,所述方法包括:
10.确定驱动负载所需要的驱动能力;
11.根据标准单元库确定标准单元库中提供的每种标准驱动模块的驱动能力;
12.根据所述驱动负载所需要的驱动能力和所述标准驱动模块的驱动能力,在标准驱动模块中确定每一级可用的驱动模块;
13.确定第1级驱动模块并确定拓扑级数、其它各级中的驱动模块和数量以及拓扑组数;
14.沿第一方向,在所述第1级驱动模块两侧对称排布第2级驱动模块;
15.继续沿第一方向,在当前一级驱动模块的外侧继续排布下一级驱动模块,直至所述当前一级驱动模块的级数达到所述拓扑级数,并且,除第1级驱动模块外,每级驱动模块均为偶数个,并相对于所述第1级驱动模块呈对称设置;且下一级驱动模块的输入端口朝向所述当前一级驱动模块所在的方向;每一级驱动模块的输入端口和输出端口相对设置;
16.将上述各级驱动模块作为一个子单元,根据所述拓扑组数确定所述子单元的组数,并沿垂直第一方向的第二方向对各个子单元进行排布;
17.将第1级驱动模块的输入端口以沿第二方向设置的金属走线连接,将除第1级外同一级驱动模块中沿第一方向相邻的驱动模块的输入端口和输出端口各自分别以沿第一方向设置的金属走线连接,将沿第一方向不相邻的同一级驱动模块的输出端口以长方形金属走线连接,且下一级的输入端口与上一级的长方形金属走线相连接,使得各组子单元组成一个驱动单元,通过所述驱动单元驱动所述负载。
18.优选的,所述可用的驱动模块为一种或多种,同一级驱动模块选用的驱动模块为同一种。
19.进一步优选的,每一级中驱动模块的数量与前一级驱动模块的驱动能力、当前一级驱动模块的驱动能力和前一级驱动模块的数量相关。
20.优选的,所述方法包括:
21.将连接第1级驱动模块的输入端口的金属走线作为所述驱动单元的输入端,将连接最高一级驱动模块的输出端口的长方形金属走线作为所述驱动单元的输出端,驱动所述负载。
22.进一步优选的,所述驱动单元的驱动能力通过最高一级驱动模块的驱动能力与数量的乘积计算得到。
23.优选的,所述每一级可用的驱动模块具体为缓冲器或反相器。
24.优选的,所述第1级驱动模块的输入端口朝向与至少一个所述第2级驱动模块的输入端口的朝向一致。
25.优选的,所述基于标准单元库的可灵活配置驱动能力的方法在负载驱动能力不足的情况下被执行。
26.优选的,所述确定第1级驱动模块具体为:
27.根据驱动负载所需要的驱动能力在标准驱动模块中选择驱动能力为满足驱动负载所需要的驱动能力的1/8或1/16或1/32或1/64或1/128的标准驱动模块为所述第1级驱动模块。
28.优选的,所述驱动单元的驱动能力分别与各级驱动模块中每个当前一级与前一级的驱动模块的驱动能力的比值的乘积、各级驱动模块中每个当前一级与前一级的驱动模块的数量之比的乘积、以及拓扑组数分别呈正相关。
29.本发明实施例提供的基于标准单元库的可灵活配置驱动能力的方法,能够基于标准单元库通过拓扑结构实现驱动单元的构建,从而获得满足负载驱动能力要求的驱动单元,实现驱动能力的可灵活配置。
附图说明
30.下面通过附图和实施例,对本发明实施例的技术方案做进一步详细描述。
31.图1为本发明实施例1提供的基于标准单元库的可灵活配置驱动能力的方法流程图;
32.图2为本发明实施例提出的一种可灵活配置驱动能力的驱动单元的拓扑结构;
33.图3为本发明实施例1提出的一种可灵活配置驱动能力的驱动单元的结构;
34.图4为本发明实施例2提出的一种可灵活配置驱动能力的驱动单元的结构;
35.图5为本发明实施例3提出的一种可灵活配置驱动能力的驱动单元的结构。
具体实施方式
36.下面通过附图和具体的实施例,对本发明进行进一步的说明,但应当理解为这些实施例仅仅是用于更详细说明之用,而不应理解为用以任何形式限制本发明,即并不意于限制本发明的保护范围。
37.本发明提出了一种基于标准单元库的可灵活配置驱动能力的方法,该方法在负载驱动能力不足的情况下被执行。本发明方法的主要步骤如图1所示,包括如下步骤:
38.步骤110,确定驱动负载所需要的驱动能力;
39.具体的,负载所需要的驱动能力,在设计任务开始前就已经是已知的,因此可以在执行本方法时从已有设计需求数据中获得驱动负载所需要的驱动能力的信息。
40.步骤120,根据标准单元库确定标准单元库中提供的每种标准驱动模块的驱动能力;
41.标准驱动模块具体可以包括缓冲器或反相器,是由标准单元库提供的。虽然对于不同的工艺和不同的制造厂来说,标准工艺库不同,但是在每种标准工艺库下,所提供的对应不同驱动能力的标准驱动模块的种类都是有限的。
42.比如:在一个标准工艺库下,提供8种标准驱动模块,对应的驱动能力分别为x1、x2、x4、x6、x8、x12、x14、x20。这里x后面的数值表示相对驱动能力的倍数,也就是在负载相同的时候,能够提供多少倍的电流驱动能力。那么在这个标准工艺库下,最大的可以直接调用的驱动模块就是x20。
43.虽然理论上一个标准驱动模块可以接任意负载,但是在驱动模块驱动能力不足的情况下会造成波形变形,当波形变形到一定程度的时候就是认为是驱动不了。
44.在非超高频设计的条件下,通常认为一个标准驱动模块可以驱动4个相同的标准驱动模块,是没有问题的。
45.步骤130,根据驱动负载所需要的驱动能力和标准驱动模块的驱动能力,在标准驱动模块中确定每一级可用的驱动模块。
46.具体的,可用的驱动模块为一种或多种,同一级驱动模块选用的驱动模块为同一种。
47.根据驱动负载所需要的驱动能力在标准驱动模块中选择驱动能力为满足驱动负载所需要的驱动能力的1/8或1/16或1/32或1/64或1/128的标准驱动模块为第1级驱动模块。这个参数可以由设计工程师根据需要设置,或者由工具自动设置默认参数来定。
48.每一级可用的驱动模块的选用根据前一级选用的驱动模块的驱动能力而确定。
49.步骤140,确定第1级驱动模块并确定拓扑级数、其它各级中的驱动模块和数量以及拓扑组数;
50.按照上述规则在第1级可用的驱动模块中确定一个为1级驱动模块。并相应的根据第1级驱动模块确定每一级中的驱动模块、数量和拓扑级数,使得输出能够满足对驱动能力的要求。每一级中驱动模块的数量与前一级驱动模块的驱动能力、当前一级驱动模块的驱动能力和前一级驱动模块的数量相关。
51.步骤150,沿第一方向,在第1级驱动模块两侧对称排布第2级驱动模块;
52.步骤160,继续沿第一方向,在当前一级驱动模块的外侧继续排布下一级驱动模块,直至当前一级驱动模块的级数达到拓扑级数,并且,除第1级驱动模块外,每级驱动模块均为偶数个,并相对于第1级驱动模块呈对称设置,且下一级驱动模块的输入端口朝向当前一级驱动模块所在的方向;每一级驱动模块的输入端口和输出端口相对设置;
53.其中,第1级驱动模块的输入端口朝向与至少一个第2级驱动模块的输入端口的朝向一致。
54.步骤170,将上述各级驱动模块作为一个子单元,根据拓扑组数确定子单元的组数,并沿垂直第一方向的第二方向对各个子单元进行排布;
55.步骤180,将第1级驱动模块的输入端口以沿第二方向设置的金属走线连接,将除第1级外同一级驱动模块中沿第一方向相邻的驱动模块的输入端口和输出端口各自分别以沿第一方向设置的金属走线连接,将沿第一方向不相邻的同一级驱动模块的输出端口以长方形金属走线连接,且下一级的输入端口与上一级的长方形金属走线相连接,使得各组子单元组成一个驱动单元,并且,将连接第1级驱动模块的输入端口的金属走线作为驱动单元的输入端,将连接最高一级驱动模块的输出端口的长方形金属走线作为驱动单元的输出端,通过驱动单元驱动负载。
56.具体的,驱动单元的驱动能力通过最高一级驱动模块的驱动能力与数量的乘积计算得到。
57.进一步的,驱动单元的驱动能力分别与各级驱动模块中每个当前一级与前一级的驱动模块的驱动能力的比值的乘积、各级驱动模块中每个当前一级与前一级的驱动模块的数量之比的乘积、以及拓扑组数分别呈正相关。
58.采用上述方法可以获得如图2所示的可灵活配置驱动能力的驱动单元的拓扑结构。其中l1就是第1级驱动模块,l2是第二级驱动模块,l3是第3级驱动模块,
……
ln是第n级驱动模块。图中i表示输入接口,o表示输出接口。第一方向、第二方向参见图2中右上角的指示标记。
59.本发明实施例提供的基于标准单元库的可灵活配置驱动能力的方法,能够基于标准单元库通过拓扑结构实现驱动单元的构建,从而获得满足负载驱动能力要求的驱动单元,实现驱动能力的可灵活配置。
60.下面以一些具体实例来说明。
61.实施例1
62.本实施例要实现一个相对驱动能力为x64的驱动单元的配置。
63.首先根据标准单元库确定可用的驱动模块,根据需求计算并从可用的驱动模块中进行选择,确定一个子单元中第1级驱动模块l1(单个模块的相对驱动能力为x4)驱动4个第2级驱动模块(单个模块的相对驱动能力为x4),每个第2级驱动模块驱动1个第3级驱动模块l3(单个模块的相对驱动能力为x8)。上述模块组成一个子单元,驱动单元中子单元的拓扑
组数为2。实现的结构如图3所示。
64.因此驱动单元的驱动能力就相当于x64。也就是基于标准单元库实现了x64的驱动能力配置。当然,对于可用的驱动模块的选择不唯一,每级驱动模块的数量和拓扑组数都可以根据各级驱动模块的选用而适应性调整。
65.实施例2
66.本实施例要实现一个相对驱动能力为x64的驱动单元的配置。
67.首先根据标准单元库确定可用的驱动模块,确定一个子单元中第1级驱动模块l1(单个模块的相对驱动能力为x4)驱动1个第2级驱动模块(单个模块的相对驱动能力为x4),每个第2级驱动模块驱动1个第3级驱动模块l3(单个模块的相对驱动能力为x8),每个第3级驱动模块驱动1个第4级驱动模块l4(单个模块的相对驱动能力为x16)。上述模块组成一个子单元,驱动单元中子单元的拓扑组数为2。实现的结构如图4所示。
68.因此驱动单元的驱动能力就相当于x64。也就是基于标准单元库实现了x64的驱动能力配置。
69.实施例3
70.本实施例要实现一个相对驱动能力为x64的驱动单元的配置。
71.首先根据标准单元库确定可用的驱动模块,确定一个子单元中第1级驱动模块l1(单个模块的相对驱动能力为x8)驱动2个第2级驱动模块(单个模块的相对驱动能力为x8),每个第2级驱动模块驱动1个第3级驱动模块l3(单个模块的相对驱动能力为x16)。上述模块组成一个子单元,驱动单元中子单元的拓扑组数为2。实现的结构如图5所示。
72.因此驱动单元的驱动能力就相当于x64。也就是基于标准单元库实现了x64的驱动能力配置。
73.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1