AN OPEN-SOURCE VHDL IP LIBRARY WITH PLUG&PLAY CONFIGURATION

Similar documents
LEON4: Fourth Generation of the LEON Processor

Introduction to LEON3, GRLIB

ESA Contract 18533/04/NL/JD

Industrial use of open-source IP cores

A Boot-Strap Loader and Monitor for SPARC LEON2/3/FT

Processor and Peripheral IP Cores for Microcontrollers in Embedded Space Applications

Next Generation Multi-Purpose Microprocessor

System-On-Chip Design with the Leon CPU The SOCKS Hardware/Software Environment

Leon3 NoC System Generator

CCSDS Unsegmented Code Transfer Protocol (CUCTP)

The CoreConnect Bus Architecture

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

The SOCks Design Platform. Johannes Grad

Gaisler Research LEON SPARC Processor The past, present and future Jiri Gaisler Gaisler Research

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

Fujitsu SOC Fujitsu Microelectronics America, Inc.

Designing Embedded Processors in FPGAs

LEON3-Fault Tolerant Design Against Radiation Effects ASIC

A Flexible SystemC Simulator for Multiprocessor Systemson-Chip

Lab-2: Profiling m4v_dec on GR-XC3S National Chiao Tung University Chun-Jen Tsai 3/28/2011

Bus AMBA. Advanced Microcontroller Bus Architecture (AMBA)

CCSDS Time Distribution over SpaceWire

DEVELOPMENT AND VERIFICATION OF AHB2APB BRIDGE PROTOCOL USING UVM TECHNIQUE

GR712RC A MULTI-PROCESSOR DEVICE WITH SPACEWIRE INTERFACES

Intellectual Property Macrocell for. SpaceWire Interface. Compliant with AMBA-APB Bus

Designing with ALTERA SoC Hardware

Chapter 6 Storage and Other I/O Topics

COMPARISON BETWEEN GR740, LEON4-N2X AND NGMP

Atmel AT697 validation report

Copyright 2016 Xilinx

Real Time Trace Solution for LEON/GRLIB System-on-Chip. Master of Science Thesis in Embedded Electronics System Design ALEXANDER KARLSSON

Transaction Level Modeling with SystemC. Thorsten Grötker Engineering Manager Synopsys, Inc.

ISSN Vol.03, Issue.08, October-2015, Pages:

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

Intelop. *As new IP blocks become available, please contact the factory for the latest updated info.

A Portable and Fault-Tolerant Microprocessor Based on the SPARC V8 Architecture

V8uC: Sparc V8 micro-controller derived from LEON2-FT

FTMCTRL: BCH EDAC with multiple 8-bit wide PROM and SRAM banks. Application note Doc. No GRLIB-AN-0003 Issue 1.0

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

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

Test and Verification Solutions. ARM Based SOC Design and Verification

AMBA AHB Bus Protocol Checker

Verification of Multiprocessor system using Hardware/Software Co-simulation

APB4 GPIO. APB4 GPIO Datasheet Roa Logic, All rights reserved

A SOC DESIGN METHODOLOGY FOR LEON2 ON FPGA

Final Presentation. Network on Chip (NoC) for Many-Core System on Chip in Space Applications. December 13, 2017

VLSI Design of Multichannel AMBA AHB

GRPCI Master/Target Abort Erratum. Technical note Doc. No GRLIB-TN-0003 Issue 1.1

Designing with ALTERA SoC

Copyright 2014 Xilinx

High Performance Microprocessor Emulation for Software Validation Facilities and Operational Simulators. Dr. Mattias Holm

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

Zynq-7000 All Programmable SoC Product Overview

SVOM mission: ATF280F/AT697F data processing for real-time GRB detection and localization & ATF280E SpaceWire CEA IP recent developments

SoCWire: a SpaceWire inspired fault tolerant Network on Chip approach for reconfigurable System-on-Chip in Space applications

SpaceWire Remote Terminal Controller

ARM Processors for Embedded Applications

Fujitsu System Applications Support. Fujitsu Microelectronics America, Inc. 02/02

2. System Interconnect Fabric for Memory-Mapped Interfaces

CONTACT: ,

David Merodio Codinachs Filomena Decuzzi (Until Dec 2010), Javier Galindo Guarch TEC EDM

IMPLEMENTATION OF LOW POWER INTERFACE FOR VERIFICATION IP (VIP) OF AXI4 PROTOCOL

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

