VHDL Tutorial

Delta Delays
Fundamental concepts
Modelling concepts
Elements of behaviour
Elements of structure
Analysis elaboration
Lexical elements
Characters and strings 
Syntax descriptions
Constants and variables
Scalar type
Integer types
Floating point types
Time type
Enumeration types
Character types
Boolean type 
Bits type
Standard logic
Sequential statements
Case statements
Loop and exit statements
Assertion statements
Array types & array operations
Architecture bodies
Entity declarations
Behavioral descriptions 
Wait statements
Delta delays

Process statements
Conditional signal assignment 
Selected signal assigment
Structural descriptions
Library and library clauses
Procedure parameters
Signal parameters
Default values
Unconstrained array parameter
Package declarations and bodies
Subprograms in package
Use clauses
Resolved signals and subtypes
Resolved signals and ports
Parameterizing behavior
Parameterizing structure

Delta Delays


Let us now return to the topic of delays in signal assignments.  In many of the example signal assignments in previous chapters, we omitted the delay part of waveform ele- ments.   This is equivalent to specifying a delay of 0 fs.   The value is to be applied to the  signal  at  the  current  simulation  time However,  it  is  important  to  note  that  the signal value does not change as soon as the signal assignment statement is executed. Rather,  the assignment  schedules a  transaction for the  signal, which  is applied  after the process suspends.  Thus the process does not see the effect of the assignment until the next time it resumes, even if this is at the same simulation time.   For this reason,

a delay of 0 fs in a signal assignment is called a delta delay.

To  understand  why  delta  delays  work  in  this  way,  it  is  necessary  to  review  the simulation cycle.  Recall that the simulation cycle consists of two phases: a signal up- date phase followed by a process execution phase.   In the signal update phase, sim- ulation  time  is  advanced  to  the  time  of  the  earliest  scheduled  transaction,  and  the values  in  all  transactions  scheduled  for  this  time  are  applied  to  their  corresponding signals This may cause events to occur on some signals.   In the process execution phase, all processes that respond to these events are resumed and execute until they suspend again on wait statements.   The simulator then repeats the simulation cycle. Let us now consider what happens when a process executes a signal assignment

statement with delta delay, for example:


data <= X"00";


Suppose this is executed at simulation time t during the process execution phase of the current simulation cycle.  The effect of the assignment is to schedule a transaction

to put the value X"00" on data at time t The transaction is not applied immediately, since the simulator is in the process execution phase.   Hence the process continues executing, with data unchanged When all processes have suspended, the simulator starts  the  next  simulation  cycle  and  updates  the  simulation  time Since  the  earliest transaction is now at time t, simulation time remains unchanged.   The simulator now applies the  value  X"00" in  the  scheduled  transaction  to  data,  then  resumes  any  pro- cesses that respond to the new value.

Want To have highly paid VLSI jobs ?? then you may contact at

Contact : webmaster@freehost7com