********************************************
*  SURELOG System Verilog Compiler/Linter  *
********************************************

Copyright (c) 2017-2019 Alain Dargelas,
http://www.apache.org/licenses/LICENSE-2.0

VERSION: 1.00
BUILT  : Nov  6 2019
DATE   : 2019-11-06.08:30:35
COMMAND: -h -mt 0

  ------------ SURELOG HELP --------------

STANDARD VERILOG COMMAND LINE:
  -f <file>             Accepts a file containing command line arguments
  -v <file>             Library file
  -y <path>             Library directory
  +incdir+<dir>+...     Specifies include paths
  -Idir                 Specifies include paths
  +libext+<extname>+... Specifies the library extensions
  <file>.v              Verilog File
  <file>.sv             System Verilog File
  +liborder             Lib Order option (ignored)
  +librescan            Lib Rescan option (ignored)
  +libverbose           Lib Verbose option (ignored)
  +nolibcell            No Lib Cell option (ignored)
  +define+macro_name=definition+...
                        Defines a macro and optionally its value
  -L <libName>          Defines library compilation order
  -map <mapFile>        Specifies a library mapping file (multiple -map options supported)
  -cfgfile <confiFile>  Specifies a configuration file (multiple -cfgFile options supported)
  -cfg <configName>     Specifies a configuration to use (multiple -cfg options supported)
FLOWS OPTIONS:
  -fileunit             Compiles each Verilog file as an independent
                        compilation unit (under slpp_unit/ if -writepp used)
  -diffcompunit         Compiles both all files as a whole unit and
                        separate compilation units to perform diffs
  -parse                Parse/Compile/Elaborate the files after pre-processing step
  -nocomp               Turns off Compilation & Elaboration
  -noelab               Turns off Elaboration
  -pythonlistener       Enables the Parser Python Listener
  -pythonlistenerfile <script.py> Specifies the AST python listener file
  -pythonevalscriptperfile <script.py>  Eval the Python script on each source file (Multithreaded)
  -pythonevalscript <script.py> Eval the Python script at the design level
  -nopython             Turns off all Python features, including waivers
  -strictpythoncheck    Turns on strict Python checks
  -mt <nb_max_treads>   0 up to 512 max threads, 0 or 1 being single threaded,
                        if "max" is given, the program will use one thread
                        per core on the host
  -split <line number>  Split files or modules larger than specified line number for multi thread compilation
  -timescale=<timescale> Specifies the overall timescale
  -nobuiltin            Do not parse SV builtin classes (array...)

TRACES OPTIONS:
  -d <int>              Debug <level> 1-4, lib, ast, inst, incl
  -nostdout             Mutes Standard output
  -verbose              Gives verbose processing information
  -profile              Gives Profiling information
  -l <file>             Specifies log file, default is surelog.log under output dir

OUTPUT OPTIONS:
  -odir <dir>           Specifies the output directory, default is ./
  -writeppfile <file>   Writes out Preprocessor output in file
                        (all compilation units will override this file)
  -writepp              Writes out Preprocessor output (all compilation
                        units will generate files under slpp_all/ or slpp_unit/)
  -lineoffsetascomments Writes the preprocessor line offsets as comments as opposed as parser directives
  -nocache              Default allows to create a cache for include files, this option prevents it
  -cache <dir>          Specifies the cache directory, default is slpp_all/cache or slpp_unit/cache
  -createcache          Create cache for precompiled packages
  -filterdirectives     Filters out simple directives like
                        `default_nettype in pre-processor's output
  -filterprotected      Filters out protected regions in pre-processor's output
  -filtercomments       Filters out comments in pre-processor's output
  -outputlineinfo       Outputs SLline directives in pre-processor's output
  -pploc                Output message location in terms of post preprocessor location
  -noinfo               Filters out INFO messages
  -nonote               Filters out NOTE messages
  -nowarning            Filters out WARNING messages
  -o <path>             Turns on all compilation stages, produces all outputs under that path


********************************************
*   End SURELOG SVerilog Compiler/Linter   *
********************************************

