跨管线的时序瓶颈分析以利用有用偏差引导优化的制作方法_3

文档序号:9252417阅读:来源:国知局
"处开始并且在主输出"Outl"处结束的超级路径具有负松弛, 并且在主输入"In2"处开始并且在主输出"0ut2"处结束的超级路径也具有负松弛。然 后,由于两条具有负松弛的超级路径通过超弧208,所W-些实施例可W向超弧208指派较 高优先级,使得CTS前的电路优化在其尝试解决其它超弧中的时序违规之前尝试改善超弧 208的时序(即,尝试增大时序松弛而无论当前的时序松弛值为负还是为正)。注意,在超 弧208内,CTS前的电路优化过程自由地决定设定口的大小来改善时序的顺序。注意,常规 的电路优化技术都没有使用超级路径松弛来决定优化超弧的顺序。
[0044] W上讨论中已经做出的一种假设是,只要超级路径松弛大于或等于零,就存在有 用偏差调度解决方案来使得超级路径中的每条单个路径也使其松弛大于或等于零。然而, 在现实中,存在使得该假设无效的若干限制并且现在对其进行讨论。
[0045] 时序电路元件的时钟延时由于有用偏差所导致的延迟不应当超过时钟的插入延 迟,否则最终可能会在时钟树上插入过多缓冲器,并且片上变化效应(其随着更长的插入 延迟而更为严重)可W抵消通过引入有用偏差所获得的好处。
[0046] 当时序电路元件使用多个时钟被计时时,由于不同时钟将存在针对每条路径(每 一对发射触发和捕获触发)的多个松弛,并且有用偏差调度对于每个时钟而言不是独立 的。图3A-3B图示了根据在此描述的一些实施例的其中时序电路元件使用多个时钟进行 计时的示例。电路300包括由如图3A所示的路径(曲线)互联的时序电路元件302、304、 306、308、310和312。每条路径旁的括号中的数字是该路径上的松弛。时序电路元件306 和308之间的路径在其旁边具有两个数字。第一个数字"(4)"是Clkl中的松弛,并且第二 个数字"(3)"是Clk2中的松弛。
[0047] 在图3A中,假设Clkl和Clk2之间的所有路径都是伪路径。伪路径是其时序违规 将被忽略的路径。例如,在时序电路元件302(时钟域Clkl)处开始并且在时序电路元件 312 (时钟域0化2)处结束的路径的时序可W被忽略。
[0048] 现在,如果就其本身而言来看从时序电路元件304到时序电路元件312的路径,似 乎应该能够通过使用有用偏差来获得非负的松弛。然而,Clk2路径的有用偏差调度受更为 时序关键的aki的有用偏差调度所影响,并且作为结果仍然存残留在Qk2上的负松弛。具 体地,如果尝试通过使用有用偏差来去除ak2路径上的时序违规,则将导致在Qki路径上 发生时序违规。图3B图示了已经使用了有用偏差来解决时序电路元件304和时序电路元 件310之间的路径上的负松弛之后的松弛。因此,即使有可能在两条不同路径被独立地考 虑时使用有用偏差来解决该两条不同路径上的时序违规,但是由于该两条路径之间的依赖 性而可能不能够使用有用偏差来同时解决两条路径上的时序违规。一些实施例可W检测其 中两条(或更多)超级路径处于不同时钟域但是共享一条或多条超弧的情形。一旦已经检 测到超级路径,该实施例可W使用有用偏差来解决给定时钟域中的时序违规,同时确保不 会在其它时钟域中产生新的时序违规。
[0049] 当超级路径具有回路时发生另一种复杂情形。图4图示了根据在此描述的一些实 施例的包括回路的电路设计。如图4所示,电路400包括时序电路元件402、404、406和408, 它们通过路径(曲线)互连。注意,时序电路元件404的输出"Q"经由通过时序电路元件 406和时序电路元件408的路径被禪合至时序电路元件402的输入叩",从而形成了回路。 [0化日]如果主输入"In"和主输出"Out"之间的超级路径的超级路径松弛大于等于零,贝U 应当能够使用有用偏差来去除该超级路径中的任何时序违规。然而,由于回路该可能是不 可能的。具体地,如果改变时序电路元件402和时序电路元件404之间的相对时钟偏差W 增大超弧410中的松弛,则能够对应地减小超弧412和/或超弧414中的松弛,该可能产生 时序违规。例如,假定时序电路元件402的时钟边缘被移动提早1个时间单位并且时序电 路元件404的时钟边缘被移动延后1个时间单位,则超弧410中的松弛将增大2个时间单 位。然而,超弧412和超弧414中的松弛将各自减小1个时间单化该可能导致超弧412和 /或414中的时序违规。
[0化1] 在此描述的一些实施例检测回路(例如,通过执行广度优先遍历并且记录被访问 的节点),并且确定受到检测到的回路的影响的具有正松弛的超级路径。对于受影响的超级 路径,实施例可W确定有用偏差是否能够用于解决超级路径中的时序违规。
[0化2] 注意,超级路径计算与CTS前的电路优化引擎相分离,并且可W潜在地与有用偏 差计算引擎进行共享/组合。注意,超级路径计算向CTS前的电路优化引擎提供引导,也就 是说,超级路径计算提供关于优化哪些路径W及何时停止优化的引导。
[0053]例如,在一些实施例中,CTS前的电路优化引擎能够被指示W在所有超级路径具有 正松弛时停止优化,即使单个路径松弛仍然为负。然后,可W在CTS期间使用有用偏差来解 决负路径松弛的时序违规。与常规方式相比,该能够大幅减少需要由CTS前的电路优化引 擎完成的优化数量,因为其允许许多路径具有负松弛,只要超级路径具有非负松弛即可。该 是被一些实施例用来大幅减少需要由CTS前的电路优化引擎完成的优化数量的重要观点。 [0化4] 图5图示了根据在此描述的一些实施例的用于计算并使用超级路径松弛的过程。 该过程可W通过针对逻辑路径链的集合计算总松弛(即,超级路径松弛)的集合开始,其中 每个逻辑路径链从仅发射信号但不捕获信号的主输入或时序电路元件开始,并且在仅捕捉 信号但是并不发射信号的主输出或时序电路元件处结束(操作502)。接下来,该过程可W 基于总松弛的集合来引导电路优化(操作504)。注意,总松弛的集合能够包括一个或多个 总松弛,并且逻辑路径链的集合可W包括一个或多个逻辑路径链。
[0化5] 具体地,如果总松弛大于或等于零,则该过程可W指示CTS前的电路优化引擎不 尝试解决处于超级路径中的逻辑路径上的时序错误。另一方面,如果总松弛为负,则该过程 可W指示CTS前的电路优化引擎尝试增大处于超级路径中的逻辑路径的时序松弛。
[0056] 在一些实施例中,该过程可W基于通过超级路径的具有负松弛的超级路径的数量 来对逻辑路径进行优先级排序。具体地,如果逻辑路径被更大数量的具有负松弛的超级路 径所共享,则其具有较高的优先级。接下来,该过程可W引导CTS前的电路优化引擎按照优 先级的降序来增大逻辑路径的时序松弛。在一种变型中,逻辑路径的优先级可W基于包括 该逻辑路径的超级路径的负松弛的大小之和。在又另一种变型中,如果两条逻辑路径具有 相同的优先级,则逻辑路径的松弛可W被用来打破僵局。具体地,具有较低时序松弛的逻辑 路径可W被给予比具有较高时序松弛的逻辑路径更高的优先级。
[0化7] 在一些实施例中,该过程可W指示CTS前的优化引擎在总松弛的集合中的所有总 松弛都大于或等于零时(即,即使一条或多条逻辑路径的松弛为负)终止优化。
[005引 计算化系统
[0化9]图6图示了根
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1