User Tools

Site Tools


xilinx:map

Turns a NGD file and the associated PCF file into a device-specific placed, but not routed, NCD netlist.

Example usage:

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

Errors

PhysDesignRules:2423: Invalid GTX dedicated clocking

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

GTX packing

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

KEEP vs S(AVE)

http://www.xilinx.com/support/answers/35504.htm

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.
xilinx/map.txt · Last modified: 2014/06/13 15:04 by mcmaster-guest