Signature
Simscope automatically groups all Jobs into common buckets, based on the error message.
- This automatic grouping process creates Signatures.
Signatures enable debugging from a higher level. Instead of looking job-by-job, you can debug signature-by-signature.
- Signatures group across both Regressions and Components.
Sample Signature
This is an example Signature #135
:
Signature Fields
Each Signature contains a unique auto-incrementing id
field which identifies the signature,
and the unique bucketed title of the signature.
field | value |
---|---|
id | 100 (automatic) |
category | simulate |
title | Number of expected items ... exceeds limit ... |
Regression Signatures
Simscope groups all Regression jobs into Signatures.
For example, a Regression might contain 1000 jobs:
Result | Count |
---|---|
pass | 800 |
fail | 200 |
Rather than debugging 1000 jobs, Simscope automatically has grouped the Regression into 4 Signatures:
Signature | Count |
---|---|
pass | 800 |
data mismatch filling store buffer | 180 |
core FATAL simulation timeout | 18 |
input scoreboard unexpected interrupt | 2 |
Example Signatures
Simscope uses a relatively simple bucketizer, to turn errors into signatures. From a high level, the bucketizer strips out numbers, whitespace, and symbols, to form the signature.
Note: Simscope bucketization can be overridden if your group has its own error bucketizer.
1: core FATAL simulation timeout at ...
Simscope will bucket each of these 3 errors into a common signature:
a. [core] FATAL simulation timeout at 5.2ms
b. [core] FATAL simulation timeout at 10h30m
c. [core] FATAL simulation timeout at 0s
→ Signature: core FATAL simulation timeout at ...
2: [HIER].fs_ data mismatch filling store buffer expected ... actual ...
Simscope will bucket each of these 3 errors into a common signature:
a. |t.cpu.core0.fs7| data mismatch filling store buffer: expected=24'h16a7 actual=24'h76a7
b. |t.cpu.core1.fs2| data mismatch filling store buffer: expected=24'h16a7 actual=24'hX11X
c. |t.cpu.core0.fs0| data mismatch filling store buffer: expected=24'h0000 actual=24'h0001
→ Signature: [HIER].fs_ data mismatch filling store buffer expected ... actual ...
- Note: the default Simscope bucketizer automatically stripped the hierarchy strings into
[HIER].fs_