Rapid-Prototyping Emulation System Co-emulation Modelling Interface for SystemC Real-Time Emulation

Similar documents
Post-Configuration Access to SPI Flash Memory with Virtex-5 FPGAs Author: Daniel Cherry

USB 3.0 Connectivity using the Cypress EZ-USB FX3 Controller

Design and Verification of Nine port Network Router

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

Open Flow Controller and Switch Datasheet

7a. System-on-chip design and prototyping platforms

UNIT 4 Software Development Flow

International Journal of Advancements in Research & Technology, Volume 2, Issue3, March ISSN

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

The Advanced JTAG Bridge. Nathan Yawn 05/12/09

MP3 Player CSEE 4840 SPRING 2010 PROJECT DESIGN.

Kirchhoff Institute for Physics Heidelberg

Getting Started with Embedded System Development using MicroBlaze processor & Spartan-3A FPGAs. MicroBlaze

MicroBlaze Debug Module (MDM) v3.2

Architectures and Platforms

OpenSPARC T1 Processor

DESIGN AND VERIFICATION OF LSR OF THE MPLS NETWORK USING VHDL

Design and Implementation of an On-Chip timing based Permutation Network for Multiprocessor system on Chip

An Embedded Based Web Server Using ARM 9 with SMS Alert System

Avoiding pitfalls in PROFINET RT and IRT Node Implementation

Chapter 11: Input/Output Organisation. Lesson 06: Programmed IO

1. Computer System Structure and Components

Computer Performance. Topic 3. Contents. Prerequisite knowledge Before studying this topic you should be able to:

Modeling a GPS Receiver Using SystemC

Computer Systems Structure Input/Output

Codesign: The World Of Practice

Bus Data Acquisition and Remote Monitoring System Using Gsm & Can

A Smart Telephone Answering Machine with Voice Message Forwarding Capability

High Performance or Cycle Accuracy?

10/100 Mbps Ethernet MAC

Pre-tested System-on-Chip Design. Accelerates PLD Development

HMI EMBEDDED SYSTEM DESIGN AS A FUNCTION OF TECU

SDLC Controller. Documentation. Design File Formats. Verification

Building an Embedded Processor System on a Xilinx Zync FPGA (Profiling): A Tutorial

Lab 1: Introduction to Xilinx ISE Tutorial

Chapter 1 Computer System Overview

SYSTEM-ON-PROGRAMMABLE-CHIP DESIGN USING A UNIFIED DEVELOPMENT ENVIRONMENT. Nicholas Wieder

CPS221 Lecture: Operating System Structure; Virtual Machines

FPGA Music Project. Matthew R. Guthaus. Department of Computer Engineering, University of California Santa Cruz

Computer and Set of Robots

The Secrets of RS-485 Half-duplex Communication

Sample Project List. Software Reverse Engineering

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC Microprocessor & Microcontroller Year/Sem : II/IV

Embedded Component Based Programming with DAVE 3

Computer Organization & Architecture Lecture #19

Microcontroller Based Low Cost Portable PC Mouse and Keyboard Tester

Simplifying Embedded Hardware and Software Development with Targeted Reference Designs

Incorporating System-Level Design Tools into Upper-Level Electrical Engineering Courses

AVR151: Setup and Use of the SPI. Introduction. Features. Atmel AVR 8-bit Microcontroller APPLICATION NOTE

A Scalable Large Format Display Based on Zero Client Processor

Embedded Systems on ARM Cortex-M3 (4weeks/45hrs)

MATLAB/Simulink Based Hardware/Software Co-Simulation for Designing Using FPGA Configured Soft Processors

FPGA Prototyping Primer

Wireless Microcontrollers for Environment Management, Asset Tracking and Consumer. October 2009

Open Architecture Design for GPS Applications Yves Théroux, BAE Systems Canada

A Design of Video Acquisition and Transmission Based on ARM. Ziqiang Hao a, Hongzuo Li b

Eli Levi Eli Levi holds B.Sc.EE from the Technion.Working as field application engineer for Systematics, Specializing in HDL design with MATLAB and

Model-based system-on-chip design on Altera and Xilinx platforms

ARM Cortex -A8 SBC with MIPI CSI Camera and Spartan -6 FPGA SBC1654

NIOS II Based Embedded Web Server Development for Networking Applications

Technical Data Sheet SCADE R17 Solutions for ARINC 661 Compliant Systems Design Environment for Aircraft Manufacturers, CDS and UA Suppliers

Multiprocessor System-on-Chip

ZigBee Technology Overview

DS1104 R&D Controller Board

