Verilog数据类型(Data Types)

来源:互联网 发布:java获取泛型的class 编辑:程序博客网 时间:2024/06/05 19:52

Verilog数据类型(Data Types)


Verilog有两组主要的数据类型:网络数据类型(Net Data Type)和寄存器数据类型(Register Data Type)。其他的数据类型有:事件(Event)、参数(Parameter)和范围(Specparam)以及其他数据类型。


网络数据类型(Net Data Type)


网络数据用来将元件连接起来。


语法


net_type [ expansion ] [ size ] #( delay ) net_name, net_name, ...;net_type [ expansion ] [ ( strength ) ] [ size ] #( delay ) net_name = expression; // declaration with                                                                                    // continuous assignmentnet_type [ size ] memory_name [ array_size [ array_size] ...;     // Multi-dimensional arrayexpansion = scalared | vectored

网络数据类型类型如下:


wire or tri

simple interconnecting wire

wor or trior

wired outputs OR together

wand or triand

wired outputs AND together

tri0

pulls down when tri-stated

tri1

pulls up when tri-stated

supply0

constant logic 0 (supply strength)

supply1

constant logic 1 (supply strength)

trireg

stores last value when tri-stated (capacitance strength)


例程


wire [7:0] Data;trireg (large) C1;wire Q = A || B;                          // continuous assignmentwire [7:0] Array [0:255][0:255][0:255];   // Verilog-2001 Multidimensional array

寄存器数据类型(Register Data Type)

寄存器数据类型用来存储值。


语法



register_type [ size ] variable_name, variable_name, ...;register_type [ size ] variable_name = initial_value;register_type [ size ] memory_name [ array_size ]; register_type [ size ] memory_name [ array_size ] [ array_size ] ...;     // Multi-dimensional array


寄存器数据类型如下:


reg

unsigned variable of any bit size

integer

signed 32-bit variable

time

unsigned 64-bit variable

real or realtime

double-precision floating point variable


例程

reg [7:0] Data;integer Int;time Now;reg [15:0] Memory [0:1023]; reg [7:0] A = 8'h3C;                      // Verilog-2001reg [7:0] Array [0:255][0:255][0:255];    // Verilog-2001

事件(Event)

事件用来同步并发操作。


语法


event event_name, ...;    // event declaration-> event_name;            // trigger the event


例程


event EventName;     // event declarationinitial begin  #50;  -> EventName;      // example of event triggeringendalways @EventName    // example of waiting for an event  Q <= 0;

参数(Parameter)


参数为常量值。


语法


parameter parameter_name = constant_expression;

例程


parameter Size = 4;parameter Number = 3.82;parameter ClkCycle = Frequency / 2; 

范围(Specparam)

范围表示值在一个范围内变话。其用法类似于参数常量值,但只能在特定块内使用。


语法


specparam parameter_name = constant_expression;

例程


specparam TRise = 1.2;specparam T1 = 2:3:4;        // min:typ:max 




0 0
原创粉丝点击