wiRedPanda
Logic Circuit Simulator
Loading...
Searching...
No Matches
ICSimulation Class Reference

Builds and drives an IC's internal simulation graph. More...

#include <ICSimulation.h>

Static Public Member Functions

static void initialize (IC &ic)
 Builds the internal simulation graph (connection graph + topological sort) for ic.
static void resettle (IC &ic)
static void update (IC &ic)
 Simulates ic's internal circuit and propagates results to its boundary.

Detailed Description

Builds and drives an IC's internal simulation graph.

Extracted from IC so direct simulation is a collaborator rather than a cluster of methods on the element itself, mirroring the GraphicElement / GraphicElementSerializer split. A friend of IC, it reaches the element's internal simulation state directly. All methods are static and take the IC explicitly; IC keeps all state, so this is a pure logic extraction, not a new owner-back-pointer collaborator.

Definition at line 23 of file ICSimulation.h.

Member Function Documentation

◆ initialize()

void ICSimulation::initialize ( IC & ic)
static

Builds the internal simulation graph (connection graph + topological sort) for ic.

Definition at line 12 of file ICSimulation.cpp.

References Simulation::buildConnectionGraph(), Simulation::buildSuccessorGraph(), Simulation::buildTxMap(), Simulation::connectWirelessElements(), initialize(), and Simulation::topologicalSort().

Referenced by initialize(), and IC::initializeSimulation().

◆ resettle()

void ICSimulation::resettle ( IC & ic)
static

Re-propagates committed sequential state through ic's internal combinational logic and refreshes its output boundary, without re-clocking internal flip-flops/latches.

Definition at line 108 of file ICSimulation.cpp.

References Simulation::kMaxSettleIterations, and GraphicElement::simUpdateInputsAllowUnknown().

Referenced by IC::resettleCombinational().

◆ update()

void ICSimulation::update ( IC & ic)
static

Simulates ic's internal circuit and propagates results to its boundary.

Definition at line 80 of file ICSimulation.cpp.

References Simulation::iterativeSettle(), and GraphicElement::simUpdateInputsAllowUnknown().

Referenced by IC::updateLogic().


The documentation for this class was generated from the following files: