Introduction to AXI Custom IP -...

61
Introduction to AXI Custom IP Cristian Sisterna Universidad Nacional de San Juan Argentina

Transcript of Introduction to AXI Custom IP -...

Page 1: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

Introduction to AXI –Custom IP

C r i s t i a n S i s t e r n a

U n i v e r s i d a d N a c i o n a l d e S a n J u a n

A r g e n t i n a

Page 2: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

◦ Describe the AXI4 transactions◦ Summarize the AXI4 valid/ready acknowledgment model

◦ Discuss the AXI4 transactional modes of overlap and simultaneous operations

◦ Describe the operation of the AXI4 streaming protocol

Agenda

ICTP - IAEAAXI - Custom IP

Page 3: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

• There is a need to get familiar with the way that different devices communicate each

other in an Embedded System like a Zynq based system

• Learning and understanding the communication among devices will facilitate the

design of Zynq based systems

• All the devices in a Zynq system communicate each other based in a device interface

standard developed by ARM, called AXI (ARM eXtended Interface):

• AXI define a Point to Point Master/Slave Interface

ICTP - IAEA 3

Need to Understand Device’s Connectivity

AXI - Custom IP

Page 4: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 4

Today’s System-On-Chip

CPU

Vide Controller

Ethernet Controller

USB

SPI

DDR Controller

Shared DRAM Memory

General Purpose I/O

DAC

ADC

AXI - Custom IP

Page 5: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

Interface Options

ICTP - IAEA 5

Processor

P1

P2

P3

ArbiterPeripherals

PLBv46 – Bus Spec

PLB

PLB

PLB

PLB

Processor

AXI Inteconnect

P1

P2

P3

M_AXIM_AXI

M_AXI

M_AXI S_AXI

S_AXI

S_AXI

AXI4 Defines a

Point to Point

Master/Slave

Interface

S_AXI

S_AXI

M_AXI

AXI - Custom IP

Page 6: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

• A standard• All units talk based on the same standard (same protocol, same language)

• All units can easily talk to each other

• Maintanence• Design is easily maintined/updated

• Facilitate debug tasks

• Re-Use• Developed cores can easily re-used in other systems

ICTP - IAEA 6

Connectivity -> Standard

AXI - Custom IP

Page 7: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

• Core Connect (IBM)• PLB/OPB (Power PC-FPGA bus interface)

• WishBone• OpenCore Cores

• AXI• ARM standard (more to come . . . )

ICTP - IAEA 7

Common SoC Interfaces

AXI - Custom IP

Page 8: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA

AXI is Part of ARM’s AMBA

AMBA

APB AHB AXI

Older Performance Newer

AMBA 3.0(2003)

AMBA: Advanced Microcontroller Bus ArchitectureAXI: Advanced Extensible Interface

8AXI - Custom IP

Page 9: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA

AXI is Part of AMBA

AMBA

APB AHB AXI

AXI-4Memory Map

AXI-4Stream

AXI-4Lite

ATB AMBA 3.0(2003)

AMBA 4.0(2010)

Same Spec

Enhancements for FPGAs

Interface Features Burst Data Width Applications

AXI4Traditional Address/Data Burst

(single address, multiple data)Up to 256 32 to 1024 bits

Embedded,

Memory

AXI4-Stream Data-Only, Burst Unlimited Any NumberDSP, Video,

Communications

AXI4-LiteTraditional Address/Data—No Burst (single

address, single data)1 32 or 64 bits

Small Control

Logic, FSM

9AXI - Custom IP

Page 10: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

Channel◦ Independent collection of AXI signals associated to a VALID signal

Interface ◦ Collection or more channles that expose an IP core’s connectin a master to a slave◦ Each IP core may have multiple interfaces

Bus◦ Multiple-bit signal (not an interface or channel)

Transfer◦ Single clock cycle where information is communicated, qualified by a a VALID handshake

Transaction◦ Complete communication operation across a channel, composed of a one or more transfers

Burst◦ Transaction that consists of more than one transfer

AXI – Vocabulary

ICTP - IAEA 10AXI - Custom IP

Page 11: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

AXI Transactions / Master-Slave

ICTP - IAEA 11

AXI SlaveAXI

Master

Read Transaction

Write Transaction

Transactions: transfer of data from one point on the hardware to another point

Responds to the initiate transaction

Initiates the transaction

AXI - Custom IP

Page 12: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

More than One-to-One

ICTP - IAEA 12

AXI Slave

AXI Master

AXI Slave

?

AXI Master

AXI Master

AXI Slave?

AXI - Custom IP

Page 13: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

AXI is an interconnect system used to tie processors to peripherals

