FLOWTYPE = FPGA;
###############################################################
## Filename: fast_runtime.opt
##
## Option File For Xilinx FPGA Implementation Flow for Fast
## Runtime.
## 
## Version: 4.1.1
###############################################################
#
# Options for Translator
#
# Type "ngdbuild -h" for a detailed list of ngdbuild command line options
#
Program ngdbuild 
-p <partname>;        # Partname to use - picked from xflow commandline
-nt timestamp;        # NGO File generation. Regenerate only when
                      # source netlist is newer than existing 
                      # NGO file (default)
-bm <design>.bmm     # Block RAM memory map file
<userdesign>;         # User design - pick from xflow command line
-uc <design>.ucf;     # ucf constraints
<design>.ngd;         # Name of NGD file. Filebase same as design filebase
End Program ngdbuild

#
# Options for Mapper
#
# Type "map -h <arch>" for a detailed list of map command line options
#
Program map
-o <design>_map.ncd;     # Output Mapped ncd file
-pr b;                   # Pack internal FF/latches into IOBs
#-fp <design>.mfp;       # Floorplan file
<inputdir><design>.ngd;  # Input NGD file
<inputdir><design>.pcf;  # Physical constraints file
END Program map

#
# Options for Post Map Trace
#
# Type "trce -h" for a detailed list of trce command line options
#
Program post_map_trce
-e 3;                 # Produce error report limited to 3 items per constraint
#-o <design>_map.twr;  # Output trace report file
-xml <design>_map.twx;     # Output XML version of the timing report
#-tsi <design>_map.tsi; # Produce Timing Specification Interaction report
<inputdir><design>_map.ncd;  # Input mapped ncd
<inputdir><design>.pcf;      # Physical constraints file
END Program post_map_trce

#
# Options for Place and Route
#
# Type "par -h" for a detailed list of par command line options
#
Program par
-w;                 # Overwrite existing placed and routed ncd
-ol high;              # Overall effort level
<inputdir><design>_map.ncd;  # Input mapped NCD file
<design>.ncd;                # Output placed and routed NCD
<inputdir><design>.pcf;      # Input physical constraints file
END Program par

#
# Options for Post Par Trace
#
# Type "trce -h" for a detailed list of trce command line options
#
Program post_par_trce
-e 3;                 # Produce error report limited to 3 items per constraint
#-o <design>.twr;     # Output trace report file
-xml <design>.twx;    # Output XML version of the timing report
#-tsi <design>.tsi;  # Produce Timing Specification Interaction report
<inputdir><design>.ncd;   # Input placed and routed ncd
<inputdir><design>.pcf;   # Physical constraints file
END Program post_par_trce


