菜鸡想要飞
码龄7年
关注
提问 私信
  • 博客:183,685
    183,685
    总访问量
  • 76
    原创
  • 1,106,143
    排名
  • 631
    粉丝
  • 7
    铁粉

个人简介:平平无奇小硅农

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:中国
  • 加入CSDN时间: 2018-04-10
博客简介:

weixin_41979380的博客

查看详细资料
个人成就
  • 获得243次点赞
  • 内容获得40次评论
  • 获得1,937次收藏
  • 代码片获得1,350次分享
创作历程
  • 47篇
    2022年
  • 29篇
    2021年
成就勋章
TA的专栏
  • SystemVerilog 学习笔记
    8篇
  • UVM实战卷I 学习笔记
    44篇
  • UVM入门与进阶
    22篇
  • 脚本语言
    1篇
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

SVA断言

SVA断言
原创
发布博客 2022.08.25 ·
3671 阅读 ·
10 点赞 ·
1 评论 ·
70 收藏

TCL基础入门

TCL(Tool Command Language)是一种解释执行的脚本语言,提供通用的编程能力:支持变量、过程和控制结构;同时还拥有功能强大的固有的核心命令集。
原创
发布博客 2022.08.04 ·
5934 阅读 ·
5 点赞 ·
0 评论 ·
67 收藏

UVM入门与进阶学习笔记17——寄存器模型(3)

目录寄存器模型的常规方法mirror、desired和actual valueprediction的分类自动预测显式预测uvm_reg的访问方法mem与reg的联系和差别内建(built-in)sequences寄存器模型内建序列存储模型内建序列寄存器健康检查寄存器应用场景寄存器检查功能覆盖率概述覆盖率自动收集模式覆盖率外部事件触发收集寄存器模型的常规方法mirror、desired和actual value在应用寄存器模型时,除了利用它的寄存器信息,也会利用它跟踪寄存器的值。寄存器模型中的每
原创
发布博客 2022.01.27 ·
6507 阅读 ·
16 点赞 ·
9 评论 ·
106 收藏

UVM入门与进阶学习笔记17——寄存器模型(2)

目录寄存器模型集成总线UVC的实现总线UVC解析MCDF寄存器设计代码Adapter的实现Adapter的集成访问方式前门访问后门访问前门与后门的比较前门与后门的混合应用寄存器模型集成总线UVC的实现MCDF访问寄存器的总线接口时序较为简单。控制寄存器接口上首先需要在每个时钟解析cmd。cmd为写指令时,需要把数据cmd_data_in写入到cmd_addr对应的寄存器中。cmd为读指令时,需要从cmd_addr对应的寄存器中读取数据,在下一个周期cmd_addr对应的寄存器数据被输送至cm
原创
发布博客 2022.01.26 ·
2524 阅读 ·
4 点赞 ·
0 评论 ·
29 收藏

UVM入门与进阶学习笔记17——寄存器模型(1)

目录寄存器模型概览中心化管理方式uvm_reg相关概念MCDF寄存器模型寄存器建模模型使用流程寄存器模型概览寄存器是模块间互相交谈的窗口,一方面可通过读出寄存器的状态获取硬件当前的状况,另一方面也可通过配置寄存器使寄存器工作在一定的模式下。验证过程中寄存器的验证排在验证清单的前列,只有先保证寄存器的功能正确,才使得硬件与硬件间的交谈“语义一致”;若寄存器配置结果与其配置内容不同,则硬件无法工作在想要的模式下,同时寄存器可能无法正确反映硬件的状态。硬件中的各功能模块可以由处理器来配置功能以及访问
原创
发布博客 2022.01.26 ·
2073 阅读 ·
2 点赞 ·
0 评论 ·
20 收藏

UVM入门与进阶学习笔记16——sequencer和sequence(2)

目录sequence的层次化Hierarchical SequenceVirtual SequenceLayering Sequencesequence的层次化就水平复用而言,在MCDF各个子模块的验证环境中,它指的是如何利用已有资源,完成高效的激励场景创建。就垂直复用来看,它指的是在MCDF子系统验证中,可以完成结构复用和激励场景复用两个方面。无论是水平复用还是垂直复用,激励场景的复用很大程度上取决于如何设计sequence,使得底层的sequence实现合理的粒度,帮助完成水平复用,进一步
原创
发布博客 2022.01.26 ·
1731 阅读 ·
2 点赞 ·
0 评论 ·
13 收藏

UVM入门与进阶学习笔记16——sequencer和sequence(1)

