集成电路设计验证制造技术

技术编号:33280296 阅读:10 留言:0更新日期:2022-04-30 23:40
本申请提供用于验证IC设计(诸如超大规模集成电路(VLSI)设计)的方法和设备。该方法包括:获得IC设计的描述;基于所述描述确定所述IC设计是否包括组合回路,其中所述组合回路包括输出和连接到所述输出的输入;响应于所述IC设计包括所述组合回路,展开所述组合回路为展开回路,所述展开回路包括:连接以形成所述展开回路的第一迭代和第二迭代,其中所述第一迭代包括第一输出和第一输入,所述第二迭代包括第二输出和第二输入,并且所述第二输出连接到所述第一输入;以及连接在所述第一输入和所述第二输出之间的寄存器;以及验证具有所述展开回路的IC设计,其中所述第一迭代和所述第二迭代中的每一个包括与所述组合回路相同的组件。代中的每一个包括与所述组合回路相同的组件。代中的每一个包括与所述组合回路相同的组件。

【技术实现步骤摘要】
集成电路设计验证


[0001]本申请涉及集成电路(IC)芯片设计验证的
,并且更具体地,涉及用于验证IC设计(诸如超大规模集成电路(VLSI)设计)的方法和设备。

技术介绍

[0002]在制造芯片之前通常要验证集成电路(IC)芯片设计。例如,IC芯片设计通常通过在多个现场可编程门阵列(FPGA)上运行IC芯片的硬件描述代码以仿真IC芯片来验证,或者在计算机上运行具有激励的测试环境的软件编程代码以验证IC芯片。有时,IC设计可以包括组合回路,该组合回路通常是设计误差。组合回路是组合门的输出反馈到相同组合门的输入而不穿过其间的任何时序元件的循环。在设计验证期间,组合回路的输出变得不稳定并且在0和1之间振荡。此外,连续振荡甚至可能损坏FPGA。

技术实现思路

