High-level synthesis implementation of scalable matrix-vector multiplier IP targeted for beamforming

Loading...
Thumbnail Image
Journal Title
Journal ISSN
Volume Title
Sähkötekniikan korkeakoulu | Master's thesis
Date
2018-06-18
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
64 + 7
Series
Abstract
Beamforming is a technology that will be used in the upcoming fourth and fifth generation mobile networks. Beamforming is performed by adjusting the phases and amplitudes of transmitted signals in a multi-antenna transmitter. A beam is formed when the transmitted signals have constructive interference at desired direction. The adjustment may be done in digital domain which requires a matrix-vector multiplication. Since the multiplication needs to be performed with high frequency, it's reasonable to use a hardware multiplier. A scalable matrix-vector multiplier design applicable for beamforming is developed. The design is based on an atypical non-recoded radix-8 multiplication algorithm. The design is made to be easily scalable. It supports both real and complex integers, any length for the integers and practically any dimensions for the matrix and vector. Each design parameter can be configured through corresponding template parameter in the source code. The design is implemented using C++ and high-level synthesis and the implementation is done for a FPGA. The selected FPGA is part of Intel Stratix 10 SX 2800 series devices which are the latest high-end devices. The results for resource utilization and performance are presented. In addition to the matrix-vector multiplier, all its subcomponents are studied and their results are presented, thus giving an extensive overview of the design. Compared to the reference design, the developed design proved to have comparable or even better performance but consumed significantly more resources. Fortunately, the reasons behind high resource consumption were detected and future development may be based on those findings.

Keilanmuodostus on teknologia, jota tullaan käyttämään tulevissa neljännen ja viidennen sukupolven matkapuhelinverkoissa. Keilanmuodostus suoritetaan säätämällä lähetettävien signaalien vaiheita ja amplitudeja moniantennisessa lähettimessä. Keila muodostuu, kun lähetettävät signaalit interferoivat konstruktiivisesti halutussa suunnassa. Säätäminen voidaan tehdä digitaalisesti, mikä vaatii matriisi–vektorikertolaskua. Koska kertolaskun suorituksen frekvenssi on korkea, on suorittamiseen syytä käyttää raudalla toteutettua kertojaa. Työssä kehitetään skaalautuva matriisi–vektori-kertoja, joka soveltuu keilanmuodostukseen. Kertoja perustuu poikkeavaan algoritmiin, jossa ei käytetä rekoodausta ja jonka kantaluku on kahdeksan. Kertojasta on suunniteltu hyvin skaalautuva. Se tukee sekä reaalisten että kompleksisten kokonaislukujen kertolaskua, kaiken pituisia lukuja ja käytännössä kaiken kokoisia matriiseja ja vektoreja. Kukin kertojan parametri voidaan määrittää lähdekoodissa vastaavan funktiopohjaparametrin avulla. Kertoja on toteutettu C++:lla ja käyttämällä korkean tason synteesiä. Toteutus on tehty FPGA:lle. Valittu FPGA on Intelin Stratix 10 SX 2800 sarjaan kuuluva piiri, joka edustaa Intelin uusimpia ja suorituskykyisimpiä piirejä. Tuloksissa esitetään resurssienkulutus ja suorituskyky. Matriisi–vektori-kertojan lisäksi kaikkia sen alikomponentteja tarkastellaan ja niiden tulokset esitetään. Näin ollen työ antaa kattavan yleiskuvan kertojasta. Referenssitoteutukseen verrattuna työssä kehitetyn kertojan suorituskyky on lähes yhtä hyvä tai jopa parempi, mutta resursseja se kuluttaa huomattavasti enemmän. Onneksi syy korkeaan resurssienkulutukseen havaittiin ja jatkokehitystä voidaan tehdä havaintojen perusteella.
Description
Supervisor
Halonen, Kari
Thesis advisor
Guevorkian, David
Keywords
high-radix multiplication, matrix-vector multiplier, beamforming, high-level synthesis
Other note
Citation