一、验证导论
SystemVerilog学习(1)——验证导论-CSDN博客文章浏览阅读403次。SystemVerilog自学,验证系统概述,什么是SVhttps://blog.csdn.net/apple_53311083/article/details/133953016
二、数据类型
SystemVerilog学习(2)——数据类型-CSDN博客文章浏览阅读498次。SystemVerilog数据类型说明https://blog.csdn.net/apple_53311083/article/details/133954778
三、数组
SystemVerilog学习(3)——数组_system verilog 多维数组-CSDN博客文章浏览阅读381次。SV数组类型和队列_system verilog 多维数组https://blog.csdn.net/apple_53311083/article/details/133956143
四、自定义结构
SystemVerilog学习(4)——自定义结构-CSDN博客文章浏览阅读306次。SV自定义类型https://blog.csdn.net/apple_53311083/article/details/133960786
五、接口
SystemVerilog学习 (5)——接口-CSDN博客文章浏览阅读515次。在进行验证的时候,我们尽量希望能够把设计部分和验证的部分分成,这里就会涉及到两个部分的连接问题,使用verilog的大家应该都知道,在verilog中对于端口的连接来说是一件非常枯燥和繁琐的事情,对于一个大的设计来说,端口的连接是非常耗时和易错的。SV在这方面引入了接口来简化这一步骤。https://blog.csdn.net/apple_53311083/article/details/134417729
六、验证平台
SystemVerilog学习 (6)——验证平台-CSDN博客文章浏览阅读276次,点赞5次,收藏4次。测试平台(Testbench)是整个验证系统的总称。它包含了验证系统的各个组件、组件之间的互联关系,测试平台的配置与控制等,从更系统的意义来讲,它还包括编译仿真的流程、结果分析报告和覆盖率检查等。从狭义上讲,我们主要关注验证平台的结构和组件部分,他们可以产生设计所需要的各种输入,也会在此基础上进行设计功能的检查。https://blog.csdn.net/apple_53311083/article/details/134419436
七、面向编程
SystemVerilog学习 (7)——面向对象编程-CSDN博客文章浏览阅读108次,点赞2次,收藏3次。面向对象编程(OOP)使用户能够创建复杂的数据类型,并且将它们跟使用这些数据类型的程序紧密地结合在一起。用户可以在更加抽象的层次建立测试平台和系统级模型,通过调用函数来执行一个动作而不是改变信号的电平。当使用事务来代替信号翻转的时候,你就会变得更加高效。这样做的附加好处是,测试平台跟设计细节分开了,它们变得更加可靠,更加易于维护,在将来的项日中可以重复使用。https://blog.csdn.net/apple_53311083/article/details/134427859
八、包的使用
SystemVerilog学习(8)——包的使用-CSDN博客文章浏览阅读122次,点赞2次,收藏3次。在实际的使用过程中,经常会把一个大的验证平台的创建和设计部分封装成一个包的形式,然后我们再通过另一个tb文件导出包的形式来完成我们的验证目标。这样做的好处一方面是增加我们验证流程的层次性和条理性,同时增加了代码的复用率。包中可以使用class,module,interface等一系列的内容。在认知上,我们就可以把包认知为我们C语言中的函数库,我们verilog中的IP核。https://blog.csdn.net/apple_53311083/article/details/134441687
九、随机化
SystemVerilog学习 (9)——随机化-CSDN博客文章浏览阅读341次,点赞3次,收藏5次。随着设计变得越来越大,要产生一个完整的激励集来测试设计的功能也变得越来越困难了。 定向激励的测试方法早已经无法满足检查功能完整性的要求。解决的办法是采用受约束的随机测试法(CRT)自动产生测试集。随机约束测试(CRT,Constrained-Random Test)即能够产生你感兴趣的、你想不到的的测试向量,通过回归测试、替换随机种子的方式来提高单位测试用例的覆盖率收集效率。https://blog.csdn.net/apple_53311083/article/details/134444360
十、线程控制
SystemVerilog学习 (10)——线程控制-CSDN博客文章浏览阅读233次,点赞3次,收藏5次。在实际硬件中,时序逻辑通过时钟沿来激活,组合逻辑的输出则随着输人的变化而变化。所有这些并发的活动在Verilog 的寄存器传输级上是通过initial和 always块语句、实例化和连续赋值语句来模拟的。为了模拟和检验这些语句块,测试平台使用许多并发执行的线程。在测试平台的环境里,大多数语句块被模拟成事务处理器,并运行在各自的线程里。SystemVerilog 的调度器就像一个交通警察,总是不停地选择下一个要运行的线程https://blog.csdn.net/apple_53311083/article/details/134450256
十一、覆盖率
SystemVerilog学习 (11)——覆盖率-CSDN博客文章浏览阅读1.3k次,点赞19次,收藏22次。“验证如果没有量化,那么就意味着没有尽头。” ,伴随着复杂SoC系统的验证难度系数成倍增加,无论是定向测试还是随机测试,我们在验证的过程中终究需要回答两个问题:是否所有设计的功能在验证计划中都已经验证?代码中的某些部分是否从未执行过。覆盖率就是用来帮助我们在仿真中回答以上问题的指标。如今,覆盖率已经被广泛采用,作为衡量验证过程中的重要数据。https://blog.csdn.net/apple_53311083/article/details/134465224