Timing Model VHDL uses the following simulation cycle to model the stimulus and response nature of digital hardware Start Simulation Update Signals Execute.

Slides:



Advertisements
Similar presentations
Combinational Logic.
Advertisements

2/16/09 Lab 3 Jorge Crichigno. 2/16/09 Half-adder.
Hardware Description Language (HDL)
Lecture 12 Latches Section , Block Diagram of Sequential Circuit gates New output is dependent on the inputs and the preceding values.
9/18/08 Lab 2 - Solution TA: Jorge. 9/18/08 Half-adder.
COE 405 Basic Concepts in VHDL Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum & Minerals Dr. Aiman H. El-Maleh.
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.
VHDL Intro What does VHDL stand for? VHSIC Hardware Description Language VHSIC = Very High Speed Integrated Circuit Developed in 1982 by Govt. to standardize.
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.
Transport and inertial delay Assignment statements
VHDL. What is VHDL? VHDL: VHSIC Hardware Description Language  VHSIC: Very High Speed Integrated Circuit 7/2/ R.H.Khade.
VHDL Asutosh Kar Asst. Prof. in IIIT, Bhubaneswar.
Today’s Lecture Process model –initial & always statements Assignments –Continuous & procedural assignments Timing Control System tasks.
Advanced FPGA Based System Design Lecture-9 & 10 VHDL Sequential Code By: Dr Imtiaz Hussain 1.
1 H ardware D escription L anguages Basic Language Concepts.
 Delay values control the time between the change in a right-hand-side operand and when the new value is assigned to the left- hand side.  Three ways.
