- 1 - Embedded Systems – Language SystemC: Motivation Many standards (e.g. the GSM and MPEG-standards) are published as C programs  Standards have to.

Slides:



Advertisements
Similar presentations
Digital System Design Subject Name : Digital System Design Course Code : IT-314.
Advertisements

SoC Challenges & Transaction Level Modeling (TLM) Dr. Eng. Amr T. Abdel-Hamid ELECT 1002 Spring 2008 System-On-a-Chip Design.
SOC Design: From System to Transistor
CMSC 611: Advanced Computer Architecture
EECE **** Embedded System Design
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
High Level Languages: A Comparison By Joel Best. 2 Sources The Challenges of Synthesizing Hardware from C-Like Languages  by Stephen A. Edwards High-Level.
Digital Design with VHDL Presented by: Amir Masoud Gharehbaghi
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
- 1 -  P. Marwedel, Univ. Dortmund, Informatik 12, 05/06 Universität Dortmund Hardware/Software Codesign.
1 Lecture 1: Verilog HDL Introduction. 2 What is Verilog HDL? Verilog Hardware Description Language(HDL)? –A high-level computer language can model, represent.
Behavioral Synthesis Outline –Synthesis Procedure –Example –Domain-Specific Synthesis –Silicon Compilers –Example Tools Goal –Understand behavioral synthesis.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
ECE 353 Computer Systems Lab I Verilog Hardware Description Language.
Copyright  1999 Daniel D. Gajski IP – Based Design Methodology Daniel D. Gajski University of California
HDL-Based Digital Design Part I: Introduction to VHDL (I) Dr. Yingtao Jiang Department Electrical and Computer Engineering University of Nevada Las Vegas.
General-purpose Specification Languages  P.Marwedel, U. Dortmund, Informatik 12, 2006 Universität Dortmund System modeling & design Represent.
Transaction Level Modeling Definitions and Approximations Trevor Meyerowitz EE290A Presentation May 12, 2005.
Digital System Design Verilog ® HDL Maziar Goudarzi.
ELEN468 Lecture 11 ELEN468 Advanced Logic Design Lecture 1Introduction.
Fakultät für informatik informatik 12 technische universität dortmund Modeling levels Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,
Universität Dortmund  P. Marwedel, Univ. Dortmund, Informatik 12, 2003 Hardware/software partitioning  Functionality to be implemented in software.
(1) Introduction © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
1 Data Object Object Types A VHDL object consists of one of the following: –Signal, Which represents interconnection wires that connect component instantiation.
Ch.2 Part A: Requirements, State Charts EECE **** Embedded System Design.
CSET 4650 Field Programmable Logic Devices
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
VHDL Structured Logic Design School of Electrical Engineering University of Belgrade Department of Computer Engineering Ivan Dugic Veljko.
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
Using Mathematica for modeling, simulation and property checking of hardware systems Ghiath AL SAMMANE VDS group : Verification & Modeling of Digital systems.
ECE 2372 Modern Digital System Design
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
CAD Techniques for IP-Based and System-On-Chip Designs Allen C.-H. Wu Department of Computer Science Tsing Hua University Hsinchu, Taiwan, R.O.C {
Extreme Makeover for EDA Industry
Synthesis Presented by: Ms. Sangeeta L. Mahaddalkar ME(Microelectronics) Sem II Subject: Subject:ASIC Design and FPGA.
1 H ardware D escription L anguages Modeling Digital Systems.
Hardware/Software Co-design Design of Hardware/Software Systems A Class Presentation for VLSI Course by : Akbar Sharifi Based on the work presented in.
Digital System 數位系統 Verilog HDL Ping-Liang Lai (賴秉樑)  
Module 1.2 Introduction to Verilog
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
Slide 1 2. Verilog Elements. Slide 2 Why (V)HDL? (VHDL, Verilog etc.), Karen Parnell, Nick Mehta, “Programmable Logic Design Quick Start Handbook”, Xilinx.
HARDWARE DESCRIPTION LANGUAGE (HDL). What is HDL? A type of programming language for sampling and modeling of electronic & logic circuit designs It can.
TOPIC : Different levels of Fault model UNIT 2 : Fault Modeling Module 2.1 Modeling Physical fault to logical fault.
Ch.2 Part E: VHDL, SystemC EECE **** Embedded System Design.
(1) Basic Language Concepts © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
ECE-C662 Lecture 2 Prawat Nagvajara
1 Copyright  2001 Pao-Ann Hsiung SW HW Module Outline l Introduction l Unified HW/SW Representations l HW/SW Partitioning Techniques l Integrated HW/SW.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
CSCI-365 Computer Organization Lecture Note: Some slides and/or pictures in the following are adapted from: Computer Organization and Design, Patterson.
Introduction to ASIC flow and Verilog HDL
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
System-on-Chip Design Hao Zheng Comp Sci & Eng U of South Florida 1.
1 Lecture 1: Verilog HDL Introduction. 2 What is Verilog HDL? Verilog Hardware Description Language(HDL)? –A high-level computer language can model, represent.
EECE 320 L8: Combinational Logic design Principles 1Chehab, AUB, 2003 EECE 320 Digital Systems Design Lecture 8: Combinational Logic Design Principles.
1 A hardware description language is a computer language that is used to describe hardware. Two HDLs are widely used Verilog HDL VHDL (Very High Speed.
SUBJECT : DIGITAL ELECTRONICS CLASS : SEM 3(B) TOPIC : INTRODUCTION OF VHDL.
EMT 351/4 DIGITAL IC DESIGN Week # 1 EDA & HDL.
System-on-Chip Design
Basic Language Concepts
Processor (I).
IP – Based Design Methodology
Introduction to cosynthesis Rabi Mahapatra CSCE617
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
Digital Designs – What does it take
Presentation transcript:

- 1 - Embedded Systems – Language SystemC: Motivation Many standards (e.g. the GSM and MPEG-standards) are published as C programs  Standards have to be translated if special hardware description languages have to be used (synthesizable) The functionality of many systems is provided by a mix of hardware and software components  Simulations require an interface between hardware and software simulators unless the same language is used for the description of hardware and software  Attempts to describe software and hardware in the same language. (Easier said than implemented). Various C dialects used for hardware description. Many standards (e.g. the GSM and MPEG-standards) are published as C programs  Standards have to be translated if special hardware description languages have to be used (synthesizable) The functionality of many systems is provided by a mix of hardware and software components  Simulations require an interface between hardware and software simulators unless the same language is used for the description of hardware and software  Attempts to describe software and hardware in the same language. (Easier said than implemented). Various C dialects used for hardware description.

- 2 - Embedded Systems – Language SystemC: Motivation Represent hardware structure in software language needed. Problems: –Model concurrency (hardware) in software –A representation for simulation in time –Support multiple-valued logic and resolution –Deterministic behavior. Represent hardware structure in software language needed. Problems: –Model concurrency (hardware) in software –A representation for simulation in time –Support multiple-valued logic and resolution –Deterministic behavior.

- 3 - Embedded Systems – Language SystemC: Required features Requirements and solutions for modeling HW in a SW language: C++ class library including required functions. Concurrency: via processes, controlled by sensivity lists and calls to wait primitives. Time: Floating point numbers in SystemC 1.0 and Integer values in SystemC 2.0; includes units such as ps, ns, µs,.. Support of bit-data types: bit-vectors of different lengths; multiple-valued logic (2- and 4-valued logic; resolution*) Communication: plug-and-play channel model, allowing easy replacement of intellectual property (IP). Deterministic behavior not guaranteed. Requirements and solutions for modeling HW in a SW language: C++ class library including required functions. Concurrency: via processes, controlled by sensivity lists and calls to wait primitives. Time: Floating point numbers in SystemC 1.0 and Integer values in SystemC 2.0; includes units such as ps, ns, µs,.. Support of bit-data types: bit-vectors of different lengths; multiple-valued logic (2- and 4-valued logic; resolution*) Communication: plug-and-play channel model, allowing easy replacement of intellectual property (IP). Deterministic behavior not guaranteed.

- 4 - Embedded Systems – Language SystemC Potenital replacing VHDL-based design flow. Hardware synthesize availability (coming?????) EDA !!! Potenital replacing VHDL-based design flow. Hardware synthesize availability (coming?????) EDA !!!

- 5 - Embedded Systems – Language Verilog HW description language competing with VHDL Standardized: IEEE (Verilog version 1.0) IEEE (Verilog version 2.0) Features similar to VHDL: Designs described as connected entities (modules). Bit-vectors and time units are supported Features that are different: Built-in support for 4-value logic and for logic with 8 strength levels encoded in two bytes per signal. More features for transistor-level descriptions Less flexible than VHDL. More popular in the US (VHDL common in Europe) HW description language competing with VHDL Standardized: IEEE (Verilog version 1.0) IEEE (Verilog version 2.0) Features similar to VHDL: Designs described as connected entities (modules). Bit-vectors and time units are supported Features that are different: Built-in support for 4-value logic and for logic with 8 strength levels encoded in two bytes per signal. More features for transistor-level descriptions Less flexible than VHDL. More popular in the US (VHDL common in Europe)

- 6 - Embedded Systems – Language SystemVerilog Corresponds to Verilog versions 3.0 and 3.1. Includes: Additional language elements for modeling behavior C data types such as int Type definition facilities (typedef, struct) Definition of interfaces of hardware components as separate entities Mechanism for calling C/C++ -- functions from Verilog Limited mechanism for calling Verilog functions from C. Corresponds to Verilog versions 3.0 and 3.1. Includes: Additional language elements for modeling behavior C data types such as int Type definition facilities (typedef, struct) Definition of interfaces of hardware components as separate entities Mechanism for calling C/C++ -- functions from Verilog Limited mechanism for calling Verilog functions from C.

- 7 - Embedded Systems – Language SystemVerilog Enhanced features for describing the testbench Classes can be used in testbenches. Dynamic process creation. Standardized inter-process communication and synchronization. Automatic memory allocation and de-allocation. Language features providing interface for formal verification.  Significant hype about the potential of SystemVerilog  Emperors new cloths? Enhanced features for describing the testbench Classes can be used in testbenches. Dynamic process creation. Standardized inter-process communication and synchronization. Automatic memory allocation and de-allocation. Language features providing interface for formal verification.  Significant hype about the potential of SystemVerilog  Emperors new cloths?

- 8 - Embedded Systems – Language SpecC [Gajski, Dömer et. al. 2000] SpecC is based on the clear separation between communication and computation. Enables “plug-and-play” for system components; models systems as hierarchical networks of behaviors communicating through channels. SpecC specs consists of behaviors, channels and interfaces. Behaviors include ports, locally instantiated components, private variables and functions and a public main function. Channels encapsulate communication. They include variables and functions, used for the definition of a communication protocol. Interfaces are linking behaviors and channels together. They declare the communication protocols which are defined in a channel. SpecC is based on the clear separation between communication and computation. Enables “plug-and-play” for system components; models systems as hierarchical networks of behaviors communicating through channels. SpecC specs consists of behaviors, channels and interfaces. Behaviors include ports, locally instantiated components, private variables and functions and a public main function. Channels encapsulate communication. They include variables and functions, used for the definition of a communication protocol. Interfaces are linking behaviors and channels together. They declare the communication protocols which are defined in a channel.

- 9 - Embedded Systems – Language Example channel behavior IP reuse

Embedded Systems – Language Other languages (1) Pearl: Designed in Germany for process control applications. Dating back to the 70s. Popular in Europe. Chill: Designed for telephone exchange stations. Based on PASCAL. IEC 60848, STEP 7: Process control languages using graphical elements SpecCharts: Combination of StateCharts and VHDL; designed by Gajski et al. (Irvine), replaced by SpecC Pearl: Designed in Germany for process control applications. Dating back to the 70s. Popular in Europe. Chill: Designed for telephone exchange stations. Based on PASCAL. IEC 60848, STEP 7: Process control languages using graphical elements SpecCharts: Combination of StateCharts and VHDL; designed by Gajski et al. (Irvine), replaced by SpecC

Embedded Systems – Language Other languages (2) Estelle: Designed to describe communication protocols; scope similar to SDL; unification of both failed. LOTOS, Z: Algebraic specification languages Silage: functional language for digital signal processing. Rosetta: Efforts on new system design language Esterel: reactive language; synchronous; all reactions are assumed to be in 0 time; communication based on ("instantenous") broadcast; // Estelle: Designed to describe communication protocols; scope similar to SDL; unification of both failed. LOTOS, Z: Algebraic specification languages Silage: functional language for digital signal processing. Rosetta: Efforts on new system design language Esterel: reactive language; synchronous; all reactions are assumed to be in 0 time; communication based on ("instantenous") broadcast; //

Embedded Systems – Language MATLAB/Simulink MATLAB (Matrix Laboratory): facility for defining matrix-based computations, extending numerical FORTRAN packages LINPACK and EISPACK with a GUI Simulink: GUI-based specification of control systems, internally using MATLAB for solving these problems. StateFlow: StateCharts-based tool integrated into MATLAB THE environment for (German, at least) car manufacturers MATLAB (Matrix Laboratory): facility for defining matrix-based computations, extending numerical FORTRAN packages LINPACK and EISPACK with a GUI Simulink: GUI-based specification of control systems, internally using MATLAB for solving these problems. StateFlow: StateCharts-based tool integrated into MATLAB THE environment for (German, at least) car manufacturers

Embedded Systems – Language Simulink-example: From /access/helpdesk/help/ toolbox/fuzzy/fuzzyt25. shtml

Embedded Systems – Language Levels of hardware modeling in design 1.System level 2.Algorithmic level 3.Instruction set level 4.Register-transfer level (RTL) 5.Gate-level models 6.Switch-level models 7.Circuit-level models 8.Device-level models 9.Layout models 10.Process and device models 1.System level 2.Algorithmic level 3.Instruction set level 4.Register-transfer level (RTL) 5.Gate-level models 6.Switch-level models 7.Circuit-level models 8.Device-level models 9.Layout models 10.Process and device models Variety of languages at each level

Embedded Systems – Language System level The term system level is not clearly defined. It is used here to denote the entire embedded system and the system into which information processing is embedded, and possibly also the environment. Such models may include mechanical as well as information processing aspects, and may be difficult to find appropriate simulators. Solutions include VHDL-AMS (analog extension), SystemC or MATLAB. MATLAB and VHDL-AMS support modeling partial differential equations. Challenge to model information processing parts of the system in such a way that the simulation model can also be used for the synthesis of the embedded system. The term system level is not clearly defined. It is used here to denote the entire embedded system and the system into which information processing is embedded, and possibly also the environment. Such models may include mechanical as well as information processing aspects, and may be difficult to find appropriate simulators. Solutions include VHDL-AMS (analog extension), SystemC or MATLAB. MATLAB and VHDL-AMS support modeling partial differential equations. Challenge to model information processing parts of the system in such a way that the simulation model can also be used for the synthesis of the embedded system.

Embedded Systems – Language Algorithmic level Simulating the algorithms that we intend to use within the embedded system (to evaluate the algorithm). No reference is made to processors or instruction sets. Data types may still allow a higher precision than the final implementation (complicated to implement). If data types have been selected such that every bit corresponds to exactly one bit in the final implementation, the model is said to be bit-true. Translating non-bit-true into bit-true models should be done with tool support. May consist of single process or of sets of cooperating processes. Simulating the algorithms that we intend to use within the embedded system (to evaluate the algorithm). No reference is made to processors or instruction sets. Data types may still allow a higher precision than the final implementation (complicated to implement). If data types have been selected such that every bit corresponds to exactly one bit in the final implementation, the model is said to be bit-true. Translating non-bit-true into bit-true models should be done with tool support. May consist of single process or of sets of cooperating processes.

Embedded Systems – Language Algorithmic level: Example: -MPEG-4 full motion search - for (z=0; z<20; z++) for (x=0; x<36; x++) {x1=4*x; for (y=0; y<49; y++) {y1=4*y; for (k=0; k<9; k++) {x2=x1+k-4; for (l=0; l<9; ) {y2=y1+l-4; for (i=0; i<4; i++) {x3=x1+i; x4=x2+i; for (j=0; j<4;j++) {y3=y1+j; y4=y2+j; if (x3<0 || 35<x3||y3<0||48<y3) then_block_1; else else_block_1; if (x4<0|| 35<x4||y4<0||48<y4) then_block_2; else else_block_2; }}}}}}

Embedded Systems – Language Instruction level Algorithms have already been compiled for the instruction set of the processor(s) to be used. Simulations at this level allow counting the executed number of instructions. Variations of instruction level: -Simulation only the effect of instructions (not timing) -Transaction-level modeling: each read/write is one transaction, instead of a set of signal assignments -Cycle-true simulations: exact number of cycles -Bit-true simulations: simulations using exactly the correct number of bits Algorithms have already been compiled for the instruction set of the processor(s) to be used. Simulations at this level allow counting the executed number of instructions. Variations of instruction level: -Simulation only the effect of instructions (not timing) -Transaction-level modeling: each read/write is one transaction, instead of a set of signal assignments -Cycle-true simulations: exact number of cycles -Bit-true simulations: simulations using exactly the correct number of bits

Embedded Systems – Language Instruction level: example Assembler (MIPS)Simulated semantics and $1,$2,$3 Reg[1]:=Reg[2]  Reg[3] or $1,$2,$3 Reg[1]:=Reg[2]  Reg[3] andi $1,$2,100 Reg[1]:=Reg[2]  100 sll $1,$2,10Reg[1]:=Reg[2] << 10 srl $1,$2,10Reg[1]:=Reg[2] >> 10 Microprocessor without Interlocked Pipeline Stages

Embedded Systems – Language Register transfer level (RTL) At this level, we model all the components at the register- transfer level, including - arithmetic/logic units (ALUs), - registers, - memories, - muxes and - decoders. Models at this level are always cycle-true. Automatic synthesis from such models is not a major challenge. At this level, we model all the components at the register- transfer level, including - arithmetic/logic units (ALUs), - registers, - memories, - muxes and - decoders. Models at this level are always cycle-true. Automatic synthesis from such models is not a major challenge.

Embedded Systems – Language Register Transfer Level: example MIPS (uP without interlocked pipeline stages) Controller B PC Instruction register IR Memory Speicher alu_ control T sign_ extend <<2 4 * ALU Reg § 31:26 25:21 20:16 25:0 15:0 15:11 i2 a2 a1 i3 a3 a2 a1 o2 o1 PCSource TargetWrite ALUOp ALUSelA ALUSelB RegWriteRegDest MemToReg IRWrite MemRead MemWrite PCWrite PCWriteC IorD * § 31: 28 "00“

Embedded Systems – Language Gate-level models Models contain gates as the basic components. Provide accurate information about signal transition probabilities and can therefore also be used for power estimations. Delay calculations can be more precise than for the RTL. Typically no information about the length of wires (still estimates). Term sometimes also employed to denote Boolean functions (No physical gates; only considering the behavior of the gates). Such models should be called “Boolean function models”. Models contain gates as the basic components. Provide accurate information about signal transition probabilities and can therefore also be used for power estimations. Delay calculations can be more precise than for the RTL. Typically no information about the length of wires (still estimates). Term sometimes also employed to denote Boolean functions (No physical gates; only considering the behavior of the gates). Such models should be called “Boolean function models”.

Embedded Systems – Language Gate-level models: Example source: seul.org/ screenshots/ screenshot- schem2.png

Embedded Systems – Language Switch-level models Switch level models use switches (transistors) as their basic components. Switch level models use digital values models (0,1,Z). In contrast to gate-level models, switch level models are capable of reflecting bidirectional transfer of information. Switch level models use switches (transistors) as their basic components. Switch level models use digital values models (0,1,Z). In contrast to gate-level models, switch level models are capable of reflecting bidirectional transfer of information.

Embedded Systems – Language Switch level model: example Source:

Embedded Systems – Language Circuit level models: Example Models Circuit theory and its components (current and voltage sources, resistors, capacitances, inductances and possibly macro-models of semiconductors) form the basis of simulations at this level. Simulations involve partial differential equations. Linear if and only if the behavior of semiconductors is linearized. Ideal MOSFET Transistor model

Embedded Systems – Language Circuit level models: SPICE The most frequently used simulator at this level is SPICE [Vladimirescu, 1987] and its variants. Example:

Embedded Systems – Language Circuit level models: sample simulation results

Embedded Systems – Language Device level Simulation of a single device (such as a transistor). Example (SPICE- simulation [IMEC]): Simulation of a single device (such as a transistor). Example (SPICE- simulation [IMEC]): Measured and simulated currents

Embedded Systems – Language Layout models reflect the actual circuit layout, include geometric information, cannot be simulated directly: behavior can be deduced by correlating the layout model with a behavioral description at a higher level or by extracting circuits from the layout. Length of wires and capacitances frequently extracted from the layout, back-annotated to descriptions at higher levels (more precision for delay and power estimations). reflect the actual circuit layout, include geometric information, cannot be simulated directly: behavior can be deduced by correlating the layout model with a behavioral description at a higher level or by extracting circuits from the layout. Length of wires and capacitances frequently extracted from the layout, back-annotated to descriptions at higher levels (more precision for delay and power estimations).

Embedded Systems – Language Layout models: Example din powlo powhi dout © Mosis ( mosis.org/Technical/ Designsupport/ polyflowC.html); Tool: Cadence

Embedded Systems – Language Process models Model of fabrication process; Example [IMEC]: Doping as a function of the distance from the surface Simulated Measured

Embedded Systems – Language Language Comparison

Embedded Systems – Language How to cope with language problems in practice? Compromise Mixed approaches: Unified Modeling Language