ic验证,systemverilog笔记,路科笔记,systemVerilog知识总结,对于初学者的一些知识总结和重点知识,帮助初学者快速的上手和知识补充。 (1)关键词随机rand,randc表示周期随机性,随机完所有值再重复,需要配合预定义的类随机函数std::randomize()使用。约束constraint也同随机变量一起在类中声明。 PRNG(pseudorandom number generator)伪随机数生成器 : local::只在randomize里出现,其他地方没有 ● 是指通过特定算法生成一系列的数字,使得这一系列的数字看起来是随机的,但是实际是确定的,所以叫伪随机数 ; ● const(和C语言一样,就是个常数声明,最好赋初值,不可以二次赋值)。 (2)约束constraint,inside{},权重分布dist,使用dist:=表示每一个值的权重是相同的或者:/表示权重要平均分到值范围内的每一个值;使用$表示最大值或者最小值{[$:4]};条件约束可以通过->或者if-else:->如果箭头前面表达式的值大于0(等于1 ,为真) 就触发后面,相当于if。 SystemVerilog是一种强大的硬件描述和验证语言,广泛用于集成电路(IC)验证。以下是对SystemVerilog关键知识点的详细总结: 1. **随机化(rand)**:SystemVerilog支持随机化变量,`rand`关键字用于声明随机变量,而`randc`则表示具有周期性的随机变量,会在遍历所有可能值后重复。随机化需要配合`std::randomize()`函数使用,它会根据约束生成随机数据。 2. **约束(constraint)**:约束是SystemVerilog中用来限制随机化变量取值的重要机制。`constraint`可以在类中与随机变量一起声明。`inside{}`用于指定变量取值的范围,`dist`用于分配权重,如`dist :=`用于均分权重,`dist /=`用于指定特定权重分布。`->`和`if-else`可以用于条件约束,箭头前的表达式为真时执行后面的语句。 3. **数据类型**: - **logic**类型:可以表示任何布尔逻辑值,包括未知值(X)和未定义值(Z)。 - **数组**:包括定宽数组、动态数组、关联数组、合并数组和队列。定宽数组宽度在声明时固定,动态数组在运行时可调整大小,关联数组适用于稀疏矩阵,队列则结合了链表和数组的优点,可在任何位置插入或删除元素。 4. **新数据类型的创建**: - **typedef**:创建自定义数据类型,如枚举类型`enum`,可以方便地定义和共享枚举类型。 - **string**:处理字符串的类型,常用函数有`sformatf()`和`$display()`,前者返回整理好的字符串,后者直接打印。 5. **过程块和方法**: - **always块**:描述硬件行为,有并行执行的`always_comb`(综合为组合逻辑)和`always_latch`(保持器),以及顺序执行的`always_seq`(时序逻辑)。 - **initial**:只执行一次,常用于初始化。 - **function**:类似于C语言的函数,可返回值,可以有输入、输出、输入输出和引用参数。 - **task**:类似函数但不能返回值,常用于时序操作,可以添加耗时语句。 6. **数据变量周期**:`automatic`变量(动态)只存在于当前作用域,随过程执行而创建和销毁;`static`变量(静态)在整个程序执行期间持续存在。 7. **例化和连接**: - **模块例化**:定义模块实例,需指定端口的方向、宽度和名称,并确保实例化时的对应。 - **连接**:通过逻辑类型如`logic`完成不同模块间的信号连接。 8. **测试平台**: - **测试平台(testbench)**:包括验证结构、组件间连接,以及控制和配置。 - **DUT(待测组件)**:是设计的主体,需要在测试平台上进行验证。 - **MCDF(多通道数据整形器)**:涉及寄存器读写接口、复位信号、ID、请求、允许发送和地址等,包括驱动器(driver)、总线功能模型(BFM)等组件。 9. **MCDF组件**: - **Simulator/Driver**:生成激励信号。 - **BFM/Behavioral Model/Generator**:用于接口数据传输。 - **Initiator/Responder**:发起器主动发起数据传输,响应器接收并响应数据。 理解并熟练掌握这些知识点,对于SystemVerilog的学习和应用至关重要,无论是编写验证环境还是设计复杂的集成电路系统。
2025-07-20 08:20:06 1.31MB
1
SystemVerilog路科验证V2是一个SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注,可快速获取自已需要的知识,喜欢的平台可下载试试! 介绍设计描述和验证语言SystemVerilog的基本语法及其在验证上的应用,内容包含数据类型、过程块和方法、设计例化和连接、验证结构等。 可供具有一定Verilog编程基础的电路工程技术人员使用,也可作为高等院校电子类、自动化类、计算机类的学生参考教程。 介绍 SystemVerilog简称为SV语言,是一种相当新的语言,它建立在Verilog语言的基础上,是 IEEE 1364 Verilog-2001 标准的扩展增强,兼容Verilog 2001,将硬件描述语言(HDL)与现代的高层级验证语言(HVL)结合了起来,并新近成为下一代硬件设计和验证的语言。
2024-04-09 13:26:36 42.16MB 课程资源 编程语言 Verilog
1
SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注。
2022-10-27 09:03:51 43.93MB SystemVerilog sv 路科 路科验证
内置四个小的实验, 由初级逐步提升难度, 适合刚入门的小白, 作为System Verilog的学习值得推荐, 动手能力迅速提升。 注明: 本实验所用软件Questa Sim,配套使用,可以找我要相关软件的安装包。
2022-08-31 10:30:52 2.47MB 路科 V2 SystemVerilog IC验证
1
内置选做和必做的的实验, 层层递进,逐步了解验证的结构,通俗易懂。 逐步实现了sv向uvm结构的过渡。 适合刚入门的小白, 作为System Verilog的学习值得推荐, 动手能力迅速提升。 注明: 本实验所用软件Questa Sim,配套使用,可以找我要相关软件的安装包。
2022-06-15 09:01:57 2.36MB 路科 v2 IC验证
1
内置三个小的实验,层层递进,逐步了解验证的结构,通俗易懂。 适合刚入门的小白, 作为System Verilog的学习值得推荐, 动手能力迅速提升。 注明: 本实验所用软件Questa Sim,配套使用,可以找我要相关软件的安装包。
2022-06-14 09:05:49 3.86MB IC验证 SV 路科 V2
1
已经更新了完整性测试、寄存器读写测试、寄存器稳定性测试、数据通道开关检查、优先级测试、下行从端低带宽测试等。 其中,设计代码更新了arbiter,添加了轮询仲裁机制。 注意,这个代码是在svlab5的基础上更新的,里面有覆盖率的东西,暂时看不懂也没关系。学完就懂了。 (分类里没有对应项,我只能随便选一个了~)
2022-05-31 09:40:18 20KB mcdf 芯片验证
SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注。 目录如下: 第一章 SV环境构建常识 1 1.1 数据类型 1 四、二值逻辑 4 定宽数组 9 foreach 13 动态数组 16 队列 19 关联数组 21 枚举类型 23 字符串 25 1.2 过程块和方法 27 initial和always 30 function逻辑电路 33 task时序电路 35 动态 静态变量 39 1.3 设计例化和连接 45 第二章 验证的方法 393 动态仿真 395 静态检查 397 虚拟模型 403 硬件加速 405 效能验证 408 性能验证 410 第三章 SV组件实现 99 3.1 接口 100 什么是interface 101 接口的优势 108 3.2 采样和数据驱动 112 竞争问题 113 接口中的时序块clocking 123 利于clocking的驱动 133 3.3 测试的开始和结束 136 仿真开始 139 program隐式结束 143 program显式结束 145 软件域program 147 3.4 调试方法 150 第四章
2022-05-09 19:01:35 43.93MB SystemVerilog 路科验证 学习笔记
包括了最后的覆盖率内容,word版见另一个文档,但另一个文档没有覆盖率的重点
2022-05-01 15:42:44 76.58MB systemvetilog
1
路科_v2pro_sv重点总结,最后的覆盖率没总结
2022-02-08 17:21:10 2.11MB systemverilog
1