Strengths

LRM §7.10.

Nets have strength values to allow more accurate modelling.

Syntax:

( strength0 [, strength1 ] ) | ( strength1 [, strength0 ] ) | cap_strength

strength0 = highz0 | pull0 | strong0 | supply0 | weak0
strength1 = highz1 | pull1 | strong1 | supply1 | weak1
cap_strength = large | medium | small

Description:

Verilog has 4 driving strengths, 3 capacitive strengths and high impedance. This is not a strength. The strength of a net is derived dynamically from the strenght of the net driver(s) and will get the strength of the strongest driver. The words strenght0 specifies the strength when the net drivers drive the value 0; strength1 specifies the strength when the net drivers drive the value 1. The cap_strength is for trireg nets only.

The table below shows the strengths:

Strength level

Name

Keyword

7

Supply drive

supply0 , supply1

6

Strong drive

strong0 , strong1

5

Pull drive

pull0 , pull1

4

Large capacitive

large

3

Weak drive

weak0 , weak1

2

Medium capacitive

medium

1

Small capacitive

small

0

High impedance

highz0 , highz1

The default strength is strong drive. For pullup and pulldown gates, the default strength is pull drive; for trireg the default strength is medium capacitive; and for supply nets, the default strength is supply drive.

A net that is not being driven has a high impedance strength, except for tri0 and tri1 that have pull strength; trireg hold their last strength; and supply nets have supply strength.

Example:

and (strong1, weak0) u1 (Q, A, B);
trireg (small) C1;
assign (weak1, strong0) Q = A + B;

Notes:

See also:

Continuous assignment, Net data type