+ All Categories
Home > Documents > processing system (PS) - plc2.complc2.com/assets/files/agenda_embedded_designer.pdf · processing...

processing system (PS) - plc2.complc2.com/assets/files/agenda_embedded_designer.pdf · processing...

Date post: 04-Jun-2018
Category:
Upload: vumien
View: 217 times
Download: 0 times
Share this document with a friend
15
1 Block 1: ZYNQ-7000 Architecture Objectives: Describe the architecture and components that comprise the Zynq All Programmable SoC processing system (PS) Relate a user design goal to the function, benefit, and use of the Zynq All Programmable SoC Effectively select and design an interface between the Zynq PS and programmable logic (PL) that meets project goals Analyze the tradeoffs and advantages of performing a function in software versus PL Describe the AXI interconnect to the programmable logic (PL) Identify basic modes of device configuration List the input/output peripherals (IOPs) that are available in the processing system Describe the difference between multiplexed I/O (MIO) and extended MIO (EMIO) usage Describe the boot sequence of the Zynq device Describe the difference between secure and non-secure boot modes List the memory controllers that are available in the PS Discuss the decision-making process between programmable logic and software architectures Agenda: Zynq All Programmable SoC Overview o Processor with Programmable Logic o Application Processing Unit (APU) o Input/Output Peripherals (IOP) o Datapath and Memory o Programmable Logic (PL) Inside the Application Processor Unit (APU) o APU Components o Cortex-A9 Processor Overview o NEON/FPU Coprocessor o PS Memory and Cache Resources o Snoop Control Unit o System-Level Control Registers o Timers and More Timers
Transcript

1

Block 1:

ZYNQ-7000 Architecture

Objectives:

Describe the architecture and components that comprise the Zynq All Programmable SoC

processing system (PS)

Relate a user design goal to the function, benefit, and use of the Zynq All Programmable SoC

Effectively select and design an interface between the Zynq PS and programmable logic (PL)

that meets project goals

Analyze the tradeoffs and advantages of performing a function in software versus PL

Describe the AXI interconnect to the programmable logic (PL)

Identify basic modes of device configuration

List the input/output peripherals (IOPs) that are available in the processing system

Describe the difference between multiplexed I/O (MIO) and extended MIO (EMIO) usage

Describe the boot sequence of the Zynq device

Describe the difference between secure and non-secure boot modes

List the memory controllers that are available in the PS

Discuss the decision-making process between programmable logic and software

architectures

Agenda:

Zynq All Programmable SoC Overview

o Processor with Programmable Logic

o Application Processing Unit (APU)

o Input/Output Peripherals (IOP)

o Datapath and Memory

o Programmable Logic (PL)

Inside the Application Processor Unit (APU)

o APU Components

o Cortex-A9 Processor Overview

o NEON/FPU Coprocessor

o PS Memory and Cache Resources

o Snoop Control Unit

o System-Level Control Registers

o Timers and More Timers

2

o General Interrupt Controller (GIC)

o DMA

Processor Input-Output Peripherals

o Processor Peripheral Overview

o GPIO

o I2C

o UART

o CAN

o SPI

o SD/SDIO

o USB

o Ethernet

Introduction to AXI

o What is AXI?

o Variations of AXI

o AXI Transactions

Zynq All Programmable SoC PS-PL Interface

o PS-PL Interface Overview

o Interconnects in the PS

o AXI Master Interfaces

o AXI Slave Interfaces

o AXI ACP Interface

Zynq All Programmable SoC Booting

o Configuration Sequence Overview

o Software Boot

o PL Configuration

o Device Configuration Interface

o Typical Use Cases

Zynq All Programmable SoC Memory Resources

o Memory Resources Overview

o On-Chip Memory (OCM)

o Static Memory Controller (SMC)

o DDRx Memory Controller (DMC)

o Linear Quad SPI Flash Controller (QSPI)

o Block RAM

o Programmable Logic to Memory

3

Block 2:

Embedded Design Flow

Objectives:

Describe the major sub-blocks of a Zynq All Programmable SoC processor system

Enumerate the key aspects of the Zynq All Programmable SoC processing system

List some of the peripherals available in the Vivado IP catalog Describe the embedded design

flow

Show how the hardware and software design environments are linked

Construct a simple embedded design using the IP Integrator (IPI) tool

Locate processor IP and add processors to an IPI sub-system Configure the processor IP of an

embedded design

Identify the IP available for an embedded system design

Describe how to add hardware to an existing IP integrator (IPI) block diagram

Use the IPI workspace view to construct and modify a design Explain how the various block

design's components are

configured

Discuss how memory can be constructed within the IP integrator workspace

Agenda:

Embedded Design Overview

o Embedded Processor Component

o Overview of Embedded Development

o Embedded Development Design Flow

o SDK Software Platform Management

IP Integrator and the PS Configuration Wizard

o Starting Out

o Building a System with IP Integrator

o Re-Customizing the Zynq All Programmable SoC PS

Adding Hardware to an Embedded System

o Embedded System Tools and Products

o IP Delivery in the Vivado Design Suite

