Hosted @ Supported by SKA School of Electrical and Electronic Engineering; Uni. of Johannesburg A short course on FPGA & Verilog presented by Dr. Simon Winberg John-Philip Taylor Software Defined Radio Research Group (SDRG), UCT Pelindaba Laboratory for Accelerator and Beam-line Sciences (PLABS) at NECSA November 2014 Day #5 Today’s lecture: FPGA Development Approaches & Product Case Studies Mission Brief FPGA manufacturers & specialised types Other approaches to FPGA programming DPAS – Quality & Confidence of solutions FPGA Design Case studies Code cracking SKA Digital Back End (DBE) RHINO platforms NextRAD – Coastal Monitoring Radar Network FPGA & Verilog define * Developing a terminology guide basedFPGA on & Verilog literature meta analysis FPGA application vs. FPGA platform development • FPGA platform development = – Developing an infrastructure using FPGA(s) – E.g., developing an FPGA development board • FPGA application development = Focus of this short course – Using an existing platform – Developing custom hardware and software for deployment on the platform FPGA & Verilog Reconfigurable Computer & Reconfigurable Computing • A reconfigurable computer • FPGA platform development = – Developing an infrastructure using FPGA(s) – E.g., developing an FPGA development board • FPGA application development = Focus of this short course – Using an existing platform – Developing custom firmware and software for deployment on the platform FPGA & Verilog FPGA & Verilog FPGA Manufacturers • The ‘Big 2’ (most commonly used) – Xilinx : Capital $8.52B, 2984 employees – Altera : Capital $12B, 2555 employees • The others pretty big ones… – Microsemi Corp. / Actel : $2B Capital, 2250 employees – Lattice Semiconductor Corp : $700M capitalizations, 708 employees Caters for specific contexts, more niche areas compared to the Big2 FPGA & Verilog Sources: “100 Power Tips for FPGA Designers” About the FPGA Families • Xilinx – Focusing on highest performance and highest capacity: Vertex family (e.g. Vertex 7) – Provides lower-cost options with high capacity (e.g. Spartan family) – Range of variations, e.g. low power options, economy (lower capacity) models. FPGA & Verilog About the FPGA Families • Altera – Stratix: higher performance and density models (e.g. Stratix-V) – Arria: mid-range, lower-power, but also lower performance and density compared to Stratix. – Cyclone: lowest cost option, also aimed at low power, cost sensitive and mobile applications FPGA & Verilog Altera’s ASIC HardCopy fabrication • Altera’s ASCI HardCopy service – Converts a design that works on (certain) of their FPGAs into an ASIC package (a form that cannot be altered). – Benefit to the client by reducing design security risks and lower costs for higher volume production. – Design engineers can prototype their designs in Stratix series FPGAs, and then migrate these designs to HardCopy ASICs when they're ready for volume production. – Design engineers can employ a single RTL, set of intellectual property (IP) cores, and Quartus II design software for both FPGA and ASIC implementations. FPGA & Verilog About the FPGA Families • Microsemi (previously Actel) – Focuses on providing the lowest power, and widest range of small packages – IGLOO : low power, small footprint, SoC – SmartFuson : Mixed FPGA and ARM processor – RTAX/RTSX : radiation tolerant and very high reliability FPGA & Verilog About the FPGA Families • Lattice – Range of options (low power; high performance; small package) – Own specialised development tools – Lattice iCE family, e.g. iCE40: A more descriptive illustration would be: • High functional density for the thinnest devices; & very small • Measuring just 1.40 mm X 1.48 mm x 0.45 mm, can fit in the most space constrained modules. – (of these four, this one is the only firms not in California; they are currently in Oregon) FPGA & Verilog About the FPGA Families • Others – Achronix : • Focusing on building the fastest FPGAs (not necessarily highest capacity) – Tabula : • Unique FPGA ‘SpaceTime’ technology • Focus: highest capacity and memory capabilities FPGA & Verilog Memory jogger… Q: What is Xilinx’s highest-capacity FPGA family? A: Vertex (currently Vertex 7) Q: Which FPGA manufacturer is focusing on developing the fastest FPGAs? A: Achronix Q: Is the Stratix an Altera or Xilinx FPGA? A: Altera FPGA & Verilog FPGA & Verilog Do you have to use HDL to program FPGAs? FPGA & Verilog The answer is: No! You don’t have to use HDL (from a users perspective) as the only means to program FPGAs. There’s lots of other approaches… FPGA & Verilog An obvious alternative is: Using the block diagram / schematic visual editor, available in both Quartus II and ISE. FPGA & Verilog There are some limitations that you can probably think of… Solutions such as HDL Coder, which integrates with Mathworks Simulink and Matlab provides powerful facilities for visual modelling and simulation of complex FPGA applications… But it is very costly. But there are alternatives… Text-based solutions are commonly used and effective… lets look at a few open source options. FPGA & Verilog Program, Test on H/W Place & Route / Compile Synthesis Requirements Modeling/ Drawings Testing the Model Simulation & Verification Design & HDL Coding HDL Tool Flow Options: Software Defined Radio Group’s (SDRG) view on HDL tool flows FPGA & Verilog Many HDLs abound… • • • • • • • • • • • • • Verilog (similar to C) SystemVerilog VHDL (similar to ADA) AHDL (Altera HDL) ABEL (Advanced Boolean Expression Language) MyHDL (a Python based HDL) MiGen (a Python based HDL) JHDL (Java HDL) CUPL (Logical Devices ‘universal compiler for programmable logic’) Hydra OptiSDR Handle-C (a C based HDL) SystemC (a C based HDL) … various others… * Ones I’ll show briefly in a moment FPGA & Verilog Synthesis & Simulation Most of the digital designs built up of some basic elements or components (e.g. registers, logic gates, counters, adders, RAM, etc.) Standard cell library is the collection of these building blocks available to run your design. These are specific to the PLD / FPGA you are using. The Synthesis tool: Inputs HDL; outputs gate level mapping Does take a bit of computation, but fairly quick compared to other steps A very complex process: seeing how time and space can be rearranged, trade-offs made, analyse sequential dependence, identify parallelism, etc. From this point the implementation becomes platform dependent FPGA & Verilog Synthesis & Simulation Simulation: Generally, the more opportunities to test the design before committing it to hardware, the better. Simulation can fit into various stages of a tool flow: Code Test Behavioral simulation Post-synthesis simulation Functional simulation – verify that synthesized netlist matches the behavioural model. Timing simulation / discrete event simulation Deployment on hardware In-circuit verification (might hook up to simulation / test vectors) HDL for Simulation HDL for Synthesis Simulation test bench support –collecting test vectors, sample signals, stimulae and expected responses, etc to test the design. FPGA & Verilog What tools are in place in the various tool flows out there? … FPGA & Verilog FPGA & Verilog MyHDL Code Python-based HDL Your favorite Text Editor Signal traces using e.g. MatPlotLib MyHDL Standard Python Shell-type Interpreter Interface Quick Access to Behavioral Simulation MyHDL Library & Extensions Verilog Generation Verilog Code EDA Tool Xilinx Vivado / Altera QuartusII etc. FPGA & Verilog MiGen Approach Python-based HDL generator Can do quite complex designs without knowing (much) HDL Similarities to sequencing of MyHDL toolflow; Highly object-oriented Powerful language and operator extensions, encapsulation and manipulation of subsystems / fragments, command-line interactions and inspection features… Concept, design & most code implemented by S. Bourdeauducq* A collaborative project re use of RHINO with MiGen MiGen developed by Milkymist M-Labs http://m-labs.hk/gateware.html FPGA & Verilog Hydra* & FYNBOS** Hydra: A computer hardware description language (CHDL) that helps you to design digital circuits. Based on the standard functional programming language Haskell, its simple modular structure supports everything from small low-level circuits up to complete computer system designs. A very quick look… *Hydra. Lead researcher: John O'Donnell Computing Science Department University of Glasgow, Great Britain **FYNBOS: Ms. Jane Wyngaard PhD Student, RRSG Group University of Cape Town http://www.dcs.gla.ac.uk/~jtod/Hydra/ FPGA & Verilog Hascal Language FPGA & Verilog Fynbos: Hydra->HDL Generator The Fynbos project at UCT provides a new type of fine-grain parallel computer generator. Generates HDL representation that executes on FPGA platform. Hascal Code Hydra Fynbos HDL Xilinx ISE Hydra parallel machine model This project is carried out in collaboration with Ms. Jane Wyngaard and Prof. Mike Inggs from UCT, and with Brian Farrimond from SimCon. FPGA & Verilog OptiSDR Development of a text-based Domain Specific Language (DSL) for Software Defined Radio (SDR) - Referred to as SDR-DSL (OptiSDR) Building on the Delite framework. A collaboration with the Pervasive Parallelism Lab at Stanford University Currently doesn’t provide FPGA support (this feature is not yet available in Delite) http://stanford-ppl.github.io/Delite/ FPGA & Verilog Project by: Lerato Mohapi FPGA & Verilog Developing Correct Solutions • Development of FPGA applications can take a significant amount of time… • But you also need to know that after this effort your solution is correct. • But you also need to know that after this effort your solution is correct (at least according to the specifications). • But … FPGA & Verilog Building FPGA applications • A typical large FPGA project has many unique characteristics, for instance: – Non standard hardware (PCB) – Possible custom-designed processing elements and CPU – Various adapted processing blocks (e.g. changing the interface to modules to make them connect into a larger design) – Various protocols, maybe some custom, So… FPGA & Verilog Building FPGA applications • There are many places that bugs and design errors / misunderstandings can creep in • Generally more so than – Regular PC-based solutions (use well understood, mature architecture & tools) – Embedded platforms (use mass produced, highly and thoroughly tested microcontrollers, big user communities). Which brings me to… FPGA & Verilog DPAS • DPAS = Dual Processing And Simulation FPGA & Verilog Dual Processing? A technique to verify operation Essentially performing the same operation twice (if not more times) on different platforms (e.g. FPGA and PC to check for consistency in results). Often uses correlations. FPGA & Verilog Limitation in Dual Processing? • Lots; for example processing speed, not working in real-time (having to use prerecorded data), etc. etc. • But it can save time and cost. FPGA & Verilog Simulation • Useful as a means to save time • Provides ways to run a variety of test vectors though your design, checking trial inputs correspond to expected outputs. • Particularly for fictional testing: – Can be especially quick and time-saving; e.g. checking in a few seconds that changes haven’t broken a previously working implementation FPGA & Verilog On-hardware testing facilities • Xilinx ChipScope / Altera SignalTap FPGA & Verilog FPGA & Verilog Lots of FPGA Applications • • • • • • • • • ASIC prototyping Parallel processing Computer hardware emulation High speed Switches Software defined radio Cryptography Medical imagining ‘Glue’ logic in PCB designs Typically ‘vertical applications’ FPGA & Verilog COPACOBANA A Codebreaker for DES and other Ciphers Expandable design – motherboard that can take multiple ‘blades’ Spartan-3 XC3S1000* http://www.copacobana.org/ COPACOBANA: the Cost-Optimized Parallel COde Breaker • FPGA-based machine • Optimized for cryptanalytical algorithms • Suited for parallel computation problems with low communication requirements. • DES cracking is very parallelizable: an exhaustive key search of the Data Encryption Standard (DES) takes no longer than a week on average. • Can be used for problems outside cryptography. * Revision 12/2006 FPGA & Verilog SKA: Brief Overview 3D artists impression of the eventual SKA South Africa site. FPGA & Verilog SKA: Brief Overview The SKA SA array will be the world's largest and most sensitive radio telescope: about 50x more sensitive, up to 10,000x faster (in survey speed) than the best radio telescopes currently available. It will sense radio waves from objects billions of light years away. Scientists expect the SKA will make new discoveries that we can't even imagine at present. Maybe they will find extra terrestrial life elsewhere else in the Universe! Why the name? The collecting areas of all the receivers of the SKA adds up to one square kilometre – that’s why it is called the "Square Kilometre Array". The SKA is taking shape from the efforts of many different countries working together - and to pay for - the SKA. At least 13 countries and close to 100 organisations (2013) are involved and more are in the process of joining the project. Find out more on the web at: http://www.ska.ac.za/ FPGA & Verilog KAT7 – Built FPGA & Verilog MeerKAT*: Digital Back End (DBE) Overview * MeerKAT is a SA lead radio astronomy array, to Become integrated with the larger SKA. Information prepared by Francois Kapp, Sub-system Manager: DBE, Francois.kapp@ska.ac.za FPGA & Verilog SKA Digital Backend Computing ROACH: reconfigurable open architecture computing hardware SKA Capacity Building Programme: Offers comprehensive bursaries to students in engineering, mathematics, physics and astronomy at undergraduate and postgraduate level. Bursary holders benefit from regular workshops and student conferences, where they interact with the world’s leading astronomers and scientists. General contact: amashemola@ska.ac.za or contact SKA CBP affiliates in an area you are interested in. FPGA & Verilog The ROACH Board ROACH: reconfigurable open architecture computing hardware Can be obtained from Digicom in the US (Roach 2 and later, can do another run of older versions if you really want it) Versions and variants can also be obtained via Tellumat (South African company). ROACH design in collaboration between SKA South Africa and Casper Berkeley FPGA & Verilog Obtaining a ROACH Board ROACH: reconfigurable open architecture computing hardware Can be obtained from Digicom in the US (Roach 2) Versions and variants can also be obtained via Tellumat (South African company). ROACH design in collaboration between SKA South Africa and Casper Berkeley SKA Capacity Building Programme: Offers comprehensive bursaries to students in engineering, mathematics, physics and astronomy at undergraduate and postgraduate level. Bursary holders benefit from regular workshops and student conferences, where they interact with the world’s leading astronomers and scientists. General contact: amashemola@ska.ac.za or contact SKA CBP affiliates in an area you are interested in. FPGA & Verilog Reconfigurable Hardware Interface for computiNg and radiO (RHINO) platform FPGA & Verilog RHINO (version 1) Design Overview 2x 256MB DDR3 SDRAM 2x 128MB DDR2 SDRAM USB, SD Card, 100Mbps Ethernet, audio and video 256MB NAND Flash 2x CX4 (10Gbps ethernet) (RHINO 1.x has no ADC/DAC, this provided by FMC add-on boards) FPGA & Verilog RHINO: The Board BORPH boot SD card 4DSP FMC Sampling Board FMC PIO and interfacing expansion Daughterboard FPGA & Verilog White-RHINO By: Ojonav Hazarika (Main supervisor: A Mishra) Much Un-Used spectrum! Called ‘Whitespaces’ … e.g. Transition from Analog to Digital TV freed many channels, these are ‘TV whitespaces’ In 2008, FCC was first organization to make TV Band spectrum avail to unlicensed users. Sharing of Spectrum done by either spectrum sensing or a database management system. AIM: develop a hardware platform which can operate as Whitespace Communication node with radar detection as its commensal operation. Applications ideas: communications, ATC, border monitoring, cognitive radio prototyping FPGA & Verilog NextRAD NextRAD is a multiband multistatic radar system being developed in collaboration between UCL in the UK and the RRSG group at UCT in South Africa. The system is under development, and a first version of prototyped radars, transmitters and receivers have been built and testing completed. The aim is towards scaling this system up towards larger applications, such as coastal monitoring and automated detection of poaching activities in protected areas. FPGA & Verilog FPGA & Verilog FPGAs & FPGA Developers Hopefully, with all the effort that is being applied to the development of FPGA development tools and reusable, and open, FPGA designs and platforms, we are getting – at least closer – to a point where… FPGA & Verilog FPGAs & Engineers will: Coexist happily! FPGA & Verilog FPGA & Verilog Over to John-PhiliP: VGA Graphics on An FPGA FPGA & Verilog Day 5 TutorialS FPGA & Verilog