Design a parameterized floating-point multiplier (signed)

Floating-point arithmetic is commonly used in algorithms where the values vary over a relatively large dynamic range. The difference between floating-point and fixed-point arithmetic and is that the later one has a radix point with a predetermined location to divide the fractional part and the integer part. On the other hand, the floating-point representation uses three fields to represent real values: the sign, exponent, and fraction.

Floating-point format
Floating-point format

Continue reading → Design a parameterized floating-point multiplier (signed)

Draw the logical block diagram which the following Verilog code is synthesized to

Continue reading → Draw the logical block diagram which the following Verilog code is synthesized to

What’s the difference between blocking and non-blocking assignments?

Blocking assignments/statements are used to create combinatorial logic which are written as “=” operator. Non-blocking assignments/statements are used to create sequential logic, which are written as “<=” operator. The registers/wire on the left side of blocking assignments are updated immediately while the registers/wire on the left side of non-blocking assignments are updated in the next clock cycle.