SOCP2P: A PEER-TO-PEER IPS BASED SOC DESIGN AND SIMULATION TOOL

Similar documents
DISTRIBUTED CO-SIMULATION TOOL. F.Hessel, P.Le Marrec, C.A.Valderrama, M.Romdhani, A.A.Jerraya

Hardware, Software and Mechanical Cosimulation for Automotive Applications

Hardware, Software and Mechanical Cosimulation for Automotive Applications

UML Framework for Intensive Signal Processing Embedded Applications

LIFL 2002-n 06 Juin Sophocles: Cyber-Enterprise for System-On-Chip Distributed Simulation Model Unification

System Level Design Technologies and System Level Design Languages

A Generic Wrapper Architecture for Multi-Processor SoC Cosimulation and Design

Long Term Trends for Embedded System Design

A Generic RTOS Model for Real-time Systems Simulation with SystemC

TIMA Lab. Research Reports

Codesign Framework. Parts of this lecture are borrowed from lectures of Johan Lilius of TUCS and ASV/LL of UC Berkeley available in their web.

THE EUROPEAN DESIGN AND TEST CONFERENCE 1995 Paris,France 6-9 March 1995

A Unified Model for Co-simulation and Co-synthesis of Mixed Hardware/Software Systems

Native ISS-SystemC Integration for the Co-Simulation of Multi-Processor SoC

EEM870 Embedded System and Experiment Lecture 4: SoC Design Flow and Tools

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

Application of Multi-domain and Multi-language Cosimulation to an Optical MEM Switch Design

MDA for SoC Embedded Systems Design, Intensive Signal Processing Experiment

Cosimulation of ITRON-Based Embedded Software with SystemC

Hardware/Software Co-design

Hardware Design and Simulation for Verification

Hardware in the Loop Functional Verification Methodology

Architecture choices. Functional specifications. expensive loop (in time and cost) Hardware and Software partitioning. Hardware synthesis

Flexible and Executable Hardware/Software Interface Modeling For Multiprocessor SoC Design Using SystemC

Unifying Memory and Processor Wrapper Architecture in Multiprocessor SoC Design

Intro to High Level Design with SystemC

Modeling Asynchronous Communication at Different Levels of Abstraction Using SystemC

A Heterogeneous Hardware-Software Co-Simulation Environment Using User Mode Linux and Clock Suppression

Virtual Hardware Prototyping through Timed Hardware-Software Co-simulation

SpecC Methodology for High-Level Modeling

MARTE based design approach for targeting Reconfigurable Architectures

Automatic Generation of Embedded Memory Wrapper for Multiprocessor SoC

Design methodology for multi processor systems design on regular platforms

Elements of a SystemC Design Platform

FPGA-Based Rapid Prototyping of Digital Signal Processing Systems

1 From Distributed Objects to Distributed Components

EEL 5722C Field-Programmable Gate Array Design

ARM System-Level Modeling. Platform constructed from welltested

MULTILANGUAGE SPECIFICATION FOR SYSTEM DESIGN AND CODESIGN

System Level Design with IBM PowerPC Models

System-Level Verification Platform using SystemVerilog Layered Testbench & SystemC OOP

A Unified HW/SW Interface Model to Remove Discontinuities between HW and SW Design

Design Space Exploration for Hardware/Software Codesign of Multiprocessor Systems

DTNS: a Discrete Time Network Simulator for C/C++ Language Based Digital Hardware Simulations

SCOS-2000 Technical Note

C- BASED RAPID PROTOTYPING FOR DIGITAL SIGNAL PROCESSING

A Framework for the Design of Mixed-Signal Systems with Polymorphic Signals

Heterogeneous systems co-simulation: a model-driven approach based on SysML State Machines and Simulink

A Design Methodology for the Exploitation of High Level Communication Synthesis

TODAY, new applications, e.g., multimedia or advanced

Mapping Multi-Million Gate SoCs on FPGAs: Industrial Methodology and Experience

System Design and Methodology/ Embedded Systems Design (Modeling and Design of Embedded Systems)