Interconnects, Memory, GPIO

Hardware Design. MicroBlaze 7.1. This material exempt per Department of Commerce license exception TSU Xilinx, Inc. All Rights Reserved

: : (91-44) (Office) (91-44) (Residence)

Chapter 2 The AMBA SOC Platform

Excalibur Device Overview

DEVELOPING RTEMS SMP FOR LEON3/LEON4 MULTI-PROCESSOR DEVICES. Flight Software Workshop /12/2013

Embedded Systems: Architecture

5. On-chip Bus

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

ARM-Based Embedded Processor Device Overview

Pooja Kawale* et al ISSN: [IJESAT] [International Journal of Engineering Science & Advanced Technology] Volume-6, Issue-3,

Design of AMBA Based AHB2APB Bridge

Page 1 SPACEWIRE SEMINAR 4/5 NOVEMBER 2003 JF COLDEFY / C HONVAULT

Using FPGAs as a Flexible PCI Interface solution

Hardware Design. University of Pannonia Dept. Of Electrical Engineering and Information Systems. MicroBlaze v.8.10 / v.8.20

Migrating RC3233x Software to the RC32434/5 Device

Booting a LEON system over SpaceWire RMAP. Application note Doc. No GRLIB-AN-0002 Issue 2.1

An Efficient Multi Mode and Multi Resolution Based AHB Bus Tracer

FPGA based embedded processor

SoC Platforms and CPU Cores

Memory Expansion. Lecture Embedded Systems

Lab-3: Simple Accelerator Design. National Chiao Tung University Chun-Jen Tsai 4/11/2011

Midterm Exam. Solutions

Qsys and IP Core Integration

Interfacing the RAD1419 A/D converter with the GRLIB IP core library

8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments

ESA IP Cores Service Current status, activities, and future plans. Kostas Marinis ESTEC/TEC-EDM

Getting Started Guide with AXM-A30

FPQ6 - MPC8313E implementation

Multi-core microcontroller design with Cortex-M processors and CoreSight SoC

Digital Blocks Semiconductor IP

Multi-DSP/Micro-Processor Architecture (MDPA) Paul Rastetter Astrium GmbH

The S6000 Family of Processors

ECE 111 ECE 111. Advanced Digital Design. Advanced Digital Design Winter, Sujit Dey. Sujit Dey. ECE Department UC San Diego

HW/SW Co-design Lecture 4: Lab 2 Passive HW Accelerator Design

DESIGN AND VERIFICATION ANALYSIS OF APB3 PROTOCOL WITH COVERAGE

Development an update. Aeroflex Gaisler

Transcription:

AN OPEN-SOURCE VHDL IP LIBRARY WITH PLUG&PLAY CONFIGURATION Jiri Gaisler Gaisler Research, Första Långgatan 19, 413 27 Göteborg, Sweden Abstract: Key words: An open-source IP library based on the AMBA-2.0 AHB/APB bus is presented. The library adds plug&play capability to the AMBA bus, while maintaining compatibility with existing AMBA cores. The library is both vendor and technology independent, and has support for several commercial tool-chains. IP cores; VHDL; system on chip; SOC; plug&play; SPARC; AMBA; PCI 1. INTRODUCTION To shorten the development time of complex system-on-chip (SOC) devices, IP-core based design methodology is increasingly being used. However, integrating third-party cores from different suppliers can require significant adaptation and harmonization of both functional and logistical (tool-oriented) interfaces. Procurement and licensing conditions, NDA agreements, and royalty issues must also be resolved, and can be equally challenging. One approach to solve these problems has been through the development of open-source IP cores, such as the LEON SPARC processor [1] (ESA & Gaisler Research) or the many cores developed by OpenCores.org [2]. While these open-source developments are interesting and promising on their own rights, they do not solve the combined functional and logistical problems with third-party IP reuse as described above. The procurement and licensing issues are simplified, but several technical issues persist. The LEON processor consists of a set of IP cores with harmonized interfaces and simulation/synthesis scripts, but the model implements only one major