目录sequence宏概述发送sequence/item方法建议发送sequence/item方法解析发送序列的相关宏sequencer的仲裁特性sequencer的锁定机制就sequence挂载到sequencer的常用方法做出总结,可通过对这些常用方法和宏的介绍了解它们不同的使用场景。多个sequence需要同时挂载到sequencer时,那就面临仲裁的需要,uvm_sequencer自带仲裁特性,结合sequence的优先级设定,最终可以实现想要的效果。sequence宏概述可以正确区
原创
发布博客 2022.01.25 ·
1392 阅读 ·
1 点赞 ·
0 评论 ·
18 收藏

UVM入门与进阶学习笔记15——sequencer和driver

目录端口和方法事务传输过程分析(重点)通信时序driver同sequencer之间的TLM通信采取get模式,即由driver发起请求,从sequencer一端获得item,再由sequencer将其传递至driver。作为driver,永远停不下来,只要它可以从sequencer获取item,它就一直工作。sequencer和item只应该在合适的时间点产生需要的数据,怎么处理数据则由driver实现。端口和方法为了便于item传输,UVM专门定义了匹配的TLM端口供sequence
原创
发布博客 2022.01.25 ·
3500 阅读 ·
6 点赞 ·
0 评论 ·
25 收藏

UVM入门与进阶学习笔记14——sequence和item