Hardware Synthesis of UML-Models

Efficient Usage of Concurrency Models in an Object-Oriented Co-design Framework

Embedded system design with multiple languages

Specification and Validation for Heterogeneous MP-SoCs

Code Generation for QEMU-SystemC Cosimulation from SysML

Architectural Blueprint

System Synthesis of Digital Systems

SoC Design Environment with Automated Configurable Bus Generation for Rapid Prototyping

Rapid-Prototyping Emulation System using a SystemC Control System Environment and Reconfigurable Multimedia Hardware Development Platform

Contents 1 Introduction 2 Functional Verification: Challenges and Solutions 3 SystemVerilog Paradigm 4 UVM (Universal Verification Methodology)

A Rapid Prototyping Methodology for Algorithm Development in Wireless Communications

A Heterogeneous and Distributed Co-Simulation Environment

A Customizable Monitoring Infrastructure for Hardware/Software Embedded Systems

System level modelling with open source tools

Introduction to MLM. SoC FPGA. Embedded HW/SW Systems

8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments

RTOS-Centric Hardware/Software Cosimulator for Embedded System Design

Guido Sandmann MathWorks GmbH. Michael Seibt Mentor Graphics GmbH ABSTRACT INTRODUCTION - WORKFLOW OVERVIEW

Transaction Level Modeling: An Overview

CORBA (Common Object Request Broker Architecture)

Embedded Software Generation from System Level Design Languages

UVM: The Next Generation in Verification Methodology

Top Down Approach: SIMULINK Mixed Hardware / Software Design

A unified multicore programming model

THE BENEFITS OF MODEL-BASED ENGINEERING IN PRODUCT DEVELOPMENT FROM PCB TO SYSTEMS MENTOR GRAPHICS

Approaches of using UML for Embedded System Design

Ten Reasons to Optimize a Processor

Concepts for Model Compilation in Hardware/Software Codesign

Crisis and paradox in distributed-systems development

Model-based Analysis of Event-driven Distributed Real-time Embedded Systems

Model Driven Production of Domain-Specific Modeling Tools

System-on-Chip. 4l1 Springer. Embedded Software Design and Programming of Multiprocessor. Simulink and SystemC. Case Studies

Agent-Oriented Software Engineering

UML 2.0 Profile for Embedded System Design

Virtual Prototyping For Modular And Flexible Hardware-Software Systems

INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2

Abstraction Layers for Hardware Design

Modeling and Simulation of System-on. Platorms. Politecnico di Milano. Donatella Sciuto. Piazza Leonardo da Vinci 32, 20131, Milano

Observability in Multiprocessor Real-Time Systems with Hardware/Software Co-Simulation

Using SystemC to Implement Embedded Software

Component-based Engineering for Embedded Systems USA EU workshop

Appendix A - Glossary(of OO software term s)

Transaction-Level Modeling Definitions and Approximations. 2. Definitions of Transaction-Level Modeling

Embedded software design with Polychrony

Requirements for TINA Platform towards Information Sharing Business. Long-term Trend of Telephone Business

Multi-level Design Methodology using SystemC and VHDL for JPEG Encoder

Separating Product Variance and Domain Concepts in the Specification of Software Product Lines

Peer Participation and Software

Transcription:

