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 assignment
net_type [ size ] memory_name [ array_size [ array_size] ...; // multi-dimensional array
expansion = scalared | vectored
網路資料型別型別如下:
wireortri
****** interconnecting wire
worortrior
wired outputs or together
wandortriand
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 assignment
wire [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
realorrealtime
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-2001
reg [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 declaration
initial begin
#50;
-> eventname; // example of event triggering
endalways @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
資料型別基礎資料型別
資料型別 基礎型別 除八大基礎型別其他的都是引用型資料型別 引用資料型別 基礎資料型別 整型 byte 佔乙個位元組,範圍 128 127 short 佔兩個位元組,範圍 32768 32767 int 最常用 佔四個位元組,範圍 2147483648 2147483647 long 佔八個位元組 ...
資料型別 基本資料型別和引用資料型別
一.分類 1,五種簡單資料型別 基本資料型別 number,string,boolean,null,undefined,新增symbol es6 基本資料型別是指存放在棧中的簡單資料段,資料大小確定,記憶體空間大小可以分配,它們是直接按值存放的,所以可以直接按值訪問。1 undefined 宣告的變...
SQL 資料型別 MySQL 資料型別
在 mysql 中,有三種主要的型別 文字 數字和日期 時間型別。資料型別 描述char size 儲存固定長度的字串 可包含字母 數字以及特殊字元 在括號中指定字串的長度。最多 255 個字元。varchar size 儲存可變長度的字串 可包含字母 數字以及特殊字元 在括號中指定字串的最大長度。...