The following figure illustrates a non-FD primitive example. In this structure, a clock
domain crossing (CDC) occurs between an FDRE and a
RAMB primitive. No synchronization logic exists inside the
RAMB.
Figure 1. Non-FD Primitive Example

Even if you insert a single-stage flip-flop connected to clk_b in front
of the RAMB, the tool considers the synchronizer inadequate. This is
because the routing distance between the FDRE and RAMB
cells remains too large to qualify as a safe synchronization structure.
Note: This rule does not apply to the
HARD_SYNC
macro. The tool detects that structure separately and classifies it under CDC-18.