Complete Downloadable Course
Introduction to SoC Design Education Kit

Summary

Description:

Our Introduction to System on Chip Design Education Kit covers the fundamentals of System-on-Chip design, including how the theories and concepts can be applied in the design and programming of a simple SoC implemented on an FPGA.

Organisations: Arm Education

Prerequisites:

University students studying in computer science, electronic engineering or other engineering related degrees. Hobbyists, early-career professionals. Makers. Lecturers.

Learning Aims:

  • 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.

Download Course
Resources
LoadingLoading previews...

Discussion

README.md
Text
View metadata Download
[thumbnail of README.md]
README.md
[thumbnail of Lecture_1_intro.pptx]
Module 1: Introduction to Arm-based System-on-Chip Design
[thumbnail of Lecture_2_Cortex-M0_part1.pptx]
Module 2: The Arm Cortex-M0 Processor Architecture: Part 1
[thumbnail of Lecture_3_Cortex-M0_part2.pptx]
Module 3: The Arm Cortex-M0 Processor Architecture: Part 2
[thumbnail of Lecture_4_AHB-Lite.pptx]
Module 4: AMBA 3 AHB-Lite Bus Architecture
[thumbnail of Module 4: Lab 01 Cortex-M0 AHB Lite Implementation]
Module 4: Lab 01 Cortex-M0 AHB Lite Implementation
[thumbnail of Lecture_5_VGA.pptx]
Module 5: AHB VGA Peripheral
[thumbnail of Module 5: Lab 02 AHB VGA Peripheral]
Module 5: Lab 02 AHB VGA Peripheral
[thumbnail of Lecture_6_UART.pptx]
Module 6: AHB UART Peripheral
[thumbnail of Module 6: Lab 03 AHB UART Peripheral]
Module 6: Lab 03 AHB UART Peripheral
[thumbnail of Lecture_7_Timer_GPIO_7seg.pptx]
Module 7: Timer, GPIO and 7-Segment Peripherals
[thumbnail of Module 7: Lab 04 Timer GPIO and 7-Segment Peripheral]
Module 7: Lab 04 Timer GPIO and 7-Segment Peripheral
[thumbnail of Lecture_8_Interrupts.pptx]
Module 8: Interrupt Mechanisms
[thumbnail of Module 8: Lab 05 Interrupt Mechanisms]
Module 8: Lab 05 Interrupt Mechanisms
[thumbnail of Lecture_9_using_C.pptx]
Module 9: Programming an SoC using C Language
[thumbnail of Module 9: Lab 06 Programming an SoC using C]
Module 9: Lab 06 Programming an SoC using C
[thumbnail of Lecture_10_CMSIS.pptx]
Module 10: Arm CMSIS and Software Drivers
[thumbnail of Module 10: Lab 07 Arm CMSIS and Software Drivers]
Module 10: Lab 07 Arm CMSIS and Software Drivers
[thumbnail of Lecture_11_API_Snake.pptx]
Module 11: Application Programming Interface and Final Application
[thumbnail of Module 11: Lab 08 API and Final App]
Module 11: Lab 08 API and Final App
[thumbnail of Module 12: Lab 09 PMOD]
Module 12: Lab 09 PMOD
21 resources for this course
Details

Our Introduction to System on Chip Design Education Kit covers the fundamentals of System-on-Chip design, including how the theories and concepts can be applied in the design and programming of a simple SoC implemented on an FPGA.

Course Type: Open

People

Organisations: Arm Education

Contributors:GitHub Contributor:Oyinkuro Benafa
GitHub Contributor:David Mackenzie
GitHub Contributor:Liz Warman
GitHub Contributor:Mark Allen
GitHub Contributor:Francis Catan
GitHub Contributor:

Certification

Course Structure

Taxonomy

Interests: AHB - AMBA® High-performance Bus , Radio Frequency Design , SoC Design

Other

Course URL: https://github.com/arm-university/Introduction-to-SoC-Design-Education-Kit

Metadata
Download Metadata
Course Comments

Discussion