UART UVM验证平台平台搭建总结
tb_top是整个UVM验证平台的最顶层;tb_top中例化dut,提供时钟和复位信号,定义接口以及设置driver和monitor的virual interface,在intial中调用run_test() UVM入口函数。在基于uvm_test扩展出base_test,根据测试用例再基于base_test扩展出各种各样的test.在扩展后的test中call sequence.
在base_test中实例化env, env_config, 打印验证平台的拓扑结构uvm_top.print_topology,打印输出注册在factory中类factory.print()。在环境env的build_phase()阶段,实例化agent,reference model,scoreboard,checker,function coverage。在connetion_phase()将各个组件component通过TLM1.0 中的FIFO或analysis port连接起来。在agent中,实例化driver,monitor,sequencer,根据uvm_agent的is_active变量决定是否实例化driver和sequencer。在monitor和driver与DUT的信号层打交道,所以需要例化virtual interface. 除此之外,根据情况例化config,用congfig_db 配置相应的参数。从uvm_item_sequence派生成相应的transactions。
整个UVM TB的如何函数是run_test()。UVM是基于事物级的验证方法学各个组件之间通过port, export, transport, analysis_port, analysis_export,imp(implement) 等来进行通信。搭建完验证平台后,大部分工作需要编写sequence(seq lib).
uvm中有两种基本类:uvm_transaction,uvm_component(uvm_component其实也是从uvm_objection扩展而来)。uvm验证平台是基于uvm_component构建的树形结构;uvm_compent包括各种phase: build_phase, connect_phase, end_of_elaboration, start_of_simulation_phase, run_phase, pre_reset_phase, reset_phase, post_reset_phase , pre_congfigure_phase, configure_phase, post_configure_phase, pre_main_phase, main_phase, post_main_phase, pre_shutdown, shutdown_phase, post_shutdown_phase, extract_phase, chect_phase, report_phase, final_pahse等。uvm采用objection机制决定phase执行的时间raising_objection和drop_objection. 将uvm_sequence_item中比较复杂的约束可以放在per_randomize()和post_randomize()中。sequence包含pre_body(), body(), post_body()三个过程。
验证平台需要自动化完成工作,用perl脚本搭建基本UVM验证平台框架,编写Makefile完成仿真工具和工作设置,以及在Makefile中调用参数化设置;还可使用$test$plusargs和$value$plusargs传入相应的参数。
参考文献:
扩展阅读
[1] 关于$test$plusargs和$value$plusargs的小结. http://www.cnblogs.com/nanoty/p/4355245.html
UART UVM验证平台平台搭建总结的更多相关文章
- 基于简单DUT的UVM验证平台的搭建(一)
最近一个月在实习公司做回归测试,对公司的UVM平台用的比较熟练,就想着自己做一个DUT,然后搭建一个UVM验证平台. 首先,DUT是一个简单的32位的加法器,代码如下:alu.v module add ...
- ( 转)UVM验证方法学之一验证平台
在现代IC设计流程中,当设计人员根据设计规格说明书完成RTL代码之后,验证人员开始验证这些代码(通常称其为DUT,Design Under Test).验证工作主要保证从设计规格说明书到RTL转变的正 ...
- Windows平台下搭建Git服务器的图文教程
Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在window ...
- Windows平台下搭建Git服务器的图文教程(转发)
Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在window ...
- Docker笔记02-日志平台ELK搭建
OS: Centos7 准备工作: 虚拟机中安装Centos, 搭建Docker环境 ELK简介: 略 文档地址 https://elk-docker.readthedocs.io/ 需要注意的是在B ...
- 百度开平台BAE搭建网站
百度开平台BAE搭建网站 一.注册:在百度云注册账号,并且登陆 然后实名验证 二.开始搭建 三.部署项目:我们来把我们的项目提交上去 填写百度云的账号密码 四.删除:删除部署项目 以上就是百度开平台B ...
- 【转】flume+kafka+zookeeper 日志收集平台的搭建
from:https://my.oschina.net/jastme/blog/600573 flume+kafka+zookeeper 日志收集平台的搭建 收藏 jastme 发表于 10个月前 阅 ...
- kinect学习笔记(一)—— Openni平台的搭建~、
一.简述 Openni平台是开源的平台,也就是说所有的源代码都可以查询,可以有助于我们对于整个程序框架的学习和理解,相对于微软的SDK,我更倾向于这个平台,但是由于个各种原因,现在这个 ...
- [Linux] Ubuntu Server 12.04 LTS 平台上搭建WordPress(Nginx+MySql+PHP) Part II
接着上一节继续搭建我们的LNMP平台,接下来我们安装PHP相关的服务 sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5- ...
随机推荐
- Merge Intervals
Given a collection of intervals, merge all overlapping intervals. For example,Given [1,3],[2,6],[8,1 ...
- USB协议-USB设备的枚举过程
USB主机在检测到USB设备插入后,就要对设备进行枚举了.为什么要枚举?枚举就是从设备读取各种描述符信息,这样主机就可以根据这些信息来加载合适的驱动程序,从而知道设备是什么样的设备,如何进行通信等. ...
- 网页闯关游戏(riddle webgame)--游戏玩法和整体介绍
前言: 记得上大学那会, 有位传说中的大牛, 写了一个网页闯关类的游戏. 当时我们玩得不亦乐乎, 也是第一次接触到这种形式的游戏. 不过当时纯玩家心态, 并没有想过去创造一个. 最近想起这事, 突然想 ...
- 腾讯优测干货精选|Android双卡双待适配——隐藏在数据库中的那些秘密
腾讯优测是专业的app自动化测试平台,除了提供兼容性测试,远程真机租用等多维度的测试服务,还有优分享-腾讯内部的移动研发测试干货精选~ 许多APP都希望获取用户通讯录联系人,利用通讯录关系链信息来丰富 ...
- ionic-native-transitions调用原生页面切换实现ionic路由切换
废话不多说:ionic-native-transitions调用原生页面切换实现ionic路由切换,从而大大提升ionic应用的性能. ionic-native-transitions是一个ionic ...
- EntityFramework 基础的crud
EntityFramework 基础的crud操作 根据上一张实体映射的demo学习基础的crud操作 1.增加 BlogDbContext dbContext = new BlogDbContext ...
- ES6 - for...of
for...of是一种用来遍历数据结构的方法,可遍历的对象包括:数组,对象,字符串,节点数组等 我们先来看一下现在存在的遍历方式: var arr=[1,2,3,4] (1)for循环 缺点:代码不够 ...
- c++对象成员的引用---12
原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/ 在程序中经常需要访问对象中的成员.访问对象中的成员可以有3种方法: 通过对象名和成员运算符访问对象中的成 ...
- 体验一下cygwin
一直在windows下使用gvim,为了更方便的使用cscope.先是写了bat脚本,发现太不方便了. 于是想到了cygwin.下载安装工具就可以了进行默认安装了,配置比较简单. 调整包: ./set ...
- ubuntu 编译安装 srilm
Ubuntu 64bit系统下SRILM的配置 依赖软件包(先进行): 1.c/c++ compiler:编译器gcc 3.4.3及以上版本,我的是gcc 4.4 2.GNU make:构建和管理工程 ...