Introduction to System on Chip Design Education Kit

Teaching materials now available on GitHub

You can download the materials by clicking the button below which will take you to Arm Education's official GitHub pages.


Kit specification:


  • A full set of 11 lecture slides, ready for use in a typical 10-11-week undergraduate course (full syllabus below).
  • Recent updates include:
    • A new lab exercise (two player snake game requiring two joystick peripherals connected to the AHB bus).
    • Bitstream auto-update.
  • Prerequisites: Digital electronics, basics of hardware description language (Verilog), basics of Arm Assembly syntax and C programming language.
Access Education Kit

Course Aim

To produce students with solid introductory knowledge on the basics of SoC design and key practical skills required to implement a simple SoC on an FPGA and write embedded programs targeted at the microprocessor to control the peripherals.

 

Learning Outcomes

  • Knowledge and understanding of:
    • The advantages and limitations of SoC.
    • The key features of the Arm Cortex-M0 processor architecture.
    • How to write simple and power efficient Arm assembly code using Arm instruction sets.
    • The functions of the Address decoder and subordinate multiplexor in the AHB-Lite bus system
  • Intellectual
    • Outline the components of the AHB VGA peripheral and describe their functions.
    • Outline the components of the AHB UART peripheral and describe their functions.
    • Outline the components of the AHB Timer, GPIO and 7-segment display peripherals and describe their functions.
    • Explain the concepts of interrupts and exceptions and the process by which the processor handles each.
    • Describe the Cortex Microcontroller Software Interface Standard (CMSIS) and identify how to write device drivers to access AHB peripherals.
    • Describe the advantages of the use of APIs over low -level programming.
  • Practical
    • Implement a simple SoC which consist of Cortex-M0 processor, AHB-Lite bus and AHB peripherals (Program memory and LED) on an FPGA.
    • Implement a simple SoC which consist of Cortex-M0 processor, AHB-Lite bus and AHB peripherals (Memory, LED, VGA) on an FPGA and write a simple program to display text on a connected VGA.
    • Implement an SoC which contains a Cortex-M0 processor, AHB-Lite bus and AHB peripherals (Program memory and LED, VGA, UART) on an FPGA and write simple programs to control the peripherals.
    • Implement an SoC which contains a Cortex-M0 processor, AHB-Lite bus and AHB peripherals (Program memory and LED, VGA, UART, Timer, GPIO and 7-Segment) on an FPGA and write simple programs to control the peripherals.
    • Implement the AHB timer and UART interrupt mechanism at both hardware and software domains by adding appropriate interrupt registers and writing suitable interrupt handler.
    • Implement a timer interrupt handler and UART interrupt handler in a high-level language such as C.

 

Syllabus

1 Introduction to Arm-based System-on-Chip Design
2 The Arm Cortex-M0 Processor Architecture: Part 1
3 The Arm Cortex-M0 Processor Architecture: Part 2
4 AMBA 3 AHB-Lite Bus Architecture
5 AHB VGA Peripheral
6 AHB UART Peripheral
7 Timer, GPIO and 7-Segment Peripherals
8 Interrupt Mechanisms
9 Programming an SoC using C Language
10 Arm CMSIS and Software Drivers
11 Application Programming Interface and Final Application

Recommended Textbook

Fundamentals of System-on-Chip Design on Arm Cortex-M Microcontrollers
Fundamentals of System-on-Chip Design on Arm Cortex-M Microcontrollers

By René Beuchat, Florian Depraz, Sahand Kashani, Andrea Guerrieri

ISBN 978-1-911531-33-3

Download FREE eBook

Sign Up for Newsletter

Interested in hearing more from the Arm University Program?

Sign Up