TBRUN(1)                     Retro Project Manual                     TBRUN(1)


NAME
       tbrun - test bench driver

SYNOPSIS
       tbrun [OPTION]...  [DSCFILE]

DESCRIPTION
       tbrun organizes the execution of large sets of test benches. It will

         - read  the  file  DSCFILE,  which  describes  the  full  set of test
           benches.  The top-level  DSCFILE  typically  includes  other  files
           which allow organizing the description in a well-structured manner.
           If no DSCFILE is specified the file tbrun.yml in the current  work-
           ing directory is used.
         - select  based on the given --tag and --exclude options the tests to
           be executed in a given run.
         - determine based on the --mode option the simulation engine and  the
           simulation type, behavioral or post-synthesis or later. See section
           MODES for details.
         - execute the tests which as much parallelism as possible. The --jobs
           option  specifies  the  maximal  number of jobs and a locking logic
           prevents more than one test from running in a working directory.

OPTIONS
       --tag=tlist
              specifies the tags a test must match to be selected  for  execu-
              tion.   tlist can be a comma-separated list of tags, a test must
              match all tags given in tlist to be selected.
              --tag can be specified multiple times  and  the  selections  are
              ored.  In effect, a test must match all tags in the tlist of one
              of the specified --tag options.
              If no --tag option is given an  implicit  --tag=default  is  as-
              sumed, so all tests with the tag 'default' are executed.

       --exclude=tlist
              specifies  the  tags a test must not match. tlist can again be a
              comma-separated list, a test that matches all the tags given  is
              excluded.
              --exclude can be specified multiple times and the rejections are
              ored.  In effect, a test is rejected if it matches all  tags  in
              the tlist of one of the specified --exclude options.

       --all  is simply a shortcut for --tag=".*" and selects all tags. Can be
              combined with --exclude but not with other --tag options.

       --mode=mlist
              determines the simulation engine and the type of simulation. Can
              be a comma-separated list, if several modes are specified all of
              them will be executed.
              If no --mode is given the default value 'bsim'  is  used.   Note
              that  unlike  --tag and --exclude only a single --mode option is
              processed, if multiple are present only the  last  one  will  be
              used.

              Each  mode  specification  has  the format '[engine]_[type]' and
              follows the model name suffix rules of the build system.

              If the engine part is omitted ghdl(1) is assumed as the default.
              If the type part is omitted 'bsim' is assumed as default.  Other
              supported values for engine are
                ISim  the Xilinx ISE build-in simulator
                XSim  the Xilinx Vivado build-in simulator

              The type part has the following supported values
                bsim  behavioral simulation
                ssim  post-synthesis functional simulation
                fsim  post-map simulation (only ISE)
                osim  post-optimize functional simulation (only Vivado)
                rsim  post-routing functional simulation (only Vivado)
                esim  post-synthesis timing simulation (only Vivado)
                psim  post-optimize timing simulation (only Vivado)
                tsim  post-routing timing simulation

       --jobs=njob
              specifies the maximal number  of  parallel  jobs.   Without  the
              --jobs  option  the tests are executed sequentially and the test
              output is forwarded immediately to stdout.

              With the --jobs option a task dispatcher is  used  which  starts
              the  jobs, received and buffers the test output, and forwards it
              to stdout when the job completes. The test outputs are always in
              the  original  selection order, thus not affected by the comple-
              tion order.

              The task dispatcher displays also a progress line when stdout is
              a terminal device of the format
                  #-I: t047: 5l 35.6s; t053: 5l 20.2s (26t,2w,31o)
              where
                t***: specifies the current task number
                **l   number of output lines collected for this task
                *.*s  run time (as real time) of the task (running since time)
                **t   number of tasks still waiting for execution
                *w    number of tasks currently running
                *o    number of tasks in the pending output queue

              Note  that  --jobs  enables  the task dispatcher and thus output
              buffering and progress line output even when njob is '1' !

       --tee=outfile
              if specified all output send to stdout except for  the  progress
              line  updates is also written in the file outfile.  This is very
              convenient in conjunction with the --jobs option which generates
              progress line output only when stdout is a terminal device.  Us-
              ing shell pipes  and  tee(1)  will  therefore  prevent  progress
              lines, use the --tee instead to save the output into a file.

       --list list selected tags and quit.

       --dry  dry  run,  prints  the  generated commands, but doesn't execute.
              When used without the --jobs option a commented  list  of  shell
              commands  is printed which describes the linear execution of the
              selected tests.
              When used together with --jobs this option mainly serves to  de-
              bug the task dispatcher. A random wait of 0.2 to 1.8 sec is gen-
              erated for each selected test.


       --trace
              prints additional information on job control.

       --nomake
              don't execute make step of the test bench.  Will be forwarded to
              tbrun_tbw(1) and tbrun_tbwrri(1) based test benches.


       --norun
              don't execute run step of the test bench, useful to only execute
              make step.  Will be  forwarded  to  tbrun_tbw(1)  and  tbrun_tb-
              wrri(1) based test benches.


       --rlmon
              enable  the  rlink monitor, will be forwarded to tbrun_tbwrri(1)
              based test benches.


       --rbmon
              enable the rbus monitor, will be  forwarded  to  tbrun_tbwrri(1)
              based test benches.

       --bwait=twait
              specifies  startup  wait for behavioral simulations.  twait must
              be an integer, the time unit is 1  ns.   Will  be  forwarded  to
              tbrun_tbwrri(1)-based test benches.

       --swait=twait
              specifies  startup  wait  for  post-synthesis and higher simula-
              tions.  twait must be an integer, the time unit is 1  ns.   Will
              be forwarded to tbrun_tbwrri(1)-based test benches.


       --help print short help text.

EXIT STATUS
       In case of an error, the exit codes are:
              1  run time errors, like a bad option, file not found, etc
              2  at least one test FAILed, test bench has FAILed

ENVIRONMENT
       TBW_GHDL_OPTS
           Used  by tbw(1) to define additional options for ghdl-based simula-
           tions.  Usually set to "--unbuffered  --ieee-asserts=disable-at-0",
           see tbw(1) documentation.

EXAMPLES
       tbrun
           The  simplest default case, will use the tbrun.yml file in the cur-
           rent working  directory,  assume  --tag=default,  and  --mode=bsim.
           This  selects  all  tests tagged with 'default' and runs the behav-
           ioral simulation with ghdl(1). Done in simple sequential mode.

       tbrun --jobs=2 --tag=viv,sys_w11a --mode=XSim
           Will select all tests which have a 'viv' and a 'sys_w11a' tag,  use
           XSim  as  the  simulation engine and run the behavioral simulation.
           Will use the task dispatcher and will try to run 2 tests in  paral-
           lel.

SEE ALSO
       tbrun_tbw(1), tbrun_tbwrri(1), tbfilt(1)


AUTHOR
       Walter F.J. Mueller <W.F.J.Mueller@gsi.de>


Retro Project                     2022-05-02                          TBRUN(1)
 
Generated: 2023-02-09
Generated by man2html V0.26
page hit count: 469
Valid CSS Valid XHTML 1.0 Strict