[0003]根据本申请的第一方面,提供了一种用于验证集成电路(IC)设计的方法。该方法包括:获得IC设计的描述;基于所述描述确定所述IC设计是否包括组合回路,其中所述组合回路包括输出和连接到所述输出的输入;响应于所述IC设计包括所述组合回路,展开所述组合回路为展开回路,所述展开回路包括:连接以形成所述展开回路的第一迭代和第二迭代,其中所述第一迭代包括第一输出和第一输入,所述第二迭代包括第二输出和第二输入,并且所述第二输出连接到所述第一输入;以及连接在所述第一输入和所述第二输出之间的寄存器;以及验证具有所述展开回路的IC设计,其中所述第一迭代和所述第二迭代中的每一个包括与所述组合回路相同的组件。
[0004]根据本申请的第二方面,提供了一种用于验证集成电路(IC)设计的设备。该设备包括:存储器,用于存储程序指令;以及至少一个处理器,配置为执行所述程序指令以进行如本申请的第一方面所述的方法。
[0005]根据本申请的第三方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储一组指令,该组指令由计算系统的至少一个处理器可执行,以使得所述计算系统执行如本申请的第一方面所述方法。
附图说明
[0006]为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0007]图1是示出示例性组合回路的示意图。
[0008]图2是示出了处理组合回路的示例性方法的示意图。
[0009]图3是示出根据本申请的一些实施例的验证集成电路(IC)设计的示例性方法的流
程图。
[0010]图4是示出根据本申请的一些实施例的另一示例性组合回路的示意图。
[0011]图5是示出根据本申请的一些实施例的对图4中的示例性组合回路进行处理的示例性方法的示意图。
[0012]图6是示出根据本申请的一些实施例的用于验证IC设计的示例性装置的结构图。
具体实施方式
[0013]为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
[0014]需要说明的是,除非另外定义,本申请使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
[0015]逻辑系统设计(例如,集成电路(IC)芯片)需要在被最终用于生产之前被验证。可以通过使用一个或多个现场可编程门阵列(FPGA)来仿真逻辑系统设计来实现逻辑系统设计的验证。逻辑系统设计的硬件仿真可以包括将逻辑系统设计的硬件描述语言(HDL)代码编译成门级网表,并且在被配置为模仿逻辑系统设计的一个或多个FPGA上实现门级网表。在FPGA上运行仿真的逻辑系统设计可以生成逻辑系统设计系统的波形以用于进一步验证。可以通过在不涉及任何FPGA的情况下在计算机上软件仿真逻辑系统设计来进一步验证逻辑系统设计。
[0016]根据本申请,集成电路的设计可以以HDL源代码或RTL代码来描述。HDL源代码可以用Verilog、SystemVerilog或超高速集成电路硬件描述语言(VHDL))编写。集成电路可以是例如超大规模集成(VLSI)器件。HDL源代码可以由硬件编译器或HDL编译器编译以生成要在软件仿真器或硬件仿真设备上实现的网表。硬件仿真设备可以包括一个或多个FPGA。此外,具有激励信号的测试环境(testbench,TB)可以以诸如C、C++或Python的软件编程语言编写的软件编程语言源代码来描述。可以由软件编译器或编程语言编译器编译软件编程语言源代码,以生成将由计算机执行的二进制可执行代码。
[0017]逻辑系统设计可以包括组合回路,其可能引起逻辑系统设计的硬件仿真和软件仿真的问题。
[0018]图1示出了包括彼此连接的AND门和NOT门的示例组合回路100。AND门的第一输入可以由逻辑系统设计的另一部分输入,AND门的输出被反相并反馈到AND门的第二输入,而不通过诸如寄存器、触发器或计数器等的时序元件。在这种情况下,当AND门的第一输入从0转变到1时,AND门的输出和第二输入在0和1之间振荡。在硬件仿真过程中,可能无法确定通过AND门的信号路径的时序,并且硬件仿真该AND门的FPGA可能由于连续振荡而被损坏。在软件仿真过程中,连续振荡成为无尽循环,并且软件无法收敛其他情况,该软件仿真可能被该无尽循环减慢。
[0019]因为组合回路不包括时序元件,所以打破组合回路的一种方法是在组合回路的信
号路径中插入寄存器。
[0020]图2是示出了解决组合回路的示例性方法的示意图200。如图2所示,当AND门的第一输入从0转变为1时,输出从0改变为1,并且AND门的第二输入从1改变为0。在硬件仿真过程中,可以确定通过AND门的信号路径的时序。在软件仿真过程中,可以在HDL源代码的静态分析或编译期间检测组合回路的存在,并且可以在运行时检测到振荡。然而,插入的寄存器可以改变逻辑系统设计的行为。在硬件仿真过程中可能无法检测连续振荡。尽管可以在软件仿真过程中检测到连续振荡,但是确定连续振荡可能是耗时且昂贵的。在一些情况下,振荡可以被设计用于特定目的,并且如果逻辑系统设计的被改变的行为不能产生振荡,则逻辑系统设计的验证也不能满足其最重要的标准。因此,逻辑系统设计的验证应当避免振荡的副作用,但仍然能够检测振荡的发生。
[0021]图3是示出根据本申请的一些实施例的用于验证IC设计(诸如VLSI设计)的示例性方法300的流程图。
[0022]如图3所示,在S310,可以获得IC设计的描述。在一些实施例中,IC设计的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于验证集成电路(IC)设计的方法,包括:获得IC设计的描述;基于所述描述确定所述IC设计是否包括组合回路,其中所述组合回路包括输出和连接到所述输出的输入;响应于所述IC设计包括所述组合回路,展开所述组合回路为展开回路,所述展开回路包括:连接以形成所述展开回路的第一迭代和第二迭代,其中所述第一迭代包括第一输出和第一输入,所述第二迭代包括第二输出和第二输入,并且所述第二输出连接到所述第一输入;以及连接在所述第一输入和所述第二输出之间的寄存器;以及验证具有所述展开回路的IC设计,其中所述第一迭代和所述第二迭代中的每一个包括与所述组合回路相同的组件。2.根据权利要求1所述的方法,其中,所述展开回路还包括比较器,所述比较器连接到所述第一迭代和所述第二迭代并且被配置为确定在所述组合回路中是否发生振荡。3.如权利要求2所述的方法,其中,展开所述组合回路还包括:将所述第一迭代的第一输出连接到所述比较器的第一输入;以及将所述第二迭代的第二输出连接到所述比较器的第二输入。4.根据权利要求3所述的方法,其中,在确定所述振荡是否出现在所述组...

【专利技术属性】
技术研发人员:朱嘉华
申请(专利权)人:芯华章科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1