High-radix complex number multiplier implementations on FPGA

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Sähkötekniikan korkeakoulu | Master's thesis

Date

2018-05-14

Department

Major/Subject

Micro- and Nanoelectronic Circuit Design

Mcode

ELEC3036

Degree programme

NanoRad - Master’s Programme in Nano and Radio Sciences (TS2013)

Language

en

Pages

50

Series

Abstract

Multiplication is often the bottleneck in digital signal processing applications. Therefore, faster and more compact hardware multipliers are needed. Multiplication is computed as a series of additions from the hardware point of view. The performance of a hardware multiplier can be enhanced by adding more parallelism at the cost of using more resources. Multiplication of complex numbers is computed as multiplication and addition of real numbers. Therefore, designing an efficient complex number multiplier is a more complicated task than designing a real number multiplier. In this work, we develop multiple complex number multiplication algorithms, along with their respective implementations on FPGA technology. We design the multipliers with the radix-4, radix-8, and radix-16 Booth encoding, as well as the radix-8 non-recoded algorithms. All proposed multipliers are implemented and verified in C++. Catapult HLS tool is used to convert the behavioral models to VHDL, which are synthesizable on Intel Stratix 10 1SX280LN3F43E1VG FPGA. In the next step, we compare the area and performance of the implementations. Finally, we propose the most suitable multiplier for low latency and high performance applications.

Kertolasku rajoittaa usein digitaalisen signaalinkäsittelyn sovellusten nopeutta, minkä vuoksi nopeampia ja pienempiä kertojia tarvitaan jatkuvasti. Kertolaskuoperaatio toteutetaan laitteistoissa yhteenlaskujen sarjana. Kertojan suorituskykyä voidaan parantaa lisäämällä yhteenlaskuoperaatioiden rinnakkaisuutta, mikä vaatii enemmän resursseja. Kompleksilukujen kertolasku voidaan toteuttaa reaalilukujen kerto- ja yhteenlaskuna. Kompleksilukuja kertovan laitteiston suunnittelu on siten huomattavasti monimutkaisempaa kuin reaalilukuja kertovan laitteiston suunnittelu. Tässä työssä suunnitellaan useita kompleksilukukertojia FPGA-alustalle eri algoritmeja hyödyntäen. Kertojat kehitetään Boothin algoritmeilla kantaluvuilla 4, 8 ja 16. Lisäksi yksi kantalukua 8 käyttävä kertoja suunnitellaan ilman enkoodausta. Kaikki tässä työssä esitellyt kertojat on kuvattu C++- ohjelmointikielellä, ja VHDL-versiot on luotu Catapult HLS-työkalulla. Kertojat syntetisoidaan Intelin Stratix 10 1SX280LN3F43E1VG FPGA-laitteistolle. Työssä vertaillaan toteutettujen kertojien kokoa ja suorituskykyä, joiden perusteella esitetään sopivimmat kertojat matalan viiveen ja korkean suorituskyvyn sovelluksiin.

Description

Supervisor

Ryynänen, Jussi

Thesis advisor

Guevorkian, David

Keywords

complex multiplication, high-radix, FPGA, HLS

Other note

Citation