Study programme 2022-2023Français
Edge Computing
Learning Activity
CodeLecturer(s)Associate Lecturer(s)Subsitute Lecturer(s) et other(s)Establishment
I-SEMI-114
  • VALDERRAMA SAKUYAMA Carlos Alberto
      • UMONS
      Language
      of instruction
      Language
      of assessment
      HT(*) HTPE(*) HTPS(*) HR(*) HD(*) Term
      AnglaisAnglais600000Q2


      Content of Learning Activity


      Embedded Software using Python/SoC 
      EN. The emergence of the Python Productivity for Zynq (PYNQ) development environment based on Jupyter notebooks solves FPGA programmability issues. With a development board specifically designed to support PYNQ, developers with little FPGA experience can quickly implement designs that can take full advantage of FPGA performance to accelerate applications involving compute intensive tasks for applications such as Home Automation, IoT and Machine Learning. The basic programming of FPGAs is done with 2 possible languages: Verilog and VHDL. VHDL also requires a knowledge of combinational and sequential electronics, unlike Python, an open source language, recognized for its simplicity and very common among programmers.
      Architectures. Heterogeneous architectures
      Components. The basic components of programmable subsystems
      Methodology. The stages of embedded software development (Python and Linux)
      Overlays. The development of associated interfaces, peripherals and drivers
      IOPs. Configurable and programmable interfaces
      Tools. Development tools and environments (Pynq, Jupyter, PYNQ)
      Application cases: development examples: audio interfaces, peripheral interfaces (I2C, UART, Analog, PWM, etc.), Home Automation, IoT, Machine Learning (YOLO, BNN Binary Neural Networks)
      Edge Computing High Level Synthesis
      EN. This section shows a unified view of hardware and software domains as implementation alternatives based on design exploration and metrics.  The objective of the course is to learn how to develop a complete programmable and configurable system called System-on-Chip (SoC). These systems use high-level languages, such as Python and C/C++. However, some features, such as intensive computing, peripheral drivers, signal processing, or real-time control, require hardware accelerators. These accelerators and their associated programmable interfaces are the result of development steps giving access to reconfigurable electronics, or FPGAs. Accelerators and their associated programmable interfaces are the result of development steps giving access to reconfigurable electronics, or FPGAs. We do not go through combinational and sequential logic to program an FPGA; high-level tools such as SDSoC and HLS (High Level Synthesis) are available. A higher level of programming is performed to achieve a hardware architecture in an FPGA circuit. The FPGA circuit can be a Zybo, Pynq or Zed Board, where advanced applications such as image processing are developed. The system will be considered as a system-on-chip or SoC, in which, the execution of Python applications can be accelerated by reconfigurable hardware accelerators. The course explores the different trends, components and alternatives according to the final objective. The system level design is introduced by first a description of the different components involved, since integrated circuits design and usage up to software, processors and custom hardware processors. It also covers design methodologies, optimization techniques and test environments. The course is complemented by practical exercises and laboratory sessions using state of the art technologies, technologies trends and design challenges.
      SoC architecture exploration. Design Analysis and implementation alternatives.
      Improving performance. Optimization strategies. Improving Resources.
      Interface Synthesis. Hardware/software encapsulation and IO protocols.
      Verification and validation steps. Prototyping, scheduling, simulation and emulation.
      IP creation. Components creation and utilization.
      Coding considerations. 

      Required Learning Resources/Tools

      EN. Tutorials available on GitHub and Xilinx Vivado Pynq and Vitis

      Recommended Learning Resources/Tools

      Not applicable

      Other Recommended Reading

      Not applicable

      Mode of delivery

      • Hybrid

      Type of Teaching Activity/Activities

      • Cours magistraux
      • Conférences

      Evaluations

      The assessment methods of the Learning Activity (AA) are specified in the course description of the corresponding Educational Component (UE)

      (*) HT : Hours of theory - HTPE : Hours of in-class exercices - HTPS : hours of practical work - HD : HMiscellaneous time - HR : Hours of remedial classes. - Per. (Period), Y=Year, Q1=1st term et Q2=2nd term
      Date de dernière mise à jour de la fiche ECTS par l'enseignant : 06/05/2022
      Date de dernière génération automatique de la page : 20/06/2023
      20, place du Parc, B7000 Mons - Belgique
      Tél: +32 (0)65 373111
      Courriel: info.mons@umons.ac.be