XVIV_MSG_FILTER(1) Retro Project Manual XVIV_MSG_FILTER(1) NNAAMMEE xviv_msg_filter - message filter for Xilinx Vivado tool chain log files SSYYNNOOPPSSIISS xxvviivv__mmssgg__ffiilltteerr [_O_P_T_I_O_N]... _T_Y_P_E _V_M_F_S_E_T _L_O_G_F_I_L_E xxvviivv__mmssgg__ffiilltteerr ----hheellpp DDEESSCCRRIIPPTTIIOONN Scans the log file _L_O_G_F_I_L_E generated by Xilinx Vivado for messages and compares these messages against a set of message filter rules defined in the _V_M_F_S_E_T file and selected by _T_Y_P_E. 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 mmaakkee(1)-based flows to create a short summary from the log files. The accepted values for _T_Y_P_E are: ssyynn Vivado synthesis flow iimmpp Vivado implementation flow bbiitt Vivado bitfile generation step OOPPTTIIOONNSS ----ppaacccc Print a summary of all accepted messages. The match count for each rule is listed. ----ppccnntt Print a statistics of all detected messages. ----hheellpp print full help. MMEESSSSAAGGEE FFIILLTTEERR FFIILLEE FFOORRMMAATT 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 _T_Y_P_E 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 [] with mmooddee determines how the rule is applied II matching messages are ignored ii matching messages are not printed, if no matching message is found a notification is printed. cc matching messages are counted, only a summary of the mes- sage counts is printed. rr signals that at least one matching message is required, if none is seen, a notification is printed. nnaammee Vivado message name, enclosed in [] brackets ppaatttteerrnn 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. EExxaammppllee mmeessssaaggee ffiilltteerr ffiillee # ----------- [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 EEXXIITT SSTTAATTUUSS If _T_Y_P_E is invalid or the _V_M_F_S_E_T or _L_O_G_F_I_L_E files can't be opened an exit status 1 is returned. EEXXAAMMPPLLEESS xxvviivv__mmssgg__ffiilltteerr ssyynn pprroojj..vvmmffsseett pprroojj__ssyynn..lloogg Generate a short summary of the Vivado synthesis log file. SSEEEE AALLSSOO xxvviivv__mmssgg__ssuummmmaarryy(1) AAUUTTHHOORR Walter F.J. Mueller Retro Project 2018-12-24 XVIV_MSG_FILTER(1)