Documentation

Sparkle.Core.SimParallel

Everything runSim needs about one loaded JIT domain. Usually built via someModule.Sim.Simulator.toEndpoint.

Instances For
    @[reducible, inline]

    (producerOutputPortName, consumerInputPortName) — a single wire connection between two domains routed through the CDC SPSC queue.

    Equations
    Instances For

      Aggregated statistics returned by runSim. For single-domain runs, messagesSent/messagesReceived/rollbacks are all 0.

      Instances For
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          Single-threaded evalTick loop. Forces the non-parallel backend. Use this directly if you want to bypass runSim's auto-selection.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def Sparkle.Core.SimParallel.runMultiDomainSim (producer consumer : SimEndpoint) (connection : Connection) (producerCycles consumerCycles : UInt64) :

            Multi-domain CDC runner backed by JIT.runCDC. Forces the parallel backend. Use this directly if you want to skip runSim dispatch.

            Raises IO.userError if the connection names are not valid ports of the producer/consumer endpoints.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def Sparkle.Core.SimParallel.runSim (endpoints : List SimEndpoint) (connections : List Connection := []) (cycles : UInt64 := 0) (endpointCycles : List UInt64 := []) :

              High-level dispatcher: automatically picks the fastest runner.

              Rules:

              cycles sets a uniform cycle budget that applies to every endpoint. To model a CDC with genuinely different clock frequencies (e.g. a 200 MHz producer talking to a 100 MHz consumer) pass endpointCycles instead: it gives a per-endpoint cycle count and cycles is ignored when it is non-empty. The list must have the same length as endpoints.

              Limitations:

              • 3+ endpoints are not yet supported (needs multi-queue runCDC).
              • Multi-connection between the same pair of endpoints is not yet supported (needs runCDC extension). See KnownIssues Issue 3.
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For