一、概述
- 在SV模块中,验证环境整体的构建,是从底层模块的验证组件搭建到通信和激励生成。
- 这些元素无论是软件对象的创建、访问、修改、配置,还是组件之间的通信等都是通过用户自定义的方式来实现的。
- UVM验证方法学,就是将验证过程中可以重用和标准化的部分都规定在其方法学的类库当中。
- 对于验证环境的需求:组件的创建和访问、环境的结构创建、组件之间的连接和运行、不同阶段的顺序安排、激励的生成传递和控制、测试的报告机制。
二、UVM核心类库
- 由于软件环境中对象的生成是动态的,验证环境中的组件也需要UVM提供底层的功能来完成对象的创建和访问。
- 在组件创建之外,UVM也需要提供环境上下层次中创建、连接和运行组件的顺序控制方法,只有在底层机制上有效地保证这一点,才会避免可能发生的句柄悬空问题。
- 在组件通信中,UVM也提供了功能更丰富的TLM(Transaction level model)接口,可以保证相邻组件的通信不再通过显式句柄引用,而是独立于组件的通信方式。
- 对于测试序列(sequence)的生成和传输也是利用了TLM传输在sequence和driver之间完成。而对于不同sequence的发送顺序控制,需要实现sequence之间的灵活调度。
- 为了便于验证环境的调试,UVM的报告机制可以将来自于不同组件、不同级别的信息并且加以过滤,最终生成测试报告。
① 核心基类:提供了最底层的支持,包括了一些基本的方法例如拷贝、创建、比较、打印。
② 工厂(factory)类:提供了注册环境组件、创建组件和覆盖组件类型的方法。
③ 事务(transaction)和序列(sequence)类:用来规定在TLM传输管道中的数据类型和数据生成方式。
④ 结构创建(struct creation)类:构成验证结构的主要部分。
⑤ 环境组件(environment component)类:构成验证结构的主要部分,组件之间的嵌套关系通过层层例化和连接形成了结构层次关系。
⑥ 通信管道(channel)类:和事务接口类共同实现了组件之间的通信和储存。
⑦ 信息报告(message report)类:使得从UVM环境报告的信息一致规范化,便于整体的控制和过滤。
⑧ 寄存器模型(register model)类:用来完成对寄存器和存储的建模、访问、验证。
⑨ 线程同步(thread synchronizetion)类:比SV的同步方法更方便,发生同步时可传递的信息也更多。
⑩ 事务接口(transaction interface)类:和管道通信类共同实现了组件之间的通信和储存。
---------------------
作者:煎丶包
来源:CSDN
原文:https://blog.csdn.net/qq_39794062/article/details/113822840
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件