IAY 0600 Digitaalsüsteemide disain Event-Driven Simulation Alexander Sudnitson Tallinn University of Technology.
1 H ardware D escription L anguages Modeling Digital Systems.
7/10/2007DSD,USIT,GGSIPU1 Basic concept of Sequential Design.
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.
Module 1.2 Introduction to Verilog
Basic VHDL RASSP Education & Facilitation Module 10 Version 2.02 Copyright  RASSP E&F All rights reserved. This information is copyrighted by.
COE 202 Introduction to Verilog Computer Engineering Department College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals.
Lecture #8 Page 1 Lecture #8 Agenda 1.VHDL : Operators 2.VHDL : Signal Assignments Announcements 1.HW #4 assigned ECE 4110– Digital Logic Design.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
IAY 0600 Digital Systems Design VHDL discussion Verification: Testbenches Alexander Sudnitson Tallinn University of Technology.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
(1) Basic Language Concepts © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
Behavioural modelling Lecture 3. Outline 3.1. Processes. Sequential statements. WAIT statement Simulation mechanism Sequential signal assignment.
15-Dec-15EE5141 Chapter 4 Sequential Statements ä Variable assignment statement ä Signal assignment statement ä If statement ä Case statement ä Loop statement.
1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU1 Timing & Concurrency III Delay Model foundations for simulation and.
© 조준동 2008 ECE C03 Lecture 121 Lecture 12 Introduction to VHDL Hai Zhou ECE 303 Advanced Digital Design Spring 2002.
Apr. 3, 2000Systems Architecture I1 Introduction to VHDL (CS 570) Jeremy R. Johnson Wed. Nov. 8, 2000.
Relational Operators Result is boolean: greater than (>) less than (=) less than or equal to (
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.
55:032 - Intro. to Digital DesignPage 1 VHDL and Processes Defining Sequential Circuit Behavior.
Lecture #8 Page 1 Lecture #8 Agenda 1.VHDL : Operators 2.VHDL : Signal Assignments Announcements 1.HW #4 assigned ECE 4110– Sequential Logic Design.
VHDL Tutorial.
IAY 0600 Digital Systems Design VHDL discussion Verification: Testbenches Alexander Sudnitson Tallinn University of Technology.
Dataflow modelling Lecture 4. Dataflow modelling Specifies the functioning of a circuit without explicitly refer to its structure Functioning is described.
Joal 2006 HT:1 Em3 Digital Electronics Design 1 Lecture 3-4 Sequential VHDLChap 4.
Lecture #12 Page 1 ECE 4110– Digital Logic Design Lecture #12 Agenda 1.VHDL : Behavioral Design (Processes) Announcements 1.n/a.
ECE 4110–5110 Digital System Design
Basic Language Concepts
IAY 0600 Digitaalsüsteemide disain
HDL simulation and Synthesis (Marks16)
Behavioral Style Combinational Design with VHDL
Timing Model Start Simulation Delay Update Signals Execute Processes
Behavioral Style Combinational Design with VHDL
IAY 0600 Digital Systems Design
CPE/EE 422/522 Advanced Logic Design L06
ECE 434 Advanced Digital System L08
ECE 434 Advanced Digital System L9
IAS 0600 Digital Systems Design
Copyright Joanne DeGroat, ECE, OSU
IAS 0600 Digital Systems Design
VHDL Programming (08 Marks)
How do you achieve deterministic concurrent simulation.
Timing & Concurrency II
RASSP Education & Facilitation
Copyright Joanne DeGroat, ECE, OSU
Timing & Concurrency II
Behavioural modelling
Timing & Concurrency II
COE 202 Introduction to Verilog
Presentation transcript:

Timing Model VHDL uses the following simulation cycle to model the stimulus and response nature of digital hardware Start Simulation Update Signals Execute Processes End Simulation Delay

Delay Types Input delay Output All VHDL signal assignment statements prescribe an amount of time that must transpire before the signal assumes its new value This prescribed delay can be in one of three forms:  Transport -- prescribes propagation delay only  Inertial -- prescribes propagation delay and minimum input pulse width  Delta -- the default if no delay time is explicitly specified

Delta Delay A delta delay is a very small delay (infinitesimally). It does not correspond to any real delay, and actual simulation time does not advance. Delta delay allows for ordering of events that occur at the same simulation time during a simulation. Each unit of simulation time can be considered to be composed of an infinite number of simulation time plus an integral multiple of delta delays.

Default signal assignment propagation delay if no delay is explicitly prescribed  VHDL signal assignments do not take place immediately  Delta is an infinitesimal VHDL time unit so that all signal assignments can result in signals assuming their values at a future time  E.g. Supports a model of concurrent VHDL process execution  Order in which processes are executed by simulator does not affect simulation output Delta Delay Output <= NOT Input; -- Output assumes new value in one delta cycle Output <= NOT Input; -- Output assumes new value in one delta cycle

Delta Delay An Example without Delta Delay What is the behavior of C? 1 IN: 1->0 A B C NAND gate evaluated first: IN: 1->0 A: 0->1 B: 1->0 C: 0->0 NAND gate evaluated first: IN: 1->0 A: 0->1 B: 1->0 C: 0->0 AND gate evaluated first: IN: 1->0 A: 0->1 C: 0->1 B: 1->0 C: 1->0 AND gate evaluated first: IN: 1->0 A: 0->1 C: 0->1 B: 1->0 C: 1->0

Delta Delay An Example with Delta Delay What is the behavior of C? IN: 1->0 1 A B C Using delta delay scheduling Time Delta Event 0 ns 1 IN: 1->0 eval INVERTER 2 A: 0->1 eval NAND, AND 3 B: 1->0 C: 0->1 eval AND 4 C: 1->0 1 ns

Transport Delay Transport delay must be explicitly specified  I.e. keyword “TRANSPORT” must be used Signal will assume its new value after specified delay -- TRANSPORT delay example Output <= TRANSPORT NOT Input AFTER 10 ns; -- TRANSPORT delay example Output <= TRANSPORT NOT Input AFTER 10 ns; InputOutput Input Output

Inertial delay model An input value must be stable for a specified pulse rejection limit duration before the value is allowed to propagate to the output. Example: Z <= reject 4ns inertial A after 10 ns; Default delay model.

Inertial Delay Provides for specification propagation delay and input pulse width, i.e. ‘inertia’ of output: Inertial delay is default and REJECT is optional : Output <= NOT Input AFTER 10 ns; -- Propagation delay and minimum pulse width are 10ns Output <= NOT Input AFTER 10 ns; -- Propagation delay and minimum pulse width are 10ns Input Output InputOutput target <= [REJECT time_expression] INERTIAL waveform;

Inertial Delay (cont.)‏ Example of gate with ‘inertia’ smaller than propagation delay  e.g. Inverter with propagation delay of 10ns which suppresses pulses shorter than 5ns Note: the REJECT feature is new to VHDL Output <= REJECT 5ns INERTIAL NOT Input AFTER 10ns; Input Output

Signal Waveforms It is possible to assign multiple values to a signal, each with a different delay value. For example: Phase1 <= ‘0’, ‘1’ after 8ns, ‘0’ after 13 ns, ‘1’ after 50 ns; A more general syntax: Signal object <= [transport | [ reject pulse_rejection_limit] inertial ] waveform-element, waveform-element;

Wait Statement Wait Statement: provides a way to suspend the execution of a process –process always suspends after execution the last statement. –There are three basic forms of the wait statement. –wait on sensitivity list; –wait until boolean-expression; –wait for time-expression; –they may also combined in a single wait statement: –wait on sensitivity-list until boolean-expression for time-expression;

Wait Statement (cont.)‏ Examples:- 1. wait on A, B, C; 2. wait until A= B; 3. wait for10 ns; 4. wait on clock for20 ns; 5. wait until SUM >100 for50 ms; – the process suspends for a maximum of 50 ms until the value of signal SUM is greater than 100. – If the Boolean condition is not satisfied for 50 ms, the process resumes from the statement following the wait statement

6. wait on clock until SUM> 100; –continue to wait if SUM <= 100 the process suspends for a maximum of 50 ms until the value of signal SUM is greater than 100. –If the Boolean condition is not satisfied for 50 ms, the process resumes from the statement following the wait statement

Wait Statement (cont.)‏ – It is possible for a process not to have an explicit sensitivity list – The process may have one or more wait statements  the process must have at least one wait statement;  otherwise, it will never get suspended (infinite loop)‏

Wait Statement (Example)‏ process--no sensitivity list variable temp1, temp2:BIT; begin temp1 := A and B; temp2 := C and D; temp1 := temp1 or temp2; Z <= not temp1 wait on A, B, C, D; --replaces the sensitivity list end process;

Wait example WAIT0 : process begin wait on DATA; sig_A <= DATA; wait for 0 ns; sig_B <= Sig_A; end process;

Null Statement Null Statement: is a sequential statement that does not cause any action to take place. - Execution will continues with the next statement – can be used in an if or in case statement The format: null;