712 Jiri Gaisler function (processor). The OpenCores group provide many different cores, but neither the functional nor logistical interfaces are well harmonized. The development of the GRLIB open-source IP library is a new attempt to address the reuse problems. The library consists of configurable IP cores with common interfaces and package structure. This paper will describe the rational and some implementation details of this new library. 2. GRLIB CONCEPTS 2.1 Overview The GRLIB IP Library intends to enhance the development of SOC devices by providing reusable IP cores with common functional and logistical interfaces. Common functional interfaces means that the cores implement the same on-chip bus interfaces, and use the same configuration and technology mapping methods. Common logistical interfaces means that the IP cores are coherently packaged in a common distribution, and use the same scripting method for compilation and synthesis. A key aspect has been to insure vendor independence at both core and tool level. The library is designed to be easily portable to different CAD tools and target technologies. It does also not depend on a vendor specific inter-face or technology which needs to be licensed or procured. The library is also designed to allow contributions or extensions from other parties. Each contributor is assigned a unique vendor name and ID, and can add cores to a well defined and separated part of the library. The overall concept of GRLIB is thus to provide a standardized and vendor-independent infrastructure to deliver reusable IP cores. The sections below will outline how the various parts of this infrastructure has been implemented. 2.2 Library organization GRLIB is organized around VHDL libraries, where each IP vendor is assigned a unique library name. Using separate libraries avoids name clashes between IP cores and hides unnecessary implementation details from the end user. A library typically contains a number of packages, declaring the exported IP cores and their interface types. All vendor-specific files such as simulation and synthesis scripts are contained in a vendor-specific area, and automatically merged into a combined script by a global makefile. Adding and removing of libraries and packages can thus be made without modifying

An Open-Source VHDL IP Library with Plug&Play Configuration 713 any global files. This also insures that modification of one vendor s library cannot will not affect other vendors. The initial release of GRLIB can generate scripts for the Modelsim simulator, and the Synopsys, Synplify and Xilinx XST synthesis tools. Support for other CAD tools can easily be added. 2.3 On-chip bus The GRLIB is designed to be bus-centric, i.e. it is assumed that most of the IP cores will be connected through an on-chip bus. The AMBA-2.0 [3] AHB/APB bus has been defined as the common on-chip bus, due to its market dominance (ARM processors) and because it is well documented and can be used for free without license restrictions. GRLIB uses VHDL record types to group related bus signals. Each AMBA unit only uses two record signals to connect to the bus, one record with all inputs and one record with all outputs. The AMBA bus is multiplexed (Figure 1), and each AMBA unit drives a separate record signal to the arbiter, which selects the active unit to drive the shared bus. Figure 1. AMBA AHB Bus Multiplexers 2.4 Distributed address decoding Adding an IP core to the AHB bus is however not as straight-forward as just connecting the bus signals. The address decoding of AHB is centralized, and a shared address decoder and bus multiplexer must be modified each time a core is added or removed. To avoid dependencies on a global resource, and allow SOC design to be as simple as putting together LEGO bricks (!), distributed address decoding has been added to the GRLIB cores and AMBA AHB/APB controllers.

714 Jiri Gaisler In a standard AMBA system, a fixed address decoder generates a chip select for each AMBA slave. In the GRLIB AMBA system, each instantiated core is assigned an address space through VHDL generics, and this information is routed to the address decoder together with the other bus signals in the output record. The address decoder does not have a fixed chip select generator, but automatically builds the chip select logic from the information received from the slaves. In this manner, the chip select generator always corresponds to the current configuration! Since the address space information is passed through VHDL generics, they will be constant and allow an efficient synthesis of the chip select logic. Using generics also allows an IP core to be instantiated several times with different parameters. The example below shows two instantiation of the same UART device: 2.5 Interrupt steering A problem with AMBA and most other on-chip buses is that interrupt steering is not defined in the bus specification, and must be solved in a system-dependent ad-hoc manner. GRLIB therefore provides a unified interrupt handling scheme by adding 32 interrupt signals to the output record of the AMBA modules. Similar to the address space definition, a VHDL generic is used to select which interrupt the unit should drive. The remaining interrupt signals are simply driven with zero. The arbiter ORs the 32-bit interrupt vector from each unit together into a combined 32-bit vector, and sends it out on the input records. The AMBA unit that implements an interrupt controller can then monitor the combined interrupt vector and generate the appropriate processor interrupt. In this way, interrupts can be generated regardless of which processor or interrupt controller is being used in the system, and does not need to be explicitly routed to a global resource. The scheme also allows that interrupts are shared by several cores and resolved by software. 2.6 Plug&Play capability A broad interpretation of the term plug&play is the capability to detect the system hardware configuration through software. Such capability makes it possible to use software application or operating systems which

