Internal GenServer implementation for a single Verilated simulator instance.
SvPortSim.Server owns one simulator transport worker. The server keeps the
observable instance state, assigns request IDs, serializes protocol requests,
validates response envelopes, and closes the transport when the instance
terminates.
Summary
Functions
Returns a specification to start this module under a supervisor.
Sends one already-normalized runtime operation to the simulator transport.
Starts one simulator server without linking it to the caller.
Starts one simulator server and links it to the caller.
Sends the terminal "shutdown" operation and stops the simulator server.
Types
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec request(instance(), String.t(), request_body(), timeout_override()) :: {:ok, response_body()} | {:error, error_body()}
Sends one already-normalized runtime operation to the simulator transport.
@spec start(keyword()) :: GenServer.on_start()
Starts one simulator server without linking it to the caller.
@spec start_link(keyword()) :: GenServer.on_start()
Starts one simulator server and links it to the caller.
@spec stop(instance(), timeout_override()) :: :ok | {:error, error_body()}
Sends the terminal "shutdown" operation and stops the simulator server.