Synthesis Pragmas
The Efinity software supports these synthesis pragmas. Put the pragma in a
comment, preceded by the synthesis keyword.
synthesis on, synthesis off
This attribute directs synthesis to compile or skip a section of the RTL
full_case
This attribute directs synthesis to interpret case statements as
full_case (similar to the Synopsys full_case pragma). If you use a
full_case pragma, synthesis assumes that the listed cases are
the only possible conditions. All other input combinations are don’t
care and, therefore, synthesis does not generate logic for them
In the following example, the full_case pragma directs synthesis to
treat the condition sel = 2’b11 as don’t care. The net effect is
that the logic used to implement this case statement is simpler.
always @(a or b or c or sel) // synthesis full_case
case (sel)
2'b00: y = a;
2'b01: y = b;
2'b10: y = c;
endcase
parallel_case
This attribute directs synthesis to interpret case statements as
parallel_case (similar to the Synopsys parallel_case pragma). If
you use the parallel_case pragma, synthesis does not assume
that the case conditions are mutually exclusive, that is, they can
be true at the same time.
In the following example, if sel = 3’b111, all three of the
conditions match, and a, b, and c
are assigned to 1’b1.
always @(sel)
begin
{a, b, c} = 3'b0;
casez (sel) // synthesis parallel_case
3'b1??: a = 1'b1;
3'b?1?: b = 1'b1;
3'b??1: c = 1'b1;
endcase
end