1/8/2007 - L16 Timing & Concurrency III Copyright 2006 - Joanne DeGroat, ECE, OSU1 Timing & Concurrency III Delay Model foundations for simulation and.

Slides:



Advertisements
Similar presentations
CS370 – Spring 2003 Hazards/Glitches. Time Response in Combinational Networks Gate Delays and Timing Waveforms Hazards/Glitches and How To Avoid Them.
Advertisements

ECE C03 Lecture 71 Lecture 7 Delays and Timing in Multilevel Logic Synthesis Hai Zhou ECE 303 Advanced Digital Design Spring 2002.
Computer Science 210 Computer Organization Clocks and Memory Elements.
Chapter 6 –Selected Design Topics Part 2 – Propagation Delay and Timing Logic and Computer Design Fundamentals.
1 Lecture 28 Timing Analysis. 2 Overview °Circuits do not respond instantaneously to input changes °Predictable delay in transferring inputs to outputs.
L18 – VHDL for other counters and controllers. Other counters  More examples Gray Code counter Controlled counters  Up down counter  Ref: text Unit.
1/8/ L17 Resolved SiganlsCopyright Joanne DeGroat, ECE, OSU1 Resolved Signals What are resolved signals and how do they work. Resolution???
ECEN 248: INTRODUCTION TO DIGITAL SYSTEMS DESIGN Dr. Shi Dept. of Electrical and Computer Engineering.
ENGIN112 L28: Timing Analysis November 7, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 28 Timing Analysis.
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.
Why Behavioral Wait statement Signal Timing Examples of Behavioral Descriptions –ROM.
HDL-Based Digital Design Part I: Introduction to VHDL (I) Dr. Yingtao Jiang Department Electrical and Computer Engineering University of Nevada Las Vegas.
ECE C03 Lecture 61 Lecture 6 Delays and Timing in Multilevel Logic Synthesis Prith Banerjee ECE C03 Advanced Digital Design Spring 1998.
Logic Simulation 2 Outline –Timing Models –Simulation Algorithms Goal –Understand timing models –Understand simulation algorithms Reading –Gate-Level Simulation.
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.
Package with 4-valued logic Signal Attributes Assertion Data Flow description.
CS 151 Digital Systems Design Lecture 28 Timing Analysis.
Digital System Design EEE344 Lecture 3 Introduction to Verilog HDL Prepared by: Engr. Qazi Zia, Assistant Professor EED, COMSATS Attock1.
9/15/09 - L25 Registers & Load Enable Copyright Joanne DeGroat, ECE, OSU1 Registers & Load Enable.
Practical Aspects of Logic Gates COE 202 Digital Logic Design Dr. Aiman El-Maleh College of Computer Sciences and Engineering King Fahd University of Petroleum.
1 H ardware D escription L anguages Basic Language Concepts.
09/16/2010© 2010 NTUST Today Course overview and information.
 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.
