Verilog資料型別(Data Types)

2021-07-27 13:17:50 字數 3613 閱讀 7038

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 儲存可變長度的字串 可包含字母 數字以及特殊字元 在括號中指定字串的最大長度。...