|
CIRCT 23.0.0git
|
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 |
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.
|
protected |
Drive an N-input host mux and check every value is delivered exactly once and every input is served.
Definition at line 43 of file test_channel_arbiter.py.
Referenced by tests.integration.test_channel_arbiter.TestChannelArbiterCosim.test_mux_correctness(), tests.integration.test_channel_arbiter.TestChannelArbiterCosim.test_mux_correctness_pipelined(), and tests.integration.test_channel_arbiter.TestChannelArbiterCosim.test_mux_correctness_unbalanced().
| str tests.integration.test_channel_arbiter.HW_DIR = Path(__file__).resolve().parent / "hw" |
Definition at line 34 of file test_channel_arbiter.py.
| int tests.integration.test_channel_arbiter.NUM_INPUTS = 4 |
Definition at line 36 of file test_channel_arbiter.py.
| int tests.integration.test_channel_arbiter.ODD_NUM_INPUTS = 3 |
Definition at line 37 of file test_channel_arbiter.py.
| int tests.integration.test_channel_arbiter.PIPE_NUM_INPUTS = 6 |
Definition at line 38 of file test_channel_arbiter.py.
| int tests.integration.test_channel_arbiter.TOKEN_NUM_INPUTS = 5 |
Definition at line 39 of file test_channel_arbiter.py.
| int tests.integration.test_channel_arbiter.TOKENS_PER_INPUT = 8 |
Definition at line 40 of file test_channel_arbiter.py.