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
-ol high;
-timing;
<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


