《UVM实战卷Ⅰ》学习笔记
文章平均质量分 68
本专栏以《UVM实战卷Ⅰ》生成学习笔记,目标是做有价值的输出,避免生搬硬套. 推荐UVM初学者使用《UVM实战卷Ⅰ》机械出版社,张强.ISBN 978-7-111-47019-9
IC_Novice
所写blog有任何错误,感谢指出
展开
-
《UVM实战卷Ⅰ》学习笔记 第八章 UVM中的factory机制
本章主要讲factory机制2个点:1.重载:又称为覆盖,也是opp编程三大特点之一多态的体现2.factory创造实例多说几句:第八章建议多在项目中实践,学习效率会高一些。本书学习笔记就暂时更新到这里,后续不出意外这本书还会反复阅读,希望自己到时候能够更新丰富各个章节的笔记。如果各位在之前的任何笔记发现错误或者有关于UVM等IC验证方面的知识探讨,欢迎和我联系,谢谢~...原创 2021-11-03 10:43:28 · 232 阅读 · 0 评论 -
《UVM实战卷Ⅰ》学习笔记 第七章 UVM中的寄存器模型(2)
推荐另外一篇相对更为基础的UVM寄存器相关知识梳理UVM寄存器模型笔记_IC-V的博客-CSDN博客目录7.3后门访问和前门访问1.后门访问的方式7.4复杂的寄存器模型7.5复杂寄存器模型7.6寄存器模型中内建的一些sequence7.7寄存器模型的高级用法7.8寄存器模型的其他常用函数7.3后门访问和前门访问1.后门访问的方式1.新建后门interface2.DPI+VPI①构造reg_mod时设置好路径参数②写操作uvm_hdl...原创 2021-10-19 21:10:58 · 573 阅读 · 0 评论 -
《UVM实战卷Ⅰ》学习笔记 第七章 UVM中的寄存器模型(1)
写在前面:本章可能个人认为是全书最为复杂的一章,也是UVM的提升所在.通过自己的学习,自己有以下几点针对本章的学习建议;1.如果可能的话,建议先有sv验证reg的经验,这样更能体会UVM的方便之处2.前边六章内容,要熟悉,第七章不会刻意提及前边的知识点3.如果第一次看不懂不要勉强,多看几次.另外看的时候一定结合代码,必要的时候看看源代码,有助于理解7.1寄存器模型简介1 2.2.1和7.1.1的dut可能部分同学对dut的理解不透彻,可以结合下边两个图来理解,分别是2.2.1和7.7原创 2021-10-19 19:25:00 · 758 阅读 · 0 评论 -
《UVM实战卷Ⅰ》学习笔记 第六章 UVM中的sequence(3)
aaa原创 2021-10-19 12:46:56 · 685 阅读 · 0 评论 -
《UVM实战卷Ⅰ》学习笔记 第六章 UVM中的sequence(2)
目录6.4sequence进阶应用1.uvm_do系列函数的操作对象是什么?2.从某种程度上讲transaction和sequence界限比较模糊3.seq/sqr/drv之间流转的transaction类型匹配($cast(子类,父类)的重要应用)4.p_sequencer($cast(子类,父类)的重要应用)6.4sequence进阶应用1.uvm_do系列函数的操作对象是什么?①transaction:uvm_do的操作对象在6.4之前都是transactio...原创 2021-10-18 17:25:12 · 664 阅读 · 0 评论 -
《UVM实战卷Ⅰ》学习笔记 第六章 UVM中的sequence(1)
xxx原创 2021-10-18 12:21:33 · 391 阅读 · 0 评论 -
《UVM实战卷Ⅰ》学习笔记 第五章 UVM验证平台的运行
5.1phase机制1.两种自上而下执行顺序1.空间上:不同层次的build_phase自上而下依次执行2.时间上:不同phase依次执行2.phase的执行顺序1.UVM树直系comp(彼此依靠parent/child联系起来的comp)的phase:①:不消耗仿真时间的phase不同层次的build_phase--->自上而下依次执行,其余不消耗仿真时间的phase(例如connect_phase)--->自下而上②消耗仿真时间的phase--->自下而上.原创 2021-10-17 13:16:03 · 13331 阅读 · 0 评论 -
《UVM实战卷Ⅰ》学习笔记 第四章 UVM中的TLM1.0通信
写在前面:TLM有1.0和2.0,本书只讲述1.04.11.TLM通信解决的三个需求1.transaction级数据在comp之间的传输2.comp数据传输存在的阻塞和非阻塞问题3.接收数据部件如何向发送数据部件请求数据2.控制流(initiator和target)和数据流(productor和consumer)在最开始的第一章,作者就提及了控制流和数据流,在TLM这章可以有具象的认识.数据流顾名思义就是数据的流动,从productor到consumer而控制流是命令或请原创 2021-10-16 19:44:35 · 446 阅读 · 0 评论 -
《UVM实战卷Ⅰ》学习笔记 第三章 UVM基础(2)
目录3.43.53.4本小节主要是讲的信息管理,在后续的调试中很重要.内容相对简单繁琐,多查询多应用即可.3.5原创 2021-10-16 15:22:49 · 169 阅读 · 0 评论 -
《UVM实战卷Ⅰ》学习笔记 第三章 UVM基础(1)
3.11.补一张更为全面的uvm库图注意uvm_compoent和uvm_object的关系,按继承于uvm_object与否分类该图2.uvm_compoent继承于uvm_object,相对又有什么扩展?1.构造函数new(name,parent),可形成树形结构2.phase自动执行,对比可以回顾transaction是怎么启动3.uvm_compoent相对uvm_object有什么缺失?(纵然uvm_compoent继承于uvm_object)由于其树形结构..原创 2021-10-16 10:49:39 · 667 阅读 · 0 评论 -
《UVM实战卷Ⅰ》学习笔记 第二章 一个简单的UVM验证平台(4)
2.51.为什么引入base_test?经过重重改造,我们来到了最后一步.截止目前uvm_test_top是env(run_test的参数就是env),然后用于验证dut的激励在seq中生成,在env中启动.为了利用现有的env构造,我们最好的办法是,再套娃,再找个容器把env例化进去,这就是base_test.然后把原来的seq以及和seq相关的启动单独拿出来(原来启动是在env)组成case.结合代码可知,case就分成两部分:一是原来的seq,二是为了利用原有env(已例化在base_te原创 2021-10-15 20:31:19 · 308 阅读 · 0 评论 -
《UVM实战卷Ⅰ》学习笔记 第二章 一个简单的UVM验证平台(3)
2.41.定义driver时传递给uvm_driver参数有什么用?class my_driver extends uvm_driver#(my_transaction);//传递参数............ for(int i = 0; i < 2; i++) begin req = new("req");//直接例化使用,省略my_transaction req assert(req.randomize() with {pload.size ==原创 2021-10-15 18:19:18 · 514 阅读 · 0 评论 -
《UVM实战卷Ⅰ》学习笔记 第二章 一个简单的UVM验证平台(2)
写在前面:为了避免文章过长,引起阅读疲劳,会将有些章节分开写2.31.什么是基于信号级的操作?什么是基于transaction的操作?transaction是个抽象的概念,我们可以结合代码来理解,先看不同driver中什么是信号级再看什么是transaction.需求是:满足一般物理协议,以帧或者包传递数据.解决是:引入transaction信号级task my_driver::main_phase(uvm_phase phase); phase.raise_objection(原创 2021-10-15 16:53:36 · 639 阅读 · 0 评论 -
《UVM实战卷Ⅰ》学习笔记 第二章 一个简单的UVM验证平台(1)
写在前面:本章作者想通过一个极为简单的验证环境让读者初始UVM,因此该章学习有一些建议.第一点,有的细节暂时不用深究,因为后续章节会详细讲解.做好备忘,回头再温习即可.第二点,个人认为作者关于UVM中语法点或者说新机制的引入是从"需求--->解决方案"的思路来讲解的,所以可以从这个角度理解,抓大放小.2.1无2.21.想要在使用UVM实现一个功能时,第一步应该做什么?这里主要谈的是面向对象编程.从开始讲,UVM本质上是一个库,库中有各种各样已经定义好的类(class),这里的定义好原创 2021-10-15 02:13:00 · 2200 阅读 · 0 评论 -
《UVM实战卷Ⅰ》学习笔记 第一章 与UVM的第一次接触
写在前面: 本章可以简单理解为一个通识介绍.主要介绍:1.验证与UVM的介绍 2.通过学习本书可以掌握UVM中什么内容.1.两个基本概念1.reference model(参考模型):reference model用于模拟硬件功能,用于接收硬件输入接口的数据然后产生输出,将输出和硬件输出对比,达到验证目的.2.Design Under Test(DUT 待测设计/硬件):即设计人员依特性列表完成的RTL代码2.待迭代内容1.作者在1.1.1(p.2)中提及的验证的主要内容是否可以理解透彻原创 2021-10-13 23:34:05 · 248 阅读 · 0 评论 -
《UVM实战卷Ⅰ》学习笔记 前言
1.为什么要写这个专栏?1.尝试使用费曼学习法(即输出式学习法)消化知识2.个人认为《UVM实战卷Ⅰ》这本书很适合UVM初学者使用,但是网络上关于此书的相关学习经验较少,有部分直接把书中内容搬上来,个人觉得意义不大3.不断更新迭代自己对UVM的理解,随着自己对UVM理解更深,可以在此专栏进行更新迭代4.试图建立一个关于此书的讨论区,由于自己水平有限,希望有同在学习的伙伴加入.或评论或私信一起讨论2.学习《UVM实战卷Ⅰ》的建议1.需要有面向对象编程语言基础,最好是system ver原创 2021-10-13 22:11:58 · 492 阅读 · 0 评论