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

Parameterized Vector Slicing

HardVerilog / SystemVerilogBuild

Packet parsers and network routers frequently extract specific fields from wide data buses using dynamic offsets. A common operation in these systems is sliding a fixed-width window across a larger data word to capture a specific byte based on a calculated index.

The module receives a 32-bit data word and a dynamically changing 5-bit offset. It evaluates the inputs combinationally and extracts an 8-bit slice starting exactly at the specified bit offset.

This is a purely combinational circuit. There are no clock or reset signals. The output updates immediately when any input changes.

| Signal | Direction | Width | Description | |--------|-----------|-------|-------------| | data_in | input | 32 | The full data word to be sliced | | offset | input | 5 | The starting bit index for the extraction | | data_out | output | 8 | The extracted 8-bit slice starting at offset |

Constraints

  • The circuit must be purely combinational.
  • The offset input is guaranteed to be in the range 0 to 24; you do not need to handle out-of-bounds indices.
  • You must dynamically slice the input vector based on the variable offset.

Topics

Combinational LogicData RoutingVerilog Syntax

Solve this problem

Write the module in Verilog, SystemVerilog or VHDL. Your submission is compiled and simulated against a real testbench — you get the waveform back, not a stored answer.

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

  • Single Continuous AssignmentEasy
  • Basic Vector ConcatenationEasy
  • Ternary Operator MuxEasy
  • Underscores for ReadabilityEasy
  • Left Hand Side ConcatenationEasy
  • Inout Port MechanicsEasy
  • Explicit Binary LiteralsEasy
  • Vector Port EndiannessEasy

Browse all problems · Learning tracks