SystemVerilog 学习笔记
文章平均质量分 94
SystemVerilog 学习笔记
菜鸡想要飞
平平无奇小硅农
展开
-
SystemVerilog学习笔记8——类型转换、虚方法、虚函数、对象拷贝、回调函数、参数化的类
目录类型转换动态转换子类句柄赋值于父类句柄父类句柄转换为子类句柄虚方法非虚函数的调用虚函数的调用对象拷贝回调函数参数化的类实现一个简化的mailbox类型转换类型转换可以分为静态转换和动态转换:静态转换在转换的表达式前加上单引号即可,该方式并不会对转换值做检查。如果发生转换失败也无从得知。动态转换需要使用系统函数$cast(tgt,src)做转换;静态转换和动态转换均需要操作符号或系统函数介入,统称为显式转换。不需要进行转换的一些操作称为隐式转换。例如赋值语句右侧是4位的矢量,而左侧是5位的矢量原创 2022-01-20 20:56:38 · 2382 阅读 · 0 评论 -
SystemVerilog学习笔记7——覆盖率
目录代码覆盖率断言覆盖率漏洞率曲线功能覆盖率功能覆盖策略覆盖组覆盖组的采样触发数据采样bin的创建和应用条件覆盖率翻转覆盖率wildcard覆盖率忽略的bin非法的bin交叉覆盖率排除部分cross bin精细的交叉覆盖率指定覆盖选项注释覆盖次数限定覆盖率目标covergroup方法数据分析覆盖率是衡量设计验证完备性的一个通用词语;随着测试逐步覆盖各种合理的组合,仿真过程会慢慢勾画出设计的情况;覆盖率工具会在仿真过程中收集信息,然后进行后续处理并得到覆盖率报告;通过该报告找出覆盖外的盲区,然后修原创 2022-01-20 14:48:21 · 4310 阅读 · 0 评论 -
SystemVerilog学习笔记6——线程
目录线程的使用程序和模块什么是线程?线程的控制fork并行线程语句块等待所有衍生线程线程间的通信event事件semaphore旗语mailbox信箱线程的使用程序和模块module作为RTL模型的外壳包装和实现硬件行为,在更高层的集成层面,模块之间也需要通信和同步;对于硬件的过程块,它们之间的通信可理解为不同逻辑/时序块间的通信或同步,是通过信号的变化来完成的;从硬件实现的角度来看,Verilog通过always、initial过程语句块和信号数据连接实现进程间通信;可将不同module原创 2022-01-19 21:46:04 · 1742 阅读 · 0 评论 -
SystemVerilog学习笔记5——随机约束和分布
目录随机约束和分布为何需要随机?为何需要约束?需要随机什么?声明随机变量的类什么是约束?权重分布约束块控制打开或关闭约束内嵌约束随机函数数组约束数组的属性约束随机化句柄数组随机控制随机约束和分布为何需要随机?芯片体积增大,复杂度越来越高,定向测试已无法满足验证的需求,而随机测试的比例逐渐提高;定向测试能找到认为可能存在的缺陷,随机测试可以找到意想不到的缺陷;随机测试的环境要求比定向测试复杂,需要激励、参考模型、在线比较;随机测试相对定向测试可以减少很多代码量,产生的激励较定向测试也更多样。原创 2022-01-19 15:47:01 · 2213 阅读 · 1 评论 -
SystemVerilog学习笔记4——OOP、句柄、对象、静态变量/方法、类、包
目录类和对象的概述验证为何需要OOP?OOP概念要素句柄的传递对象的销毁静态变量静态方法类的成员类与结构体的异同类与模块的异同类的相关问题类的继承句柄的使用包的使用类和对象的概述类是将相同个体抽象出来的描述方式,对象是实体,其具备有独立行为的能力;具有相同属性和功能的对象属于同一类,不同类之间可能有联系(继承)或没有联系;C语言中,编程基于过程方法,在Verilog中提供了笨拙的类对象编程可能性,即在module中定义方法,而后调用module实例中的方法;Verilog的module+met原创 2022-01-18 23:22:24 · 2283 阅读 · 0 评论 -
SystemVerilog学习笔记3——接口、采样、测试、调试
接口、采样和数据驱动、测试的开始和结束、调试方法、查看信号和波形原创 2022-01-18 20:54:57 · 2248 阅读 · 0 评论 -
SystemVerilog学习笔记2——硬件设计描述(MCDF)
目录MCDF接口描述MCDF接口时序MCDF寄存器描述激励发生器Channel initiatorRegister initiatorFormatter responder监测器内部信号监测建议比较器多通道数据整形器(MCDF, multi-channel data formatter),它可以将上行(uplink)多个通道数据经过内部的FIFO,最终以数据包(data packet)的形式送出;其上行数据和下行数据的接口协议不同;有寄存器的读写接口,可以支持更多的控制功能。上行数据的通道从端(原创 2022-01-18 11:15:58 · 3516 阅读 · 0 评论 -
SystemVerilog学习笔记1——基本概念
目录数据类型组合/非组合型数组定宽数组和动态数组关联数组显示转换初始化和赋值队列结构体枚举类型字符串过程块和方法函数function任务task变量生命周期设计例化和连接验证结构前言:个人学习SV的在线笔记。学习SV的过程中借鉴一些大佬的笔记和路科验证学习资料,只做个人学习交流使用,感谢!数据类型logic和reg、wire的区分和联系:-Verilog作为硬件描述语言,designer懂得所描述的变量应该被实现为寄存器还是线网类型,这有利于后端综合工具以及便于阅读和理解;SV侧重于验证,不原创 2022-01-18 10:12:37 · 2368 阅读 · 2 评论