Suppression Rules
The suppression rules are a YAML formatted file with the following basic form:
suppress:
rules:
<warning_id>:
- msg: Port I_CLK_A not used
comment: This port is not used in this design.
author: jcleary
- msg: Port I_DATA_A not used'
comment: This port is not used in this design.
author: jcleary
investigate : True
<warning_id>:
- msg: Signal fifo_enable is tied high
comment: The FIFO is always enabled in this design to support data throughput.
author: jcleary
options:
- suppress_in_json_if_unmatched
It starts with the suppress key and then a rules key. The rules key contains one or more suppression rules. Each rules key is further divided into one or more warning ids.
Warning IDs
Regular expressons are support in warning ids. This allows for another method of grouping suppressions. In the example below, every ID that starts with Synth- and has flip-flop in the message will be suppressed.
suppress:
rules:
Synth-.*:
- msg: flip-flop
Suppression Rule Fields
Each suppression rule will have the following fields available:
Option |
Required |
Description |
---|---|---|
msg |
Yes |
The message to suppress. This will be a regular a regular expression which will match after the defined message ID. LSW will prepend a .* to this field. |
comment |
No |
While optional, it is strongly recommened to use this field to document why the warning was suppressed. |
author |
No |
Document who created the suppression. |
investigate |
No |
Boolean(True/False) indicating the warnings the rule suppresses need further analysis. This defaults to False. |
options |
No |
A list of options applied to the suppression. |
In addition to the standard warning ID, each tool may have warnings without IDs. When processing these warnings, ELFWS will use a warning ID of no_id.
suppress:
no_id:
msg: Unused port
comment: This port is not used.
author: mpw
<warning_id>:
msg: Port I_CLK not used
comment: This port is not used.
author: jcl
If these unique IDs exist, they are listed in the tool section of this documentation.
Grouping Rules
It can be helpful to group rules based on some criteria. For example, file names, sections in a log file, design elements or warning types.
suppress:
<group id>:
rules:
<warning_id>:
- msg: FIFO uses same clock for read and write
Arbitrary levels of groupings are also supported:
suppress:
<group id>:
rules:
<warning_id>:
- msg: FIFO uses same clock for read and write
<group id>:
<group id>:
rules:
<warning_id>:
- msg: RAM address bits [12:3] are unused
<group id>:
rules:
<warning_id>:
- msg: invalid false path
rules:
<warning_id>:
- msg: UART is blackboxed
rules:
<warning_id>:
- msg: signal fifo_wr is tied high
Dividing suppression rules into groups helps with maintaining the suppress rules. ELFWS flattens all the suppression rules into a single list.
Options
Options change the behavior of a suppression.
The following table includes all avialable options:
Option |
Description |
---|---|
suppress_in_json_if_unmatched |
The suppression will be suppressed in the json xml file only. |