White Paper AHB to Avalon & Avalon to AHB Bridges

Similar documents
Lecture 10 Introduction to AMBA AHB

5. On-chip Bus

AMBA 3 AHB Lite Bus Architecture

Ref: AMBA Specification Rev. 2.0

Excalibur Solutions Using the Expansion Bus Interface. Introduction. EBI Characteristics

Simultaneous Multi-Mastering with the Avalon Bus

PCI Express Multi-Channel DMA Interface

Verilog AHB Testbench User's Guide

1. INTRODUCTION OF AMBA

AHB-Lite Multilayer Interconnect IP. AHB-Lite Multilayer Interconnect IP User Guide Roa Logic, All rights reserved

Bus Interfaces and Standards. Zeljko Zilic

Embedded Busses. Large semiconductor. Core vendors. Interconnect IP vendors. STBUS (STMicroelectronics) Many others!

VeriFlow Technologies India (P) Ltd

FPGA Design Security Solution Using MAX II Devices

Design And Implementation of Efficient FSM For AHB Master And Arbiter

AIRbus Interface. Features Fixed width (8-, 16-, or 32-bit) data transfers (dependent on the width. Functional Description. General Arrangement

Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim

MAX 10 User Flash Memory User Guide

Nios Soft Core Embedded Processor

Keywords- AMBA, AHB, APB, AHB Master, SOC, Split transaction.

iimplementation of AMBA AHB protocol for high capacity memory management using VHDL

EECS 373 Design of Microprocessor-Based Systems

Simple Excalibur System

Nios II Embedded Design Suite 6.1 Release Notes

FPGAs Provide Reconfigurable DSP Solutions

Avalon Streaming Interface Specification

Active Serial Memory Interface

Buses. Maurizio Palesi. Maurizio Palesi 1

Using MAX II & MAX 3000A Devices as a Microcontroller I/O Expander

RapidIO Physical Layer MegaCore Function

Design of an Efficient FSM for an Implementation of AMBA AHB in SD Host Controller

Nios DMA. General Description. Functional Description

SoC Design Lecture 11: SoC Bus Architectures. Shaahin Hessabi Department of Computer Engineering Sharif University of Technology

2. System Interconnect Fabric for Memory-Mapped Interfaces

SEMICON Solutions. Bus Structure. Created by: Duong Dang Date: 20 th Oct,2010

White Paper Using the MAX II altufm Megafunction I 2 C Interface

Applying the Benefits of Network on a Chip Architecture to FPGA System Design

Using MAX 3000A Devices as a Microcontroller I/O Expander

POS-PHY Level 4 MegaCore Function

Design and Verification of AMBA AHB- Lite protocol using Verilog HDL

POS-PHY Level 4 POS-PHY Level 3 Bridge Reference Design

Legacy SDRAM Controller with Avalon Interface

AMBA AHB Bus Protocol Checker

DSP Builder. DSP Builder v6.1 Issues. Error When Directory Pathname is a Network UNC Path

DDR and DDR2 SDRAM Controller Compiler User Guide

Excalibur Solutions DPRAM Reference Design

Intel MAX 10 User Flash Memory User Guide

Matrices in MAX II & MAX 3000A Devices

Using the Nios Development Board Configuration Controller Reference Designs

DDR & DDR2 SDRAM Controller Compiler

Design of an AMBA AHB Reconfigurable Arbiter for On-chip Bus Architecture

Using the Serial FlashLoader With the Quartus II Software

CoreAHB. Contents. Product Summary. General Description. Intended Use. Key Features. Benefits. Supported Device Families

CoreHPDMACtrl v2.1. Handbook

SoC Interconnect Bus Structures

April 2002, Version 1.1. Component. PTF File. Component. Component GUI Wizards. Generation. System PTF file Files and Libraries.

Table 1 shows the issues that affect the FIR Compiler v7.1.

December 2002, ver. 1.3 Application Note 191. Six individual interrupts Six-bit priority scheme Five-bit priority scheme plus one individual interrupt

White Paper Configuring the MicroBlaster Passive Serial Software Driver

ZBT SRAM Controller Reference Design

DDR & DDR2 SDRAM Controller Compiler

Avalon Interface Specifications

Estimating Nios Resource Usage & Performance

EECS 373. Design of Microprocessor-Based Systems. Prabal Dutta University of Michigan. Announcements. Homework #2 Where was I last week?

DDR & DDR2 SDRAM Controller Compiler

Assertion Based Verification of AMBA-AHB Using System Verilog

VERIFICATION OF AHB PROTOCOL USING SYSTEM VERILOG ASSERTIONS

RapidIO MegaCore Function

Nios II Embedded Design Suite 7.1 Release Notes

AN 547: Putting the MAX II CPLD in Hibernation Mode to Achieve Zero Standby Current

Making Qsys Components. 1 Introduction. For Quartus II 13.0

DSP Development Kit, Stratix II Edition

Introduction. Design Hierarchy. FPGA Compiler II BLIS & the Quartus II LogicLock Design Flow

Introduction to the Altera SOPC Builder Using Verilog Design

Simulating Nios II Embedded Processor Designs

RLDRAM II Controller MegaCore Function

White Paper Understanding 40-nm FPGA Solutions for SATA/SAS

White Paper. Floating-Point FFT Processor (IEEE 754 Single Precision) Radix 2 Core. Introduction. Parameters & Ports

Simulating the Reed-Solomon Model

SONET/SDH Compiler. Introduction. SONET/SDH Compiler v2.3.0 Issues

Developing a LEON3 template design for the Altera Cyclone-II DE2 board Master of Science Thesis in Integrated Electronic System Design

White Paper The Need for a High-Bandwidth Memory Architecture in Programmable Logic Devices

Avalon Interface Specifications

Avalon Interface Specifications

9. Functional Description Example Designs

DDR & DDR2 SDRAM Controller

AN 549: Managing Designs with Multiple FPGAs

Introduction to the Altera SOPC Builder Using Verilog Designs. 1 Introduction

Implementing LED Drivers in MAX Devices

Nios PIO. General Description. Functional Description

Section III. Transport and Communication

DDR & DDR2 SDRAM Controller

AHB Slave Decoder. User Guide. 12/2014 Capital Microelectronics, Inc. China

On-Chip Memory Implementations

Simulating the PCI MegaCore Function Behavioral Models

The CoreConnect Bus Architecture

Cyclone II FPGA Family

Error Correction Code (ALTECC_ENCODER and ALTECC_DECODER) Megafunctions User Guide

Enhanced Configuration Devices

Stratix vs. Virtex-II Pro FPGA Performance Analysis

Transcription:

White Paper AHB to & to AHB s Introduction For years, system designers have been manually connecting IP peripheral functions to embedded processors, taking anywhere from weeks to months to accomplish. With the advent of SOPC Builder from Altera, designers can now define, parameterize, and link intellectual property (IP) cores automatically to create a custom system-on-a-programmable-chip in minutes. Altera provides two highly complex and efficient processors: the soft core Nios embedded processor, and Excalibur devices, with the hard core ARM922T. Some applications need more processing power than one microprocessor can provide. One alternative to higher performance processing is to run more than one processor in the system. For example, multiple Nios processors can be instantiated in the FPGA portion of an Excalibur device. SOPC Builder supports the following two bus standards for interconnecting these processors and peripherals: The advanced micro-controller bus architecture (AMBA) high-performance bus (AHB) for Excalibur devices The bus for the Nios embedded processor SOPC Builder provides two bridges to interface modules that reside on an AHB with modules on an bus. The AHB-to- bridge interfaces an AHB master with an slave; the -to-ahb bridge interfaces an master with an AHB slave. Both the and AHB specifications use slave-side arbitration (refered to as multi-layer AHB in the AHB specification), which places an arbiter in front of every slave that has multiple masters connected to it. This document describes the features of these bridges and the bus transactions across the bridges. AHB Signal Specifications The AHB is designed for high-performance, high clock frequency system modules. The AHB provides an efficient connection of processors, on-chip memories and off-chip external memory interfaces with low-power peripheral functions. Table 1 shows the definition of each of the AHB signals in the bridges. For more information on the AHB, refer to the AMBA Specification Revision 2.0. Table 1. AHB Signals (Part 1 of 2) Name Source Description h Clock source Bus clock.this clock times all bus transfers. All signal timings are related to the rising edge of HCLK. hresetn Reset controller Reset. The bus reset signal is active low and is used to reset the system and the bus. This signal is the only active low signal. Address bus. The 32-bit system address bus. htrans[1:0] Transfer type. Indicates the type of the current transfer, which can be NONSEQUENTIAL, SEQUENTIAL, IDLE or BUSY. h Transfer direction. When high this signal indicates a transfer; when low a read transfer. hsize[2:0] (1) Transfer size. Indicates the size of the transfer, which is typically byte (8 bit), halfword (16 bit) or word (32 bit). Burst type. Indicates if the transfer forms part of a burst. Four, eight and sixteen beat bursts are supported and the burst may be either incrementing or wrapping. Write data bus. The data bus is used to transfer data from the master to the bus slaves during operations. A minimum data bus width of 32 bits is recommended. However, this may easily be extended to allow for higher bandwidth operation. hselx (2) Decoder Slave select. Each AHB slave has its own slave select signal and this signal indicates that the current transfer is intended for the selected slave. This signal is simply a combinatorial decode of the address bus. Slave Read data bus The read data bus is used to transfer data from bus slaves to the bus master during read operations. A minimum data bus width of 32 bits is recommended. However, this may easily be extended to allow for higher bandwidth operation. WP-AHBAVALON-1.0 March 2003, ver. 1.0 1

Table 1. AHB Signals (Part 2 of 2) Name Source Description hready Slave Transfer done. When HIGH the HREADY signal indicates that a transfer has finished on the bus. This signal may be driven low to extend a transfer. Note: Slaves on the bus require HREADY as both an input and an output signal. Slave Transfer response. The transfer response provides additional information on the status of a transfer. Four different responses are provided, OKAY, ERROR, RETRY and SPLIT. hbusreqx (3) Bus request. A signal from bus master x to the bus arbiter which indicates that the bus master requires the bus. There is an HBUSREQx signal for each bus master in the system, up to a maximum of 16 bus masters. hgrantx (3) Arbiter Bus grant. This signal indicates that bus master x is currently the highest priority master. Ownership of the address/control signals changes at the end of a transfer when HREADY is high, so a master gets access to the bus when both HREADY and HGRANTx are high. Notes: (1) A 3 bit-signal in the AHB specification. However, the AHB-to- and -to-ahb bridges only use the lower two bits, because the maximum bus width is 32 bits for the bridges. (2) The hselx signal is not included in the -to-ahb bridge, because the bridge passes all transactions through to the AHB side. Therefore, address decoding must be done outside the bridge. (3) The hbusreqx and hgrant signals are not included in the AHB-to- bridge, because these signals are between the AHB master and the AHB arbiter. Signal Specifications The bus is a simple bus for connecting microprocessors and peripherals into a system-on-a-programmablechip. The bus has a low logic element (LE) count for bus logic and fully synchronous operation. Table 2 shows the bus signals, some of which are included on the bridges. For more information on the bus, refer to the Bus Specification. Table 2. Bus Signals Name Source Description Clock source The system-wide clock, which is provided to all devices. System Input The system-wide reset, which is provided to all devices. address The address bus. The master drives the address bus, which is broadcast (shared) by all slave modules. data The data bus. The master drives an outgoing () data bus, which is broadcast (shared) by all slave modules. readdata Slave The read data bus. Each slave device in an system produces its own unique (unshared) read-data output. chipselect (1) byteenable [3:0] The device-select signal. Individual select-signals are decoded for each slave-module in the system. A slave module should ignore all of its other bus inputs unless its chipselect-type port is driven logic-true. The byte-enable bus. Some slave devices may support individual, byte-wide read and operations. Such devices use byteenable to select which bytes are to be used for the current bus transaction. The strobe. The master drives an outgoing -strobe control signal, which is broadcast to (shared by) all slave modules. The master asserts this signal (drives it high) to indicate that the current bus transaction is a -data operation to the selected slave. read The read strobe. The master drives an outgoing read-strobe control signal, which is broadcast to (shared by) all slave modules. The master asserts this signal (drives it high) to indicate that the current bus transaction is a read-data operation to the selected slave. Slave The interrupt request. If a slave drives a logic-true signal on its port when it is selected, the current bus transaction is extended until the line is deasserted. Notes: (1) The chipselect signal is not a part on the AHB-to- bridge, because the bus module generates the chipselect by decoding the address. 2

AHB-to- This AHB-to- bridge is an interface between an AHB master and an slave. Figure 1 shows the interface signals of the AHB-to- bridge. Figure 1. AHB-to- Interface Signals hsel hreadyi address[1:0] read data[31:0] Slave hsize[2:0] AHB htrans[31:0] AHB to h hreadyo For more information on AHB signals and AHB transactions, refer to AMBA Specification revision 2.0. For more information on the bus, please refer to the Bus Specification. The AHB-to- bridge supports all AMBA transactions types by the AHB master i.e., SINGLE, INCR, INCR4, INCR8, INCR16, WRAP4, WRAP8 and WRAP16. The Verilog HDL source code for this bridge is provided with this paper. All AHB transactions are converted to a fundemental transfer (non-streaming, without latency). for more information on fundemntal transfers, refer to the Bus Specification. AHB-to- Features Whenever an AHB master starts a data transaction, the bridge always responds with an OKAY (hresp = 00) response. Hence, you must know the sequence of events of your design and create an AHB master accordingly. THe AHB-to- bridge has the following features: The AHB-to- bridge converts all AHB transactions to single transactions with wait-states (when necessary). For every transaction, the AHB-to- bridge responds to the AHB master with OKAY ( = 00). The AHB-to- bridge bridge supports one AHB master and multiple slaves. Multiple bridges can be used in the case where multiple AHB masters are connected to the bus. The same clock is used for the whole bridge. Therefore, if the slave is in a different clock domain than the AHB master, user logic must be added to synchronize the data across the clock domains. The AHB master does not need to take into account the setup or hold cycle requirements of the slaves. This is taken care of by the bus module. 3

Transfers with latency from an slave are translated into transactions with wait-states before going to the AHB-to- bridge. This is true for any transaction on the bus in which the master is not latency aware. The signal from the slave is inverted and tied to the hreadyo signal of the AHB master. When the signal is high (and hence the hreadyo signal is low), the current transaction from the AHB master is suspended until the slave drives the signal low. The hsize control signal and haddr[1:0] from the AHB master are used to determine the alignment of data between the AHB master and the slave using on the bus. AHB-to- Transactions Figure 2 shows the AHB master on the AHB-to- bridge connected to multiple slaves that sit on the bus. All of these slaves should be within the address range of the AHB master. Figure 2. AHB-to- Slave Connections hsel hreadyi address[31:0] read data[31:0] Slave A hsize[1:0] AHB htrans[31:0] AHB to h hreadyo Slave B For more information on designing an AHB master, refer to the AMBA Specification Revision 2.0. The following steps detail a transaction from the AHB master to a slave on the bus. 1. The AHB master starts a transaction by driving and the AHB control signals. 2. These AHB signals are driven into the AHB-to- bridge, converted to signals, and driven onto the bus. The AHB specification has separate address and data phases while the specification requires the address and data to be presented during the same cycle. Therefore, the AHB-to- bridge delays the address, to align the address and data on the bus. 3. The bus module decodes the address and asserts chipselect for the appropriate slave. On the rising edge of the clock, the slave samples chipselect, address[31:0], and other control signals. 4

4. The slave may set the signal high, which indicates that it cannot complete the transaction by the next rising clock edge. 5. At the next rising edge of the clock, the AHB master receives the slave s wait request via the hreadyo signal which is logically tied to the inverse of the signal. By default, an AHB address phase lasts for one clock cycle. The AHB master extends its address phase, if the slave is not ready. 6. When the slave has finished processing the data, it clears and completes the transaction. For example, if it is a read transaction, the slave sends data on readdata. According to the specification for a transaction, the slave does not send any signal back to the bridge to indicate the end of the transaction. -to-ahb The -to-ahb bridge serves as an interface between an master and an AHB slave. Figure 3 shows the signals of the -to-ahb bridge. For more information on AHB signals and AHB transactions, refer to AMBA Specification version 2.0 and above. For more information on the bus specification, refer to the Bus Specification. The -to-ahb bridge converts all transactions, including streaming transfers and transfers with latency, into AHB non-sequential single transfers. The Verilog HDL source code for this bridge is provided with this paper. Figure 3. -to-ahb (1), (2), (3) chipselect hsize[2:0] address[31:0] data[31:0] htrans[1:0] h AHB Slave to AHB hready hbusreq hgrant Note: (1) The hsize[2:0] signal is a 3 bit-signal in the AHB specification. However, the AHB-to- and -to-ahb bridges only use the lower two bits, because the maximum bus width is 32 bits for the bridges. (2) The bridge does not support address decoding, so you must generate hsel outside of the bridge. (3) This bridge does not support hreadyi. The slave uses hready to insert wait states -to-ahb Features When the master starts a data transaction, the -to-ahb bridge converts this transaction into nonsequential single transfers to the AHB slave. The -to-ahb bridge has the following features: 5

Converts all transactions to AHB non-sequential single transfers (htrans[1:0] = 10 and = 000) followed by an IDLE cycle (htrans[1:0] = 00). This IDLE cycle adds one cycle to every transaction, so there is at least one wait state on the bus. Therefore, is high for the first cycle of every transaction. The same clock is used for the whole bridge. Therefore, if the master is in a different clock domain than the AHB slave, user logic must be added to synchronize the data across the clock domains. The output signal from the bridge suspends the current transaction until the AHB slave is ready to complete the transaction. The signal is tied to the combination of AHB signals (including hready, hgrant, hbusreq). The bridge sets hsize[1:0] and haddr[1:0] based on, which is provided by the master. -to-ahb Transactions Figure 4 shows the master on the -to-ahb bridge connected to multiple slaves that sit on the AHB. All of these AHB slaves should be within the address range of the master. Multiple masters can be connected to the -to-ahb bridge. SOPC Builder takes care of the arbitration. For more information on simultaneous mutli-mastering, refer to AN 184: Simultaneous Multi-ing with the Bus. Figure 4. -to-ahb Slave Connections chipselect hsize[2:0] address[31:0] data[31:0] htrans[1:0] h AHB Slave A to AHB hready hbusreq hgrant AHB Slave B For more information on designing an AHB master, refer to the AMBA Specification Revision 2.0. The following steps detail a transaction from the master to the AHB slave: 6

1. The -to-ahb bridge starts data transactions only when it is granted the AHB by the AHB arbiter via the hgrant signal. The bridge requests control of the AHB via the hbusreq signal. 2. The master starts a transaction by driving address[31:0] along with the control signals. 3. The bridge translates the signals into AHB signals and sends them to the AHB. 4. The AHB slave samples and other AHB control signals on the rising edge of the clock. 5. The AHB slave may set the hready signal low indicating that the slave is inserting wait states. 6. At the next rising edge of the clock, the master receives the slave s wait state via the signal (which is tied to the combination of the hready, hgrant and hbusreq). 7. When the AHB slave has finished processing the data, it asserts hready and completes the transaction. For a read transaction, the AHB slave presents data on and the master samples this data on. 101 Innovation Drive San Jose, CA 95134 (408) 544-7000 www.altera.com Copyright 2003. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera logo, specific device designations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of in the U.S. and other countries. All other product or service names are the property of their respective holders. Altera products are protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. 7