XVIV_MSG_FILTER(1) Retro Project Manual 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 mes- sage 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 ver- sion 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 mes- sage 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> Retro Project 2018-12-24 XVIV_MSG_FILTER(1)