Creating and Adding Custom IP

Slides:



Advertisements
Similar presentations
Using the SQL Access Advisor
Advertisements

Adders Used to perform addition, subtraction, multiplication, and division (sometimes) Half-adder adds rightmost (least significant) bit Full-adder.
1
PicoBlaze & MicroBlaze
Chapter 7 Constructors and Other Tools. Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 7-2 Learning Objectives Constructors Definitions.
Copyright © 2003 Pearson Education, Inc. Slide 1 Computer Systems Organization & Architecture Chapters 8-12 John D. Carpinelli.
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 4 Computing Platforms.
Processes and Operating Systems
Copyright © 2013 Elsevier Inc. All rights reserved.
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 1 Embedded Computing.
Copyright © 2011, Elsevier Inc. All rights reserved. Chapter 6 Author: Julia Richards and R. Scott Hawley.
Author: Julia Richards and R. Scott Hawley
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 3 CPUs.
Properties Use, share, or modify this drill on mathematic properties. There is too much material for a single class, so you’ll have to select for your.
Objectives: Generate and describe sequences. Vocabulary:
UNITED NATIONS Shipment Details Report – January 2006.
RXQ Customer Enrollment Using a Registration Agent (RA) Process Flow Diagram (Move-In) Customer Supplier Customer authorizes Enrollment ( )
1 Hyades Command Routing Message flow and data translation.
1 Introducing the Specifications of the Metro Ethernet Forum MEF 19 Abstract Test Suite for UNI Type 1 February 2008.
1 RA I Sub-Regional Training Seminar on CLIMAT&CLIMAT TEMP Reporting Casablanca, Morocco, 20 – 22 December 2005 Status of observing programmes in RA I.
Properties of Real Numbers CommutativeAssociativeDistributive Identity + × Inverse + ×
Exit a Customer Chapter 8. Exit a Customer 8-2 Objectives Perform exit summary process consisting of the following steps: Review service records Close.
Create an Application Title 1A - Adult Chapter 3.
Custom Statutory Programs Chapter 3. Customary Statutory Programs and Titles 3-2 Objectives Add Local Statutory Programs Create Customer Application For.
Chapter 5 Input/Output 5.1 Principles of I/O hardware
Contents Page Learning targets
Rhesy S.ppt proRheo GmbH
How to Use The 3 AXI Configurations
Course Objectives After completing this course, you should be able to:
REVIEW: Arthropod ID. 1. Name the subphylum. 2. Name the subphylum. 3. Name the order.
Week 2 The Object-Oriented Approach to Requirements
Figure 12–1 Basic computer block diagram.
Microprocessor Architecture Pipelined Architecture
Presenter : Cheng-Ta Wu Kenichiro Anjo, Member, IEEE, Atsushi Okamura, and Masato Motomura IEEE JOURNAL OF SOLID-STATE CIRCUITS, VOL. 39,NO. 5, MAY 2004.
ETS4 - What's new? - How to start? - Any questions?
PP Test Review Sections 6-1 to 6-6
Chapter 17 Linked Lists.
What is access control list (ACL)?
User Friendly Price Book Maintenance A Family of Enhancements For iSeries 400 DMAS from Copyright I/O International, 2006, 2007, 2008, 2010 Skip Intro.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 2 The OSI Model and the TCP/IP.
Chapter 3 Basic Logic Gates 1.
Flip-Flops and Registers
Health Artifact and Image Management Solution (HAIMS)
CS 6143 COMPUTER ARCHITECTURE II SPRING 2014 ACM Principles and Practice of Parallel Programming, PPoPP, 2006 Panel Presentations Parallel Processing is.
Name Convolutional codes Tomashevich Victor. Name- 2 - Introduction Convolutional codes map information to code bits sequentially by convolving a sequence.
Sample Service Screenshots Enterprise Cloud Service 11.3.
Copyright © 2012, Elsevier Inc. All rights Reserved. 1 Chapter 7 Modeling Structure with Blocks.
1 RA III - Regional Training Seminar on CLIMAT&CLIMAT TEMP Reporting Buenos Aires, Argentina, 25 – 27 October 2006 Status of observing programmes in RA.
Basel-ICU-Journal Challenge18/20/ Basel-ICU-Journal Challenge8/20/2014.
1..
CONTROL VISION Set-up. Step 1 Step 2 Step 3 Step 5 Step 4.
© 2012 National Heart Foundation of Australia. Slide 2.
Adding Up In Chunks.
Chapter 9: Subnetting IP Networks
Chapter 2 Entity-Relationship Data Modeling: Tools and Techniques
Gursharan Singh Tatla PIN DIAGRAM OF 8086 Gursharan Singh Tatla Gursharan Singh Tatla
Chapter 10: The Traditional Approach to Design
Analyzing Genes and Genomes
Systems Analysis and Design in a Changing World, Fifth Edition
©Brooks/Cole, 2001 Chapter 12 Derived Types-- Enumerated, Structure and Union.
Essential Cell Biology
Intracellular Compartments and Transport
PSSA Preparation.
Essential Cell Biology
Immunobiology: The Immune System in Health & Disease Sixth Edition
Energy Generation in Mitochondria and Chlorplasts
Import Tracking and Landed Cost Processing An Enhancement For AS/400 DMAS from  Copyright I/O International, 2001, 2005, 2008, 2012 Skip Intro Version.
TCP/IP Protocol Suite 1 Chapter 18 Upon completion you will be able to: Remote Login: Telnet Understand how TELNET works Understand the role of NVT in.
Chapter 9: Using Classes and Objects. Understanding Class Concepts Types of classes – Classes that are only application programs with a Main() method.
Presentation transcript:

