根据PVT操作条件的变化优化电路性能的芯片设计方法与流程

文档序号:18465772发布日期:2019-08-17 02:26阅读:933来源:国知局
本申请要求于2018年2月2日在韩国知识产权局提交的韩国专利申请第10-2018-0013436号和于2018年8月6日在韩国知识产权局提交的韩国专利申请第10-2018-0091443号的权益,其公开内容通过引用整体并入本文。本发明构思涉及一种芯片设计方法,并且更具体地,涉及一种根据工艺、电压和温度(process,voltage,andtemperature,pvt)条件的变化来优化电路性能的芯片设计方法。
背景技术
::由于微工艺(microprocess)的分散(dispersion)的相对增加(工艺变化)、根据使用场景的操作电压调整(电压变化)以及使操作环境多样化(温度变化),高性能电路可以被设计为在宽pvt范围内操作。随着pvt操作条件变化,晶体管和电路互连的延迟特性或功率特性发生变化,因此电路性能变化很大。为了考虑根据pvt操作条件而变化的电路的特性来确保一致的操作,可以选择各种pvt端角(pvtcorner)并且可以将每个pvt端角所需的性能确定为规范。然后可以执行多端角签核(sign-off)流程(flow),使得电路满足每个pvt端角中的相应规范。在这样的流程中,通过示出通过静态时序分析(statictiminganalysis,sta)找到的时序关键路径满足规范,能够完成每个端角的时序签核。尽管上述方法确保了每个签核端角中的电路性能,但是当电路在签核端角外的条件下操作时,不能保证电路性能满足目标规范。技术实现要素:本发明构思的实施例提供了一种芯片设计方法,其可以提供在各种工艺、电压和温度(pvt)操作下匹配目标规范的电路操作。根据本发明构思的一个方面,提供了一种设计具有集成电路的芯片的方法,该方法包括获得关于形成集成电路的多个单元和多个连线的根据pvt端角变化的增量单元延迟和增量连线延迟,通过使用增量单元延迟和增量连线延迟,分析关于根据集成电路中的多个路径的pvt端角变化的延迟的灵敏度,基于分析的结果确定多个路径当中的n个灵敏度关键路径,其中n是大于或等于0的整数,并且基于确定的结果执行工程变更命令(engineeringchangeorder,eco)。根据本发明构思的另一方面,提供了一种通过使用与多个pvt端角相对应的设计数据来设计具有集成电路的芯片的方法,该方法包括在多个pvt端角当中选择第一pvt端角和第二pvt端角,分析关于根据从集成电路中的多个路径的第一pvt端角到第二pvt端角的pvt端角变化的延迟的灵敏度,基于分析的结果从多个路径当中检测在除了上述pvt端角之外的第三pvt端角处预期违反时序约束的路径,并且基于检测的结果执行工程变更命令(eco)。根据本发明构思的另一方面,提供了一种非暂时性处理器可读存储介质,其上存储有能够由处理器执行以用于设计具有集成电路的芯片的指令,该处理器被配置为获得关于形成集成电路的多个单元和多个连线的根据工艺、电压和温度(pvt)端角变化的增量单元延迟和增量连线延迟,通过使用增量单元延迟和增量连线延迟来分析关于根据集成电路中的多个路径的pvt端角变化的延迟的灵敏度,基于分析的结果确定多个路径当中的n个灵敏度关键路径,其中n是大于或等于0的整数,并且基于确定的结果执行工程变更命令(eco)。附图说明通过以下结合附图的详细描述,将更清楚地理解本发明构思的实施例,其中:图1示出了根据本公开的实施例的采用路径灵敏度分析(pathsensitivityanalysis,psa)的数字设计流程的示例;图2a至2c是用于说明根据本公开的实施例的psa的有效性的图;图3是根据本公开的实施例的psa的流程图;图4是示出根据本公开的实施例的使用节点的芯片设计的集成电路中的路径的时序图;图5是用于详细描述根据本公开的实施例的获得psa中的保持灵敏度时间裕量(holdsensitivityslack)和建立灵敏度时间裕量(setupsensitivityslack)的方法的电路图;图6是用于详细说明根据本公开的实施例的图3的操作s210的流程图;图7是示出根据本公开的实施例的当在多个路径上执行静态时序分析(sta)和psa时获得的结果的示例的表格;图8a至8c是用于说明根据本公开的实施例的执行sta和psa的方法的流程图;图9a和9b示出了根据本公开的实施例的时钟树(clocktree)上的psa;图10是用于说明根据本公开的实施例的时钟树上的psa的流程图;图11是示出根据本公开的实施例的当对多个集成电路中的每一个集成电路的时钟树执行psa时获得的结果的示例的表格;图12是用于详细说明根据本公开的实施例的图10的操作s410的流程图;以及图13是根据本公开的实施例的计算系统的框图。具体实施方式图1示出了根据本公开的实施例的采用路径灵敏度分析(psa)的数字设计流程的示例。参考图1,在高级别,过程从产品构思开始(操作100),并且可以通过电子设计自动化(electronicdesignautomation,eda)软件设计过程(操作110)来实现。当设计完成时,可以将该过程下线(tapeout)(操作140)。在下线之后,可以执行制造过程(操作150),然后进行封装和组装过程(操作160)。结果,可以生成完成的芯片(操作170)。eda软件设计过程(操作110)可以包括多个操作(操作112到操作130)。然而,图1中所示的操作(例如,操作112至操作130)可以仅仅是示例性实施例。本公开不限于此,并且可以进一步添加新操作或者可以省略某些操作。在以下描述中,简要描述了eda软件设计过程(操作110)。在系统设计(操作112)中,设计者可以描述要实施的功能,细化该功能,以及执行假设(what-if)计划以检查成本。也可以在当前操作中执行硬件-软件架构划分。在逻辑设计和功能验证(操作114)中,记录关于系统中的模块的超高速集成电路(veryhighspeedintegratedcircuit,vhsic)硬件描述语言(vhsichardwaredescriptionlanguage,vhdl)或verilog代码,并且可以检查芯片设计中的功能准确性。详细地,可以检查芯片设计是否生成正确的输出。在用于测试的综合和设计(操作116)中,vhdl/verilog代码可以被转换为网表。可以优化网表以与目标技术匹配。此外,可以设计和实施允许检查完成的芯片的多个测试。在网表验证(操作118)中,可以测试网表是否匹配良好的时序约束和vhdl/verilog源代码。根据实施例的psa可以应用于操作118。在设计规划(操作120)中,可以配置和分析芯片的总体布图规划以用于芯片的时序和顶部布线。在物理实施(操作122)中,可以执行布局(电路元件的位置确定)和布线(电路元件的连接)。在分析和提取(操作124)中,可以在晶体管级验证电路功能。此外,根据实施例的psa可以应用于操作124。在物理验证(操作126)中,可以执行各种测试功能以确保制造的准确性,并且检查电气问题和光刻问题。在分辨率增强(操作128)中,执行布局的几何操纵,因此可以增强设计的可制造性。在掩模数据准备(操作130)中,用于掩模制造的“下线”数据可以用于产生芯片,诸如通过光刻产生的集成电路。在网表验证(操作118)以及分析和提取(操作124)中,与psa一起,可以使用静态时序分析(sta)。sta可以向设计者提供关于芯片设计的极值场景。极值场景可以包括在噪声和偏差的各种组合条件下,在设计速度受到时序路径的慢数据路径延迟影响的情况(建立关键路径)和由于数据路径延迟短于时序路径的时钟偏移(clockskew)而可能无法捕获正确的结果的情况(保持关键路径)当中具有最大问题的场景。详细地,sta可以定义预设多pvt(工艺、电压和温度)端角的每一个中的设备性能(例如,用以确定关于芯片设计的最大时钟速度的建立检查)和芯片缺陷(例如,用以识别特定竞争条件的保持检查)。通过基于sta的结果校正芯片设计,通过图1的设计流程制造的芯片可以在预设的多pvt端角处正常操作。然而,由于芯片正常操作的pvt条件的范围可能宽,操作118和操作124中的预设pvt端角可能与芯片实际操作的pvt条件不匹配。然而,可以执行psa以使得芯片可以在宽范围的pvt条件下正常操作。换句话说,psa可以以各种方式分析多pvt端角中的每一个pvt端角处的芯片设计中的路径的延迟变化量,并且当芯片在pvt端角之外的pvt条件下操作时检测成为瓶颈的路径。作为基于psa的结果的芯片设计的校正的结果,通过图1的设计流程制造的芯片可以在宽范围的pvt条件下正常操作。因此,芯片设计和制造系统可以基于多个预设pvt条件在芯片的设计上执行sta。然后,当在psa处指示至少一个scp在除了多个预设pvt条件之外的pvt条件下违反设计规则时,系统可以基于psa识别芯片的至少一个灵敏度关键路径(sensitivitycriticalpath,scp)。然后,系统可以至少部分地基于sta和scp来修改设计,使得芯片被配置为基于修改的设计在pvt条件下正常操作。最后,系统可以基于修改的设计制造芯片。根据一个实施例,psa可以与sta并行地执行,或者在sta之前或之后执行。可以通过使用sta的结果来执行psa,或者可以将psa的结果用于sta的执行。psa和sta可以互补地和不同地执行,并且参考图8a至8c描述其详细实施例。图2a至2c是用于说明根据本公开的实施例的psa的有效性的图。图2a是示出芯片设计的电路中根据不同pvt端角(pvt1-pvt3)的签核规范与路径延迟(路径a至路径c)的变化之间的关系的图。在以下描述中,假设施加到芯片的电压下降来描述pvt条件。随着芯片操作的pvt条件从第一pvt端角pvt1变为第二pvt端角pvt2,路径的延迟(路径a至路径c)趋于增加。其它pvt端角(即,包括pvt1和pvt2,但不包括第三pvt端角pvt3)可以是预设的pvt端角,以允许sta在图1的操作118和操作124中执行。换句话说,第一pvt端角pvt1和第二pvt端角pvt2可以被称为签核端角,并且第三pvt端角pvt3可以被称为非签核端角。可以将在第一pvt端角pvt1处具有最大延迟的第一路径(路径a)确定为第一pvt端角pvt1处的关键路径。此外,可以将在第二pvt端角pvt2处具有最大延迟的第二路径(路径b)确定为第二pvt端角pvt2处的关键路径。第一pvt端角pvt1处的第一路径(路径a)的延迟可以等于或小于值“d1”,其中值“d1”等于或小于签核约束规范,并且第二pvt端角pvt2处的第二路径(路径b)的延迟可以小于或等于值“d2”,其中值“d2”等于或小于签核约束规范。因此,芯片设计在sta方面可以被识别为合适的。然而,在第三pvt端角pvt3处具有最大延迟的第三路径(路径c)可以对应于作为通过sta未检测到的路径的灵敏度关键路径。灵敏度关键路径可以被定义为在特定pvt条件下(例如,第三pvt端角)因为延迟根据pvt端角的变化突然增加而预期违反设计规则(例如,保持违反(holdviolation)和/或建立违反(setupviolation))的路径。由于灵敏度关键路径(路径c)在除了签核端角之外的pvt条件(例如,延迟的突然增加)下变得关键,芯片(或芯片中的电路)的性能可能恶化。而且,由于当在宽范围的pvt条件下多个路径的延迟变化时灵敏度关键路径(路径c)使得变化趋势不规则,设计时序、功率等的优化效率可能恶化。参考图2b,利用在签核端角pvt1和pvt2中的每一个处独立执行的sta的结果,可能不容易识别灵敏度关键路径。相反,参考图2c,可以通过psa识别在从第一pvt端角pvt1到第二pvt端角pvt2的变化期间路径(路径a至路径c)中的每一个的增加的延迟,这可以指示第三路径(路径c)的延迟大于第一路径(路径a)或第二路径(路径b)的延迟。因此,可以预期第三路径(路径c)在图2a的第三pvt端角pvt3处的pvt条件下变为灵敏度关键路径。如上所示,psa可以检测sta未检测到的灵敏度关键路径,并且因此可以考虑该灵敏度关键路径来制造能够在宽范围的pvt条件下执行稳定操作的芯片。图3是根据本公开的实施例的psa的流程图。参考图3,可以获得关于芯片设计的集成电路中的路径的根据pvt端角变化的增量延迟(s200)。在实施例中,可以针对形成集成电路的多个单元和多个连线获得根据pvt端角变化的增量单元延迟和增量连线延迟。例如,设计数据可以包括指示在从第一pvt端角到第二pvt端角的变化期间单元和连线中的每一个的延迟变化量的库,并且可以通过读取设计数据来获得增量单元延迟和增量连线延迟。在另一示例中,设计数据可以包括指示第一pvt端角处的单元和连线中的每一个的第一延迟以及第二pvt端角处的单元和连线中的每一个的第二延迟的库,并且可以通过从设计数据读取第一延迟和第二延迟并计算第一延迟和第二延迟之间的差来获得增量单元延迟和增量连线延迟。然而,用于获得增量延迟的这个过程构成一个实施例,并且本公开不限于此。例如,还可以通过使用关于包括在设计数据中的网表、寄生效应或库的信息、或者通过使用sta的结果来获得增量延迟。此外,可以通过使用sta的结果(例如,从用于获得保持时间裕量(holdslack)和建立时间裕量(setupslack)的数据、或者保持时间裕量和建立时间裕量的结果值)获得增量单元延迟和增量连线延迟。因此,获得增量延迟的上述实施例是示例,并且本公开不限于此,并且可以使用各种其他方法来获得增量延迟。在一个示例中,可以为psa选择至少两个pvt端角,并且所选择的pvt端角中的至少一个可以是施加到集成电路的操作电压最低的端角,或者可以是集成电路的温度最高的端角。此外,在实施例中,执行psa时的pvt端角变化可以在施加到集成电路的操作电压降低或集成电路的温度升高的方向上。在步骤s200之后,关于芯片设计的集成电路中的路径,可以基于根据pvt端角变化的增量延迟来分析路径灵敏度(s210)。在实施例中,可以通过使用集成电路的单元的增量单元延迟和集成电路的连线的增量连线延迟来分析关于根据集成电路中的路径的pvt端角变化的延迟的灵敏度。根据实施例的psa的等式在下面的等式1和2中示出:其中hssense指的是保持灵敏度时间裕量,sssense指的是建立灵敏度时间裕量,并且δd指的是两个pvt端角的增量延迟。在上述等式中,假设在从第一pvt端角pvt1到第二pvt端角pvt2的变化期间获得hssense和sssense。因此,hssense可以通过从数据路径中的最快增量单元延迟和最快增量连线延迟的和值中减去与数据路径相对应的时钟路径中的最慢增量单元延迟和最慢增量连线延迟的和值来获得。当hssense大于0时,保持时间裕量随着从第一pvt端角pvt1到第二pvt端角pvt2的变化而增加,这可能表示保持特性的改善。当hssense小于0时,保持时间裕量根据从第一pvt端角pvt1到第二pvt端角pvt2的变化而减小,这可能表示保持特性的恶化。可以通过psa检测hssense小于0的路径。特别地,可以预期具有超过阈值的hssense的极值保持灵敏度时间裕量路径稍后在另一pvt端角(例如,图2a的第三pvt端角)处做出保持违反(保持时间裕量小于0的情况),并且因此该极值保持灵敏度时间裕量路径可以被确定为灵敏度关键路径。建立灵敏度时间裕量sssense可以通过从时钟路径中的最快增量单元延迟和最快增量连线延迟的和值中减去与时钟路径相对应的数据路径中的最慢增量单元延迟和最慢增量连线延迟的和值来获得。当sssense大于0时,建立时间裕量根据从第一pvt端角pvt1到第二pvt端角pvt2的变化而增加,这可能表示建立特性的改善。当sssense小于0时,建立时间裕量随着从第一pvt端角pvt1到第二pvt端角pvt2的变化而减小,这可能表示建立特性的恶化。可以通过psa检测sssense小于0的路径。特别地,可以预期具有超过阈值的sssense的极值建立灵敏度时间裕量路径稍后在另一pvt端角(例如,图2a的第三pvt端角)处做出建立违反(建立时间裕量小于0的情况),并且因此该极值建立灵敏度时间裕量路径可以被确定为灵敏度关键路径。此外,集成电路中的多个路径可以具有不同的周期(period)。可以定义归一化建立灵敏度时间裕量nsssense以比较关于具有可以为每个性能路径获得的不同周期的路径的相对性能增加和减少(参考下面的等式3)。最后,可以基于路径灵敏度分析的结果来执行工程变更命令(eco)(s220)。详细地,通过执行eco,可以校正与在路径灵敏度分析s210中确定的灵敏度关键路径相对应的数据路径和与其对应的时钟路径中的至少一个。例如,eco可以指示对先前单元和连线的大小调整、和/或对新单元或连线的插入。因此,可以改善hssense和sssense。图4是示出根据本公开的实施例的使用节点的芯片设计的集成电路中的路径的时序图。参考图4,在经由多个节点a至g之间的连接从输入节点in开始并且在输出节点out处结束的时序图tg中,可以在输入节点in和输出节点out之间形成多个路径。节点可以是包括单元和/或连线的概念。集成电路可以包括多个路径,并且可以关于集成电路的所有路径执行psa。然而,这是示例实施例,并且本公开不限于此。当sta和psa一起执行时,可以基于sta的结果仅在路径中的一些上执行psa。例如,可以在除了根据sta的结果校正的路径之外的路径上执行psa。图5是用于详细描述根据本公开的实施例的获得psa中的保持灵敏度时间裕量和建立灵敏度时间裕量的方法的电路图。在以下描述中,假设在从第一pvt端角到第二pvt端角的变化期间执行psa。此外,可以将增量延迟定义为根据特定单元或连线从第一pvt端角变化到第二pvt端角的延迟变化量。图5示出了图4的时序图tg中的数据路径data_p和与其对应的时钟路径clk_p。参考图5,数据路径data_p可以包括第一至第三连线net1至net3、第一触发器ff1和反相器ivt,并且时钟路径clk_p可以包括第四和第五连线net4和net5以及缓冲器buf。第一和第二触发器ff1和ff2、反相器ivt和缓冲器buf可以对应于单元。首先,可以通过从数据路径data_p的最快增量单元延迟δd2min和δd4min与最快增量连线延迟δd1min、δd3min和δd5min的和值中减去时钟路径clk_p的最慢增量单元延迟δd7max与最慢增量连线延迟δd6max和δd8max的和值来获得保持灵敏度时间裕量。可以通过从时钟路径clk_p的最快增量单元延迟δd7min与最快增量连线延迟δd6min和δd8min的和值中减去数据路径data_p的最慢增量单元延迟δd2max和δd4max与最慢增量连线延迟δd1max、δd3max和δd5max的和值来获得建立灵敏度时间裕量。可以通过使用图5中描述的方法获得图4的时序图tg的路径上的保持灵敏度时间裕量和建立灵敏度时间裕量来执行psa。图6是用于详细说明根据本公开的实施例的图3的操作s210的流程图。参考图6,在操作s200(参见图4)之后,可以通过使用增量单元延迟和增量连线延迟来计算关于集成电路中的路径的时间裕量变化量(s212)。时间裕量变化量是指示每个路径的灵敏度的指标并且可以被称为灵敏度时间裕量,并且时间裕量变化量可以包括保持灵敏度时间裕量和建立灵敏度时间裕量中的至少一个。可以基于时间裕量变化量将多个路径中的n个路径(其中n是大于或等于0的整数)确定为灵敏度关键路径(s214)。在实施例中,可以检测保持灵敏度时间裕量和/或建立灵敏度时间裕量具有负值的路径,并且在检测到的路径当中保持灵敏度时间裕量和/或建立灵敏度时间裕量超过阈值的n个极值路径(其中n是大于或等于0的整数)可以被确定为灵敏度关键路径。然后,可以执行后续操作220。图7是示出了当在多个路径上执行sta和psa时获得的结果的示例的表格table_a。在以下描述中,省略与数据路径data_p1至data_p4中的每一个对应的时钟路径,并且主要根据本公开的实施例描述数据路径。参考图7,当在第一至第四数据路径data_p1至data_p4上执行sta和psa时,分析的结果可以被总结为如表格table_a所示。第一数据路径data_p1可以通过sta(pass),但是可以被确定为psa中的灵敏度关键路径(scp)。第二数据路径data_p2可以被确定为sta中的时序关键路径(tcp),但是可以通过psa(pass)。第三数据路径data_p3可以通过sta和psa二者(pass)。此外,第四数据路径data_p4可以被确定为sta中的tcp和psa中的scp。这样,可以基于sta和psa的结果来执行图3的操作220。因此,可以确定能够在宽范围的pvt条件下进行正常操作的芯片设计。图8a至8c是用于说明根据本公开的实施例的执行sta和psa的方法的流程图。参考图8a,根据实施例,psa和sta可以并行执行。详细地,计算集成电路中的多个路径的增量延迟(s300a),通过使用增量延迟来分析路径的路径灵敏度(s310a),并且基于路径灵敏度执行eco(s320a)。同时并且并行地,计算集成电路中的多个路径的延迟(s330a),通过使用延迟来分析路径的静态时序(s340a),并且基于静态时序执行eco(s350a)。参考图8b,根据实施例,可以通过使用psa的结果来执行sta。详细地,计算集成电路中的多个路径的增量延迟(s300b),通过使用增量延迟来分析路径的路径灵敏度(s310b),并且基于路径灵敏度执行eco(s320b),从而执行psa。此外,可以通过使用路径灵敏度分析s310b的结果来选择静态时序分析目标路径(s322b)。例如,可以选择除了在路径灵敏度分析s310b中被确定为灵敏度关键路径的路径之外的路径作为静态时序分析目标路径。然而,这是示例性的,并且可以采用通过使用路径灵敏度分析s310b的结果来选择静态时序分析目标路径的各种方法。然后,可以通过执行操作s330b至s350b来执行sta。参考图8c,根据实施例,可以通过使用sta的结果来执行psa。详细地,计算集成电路中的多个路径的延迟(s300c),通过使用延迟来分析路径的静态时序(s310c),并且基于静态时序执行eco(s320c),从而执行sta。此外,通过使用静态时序分析s310c的结果来选择路径灵敏度分析目标路径(s322c)。例如,可以选择除了在静态时序分析s310c中被确定为时序关键路径的路径之外的路径作为路径灵敏度分析目标路径。然而,这是示例性的,可以采用通过使用静态时序分析s310c的结果来选择路径灵敏度分析目标路径的各种方法。然后,可以通过执行操作s330c至s350c来完成psa。此外,由于通过使用通过静态时序分析s310c计算的保持时间裕量和建立时间裕量直接计算根据pvt端角的变化的保持时间裕量变化量和建立时间裕量变化量,因此可以获得上述保持灵敏度时间裕量和建立灵敏度时间裕量。根据需要可以省略操作s330c。图9a和9b示出了根据本公开的实施例的时钟树上的psa。在以下描述中,芯片设计可以包括多个集成电路,并且集成电路中的每一个可以包括一个或多个时钟树。图9a和9b示出了关于一个时钟树ct_a或ct_b的从时钟信号开始的节点nb开始并且到达内部节点的时钟路径的延迟。图9a示出了在第一pvt端角处生成的延迟,并且图9b示出了在第二pvt端角处生成的延迟。参考图9a,时钟树ct_a可以包括多个缓冲器buf和多个第一至第四触发器ff1至ff4。时钟树ct_a可以包括多个第一至第四时钟路径clk_p1至clk_p4,并且从时钟信号开始的节点nb到第一至第四触发器ff1至ff4中的每一个触发器的第二至第四时钟路径clk_p2至clk_p4的延迟可以被定义为第一至第四触发器ff1至ff4的时钟延时(clocklatency)。例如,第一触发器ff1的时钟延时可以是对应于第一时钟路径clk_p1到第一触发器ff1的延迟的第一时钟延时latency_a。此外,到时钟树ct_a中的目标触发器的时钟路径的延迟与其它时钟路径的延迟之间的最大延迟差可以被定义为目标触发器的时钟偏移。例如,第一触发器ff1的时钟偏移可以是第一时钟偏移skew_a,其中第一时钟偏移skew_a是第一时钟路径clk_p1到第一触发器ff1的延迟或时钟延时与第二时钟路径clk_p2到第二触发器ff2的延迟或时钟延时之间的差。在以下描述中,目标触发器的时钟延时可以被称为关于与目标触发器相对应的目标时钟路径的时钟延时,并且目标触发器的时钟偏移可以被称为关于与目标触发器相对应的目标时钟路径的时钟偏移。参考图9b,时钟树ct_b可以包括多个第一至第四时钟路径clk_p1至clk_p4,其中延迟根据pvt端角变化而变化。换句话说,图9b的时钟树ct_b的第一至第四时钟路径clk_p1至clk_p4的延迟可以大于图9a的时钟树ct_a的第一至第四时钟路径clk_p1至clk_p4的延迟。在图9b中,像图9a一样,第一时钟路径clk_p1的延迟可以对应于时钟延时latency_b,并且第一时钟路径clk_p1和第二时钟路径clk_p2之间的延迟差可以对应于时钟偏移skew_b。根据实施例的时钟树上的psa可以计算根据pvt端角变化的第一至第四触发器ff1至ff4中的每一个的时钟延时变化量(例如,通过从图9b的第一触发器ff1的时钟延时(latency_b)减去图9a的第一触发器ff1的时钟延时(latency_a)而获得的值)、以及第一至第四触发器ff1至ff4中的每一个的时钟偏移变化量(例如,通过从图9b的第一触发器ff1的时钟偏移(skew_b)减去图9a的第一触发器ff1的时钟偏移(skew_a)而获得的值),分别作为时钟延时灵敏度和时钟偏移灵敏度。在以下描述中,目标触发器的时钟延时灵敏度可以被称为与目标触发器相对应的时钟路径的时钟延时灵敏度,并且目标触发器的时钟偏移灵敏度可以被称为与目标触发器相对应的时钟路径的时钟偏移灵敏度。例如,当第一触发器ff1的时钟延时变化量(或者,时钟延时灵敏度)超过阈值时,预期在另一pvt端角(例如,图2a的第三pvt端角)处连接到第一时钟路径clk_p1的数据路径可能会稍后做出保持违反或建立违反。因此,可能需要对第一时钟路径clk_p1的校正。可以通过使用时钟延时灵敏度和时钟偏移灵敏度来确定灵敏度关键时钟路径,并且可以在灵敏度关键时钟路径上执行eco。在相同的方法中,可以对时钟树中的每一个时钟树执行psa。图10是用于说明根据本公开的实施例的时钟树上的psa的流程图。参考图10,可以计算关于集成电路中的时钟树的多个时钟路径的根据pvt端角变化的时钟延时变化量和时钟偏移变化量(s400)。可以通过将时钟延时变化量和时钟偏移变化量分别确定为时钟延时灵敏度和时钟偏移灵敏度来分析多个时钟路径的灵敏度(s410)。然后,可以基于时钟路径的灵敏度在时钟树上执行eco(s420)。psa和eco可以在生成时钟路径的操作之后的操作中执行,进一步在生成所有数据路径之前的操作中执行。图11是示出根据本公开的实施例的当在多个集成电路中的每一个的时钟树上执行psa时获得的结果的示例的表格。参考图11,芯片设计中的任何一个时钟树可以包括第一至第四时钟路径clk_p1至clk_p4,并且当在第一至第四时钟路径clk_p1至clk_p4上执行psa时,分析的结果可以总结为如表格table_b所示。第一至第四时钟路径clk_p1至clk_p4可以分别具有特定值l1至l4作为时钟延时灵敏度、以及特定值s1至s4作为时钟偏移灵敏度。图12是用于详细说明根据本公开的实施例的图10的操作s410的流程图。参考图12,在图10的操作s400之后,可以分析集成电路中的时钟树中包括的时钟路径的目标时钟路径的时钟延时灵敏度(s411)。接下来,可以确定时钟延时灵敏度是否超过第一阈值(s412)。当时钟延时灵敏度超过第一阈值时(s412,是),可以分析目标时钟路径的时钟偏移灵敏度(s413)。当时钟偏移灵敏度超过第二阈值时(s414,是),可以将目标时钟路径确定为灵敏度关键时钟路径(s415)。当时钟延时灵敏度未超过第一阈值时(s412,否),时钟偏移灵敏度不超过第二阈值(s414,否),或者在操作s415之后,可以确定成为psa的目标的时钟路径是否是最终时钟路径(s416)。当时钟路径不是最终时钟路径时(s416,否),选择下一时钟路径作为目标时钟路径(s417),并且因此可以执行操作s411。当时钟路径是最终时钟路径时(s416,是),可以执行图10的操作s420。图13是根据本公开的实施例的计算系统1000的框图。参考图13,计算系统1000可以包括专用集成电路(applicationspecificintegratedcircuit,asic)1010、专用指令集处理器(applicationspecificinstructionsetprocessor,asip)1030、存储器1050、主处理器1070和主存储器1090。asic1010、asip1030和主处理器1070中的至少两个可以彼此通信。此外,asic1010、asip1030、存储器1050、主处理器1070和主存储器1090中的至少两个可以包括在单个芯片中。asip1030是为专用目的而定制的集成电路,并且可以支持用于特定应用的专用指令集并执行包括在指令集中的指令。存储器1050可以与asip1030通信,作为非暂时性存储设备存储要由asip1030执行的多个指令。存储器1050可以包括可由asip1030访问的某个有形存储器,例如,随机存取存储器(randomaccessmemory,ram)、只读存储器(readonlymemory,rom)、磁带、磁盘、光盘、易失性存储器、非易失性存储器及其组合。asip1030或主处理器1070可以通过执行存储在存储器1050中的一系列指令来执行如图1中所描述的psa。主处理器1070可以通过运行多个指令来控制计算系统1000。例如,主处理器1070可以控制asic1010和asip1030,或者处理通过无线通信网络接收的数据或者到计算系统1000的用户输入。主存储器1090可以与主处理器1070通信,并且作为非暂时性存储设备存储由主处理器1070运行的用于根据上述实施例的psa的多个指令。此外,主存储器1090可以存储要读取的设计数据以获得增量单元延迟或增量连线延迟。尽管已经参考本发明构思的实施例具体示出和描述了本发明构思,但是应当理解,在不脱离所附权利要求的精神和范围的情况下,可以在形式和细节上进行各种改变。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1