Ch.2 Part E: VHDL, SystemC EECE **** Embedded System Design.

Slides:



Advertisements
Similar presentations
Technische universität dortmund fakultät für informatik informatik 12 Discrete Event Models Peter Marwedel TU Dortmund, Informatik 12 Germany
Advertisements

Digital Design with VHDL Presented by: Amir Masoud Gharehbaghi
Lecture #4 Page 1 ECE 4110–5110 Digital System Design Lecture #4 Agenda 1.VHDL History 2.Design Abstraction Announcements 1.n/a.
Mridula Allani Fall 2010 (Refer to the comments if required) ELEC Fall 2010, Nov 21(Adopted from Profs. Nelson and Stroud)
02/02/20091 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
Sistemas Digitais I LESI - 2º ano Lesson 5 - VHDL U NIVERSIDADE DO M INHO E SCOLA DE E NGENHARIA Prof. João Miguel Fernandes Dept.
Why Behavioral Wait statement Signal Timing Examples of Behavioral Descriptions –ROM.
Topics of Lecture Structural Model Procedures Functions Overloading.
1/31/20081 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
HDL-Based Digital Design Part I: Introduction to VHDL (I) Dr. Yingtao Jiang Department Electrical and Computer Engineering University of Nevada Las Vegas.
Silicon Programming--Intro. to HDLs1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities.
VHDL. What is VHDL? VHDL: VHSIC Hardware Description Language  VHSIC: Very High Speed Integrated Circuit 7/2/ R.H.Khade.
O VERVIEW OF DIGITAL SYSTEMS Hardware Description Language 1.
1 H ardware D escription L anguages Basic Language Concepts.
Ch.2 Part A: Requirements, State Charts EECE **** Embedded System Design.
CSET 4650 Field Programmable Logic Devices
IAY 0600 Digital Systems Design
IAY 0600 Digitaalsüsteemide disain Event-Driven Simulation Alexander Sudnitson Tallinn University of Technology.
- 1 -  P. Marwedel, Univ. Dortmund, Informatik 12, 2005/6 Universität Dortmund Asynchronous message passing: Kahn process networks Special case: Kahn.
A VHDL Tutorial ENG2410. ENG241/VHDL Tutorial2 Goals Introduce the students to the following: –VHDL as Hardware description language. –How to describe.
VHDL IE- CSE. What do you understand by VHDL??  VHDL stands for VHSIC (Very High Speed Integrated Circuits) Hardware Description Language.
Languages for HW and SW Development Ondrej Cevan.
CWRU EECS 317 EECS 317 Computer Design LECTURE 1: The VHDL Adder Instructor: Francis G. Wolff Case Western Reserve University.
Basic Overview of VHDL Matthew Murach Slides Available at:
2-Jun-16EE5141 Chapter 3 ä The concept of the signal ä Process concurrency ä Delta time ä Concurrent and sequential statements ä Process activation by.
Basic Concepts in VHDL Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
Introduction to VHDL Spring EENG 2920 Digital Systems Design Introduction VHDL – VHSIC (Very high speed integrated circuit) Hardware Description.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Reconfigurable Computing - VHDL John Morris Computer Science/ Electrical and Computer Engineering The University of Auckland Iolanthe racing off Fremantle,
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
Timing Model VHDL uses the following simulation cycle to model the stimulus and response nature of digital hardware Start Simulation Update Signals Execute.
M. Balakrishnan Dept of Computer Science & Engg. I.I.T. Delhi
1 Hardware Description Languages: a Comparison of AHPL and VHDL By Tamas Kasza AHPL&VHDL Digital System Design 1 (ECE 5571) Spring 2003 A presentation.
(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,
Hardware Description Languages Digital Logic Design Instructor: Kasım Sinan YILDIRIM.
Hardware languages "Programming"-language for modelling of (digital) hardware 1 Two main languages: VHDL (Very High Speed Integrated Circuit Hardware Description.
Chapter 5 Introduction to VHDL. 2 Hardware Description Language A computer language used to design circuits with text-based descriptions of the circuits.
Digital System Projects
VHDL Discussion Subprograms IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology 1.
Apr. 3, 2000Systems Architecture I1 Introduction to VHDL (CS 570) Jeremy R. Johnson Wed. Nov. 8, 2000.
IAY 0600 Digital Systems Design Event-Driven Simulation VHDL Discussion Alexander Sudnitson Tallinn University of Technology.
May 9, 2001Systems Architecture I1 Systems Architecture I (CS ) Lab 5: Introduction to VHDL Jeremy R. Johnson May 9, 2001.
COE 202 Introduction to Verilog Computer Engineering Department College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals.
Hardware Description Languages ECE 3450 M. A. Jupina, VU, 2014.
IAY 0600 Digital Systems Design VHDL discussion Structural style Modular design and hierarchy Part 1 Alexander Sudnitson Tallinn University of Technology.
A Case Study of the Rehosting from VHDL to Matlab/C
Structural style Modular design and hierarchy Part 1
Basic Language Concepts
Systems Architecture Lab: Introduction to VHDL
Subject Name: FUNDAMENTALS OF HDL Subject Code: 10EC45
IAY 0600 Digitaalsüsteemide disain
HDL simulation and Synthesis (Marks16)
Behavioral Style Combinational Design with VHDL
IAY 0600 Digital Systems Design
Timing Model Start Simulation Delay Update Signals Execute Processes
Structural style Modular design and hierarchy Part 1
Behavioral Style Combinational Design with VHDL
IAY 0600 Digital Systems Design
ECE 434 Advanced Digital System L08
Introduction to Verilog
IAS 0600 Digital Systems Design
Structural style Modular design and hierarchy Part 1
VHDL Discussion Subprograms
CPE 528: Lecture #3 Department of Electrical and Computer Engineering University of Alabama in Huntsville.
VHDL Discussion Subprograms
IAS 0600 Digital Systems Design
How do you achieve deterministic concurrent simulation.
COE 202 Introduction to Verilog
Presentation transcript:

Ch.2 Part E: VHDL, SystemC EECE **** Embedded System Design

Universität Dortmund 2 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science VHDL HDL = hardware description language Textual HDLs replaced graphical HDLs in the 1980‘ies (better description of complex behavior). In this course: VHDL = VHSIC hardware description language VHSIC = very high speed integrated circuit 1980: Definition started by DoD in : first version of the language defined, based on ADA (which in turn is based on PASCAL) 1987: revised version became IEEE standard : revised IEEE standard more recently: VHDL-AMS: includes analog modeling HDL = hardware description language Textual HDLs replaced graphical HDLs in the 1980‘ies (better description of complex behavior). In this course: VHDL = VHSIC hardware description language VHSIC = very high speed integrated circuit 1980: Definition started by DoD in : first version of the language defined, based on ADA (which in turn is based on PASCAL) 1987: revised version became IEEE standard : revised IEEE standard more recently: VHDL-AMS: includes analog modeling

Universität Dortmund 3 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science Entities and architectures Each design unit is called an entity. Entities are comprised of entity declarations and one or several architectures. Each design unit is called an entity. Entities are comprised of entity declarations and one or several architectures. Each architecture includes a model of the entity. By default, the most recently analyzed architecture is used. The use of another architecture can be requested in a configuration.

Universität Dortmund 4 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science The full adder as an example - Entity declaration - Entity declaration: entity full_adder is port(a, b, carry_in: in Bit; -- input ports sum,carry_out: out Bit); --output ports end full_adder; Entity declaration: entity full_adder is port(a, b, carry_in: in Bit; -- input ports sum,carry_out: out Bit); --output ports end full_adder;

Universität Dortmund 5 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science The full adder as an example - Architectures - Architecture = Architecture header + architectural bodies architecture behavior of full_adder is begin sum <= (a xor b) xor carry_in after 10 Ns; carry_out <= (a and b) or (a and carry_in) or (b and carry_in) after 10 Ns; end behavior; architecture behavior of full_adder is begin sum <= (a xor b) xor carry_in after 10 Ns; carry_out <= (a and b) or (a and carry_in) or (b and carry_in) after 10 Ns; end behavior; Architectural bodies can be - behavioral bodies or - structural bodies. Bodies not referring to hardware components are called behavioral bodies. Architectural bodies can be - behavioral bodies or - structural bodies. Bodies not referring to hardware components are called behavioral bodies.

Universität Dortmund 6 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science The full adder as an example - Simulation results - Behavioral description different from the one shown (includes 5ns delays).

Universität Dortmund 7 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science Multi-valued logic and standard IEEE 1164 How many logic values for modeling? Two ('0' and '1') or more? If real circuits have to be described, some abstraction of the resistance (inversely-related to the strength) is required.  We introduce the distinction between: the logic level (as an abstraction of the voltage) and the strength (as an abstraction of the current drive capability) of a signal. The two are encoded in logic values.  CSA (connector, switch, attenuator) - theory [Hayes] How many logic values for modeling? Two ('0' and '1') or more? If real circuits have to be described, some abstraction of the resistance (inversely-related to the strength) is required.  We introduce the distinction between: the logic level (as an abstraction of the voltage) and the strength (as an abstraction of the current drive capability) of a signal. The two are encoded in logic values.  CSA (connector, switch, attenuator) - theory [Hayes]

Universität Dortmund 8 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science IEEE 1164 VHDL allows user-defined value sets.  Each model could use different value sets (unpractical)  Definition of standard value set according to standard IEEE 1164: {'0', '1', 'Z', 'X', 'H', 'L', 'W', 'U', '-'} First seven values as discussed previously.  : Everything said about 7-valued logic applies.  : Combination of pre-charging and depletion transistors cannot be described in IEEE 'U': un-initialized signal; used by simulator to initialize all not explicitly initialized signals. VHDL allows user-defined value sets.  Each model could use different value sets (unpractical)  Definition of standard value set according to standard IEEE 1164: {'0', '1', 'Z', 'X', 'H', 'L', 'W', 'U', '-'} First seven values as discussed previously.  : Everything said about 7-valued logic applies.  : Combination of pre-charging and depletion transistors cannot be described in IEEE 'U': un-initialized signal; used by simulator to initialize all not explicitly initialized signals.

Universität Dortmund 9 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science Input don‘t care '-' denotes input don't care. Suppose: f undefined for a=b=c='0'; Then, we could like specifying this in VHDL as f <= select a & b & c '1' when "10-" -- first term '1' when "-11" -- second term 'X' when "000" Simulator would check if a & b & c = "10-", i.e. if c='-'. Since c is never assigned a value of '-', this test would always fail. Simulator does not know that '-' means either '1' or '0', since it does not include any special handling for '-'. '-' denotes input don't care. Suppose: f undefined for a=b=c='0'; Then, we could like specifying this in VHDL as f <= select a & b & c '1' when "10-" -- first term '1' when "-11" -- second term 'X' when "000" Simulator would check if a & b & c = "10-", i.e. if c='-'. Since c is never assigned a value of '-', this test would always fail. Simulator does not know that '-' means either '1' or '0', since it does not include any special handling for '-'.

Universität Dortmund 10 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science VHDL processes Processes model parallelism in hardware. General syntax: label: --optional process declarations --optional begin statements --optional end process a <= b after 10 ns is equivalent to process begin a <= b after 10 ns end Processes model parallelism in hardware. General syntax: label: --optional process declarations --optional begin statements --optional end process a <= b after 10 ns is equivalent to process begin a <= b after 10 ns end

Universität Dortmund 11 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science Wait-statements Four possible kinds of wait-statements: wait on signal list; wait until signal changes; Example: wait on a; wait until condition; wait until condition is met; Example: wait until c='1'; wait for duration; wait for specified amount of time; Example: wait for 10 ns; wait; suspend indefinitely Four possible kinds of wait-statements: wait on signal list; wait until signal changes; Example: wait on a; wait until condition; wait until condition is met; Example: wait until c='1'; wait for duration; wait for specified amount of time; Example: wait for 10 ns; wait; suspend indefinitely

Universität Dortmund 12 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science Sensivity lists Sensivity lists are a shorthand for a single wait on-statement at the end of the process body: process (x, y) begin prod <= x and y ; end process; is equivalent to process begin prod <= x and y ; wait on x,y; end process; Sensivity lists are a shorthand for a single wait on-statement at the end of the process body: process (x, y) begin prod <= x and y ; end process; is equivalent to process begin prod <= x and y ; wait on x,y; end process;

Universität Dortmund 13 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science VHDL semantics: global control According to the original standards document: The execution of a model consists of an initialization phase followed by the repetitive execution of process statements in the description of that model. Initialization phase executes each process once. According to the original standards document: The execution of a model consists of an initialization phase followed by the repetitive execution of process statements in the description of that model. Initialization phase executes each process once.

Universität Dortmund 14 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science VHDL semantics: initialization At the beginning of initialization, the current time, T c is 0 ns. –The driving value and the effective value of each explicitly declared signal are computed, and the current value of the signal is set to the effective value. … –Each... process … is executed until it suspends. –The time of the next simulation cycle (… in this case … the 1st cycle), T n is calculated according to the rules of step f of the simulation cycle, below. At the beginning of initialization, the current time, T c is 0 ns. –The driving value and the effective value of each explicitly declared signal are computed, and the current value of the signal is set to the effective value. … –Each... process … is executed until it suspends. –The time of the next simulation cycle (… in this case … the 1st cycle), T n is calculated according to the rules of step f of the simulation cycle, below.

Universität Dortmund 15 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science VHDL semantics: The simulation cycle (1) Each simulation cycle starts with setting T c to T n. T n was either computed during the initialization or during the last execution of the simulation cycle. Simulation terminates when the current time reaches its maximum, TIME'HIGH. According to the standard, the simulation cycle is as follows: a)The current time, T c is set to T n. Stop if T n = TIME'HIGH and not  active drivers or process resumptions at T n. ?

Universität Dortmund 16 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science VHDL semantics: The simulation cycle (2) b)Each active explicit signal in the model is updated. (Events may occur as a result.) Previously computed entries in the queue are now assigned if their time corresponds to the current time T c. New values of signals are not assigned before the next simulation cycle, at the earliest. Signal value changes result in events  enable the execution of processes that are sensitive to that signal. c).. b)Each active explicit signal in the model is updated. (Events may occur as a result.) Previously computed entries in the queue are now assigned if their time corresponds to the current time T c. New values of signals are not assigned before the next simulation cycle, at the earliest. Signal value changes result in events  enable the execution of processes that are sensitive to that signal. c)..

