Knowledge Base Administration Guide

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
  • Synopsys
  • Mentor Questa

This solution supports hyperlinks, images, and Javascript in the HTML reports.

Sample HTML Coverage Report

Here is an example Questa HTML coverage report, rendered in the browser (and proxied through Simscope):

Questa coverage

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 a file:// link into an http:// 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

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:

Regression coverage

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).