首页 / 一种时序路径的优化方法、电子设备及存储介质

一种时序路径的优化方法、电子设备及存储介质公开 发明

技术领域

[0001] 本发明涉及EDA技术领域,特别是涉及一种时序路径的优化方法、电子设备及存储介质。

相关背景技术

[0002] 随着半导体技术的不断进步,芯片的高度集成化已成为现代电子工业发展的显著特征。在这一背景下,芯片内部的晶体管数量以惊人的速度呈指数级增长,而与此同时,芯片的尺寸却在持续缩小。这种“晶体管数量激增,芯片尺寸缩减”的双重压力,对芯片设计的各个方面都带来了深远的影响,特别是对时序路径的优化提出了前所未有的挑战。
[0003] 时序路径作为信号在芯片内部传播的主要通道,其性能直接决定了芯片的整体运行速度和功耗效率。在高性能芯片设计中,时序路径的优化之所以显得尤为关键,是因为它直接关系到芯片能否在给定频率下稳定运行,也是实现芯片性能提升和功耗降低的重要途径。因此,如何优化时序路径成为亟待解决的技术问题。

具体实施方式

[0014] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0015] 除非另有定义,本发明实施例中使用的所有技术和科学术语均具有与本领域技术人员通常理解相同的含义。
[0016] 请参阅图1,其示出了一种时序路径的优化方法流程图,所述方法包括如下步骤:S100,获取目标时序路径,所述目标时序路径为低于目标时间裕量的路径。
[0017] 在一种实施方式中,该方法应用于验证芯片或者应用于专用集成电路(Application‑Specific Integrated Circuit,ASIC)。
[0018] 在一种实施方式中,验证芯片为原型验证系统或者硬件仿真系统中的芯片,其他用于验证芯片设计的芯片验证系统或者满足特定阶段的验证系统中的验证芯片也落入本发明的保护范围之内。
[0019] 其中,时序路径(timing path)为信号在电路中从起点到终点的传输路径。起点是数据由时钟边沿触发的位置,终点是数据被另一个时钟边沿捕获的位置。通常情况下,起点为输入端口或触发器的时钟引脚,终点为输出端口或触发器的数据输入引脚。在每条时序路径上都有一个相应的时序裕量(slack),建立时间的slack的值等于时序路径的目标建立需求时间减去最大到达时间的值,slack的值可以是正值、零或者负值。其中,目标时序路径为低于目标时间裕量的所有时序路径。需要说明的是,目标路径中包括关键路径、时序违例的路径以及低于目标时间裕量的其他时序路径。其中,关键路径(critical path)是指最差slack的单一路径,其决定了系统的最高工作频率和性能。其中,时序违例的路径是指slack为负值。当slack的值为负值时,说明出现时间违例的情况。
[0020] S200,以所述目标时序路径为中心向前和向后遍历时序路径,标记可出借脉冲宽度的时序路径,得到可出借区域。
[0021] 在一种实施方式中,遍历的算法为深度优先搜索(Depth‑First Search,DFS)算法或者广度优先搜索(Breadth‑First Search,BFS),其他用于搜索时序路径的算法均落入本发明的保护范围之内。
[0022] 其中,脉冲宽度为一个二进制信号在高电平和低电平之间切换的时间,其决定了信号的上升时间和下降时间。
[0023] 在一种实施方式中,标记的步骤包括:存储可出借脉冲宽度的时序路径。其他用于标记的方式也落入本发明的保护范围之内。
[0024] 在一种实施方式中,S200还包括:当时序路径满足以下任意一个条件时,为不可出借脉冲宽度的时序路径:时序路径的起点和终点不能调整时钟极性;时序路径为跨时钟域的路径;以及时序路径上存在用户的时序例外约束。也即,除了不可出借脉冲宽度的时序路径之外,其他的时序路径均为可出借脉冲宽度的时序路径。
[0025] 其中,可出借区域为所有可出借脉冲宽度的时序路径形成的区域,需要强调的是,该可出借区域并不是实际出借脉冲宽度的时序路径形成的区域,仅为可出借脉冲宽度的区域,实际上是否出借脉冲宽度还需要满足S300中的条件。由于每个时序单元的扇入扇出可能存在多个,因此可出借区域中可能有且仅有一条单一的时序路径,也可能每向前遍历一级都有多条时序路径。
[0026] S300,以所述目标时序路径为中心逐级评估时序路径,当评估第i级时序路径时,判断当第i级时序路径在出借脉冲宽度时,所述第i级时序路径及其在所述可出借区域中到目标时序路径之间的每级时序路径是否满足当前级时序路径的目标建立需求时间的时序要求,若均满足,则通过反转所述可出借区域中所述第i级时序路径到目标时序路径之间的所有时序单元的时钟采样极性获取出借脉冲宽度并累加至目标路径借到的总脉冲宽度上,i的取值范围为1到K,K为时序路径的总级数;当所述总脉冲宽度满足目标时序路径的目标建立需求时间的时序要求时,停止评估,将出借脉冲宽度的所有时序路径标记为时序变更路径及其出借的脉冲宽度。
[0027] 需要说明的是,在借到的总脉冲宽度未满足目标时序路径的目标建立需求时间的时序要求之前,需要逐级评估,也即对每级时序路径是否能够出借脉冲宽度进行评估。用第i级时序路径来说明每级评估所需要满足的条件。评估第i级时序路径时,需要先判断出借了相应的脉冲宽度之后,第i级时序路径是否满足目标建立需求时间的时序要求,即使满足,还需要再判断在所述可出借区域中到目标时序路径之间的每级时序路径是否满足当前级时序路径的目标建立需求时间的时序要求,若都满足,才能将可出借区域中所述第i级时序路径到目标时序路径之间的所有时序单元的时钟采样极性都进行反转,使得第i级时序路径出借的脉冲宽度传递到目标时序路径上。第i+1级时序路径的评估过程与第i级时序路径的评估过程相同,需要说明的是,第i+1级时序路径评估过程中的时钟采样极性的反转是在第i级时序路径反转之后的基础上进行的。
[0028] 在一种实施方式中,时序单元为触发器(Flip‑Flops)、采样寄存器,其他用于采样的寄存器也落入本发明的保护范围之内。
[0029] 其中,目标建立需求时间是指在触发时序单元捕获数据之前,且在数据信号必须在目标建立需求时间之前已经稳定在触发器输入端的时间。需要说明的是,在不考虑目标时间裕量时,建立时间应当满足:到达时间小于建立需求时间。当考虑目标时间裕量时,则有:实际时序裕量大于目标时间裕量,且实际时序裕量等于目标建立需求时间与到达时间之差。
[0030] 在一种实施方式中,所述S300中,当前级时序路径的目标建立需求时间的时序要求包括:Tslack_cur>Ttarget_cur,其中Tslack_cur=Treq_su_cur‑Tbrw_cur‑Tarr_max_cur;
其中,Tslack_cur为当前时序路径的实际时间裕量,Ttarget_cur为当前时序路径的目标时间裕量,Treq_su_cur为当前级时序路径的目标建立需求时间,Tbrw_cur为当前级时序路径出借的脉冲宽度,Tarr_max_cur为当前时序路径的最大到达时间。
[0031] 其中,Ttarget_cur为预设的目标时间裕量。
[0032] 需要说明的是,由于信号在电路中传播时可能受到多种因素的影响,因此每条时序路径的到达时间(Data Arrival Time)具有最大值和最小值,例如影响的因素为电源电压、环境温度等。
[0033] 其中,目标需求时间的时序要求能够保证在出借相应的脉冲带宽之后的时序路径依旧满足时序要求。若出借相应的脉冲带宽之后,当前时序路径不满足时序要求,则不会执行后续的步骤,也即不会通过反转时序单元的时钟采样极性出借脉冲宽度。
[0034] 在一种实施方式中,所述S300中,所述目标路径的目标建立需求时间的时序要求包括:Tslack_tar>Ttarget_tar,其中Tslack_tar=Tbrw_total+Treq_su_tar‑Tarr_max_tar;
其中,Tslack_tar为目标时序路径的实际时间裕量,Ttarget_tar为目标时序路径的目标时间裕量,Tbrw_total为目标路径借到的总脉冲宽度,Treq_su_tar为目标时序路径的目标建立需求时间,Tarr_max_tar为目标时序路径的最大到达时间。
[0035] 其中,时钟采样极性是指时钟采样的触发沿是上升沿还是下降沿。当触发沿是上升沿时,反转时钟采样极性的结果是触发沿为下降沿。当触发沿是下降沿时,反转时钟采样极性的结果是触发沿为上升沿。
[0036] 其中,出借脉冲宽度是指将当前级时序路径中启动寄存器(launch register)的数据采样的触发沿提前或者将当前级时序路径中捕获寄存器(capture register)的数据采样的触发沿推后了一个脉冲宽度到来。当提前一个脉冲宽度时,由于当前采样周期的触发时间提前了一个脉冲宽度,而下个采样周期的触发时间不变,因此相当于延长了采样周期的时长,也即实现了出借脉冲宽度的目的。同理,推后一个脉冲宽度。
[0037] 请参阅图2,图2中示出了反转时钟采样极性前后的对比示意图。图2中的A为反转时钟采样极性之前的示意图,其中包括第一寄存器F1、第二寄存器F2、第三寄存器F3和第四寄存器F4,时序路径包括:F1到F2的第一时序路径,F2到F3的第二时序路径,以及F3到F4的第三时序路径。假设时钟周期为20ns,高低电平的脉冲宽度分别为10ns,目标时序路径的Tslack_tar为‑9ns,目标时序路径的Ttarget_tar为1ns,此时目标时序路径为时序违例的时序路径。而第一时序路径和第三时序路径均为可出借脉冲宽度的时序路径,且第一时序路径和第三时序路径的Tslack_cur均为15ns,且第一时序路径和第三时序路径的Ttarget_tar也为1ns。根据S300评估第一时序路径出借脉冲宽度10ns后,第一时序路径的目标建立需求时间分别减去出借脉冲宽度之后的值依然大于到达时间的最大值减去时间裕量之后的值。也即出借脉冲宽度后依然满足目标建立需求时间的时序要求。因此通过反转F2的时钟采样极性出借脉冲宽度,请将参阅图2中的B,图2中的B示出了反转时钟采样极性之后的示意图,图2中的B中F2的时钟输入端的圆圈为反转极性的标志符号,反转F2的极性,使其在时钟下降沿采样,此时第一时序路径的采样时间提前10ns,第二时序路径的采样时间还在原来的上升沿采样,因此第二时序路径的采样时间增加了10ns,也即30ns的时钟采样时间,此时满足目标路径的目标建立需求时间的时序要求时,因此停止评估,不再借其他路径的脉冲宽度。
[0038] 需要说明的是,当时序变更路径与目标时序路径不相邻时,则反转时序变更路径和目标时序路径之间所有时序单元的时钟采样极性,使时序变更路径出借的脉冲宽度传递到目标时序路径。以原始的时钟采样为上升沿为例,当得到出借脉冲宽度的时序变更路径,且该时序变更路径与目标时序路径不相邻时,则将该时序变更路径与目标时序路径之间的所有时序单元的时钟采样极性反转为下降沿,只有时序变更路径的采样时间从一个时钟周期变更为从上升沿到下降沿的脉冲宽度;而其他反转了采样极性的时序单元所在的时序路径只是从上升沿采样变更为下降沿采样,采样周期仍然为一个时钟周期,通过该方法将不相邻的时序变更路径出借的脉冲宽度传递到目标时序路径。
[0039] 为了进一步理解通过反转时钟采样极性将出借的脉冲宽度传递到目标时序路径的具体实现手段,请参阅图3,其示出了跨级借脉冲宽度的方式的前后对比示意图,图3中的A中示出了通过F3和F4的方式借一个周期的脉冲宽度,但是由于F2到F3的第二时序路径和F4到F5的第四时序路径出借相应脉冲宽度会导致不满足目标建立需求时间的时序要求,此时可以逐级向第二时序路径之前的F1到F2之间的第一时序路径借脉冲宽度。请参阅图3中的B,若评估出第一时序路径出借相应的脉冲宽度之后满足目标建立需求时间的时序要求,则将F2反转时钟采样极性。同理若F5和F6之间的第五时序路径在出借相应的脉冲宽度之后也满足目标建立需求时间的时序要求,也将F5反转时钟采样极性。此时若F3到F4之间的目标时序路径在叠加借到的总脉冲宽度之后满足目标时序路径的目标建立需求时间的时序要求时,则停止评估。也即借到的总脉冲宽度是从第一时序路径和第五时序路径借到的,而第二时序路径和第四时序路径并未出借脉冲宽度,其中F3和F4反转时钟采样极性的目的是为了将借到的脉冲宽度传递到目标时序路径。
[0040] S400,根据所述时序变更路径及其出借的脉冲宽度更新出借区域,得到目标出借区域。
[0041] 需要说明的是,S300中已经得到的实际出借脉冲宽度的时序更路径及其出借的脉冲宽度,因此根据S300得到的结果可以再进一步的更新以缩小目标出借区域。
[0042] S500,调整所述目标出借区域中时序变更路径的保持需求时间的时序要求。
[0043] 其中,保持需求时间是指在时钟边沿触发寄存器捕获数据之后,数据信号必须保持稳定在触发器输入端的最小时间。
[0044] 其中,保持需求时间的调整方式包括指定方式、插入寄存器或者调整占空比等,其他用于调整保持需求时间的方式也落入本发明的保护范围之内。
[0045] 在一种实施方式中,S500还包括:在S400之后且S500之前还包括:S450,当借到的总脉冲宽度为目标时序路径原始采样周期的M倍时,将目标时序路径的采样周期调整为原始采样周期的M倍。
[0046] 在一种实施方式中,S450还包括,当所述总脉冲宽度是从时序路径中的启动寄存器借用的情况下,将所述目标时序路径中启动寄存器的采样周期调整为原始采样周期的M倍;当所述总脉冲宽度是从时序路径中的捕获寄存器借用的情况下,将所述目标时序路径中捕获寄存器的采样周期调整为原始采样周期的M倍。
[0047] 在一种实施方式中,指定目标时序路径上时钟采样的延迟倍数M的方式为通过STA(Static Timing Analysis)工具中的多周期路径设置命令(set_multicycle_path)或者插入流水级,其他用于指定目标时序路径上时钟采样的延迟倍数M的方式均落入本发明的保护范围之内。
[0048] 当目标路径的采样周期大于一个时钟周期时,数据需要跨越多个时钟周期才能到达目标时序单元,这意味着保持需求时间同时会被延长,且降频会造成保持需求时间同步增大。但是对于电路来说,需要增加延时以满足保持需求时间,为了解决这个问题,本发明实施例提供了以下解决方案。
[0049] 在一种实施方式中,S500还包括:调整目标路径的保持需求时间的时序要求的步骤:当所述目标路径的采样周期大于一个时钟周期时,在目标路径连接的两个时序单元之间插入补位寄存器(Multi‑Cycle Path Register,MCPR),以调整保持需求时间,使其符合时序要求。该方法通过补位寄存器能够将保持需求时间调整为单个时钟周期触发的保持需求时间。当采用插入寄存器的方式调整保持需求时间的时序要求时,则不需要指定目标时序路径上时钟采样的延迟倍数。
[0050] 在一种实施方式中,所述补位寄存器的插入数量的获取步骤包括:当目标路径的原始采样周期为时钟周期的整数倍时,所述补位寄存器的插入数量sum满足:sum=roundup(Tbrw_total/Tperiod),Tperiod为时钟周期,Tbrw_total为出借给目标路径的总脉冲宽度,roundup()为向上取整符号。当目标路径的原始采样周期不是时钟周期的整数倍时,所述补位寄存器的插入数量sum满足:sum=roundup(Tbrw_total/Tperiod)‑1。通过补位寄存器转发每个时钟周期的数据,达到了将保持需求时间调整为单个时钟周期触发的保持需求时间的目的,避免了保持需求时间违例发生,而且也同时避免了由于延迟增加导致的能耗和资源的增加以及频率的降低。
[0051] 在一种实施方式中,当所述目标路径连接的两个时序单元之间还穿过中间验证芯片时,在所述中间验证芯片的目标路径上插入所述补位寄存器。
[0052] 为了方便理解,以应用于验证芯片中为例,请参阅图4,图4示出了在调整采样极性前后插入补位寄存器MCP的对比示意图。图4中的A示出了在未借周期之前的示意图,目标路径连接第一验证芯片P1的第二时序单元F2并穿过中间验证芯片P2连接第三验证芯片P3的第三时序单元F3。图4中的B示出了在借周期反转时钟采样极性之后的示意图,F2反转了时钟采样极性,使得F1和F2之间的第一时序路径的时钟采样周期缩短了一个脉冲宽度,而F2到F3之间目标时序路径的时钟采样周期增加了一个脉冲宽度,此时增加延迟是相对困难的目标,而且会增加能耗和资源。因此在目标时序路径上插入补位寄存器F5,请参阅图4中的C,在P2中的目标时序路径上插入补位寄存器F5,将目标路径上拆分为两部分,不仅能够避免降频带来的保持需求时间违例发生,而且不会由于延迟增加导致能耗和资源增加。需要说明的是,补位寄存器F5的时钟采样极性可以根据需要配置。
[0053] 在一种实施方式中,当所述目标路径连接的两个时序单元相邻时,获取目标路径中作为扇入的目标时序单元及其所在的目标验证芯片,获取所述目标路径与所述目标验证芯片连接的目标端口,在所述目标时序单元和所述目标端口之间插入所述补位寄存器MCP。
[0054] 为了方便理解,以应用于验证芯片中为例,请参阅图5,其示出了另一种在调整采样极性前后插入补位寄存器MCP的对比示意图。图5中的A示出了在未借周期之前的示意图,目标路径将P1的F2和P2的F3连接。图5中的B示出了在借周期反转时钟采样极性之后的示意图,F2反转了时钟采样极性,使得F1和F2之间的第一时序路径的时钟采样周期缩短了一个脉冲宽度,而F2到F3之间目标时序路径的时钟采样周期增加了一个脉冲宽度,此时目标时序路径需要满足的保持需求时间较长,需要增加延迟以满足保持需求时间,增加延迟是相对困难的目标,而且会增加能耗和资源。因此在目标时序路径上插入补位寄存器F5,请参阅图5中的C,在F2和P1的目标端口之间的目标时序路径上插入补位寄存器F5,将目标路径上拆分为两部分,不仅能够避免降频带来的保持需求时间违例发生,而且不会由于延迟增加导致能耗和资源增加。
[0055] 在一种实施方式中,S500还包括调整受到影响的旁路时序路径的保持需求时间的时序要求的步骤:当所述目标路径具有多个起点或者终点,将不在时序变更路径上的其他起点或者终点所在的同级时序路径标记为旁路时序路径;在所述旁路时序路径中插入的校正寄存器(hold fixer),使其调整保持需求时间以符合时序要求。其中,同级时序路径是指具有相同扇入的时序路径。
[0056] 为了方便理解,以应用于验证芯片中为例,请参阅图6,在插入第六寄存器F6之前,F2到F3的目标时序路径和F2到F5的时序路径为同级时序路径。假如脉冲宽度占总宽度的50%,在F2反转时钟采样极性之前,F2到F5之间的旁路时序路径的时钟采样周期为一个时钟周期;当F2反转时钟采样极性之后,F2和F5之间的旁路时序路径的时钟采样周期缩短为半个周期。当F2反转时钟采样极性之后,F2和F5之间的旁路时序路径中F5为捕获寄存器,F5捕获采样的触发沿被提前,导致保持时间无法满足时序要求,因此,在旁路时序路径上插入校正寄存器F6,使得F2提前进行采样的数据信号经过F6延迟至F5原本的时钟沿再次被采样。
[0057] 在一种实施方式中,还可以通过调整占空比的方式来满足保持需求时间的时序要求,S500还包括:通过调整占空比来调整所述目标出借区域中时序变更路径的保持需求时间的时序要求,满足:Tarr_min>Tperiod×DRatio×ARatio;
其中,Tarr_min为时序变更路径的最小到达时间,Tperiod为时钟周期,DRatio为时钟信号的占空比,ARatio为占空比的调整比例。
[0058] 综上所述,本发明实施例提供了一种时序路径的优化方法,其通过获取目标路径,并以目标路径为中心向前和向后遍历时序路径,并根据当前级时序路径的目标建立需求时间的时序要求来评估是否出借,若出借,则通过反转时序单元的时钟采样极性来达到出借脉冲宽度的目的,达到了优化时序路径的目的。
[0059] 本发明的实施例还提供了一种非瞬时性计算机可读存储介质,该存储介质可设置于电子设备之中以保存用于实现方法实施例中一种方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述实施例提供的方法。
[0060] 本发明的实施例还提供了一种电子设备,包括处理器和前述的非瞬时性计算机可读存储介质。
[0061] 本发明的实施例还提供一种计算机程序产品,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使该电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的方法中的步骤。
[0062] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元,模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元,模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
[0063] 虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明公开的范围由所附权利要求来限定。

当前第1页 第1页 第2页 第3页