Project 4 – Multiplication and Division Hardware

$24.99 $18.99

The purpose of this project is for you to build 16-bit multiplication and 16-bit division hardwares as we discussed in class in logisim. Introduction to the Multiplication Hardware The 16-bit multiplication hardware that we discussed in class is shown below: Inside the multiplication hardware, you need three registers, Multiplicand (32-bit), Multiplier (16-bit), and Product (32-bit).…

Rate this product

You’ll get a: zip file solution

 

Description

Rate this product

The purpose of this project is for you to build 16-bit multiplication and 16-bit division hardwares as we discussed in class in logisim.

Introduction to the Multiplication Hardware

The 16-bit multiplication hardware that we discussed in class is shown below:

Inside the multiplication hardware, you need three registers, Multiplicand (32-bit), Multiplier (16-bit), and Product (32-bit). For these registers, you do not have build them from scratch. Simply use the register component under \Memory”. Similarly, for the 32-bit adder, simply use the one supplied by the logisim. Note that the above hardware is for multiplying two 16-bit numbers and produce a 32-bit result. The owchart of this hardware is shown below:

Start

Multiplier0 = 1 1. Test Multiplier0 = 0

Multiplier0

1a. Add multiplicand to product and

place the result in Product register

  1. Shift the Multiplicand register left 1 bit

    1. Shift the Multiplier register right 1 bit

No: < 16 repetitions

16nd rep?

Yes: 16 recetitions

Done

Recall that in the rst step, this hardware have to load the top 16-bit of the multiplicand register with 0s and the bottom 16-bit with Multiplicand, load the product register with 0s, and load the multiplier register with the Multiplier. After all three registers are loaded with proper values, then the algorithm can start as follows.

  1. product = product + (multiplicand multiplier0): In this step, if multiplier0 is 0, we actually perform product = product + 0. But if multiplier0 is 1, we perform product = product + multiplicand. This can be done by adding a 32-bit (2-input) multiplexer. This multiplexer has two inputs, one from the multiplicand and another one is imply a 32-bit con-stant 0. Simply use the Least Signi cant Bit (LSB) of the multiplier register (multiplier0) to choose which one to go to the output as shown below:

  1. by writing 0. So, you also need another multiplexer to choose whether you want to write

0 or output from 32-bit adder to the product register as shown below:

the signal M Ready. The output of the Counter will be use as the address of a ROM. The content of the ROM will be control signal for each clock cycle. In other words, you can program what do you want to do at each clock cycle by content of the ROM.

Note that you MUST set the maximum value of the counter to stay at a speci c value based on the number of clock cycles that your hardware uses. MAKE SURE that the last output value of the ROM should maintain the output of your product register. When we grade your circuit, we will simply put value of multiplicand and multiplier, and let the clock tick until M Ready turn green without stopping the clock and check the result.

Introduction to the Division Hardware

The 16-bit division hardware that we discussed in class is shown below:

Start

  1. Subtract the Divisor register from the Remainder register and place the result in the Remainder register

Remainder >= 0

Test

Remainder < 0

Remainder

5

Project 4 - Multiplication and Division Hardware
$24.99 $18.99