随着VLSI的规模不断膨胀,设计VLSI的复杂性也迅速增加。一个集成电路芯片上可以制作含有几百万个甚至更多的晶体管的逻辑电路。一个集成电路已不单单是一个局部电路,也可以是整个数字系统,如一个CPU。不借助于计算机,要想用人工的方法验证其正确性,已经不可能。
  即使是用自动综合软件生成的设计结果,也需要进行验证。事实上,任何设计软件都不可能是完美无缺的,不可能考虑到各种因素。它在满足了一个方面的要求之后,不一定能满足其它方面的要求。例如,设计时只考虑状态转换过程的正确,考虑元件的利用率,而对元件延迟时间可能考虑得不仔细,而造成某些情况下时序不正确,或配合有偏差。设计者把原有的设计结果拿来进行局部修改,以改进其功能。显然修改后的结果需要验证其整体功能是否符合要求。此外,常见的错误还出现在设计者的描述过程中。当描述文件(如VHDL语言的描述)没有正确反映其设计思想和目标,或者设计思想本身就是错误的,若不验证其正确性则后面的设计是毫无意义的。
  常见的验证方法有下列三种:(1) 模拟(Simulation); (2) 规则检查 (Design Rule Checking); (3) 形式验证(Formal Verification)。
  所谓模拟,是指从电路的描述(语言描述或图形描述)抽象出模型,然后将外部激励信号或数据施加于此模型,通过观察该模型在外部激励信号作用下的反应来判断该电路系统是否实现预期的功能。模拟方法是目前常用的方法。根据不同的电路级别,有不同的模拟工具。
  规则检查是分析电路设计结果中各种数据的关系是否符合设计规则。
  形式验证是近几年来兴起的一种验证方法。它利用理论证明的方法和数学的方法来验证设计结果的正确性。形式验证基于严密的理论体系,理论上可以证明电路正确与否。
  目前模拟验证仍然是验证电路设计正确性的主要手段。
  模拟是用软件模仿硬件的工作过程。在未使用计算机软件模拟之前,人们常用试验板来验证设计的正确性。试验板上根据逻辑电路原理图搭接电路。各输入端接入信号发生器,提供激励波形,启动运行后则用示波器观察输出端及若干内部观察点的波形。这种用试验板模拟的方法有几个问题。(1)搭接试验板费用较大;(2)试验板不能完全反映真实电路;(3)试验板本身可能有问题;(4)在电路规模较大、功能较复杂的情况下,很难用试验板实现。模拟用软件数据模型代替硬件仿真板,激励信号和输出波形都用专门的软件程序实现。
  不同级别的设计规则有不同的设计规则检查的软件工具。在版图设计中主要检查不同层线条的相互关系,线宽,以及电学性能等是否符合规定,有专用的设计规则检查软件(DRC等)。在逻辑电路中如最小脉冲宽度,建立时间和保持时间,信号值的配合关系和禁止情况等。都需要进行检查。通常这些检查也放在模拟过程中进行。行为级的检查,如有限状态机的状态可达性等规则,也有专门的软件检查工具。
  多年来形式验证一直有人研究,是最近几年发展最快的研究领域之一,已经有初步有效的商业软件问世。本书将在第6章专门讲述。
  形式验证的特点是确定设计功能正确与否,而模拟验证虽然可以有效地检查设计错误,但不能穷举各种可能的情况,不能断言设计是否正确。但模拟验证有很大的优势,可以对各种性能进行精确的验证。二者互有优势,通常同时运用于设计的验证,相辅相成。