Why is this an issue?

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:

Note that this rule does not apply to generic and constant declarations.

How to fix it

Code examples

Noncompliant code example

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

Compliant solution

i <= 8 mod 2;
i <= 8 mod my_constant;