Add lint warning on always_comb multidriven (#3888) (#3939)

This commit is contained in:
Adam Bagley 2023-02-23 05:36:28 -05:00 committed by GitHub
parent 7559af5879
commit 003a8cfe75
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 334 additions and 73 deletions

View File

@ -3,6 +3,7 @@ under the Developer Certificate of Origin (https://developercertificate.org/).
Please see the Verilator manual for 200+ additional contributors. Thanks to all.
Adam Bagley
Adrien Le Masle
Ahmed El-Mahmoudy
Aleksander Kiryk

View File

@ -46,8 +46,15 @@ class UndrivenVarEntry final {
AstVar* const m_varp; // Variable this tracks
std::vector<bool> m_wholeFlags; // Used/Driven on whole vector
std::vector<bool> m_bitFlags; // Used/Driven on each subbit
const AstAlways* m_alwCombp
= nullptr; // always_comb of var if driven within always_comb, else nullptr
const FileLine* m_alwCombFileLinep = nullptr; // File line of always_comb of var if driven
// within always_comb, else nullptr
const AstNodeVarRef* m_nodep = nullptr; // varref if driven, else nullptr
const FileLine* m_nodeFileLinep = nullptr; // File line of varref if driven, else nullptr
bool m_underGen = false; // Under a generate
enum : uint8_t { FLAG_USED = 0, FLAG_DRIVEN = 1, FLAGS_PER_BIT = 2 };
enum : uint8_t { FLAG_USED = 0, FLAG_DRIVEN = 1, FLAG_DRIVEN_ALWCOMB = 2, FLAGS_PER_BIT = 3 };
public:
// CONSTRUCTORS
@ -117,6 +124,24 @@ public:
UINFO(9, "set d[*] " << m_varp->name() << endl);
m_wholeFlags[FLAG_DRIVEN] = true;
}
void drivenWhole(const AstNodeVarRef* nodep, const FileLine* fileLinep) {
drivenWhole();
m_nodep = nodep;
m_nodeFileLinep = fileLinep;
}
void drivenAlwaysCombWhole(const AstAlways* alwCombp, const FileLine* fileLinep) {
m_wholeFlags[FLAG_DRIVEN_ALWCOMB] = true;
m_alwCombp = alwCombp;
m_alwCombFileLinep = fileLinep;
}
void underGenerate() { m_underGen = true; }
bool isUnderGen() const { return m_underGen; }
bool isDrivenWhole() const { return m_wholeFlags[FLAG_DRIVEN]; }
bool isDrivenAlwaysCombWhole() const { return m_wholeFlags[FLAG_DRIVEN_ALWCOMB]; }
const AstNodeVarRef* getNodep() const { return m_nodep; }
const FileLine* getNodeFileLinep() const { return m_nodeFileLinep; }
const AstAlways* getAlwCombp() const { return m_alwCombp; }
const FileLine* getAlwCombFileLinep() const { return m_alwCombFileLinep; }
void usedBit(int bit, int width) {
UINFO(9, "set u[" << (bit + width - 1) << ":" << bit << "] " << m_varp->name() << endl);
for (int i = 0; i < width; i++) {
@ -304,7 +329,7 @@ private:
for (int usr = 1; usr < (m_alwaysCombp ? 3 : 2); ++usr) {
// For assigns and non-combo always, do just usr==1, to look
// for module-wide undriven etc.
// For non-combo always, run both usr==1 for above, and also
// For combo always, run both usr==1 for above, and also
// usr==2 for always-only checks.
UndrivenVarEntry* const entryp = getEntryp(nodep, usr);
if (nodep->isNonOutput() || nodep->isSigPublic() || nodep->isSigUserRWPublic()
@ -381,7 +406,43 @@ private:
UINFO(9, " Full bus. Entryp=" << cvtToHex(entryp) << endl);
warnAlwCombOrder(nodep);
}
entryp->drivenWhole();
if (entryp->isDrivenWhole() && !m_inBBox && !VN_IS(nodep, VarXRef)
&& !VN_IS(nodep->dtypep()->skipRefp(), UnpackArrayDType)
&& nodep->fileline() != entryp->getNodeFileLinep() && !entryp->isUnderGen()) {
if (m_alwaysCombp
&& (!entryp->isDrivenAlwaysCombWhole()
|| (entryp->isDrivenAlwaysCombWhole()
&& m_alwaysCombp != entryp->getAlwCombp()
&& m_alwaysCombp->fileline() != entryp->getAlwCombFileLinep()))) {
nodep->v3warn(
MULTIDRIVEN,
"Variable written to in always_comb also written by other process"
<< " (IEEE 1800-2017 9.2.2.2): " << nodep->prettyNameQ() << '\n'
<< nodep->warnOther() << '\n'
<< nodep->warnContextPrimary() << '\n'
<< entryp->getNodep()->warnOther()
<< "... Location of other write\n"
<< entryp->getNodep()->warnContextSecondary());
}
if (!m_alwaysCombp && entryp->isDrivenAlwaysCombWhole()) {
nodep->v3warn(MULTIDRIVEN,
"Variable also written to in always_comb"
<< " (IEEE 1800-2017 9.2.2.2): " << nodep->prettyNameQ()
<< '\n'
<< nodep->warnOther() << '\n'
<< nodep->warnContextPrimary() << '\n'
<< entryp->getNodep()->warnOther()
<< "... Location of always_comb write\n"
<< entryp->getNodep()->warnContextSecondary());
}
}
entryp->drivenWhole(nodep, nodep->fileline());
if (m_alwaysCombp && entryp->isDrivenAlwaysCombWhole()
&& m_alwaysCombp != entryp->getAlwCombp()
&& m_alwaysCombp->fileline() == entryp->getAlwCombFileLinep())
entryp->underGenerate();
if (m_alwaysCombp)
entryp->drivenAlwaysCombWhole(m_alwaysCombp, m_alwaysCombp->fileline());
}
if (m_inBBox || nodep->access().isReadOrRW()
|| fdrv

View File

@ -0,0 +1,87 @@
%Warning-MULTIDRIVEN: t/t_lint_always_comb_multidriven.v:26:16: Variable written to in always_comb also written by other process (IEEE 1800-2017 9.2.2.2): 'out1'
: ... In instance t
t/t_lint_always_comb_multidriven.v:26:16:
26 | always_comb out1 = d;
| ^~~~
t/t_lint_always_comb_multidriven.v:25:11: ... Location of other write
25 | assign out1 = 1'b0;
| ^~~~
... For warning description see https://verilator.org/warn/MULTIDRIVEN?v=latest
... Use "/* verilator lint_off MULTIDRIVEN */" and lint_on around source to disable this message.
%Warning-MULTIDRIVEN: t/t_lint_always_comb_multidriven.v:29:16: Variable written to in always_comb also written by other process (IEEE 1800-2017 9.2.2.2): 'out2'
: ... In instance t
t/t_lint_always_comb_multidriven.v:29:16:
29 | always_comb out2 = 1'b0;
| ^~~~
t/t_lint_always_comb_multidriven.v:28:11: ... Location of other write
28 | assign out2 = d;
| ^~~~
%Warning-MULTIDRIVEN: t/t_lint_always_comb_multidriven.v:32:11: Variable also written to in always_comb (IEEE 1800-2017 9.2.2.2): 'out3'
: ... In instance t
t/t_lint_always_comb_multidriven.v:32:11:
32 | assign out3 = 1'b0;
| ^~~~
t/t_lint_always_comb_multidriven.v:31:16: ... Location of always_comb write
31 | always_comb out3 = d;
| ^~~~
%Warning-MULTIDRIVEN: t/t_lint_always_comb_multidriven.v:35:11: Variable also written to in always_comb (IEEE 1800-2017 9.2.2.2): 'out4'
: ... In instance t
t/t_lint_always_comb_multidriven.v:35:11:
35 | assign out4 = d;
| ^~~~
t/t_lint_always_comb_multidriven.v:34:16: ... Location of always_comb write
34 | always_comb out4 = 1'b0;
| ^~~~
%Warning-MULTIDRIVEN: t/t_lint_always_comb_multidriven.v:38:16: Variable written to in always_comb also written by other process (IEEE 1800-2017 9.2.2.2): 'out5'
: ... In instance t
t/t_lint_always_comb_multidriven.v:38:16:
38 | always_comb out5 = d;
| ^~~~
t/t_lint_always_comb_multidriven.v:37:16: ... Location of other write
37 | always_comb out5 = 1'b0;
| ^~~~
%Warning-MULTIDRIVEN: t/t_lint_always_comb_multidriven.v:41:16: Variable written to in always_comb also written by other process (IEEE 1800-2017 9.2.2.2): 'out6'
: ... In instance t
t/t_lint_always_comb_multidriven.v:41:16:
41 | always_comb out6 = 1'b0;
| ^~~~
t/t_lint_always_comb_multidriven.v:40:16: ... Location of other write
40 | always_comb out6 = d;
| ^~~~
%Warning-MULTIDRIVEN: t/t_lint_always_comb_multidriven.v:17:15: Bits [0:0] of signal 'out2' have multiple combinational drivers
: ... In instance t
t/t_lint_always_comb_multidriven.v:28:16: ... Location of first driver
28 | assign out2 = d;
| ^
t/t_lint_always_comb_multidriven.v:29:21: ... Location of other driver
29 | always_comb out2 = 1'b0;
| ^
t/t_lint_always_comb_multidriven.v:17:15: ... Only the first driver will be respected
%Warning-MULTIDRIVEN: t/t_lint_always_comb_multidriven.v:19:15: Bits [0:0] of signal 'out4' have multiple combinational drivers
: ... In instance t
t/t_lint_always_comb_multidriven.v:34:21: ... Location of first driver
34 | always_comb out4 = 1'b0;
| ^
t/t_lint_always_comb_multidriven.v:35:16: ... Location of other driver
35 | assign out4 = d;
| ^
t/t_lint_always_comb_multidriven.v:19:15: ... Only the first driver will be respected
%Warning-MULTIDRIVEN: t/t_lint_always_comb_multidriven.v:20:15: Bits [0:0] of signal 'out5' have multiple combinational drivers
: ... In instance t
t/t_lint_always_comb_multidriven.v:37:21: ... Location of first driver
37 | always_comb out5 = 1'b0;
| ^
t/t_lint_always_comb_multidriven.v:38:21: ... Location of other driver
38 | always_comb out5 = d;
| ^
t/t_lint_always_comb_multidriven.v:20:15: ... Only the first driver will be respected
%Warning-MULTIDRIVEN: t/t_lint_always_comb_multidriven.v:21:15: Bits [0:0] of signal 'out6' have multiple combinational drivers
: ... In instance t
t/t_lint_always_comb_multidriven.v:40:21: ... Location of first driver
40 | always_comb out6 = d;
| ^
t/t_lint_always_comb_multidriven.v:41:21: ... Location of other driver
41 | always_comb out6 = 1'b0;
| ^
t/t_lint_always_comb_multidriven.v:21:15: ... Only the first driver will be respected
%Error: Exiting due to

View File

@ -0,0 +1,20 @@
#!/usr/bin/env perl
if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); die; }
# DESCRIPTION: Verilator: Verilog Test driver/expect definition
#
# Copyright 2023 by Wilson Snyder. This program is free software; you
# can redistribute it and/or modify it under the terms of either the GNU
# Lesser General Public License Version 3 or the Perl Artistic License
# Version 2.0.
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
scenarios(linter => 1);
lint(
verilator_flags2 => ['--lint-only'],
fails => 1,
expect_filename => $Self->{golden_filename},
);
ok(1);
1;

View File

@ -0,0 +1,76 @@
// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2012 by Wilson Snyder.
// SPDX-License-Identifier: CC0-1.0
module t (/*AUTOARG*/
// Outputs
out1, out2, out3, out4, out5, out6, out7, out8,
// Inputs
clk, d
);
input clk;
input d;
output reg out1;
output reg out2;
output reg out3;
output reg out4;
output reg out5;
output reg out6;
output reg out7;
output reg out8;
assign out1 = 1'b0;
always_comb out1 = d; // <--- Warning
assign out2 = d;
always_comb out2 = 1'b0; // <--- Warning
always_comb out3 = d;
assign out3 = 1'b0; // <--- Warning
always_comb out4 = 1'b0;
assign out4 = d; // <--- Warning
always_comb out5 = 1'b0;
always_comb out5 = d; // <--- Warning
always_comb out6 = d;
always_comb out6 = 1'b0; // <--- Warning
always_comb begin
out7 = 1'b0;
out7 = d;
end
always_comb begin
out8 = d;
out8 = 1'b0;
end
reg [1:0] arr_packed;
reg arr_unpacked [0:1];
reg [1:0] gen_arr_packed;
reg gen_arr_unpacked [0:1];
genvar g;
always_comb begin
arr_packed[0] = d;
arr_packed[1] = d;
end
always_comb begin
arr_unpacked[0] = d;
arr_unpacked[1] = d;
end
generate
for (g=0; g<2; ++g) begin
always_comb gen_arr_packed[g] = d;
always_comb gen_arr_unpacked[g] = d;
end
endgenerate
endmodule

View File

@ -37,6 +37,8 @@ module t (
end
always_ff @(posedge dummy_clk) begin
// verilator lint_off MULTIDRIVEN
comb_byte = ~pub_byte;
// verilator lint_on MULTIDRIVEN
end
endmodule

View File

@ -11,7 +11,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___eval_initial__TOP__1
-V{t#,#} Suspending process waiting for @(posedge t.clk1) at t/t_timing_sched.v:17
-V{t#,#}+ Vt_timing_debug1___024root___eval_initial__TOP__2
-V{t#,#} Suspending process waiting for @(posedge t.clk2) at t/t_timing_sched.v:46
-V{t#,#} Suspending process waiting for @(posedge t.clk2) at t/t_timing_sched.v:50
-V{t#,#}+ Vt_timing_debug1___024root___eval_initial__TOP__3
-V{t#,#}+ Vt_timing_debug1___024root___eval_settle
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__stl
@ -45,7 +45,7 @@
-V{t#,#} - Process waiting at t/t_timing_sched.v:18
-V{t#,#} - Process waiting at t/t_timing_sched.v:17
-V{t#,#} Committing processes waiting for @(posedge t.clk2):
-V{t#,#} - Process waiting at t/t_timing_sched.v:46
-V{t#,#} - Process waiting at t/t_timing_sched.v:50
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
@ -74,7 +74,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 3: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 3: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 3: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 11: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
@ -134,7 +134,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 6: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 6: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 7: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Awaiting time 11: Process waiting at t/t_timing_sched.v:10
@ -173,7 +173,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 7: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 7: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 9: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Awaiting time 11: Process waiting at t/t_timing_sched.v:10
@ -207,7 +207,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 9: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 9: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 11: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Awaiting time 11: Process waiting at t/t_timing_sched.v:10
@ -259,7 +259,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 11: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 11: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 11: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Awaiting time 12: Process waiting at t/t_timing_sched.v:10
@ -283,11 +283,11 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Ready processes waiting for @(posedge t.clk2):
-V{t#,#} - Process waiting at t/t_timing_sched.v:46
-V{t#,#} - Process waiting at t/t_timing_sched.v:50
-V{t#,#} Ready processes waiting for @(posedge t.clk2):
-V{t#,#} - Process waiting at t/t_timing_sched.v:18
-V{t#,#} Resuming processes waiting for @(posedge t.clk2)
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:46
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:50
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:18
-V{t#,#} Suspending process waiting for @(posedge t.clk1) at t/t_timing_sched.v:18
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
@ -324,15 +324,15 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 12: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 12: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 12: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Awaiting time 22: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Awaiting time 13: Process waiting at t/t_timing_sched.v:46
-V{t#,#} Awaiting time 13: Process waiting at t/t_timing_sched.v:50
-V{t#,#} Resuming delayed processes
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:46
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:50
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Suspending process waiting for @(posedge t.clk2) at t/t_timing_sched.v:46
-V{t#,#} Suspending process waiting for @(posedge t.clk2) at t/t_timing_sched.v:50
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_comb__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
@ -340,7 +340,7 @@
-V{t#,#} 'act' region trigger index 0 is active: @([hybrid] __VassignWtmp_t.clk1__0)
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#} Committing processes waiting for @(posedge t.clk2):
-V{t#,#} - Process waiting at t/t_timing_sched.v:46
-V{t#,#} - Process waiting at t/t_timing_sched.v:50
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
@ -367,7 +367,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 13: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 13: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 15: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Awaiting time 22: Process waiting at t/t_timing_sched.v:10
@ -400,7 +400,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 15: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 15: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 22: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Resuming delayed processes
@ -457,7 +457,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 18: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 18: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 19: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 22: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:17
@ -495,7 +495,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 19: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 19: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 21: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 22: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
@ -528,7 +528,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 21: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 21: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 22: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Resuming delayed processes
@ -579,7 +579,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 22: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 22: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 25: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 24: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:17
@ -617,7 +617,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 24: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 24: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 25: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 33: Process waiting at t/t_timing_sched.v:13
@ -655,7 +655,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 25: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 25: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 27: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 33: Process waiting at t/t_timing_sched.v:10
@ -688,7 +688,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 27: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 27: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 33: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Resuming delayed processes
@ -739,7 +739,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 30: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 30: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 31: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 33: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:17
@ -777,7 +777,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 31: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 31: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 33: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 33: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
@ -810,7 +810,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 33: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 33: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 33: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Resuming delayed processes
@ -840,11 +840,11 @@
-V{t#,#} Resuming processes waiting for @(posedge t.clk1)
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:17
-V{t#,#} Ready processes waiting for @(posedge t.clk2):
-V{t#,#} - Process waiting at t/t_timing_sched.v:46
-V{t#,#} - Process waiting at t/t_timing_sched.v:50
-V{t#,#} Ready processes waiting for @(posedge t.clk2):
-V{t#,#} - Process waiting at t/t_timing_sched.v:18
-V{t#,#} Resuming processes waiting for @(posedge t.clk2)
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:46
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:50
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:18
-V{t#,#} Suspending process waiting for @(posedge t.clk1) at t/t_timing_sched.v:18
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
@ -883,14 +883,14 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 34: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 34: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 36: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 44: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:17
-V{t#,#} Awaiting time 37: Process waiting at t/t_timing_sched.v:46
-V{t#,#} Awaiting time 37: Process waiting at t/t_timing_sched.v:50
-V{t#,#} Resuming delayed processes
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:46
-V{t#,#} Suspending process waiting for @(posedge t.clk2) at t/t_timing_sched.v:46
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:50
-V{t#,#} Suspending process waiting for @(posedge t.clk2) at t/t_timing_sched.v:50
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_comb__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
@ -898,7 +898,7 @@
-V{t#,#} No triggers active
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#} Committing processes waiting for @(posedge t.clk2):
-V{t#,#} - Process waiting at t/t_timing_sched.v:46
-V{t#,#} - Process waiting at t/t_timing_sched.v:50
-V{t#,#}+ Vt_timing_debug1___024root___eval_nba
-V{t#,#}+ Vt_timing_debug1___024root___act_comb__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
@ -917,7 +917,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 36: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 36: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 37: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 44: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:17
@ -955,7 +955,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 37: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 37: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 39: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 44: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
@ -988,7 +988,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 39: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 39: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 44: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Resuming delayed processes
@ -1045,7 +1045,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 42: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 42: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 43: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 44: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:17
@ -1083,7 +1083,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 43: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 43: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 45: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 44: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
@ -1116,7 +1116,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 44: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 44: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 45: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Resuming delayed processes
@ -1153,7 +1153,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 45: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 45: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 55: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Resuming delayed processes
@ -1204,7 +1204,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 48: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 48: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 49: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 55: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:17
@ -1242,7 +1242,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 49: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 49: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 51: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 55: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
@ -1275,7 +1275,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 51: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 51: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 55: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Resuming delayed processes
@ -1326,7 +1326,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 54: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 54: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 55: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 55: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:17
@ -1364,7 +1364,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 55: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 55: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 55: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 57: Process waiting at t/t_timing_sched.v:10
@ -1390,11 +1390,11 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Ready processes waiting for @(posedge t.clk2):
-V{t#,#} - Process waiting at t/t_timing_sched.v:46
-V{t#,#} - Process waiting at t/t_timing_sched.v:50
-V{t#,#} Ready processes waiting for @(posedge t.clk2):
-V{t#,#} - Process waiting at t/t_timing_sched.v:18
-V{t#,#} Resuming processes waiting for @(posedge t.clk2)
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:46
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:50
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:18
-V{t#,#} Suspending process waiting for @(posedge t.clk1) at t/t_timing_sched.v:18
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
@ -1431,13 +1431,13 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 56: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 56: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 57: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 66: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:46
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:50
-V{t#,#} Resuming delayed processes
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:46
-V{t#,#} Suspending process waiting for @(posedge t.clk2) at t/t_timing_sched.v:46
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:50
-V{t#,#} Suspending process waiting for @(posedge t.clk2) at t/t_timing_sched.v:50
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_comb__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
@ -1445,7 +1445,7 @@
-V{t#,#} No triggers active
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#} Committing processes waiting for @(posedge t.clk2):
-V{t#,#} - Process waiting at t/t_timing_sched.v:46
-V{t#,#} - Process waiting at t/t_timing_sched.v:50
-V{t#,#}+ Vt_timing_debug1___024root___eval_nba
-V{t#,#}+ Vt_timing_debug1___024root___act_comb__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
@ -1464,7 +1464,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 57: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 57: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 66: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Resuming delayed processes
@ -1521,7 +1521,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 60: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 60: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 61: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 66: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:17
@ -1559,7 +1559,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 61: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 61: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 63: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 66: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
@ -1592,7 +1592,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 63: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 63: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 66: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Resuming delayed processes
@ -1643,7 +1643,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 66: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 66: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 67: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 66: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:17
@ -1685,7 +1685,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 67: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 67: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 77: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 69: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:13
@ -1718,7 +1718,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 69: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 69: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 77: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Resuming delayed processes
@ -1769,7 +1769,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 72: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 72: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 73: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 77: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:17
@ -1807,7 +1807,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 73: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 73: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 75: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 77: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
@ -1840,7 +1840,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 75: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 75: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 77: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Resuming delayed processes
@ -1891,7 +1891,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 77: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 77: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 79: Process waiting at t/t_timing_sched.v:17
@ -1913,11 +1913,11 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Ready processes waiting for @(posedge t.clk2):
-V{t#,#} - Process waiting at t/t_timing_sched.v:46
-V{t#,#} - Process waiting at t/t_timing_sched.v:50
-V{t#,#} Ready processes waiting for @(posedge t.clk2):
-V{t#,#} - Process waiting at t/t_timing_sched.v:18
-V{t#,#} Resuming processes waiting for @(posedge t.clk2)
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:46
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:50
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:18
-V{t#,#} Suspending process waiting for @(posedge t.clk1) at t/t_timing_sched.v:18
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
@ -1954,17 +1954,17 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#} Delayed processes:
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:48
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:52
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 79: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Awaiting time 88: Process waiting at t/t_timing_sched.v:13
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:46
-V{t#,#} Awaiting time 78: Process waiting at t/t_timing_sched.v:50
-V{t#,#} Resuming delayed processes
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:46
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:50
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:13
*-* All Finished *-*
-V{t#,#} Resuming: Process waiting at t/t_timing_sched.v:10
-V{t#,#} Suspending process waiting for @(posedge t.clk2) at t/t_timing_sched.v:46
-V{t#,#} Suspending process waiting for @(posedge t.clk2) at t/t_timing_sched.v:50
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_comb__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
@ -1972,7 +1972,7 @@
-V{t#,#} 'act' region trigger index 0 is active: @([hybrid] __VassignWtmp_t.clk1__0)
-V{t#,#}+ Vt_timing_debug1___024root___timing_commit
-V{t#,#} Committing processes waiting for @(posedge t.clk2):
-V{t#,#} - Process waiting at t/t_timing_sched.v:46
-V{t#,#} - Process waiting at t/t_timing_sched.v:50
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0

View File

@ -19,7 +19,9 @@ module t;
int a2 = 0;
always_comb begin
// verilator lint_off MULTIDRIVEN
a2 = a1 << 1;
// verilator lint_on MULTIDRIVEN
`ifdef TEST_VERBOSE
$display("[%0t] a2 = %0d", $time, a2);
`endif
@ -27,7 +29,9 @@ module t;
int b2 = 0;
always_comb begin
// verilator lint_off MULTIDRIVEN
b2 = b1 << 2;
// verilator lint_on MULTIDRIVEN
`ifdef TEST_VERBOSE
$display("[%0t] b2 = %0d", $time, b2);
`endif

View File

@ -25,7 +25,9 @@ module t;
int a2 = 0;
always_comb begin
// verilator lint_off MULTIDRIVEN
a2 = a1 << 1;
// verilator lint_on MULTIDRIVEN
`ifdef TEST_VERBOSE
$display("[%0t] a2 = %0d", $time, a2);
`endif
@ -33,7 +35,9 @@ module t;
int b2 = 0;
always_comb begin
// verilator lint_off MULTIDRIVEN
b2 = b1 << 2;
// verilator lint_on MULTIDRIVEN
`ifdef TEST_VERBOSE
$display("[%0t] b2 = %0d", $time, b2);
`endif
@ -41,7 +45,9 @@ module t;
int c2 = 0;
always_comb begin
// verilator lint_off MULTIDRIVEN
c2 = c1 << 3;
// verilator lint_on MULTIDRIVEN
`ifdef TEST_VERBOSE
$display("[%0t] c2 = %0d", $time, c2);
`endif

View File

@ -19,7 +19,9 @@ module t;
int a2 = 0;
always_comb begin
// verilator lint_off MULTIDRIVEN
a2 = a1 << 1;
// verilator lint_on MULTIDRIVEN
`ifdef TEST_VERBOSE
$display("[%0t] a2 = %0d", $time, a2);
`endif
@ -27,7 +29,9 @@ module t;
int b2 = 0;
always_comb begin
// verilator lint_off MULTIDRIVEN
b2 = b1 << 2;
// verilator lint_on MULTIDRIVEN
`ifdef TEST_VERBOSE
$display("[%0t] b2 = %0d", $time, b2);
`endif