41 SOCP2P: A PEER-TO-PEER IPS BASED SOC DESIGN AND SIMULATION TOOL Samy Meftali and Jean-Luc Dekeyser Laboratoire d Informatique Fondamentale de Lille. FRANCE Meftali@lifl.fr, Dekeyser@lifl.fr In this paper, we present a novel approach and tool allowing the use of the Peer-to-Peer concept in the IP based SoC design and simulation. This tool permits a real collaboration in SoCs design between different teams, and consequently may reduces dramatically the time-to-market. The IPs may be described using different languages. They are automatically encapsulated in a SystemC wrapper communicating with a CORBA transport object. The use of CORBA bus for the communication provides the tool a good flexibility and allows languages heterogeneity. 1. INTRODUCTION Now a days SoCs are more and more complex and integrate software parts as well as specific hardware parts (IPs Intellectual Properties generally). Due to this complexity, the time spent to verify and validate these systems is continuously increasing and may be usually greater than half of the time-to-market of a system. Modern SoCs are usually designed by assembling some existing hardware or software components called IPs. These later may be available as descriptions in a specific language at one or several abstraction levels. Because of the slowness of IPs exchange between providers and consumers (designers), and the strong time-to-market constraints related to any modern design projects, all the major design companies and some academic research laboratories have their own IP libraries. However, for cost and competences reasons, no one of these libraries can cover all the IPs which may be used in all the design projects of a given company. To face all these problems related to IPs exchange (slowness of the exchange procedure, cost, time to market, ), usually providers accept to deliver the IPs interfaces (without any behavior source code) to possible consumers. To take advantage of this possibility, designers must have a tool allowing them to simulate their system just by using the furnished IPs interfaces and without waiting until the end of the administrative IP transaction procedure.

388 VIRTUAL ENTERPRISES AND COLLABORATIVE NETWORKS This means that this tool has to be able to simulate a SoC composed by IPs available in the local host of the designer and some distant IPs available on the provider s hosts. For confidentiality reasons, these distant IPs have to be simulated on the provider s host, without downloading them. This problem is closely similar to the free files and tools exchange on Internet. In fact, we can imagine that the exchange of the IPs interfaces and the simulation authorizations can be done using a tool similar to Napster (Napster) or edonkey (edonkey2000, 2000). In addition to the time-to-market reduction with the anticipation of final IP transaction, this tool can provide many other advantages. In fact, communication means become increasingly powerful. So it becomes more and more interesting for designers to have tools allowing them to simulate systems on distributed platforms (some IPs on local hosts, and other IPs on the provider s host). Thus, a user can simulate his complete system on geographically distant hosts. This functionality allows designers to avoid the licenses problems. In fact, distributed simulation does not require having the licenses and the simulators on the same machine. It permits distributing the simulation engines in the specific groups, generally having the licenses for the dedicated simulators. It is possible thanks to this method to combine the machines and the software in order to share available CPU resources for the various simulated subsystems, in order to speed up the whole system simulation. Unfortunately, king of Peer-to-Peer IP based SoCs design and simulation tool don t exists yet. Its development constitutes the objective of our work. This paper is organized as follow: in section 2, we give a review of state of the art on distributed simulation, IPs exchange and peer-to-peer tools. The concept of SoC P2P and use of our tool are explained over an example in the section 3. We conclude this paper in the section 4. 2. RELATED WORK 2.1 Peer-to-Peer Tools A Peer-to-Peer tool allows users to communicate, collaborate or share files and applications without connecting to a web server. The connections between peers are direct (host-to-host), and data are not centralized on a server but distributed over the users hosts. These tools are used more and more and applied to several domains as: Communication: ICQ, AIM File sharing: Napster, Gnutella (Gnutella), Freenet (Clarke, 2001), KaZaA, edonkey Collaboration: Groove patform (Hurwicz, 2001), Microsoft NetMeeting Distributed computing: Netbatch,SETI@home (SETI) Edge services : used for employee training in Intel (Spooner) 2.2 IP exchange The last few years have been marked by the appearance of some tools allowing the IP exchange, in a secure way, between providers and consumers. The tools of

