Valid Data Serializer
Serial communication protocols require receivers to distinguish between idle line states and active payload transmission. The data valid envelope asserts precisely when the payload begins and deasserts the moment the final bit completes.
The circuit receives a 4-bit parallel input data_in and a start signal. When start is high, the circuit registers data_in and begins transmission on the following clock cycle. Over the next four clock cycles, tx_data outputs the captured bits sequentially from LSB to MSB. Concurrently, tx_valid remains high for exactly these four active cycles. When the line is idle, tx_valid is 0 and tx_data is 0.
Constraints
- Drive
tx_dataandtx_validto 0 when the synchronous active-highrstis asserted. - Transmit the 4-bit payload strictly LSB first.
- Ignore any
startassertions that occur whiletx_validis already high. - Output
tx_dataandtx_validdirectly from flip-flops to prevent glitching on the interface.
Topics
Solve this problem
Place the gates, wire them up and watch the signals settle. Every submission runs on the same simulation engine that grades it.
This problem is part of Codiode Pro. The statement above is free to read.
The circuit builder and code editor need a desktop screen. On a phone, read the problem here and open it on a laptop to solve.