Silicon Lab
Protocols Problems
Build a design, hunt its bugs, or repair what fails. Every answer runs on a real simulator.
All Problems
Build starts from a specification: make it work, then make it small or fast. Bug Hunt asks for the checker or the test that catches broken designs. Repair hands you a failure: find the cause, then fix the design.
Branches follow problem ratings. Choose any available problem.
- Easy
- Medium
- Hard
- Expert
- Solved
- Started
- Your next challenges
- Sign in to open
- Draft
Sign in to earn a rating and open every challenge.
On-Chip Interconnect Protocols
Bus basics, then the AMBA buses: AXI, APB and AHB.
Protocols · P1 Protocol Fundamentals
- P1.3.1 Implement a Sink Implement Medium Browser
- P1.3.2 Catch the Broken Sources Verify Hard Browser
- P1.4.1 Beats into Transactions Implement Easy Browser
- P1.5.1 The Throughput That Never Rose Debug Medium Browser
- P1.6.1 The FIFO That Overflowed Debug Medium Browser
- P1.6.2 A Credit Counter Implement Medium Browser
- P1.7.1 A Scoreboard Keyed by Tag Implement Medium Browser
- P1.8.1 Fix the Strobe Fix Easy Browser
- P1.9.1 A Round-Robin Arbiter Model Implement Medium Browser
- P1.10.1 Properties for the Link Verify Hard Verilator
- P1.11.2 Break the Links Break It Medium Browser
- P1.11.3 The Beat That Arrived Late Debug Medium Browser
- P1.11.4 Fix the Sink Fix Medium Browser
- P1.11.5 A Monitor for the Link Implement Medium Browser
- P1.11.1 Catch Every Broken Link Verify Hard Browser
Protocols · P2 AXI
- P2.2.1 Catch the Broken Managers Verify Hard Browser
- P2.3.1 The Write Dependencies Verify Hard Browser
- P2.4.1 RDATA Not Held Debug Medium Browser
- P2.5.1 An Issuer with N Outstanding Implement Medium Browser
- P2.6.1 The Address of Every Beat Implement Medium Browser
- P2.6.2 The WRAP Boundary Fix Medium Browser
- P2.7.1 The Lane Mapper Implement Medium Browser
- P2.8.1 A Byte-Accurate Write Memory Implement Hard Browser
- P2.9.1 The Strobe Handling Fix Medium Browser
- P2.10.1 The Same-ID Order Checker Verify Hard Browser
- P2.11.1 An ID-Keyed Scoreboard Implement Medium Browser
- P2.12.1 The Stale Read Debug Medium Browser
- P2.13.1 An Exclusive Monitor Implement Medium Browser
- P2.15.1 A Lite Subordinate Fix Medium Browser
- P2.16.1 Six Properties for the Link Verify Hard Verilator
- P2.17.1 The AXI Monitor Implement Hard UVM
- P2.18.2 Break the Subordinates Break It Medium Browser
- P2.18.3 Break the Managers Break It Medium Browser
- P2.18.4 The Beat That Landed in the Wrong Word Debug Medium Browser
- P2.18.5 The Subordinate That Reordered Fix Medium Browser
- P2.18.1 Catch Every Broken Subordinate Verify Hard Browser
- P2.18.6 A Beat-to-Transaction Monitor Implement Hard Browser
Protocols · P3 APB
- P3.2.2 An APB Requester Implement Medium Browser
- P3.2.1 An APB Register Block Implement Hard Browser
- P3.3.1 Stale Read Data Debug Medium Browser
- P3.4.1 The Error on the Wrong Cycle Fix Easy Browser
- P3.5.1 The Strobes Fix Easy Browser
- P3.6.1 Decoder and Read Mux Implement Medium Browser
- P3.7.1 The Bridge's APB Side Implement Hard Browser
- P3.8.1 Properties for the APB Link Verify Hard Verilator
- P3.9.1 The APB Monitor Implement Medium UVM
- P3.9.2 The Register Adapter Implement Medium UVM
- P3.10.2 Break the Completers Break It Medium Browser
- P3.10.3 The FIFO That Lost Entries Debug Medium Browser
- P3.10.1 Catch Every Broken Completer Verify Hard Browser
Protocols · P4 AHB
- P4.2.1 A Zero-Wait AHB Subordinate Implement Medium Browser
- P4.3.1 The Write That Happened on IDLE Debug Medium Browser
- P4.4.1 The Hold Checker Verify Hard Browser
- P4.5.1 A One-Cycle Error Fix Medium Browser
- P4.6.1 The Beat Generator Implement Medium Browser
- P4.6.2 WRAP8 Fix Medium Browser
- P4.7.1 Lane Handling Fix Medium Browser
- P4.8.1 The Mux Fix Medium Browser
- P4.8.2 Decoder and Default Subordinate Implement Medium Browser
- P4.9.1 An Exclusive Access Monitor Implement Hard Browser
- P4.10.1 Properties for the AHB Link Verify Hard Verilator
- P4.11.1 The AHB Monitor Implement Hard UVM
- P4.12.2 Break the Subordinates Break It Medium Browser
- P4.12.3 The Read That Returned Its Neighbour's Data Debug Medium Browser
- P4.12.1 Catch Every Broken Subordinate Verify Hard Browser
- P4.12.4 An AHB-to-APB Bridge Implement Hard Browser
Peripheral & Serial Interface Protocols
Serial fundamentals, then UART, SPI and QSPI, I2C and I3C.
Module P6 · Protocols · P6 UART
- P6.2.1 Encode a UART Frame Implement Easy Browser
- P6.3.2 Move the Sample into the Bit Fix Hard Browser
- P6.4.1 A Receiver That Survives the Sweep Implement Hard Browser
- P6.4.2 Locate the First Displaced Sample Debug Hard Browser
- P6.5.1 The Missing Overrun Flag Fix Medium Browser
- P6.5.2 Check UART Errors Without False Alarms Verify Hard Browser
- P6.6.1 RTS and CTS Around a Byte FIFO Implement Medium Browser
- P6.6.2 A Compact UART Voter and Sampler Optimize Hard Simulation + synthesis
- P6.7.1 A UART Monitor That Earns Its Verdict Verify Hard Browser
- P6.7.2 Find Five Faulty UART Receivers Break It Hard Browser
- P6.7.3 Find the Lost Frame After Recovery Debug Hard Browser
Module P7 · Protocols · P7 SPI and QSPI
- P7.1.1 An Eight-Clock SPI Peripheral Implement Easy Browser
- P7.2.2 Diagnose the Displaced SPI Reply Debug Medium Browser
- P7.2.1 Check Mode and Edge Discipline Verify Hard Browser
- P7.3.1 Sample MISO After It Becomes Valid Fix Medium Browser
- P7.4.1 Release MISO When Deselected Fix Medium Browser
- P7.4.2 Load Three Devices Through One Chain Implement Medium Browser
- P7.5.1 A Monitor for All Four SPI Modes Implement Medium Browser
- P7.5.2 Prove the SPI Sampling Edge Verify Hard Verilator
- P7.6.1 Decode the Flash Read Phases Implement Medium Browser
- P7.7.1 Release the Quad Lanes at Turnaround Fix Medium Browser
- P7.8.1 WEL and BUSY at a Flash Command Boundary Implement Medium Browser
- P7.8.2 The Program That Crossed a Page Debug Hard Browser
- P7.9.1 Fetch a Wrapped Quad Flash Line Implement Hard Simulation + synthesis
- P7.9.2 A Cache Line in Eighty-Four Clocks Optimize Hard Browser
- P7.10.1 Check the Controller and Its Flash Model Verify Hard Browser
- P7.10.2 Choose Flash Programs That Expose Hidden Faults Break It Hard Browser
- P7.11.1 Complement the Flash Protection Range Fix Medium Browser
- P7.12.1 Keep Suspended Erase Commands Isolated Fix Medium Browser
- P7.13.1 Respect Each Security Register Lock Fix Medium Browser
- P7.14.1 Honor Opcode-Dependent Flash Timing Fix Medium Browser
Module P8 · Protocols · P8 I2C
- P8.1.1 Read the Open-Drain Driver View Implement Easy Browser
- P8.2.1 Recognize START STOP and Repeated START Implement Easy Simulation + synthesis
- P8.3.1 Receive Eight Bits and Own the Ninth Implement Easy Browser
- P8.3.2 The ACK That Outlived Its Slot Debug Hard Browser
- P8.4.2 Seven Address Bits Plus Direction Fix Medium Browser
- P8.4.1 A Register Target with Repeated START Implement Hard Browser
- P8.5.1 Wait for the Stretched Clock Fix Medium Browser
- P8.5.2 Verify a Controller Under Legal Stretching Verify Medium Browser
- P8.6.1 Separate Five Arbitration Failures Break It Hard Browser
- P8.6.2 Prove Arbitration Withdrawal Verify Hard Verilator
- P8.6.3 A Controller That Withdraws on Arbitration Loss Implement Hard Browser
- P8.7.2 Respect Bus-Free and Fm-Plus Timing Fix Medium Browser
- P8.7.1 Measure Logical I2C Timing Without Rejecting a Stretch Verify Hard Browser
- P8.8.1 Recover a Stuck SDA with at Most Nine Clocks Implement Hard Browser
- P8.8.2 Why Nine Recovery Clocks Never Arrived Debug Hard Browser
- P8.10.1 Decode Seven-Bit Ten-Bit and General-Call Traffic Implement Hard Browser
- P8.11.4 Keep a Combined Read on the Busy Bus Fix Medium Browser
- P8.11.1 Verify the Target Across Its Transaction Boundaries Verify Hard Browser
- P8.11.2 A Small Program for Controller and Target Faults Break It Hard Browser
- P8.11.3 Locate the Misread Most-Significant Bit Debug Hard Browser
- P8.11.5 Shrink the Bit Controller Without Losing Stretch State Optimize Hard Simulation + synthesis
- P8.12.1 Send the UFm Ninth Bit High Fix Medium Browser
- P8.13.1 Budget the Clock from Measured Bus Edges Implement Easy Browser
Module P9 · Protocols · P9 I3C
- P9.1.1 Keep Legacy and SDR Reads Distinct Fix Medium Browser
- P9.2.1 Write the SDR Odd-Parity T-Bit Fix Medium Browser
- P9.3.1 Release SDA for the Header ACK Fix Medium Browser
- P9.4.1 Withdraw After Losing DAA Arbitration Fix Medium Browser
- P9.5.1 Address a Direct CCC to One Target Fix Medium Browser
- P9.6.1 Send the Mandatory IBI Byte Fix Medium Browser
- P9.7.1 Distinguish HDR Restart from Exit Fix Medium Browser
- P9.8.1 Catch Contention and Legacy Stretching Verify Medium Browser
- P9.9.1 Take SCL Only After the Handoff STOP Fix Medium Browser
High-Speed Interface Protocols
The links that carry data off the chip at speed.
Coming soonNo problems match these filters.