SOCP2P: A peer-to-peer ips based soc design and simulation tool 389 Design-and-Reuse (Design-and-Reuse) and Synchronicity (Synchronicity) are two significant examples. In fact, they permit to IP consumers to choice their component in providers IPs catalogs. Unfortunately, these tools deal only with the commercial aspect of IPs exchanging. Thus, they don t furnish tools assisting in the design or in the simulation. The data and the catalogs of these tools are centralized in an HTTP server. 2.3 Multi-level simulation Recently many academic and industrial research teams worked on the multi level simulation problem in embedded systems. This type of simulation implies to execute together models of the system component described at different abstraction levels. Among the proposed solutions, the Bus Functional Model (BFM) (Semeria, 2002) constitutes the conventional methodology to interconnect functional simulation models and cycle accurate models, especially to validate software/hardware interfaces. Unfortunately this methodology takes into account only memory accesses, but it doesn t at all allow transformation of high level communication primitives (FIFO for example). CoWareN2C (CoWareN2C, 2001) is an environment which offers a multi level cosimulation solution. It allows the use of two abstraction levels: BCA (Bus Cycle Accurate) which is closely similar to RTL and UT level (without timing references) Thus CoWareN2C presents a concept called BCASH, It is a wrapper of the subsystems described at UT level allowing the estimation of their sub routines execution time. This wrapper can be automatically generated only in if the subsystem at UT level is targeted in software.(that means that the sub-system will be executed on a processor simulator ISS Instruction Set Simulator ). This is unfortunately a very strong constraint. Some very recent works, in the literature, treat the problem of automatic generation of multi level simulation models for heterogeneous multiprocessor SoC. The work described in (Nicolescu, 2001) is one significant example. It permits to generate automatically simulation wrappers to adapt modules abstraction levels to the simulation level. Unfortunately, it doesn t target a specific class of application, and the wrappers are constructed by assembling basic components from external libraries. The structure of these simulation wrappers seems to be complex because of the important number of SystemC (SystemC), (Grotker, 2002) components (processes) present in each instance. 2.4 Distributed and multi-languages simulation Sophocles is the European ITEA project dedicated to elaborate a distributed simulation platform. The solution studied in Sophocles (Boulet, 2003) is based on the where companies would not necessarily have to possess their simulation infrastructure and tools, but could rely on third-party companies whose specific business is to provide for a number of client companies a set of vcs (bought from vc providers) and a computing infrastructure capable of hosting part of simulations using these components. We also find in the literature several tools allowing the geographically distributed simulation of SoC. For instance VCI and MCI (Hessel, 1998), (Hessel,

390 VIRTUAL ENTERPRISES AND COLLABORATIVE NETWORKS 2000) developed in TIMA laboratory. In MCI the different modules of a SoC can be described in VHDL and in C language, the SoC can then be simulated on simulators residing in geographically distant hosts, by using RPC (Remote Procedure Calls) for the communication. VCI is a kind of extension of MCI. Indeed, it takes again the concept of the simulation geographically distributed with the same mode of communication (RPC), but it allows the use of more programming languages such as MATLAB. Plug&Sim of Integrated Systems Inc. proposes a flexible simulation environment, where two simulators may run concurrently and communicate via a network using CORBA bus (ORB) (OMG, 2001). Synthesia (Altmae, 2002) is a SW/HW co-simulation tool allowing simulating together: the hardware part of a SoC on a VHDL simulator and the software part as compiled C or ADA programs. COSSAP (Runstadler, 1998) of Synopsys Inc. allows simulating simultaneously and concurrently modules described in C and assembling code with VHDL modules. It uses IPC for the communication between modules. Some recent work (Nicolescu, 2001), (Yoo, 2001) describes a co-simulation environment based on wrappers assembling. They uses the Linux shared memory for the inter simulators communication. Thus, the co-simulation can be executed just on a single host. In all these tools it seems that the distribution of the modules constituting a SoC on the different available hosts for the simulation is made manually and based only on the designer experience without any optimization. These tools don t allow yet the distribution of SystemC specifications, and don t use the recent and systematic communication methods as CORBA. 2.5 Contribution The main contribution of this work is to extend and to adapt the Peer-to-Peer concept to IP based SoC design and simulation. The communication will be realized using CORBA. This provides the tool a significant flexibility and heterogeneity. 3. SOC P2P The architecture of our Peer-to-Peer tool pour IP based SoC design and simulation (SoC P2P) is similar to those used for the files sharing described in the section 2. We will introduce the use of this tool over and example. Let s have an environment composed by four users (A, B, C and D). Each user has the SoC P2P tool installed in his machine, an IP library and the simulators able to simulate the available IPs in the local library. All the users are connected to Internet. This environment is illustrated in the figure 1.