Von der Hardware zur Software in FPGAs mit Embedded Prozessoren. Alexander Hahn Senior Field Application Engineer Lattice Semiconductor

Product Development Flow Including Model- Based Design and System-Level Functional Verification

Video Conferencing Unit. by Murat Tasan

Switch Fabric Implementation Using Shared Memory

PMC-XM-DIFF & EADIN/MODBUS Virtex Design

Pen Drive to Pen Drive and Mobile Data Transfer Using ARM

Xilinx 7 Series FPGA Power Benchmark Design Summary May 2015

Measurement and Analysis Introduction of ISO7816 (Smart Card)

Getting the most TCP/IP from your Embedded Processor

Fastboot Techniques for x86 Architectures. Marcus Bortel Field Application Engineer QNX Software Systems

What is a System on a Chip?

RN-131-PICTAIL & RN-171-PICTAIL Evaluation Boards

Guangzhou HC Information Technology Co., Ltd. Product Data Sheet

System-On Chip Modeling and Design A case study on MP3 Decoder

Design of a High Speed Communications Link Using Field Programmable Gate Arrays

KeyStone Training. Multicore Navigator Overview. Overview Agenda

Development of Embedded Board for OMAP4460

System on Chip Platform Based on OpenCores for Telecommunication Applications

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

White Paper. Intel Sandy Bridge Brings Many Benefits to the PC/104 Form Factor

2. TEACHING ENVIRONMENT AND MOTIVATION

FPGA implementation of Voice-over IP

Load Balancing & DFS Primitives for Efficient Multicore Applications

Digital Systems Design! Lecture 1 - Introduction!!

Serial Communications

SBC6245 Single Board Computer

Eingebettete Systeme. 4: Entwurfsmethodik, HW/SW Co-Design. Technische Informatik T T T

ARM Ltd 110 Fulbourn Road, Cambridge, CB1 9NJ, UK.

BDTI Solution Certification TM : Benchmarking H.264 Video Decoder Hardware/Software Solutions

Design of Remote Security System Using Embedded Linux Based Video Streaming

An Introduction to the ARM 7 Architecture

Operating System Support for Multiprocessor Systems-on-Chip

AN LPC1700 timer triggered memory to GPIO data transfer. Document information. LPC1700, GPIO, DMA, Timer0, Sleep Mode

The new frontier of the DATA acquisition using 1 and 10 Gb/s Ethernet links. Filippo Costa on behalf of the ALICE DAQ group

OpTiMSoC Build Your Own System-on-Chip!

Transcription:

Rapid-Prototyping Emulation System Co-emulation ling Interface for SystemC Real-Time Emulation David Carroll School of Informatics and Engineering, Institute of Technology Blanchardstown, Dublin 15. IRELAND Abstract: - This paper describes the Communications Interface Protocol that was implemented successfully as a co-emulation modelling interface between SystemC model and a reconfigurable hardware platform. The information presented represents part of research into the suitability of using SystemC, in conjunction with a suitable reconfigurable hardware system platform, to provide a real-time emulation environment allowing SystemC simulations to be directly translated into realtime solutions for rapid prototyping of embedded systems. Keywords: emulation, systemc, reconfigurable, prototyping, co-verification, real-time. 1 Introduction The development of architectures and platforms suitable for the emulation of systems described with system level description languages, such as SystemC[1][2][4], is an active research area. To date research is largely targeted towards co-verification platforms, fcused verification of a design rather than real-time emulation. Nevertheless there is a significant correspondence in the research required to develop both fast verification systems and real-time systems[7][8][12][13]. This paper describes the SystemC communications interface protocol that was implemented successfully in a Digital Camera focus application. A co-emulation modelling interface (known as a ), was developed as part of research[14] into the suitability of using SystemC, in conjunction with a suitable reconfigurable hardware system platform, to provide a realtime emulation environment. Thus allowing SystemC simulations to be directly translated into real-time solutions for rapid prototyping of embedded systems[5]. The consequent Rapid Prototyping Co Emulation System Platform (PESP) is suitable for direct real-time implementation of SystemC based models, when the SystemC based design is interfaced with a reconfigurable hardware system platform, using the s described in this paper. The reconfigurable hardware platform is based on an FPGA development platform oriented towards consumer level multimedia applications and provides a reconfigurable hardware real-time emulation environment for prototyping real-time application designs. The subsystem is designed around a Xilinx MicroBlaze and Multimedia Development Board (MMDB)[10], incorporating the IBM Onchip Peripheral Bus (OPB) bus architecture implementation, on a Xilinx Virtex II FPGA[9] based platform. functional blocks developed as part of the system are written as VHDL modules and are implemented in the FPGA fabric using Xilinx ISE and EDK software tools. This paper presents an overview description of the PESP platform, followed by a brief description of the SystemC controller model. The s that make up the co-emulation modelling interface is then described in detail. ISBN: 978-960-6766-83-1 691 ISSN: 1790-2769

