Fix `--timing` with `--x-initial-edge` (#6603) (#6631)

Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
This commit is contained in:
Krzysztof Bieganski 2025-11-03 15:39:23 +01:00 committed by GitHub
parent faaa2db844
commit 0eaa9ed144
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 36 additions and 0 deletions

View File

@ -80,6 +80,11 @@ void VlDelayScheduler::resume() {
} }
if (!resumed) { if (!resumed) {
if (m_context.time() == 0) {
// Nothing was scheduled at time 0, but resume() got called due to --x-initial-edge
return;
}
VL_FATAL_MT(__FILE__, __LINE__, "", VL_FATAL_MT(__FILE__, __LINE__, "",
"%Error: Encountered process that should've been resumed at an " "%Error: Encountered process that should've been resumed at an "
"earlier simulation time. Missed a time slot?\n"); "earlier simulation time. Missed a time slot?\n");

View File

@ -0,0 +1,18 @@
#!/usr/bin/env python3
# DESCRIPTION: Verilator: Verilog Test driver/expect definition
#
# Copyright 2025 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
import vltest_bootstrap
test.scenarios('simulator')
test.compile(verilator_flags2=["--binary", "--x-initial-edge"])
test.execute()
test.passes()

View File

@ -0,0 +1,13 @@
// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2025 by Antmicro.
// SPDX-License-Identifier: CC0-1.0
module t;
initial begin
#10;
$write("*-* All Finished *-*\n");
$finish;
end
endmodule