Creating and Adding Custom IP Zynq 14.2 Version © Copyright 2012 Xilinx

Objectives After completing this module, you will be able to: 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 List the steps involved in creating peripherals using Create/Import IP wizard © Copyright 2012 Xilinx

Outline AXI4 Transactions Create and Import Peripheral Wizard AXI4 Lite Slave AXI4 Lite Master AXI4 Slave AXI4 Master Create and Import Peripheral Wizard Incorporating your IP functionality Summary © Copyright 2012 Xilinx

Basic AXI Transaction Channels Read address channel Read data channel Write address channel Write data channel Write response channel Non-posted write model There will always be a "write response" © Copyright 2012 Xilinx

All AXI Channels Use A Basic “VALID/READY” Handshake SOURCE asserts and holds VALID when DATA is available DESTINATION asserts READY if able to accept DATA DATA transferred when VALID and READY = 1 SOURCE sends next DATA (if an actual data channel) or deasserts VALID DESTINATION deasserts READY if no longer able to accept DATA © Copyright 2012 Xilinx

AXI Interface: Handshaking AXI uses a valid/ready handshake acknowledge Each channel has its own valid/ready Address (read/write) Data (read/write) Response (write only) Flexible signaling functionality Inserting wait states Always ready Same cycle acknowledge Inserting Wait States Always Ready It is up to the master to assert the valid signal and the slave to assert the ready signals for all channels except the read data channel where the slave asserts valid to indicate that it is returning data. The agent that asserts ready determines the flexibility as seen in the three waveform options. Same Cycle Acknowledge © Copyright 2012 Xilinx

AXI Interconnect 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 Decoupled master and slave interfaces Xilinx provides three configurable IPIC AXI4 Lite Slave AXI4 Lite Master AXI4 Slave Burst Xilinx AXI Reference Guide(UG761) The AXI interconnect is added as any other component to the System Assembly view in XPS and then connected to the target processor and various IP bus cores provided by Xilinx. The processor is always a master on the bus. The actual implementation of the AXI interconnect is with slice combinatorial logic to implement the ORed structure of the decoupled address, data, and controls signals. The context of “decoupled” refers to the fact that all the signals are unidirectional as inputs and outputs; that is, data in and data out, as opposed to a 3-state structure. The concept of a master is the bus agent that starts the transaction and owns the address out and control out signals. The Xilinx implementation of the AXI interface is documented in the Xilinx AXI Reference Guide (UG761). © Copyright 2012 Xilinx

AXI4 Signals (AXI4, AXI4-Lite) © Copyright 2012 Xilinx

Outline AXI4 Transactions Create and Import Peripheral Wizard AXI4 Lite Slave AXI4 Lite Master AXI4 Slave AXI4 Master Create and Import Peripheral Wizard Incorporating your IP functionality Summary © Copyright 2012 Xilinx

