Mentor Graphics

Precision

Precision has two warning formats: those with IDs and those without.

Warnings With IDs

Warnings with IDs are identified with the Warning keyword and the ID between colons inside square brackets.

<warning keyword>:[<ID>]: “<filename>”, <linenumber>: <module>: <message>

where:

Item Regular Expression Match
warning keyword ^# Warning
ID [0-9]+
filename \W+
linenumber line\s[0-9]+
module Module\s\W+
message .*$

Warnings Without IDs

Warnings without IDs are identified with the Warning keyword without the ID in square brackets. The message is considered to be everything after the first colon.

<warning keyword> : <message1> : <message2>

where:

Item Regular Expression Match
warning keyword ^Warning
message1 .*
message2 .*$

Extracting Warnings

The fields filename, linenumber, module and message will be combined into a single message.

  1. Search for lines starting with # Warning:
  2. Extract string from between colons
  3. Classify warning
    1. As ID if there are no spaces within the extracted string
    2. As NO_ID if the there are spaces within the extracted string
  4. Save the message
    1. Everything after the second colon if the message has an ID
    2. Everything after the first colon if the message does not have an ID

Quasta Lint

Questa Lint has a single format for errors, warnings and infos.

<ID>: <message>, Module ‘<module>’, File ‘<filename>’, Line ‘<linenumber>’

where:

Item Regular Expression Match
ID \W+
filename \W+
linenumber \s[0-9]+
module \W+
message .*$

Extracting Warnings

The fields filename, linenumber, module and message will be combined into a single message.

  1. Search for line starting with ‘Section 2’ before processing warnings
  2. Search for lines starting with ‘Check:’
    1. extract ID
  3. Search for lines starting with extracted ID
    1. create warning
  4. Search for a line starting with ‘| Info’
    1. Stop searching for

Quasta CDC

Questa CDC provides several reports which can be parsed.

cdc_run.log

The cdc_run.log file reports violations, cautions, and evaluations in addition to run time errors and warnings.

CDC Results

This section reports the CDC crossings and whether they are Violations, Cautions, and Evaluations. The reporting is divided into reporting the number of types of crossings and then the details of the crossing. Only the number of types of crossings will be reported for Violations, Cautions, and Evaluations.

Message Summary

This section reports errors and warnings encountered while running the tool. There should not be any Errors or Warnings in this section.

The cdc_detail.rpt file provides the most items to be checked.

Section 1 : Clock Information

The number of inferred clocks should be 0. The following line will be checked:

  1. Inferred :(0)

If the number in the parenthesis is not 0, then a warning will be reported.

Section 2 : Reset Information

The number of inferred resets should be 0. The following line will be checked:

  1. Inferred :(0)

If the number in the parenthesis is not 0, then a warning will be reported.

Section 3 : CDC Results

This section reports the CDC crossings and whether they are Violations, Cautions, and Evaluations. The reporting is divided into reporting the number of types of crossings and then the details of the crossing. Only the number of types of crossings will be reported for Violations, Cautions, and Evaluations.

Section 9 : Design Information

This section reports information about the design. The number of empty modules and unresolved modules should be 0 to ensure a proper analysis.

The following lines will be checked:

Number of Empty Modules = 0 Number of Unresolved Modules = 0

If the number after the equal sign is not 0, then a warning will be reported.

Section 10 : Port Domain Information

This section reports each port and the clock assigned to it. It also reports whether the user defined the clock domain or if QuestaCDC assigned it.

Each line follows this format:

<Port> <Direction> <Constraints> {<Clock Domain>} <Type>

If <Type> is not “User” then an warning will be reported.