由于上述验证方法都或多或少具有局限性,所以需要一种完善的验证系统。根据上节所述,一种完善的验证自动化系统需要具备以下几个功能:首先它能够定义验证计划;然后能够提供接口,用语言从抽象的层次产生基于约束的激励;并且能方便高效地建立验证环境;能够完成设计时序行为的验证和基于断言的功能覆盖率的验证。
e语言是一种功能强大的验证语言,它可以很好地实现一个验证自动化系统,如图1所示。在这个验证系统中,首先可以根据验证者的需要,用e语言来制定一些约束,根据这些约束来产生验证需要的激励。由于e可以很好地与Verilog和VHDL仿真器通信,因此可以将这些用e语言抽象描述的数据转换成比特形式,然后加载给设计;再通过和仿真器的通信,对系统进行功能仿真,并将设计的输出收集起来,这时可以将比特形式的数据转换回e语言的抽象描述,以便于对设计行为与预期结果进行检查。除此之外,e语言还可以实现设计时序行为的检查。如果一个中断必须在请求后的5个周期后发出,可以通过e语言来描述这个设计属性,通过仿真来检查其是否满足。,e语言还可以用来进行基于断言的功能覆盖率验证。
&nb
图2 仿真器结构
仿真环境包含以下各组成部分:
Specman:整个验证环境是用e语言实现的,其中包括约束、激励产生、驱动、检查、覆盖率等,所有的e文件都由Specman编译和仿真。
仿真器:Verilog或VHDL仿真器,它通过stubs文件与Specman进行通信。
外界库:仿真用到的一些模型可能是基于C语言的,e语言可以很好地导入这些模型来进行仿真。
设计:基于Verilog或VHDL的设计。
仿真文件:在仿真中可能用到的一些外部模型,如总线功能模型等。
顶层:包括设计和各种模型的例化和一些驱动输入或收集输出的寄存器。
Stubs文件:Specman读入所有的e文件,然后用一个命令来生成所需要的Stubs文件,这个文件在仿真过程中是由仿真器编译和仿真的。
基于e语言的验证环境
基于e语言的验证环境包括许多组成部分,其基本结构如图3所示。
图3 基本结构
其中数据对象代表固定格式的测试向量,如数据包、视频中的一帧数据,或CPU的一种指令。激励产生
图4 验证环境的划分框图
基于e语言的验证环境的文件层次结构如图5所示,其顶层文件名字固定为sys,在sys下例化所有的模块。
图5 文件层次结构
结语
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。