找工作 systemverilog 2.1--2.3

//2.1--2.3

//双状态数据类型:更好的性能,更低的内存消耗

//队列,动态和关联数组:减少内存消耗,自带搜索和分类功能

//类和结构:支持抽象数据结构

//联合和合并结构:允许对同一数据有多种视图

//字符串:支持内建的字符序列

//枚举类型:方便代码编写,增加可读性

//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};

//队列

相关推荐
GateWorld3 个月前
主流FPGA厂商对SystemVerilog的支持现状
fpga开发·system verilog
Jarden_2 年前
system verilog VSCode Windows 配置简述
ide·windows·vscode·verilog·system verilog
mrbone113 年前
System Verilog-packed array以及unpacked array
fpga开发·verilog·system verilog·eda