Vivado synthesis supports case statements.
- A case statement performs a comparison to an expression to evaluate one of several
parallel branches.
- The case statement evaluates the branches in the order they are written.
- The first branch that evaluates to true is executed.
- If none of the branches matches, the default branch is executed.
- Do not use unsized integers in case statements. Always size integers to a specific number of bits. Otherwise, results can be unpredictable.
-
casez
treats all z values in any bit position of the branch alternative as a don't care. -
casex
treats all x and z values in any bit position of the branch alternative as a don't care. - The question mark (?) can be used as a don't care in either the
casez
orcasex
case statements.