◦ AXI Full memory map: Full performance bursting interconnect

◦ AXI Lite: Lower performance non bursting interconnect (saves programmable logic resources)

◦ AXI Streaming: Non-addressed packet based or raw interface

ICTP - IAEA

AXI Interconnect

13AXI - Custom IP

Page 14: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 14

AXI Interconnect

AXI MasterDMA

AXI Master

CPU

AXI SlaveSPI

AXI SlaveGPIO

AXI SlaveBRAM

?AXI Interconnect

M_AXI S_AXI

M_AXI

S_AXI

S_AXI

M_AXI

S_AXI M_AXI

S_AXI M_AXI

AXI - Custom IP

Page 15: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 15

AXI Interconnect – Addressing & Decoding

Address Range: 4K

Address Offset: 0X4000_0000

Addresses: 0X4000_0000 – 0X4000_0FFF

Address Range: 4K

Address Offset: 0X4000_1000

Addresses: 0X4000_0000 – 0X4000_1FFF

Address Range: 64K

Address Offset: 0X4001_0000

Addresses: 0X4001_0000 – 0X4001_FFFF

Address Decoding Table

GPIO: 0X4000_0000

SPI: 0X4000_1000

BRAM: 0X4001_0000

AXI - Custom IP

Page 16: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

• Different Number of (up to 16)• Slave Ports

• Master Ports

• Data Width Conversion

• Conversion from AXI3 to AXI4

• Register Slices, Input/Output FIFOs

• Clock Domains Transfer

ICTP - IAEA 16

AXI Interconnect Main Features

AXI - Custom IP

Page 17: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

o axi_interconnect component◦ Highly configurable

◦ Pass Through◦ Conversion Only◦ N-to-1 Interconnect◦ 1-to-N Interconnect◦ N-to-M Interconnect – full crossbar◦ N-to-M Interconnect – shared bus structure

o Decoupled master and slave interfaces

o Xilinx provides three configurable◦ AXI4 Lite Slave◦ AXI4 Lite Master◦ AXI4 Slave Burst

o Xilinx AXI Reference Guide(UG761)

AXI Interconnect

ICTP - IAEAAXI - Custom IP

Page 18: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

AXI Interface Example

ICTP - IAEA 18AXI - Custom IP

Page 19: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

AXI Interface Example

ICTP - IAEA 19AXI - Custom IP

Page 20: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

AXI Slave Signals

ICTP - IAEA 20AXI - Custom IP

Page 21: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

Basic AXI Rd/Wr Process

AXI - Custom IP ICTP - IAEA 21

Page 22: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

Master asserts and hold VALID when data is available

ICTP - IAEA

AXI Channels Use A Basic “VALID/READY” Handshake

22

Master sends next DATA/other signals or deasserts VALID

Data and other signals transferred when VALID and READY = ‘1’

DATA

VALID

READY

AXI

Master

AXI

Slave

ACLK

AXI - Custom IP

1

1

2

2 2 2

5

33

3

4

4 41

3 3

5 5 5

Slave asserts READY if able to accept data

Slave deasserts READY if no longer able to accept data

Page 23: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 23

AXI Channels (AXI4 and AXI Lite)

AXI4 ReadAXI4

Master

AXI4

Slave

Read Address Channel

Read Data Channel

Write Address Channel

Write Data Channel

Write Response Channel

Address

and

Control

Read

Data

Read

DataRead

Data

Read

Data

Address

and

Control

Write

Data

Write

DataWrite

Data

Write

Data

Write

Response

AXI4

MasterAXI4

SlaveAXI4 Write

AXI - Custom IP

Page 24: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

AXI Slave - Channels

ICTP - IAEA 24AXI - Custom IP

Page 25: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 25

(Full) AXI4

AXI

Master

AXI

Slave

Read Address Channel

Read Data Channel

Address

and

Control

Read

Data

Read

DataRead

Data

Read

Data

o Sometimes called “Full AXI”

or “AXI Memory Mapped”

o Single address multiple data o Burst up to 256 data

o Data Width parameterizableo 32, 64, 128, 256, 512, 1024

bits

Write Address Channel

Write Data Channel

Write Response Channel

Address

and

Control

Write

Data

Write

DataWrite

Data

Write

Data

Write

Response

AXI

MasterAXI

Slave

AXI - Custom IP

Page 26: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 26

AXI4 Stream

Write Data Channel

Write

Data

Write

DataWrite

Data

Write

Data

AXI

MasterAXI

Slave

o No address channel, no read

and write, always just Master

to Slaveo Just an AXI4 Write Channel

o Unlimited burst length

o Supports sparse, continuous,

aligned, unaligned streams

AXI - Custom IP

