数字集成电路仿真方法及仿真器的制造方法_2

文档序号:9235559阅读:来源:国知局
通过网络适配器20与一个或者多个网络 (例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适 配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示 出,可W结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于;微代 码、设备驱动器、兀余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器W及数据备份存 储系统等。
[0050] 表4给出某真实芯片在上电复位,仿真电路稳定后(power-〇n-set,P0R),"X"节点 数占全部节点数的百分比。由表4可见,大部分的节点仍然可W用两值仿真,只有很少一部 分节点需要用多值仿真。而在现有的无论是两值仿真还是多值仿真,都是在整个仿真过程 中对所有的节点要么采用两值仿真,要么采用多值仿真,而没有考虑该节点的具体情况,造 成要么采用两值仿真,虽然速度快,占用存储空间小,但是仿真结果不准确;要么采用多值 仿真,虽然仿真结果更准确,但是仿真速度慢,占用存储空间大的问题。
[0051] 本发明的实施例公开的技术方案中,采用两值仿真和多值仿真的混合,具体来说, 对仿真电路获得两值仿真和多值仿真的边界,然后对边界一边满足两值仿真条件的节点使 用两值仿真,对于边界一边满足多值仿真条件的节点使用多值仿真,从而在保证仿真正确 性的前提下,减少占用的存储空间,并且提高仿真速度。W下说明书中,状态为多值是采用 状态为H值的例子进行描述的,本领域技术人员可W知道,多值的处理方式类似。
[0052]表 4
[0053]
[0054]图4是示意性示出了根据本发明一种实施方式的一种数字集成电路多值仿真方 法的流程图,根据图4,在步骤S401,获得所述数字集成电路的电路图及该电路图中的检 测节点;在步骤S402,根据所述检测节点确定所述电路图中与两值和多值的仿真边界相关 的节点W及该相关节点的状态;在步骤S403,根据所述相关节点W及该相关节点的状态, 确定所述电路图中两值和多值的仿真边界的边界位置及该边界位置的边界类型;在步骤 S404,在所述边界位置根据该边界位置的边界类型插入转换电路;在步骤S405,对插入转 换电路的电路图进行建模及仿真。
[0055] 步骤S401中可W获得所述数字集成电路的电路图及该电路图中的检测节点。一 般来说,集成电路的设计采用皿L语言描述,例如Verilog,VHDL就是描述数字电路的两种 语言,与软件设计的不同程序设计语言一样。首先获得数字集成电路皿L语言描述的电路 图或者其它方式描述的电路图,然后对该电路图建立多值模型,然后在该模型上运行上电 复位(P0R)仿真,产生检测节点(chenckpoint)。具体如何建立多值模型,然后在该模型上 运行P0R仿真W及获得检测节点是现有集成电路仿真器具备的基本功能,现有的仿真器可 W直接输出检测节点,因此,该里不再描述其如何实现。
[0056] 检测节点可W理解为在某个时刻对于电路状态拍的一张照片(snapshot)。检测节 点里保存了该一时刻电路所有节点的状态,下次只需要装载该个检测节点,就可W将电路 置于同样的状态之下,从而避免电路初始化过程中浪费大量的仿真时间。检测节点中包含 触发器、组合逻辑口、连线(wire)等。边界检测只需要关注检测节点中的触发器和/或组 合逻辑口即可。
[0057] 步骤S402根据所述检测节点确定所述电路图中与两值和多值的仿真边界相关的 节点W及该相关节点的状态的实施方式中,节点的状态有两种:两值或者多值。与两值和 多值的仿真边界相关的节点为所述电路图中组合逻辑口和/或触发器。节点可W全部是触 发器;也可W全部是组合逻辑口;或者部分是组合逻辑口,部分是触发器。节点可W根据不 同的需求来选取不同的粒度,例如,可W选取电路图中的所有触发器作为节点,而忽略中间 的组合逻辑口。在一种实施方式中,与两值和多值的仿真边界相关的节点包括电路图中的 输入节点及其上一级的源节点,并且根据所述检测节点确定所述电路图中与两值和多值的 仿真边界相关的节点W及该相关节点的状态包括:在所述电路图中确定输入节点及其上一 级的源节点;W及根据所述检测节点标记所述输入节点的状态和所述上一级的源节点的状 态。
[005引在所述电路图中确定输入节点及其上一级的源节点过程中,可W从所述电路图的 输出端往输入端追溯,追述到的第一级节点为所述输入节点,第二级节点为所述上一级的 源节点;当第二级节点作为输入节点时,继续追溯到的第H级节点为上一级的源节点,W此 类推;因此,从输出开始,追溯到的第一级节点只能为输入节点,追溯到最后一级节点(再 追溯就是电路输入了)只能为上一级的源节点,其它节点既可W看作输入节点也可W看作 上一级的源节点;例如追溯到的节点顺序为;A-〉B,B-〉C,此时B是A的上一级的源节点,但 却是C的输入节点。
[0059] 在所述电路图中确定输入节点及其上一级的源节点过程中,也可W从所述电路图 的输入端往输出端追溯,追述到的第一级节点为所述上一级的源节点,第二级节点为所述 输入节点。W此类推,与反向追溯类似。
[0060] 确定输入节点和上一级的源节点后,就可W根据在检测节点中记录的状态,来标 记输入节点和上一级的源节点的状态是两值还是多值。
[0061] 在步骤S403根据所述相关节点W及该相关节点的状态,确定所述电路图中两值 和多值的仿真边界的边界位置及该边界位置的边界类型的一种实施方式中,首先判断所述 输入节点的状态与所述上一级的源节点的状态是否相同;然后响应于所述输入节点的状态 与所述上一级的源节点的状态不同,确定该上一级的源节点和该输入节点之间为一个边界 位置。例如上一级的源节点状态是两值,而输入节点状态是多值,则确定上一级的源节点和 输入节点之间为边界位置。
[0062] 确定该边界位置的边界类型包括;响应于在边界位置,输入节点的状态为多值并 且上一级的源节点的状态为两值,则该边界位置的边界类型为两值到多值;响应于在边界 位置,输入节点的状态为两值并且上一级的源节点的状态为多值,则该边界位置的边界类 型为多值到两值。对于边界类型为两值到多值,可W在该上一级的源节点的输出处加入该 边界类型的标记;对于边界类型为两值到多值,可W在该输入节点的输入处加入该边界类 型的标记。如表最后一列所示的标记。
[0063] 例如,图5示出了一个两值到多值边界类型示意电路,其中节点是触发器。根据上 述步骤,首先确定输入触发器RegA,对其反向追踪,找出上一级的所有源触发器RegO、Regl 和Reg2 ;比较RegO、Regl和Reg2的状态和RegA的状态,发现RegO、Regl的状态为两值而 RegA的状态为多值,就可W得到表5所示的两条描述二值和多值仿真边界的条目,包括边 界位置和边界类型。而Reg2和RegA的状态都为多值,在表5中就不存在该样的条目。表 5只是一种示意性表示仿真边界的方式,本领域技术人员可W知道,还可W采用任何其它数 据形式来表示边界的位置,例如链表、数组等等。也可W对图5进行正向追踪,得到的仍然 是如表5所示的两条描述二值和多值的仿真边界的条目。
[0064]表 5
[0065]
[0066] 图6示出了一个多值到两值的边界类型的示意电路,其中节点是触发器。根据图 6,确定输入触发器Re浊的状态为两值,对其反向追踪,找出上一级的所有源触发器RegO、 Regl和Reg2 ;比较RegO、Regl和Reg2的状态和Re浊的状态,发现RegO和Reg2的状态为 多值,并且Re浊的状态为两值,确定Re浊和RegO之间、Re浊和Reg2之间为两个仿真边界; 并且在Re浊的输入处加入一条边界类型为多值到两值的标记。如表6所示。表6只是一 种示意性表示仿真边界的方式,本领域技术人员可W知道,还可W采用任何其它数据形式 来表示边界的位置,例如链表、数组等等。也可W对图6进行正向追踪,得到的仍然是如表 6所示的一条描述二值和多值仿真边界的条目。
[0067] 如果上一级的源节点的状态和输入节点的状态相同,结束该输入节点的相关分 析,继续分析下一个输入节点。
[0068] 在一种实施方式中,多个边界条目可W组成边界文件,边界文件可W用表来存储, 也可W用XML文件、文本文件等其他文件形式存储。
[0069] 表6
[0070]
[0071] 在步骤S404,在所述边界位置根据该边界位置的边界类型插入转换电路,具体来 说,响应于边界位置的边界类型为两值到多值,在该边界位置的上一级的源节点的输出端 插入第一转换电路,所述第一转换电路为根据上一级的源节点输出的二值信号产生对应的 多值信号的转换电路;响应于边界位置的边界类型为多值到两值,在该边界位置的输入节 点的输入端插入第二转换电路,所述第二转换电路为根据输入节点的输入端的多值信号产 生对应的两值信号的转换电路。由于不同的仿真器对于两值和多值的具体建模和编码方式 有差异,所W要根据仿真器的具体实现方式来得到具体的第一和第二转换电路。
[0072] W下假设多值为3值,由于两值电路用1位数值表示1位信号,而多值电路中用多 位数值表示1位信号,假设模拟器采用两位数值表示3值电路,
[0073] 设第一编码方式为用00表示0,11表示1,01表示X,因此第一转换电路需要复制 两值节点输出怕和化,化复制曲来产生对应的多值。图7. 1示出了对于图5所示的电路 插入的对应第一
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1