CIRCT 23.0.0git
Loading...
Searching...
No Matches
Classes | Functions | Variables
tests.integration.test_channel_arbiter Namespace Reference

Classes

class  TestChannelArbiterCosim
 

Functions

None _check_mux (AcceleratorConnection conn, str dut_name, int num_inputs)
 

Variables

str HW_DIR = Path(__file__).resolve().parent / "hw"
 
int NUM_INPUTS = 4
 
int ODD_NUM_INPUTS = 3
 
int PIPE_NUM_INPUTS = 6
 
int TOKEN_NUM_INPUTS = 5
 
int TOKENS_PER_INPUT = 8
 

Detailed Description

Cosim integration tests for `esiaccel.components.ChannelArbiter`.

Runs under Verilator via the `@cosim_test` harness. Two DUTs (built by
`hw/channel_arbiter.py`) are exercised:

  * `arbiter_test` / `arbiter_test_odd`: host-driven single-flit multiplexers
    with a power-of-two ('balanced') and non-power-of-two ('unbalanced') input
    count. The host writes distinct tagged values to each input and checks that
    every value comes out of the single output exactly once (no loss /
    duplication) and that every input is served.

  * `list_test`: two in-hardware list-window producers contend for the
    arbiter; a hardware checker verifies message contiguity and streams a
    per-message report back to the host.

  * `token_test`: several in-hardware zero-width (`i0`) token producers, each
    emitting a fixed number of tokens, contend for the arbiter. A hardware
    counter reports a running ordinal per delivered token so the host can
    confirm every token is delivered exactly once and every producer is served.

Function Documentation

◆ _check_mux()

None tests.integration.test_channel_arbiter._check_mux ( AcceleratorConnection  conn,
str  dut_name,
int  num_inputs 
)
protected

Variable Documentation

◆ HW_DIR

str tests.integration.test_channel_arbiter.HW_DIR = Path(__file__).resolve().parent / "hw"

Definition at line 34 of file test_channel_arbiter.py.

◆ NUM_INPUTS

int tests.integration.test_channel_arbiter.NUM_INPUTS = 4

Definition at line 36 of file test_channel_arbiter.py.

◆ ODD_NUM_INPUTS

int tests.integration.test_channel_arbiter.ODD_NUM_INPUTS = 3

Definition at line 37 of file test_channel_arbiter.py.

◆ PIPE_NUM_INPUTS

int tests.integration.test_channel_arbiter.PIPE_NUM_INPUTS = 6

Definition at line 38 of file test_channel_arbiter.py.

◆ TOKEN_NUM_INPUTS

int tests.integration.test_channel_arbiter.TOKEN_NUM_INPUTS = 5

Definition at line 39 of file test_channel_arbiter.py.

◆ TOKENS_PER_INPUT

int tests.integration.test_channel_arbiter.TOKENS_PER_INPUT = 8

Definition at line 40 of file test_channel_arbiter.py.