Page 27: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 27

AXI Stream

AX

I

Maste

r

AX

I

Sla

ve

AX

I

Sla

ve

Data Data

AX

IS_S

AX

IS_S

AX

IS_M

AXI - Custom IP

Page 28: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 28

AXI4 Lite

AXI

Master

AXI

Slave

Read Address Channel

Read Data Channel

Address

and

Control

Read

Data

Read

DataRead

Data

Read

Data

o No Burst

o Single address, single data

o Data Width 32 or 64 bits

(Xilinx IP only support 32)

o Very small size

o The AXI Interconnect is

automatically generated

Write Address Channel

Write Data Channel

Write Response Channel

Address

and

Control

Write

Data

Write

DataWrite

Data

Write

Data

Write

Response

AXI

MasterAXI

Slave

AXI - Custom IP

Page 29: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 29

AXI4 Lite Read

AXI

Master

AXI

Slave

Read Address Channel

Read Data Channel

Address

and

Control

Read

Data

Read

DataRead

Data

Read

Data

AXI - Custom IP

Page 30: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 30

AXI4 Lite Write

Write Address Channel

Write Data Channel

Write Response Channel

Address

and

Control

Write

Data

Write

DataWrite

Data

Write

Data

Write

Response

AXI

MasterAXI

Slave

AXI - Custom IP

Page 31: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

AXI - Custom IP ICTP - IAEA 31

AXI4 – AXI Lite: Signals Available

Page 32: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

AXI4-Lite Custom IP The VHDL Underneath

AXI - Custom IP ICTP - IAEA 32

Page 33: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

AXI4-Lite Signal Names

ICTP - IAEA 33AXI - Custom IP

Page 34: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

AXI4-Lite Signal Names

ICTP - IAEA 34AXI - Custom IP

o During the creation of a Xilinx IP block, the Vivado tools can be used to map each AXI signal onto the signal name that the designer used when creating the IP

o However in order to make the life of the designer much easier, the signal names shown here are recommended when designing a custom AXI slave in VHDL

o Using these signal names will allow the Vivadodesign tools to automatically detect the signal names during the “create and package IP” step (described later on).

Page 35: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

AXI4-Lite Address Decoding

ICTP - IAEA 35AXI - Custom IP

o In previous versions of the Xilinx design flow (where PLB and OPB peripherals were typically used) it was necessary for each IP peripheral connected to the processor to individually decode all transactions that were presented by a master on the bus (“multi-drop”). it was the responsibility of each peripheral to accept or reject each bus transaction depending on the address that was placed on the address bus.

o With AXI4-lite, the interconnect does not use a multi-drop architecture, but uses a scheme where each transaction from the master(s) is specifically routed to a single slave IP depending on the address provided by the master.

o This premise permits a completely different design methodology to be adopted by the creator of a slave IP, in that any transactions which reach the slave’s interface ports are already known to be destined for that peripheral.

o The designer merely needs to decode enough of the incoming address bus to determine which of the registers in the slave IP should be read or written

Page 36: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 36

My VHDL Code – Address Decoding

Address Decode & Write Enable

AXI4-Lite IP

AXI - Custom IP

Page 37: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

AXI4-Lite Address Decoding – VHDL Example

ICTP - IAEA 37AXI - Custom IP

Page 38: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

AXI4-Lite – Implementing Addressable Registers

ICTP - IAEA 38AXI - Custom IP

o Using the address decoding scheme above, it is extremely simple to implement registers in VHDL which can receive data values written by a master on the AXI4-lite interconnect. The following extract of code shows how an individual register can be quickly and easily implemented (in this case mapped to BASEADDR + 0x00, as has been coded in the previous VHDL snippet).

Read Transaction

WriteTransaction

Page 39: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

AXI4-Lite – Controlling AXI Transactions

ICTP - IAEA 39AXI - Custom IP

o Usually there is a need to implement somelogic to control the AXI transactions.

o This can be achieved by the use of a finitestate machine. Here, it is an example of a(simplified) state machine, showing theimplementation of some of the states, andhow a read transaction might be handled inthe design.

o The example is not designed to cover all ofthe states required to implement read andwrite transactions, but should help toillustrate a style of coding suitable forcreating the FSM.

Page 40: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

Custom AXI IPs Use of MGPO & MGP1

ICTP - IAEA 40AXI - Custom IP

Page 41: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

IP from many sources can be packaged and made available in Vivado

All IP available in the Vivado IP Catalog can be used to create IP Integrator designs

Any IP Integrator diagram can be quickly packaged as a single complex IP

Reusing Your IP

AXI - Custom IP ICTP - IAEACreating Custom

IP 14- 41

IP Packager

