Abstract
Implementing a data processing as a software running on a general purpose processor or on specialized processors like Graphics Processing Units (GPU) does not always provide the required level of efficiency. These solutions can be too slow, too expensive or too power hungry for a given application.
In these cases, dedicated hardware accelerators are sometimes the right solution. They are not as flexible as software, they are frequently more difficult to design, but they are also usually orders of magnitude more efficient: they do only a limited number of things but they do them extremely well.
Many computer systems around us, like our smartphones, embed hardware accelerators for wireless communications, speech, audio, image or video processing, cryptography, deep learning, etc.
This course provides an overview of the specification, design, development, and validation of digital hardware accelerators for embedded systems. It also shows how to integrate them inside a microprocessor-based computer system, and how to use them from software applications.
Teaching and Learning Methods
Laboratory sessions, project, homework. Students are provided with industrial grade prototyping boards and design tools for the whole course duration.Students are provided with prototyping boards and design tools for the whole semester duration.
Course Policies: Attendance to the lab. sessions are mandatory.
-
Bibliography
· Online book: MEALY B., TAPPERO F. Free range VHDL. Free Range Factory, 2018, 194 p. (https://github.com/fabriziotappero/Free-Range-VHDL-book)
· Online book: CROCKETT L., ELLIOT, R., ENDERWITZ M., STEWART B., NORTHCOTE D. The Zynq book. Strathclyde Academic Media, 2015, 484 p. (http://www.zynqbook.com/)
· Book: SIMPSON P. La conception de systèmes avec FPGA. Dunod, 2014, 304p. (French)
· Book: ZURAWSKI R. Embedded systems handbook. CRC Press, 2009, 1503p.
· Book: ASHENDEN P. J. Designer's guide to VHDL. Morgan Kaufmann Publishers In, 2008, 936p.
Book: KILTS S. Advanced FPGA design: architecture, implementation, and optimization. Wiley-Blackwell, 2007, 352p.
Prerequisites
Binary representations of numbers (unsigned, two's complement), boolean logic, boolean operators, basic C programming, basic GNU/Linux command line interface..
-
Description
· Digital hardware design, hardware description languages, simulation, logic synthesis and mapping on Field Programmable Gate Array (FPGA) circuits.
· System integration, interfaces between components of a digital system, software drivers (GNU/Linux) of hardware peripherals, software applications using hardware peripherals.
· A hands-on approach is taken, with the aid of state-of-the-art laboratory equipment. Most of the course is dedicated to the design of hardware/software mixed systems of increasing complexity, and their test on a mini PC-like prototyping board based on an ARM microprocessor and a FPGA fabric.
· During the final project (21 hours) the students work in small groups to build a complete hardware and software prototype of a data processing system. Past projects were about retro-gaming, cryptography, real time video processing, pattern recognition, bitcoin mining, DES cracking, etc.
Learning Outcomes
· Be able to specify, design, develop and test a prototype system embedding one or several hardware accelerators for the processing and a microprocessor, plus its peripherals, for the control.
· Be able to interface a dedicated digital hardware accelerator with a microprocessor system.
Be able to design a simple GNU/Linux software driver to ease the access to the dedicated hardware accelerators from the software applications.
Duration CE |
Total |
Lect. |
Lab |
Prob |
Project |
Perso. |
50 |
|
21 |
|
21 |
8 |
Evaluation
· Project: 1/2 of final grade.
Two hours written exam with documents: 1/2 of final grade.