Presentation is loading. Please wait.

Presentation is loading. Please wait.

VHDL Project II: Array Multiplier Matthew Murach Slides Available at: www.pages.drexel.edu/~mjm46.

Similar presentations


Presentation on theme: "VHDL Project II: Array Multiplier Matthew Murach Slides Available at: www.pages.drexel.edu/~mjm46."— Presentation transcript:

1 VHDL Project II: Array Multiplier Matthew Murach Slides Available at: www.pages.drexel.edu/~mjm46

2 Goals for this Lab/Announcements Finish up the serial adder project. Finish up the serial adder project. Start on array multiplier design Start on array multiplier design The first quiz will be given in the beginning of next week and will cover materials covered in the first few labs as well as chapters 1-3 in the text. The first quiz will be given in the beginning of next week and will cover materials covered in the first few labs as well as chapters 1-3 in the text.

3 Array Multiplier Description The array multiplier that we are designing involves the use of processing elements (PE) to breakdown the task of multiplying an n-bit vector by a n-bit vector. The array multiplier that we are designing involves the use of processing elements (PE) to breakdown the task of multiplying an n-bit vector by a n-bit vector. Using a serial approach much like the adder project the operation should take roughly Using a serial approach much like the adder project the operation should take roughly ~ n operations (slight larger) To design a high performance multiplier we can perform some operations in parallel rather then in serial. To design a high performance multiplier we can perform some operations in parallel rather then in serial.

4 Multiplier Processing Elements N bit multiply and accumulate elements per stage are needed to process a single partial sum. In each clock cycle, the current least significant bit (LSB) will be available at the output. N bit multiply and accumulate elements per stage are needed to process a single partial sum. In each clock cycle, the current least significant bit (LSB) will be available at the output. With N stages the total process takes N clock cycles to finish. Note that at the end of each process, the partial sum is updated and sent to the next stage. With N stages the total process takes N clock cycles to finish. Note that at the end of each process, the partial sum is updated and sent to the next stage. The diagram for this array multiplier is shown on the next slide. The diagram for this array multiplier is shown on the next slide.

5 Multiplication Fundamentals We generally multiply two numbers in the decimal system as follows: We generally multiply two numbers in the decimal system as follows: 11  A value x 12  B value 22  Partial Sum I + 110  Partial Sum II 132  Final Product 132  Final Product Notice that we multiply a by the ones position in B and then add that value to a times the tens position in B. Notice that we multiply a by the ones position in B and then add that value to a times the tens position in B. Notice that we have calculated the ones value of the output in the first partial sum (by the 2 nd partial sum we know that PI(tens) + PII(tens) = output(tens)). Notice that we have calculated the ones value of the output in the first partial sum (by the 2 nd partial sum we know that PI(tens) + PII(tens) = output(tens)).

6 Array Multiplier Layout 4x4 A(0)A(1)A(2)A(3) B(0) B(1) B(2) B(3) F(0) F(1) F(2) F(3) F(6)F(4)F(7)F(5)

7 Array Processing Elements This project should be divided into three separate files. This project should be divided into three separate files. The processing element (one bit accumulate) The processing element (one bit accumulate) The array multiplier (puts these elements together) The array multiplier (puts these elements together) Testbench (tests your design) Testbench (tests your design) The goal of this lab is to design and build a processing element that can be used in the larger array multiplier. The goal of this lab is to design and build a processing element that can be used in the larger array multiplier.

8 Array Processing Elements A simple one bit multiply and accumulate. A simple one bit multiply and accumulate. The equations for these operations are as follows. The equations for these operations are as follows. Be sure to justify these equations in your report. Be sure to justify these equations in your report. Ain = Aout Bin = Bout Pout = Pin xor Cin xor (Ain and Bin) Cout = (Cin and Pin) or (Cin and (Ain and Bin)) or ((Ain and Bin) and Pin) Ain Bin Carry_in Pout Bout Pin Aout Carry_out

9 Project Guidelines Teams: It is suggested that you should work in groups of two on this assignment. Teams: It is suggested that you should work in groups of two on this assignment. Reports should be 2~3 pages in length and have all the source code included. Email or Paper submittal is acceptable. E-mail is the preferred submission method Reports should be 2~3 pages in length and have all the source code included. Email or Paper submittal is acceptable. E-mail is the preferred submission method Reports submitted should detail the methodology used to obtain the final work. Reports submitted should detail the methodology used to obtain the final work. All code submitted should be well commented and should follow good coding guidelines. All code submitted should be well commented and should follow good coding guidelines. The deadline for this project will be announced next class. The deadline for this project will be announced next class.


Download ppt "VHDL Project II: Array Multiplier Matthew Murach Slides Available at: www.pages.drexel.edu/~mjm46."

Similar presentations


Ads by Google