1. Breve descripción
He trabajado durante dos meses y he utilizado System Verilog para la verificación. Antes de escribir testbench directamente en Verilog, después de usar sv durante este período, descubrí que es realmente necesario cambiar a sv para la verificación.
2. Cuerpo
1) Tipo de datos
Tipos de | descripción | símbolo |
---|---|---|
lógica | Cuatro estados, equivalentes a Verilogreg y funciones de cable | |
poco | Ancho de bit personalizado de doble estado | Sin firmar por defecto |
En t | Estado dual, 32 bits | Firmado |
byte | Estado dual, 8 bits | Firmado |
breve | Estado dual, 16 bits | Firmado |
longint | Estado dual, 64 bits | Firmado |
entero | Cuatro estados, 32 bits | Firmado |
hora | Cuatro estados, 64 bits | No firmado |
real | Estado dual, 64 bits | Punto flotante de doble precisión, equivalente a doble |
cortoreal | Estado dual, 32 bits | Equivalente a flotar |
Nota:
- Los cuatro estados son: 0, 1, x y z; los estados duales son: 0, 1.
- En Verilog, los datos del tipo de registro solo se pueden asignar en always y asignar para usar el tipo de cable. En sv, la lógica se puede asignar en siempre o usar en asignar, pero no se puede manejar en varios lugares.
2) Matriz de ancho fijo
int array0[0:15]; //16个整数
int array1[16]; //16个整数
int array2[0:7][0:3]; //二维数组
int array3[8][4]; //二维数组
array3[5][2]=1; //数组赋值
bit [7:0] unpack[3]; //非合并数组,分配三个字空间,但只存放低字节
int ascend[4]=`{0,1,2,3};//常量数组前面加 “ ` ”
3) Operación de matriz
initial begin
bit [31:0] src[5],dst[5];
for(int i=0;i<$size(src);i++)
src[i] = i;
foreach(dst[j])
dst[j]=src[j]*2;
end