o Adding Hardware with IP Integrator

o Block Memory Usage

4

Hardware Aspects of the Interruptsystem in the Zynq device

o Need Your Attention

o Interrupts in the Cortex-A9 Processor

o Interrupt Controller

o Interrupt Inclusion

Labs:

1. Hardware Construction Using the Vivado IP Integrator

2. Adding and Downloading Software

3. Adding IP to a Hardware Design

5

Block 3:

Embedded Software Development

Objectives:

Implement an effective software design environment for a Xilinx embedded system using

the Xilinx SDK tools

Write a basic user application (under Standalone) using the Xilinx Software Development

Kit (SDK) and run it on an embedded system platform

Examine the Xilinx libraries for required services and features

Use a board support package (BSP) to access system services from the software

application

Determine whether your embedded system application requires a standalone system or

an operating system

List the contents of a BSP

Explain the difference between level 0 and level 1 software drivers

Write and compile an error free program

Download and execute a program

Use SDK software and error navigation features

Identify the content, functionality, and use of the more popular system services in the

Standalone Software Platform

Describe the address space of the Cortex™-A9 processors

Describe the interrupt structure of the Cortex™-A9 processor

Register the interrupt handler/interrupt service routine (ISR)

Describe the Xilinx device driver implementation standard

Agenda:

Standalone Software Platform Development

o Overview

o Libraries

o Processor Services

o Device Drivers

o Standalone Board Support Package

Software Development Using SDK

o Overview

o SDK: Software Development Kit

6

o Eclipse IDE

o SDK Help

o SDK Project Creation

o SDK Project Options

o SDK Run Options

o Writing Software and Compiling

Writing Code in the Xilinx Standalone Environment

o Overview

o Xilinx Data Types

o Using Device Drivers

o Using Timers

o GPIO – Detailed Example

o Tips and Tricks

Address Management

o Address Management

o Object Files and Sections

o Linking and Locating

o Linker Scripts

Software Aspects of the Interruptsystem in the Zynq device

o Overview

o Interrupts in the Cortex-A9 Processor

o Interrupt Inclusion

o Using an Interrupt Controller for Multiple Interrupts

o Create the Embedded Software Interrupt-Structure

o Considerations for Implementing Interrupts

Software Platform Download and Boot

o Overview

o Bootloader Options for the Zynq All Programmable SoC

o Bootloader Sequence of the Zynq All Programmable SoC

o Booting the Zynq All Programmable SoC from Off-Chip Flash or Another Peripheral

Writing a Custom Device Driver

o Overview

o Including the Driver in the BSP

o MDD File

o Tcl File

o MSS File

o Driver Code Structure

7

Labs:

1. Basic System Implementation

2. Embedded Software Application Development

3. Software Interrupts

4. File Systems

5. Writing a Device Driver

8

Block 4:

Verification for Hardware and Software

Objectives:

Generate an IP template using the Create and Package IP Wizard

Attach custom IP to the wizard-provided skeleton HDL

Manage a custom AXI IP design using the provided Vivado IDE project

Describe the Bus Functional Model (BFM) and how it helps in verification

List the BFM IP catalog components offered by Xilinx

Describe the basic tenets of the BFM Verilog API tasks

Describe the Vivado® Design Suite BFM design flow

Identify the current debugging capabilities in SDK

Describe the differences between the XMD and GDB debuggers List the features of the GDB

debugger

Use the SDK debugger perspective

List the benefits of hardware/software debugging using the Vivado Logic Analyzer

Agenda:

Designing a Custom AXI Peripheral

o Talking AXI

o AXI Backend Signaling Requirements

o Creating a Custom AXI Peripheral

Bus Functional Model Simulation

o Debugging Custom IP

o BFM Simulation

o Bus Functional Stimulus

o BFM Simulation Flow

Using the Create & Package IP Wizard

o Putting Together Custom IP Details

o Package IP Tab

Software Application Debugging

o Overview

o XMD Debugger

o GNU Debugger

o Debugging in SDK

9

o Modifying the Hardware

o Advanced Debugging Capabilities

Debugging Using the Vivado Runtime Logic Analyzer

o Overview

o Hardware Debugging

o Debug Configuration Wizard

o Software Debugging

o Debugging in SDK

o Platform Debugging

Labs:

1. Building Custom AXI IP for an Embedded System

2. BFM Simulation for an AXI Peripheral

3. Integrating a Custom Peripheral

4. Application Debugging

5. Hardware/Software Co-Debugging using the Vivado Logic Analyzer

10

Block 5:

Optimization of Embedded Systems

Objectives:

Apply software techniques to improve operability

Describe what profiling is and how it works

Write a software application for profiling Use the SDK profiling perspective

Use profiling reports to evaluate software efficiency Discuss software tradeoffs to

hardware

Identify when to use an AXI external connector component

List the AXI bridge components and describe when to use them Describe the differences

between AXI CDMA, DataMover and DMA

components

List the operational features of the Zynq® All Programmable SoC PS DMAC

Explain the usage of the AXI streaming FIFO component

Identify advanced methods of interfacing an embedded processing system to

programmable logic

