21 lines
579 B
C++
21 lines
579 B
C++
// SPDX-License-Identifier: MIT
|
|
#ifndef MULTIPLEXING_H
|
|
#define MULTIPLEXING_H
|
|
|
|
#include <cstdint>
|
|
|
|
/** @brief Unconditional signal, selector, or single-value branch. */
|
|
enum class MultiplexRole {
|
|
Unconditional,
|
|
Selector,
|
|
Branch
|
|
};
|
|
|
|
/** Basic multiplexing: one unsigned selector per frame, one raw value per branch. */
|
|
struct Multiplexing {
|
|
MultiplexRole role = MultiplexRole::Unconditional; /**< Signal participation in multiplexing. */
|
|
std::uint64_t value = 0U; /**< Required raw selector value; used only by branches. */
|
|
};
|
|
|
|
#endif
|