SystemC. Short Introduction
|
|
- Lisa Sims
- 6 years ago
- Views:
Transcription
1 SystemC Short Introduction Karsten Einwich Fraunhofer IIS/EAS Dresden
2 SystemC is a definition of C++ language constructs for the description of complex digital hardware systems on different abstraction levels, using different Models of Computation (MoC) Definition of classes for modeling: Time De-composition, Hierarchy Concurrency (processes) / Signals / Reactivity Generic communication channels Generic Model of Computation based on the communication and synchronization of processes Datatypes SystemC models can be simulated using a reference implementation of the C++ class library 2
3 SystemC Use Flow
4 SystemC Files module1.h module2.h module1.cpp module2.cpp tb.cpp int sc_main( ) Recommendations: Split the module description into a header and a cpp implementation file Only one module per header / cpp file The name of the module shall be equal to the header / cpp file name Do not use capital letters and special characters (like ä,%,&, space, ) tb.exe
5 SystemC Example
6 A Simple SystemC Module #include <systemc.h> SC_MODULE(adder) sc_in<int> in1; sc_in<int> in2; sc_out<int> outp; void do_add(); SC_CTOR(adder) SC_METHOD(do_add); sensitive << in1 << in2; } }; void adder::do_add() outp = in1 + in2; } ENTITY adder IS PORT( in1 : IN Integer; in2 : IN Integer; outp: OUT Integer ); END; ARCHITECTURE behav OF adder IS BEGIN END behav; outp <= in1 + in2;
7 A Simple SystemC Module SystemC Modules include systemc.h or systemc SC_MODULE macro for module class declaration SC_CTOR macro for constructor One or more ports of an arbitrary types Module behavior described in process(es) A process is a C++ method without arguments and void return type which is registerd as a so called method or thread process in the constructor by the macros SC_METHOD or SC_THREAD SystemC processes can be sensitized in general to events (an sc_in port in the sensitive list represents a value changed event) #include "systemc.h" SC_MODULE(adder) sc_in<int> in1; sc_in<int> in2; sc_out<int> outp; void do_add() ; SC_CTOR(adder) SC_METHOD(do_add); sensitive << in1 << in2; } }; void adder::do_add() outp = in1 + in2; }
8 SystemC Module with Thread Process #include <systemc.h> SC_MODULE(stimuli_generator) sc_out<int> out_in1, out_in2; sc_in<int> in_outp; sc_out<bool> out_clk; void do_stimuli() ; SC_CTOR(stimuli_generator) SC_THREAD(do_stimuli); } }; void stimuli_generator::do_stimuli() out_clk = 0; out_in1 = 3; out_in2=0; wait(1.0,sc_ms); out_clk = 1; wait(1.0,sc_ms) if(in_outp!= 3) SC_REPORT_ERROR( stim_err, wrong result ); : sc_stop(); } ENTITY stimuli_generator IS PORT( out_in1 : OUT Integer; out_in2 : OUT Integer; in_outp : IN Integer; out_clk : OUT Bit ); END; ARCHITECTURE stimulus1 OF stimuli_generator IS BEGIN do_stimuli: PROCESS() BEGIN out_clk <= 0 ; out_in1<=3; out_in2 <=0; WAIT(1 ms); out_clk<= 1 ; WAIT(1 ms); IF in_outp /= 3 THEN ASSERT( wrong result ); END IF; : END do_stimuli; END stimulus1 ; Dac workshop san diego page 2-8
9 Method and Thread Processes SC_METHOD Registered in the constructor with SC_METHOD macro SC_THREAD / SC_CTHREAD Registrated in the constructor with SC_THREAD / SC_CTHREAD macro Activated first after elaboration and by events (e.g. signal changes) of the sensitivity list (sensitive << xxx statement after registration) Activated once after elaboration if returned it will never activated again Can be never suspended runs always to the end Used e.g. for RTL Can be suspended by wait statements Used e.g. for behavioral, modeling, stimuli, state machines Fast Not so fast
10 Hierarchical Model Example #include <systemc.h> #include "adder.h" #include "reg.h" SC_MODULE(dut) sc_in<bool > sc_in<int > sc_out<int > }; clk; in1, in2; outp; sc_signal<int> internal_signal; void architecture(); adder* add1; reg* reg1; SC_CTOR(dut) #include "dut.h" architecture(); } void dut::architecture() add1 = new adder("add1"); add1->in1(in1); add1->in2(in2); add1->outp(internal_signal); } reg1 = new reg("reg1"); reg1->clk(clk); reg1->inp(internal_signal); reg1->outp(outp); ENTITY dut IS PORT ( signal clk : in bit; signal in1, in2 : in bit; signal outp : out bit); END ENTITY dut; ARCHITECTURE str OF dut IS SIGNAL internal_signal: BIT; BEGIN add1: ENTITY work.adder(dfl) PORT MAP ( in1 => in1, in2 => in2, outp => internal_signal); reg1: ENTITY work.reg1(bhv) PORT MAP ( clk => clk; inp => internal_signal, outp => outp); END ARCHITECTURE str;
11 Testbench Example #include "dut.h" #include "stimuli_generator.h" int sc_main(int argc, char* argv[]) sc_signal<int> signal1, signal2; sc_signal<int> signal3; sc_signal<bool> clock1, stimuli_generator stg1("stg1"); stg1.out_in1(signal1); stg1.out_in2(signal2); stg1.in_outp(signal3); stg1.out_clk(clock1); dut dut1("dut1"); dut1.in1(signal1); dut1.in2(signal2); dut1.out(signal3); dut1.clk(clock1); sc_trace_file *tf= sc_create_vcd_trace_file("simplex"); } sc_trace(tf, clock1, "clock1"); sc_trace(tf, signal1, "in1"); sc_trace(tf, signal2, "in2"); sc_trace(tf, signal3, "out"); sc_trace(tf, dut1.internal_signal,"dut_signal"); sc_start(); sc_close_vcd_trace_file(tf); return 0;
12 SystemC notion of time - sc_time time is represented by the sc_time class there is support for absolute time units Syntax: sc_time time_obj(value, time_unit); value: integer or double representing the numerical time value time_unit: one of the following modifiers SC_FS: 1e-15s SC_PS: 1e-12s SC_NS: 1e-9s SC_US: 1e-6s SC_MS: 1e-3s SC_SEC: 1s arithmetic and comparison operators are defined stream output (operator<<) prints the time
13 Data Types C++ built in types long, int, short, char, unsigned long, unsigned short, unsigned char, float, double, long double, bool, long long, unsigned long long C++ STL types complex<t>, vector<t>, string,... SystemC provided data types Scalar boolean types, Vector boolean types, Integer types, Fixed point types User defined data types Assignment (=) and compare (==) operators must be defined
14 Selected SystemC Datatypes bool (sc_bit is obsolete) Single bit values true / false ( 1 / 0) sc_logic Four valued logic (`0`, `1`,`X`,`Z`) sc_bv<length> Vector of bool, bitwise logical operations, operations with strings, integers,... sc_lv<length> Vector of sc_logic, similiar to sc_bv sc_int<length>/ sc_uint<length> Two s complement representation for signed, up to 64 Bit, individual bit access, used as Integer for all operations
15 Signal Tracing Traces stored in the VCD format, which can be read by numerous digital waveviewers (e.g. gtkwave) sc_create_vcd_trace_file(char* name) opens a trace file -> the file name is <name>.vcd A trace file can be opened any time (after simulation start also) Traceable are: All public members, signals and ports Traces added by: sc_trace(sc_trace* tf,var/sig,char* name) sc_trace can be called anywhere before a delta cycle elapsed after opening All SystemC types and basic C types can be traced For user defined types an sc_trace function has to be provided sc_trace_file* tf= sc_create_vcd_file( uc_traces ); sc_trace(tf,sig1, sig1 ); sc_trace( tf, mod1->inst2->sig5, string(mod1->inst2->name())+.sig5 ); sc_trace(tf,variable, variable ); sc_close_vcd_trace_file(tf);
16 Simulation Control Functions void sc_start(); Runs simulation until no further event or sc_stop() void sc_start(sc_time time), void sc_start(double,sc_time_unit); Runs simulation until time is over or sc_stop(), can be called consecutively void sc_stop(); Stops simulation at the end of the current delta cycle, can be called from anywhere simulation can t be continued after sc_stop()
17 Static Sensitivity For static sensitivity the process activation event is bound to the process before elaboration sc_in has a implicit cast to an event Therefore the keyword is sensitive The keyword has to be used after the process registration Events can be added using the << operator SC_MODULE(my_module) sc_in<type> input1; sc_in<type> input2; sc_in<type> input3; }; sc_out<type> output; void proc_method(); SC_CTOR(my_module) } //method process registration SC_METHOD(proc_method); sensitive << input1 << input2 << input3; //there is a cast operator from sc_in -> //event which does input1->default_event()
18 Events and Dynamic Sensitivity sc_event sc_event e1; e1.notify(); e1.cancel(); e1.notify(sc_zero_time); e1.notify(1.0,sc_ms); Independend object Notification immedately, delayed or at time First event in time wins Cancel wait wait(); wait(ev); wait(e1 e2); wait(e1 & e2); wait(200,sc_ns); wait(1.0,sc_ms,e1 & e2);... Method of sc_module base class usable only in the context of thread processes Suspend process until event from sensitivity list, argument or time
19 Dynamic Sensitivity for Method Processes Method processes can t be suspended they run always in zero time until a return is reached However the next process activation time can be scheduled dynamically Therefore the method next_trigger is used This method returns immediately and the following code is still executed until a return is reached (no suspend) it influences only the next method invocation The possible arguments are similar to wait (time, event, event-list, time-out) next_trigger with an argument overrules static sensitivity list SC_MODULE(clock) sc_out<bool> out; void clk_proc() next_trigger(1.0,sc_ms); out.write(tmp); tmp=!tmp; } SC_HAS_PROCESS(clock); clock(sc_module_name, bool start=false) SC_METHOD(clk_proc); tmp=start; } private: bool tmp; };
20 SystemC Simulation Cycle Initialization (all processes called) Evaluate (select and run ready to run process) Evaluate update Non-pre-emptive threads yes ready to run processes Delta cycles Advance time yes yes Update (call pending updates scheduled in during evaluate) delayed notifications timed notifications Immediate event notification Delayed event notification Timed event notification Optional update Finish
21 Scheduler Timed and Delta Events Distinction between timed and delta events timed events are scheduled to occur at a certain simulation time in the future delta events are scheduled to occur without advancing simulation time delta events are necessary to serialize parallel actions for the simulation kernel delta time event3 at 5ns event2 at 5ns event1 at 5ns event2 at 10ns event1 at 10ns 0ns 5ns 10ns simulation time
22 SystemC - Layers
23 Architecture of a SystemC 2.x Model Separation of behavior and communication
24 SystemC Transaction Level Modeling What is TLM Modeling style for communication structures like bussystems Communication by function calls (IMC Inter Method Calls) Why TLM Fast Compact Flexible tradeoff between speed, modeling effort, accuracy and debug ability Early platform for SW development Early system exploration and performance modeling Functional verification
25 RTL vs. TLM modeling RTL simulates every event Functional Model Pin and Cycle accurate ,000 times faster TLM function call write(address,data) RTL Functional Model
SystemC Modules and Hierarchy. Rolf Drechsler Daniel Große University of Bremen
SystemC Modules and Hierarchy Rolf Drechsler Daniel Große University of Bremen Module Module Basic building block of design partitioned C++ Class, similar to entity (VHDL) or module (Verilog) SC_MODULE(module_name)
More informationECEN 468 Advanced Logic Design
ECEN 468 Advanced Logic Design Lecture 3: SystemC Concurrency ECEN 468 Lecture 3 Modeling of Hardware Concurrency SystemC uses simulation processes to model concurrency Works like cooperative multitasking
More informationSoC Design. Prof. Dr. Christophe Bobda Institut für Informatik Lehrstuhl für Technische Informatik
SoC Design Prof. Dr. Christophe Bobda Institut für Informatik Lehrstuhl für Technische Informatik Chapter 3 SystemC Outline 1. Introduction 2. SystemC Overview 3. System Abstraction Level 4. Program Structure
More informationDie virtuelle Plattform:
Die virtuelle Plattform: Der Einsatz von Zynq fuer die Verifikation und das Debugging von konfigurierbaren Systemen Dr. Endric Schubert Missing Link Electronics Marlene-Dietrich-Straße 5 89231 Neu-Ulm
More informationLG2: Lecture Group 2: SystemC. Topic: SystemC Overview. LG2.1 - SC SystemC Components. LG2.2 - SC Example (Counter)
LG2: Lecture Group 2: SystemC. Topic: SystemC Overview LG2.1 - SC SystemC Components LG2.2 - SC Example (Counter) LG2.3 - SC SystemC Structural Netlist LG2.4 - SC SystemC Signals LG2.5 - SC Threads and
More informationKDEC
KDEC Technical Seminar SystemC Overview & Example : 8-Bit RISC System Design KDEC http://asic.khu.ac.kr Kook,ilho goodkook@nms.anslab.co.kr AnsLab Co. http://www.anslab.co.kr 1 KDEC Technical Seminar SystemC
More informationFUNCTIONAL SPECIFICATION FOR SYSTEMC 2.0
FUNCTIONAL SPECIFICATION FOR SYSTEMC 2.0 Update for SystemC 2.0.1 Version 2.0-Q April 5, 2002 Copyright (c) 1996-2002 by all Contributors. All Rights reserved. Copyright Notice Copyright 1996-2002 by all
More informationExperience the Next ~Wave~ of Analog and Digital Signal Processing using SystemC AMS 2.0 Session 1: SystemC AMS Introduction
Experience the Next ~Wave~ of Analog and Digital Signal Processing using SystemC AMS 2.0 Session 1: SystemC AMS Introduction Karsten Einwich, Fraunhofer IIS/EAS Session 1 - Outline Session 1: SystemC AMS
More informationSystemC 1.3. Languages for Embedded Systems. Prof. Stephen A. Edwards. March Columbia University
SystemC 1.3 Languages for Embedded Systems Prof. Stephen A. Edwards Columbia University March 2009 Designing Big Digital Systems Even Verilog or VHDL s behavioral modeling is not high-level enough People
More informationLecture 14: Data Types in SystemC
Design & Co-design of Embedded Systems Lecture 14: Data Types in SystemC Sharif University of Technology Computer Engineering Dept. Winter-Spring 2008 Mehdi Modarressi Data Types SystemC data types Single-bit
More informationSystem-level design refinement using SystemC. Robert Dale Walstrom. A thesis submitted to the graduate faculty
System-level design refinement using SystemC by Robert Dale Walstrom A thesis submitted to the graduate faculty in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE Major: Computer
More informationECEN 468 Advanced Logic Design Department of Electrical and Computer Engineering Texas A&M University. Lab 1
ECEN 468 Advanced Logic Design Department of Electrical and Computer Engineering Texas A&M University (Lab exercise created by Jaeyeon Won and Jiang Hu) Lab 1 Introduction to SystemC and Simulator Purpose:
More informationIntroduction to SystemC
Introduction to SystemC Damien Hubaux - CETIC Outline?? A language A C++ library February 12, 2004 SystemC, an alternative for system modeling and synthesis? 2 Why SystemC? Needs Increasing complexity,
More informationSystemC: Co-specification and SoC Modeling
SystemC: Co-specification and SoC Modeling COE838: Systems-on-Chip Design http://www.ee.ryerson.ca/~courses/coe838/ Dr. Gul N. Khan http://www.ee.ryerson.ca/~gnkhan Electrical and Computer Engineering
More informationChapter 2 Overview of SystemC
Chapter 2 Overview of SystemC The previous chapters gave a brief context for the application of SystemC. This chapter presents an overview of the SystemC language elements. Details are discussed in-depth
More informationHDL-Based Design. Eduardo Sanchez EPFL. Introduction
HDL-Based Design Eduardo Sanchez EPFL Introduction As designs grew in size and complexity, schematic-based design began to run out of steam In addition to the fact that capturing a large design at the
More informationEEL 5722C Field-Programmable Gate Array Design
EEL 5722C Field-Programmable Gate Array Design Lecture 15: Introduction to SystemC* (cont.) Prof. Mingjie Lin * SystemC Tutorial, Silvio Velo 1 Starting Example:Full Adder 2 Modules Example: 3 Processes
More informationElectronic System Level Design Introduction to SystemC
Electronic System Level Design Introduction to SystemC Maziar Goudarzi Today Program SystemC (ver. 1.0) History Highlights Design methodology A simple SystemC example 2009 ESL Design 2 SystemC History
More informationMETROII AND PTOLEMYII INTEGRATION. Presented by: Shaoyi Cheng, Tatsuaki Iwata, Brad Miller, Avissa Tehrani
METROII AND PTOLEMYII INTEGRATION Presented by: Shaoyi Cheng, Tatsuaki Iwata, Brad Miller, Avissa Tehrani INTRODUCTION PtolemyII is a tool for design of component-based systems using heterogeneous modeling
More informationHardware-Software Codesign. 6. System Simulation
Hardware-Software Codesign 6. System Simulation Lothar Thiele 6-1 System Design specification system simulation (this lecture) (worst-case) perf. analysis (lectures 10-11) system synthesis estimation SW-compilation
More informationVersion 2.0 User s Guide
Version 2.0 User s Guide Copyright (c) 1996-2001 by all Contributors. All Rights reserved. Copyright Notice Copyright (c) 1996-2001 by all Contributors. All Rights reserved. This software and documentation
More informationSystemC 1.3. Languages for Embedded Systems. Prof. Stephen A. Edwards Summer 2004 NCTU, Taiwan
SystemC 1.3 Languages for Embedded Systems Prof. Stephen A. Edwards Summer 2004 NCTU, Taiwan Designing Big Digital Systems Even Verilog or VHDL s behavioral modeling is not high-level enough People generally
More informationVersion 1.1 User s Guide
Version 1.1 User s Guide Synopsys, Inc. CoWare, Inc. Frontier Design, Inc. Copyright (c) 2000 Synopsys, Inc. CoWare, Inc. Frontier Design, Inc. Copyright Notice Copyright (c) 1988-2000 Synopsys Inc. All
More informationSystemCrafter SC User Manual
SystemCrafter SC User Manual Version 3.0.0 SystemCrafter, SystemCrafter SC, Bringing Hardware And Software Together, and the logos shown above are trademarks of SystemCrafter Ltd. All other trademarks
More information4 th European SystemC Users Group Meeting
4 th European SystemC Users Group Meeting http://www-ti.informatik.uni-tuebingen.de/systemc Copenhagen October 5 th, 2001, 1100-1600 SystemC 2.0 Tutorial Thorsten Grötker R & D Manager Synopsys, Inc. Motivation
More informationTEACHING COMPUTER ORGANIZATION AND ARCHITECTURE USING SYSTEMC *
TEACHING COMPUTER ORGANIZATION AND ARCHITECTURE USING SYSTEMC * Ed Harcourt Dept. Mathematics St. Lawrence University Canton, NY 13617 edharcourt@stlawu.edu ABSTRACT Hardware simulation is often used in
More informationCo-design Methodology and Synthesis
Co-design Methodology and Synthesis Synthesis 1 SystemC 2 1 Introduction to SystemC 3 C++ C++ class library and a methodology create a cycle-accurate model of software algorithms hardware architecture,
More informationEN2911X: Reconfigurable Computing Lecture 01: Introduction
EN2911X: Reconfigurable Computing Lecture 01: Introduction Prof. Sherief Reda Division of Engineering, Brown University Fall 2009 Methods for executing computations Hardware (Application Specific Integrated
More informationSimulation and Exploration of LAURA Processor Architectures with SystemC
Simulation and Exploration of LAURA Processor Architectures with SystemC M.Sc. thesis of Feraaz Imami July 9, 2009 Leiden Institute of Advanced Computer Science Leiden University Supervisor: Second reader:
More informationEEL 5722C Field-Programmable Gate Array Design
EEL 5722C Field-Programmable Gate Array Design Lecture 16: System-Level Modeling in SystemC 2.0 Prof. Mingjie Lin * Stuart Swan, An Introduction to System-Level Modeling in SystemC 2.0, Cadence Design
More informationGenerating High Coverage Tests for SystemC Designs Using Symbolic Execution. Bin Lin Department of Computer Science Portland State University
Generating High Coverage Tests for SystemC Designs Using Symbolic Execution Bin Lin Department of Computer Science Portland State University 1 Agenda Introduction Related work and Background Our Approach
More informationModular SystemC. In-house Training Options. For further information contact your local Doulos Sales Office.
Modular SystemC is a set of modules related to SystemC TM (IEEE 1666-2005) aimed at fulfilling teambased training requirements for engineers from a range of technical backgrounds, i.e. hardware and software
More informationPowerSC: a SystemC Framework for Power Estimation
6th NASCUG Meeting February, 2007 San Jose, CA PowerSC: a SystemC Framework for Power Estimation Felipe Klein (speaker) Guido Araujo Rodolfo Azevedo Computer Systems Laboratory Institute of Computing UNAMP
More informationSimulation Verification of multiple levels of constraints for system level designs in systemc
Simulation Verification of multiple levels of constraints for system level designs in systemc Piyush Ranjan Satapathy, Xi Chen and Harry C. Hsieh Department of Computer Science University of California,
More informationMaking the Transition to
Making the Transition to IEEE 1666 SystemC John Aynsley, CTO, Doulos Making the Transition to IEEE 1666 SystemC CONTENTS SystemC timeline New features Deprecated features SystemC 2.2 support for transition
More informationFormal Techniques for SystemC Verification
Formal Techniques for SystemC Verification Moshe Y. Vardi Rice University What is the problem? HUGE gap between specification and implementation! Increased design complexity (pipelining, speculative execution,
More informationEEL 5722C Field-Programmable Gate Array Design
EEL 5722C Field-Programmable Gate Array Design Lecture 17: Describing Synthesizable RTL in SystemC* Prof. Mingjie Lin * 2001 Synopsys, Inc. 1 System-Level Design Specifying the system Verifying its functionality
More informationAlgorithmic C synthesis (High-level synthesis)
Algorithmic C synthesis (High-level synthesis) Reminder System level design The complexity of digital systems grows exponentially because of technological improvements, and user demands. The design entries
More informationEEL 5722C Field-Programmable Gate Array Design
EEL 5722C Field-Programmable Gate Array Design Lecture 14: Introduction to SystemC* Prof. Mingjie Lin * SystemC Tutorial, Silvio Veloso 1 Outline Needed tools Starting example Introduction SystemC highlights
More informationSimulation Kernel. SC_THREAD(process_1); sensitive << trigger.pos(); SC_THREAD(process_2); sensitive << trigger.pos();
Simulation Kernel Most modelling languages use a Simulation Kernel. The purpose of the kernel is to ensure that parallel activities (concurrency) are modelled correctly. A fundamental decision was made
More informationJPEG Compression/Decompression using SystemC
JPEG Compression/Decompression using SystemC COE838: Systems-on-Chip Design http://www.ee.ryerson.ca/~courses/coe838/ Dr. Gul N. Khan http://www.ee.ryerson.ca/~gnkhan Electrical and Computer Engineering
More informationAugmenting a C++/PLI/VCS Based Verification Environment with SystemC
Augmenting a C++/PLI/VCS Based Verification Environment Dr. Ambar Sarkar Paradigm Works Inc. ambar.sarkar@paradigm-works.com ABSTRACT Due to increased popularity of high-level verification languages (HVLs)
More informationTransaction Level Modeling with SystemC. Thorsten Grötker Engineering Manager Synopsys, Inc.
Transaction Level Modeling with SystemC Thorsten Grötker Engineering Manager Synopsys, Inc. Outline Abstraction Levels SystemC Communication Mechanism Transaction Level Modeling of the AMBA AHB/APB Protocol
More informationFormal Techniques for System-Level Verification. Rice University
Formal Techniques for System-Level Verification Moshe Y. Vardi Rice University This Talk Partly a tutorial, partly a manifesto! FV in HW Design: A Success Story From an impossible dream to industrial reality
More informationAdding a Java GUI to SystemC Simulation for Virtual Prototyping of Embedded Systems
Proceedings of the 5th WSEAS Int. Conf. on System Science and Simulation in Engineering, Tenerife, Canary Islands, Spain, December 16-18, 2006 136 Adding a Java GUI to SystemC Simulation for Virtual Prototyping
More informationCHAPTER 1 Introduction to Computers and Programming CHAPTER 2 Introduction to C++ ( Hexadecimal 0xF4 and Octal literals 031) cout Object
CHAPTER 1 Introduction to Computers and Programming 1 1.1 Why Program? 1 1.2 Computer Systems: Hardware and Software 2 1.3 Programs and Programming Languages 8 1.4 What is a Program Made of? 14 1.5 Input,
More informationEmbedded Systems CS - ES
Embedded Systems - 1 - Thursday Midterm exam: December 16th, 2010, AudiMO, 16:00-19:00 No lecture on December 16th Open book: bring any handwritten or printed notes, or any books you like. Please bring
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationGetting Started with TLM-2.0
Getting Started with TLM-2.0 A Series of Tutorials based on a set of Simple, Complete Examples John Aynsley, Doulos, June 2008 Tutorial 1 Sockets, Generic Payload, Blocking Transport Introduction The TLM-2.0
More informationThe SystemC Verification Standard (SCV) Stuart Swan Senior Architect Cadence Design Systems, Inc.
The SystemC Verification Standard (SCV) Stuart Swan Senior Architect Cadence Design Systems, Inc. stuart@cadence.com The Verification Problem System Level Verification is typically done last, is typically
More informationModeling with SystemC TM Workshop Version 1.4
Modeling with SystemC TM Workshop Version 1.4 An investment in continuing success! 2000 Author: Martin Wang 3 Days SystemC TM training based on SystemC Ver. 1.0 Author: Martin Wang of SLD Workshop Prerequisites
More informationUSING THE SYSTEM-C LIBRARY FOR BIT TRUE SIMULATIONS IN MATLAB
USING THE SYSTEM-C LIBRARY FOR BIT TRUE SIMULATIONS IN MATLAB Jan Schier Institute of Information Theory and Automation Academy of Sciences of the Czech Republic Abstract In the paper, the possibilities
More informationSystemC Processes (02A) SystemC
SystemC Processes (02A) SystemC Copyright (c) 2012 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2
More informationECE 3401 Lecture 10. More on VHDL
ECE 3401 Lecture 10 More on VHDL Outline More on VHDL Some VHDL Basics Data Types Operators Delay Models VHDL for Simulation VHDL for Synthesis 1 Data Types Every signal has a type, type specifies possible
More informationDIGITAL VS. ANALOG SIGNAL PROCESSING Digital signal processing (DSP) characterized by: OUTLINE APPLICATIONS OF DIGITAL SIGNAL PROCESSING
1 DSP applications DSP platforms The synthesis problem Models of computation OUTLINE 2 DIGITAL VS. ANALOG SIGNAL PROCESSING Digital signal processing (DSP) characterized by: Time-discrete representation
More informationWriting an ANSI C Program Getting Ready to Program A First Program Variables, Expressions, and Assignments Initialization The Use of #define and
Writing an ANSI C Program Getting Ready to Program A First Program Variables, Expressions, and Assignments Initialization The Use of #define and #include The Use of printf() and scanf() The Use of printf()
More informationSystemC 2 Verilog
SystemC 2 Verilog pablo.huerta@urjc.es javier.castillo@urjc.es www.escet.urjc.es/~jmartine Rev. 1.4 October, 2005 Revision History: Rev Date Author Description 1.0 3/10/2004 Javier Castillo Initial Release
More informationA Temporal Language for SystemC
A Temporal Language for SystemC Deian Tabakov, Moshe Y. Vardi, Gila Kamhi, Eli Singerman Rice University Houston, TX November 20, 2008 SystemC System-level modeling language: C++ based, OO used for abstraction,
More informationC++ Important Questions with Answers
1. Name the operators that cannot be overloaded. sizeof,.,.*,.->, ::,? 2. What is inheritance? Inheritance is property such that a parent (or super) class passes the characteristics of itself to children
More informationTopic 6: A Quick Intro To C. Reading. "goto Considered Harmful" History
Topic 6: A Quick Intro To C Reading Assumption: All of you know basic Java. Much of C syntax is the same. Also: Some of you have used C or C++. Goal for this topic: you can write & run a simple C program
More informationList of Code Samples. xiii
xiii List of Code Samples Sample 1-1 Driving the APB pins 16 Sample 1-2 A task to drive the APB pins 17 Sample 1-3 Low-level Verilog test 17 Sample 1-4 Basic transactor code 21 Sample 2-1 Using the logic
More informationBehavioural Modelling of. the Bluetooth Baseband Protocol
Master Thesis ELE/IMIT/2001-16 Master of Science Thesis in Electronics System Design Lund November 2001 Examiner KTH Axel Jantsch Supervisor Ericsson Torbjörn Grahm Contents 1 Abstract...5 2 Acknowledgements...6
More informationAP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS
AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this
More informationOCCN: A Network-On-Chip Modeling and Simulation Framework. M.Coppola, S.Curaba, M.Grammatikakis, R.Locatelli, G.Maruccia, F.Papariello, L.
OCCN: A Network-On-Chip Modeling and Simulation Framework M.Coppola, S.Curaba, M.Grammatikakis, R.Locatelli, G.Maruccia, F.Papariello, L.Pieralisi Outline Introduction SoC trends SoC: Towards a NoC centric
More informationObjectives. Chapter 2: Basic Elements of C++ Introduction. Objectives (cont d.) A C++ Program (cont d.) A C++ Program
Objectives Chapter 2: Basic Elements of C++ In this chapter, you will: Become familiar with functions, special symbols, and identifiers in C++ Explore simple data types Discover how a program evaluates
More informationLecture 4 Fundamentals of SystemC (Part II)
Lecture 4 Fundamentals of SystemC (Part II) Multimedia Architecture and Processing Laboratory 多媒體架構與處理實驗室 Prof. Wen-Hsiao Peng ( 彭文孝 ) pawn@mail.si2lab.org 2007 Spring Term 1 Acknowledgements This lecture
More informationDesign for Verification in System-level Models and RTL
11.2 Abstract Design for Verification in System-level Models and RTL It has long been the practice to create models in C or C++ for architectural studies, software prototyping and RTL verification in the
More informationChapter 2: Basic Elements of C++
Chapter 2: Basic Elements of C++ Objectives In this chapter, you will: Become familiar with functions, special symbols, and identifiers in C++ Explore simple data types Discover how a program evaluates
More informationSpiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification.
1-4.1 1-4.2 Spiral 1 / Unit 4 Verilog HDL Mark Redekopp OVERVIEW 1-4.3 1-4.4 Digital Circuit Design Steps Digital Circuit Design Description Design and computer-entry of circuit Verification Input Stimulus
More informationQuick Reference Guide
Quick Reference Guide WILLAMETTE HDL, INC 14314 SW Allen Blvd., Suite 625 Beaverton, OR 97005 (503) 590-8499 www.whdl.com Editors: Kurt Schwartz Mike Baird Third Edition: May, 2002 Copyright 2001, 2002
More informationChapter 2: Basic Elements of C++ Objectives. Objectives (cont d.) A C++ Program. Introduction
Chapter 2: Basic Elements of C++ C++ Programming: From Problem Analysis to Program Design, Fifth Edition 1 Objectives In this chapter, you will: Become familiar with functions, special symbols, and identifiers
More informationCOMPREHENSIVE SYSTEMVERILOG-SYSTEMC-VHDL MIXED-LANGUAGE DESIGN METHODOLOGY
COMPREHENSIVE SYSTEMVERILOG-SYSTEMC-VHDL MIXED-LANGUAGE DESIGN METHODOLOGY Rudra Mukherjee Mentor Graphics Corporation rudra_mukherjee@mentor.com Gaurav Kumar Verma Mentor Graphics Corporation gaurav-kumar_verma@mentor.com
More informationEECE-4740/5740 Advanced VHDL and FPGA Design. Lecture 3 Concurrent and sequential statements
EECE-4740/5740 Advanced VHDL and FPGA Design Lecture 3 Concurrent and sequential statements Cristinel Ababei Marquette University Department of Electrical and Computer Engineering Overview Components hierarchy
More informationSubject: Scheduling Region Questions and Problems of new SystemVerilog commands
Subject: Scheduling Region Questions and Problems of new SystemVerilog commands I have read and re-read sections 14-17 of the SystemVerilog 3.1 Standard multiple times and am still confused about exactly
More informationN-input EX-NOR gate. N-output inverter. N-input NOR gate
Hardware Description Language HDL Introduction HDL is a hardware description language used to design and document electronic systems. HDL allows designers to design at various levels of abstraction. It
More informationECEN 468 Advanced Logic Design
ECEN 468 Advanced Logic Design Lecture 6: SystemC Channels and Signals ECEN 468 Lecture 6 Communication Between Processes v Events v Tracing the event notification and catching can be complex v wait(request1
More informationCS2141 Software Development using C/C++ C++ Basics
CS2141 Software Development using C/C++ C++ Basics Integers Basic Types Can be short, long, or just plain int C++ does not define the size of them other than short
More informationCS-211 Fall 2017 Test 1 Version A Oct. 2, Name:
CS-211 Fall 2017 Test 1 Version A Oct. 2, 2017 True/False Questions... Name: 1. (10 points) For the following, Check T if the statement is true, the F if the statement is false. (a) T F : If I code a C
More informationESL design with the Agility Compiler for SystemC
ESL design with the Agility Compiler for SystemC SystemC behavioral design & synthesis Steve Chappell & Chris Sullivan Celoxica ESL design portfolio Complete ESL design environment Streaming Video Processing
More informationModelling, simulation, and advanced tracing for extra-functional properties in SystemC/TLM
Modelling, simulation, and advanced tracing for extra-functional properties in SystemC/TLM Philipp A. Hartmann philipp.hartmann@offis.de OFFIS Institute for Information Technology R&D Division Transportation
More informationQUIZ. 1. Explain the meaning of the angle brackets in the declaration of v below:
QUIZ 1. Explain the meaning of the angle brackets in the declaration of v below: This is a template, used for generic programming! QUIZ 2. Why is the vector class called a container? 3. Explain how the
More informationObject-Oriented Programming (OOP) Basics. CSCI 161 Introduction to Programming I
Object-Oriented Programming (OOP) Basics CSCI 161 Introduction to Programming I Overview Chapter 8 in the textbook Building Java Programs, by Reges & Stepp. Review of OOP History and Terms Discussion of
More informationGraphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub
Lebanese University Faculty of Science Computer Science BS Degree Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub 2 Crash Course in JAVA Classes A Java
More informationOptimizing Models of an FPGA Embedded System. Adam Donlin Xilinx Research Labs September 2004
Optimizing Models of an FPGA Embedded System Adam Donlin Xilinx Research Labs September 24 Outline Target System Architecture Model Optimizations and Simulation Impact Port Datatypes Threads and Methods
More informationSystemC Synthesis Standard: Which Topics for Next Round? Frederic Doucet Qualcomm Atheros, Inc
SystemC Synthesis Standard: Which Topics for Next Round? Frederic Doucet Qualcomm Atheros, Inc 2/29/2016 Frederic Doucet, Qualcomm Atheros, Inc 2 What to Standardize Next Benefit of current standard: Provides
More informationExperiences and Challenges of Transaction-Level Modelling with SystemC 2.0
Experiences and Challenges of Transaction-Level Modelling with SystemC 2.0 Alain CLOUARD STMicroelectronics Central R&D (Grenoble, France) STMicroelectronics TLM is useful SoC HW/SW design flow Standard
More informationIntroduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview
Introduction to Visual Basic and Visual C++ Introduction to Java Lesson 13 Overview I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Overview JDK Editions Before you can write and run the simple
More informationEE382V: Embedded System Design and Modeling
EE382V: Embedded System Design and The SpecC & SystemC SLDLs Sources: R. Doemer, UC Irvine M. Radetzki, Univ. of Stuttgart Andreas Gerstlauer Electrical and Computer Engineering University of Texas at
More informationCOMP322 - Introduction to C++ Lecture 02 - Basics of C++
COMP322 - Introduction to C++ Lecture 02 - Basics of C++ School of Computer Science 16 January 2012 C++ basics - Arithmetic operators Where possible, C++ will automatically convert among the basic types.
More informationECE 545 Lecture 4. Simple Testbenches. George Mason University
ECE 545 Lecture 4 Simple Testbenches George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 2.2.4, Testbenches 2 Testbenches ECE 448 FPGA and ASIC Design with VHDL 3 Testbench
More informationIntroduction to Programming (Java) 4/12
Introduction to Programming (Java) 4/12 Michal Krátký Department of Computer Science Technical University of Ostrava Introduction to Programming (Java) 2008/2009 c 2006 2008 Michal Krátký Introduction
More informationECE U530 Digital Hardware Synthesis. Course Accounts and Tools
ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu Sept 13, 2006 Lecture 3: Basic VHDL constructs Signals, Variables, Constants VHDL Simulator and Test benches Types Reading: Ashenden
More informationImpact of SystemC data types on execution speed
Impact of SystemC data types on execution speed Wolfgang Ecker Lars Schönberg Infineon Technologies AG 15th European SystemC Users Group Meeting April 2007 Organization Data type comparison SystemC data
More informationObjectives. Introduce the core C# language features class Main types variables basic input and output operators arrays control constructs comments
Basics Objectives Introduce the core C# language features class Main types variables basic input and output operators arrays control constructs comments 2 Class Keyword class used to define new type specify
More informationECOM 4311 Digital System Design using VHDL. Chapter 7
ECOM 4311 Digital System Design using VHDL Chapter 7 Introduction A design s functionality should be verified before its description is synthesized. A testbench is a program used to verify a design s functionality
More informationUniversal Verification Methodology(UVM)
Universal Verification Methodology(UVM) A Powerful Methodology for Functional Verification of Digital Hardware Abstract - With the increasing adoption of UVM, there is a growing demand for guidelines and
More informationEvaluation of an Object-Oriented Hardware Design Methodology for Automotive Applications
Evaluation of an Object-Oriented Hardware Design Methodology for Automotive Applications N. Bannow, K.Haug Robert Bosch GmbH, Automotive Electronics Driver Assistance Systems Nico.Bannow@de.bosch.com,
More informationIntroduction to Programming (Java) 2/12
Introduction to Programming (Java) 2/12 Michal Krátký Department of Computer Science Technical University of Ostrava Introduction to Programming (Java) 2008/2009 c 2006 2008 Michal Krátký Introduction
More informationCMSC 611: Advanced Computer Architecture
CMSC 611: Advanced Computer Architecture Design Languages Practically everything adapted from slides by Peter J. Ashenden, VHDL Quick Start Some material adapted from Mohamed Younis, UMBC CMSC 611 Spr
More informationTopic 6: A Quick Intro To C
Topic 6: A Quick Intro To C Assumption: All of you know Java. Much of C syntax is the same. Also: Many of you have used C or C++. Goal for this topic: you can write & run a simple C program basic functions
More information