Operators **, /, mod, rem, abs, sll,
srl, sla, sra, rol, and ror are not synthesizable or
only synthesizable with important restrictions.
This rule raises an issue:
abs, sll, srl, sla, sra,
rol, or ror
/, mod or rem, whose right operand is not a
hardcoded value/constant/generic and not a power of 2
** whose left operand is not 2
Note that this rule does not apply to generic and constant declarations.
a <= 8 mod 3; -- Noncompliant: '3' is not a power of 2 b <= 8 mod my_signal; -- Noncompliant: 'my_signal' is not a constant but a signal
i <= 8 mod 2; i <= 8 mod my_constant;