Support coverpoint and cross `iff` (#8125)
This commit is contained in:
parent
ba893abb2c
commit
b032379de2
|
|
@ -2785,11 +2785,14 @@ class AstCoverCross final : public AstNodeFuncCovItem {
|
||||||
// @astgen op2 := optionsp : List[AstCoverOption] // post-LinkParse only
|
// @astgen op2 := optionsp : List[AstCoverOption] // post-LinkParse only
|
||||||
// @astgen op3 := rawBodyp : List[AstNode] // Parse: raw cross_body items;
|
// @astgen op3 := rawBodyp : List[AstNode] // Parse: raw cross_body items;
|
||||||
// // post-LinkParse: empty
|
// // post-LinkParse: empty
|
||||||
|
// @astgen op4 := iffp : Optional[AstNodeExpr] // Conditional sampling guard
|
||||||
public:
|
public:
|
||||||
AstCoverCross(FileLine* fl, const string& name, AstCoverpointRef* itemsp)
|
AstCoverCross(FileLine* fl, const string& name, AstCoverpointRef* itemsp,
|
||||||
|
AstNodeExpr* iffp = nullptr)
|
||||||
: ASTGEN_SUPER_CoverCross(fl, name) {
|
: ASTGEN_SUPER_CoverCross(fl, name) {
|
||||||
UASSERT(itemsp, "AstCoverCross requires at least one coverpoint reference");
|
UASSERT(itemsp, "AstCoverCross requires at least one coverpoint reference");
|
||||||
addItemsp(itemsp);
|
addItemsp(itemsp);
|
||||||
|
this->iffp(iffp);
|
||||||
}
|
}
|
||||||
ASTGEN_MEMBERS_AstCoverCross;
|
ASTGEN_MEMBERS_AstCoverCross;
|
||||||
void dump(std::ostream& str) const override;
|
void dump(std::ostream& str) const override;
|
||||||
|
|
|
||||||
|
|
@ -410,6 +410,19 @@ class FunctionalCoverageVisitor final : public VNVisitor {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Capture an iff guard in a function-local temporary so it is evaluated once per sample()
|
||||||
|
AstVarRef* captureIffToTemp(AstNodeExpr* iffp, const string& tempName) {
|
||||||
|
FileLine* const fl = iffp->fileline();
|
||||||
|
AstVar* const iffVarp
|
||||||
|
= new AstVar{fl, VVarType::BLOCKTEMP, tempName, iffp->findBitDType()};
|
||||||
|
iffVarp->funcLocal(true);
|
||||||
|
m_sampleFuncp->addStmtsp(iffVarp);
|
||||||
|
iffp->unlinkFrBack();
|
||||||
|
m_sampleFuncp->addStmtsp(
|
||||||
|
new AstAssign{fl, new AstVarRef{fl, iffVarp, VAccess::WRITE}, iffp});
|
||||||
|
return new AstVarRef{fl, iffVarp, VAccess::READ};
|
||||||
|
}
|
||||||
|
|
||||||
AstNodeExpr* applyCoverpointIffCondition(AstCoverpoint* coverpointp, FileLine* fl,
|
AstNodeExpr* applyCoverpointIffCondition(AstCoverpoint* coverpointp, FileLine* fl,
|
||||||
AstNodeExpr* condp) {
|
AstNodeExpr* condp) {
|
||||||
if (AstNodeExpr* const iffp = coverpointp->iffp()) {
|
if (AstNodeExpr* const iffp = coverpointp->iffp()) {
|
||||||
|
|
@ -812,6 +825,11 @@ class FunctionalCoverageVisitor final : public VNVisitor {
|
||||||
FileLine* const fl = coverpointp->fileline();
|
FileLine* const fl = coverpointp->fileline();
|
||||||
UINFO(4, " Generating VlCoverpoint member: " << coverpointp->name());
|
UINFO(4, " Generating VlCoverpoint member: " << coverpointp->name());
|
||||||
|
|
||||||
|
if (AstNodeExpr* const iffp = coverpointp->iffp()) {
|
||||||
|
coverpointp->iffp(
|
||||||
|
captureIffToTemp(iffp, "__VcpIff_" + sanitizeGeneratedName(coverpointp->name())));
|
||||||
|
}
|
||||||
|
|
||||||
// Size the hit list to the gen-time max bin overlap (1 unless cross-fed with
|
// Size the hit list to the gen-time max bin overlap (1 unless cross-fed with
|
||||||
// overlapping ranges), so no cross hit is ever dropped and storage is minimal.
|
// overlapping ranges), so no cross hit is ever dropped and storage is minimal.
|
||||||
const bool crossFed = m_crossedCpNames.count(coverpointp->name()) != 0;
|
const bool crossFed = m_crossedCpNames.count(coverpointp->name()) != 0;
|
||||||
|
|
@ -1212,6 +1230,11 @@ class FunctionalCoverageVisitor final : public VNVisitor {
|
||||||
FileLine* const fl = crossp->fileline();
|
FileLine* const fl = crossp->fileline();
|
||||||
UINFO(4, " Generating VlCoverCross member: " << crossp->name());
|
UINFO(4, " Generating VlCoverCross member: " << crossp->name());
|
||||||
|
|
||||||
|
if (AstNodeExpr* const iffp = crossp->iffp()) {
|
||||||
|
crossp->iffp(
|
||||||
|
captureIffToTemp(iffp, "__VcrossIff_" + sanitizeGeneratedName(crossp->name())));
|
||||||
|
}
|
||||||
|
|
||||||
// Resolve and unlink the coverpoint refs, in dimension order. Every ref resolves to a
|
// Resolve and unlink the coverpoint refs, in dimension order. Every ref resolves to a
|
||||||
// known coverpoint (a cross with an unresolvable item was dropped earlier).
|
// known coverpoint (a cross with an unresolvable item was dropped earlier).
|
||||||
std::vector<AstVar*> cpVars;
|
std::vector<AstVar*> cpVars;
|
||||||
|
|
@ -1257,7 +1280,12 @@ class FunctionalCoverageVisitor final : public VNVisitor {
|
||||||
|
|
||||||
// sample(): after all coverpoints have sampled (cross loop runs after coverpoint loop).
|
// sample(): after all coverpoints have sampled (cross loop runs after coverpoint loop).
|
||||||
UASSERT_OBJ(m_sampleFuncp, crossp, "sample() CFunc not set for cross");
|
UASSERT_OBJ(m_sampleFuncp, crossp, "sample() CFunc not set for cross");
|
||||||
m_sampleFuncp->addStmtsp(makeCrossCpsCall(fl, cpVars, cxVarp, ".sample(__Vcx_cps);"));
|
AstNodeStmt* const samplep = makeCrossCpsCall(fl, cpVars, cxVarp, ".sample(__Vcx_cps);");
|
||||||
|
if (AstNodeExpr* const iffp = crossp->iffp()) {
|
||||||
|
m_sampleFuncp->addStmtsp(new AstIf{fl, iffp->cloneTree(false), samplep});
|
||||||
|
} else {
|
||||||
|
m_sampleFuncp->addStmtsp(samplep);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void generateCrossCode(AstCoverCross* crossp) {
|
void generateCrossCode(AstCoverCross* crossp) {
|
||||||
|
|
@ -1784,6 +1812,7 @@ class FunctionalCoverageVisitor final : public VNVisitor {
|
||||||
visitor.scan(cpp->exprp());
|
visitor.scan(cpp->exprp());
|
||||||
visitor.scan(cpp->iffp());
|
visitor.scan(cpp->iffp());
|
||||||
}
|
}
|
||||||
|
for (AstCoverCross* const crossp : m_coverCrosses) visitor.scan(crossp->iffp());
|
||||||
return visitor.offenderp();
|
return visitor.offenderp();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -361,6 +361,11 @@ class EmitVBaseVisitorConst VL_NOT_FINAL : public VNVisitorConst {
|
||||||
if (itemp != nodep->itemsp()) puts(", ");
|
if (itemp != nodep->itemsp()) puts(", ");
|
||||||
iterateConst(itemp);
|
iterateConst(itemp);
|
||||||
}
|
}
|
||||||
|
if (nodep->iffp()) {
|
||||||
|
puts(" iff (");
|
||||||
|
iterateConst(nodep->iffp());
|
||||||
|
puts(")");
|
||||||
|
}
|
||||||
puts(";\n");
|
puts(";\n");
|
||||||
}
|
}
|
||||||
void visit(AstCoverTransSet* nodep) override {
|
void visit(AstCoverTransSet* nodep) override {
|
||||||
|
|
|
||||||
|
|
@ -2008,6 +2008,12 @@ class WidthVisitor final : public VNVisitor {
|
||||||
// Delete the assignment node (we've extracted the value)
|
// Delete the assignment node (we've extracted the value)
|
||||||
VL_DO_DANGLING(pushDeletep(nodep->unlinkFrBack()), nodep);
|
VL_DO_DANGLING(pushDeletep(nodep->unlinkFrBack()), nodep);
|
||||||
}
|
}
|
||||||
|
void visit(AstCoverCross* nodep) override {
|
||||||
|
userIterateAndNext(nodep->itemsp(), nullptr);
|
||||||
|
if (nodep->iffp()) iterateCheckBool(nodep, "iff condition", nodep->iffp(), BOTH);
|
||||||
|
userIterateAndNext(nodep->optionsp(), nullptr);
|
||||||
|
userIterateAndNext(nodep->rawBodyp(), nullptr);
|
||||||
|
}
|
||||||
void visit(AstCoverpoint* nodep) override {
|
void visit(AstCoverpoint* nodep) override {
|
||||||
// The coverpoint expression is self-determined (IEEE 1800-2023 19.5). Width it
|
// The coverpoint expression is self-determined (IEEE 1800-2023 19.5). Width it
|
||||||
// with a context so a bit/part-select (AstSel) is sized here; otherwise it would
|
// with a context so a bit/part-select (AstSel) is sized here; otherwise it would
|
||||||
|
|
|
||||||
|
|
@ -7321,24 +7321,16 @@ cover_cross<nodep>: // ==IEEE: cover_cross
|
||||||
id/*cover_point_identifier*/ ':' yCROSS list_of_cross_items iffE cross_body
|
id/*cover_point_identifier*/ ':' yCROSS list_of_cross_items iffE cross_body
|
||||||
{
|
{
|
||||||
AstCoverCross* const nodep = new AstCoverCross{$<fl>3, *$1,
|
AstCoverCross* const nodep = new AstCoverCross{$<fl>3, *$1,
|
||||||
VN_AS($4, CoverpointRef)};
|
VN_AS($4, CoverpointRef), $5};
|
||||||
if ($6) nodep->addRawBodyp($6);
|
if ($6) nodep->addRawBodyp($6);
|
||||||
if ($5) {
|
|
||||||
$5->v3warn(COVERIGN, "Unsupported: 'iff' in coverage cross");
|
|
||||||
VL_DO_DANGLING($5->deleteTree(), $5);
|
|
||||||
}
|
|
||||||
$$ = nodep;
|
$$ = nodep;
|
||||||
}
|
}
|
||||||
| yCROSS list_of_cross_items iffE cross_body
|
| yCROSS list_of_cross_items iffE cross_body
|
||||||
{
|
{
|
||||||
AstCoverCross* const nodep = new AstCoverCross{$<fl>1,
|
AstCoverCross* const nodep = new AstCoverCross{$<fl>1,
|
||||||
"__cross" + cvtToStr(GRAMMARP->s_typeImpNum++),
|
"__cross" + cvtToStr(GRAMMARP->s_typeImpNum++),
|
||||||
VN_AS($2, CoverpointRef)};
|
VN_AS($2, CoverpointRef), $3};
|
||||||
if ($4) nodep->addRawBodyp($4);
|
if ($4) nodep->addRawBodyp($4);
|
||||||
if ($3) {
|
|
||||||
$3->v3warn(COVERIGN, "Unsupported: 'iff' in coverage cross");
|
|
||||||
VL_DO_DANGLING($3->deleteTree(), $3);
|
|
||||||
}
|
|
||||||
$$ = nodep;
|
$$ = nodep;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
|
__vlAnonCG_cg.cp_a.one: 2
|
||||||
|
__vlAnonCG_cg.cp_b.one: 2
|
||||||
|
__vlAnonCG_cg.cross_ab.one_x_one [cross]: 1
|
||||||
cg_and.cp_concat.b00: 0
|
cg_and.cp_concat.b00: 0
|
||||||
cg_and.cp_concat.b01: 1
|
cg_and.cp_concat.b01: 1
|
||||||
cg_and.cp_concat.b10: 0
|
cg_and.cp_concat.b10: 0
|
||||||
|
|
@ -6,6 +9,15 @@ cg_array_iff.cp.arr[0]: 1
|
||||||
cg_array_iff.cp.arr[1]: 0
|
cg_array_iff.cp.arr[1]: 0
|
||||||
cg_array_iff.cp.arr[2]: 0
|
cg_array_iff.cp.arr[2]: 0
|
||||||
cg_bitw.cp.seven: 1
|
cg_bitw.cp.seven: 1
|
||||||
|
cg_cross_coverpoint_iff.cp_a.one: 2
|
||||||
|
cg_cross_coverpoint_iff.cp_b.one: 2
|
||||||
|
cg_cross_coverpoint_iff.cross_ab.one_x_one [cross]: 1
|
||||||
|
cg_cross_iff.cp_a.one: 3
|
||||||
|
cg_cross_iff.cp_b.one: 3
|
||||||
|
cg_cross_iff.cross_ab.one_x_one [cross]: 1
|
||||||
|
cg_cross_iff_unnamed.__cross7.one_x_one [cross]: 1
|
||||||
|
cg_cross_iff_unnamed.cp_a.one: 2
|
||||||
|
cg_cross_iff_unnamed.cp_b.one: 2
|
||||||
cg_default_iff.cp.def [default]: 1
|
cg_default_iff.cp.def [default]: 1
|
||||||
cg_default_iff.cp.known: 1
|
cg_default_iff.cp.known: 1
|
||||||
cg_iff.cp_value.disabled_hi: 0
|
cg_iff.cp_value.disabled_hi: 0
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
// Test iff (enable) guard: sampling is gated by the enable condition.
|
// Test iff (enable) guard: sampling is gated by the enable condition.
|
||||||
// Covers iff on explicit value bins, default bin, array bins,
|
// Covers iff on explicit value bins, default bin, array bins,
|
||||||
// simple 2-step transition, and 3-step transition.
|
// simple 2-step transition, and 3-step transition.
|
||||||
|
// Also covers coverpoint iff propagation into crosses and cross-level iff guards.
|
||||||
//
|
//
|
||||||
// Also covers compound iff expressions (&&, ||, unary !, bit/part-select,
|
// Also covers compound iff expressions (&&, ||, unary !, bit/part-select,
|
||||||
// relational compare, parenthesized bitwise, and a concatenation-valued
|
// relational compare, parenthesized bitwise, and a concatenation-valued
|
||||||
|
|
@ -21,6 +22,30 @@
|
||||||
`define checkr(gotv,expv) do if ((gotv) != (expv)) begin $write("%%Error: %s:%0d: got=%f exp=%f\n", `__FILE__,`__LINE__, (gotv), (expv)); `stop; end while(0);
|
`define checkr(gotv,expv) do if ((gotv) != (expv)) begin $write("%%Error: %s:%0d: got=%f exp=%f\n", `__FILE__,`__LINE__, (gotv), (expv)); `stop; end while(0);
|
||||||
// verilog_format: on
|
// verilog_format: on
|
||||||
|
|
||||||
|
class CrossIffEmbedded;
|
||||||
|
bit a;
|
||||||
|
bit b;
|
||||||
|
bit enabled;
|
||||||
|
|
||||||
|
// cross-level iff using an enclosing class member
|
||||||
|
covergroup cg;
|
||||||
|
cp_a: coverpoint a {bins one = {1};}
|
||||||
|
cp_b: coverpoint b {bins one = {1};}
|
||||||
|
cross_ab: cross cp_a, cp_b iff (this.enabled);
|
||||||
|
endgroup
|
||||||
|
|
||||||
|
function new();
|
||||||
|
cg = new;
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function void observe(bit next_a, bit next_b, bit next_enabled);
|
||||||
|
a = next_a;
|
||||||
|
b = next_b;
|
||||||
|
enabled = next_enabled;
|
||||||
|
cg.sample();
|
||||||
|
endfunction
|
||||||
|
endclass
|
||||||
|
|
||||||
module t;
|
module t;
|
||||||
logic enable;
|
logic enable;
|
||||||
int value;
|
int value;
|
||||||
|
|
@ -96,6 +121,29 @@ module t;
|
||||||
cp: coverpoint count iff ((m_a & m_b) == 2'b10) {bins seven = {7};}
|
cp: coverpoint count iff ((m_a & m_b) == 2'b10) {bins seven = {7};}
|
||||||
endgroup
|
endgroup
|
||||||
|
|
||||||
|
// coverpoint-level iff only; the cross has no guard
|
||||||
|
covergroup cg_cross_coverpoint_iff with function sample(
|
||||||
|
bit a, bit b, bit enable_a, bit enable_b);
|
||||||
|
cp_a: coverpoint a iff (enable_a) {bins one = {1};}
|
||||||
|
cp_b: coverpoint b iff (enable_b) {bins one = {1};}
|
||||||
|
cross_ab: cross cp_a, cp_b;
|
||||||
|
endgroup
|
||||||
|
|
||||||
|
// coverpoint-level and cross-level iff together
|
||||||
|
covergroup cg_cross_iff with function sample(
|
||||||
|
bit a, bit b, bit enable_a, bit enable_b, bit enable_cross);
|
||||||
|
cp_a: coverpoint a iff (enable_a) {bins one = {1};}
|
||||||
|
cp_b: coverpoint b iff (enable_b) {bins one = {1};}
|
||||||
|
cross_ab: cross cp_a, cp_b iff (enable_cross && (a == b));
|
||||||
|
endgroup
|
||||||
|
|
||||||
|
// cross-level iff only; also exercise an unnamed cross
|
||||||
|
covergroup cg_cross_iff_unnamed with function sample(bit a, bit b, bit disable_cross);
|
||||||
|
cp_a: coverpoint a {bins one = {1};}
|
||||||
|
cp_b: coverpoint b {bins one = {1};}
|
||||||
|
cross cp_a, cp_b iff (!disable_cross) {}
|
||||||
|
endgroup
|
||||||
|
|
||||||
cg_iff cg1 = new;
|
cg_iff cg1 = new;
|
||||||
cg_default_iff cg2 = new;
|
cg_default_iff cg2 = new;
|
||||||
cg_array_iff cg3 = new;
|
cg_array_iff cg3 = new;
|
||||||
|
|
@ -106,8 +154,24 @@ module t;
|
||||||
cg_part cpp = new;
|
cg_part cpp = new;
|
||||||
cg_rel cr = new;
|
cg_rel cr = new;
|
||||||
cg_bitw cb = new;
|
cg_bitw cb = new;
|
||||||
|
cg_cross_coverpoint_iff cxc = new;
|
||||||
|
cg_cross_iff cx = new;
|
||||||
|
cg_cross_iff_unnamed cxu = new;
|
||||||
|
CrossIffEmbedded cxe = new;
|
||||||
|
|
||||||
initial begin
|
initial begin
|
||||||
|
cxc.sample(1, 1, 0, 1);
|
||||||
|
cxc.sample(1, 1, 1, 0);
|
||||||
|
cxc.sample(1, 1, 1, 1);
|
||||||
|
cx.sample(1, 1, 0, 1, 1);
|
||||||
|
cx.sample(1, 1, 1, 0, 1);
|
||||||
|
cx.sample(1, 1, 1, 1, 0);
|
||||||
|
cx.sample(1, 1, 1, 1, 1);
|
||||||
|
cxu.sample(1, 1, 1);
|
||||||
|
cxu.sample(1, 1, 0);
|
||||||
|
cxe.observe(1, 1, 0);
|
||||||
|
cxe.observe(1, 1, 1);
|
||||||
|
|
||||||
// Sample disabled_lo and disabled_hi with enable=0 -- must not be recorded
|
// Sample disabled_lo and disabled_hi with enable=0 -- must not be recorded
|
||||||
enable = 0;
|
enable = 0;
|
||||||
value = 1;
|
value = 1;
|
||||||
|
|
|
||||||
|
|
@ -3,242 +3,233 @@
|
||||||
| ^~
|
| ^~
|
||||||
... For warning description see https://verilator.org/warn/COVERIGN?v=latest
|
... For warning description see https://verilator.org/warn/COVERIGN?v=latest
|
||||||
... Use "/* verilator lint_off COVERIGN */" and lint_on around source to disable this message.
|
... Use "/* verilator lint_off COVERIGN */" and lint_on around source to disable this message.
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:98:21: Unsupported: 'iff' in coverage cross
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:102:21: Unsupported: 'function' in coverage cross body
|
||||||
98 | cross a, b iff (!rst);
|
102 | function void crossfunc; endfunction
|
||||||
| ^
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:101:21: Unsupported: 'iff' in coverage cross
|
|
||||||
101 | cross a, b iff (!rst) {}
|
|
||||||
| ^
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:108:21: Unsupported: 'function' in coverage cross body
|
|
||||||
108 | function void crossfunc; endfunction
|
|
||||||
| ^~~~~~~~~
|
| ^~~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:109:18: Unsupported: function call in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:103:18: Unsupported: function call in coverage select expression
|
||||||
109 | bins one = crossfunc();
|
103 | bins one = crossfunc();
|
||||||
| ^~~~~~~~~
|
| ^~~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:109:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:103:7: Unsupported: explicit coverage cross bins
|
||||||
109 | bins one = crossfunc();
|
103 | bins one = crossfunc();
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:113:31: Unsupported: 'iff' in coverage cross
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:113:14: Unsupported: 'bins' explicit array size (treated as '[]')
|
||||||
113 | my_cg_id: cross a, b iff (!rst);
|
113 | { bins ba[2] = {a}; }
|
||||||
| ^
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:123:14: Unsupported: 'bins' explicit array size (treated as '[]')
|
|
||||||
123 | { bins ba[2] = {a}; }
|
|
||||||
| ^
|
| ^
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:127:21: Unsupported: 'with' in cover bin (bin created without filter)
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:117:21: Unsupported: 'with' in cover bin (bin created without filter)
|
||||||
127 | { bins ba = {a} with ( b ); }
|
117 | { bins ba = {a} with ( b ); }
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:130:32: Unsupported: 'with' in wildcard cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:120:32: Unsupported: 'with' in wildcard cover bin
|
||||||
130 | { wildcard bins bwaw = {a} with ( b ); }
|
120 | { wildcard bins bwaw = {a} with ( b ); }
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:133:27: Unsupported: 'sequence' in default cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:123:27: Unsupported: 'sequence' in default cover bin
|
||||||
133 | { bins defs = default sequence; }
|
123 | { bins defs = default sequence; }
|
||||||
| ^~~~~~~~
|
| ^~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:136:7: Unsupported: 'wildcard' transition list in cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:126:7: Unsupported: 'wildcard' transition list in cover bin
|
||||||
136 | { wildcard bins wbts = ( 1, 2 ); }
|
126 | { wildcard bins wbts = ( 1, 2 ); }
|
||||||
| ^~~~~~~~
|
| ^~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:137:31: Unsupported: covergroup value range '[...]'
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:127:31: Unsupported: covergroup value range '[...]'
|
||||||
137 | { bins bts2 = ( 2, 3 ), ( [5:6] ), ( [5 +/- 2] ), ( [ 5 +%- 20.0] ) ; }
|
127 | { bins bts2 = ( 2, 3 ), ( [5:6] ), ( [5 +/- 2] ), ( [ 5 +%- 20.0] ) ; }
|
||||||
| ^
|
| ^
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:137:42: Unsupported: covergroup value range '[...]'
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:127:42: Unsupported: covergroup value range '[...]'
|
||||||
137 | { bins bts2 = ( 2, 3 ), ( [5:6] ), ( [5 +/- 2] ), ( [ 5 +%- 20.0] ) ; }
|
127 | { bins bts2 = ( 2, 3 ), ( [5:6] ), ( [5 +/- 2] ), ( [ 5 +%- 20.0] ) ; }
|
||||||
| ^
|
| ^
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:137:57: Unsupported: covergroup value range '[...]'
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:127:57: Unsupported: covergroup value range '[...]'
|
||||||
137 | { bins bts2 = ( 2, 3 ), ( [5:6] ), ( [5 +/- 2] ), ( [ 5 +%- 20.0] ) ; }
|
127 | { bins bts2 = ( 2, 3 ), ( [5:6] ), ( [5 +/- 2] ), ( [ 5 +%- 20.0] ) ; }
|
||||||
| ^
|
| ^
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:140:23: Unsupported: '[*]' in cover transition
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:130:23: Unsupported: '[*]' in cover transition
|
||||||
140 | { bins bts2 = ( 3 [*5] ) ; }
|
130 | { bins bts2 = ( 3 [*5] ) ; }
|
||||||
| ^~
|
| ^~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:141:23: Unsupported: '[*]' in cover transition
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:131:23: Unsupported: '[*]' in cover transition
|
||||||
141 | { bins bts2 = ( 3 [*5:6] ) ; }
|
131 | { bins bts2 = ( 3 [*5:6] ) ; }
|
||||||
| ^~
|
| ^~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:142:23: Unsupported: '[->' in cover transition
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:132:23: Unsupported: '[->' in cover transition
|
||||||
142 | { bins bts2 = ( 3 [->5] ) ; }
|
132 | { bins bts2 = ( 3 [->5] ) ; }
|
||||||
| ^~~
|
| ^~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:143:23: Unsupported: '[->' in cover transition
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:133:23: Unsupported: '[->' in cover transition
|
||||||
143 | { bins bts2 = ( 3 [->5:6] ) ; }
|
133 | { bins bts2 = ( 3 [->5:6] ) ; }
|
||||||
| ^~~
|
| ^~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:144:23: Unsupported: '[=]' in cover transition
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:134:23: Unsupported: '[=]' in cover transition
|
||||||
144 | { bins bts2 = ( 3 [=5] ) ; }
|
134 | { bins bts2 = ( 3 [=5] ) ; }
|
||||||
| ^~
|
| ^~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:145:23: Unsupported: '[=]' in cover transition
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:135:23: Unsupported: '[=]' in cover transition
|
||||||
145 | { bins bts2 = ( 3 [=5:6] ) ; }
|
135 | { bins bts2 = ( 3 [=5:6] ) ; }
|
||||||
| ^~
|
| ^~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:151:12: Unsupported: 'bins' array (non-auto)
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:141:12: Unsupported: 'bins' array (non-auto)
|
||||||
151 | { bins nonAuto[4]; }
|
141 | { bins nonAuto[4]; }
|
||||||
| ^~~~~~~
|
| ^~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:153:35: Unsupported: 'with' in cover bin (bin created without filter)
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:143:35: Unsupported: 'with' in cover bin (bin created without filter)
|
||||||
153 | { ignore_bins ib_with = {1,2} with ( b ); }
|
143 | { ignore_bins ib_with = {1,2} with ( b ); }
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:154:37: Unsupported: 'with' in cover bin (bin created without filter)
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:144:37: Unsupported: 'with' in cover bin (bin created without filter)
|
||||||
154 | { illegal_bins lib_with = {1,2} with ( b ); }
|
144 | { illegal_bins lib_with = {1,2} with ( b ); }
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:156:29: Unsupported: 'with' in cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:146:29: Unsupported: 'with' in cover bin
|
||||||
156 | { ignore_bins ib_cp = a with ( b ); }
|
146 | { ignore_bins ib_cp = a with ( b ); }
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:157:31: Unsupported: 'with' in cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:147:31: Unsupported: 'with' in cover bin
|
||||||
157 | { illegal_bins lib_cp = a with ( b ); }
|
147 | { illegal_bins lib_cp = a with ( b ); }
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:159:45: Unsupported: 'with' in wildcard cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:149:45: Unsupported: 'with' in wildcard cover bin
|
||||||
159 | { wildcard ignore_bins wib_with = {1,2} with ( b ); }
|
149 | { wildcard ignore_bins wib_with = {1,2} with ( b ); }
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:160:47: Unsupported: 'with' in wildcard cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:150:47: Unsupported: 'with' in wildcard cover bin
|
||||||
160 | { wildcard illegal_bins wlib_with = {1,2} with ( b ); }
|
150 | { wildcard illegal_bins wlib_with = {1,2} with ( b ); }
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:162:7: Unsupported: 'wildcard' transition list in cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:152:7: Unsupported: 'wildcard' transition list in cover bin
|
||||||
162 | { wildcard ignore_bins wib_trans = ( 1 => 2 ); }
|
152 | { wildcard ignore_bins wib_trans = ( 1 => 2 ); }
|
||||||
| ^~~~~~~~
|
| ^~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:163:7: Unsupported: 'wildcard' transition list in cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:153:7: Unsupported: 'wildcard' transition list in cover bin
|
||||||
163 | { wildcard illegal_bins wlib_trans = ( 1 => 2 ); }
|
153 | { wildcard illegal_bins wlib_trans = ( 1 => 2 ); }
|
||||||
| ^~~~~~~~
|
| ^~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:165:40: Unsupported: 'sequence' in default cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:155:40: Unsupported: 'sequence' in default cover bin
|
||||||
165 | { ignore_bins ib_def_seq = default sequence; }
|
155 | { ignore_bins ib_def_seq = default sequence; }
|
||||||
| ^~~~~~~~
|
| ^~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:166:42: Unsupported: 'sequence' in default cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:156:42: Unsupported: 'sequence' in default cover bin
|
||||||
166 | { illegal_bins lib_def_seq = default sequence; }
|
156 | { illegal_bins lib_def_seq = default sequence; }
|
||||||
| ^~~~~~~~
|
| ^~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:171:24: Unsupported: 'with' in cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:161:24: Unsupported: 'with' in cover bin
|
||||||
171 | bins div_by_2 = a with (item % 2 == 0);
|
161 | bins div_by_2 = a with (item % 2 == 0);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:172:32: Unsupported: 'with' in cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:162:32: Unsupported: 'with' in cover bin
|
||||||
172 | bins div_by_2_paren[] = a with (item % 2 == 0);
|
162 | bins div_by_2_paren[] = a with (item % 2 == 0);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:178:20: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:168:20: Unsupported: 'binsof' in coverage select expression
|
||||||
178 | bins bin_a = binsof(a);
|
168 | bins bin_a = binsof(a);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:178:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:168:7: Unsupported: explicit coverage cross bins
|
||||||
178 | bins bin_a = binsof(a);
|
168 | bins bin_a = binsof(a);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:179:21: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:169:21: Unsupported: 'binsof' in coverage select expression
|
||||||
179 | bins bin_ai = binsof(a) iff (!rst);
|
169 | bins bin_ai = binsof(a) iff (!rst);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:179:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:169:7: Unsupported: explicit coverage cross bins
|
||||||
179 | bins bin_ai = binsof(a) iff (!rst);
|
169 | bins bin_ai = binsof(a) iff (!rst);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:180:20: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:170:20: Unsupported: 'binsof' in coverage select expression
|
||||||
180 | bins bin_c = binsof(cp.x);
|
170 | bins bin_c = binsof(cp.x);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:170:7: Unsupported: explicit coverage cross bins
|
||||||
|
170 | bins bin_c = binsof(cp.x);
|
||||||
|
| ^~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:171:21: Unsupported: 'binsof' in coverage select expression
|
||||||
|
171 | bins bin_na = ! binsof(a);
|
||||||
|
| ^
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:171:7: Unsupported: explicit coverage cross bins
|
||||||
|
171 | bins bin_na = ! binsof(a);
|
||||||
|
| ^~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:173:30: Unsupported: 'intersect' in coverage select expression
|
||||||
|
173 | bins bin_d = binsof(a) intersect { b };
|
||||||
|
| ^~~~~~~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:173:7: Unsupported: explicit coverage cross bins
|
||||||
|
173 | bins bin_d = binsof(a) intersect { b };
|
||||||
|
| ^~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:174:31: Unsupported: 'intersect' in coverage select expression
|
||||||
|
174 | bins bin_nd = ! binsof(a) intersect { b };
|
||||||
|
| ^
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:174:7: Unsupported: explicit coverage cross bins
|
||||||
|
174 | bins bin_nd = ! binsof(a) intersect { b };
|
||||||
|
| ^~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:176:20: Unsupported: 'with' in coverage select expression
|
||||||
|
176 | bins bin_e = with (a);
|
||||||
|
| ^~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:176:7: Unsupported: explicit coverage cross bins
|
||||||
|
176 | bins bin_e = with (a);
|
||||||
|
| ^~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:177:24: Unsupported: 'with' in coverage select expression
|
||||||
|
177 | bins bin_not_e = ! with (a);
|
||||||
|
| ^
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:177:7: Unsupported: explicit coverage cross bins
|
||||||
|
177 | bins bin_not_e = ! with (a);
|
||||||
|
| ^~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:179:23: Unsupported: 'binsof' in coverage select expression
|
||||||
|
179 | bins bin_par = (binsof(a));
|
||||||
|
| ^~~~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:179:7: Unsupported: explicit coverage cross bins
|
||||||
|
179 | bins bin_par = (binsof(a));
|
||||||
|
| ^~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:180:22: Unsupported: 'binsof' in coverage select expression
|
||||||
|
180 | bins bin_and = binsof(a) && binsof(b);
|
||||||
|
| ^~~~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:180:35: Unsupported: 'binsof' in coverage select expression
|
||||||
|
180 | bins bin_and = binsof(a) && binsof(b);
|
||||||
|
| ^~~~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:180:32: Unsupported: '&&' in coverage select expression
|
||||||
|
180 | bins bin_and = binsof(a) && binsof(b);
|
||||||
|
| ^~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:180:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:180:7: Unsupported: explicit coverage cross bins
|
||||||
180 | bins bin_c = binsof(cp.x);
|
180 | bins bin_and = binsof(a) && binsof(b);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:181:21: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:181:21: Unsupported: 'binsof' in coverage select expression
|
||||||
181 | bins bin_na = ! binsof(a);
|
181 | bins bin_or = binsof(a) || binsof(b);
|
||||||
| ^
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:181:7: Unsupported: explicit coverage cross bins
|
|
||||||
181 | bins bin_na = ! binsof(a);
|
|
||||||
| ^~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:183:30: Unsupported: 'intersect' in coverage select expression
|
|
||||||
183 | bins bin_d = binsof(a) intersect { b };
|
|
||||||
| ^~~~~~~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:183:7: Unsupported: explicit coverage cross bins
|
|
||||||
183 | bins bin_d = binsof(a) intersect { b };
|
|
||||||
| ^~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:184:31: Unsupported: 'intersect' in coverage select expression
|
|
||||||
184 | bins bin_nd = ! binsof(a) intersect { b };
|
|
||||||
| ^
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:184:7: Unsupported: explicit coverage cross bins
|
|
||||||
184 | bins bin_nd = ! binsof(a) intersect { b };
|
|
||||||
| ^~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:186:20: Unsupported: 'with' in coverage select expression
|
|
||||||
186 | bins bin_e = with (a);
|
|
||||||
| ^~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:186:7: Unsupported: explicit coverage cross bins
|
|
||||||
186 | bins bin_e = with (a);
|
|
||||||
| ^~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:187:24: Unsupported: 'with' in coverage select expression
|
|
||||||
187 | bins bin_not_e = ! with (a);
|
|
||||||
| ^
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:187:7: Unsupported: explicit coverage cross bins
|
|
||||||
187 | bins bin_not_e = ! with (a);
|
|
||||||
| ^~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:189:23: Unsupported: 'binsof' in coverage select expression
|
|
||||||
189 | bins bin_par = (binsof(a));
|
|
||||||
| ^~~~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:189:7: Unsupported: explicit coverage cross bins
|
|
||||||
189 | bins bin_par = (binsof(a));
|
|
||||||
| ^~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:190:22: Unsupported: 'binsof' in coverage select expression
|
|
||||||
190 | bins bin_and = binsof(a) && binsof(b);
|
|
||||||
| ^~~~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:190:35: Unsupported: 'binsof' in coverage select expression
|
|
||||||
190 | bins bin_and = binsof(a) && binsof(b);
|
|
||||||
| ^~~~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:190:32: Unsupported: '&&' in coverage select expression
|
|
||||||
190 | bins bin_and = binsof(a) && binsof(b);
|
|
||||||
| ^~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:190:7: Unsupported: explicit coverage cross bins
|
|
||||||
190 | bins bin_and = binsof(a) && binsof(b);
|
|
||||||
| ^~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:191:21: Unsupported: 'binsof' in coverage select expression
|
|
||||||
191 | bins bin_or = binsof(a) || binsof(b);
|
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:191:34: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:181:34: Unsupported: 'binsof' in coverage select expression
|
||||||
191 | bins bin_or = binsof(a) || binsof(b);
|
181 | bins bin_or = binsof(a) || binsof(b);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:191:31: Unsupported: '||' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:181:31: Unsupported: '||' in coverage select expression
|
||||||
191 | bins bin_or = binsof(a) || binsof(b);
|
181 | bins bin_or = binsof(a) || binsof(b);
|
||||||
| ^~
|
| ^~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:191:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:181:7: Unsupported: explicit coverage cross bins
|
||||||
191 | bins bin_or = binsof(a) || binsof(b);
|
181 | bins bin_or = binsof(a) || binsof(b);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:192:23: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:182:23: Unsupported: 'binsof' in coverage select expression
|
||||||
192 | bins bin_with = binsof(a) with (a);
|
182 | bins bin_with = binsof(a) with (a);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:192:33: Unsupported: 'with' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:182:33: Unsupported: 'with' in coverage select expression
|
||||||
192 | bins bin_with = binsof(a) with (a);
|
182 | bins bin_with = binsof(a) with (a);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:192:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:182:7: Unsupported: explicit coverage cross bins
|
||||||
192 | bins bin_with = binsof(a) with (a);
|
182 | bins bin_with = binsof(a) with (a);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:193:26: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:183:26: Unsupported: 'binsof' in coverage select expression
|
||||||
193 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
183 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:193:39: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:183:39: Unsupported: 'binsof' in coverage select expression
|
||||||
193 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
183 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:193:49: Unsupported: 'with' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:183:49: Unsupported: 'with' in coverage select expression
|
||||||
193 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
183 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:193:36: Unsupported: '||' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:183:36: Unsupported: '||' in coverage select expression
|
||||||
193 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
183 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
||||||
| ^~
|
| ^~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:193:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:183:7: Unsupported: explicit coverage cross bins
|
||||||
193 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
183 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:194:27: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:184:27: Unsupported: 'binsof' in coverage select expression
|
||||||
194 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
184 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:194:40: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:184:40: Unsupported: 'binsof' in coverage select expression
|
||||||
194 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
184 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:194:50: Unsupported: 'with' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:184:50: Unsupported: 'with' in coverage select expression
|
||||||
194 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
184 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:194:37: Unsupported: '&&' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:184:37: Unsupported: '&&' in coverage select expression
|
||||||
194 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
184 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
||||||
| ^~
|
| ^~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:194:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:184:7: Unsupported: explicit coverage cross bins
|
||||||
194 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
184 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:195:34: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:185:34: Unsupported: 'binsof' in coverage select expression
|
||||||
195 | bins bin_multiple_fields = binsof(p.inner_packet.field);
|
185 | bins bin_multiple_fields = binsof(p.inner_packet.field);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:195:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:185:7: Unsupported: explicit coverage cross bins
|
||||||
195 | bins bin_multiple_fields = binsof(p.inner_packet.field);
|
185 | bins bin_multiple_fields = binsof(p.inner_packet.field);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:197:30: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:187:30: Unsupported: 'binsof' in coverage select expression
|
||||||
197 | ignore_bins ib_cross = binsof(a);
|
187 | ignore_bins ib_cross = binsof(a);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:197:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:187:7: Unsupported: explicit coverage cross bins
|
||||||
197 | ignore_bins ib_cross = binsof(a);
|
187 | ignore_bins ib_cross = binsof(a);
|
||||||
| ^~~~~~~~~~~
|
| ^~~~~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:198:32: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:188:32: Unsupported: 'binsof' in coverage select expression
|
||||||
198 | illegal_bins lib_cross = binsof(a);
|
188 | illegal_bins lib_cross = binsof(a);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:198:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:188:7: Unsupported: explicit coverage cross bins
|
||||||
198 | illegal_bins lib_cross = binsof(a);
|
188 | illegal_bins lib_cross = binsof(a);
|
||||||
| ^~~~~~~~~~~~
|
| ^~~~~~~~~~~~
|
||||||
%Error-UNSUPPORTED: t/t_covergroup_unsup.v:223:5: Unsupported: covergroup inheritance (extends)
|
%Error-UNSUPPORTED: t/t_covergroup_unsup.v:213:5: Unsupported: covergroup inheritance (extends)
|
||||||
223 | covergroup extends cg_empty;
|
213 | covergroup extends cg_empty;
|
||||||
| ^~~~~~~~~~
|
| ^~~~~~~~~~
|
||||||
... For error description see https://verilator.org/warn/UNSUPPORTED?v=latest
|
... For error description see https://verilator.org/warn/UNSUPPORTED?v=latest
|
||||||
%Error: Exiting due to
|
%Error: Exiting due to
|
||||||
|
|
|
||||||
|
|
@ -94,12 +94,6 @@ module t (
|
||||||
signed id: coverpoint a iff (b);
|
signed id: coverpoint a iff (b);
|
||||||
endgroup
|
endgroup
|
||||||
|
|
||||||
covergroup cg_cross;
|
|
||||||
cross a, b iff (!rst);
|
|
||||||
endgroup
|
|
||||||
covergroup cg_cross2;
|
|
||||||
cross a, b iff (!rst) {}
|
|
||||||
endgroup
|
|
||||||
covergroup cg_cross3;
|
covergroup cg_cross3;
|
||||||
cross a, b { option.comment = "cross"; option.weight = 12; option.per_instance = 1; }
|
cross a, b { option.comment = "cross"; option.weight = 12; option.per_instance = 1; }
|
||||||
endgroup
|
endgroup
|
||||||
|
|
@ -109,10 +103,6 @@ module t (
|
||||||
bins one = crossfunc();
|
bins one = crossfunc();
|
||||||
}
|
}
|
||||||
endgroup
|
endgroup
|
||||||
covergroup cg_cross_id;
|
|
||||||
my_cg_id: cross a, b iff (!rst);
|
|
||||||
endgroup
|
|
||||||
|
|
||||||
covergroup cg_binsoroptions_bk1;
|
covergroup cg_binsoroptions_bk1;
|
||||||
{ bins ba = {a}; }
|
{ bins ba = {a}; }
|
||||||
{ bins bar = {a} iff (!rst); }
|
{ bins bar = {a} iff (!rst); }
|
||||||
|
|
|
||||||
|
|
@ -3,248 +3,239 @@
|
||||||
| ^~
|
| ^~
|
||||||
... For warning description see https://verilator.org/warn/COVERIGN?v=latest
|
... For warning description see https://verilator.org/warn/COVERIGN?v=latest
|
||||||
... Use "/* verilator lint_off COVERIGN */" and lint_on around source to disable this message.
|
... Use "/* verilator lint_off COVERIGN */" and lint_on around source to disable this message.
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:98:21: Unsupported: 'iff' in coverage cross
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:102:21: Unsupported: 'function' in coverage cross body
|
||||||
98 | cross a, b iff (!rst);
|
102 | function void crossfunc; endfunction
|
||||||
| ^
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:101:21: Unsupported: 'iff' in coverage cross
|
|
||||||
101 | cross a, b iff (!rst) {}
|
|
||||||
| ^
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:108:21: Unsupported: 'function' in coverage cross body
|
|
||||||
108 | function void crossfunc; endfunction
|
|
||||||
| ^~~~~~~~~
|
| ^~~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:109:18: Unsupported: function call in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:103:18: Unsupported: function call in coverage select expression
|
||||||
109 | bins one = crossfunc();
|
103 | bins one = crossfunc();
|
||||||
| ^~~~~~~~~
|
| ^~~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:109:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:103:7: Unsupported: explicit coverage cross bins
|
||||||
109 | bins one = crossfunc();
|
103 | bins one = crossfunc();
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:113:31: Unsupported: 'iff' in coverage cross
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:113:14: Unsupported: 'bins' explicit array size (treated as '[]')
|
||||||
113 | my_cg_id: cross a, b iff (!rst);
|
113 | { bins ba[2] = {a}; }
|
||||||
| ^
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:123:14: Unsupported: 'bins' explicit array size (treated as '[]')
|
|
||||||
123 | { bins ba[2] = {a}; }
|
|
||||||
| ^
|
| ^
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:127:21: Unsupported: 'with' in cover bin (bin created without filter)
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:117:21: Unsupported: 'with' in cover bin (bin created without filter)
|
||||||
127 | { bins ba = {a} with ( b ); }
|
117 | { bins ba = {a} with ( b ); }
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:130:32: Unsupported: 'with' in wildcard cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:120:32: Unsupported: 'with' in wildcard cover bin
|
||||||
130 | { wildcard bins bwaw = {a} with ( b ); }
|
120 | { wildcard bins bwaw = {a} with ( b ); }
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:133:27: Unsupported: 'sequence' in default cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:123:27: Unsupported: 'sequence' in default cover bin
|
||||||
133 | { bins defs = default sequence; }
|
123 | { bins defs = default sequence; }
|
||||||
| ^~~~~~~~
|
| ^~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:136:7: Unsupported: 'wildcard' transition list in cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:126:7: Unsupported: 'wildcard' transition list in cover bin
|
||||||
136 | { wildcard bins wbts = ( 1, 2 ); }
|
126 | { wildcard bins wbts = ( 1, 2 ); }
|
||||||
| ^~~~~~~~
|
| ^~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:137:31: Unsupported: covergroup value range '[...]'
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:127:31: Unsupported: covergroup value range '[...]'
|
||||||
137 | { bins bts2 = ( 2, 3 ), ( [5:6] ), ( [5 +/- 2] ), ( [ 5 +%- 20.0] ) ; }
|
127 | { bins bts2 = ( 2, 3 ), ( [5:6] ), ( [5 +/- 2] ), ( [ 5 +%- 20.0] ) ; }
|
||||||
| ^
|
| ^
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:137:42: Unsupported: covergroup value range '[...]'
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:127:42: Unsupported: covergroup value range '[...]'
|
||||||
137 | { bins bts2 = ( 2, 3 ), ( [5:6] ), ( [5 +/- 2] ), ( [ 5 +%- 20.0] ) ; }
|
127 | { bins bts2 = ( 2, 3 ), ( [5:6] ), ( [5 +/- 2] ), ( [ 5 +%- 20.0] ) ; }
|
||||||
| ^
|
| ^
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:137:57: Unsupported: covergroup value range '[...]'
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:127:57: Unsupported: covergroup value range '[...]'
|
||||||
137 | { bins bts2 = ( 2, 3 ), ( [5:6] ), ( [5 +/- 2] ), ( [ 5 +%- 20.0] ) ; }
|
127 | { bins bts2 = ( 2, 3 ), ( [5:6] ), ( [5 +/- 2] ), ( [ 5 +%- 20.0] ) ; }
|
||||||
| ^
|
| ^
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:140:23: Unsupported: '[*]' in cover transition
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:130:23: Unsupported: '[*]' in cover transition
|
||||||
140 | { bins bts2 = ( 3 [*5] ) ; }
|
130 | { bins bts2 = ( 3 [*5] ) ; }
|
||||||
| ^~
|
| ^~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:141:23: Unsupported: '[*]' in cover transition
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:131:23: Unsupported: '[*]' in cover transition
|
||||||
141 | { bins bts2 = ( 3 [*5:6] ) ; }
|
131 | { bins bts2 = ( 3 [*5:6] ) ; }
|
||||||
| ^~
|
| ^~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:142:23: Unsupported: '[->' in cover transition
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:132:23: Unsupported: '[->' in cover transition
|
||||||
142 | { bins bts2 = ( 3 [->5] ) ; }
|
132 | { bins bts2 = ( 3 [->5] ) ; }
|
||||||
| ^~~
|
| ^~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:143:23: Unsupported: '[->' in cover transition
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:133:23: Unsupported: '[->' in cover transition
|
||||||
143 | { bins bts2 = ( 3 [->5:6] ) ; }
|
133 | { bins bts2 = ( 3 [->5:6] ) ; }
|
||||||
| ^~~
|
| ^~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:144:23: Unsupported: '[=]' in cover transition
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:134:23: Unsupported: '[=]' in cover transition
|
||||||
144 | { bins bts2 = ( 3 [=5] ) ; }
|
134 | { bins bts2 = ( 3 [=5] ) ; }
|
||||||
| ^~
|
| ^~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:145:23: Unsupported: '[=]' in cover transition
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:135:23: Unsupported: '[=]' in cover transition
|
||||||
145 | { bins bts2 = ( 3 [=5:6] ) ; }
|
135 | { bins bts2 = ( 3 [=5:6] ) ; }
|
||||||
| ^~
|
| ^~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:151:12: Unsupported: 'bins' array (non-auto)
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:141:12: Unsupported: 'bins' array (non-auto)
|
||||||
151 | { bins nonAuto[4]; }
|
141 | { bins nonAuto[4]; }
|
||||||
| ^~~~~~~
|
| ^~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:153:35: Unsupported: 'with' in cover bin (bin created without filter)
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:143:35: Unsupported: 'with' in cover bin (bin created without filter)
|
||||||
153 | { ignore_bins ib_with = {1,2} with ( b ); }
|
143 | { ignore_bins ib_with = {1,2} with ( b ); }
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:154:37: Unsupported: 'with' in cover bin (bin created without filter)
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:144:37: Unsupported: 'with' in cover bin (bin created without filter)
|
||||||
154 | { illegal_bins lib_with = {1,2} with ( b ); }
|
144 | { illegal_bins lib_with = {1,2} with ( b ); }
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:156:29: Unsupported: 'with' in cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:146:29: Unsupported: 'with' in cover bin
|
||||||
156 | { ignore_bins ib_cp = a with ( b ); }
|
146 | { ignore_bins ib_cp = a with ( b ); }
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:157:31: Unsupported: 'with' in cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:147:31: Unsupported: 'with' in cover bin
|
||||||
157 | { illegal_bins lib_cp = a with ( b ); }
|
147 | { illegal_bins lib_cp = a with ( b ); }
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:159:45: Unsupported: 'with' in wildcard cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:149:45: Unsupported: 'with' in wildcard cover bin
|
||||||
159 | { wildcard ignore_bins wib_with = {1,2} with ( b ); }
|
149 | { wildcard ignore_bins wib_with = {1,2} with ( b ); }
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:160:47: Unsupported: 'with' in wildcard cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:150:47: Unsupported: 'with' in wildcard cover bin
|
||||||
160 | { wildcard illegal_bins wlib_with = {1,2} with ( b ); }
|
150 | { wildcard illegal_bins wlib_with = {1,2} with ( b ); }
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:162:7: Unsupported: 'wildcard' transition list in cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:152:7: Unsupported: 'wildcard' transition list in cover bin
|
||||||
162 | { wildcard ignore_bins wib_trans = ( 1 => 2 ); }
|
152 | { wildcard ignore_bins wib_trans = ( 1 => 2 ); }
|
||||||
| ^~~~~~~~
|
| ^~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:163:7: Unsupported: 'wildcard' transition list in cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:153:7: Unsupported: 'wildcard' transition list in cover bin
|
||||||
163 | { wildcard illegal_bins wlib_trans = ( 1 => 2 ); }
|
153 | { wildcard illegal_bins wlib_trans = ( 1 => 2 ); }
|
||||||
| ^~~~~~~~
|
| ^~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:165:40: Unsupported: 'sequence' in default cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:155:40: Unsupported: 'sequence' in default cover bin
|
||||||
165 | { ignore_bins ib_def_seq = default sequence; }
|
155 | { ignore_bins ib_def_seq = default sequence; }
|
||||||
| ^~~~~~~~
|
| ^~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:166:42: Unsupported: 'sequence' in default cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:156:42: Unsupported: 'sequence' in default cover bin
|
||||||
166 | { illegal_bins lib_def_seq = default sequence; }
|
156 | { illegal_bins lib_def_seq = default sequence; }
|
||||||
| ^~~~~~~~
|
| ^~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:171:24: Unsupported: 'with' in cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:161:24: Unsupported: 'with' in cover bin
|
||||||
171 | bins div_by_2 = a with (item % 2 == 0);
|
161 | bins div_by_2 = a with (item % 2 == 0);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:172:32: Unsupported: 'with' in cover bin
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:162:32: Unsupported: 'with' in cover bin
|
||||||
172 | bins div_by_2_paren[] = a with (item % 2 == 0);
|
162 | bins div_by_2_paren[] = a with (item % 2 == 0);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:178:20: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:168:20: Unsupported: 'binsof' in coverage select expression
|
||||||
178 | bins bin_a = binsof(a);
|
168 | bins bin_a = binsof(a);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:178:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:168:7: Unsupported: explicit coverage cross bins
|
||||||
178 | bins bin_a = binsof(a);
|
168 | bins bin_a = binsof(a);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:179:21: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:169:21: Unsupported: 'binsof' in coverage select expression
|
||||||
179 | bins bin_ai = binsof(a) iff (!rst);
|
169 | bins bin_ai = binsof(a) iff (!rst);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:179:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:169:7: Unsupported: explicit coverage cross bins
|
||||||
179 | bins bin_ai = binsof(a) iff (!rst);
|
169 | bins bin_ai = binsof(a) iff (!rst);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:180:20: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:170:20: Unsupported: 'binsof' in coverage select expression
|
||||||
180 | bins bin_c = binsof(cp.x);
|
170 | bins bin_c = binsof(cp.x);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:170:7: Unsupported: explicit coverage cross bins
|
||||||
|
170 | bins bin_c = binsof(cp.x);
|
||||||
|
| ^~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:171:21: Unsupported: 'binsof' in coverage select expression
|
||||||
|
171 | bins bin_na = ! binsof(a);
|
||||||
|
| ^
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:171:7: Unsupported: explicit coverage cross bins
|
||||||
|
171 | bins bin_na = ! binsof(a);
|
||||||
|
| ^~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:173:30: Unsupported: 'intersect' in coverage select expression
|
||||||
|
173 | bins bin_d = binsof(a) intersect { b };
|
||||||
|
| ^~~~~~~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:173:7: Unsupported: explicit coverage cross bins
|
||||||
|
173 | bins bin_d = binsof(a) intersect { b };
|
||||||
|
| ^~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:174:31: Unsupported: 'intersect' in coverage select expression
|
||||||
|
174 | bins bin_nd = ! binsof(a) intersect { b };
|
||||||
|
| ^
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:174:7: Unsupported: explicit coverage cross bins
|
||||||
|
174 | bins bin_nd = ! binsof(a) intersect { b };
|
||||||
|
| ^~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:176:20: Unsupported: 'with' in coverage select expression
|
||||||
|
176 | bins bin_e = with (a);
|
||||||
|
| ^~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:176:7: Unsupported: explicit coverage cross bins
|
||||||
|
176 | bins bin_e = with (a);
|
||||||
|
| ^~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:177:24: Unsupported: 'with' in coverage select expression
|
||||||
|
177 | bins bin_not_e = ! with (a);
|
||||||
|
| ^
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:177:7: Unsupported: explicit coverage cross bins
|
||||||
|
177 | bins bin_not_e = ! with (a);
|
||||||
|
| ^~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:179:23: Unsupported: 'binsof' in coverage select expression
|
||||||
|
179 | bins bin_par = (binsof(a));
|
||||||
|
| ^~~~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:179:7: Unsupported: explicit coverage cross bins
|
||||||
|
179 | bins bin_par = (binsof(a));
|
||||||
|
| ^~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:180:22: Unsupported: 'binsof' in coverage select expression
|
||||||
|
180 | bins bin_and = binsof(a) && binsof(b);
|
||||||
|
| ^~~~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:180:35: Unsupported: 'binsof' in coverage select expression
|
||||||
|
180 | bins bin_and = binsof(a) && binsof(b);
|
||||||
|
| ^~~~~~
|
||||||
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:180:32: Unsupported: '&&' in coverage select expression
|
||||||
|
180 | bins bin_and = binsof(a) && binsof(b);
|
||||||
|
| ^~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:180:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:180:7: Unsupported: explicit coverage cross bins
|
||||||
180 | bins bin_c = binsof(cp.x);
|
180 | bins bin_and = binsof(a) && binsof(b);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:181:21: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:181:21: Unsupported: 'binsof' in coverage select expression
|
||||||
181 | bins bin_na = ! binsof(a);
|
181 | bins bin_or = binsof(a) || binsof(b);
|
||||||
| ^
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:181:7: Unsupported: explicit coverage cross bins
|
|
||||||
181 | bins bin_na = ! binsof(a);
|
|
||||||
| ^~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:183:30: Unsupported: 'intersect' in coverage select expression
|
|
||||||
183 | bins bin_d = binsof(a) intersect { b };
|
|
||||||
| ^~~~~~~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:183:7: Unsupported: explicit coverage cross bins
|
|
||||||
183 | bins bin_d = binsof(a) intersect { b };
|
|
||||||
| ^~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:184:31: Unsupported: 'intersect' in coverage select expression
|
|
||||||
184 | bins bin_nd = ! binsof(a) intersect { b };
|
|
||||||
| ^
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:184:7: Unsupported: explicit coverage cross bins
|
|
||||||
184 | bins bin_nd = ! binsof(a) intersect { b };
|
|
||||||
| ^~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:186:20: Unsupported: 'with' in coverage select expression
|
|
||||||
186 | bins bin_e = with (a);
|
|
||||||
| ^~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:186:7: Unsupported: explicit coverage cross bins
|
|
||||||
186 | bins bin_e = with (a);
|
|
||||||
| ^~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:187:24: Unsupported: 'with' in coverage select expression
|
|
||||||
187 | bins bin_not_e = ! with (a);
|
|
||||||
| ^
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:187:7: Unsupported: explicit coverage cross bins
|
|
||||||
187 | bins bin_not_e = ! with (a);
|
|
||||||
| ^~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:189:23: Unsupported: 'binsof' in coverage select expression
|
|
||||||
189 | bins bin_par = (binsof(a));
|
|
||||||
| ^~~~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:189:7: Unsupported: explicit coverage cross bins
|
|
||||||
189 | bins bin_par = (binsof(a));
|
|
||||||
| ^~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:190:22: Unsupported: 'binsof' in coverage select expression
|
|
||||||
190 | bins bin_and = binsof(a) && binsof(b);
|
|
||||||
| ^~~~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:190:35: Unsupported: 'binsof' in coverage select expression
|
|
||||||
190 | bins bin_and = binsof(a) && binsof(b);
|
|
||||||
| ^~~~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:190:32: Unsupported: '&&' in coverage select expression
|
|
||||||
190 | bins bin_and = binsof(a) && binsof(b);
|
|
||||||
| ^~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:190:7: Unsupported: explicit coverage cross bins
|
|
||||||
190 | bins bin_and = binsof(a) && binsof(b);
|
|
||||||
| ^~~~
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:191:21: Unsupported: 'binsof' in coverage select expression
|
|
||||||
191 | bins bin_or = binsof(a) || binsof(b);
|
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:191:34: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:181:34: Unsupported: 'binsof' in coverage select expression
|
||||||
191 | bins bin_or = binsof(a) || binsof(b);
|
181 | bins bin_or = binsof(a) || binsof(b);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:191:31: Unsupported: '||' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:181:31: Unsupported: '||' in coverage select expression
|
||||||
191 | bins bin_or = binsof(a) || binsof(b);
|
181 | bins bin_or = binsof(a) || binsof(b);
|
||||||
| ^~
|
| ^~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:191:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:181:7: Unsupported: explicit coverage cross bins
|
||||||
191 | bins bin_or = binsof(a) || binsof(b);
|
181 | bins bin_or = binsof(a) || binsof(b);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:192:23: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:182:23: Unsupported: 'binsof' in coverage select expression
|
||||||
192 | bins bin_with = binsof(a) with (a);
|
182 | bins bin_with = binsof(a) with (a);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:192:33: Unsupported: 'with' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:182:33: Unsupported: 'with' in coverage select expression
|
||||||
192 | bins bin_with = binsof(a) with (a);
|
182 | bins bin_with = binsof(a) with (a);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:192:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:182:7: Unsupported: explicit coverage cross bins
|
||||||
192 | bins bin_with = binsof(a) with (a);
|
182 | bins bin_with = binsof(a) with (a);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:193:26: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:183:26: Unsupported: 'binsof' in coverage select expression
|
||||||
193 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
183 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:193:39: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:183:39: Unsupported: 'binsof' in coverage select expression
|
||||||
193 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
183 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:193:49: Unsupported: 'with' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:183:49: Unsupported: 'with' in coverage select expression
|
||||||
193 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
183 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:193:36: Unsupported: '||' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:183:36: Unsupported: '||' in coverage select expression
|
||||||
193 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
183 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
||||||
| ^~
|
| ^~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:193:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:183:7: Unsupported: explicit coverage cross bins
|
||||||
193 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
183 | bins bin_or_with = binsof(a) || binsof(a) with (a);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:194:27: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:184:27: Unsupported: 'binsof' in coverage select expression
|
||||||
194 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
184 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:194:40: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:184:40: Unsupported: 'binsof' in coverage select expression
|
||||||
194 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
184 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:194:50: Unsupported: 'with' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:184:50: Unsupported: 'with' in coverage select expression
|
||||||
194 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
184 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:194:37: Unsupported: '&&' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:184:37: Unsupported: '&&' in coverage select expression
|
||||||
194 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
184 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
||||||
| ^~
|
| ^~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:194:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:184:7: Unsupported: explicit coverage cross bins
|
||||||
194 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
184 | bins bin_and_with = binsof(a) && binsof(a) with (a);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:195:34: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:185:34: Unsupported: 'binsof' in coverage select expression
|
||||||
195 | bins bin_multiple_fields = binsof(p.inner_packet.field);
|
185 | bins bin_multiple_fields = binsof(p.inner_packet.field);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:195:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:185:7: Unsupported: explicit coverage cross bins
|
||||||
195 | bins bin_multiple_fields = binsof(p.inner_packet.field);
|
185 | bins bin_multiple_fields = binsof(p.inner_packet.field);
|
||||||
| ^~~~
|
| ^~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:197:30: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:187:30: Unsupported: 'binsof' in coverage select expression
|
||||||
197 | ignore_bins ib_cross = binsof(a);
|
187 | ignore_bins ib_cross = binsof(a);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:197:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:187:7: Unsupported: explicit coverage cross bins
|
||||||
197 | ignore_bins ib_cross = binsof(a);
|
187 | ignore_bins ib_cross = binsof(a);
|
||||||
| ^~~~~~~~~~~
|
| ^~~~~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:198:32: Unsupported: 'binsof' in coverage select expression
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:188:32: Unsupported: 'binsof' in coverage select expression
|
||||||
198 | illegal_bins lib_cross = binsof(a);
|
188 | illegal_bins lib_cross = binsof(a);
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:198:7: Unsupported: explicit coverage cross bins
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:188:7: Unsupported: explicit coverage cross bins
|
||||||
198 | illegal_bins lib_cross = binsof(a);
|
188 | illegal_bins lib_cross = binsof(a);
|
||||||
| ^~~~~~~~~~~~
|
| ^~~~~~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:104:18: Ignoring unsupported coverage cross option: 'comment'
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:98:18: Ignoring unsupported coverage cross option: 'comment'
|
||||||
104 | cross a, b { option.comment = "cross"; option.weight = 12; option.per_instance = 1; }
|
98 | cross a, b { option.comment = "cross"; option.weight = 12; option.per_instance = 1; }
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:104:44: Ignoring unsupported coverage cross option: 'weight'
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:98:44: Ignoring unsupported coverage cross option: 'weight'
|
||||||
104 | cross a, b { option.comment = "cross"; option.weight = 12; option.per_instance = 1; }
|
98 | cross a, b { option.comment = "cross"; option.weight = 12; option.per_instance = 1; }
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:104:64: Ignoring unsupported coverage cross option: 'per_instance'
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:98:64: Ignoring unsupported coverage cross option: 'per_instance'
|
||||||
104 | cross a, b { option.comment = "cross"; option.weight = 12; option.per_instance = 1; }
|
98 | cross a, b { option.comment = "cross"; option.weight = 12; option.per_instance = 1; }
|
||||||
| ^~~~~~
|
| ^~~~~~
|
||||||
%Warning-WIDTHTRUNC: t/t_covergroup_unsup.v:76:5: Logical operator COVERPOINT 'a' expects 1 bit on the iff condition, but iff condition's VARREF 'b' generates 32 bits.
|
%Warning-WIDTHTRUNC: t/t_covergroup_unsup.v:76:5: Logical operator COVERPOINT 'a' expects 1 bit on the iff condition, but iff condition's VARREF 'b' generates 32 bits.
|
||||||
: ... note: In instance 't'
|
: ... note: In instance 't'
|
||||||
|
|
@ -278,25 +269,13 @@
|
||||||
| ^~~~~~~~~~
|
| ^~~~~~~~~~
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:98:11: Unsupported: cross of 'a' which is not a coverpoint (implicit coverpoint)
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:98:11: Unsupported: cross of 'a' which is not a coverpoint (implicit coverpoint)
|
||||||
: ... note: In instance 't'
|
: ... note: In instance 't'
|
||||||
98 | cross a, b iff (!rst);
|
98 | cross a, b { option.comment = "cross"; option.weight = 12; option.per_instance = 1; }
|
||||||
| ^
|
| ^
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:101:11: Unsupported: cross of 'a' which is not a coverpoint (implicit coverpoint)
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:101:11: Unsupported: cross of 'a' which is not a coverpoint (implicit coverpoint)
|
||||||
: ... note: In instance 't'
|
: ... note: In instance 't'
|
||||||
101 | cross a, b iff (!rst) {}
|
101 | cross a, b {
|
||||||
| ^
|
| ^
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:104:11: Unsupported: cross of 'a' which is not a coverpoint (implicit coverpoint)
|
%Warning-COVERIGN: t/t_covergroup_unsup.v:167:11: Unsupported: cross of 'a' which is not a coverpoint (implicit coverpoint)
|
||||||
: ... note: In instance 't'
|
: ... note: In instance 't'
|
||||||
104 | cross a, b { option.comment = "cross"; option.weight = 12; option.per_instance = 1; }
|
167 | cross a, b {
|
||||||
| ^
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:107:11: Unsupported: cross of 'a' which is not a coverpoint (implicit coverpoint)
|
|
||||||
: ... note: In instance 't'
|
|
||||||
107 | cross a, b {
|
|
||||||
| ^
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:113:21: Unsupported: cross of 'a' which is not a coverpoint (implicit coverpoint)
|
|
||||||
: ... note: In instance 't'
|
|
||||||
113 | my_cg_id: cross a, b iff (!rst);
|
|
||||||
| ^
|
|
||||||
%Warning-COVERIGN: t/t_covergroup_unsup.v:177:11: Unsupported: cross of 'a' which is not a coverpoint (implicit coverpoint)
|
|
||||||
: ... note: In instance 't'
|
|
||||||
177 | cross a, b {
|
|
||||||
| ^
|
| ^
|
||||||
|
|
|
||||||
|
|
@ -953,7 +953,7 @@ module Vt_debug_emitv_t;
|
||||||
bins y0 = {'sh0};
|
bins y0 = {'sh0};
|
||||||
bins y1 = {'sh1};
|
bins y1 = {'sh1};
|
||||||
};
|
};
|
||||||
cx: cross cp_x, cp_y;
|
cx: cross cp_x, cp_y iff ((cg_sig[0] == cg_sig2[0]));
|
||||||
endfunction
|
endfunction
|
||||||
int signed __Vint;
|
int signed __Vint;
|
||||||
struct {
|
struct {
|
||||||
|
|
|
||||||
|
|
@ -430,7 +430,7 @@ module t (/*AUTOARG*/
|
||||||
bins y0 = {0};
|
bins y0 = {0};
|
||||||
bins y1 = {1};
|
bins y1 = {1};
|
||||||
}
|
}
|
||||||
cx: cross cp_x, cp_y;
|
cx: cross cp_x, cp_y iff (cg_sig[0] == cg_sig2[0]);
|
||||||
endgroup
|
endgroup
|
||||||
|
|
||||||
cg_basic cg_basic_inst = new;
|
cg_basic cg_basic_inst = new;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue