SoC Design. Prof. Dr. Christophe Bobda Institut für Informatik Lehrstuhl für Technische Informatik

Size: px
Start display at page:

Download "SoC Design. Prof. Dr. Christophe Bobda Institut für Informatik Lehrstuhl für Technische Informatik"

Transcription

1 SoC Design Prof. Dr. Christophe Bobda Institut für Informatik Lehrstuhl für Technische Informatik

2 Chapter 3 SystemC

3 Outline 1. Introduction 2. SystemC Overview 3. System Abstraction Level 4. Program Structure Modules Interfaces Signals Composition The main()-function Processes Testbenches Data-Types Clocks and Timing Christophe Bobda 3

4 1. Introduction Standard Methodology for ICs o System-level designers write a C or C++ model Written in a stylized, hardware-like form Sometimes refined to be more hardware-like o C/C++ model simulated to verify functionality o Model given to Verilog/VHDL coders o Verilog or VHDL specification written o Models simulated together to test equivalence o Verilog/VHDL model synthesized Christophe Bobda 4

5 1. Introduction Designing Big Digital Systems o Every system company was doing this differently o Every system company used its own simulation library o Throw the model over the wall approach makes it easy to introduce errors o Problems: System designers don t know Verilog or VHDL Verilog or VHDL coders don t understand system design Christophe Bobda 5

6 1. Introduction Advantages of C/C++-Based Language for System Modeling o Specification between architects and implementers is executable o High simulation speed due to the higher level of abstraction (nativecode compilation) Most VHDL/Verilog simulators compile to an intermediate code (a byte code) which is then interpreted uses normal C++ compilers + library to compile to native code. o Refinement, no translation into HDL (no semantic gap ) o Testbench re-use Christophe Bobda 6

7 1. Introduction Advantages of Executable Specifications o Ensure the completeness of specification Even components (e.g. Peripherals) are so complex Create a program that behave the same way as the system o Avoid ambiguous interpretation of the specification Avoids unspecified parts and inconsistencies o IP customer can evaluate the functionality up-front o Validate system functionality before implementation Create early model and validate system performance o Refine and test the implementation of the specification Test automation improves Time-to-Market Christophe Bobda 7

8 1. Introduction Can traditional C++-standard be used? o C++ does not support Hardware style communication Signals, protocols, etc Notion of time Time sequenced operations Concurrency Hardware and systems are inherently concurrent Reactivity Hardware is inherently reactive, it responds to stimuli and is in constant interaction with its environments Hardware data types Bit type, bit-vector type, multi-valued logic type, signed and unsigned integer types and fixed-point types Christophe Bobda 8

9 1. Introduction Idea of SystemC o C and C++ are being used as ad-hoc modeling languages o Why not formalize their use? o Why not interpret them as hardware specification languages just as Verilog and VHDL were? o SystemC developed at Synopsys to do just this Christophe Bobda 9

10 2. SystemC overview What is SystemC? o A subset of C++ that models/specifies synchronous digital hardware o A library of C++ classes Processes (for concurrency) Clocks (for time) Hardware data types (bit vectors, 4-valued logic, fixed-point types, arbitrary precision integers) Waiting and watching (for reactivity) Modules, ports, signals (for hierarchy) Abstract ports and protocols (abstract communications) Using channel and interface classes o A compiler that translates the synthesis subset of SystemC into a netlist o Freely available implementation (2.0) available at Christophe Bobda 10

11 2. SystemC Overview Design Flow Christophe Bobda 11

12 2. SystemC Overview Language Architecture Christophe Bobda 12

13 3. System Abstraction Level Untimed Functional Level (UTF) o Refers to both the interface and functionality o Abstract communication channels o Processes executed in zero time but in order o Transport of data executed in zero time Timed Functional Level (TF) o Refers to both the interface and functionality o Processes are assigned an execution time o Transport of data is assigned a time o Latency modeled o Timed but not clocked Bus Cycle Accurate (BCA) o Transaction Level Model (TLM) o Model the communications between system modules using shared resources such as busses o Bus cycle accurate or transaction accurate No pin-level details Christophe Bobda 13

14 3. System Abstraction Level Pin Cycle Accurate (PCA) o Fully described by HW signals and the communications protocol o Pin-level details o Clocks used for timing Register Transfer Accurate o Fully timed o Clocks used for synchronization o Complete functional details Every register for every cycle Every bus for every cycle Every bit described for every cycle o Ready to RTL HDL Christophe Bobda 14

15 4. Program Structure A SystemC program consists of module definitions plus a toplevel function that starts the simulation Modules contain processes (C++ methods) and instances of other modules Ports on modules define their interface o Rich set of port data types (hardware modeling, etc.) Signals in modules convey information between instances Clocks are special signals that run periodically and can trigger clocked processes Rich set of numeric types (fixed and arbitrary precision numbers) Christophe Bobda 15

