1.1. Synthesizable and Non-Synthesizable Verilog constructs
Synthesizable
|
Non-Synthesizable
| |
Basic
|
Identifiers, escaped identifiers, Sized constants (b, o, d, h), Unsized constants (2'b11, 3'07, 32'd123, 8'hff), Signed constants (s) 3'bs101, module, endmodule, macromodule, ANSI-style module, task, and function port lists
|
system tasks, real constants
|
Data types
|
wire, wand, wor, tri, triand, trior, supply0, supply1, trireg (treated as wire), reg, integer, parameter, input, output, inout, memory(reg [7:0] x [3:0];), N-dimensional arrays,
|
real, time, event, tri0, tri1
|
Module instances
|
Connect port by name, order, Override parameter by order, Override parameter by name, Constants connected to ports, Unconnected ports, Expressions connected to ports,
|
Delay on built-in gates
|
Generate statements
|
if,case,for generate, concurrent begin end blocks, genvar,
| |
Primitives
|
and, or, nand, nor, xor, xnor,not, notif0, notif1, buf, bufif0, bufif1, tran,
|
User defined primitives
(UDPs), table, pullup, pulldown, pmos, nmos, cmos, rpmos, rnmos, rcmos, tranif0, tranif1, rtran, rtranif0, rtranif1, |
Operators and
expressions |
+, - (binary and unary)
| |
Bitwise operations
|
&, |, ^, ~^, ^~
| |
Reduction operations
|
&, |, ^, ~&, ~|, ~^, ^~, !, &&, || , ==, !=, <, <=, >, >=, <<, >>, <<< >>>, {}, {n{}}, ?:, function call
|
===, !==
|
Event control
|
event or, @ (partial), event or using comma syntax, posedge, negedge (partial),
|
Event trigger (->), delay and wait (#)
|
Bit and part selects
|
Bit select, Bit select of array element, Constant part select, Variable part select ( +:, -:), Variable bit-select on left side of an assignment
| |
Continuous assignments
|
net and wire declaration, assign
|
Using delay
|
Procedural blocks
|
always (exactly one @ required),
|
initial
|
Procedural statements
|
;, begin-end, if-else, repeat, case, casex, casez, default, for-while-forever-disable(partial),
|
fork, join
|
Procedural assignments
|
blocking (=), non-blocking (<=)
|
force, release
|
Functions and tasks
|
Functions, tasks
| |
Compiler directives
|
`define, `undef, `resetall, `ifndef, `elsif, `line, `ifdef, `else, `endif, `include
|