UVM学习笔记(1) 初识UVM框架
来源:互联网 发布:婴儿学说话软件 编辑:程序博客网 时间:2024/05/21 17:36
上一篇文章发出去,才发现排版好丑,发现排版确实很影响人的胃口,不过是技术笔记类的文章,不做纠结了,以后写文章再不废话了
============================= 割==============================
验证基础
真是不想多废话,选了个标题都弄了10分钟,格式好费时间,又废话了。
我接触验证的时间和我上班的时间一样,到目前为止,马上到三年了,验证给我最初的印象就是帮别人测试东西的,非常没有技术含量,简直可以说是擦屁股的,做好了,和我没关系,我漏了bug,都是我的锅,哪有这么坑的工作让我做。我入门第一天,我师父问我,你想做设计还是想做验证呢,我说设计啊,多有创意,我师父说,啊,设计的名额已经满了,我是做验证的,所以你也来做验证吧,我屮艸芔茻,心中一万只草泥马奔过,你都定了还问个毛线啊,咋办,那就验呗。咋验?不会,是不是要被开除了,可能吧
一个简单的验证平台。大概就是这样的。一个人发号施令,翻译成中国话和英文,分别送给不同的人,自己消化了再拿出来比对一下到底是不是一样的,咦,怎么有点恶心
好吧,我还是简单的陈述一下什么是验证,什么是我所认为的验证:以高级语言为参考模型,对verilog构建的时序模块进行检查、比对、校验的一种质量保证活动。高级语言,说白了就是C++一类,可以面向对象又或者比较容易实现数据结构的语言类型,听说有人拿Perl、makefile写验证环境,真是个变态。验证的基本框架就是上图所示,至于各个芯片的情况不同,验证环境的结构多少是有些变化的,比如我现在的B模块,是个数据环,比对完了还不行,还要拿出来继续用,还要送回到RM,构成了一个数据环,因此,验证环境并不是一成不变的,而是可以进行多种多样的优化,我们不以写得漂亮为目的,也不是以找了多少bug为目的,以保证芯片代码最后没有问题为目的,发现了1000个bug又能怎么样呢,最后漏一个,就是实打实的一个,管你发现了多少,该废还是要废,你可以按部就班的梳理测试点,也可以鸟枪法,总之bug到处都是,然而能做的完美的却又没有多少个。
跑题了,写着写着就像吐槽,单纯的做个技术狗还真不容易,好了,验证的基础其实需要在实践中慢慢体会,是一种比较死板又可灵活的套路,不会一成不变,接下来,我们就该请出主角,UVM,来初步认识一下什么是个UVM。
UVM基础
UVM_PHASE
fork begin run_phase(); end begin phase1(); phase2(); …… phase12(); endjoin_none
核心流程对于理解各个组件之间的仿真顺序至关重要,现在我们知道了phase这个玩意儿,就要说说UVM中包含的验证组件了,其实还有更重要的一个机制对于phase的控制非常精细,这个就是uvm_objection,不过这个在这里讲的话可能没什么概念,后面我们再说
UVM_OBJECT
- UVM学习笔记(1) 初识UVM框架
- uvm学习总结(1)--激励
- UVM---开篇
- UVM::hello_world
- UVM::config
- UVM::TLM
- UVM overwrite
- UVM PLUSARG
- UVM-regmodel
- UVM REGMODEL
- UVM usage
- 《UVM实战》阅读笔记[前3章]
- UVM系统验证基础知识1(基于UVM的verilog验证 )
- UVM 1.2正式release
- UVM::sequence_item的定义
- UVM::sequence调用sequence_item
- UVM::全局的工具
- UVM::common phasing
- 用户行为分析之数据采集【怎么在不影响网站访问效率的基础上,记录用户的历史行为】
- UE4学习笔记21th
- 约瑟夫环(求助C语言高手)
- 轻松搞定面试中的二叉树题目
- Linux find 命令
- UVM学习笔记(1) 初识UVM框架
- UE4学习笔记22th
- 数据库简单操作—注册和登录实例
- 【特种兵PPT教程】特种兵PPT知识分享——如何用PPT快速抠图?
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料
- sql生成器--生成含注释的sql语句
- 每日一题(35) - 栈的压入、弹出序列(验证出栈序列是否合法)
- 使用getline读入
- UltraISO制作U盘启动盘安装Win7/8/10系统攻略