Introduction to System on Chip Design Education Kit
You can download the materials by clicking the button below which will take you to Arm Education's official GitHub pages.
- 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.
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.
- 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
- 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.
- 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.
|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|
|9||Programming an SoC using C Language|
|10||Arm CMSIS and Software Drivers|
|11||Application Programming Interface and Final Application|