SOCP2P: A peer-to-peer ips based soc design and simulation tool 391 Figure 1 A four SoC P2P users environment The design project of USER D is given in the figure 2. The SoC to design is constituted by five IPs. Figure 2 Design project of the USER D The IPs searching using SoC P2P tool gives the results shown in the table 1. Thus, the IPs 23 and 75 are available in the local library of the USER D. They are respectively described in SystemC and VHDL. The remaining IPs are available in foreign hosts of SoC P2P users. The users IDs of their owners and their descriptions languages are given by the tool. The last information given by the search operation is the simulation permissions. In fact, a SoC P2P user can allow or not any other user to use and to simulate the available IPs in his library.

392 VIRTUAL ENTERPRISES AND COLLABORATIVE NETWORKS 3.1 Interfaces standardization For more homogeneity and simplicity of the integration of the IPs in the distributed simulation models, we choose an emerging and very used communication standard called VCI. In fact, all IPs available in SoC P2P libraries have to be VCI compliant. This choice is motivated mainly by the two following reasons: Availability of well defined specifications of VCI interfaces and communication Simplicity of VCI communication Use of VCI standard in existing free IP libraries as SoCLib (SoCLib). Thus, when a user has already an IP library not VCI compliant, simple interfaces can be written easily to encapsulate these IPs and make them VCI compliant. 3.2 Multi-level simulation models Our simulation models generation flow generates a simulation module adapter for each module described at an abstraction level different from those on which we want to perform de simulation of the system. If we have for example a SoC composed by two modules: module 1 specified at UTF level and module 2 specified at RT level, and we want to simulate it at the RT level, our methodology generates automatically a simulation module adapter for the module 1 in order to adapt it s interface with those of module. Our simulation module adapters are not constructed by assembling basic components for external libraries as in almost literature tools, but it is generated by rules composition. In our simulation models generation flow all simulation module adapters are instances of a SystemC class that we created and called generic_interface. The generic interface is a configurable SystemC class. It is composed, as all SystemC classes, by an interface file (.h) and an implementation/behavior file (.cc). The interface file defining the ports characteristics is automatically configured from the initial system specification, and the behavior file is constructed and configured by the composition of a set of rules. This step is described with details in (Meftali, 2003). 3.3 Communication 3.3.1 How does it work? The principle of the communication in SoC P2P consists in using the CORBA naming service to locate a distant IP having just its name or its description. Then to encapsulate this IP, in a specific wrapper, to produce a distributed IP which can be used in a distributed SoC model. This mechanism is completely transparent for the designer. Thus to design a SoC, if we want to use distant IPs, it will be enough to use some specific mechanisms described in the next paragraphs.

SOCP2P: A peer-to-peer ips based soc design and simulation tool 393 3.2 Creation of a distributed IP The creation of a distributed IP, to be used in our simulation environment, do not change at all the current practices of the designers. In fact, any IP described in a system description language can be encapsulated in a SystemC module and become a distributed IP. The method consists in encapsulating the IP (or a group of IPs) in a specific interface. This interface has the characteristic to be a SystemC module communicating with a CORBA object. This interface is called corba_server_if. 3.3 The transport Object The transport object is, in fact, the CORBA object which will allow the invocation of distant methods. More precisely, it will make it possible to set and to get the values of the ports. It also allows synchronizing the distant simulator to which it belongs. For each occurrence of this object, there is one SystemC simulator on the server side. This object is created by the server, and then the client can get an instance of it using the naming service. When the client gets any instance, it initialize it by calling it the method init(). The initialization of a transport object initializes also the SystemC simulator to which it belongs. The method dosim( ) permits to run simulation for one given period of time. This method is used to synchronize the client with the server. Indeed, it is the client who synchronizes the simulation, he calls the method dosim( ) to synchronize himself with server. The generation of the distribution wrappers is described with details in (Meftali, 2003 a). 4. CONCLUSION In this paper we presented a tool called SoC P2P. It consists in adapting the Peer-to- Peer concept to the IP based SoC design and simulation. This is novel Peer-to-Peer application which can dramatically reduce the time-to-market in SoC design. The only restriction in SoC P2P is that the IPs must be VCI compliant. This is a standardization choice. The distributed simulation models are automatically generated in a Multilanguage collaborative environment. The multi-level adapters are also generated in the case of abstraction levels heterogeneity in the design project. 5. REFERENCES 1. 2. 3. M. ALTMAE., Hardware/Software Coverification. Procs. of EDA Traff, March 1995. T. GROTKER, S. LIAO, AL, System Design with SystemC. Kluwer Publishers. 2002. PIERRE BOULET, JEAN-LUC DEKEYSER, CEDRIC DUMOUL1N, PHILIPPE MARQUET, PHILIPPE KAJFASZ, AND DOMINIQUE RAGOT. Sophocles: Cyber-enterprise for system-onchip distributed simulation - model unification. In International Workshop on IP-Based SoC Design, Grenoble, France, nov 2003.

