Parallel Systemc Simulation for Electronic System Level Design

Total Page:16

File Type:pdf, Size:1020Kb

Parallel Systemc Simulation for Electronic System Level Design Parallel SystemC Simulation for Electronic System Level Design Von der Fakultät für Elektrotechnik und Informationstechnik der Rheinisch–Westfälischen Technischen Hochschule Aachen zur Erlangung des akademischen Grades eines Doktors der Ingenieurwissenschaften genehmigte Dissertation vorgelegt von Diplom–Ingenieur Jan Henrik Weinstock aus Göttingen Berichter: Universitätsprofessor Dr. rer. nat. Rainer Leupers Universitätsprofessor Dr.-Ing. Diana Göhringer Tag der mündlichen Prüfung: 19.06.2018 Diese Dissertation ist auf den Internetseiten der Hochschulbibliothek online verfügbar. Abstract Over the past decade, Virtual Platforms (VPs) have established themselves as essential tools for embedded system design. Their application fields range from rapid proto- typing over design space exploration to early software development. This makes VPs a core enabler for concurrent HW/SW design – an indispensable design approach for meeting today’s aggressive marketing schedules. VPs are essentially a simulation of a complete microprocessor system, detailed enough to run unmodified target binary code. During simulation, VPs provide non-intrusive debugging access as well as re- porting on non-functional system parameters, such as execution timing and estimated power and energy consumption. To accelerate the construction of a VP for new systems, developers typically rely on pre-existing simulation environments. SystemC is a popular example for this and has become the de-facto reference for VP design since it became an official IEEE stan- dard in 2005. Since then, however, SystemC has failed to keep pace with its user’s demands for high simulation speed, especially when embedded multi-core systems are concerned. Because SystemC only utilizes a single processor of the host computer, the underlying sequential discrete event simulation algorithm becomes a performance bottleneck when simulating multiple virtual processors. It is the main goal of this thesis to overcome this bottleneck by utilizing multi-core computers as simulation hosts, given they are abundantly available today. To that ex- tent, it presents new tools and modelling methodologies that facilitate parallelization of new and existing VPs, even if they include legacy source code and models that were written without parallelism or thread-safety in mind. After proposing a new parallel simulation engine for SystemC, this thesis continues by investigating modelling ap- proaches that address commonly encountered issues when migrating from sequential to parallel simulation environments, such as the functional correct representation of optimistic exclusive memory access models. The efficacy of the proposed techniques is evaluated using realistic VPs as the driving case studies. In the past, these platforms have been used productively, either in design space exploration or as debug targets for early SW development. Their performance gains due to parallel simulation reach 4 – 8x over the current state-of- the-art implementation of SystemC on modern multi-core host computers. Acknowledgements While writing these words I am looking back at the six years (even more if you count my time as a student and research assistant) I spent at the Institute for Communication Technologies and Embedded Systems at the RWTH Aachen University. It has truly been a privilege to be able to work alongside so many excellent personalities that have supported and shaped my academic career and I would like to take the opportunity to thank them here. First, I would like to thank Professor Rainer Leupers, who encouraged me to pursue a doctoral degree and allowed me to join his research group. His vast expertise and constructive feedback allowed me to refocus my research whenever I lost track and helped me to concentrate on solving the practical problems. I am grateful to Christoph Schumacher, who accompanied me during my first voyages into SystemC and parallel simulators during my early days at the Institute. His determined and thorough approach to problem solving quickly became a shining example and his research formed a solid foundation to build upon. Beyond those already mentioned, I had the pleasure of working with many other Institute members that deserve a mention here. I would like to express my gratitude to Luis Gabriel Murillo, Róbert Lajos Bücs and Stefan Schürmans for our inspirational conversations as well as challenging questions that helped me improving and opti- mizing this work. I would also like to thank my research assistants Christian Jöhri, Alexander Wihl and Florian Walbroel for helping me to carry the workload. A special thank you goes to my colleagues Gereon Onnebrink and Diego Pala for proof-reading and helping me to give this thesis its finishing touch. Finally, I would like to express my gratitude to my friends and family – those who are still around and those who passed away too soon. It is because of your love and support that this work became possible, and I cannot thank you enough for it. Jan Henrik Weinstock, June 2018 Contents 1 Introduction 1 1.1 EmbeddedSystems............................... 2 1.2 ElectronicSystemLevelDesign . ... 4 1.3 SystemLevelDescriptionLanguages . .... 5 1.3.1 SystemC ................................. 7 1.3.2 SpecC................................... 7 1.3.3 SystemVerilog .............................. 8 1.3.4 Summary................................. 8 1.4 AnatomyofaVirtualPlatform . 9 1.4.1 SupportingToolset ........................... 9 1.4.2 PlatformSimulator ........................... 11 1.5 ThesisContributionsandOutline. .... 12 1.6 Synopsis ..................................... 13 2 Background 15 2.1 DiscreteEventSimulation . .. 15 2.2 DeterministicSimulation. ... 18 2.3 RaceConditions................................. 19 2.4 SynchronisationProblem. .. 21 2.5 Synopsis ..................................... 24 3 Related Work 25 3.1 TraditionalParallelSimulation . ..... 25 3.2 ParallelSystemC ................................ 26 i ii CONTENTS 3.2.1 SynchronousSimulation . 26 3.2.2 AsynchronousSimulation . 27 3.2.3 DistributedSimulation . 28 3.2.4 AcceleratorSupportedSimulation . .. 29 3.2.5 SummaryofParallelSystemCApproaches . 30 3.3 FastInstructionSetSimulation . .... 32 3.3.1 CompiledSimulation. 33 3.3.2 DynamicBinaryTranslation. 34 3.4 Synopsis ..................................... 34 4 Target Platforms 35 4.1 TheEURETILEPlatform ............................ 35 4.1.1 VirtualEURETILEPlatform . 36 4.1.2 EURETILESoftwareandToolchain. 37 4.2 TheGEMSCLAIMPlatform . .. .. .. .. .. .. .. 38 4.2.1 GEMSCLAIMVirtualPlatform . 39 4.2.2 GEMSCLAIMSoftwareEnvironment . 41 4.3 TheOpenRISCPlatform ............................ 41 4.3.1 OpenRISCVirtualPlatform . 42 4.3.2 OpenRISCSoftwareEnvironment . 43 4.4 Synopsis ..................................... 44 5 Time-Decoupled Parallel SystemC 45 5.1 AsynchronousSystemCSimulation. ... 45 5.1.1 SimulationLoopandContext . 47 5.1.2 SimulatorPartitioning . 48 5.2 Cross-threadCommunication . .. 50 5.2.1 RemoteEvents.............................. 51 5.2.2 RemoteEventQueues . .. .. .. .. .. .. .. 53 5.2.3 BlockingTransportInterface. .. 55 5.2.4 AugmentedTLMTargetSocket . 57 5.3 ExperimentalResults . .. .. .. .. .. .. .. 59 CONTENTS iii 5.3.1 ExperimentSetup............................ 60 5.3.2 SequentialPerformance . 62 5.3.3 ParallelPerformance . 63 5.3.4 LookaheadAnalysis . .. .. .. .. .. .. .. 65 5.4 LimitationsandOutlook . 66 5.5 Synopsis ..................................... 68 6 Flexible Time-Decoupling 69 6.1 SimulatorOperationModes . 69 6.1.1 DeterministicSimulationMode . 71 6.1.2 FastSimulationMode . 72 6.2 FlexibleInter-threadCommunication . ..... 74 6.2.1 Zero-delayRemoteNotifications . 74 6.2.2 RemoteSignals ............................. 76 6.2.3 RemoteDirectMemoryAccess . 77 6.3 TemporalDecoupling. .. .. .. .. .. .. .. .. 78 6.3.1 TimingError............................... 78 6.3.2 MitigationStrategy .. .. .. .. .. .. .. .. 79 6.4 ExperimentalResults . .. .. .. .. .. .. .. 79 6.4.1 SyntheticExperiments . 80 6.4.2 GEMSCLAIMExperimentSetup . 82 6.4.3 GEMSCLAIMExperimentation . 83 6.5 LimitationsandOutlook . 85 6.6 Synopsis ..................................... 86 7 Exclusive Memory Access Models 87 7.1 ModellingConsiderations . .. 88 7.1.1 Load-LinkedandStore-Conditional . .. 88 7.1.2 TheABAProblem ........................... 90 7.2 ModellingApproach .............................. 91 7.2.1 DMICacheModel ........................... 92 7.2.2 Memory-basedModel . 93 iv CONTENTS 7.2.3 Transaction-basedModel . 95 7.2.4 MixedOperation ............................ 97 7.3 ExperimentalResults . .. .. .. .. .. .. .. 99 7.3.1 SimulationOverhead. 100 7.3.2 ParallelPerformance . 102 7.4 LimitationsandOutlook . 105 7.5 Synopsis ..................................... 106 8 Processor Sleep Models 107 8.1 ProcessorSleepStates . .. .. .. .. .. .. .. 108 8.2 TheOpenRISCInstructionSetSimulator . 109 8.2.1 CacheCompiledSimulation. 111 8.2.2 SystemCWrapper. .. .. .. .. .. .. .. .. 112 8.3 ProcessorSleepModels. 113 8.3.1 ISSSleepModel............................. 113 8.3.2 DESSleepModel ............................ 115 8.4 ExperimentalResults . .. .. .. .. .. .. .. 117 8.4.1 ProcessorActivityTracing . 118 8.4.2 SleepModelComparison . 119 8.4.3 ParallelPerformanceAnalysis . 121 8.5 LimitationsandOutlook . 123 8.6 Synopsis ..................................... 124 9 ParallelSystemCusingTime-DecoupledSegments 125 9.1 TheSystemC-LinkConcept . 126 9.2 SimulationController. 127 9.2.1 Time-DecoupledCo-Simulation. 128 9.2.2 SegmentScheduling . 129 9.2.3 VirtualSequentialEnvironment
Recommended publications
  • Prostep Ivip CPO Statement Template
    CPO Statement of Mentor Graphics For Questa SIM Date: 17 June, 2015 CPO Statement of Mentor Graphics Following the prerequisites of ProSTEP iViP’s Code of PLM Openness (CPO) IT vendors shall determine and provide a list of their relevant products and the degree of fulfillment as a “CPO Statement” (cf. CPO Chapter 2.8). This CPO Statement refers to: Product Name Questa SIM Product Version Version 10 Contact Ellie Burns [email protected] This CPO Statement was created and published by Mentor Graphics in form of a self-assessment with regard to the CPO. Publication Date of this CPO Statement: 17 June 2015 Content 1 Executive Summary ______________________________________________________________________________ 2 2 Details of Self-Assessment ________________________________________________________________________ 3 2.1 CPO Chapter 2.1: Interoperability ________________________________________________________________ 3 2.2 CPO Chapter 2.2: Infrastructure _________________________________________________________________ 4 2.3 CPO Chapter 2.5: Standards ____________________________________________________________________ 4 2.4 CPO Chapter 2.6: Architecture __________________________________________________________________ 5 2.5 CPO Chapter 2.7: Partnership ___________________________________________________________________ 6 2.5.1 Data Generated by Users ___________________________________________________________________ 6 2.5.2 Partnership Models _______________________________________________________________________ 6 2.5.3 Support of
    [Show full text]
  • Powerpoint Template
    Accellera Overview February 27, 2017 Lu Dai | Accellera Chairman Welcome Agenda . About Accellera . Current news . Technical activities . IEEE collaboration 2 © 2017 Accellera Systems Initiative, Inc. February 2017 Accellera Systems Initiative Our Mission To provide a platform in which the electronics industry can collaborate to innovate and deliver global standards that improve design and verification productivity for electronics products. 3 © 2017 Accellera Systems Initiative, Inc. February 2017 Broad Industry Support Corporate Members 4 © 2017 Accellera Systems Initiative, Inc. February 2017 Broad Industry Support Associate Members 5 © 2017 Accellera Systems Initiative, Inc. February 2017 Global Presence SystemC Evolution Day DVCon Europe DVCon U.S. SystemC Japan Design Automation Conference DVCon China Verification & ESL Forum DVCon India 6 © 2017 Accellera Systems Initiative, Inc. February 2017 Agenda . About Accellera . Current news . Technical activities . IEEE collaboration 7 © 2017 Accellera Systems Initiative, Inc. February 2017 Accellera News . Standards - IEEE Approves UVM 1.2 as IEEE 1800.2-2017 - Accellera relicenses SystemC reference implementation under Apache 2.0 . Outreach - First DVCon China to be held April 19, 2017 - Get IEEE free standards program extended 10 years/10 standards . Awards - Thomas Alsop receives 2017 Technical Excellence Award for his leadership of the UVM Working Group - Shrenik Mehta receives 2016 Accellera Leadership Award for his role as Accellera chair from 2005-2010 8 © 2017 Accellera Systems Initiative, Inc. February 2017 DVCon – Global Presence 29th Annual DVCon U.S. 4th Annual DVCon Europe www.dvcon-us.org 4th Annual DVCon India www.dvcon-europe.org 1st DVCon China www.dvcon-india.org www.dvcon-china.org 9 © 2017 Accellera Systems Initiative, Inc.
    [Show full text]
  • Co-Simulation Between Cλash and Traditional Hdls
    MASTER THESIS CO-SIMULATION BETWEEN CλASH AND TRADITIONAL HDLS Author: John Verheij Faculty of Electrical Engineering, Mathematics and Computer Science (EEMCS) Computer Architecture for Embedded Systems (CAES) Exam committee: Dr. Ir. C.P.R. Baaij Dr. Ir. J. Kuper Dr. Ir. J.F. Broenink Ir. E. Molenkamp August 19, 2016 Abstract CλaSH is a functional hardware description language (HDL) developed at the CAES group of the University of Twente. CλaSH borrows both the syntax and semantics from the general-purpose functional programming language Haskell, meaning that circuit de- signers can define their circuits with regular Haskell syntax. CλaSH contains a compiler for compiling circuits to traditional hardware description languages, like VHDL, Verilog, and SystemVerilog. Currently, compiling to traditional HDLs is one-way, meaning that CλaSH has no simulation options with the traditional HDLs. Co-simulation could be used to simulate designs which are defined in multiple lan- guages. With co-simulation it should be possible to use CλaSH as a verification language (test-bench) for traditional HDLs. Furthermore, circuits defined in traditional HDLs, can be used and simulated within CλaSH. In this thesis, research is done on the co-simulation of CλaSH and traditional HDLs. Traditional hardware description languages are standardized and include an interface to communicate with foreign languages. This interface can be used to include foreign func- tions, or to make verification and co-simulation possible. Because CλaSH also has possibilities to communicate with foreign languages, through Haskell foreign function interface (FFI), it is possible to set up co-simulation. The Verilog Procedural Interface (VPI), as defined in the IEEE 1364 standard, is used to set-up the communication and to control a Verilog simulator.
    [Show full text]
  • Development of Systemc Modules from HDL for System-On-Chip Applications
    University of Tennessee, Knoxville TRACE: Tennessee Research and Creative Exchange Masters Theses Graduate School 8-2004 Development of SystemC Modules from HDL for System-on-Chip Applications Siddhartha Devalapalli University of Tennessee - Knoxville Follow this and additional works at: https://trace.tennessee.edu/utk_gradthes Part of the Electrical and Computer Engineering Commons Recommended Citation Devalapalli, Siddhartha, "Development of SystemC Modules from HDL for System-on-Chip Applications. " Master's Thesis, University of Tennessee, 2004. https://trace.tennessee.edu/utk_gradthes/2119 This Thesis is brought to you for free and open access by the Graduate School at TRACE: Tennessee Research and Creative Exchange. It has been accepted for inclusion in Masters Theses by an authorized administrator of TRACE: Tennessee Research and Creative Exchange. For more information, please contact [email protected]. To the Graduate Council: I am submitting herewith a thesis written by Siddhartha Devalapalli entitled "Development of SystemC Modules from HDL for System-on-Chip Applications." I have examined the final electronic copy of this thesis for form and content and recommend that it be accepted in partial fulfillment of the equirr ements for the degree of Master of Science, with a major in Electrical Engineering. Dr. Donald W. Bouldin, Major Professor We have read this thesis and recommend its acceptance: Dr. Gregory D. Peterson, Dr. Chandra Tan Accepted for the Council: Carolyn R. Hodges Vice Provost and Dean of the Graduate School (Original signatures are on file with official studentecor r ds.) To the Graduate Council: I am submitting herewith a thesis written by Siddhartha Devalapalli entitled "Development of SystemC Modules from HDL for System-on-Chip Applications".
    [Show full text]
  • Formal Hardware Specification Languages for Protocol Compliance Verification
    Formal Hardware Specification Languages for Protocol Compliance Verification ANNETTE BUNKER and GANESH GOPALAKRISHNAN University of Utah and SALLY A. MCKEE Cornell University The advent of the system-on-chip and intellectual property hardware design paradigms makes pro- tocol compliance verification increasingly important to the success of a project. One of the central tools in any verification project is the modeling language, and we survey the field of candidate languages for protocol compliance verification, limiting our discussion to languages originally in- tended for hardware and software design and verification activities. We frame our comparison by first constructing a taxonomy of these languages, and then by discussing the applicability of each approach to the compliance verification problem. Each discussion includes a summary of the devel- opment of the language, an evaluation of the language’s utility for our problem domain, and, where feasible, an example of how the language might be used to specify hardware protocols. Finally, we make some general observations regarding the languages considered. Categories and Subject Descriptors: B.4.3 [Input/Output and Data Communications]: Inter- connections (Subsystems)—Interfaces; B.4.5 [Input/Output and Data Communications]: Reli- ability, Testing, and Fault-Tolerance—Hardware reliability; B.7.2 [Integrated Circuits]: Design aids—Verification; C.2.2 [Computer-Communication Networks]: Network Protocols—Protocol verification; D.3.3 [Programming Languages]: Language Constructs and Features—Data types
    [Show full text]
  • UNIVERSITY of CALIFORNIA RIVERSIDE Emulation of Systemc
    UNIVERSITY OF CALIFORNIA RIVERSIDE Emulation of SystemC Applications for Portable FPGA Binaries A Dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science by Scott Spencer Sirowy June 2010 Dissertation Committee: Dr. Frank Vahid, Chairperson Dr. Tony Givargis Dr. Sheldon X.-D. Tan Copyright by Scott Spencer Sirowy 2010 The Dissertation of Scott Spencer Sirowy is approved: Committee Chairperson University of California, Riverside ABSTRACT OF THE DISSERTATION Emulation of SystemC Applications for Portable FPGA Binaries by Scott Spencer Sirowy Doctor of Philosophy, Graduate Program in Computer Science University of California, Riverside, June 2010 Dr. Frank Vahid, Chairperson As FPGAs become more common in mainstream general-purpose computing platforms, capturing and distributing high-performance implementations of applications on FPGAs will become increasingly important. Even in the presence of C-based synthesis tools for FPGAs, designers continue to implement applications as circuits, due in large part to allow for capture of clever spatial, circuit-level implementation features leading to superior performance and efficiency. We demonstrate the feasibility of a spatial form of FPGA application capture that offers portability advantages for FPGA applications unseen with current FPGA binary formats. We demonstrate the portability of such a distribution by developing a fast on-chip emulation framework that performs transparent optimizations, allowing spatially-captured FPGA applications to immediately run on FPGA platforms without costly and hard-to-use synthesis/mapping tool flows, and sometimes faster than PC-based execution. We develop several dynamic and transparent optimization techniques, including just-in-time compilation , bytecode acceleration , and just-in-time synthesis that take advantage of a platform’s available resources, resulting in iv orders of magnitude performance improvement over normal emulation techniques and PC-based execution.
    [Show full text]
  • Introduction to Verilog HDL
    Introduction to Verilog HDL Jorge Ramírez Corp Application Engineer Synopsys University Courseware Copyright © 2011 Synopsys, Inc. All rights reserved. Developed by: Jorge Ramirez Outline Lexical elements • HDL Verilog Data type representation Structures and Hierarchy • Synthesis Verilog tutorial Operators • Assignments Synthesis coding guidelines Control statements • Verilog - Test bench Task and functions Generate blocks • Fine State Machines • References Synopsys University Courseware Copyright © 2011 Synopsys, Inc. All rights reserved. Developed by: Jorge Ramirez HDL VERILOG Synopsys University Courseware Copyright © 2011 Synopsys, Inc. All rights reserved. Developed by: Jorge Ramirez What is HDL? • Hard & Difficult Language? – No, means Hardware Description Language • High Level Language – To describe the circuits by syntax and sentences – As oppose to circuit described by schematics • Widely used HDLs – Verilog – Similar to C – SystemVerilog – Similar to C++ – VHDL – Similar to PASCAL Synopsys University Courseware Copyright © 2011 Synopsys, Inc. All rights reserved. Developed by: Jorge Ramirez Verilog • Verilog was developed by Gateway Design Automation as a proprietary language for logic simulation in 1984. • Gateway was acquired by Cadence in 1989 • Verilog was made an open standard in 1990 under the control of Open Verilog International. • The language became an IEEE standard in 1995 (IEEE STD 1364) and was updated in 2001 and 2005. Synopsys University Courseware Copyright © 2011 Synopsys, Inc. All rights reserved. Developed by: Jorge Ramirez SystemVerilog • SystemVerilog is the industry's first unified hardware description and verification language • Started with Superlog language to Accellera in 2002 • Verification functionality (base on OpenVera language) came from Synopsys • In 2005 SystemVerilog was adopted as IEEE Standard (1800-2005). The current version is 1800-2009 Synopsys University Courseware Copyright © 2011 Synopsys, Inc.
    [Show full text]
  • Hardware Description Languages Compared: Verilog and Systemc
    Hardware Description Languages Compared: Verilog and SystemC Gianfranco Bonanome Columbia University Department of Computer Science New York, NY Abstract This library encompasses all of the necessary components required to transform C++ into a As the complexity of modern digital systems hardware description language. Such additions increases, engineers are now more than ever include constructs for concurrency, time notion, integrating component modeling by means of communication, reactivity and hardware data hardware description languages (HDLs) in the types. design process. The recent addition of SystemC to As described by Edwards [1], VLSI an already competitive arena of HDLs dominated verification involves an initial simulation done in by Verilog and VHDL, calls for a direct C or C++, usually for proof of concept purposes, comparison to expose potential advantages and followed by translation into an HDL, simulation of flaws of this newcomer. This paper presents such the model, applying appropriate corrections, differences and similarities, specifically between hardware synthesization and further iterative Verilog and SystemC, in effort to better categorize refinement. SystemC is able to shorten this the scopes of the two languages. Results are based process by combining the first two steps. on simulation conducted in both languages, for a Consequently, this also decreases time to market model with equal specifications. for a manufacturer. Generally a comparison between two computer languages is based on the number of Introduction lines of code and execution time required to achieve a specific task, using the two languages. A Continuous advances in circuit fabrication number of additional parameters can be observed, technology have augmented chip density, such as features, existence or absence of constructs consequently increasing device complexity.
    [Show full text]
  • Real-Time Operating System Modelling and Simulation Using Systemc
    Real-Time Operating System Modelling and Simulation Using SystemC Ke Yu Submitted for the degree of Doctor of Philosophy Department of Computer Science June 2010 Abstract Increasing system complexity and stringent time-to-market pressure bring chal- lenges to the design productivity of real-time embedded systems. Various System- Level Design (SLD), System-Level Design Languages (SLDL) and Transaction- Level Modelling (TLM) approaches have been proposed as enabling tools for real-time embedded system specification, simulation, implementation and verifi- cation. SLDL-based Real-Time Operating System (RTOS) modelling and simula- tion are key methods to understand dynamic scheduling and timing issues in real- time software behavioural simulation during SLD. However, current SLDL-based RTOS simulation approaches do not support real-time software simulation ade- quately in terms of both functionality and accuracy, e.g., simplistic RTOS func- tionality or annotation-dependent software time advance. This thesis is concerned with SystemC-based behavioural modelling and simu- lation of real-time embedded software, focusing upon RTOSs. The RTOS-centric simulation approach can support flexible, fast and accurate real-time software tim- ing and functional simulation. They can help software designers to undertake real- time software prototyping at early design phases. The contributions in this thesis are fourfold. Firstly, we propose a mixed timing real-time software modelling and simula- tion approach with various timing related techniques, which are suitable for early software modelling and simulation. We show that this approach not only avoids the accuracy drawback in some existing methods but also maintains a high simu- lation performance. Secondly, we propose a Live CPU Model to assist software behavioural timing modelling and simulation.
    [Show full text]
  • UVM Verification Framework
    UVM Verification Framework Mads Bergan Roligheten Electronics System Design and Innovation Submission date: June 2014 Supervisor: Kjetil Svarstad, IET Co-supervisor: Vitaly Marchuk, Atmel Norway AS Norwegian University of Science and Technology Department of Electronics and Telecommunications i Problem description Atmel has a wide range of IP designs and a good, reusable and efficient verification framework is extremely important to have short time to market. UVM (Universal Verification Methodology) is a methodology for functional verification using Sys- temVerilog, which is a set of standardized libraries of SystemVerilog. The student will investigate how UVM can be used to build a reusable verification framework. He has to take decisions on the following tasks: - Synchronization between transaction level and RTL design; - Packing and unpacking transactions and driving them to the design under test; - Configuration database and reusability; - Constrained randomization; - Functional coverage and test execution control; The verification framework can be used on any open source RTL. This is interesting and challenging work on top edge of industry verification. It requires knowledge of SystemVerilog, object-oriented programming and digital systems. Assignment given: January 2014 Supervisor: Kjetil Svarstad, IET Assignment proposer / Co-supervisor: Vitaly Marchuk, Atmel Norway AS ii Abstract iii Abstract The importance of verification is increasing with the size of hardware designs, and reducing the effort required for is necessary to increase productivity. This thesis covers the creation of a reusable verification framework for processor verification using the Universal Verification Methodology (UVM). The framework is used to verify three simple processor designs to evaluate its potential for reuse. The three processors include a synchronous, asynchronous and a stack based processor.
    [Show full text]
  • C 2011 MICHAEL KAHN KATELMAN a META-LANGUAGE for FUNCTIONAL VERIFICATION
    c 2011 MICHAEL KAHN KATELMAN A META-LANGUAGE FOR FUNCTIONAL VERIFICATION BY MICHAEL KAHN KATELMAN DISSERTATION Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Computer Science in the Graduate College of the University of Illinois at Urbana-Champaign, 2011 Urbana, Illinois Doctoral Committee: Professor Jos´eMeseguer, Chair and Director of Research Professor Arvind, Massachusetts Institute of Technology Associate Professor Grigore Ros, u Professor Josep Torrellas ABSTRACT This dissertation perceives a similarity between two activities: that of coordi- nating the search for simulation traces toward reaching verification closure, and that of coordinating the search for a proof within a theorem prover. The programmatic coordination of simulation is difficult with existing tools for dig- ital circuit verification because stimuli generation, simulation execution, and analysis of simulation results are all decoupled. A new programming language to address this problem, analogous to the mechanism for orchestrating proof search tactics within a theorem prover, is defined wherein device simulation is made a first-class notion. This meta-language for functional verification is first formalized in a parametric way over hardware description languages using rewriting logic, and subsequently a more richly featured software tool for Verilog designs, implemented as an embedded domain-specific language in Haskell, is described and used to demonstrate the novelty of the programming language and to conduct two case studies. Additionally, three hardware description languages are given formal semantics using rewriting logic and we demonstrate the use of executable rewriting logic tools to formally analyze devices implemented in those languages. ii This dissertation is dedicated to MIPS Technologies, Inc., in appreciation for having provided me with the opportunity to closely observe the functional verification effort of the 74K microprocessor.
    [Show full text]
  • Integrating Systemc Models with Verilog Using the Systemverilog
    Integrating SystemC Models with Verilog and SystemVerilog Models Using the SystemVerilog Direct Programming Interface Stuart Sutherland Sutherland HDL, Inc. [email protected] ABSTRACT The Verilog Programming Language Interface (PLI) provides a mechanism for Verilog simulators to invoke C programs. One of the primary applications of the Verilog PLI is to integrate C- language and SystemC models into Verilog simulations. But, Verilog's PLI is a complex interface that can be daunting to learn, and often slows down simulation performance. SystemVerilog includes a new generation of a Verilog to C interface, called the “Direct Programming Interface” or “DPI”. The DPI replaces the complex Verilog PLI with a simple and straight forward import/ export methodology. • How does the SystemVerilog DPI work, and is it really easier to use than the Verilog PLI? • Can the SystemVerilog DPI replace the Verilog PLI for integrating C and SystemC models with Verilog models? • Is the SystemVerilog DPI more efficient (for faster simulations) that the Verilog PLI? • Is there anything the SystemVerilog DPI cannot do that the Verilog PLI can? This paper addresses all of these questions. The paper shows that if specific guidelines are followed, the SystemVerilog DPI does indeed simplify integrating SystemC models with Verilog models. Table of Contents 1.0 What is SystemVerilog? ........................................................................................................2 2.0 Why integrate SystemC models with Verilog models? .........................................................2
    [Show full text]