入职前学习SystemVerilog

使用书籍:验证测试平台编写指南,克里斯版。
主要第1.1-1.10,2,3,4.1-4.5&4.8,5,6,7.1-7.5,9,12.1-12.2章。
第一章:验证导论
HVL(硬件验证语言)特性:1、受约束的随机激励生成;2、功能覆盖率;3、更高层次的结构,尤其是面向对象的编程;4、多线程及线程间的通信;5、支持HDL数据类型,例如Verilog的四状态数值;6、集成了事件仿真器,便于对设计施加控制。
基本测试平台的功能:1、产生激励;2、把激励施加到DUT上;3、捕捉响应;4、检验正确性;5、对照整个验证目标测算进展情况。
本书使用如下原则:1、受约束的随机激励;2、功能覆盖率;3、使用事务处理器的分层测试平台;4、对所有测试通用的测试平台;5、独立于测试平台之外的个性化测试代码。
除了考虑数据路径的漏洞,还需要考虑所有的设计输入:1、设备配置;2、环境配置;3、输入数据;4、协议异常;5、错误和违例;6、时延。
第二章:数据类型
SV引入的新的数据类型:1、双状态数据类型;2、队列、动态和关联数组;3、类和结构;4、联合和合并结构;5、字符串;6、枚举类型。
logic数据类型是reg的改进,可以被连续赋值、门单元和模块所驱动;任何适用wire的地方都可以使用logic。
logic类型只能有一个驱动。
最简单的双状态数据类型是bit,是无符号的;另外四种带符号的双状态数据类型是byte,shortint,int和longint。
定宽数组的声明和初始化。常量数组。数组操作:for和foreach循环。
数组操作:聚合比较和复制。数组可同时使用位下标和数组下标。
如果需要等待数组中的变化,必须使用合并数组。任何数组类型都可以合并,包括动态数组、队列和关联数组。
动态数组。队列,不要对队列使用构造函数new[ ]。 关联数组。链表。
数组的方法:数组缩减方法;数组定位方法;数组的排序。
使用数组定位的方法建立记分板。
选择存储类型:灵活性;存储器用量;速度;排序;选择最优的数据结构。
使用typedef创建新的类型。
创建用户自定义结构:使用struct创建新类型;对结构进行初始化;创建可容纳不同类型的联合;合并结构;在合并结构和非合并结构之间进行选择。
类型转换:静态转换;动态转换;流操作符。
枚举类型:定义枚举值;枚举类型的子程序;枚举类型的转换。
常量。字符串。表达式的位宽。
结束语:队列很适合用于创建记分板,你可以在上面频繁地增加或删除数据。动态数组允许你在程序运行时再指定数组宽度,为测试平台提供了极大的灵活性。关联数组可用于稀疏存储和一些只有单一索引的记分板。枚举类型通过创建具名常量列表而使得你的代码更便于读写。
第三章:过程语句与子程序
过程语句。
任务、函数以及void函数;在verilog中,任务可以消耗时间,函数不可以,也不能调用任务;函数必须有返回值,且返回值必须被使用;
SV允许函数调用任务,但只能在fork join_none语句生成的线程中调用。
子程序参数:C语言风格的子程序参数;参数的方向(在声明子程序参数方面,缺省的类型和方向是logic输入);高级的参数类型(ref const);参数的缺省值;采用名字进行参数传递;常见的代码错误。
子程序的返回:返回(return)语句;从函数中返回一个数组。
局部数据存储:自动存储;变量的初始化。
时间值:时间单位和精度;时间参数;时间和变量;$ time和$ realtime的对比。
第四章:连接设计与测试平台,4.1-4.5,4.8
验证一个设计的步骤:生成输入激励;捕获输出相应;决定对错和衡量进度。
将测试平台和设计分开。
接口:使用接口来简化连接;连接接口和端口;使用modport将接口中的信号分组;在总线设计中使用modport;创建接口监视模块;接口的优缺点。
激励时序:使用时钟块控制同步信号的时序;接口中的logic和wire对比;verilog的时序问题;测试平台-设计间的竞争状态;程序块(program block)和时序区域(timing region)。
接口的驱动和采样:接口同步;接口信号采样;接口信号驱动;通过时钟块驱动接口信号;接口中的双向信号;为什么在程序program中不允许使用always块;时钟发生器。
将这些模块都连接起来:端口列表中的接口必须连接。
SV断言:立即断言immediate assertion ;定制断言行为;并发断言。
第五章:面向对象编程基础
第六章:随机化;;;第七章:线程以及线程间的通信,7.1-7.5;;;第九章:功能覆盖率;;;第十二章:SystemVerilog与C语言的接口,12.1-12.2;;;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
学习SystemVerilog,建议以下几本书籍: 1.《SystemVerilog for Design》(by Stuart Sutherland):这本书是SystemVerilog领域的经典之作,涵盖了SystemVerilog设计语言的方方面面,包括语法、数据类型、控制结构等内容。书中通过大量例子和练习,帮助读者快速掌握SystemVerilog的设计方法。 2.《SystemVerilog Assertions and Functional Coverage》(by Ashok B. Mehta):此书聚焦于SystemVerilog中的断言和功能覆盖,它是验证工程师必备的参考书籍。书中详细介绍了SystemVerilog中的断言语法、属性和覆盖组,以及如何使用它们来验证设计。对于希望深了解SystemVerilog验证方法的读者来说,这本书是很好的选择。 3.《Effective Coding with VHDL Principles and Best Practice》(by Ricardo Jasinski):虽然这本书的标题是关于VHDL的,但其中的许多原则和最佳实践同样适用于SystemVerilog。它详细阐述了代码的编写规范、结构和可维护性等方面,对于想要提高SystemVerilog代码质量的读者非常有帮助。 4.《SystemVerilog Assertions Handbook》(by Ben Cohen):本书深讲解了SystemVerilog中的断言语法和应用,包括顺序断言、并发断言、时序性断言等,帮助读者高效有效地使用断言进行设计验证。对于有一定SystemVerilog基础的读者来说,这本书提供了进一步学习和实践的机会。 这些书籍覆盖了SystemVerilog不同方面的知识,可以根据个人的学习目标和需求选择合适的书籍去学习。此外,实践也是学习SystemVerilog的重要途径,通过自己动手实践并应用所学知识,可以提高对SystemVerilog的理解和掌握。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值