394 VIRTUAL ENTERPRISES AND COLLABORATIVE NETWORKS 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. I. Clarke, T.W. Hong, Freenet: A, Distributed Anonymous Information Storage and Retrieval in Designing Privacy Enhancing Technologies, Workshop on Design Issues in Anonymity and Unobservability, LNCS, New York,, 2001 COWARE INC.., Coware N2C. http://www.coware.com/cowaren2c.html, 2001. DESIGN AND REUSE INC. http:// http://www.us.design-reuse.com/ edonkey2000 home page, http://www.edonkey2000 Gnutella, www.gnu.org/philosophy/gnutella.fr.html HESSEL F., LeMARREC Ph., VALDERRAMA C., ROMDHANI M., JERRAYA A. A., MCI - Multilanguage Distributed Co-Simulation Tool. DIPES 98, edited by F. Rammig, Kluwer. 1999. HESSEL F., COSTE P., NICOLESCU G. all.., Multi-level communication synthesis of heterogeneous multilanguage specifications. (ICCD 2000), Texas, USA, September, 2000. M. HURWICZ, Emerging Technology: Groove Networks: Think Globally, Store Locally, Network Magazine, May, 2001 SAMY MEFTALI, JOEL VENNIN, JEAN-LUC DEKEYSER., Automatic Generation of, Geographically Distributed, SystemC Simulation Models for IP/SoC Design, 46th IEEE International MWSCAS, Cairo, Egypt, December 2003. SAMY MEFTALI, JOEL VENNIN, JEAN-LUC DEKEYSER, A Fast SystemC Simulation Methodology for Multi-level IP/SoC Design, In International Workshop on IP-Based SoC Design, Grenoble, France, nov 2003. Napster home page, http://www. Napster.com NICOLESCU G., YOO S., JERRAYA A. A., Mixed-level cosimulation for fine gradual refinement of communication in SoC design. DATE 01, Munich, Germany, March, 2001. OBJECT MANAGEMENT GROUP, (CORBA), Version 2.6. http://www.omg.org/technology/documents/formal/corba_iiop.htm, December, 2001. OPEN SYSTEMC INITIATIVE, http://www.systemc.org P. RUNSTADLER and R. CREVIER.., Virtual prototyping for system design and verification. Technical report, Synopsys Inc., Mars 1995. Search for Extraterrestrial Intelligence (SETI) home page, http://setiathome.ssl.berkeley.edu/ J. Spooner, K. Popovich, Intel: The future is peer L. Semeria and A. Ghosh, Methodology for Hardware/Software Co-verification in C/C++, Proc. of the ASPDAC, Jan. 2002. SYNCHRONICITY INC. http://www.synchronicity.com/ K. Truelove, A. Chasin, Morpheus Out of the Underworld, July 2001 YOO S., NICOLESCU G., JERRAYA A. A.., A generic wrapper architecture for multi-processor SoC cosimulation and design. CODES 2001, Copenhague, Denmark, April, 2001. SoCLib home page, http://soclib.lip6.fr/