一种基于Tcl/Tk脚本的逻辑单元过渡时间违约的修复方法与流程
未命名
07-20
阅读:79
评论:0

一种基于tcl/tk脚本的逻辑单元过渡时间违约的修复方法
技术领域
1.本技术涉及半导体集成电路中数字物理设计技术领域,尤其涉及一种基于tcl/tk脚本的逻辑单元过渡时间违约的修复方法。
背景技术:
2.在数字电路物理实现过程中,首先需要设置逻辑约束,如扇出、过渡时间、负载电容。其中,约束过渡时间(transition time)的目的是为了保证电路的正确性、可靠性和稳定性。约束过渡时间(transition time)的具体原因有以下几个方面:一、保证电路的正确性:当电路中的信号由一个状态切换到另一个状态时,如果过渡时间太长或者太短,就可能导致电路的误动或错动,从而导致电路功能异常。二、控制电路时钟频率:时钟频率是数字电路中非常重要的参数,它决定了电路的工作速度和性能。为了保证电路时钟频率的稳定和正确,需要控制电路中信号的过渡时间。三、减少功耗:当信号从一个电平切换到另一个电平时,会有瞬间的电流浪涌,这会增加电路的功耗,而约束过渡时间(transition time)可以减少信号过渡时间,从而减少功耗。四、提高电路可靠性:约束过渡时间(transition time)可以减少信号的上升时间和下降时间,从而减少信号的噪声和干扰,提高电路的可靠性和抗干扰能力。因此,约束过渡时间(transition time)是数字电路设计中非常重要的一环,它可以保证电路的正确性、可靠性和稳定性,提高电路的性能和功耗等方面的优化,这时候通常的解决方案一种是手动修复,但是违约的数目如果过大,手动修复的效率太低。
技术实现要素:
3.基于此,本技术为解决手动修复过渡时间违约效率低的问题,以及针对实际应用中对成像结果专业性知识的高要求性,提供了一种基于tcl/tk脚本的逻辑单元过渡时间违约的修复方法。
4.本技术提供了一种基于tcl/tk脚本的逻辑单元过渡时间违约的修复方法,包括:
5.输入一个或者多个过渡时间违约pin引脚的全称构建一个列表,并作为参数;
6.遍历过渡时间违约pin引脚,抓出对应违约pin引脚的连线,并判断连线的属性;
7.基于所述连线的属性,对过渡时间违约的pin引脚进行修复,并采用tcl编写软件的逻辑处理部分,使用tk编写软件图形化界面。
8.所述连线的属性包括clock属性和signal属性,基于所述连线的属性,判断是否需要更换驱动单元或插入缓冲单元。
9.是否需要更换驱动单元或插入缓冲单元的判断包括,
10.若连线属性为clock属性,则抓取连线上的驱动单元,并将所述驱动单元替换成更大的驱动单元;
11.若连线属性为signal属性,则抓取连线上的驱动单元,并根据连线长度判断是否需要更换驱动单元或插入缓冲单元。
12.当连线为signal属性,根据连线长度判断是否需要更换驱动单元或插入缓冲单元
的具体步骤包括,
13.设定一个连线数值a,若连线大于a,则插入缓冲单元打断;
14.若连线小于a,则更换驱动单元或插入缓冲单元。
15.包括,
16.当连线小于a,更换驱动单元或插入缓冲单元的具体操作包括,
17.当连线小于a时,根据驱动单元的驱动能力的大小更换驱动单元或插入缓冲单元;
18.设定一个驱动数值q,若驱动能力小于q且有更大的同类型驱动单元,则替换成更大的驱动单元,若驱动能力小于q且没有更大的同类型驱动单元,则在驱动单元的输出端插入一个驱动能力为q的缓冲单元;
19.若驱动能力大于q,则抓取连线的扇出单元。
20.还包括,
21.设定一个扇出数量值n,若扇出单元数量大于n,则将连线连接的扇出单元的数量降为一半;
22.若扇出单元数量小于n,则在扇出单元到驱动单元连线的中间处插入驱动为q的缓冲单元。
23.还包括,
24.所述驱动数值q的设定,取决于过渡时间。
25.所述参数的获取包括,
26.软件得到过渡时间违约pin引脚的信息,自动提取所有过渡时间违约引脚相连的连线长度、连线上的驱动单元以及驱动单元连接的扇出单元的信息,自动对驱动单元名称做去重处理。
27.有益效果:本技术实现逻辑单元过渡时间违约的批量修复,减少迭代次数,加速了逻辑约束收敛的时间,节省了大量的人力和时间的投入,保证电路的正确性、可靠性和稳定性,提高电路的性能和功耗等方面的优化。
28.应当理解,本部分所描述的内容并非旨在标识本技术的实施例的关键或重要特征,也不用于限制本技术的范围。本技术的其它特征将通过以下的说明书而变得容易理解。
附图说明
29.附图用于更好地理解本方案,不构成对本技术的限定。其中:
30.图1是根据本技术第一实施例的流程图;
31.图2是根据本技术第二实施例的连线很长导致的过渡时间的违约的案例图;
32.图3是根据本技术第二实施例的驱动能力太小导致的过渡时间违约的案例图;
33.图4是根据本技术第二实施例的扇出单元多导致的过渡时间违约的案例图;
34.图5是根据本技术第二实施例的扇出单元输入引脚电容大引起的过渡时间违约的案例图;
35.图6是根据本技术第二实施例的修复过渡时间违约的软件菜单示意图;
36.图7是根据本技术第二实施例的修复过渡时间违约的软件图形界面展示图;
37.图8是根据本技术第二实施例的修复前的过渡时间报告示意图;
38.图9是根据本技术第二实施例的修复后的过渡时间报告示意图。
具体实施方式
39.以下结合附图对本技术的示范性实施例做出说明,其中包括本技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
40.实施例1
41.参照图1,为本技术的第一个实施例,提供了一种基于tcl/tk脚本的逻辑单元过渡时间违约的修复方法,包括:
42.s1:输入一个或者多个过渡时间违约pin引脚的全称构建一个列表,并作为参数。需要说明的是:
43.参数的获取包括,
44.软件得到过渡时间违约pin引脚的信息,自动提取所有过渡时间违约引脚相连的连线长度、连线上的驱动单元以及驱动单元连接的扇出单元的信息,自动对驱动单元名称做去重处理。
45.s2:遍历过渡时间违约pin引脚,抓出对应违约pin引脚的连线,并判断连线的属性。
46.s3:基于连线的属性,对过渡时间违约的pin引脚进行修复,并采用tcl编写软件的逻辑处理部分,使用tk编写软件图形化界面。需要说明的是:
47.连线的属性包括clock属性和signal属性,基于连线的属性,判断是否需要更换驱动单元或插入缓冲单元。
48.是否需要更换驱动单元或插入缓冲单元的判断包括,
49.若连线属性为clock属性,则抓取连线上的驱动单元,并将驱动单元替换成更大的驱动单元;时钟树在设计好之后,一般不轻易修改它,因为时钟树的修改可能会对整个设计产生重大影响,所以如果时钟树上有少量的逻辑单元pin过渡时间违约,只可以用替换更大驱动单元的方法。
50.若连线属性为signal属性,则抓取连线上的驱动单元,并根据连线长度判断是否需要更换驱动单元或插入缓冲单元。
51.当连线为signal属性,根据连线长度判断是否需要更换驱动单元或插入缓冲单元的具体步骤包括,
52.设定一个连线数值a,若连线大于a,则插入缓冲单元打断;
53.若连线小于a,则更换驱动单元或插入缓冲单元。
54.驱动单元的输出端连线就是违约pin引脚的连线,连线数值a的判断和把控,取决于设计需求。
55.进一步的,当连线小于a,更换驱动单元或插入缓冲单元的具体操作包括,
56.当连线小于a时,根据驱动单元的驱动能力的大小更换驱动单元或插入缓冲单元;
57.设定一个驱动数值q,若驱动能力小于q且有更大的同类型驱动单元,则替换成更大的驱动单元,若驱动能力小于q且没有更大的同类型驱动单元,则在驱动单元的输出端插入一个驱动能力为q的缓冲单元。
58.再进一步的,太大驱动的缓冲单元的输入端的pin电容太大,会引起缓冲单元的输
入端的过渡时间(input transition)违约,太小驱动缓冲单元驱动力不够,会引起连接的扇出单元的输入端的过渡的违约,驱动数值q的设定,取决于过渡时间(input transition),不引起过渡时间(input transition)违约即可。
59.再进一步的,若驱动能力大于q,则抓取连线的扇出单元。
60.设定一个扇出数量值n,若扇出单元数量大于n,则将连线连接的扇出单元的数量降为一半;
61.扇出单元的数量降为一半,是由于扇出单元输入引脚多,导致负载电容大,所以要降低一半数量,减小负载电容,降低过渡时间违约。
62.若扇出单元数量小于n,则在扇出单元到驱动单元连线的中间处插入驱动为q的缓冲单元,扇出单元数量n的设定,取决于设计要求。
63.在扇出单元的附近插入缓冲单元的原因是扇出单元的引脚电容大,引起负载电容大,所以插入缓冲单元,增加驱动能力,降低过渡时间违约。
64.本技术实现逻辑单元过渡时间违约的批量修复,减少迭代次数,加速了逻辑约束收敛的时间,节省了大量的人力和时间的投入,保证电路的正确性、可靠性和稳定性,提高电路的性能和功耗等方面的优化。
65.实施例2
66.参照图2~9,为本技术的第二个实施例,本技术使用tcl脚本编写逻辑处理部分的功能,使用tk编写图形化操作界面,使用数字物理设计软件提供的接口将编写软件集成到菜单栏中即可。
67.本实施例中,设置连线长度a为150um,驱动能力q为x8,扇出单元的数量n为16。如图2所示,由于连线过长导致的过渡时间违约的案例,图2中驱动单元到扇出单元的连线大概长度为403.89um,由于连线远远大于150um,导致的过渡时间的违约,通过插入三个buf_x8n_a9tsl_c14缓冲单元解决了过渡时间的违约。
68.接着,如果连线小于150um,则判断驱动单元的驱动能力的大小,如果驱动能力小于x8且有更大的同类型驱动单元,则替换成更大的驱动单元,如果没有更大的同类型驱动单元,则在驱动单元的输出端插入一个驱动能力为x8的缓冲单元buf_x8n_a9tsl_c14,这个缓冲单元的驱动能力不能太大也不能太小,太大驱动的缓冲单元的输入端的pin电容太大,会引起缓冲单元的输入端的过渡时间(input transition)违约,太小驱动缓冲单元驱动力不够,会引起连接的扇出单元的输入端的过渡的违约。
69.如图3,图3中驱动单元为inv_x2r_a9tl_c14,驱动单元到扇出单元的连线大概长度为10.114um,连线远远小于150um,驱动能力为x2,驱动能力太小,导致的过渡时间违约,通过替换驱动力更大的驱动单元inv_x4r_a9tsl_c14解决了过渡时间的违约。
70.最后,如果连线小于150um且驱动能力大于x8,说明连线扇出的负载电容比较大,而负载电容由线电容和连接扇出单元的输入引脚电容组成,而连线小于150um,连线不长,那这种情况下负载电容大的原因:一、连接的扇出单元的数量多;二、连接的扇出单元的输入引脚电容大。所以,抓取连线的扇出单元数量,数量大于16个,则将连线连接的扇出单元的数量降为一半,减小负载电容,降低过渡时间违约;如果扇出单元数量小于16个,则在扇出单元到驱动单元连线的中间处插入驱动为x8的缓冲单元buf_x8n_a9tsl_c14,增加驱动单元的驱动能力,降低过渡时间违约。
71.图4,扇出单元数量大于16,扇出单元过多导致的过渡时间违约的案例,如图4所示,驱动单元是buf_x16n_a9tsl_c14,驱动能力是x16,驱动能力足够,驱动单元到扇出单元的连线大概长度为94.33um,连线小于150um,连线不长,扇出单元数量一共有36个,大于16个,通过插入缓冲单元降低扇出单元的数量解决了过渡时间的违约。
72.图5,扇出单元数量小于16,由于输入引脚电容大引起的过渡时间违约的案例,图5中驱动单元是mxt2_x6n_a9tsl_c14,驱动单元mxt2_x6n_a9tsl_c14已经是同类型中最大驱动力的逻辑单元了,没有更大驱动的可以替换了,驱动单元到扇出单元的连线大概长度为99.126um,小于150um,不是很长,扇出单元分别是mxt2_x0p5n_a9tsl_c14和buf_x16n_a9tsl_c14,扇出单元buf_x16n_a9tsl_c14的驱动能力是x16,输入pin电容大,则在扇出单元buf_x16n_a9tsl_c14到驱动单元mxt2_x6n_a9tsl_c14连线的中间处插入驱动为x8的缓冲单元buf_x8n_a9tsl_c14,解决了过渡时间的违约。
73.使用本方法仅需输入过渡时间违约引脚的全称作为参数,软件得到这些信息之后,就会自动提取所有过渡时间违约引脚相连的连线长度、连线上的驱动单元以及驱动单元连接的相关的扇出单元的信息,自动对驱动单元名称做去重处理,根据设定值,自动对比判断连线的长度,替换大驱动的驱动单元,降低扇出数量和插入驱动能力为q的缓冲单元。本方法仅仅需要输入一个参数就解决了对应引脚的过渡时间违约的问题,实现逻辑单元过渡时间违约的批量修复,大大的减少了手工操作,极大的提高了效率。
74.1、根据算法流程编写过渡时间修复软件,主要使用tcl编写软件的逻辑处理部分,图形化界面使用tk来实现。
75.2、接着在linux系统(一种开源操作系统)下启动icc2,在icc2的对话框中读取源程序文件,就可以把这个软件集成在icc2的菜单栏中。如图6所示,具体位置在菜单tcl program下。
76.3、在tcl program菜单下会看到一个选项fix_transition,详细界面如图7所示,在第一个输入栏中输入多个过渡时间违约pin引脚名,图7中输入了version_reg_17_13_10_6_/r、version_reg_14_12_11_9_/r、header_reg_3_0_/r这三个过渡时间违约的pin引脚名作为示例,设置完成之后点击按钮fix之后,这个fix按钮基于tk,与修复过渡时间软件启动命令绑定在一起,这样软件就会自动修复合个过渡时间违约问题。
77.从图8中的修复前的报告可以看出version_reg_17_13_10_6_/r、version_reg_14_12_11_9_/r、header_reg_3_0_/r这三个引脚的实际过渡时间(actual transition)值分别是0.4765、0.4763、0.4745,而约束的过渡时间(require transition)是0.3456,因此这三个引脚过渡时间裕量值(slack)分别是-0.1309、-0.1307、-0.1289,三个引脚的每行后面标着violated的字样。如图9所示修复后的报告中可以看出,这三个引脚的实际过渡时间(actual transition)值分别是0.2263、0.2262、0.2252,过渡时间裕量值(slack)分别是0.1193、0.1194、0.1204,且三个引脚的每行后面标着met的字样。从报告中可以看出version_reg_17_13_10_6_/r、version_reg_14_12_11_9_/r、header_reg_3_0_/r这三个引脚的过渡时间违约的问题,已经成功解决了。
78.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件
可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。
79.所述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
80.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
81.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
82.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
技术特征:
1.一种基于tcl/tk脚本的逻辑单元过渡时间违约的修复方法,其特征在于,包括:输入一个或者多个过渡时间违约pin引脚的全称构建一个列表,并作为参数;遍历过渡时间违约pin引脚,抓出对应违约pin引脚的连线,并判断连线的属性;基于所述连线的属性,对过渡时间违约的pin引脚进行修复,并采用tcl编写软件的逻辑处理部分,使用tk编写软件图形化界面。2.根据权利要求1所述的一种基于tcl/tk脚本的逻辑单元过渡时间违约的修复方法,其特征在于:所述连线的属性包括clock属性和signal属性,基于所述连线的属性,判断是否需要更换驱动单元或插入缓冲单元。3.根据权利要求2所述的一种基于tcl/tk脚本的逻辑单元过渡时间违约的修复方法,其特征在于:是否需要更换驱动单元或插入缓冲单元的判断包括,若连线属性为clock属性,则抓取连线上的驱动单元,并将所述驱动单元替换成更大的驱动单元;若连线属性为signal属性,则抓取连线上的驱动单元,并根据连线长度判断是否需要更换驱动单元或插入缓冲单元。4.根据权利要求3所述的一种基于tcl/tk脚本的逻辑单元过渡时间违约的修复方法的方法,其特征在于:当连线为signal属性,根据连线长度判断是否需要更换驱动单元或插入缓冲单元的具体步骤包括,设定一个连线数值a,若连线大于a,则插入缓冲单元打断;若连线小于a,则更换驱动单元或插入缓冲单元。5.根据权利要求4所述的一种基于tcl/tk脚本的逻辑单元过渡时间违约的修复方法,其特征在于:包括,当连线小于a,更换驱动单元或插入缓冲单元的具体操作包括,当连线小于a时,根据驱动单元的驱动能力的大小更换驱动单元或插入缓冲单元;设定一个驱动数值q,若驱动能力小于q且有更大的同类型驱动单元,则替换成更大的驱动单元,若驱动能力小于q且没有更大的同类型驱动单元,则在驱动单元的输出端插入一个驱动能力为q的缓冲单元;若驱动能力大于q,则抓取连线的扇出单元。6.根据权利要求5所述的一种基于tcl/tk脚本的逻辑单元过渡时间违约的修复方法,其特征在于:还包括,设定一个扇出数量值n,若扇出单元数量大于n,则将连线连接的扇出单元的数量降为一半;若扇出单元数量小于n,则在扇出单元到驱动单元连线的中间处插入驱动为q的缓冲单元。7.根据权利要求5或6所述的一种基于tcl/tk脚本的逻辑单元过渡时间违约的修复方法,其特征在于:还包括,所述驱动数值q的设定,取决于过渡时间。8.根据权利要求7所述的一种基于tcl/tk脚本的逻辑单元过渡时间违约的修复方法,其特征在于:所述参数的获取包括,软件得到过渡时间违约pin引脚的信息,自动提取所有过渡时间违约引脚相连的连线
长度、连线上的驱动单元以及驱动单元连接的扇出单元的信息,自动对驱动单元名称做去重处理。
技术总结
本申请公开了一种基于Tcl/Tk脚本的逻辑单元过渡时间违约的修复方法,涉及半导体集成电路中数字物理设计技术领域领域。具体实现方案为:输入一个或者多个过渡时间违约pin引脚的全称构建一个列表,并作为参数;遍历过渡时间违约pin引脚,抓出对应违约pin引脚的连线,并判断连线的属性;基于所述连线的属性,对过渡时间违约的pin引脚进行修复,并采用Tcl编写软件的逻辑处理部分,使用Tk编写软件图形化界面。本申请实现逻辑单元过渡时间违约的批量修复,减少迭代次数,加速了逻辑约束收敛的时间,保证电路的正确性、可靠性和稳定性,提高电路的性能和功耗等方面的优化。的性能和功耗等方面的优化。的性能和功耗等方面的优化。
技术研发人员:杨露
受保护的技术使用者:上海亿家芯集成电路设计有限公司
技术研发日:2023.04.23
技术公布日:2023/7/18
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/