VBOM(5)                      Retro Project Manual                      VBOM(5)


NAME
       vbom - vhdl manifest file format - 'vhdl bill of material'

DESCRIPTION
       vbom  files  describe  the  sources  needed to build a VHDL entity. The
       source files are either given directly in the case of libraries or  via
       other  vbom's in the case of instantiated components.  They are used by
       vbomconv(1) to build project descriptions for synthesis and  simulation
       tools.

       vbomconv  expects that the entries in the vbom's are ordered, libraries
       first, then the components in the order they are instantiated, and  fi-
       nally the name of the associated source file.

       The format has five types of lines:

       Comments
           Each line starting with '#' is treated as a comment and ignored.

       File names
           Either  source files or nested vbom's. The file names must be given
           as relative path names from the directory the vbom file is  located
           in.   Absolute  path  names are not allowed, nor is an expansion of
           environment variables.

           Currently, the following file types are accepted:

           .vbom refers to a nested vbom. Usually used for instantiated compo-
                 nents.

           .vhd  refers  to a source file. Usually used for libraries referred
                 to in 'use' clauses, and as the last file, the source file of
                 the entity which is described by this vbom file.

           .v
           .sv   refers  to  a Verilog or System Verilog source file. Accepted
                 by the Vivado xsim simulator. Typically used for DPI wrappers
                 or simprim-based models in Vivado.

           .c    refers  to  the C sources which implement either a VHDL func-
                 tion or procedure via the VHPI mechanism or a System  Verilog
                 function via the DPI mechanism. Supported only in conjunction
                 with GHDL and Vivado simulator.

       File attributes
           File names can be followed by a list of attributes of the form
               -name[:value] ...
           Currently, the following attributes are recognized

           -UUT  Signals that the vbom describes a test bench and that file is
                 the 'unit under test'. This allows splitting the sources into
                 a simulation-only test bench part and a  synthesizable  'unit
                 under  test' part.  The file is typically a vbom in case of a
                 behavioral simulation or the file name of a  generated  model
                 for a functional or timing simulation.

           -SCOPE_REF[:entity]
                 Signals  that the xdc file should be 'scoped to reference' to
                 entity.  If entity is omitted the filename is  taken  as  the
                 entity  name.  In general used together with the @xdc: direc-
                 tive.

       Conditional file names
           File names can be preceded by a condition prefix of the form

              [tag]filename
              [tag,tag,...]filename

           The main purpose of this mechanism is to handle libraries and  com-
           ponents which are only referred in
               -- synthesis translate_off
               -- synthesis translate_on
           sections and are used only for simulation.

           Currently, supported tag names are
              ghdl  included in conjunction with GHDL simulation
              viv   included in conjunction with Vivado targets
              vsyn  included in conjunction with Vivado synthesis
              vsim  included in conjunction with Vivado simulation
              ise   included in conjunction with ISE targets
              xst   included in conjunction with ISE xst synthesis
              isim  included in conjunction with ISE ISim simulation
              sim   included in conjunction with simulation (ghdl,isim,vsim)

       Logical names
           A logical name can be defined with
               lname = filename
           The first definition of a logical name encountered in the traversal
           of the vbom's by vbomconv(1) is taken, and  all  later  definitions
           are ignored.

           A logical name can be used with
              ${lname}
              ${lname := default}
           In the first form, lname must have been defined before.  The second
           form allows specifying a default which is used  when  lname  hasn't
           been defined so far.

           Again,  the filenames must be given as relative path names from the
           directory the vbom file is located in.


       Directives
           Directives start with a '@', currently implemented are:

           @top:name
               Specifies the top-level design name. Mainly  used  when  it  is
               different from the stem of the vbom file name.

           @lib:name
               Specifies an additional system library. Allowed values for name
               are unisim, unimacro, and simprim.  Currently used to  generate
               the appropriate -L options for ghdl commands, e.g. generated by
               the vbomconv action --ghdl_m.

           @xdc:file
               Specifies that file is a constraint file for  Vivado  synthesis
               and should be included in the constraints fileset.

           @tcl:file
               specifies  that file is a Tcl script to be executed when build-
               ing the Vivado project. The Tcl script generated by  the  vbom-
               conv  action  --vsyn_prj  will  contain  statements with source
               file.

           @ucf_cpp:file
               Specifies that a file.ucf file is to  be  generated  by  cpp(1)
               from  a  file.ucf_cpp source file. This allows modularizing ISE
               ucf files.

EXAMPLES
   Simple entity
       A simple VHDL entity named bp_2l4l which is defined in the source  file
       bp_2l4l.vhd,  which uses the library slvtypes and instantiates bp_2line
       and bp_4line, might have a bp_2l4l.vbom like

           # libs
           ../../vlib/slvtypes.vhd
           # components
           bp_2line.vbom
           bp_4line.vbom
           # design
           bp_2l4l.vhd

       Note that the VHDL source file bp_2l4l.vhd is always given in the  vbom
       file which describes this source file.  The comments are put in by con-
       vention to help the human reader and are not interpreted by vbomconv.

SEE ALSO
       vbomconv(1), ghdl(1), cpp(1)

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


Retro Project                     2018-11-09                           VBOM(5)
 
Generated: 2023-02-09
Generated by man2html V0.26
page hit count: 487
Valid CSS Valid XHTML 1.0 Strict