The s exist in both the SystemC portion of PESP and in the platform. As such the description is divided into five sub-sections, starting in the SystemC section of PESP and ending on the hardware platform, implemented through the Communications Manager. The final two sections of the paper include a brief statement regarding the Example Application used to demonstrate PESP and the paper conclusion. 2 PESP Platform Overview The PESP system, shown in Fig.1, consists of three main elements, the SystemC model, s and a interface. The SystemC model, is implemented in the Software and controls the activities of the system. The s are implemented in the and implement the system functions. The third element in Fig.1, the, communicates with SystemC at the transaction level and communicates with the s at the Bit-signal level. The is employed to facilitate communications between the SystemC and the s. Software SystemC Transactions read write Bit Signals sig. a sig. b sig. c sig. d s Fig.1: PESP Platform main elements The hardware aspects of PESP, shown in the block diagram in Fig.2, are implemented on a FPGA based hardware platform to provide greater flexibility during the design process, by facilitating the implementation of different hardware configurations. The Xilinx MMDB was chosen to provide the reconfigurable hardware, as it provides a range of multimedia oriented features (such as video and audio codecs) combined with the facility for implementing additional hardware functionality on the Virtex-II XC2V2000 FPGA device fabric. SystemC PC Based System SystemC via Host PC platform User information displayed on screen Commands entered Keyboard, Communications Channel Prototype HW Platform Multi-Media Board SRAM Memory User IO, Clocks, Audio Fig.2: PESP block diagram Prototype Platform MicroBlaze System (FPGA) JTAG interface Xilinx EDK Video Decoder Video Encoder Video Camera TV monitor 3 PESP SYSTEMC The PESP SystemC is a SystemC model designed using a modular design approach which facilitates the division of overall functionality into manageable pieces, aiding the verification testing, sub-model debug, simplifing movement of functionality during design exploration and simplifing addition/removal of sub-models to/from the overall system. During SystemC simulations, the PESP model is responsible for the user interface to the PESP system, and for the generation and control of commands, which are then implemented in the hardware components, in real-time, through the s. The SystemC model consists of several sub-models (shown in Fig.3), all implemented using THREAD processes[11]. A single inter-model interface type (SC_FIFO<>) was used through the model for all inter-model connections. ISBN: 978-960-6766-83-1 692 ISSN: 1790-2769

Application Layer Presentation Layer Driver Layer Output to Monitor Message Display model Application Control port 1 port 2 Message channels 1 2 1 2 Keyboard Input Keypress model port 3 3 3 port N N N Fig.3: Multi-layered architecture of SystemC model 4 PESP s The multi-layered architecture of the SystemC model is shown in Fig.3. User commands and system function control and monitoring is carried out by means of communication with the Driver Layer. The Driver Layer consists of the SystemC Message Port models, the Message Channels and s. The s interface directly with the s and are implemented using a combination of hardware and software, namely software functionality running on the MicroBlaze processor with the hardware functionality built on top of the OPB. The communications interface between the SystemC model and the re-configurable hardware is modelled on the Standard Co- Emulation API: ling Interface (SCE- MI)[3] infrastructure and presented in presented in [14]. The SCE-MI specification describes a modelling interface based on a multi-channel abstract bridge, providing multiple communication channels that allow software models describing system behaviour to connect to structural models implemented on hardware emulation systems. 4.1 Message Timing The is a form of abstract gasket, which communicates at the transactional level (e.g. READ and WRITE instructions) with the SystemC model, decomposing untimed s into a series of cycle-accurate clocked signals. These clocked signals form the communication interface between the and the hardware, on the hardware side of the system model. Similarly the hardware communicates with the at the signal level, where the cycle accurate signals are recomposed into transactional level s, for transfer to the SystemC model interface. Once a has been sent to the, the SystemC submodel processes are all suspended, although simulation time continues to run, until information is received back to the Message Port model from the (Fig.3). Process suspension is achieved by using blocking read requests to the STATUS ports of the sub-models, which are connected by FIFO channel interface types. A blocking read request to an empty port suspends the THREAD process requesting the read, until ISBN: 978-960-6766-83-1 693 ISSN: 1790-2769

