摘要:1.黑盒测试 黑盒测试:也可叫功能测试,是一种从用户角度出发的测试。把被测程序当作一个黑盒子,测试人员完全不用考虑盒子里面的逻辑结构和具体运作,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。主要的测试方法有等价划分类,错误推测法等。 2.灰盒测试 灰盒测试:是介于白盒测试与黑盒测试
阅读全文
摘要:定宽和动态数组初始化时需要加符号';队列不需要。 定宽数组的声明: int lo_hi[0:15];//16个整数[0]...[15] int c_style[16];//16个整数[0]...[15] 声明并使用多维数组: int array2[0:7][0:3];//完整的声明 int arra
阅读全文
摘要:在sequence中的使用: class case0_sequence extends uvm_sequence #(my_transaction); … 10 virtual task body(); … 13 repeat (10) begin 14 `uvm_do(m_trans) 15 ge
阅读全文
摘要:不少有经验的UVM用户可能会忽略UVM针对寄存器模型内建的一些sequence,实际上如果可以将这些自建的序列作为验证项目一开始的健康检查必选项的化,这对于整个项目的平稳运行会有不小的贡献。 这是因为在项目一开始的阶段,设计内部的逻辑还不稳定,对于verifier而言,如果想要跟上设计的进度,可以展
阅读全文
摘要:可以用typedef指定新的类型名来代替已有的类型名。 1.简单地用一个新的类型名代替原有的类型名; typedef int Integer; typedef float Real; 2.命名一个简单的类型名代替复杂的类型表示方法; 2.1 命名一个新的类型名代替结构体类型 typedef stru
阅读全文
摘要:如果一个变量只有几种可能的值,则可以定义为枚举(enumeration)类型,所谓枚举就是指把可能的值一一列举出来,变量的值只限于列举出来的值的范围内。 声明枚举类型用enum开头,例如, enum Weekday {sun, mon, tue, wed, fri, sat}; 然后用此类型来定义变
阅读全文
摘要://定义 typedef union { uint32_t val; struct { uint32_t pa0_fsel :3; uint32_t pa1_fsel :3; uint32_t :2; } BITS; } PA_FSEL0; typedef union { uint32_t val;
阅读全文
摘要:有时候想用同一段内存单元存放不同类型的变量,例如,一个短整型,一个字符型和一个实型变量放在同一个地址开始的内存单元中。以上三个变量在内存中占的字节数不同,但都是从同一个地址开始存放。也就是使用覆盖技术,后一个数据覆盖前面的数据。使几个不同的变量共享同一段内存的结构,称为共用体类型。 union 共用
阅读全文
摘要:可以利用强制类型转换运算符将一个表达式转换成所需类型: (double)a; //将a转换成double类型 (int)(x+y); //将x+y的值转换成int型 (float)(5%3);//将5%3的值转换成float类型 其一般形式为 (类型名)(表达式) 注意:表达式应该用括号括起来。如果
阅读全文
摘要:结构体指针的用法 所谓的结构体指针就是指向结构体变量的指针,一个结构体变量的起始地址就是这个结构体变量的指针。如果把一个结构体变量的起始地址存在在一个指针变量中,那个这个指针变量就指向该结构体变量。 1.1 指向结构体变量的指针 指向结构体对象的指针变量既可指向结构体变量,也可指向结构体数组中的元素
阅读全文
摘要:C语言允许用户自己建立由不同数据类型组成的组合型的数据结构,称为结构体。 声明一个结构体类型: struct Student {int num; char name[20]; char sex; }; 成员也可以属于另外一个结构体类型。 struct Date { int month; int da
阅读全文
摘要:当需要的寄存器的宽度比系统总线的宽度大时: reg_model.sv ``` `ifndef REG_MODEL__SV `define REG_MODEL__SV class reg_invert extends uvm_reg; rand uvm_reg_field reg_data; virt
阅读全文
摘要:reg_file主要是为了区分不同的hdl路径,是为了后门访问准备的。 ``` `ifndef REG_MODEL__SV `define REG_MODEL__SV class reg_invert extends uvm_reg; rand uvm_reg_field reg_data; vir
阅读全文
摘要:``` `ifndef REG_MODEL__SV `define REG_MODEL__SV //first reg class reg_invert extends uvm_reg; rand uvm_reg_field reg_data; rand uvm_reg_field reg_stat
阅读全文
摘要:``` `ifndef REG_MODEL__SV `define REG_MODEL__SV class reg_invert extends uvm_reg; rand uvm_reg_field reg_data; virtual function void build(); reg_data
阅读全文
摘要:在Makefile语法中,时不时会见到各种“=”号的赋值语句,除了常见的“=”和“:=”,还有“?=”等 那么这些赋值等号分别表示什么含义呢? “=” “=”是最普通的等号,然而在Makefile中确实最容易搞错的赋值等号,使用”=”进行赋值,变量的值是整个makefile中最后被指定的值。不太容易
阅读全文
摘要:只有一个block时; ``` register UARTIBRD { bytes 4; left_to_right; field not_defined { bits 16; access ro; reset 'h0; } field rev { bits 5; access rw; reset
阅读全文