| Input: A collection of multiplication operations of three different types obtained from Algorithm A |
| Output: Ordered of multiplication operation instances identified for mapping to DSP blocks. |
| (1) Calculate the number of FAs required using Tables 4, 6, and 8 and (4) |
| (2) Calculate the number of AND gates required using (3) |
| (Note that no AND gate is required when multiplying with constants) |
| (3) Calculate “Equivalent LUT Cost” for all SCM and variable-variable multiplication |
| operations using (5) |
| (4) Calculate “Equivalent LUT Cost” for different sets of MCM operations using (5) |
| (4.1) In each set, select the operation with the maximum “Equivalent LUT Cost” |
| that is “MAX(Equivalent LUT Cost)”. |
| (5) Calculate “Equivalent LUT Cost” for different MULT-(ADD/SUBTRACT) Chains using (5) |
| (5.1) In each set, select the multiplication operation with the maximum “Equivalent LUT Cost” |
| that is “MAX(Equivalent LUT Cost)”. |
| (6) Remove multiplication operations part of MULT-(ADD/SUBTRACT) chains from the H(MULT) hash table |
| (7) Arrange multiplication operations from 5.1 and 6 in descending order of “Equivalent LUT Cost” |
| as per Steps (3), (4.1) and (5.1) to form list |
| (8) Map multiplication operations from the top in list to DSP blocks until DSP blocks are exhausted |
| (9) Map remaining multiplication operations to LUTs |