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

PISO with Tristate Output Enable

HardLogic CircuitBuild

Multiple chips on a single serial bus will cause contention if all drive the line simultaneously. Tristate output buffers allow multiple shift registers to share a single serial data line by disconnecting inactive chips.

Construct a 4-bit Parallel-In Serial-Out (PISO) shift register. On every clock cycle, the internal 4-bit register updates based on the load signal. When load is 1, the register loads the parallel inputs: D0 into Q0, D1 into Q1, D2 into Q2, and D3 into Q3. When load is 0, the register shifts right: sin moves into Q0, Q0 into Q1, Q1 into Q2, and Q2 into Q3.

The OE_bar signal controls bus access for the final stage Q3:

| OE_bar | sout | |----------|--------| | 0 | Q3 | | 1 | Z |

Constraints

  • Use exactly four D flip-flops for the internal register.
  • Implement a tristate buffer for the sout pin.
  • The internal shift register must continue to load and shift data on every clock cycle even when OE_bar is 1.

Topics

SequentialShift RegistersTristateBus 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