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

Constant Multiplier Optimization

MediumVerilog / SystemVerilogBuild

Digital signal processing pipelines often require scaling data by fixed coefficients. Instead of instantiating a full generic multiplier, synthesis tools can optimize multiplication by a constant into a dedicated tree of adders and shifters, drastically reducing logic utilization and critical path delay.

The module receives an 8-bit unsigned integer input and multiplies it by the fixed decimal constant 123. The output must be a 15-bit unsigned integer representing the full-precision product of the input and the constant.

This is a purely combinational circuit. There is no clock or reset. The output must update immediately based on the current input.

| Signal | Direction | Width | Description | |--------|-----------|-------|-------------| | din | input | 8 | Unsigned multiplicand. | | dout | output | 15 | Unsigned product of din and 123. |

Constraints

  • The design must be purely combinational; no latches or flip-flops may be inferred.
  • The output dout must be exactly wide enough to hold the maximum possible value (255 * 123 = 31365), which requires 15 bits.
  • The input is treated as an unsigned integer.

Topics

optimizationcombinationalarithmeticsynthesis

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