Verilog Synthesize
Synthesizable Code
- Modulus, exponent, arithmetic shift, case equality are non-synthesizable
- Incomplete branches are non-synthesizable
- Mixed edge/level signal are non-synthesizable ⇒ do not use
Latch Inference
- incomplete if-else statement (mux)
- also implies the statement with redundant branch (i.e.,
y = y
) - add extra level (latch)
- also implies the statement with redundant branch (i.e.,
- Two ways to avoid latch
- initialize reg
- complete branch