Universität Dortmund 17 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science VHDL semantics: The simulation cycle (3) d e e d)  P sensitive to s: if event on s in current cycle: P resumes. e)Each... process that has resumed in the current simulation cycle is executed until it suspends*. *Generates future values for signal drivers. d)  P sensitive to s: if event on s in current cycle: P resumes. e)Each... process that has resumed in the current simulation cycle is executed until it suspends*. *Generates future values for signal drivers.

Universität Dortmund 18 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science VHDL semantics: The simulation cycle (4) f)Time T n of the next simulation cycle = earliest of 1.TIME'HIGH (end of simulation time). 2.The next time at which a driver becomes active 3.The next time at which a process resumes (determined by WAIT ON statements). Next simulation cycle (if any) will be a delta cycle if T n = T c. f)Time T n of the next simulation cycle = earliest of 1.TIME'HIGH (end of simulation time). 2.The next time at which a driver becomes active 3.The next time at which a process resumes (determined by WAIT ON statements). Next simulation cycle (if any) will be a delta cycle if T n = T c. f

Universität Dortmund 19 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science VHDL: Evaluation Behavioral hierarchy (procedures and functions), Structural hierarchy: through structural architectures, but no nested processes, No specification of non-functional properties, No object-orientation, Static number of processes, Complicated simulation semantics, Too low level for initial specification, Good as an intermediate “Esperanto“ or ”assembly” language for hardware generation. Behavioral hierarchy (procedures and functions), Structural hierarchy: through structural architectures, but no nested processes, No specification of non-functional properties, No object-orientation, Static number of processes, Complicated simulation semantics, Too low level for initial specification, Good as an intermediate “Esperanto“ or ”assembly” language for hardware generation.

Universität Dortmund 20 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science 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 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 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.

Universität Dortmund 21 Department of Electrical and Computer Engineering College of Engineering, Technology and Computer Science 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 etc*. Support of bit-datatypes: bitvectors of different lengths; multiple- valued logic (2- and 4-valued logic; resolution*) Communication: plug-and-play channel model, allowing easy replacement of intellectual property 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 etc*. Support of bit-datatypes: bitvectors of different lengths; multiple- valued logic (2- and 4-valued logic; resolution*) Communication: plug-and-play channel model, allowing easy replacement of intellectual property Deterministic behavior not guaranteed.