such time as there is data in the interface channel registers connected to the that port. Thus the SystemC can request only one function for execution at a time. After the request, the SystemC processes are suspended until execution information is returned from the hardware platform, through the, after which the SystemC can request execution of another function. 4.2 Implementation The s are implemented across a combination of SystemC models (on the host PC) and using a combination of hardware and software on the MMBD hardware platform. The implementation overview block diagram in Fig.4 shows the hardware implementation across the two platforms, while Fig.5 shows the MicroBlaze platform implementation. In the SystemC model, the Port Interface and the Port models form part of the that is resident on the host PC. The Port model is responsible for the sending and receiving s to and from the hardware platform through the host PC interface port. Port Interface SystemC tx rx Port Communications Channel MMBD Platform Transceiver device FPGA (MicroBlaze Based System) Fig.4: implementation overview block diagram 4.3 Communications Flow The communications flow begins when one of the SystemC Message Port models requests the execution of a function by the hardware platform. The request is made by writing the request character to its CMD output port. The request is passed to the Port Interface model via the interface channel between the two models. Meanwhile the Message Port process gets suspended, pending a return from the Port Interface model. The Port Interface model passes the request to the Port model and gets suspended, while the Port model passes the request to the MMBD through the host PC communications port and it too get suspended. The is received by the Interface Transceiver device on the MMBD and is passed to the MicroBlaze based system implemented in the FPGA (Fig.5). The request enters the MicroBlaze system through the UART Control module where the is stored in input FIFO buffers. The UART Control Module asserts the interrupt request signal connected to the Interrupt module, which in turn generates the CPU interrupt request. Once the interrupt has been granted, a software Interrupt Service Routine (ISR) is executed. The ISR contains the Communications Manager (TCM), which reads the incoming from the UART Control module, interprets the and calls the appropriate software function to execute the request. Depending on how the function has been implemented on the hardware platform, the called function will execute the requested function in software, hardware, or a combination of hardware and software. For functions implemented in hardware, the called function will load the appropriate bus interface register(s) (see Fig.5) with command and data information to implement the requested function in hardware. This completes the conversion of the transaction level request from the SystemC Message Port model to the signal level implementation. For functions implemented in software, the called function executes the functions directly in the MicroBlaze software environment. Once the requested function execution has completed the hardware or software (depending on implementation) will notify the calling function, which will notify the TCM. The TCM will write the appropriate response into the UART Control ISBN: 978-960-6766-83-1 694 ISSN: 1790-2769

Module output FIFO buffer and return control to the ISR. The ISR returns control to the CPU, while the UART Control module sends the reply to the SystemC Message Port model STATUS port via the Transceiver communications interface chip, the Host PC port, the SystemC Port model and the Port Interface model. The SystemC model processes that are suspended will resume execution once they receive the reply that the function has successfully completed. 4.4 The hardware implemented on the MMBD consists of part of the MicroBlaze based system implemented in the FPGA fabric and the Transceiver interface chip. The part of the MicroBlaze based system related to the hardware, shown in Fig.5, is based on the OPB, which is part of IBM s CoreConnect architecture. The hardware implementation consists of several modules connected together by the OPB interface bus and the MicroBlaze CPU. Host PC Port Implementation Transceiver Interface CPU Interrupt Request Uart Interrupt Request Micro-Blaze CPU Interrupt Module UART Control Module OPB Peripheral Bus C S D D 1 OPB Interface Modules (containing interface registers) 2 Fig.5: hardware implementation into MicroBlaze based system The s are connected to the OPB via three three types of OPB Interface modules, the Control, Status and Data, designated by C, S and D in Fig.5, each consisting of a VHDL module core, based on a modified OPB General Purpose Input/Output core. 4.5 Communication Manager (TCM) The PESP software used to implement the in the MicroBlaze based system (implemented in the FPGA) is written using ANSI C. The software consists of two main programs as shown in Fig.6. The ISR contains the TCM program, which is responsible for interpreting and auctioning incoming requests from SystemC model. Main Function Start Define & Initialize Variables Enable MicroBlaze CPU Interrupts Enable Interrupt Enable UART Interrupt Request Set-up Encoder device registers Set-up Decoder device registers Loop? End n Step 1 - Interrupt controller module generates interrupt request y Step 2 - Program Flow changes to Uart ISR Uart ISR Start Define & Initialize Local Variables Disable IRQ on Interrupt Enable IRQ on Interrupt End Step 5 - Program Flow returned to Main Function TCM Verify valid Request Call Function to action Request Return from TCM to ISR Step 3 - TCM calls required function Execute required function Step 4 - Return from completed function Fig.6: MAIN, ISR and TCM software flow The MAIN, ISR and TCM program software flows, shown in Fig.6, begins with the MAIN function program flow executing when the MicroBlaze is initialised. Before entering a continuous loop, the MAIN program enables the interrupt capability of the MicroBlaze, Interrupt, UART Control modules and configures MMDB based devices. When a request to the hardware is received via the, the UART Control module generates an interrupt request and the Interrupt module generates an interrupt request to the CPU, Step 1 in Fig.6. The CPU changes the program flow to the UART ISR (Step 2). Next the UART ISR disables the interrupt controller from accepting any further interrupts and actions the TCM. The TCM verifies the incoming request and calls the appropriate function to execute the request (Step 3). This will change the program flow to the called function, which will directly instruct the hardware to carry out the request via the OPB Interface modules. Once the ISBN: 978-960-6766-83-1 695 ISSN: 1790-2769

