Steps to Use Board File Linter - 2022.2 English

Vivado Design Suite User Guide: System-Level Design Entry (UG895)

Document ID
UG895
Release Date
2022-11-09
Version
2022.2 English
Perform the following steps to use board file linter:
  1. Board developers are required to add document type declaration (DOCTYPE) in the XML files when checking validity. This can be done manually or by using the -doctype_inject switch of the validate_board_file command. For more details, refer to the long help snippet of the command in step 5 below. The following is an example DOCTYPE declaration:
    <!DOCTYPE board SYSTEM "/proj/xbuilds/<2020.2>_daily_latest/installs/lin64/Vivado/2020.2/data/boards/board_schemas/current/board.dtd">
    
  2. The DOCTYPE declaration must be removed before the XML files are actually published. This is because the DOCTYPE refers a path (Vivado installation) that is not valid for users.
  3. If the board developer fails to include a DOCTYPE, Vivado triggers a warning:
    Warning: [Board 49-117] Board file '/home/mccrohan/tmp/board.xml' did not contain a DOCTYPE declaration or the DOCTYPE declaration did not reference a valid DTD so XML validation is ignored for this file.
  4. Launch Vivado and run validate_board_files in the Tcl console.
  5. validate_board_files is a new Tcl command to invoke linter. It currently takes one parameter, which is the name of a directory containing the board XML files (board.xml, preset.xml, part0_pins.xml).
    Description:
    Check whether the XML files describing a board in the given directory are valid.
    Only supported for board XML files with schema_version>=2.0.
    The XML files must contain an appropriate DOCTYPE declaration to be fully validated. Examples:
    <!DOCTYPE board SYSTEM "board.dtd"> <!-- for board.xml -->
    <!DOCTYPE ip_presets SYSTEM "preset.dtd"> <!-- for preset.xml -->
    <!DOCTYPE part_info SYSTEM "part0_pins.dtd"> <!-- for part0_pins.xml -->
    Note that if a project is open and an IP repository loaded, this command will also validate
    certain IP and Interface attributes used in the board definition against the current IP repository.
    Syntax:
    validate_board_files  [-doctype_inject <arg>] [-quiet] [-verbose] [<dir>]
    Returns:
    ok if all board files are valid
    Usage:
      Name               Description
      ------------------------------
      [-doctype_inject]  The name of a directory containing the dtd files
                         (board.dtd, part0_pins.dtd, preset.dtd) for DOCTYPE
                         injection in board files. If the path is invalid (or
                         does not contain the dtd files), then the injection will
                         not happen. Use "" to inject the default dtd files from
                         the vivado install data path.
      [-quiet]           Ignore command errors
      [-verbose]         Suspend message limits during command execution
      [<dir>]            The name of a directory containing the board files
                         (board.xml, part0_pins.xml, preset.xml) to be checked
    Categories:
    Object, Project, XPS, Board