Crosstalk Calculation and SLEM. 2 Crosstalk Calculation Topics  Crosstalk and Impedance  Superposition  Examples  SLEM.
ECE122 – Digital Electronics & Design
1/8/ L23 Project Step 9 - Sequential Machine Copyright Joanne DeGroat, ECE, OSU1 Project Step 9 Beyond the ALU and Datapath. Sequential Machine.
Module 2 : Behavioral modeling TOPIC : Modeling a Digital pulse UNIT 1: Modeling and Simulation.
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.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHDL – Basic Language Elements  Identifiers: –basic identifier: composed of a sequence of one or more.
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.
Timing Model VHDL uses the following simulation cycle to model the stimulus and response nature of digital hardware Start Simulation Update Signals Execute.
(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.
CEC 220 Digital Circuit Design Latches and Flip-Flops Monday, March 03 CEC 220 Digital Circuit Design Slide 1 of 19.
9/15/09 - L19 Sequential CircuitsCopyright Joanne DeGroat, ECE, OSU1 Sequential Cirucits.
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.
1/8/ L11 Project Step 5Copyright Joanne DeGroat, ECE, OSU1 Project Step 7 Behavioral modeling of a dual ported register set.
Midterm Exam ReviewCopyright Joanne DeGroat, ECE, OSU1 Midterm Exam Notes.
Timing Behavior of Gates
The George Washington University School of Engineering and Applied Science Department of Electrical and Computer Engineering ECE122 – 30 Lab 2: NAND gate.
Dataflow modelling Lecture 4. Dataflow modelling Specifies the functioning of a circuit without explicitly refer to its structure Functioning is described.
Chapter 9 CAPACITOR.
Computer Science 210 Computer Organization
Basic Language Concepts
IAY 0600 Digitaalsüsteemide disain
HDL simulation and Synthesis (Marks16)
Timing Model Start Simulation Delay Update Signals Execute Processes
IAY 0600 Digital Systems Design
Computer Science 210 Computer Organization
Behavioral modeling of a dual ported register set.
Copyright Joanne DeGroat, ECE, OSU
Computer Science 210 Computer Organization
CPE/EE 422/522 Advanced Logic Design L06
ECE 434 Advanced Digital System L08
Copyright Joanne DeGroat, ECE, OSU
Copyright Joanne DeGroat, ECE, OSU
How do you achieve deterministic concurrent simulation.
Timing & Concurrency II
Copyright Joanne DeGroat, ECE, OSU
Behavioral modeling of a dual ported register set.
Copyright Joanne DeGroat, ECE, OSU
Timing & Concurrency II
Behavioural modelling
Timing & Concurrency II
The transaction problem.
Presentation transcript:

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU1 Timing & Concurrency III Delay Model foundations for simulation and VHDL simulation paridigm.

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU2 Overview – Timing & Concurrency  Simulation Techniques  The VHDL Simulation Cycle  Waveform updating

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU3 Delay Models  Rise/Fall Delay Model – allows the specification of different delays for when the output signal rises (0 to 1) and falls (1 to 0) due to electrical properties, and thus enables the designer to more accurately analyze the timing performance of a curcuit.

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU4 Delay Models  Ambiguity Delay Model – takes into account the minimum and maximum values for the rise and fall delays. This model deals with a range rather than a specific value for the delays. The range, know as the ambiguity region, specifies the limits within which the signal changes. This region will tend to accumulate or “stretch” as it propagates through the circuit. Good for worst case analysis.

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU5 Delays Models  Inertial Delay Model – In order to switch state, logic gates require that the input pulse cross a certain threshold and remain unchanged for a certain period of time (hold time). If the pulse is small, the gate will not change state. The minimum pulse width for an input pulse to cause a change in state for a gate or other device is called the inertial delay of the gate or device.

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU6 Inertial delay  Consider the following gate. The inertial delay of the gate is 2 time units.  WHAT IF THE PULSE IS 1 TIME UNIT?

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU7 Inertial delay  Consider the following gate. The inertial delay of the gate is 2 time units.  WHAT IF THE PULSE IS 1 TIME UNIT?  Output does not change  High Frequency signal rejection a property that digital gates have Input signal on A Response on Output C - NADA

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU8 Inertial delay  Consider the following gate. The inertial delay of the gate is 2 time units.  WHAT IF THE PULSE IS 2 TIME UNITs?

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU9 Inertial delay  Consider the following gate. The inertial delay of the gate is 2 time units.  WHAT IF THE PULSE IS 2 TIME UNITs?  Gate responds with a 2 TIME UNIT delay from the input.

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU10 Inertial delay  Consider the following gate. The inertial delay of the gate is 2 time units.  WHAT IF THE PULSE IS 3 TIME UNITs?  Gate responds with a delay of 2 TIME UNITs.

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU11 Inertial delay  Consider the following gate. The inertial delay of the gate is 2 time units.  WHAT IF THE PULSE IS 2 or greater (3) TIME UNITs?  Gate responds with a 2 TIME UNIT delay from the input.

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU12 A final word on Inertial Delay  Inertial Delay allows for high-frequency signal rejection – filtering out short spikes or pulses at the input that have a width shorter than the inertial delay of the gate.  And we can see this in circuit simulation of real gates.

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU13 Spice simulation  Spice circuit simulator  NAND GATE  200 pF load  B input held at 1  Input pulse width of 10 ns.  Input has a 1 ns rise and fall time  Note output shape

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU14  Input pulse shortened to 5 ns  Note that output never quite falls fully to 0. Spice Simulation 2

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU15 Spice Simulation 3  Now shorten the input to a 2 ns pulse with a 1 ns rise time and a 1 ns fall time  Note that output would barely (if even) reach the treshold need to trigger the next gate.

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU16 Spice Simulation 4  Now shorten the pulse to 1 ns  Change on output is not sufficient to even come close to causing a change on the subsequent gate as you only drop to ~3.5V on the output of this gate.

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU17 Delay Models  Transport Delay Model – The transport delay for an element can be modeled as shown and is a delay simply added to the output of the element. If all delays were set to 1 this is a unit delay simulator. If the delay for all elements are set to 0, it is a zero delay simulator. It will not show an accurate measure of the circuits timing performance. Glitches will get through that would not appear in a real circuit.

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU18 Inertial and transport delay in VHDL  VHDL 1987 Inertial Delay Example: X <= A and B AFTER 5 NS; Here 5 NS is both the gate delay and the inertial delay of the gate. Transport Delay Example: X<=transport A and B AFTER 5 NS; Here 5 NS if the transport gate delay and there is no high-frequency pulse rejection.

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU19 Inertial and transport delay in VHDL  VHDL 1993 and on (including VHDL 2009) signal_assignment_statement: [label:]target<=[delay_mechanism] waveform; delay_mechanism::= transport | [reject time_expression] inertial target::= name | aggregate waveform::= waveform_element {,waveform_element}

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU20 Inertial and transport delay in VHDL  VHDL 1993 and on example The following 3 are equivalent to each other X <= A and B after 4 ns; --inertial(same as 87) X <= inertial A and B after 4 ns; X <= reject 4 ns inertial A and B after 4 ns; Assignments with pulse rejection limit < device delay X <= reject 5 ns inertial A and B after 10 ns; X <= reject 3 ns inertial A and B after 10 ns, A nand B after 20ns; Note: Reject time must be < or = smallet delay in after clause. Transport Delay is the same at in the ’87 standard. This does affect posting of transactions algorithm slightly but is not in the algorithm presented

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU21 The VHDL Simulation Cycle  Initialization Phase 1. The effective value of each declared signal is computed, and the current value of the signal is set to this effective value. The value is assumed to have been the value of the signal for an infinite length of time prior to the start of simulation. 2. The value of each implicit signal of the form S’Stable(T) or S’Quiet(T) is set to TRUE. 3. The value of each implicit GUARD is set to the result of evaluating the corresponding guard expression. Each process in the model is executed until it suspends. At the beginning of simulation the current time is assumed to be 0 ns.

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU22 The VHDL Simulation Cycle  Simulation Phase (repeats till quiescent) A simulation cycle consists of the following steps: 1. If no driver is active, then simulation time advances to the next time at which a driver becomes active or a process resumes. Simulation is complete when time advances to TIME’HIGH. 2. Each active explicit signal in the model is updated. (Events may occur as a result.) 3. Each implicit signal in the model is updated. (Events may occur on signals as a result.) 4. For each process P, if P is currently sensitive to a signal S, and an event has occurred on S in this simulation cycle, then P resumes. 5. Each process that has just resumed is executed until it suspends.   Advance Time  Update Signal Values  Mark Sensitive Processes  Run Resumed Processes 

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU23 Updating the Projected Output Waveform  When a signal assignment statement is executed a transaction is generated  Transactions consist of a value time pair  Updating a projected output waveform consists of the deletion of zero or more previously computed transactions (called old transactions) from the projected output waveform, and the addition of new transactions, as follows:

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU24 Updating the Projected Output Waveform I 1. All old transactions that are projected to occur at or after the time at which the earliest new transaction is projected to occur are deleted from the projected output waveform. 2. The new transactions are then appended to the projected output waveform in the order of their projected occurrence.  If the reserved word transport does not appear in the corresponding signal assignment statement then the delay is considered to be inertial delay, and the projected waveform is further modified as follows:

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU25 Updating the Projected Output Waveform II  For inertial delay: 1. All of the new transactions are marked. 2. An old transaction is marked if it immediately precedes a marked transactions and its value component is the same as that of the marked transaction. 3. The transaction that determines the current value of the driver is marked. 4. All unmarked transactions (all of which are old transactions) are deleted from the projected output waveform. 93 addition of the reject limit slightly modifies this in that the reject time is used here.

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU26 Example – 1 st part (87 on)  Current state  Delete at or after

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU27 Example (cont)  After appending  And Marking

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU28 Example  And now delete the unmarked

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU29 Updating the Projected Output Waveform II – 93 mod  For inertial delay: 1. All of the new transactions are marked. 2. An old transaction is marked if it immediately precedes a marked transactions and its value component is the same as that of the marked transaction or it precedes a marked transaction by more than the reject time such that the reject time for the preceding transaction has elapsed. 3. The transaction that determines the current value of the driver is marked. 4. All unmarked transactions (all of which are old transactions) are deleted from the projected output waveform.

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU30 Example of no reject time  Have the concurrent statement x <= A after 5 ns;  At 10 ns A has an event. The transaction just gets appended to the CV  At 13 ns a new transaction is generated, is appended, and then the algorithm run  The inertial algorithm causes deletion of the transaction at 15.

1/8/ L16 Timing & Concurrency III Copyright Joanne DeGroat, ECE, OSU31 Example (93 and on with reject) x <= reject 3 ns inertial A after 5 ns;  Transactions has reject term to show reject time  At 10 it is just appended like before  At 13 ns the transaction is appended and then marked as it is a new transaction. The existing transaction is also Marked as the reject time has elapsed.