map -intstyle ise -p [device] -w -logic_opt off -ol high -t 1 -xt 0 -register_duplication off -r 4 -global_opt off \ -mt 2 -ir off -pr off -lc off -power off -o [output mapped NCD file] [input NGD file] [input PCF file]
It's possible some of the optimization flags can be deleted if default values are desired. The -mt switch specifies how many threads to use (up to 2 are supported). Presumably you'd only want to set this to 1 if you ran into multithreaded bugs
ERROR:PhysDesignRules:2423 - Invalid GTX dedicated clocking: The reach of a REFCLK coming from an IBUFDS element near another GTX and forwarded using dedicated routing is 6. Block path/to/module (GTXE1_X0Y0) is more than that from its source clock.
Solution: the .ucf file was not added to the project. Once it was things were placed better and passed DRC. If your .ucf has issues, then its on you to fix this
Running directed packing... ERROR:Pack:1107 - Pack was unable to combine the symbols listed below into a single IOB component because the site type selected is not compatible. Further explanation: The component type is determined by the types of logic and the properties and configuration of the logic it contains. In this case an IO component of type IOB was chosen because the IO contains symbols and/or properties consistent with input, output, or bi-directional usage and contains no other symbols or properties that require a more specific IO component type. Please double check that the types of logic elements and all of their relevant properties and configuration options are compatible with the physical site type of the constraint. Summary: Symbols involved: PAD symbol "CX4CLK_N" (Pad Signal = CX4CLK_N) BUF symbol "CX4CLK_N_IBUF" (Output Signal = CX4CLK_N_IBUF) Component type involved: IOB Site Location involved: AK5 Site Type involved: IPAD
Cause: commented out an IBUFDS_GTXE1. This activated IOB inferring, causing a packing error
Solution: remove the unused signal. Alternatively, you could instantiate the IBUFDS_GTXE1 and not connect the output
The "S" property is the correct property to use to block logic trimming. The functionality of the "S" property was expanded in ISE 10.1 software so that it will also block constant optimization from propagating through the net and logic connected to a net with an "S" property will not be removed. Also, "S" properties can be applied directly to logical instances to prevent their removal. The "KEEP" net property has a different purpose and can be thought of as a packing constraint. It is used to keep a signal from being entirely merged into a component so that the signal would not exist in the physical design. It has no effect on the trimming of unused logic or on constant optimization. It can be used to control packing behavior, but only to the extent that it blocks packs that would otherwise cause the signal to disappear.