AR# 13458: 3.6.x FPGA Express - The STARTUP component is being removed (Spartan and 4K families) from my design without warning
3.6.x FPGA Express - The STARTUP component is being removed (Spartan and 4K families) from my design without warning
Keywords: Spartan, 4K, Verilog, VHDL, STARTUP
General Description: FPGA Express removes the STARTUP primitive from the design before optimization. (This can occur in both VHDL and Verilog designs.)
If this occurs in a VHDL design, place a "dont_touch" attribute on the instantiation in the HDL code to prevent the STARTUP primitive from being removed. This must be done within the code (as opposed to with the FPGA Express Constraints Editor), as the component is removed before the attribute can be applied within the editor.
For example: ... component STARTUP port (GSR, GTS, CLK : in STD_LOGIC; Q1Q4, Q2, Q3 : out STD_LOGIC ); end component;
attribute fpga_dont_touch : string; attribute fpga_dont_touch of U1 : label is "true";
For this particular design, it is not necessary to use all of the ports on the STARTUP block; rather, list only the ports that will be used.
If this occurs in a Verilog design, create an empty module declaration for the component that is being removed. This will define the port directions and allow FPGA Express to insert the component correctly.