system Verilog 验证测试平台编写指南——读书笔记(持续更新)

news2024/11/8 9:35:35

第一章 验证导论

1、基本测试平台的功能

测试平台的用途在于确定待测设计的正确性。包含下列步骤:

(1)产生激励。

(2)把激励施加到DUT上.

(3)捕捉响应。

(4)检验正确性。

(5)对照整个验证目标测算进展情况。

2、方法学基础

本书使用如下原则:

(1)受约束的随机激励。

(2)功能覆盖率。

(3)使用事务处理器的分层测试平台。

(4)对所有测试通用的测试平台,

(5)独立于测试平台之外的个性化测试代码。

3、随机化对象

1、考虑设计输入

(1)设备配置。
(2)环境配置。
(3)输入数据。
(4)协议异常。
(5)错误和违例。
(6)时延

4、测试平台

 

5、建立一个分层的测试平台

1、创建一个简单的驱动器

 

首先,来仔细看看其中的一个模块一驱动器。图1.13所示的驱动器接收来自代理的命令。驱动器可能会注人错误或者增加时延,然后再把命令分解成一些信号的变化,例如总线请求或握手。这样一个测试平台模块通常被称为“事务处理器(transactor)”,它的核心部分是一个循环:有关事务处理器的示范代码如例1.4所示。

task tun ();
    done = 0;
    while (! done) begin
        //获取事务
        //变换
        //发送事务
    end


endtask

2、仿真环境

三个基本阶段: 建立 、 运行、 收尾。

1、建立

(1)生成配置:把待测设计的配置和周围的环境随机化。

(2)建立环境:基于配置来分配和连接测试平台构件。测试平台构件指的是存在于测试平台中的部分,注意与设计中的物理构件区分开,后者是采用RTL代码描述的。例如,如果配置选择了三个总线驱动器,那么测试平台应该在这个阶段对它们进行分配和初始化。

(3)对待测设计进行复位。

(4)配置待测设计:基于第一步中生成的配置,载入待测设计的命令寄存器。

2、运行阶段是指测试实际运行的阶段,可分为以下步骤。

(1)启动环境:运行测试平台构件,例如各种BFM和激励发生器。

(2)运行测试:启动测试然后等待测试完成。 

3、收尾

 (1) 清空:在最下层完成以后,你需要等待待测设计清空最后的事务。

 (2)报告:一且待测设计空闲下来,你就可以清空遗留在测试平台中的数据了。

第二章 数据类型

System Verilog引进了一些新的数据类型,它们具有如下优点。

(1)双状态数据类型:更好的性能,更低的内存消耗。

(2)队列、动态和关联数组:减少内存消耗,自带搜索和分类功能。

(3)类和结构:支持抽象数据结构。

(4)联合和合并结构:允许对同一数据有多种视图(view)。

(5)字符串:支持内建的字符序列。

(6)枚举类型:方便代码编写,增加可读性。

一、内建数据类型

1、逻辑(logic)类型

S V对经典的reg数据类型进行了改进,使得它除了作为一个变量以外,还可以被连续赋值、门单元和模块所驱动。为了与寄存器类型相区别,这种改进的数据类型被称为logic。任何使用线网的地方均可以使用logic,但要求logic不能有多个结构性的驱动,例如在对双向总线建模的时候。此时,需要用线网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/672081.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Visual Studio】开发 Qt 时右键没有自动添加 slots 槽的功能,使用 C++ 语言,配合 Qt 开发串口通信界面

知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 文章目录 Ref. 基于 Visual Studio 环境下使用 Qt,发现右键没有自动添加槽的功能,需要自己想办法。我看网上介绍了不止一种方法&#…

Micrometer实战

