XVIV_MSG_FILTER(1)

NAME
xviv_msg_filter - message filter for Xilinx Vivado tool chain log files

SYNOPSIS
xviv_msg_filter [OPTION]... TYPE VMFSET LOGFILE
xviv_msg_filter --help

DESCRIPTION
Scans the log file LOGFILE generated by Xilinx Vivado for messages and compares these messages against a set of message filter rules defined in the VMFSET file and selected by TYPE. xviv_msg_filter will print all non-matching messages. All filter rules which do not match a message are also listed, these messages are considered missing. Matched messages are considered accepted. In normal operation, they will not create output. xviv_msg_filter is useful for example in make(1)-based flows to create a short summary from the log files. The accepted values for TYPE are:
    syn Vivado synthesis flow
    imp Vivado implementation flow
    bit Vivado bitfile generation step

OPTIONS

--pacc
    Print a summary of all accepted messages. The match count for each rule is listed.

--pcnt
    Print a statistics of all detected messages.

--help
    print full help.

MESSAGE FILTER FILE FORMAT
Simply a list of match rules structured by section headers of the form "[TYPE]". '#' is interpreted as a comment delimiter, everything after a '#' in a line will be ignored. xviv_msg_filter will extract the rules of the section matching the TYPE argument. A line of the form
       {yyyy.n:yyyy.n}
       {:yyyy.n}
       {yyyy.n:}
       {:}
acts as a version range tag and specifies a range of Vivado versions for which the following rules shall be applied. "{:2016.4}" means up to version 2016.4, "{:2017.1}" from 2017.1 on, while "{:}" cancels version range checking. A line starting with '@' specifies a nested mfset file. This allows to store the message filter sets in a structured way and factor out common rule sets in separate files. Each rule line has the format
       <mode> [<name>] <pattern>
with

mode
    determines how the rule is applied
    I   matching messages are ignored
    i   matching messages are not printed, if no matching message is found a notification is printed.
    c   matching messages are counted, only a summary of the message counts is printed.
    r   signals that at least one matching message is required, if none is seen, a notification is printed.

name
    Vivado message name, enclosed in [] brackets

pattern
    regular expression to match the message text. This field is optional, if omitted all messages with the given name will match. '[' and ']' characters are escaped to '\[' and '\]', because [] is very often part of signal names. Character set matches are therefore not possible, unfortunately.

  Example message filter file
      # -----------
      [syn]
      i [Designutils 20-1567]           # false_path -hold and synth
      # unused sequential element
      i [Synth 8-3332] R_LREGS_reg[attn][\d*]
      i [Synth 8-3332] HIO/R_REGS_reg[(btn|swi)(eff)?][\d*]
      # -----------
      [imp]
      I [Vivado 12-2489]                # multiple of 1 ps
      # -----------
      [bit]
      i [DRC DPOP-1] PREG Output pipelining
      i [DRC DPOP-2] MREG Output pipelining

EXIT STATUS
If TYPE is invalid or the VMFSET or LOGFILE files can't be opened an exit status 1 is returned.

EXAMPLES

xviv_msg_filter syn proj.vmfset proj_syn.log
    Generate a short summary of the Vivado synthesis log file.

SEE ALSO
xviv_msg_summary(1)

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