SystemC: A Complete Digital System Modeling Language: A Case Study Reni Rambus Inc.

Slides:



Advertisements
Similar presentations
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Advertisements

Verifying Performance of a HDL design block
purpose Search : automation methods for device driver development in IP-based embedded systems in order to achieve high reliability, productivity, reusability.
SOC Design: From System to Transistor
Using emulation for RTL performance verification
Winter-Spring 2001Codesign of Embedded Systems1 Introduction to SystemC Part of HW/SW Codesign of Embedded Systems Course (CE )
MICROPROCESSORS TWO TYPES OF MODELS ARE USED :  PROGRAMMER’S MODEL :- THIS MODEL SHOWS FEATURES, SUCH AS INTERNAL REGISTERS, ADDRESS,DATA & CONTROL BUSES.
by Adiel Khan Staff CAE Synopsys
Jared Casper, Ronny Krashinsky, Christopher Batten, Krste Asanović MIT Computer Science and Artificial Intelligence Laboratory, Cambridge, MA, USA A Parameterizable.
February 28 – March 3, 2011 Stepwise Refinement and Reuse: The Key to ESL Ashok B. Mehta Senior Manager (DTP/SJDMP) TSMC Technology, Inc. Mark Glasser.
Internal Logic Analyzer Final presentation-part B
The 8085 Microprocessor Architecture
MotoHawk Training Model-Based Design of Embedded Systems.
February 25, 2009Chaitanya: MEE Project Defense1 Fully configurable hierarchical transaction level verifier for functional verification Master’s Defense.
NoC Modeling Networks-on-Chips seminar May, 2008 Anton Lavro.
Chapter 5: Computer Systems Organization Invitation to Computer Science, Java Version, Third Edition.
VHDL Intro What does VHDL stand for? VHSIC Hardware Description Language VHSIC = Very High Speed Integrated Circuit Developed in 1982 by Govt. to standardize.
1/28/2004CSCI 315 Operating Systems Design1 Operating System Structures & Processes Notice: The slides for this lecture have been largely based on those.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Cortex-M3 Debugging System
1 Chapter 2. The System-on-a-Chip Design Process Canonical SoC Design System design flow The Specification Problem System design.
TM Efficient IP Design flow for Low-Power High-Level Synthesis Quick & Accurate Power Analysis and Optimization Flow JAN Asher Berkovitz Yaniv.
Institut für Computertechnik ICT Institute of Computer Technology Interaction of SystemC AMS Extensions with TLM 2.0 Markus Damm, Christoph.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
ESL: Panacea or Hype? FERMAT | Sandeep Shukla | June 2005 Acknowledgement: NSF, Project Tech, and the “Chip.
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
An Introduction to Software Architecture
1 Lecture 20: I/O n I/O hardware n I/O structure n communication with controllers n device interrupts n device drivers n streams.
Intro to Architecture – Page 1 of 22CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Introduction Reading: Chapter 1.
1 Integration Verification: Re-Create or Re-Use? Nick Gatherer Trident Digital Systems.
L16 – Testbenches for state machines. VHDL Language Elements  More examples HDL coding of class examples Testbench for example  Testing of examples.
1 H ardware D escription L anguages Modeling Digital Systems.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Topics n Design methodologies.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 6 System Calls OS System.
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
The Macro Design Process The Issues 1. Overview of IP Design 2. Key Features 3. Planning and Specification 4. Macro Design and Verification 5. Soft Macro.
Winter-Spring 2001Codesign of Embedded Systems1 Methodology for HW/SW Co-verification in SystemC Part of HW/SW Codesign of Embedded Systems Course (CE.
Processes Introduction to Operating Systems: Module 3.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Operating Systems Structure what is the organizational principle?
4/19/20021 TCPSplitter: A Reconfigurable Hardware Based TCP Flow Monitor David V. Schuehler.
SCE-MI Meeting 1 San Jose’, 14 th Nov Author: Andrea Castelnuovo SCE-MI Integrating Emulation in a system level design methodology San Jose’, 14/11/2003.
SOC Virtual Prototyping: An Approach towards fast System- On-Chip Solution Date – 09 th April 2012 Mamta CHALANA Tech Leader ST Microelectronics Pvt. Ltd,
UNIX Unit 1- Architecture of Unix - By Pratima.
Teaching The Principles Of System Design, Platform Development and Hardware Acceleration Tim Kranich
Structured Component Composition Frameworks for Embedded System Design Sandeep Shukla, Virginia Tech. Frederic Doucet, Rajesh Gupta University of California,
Way beyond fast © 2002 Axis Systems, Inc. CONFIDENTIAL Axis Common Transaction Interface (CTI) Architecture Highlights 9/11/2003 Ching-Ping Chou Axis Systems,
Introduction to Microprocessors - chapter3 1 Chapter 3 The 8085 Microprocessor Architecture.
Multi-objective Topology Synthesis and FPGA Prototyping Framework of Application Specific Network-on-Chip m Akram Ben Ahmed Xinyu LI, Omar Hammami.
SystemC Semantics by Actors and Reduction Techniques in Model Checking Marjan Sirjani Formal Methods Lab, ECE Dept. University of Tehran, Iran MoCC 2008.
Los Alamos National Laboratory Streams-C Maya Gokhale Los Alamos National Laboratory September, 1999.
POLITECNICO DI MILANO A SystemC-based methodology for the simulation of dynamically reconfigurable embedded systems Dynamic Reconfigurability in Embedded.
April 15, 2013 Atul Kwatra Principal Engineer Intel Corporation Hardware/Software Co-design using SystemC/TLM – Challenges & Opportunities ISCUG ’13.
Gopakumar.G Hardware Design Group
Framework For Exploring Interconnect Level Cache Coherency
Digital System Verification
SystemC Simulation Based Memory Controller Optimization
Hierarchical Architecture
Interfacing Memory Interfacing.
Figure 1 PC Emulation System Display Memory [Embedded SOC Software]
RAMP Retreat, UC Berkeley
CoCentirc System Studio (CCSS) by
Chapter 5: Computer Systems Organization
Srinivas Aluri Jaimin Mehta
An Introduction to Software Architecture
Outline Operating System Organization Operating System Examples
UNISIM (UNIted SIMulation Environment) walkthrough
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

SystemC: A Complete Digital System Modeling Language: A Case Study Reni Rambus Inc.

Motivation Hardware System Modeling is a very critical part of the overall system design cycle for a hardware chip More scalability and reusability needed in the modeling space to help close the design faster SystemC has all the required entities to serve complete language for modeling Digital Systems DRAM Memory Modeling Case Study Modeling Environments

C vs. SC Modeling Methodology & Features Hardware functionality can be modeled by mapping the functionality of sub- blocks to functions with data passing between them represented as data structures To enable reusability and scalability the model architecture has to be designed very carefully due to absence of OO features Concept of time only exists with an external simulator requiring a license C SC Functional-blocks represented as objects with ports, exports forming the main source of communication b/w two objects with each class respecting the TLM interface/custom interfaces/channels Concept of inheritance makes the design scalable and reusable once the understanding of the design domain is available and grasped SC builds upon as a library of the C++ language with its own simulation kernel which is open source, giving freedom to use all the C++ constructs and advantages of the Object Oriented techniques No license if simulated with OSCI

Basic DRAM Model Architecture DECODER: Decodes the incoming command/address. SCHEDULER: Schedules the commands in queue to be executed now/later in time EXECUTION UNIT: Checks timing errors/status and also stores/fetches to/from the core CORE: Contains the data structures representing the memory REGISTER: Contains the Control and Status Registers for the DRAM

C Based Approach DRAM C Model Top Pseudo Code void dram_main( void * dram, SimTime simtime, cmd_pkt cmd_in, void ** rd_data, void * wr_data){ GetDramhandle(dram);// Gets the current DRAM handle. CoreTimingCheck(((PTDRAM) dram)->core);//Performs the core timing checks. DecCmd(&cmd_in);// Decode and Validate Commands. if (cmd_in.OP) { SchedCmd(((PTDRAM) dram)->exec_q, &cmd_in); } // schedule command(s), if any ConstraintCheck();//// check for dependency violations. ExecCmd(rd_data, wr_data); // execute commands } Each function models a hardware block functionality with timing check functions

SC Based Approach Basic modules in the SC model are objects constructed using OO techniques Above figure demonstrates a transaction class hierarchy of how multiple command structures are formed using the reusable base classes This same thought applies to the sub-system blocks helps in achieving a scalable and easily configurable model

Details of DRAM SC model All the major blocks eg.DECODER, SCHEDULER, EXECUTION, CORE, REGISTER, TRANSACTOR are sc_module type Contains only one SC_THREAD and 4 SC_METHOD processes in the TLM system Infrastructure classes(SC_REPORT_ERROR, SC_TRACE..) used for reporting and waveform trace dump Uses STL(map, vector, queue) for storage of core data and other complex data structures

Protocol Specific DRAM model Transactors instantiating Basic DRAM Model Signal level protocol details lie in the specific transactor Basic model not including the serializer/deserializer for the command/datapath makes it suitable for performance analysis More accurate and complete model can be built by adding the specific transactor which can be used in the System Level Verification

Study Comparison Results Parameter NameC Model(Only XDR protocol) SC Model (DDR,DDR2,DDR3,X DR protocol) Code Length(*1) 8000 lines6500 lines Shared Object Size 600KB2.7MB Average Full 512 Mb XDR Memory Sweep Time(*3) 23mins(Cadence NCVerilog 6.11) 16mins(Run with g++) *1: The code length for the C model included its own libraries and infrastructure code *3: The average run time was recorded with the output logs turned off. Every memory location was read and written following the DRAM’s timing protocol. Machine details(Linux v x86_64)

Model Usage Environments where the DRAM model was used: Performance & Architecture Exploration DRAM : If the DRAM architecture is not finalized then SC model can be used to try different types of hardware architectures eg.(Threading, Bank Sets etc.) MC : Memory Controller early architecture and performance analysis requires DRAM models Verification DRAM : Early DRAM models aid in the development of VIP(Verification IP) for the DRAM RTL. Sub-Systems : The DRAM models also helped in the verification of MC and Physical Interface Module.

Performance & Architecture Analysis All Sub-Systems as Traffic Generator, XMC and XDR are SC TLM models(TLM1.0). A thin layer in XMC emulates the Physical Interface delays. Since everything is programmed in SC the system enables a number of architecure analysis options in a very less time. Moreover different type of MC(DDR2,XDR etc.) analysis can be done by just changing command line options.

Verification Thin pin layer interface(Transactor) Testbench Pin level signals forms the main interface between the blocks Mixed language simulation(Verilog & SC) reduces performance but provides a consistent platform to verify the system