CodiodeCodiode
Home
Problem Solving
Skill Tracks
My Assignments
Contests
Leaderboard
Community
Settings
Codiode/Problems/Sequential Logic

I2C Device Address Matcher

HardLogic CircuitBuild

Every device on an I2C bus observes every transaction, but only the targeted slave must wake up and respond. The address matcher monitors the serial data line following a start condition and flags when the incoming address matches its hardcoded ID.

Construct a 7-bit address matcher for an I2C slave with the hardcoded address 0x5A (binary 1011010). The circuit receives an active-high start signal indicating an I2C Start condition. On the subsequent 7 clock cycles, it shifts in the sda input MSB first. If the received 7-bit sequence equals 1011010, the addressed output must assert high exactly on the 7th clock cycle and remain high until the next start pulse or system rst.

Constraints

  • The addressed output must only assert high after exactly 7 bits have been processed.
  • Address matching must be hardcoded to 0x5A.
  • An active-high start pulse must reset the internal bit counter and clear the addressed flag.
  • An active-high rst must asynchronously clear all internal state.

Topics

Shift RegisterI2CAddress MatcherWake-up Logic

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.

Sign in to solveSee what Pro unlocks

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.

Related problems

  • 3-bit Ripple Counter from Toggle Flip-FlopsEasy
  • D Latch from a 2:1 MUXEasy
  • 2-bit Ring CounterEasy
  • T Flip-Flop from a D Flip-FlopEasy
  • Handshake Deadlock Due to Early ResetHard
  • Reconvergence of Individually Synchronized BitsHard
  • Debug: Asynchronous Clear GlitchHard
  • Clock Gate Enable Crossing DomainsHard

Browse all problems · Learning tracks