AXI Lite IPIF – Block Diagram Basic services Slave attachment Address decoding Timeout generation Byte strobe forwarding Optional services Master user logic Soft reset core User logic software registers, and Timeout logic inclusion The axi_lite_ipif is designed to provide a quick way to implement a lightweight interface between the AXI interconnect and a user IP core. This slave service allows for multiple user IPs to be interfaced to the AXI interconnect, providing address decoding over various address ranges as configured by the user. Optionally, if the axi_lite_ipif and master are the only bus agents, the bus connection can be optimized for a point-to-point connection, reducing FPGA resources and improving latency. The base element of the design is the Slave Attachment block, which provides the basic functionality for slave operation. It implements the protocol and timing translation between the AXI interconnect and the IPIC. © Copyright 2012 Xilinx

AXI Lite IPIC Single Data Phase Write and Read Cycle A single phase write cycle followed by a read is shown above. The first cycle shows the user IP data acknowledging (IP2Bus_WrAck = ’1’) the write cycle in the same clock cycle as Bus2IP_CS is presented. This represents a 0 wait state cycle. The second cycle, a read, is acknowledged by the user IP two clock cycles after the presentation of Bus2IP_CS and Bus2IP_RdCE. Two wait state clock cycles are inserted, allowing a master to read a slower peripheral. In either case, s_axi_wready and s_axi_rvalid will be asserted in the next clock cycle after IP2Bus_Wr(Rd)Ack is asserted by the user IP. © Copyright 2012 Xilinx

Outline AXI4 Transactions Create and Import Peripheral Wizard AXI4 Lite Slave AXI4 Lite Master AXI4 Slave AXI4 Master Create and Import Peripheral Wizard Incorporating your IP functionality Summary © Copyright 2012 Xilinx

AXI4 Lite Master – Block Diagram AXI4 Lite mastering capability Single data phase only One to four bytes Only 32-bit data width The AXI Lite master single initiates and performs a single data phase AXI transaction. It is designed to provide a quick way to implement a lightweight mastering interface between user logic and AXI interconnect. The above figure shows a block diagram of the axi_master_lite. The design is natively 32 bits and supports read and write transfers of 1 to 4 bytes. The transfer request protocol between the AXI interconnect and the user logic is provided by the Read and Write Controller block. The data phase uses just a data bus and a ready signal. Use the axi_master_lite when your application requires an occasional single word or data phase transaction to take place. © Copyright 2012 Xilinx

AXI4 Lite Master Single Data Phase Read Cycle Two single beat (data phase) read cycles are shown above. The first cycle shows the AXI slave address and data acknowledging the read cycle at the earliest allowed times by the AXI specification. The second read transfer indicates a more typical address acknowledge sequence and a delayed read data acknowledge by the AXI slave device. © Copyright 2012 Xilinx

Outline AXI4 Transactions Create and Import Peripheral Wizard AXI4 Lite Slave AXI4 Lite Master AXI4 Slave AXI4 Master Create and Import Peripheral Wizard Incorporating your IP functionality Summary © Copyright 2012 Xilinx

AXI4 Slave Duties, Options, and Configuration Slave IPIC duties and configurable options Address decode and acknowledge One or more address spaces Memory interface; that is, chip enable User registers Single or burst data phase acknowledgement Software reset/MIR register Read FIFOs Automatic timeout on user slave logic Your custom slave attachments You can option in a software reset service. This service allows the system microprocessor to perform a local reset of the user IP by writing a data key value to the user-assigned address space for the reset service. This reset service is in addition to the hardware reset provided by the AXI interface reset input. When activated by the write, a reset pulse is generated that is sent to the user IP and the various internal slave attachment elements. When optioned in, the reset service can also provide a slave attachment Module Information Register (MIR). The MIR is read only and provides information about the plbv46_slave. The axi_slave_burst provides read FIFO services. They can be independently optioned in or out of the slave implementation. These FIFOs are synchronous to the AXI clock and have user-parameterized depth. © Copyright 2012 Xilinx

AXI4 Read Transaction © Copyright 2012 Xilinx

AXI4 Read Transaction Multiple reads, not burst transaction Multiple read transactions are identified by different read IDs For a burst transaction only one read ID would have been used Separate RLAST for corresponding read transactions ARSIZE=2 indicates entire word is being read © Copyright 2012 Xilinx

AXI4 Write Transaction © Copyright 2012 Xilinx

AXI4 Write Transaction Multiple write, not burst Multiple write transactions are identified by different write IDs (AWID) For a burst transaction only one write ID would have been used Separate OKAY status for corresponding write transactions WSTRB=0xF indicates entire word is being written © Copyright 2012 Xilinx

AXI Slave Burst – Block Diagram The axi_slave_burst is designed to provide a quick way to implement a multi-data phase interface between the AXI interconnect and a user IP core. This slave service allows for multiple user IPs to be interfaced to the AXI interconnect, providing address decoding over various address ranges as configured by the user. Optionally, if the axi_slave_burst and master are the only bus agents, the bus connection can be optimized for a point-to-point connection, reducing FPGA resources and improving latency. The base element of the design is the Slave Attachment block, which provides the basic functionality for slave operation. It implements the protocol and timing translation between the AXI interconnect and the IPIC. Optional FIFOs can be built into the IPIC for read buffering. The axi_slave_burst has a superset of axi_lite_ipif backend signals with a few extra to indicate burst length in duration and number of operations. The axi_slave_burst attachment can be configured for read, write, or both with logic being saved in both if not chosen. © Copyright 2012 Xilinx

AXI Slave Burst Burst Data Phase 3 Reads and 3 Writes The AXI burst Slave Attachment block supports fixed bursts of bytes, half-words, words, double-words, and quad words with transfer lengths of: 1 to 256 data beats with INC type transfers 1 to 16 data beats with FIXED type transfers 2, 4, 8, 16 data beats with WRAP type transfers The figure above shows a burst request from a 32-bit master to the 32-bit slave. © Copyright 2012 Xilinx

Outline AXI4 Transactions Create and Import Peripheral Wizard AXI4 Lite Slave AXI4 Lite Master AXI4 Slave AXI4 Master Create and Import Peripheral Wizard Incorporating your IP functionality Summary © Copyright 2012 Xilinx

AXI4 Master Burst – Block Diagram Parameterizable data width 32, 64, 128 Data burst 16, 32, 64, 128, 256 data beats © Copyright 2012 Xilinx

AXI4 Master Burst Read 80 bytes of burst read ip2bus_mst_length signal Transaction delimited by bus2ip_mst_cmdack and bus2ip_mst_cmplt signals Burst read broken into two transactions 16 data beats (64 bytes) 4 data beats (16 bytes) AXI master receive data m_axi_rdata User logic receive data bus2ip_mstrd_d Data framing bus2ip_mstrd_sof_n bus2ip_mstrd_eof_n Only relevant signals are shown for readability purpose © Copyright 2012 Xilinx

AXI4 Master Burst Write 80 bytes of burst write ip2bus_mst_length signal Transaction delimited by bus2ip_mst_cmdack and bus2ip_mst_cmplt signals Burst write broken into two transactions 16 data beats (64 bytes) 4 data beats (16 bytes) User logic writes data IP2Bus_MstWr_d AXI master write data m_axi_wdata Data framing IP2Bus_MstWr_sof_n IP2Bus_MstWr_eof_n Only relevant signals are shown for readability purpose © Copyright 2012 Xilinx

Outline AXI4 Transactions Create and Import Peripheral Wizard Incorporating your IP functionality Summary © Copyright 2012 Xilinx

Create and Import Peripheral Wizard (CIP Wizard) The wizard helps you create your own peripheral. It can also allow you to import a previously created peripheral into your design The wizard generates the necessary core description files into the user-selected directory You can start the wizard after creating a new project or opening an existing project in XPS The user peripheral can be imported directly through the wizard by skipping the creation option provided the peripheral already exists Ensure that the peripheral complies with Xilinx implementation of AXI4 interface The Create and Import Peripheral Wizard helps you create your own peripherals and import them into EDK-compliant repositories or Xilinx Platform Studio (XPS) projects. In the Create mode, this tool creates a number of files. Some of these files are templates that help you implement your peripheral without requiring a detailed understanding of the bus protocols, naming conventions, or the formats of special interface files required by the EDK. In the Import mode, this tool helps you create the interface files and directory structures that are necessary to make your peripheral visible to the various tools in the EDK. For this mode of operation, it is assumed that you have followed the naming conventions required by the EDK. After import, your peripheral resembles any other module available in the EDK peripherals library. © Copyright 2012 Xilinx

