We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 8830

FPGA Express - Is there a way to globally disable the Shift Register LUT (SRL) Optimization?


Keywords: shift, register, LUT, SRL, optimization, disable

Urgency: Standard

General Description:
I am synthesizing an FPGA Express project, and I would like to prevent my pipeline
registers from being combined into a shift register LUT. Does FPGA Express have a
setting to disable this?



To work around this, write Verilog or VHDL components such that a register gets


process(clk) begin
if clk'event and clk = '1' then
end if;
end process;


always @ (posedge clk) q = d;

Instantiate this component as many times as needed. Make sure the "retain hierarchy"
is selected when synthesizing. (You will get flip-flops instead of the SRL16's.)


The SRL16 component does not have any sets/resets. Creating a delay element
with a synchronous or asynchronous set/reset will force FPGA Express to use flip-flops.

To implement a synchronous set/reset in FPGA Express, a special attribute has to be
passed. For more information, please see (Xilinx Solution 3992).

AR# 8830
Date Created 03/16/2000
Last Updated 08/11/2003
Status Archive
Type General Article