Describe the two techniques to boot the second CPU

Outline the DMA features and services on the Zynq All Programmable SoC

Agenda:

Software Application Profiling

o Overview

o Writing Software for Profiling

o SDK Profiling

o Reading and Evaluating Profiling Reports

o Profiling in Linux

o Going to Programmable Logic

Meeting Performance Goals

o Performance Objectives

o Software or Programmable Logic?

o DDRx Memory Speed and Latency

o Achieving Maximum DMA Performance

o Sleep and Power Reduction

System Data Movement Low Latency and High Bandwidth

11

o AXI Everything

o AXI Outside the Embedded Realm

o AXI Connector and Bridges

o AXI DMA

Advanced Processor and Peripheral Interface Options

o Data-Passing Mechanisms

o IP Catalog Components

o PS IOP Components in the Zynq All Programmable SoC

o Utility Components

Advanced Boot Methodology on the Zynq AP SoC

o Starting Your Engines

o Single-Processor Boot

o Dual-Processor Boot

o Programmable Logic Configuration

o Secure Boot

Advanced DMA Controller Configuration on the Zynq All Programmable SoC

o Optimizing DMA

o Zynq All Programmable SoC DMAC Basics

o Programming DMA on the Zynq All Programmable SoC

o Use Cases for Zynq All Programmable SoC DMA

Labs:

1. SDK Profiling

2. Extending Memory Space with Block RAM

3. Extending Memory Space with a DDR3 Controller

4. Configuring DMA on the Zynq All Programmable SoC

5. Boot Loading from Flash Memory

12

Block 6:

Embedded Linux on Zynq Systems Part 1:

Objectives:

Describe processes, tasks and the scheduler

Use different file systems

Master the Linux command line and write custom shell scripts

Describe useful C-Libraries

Manage the development environment and the cross compiler

Use virtual file systems

Learn the basics of the root file systems

Debug your applications on Zynq SoC

Agenda:

Scheduler, processes, tasks, Users, Groups and file access

Root file system (File System Hierarchy Standard (FHS))

File systems like ext2,3 fat32 and the Memory Technology Deivice Framework for flash based

memory.

Using Linux command line

Creating shell scripts

Linux initialization system

Development environment and cross compiler

C-Libraries uclibc, glibc, eglibc

Using Xilinx SDK and JTAG debugger for Linux application debugging on Zynq

Creating and applying patches

Labs:

Formatting boot flash device

Getting to know Linux command line utilities

Shell scripting, an easy way to automate tasks

Updating of software sources with patches

Flash memory devices and the MTD framework

Using the sysfs GPIO driver

Installing and configuring SSH

13

Block 7:

Embedded Linux on Zynq Systems Part 2

Objectives:

Describe the Linux boot procedure on Xilinx Zynq SoC

Build your own kernel, bootloader and root file system

Build a root file system from scratch

Build a simple webserver

Use the tools yocto or buildroot

Agenda:

Linux boot procedure on Xilinx Zynq SoC

Download, configuration and compilation of u-boot boot loader

Download, configuration and compilation of Linux kernel

Creating a console based root file system from scratch

o Device file creation

o init-process set up

o modify init scripts to adapt boot sequence

Automatic embedded Linux system creation with build system like yocto or buildroot

Labs:

Configuring the u-boot boot loader from sources

Configuring u-boot for network boot using TFTP

Compiling the Kernel

Creating a root file system

Using a build system for automated Linux development

Installing and configuration of a simple webserver using the build system

14

Block 8:

Embedded Linux driver development on Zynq Systems

Objectives:

Linux basics for drvier development

o Everything we need to know about Linux to understand Linux driver and develop our

custom solutions

Linux driver modules

o Fundamentals about Linux loadable modules

Character Driver

o Most suitable interface between user space and kernel space for FPGA components on

XILINX Zynq

Platform Driver and device tree

o Interface of driver to XILINX Zynq FPGA fabric via AXI interconnect.

Linux Driver APIs

o Timer, delays, threads, work queues, semaphores, mutex, wait queues

Controlling and debugging of a driver

o Sysfs file system, printk, OOPS-messages, GDB

Agenda:

Linux Driver Basics

o Virtual, logical and physical addressing

o Process contexts

o Makefiles for driver module development

o Character-, Block, and Network-Devices

Hardware Access

o Device Tree Basics

o Register access and interrupts

o Clock management

Protection Mechanisms

o Race conditions

o Mutex and Semaphores

o Spinlocks

15

Timing and Working

o Kernel Threads, Tasklets and work queues

o Jiffies, high resolution timers and wait queues

Labs:

1. Implementation of a basic kernel module

2. Basic char driver implementation

3. Upgrading the basic char driver

4. Compiling the device tree

5. Register and unregister a platform driver

6. Controlling and managing clock signals

7. Control LEDs connected to a GPIO controller

8. Implement interrupts for platform driver

9. Combine the previous develop modules

10. Implement a kernel thread

11. Work queue implementation

12. Hrtimer implementation

13. wait queue implementation

14. sysfs implementation

15. using binary attributes with sysfs


Recommended