RTL Design · Medium · SystemVerilog

I²C START / STOP Detector

Detect I²C START and STOP conditions from synchronized SDA/SCL samples.

Task

START occurs when SDA falls while SCL is high. STOP occurs when SDA rises while SCL is high. Pulse each output for one cycle.

Examples

Constraints

What this problem is testing

A strong answer translates the requirement into synthesizable state and combinational logic, states reset and update semantics precisely, and handles boundary conditions rather than only the nominal case.

Interview habit: before coding, state reset behavior, the state that must be stored, and the conditions that update each output.

Verification plan

Common mistakes

Interview follow-up questions

Concepts to review

I2C, START, STOP

Open I²C START / STOP Detector in the HDLForge interactive editor.

Related problems

Explore the RTL Design Practice & Interview Preparation hub.

Continue practising