当所设计的电路并非简单的几个输入端口、输出端口时,由于验证需要尽可能地考虑到所有的输入情况,因此对于激励信号的定义会变得更加复杂。有时工程师会使用某些脚本语言(如Perl、Tcl)来编写验证程序,借助计算机程序的高速处理来实现更大的测试覆盖率。现代的硬件验证语言可以提供一些专门针对验证的特性,例如带有约束的随机化变量、覆盖等等。作为硬件设计、验证统一语言,SystemVerilog是以Verilog为基础发展而来的,因此它同时具备了设计的特性和测试平台的特性,并引入了面向对象程序设计的思想,因此测试平台的编写更加接近软件测试。诸如通用验证方法学的标准化验证平台开发框架也得到了主流电子设计自动化软件厂商的支持。针对高级综合,关于高级验证的电子设计自动化工具也处于研究中。

逻辑综合

工程师设计的硬件描述语言代码一般是寄存器传输级的,在进行物理设计之前,需要使用逻辑综合工具将寄存器传输级代码转换到针对特定工艺的逻辑门级网表,并完成逻辑化简。

和人工进行逻辑优化需要借助卡诺图等类似,电子设计自动化工具来完成逻辑综合也需要特定的算法(如奎因-麦克拉斯基算法等)来化简设计人员定义的逻辑函数。输入到自动综合工具中的文件包括寄存器传输级硬件描述语言代码、工艺库(可以由第三方晶圆代工服务机构提供)、设计约束文件三大类,这些文件在不同的电子设计自动化工具包系统中的格式可能不尽相同。逻辑综合工具会产生一个优化后的门级网表,但是这个网表仍然是基于硬件描述语言的,这个网表在半导体芯片中的走线将在物理设计中来完成。

选择不同器件(如专用集成电路或者现场可编程门阵列等)对应的工艺库来进行逻辑综合,或者在综合时设置了不同的约束策略,将产生不同的综合结果。寄存器传输级代码对于设计项目的逻计划分、语言结构风格等因素会影响综合后网表的效率。大多数成熟的综合工具大多数是基于寄存器传输级描述的,而基于系统级描述的高级综合工具还处在发展阶段。

形式等效性检查

为了比较门级网表和寄存器传输级的等效性,可以通过生成诸如不二可满足性、二元决策图等途径来完成形式等效性检查(形式验证)。实际上,等效性检查还可以检查两个寄存器传输级设计之间,或者两个门级网表之间的逻辑等效性。

时序分析

现代集成电路的时钟频率已经到达了兆赫兹级别,而大量模块内、模块之间的时序关系极其复杂,因此,除了需要验证电路的逻辑功能,还需要进行时序分析,即对信号在传输路径上的延迟进行检查,判断其是否匹配时序收敛要求。时序分析所需的逻辑门标准延迟格式信息可以由标准单元库(或从用户自己设计的单元从提取的时序信息)提供。随着电路特征尺寸不断减小,互连线延迟在实际的总延时中所占的比例愈加显著,因此在物理设计完成之后,把互连线的延迟纳入考虑,才能够精准地进行时序分析。