From c736ef1b2f6447be1dcd9c9e62cc072befa91443 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Mon, 1 Oct 2018 22:47:27 -0700 Subject: [PATCH] systemc: Don't use write() in sc_clock to set the clock value. The two different processes we have to use to match Accellera behavior would trip the checks in write. Change-Id: Iee729b239bccd8f7b854894000c9ef2c47600563 Reviewed-on: https://gem5-review.googlesource.com/c/13202 Reviewed-by: Gabe Black Maintainer: Gabe Black --- src/systemc/ext/channel/sc_clock.hh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/systemc/ext/channel/sc_clock.hh b/src/systemc/ext/channel/sc_clock.hh index 3713394b6..ba9231542 100644 --- a/src/systemc/ext/channel/sc_clock.hh +++ b/src/systemc/ext/channel/sc_clock.hh @@ -101,8 +101,18 @@ class sc_clock : public sc_signal ::sc_gem5::ClockTick *_gem5UpEdge; ::sc_gem5::ClockTick *_gem5DownEdge; - void tickUp() { sc_signal::write(true); } - void tickDown() { sc_signal::write(false); } + void + tickUp() + { + m_new_val = true; + request_update(); + } + void + tickDown() + { + m_new_val = false; + request_update(); + } }; typedef sc_in sc_in_clk; -- 2.30.2