Net Data Type

LRM §3.2.1, §3.7, §6.1.

Net data types connect structural components together.

Syntax:

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

Description:

Net data types are used to model connections in structural descriptions. They do not store values (except trireg). The net data types have the value of their drivers.

The Verilog LRM defines the following net types:

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)

A net data type must be used when:

If the keyword scalared is used, bit and part selects and strength specifications are permitted, and the PLI should consider the net 'expanded'. If the keyword vectored is used, bit and part selects and strength specifications may not be permitted, and the PLI may consider the net 'unexpanded'. These keywords are advisory.

Example:

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

Notes:

See also:

Continuous assignment, Register data type