门级仿真中验证时序问题的方法

文档序号:8319321阅读:656来源:国知局
门级仿真中验证时序问题的方法
【技术领域】
[0001] 本发明涉及集成电路设计和测试,更具体地,涉及集成电路设计的门级仿真中的 验证时序问题的方法。
【背景技术】
[0002] 在具有数字(或,混合的数字和模拟)电路的集成电路(IC)的电子设计自动化 (EDA)设计流程期间,通常在硬件描述语言(HDL)(如,Veri log和VHDL)中使用寄存器传输 级(RTL)抽象来生成IC的高级别表示,从标准单元库中选择标准单元设计及其特性。就存 储信号值的寄存器,以及对信号值执行逻辑操作的组合逻辑,限定RTL描述。通常RTL描述 被转换为门级描述(诸如,网表),其由放置和路由工具使用来生成物理布局。
[0003] IC的正确操作和性能常常受时序考量限制。IC的静态时序分析(STA)使得能够 利用关键路径和角部的定义,分析IC的简化的延迟模型和识别诸如保持时间和建立时间 冲突、毛刺、和时钟偏斜的问题。然而,STA约束可能是不正确的,并且可能错失某些关键路 径,因此,设计的动态门级仿真常常是必要的。
[0004] 通常,动态门级仿真基于门的输入值确定门的输出值。如果一个或多个输入值是 不确定的(也即,不清楚的),则仿真器的行为模型会导致也是不确定的门的输出值。随着仿 真进行,这些不确定值门接着门地传播到组合模块的输出。在某些EDA语言中,将不确定值 指定为X。尤其是,在VHDL中,值"^1"、"1"和"-"是元逻辑(1^丨 &1(^1〇&1)值;它们定 义模型本身的行为而不是所综合的硬件的行为,其中"U"表示在对象在其在仿真期间被明 确分配值之前的值;"X"和"W"分别表示强制值和弱值,对于所述强制值和弱值,模型不能 区分逻辑电平,并且其与来自高阻抗源或输出的值(被指定为Z,其可以不门接着门地传播) 不同。不确定的X值的传播通常导致仿真崩溃,增加了分析时序冲突的原因和位置的难度。
[0005] 在可能的时序冲突可以被识别为假时序冲突(也即,在物理IC中将不实际出现的 时序冲突)时,在某些常规的时序仿真技术中可以为标准单元设置被称作Xfilter (X过滤 器)的参数。在这样的技术中,在设置Xfilter参数时,所识别的单元的模型产生与单元输 入值和该单元的理论功能对应的输出值。例如,在利用正边沿时钟的D触发器的情况下,如 果设置了 Xfilter参数,则模型将产生确定的输出值,其等于在时钟的正边沿处D输入处的 值。另外,所有用于单元的时序检查将被禁用,使得仿真能够进行而该单元不作为仿真崩溃 的原因。然而,在设置了 Xfilter参数的情况下仿真中单元的行为将不同于物理IC中的单 元。此外,Xfilter禁止用于该单元的所有时序检查,这会掩蔽其它时间点处的实际时序冲 突。此外,在同步的电路模块的情况下,可能难以识别若干时钟信号是否处于相同的时钟域 中,并且难以验证可能的时序冲突,因为在同一域的时钟树、时钟门单元以及时钟划分器中 可能存在许多的缓冲器。
[0006] 在IC设计中识别和分析时序冲突以及将实际时序冲突与假时序冲突区分开可能 是非常劳动密集且耗时的。寻求有效且高度自动化地进行此的方法。
[0007] 概述
[0008] 根据本公开一个实施例,提供了一种用于在集成电路设计的门级仿真中验证时序 问题的系统,所述集成电路设计具有多个单元,所述系统包括:存储器,用于存储所述集成 电路设计和指令;以及处理器,耦接到所述存储器,其中所述指令在所述处理器上执行以运 行所述集成电路设计的行为模型的仿真例程,并获取第一仿真结果,其中所述处理器包括,
[0009] 用于如果所述第一仿真结果在单元处产生可能的时序冲突,与强制的不确定值对 应,则强制所述单元的仿真输出为第一值,重新运行所述仿真例程,并获取第二仿真结果的 装置,
[0010] 用于如果所述第二仿真结果在所述单元处产生明显的时序冲突,则产生所述单元 处的所述明显的时序冲突的报告的装置;
[0011] 用于如果所述第二仿真结果并不在所述单元处产生明显的时序冲突,则产生所述 单元的仿真输出的状态和所述第一值的报告,强制所述单元的仿真输出为第二值,重新运 行所述仿真例程,并获取第三仿真结果的装置;
[0012] 用于如果所述第三仿真结果在所述单元处产生明显的时序冲突,则产生所述单元 处的所述明显的时序冲突的报告的装置;以及
[0013] 用于如果所述第三仿真结果在所述单元处并不产生明显的时序冲突,则完成所述 仿真的装置。
[0014] 根据本公开另一实施例,提供了一种用于在集成电路设计的门级仿真中验证时序 问题的方法,所述集成电路设计具有多个单元,所述方法包括:运行所述设计的行为模型的 仿真例程,并获取第一仿真结果;如果所述第一仿真结果在单元处产生可能的时序冲突,与 强制的不确定值对应,则强制所述单元的仿真输出为第一值,重新运行所述仿真例程,并获 取第二仿真结果;如果所述第二仿真结果在所述单元处产生明显的时序冲突,则产生所述 单元处的所述明显的时序冲突的报告;如果所述第二仿真结果并不在所述单元处产生明显 的时序冲突,则产生所述单元的仿真输出的状态和所述第一值的报告,强制所述单元的仿 真输出为第二值,重新运行所述仿真例程,并获取第三仿真结果;如果所述第三仿真结果在 所述单元处产生明显的时序冲突,则产生所述单元处的所述明显的时序冲突的报告;以及 如果所述第三仿真结果在所述单元处并不产生明显的时序冲突,则完成所述仿真。。
[0015] 根据本公开再一实施例,提供了一种非瞬时性计算机可读存储介质,其存储指令, 所述指令在由计算机执行时,使所述计算机执行在集成电路设计的门级仿真中验证时序问 题的方法,所述集成电路设计具有多个单元,所述方法包括:运行所述设计的行为模型的仿 真例程,并获取第一仿真结果;如果所述第一仿真结果在单元处产生可能的时序冲突,与强 制不确定值对应,则强制所述单元的仿真输出为第一值,重新运行所述仿真例程,并获取第 二仿真结果;如果所述第二仿真结果在所述单元处产生明显的时序冲突,则产生所述单元 处的所述明显的时序冲突的报告;如果所述第二仿真结果并不在所述单元处产生明显的时 序冲突,则产生所述单元的仿真输出的状态和所述第一值的报告,强制所述单元的仿真输 出为第二值,重新运行所述仿真例程,并获取第三仿真结果;如果所述第三仿真结果在所述 单元处产生明显的时序冲突,则产生所述单元处的所述明显的时序冲突的报告;以及如果 所述第三仿真结果在所述单元处并不产生明显的时序冲突,则完成所述仿真。
[0016] 附图简要描述
[0017] 通过参考下面的对附图中所示的本发明的实施例的说明,可以更好地理解本发明 及其目的和优点。图中的元件出于简化和清楚的目的而示出,并且并不必然按比例绘制。
[0018] 图1是产生处理装置的门级设计以及分析其中的时序问题的常规方法的简化流 程图;
[0019] 图2是作为示例给出的根据本发明一实施例的在集成电路设计的门级设计和仿 真中使用的模块的行为模型的示意性框图;
[0020] 图3是根据本发明一个实施例的仿真和分析集成电路设计中的时序问题的方法 的流程图;以及
[0021] 图4是用于执行本发明的方法的示例性EDA工具的示意性框图
【具体实施方式】
[0022] 现在参考图1,示出了用于产生集成电路(IC)
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1