路科验证学习笔记(V0_1)——简易验证结构搭建

  • program和module的区别:program的一个重要作用就是将设计和验证的调度区域以显式的方法来安排。
    • 一般设计放在module中,测试采样部分放在program。可以认为program是软件的领地,不应出现always/module/interface,也不应该有其他program的例化。program在驱动内部定义的变量时候应该用阻塞赋值(软件方式),驱动外部模块的硬件信号用非阻塞(硬件方式)。
    • program中可以有initial,但是不同于module中的initial,前者在reactive中执行,后者在active。
    • SV通过program将DUT和testbench领地做了划分,硬件和软件的执行互补干扰,这是通过不同调度区域的执行顺序来保证的。
    • 在执行program之前先执行设计代码的仿真调度,有下列区域
      • active(执行设计部分的非阻塞赋值,之后进入NBA)
      • inactive(带有#0的进入该区域执行)
      • NBA(上述所有赋值生效)
      • observe:上述区域全部执行完毕后,设计部分线程执行完毕。后续线程是为验证部分准备的。本区域是为属性断言准备,因为必须等到所有数据被稳定赋值之后才能进行检查。
      • reactive:program执行,软件部分对采样值进行计算。若触发内部变量改变则挂起program重新进入active直到整个调度阶段执行完毕再回到reactive。
  • task中的阻塞与非阻塞赋值的区别:阻塞赋值用于不受时钟驱动的异步信号,非阻塞赋值用于时钟驱动的信号。
  • `include 在test_top中使用,使用相当于把引入的文件一行一行展开。编译的时候要注意避免重复编译。做验证的时候也要把DUT加入进来并首先编译,其次编译program,最后编译top。
编译完毕后在控制台输入下列命令
log -r /* 	//将顶层涉及到的所有与硬件相关的信号波形全部保存
  • 一般来说在testbench里面嵌入一个函数:$ vcdpluson;.可以加入一些选项,如果不带选项,默认把所有的波形文件都记录下来。
    【vcdpluson的一些参数选项】
    在这里插入图片描述

  • interface是program(包括其中的类)和DUT连接的媒介,在interface中声明的信号除了clk之外都没有方向。因此引入了clocking做方向的规定,同时可以模拟硬件的时钟(posedge clock)驱动和采样。
    在这里插入图片描述
    在clocking中可以设置延时,如下图加粗部分,约定在时钟上升沿之前1ns处进行数据采样(input #1ns)这使得数据采样更加稳定,在时钟上升沿1ns之后输出数据(output #1ns)这样观察波形更加容易。
    在这里插入图片描述

  • modport,连接驱动的DUT。在其参数列表中应该包括刚刚的时钟模块,已经有可能用到的异步信号。program中所有的类,要做驱动都要经过modport。
    在这里插入图片描述

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注。 目录如下: 第一章 SV环境构建常识 1 1.1 数据类型 1 四、二值逻辑 4 定宽数组 9 foreach 13 动态数组 16 队列 19 关联数组 21 枚举类型 23 字符串 25 1.2 过程块和方法 27 initial和always 30 function逻辑电路 33 task时序电路 35 动态 静态变量 39 1.3 设计例化和连接 45 第二章 验证的方法 393 动态仿真 395 静态检查 397 虚拟模型 403 硬件加速 405 效能验证 408 性能验证 410 第三章 SV组件实现 99 3.1 接口 100 什么是interface 101 接口的优势 108 3.2 采样和数据驱动 112 竞争问题 113 接口中的时序块clocking 123 利于clocking的驱动 133 3.3 测试的开始和结束 136 仿真开始 139 program隐式结束 143 program显式结束 145 软件域program 147 3.4 调试方法 150 第四章 验证的计划 166 4.1 计划概述 166 4.2 计划的内容 173 4.3 计划的实现 185 4.4 计划的进程评估 194 第五章 验证的管理 277 6.1 验证的周期检查 277 6.2 管理三要素 291 6.3 验证的收敛 303 6.4 问题追踪 314 6.5 团队建设 321 6.6 验证的专业化 330 第六章 验证平台的结构 48 2.1 测试平台 49 2.2 硬件设计描述 55 MCDF接口描述 58 MCDF接口时序 62 MCDF寄存器描述 65 2.3 激励发生器 67 channel initiator 72 register initiator 73 2.4 监测器 74 2.5 比较器 81 2.6 验证结构 95 第七章 激励发生封装:类 209 5.1 概述 209 5.2 类的成员 233 5.3 类的继承 245 三种类型权限 protected/local/public 247 this super 253 成员覆盖 257 5.4 句柄的使用 263 5.5 包的使用 269 第八章 激励发生的随机化 340 7.1 随机约束和分布 340 权重分布 353 条件约束 355 7.2 约束块控制 358 7.3 随机函数 366 7.4 数组约束 373 7.5 随机控制 388 第九章 线程与通信 432 9.1 线程的使用 432 9.2 线程的控制 441 三个fork...join 443 等待衍生线程 451 停止线程disable 451 9.3 线程的通信 458 第十章 进程评估:覆盖率 495 10.1 覆盖率类型 495 10.2 功能覆盖策略 510 10.3 覆盖组 516 10.4 数据采样 524 10.5 覆盖选项 544 10.6 数据分析 550 第十一章 SV语言核心进阶 552 11.1 类型转换 552 11.2 虚方法 564 11.3 对象拷贝 575 11.4 回调函数 584 11.5 参数化的类 590 第十二章 UVM简介 392 8.2 UVM简介 414 8.3 UVM组件 420 8.4 UVM环境 425
### 回答1: 《SystemVerilog路科验证v2学习笔记》是一本非常全面深入的书籍,对于学习SystemVerilog语言及验证方法学习者是非常有帮助的。 本书详细介绍了SystemVerilog语言的基础知识和高级特性,包括数据类型、运算符、流控制语句、函数、任务、类、接口等内容,同时紧密结合实际应用场景,给出了大量的示例和案例,让读者能够深入理解语言的特性和应用。 在验证方法方面,本书介绍了常用的验证方法,包括自动化验证、端到端验证、仿真验证和硬件验证方法等。并且配合测试实践,详细介绍常用的验证步骤,例如验证计划、验证环境设计、测试用例生成、仿真调试等。 除此之外,本书还介绍了SystemVerilog中非常重要的Constrained Random Verification方法,包括约束对象、约束条件等内容的详细介绍。并且还介绍了常用的SystemVerilog验证库,例如UVM等内容。 本书内容丰富、实用性强,对于想要了解SystemVerilog语言和验证方法的读者来说,是一本非常不错的参考资料。但读者在阅读本书的时候,需要具备一定的硬件系统知识和编程基础,这样能够更好的理解及学习本书的知识内容。 ### 回答2: 路科验证v2学习笔记是一本全面介绍SystemVerilog验证语言的畅销书籍,共计600页。本书由作者路科阅读SystemVerilog语言规范,并将其实践经验结合编写而成。书中内容包含SystemVerilog语言的基础、高级语法、重要特性以及实际应用等方面,特别适合初学者和有一定基础的验证工程师阅读。 在基础部分,作者详细介绍了SystemVerilog语言的数据类型、操作符、数据结构及宏定义等内容,还介绍了模块的声明、端口、实例化及连接等基本使用方法。在高级语法部分,作者介绍了SystemVerilog中常用的语法,如过程、任务、函数、静态存储类、重载及继承等。另外,作者还介绍了异步时序控制器、顺序时序控制器、交互验证及UVM使用方法等内容。在实际应用方面,作者给出了一系列SystemVerilog验证实例,涉及到寄存器验证、串口验证、DMA验证、AXI验证等多个领域。 总之,如果您是SystemVerilog的初学者或想进一步学习这门语言,这本书可以作为一本好的学习笔记。 ### 回答3: SystemVerilog是一种硬件描述语言,主要用于硬件验证和设计。而路科验证v2学习笔记就是一本详尽的SystemVerilog学习资料,全书共600页,内容涵盖了从SystemVerilog基础语法到高级验证技术的全面介绍。 该书以工程实例为主线,结合实际项目经验,详细讲解了SystemVerilog语言的各个方面,包括数据类型、运算符、流程控制语句、函数、任务、类、接口、时序建模、仿真调试等。同时,本书还特别强调了SystemVerilog中重要的验证特性,如断言、覆盖率、约束随机等。 此外,路科验证v2学习笔记还提供了大量的实战练习,通过实践加深读者对SystemVerilog的理解和应用能力。同时,作者还介绍了常用的EDA工具、仿真平台和验证方法,帮助读者快速掌握实际应用技能。 总之,路科验证v2学习笔记是一本完整、系统、实用的SystemVerilog学习资料,适合各类硬件设计和验证工程师、从业人员、硬件爱好者及学生使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arist9612

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值