Salta ai contenuti. | Salta alla navigazione

Strumenti personali

FPGA LABORATORY

Academic year and teacher
If you can't find the course description that you're looking for in the above list, please see the following instructions >>
Versione italiana
Academic year
2021/2022
Teacher
CRISTIAN ZAMBELLI
Credits
6
Curriculum
Architectures & processing
Didactic period
Secondo Semestre
SSD
ING-INF/01

Training objectives

The course provides the necessary elements for prototyping and design of integrated electronic systems using reconfigurable devices (FPGAs) that are commonly used in embedded environments (including mobile computing) and in computing platforms. The course provides, through laboratory activities assisted by the teacher, the competencies in creating electronic systems that span the Whole spectrum of digital electronics, analog electronics, and mixed-signal systems.

The main goal of the course consists in providing the basic elements for the development and design on FPGA of integrated electronic systems with heterogeneous components by considering constraints in terms of performance, power consumption, and functionality of the designed concept.

The main knowledge gained will be:
• basic elements of an FPGA
• knowledge of a hardware description language (VHDL) oriented to the simulation and implementation of an electronic system
• knowledge of an integrated development environment (Xilinx Vivado) for FPGA
• knowledge related to the constraints of area occupation, memory, and power consumption of an electronic system implemented on FPGA
• basic knowledge of communication protocols like SPI and I2C for external devices such as off-chip memories, human interface devices, ADCs, accelerometers, and displays
• interfacing an analog electronic signal with a digital electronic system to build and process a signal using the mixed-signal paradigm

The main skills (the ability to apply knowledge acquired) will be:
• implement an integrated electronic system using a FPGA
• identify the design constraints that determine the design of an electronic system
• assess the communication protocol or the device most suitable for a given application
• use of prototyping systems that includes digital components to embody in embedded environments or high performance computing

Prerequisites

To follow the course you should have understood the concepts of the courses:

- Digital systems electronics
- Circuits for analog signal processing
- Architecture of Digital Systems
- Hardware Description Languages

During the lectures some calls to these courses will ease the understanding of specific topics of the course. To take the exam is not necessary to have passed the examinations associated. Since this is a laboratory course it is required a basic understanding of the basic concepts of instrumentation laboratory ( bench power supply, function generator, and oscilloscope).

Course programme

Since the course is an educational workshop for students, we have 3 introductory lessons (7.5 hours) on the FPGA-based integrated electronic systems topic and on the hardware description language exploited for their programming and 10 lab sessions (25 hours) in which we will address various topics. The class will be organized on multiple access groups on the lab, giving the possibility to work on the FPGA boards to all the students and to manage spare lessons. When the students are not going to the lab they can improve and finish the lab session autonomously by installing the development software on their PC. In this way, the class takes place over 60 hours. The main topics of the course are:

- Introduction to the integrated electronic systems: the concept of analog, digital and mixed-signal electronic systems, possible scenarios of integration, design constraints (power consumption, area occupied, cost), design flow, prototyping systems and boards

- The programmable logic (FPGA): macro-block structure, integrated implementation of an FPGA, programming an FPGA using a hardware description language (VHDL), synthesis and implementation of a design, the board Digilent Basys3

- The IDE Xilinx Vivado: how to make a first project in VHDL of an integrated electronic system, difference between simulation (test bench) and implementation, communications with the board Digilent Basys3 with its peripherals (LED, switches and push button)

- Construction of a hierarchical integrated electronic system: example of a hardware adder, entity concept and module in VHDL, reuse of resources, an example of a PWM modulator

- Management of the I/O board Digilent Basys3: multiplexing I/O with other devices, driving and acquisition of signals using ADC integrated in FPGA, communication with the human interface device (HID) through the USB port

- Communication protocols in electronic systems: example and implementation of a simple Point-to-Point communication protocol between FPGAs, the UART protocol, SPI protocol (construction and simulation of a SPI controller), I2C (construction and simulation an I2C controller)

- The device 3-axis accelerometer from Analog Devices ADXL345: circuit diagram, reference manual, interfacing with the board Digilent Basys3, processing of the signals coming from the accelerometer

- RISC processor instantiated on FPGA via picoBlaze: introduction to computing on FPGA, compiler for RISC, handling interrupts, implementation and verification of operations

Didactic methods

3 Class lectures
10 Laboratory sessions on dedicated stations using FPGA (Digilent Basys3) and electronics measurement instruments (oscilloscopio, generatore di funzione, etc.)
The course's material will be released on Classroom with code yfwhsdt

Learning assessment procedures

The exam is a single stage procedure that consists in the development of an Electronic Integrated System using an FPGA board in lab.

During the exam the student be assigned with a specific design to be implemented on the FPGA (e.g., it could be an FSM, a simple logic, a design with an IP, etc.). Design examples will be provided during the entire course.

The final grade will be based on the capability demonstrated by the student in using the following concepts examined in this course applied to the FPGA design:

- Create the design using a hardware description language
- Simulate the design providing a functional test-bench
- Optimize the design according to given area/power/timing constraints
- Synthesize/Implement/Bitstream the design on the FPGA and prove its functionality

Each previous item weighs 8 points on the final grade. Max score is 32. Scores higher than 30 will be graded as 30 e lode.

The exam duration is 3 hours.

Passing the final exam is the proof that knowledge and abilities outlined in the training objectives of the course have been achieved.

The language used for the final exam can be english upon request from the student.

Reference texts

Slides provided by the teacher and reference manuals of the prototyping board Digilent Basys3.

Also will be made available all the datasheets of the devices and components used in laboratory exercises