//双状态数据类型:更好的性能,更低的内存消耗
//队列,动态和关联数组:减少内存消耗,自带搜索和分类功能
//类和结构:支持抽象数据结构
//联合和合并结构:允许对同一数据有多种视图
//字符串:支持内建的字符序列
//枚举类型:方便代码编写,增加可读性
//logic 四状态类型
module login_data_type (input logic rst_h);
parameter CYCLE=20;
logic q,q_1,d_clk,rst_1;
initial begin
clk=0;
forever #(CYCLE/2) clk=~clk;
end
assign rst_1 = ~rst_h;
not n1(q_1,q);
my_dff d1(q,d,clk,rst_1);
endmodule
//最简单的双状态数据类型 bit 无符号
//带符号的双状态数据类型 byte 8bit,shortint 16bit,int 32bit,longint 64bit
//integer 四状态 32bit 有符号
//time 四状态 64bit 无符号
//real 双状态 双精度浮点数
if($isunknown(iport)==1)
d i s p l a y ( " @ display("@%0t:4-state value detected on iport %b", display("@time,iport);
//定宽数组
int lo_hi[0:15]; int lo_hi[16];
//多维数组
int array [0:7][0:3];
//非合并数组
bit [7:0] b_unpack[3];
for (int i=0;i<$size(src);i++)
src[i] = i;
//常量数组
int md[2][3] = '{'{0,1,2},'{3,4,5}}
initial begin
$display("initial value:");
foreach (md[i,j])
$display("md[%0d][%0d]=%0d",i,j,md[i][j]);
//合并数组
bit[3:0][7:0] bytes;
bytes = 32'hCafe_Dada;
$displayh(bytes,bytes[3],bytes[3][7]);
//动态数组
int dyn[],d2[];
initial begin
dyn=new[5];
foreach (dyn[j]) dyn[j]=j;
d2=dyn;
d2[0]=5;
$display(dyn[0],d2[0]);
dyn=new20;
dyn=new[100];
dyn.delete();
end
$size
//常数数组 动态数组
bit [7:0] mask[] = '{8'b0000_0000,8'b0000_0001,
8'b0000_0000,8'b0000_0001,
8'b0000_0000,8'b0000_0001,
8'b0000_0000,8'b0000_0001,
8'b0000_0000};
//队列