function has been completed (Step 4), the program flow will return to the TCM and will be returned to the SystemC model. Program flow is then returned to the UART ISR where the Interrupt module is re-enabled and terminate the UART ISR, returning program flow to the continuous loop in the MAIN function, as shown in Step 5. 5 Example Application A digital camera application was chosen to functional test and verifty the operation of the s implemented in the PESP system. The digital camera system was chosen as it is an example of a widely available digital system which is sufficiently complex to provide scope for different architecture and technology configurations. The digital camera function was successfully implemented and demonstrated the usefuliness of the as a co-emulation modelling interface for use with SystemC for direct real-time implementation of SystemC based models. The focus application will be described in detail in a later paper. 6 Conclusion This paper presented the hardware and software implementation details and architecture of a communication interface protocol, known as s, which was successfully employed in research into the suitability of the underlying architecture of SystemC for direct real-time implementation of SystemC based models The higher level SystemC models used in PESP are currently implemented on a PC; however models could be transferred from the PC platform to the MicroBlaze itself, thus implementing the entire system on the MMDB. References: [1] OSCI; www.systemc.org [2] T. Grotker, S Liao, G. Martin, S Swan; System Design with SystemC; Kluer Academic Publishers, 2003, ISBN 1-4020-7072-1 [3] Accellera, Standard Co-Emulation ling Interface (SCE-MI) Reference Manual, Version 1.0, 2003, Published by Accellera, available from www.eda.org/itc [4] Institute of Electrical and Electronic Engineers, Inc., IEEE Standard SystemC Language Reference Manual, IEEE Std 1666, March 2006, available from www.ieee.org [5] Emulation and Verification Engineering; Universal Design Verification Platform for IP, FPGA, ASIC Design and Embedded Software Developers; www.eve-team.com [6] C.Alquier, S.Guerinneau, L.Rizzatti & L.Burgun, Co-Simulation between SystemC and a New Generation Emulator, System-on-chip and ASIC design, High-Performance System Design, DesignCon 2003. [7] Wolfgang Klingauf, Robert Gunzel, Rapid Prototyping with SystemC and Transaction Level ling, Technical University, Braunschweig, Germany, DAC 2005 [8] Samar Abdi, Dougwan Shin & Daniel Gajski, Automatic Communication Refinement for System Level Design, DAC 2003 [9] Xilinx, Virtex II data sheet (Xilinx doc. no. DS031-1), September 2002, www.xilinx.com/products/silicon_soluti ons/fpgas/virtex/index.htm [10] Xilinx, MicroBlaze and Multimedia Demo Board User Guide (doc. no. UG020 (v1.1)) August 2002, www.xilinx.com/bv_docs/userguides/ug 020.pdf [11] W. Muller, W. Rosenstiel & J. Ruf (editors), SystemC Methodologies and Applications, Kluwer Academic Publications, 2003, ISBN 1-4020-7479-4 [12] N. Papandreou, M. Varsamou & T. Antonakopoulos, Transmission Systems Prototyping based on Stateflow/Simulink s, RSP 04 [13] R. Siripokarpirom & F. Mayer- Lindenberg, -Assisted Simulation and Evaluation of IP Cores ISBN: 978-960-6766-83-1 696 ISSN: 1790-2769

using FPGA-based Rapid Prototyping Boards, RSP 04 [14] D. Carroll and R. Gallery, Rapid- Prototyping Emulation System using a SystemC Control System and Reconfigurable Multimedia Development Platform, Proc. WSEAS 2006 ISBN: 978-960-6766-83-1 697 ISSN: 1790-2769