An Open-Source VHDL IP Library with Plug&Play Configuration 715 automatically configure themselves to match the underlying hardware. This greatly simplifies the development of software applications, since they do not need to be customized for each particular hardware configuration. The information which is needed for plug&play capability includes the type of cores that are attached to the local bus, how they are configured, which address range they are mapped to, and which interrupt they drive. In the well-know PCI [4] bus, this information is stored in the configuration space and accessed through special configuration read/write cycles. In order to bring plug&play capability to AMBA, functionality to access the configuration parameters is needed. This functionality must be provided without modification to the basic bus protocol, or compatibility with the large infrastructure of AMBA compliant third-party IP cores would be lost. This rules out the addition of new bus cycle types, such as the configuration read/write cycles on PCI. In GRLIB, the address mapping configuration is sent from all cores to the AMBA address decoder, where it is used for chip select generation. By providing the remaining plug&play information (core type and interrupt steering) in the same way, the address decoder contains the full system configuration. The decoder is designed to automatically concatenate the configuration information from all AHB devices are into a small configuration prom, by default placed at the top of the address space. Any AHB master can then read the system configuration using standard read cycles, and a plug&play operating system can be supported. To provide the plug&play information from the AHB units in a harmonized way, a configuration record for AMBA AHB devices has been defined (Figure 2). The configuration record consists of 8 32-bit words, where four contains configuration words defining the core type and interrupt routing, and four contain so called bus address registers (BAR), defining the memory mapping. The configuration word for each device includes a vendor ID, device ID, version number, and interrupt routing information. The BARs contain the start address for a segment allocated to the device, a mask defining the size of the segment, and information whether the segment is cacheable or prefetchable. The configuration record can contain up to four BARs and the core can thus be mapped on up to four distinct memory segments. By identifying the cores through a vendor and device ID, a mapping between the VHDL library assignment and vendor ID can be established. Each vendor receives a unique vendor ID, and can add cores and device IDs without conflicts with other vendors.

716 Jiri Gaisler Figure 2. AMBA AHB configuration record 2.7 Portability Mapping IP cores to the desired target technology is normally handled by the synthesis tool, but does not work for technology specific mega cells such as embedded memories, hard multipliers or pads. GRLIB is intended to be technology independent, and therefore provides portability API for these type of blocks. The API is implemented as a component with a VHDL generic to select the target technology. In the architecture of the component, VHDL generate statement are used instantiate the corresponding macro cell from the selected technology library. For RAM cells, generics are also used to specify the address and data width, and the number of ports. Below is an example of a pad and a single-port ram with technology selection. The portability API includes components such as single-port ram, twoport-ram, dual-port ram, single-port rom, clock generators and pads.

An Open-Source VHDL IP Library with Plug&Play Configuration 717 2.8 Availability A working beta version of GRLIB has been available since early 2004. The library includes cores for AMBA AHB/APB control, the LEON3 SPARC processor, 32-bit PC133 SDRAM controller, 32-bit PCI bridge with DMA, 10/100 Mbit ethernet MAC, 8/16/32-bit prom and sram controller, generic UART, modular timer unit, interrupt controller, and a 32-bit GPIO port. Memory and pad generators are available for Virage, Xilinx, UMC, Atmel, and Actel. The first public version will be made available during Q2 2004, and released under GNU GPL. 3. CONCLUSIONS GRLIB has been developed to simplify both the development and reuse of open-source IP cores. By specifying common functional interfaces, new cores can easily be added and immediately reused. The logistical interface support several commonly used CAD tools, and can easily be extended. The distributed address decoding allows to design an modify complex SOC designs without having to modify any global controller or decoder. To enhance portability, an API to map technology-specific macro cells has been defined. To simplify software development and debugging, a plug&play capability has been added. By organizing GRLIB according to vendors, modification or addition of IP cores can be done without side-effects. By providing the library freely under the GNU GPL license, immediate access is provided to both academia and commercial companies. REFERENCES [1] [2] [3] [4] LEON2 home page, http://www.gaisler.com/leon.html Opencores home page, http://www.opencores.org AMBA Specification 2.0, ARM Ltd, May 13, 1999, http://www.arm.com PCI Local Bus Specification, Revision 2.1, June 1, 1995, PCISIG