SRL_STYLE instructs the synthesis tool
on how to infer SRLs found in the design. Accepted values are:
- register
- The tool does not infer an SRL but instead only uses registers.
- srl
- The tool infers an SRL without any registers before or after.
- srl_reg
- The tool infers an SRL and leaves one register after the SRL.
- reg_srl
- The tool infers an SRL and leaves one register before the SRL.
- reg_srl_reg
- The tool infers an SRL and leaves one register before and one after the SRL.
- block
- The tool infers the SRL inside a block RAM.
Place SRL_STYLE on the signal
declared for SRL. You can set this in the RTL and XDC. The attribute can only be used on
static SRLs. The indexing logic for dynamic SRLs is located within the SRL component
itself. Therefore, designers cannot create logic around the SRL component to look up
addresses outside the component.
Note: Use care when using combinations of
SRL_STYLE, SHREG_EXTRACT,
and -shreg_min_size. The SHREG_EXTRACT attribute always takes precedence over the others. Registers
are used if SHREG_EXTRACT is set to no and SRL_STYLE is set to
srl. The -shreg_min_size, being the global variable, always has the least amount of
precedence. The SRL is still inferred if an SRL of length 10 is set and SRL_STYLE is set to srl,
and -shreg_min_size is set to 20.Note: In the following examples, the SRLs are all created
with buses where the SRL shifts from one bit to the next. If the code to use
SRL_STYLE has many differently named signals driving each
other, place the SRL_STYLE attribute on the last signal
in the chain. This includes if the last register in the chain is in a different
hierarchy level than the other registers. The attribute always goes on the last register
in the chain.