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.
README.md
Text
|
View metadata | Download |
![[thumbnail of README.md]](https://compedulabs.org/style/images/fileicons/text.png)
README.md
![[thumbnail of Lecture_1_intro.pptx]](https://compedulabs.org/style/images/fileicons/slideshow.png)
Module 1: Introduction to Arm-based System-on-Chip Design
![[thumbnail of Lecture_2_Cortex-M0_part1.pptx]](https://compedulabs.org/style/images/fileicons/slideshow.png)
Module 2: The Arm Cortex-M0 Processor Architecture: Part 1
![[thumbnail of Lecture_3_Cortex-M0_part2.pptx]](https://compedulabs.org/style/images/fileicons/slideshow.png)
Module 3: The Arm Cortex-M0 Processor Architecture: Part 2
![[thumbnail of Lecture_4_AHB-Lite.pptx]](https://compedulabs.org/style/images/fileicons/slideshow.png)
Module 4: AMBA 3 AHB-Lite Bus Architecture
![[thumbnail of Module 4: Lab 01 Cortex-M0 AHB Lite Implementation]](https://compedulabs.org/style/images/fileicons/unknown.png)
Module 4: Lab 01 Cortex-M0 AHB Lite Implementation
![[thumbnail of Lecture_5_VGA.pptx]](https://compedulabs.org/style/images/fileicons/slideshow.png)
Module 5: AHB VGA Peripheral
![[thumbnail of Module 5: Lab 02 AHB VGA Peripheral]](https://compedulabs.org/style/images/fileicons/unknown.png)
Module 5: Lab 02 AHB VGA Peripheral
![[thumbnail of Lecture_6_UART.pptx]](https://compedulabs.org/style/images/fileicons/slideshow.png)
Module 6: AHB UART Peripheral
![[thumbnail of Module 6: Lab 03 AHB UART Peripheral]](https://compedulabs.org/style/images/fileicons/unknown.png)
Module 6: Lab 03 AHB UART Peripheral
![[thumbnail of Lecture_7_Timer_GPIO_7seg.pptx]](https://compedulabs.org/style/images/fileicons/slideshow.png)
Module 7: Timer, GPIO and 7-Segment Peripherals
![[thumbnail of Module 7: Lab 04 Timer GPIO and 7-Segment Peripheral]](https://compedulabs.org/style/images/fileicons/unknown.png)
Module 7: Lab 04 Timer GPIO and 7-Segment Peripheral
![[thumbnail of Lecture_8_Interrupts.pptx]](https://compedulabs.org/style/images/fileicons/slideshow.png)
Module 8: Interrupt Mechanisms
![[thumbnail of Module 8: Lab 05 Interrupt Mechanisms]](https://compedulabs.org/style/images/fileicons/unknown.png)
Module 8: Lab 05 Interrupt Mechanisms
![[thumbnail of Lecture_9_using_C.pptx]](https://compedulabs.org/style/images/fileicons/slideshow.png)
Module 9: Programming an SoC using C Language
![[thumbnail of Module 9: Lab 06 Programming an SoC using C]](https://compedulabs.org/style/images/fileicons/unknown.png)
Module 9: Lab 06 Programming an SoC using C
![[thumbnail of Lecture_10_CMSIS.pptx]](https://compedulabs.org/style/images/fileicons/slideshow.png)
Module 10: Arm CMSIS and Software Drivers
![[thumbnail of Module 10: Lab 07 Arm CMSIS and Software Drivers]](https://compedulabs.org/style/images/fileicons/unknown.png)
Module 10: Lab 07 Arm CMSIS and Software Drivers
![[thumbnail of Lecture_11_API_Snake.pptx]](https://compedulabs.org/style/images/fileicons/slideshow.png)
Module 11: Application Programming Interface and Final Application
![[thumbnail of Module 11: Lab 08 API and Final App]](https://compedulabs.org/style/images/fileicons/unknown.png)
Module 11: Lab 08 API and Final App
![[thumbnail of Module 12: Lab 09 PMOD]](https://compedulabs.org/style/images/fileicons/unknown.png)
Module 12: Lab 09 PMOD
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
Discussion