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

Divide by 8 with 50 Percent Duty Cycle

EasyLogic CircuitBuild

Many analog components and memory interfaces require strict 50 percent duty cycles to function correctly. A divide-by-8 circuit generates a symmetric slow clock from a high-speed reference.

The circuit must track the number of clock cycles and output a square wave on clk_out. The output frequency must be exactly one-eighth of the input clock frequency. To maintain a 50 percent duty cycle, clk_out must remain low for four cycles and high for four cycles. When the synchronous active-high rst is asserted, the internal counter must clear and clk_out must be driven to 0.

| rst | internal state | clk_out | |-------|----------------|-----------| | 1 | 0 | 0 | | 0 | 1 | 0 | | 0 | 2 | 0 | | 0 | 3 | 0 | | 0 | 4 | 1 | | 0 | 5 | 1 | | 0 | 6 | 1 | | 0 | 7 | 1 | | 0 | 0 | 0 |

Constraints

  • Implement using a synchronous 3-bit counter.
  • The rst signal must be synchronous and active-high.
  • Do not use latches or asynchronous resets.

Topics

Synchronous LogicClock DivisionCounters

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