JUCS - Journal of Universal Computer Science 28(10): 1030-1057, doi: 10.3897/jucs.86282
FPGA Implementation of Fast Binary Multiplication Based on Customized Basic Cells
expand article infoAbd Al-Rahman Al-Nounou, Osama Al-Khaleel, Fadi Obeidat§, Mohammad Al-Khaleel|
‡ Jordan University of Science and Technology, Irbid, Jordan§ Cadence Design Systems, Austin, United States of America| Khalifa University, Abu Dhabi, United Arab Emirates
Open Access
Abstract

Multiplication is considered one of the most time-consuming and a key operation in wide variety of embedded applications. Speeding up this operation has a significant impact on the overall performance of these applications. A vast number of multiplication approaches are found in the literature where the goal is always to achieve a higher performance. One of these approaches relies on using smaller multiplier blocks which are built based on direct Boolean algebra equations to build large multipliers. In this work, we present a methodology for designing binary multipliers where different sizes customized partial products generation (CPPG) cells are designed and used as smaller building blocks. The sizes of the designed CPPG cells are 2×2, 3×3, 4×4, 5×5, and 6×6. We use these cells to build 8×8, 16×16, 32×32, 64×64, and 128×128 binary multipliers. All of the CPPG cells and the binary multipliers are described using the VHDL language, tested, and implemented using XILINX ISE 14.6 tools targeting different FPGA families. The implementation results show that the best performance is achieved when cell 3×3 is used and Virtex-7 FPGA is targeted. The binary multipliers that are designed using the proposed CPPG cells achieve better performance when compared with the binary multipliers presented in the literature. As an application that utilizes the proposed multiplier, a Multiply-Accumulate (MAC) unit is designed and implemented in Spartan-3E. The implementation results of the MAC unit demonstrate the effectiveness of the proposed multiplier.

Keywords
Binary multiplier, Parallel Multiplier, Customized Cells, FPGA, VHDL