Data Muxing
Implement a fast data muxing logic
You are working on implementing a data muxing logic for a NoC router. The logic takes in data from N multiple sources and forwards it to a single destination based on the select signal.
Given this scenario, you decided to pass this information to your in-house AI agent to generate the RTL code for the data muxing logic. The agent generated the logically correct code but the Physical Design team is complaining of timing pressure on the muxed data output.
Fix the data muxing module to ease the timing pressure on the muxed data output. All the flops should be positive edge triggered with asynchronous resets (if any).
Interface Definition
data_i : Input DATA_WIDTH wide data from the N sources
one_hot_sel_i : One-hot select signal to select the source for muxing
mux_data_o : Muxed DATA_WIDTH wide data outputInterface Requirements
- Muxing output needs to be given in the same cycle as when the data and select signals are provided
- The select signal will be one-hot or zero, meaning at most only one source will be selected at a time
Loading the interactive workspace...