Regression HTML Coverage Reports
If you are using a coverage tool which emits HTML-based coverage reports onto disk, these can be linked to from Regressions and rendered within Simscope.
For example:
- Cadence IMC
- Synopsys VCS
- Mentor Questa
This solution supports hyperlinks, images, and Javascript in the HTML reports.
Alternative: Custom coverage
You can use Simscope's Coverage DB format to analyze custom coverage models (Formal, SystemC, etc).
Sample HTML Coverage Report
Here is an example Questa HTML coverage report, rendered in the browser (and proxied through Simscope):
Text-based Reports and Logs
This also supports text-based reports, where a directory contains one or more text report files:
- Lint/synthesis/CDC reports
- Compile/Simulation log files
- Summary files
Also, Regressions are not limited to a single report metadata link.
- They may have as many reports as desired, as long as each metadata keys is different (e.g.
"Lint Report"
,"Coverage"
, etc).
Why this is necessary?
Modern browsers have security on local file://
links, and will not allow users to open these
links directly from an http://
link (ie from within Simscope).
- Using
proxypaths
, Simscope will turn afile://
link into anhttp://
link, which is clickable within the browser. - If you have Simscope https enabled, the link will be an
https://
link.
Also, without proxying, file://
links would not allow Javascript, whereas proxied do allow this.
Example: Enabling Coverage Reports in Simscope
Note: For full intructions on enabling proxying in Simscope, see the file:// proxy topic.
You need to set the base directory for your coverage reports as one of the proxypaths
in your simscope.config.file.
For example, if your base coverage directory is /proj/delta/coverage
:
[server]
# Enable file:// paths to proxy through Simscope
# (Note: this example adds 2 paths)
proxypaths = "/proj/delta/coverage/"
proxypaths = "/another/directory"
Example: Publishing Coverage Report
To publish a coverage report, add its path as a custom_metadata
section in a
Regression JSON, prefixed by file://
For example, if your coverage report is located at:
/proj/delta/coverage/2023-05-01/coverage_report.html
Then this needs to be prefixed with file://
so that Simscope can proxy it:
file:///proj/delta/coverage/2023-05-01/index.html
You can publish as a regr-update
JSON event to an example Regression cpu_smoke_cov/125
:
1. Create JSON
Create this file on disk as cpu_smoke_regr_update.json
:
{
"name": "cpu_smoke_cov/125",
"pending": false,
"custom_metadata": [
["Coverage Report", "file:///proj/delta/coverage/2023-05-01/coverage_report.html"]
]
}
- Note: this message only updates the Regression's
custom_metadata
field, and keeps the rest of the Regression as-is.
2. Publish JSON
To publish this JSON into Simscope:
> simscope-tunnel --config=simscope-tunnel.config --publish regr-update \
--regression=cpu_smoke_cov/125 cpu_smoke_regr_update.json
Example Result
After publishing, the Regression page should have a Coverage Report metadata hyperlink:
If you click the Coverage Report link, it will open the Questa coverage report in the browser (similar to the screenshot at the top of this page).