Question: Structural Multiplier 1. Create a new module called MULTB. This module should have l-bit inputs clk, reset, start; 8-bit inputs A = (a7, 06, 03,

Structural Multiplier 1. Create a new module called MULTB. This module should have l-bit inputs clk, reset, start; 8-bit inputs A = (a7, 06, 03, 04, 03, 29, Q1, 20), B = (67, 66, 65, 64, 63, bz, b1,bo); 16-bit output result, R=(115.714,713,812, 711, 710, 79, 78, 77, 76, 75, 74,13,12,71.ro); 1-bit output done. 2. You will use a simple binary multiplication algorithm as shown in Figure 1. You should multiply the multiplicand A by each bit of the multiplier B. You should define 16-bit registers PPO, PP1, PP2, PP3. PP4, PP5, PP6, PP7 to save partial products. After that, perform summation of these partial products and obtain the final result R. The calculation of the values of registers is as follows: PPO = bo * A* 20 PP1 = b * A* 2! PP2 = b2 * A* 22 PP3 = b3 * A* 23 PP4 = b4 * A* 24 PP5 = b; * A* 25 PP6 = 56* A* 26 PP7 = by * 4 *27 3. If reset and start signals are both low, then all the outputs and the registers must be zero. 4. Use an always block to calculate partial products. 5. Use 16-bit Ripple Carry Adders that you designed in Experiment 4 in order to obtain the final result R. Define 16-bit wires suml, sum2, sum3, sumd, sum5. sum6, sum6, sum7 as the outputs of the adders. The sum7 value will written to the result. 6. Your circuit should produce the final result, at the rising edge of the second clock cycle after the inputs applied. Hence, the done signal should be one at the second rising edge as well. 3 7. Write a testbench to ensure that your circuit is working correctly. Structural Multiplier 1. Create a new module called MULTB. This module should have l-bit inputs clk, reset, start; 8-bit inputs A = (a7, 06, 03, 04, 03, 29, Q1, 20), B = (67, 66, 65, 64, 63, bz, b1,bo); 16-bit output result, R=(115.714,713,812, 711, 710, 79, 78, 77, 76, 75, 74,13,12,71.ro); 1-bit output done. 2. You will use a simple binary multiplication algorithm as shown in Figure 1. You should multiply the multiplicand A by each bit of the multiplier B. You should define 16-bit registers PPO, PP1, PP2, PP3. PP4, PP5, PP6, PP7 to save partial products. After that, perform summation of these partial products and obtain the final result R. The calculation of the values of registers is as follows: PPO = bo * A* 20 PP1 = b * A* 2! PP2 = b2 * A* 22 PP3 = b3 * A* 23 PP4 = b4 * A* 24 PP5 = b; * A* 25 PP6 = 56* A* 26 PP7 = by * 4 *27 3. If reset and start signals are both low, then all the outputs and the registers must be zero. 4. Use an always block to calculate partial products. 5. Use 16-bit Ripple Carry Adders that you designed in Experiment 4 in order to obtain the final result R. Define 16-bit wires suml, sum2, sum3, sumd, sum5. sum6, sum6, sum7 as the outputs of the adders. The sum7 value will written to the result. 6. Your circuit should produce the final result, at the rising edge of the second clock cycle after the inputs applied. Hence, the done signal should be one at the second rising edge as well. 3 7. Write a testbench to ensure that your circuit is working correctly
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
