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 (see full syllabus).
- 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.
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 (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, 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
By René Beuchat, Florian Depraz, Sahand Kashani, Andrea Guerrieri
ISBN 978-1-911531-33-3