Abd Al-Rahman Al-Nounou, O. Al-Khaleel, Fadi Obeidat, M. Al-khaleel
{"title":"FPGA Implementation of Fast Binary Multiplication Based on Customized Basic Cells","authors":"Abd Al-Rahman Al-Nounou, O. Al-Khaleel, Fadi Obeidat, M. Al-khaleel","doi":"10.3897/jucs.86282","DOIUrl":null,"url":null,"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.","PeriodicalId":14652,"journal":{"name":"J. Univers. Comput. Sci.","volume":"50 1","pages":"1030-1057"},"PeriodicalIF":0.0000,"publicationDate":"2022-10-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"J. Univers. Comput. Sci.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.3897/jucs.86282","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
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.
乘法运算被认为是各种嵌入式应用程序中最耗时、最关键的运算之一。加速此操作对这些应用程序的整体性能有重大影响。在文献中发现了大量的乘法方法,其目标始终是实现更高的性能。其中一种方法依赖于使用基于直接布尔代数方程的较小乘数块来构建大型乘数。在这项工作中,我们提出了一种设计二进制乘法器的方法,其中不同尺寸的定制部分产品生成(CPPG)单元被设计并用作较小的构建块。设计的CPPG细胞尺寸分别为2×2、3×3、4×4、5×5、6×6。我们使用这些单元格构建8×8、16×16、32×32、64×64和128×128二进制乘数器。所有CPPG单元和二进制乘法器都使用VHDL语言进行描述,并使用针对不同FPGA系列的XILINX ISE 14.6工具进行测试和实现。实现结果表明,当单元为3×3,以Virtex-7 FPGA为目标时,可以获得最佳性能。与文献中提出的二进制乘法器相比,使用所提出的CPPG细胞设计的二进制乘法器具有更好的性能。作为一种利用所提出的乘法器的应用,在Spartan-3E中设计并实现了一个乘法累加(MAC)单元。MAC单元的实现结果证明了所提乘法器的有效性。