Advanced 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 lecture slides, ready for use in a typical undergraduate course (see full syllabus).
- Recent updates to education kit include:
- A dedicated module on an overview of HDMI for input and output.
- Refreshed lab exercises:
- Based on the Zybo Z7-10, with updated procedures, libraries, and code (for HDMI output lab only).
- Usage of Arm Development Studio for Armv7-A assembly programming.
Course Aim
To produce students who can design, implement, and test an Arm Cortex-A-based SoCs on real FPGA hardware using high-level functional specifications, standard hardware description and software programming languages.
Learning Outcomes
- Knowledge and understanding of:
- The properties of a System on Chip, and its design flow.
- The operations of Armv7-A Assembly various data transfer and data processing instruction types.
- The operations of Armv7-A Assembly various conditional, branching, and miscellaneous instruction types.
- The microarchitecture properties and characteristics of the Cortex-A9 processor.
- The operation of the AMBA AXI4 Bus Architecture.
- The signals and operation of an example AXI4-Stream HDMI input peripheral.
- The function and typical components and interfaces in an Arm debugging system.
- Intellectual
- Describe the properties of Armv7-A architecture and the Cortex-A9 processor.
- Explain the operation of GPIO, memory access and controllers, and various memory types in a typical SoC.
- Explain the operation of various communication types, UART, and AXI-4 Stream.
- Describe the HDMI interfaces and mechanism.
- Explain the operation and mechanism of a simple edge detection image-processing application.
- Describe the purpose of SIMD and usage of Arm Neon technology for accelerating image processing.
- Describe the purpose and implementation of hardware acceleration.
- Practical
- Ability to use commercial tools to develop Arm-based SoCs
- Demonstrate how to program an Arm processor on a Fixed Virtual Platform using a mixture of Assembly language and C code.
- Configure and implement AXI-Lite peripheral to control General Purpose Input and Output Ports (GPIOs).
- Configure and implement an AXI4-Stream HDMI peripheral to display a simple colored image onto an HDMI monitor.
Syllabus
Lecture | |
1 | Introduction to Arm-based System on Chip Design |
2 | Arm and Arm Processors |
3 | Armv7-A/R Instruction Set Architecture Overview Part 1 |
4 | Armv7-A/R Instruction Set Architecture Overview Part 2 |
5 | Arm Cortex-A9 processor |
6 | AMBA AXI4 Bus Architecture |
7 | AXI4-Lite GPIO Peripheral and DDR memory controller |
8 | AXI UART and AXI4-Stream Peripherals |
9 | HDMI overview |
10 | HDMI input peripheral |
11 | System debugging |
12 | Image-Processing Application |
13 | Accelerate Image Processing using SIMD engine |
14 | Accelerate Image Processing using FPGA hardware |