System Verilog验证 书的 笔记
1. SV 的数据类型有四态(wire, reg ,integer, time, )和双态(real,bit , int )两种,使用双态有什么好处和弊端?
双态可以提高仿真器性能减少内存使用,带来的问题是DUT 输出的X/Z会被转换成双态值而没法发现问题。
2. logic 和wire的区别,任何用wire地方都可以用logic 除了双向总线必须用wire。 logic只能有一个驱动, 如果存在多驱动,那么编译会有错误。wire在没有驱动的时候输出是Z。
3. 合并数组,非合并数组,动态数组,队列,关联数组(几个G字节的寻址范围,但实际使用又不是很多,关联数组只为实际写入的地址分配空间),链表。
4. 如何选择存储类型?队列,关联数组,定宽数组,动态数组。
网络数据包: 定宽或者动态数组。
scorebord保存期望值: 队列或者关联数组。
5. typedef 自定义, 结构体 struct 。
6. 数据类型转换, 静态转换,动态转换。
7. 枚举类型 emu.以及转换。
8. task 可以消耗时间, function 不能消耗时间 如#100ns。
9. task 传参, ref 或则 const ref (子程序不改变数组值)
10. timescale
11. 静态存储和自动存储的概念。
12. 使用interface 连接testbech 和DUT 的好处。
13. 一个class一个文件,多个文件用package打包。
14. new() 和 new[]的区别, new[]创建了一个数组类。同一个句柄再new一次会释放之前的句柄
15. 静态变量和全局变量,局部变量。
16.在类之外定义方法,用extern. (理解这样做的好处)
17. this 用法: 先在当前作用域内寻找,然后在上一级寻找,直到找到该变量。
18. typedef 可以用来解决编译顺序问题。
19. 线程间的通信。 fork join 系类。
20. function coverage。
21.assertion。