Source (C, RTL, IP, etc)

Simulation Models

Documentation

Example Designs

Test Bench

Vivado IP Integrator

Standardized IP-XACT

representation

Xilinx IP

3rd Party IP

User IP

Page 42: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

Consistent, easy access

Support for multiple physical locations, including

shared network drives

Access to the latest version of Xilinx-delivered IP

Access to IP customization and generation using the

Vivado IDE

IP example designs

Catalog filter options that let you filter by Supported

Output Products, Supported Interfaces, Licensing,

Provider, or Status

ICTP - IAEA 42

IP Catalog Main Features

AXI - Custom IP

Page 43: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

43Creating Custom IP 14- 43 ICTP - IAEA

IP Packager

The IP Packager allows a core to be packaged and included in the IP Catalog, or for distribution

IP-XACT

Complete set of files include Source code, Constraints, Test Benches (simulation files), documentation

IP Packager can be run from Vivado on the current project, or on a specified directory

Page 44: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

o Industry Standard (IEEE) XML format to describe IP using meta-datao Ports

o Interfaces

o Configurable Parameters

o Files, documentation

o IP-XACT only describes high level information about IP, not low level description, so does not replace HDL or Software.

o Enables automatic connection, configuration and integration

o Enables integration of 3rd Party IP ◦ (And Export of your own IP)

IP-XACT

AXI - Custom IP ICTP - IAEA 44

Page 45: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

o Use of MGPO & MGP1 to transfer data from the PS to a AXI Slave in the PL

o Write transaction to PL through MGP0

o Read transaction from PL through MGP1

Transfer Data from ARM Bus to PL Logic

ICTP - IAEA 45AXI - Custom IP

Page 46: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

46ICTP - IAEA

IP Packager

• The IP Packager allows a core to be packaged and included in the IP Catalog, or for distribution

• IP-XACT

• Complete set of files include• Source code, Constraints, Test Benches (simulation

files), documentation

• IP Packager can be run from Vivado on the current project, or on a specified directory

Page 47: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

Create and Package IP Wizard

Generates HDL template forSlave/Master

AXI Lite/Full/Stream

Optionally Generates ◦ Software Driver

◦ Only for AXI Lite and Full slave interface

◦ Test Software Application

◦ AXI4 BFM Example

IP Manager

ICTP - IAEAAXI - Custom IP

Page 48: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 48

Create Custom AXI4 IP

AXI - Custom IP

Page 49: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 49

Create Custom AXI4 IP

AXI - Custom IP

Page 50: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 50

Create Custom AXI4 IP

AXI - Custom IP

Page 51: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 51

Edit Created Custom AXI4 IP

AXI - Custom IP

Page 52: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 52

Edit Created Custom AXI4 IP

AXI - Custom IP

Page 53: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 53

Hierarchy of My IP

AXI - Custom IP

Page 54: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 54

Package the IP

AXI - Custom IP

Page 55: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 55

Compatibility of My IP

AXI - Custom IP

Page 56: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 56

Updating Generated Files

AXI - Custom IP

Page 57: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 57

Checking Parameters and I/O Ports

AXI - Custom IP

(This ends the Works on the edit_ip environment)

Page 58: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 58

Add My IP to the Repository

AXI - Custom IP

These steps shold be done in the Vivado Environment

Page 59: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

ICTP - IAEA 59

led_ip Now Available in the IP List

AXI - Custom IP

Page 60: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

component.xml◦ IP XACT description

.bd◦ Block Diagram tcl file

drivers◦ SDK and software files (c code)◦ Simple register/memory read/write

functionality◦ Simple SelfTest code

hdl◦ Verilog/VHDL source

xgui◦ GUI tcl file

Creating Custom IP 14- 60

Files created

ICTP - IAEAAXI - Custom IP

Page 61: Introduction to AXI Custom IP - indico.ictp.itindico.ictp.it/event/7987/session/38/contribution/141/material/... · ICTP - IAEA 4 Today’s System-On-Chip CPU Vide Controller Ethernet

• Create an AXI Slave/Master IP Core

• Use the Wizard to generate an AXI Slave/Master ‘device’

• Set the number of registers

• Building the Complete Zynq system

• Creating a Zynq based System

• Adding the necessary Ips

• Adding our custom AXI IP Core

• Edit Address Space

ICTP - IAEA 61

Steps for Custom IP - Summary

• Customize the IP Core

• File structure of the IP Cores• Edit the HDL generated by the wizard• Updating the IP Core and repack• Rebuild the system

• Programming the device

• Open SDK. Creating a Application and BSP project

• Write the “C” code to Wr/Rd the IP Cores registers

• Edit Space

AXI - Custom IP