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

Analyze: Unused Register Optimization

HardLogic CircuitAnalyze

Synthesis tools aggressively optimize RTL to minimize silicon area and power by removing logic that does not affect any observable output.

The provided RTL module defines a 4-bit shift register chain fed by input din and clocked by clk. The chain consists of sequential registers reg_a, reg_b, reg_c, and reg_d. The final register reg_d is assigned to an internal wire but is never driven to an output port.

Analyze the synthesis behavior for this module. Determine how the synthesizer treats the register chain and calculate the final flip-flop count in the generated netlist.

Constraints

  • Assume standard synthesis behavior with default optimization flags enabled.
  • Assume no synthesis directives like (* keep *) or (* dont_touch *) are present in the RTL.
  • The module has no other logic besides this specific shift register chain.

Topics

optimizationsynthesisdead-code-eliminationyosys

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