Starting the CIP Wizard The Create and Import Peripheral Wizard can be started after creating a project and using Hardware  Create or Import Peripheral … or using Start  All Programs  Xilinx Design Tools  ISE Design Suite 14.x  EDK  Tools  Create and Import Peripheral Wizard © Copyright 2012 Xilinx

Select the Flow and Directory 1 2 Select the target directory – project directory or user repository Select Create Peripheral flow The project directory assigned as the target directory will allow the peripheral to be available to the project without importing it. User repository will allow multiple projects to access the same peripheral by importing it in a project © Copyright 2012 Xilinx

Selecting a Peripheral Name and Bus Interface 3 4 Provide the peripheral name and version Select the interface to which the peripheral will attach © Copyright 2012 Xilinx

Selecting Various Services 6 5 Configure the SW accessible registers Select services © Copyright 2012 Xilinx

Select IPIC Signals and BFM 7 8 Select the IPIC signals available to the user logic Optional Bus Functional Model Simulation Template © Copyright 2012 Xilinx

Select Optional Implementations Support You can select to generate HDL in Verilog generate project file so you can synthesize using XST and use ISE implementation tools software drivers 9 Optional Implementation Tools Support © Copyright 2012 Xilinx

Generate Peripheral Template Since the project directory was assigned as the target directory the peripheral will appear in the IP Catalog under Project Local pcores folder 10 Finish © Copyright 2012 Xilinx

Outline AXI4 Transactions Create and Import Peripheral Wizard Incorporating your IP functionality Summary © Copyright 2012 Xilinx

Inside user_logic.vhd Entity statement Add custom port signals Add custom generics and parameters Instantiate the rest of the design as a component Review the sample code provided for each option Registers implemented for Bus2IP_WrCE and Bus2IP_RdCE selects Block RAM memory implemented for Bus2IP_CS Example code to generate interrupts Example code to transfer data between read/write FIFO Modify/delete code to accommodate your application Only the needed IPIC signals will appear in user_logic.vhd The user_logic.vhd file is well documented and contains usage examples for all of the IPIC options that you selected in the Create or Import Wizard. You are free to review this logic and modify it to fit your needs or just delete it if not needed. It is a requirement that you perform some modifications here or the logic will tend to get into your way. Make sure that you put all of your VHDL source files in the …\pcores\<ipic_name>\hdl\vhdl directory. Verilog users should use the …\pcores\<ipic_name>\hdl\verilog directory. Notice that the user_logic.vhd/v and <ipic_name>.vhd/v files are in the same directory. © Copyright 2012 Xilinx

IPIC Register Read/Write The above diagram illustrates two read operations. You can add wait states by delaying the assertion of IP2Bus_RdAck. If you want to report an error, then assert IP2Bus_Error along with IP2Bus_RdAck. Be sure that you have knowledge of what the master is going to do when it receives the error. Write © Copyright 2012 Xilinx

IPIC Memory Read/Write Bus2IP_Clk Bus2IP_Addr Bus2IP_BE Bus2IP_CS(i) Bus2IP_RNW Bus2IP_Data IP2Bus_Data IP2Bus_RdAck IP2Bus_WrAck Memory operations typically decode some of the lower bits of Bus2IP_Addr to the exact location needed in the general address space hit designated by Bus2IP_CS(i). Notice that Bus2IP_RNW is also used because, unlike the chip enables, read/write operations are not decoded. IP2Bus_Error © Copyright 2012 Xilinx

Outline AXI4 Transactions Create and Import Peripheral Wizard Incorporating your IP functionality Summary © Copyright 2012 Xilinx

Summary AXI4 interface defines five channels All channels use basic VALID/READY handshake to complete a transfer AXI Interconnect extends AXI interface by allowing 1-to-N, N-to-1, N-to-M, and M-to-N connections Custom IP can be created and/or imported using Create/Import Peripheral wizard The designer then needs to modify user_logic. vhd/v to include the desired functionality Bring up all user proprietary signals up though the hierarchy to the top-level <ip_name>.vhd file Modify mpd file to declare the user propriety signals so they are visible in System Assembly View Modify pao file so lower-level modules are compiled © Copyright 2012 Xilinx