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
"java面向对象程序设计基础知识总结" Java 是一种面向对象的编程语言,它的基础知识点非常重要。本文将总结 Java 面向对象程序设计的基础知识点,包括类、标识符、基本数据类型、数组、运算符、控制流语句等。 一、类 * 含有 main() 方法的类称为主类,一个 .java 文件中可以有多个类,但是只能有一个主类。 二、标识符 * Java 程序中自定义的类名、方法名、参数都是标识符,Java 语言中规定标识符由字母(区分大小写)、数字、下划线、$自由组合而成,但不能以数字开头,标识符长度不限。 三、基本数据类型 * 整数类型(byte、int、short、long) + byte: 1 字节 + int: 4 字节 + short: 2 字节 + long: 8 字节 * 浮点数类型(float、double) + float: 4 字节 + double: 8 字节 * 字符型(char) + 2 字节 * 布尔型(boolean) + 1 字节 四、数组 * 数组的定义:char array1[]; 和 char [] array2; 都可以 五、运算符 * 双目运算符:+、-、*、/ 对于整形和浮点数有效 * 逻辑运算符:&&、||、!、^ * 位运算符:&、|、~、^、<<、>>、>>> * 三目运算符:x ? y : z; 六、控制流语句 * break 语句:有三种作用:终止一个语句序列、退出一个循环、作为一种“先进”的 goto 语句 * continue 语句:类似 break,终止当前循环结构,转而直接进入下一个循环 * return 语句:终止当前方法的执行,返回指定的值 * throw 语句:抛出一个异常对象,让程序跳转到异常处理程序 七、转义字符 * 对于 ‘ 和 \,需在前面加上\,即用 char a = '\',b='\\',表示回车换行;\t 表示水平制表;\b 表示退格;\v 表示水平制表;\r 表示回车;\a 表示警铃 八、整形变量注意 * 16 进制数以 0x 开头,8 进制数以 0 开头 九、浮点型变量注意 * 如果数字未加任何字母,则默认为 double 类型,赋值时须注意数据类型匹配问题
2025-07-18 16:40:00 46KB
1
包含架构师训练营主要知识点梳理(1)
2023-12-04 18:16:18 4.14MB 架构师
1
机器视觉的基础知识总结;,有光源选型,cognex基础知识,工具的使用
2023-07-10 17:31:08 85.05MB 机器视觉 cognex 光源
1
c++知识总结,你可以看一下,复习一下基础知识
2023-06-17 18:19:35 171KB c++
1
C#知识总结,初级,高级,保证让你事半功倍
2023-05-07 23:25:35 95KB c#
1
Oracle 基础知识总结
2023-04-25 08:43:46 30KB
1
Android 蓝牙开发相关知识总结
2023-03-16 11:00:13 3.52MB 蓝牙
1
一、D/A转换器的基本原理及分类 T型电阻网络D/A转换器 : 二:输出电压与数字量的对应关系 三:D/A转换器的主要性能指标 1、分辨率 分辨率是指输入数字量的最低有效位(LSB)发生变化时,所对应的输出模拟量(电压或电流)的变化量。它反映了输出模拟量的最小变化值。 分辨率与输入数字量的位数有确定的关系,可以表示成FS / 2^n 。FS表示满量程输入值,n为二进制位数。对于5V的满量程,采用8位的DAC时,分辨率为5V/256=19.5mV;当采用12位的DAC时,分辨率则为5V/4096=1.22mV。显然,位数越多分辨率就越高。 2、线性度 线性度(也称非线性误差)是实际转换特性曲线与理想直线特性之间的最大偏差。常以相对于满量程的百分数表示。如±1%是指实际输出值与理论值之差在满刻度的±1%以内 3、绝对精度和相对精度 绝对精度(简称精度)是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。绝对精度是由DAC的增益误差(当输入数码为全1时,实际输出值与理想输出值之差)、零点误差(数码输入为全0时,DAC的非零输出值)、非
2023-03-12 10:50:27 828KB D/A与A/D转换 文章 基础课 模拟电路
1
C++知识总结思维导图,压缩包内包含C++基础、类和对象、C/C++内存管理、模板、C++的IO流、继承、多态、C++11、异常、智能指针、特殊类设计、C++的类型转换、STL的Xmind思维导图,以及对应导出的jpg图片,思维导图内容可以参考博主的博客:https://blog.csdn.net/chenlong_cxy/article/details/127166206#comments_24702593
2023-03-08 16:04:16 12.18MB c++
1