16 4.1 Modules The basic building blocks for partitioning a design Declared with the SystemC keyword SC_MODULE Typically contain o Ports that communicate with the environment o Process that describe the functionality of the module o Internal data and communication channels for the model o Hierarchies (other modules) SC_MODULE(mymod) { /* port definitions */ /* signal definitions */ /* clock definitions */ /* storage and state variables */ /* process definitions */ SC_CTOR(mymod) { /* Instances of processes and modules */ ; Christophe Bobda 16

17 4.2 Ports Define the interface to each module Channels through which data is communicated Port consists of a direction o input sc_in o output sc_out o bidirectional sc_inout and any C++ or SystemC data type SC_MODULE(mymod) { sc_in<bool> load, read; sc_inout<int> data; sc_out<bool> empty, full; /* rest of the module */ ; In VHDL Entity module_name( port_name: Dir type;. ); End entityssd Christophe Bobda 17

18 4.3 Signals Convey information between modules and within a module Directionless: module ports define direction of data transfer Type may be any C++ or built-in type SC_MODULE(mymod) { /* port definitions */ sc_signal<sc_uint<32> > s1, s2; sc_signal<bool> reset; /* */ SC_CTOR(mymod) { /* Instances of modules that connect to the signals */ ; Christophe Bobda 18

19 4.4 Composition Hierarchy is enforced through the use of low-level modules Each instance is a pointer to an object in the module SC_MODULE(mod1) { ; SC_MODULE(mod2) { ; SC_MODULE(foo) { mod1* m1; mod2* m2; sc_signal<int> a, b, c; SC_CTOR(foo) { m1 = new mod1( i1 ); (*m1)(a, b, c); m2 = new mod2( i2 ); (*m2)(c, b); ; Connect instance s ports to signals Christophe Bobda 19

20 4.4 VHDL vs SystemC Instantiation VHDL Entity module_name( port_name: Dir type;. ); End entity Architecture XXX of module_name component adder(. ); End component Adder1: adder Port map(a1 => a, a1 =>b, res=> c) SystemC #include systemc.h #include adder.h. Int sc_main(in argc, char* agr[]) Sc_signal<bool> a1, b1, ; Adder u1( u1 ); U1<<a1<<b1<<. U1.res(out); U1.a(a); U1.b(b); sc_start(-1) Return(0); Christophe Bobda 20

21 4.5 The main() function Top-level module instiation #include systemc.h #include adder.h. Int sc_main(in argc, char* agr[]) Sc_signal<bool> a1, b1, ; Adder u1( u1 ); U1<<a1<<b1<<. int sc_main(int argc, char **argv[]) { sc_signal<int> sig_a, sig_b, sig_c; Adder adder_1( adder_1 ); // Signal mapping adder_1.a(sig_a); adder_1.b(sig_b); adder_1.c(sig_c); U1.res(out); U1.a(a); U1.b(b); sc_start(-1) Return(0); // Other modules and testbench // which drive the input signals // Run for 10 seconds of simulation time sc_start(10, SC_SEC); return EXIT_SUCCESS; Christophe Bobda 21

22 4.6 Processes Only thing in SystemC that actually does anything Various behavior o Can be pure procedural o Can be called only once, suspended and wait for one or more conditions to become through to resume No notion of hierarchy Process have sensitivity list to trigger the process activation Three Types of Processes o METHOD Models combinational logic o THREAD Models testbenches o CTHREAD Models synchronous FSMs Christophe Bobda 22

23 4.6 METHOD Processes Triggered in response to changes on inputs Cannot store control state between invocations Designed to model blocks of combinational logic Invoked once every time input in changes Runs to completion: should not contain infinite loops Christophe Bobda 23

24 4.6 METHOD Processes Example SC_MODULE(onemethod) { sc_in<bool> in; sc_out<bool> out; void inverter(); Process is simply a method of this class SC_CTOR(onemethod) { ; SC_METHOD(inverter); sensitive(in); Instance of this process created and made sensitive to an input void onemethod::inverter() { bool internal; internal = in; out = ~internal; Read a value from the port Write a value to an output port Christophe Bobda 24

25 4.6 THREAD Processes Triggered in response to changes on inputs Can suspend itself and be reactivated o Method calls wait() to relinquish control o Scheduler runs it again later Designed to model just about anything SC_MODULE(onemethod) { sc_in<bool> in; sc_out<bool> out; void toggler(); Process is simply a method of this class SC_CTOR(onemethod) { ; SC_THREAD(toggler); sensitive << in; Instance of this process created alternate sensitivity list notation Christophe Bobda 25

26 4.6 THREAD Processes Reawakened whenever an input changes State saved between invocations Infinite loops should contain a wait() void onemethod::toggler() { bool last = false; for (;;) { last = in; out = last; wait(); last = ~in; out = last; wait(); Relinquish control until the next change of a signal on the sensitivity list for this process Christophe Bobda 26

27 4.6 CTHREAD Processes Triggered in response to a single clock edge Can suspend itself and be reactivated o Method calls wait to relinquish control o Scheduler runs it again later Designed to model clocked digital hardware SC_MODULE(onemethod) { sc_in_clk clock; sc_in<bool> trigger, in; sc_out<bool> out; Instance of this process created and relevant clock edge assigned void toggler(); SC_CTOR(onemethod) { SC_CTHREAD(toggler, clock.pos()); ; Christophe Bobda 27

28 4.6 CTHREAD Processes Reawakened at the edge of the clock State saved between invocations Infinite loops should contain a wait() Relinquish control until the next clock cycle in which the trigger input is 1 void onemethod::toggler() { bool last = false; for (;;) { wait_until(trigger.delayed() == true); last = in; out = last; wait(); last = ~in; out = last; wait(); Relinquish control until the next clock cycle Christophe Bobda 28

29 4.6 CTHREAD Processes Memory-Bus- Interfacing // bus.h #include "systemc.h" SC_MODULE(bus) { sc_in_clk clock; sc_in<bool> newaddr; sc_in<sc_uint<32> > addr; sc_in<bool> ready; sc_out<sc_uint<32> > data; sc_out<bool> start; sc_out<bool> datardy; sc_inout<sc_uint<8> > data8; sc_uint<32> tdata; sc_uint<32> taddr; void xfer(); ; SC_CTOR(bus) { SC_CTHREAD(xfer, clock.pos()); datardy.initialize(true); // ready to //accept //new address Christophe Bobda 29

30 4.6 CTHREAD Processes // bus.cc #include "bus.h" void bus::xfer() { while (true) { // wait for a new address to appear wait_until( newaddr.delayed() == true); // got a new address so process it taddr = addr.read(); datardy = false; // cannot accept new //address now data8 = taddr.range(7,0); start = true; // new addr for memory // controller wait(); // wait 1 clock between data transfers data8 = taddr.range(15,8); start = false; wait(); data8 = taddr.range(31,24); wait(); // now wait for ready signal from memory // controller wait_until(ready.delayed() == true); // now transfer memory data to databus tdata.range(7,0) = data8.read(); wait(); tdata.range(15,8) = data8.read(); wait(); tdata.range(23,16) = data8.read(); wait(); tdata.range(31,24) = data8.read(); data = tdata; data8 = taddr.range(23,16); wait(); datardy = true; // data is ready, new addresses ok Christophe Bobda 30

31 4.6 Watching A CTHREAD typically has an infinite loop continuous execution Watching construct allows the designer to: o Initialize the loop-behavior o Jump out of the loop according to a given condition The watching construct monitors a specified condition and transfer execution to the begin of the process that will handle #include "datagen.h" the condition Ex: reset-like behavior SC_MODULE(data_gen) { sc_in_clk clock; sc_inout<int> data; sc_in<bool> reset; void gen_data(); SC_CTOR(data_gen) { SC_CTHREAD(toggler, clock.pos()); watching(reset.delayed() == true); ; void gen_data() { if (reset == true) { data = 0; while (true) { data = data + 1; wait(); data = data + 2; wait(); data = data + 4; wait(); Christophe Bobda 31

32 4.6 Local Watching In normal case, a watching is global cannot be disable o Can be avoided through the use of local watching constructs Allows the designer to specify which section of the process is watching which signals Specified with 4 macros, which define the boundary of each areas void mymodule::myprocess() { W_BEGIN // put the watching declarations here watching(...); watching(...); W_DO // This is where the process functionality goes... W_ESCAPE // This is where the handlers for the watched events go if (..) {... W_END Christophe Bobda 32

33 4.7 Testbenches Use to provide stimulus to a design under test and check design result Various implementations o The stimulus can be generated by one process and the result checks by another one o The stimulus can be embedded in the main program and the result check by a process o The checking can be embedded in the main program o Etc. o Typical testbench Christophe Bobda 33

34 4.7 Testbenches The stimulus can be read from a file or can be generated by an SC_THREAD process or a SC_CTHREAD process the same for the checking modules Example: Counter testbensch // count_stim.h #include "systemc.h" SC_MODULE(count_stim) { sc_out<bool> load; sc_out<int> din; // input port sc_in<bool> clock; // input port sc_in<int> dout; ; void stimgen(); SC_CTOR(count_stim) { SC_THREAD(stimgen); sensitive_pos (clock); // count_stim.cc #include "count_stim.h" void count_stim::stimgen() { while (true) { load = true; // load 0 din = 0; wait(); // count up, value = 1 load = false; wait(); // count up, value = 2 wait(); // count up, value = 3 wait(); // count up, value = 4 wait(); // count up, value = 5 wait(); // count up, value = 6 wait(); // count up, value = 7 Christophe Bobda 34

35 4.8 SystemC Types SystemC programs may use any C++ type along with any of the built-in ones for modeling systems SystemC Built-in Types o sc_bit, sc_logic Two- and four-valued single bit o sc_int, sc_unint 1 to 64-bit signed and unsigned integers o sc_bigint, sc_biguint arbitrary (fixed) width signed and unsigned integers o sc_bv, sc_lv arbitrary width two- and four-valued vectors o sc_fixed, sc_ufixed signed and unsigned fixed point numbers Christophe Bobda 35

36 4.8 Fixed and Floating Point Types Integers o Precise o Manipulation is fast and cheap o Poor for modeling continuous real-world behavior Floating-point numbers o Flexible in range and precision o Better approximation to real numbers o Good for modeling continuous behavior o Manipulation is slow and expensive Fixed-point numbers o Worst of both worlds o Used in many signal processing applications Decimal ( binary ) point 2 Christophe Bobda 36

37 4.8 Using Fixed-Point Numbers High-level models usually use floating-point for convenience Fixed-point usually used in hardware implementation because they re much cheaper SystemC provides signed and unsigned fixed-point to model hardware Bit-level accurate and supports various features for proper modeling o Quantization, overflow, etc 4 basic fixed-point types: o sc_fixed: use static arguments must be known at compile-time o sc_ufixed: use static arguments o sc_fix: may use non-static arguments can be variables o sc_ufix: may use non-static arguments Christophe Bobda 37

38 4.8 SystemC s Fixed-Point Types Fixed-point declaration: sc_fixed<wl, iwl, q_mode, o_mode, n_bits> fpn; o wl is the total word length (number of bits in the type) o iwl is the number of bits to the left of the decimal point o q_mode defines the quantization mode: Behavior, when the result generates mode precision in the LSB than specified o o_mode defines the behavior when an overflow occurs o n_bits: number of saturated bits. Used in overflow mode to specified the number of saturated bit, if saturation behavior is defined and overflow occurs Example: sc_fixed<8, 1, SC_RND, SC_SAT, 1> fpn; Christophe Bobda 38

39 4.9 Time Model Using an integer-valued time model 64-bit unsigned integer Can be increase to more than 64 bits if necessary o Same as in Verilog and VHDL Time resolution o Must be specified before any time objects (e.g sc_time) are created o Default value is one pico-second ( s) Time unit Christophe Bobda 39

40 4.9 Clocks Special object in SystemC Generate timing signals used to synchronize event in the simulation Declaration: sc_clock clock1( myclock, 20, 0.5, 2, false); Time Zero Initial value is false of 20 Christophe Bobda 40

41 4.10 Transaction-Level Modelling Definition o High level approach to modeling digital systems o Details of communication among modules separated from details of implementation of the functional units or of the communication Architecture Emphasis more on the functionality of the data transfers, less on their actual protocol implementation Communication channels that are easier to use Higher simulation speed due to suppressing uninteresting details Christophe Bobda 41

42 4.10 Transaction-Level Modelling Example: A simple bus that supports burst read and write transactions Interface definition: class very_simple_bus_if : virtual public sc_interface { public: virtual void burst_read(char *data,unsigned addr,unsigned length) = 0; virtual void burst_write(char *data,unsigned addr,unsigned length) = 0; ; virtual void burst_read(char *data, unsigned addr, unsigned length) { _bus_mutex.lock(); // Bus contention modeled using a mutex wait(length * _cycle_time); // Block caller memcpy(data, _mem + addr, length); // Copy the data to requester _bus_mutex.unlock(); // Allow the others to access the bus Christophe Bobda 42

43 4.10 Transaction-Level Modelling class very_simple_bus: public very_simple_bus_if, public sc_channel { public: very_simple_bus(sc_module_name nm, unsigned mem_size, sc_time cycle_time) : sc_channel(nm), _cycle_time(cycle_time) { _mem = new char [mem_size]; // Bus memory access modeling with internal array memset(_mem, 0, mem_size); // Initialize array ~very_simple_bus() { delete[] _mem; virtual void burst_read(char *data, unsigned addr, unsigned length) { _bus_mutex.lock(); // Bus contention modeled using a mutex wait(length * _cycle_time); // Block caller memcpy(data, _mem + addr, length); // Copy the data to requester _bus_mutex.unlock(); // Allow the others to access the bus // Write method the same apart from the parameters of memcpy Christophe Bobda 43

44 4.10 Transaction-Level Modelling protected: char* _mem; sc_time _cycle_time; sc_mutex _bus_mutex; ; TLM models can accurately model different aspects without resorting to pin-accurate models o Contention o Arbitration o Interrupts o Cycle-accuracy Faster simulation o Speed ~100k cycles/sec compared to RTL cycle-accurate o simulation speed of ~1k cycles/sec Christophe Bobda 44

45 Synthesis Subset of SystemC At least two Behavioral Subset o Implicit state machines permitted o Resource sharing, binding, and allocation done automatically o System determines how many adders you have Register-transfer-level Subset o More like Verilog/VHDL o You write a +, you get an adder o State machines must be listed explicitly Christophe Bobda 45

46 Do People Use SystemC? Not as many as use Verilog or VHDL Growing in popularity People recognize advantage of being able to share models Most companies were doing something like it already Use someone else s free libraries? Why not? Christophe Bobda 46

SystemC 1.3. Languages for Embedded Systems. Prof. Stephen A. Edwards. March Columbia University

SystemC 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 information

SystemC 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 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 information

Co-design Methodology and Synthesis

Co-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 information

SystemC Modules and Hierarchy. Rolf Drechsler Daniel Große University of Bremen

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 information

SystemC. Short Introduction

SystemC. Short Introduction SystemC Short Introduction Karsten Einwich Fraunhofer IIS/EAS Dresden SystemC is a definition of C++ language constructs for the description of complex digital hardware systems on different abstraction

More information

EEL 5722C Field-Programmable Gate Array Design

EEL 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 information

KDEC

KDEC 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 information

SystemC Data Types (06A) SystemC

SystemC Data Types (06A) SystemC SystemC Data Types (06A) 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 information

SystemCrafter SC User Manual

SystemCrafter 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 information

Electronic System Level Design Introduction to SystemC

Electronic 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 information

Abstraction Layers for Hardware Design

Abstraction Layers for Hardware Design SYSTEMC Slide -1 - Abstraction Layers for Hardware Design TRANSACTION-LEVEL MODELS (TLM) TLMs have a common feature: they implement communication among processes via function calls! Slide -2 - Abstraction

More information

EEL 5722C Field-Programmable Gate Array Design

EEL 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 information

SystemC 2 Verilog

SystemC 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 information

Lecture 14: Data Types in SystemC

Lecture 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 information

LG2: 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: 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 information

Version 1.1 User s Guide

Version 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 information

PowerSC: a SystemC Framework for Power Estimation

PowerSC: 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 information

Introduction to SystemC

Introduction 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 information

System-level design refinement using SystemC. Robert Dale Walstrom. A thesis submitted to the graduate faculty

System-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 information

Version 2.0 User s Guide

Version 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 information

Chapter 2 Overview of SystemC

Chapter 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 information

SystemC: Co-specification and SoC Modeling

SystemC: 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 information

HDL-Based Design. Eduardo Sanchez EPFL. Introduction

HDL-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 information

4 th European SystemC Users Group Meeting

4 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 information

Design for Verification in System-level Models and RTL

Design 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 information

EEL 5722C Field-Programmable Gate Array Design

EEL 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 information

Die virtuelle Plattform:

Die 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 information

Formal Techniques for SystemC Verification

Formal 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 information

Intro to High Level Design with SystemC

Intro to High Level Design with SystemC Intro to High Level Design with SystemC Aim To introduce SystemC, and its associated Design Methodology Date 26th March 2001 Presented By Alan Fitch Designer Challenges Design complexity System on Chip

More information

Algorithmic C synthesis (High-level synthesis)

Algorithmic 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 information

81920**slide. 1Developing the Accelerator Using HLS

81920**slide. 1Developing the Accelerator Using HLS 81920**slide - 1Developing the Accelerator Using HLS - 82038**slide Objectives After completing this module, you will be able to: Describe the high-level synthesis flow Describe the capabilities of the

More information

Spiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification.

Spiral 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 information

System-On-Chip Architecture Modeling Style Guide

System-On-Chip Architecture Modeling Style Guide Center for Embedded Computer Systems University of California, Irvine System-On-Chip Architecture Modeling Style Guide Junyu Peng Andreas Gerstlauer Rainer Dömer Daniel D. Gajski Technical Report CECS-TR-04-22

More information

Modular SystemC. In-house Training Options. For further information contact your local Doulos Sales Office.

Modular 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 information

FUNCTIONAL SPECIFICATION FOR SYSTEMC 2.0

FUNCTIONAL 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 information

SpecC Methodology for High-Level Modeling

SpecC Methodology for High-Level Modeling EDP 2002 9 th IEEE/DATC Electronic Design Processes Workshop SpecC Methodology for High-Level Modeling Rainer Dömer Daniel D. Gajski Andreas Gerstlauer Center for Embedded Computer Systems Universitiy

More information

Hardware-Software Codesign. 6. System Simulation

Hardware-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 information

Agenda. How can we improve productivity? C++ Bit-accurate datatypes and modeling Using C++ for hardware design

Agenda. How can we improve productivity? C++ Bit-accurate datatypes and modeling Using C++ for hardware design Catapult C Synthesis High Level Synthesis Webinar Stuart Clubb Technical Marketing Engineer April 2009 Agenda How can we improve productivity? C++ Bit-accurate datatypes and modeling Using C++ for hardware

More information

Quick Reference Guide

Quick 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 information

SoC Design for the New Millennium Daniel D. Gajski

SoC Design for the New Millennium Daniel D. Gajski SoC Design for the New Millennium Daniel D. Gajski Center for Embedded Computer Systems University of California, Irvine www.cecs.uci.edu/~gajski Outline System gap Design flow Model algebra System environment

More information

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL)

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL) Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL) Pinit Kumhom VLSI Laboratory Dept. of Electronic and Telecommunication Engineering (KMUTT) Faculty of Engineering King Mongkut s University

More information

ECEN 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 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 information

The 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. 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 information

Simulation and Exploration of LAURA Processor Architectures with SystemC

Simulation 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 information

Getting Started with TLM-2.0

Getting 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 information

ESL design with the Agility Compiler for SystemC

ESL 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 information

Embedded System Design and Modeling EE382V, Fall 2008

Embedded System Design and Modeling EE382V, Fall 2008 Embedded System Design and Modeling EE382V, Fall 2008 Lecture Notes 3 The SpecC System-Level Design Language Dates: Sep 9&11, 2008 Scribe: Mahesh Prabhu Languages: Any language would have characters, words

More information

Using SystemC to Implement Embedded Software

Using SystemC to Implement Embedded Software Using SystemC to Implement Embedded Software Brijesh Sirpatil James M. Baker, Jr. James R. Armstrong Bradley Department of Electrical and Computer Engineering, Virginia Tech, Blacksburg, VA Abstract This

More information

A Hybrid Instruction Set Simulator for System Level Design

A Hybrid Instruction Set Simulator for System Level Design Center for Embedded Computer Systems University of California, Irvine A Hybrid Instruction Set Simulator for System Level Design Yitao Guo, Rainer Doemer Technical Report CECS-10-06 June 11, 2010 Center

More information

CS232 VHDL Lecture. Types

CS232 VHDL Lecture. Types CS232 VHDL Lecture VHSIC Hardware Description Language [VHDL] is a language used to define and describe the behavior of digital circuits. Unlike most other programming languages, VHDL is explicitly parallel.

More information

Simulation 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 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 information

MODELING LANGUAGES AND ABSTRACT MODELS. Giovanni De Micheli Stanford University. Chapter 3 in book, please read it.

MODELING LANGUAGES AND ABSTRACT MODELS. Giovanni De Micheli Stanford University. Chapter 3 in book, please read it. MODELING LANGUAGES AND ABSTRACT MODELS Giovanni De Micheli Stanford University Chapter 3 in book, please read it. Outline Hardware modeling issues: Representations and models. Issues in hardware languages.

More information

METROII 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 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 information

101-1 Under-Graduate Project Digital IC Design Flow

101-1 Under-Graduate Project Digital IC Design Flow 101-1 Under-Graduate Project Digital IC Design Flow Speaker: Ming-Chun Hsiao Adviser: Prof. An-Yeu Wu Date: 2012/9/25 ACCESS IC LAB Outline Introduction to Integrated Circuit IC Design Flow Verilog HDL

More information

271/471 Verilog Tutorial

271/471 Verilog Tutorial 271/471 Verilog Tutorial Prof. Scott Hauck, last revised 9/15/14 Introduction The following tutorial is inted to get you going quickly in circuit design in Verilog. It isn t a comprehensive guide to System

More information

Operating in a Mixed-language Environment Using HDL, C/C++, SystemC and SystemVerilog

Operating in a Mixed-language Environment Using HDL, C/C++, SystemC and SystemVerilog Application Note Operating in a Mixed-language Environment Using HDL, C/C++, SystemC and SystemVerilog www.model.com Introduction C and C++ languages have an important role to play in ASIC design, and

More information

Embedded System Design and Modeling EE382V, Fall 2008

Embedded System Design and Modeling EE382V, Fall 2008 Embedded System Design and Modeling EE382V, Fall 2008 Lecture Notes 4 System Design Flow and Design Methodology Dates: Sep 16&18, 2008 Scribe: Mahesh Prabhu SpecC: Import Directive: This is different from

More information

Topics. Verilog. Verilog vs. VHDL (2) Verilog vs. VHDL (1)

Topics. Verilog. Verilog vs. VHDL (2) Verilog vs. VHDL (1) Topics Verilog Hardware modeling and simulation Event-driven simulation Basics of register-transfer design: data paths and controllers; ASM charts. High-level synthesis Initially a proprietary language,

More information

Verilog HDL. A Guide to Digital Design and Synthesis. Samir Palnitkar. SunSoft Press A Prentice Hall Title

Verilog HDL. A Guide to Digital Design and Synthesis. Samir Palnitkar. SunSoft Press A Prentice Hall Title Verilog HDL A Guide to Digital Design and Synthesis Samir Palnitkar SunSoft Press A Prentice Hall Title Table of Contents About the Author Foreword Preface Acknowledgments v xxxi xxxiii xxxvii Part 1:

More information

Synthesizable Verilog

Synthesizable Verilog Synthesizable Verilog Courtesy of Dr. Edwards@Columbia, and Dr. Franzon@NCSU http://csce.uark.edu +1 (479) 575-6043 yrpeng@uark.edu Design Methodology Structure and Function (Behavior) of a Design HDL

More information

Introduction to Verilog HDL

Introduction to Verilog HDL Introduction to Verilog HDL Ben Abdallah Abderazek National University of Electro-communications, Tokyo, Graduate School of information Systems May 2004 04/09/08 1 What you will understand after having

More information

Date Performed: Marks Obtained: /10. Group Members (ID):. Experiment # 11. Introduction to Verilog II Sequential Circuits

Date Performed: Marks Obtained: /10. Group Members (ID):. Experiment # 11. Introduction to Verilog II Sequential Circuits Name: Instructor: Engr. Date Performed: Marks Obtained: /10 Group Members (ID):. Checked By: Date: Experiment # 11 Introduction to Verilog II Sequential Circuits OBJECTIVES: To understand the concepts

More information

Transaction Level Modeling with SystemC. Thorsten Grötker Engineering Manager Synopsys, Inc.

Transaction 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 information

Pace University. Fundamental Concepts of CS121 1

Pace University. Fundamental Concepts of CS121 1 Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction

More information

HIERARCHICAL DESIGN. RTL Hardware Design by P. Chu. Chapter 13 1

HIERARCHICAL DESIGN. RTL Hardware Design by P. Chu. Chapter 13 1 HIERARCHICAL DESIGN Chapter 13 1 Outline 1. Introduction 2. Components 3. Generics 4. Configuration 5. Other supporting constructs Chapter 13 2 1. Introduction How to deal with 1M gates or more? Hierarchical

More information

Outline HIERARCHICAL DESIGN. 1. Introduction. Benefits of hierarchical design

Outline HIERARCHICAL DESIGN. 1. Introduction. Benefits of hierarchical design Outline HIERARCHICAL DESIGN 1. Introduction 2. Components 3. Generics 4. Configuration 5. Other supporting constructs Chapter 13 1 Chapter 13 2 1. Introduction How to deal with 1M gates or more? Hierarchical

More information

Outline. CPE/EE 422/522 Advanced Logic Design L05. Review: General Model of Moore Sequential Machine. Review: Mealy Sequential Networks.

Outline. CPE/EE 422/522 Advanced Logic Design L05. Review: General Model of Moore Sequential Machine. Review: Mealy Sequential Networks. Outline CPE/EE 422/522 Advanced Logic Design L05 Electrical and Computer Engineering University of Alabama in Huntsville What we know Combinational Networks Sequential Networks: Basic Building Blocks,

More information

An introduction to CoCentric

An introduction to CoCentric A Hand-Out 1 An introduction to CoCentric Las Palmas de G. C., Spain Jun, 27 th, 2002 Agenda 2 System-level SoC design What is SystemC? CoCentric System Studio SystemC based designs verification CoCentric

More information

271/469 Verilog Tutorial

271/469 Verilog Tutorial 271/469 Verilog Tutorial Prof. Scott Hauck, last revised 8/14/17 Introduction The following tutorial is inted to get you going quickly in circuit design in Verilog. It isn t a comprehensive guide to System

More information

USING THE SYSTEM-C LIBRARY FOR BIT TRUE SIMULATIONS IN MATLAB

USING 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 information

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis Logic Synthesis Verilog and VHDL started out as simulation languages, but quickly people wrote programs to automatically convert Verilog code into low-level circuit descriptions (netlists). EECS150 - Digital

More information

Hardware description languages

Hardware description languages Specifying digital circuits Schematics (what we ve done so far) Structural description Describe circuit as interconnected elements Build complex circuits using hierarchy Large circuits are unreadable Hardware

More information

A UML Profile for SysML-Based Comodeling for Embedded Systems Simulation and Synthesis

A UML Profile for SysML-Based Comodeling for Embedded Systems Simulation and Synthesis A UML Profile for SysML-Based Comodeling for Embedded Systems Simulation and Synthesis Fabian Mischkalla, Da He, Wolfgang Mueller University of Paderborn/C-LAB, Paderborn, Germany Abstract After its wide

More information

Implementing MATLAB Algorithms in FPGAs and ASICs By Alexander Schreiber Senior Application Engineer MathWorks

Implementing MATLAB Algorithms in FPGAs and ASICs By Alexander Schreiber Senior Application Engineer MathWorks Implementing MATLAB Algorithms in FPGAs and ASICs By Alexander Schreiber Senior Application Engineer MathWorks 2014 The MathWorks, Inc. 1 Traditional Implementation Workflow: Challenges Algorithm Development

More information

International Training Workshop on FPGA Design for Scientific Instrumentation and Computing November 2013

International Training Workshop on FPGA Design for Scientific Instrumentation and Computing November 2013 2499-20 International Training Workshop on FPGA Design for Scientific Instrumentation and Computing 11-22 November 2013 High-Level Synthesis: how to improve FPGA design productivity RINCON CALLE Fernando

More information

OpenVera Assertions. March Synopsys, Inc.

OpenVera Assertions. March Synopsys, Inc. OpenVera Assertions March 2003 2003 Synopsys, Inc. Introduction The amount of time and manpower that is invested in finding and removing bugs is growing faster than the investment in creating the design.

More information

High Level Synthesis for Design of Video Processing Blocks

High Level Synthesis for Design of Video Processing Blocks Master s Thesis High Level Synthesis for Design of Video Processing Blocks Ayla Chabouk Carlos Gómez Department of Electrical and Information Technology, Faculty of Engineering, LTH, Lund University, March

More information

In our case Dr. Johnson is setting the best practices

In our case Dr. Johnson is setting the best practices VHDL Best Practices Best Practices??? Best practices are often defined by company, toolset or device In our case Dr. Johnson is setting the best practices These rules are for Class/Lab purposes. Industry

More information

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design Two HDLs used today Introduction to Structured VLSI Design VHDL I VHDL and Verilog Syntax and ``appearance'' of the two languages are very different Capabilities and scopes are quite similar Both are industrial

More information

SystemC Verification Standard Specification

SystemC Verification Standard Specification SystemC Verification Standard Specification Version 1.0e Submission to SystemC Steering Group May 16, 2003 Written by the Members of the SystemC Verification Working Group SystemC Verification Working

More information

TKT-1212 Digitaalijärjestelmien toteutus. Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008

TKT-1212 Digitaalijärjestelmien toteutus. Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008 TKT-1212 Digitaalijärjestelmien toteutus Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008 Contents Purpose of test benches Structure of simple test bench Side note about delay modeling in VHDL

More information

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1 Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis Spring 2007 Lec #8 -- HW Synthesis 1 Logic Synthesis Verilog and VHDL started out

More information

Translating Haskell to Hardware. Lianne Lairmore Columbia University

Translating Haskell to Hardware. Lianne Lairmore Columbia University Translating Haskell to Hardware Lianne Lairmore Columbia University FHW Project Functional Hardware (FHW) Martha Kim Stephen Edwards Richard Townsend Lianne Lairmore Kuangya Zhai CPUs file: ///home/lianne/

More information

VHDL simulation and synthesis

VHDL simulation and synthesis VHDL simulation and synthesis How we treat VHDL in this course You will not become an expert in VHDL after taking this course The goal is that you should learn how VHDL can be used for simulation and synthesis

More information

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis Jan 31, 2012 John Wawrzynek Spring 2012 EECS150 - Lec05-verilog_synth Page 1 Outline Quick review of essentials of state elements Finite State

More information

Introduction to Programmable. Logic

Introduction to Programmable. Logic Introduction to Programmable Logic LISHA/UFSC Prof. Dr. Antônio Augusto Fröhlich Fauze Valério Polpeta Lucas Francisco Wanner Danillo Moura Santos Tiago de Albuquerque Reis Tiago Rogério Mück http://www.lisha.ufsc.br/~guto

More information

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Hardware Design Environments Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Outline Welcome to COE 405 Digital System Design Design Domains and Levels of Abstractions Synthesis

More information

Hardware Modelling. Design Flow Overview. ECS Group, TU Wien

Hardware Modelling. Design Flow Overview. ECS Group, TU Wien Hardware Modelling Design Flow Overview ECS Group, TU Wien 1 Outline Difference: Hardware vs. Software Design Flow Steps Specification Realisation Verification FPGA Design Flow 2 Hardware vs. Software:

More information

A Language and Toolset for the Synthesis and Efficient Simulation of Clock-Cycle-True Signal-Processing Algorithms

A Language and Toolset for the Synthesis and Efficient Simulation of Clock-Cycle-True Signal-Processing Algorithms A Language and Toolset for the Synthesis and Efficient Simulation of Clock-Cycle-True Signal-Processing Algorithms Klaas L. Hofstra, Sabih H. Gerez and David van Kampen University of Twente, Department

More information

Improvements to SystemC Datatypes: A Community Discussion

Improvements to SystemC Datatypes: A Community Discussion Improvements to SystemC Datatypes: A Community Discussion SystemC Datatypes Working Group @ SystemC Evolution Day 2017 Presented by Frederic Doucet (WG Chair) Presentation Copyright Permission - A non-exclusive,

More information

Evaluation of an Object-Oriented Hardware Design Methodology for Automotive Applications

Evaluation 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 information

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language VHDL Introduction to Structured VLSI Design VHDL I Very High Speed Integrated Circuit (VHSIC) Hardware Description Language Joachim Rodrigues A Technology Independent, Standard Hardware description Language

More information

Impact of SystemC data types on execution speed

Impact 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 information

COMPREHENSIVE SYSTEMVERILOG-SYSTEMC-VHDL MIXED-LANGUAGE DESIGN METHODOLOGY

COMPREHENSIVE 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 information

C++ Important Questions with Answers

C++ 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 information

OUTLINE RTL DESIGN WITH ARX

OUTLINE RTL DESIGN WITH ARX 1 2 RTL DESIGN WITH ARX IMPLEMENTATION OF DIGITAL SIGNAL PROCESSING Sabih H. Gerez University of Twente OUTLINE Design languages Arx motivation and alternatives Main features of Arx Arx language elements

More information

Outline. Catapult C Design Methodology. Design Steps with Catapult 1/31/12. System-on-Chip Design Methodologies

Outline. Catapult C Design Methodology. Design Steps with Catapult 1/31/12. System-on-Chip Design Methodologies System-on-Chip Design Methodologies High-Level Synthesis using Catapult-C Olivier Sentieys IRISA/INRIA ENSSAT - Université de Rennes 1 Outline Introduction Design Flow and Tool Basics Data Types Writing

More information

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog ECE 2300 Digital Logic & Computer Organization Spring 2018 More Sequential Logic Verilog Lecture 7: 1 Announcements HW3 will be posted tonight Prelim 1 Thursday March 1, in class Coverage: Lectures 1~7

More information

VHDL HIERARCHICAL MODELING

VHDL HIERARCHICAL MODELING To incorporate hierarchy in VHDL we must add component declarations and component instantiations to the model. In addition, we need to declare internal signals to interconnect the components. We can also

More information

Generating 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 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 information