Strengths |
LRM §7.10. |
Nets have strength values to allow more accurate modelling.
( strength0 [, strength1 ] ) | ( strength1 [, strength0 ] ) | cap_strength strength0 = highz0 | pull0 | strong0 | supply0 | weak0 strength1 = highz1 | pull1 | strong1 | supply1 | weak1 cap_strength = large | medium | small
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 |
|
Supply drive |
supply0 , supply1 |
|
Strong drive |
strong0 , strong1 |
|
Pull drive |
pull0 , pull1 |
|
Large capacitive |
large |
|
Weak drive |
weak0 , weak1 |
|
Medium capacitive |
medium |
|
Small capacitive |
small |
|
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.
and (strong1, weak0) u1 (Q, A, B); trireg (small) C1; assign (weak1, strong0) Q = A + B;