目录Sequence ItemItem和Sequence的关系Flat SequenceHierarchical Sequencesequence指的是uvm_sequence类,而item指的是uvm_sequence_item类。对于激励生成和场景控制,是由sequence来编织的,而对于激励需要的具体数据和控制要求,则是从item的成员数据得到。Sequence Itemitem是基于uvm_object类,这表明它具备UVM核心基类必要的数据操作方法,例如copy()、clone(
原创
发布博客 2022.01.25 ·
2876 阅读 ·
4 点赞 ·
0 评论 ·
17 收藏

UVM入门与进阶学习笔记13——新手上路

目录新手上路序列组件的互动继承关系新手上路在UVM世界利用其核心特性,在创建了组件和顶层环境并完成组件之间的TLM端口连接以后,接下来就可以使得整个环境开始运转了;经过一番实践掌握了组件之间的TLM通信方式,开辟了建筑之间的道路、桥梁和河道以后,就可以进入紧张繁忙的物流期了。运转的必要条件是组件之间有事务(transaction)传送,这就同管道连接好需要引入水流一样。如果按交通道路的车流打比方,sequence就是道路,sequence item是道路上行驶的货车,sequencer是目的地的
原创
发布博客 2022.01.25 ·
792 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

UVM入门与进阶学习笔记12——TLM2通信(2)

目录同步通信元件uvm_eventuvm_barrieruvm_callback同步通信元件SV用来做线程同步的几种元件,它们分别是semaphore、event、mailbox。在UVM中,需要同步线程不再只局限于同一个对象中,还需要解决不同组件之间的线程同步问题。一旦线程同步要求发生在不同组件,这就要求组件间可通过某种方法实现同步。考虑到UVM组件封闭性原则,最好不要通过层次索引的形式在组件中索引公共的event或者semaphore,UVM为了解决封闭性的问题,定义了如下的类满足组件之
原创
发布博客 2022.01.24 ·
1095 阅读 ·
0 点赞 ·
0 评论 ·
10 收藏

UVM入门与进阶学习笔记12——TLM2通信(1)

目录接口实现传送数据时间标记TLM是为了构建更高级抽象模型的传输方式。虽然SV本身没有原生的TLM传输方式,但是TLM在UVM很好地集成进来,并且在组件传输中得到了充分运用。伴随着SystemC模型的广泛引用,SystemC通信机制TLM2.0业发展起来,成为SystemC模型之间的核心传输方式。TLM协议本身并不依赖于某一种语言,而是可以跨语言来实现其传输标准;TLM2.0是SystemC模型之间的核心传输方式。与TLM1.0相比,TLM2.0提供了更丰富更强大的传输特性,主要包括:双向的阻
原创
发布博客 2022.01.24 ·
1447 阅读 ·
0 点赞 ·
0 评论 ·
14 收藏

UVM入门与进阶学习笔11——TLM通信(3)

目录通信管道TLM FIFOAnalysis PortAnalysis TLM FIFORequest & Response通信管道通信管道TLM通信的实现方式的共同点在于都是端对端的,同时target一端需实现传输方法,例如put()或者get()。对于monitor、coverage collector等组件在传输数据时,会存在一端到多端的传输,如何解决这一问题?几个TLM组件和端口可帮助用户解决问题:TLM FIFO、analysis port、analysis TLM FIFO
原创
发布博客 2022.01.24 ·
1308 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

UVM入门与进阶学习笔11——TLM通信(2)

目录单向通信双向通信分类多向通信单向通信单向通信指的是从initiator到target之间的数据流向是单一方向的,或者说initiator和target只能扮演producer和consumer中的一个角色。UVM中单一数据流向的TLM端口有很多类型:(其中PORT代表了三种端口名:port、export、imp)uvm_blocking_put_PORTuvm_nonblocking_put_PORTuvm_put_PORTuvm_blocking_get_PORTuvm_nonb
原创
发布博客 2022.01.24 ·
2937 阅读 ·
0 点赞 ·
0 评论 ·
16 收藏

UVM入门与进阶学习笔11——TLM通信(1)

目录什么是TLM基本概念分类端口的使用什么是TLM在芯片开发流程中,系统原型和芯片验证对项目的助推起到了关键作用。系统原型一般是通过硬件功能描述文档来模拟硬件行为,而行为要求不同于RTL模型。系统原型可以提供一个准确到硬件比特级别、按照地址段访问、不依赖于时钟周期的模型,该模型通常基于SystemC语言;系统原型中各个模块通过TLM可以实现宽松时间范围内的数据包传输。芯片验证是在RTL模型初步建立之后,通过验证语言和方法学来构建验证平台。该平台的特点是验证环境整体基于面向对象开发,组件之间的通
原创
发布博客 2022.01.24 ·
1121 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

UVM入门与进阶学习笔记10——构建验证环境的内经

目录环境构建的四要素单元组件的自闭性回归创建通信端口连接顶层配置环境元素分类成员变量子组件子对象环境构建的四要素在发送测试序列前,首先需要创建一个结构化的环境,将环境建立的核心要素拆解,可分为四个部分:单元组件的自闭性、回归创建、通信端口连接、顶层配置。单元组件的自闭性自闭性指的是单元组件自身可以成为独立行为、不依赖于其它并行的组件。例如driver同sequencer之间,虽然driver需获取sequencer的transaction item,但它本身可以独立例化,而它们之间的通信也是
原创
发布博客 2022.01.24 ·
893 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

UVM入门与进阶学习笔记8——UVM结构回顾

目录uvm_topuvm_test构建环境的主要组件uvm_componentuvm_envuvm_testuvm_componentuvm_topuvm_top是uvm_root类的唯一实例,它由UVM创建和管理,其所在的域是uvm_pkg。uvm_top是所有test组件的顶层,所有验证环境中的组件在创建时都需指明它的父一级,如果某些组件在创建时指定父级的参数为null,那么它将直接隶属于uvm_top。uvm_top提供一系列的方法控制仿真,例如phase机制、objection防止仿真
原创
发布博客 2022.01.23 ·
761 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

UVM入门与进阶学习笔记7——组件家族

目录uvm_driveruvm_monitoruvm_sequenceruvm_agentuvm_scoreboard类uvm_envuvm_test类SV环境的验证组件按功能需要分为激励器(stimulator)、监测器(monitor)和检查器(checker);它们与验证环境的三个关键特性对应:激励、监测和检查。UVM组件家族是从UVM基类继承的一个核心分支即uvm_component类,从它继承的类均可构成验证环境,因为它们都从uvm_component类继承了phase机制,都会经历各个
原创
发布博客 2022.01.23 ·
1844 阅读 ·
1 点赞 ·
0 评论 ·
21 收藏

UVM入门与进阶学习笔记6——消息管理

目录消息方法消息处理消息宏消息机制回调函数一个好的验证系统应该具有的消息管理特性:通过一种标准化的方式打印信息;过滤(重要级别)信息;打印通道。这些特性在UVM中均有支持。UVM提供了一系列丰富的类和方法来生成和过滤消息:消息方法、消息处理、消息机制。消息方法在UVM环境中/之外,只要有引入uvm_pkg,均可通过下面方法按照消息的严重级别和冗余度来打印消息。function void uvm_report_info(string id, string message, int v
原创
发布博客 2022.01.22 ·
1953 阅读 ·
2 点赞 ·
0 评论 ·
10 收藏

UVM入门与进阶学习笔记5——config机制

目录interface传递变量设置object传递为验证环境的复用性,通过外部的参数配置使环境在创建时可根据不同参数选择创建的组件类型、组件实例数目、组件之间的连接以及组件的运行模式等。在更细致的环境调节中有更多变量需配置,例如for-loop的阈值、字符串名称、随机变量的生成比重等。比起重新编译,在仿真中通过变量设置修改环境就显得更灵活,UVM config机制正是提供这么做的方法。UVM提供uvm_config_db的配置类以及几种很方便的变量设置方法来实现在仿真时的环境控制。常见的uv
原创
发布博客 2022.01.22 ·
1374 阅读 ·
2 点赞 ·
1 评论 ·
13 收藏
加载更多