engine
Class ContBitSelect

java.lang.Object
  |
  +--engine.Expression
        |
        +--engine.WireSelection
              |
              +--engine.BitSelect
                    |
                    +--engine.ContBitSelect

class ContBitSelect
extends BitSelect
implements Executable

This is a BitSelect that continuously assings to its target. Unless BitSelect, it maintains the bits in an internal BitVector ( data ), and calls Wire's compute(), in order for it to determine its bits considering all its assignemens;


Field Summary
(package private)  boolean active
           
(package private)  BitVector data
           
(package private)  BitVector newB
          The computed data to be assigned to the target BitVector
(package private)  byte[] newStrengths
          The computed strengths to be assigned to target
(package private)  byte[] strengths
           
(package private)  long updateTime
          The timestamp of the last programmed update
 
Fields inherited from class engine.BitSelect
b, end, start, target
 
Fields inherited from class engine.Expression
length, ns
 
Constructor Summary
(package private) ContBitSelect(NameSpace ns, BitVector b, GenericSelectorDescription target, byte strength)
           
(package private) ContBitSelect(NameSpace ns, BitVector b, GenericSelectorDescription target, int start, int end)
          The implicit strength (strong1, strong0) is used here.
(package private) ContBitSelect(NameSpace ns, BitVector b, GenericSelectorDescription target, int start, int end, byte strength)
           
 
Method Summary
(package private)  void breakSelection(WireSelection[] bits, int startIndex)
           
 void execute()
           
(package private)  void reatach()
           
(package private)  void release()
           
(package private)  void set(BitVector x, int start, int end)
          Called by @see assign with the appropriate parameters
 void setStrengths(byte[] s, int startIndex)
          First sets the strengths, and then calls the old assign.
 byte strength(int i)
           
 
Methods inherited from class engine.BitSelect
addMonitor, assign, assign, evaluate, getStrength, getStrengths, length, toString
 
Methods inherited from class engine.Expression
isLeftValue
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

data

BitVector data

strengths

byte[] strengths

updateTime

long updateTime
The timestamp of the last programmed update

active

boolean active

newB

BitVector newB
The computed data to be assigned to the target BitVector

newStrengths

byte[] newStrengths
The computed strengths to be assigned to target
Constructor Detail

ContBitSelect

ContBitSelect(NameSpace ns,
              BitVector b,
              GenericSelectorDescription target,
              int start,
              int end,
              byte strength)

ContBitSelect

ContBitSelect(NameSpace ns,
              BitVector b,
              GenericSelectorDescription target,
              int start,
              int end)
The implicit strength (strong1, strong0) is used here.

ContBitSelect

ContBitSelect(NameSpace ns,
              BitVector b,
              GenericSelectorDescription target,
              byte strength)
Method Detail

set

void set(BitVector x,
         int start,
         int end)
   throws InterpretTimeException
Called by @see assign with the appropriate parameters
Overrides:
set in class BitSelect

setStrengths

public void setStrengths(byte[] s,
                         int startIndex)
First sets the strengths, and then calls the old assign. This will cause the assigned wire to compute its value considering the new strengths
Overrides:
setStrengths in class BitSelect

execute

public void execute()
             throws InterpretTimeException,
                    SimulationStoppedException
Specified by:
execute in interface Executable

strength

public byte strength(int i)
Parameters:
i - the index in the ramge start..end
Returns:
the strength for the specified index

release

void release()
Overrides:
release in class BitSelect
See Also:
WireSelection.detach

reatach

void reatach()
Overrides:
reatach in class BitSelect
See Also:
WireSelection.reatach

breakSelection

void breakSelection(WireSelection[] bits,
                    int startIndex)
Overrides:
breakSelection in class BitSelect
See Also:
WireSelection.reatach