Internals: Simplify SystemC-related timing code (#6503)
This commit is contained in:
parent
98786e609a
commit
7e854a9e63
|
|
@ -131,7 +131,6 @@ class EmitCModel final : public EmitCFunc {
|
|||
}
|
||||
}
|
||||
}
|
||||
if (optSystemC() && v3Global.usesTiming()) puts("sc_core::sc_event trigger_eval;\n");
|
||||
|
||||
// Cells instantiated by the top level (for access to /* verilator public */)
|
||||
puts("\n// CELLS\n"
|
||||
|
|
@ -183,7 +182,6 @@ class EmitCModel final : public EmitCFunc {
|
|||
}
|
||||
if (optSystemC() && v3Global.usesTiming()) {
|
||||
puts("void eval();\n");
|
||||
puts("void eval_sens();\n");
|
||||
} else {
|
||||
puts("void eval() { eval_step(); " + callEvalEndStep + "}\n");
|
||||
}
|
||||
|
|
@ -326,7 +324,6 @@ class EmitCModel final : public EmitCFunc {
|
|||
// Create sensitivity list for when to evaluate the model.
|
||||
putsDecoration(nullptr, "// Sensitivities on all clocks and combinational inputs\n");
|
||||
puts("SC_METHOD(eval);\n");
|
||||
if (v3Global.usesTiming()) puts("SC_METHOD(eval_sens);\n");
|
||||
for (AstNode* nodep = modp->stmtsp(); nodep; nodep = nodep->nextp()) {
|
||||
if (const AstVar* const varp = VN_CAST(nodep, Var)) {
|
||||
if (varp->isNonOutput() && (varp->isScSensitive() || varp->isPrimaryClock())) {
|
||||
|
|
@ -401,16 +398,9 @@ class EmitCModel final : public EmitCFunc {
|
|||
puts("if (eventsPending()) {\n");
|
||||
puts("sc_core::sc_time dt = sc_core::sc_time::from_value(nextTimeSlot() - "
|
||||
"contextp()->time());\n");
|
||||
puts("next_trigger(dt, trigger_eval);\n");
|
||||
puts("} else {\n");
|
||||
puts("next_trigger(trigger_eval);\n");
|
||||
puts("next_trigger(dt);\n");
|
||||
puts("}\n");
|
||||
puts("}\n");
|
||||
|
||||
// ::eval_sens
|
||||
puts("\nvoid " + EmitCUtil::topClassName() + "::eval_sens() {\n");
|
||||
puts("trigger_eval.notify();\n");
|
||||
puts("}\n");
|
||||
}
|
||||
|
||||
// ::eval_step
|
||||
|
|
|
|||
Loading…
Reference in New Issue