FPGA Tools Study Process
Total Page:16
File Type:pdf, Size:1020Kb
COMPARATIVE STUDY OF TOOL-FLOWS FOR RAPID PROTOTYPING OF SOFTWARE-DEFINED RADIO DIGITAL SIGNAL PROCESSING A dissertation submitted to the Department of Electrical Engineering, UNIVERSITY OF CAPE TOWN, in fulfilment of the requirements for the degree of Master of Science at the University of Cape Town by KHOBATHA SETETEMELA Supervised by : Town DR SIMON WINBERG Cape of University c University of Cape Town February 8, 2019 The copyright of this thesis vests in the author. No quotation from it or information derivedTown from it is to be published without full acknowledgement of the source. The thesis is to be used for private study or non- commercial research purposes Capeonly. of Published by the University of Cape Town (UCT) in terms of the non-exclusive license granted to UCT by the author. University Declaration I know the meaning of plagiarism and declare that all the work in this dissertation, save for that which is properly acknowledged and referenced, is my own. It is being submitted for the degree of Master of Science in Electrical Engineering at the University of Cape Town. This work has not been submitted before for any other degree or examination in any other university. Signature of Author: ............................ University of Cape Town Cape Town February 8, 2019 ABSTRACT This dissertation is a comparative study of tool-flows for rapid prototyping of SDR DSP operations on pro- grammable hardware platforms. The study is divided into two parts, focusing on high-level tool-flows for imple- menting SDR DSP operations on FPGA and GPU platforms respectively. In this dissertation, the term ‘tool-flow’ refers to a tool or a chain of tools that facilitate the mapping of an application description specified in a program- ming language into one or more programmable hardware platforms. High-level tool-flows use different techniques, such as high-level synthesis to allow the designer to specify the application from a high level of abstraction and achieve improved productivity without significant degradation in the design’s performance. SDR is an emerging communications technology that is driven by - among other factors – increasing demands for high-speed, interop- erable and versatile communications systems. The key idea in SDR is the need to implement as many as possible of the radio functions that were traditionally defined in fixed hardware, in software on programmable hardware processors instead. The most commonly used processors are based on complex parallel computing architectures in order to support the high-speed processing demands of SDR applications, and they include FPGAs, GPUs and multicore general-purpose processors (GPPs) and DSPs. The architectural complexity of these processors re- sults in a corresponding increase in programming methodologies which however impedes their wider adoption in suitable applications domains, including SDR DSP. In an effort to address this, a plethora of different high-level tool-flows have been developed. Several comparative studies of these tool-flows have been done to help – among other benefits – designers in choosing high-level tools to use. However, there are few studies that focus on SDR DSP operations, and most existing comparative studies are not based on well-defined comparison criteria. The approach implemented in this dissertation is to use a system engineering design process, firstly, to define the qualitative comparison criteria in the form of a specification for an ideal high-level SDR DSP tool-flow and, secondly, to implement a FIR filter case study in each of the tool-flows to enable a quantitative comparison in terms of programming effort and performance. The study considers Migen- and MyHDL-based open-source tool-flows for FPGA targets, and CUDA and Open Computing Language (OpenCL) for GPU targets. The ideal high-level SDR DSP tool-flow specification was defined and used to conduct a comparative study of the tools across three main design categories, which included high-level modelling, verification and implementation. For tool-flows tar- geting GPU platforms, the FIR case study was implemented using each of the tools; it was compiled, executed on a GPU server consisting of 2 GTX Titan-X GPUs and an Intel Core i7 GPP, and lastly profiled. The tools were moreover compared in terms of programming effort, memory transfers cost and overall operation time. With regard to tool-flows with FPGA targets, the FIR case study was developed by using each tool, and then implemented on a Xilinx 7 FPGA and compared in terms of programming effort, logic utilization and timing performance. ii ACKNOWLEDGEMENTS I would like acknowledge the NRF and South African Radio Astronomy Observatory (SARAO) for affording me the funding opportunity to complete my postgraduate studies. To my supervisors Dr Simon Winberg and Prof Michael Inggs, who believed in me from the beginning of this dissertation and who never ceased to encourage, guide and kindly nudge me forward when I could not see the finish line, I am heartily indebted. This dissertation would not be possible without your emotional and technical support. To my fellow students in the SDRG and RRSG research groups at UCT Valerie, Shaun and Matthew, for al- ways willing to discuss ideas and lend a hand, thank you. To my friends, Sibonelo Madlopha, Dr Lerato Mohapi and Potjo Nthama for your words of encouragement in due season which kept me going, thank you. To my parents, Make and Babe Dlamini and ‘Me’ Mpho, who supported me emotionally, spiritually and fi- nancially throughout this work, I shall forever be indebted to you. To my loving wife and best friend, Lomaswati Setetemela, thank you for the kindness, the loving care and the patience that you gave me. I cannot thank you enough. Now unto Him who is able to keep me from falling, and to present me faultless before the presence of His glory with exceeding joy, To the only wise God my Saviour, be glory and majesty, dominion and power, both now and ever. Amen. iii CONTENTS Abstract i Acknowledgements iii Contents iv List of Figures ix List of Tables xi List of Abbreviations xii 1 Introduction 1 1.1 Background . .1 1.1.1 Software Defined Radios . .2 1.1.2 Field Programmable Gate Arrays . .3 1.1.2.1 FPGA Hardware . .3 1.1.2.2 FPGA Configuration . .4 1.1.2.3 HDL Design Methodology for FPGAs . .4 1.1.2.4 High-Level Design Methodology for FPGAs . .5 1.1.3 Graphics Processing Units . .6 1.1.3.1 GPU Hardware . .6 1.1.3.2 High-Level Design Methodology for GPUs . .7 1.2 Problem Statement . .7 1.3 Objectives . .8 1.4 Dissemination Strategy . .9 1.4.1 Objectives and Approach . .9 1.4.2 Target Audiences and Plan . .9 1.5 Dissertation Overview . 11 2 Literature Review 14 2.1 Software Defined Radio . 15 2.1.1 Brief History of SDR Technology . 15 2.1.2 SDR Hardware Architecture . 16 2.1.2.1 The Radio Frequency Front-End Subsystem . 17 2.1.2.2 Analog-to-Digital Converters (ADCs) . 18 2.1.2.3 Digital-to-Analog Converters (DACs) . 19 2.1.2.4 Programmable Digital Signal Processing . 19 iv CONTENTS – v – 2.1.3 SDR DSP Waveforms Functionality Characteristics . 21 2.1.3.1 Computational Complexity . 22 2.1.3.2 Parallelism . 22 2.1.3.3 Data Independency . 23 2.1.3.4 Arithmetic Requirements . 24 2.1.4 Programmable DSP Hardware for SDR . 24 2.1.4.1 GPP . 24 2.1.4.2 DSP Processor . 24 2.1.4.3 FPGA . 25 2.1.4.4 GPU . 26 2.2 Field Programmable Gate Array . 26 2.2.1 Programming Architecture . 26 2.2.1.1 SRAM-based Programming Technology . 26 2.2.1.2 Flash Programming Technology . 27 2.2.1.3 Antifuse Programming Technology . 27 2.2.2 Routing Architectures . 28 2.2.2.1 Island-Style Routing Architecture . 28 2.2.2.2 Hierarchical Routing Architecture . 28 2.2.3 FPGA-based SDR DSP Platforms . 29 2.2.3.1 RHINO . 29 2.2.3.2 ROACH . 30 2.2.3.3 Ettus USRP Platform . 31 2.2.4 High-Level Programming Tools . 32 2.2.4.1 MyHDL . 32 2.2.4.2 Migen . 33 2.3 Graphics Processing Units . 33 2.3.1 Hardware Architecture . 33 2.3.2 GPU-based SDR DSP Platforms . 35 2.3.2.1 GPU with GPP . 35 2.3.2.2 GPU with FPGA and GPP . 36 2.3.3 High-Level Programming Tools . 37 2.3.3.1 CUDA . 37 2.3.3.2 OpenCL . 37 2.4 High-Level Tool-Flows Techniques . 38 2.4.1 Modelling . 38 2.4.1.1 Model-based . 38 2.4.1.2 Algorithmic . 38 2.4.1.3 System Level . 38 2.4.2 Code generation . 38 2.4.2.1 High-Level Synthesis . 38 2.4.2.2 Electronic System-Level Synthesis . 40 2.5 High-Level Tool-Flows in SDR . 41 2.5.1 Existing Tools . 41 2.5.1.1 GNU Radio . 41 2.5.1.2 OptiSDR . 41 2.5.2 Past Tool-Flow Surveys . 42 2.5.2.1 Performance Measurement . 42 2.5.2.2 Design Productivity Measurement . ..