Micrometer 为基于 JVM 的应用程序的性能监测数据收集提供了一个通用的 API,支持多种度量指标类型,这些指标可以用于观察、警报以及对应用程序当前状态做出响应。 前言 可接入监控系统 监控系统的三个重要特征: 维度(Dimensio…

事务的历史与SSI——PostgreSQL数据库技术峰会成都站分享

前言 PostgreSQL数据库技术峰会成都站 近期(2023年6月17日),由中国开源软件推进联盟PG分会发起的“PostgreSQL数据库技术峰会成都站”圆满举行。我也有幸作为演讲嘉宾参加了此次峰会,收获很多。 (分会回顾和所有pp…

Qt编写监控实时显示和取流回放工具(回放支持切换进度)

一、前言 现在各个监控大厂做的设备,基本上都会支持通过rtsp直接取流显示,而且做的比较好的还支持通过rtsp回放取流,基本上都会约定一个字符串的规则,每个厂家都是不一样的规则,比如回放对应的rtsp地址还要带上时间范…

Java8 List集合如何指定打印分隔符

目录 背景方法一:String.join(推荐)方法二:Collectors.joining总结 背景 无论是在学习还是日常的应用开发过程中,我们经常会需要使用分隔符将 List 集合打印出来。 如下所示: import java.util.Arrays;pub…

数据结构与算法基础(青岛大学-王卓)(5)

叮叮咚咚,新一期来袭,我还在吃桃子,吃桃子,吃桃子。。。串和python的字符串差不多,数组和广义表像是python的list 文章目录 串(string) - 字符串概念及术语串的类型定义存储结构(同线性表)串的模式匹配算法…

leetcode46. 全排列(回溯算法-java)

全排列 leetcode46. 全排列题目描述解题思路代码演示 回溯算法专题 leetcode46. 全排列 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/permutations 题目描述 给定一个不含重复数字的数组 nums ,返回其 所有…

关于平差中误差方程 v=Bx-l 的探讨

文章目录 Part.I IntroductionPart.II 误差方程的探讨Chap.I 符号表示Chap.II 误差方程的含义Chap.III 误差方程的其他形式Chap.IV 平差的大致流程 Part.III 误差方程的表示形式 Part.I Introduction 在平时阅读文献或者整理笔记时,经常会看到各种各样的有关误差方…

Git安装详细教程(win11)

Git安装详细教程(win11) 一、下载二、安装三、配置 一、下载 官网下载:点击下载 网盘下载:点击下载 二、安装 双击程序运行,点击next 选择安装路径,我安装在了D盘,如下图所示,…

Server - 测试 GPU 的显卡使用率与张量之间的关系

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/131331049 NVIDIA A100 是一款基于 Ampere 架构的高性能 GPU,专为 AI、数据分析和高性能计算等应用场景设计。NVIDIA A100 具…

【Java入门基础第10天】Java程序结构

Java程序结构 1、Java程序结构什么是Java程序结构? 2、Java注释1、单行注释2、多行注释3、多行注释 1、Java程序结构 什么是Java程序结构? 程序是由程序块组成的,所谓程序块,指的是使用一对{ } 包含若干的代码的总称。程序块是由…

【Python 基础篇】Python 变量与数据类型以及数据类型转换

文章目录 引言一、变量和常见数据类型1. 变量2. 常见数据类型 二、数据类型转换结论 引言 Python 是一种广泛应用于各个领域的高级编程语言,其灵活性和易用性使其成为众多开发者的首选。在 Python 中,变量是程序中存储数据的基本单元,而数据…

数据结构学习笔记:概论

✨博文作者:烟雨孤舟 💖 喜欢的可以 点赞 收藏 关注哦~~ ✍️ 作者简介: 一个热爱大数据的学习者 ✍️ 笔记简介:作为大数据爱好者,以下是个人总结的学习笔记,如有错误,请多多指教! 目录 数据结…

哈工大计算网络课程网络层协议之:IP数据报、IP子网、子网掩码详解

哈工大计算网络课程网络层协议之:IP数据报、IP子网、子网掩码详解 文章目录 哈工大计算网络课程网络层协议之:IP数据报、IP子网、子网掩码详解Internet网络层IP数据报(分组)格式IP数据报分片最大传输单元(MTU&#xff…

网工内推 | 云计算专场,有通讯补助,13薪,带薪年假

01 中电信数智科技有限公司湖南分公司 招聘岗位:云计算工程师 职责描述: 1、云计算平台环境的搭建:安装、部署、配置、优化; 2、云计算平台有关的解决方案、平台测试; 3、桌面云和虚拟化项目的交付和维护工作&#…

功能强大却十分小众的5款软件

有些软件虽然功能强大,使用便捷,但是却没有得到广泛的关注和推荐,这并不意味着它们不值得一试,相反,它们可能是你不知道的宝藏。我的任务就是要把这些隐藏的好软件分享给大家。 轻量级笔记——CintaNotes CintaNotes…

PCB设计系列分享-LDO的布局布线指南

目录 概要 整体架构流程 技术名词解释 技术细节 小结 概要 “噪声问题” 这是每位电路板设计师都会听到的四个字。为了解决噪声问题,往往要花费数小时的时间进行实验室测试.以便揪出元凶,但最终却发现,噪声是由开关电源的布局不当…

27-1BP_Adaboost强分类器公司财务预管建模——强预测器和弱预测器(附matlab程序)

1.简述 学习目标:进行强预测器和弱预测器的训练来减小误差 BP_Adaboost模型 Adaboost算法的思想是合并多个“弱”分类器的输出以产生有效分类。其主要步骤为:首先给出弱学习算法和样本空间,从样本空间中找出m组训练数据,每组训练…

0015-TIPS-pawnyable : userfaultfd

原文 Linux Kernel PWN | 040303 Pawnyable之userfaultfd userfaultfdの利用 题目下载 代码分析 #include <linux/cdev.h> #include <linux/fs.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/random.h> #include &…

学生党可以做的暑期兼职,让暑假生活不再躺平

夏季期间有几种兼职工作可供选择&#xff1a; 1.许多超市在暑假期间会雇佣一些短期工来从事收银和理货等工作&#xff0c;每小时报酬一般约为15元左右&#xff0c;算是不错的待遇。 2.在暑假期间&#xff0c;你可以寻找一些人力资源工作&#xff0c;借助他们的帮助来安排一些临…