|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.newisys.dv.PortSignalWrapper
public final class PortSignalWrapper
A wrapper that allows InputSignals and OutputSignals to be referenced as InOutSignals. This class is used especially for port classes, which, when not directionally constrained, are made up entirely of InOutSignal members.
While this class allows input or output signals to be referenced as in/outs,
it is still a runtime error to drive an input signal or sample an output
signal. Specifically, if InputSignal methods are called on a wrapped
OutputSignal, or vice versa, a DVRuntimeException is thrown.
| Constructor Summary | |
|---|---|
PortSignalWrapper(InputSignal signal)
Creates a new PortSignalWrapper with the specified InputSignal. |
|
PortSignalWrapper(OutputSignal signal)
Creates a new PortSignalWrapper with the specified OutputSignal. |
|
| Method Summary | |
|---|---|
void |
drive(Object value)
Performs a strong drive of this signal, after synchronizing to the drive edge of the clock, as if by a call to syncDrive(). |
void |
driveAsync(Object value)
Performs an immediate strong drive of this signal, without synchronizing to the drive edge of the clock. |
void |
driveAsyncSoft(Object value)
Performs an immediate soft drive of this signal, without synchronizing to the drive edge of the clock. |
void |
driveDelay(int cycles,
Object value)
Suspends this thread until the clock for this signal reaches the drive edge the given number of times, then performs a strong drive of the signal. |
void |
driveDelayNB(int cycles,
Object value)
Performs a non-blocking strong drive of this signal the given number of cycles into the future. |
void |
driveDelaySoft(int cycles,
Object value)
Suspends this thread until the clock for this signal reaches the drive edge the given number of times, then performs a soft drive of the signal. |
void |
driveDelaySoftNB(int cycles,
Object value)
Performs a non-blocking soft drive of this signal the given number of cycles into the future. |
void |
driveNB(Object value)
Performs a non-blocking strong drive of this signal. |
void |
driveRange(BitRange range,
Object value)
Performs a strong range drive of this signal, after synchronizing to the drive edge of the clock, as if by a call to syncDrive(). |
void |
driveRange(int highBit,
int lowBit,
Object value)
Performs a strong range drive of this signal, after synchronizing to the drive edge of the clock, as if by a call to syncDrive(). |
void |
driveRangeAsync(BitRange range,
Object value)
Performs an immediate strong range drive of this signal, without synchronizing to the drive edge of the clock. |
void |
driveRangeAsync(int highBit,
int lowBit,
Object value)
Performs an immediate strong range drive of this signal, without synchronizing to the drive edge of the clock. |
void |
driveRangeAsyncSoft(BitRange range,
Object value)
Performs an immediate soft range drive of this signal, without synchronizing to the drive edge of the clock. |
void |
driveRangeAsyncSoft(int highBit,
int lowBit,
Object value)
Performs an immediate soft range drive of this signal, without synchronizing to the drive edge of the clock. |
void |
driveRangeDelay(int cycles,
BitRange range,
Object value)
Suspends this thread until the clock for this signal reaches the drive edge the given number of times, then performs a strong range drive of the signal. |
void |
driveRangeDelay(int cycles,
int highBit,
int lowBit,
Object value)
Suspends this thread until the clock for this signal reaches the drive edge the given number of times, then performs a strong range drive of the signal. |
void |
driveRangeDelayNB(int cycles,
BitRange range,
Object value)
Performs a non-blocking strong range drive of this signal the given number of cycles into the future. |
void |
driveRangeDelayNB(int cycles,
int highBit,
int lowBit,
Object value)
Performs a non-blocking strong range drive of this signal the given number of cycles into the future. |
void |
driveRangeDelaySoft(int cycles,
BitRange range,
Object value)
Suspends this thread until the clock for this signal reaches the drive edge the given number of times, then performs a soft range drive of the signal. |
void |
driveRangeDelaySoft(int cycles,
int highBit,
int lowBit,
Object value)
Suspends this thread until the clock for this signal reaches the drive edge the given number of times, then performs a soft range drive of the signal. |
void |
driveRangeDelaySoftNB(int cycles,
BitRange range,
Object value)
Performs a non-blocking soft range drive of this signal the given number of cycles into the future. |
void |
driveRangeDelaySoftNB(int cycles,
int highBit,
int lowBit,
Object value)
Performs a non-blocking soft range drive of this signal the given number of cycles into the future. |
void |
driveRangeNB(BitRange range,
Object value)
Performs a non-blocking strong range drive of this signal. |
void |
driveRangeNB(int highBit,
int lowBit,
Object value)
Performs a non-blocking strong range drive of this signal. |
void |
driveRangeSoft(BitRange range,
Object value)
Performs a soft range drive of this signal, after synchronizing to the drive edge of the clock, as if by a call to syncDrive(). |
void |
driveRangeSoft(int highBit,
int lowBit,
Object value)
Performs a soft range drive of this signal, after synchronizing to the drive edge of the clock, as if by a call to syncDrive(). |
void |
driveRangeSoftNB(BitRange range,
Object value)
Performs a non-blocking soft range drive of this signal. |
void |
driveRangeSoftNB(int highBit,
int lowBit,
Object value)
Performs a non-blocking soft range drive of this signal. |
void |
driveSoft(Object value)
Performs a soft drive of this signal, after synchronizing to the drive edge of the clock, as if by a call to syncDrive(). |
void |
driveSoftNB(Object value)
Performs a non-blocking soft drive of this signal. |
Event |
getChangeEvent(BitVector mask,
boolean async)
Returns an event that will be notified each time any of the signal bits corresponding to the given mask changes value. |
ClockSignal |
getClock()
Returns the clock signal that this signal is sampled/driven relative to. |
int |
getCycleCount()
Returns the cycle count for this clock, which is the number of times it has made a transition in EdgeSet.POSEDGE. |
Event |
getEdgeEvent(com.newisys.verilog.EdgeSet edges,
int bit,
boolean async)
Returns an event that will be notified each time the given bit of this signal reaches an edge in the given set. |
int |
getInputDepth()
Returns the sample buffer depth for this signal, which is the number of samples stored for back-references. |
com.newisys.verilog.EdgeSet |
getInputEdges()
Returns the set of clock edges this signal is sampled at. |
int |
getInputSkew()
Returns the skew (in simulator ticks) relative to the clock edge at which this signal is sampled. |
String |
getName()
Returns the full name of this signal, as specified to the appropriate getSignal() method of DVSimulation. |
com.newisys.verilog.EdgeSet |
getOutputEdges()
Returns the set of clock edges this signal is driven at. |
int |
getOutputSkew()
Returns the skew (in simulator ticks) relative to the clock edge at which this signal is driven. |
int |
getSize()
Returns the width of this signal in bits. |
boolean |
isClock()
Returns whether or not this signal wrapped by this PortSignalWrapper is a ClockSignal. |
boolean |
isInput()
Returns whether or not this signal wrapped by this PortSignalWrapper is an InputSignal. |
boolean |
isOutput()
Returns whether or not this signal wrapped by this PortSignalWrapper is an OutputSignal. |
BitVector |
sample()
Samples the value of this signal, after synchronizing to the sample edge of the clock, as if by a call to syncSample(). |
BitVector |
sampleAsync()
Samples the value of this signal immediately, without synchronizing to the sample edge of the clock. |
BitVector |
sampleDepth(int depth)
Returns the value of this signal the given number of cycles in the past, after synchronizing to the sample edge of the clock, as if by a call to syncSample(). |
BitVector |
sampleDepthAsync(int depth)
Returns the value of this signal the given number of cycles in the past, without synchronizing to the sample edge of the clock. |
void |
syncChange()
Suspends this thread until a) (any bit of) this signal changes value and then b) the clock for this signal reaches its next sample edge. |
void |
syncChange(BitVector mask)
Suspends this thread until a) one of the signal bits corresponding to the given mask changes value and then b) the clock for this signal reaches its next sample edge. |
void |
syncChangeAsync()
Suspends this thread until (any bit of) this signal changes value. |
void |
syncChangeAsync(BitVector mask)
Suspends this thread until one of the signal bits corresponding to the given mask changes value. |
void |
syncDrive()
Suspends this thread until the clock for this signal is at the drive edge. |
void |
syncDriveDelay(int cycles)
Suspends this thread until the clock for this signal reaches the drive edge the given number of times. |
void |
syncEdge(com.newisys.verilog.EdgeSet edges)
Suspends this thread until a) (the low bit of) this signal reaches an edge in the given set and then b) the clock for this signal reaches its next sample edge. |
void |
syncEdge(com.newisys.verilog.EdgeSet edges,
int bit)
Suspends this thread until a) the given bit of this signal reaches an edge in the given set and then b) the clock for this signal reaches its next sample edge. |
void |
syncEdgeAsync(com.newisys.verilog.EdgeSet edges)
Suspends this thread until (the low bit of) this signal reaches an edge in the given set. |
void |
syncEdgeAsync(com.newisys.verilog.EdgeSet edges,
int bit)
Suspends this thread until the given bit of this signal reaches an edge in the given set. |
void |
syncSample()
Suspends this thread until the clock for this signal is at the sample edge. |
void |
syncSampleDelay(int cycles)
Suspends this thread until the clock for this signal reaches the sample edge the given number of times. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public PortSignalWrapper(InputSignal signal)
signal - the InputSignal to wrappublic PortSignalWrapper(OutputSignal signal)
signal - the OutputSignal to wrap| Method Detail |
|---|
public String getName()
getName in interface Signalpublic ClockSignal getClock()
this.
getClock in interface Signalpublic int getSize()
getSize in interface Signalpublic boolean isInput()
InputSignal.
true if the wrapped signal is an InputSignal,
false otherwisepublic boolean isOutput()
OutputSignal.
true if the wrapped signal is an OutputSignal,
false otherwisepublic boolean isClock()
ClockSignal.
true if the wrapped signal is a ClockSignal,
false otherwisepublic com.newisys.verilog.EdgeSet getInputEdges()
getInputEdges in interface InputSignalpublic int getInputSkew()
getInputSkew in interface InputSignalpublic int getInputDepth()
getInputDepth in interface InputSignalInputSignal.sampleDepth(int)public BitVector sample()
sample in interface InputSignalInputSignal.syncSample()public BitVector sampleDepth(int depth)
sampleDepth in interface InputSignaldepth - the number of cycles in the past
InputSignal.syncSample(),
InputSignal.getInputDepth()public BitVector sampleAsync()
sampleAsync in interface InputSignalpublic BitVector sampleDepthAsync(int depth)
sampleDepthAsync in interface InputSignaldepth - the number of cycles in the past
InputSignal.getInputDepth()public void syncSample()
syncSample in interface InputSignalpublic void syncSampleDelay(int cycles)
syncSampleDelay in interface InputSignalcycles - the number of times the sample edge must be observedpublic void syncEdge(com.newisys.verilog.EdgeSet edges)
syncEdge in interface InputSignaledges - the set of edges to wait forInputSignal.syncEdge(EdgeSet, int)
public void syncEdge(com.newisys.verilog.EdgeSet edges,
int bit)
syncEdge in interface InputSignaledges - the set of edges to wait forbit - the index of the bit to wait for the edge onpublic void syncEdgeAsync(com.newisys.verilog.EdgeSet edges)
syncEdgeAsync in interface InputSignaledges - the set of edges to wait forInputSignal.syncEdgeAsync(EdgeSet, int)
public void syncEdgeAsync(com.newisys.verilog.EdgeSet edges,
int bit)
syncEdgeAsync in interface InputSignaledges - the set of edges to wait forbit - the index of the bit to wait for the edge on
public Event getEdgeEvent(com.newisys.verilog.EdgeSet edges,
int bit,
boolean async)
getEdgeEvent in interface InputSignaledges - the set of edges to wait forbit - the index of the bit to wait for edges onasync - indicates not to wait for the next sample edge
public void syncChange()
syncChange in interface InputSignalpublic void syncChange(BitVector mask)
syncChange in interface InputSignalmask - a bit vector containing a ONE for each signal bit to watch,
or null to watch the entire signalpublic void syncChangeAsync()
syncChangeAsync in interface InputSignalpublic void syncChangeAsync(BitVector mask)
syncChangeAsync in interface InputSignalmask - a bit vector containing a ONE for each signal bit to watch,
or null to watch the entire signal
public Event getChangeEvent(BitVector mask,
boolean async)
getChangeEvent in interface InputSignalmask - a bit vector containing a ONE for each signal bit to watch,
or null to watch the entire signalasync - indicates not to wait for the next sample edge
public com.newisys.verilog.EdgeSet getOutputEdges()
getOutputEdges in interface OutputSignalpublic int getOutputSkew()
getOutputSkew in interface OutputSignalpublic void drive(Object value)
drive in interface OutputSignalvalue - the value to driveOutputSignal.syncDrive()public void driveNB(Object value)
driveNB in interface OutputSignalvalue - the value to drive
public void driveDelay(int cycles,
Object value)
driveDelay in interface OutputSignalcycles - the number of times the drive edge must be observedvalue - the value to drive
public void driveDelayNB(int cycles,
Object value)
driveDelayNB in interface OutputSignalcycles - the number of times the drive edge must be observedvalue - the value to drivepublic void driveAsync(Object value)
driveAsync in interface OutputSignalvalue - the value to drivepublic void driveSoft(Object value)
driveSoft in interface OutputSignalvalue - the value to driveOutputSignal.syncDrive()public void driveSoftNB(Object value)
driveSoftNB in interface OutputSignalvalue - the value to drive
public void driveDelaySoft(int cycles,
Object value)
driveDelaySoft in interface OutputSignalcycles - the number of times the drive edge must be observedvalue - the value to drive
public void driveDelaySoftNB(int cycles,
Object value)
driveDelaySoftNB in interface OutputSignalcycles - the number of times the drive edge must be observedvalue - the value to drivepublic void driveAsyncSoft(Object value)
driveAsyncSoft in interface OutputSignalvalue - the value to drive
public void driveRange(int highBit,
int lowBit,
Object value)
driveRange in interface OutputSignalhighBit - the index of the highest bit to drivelowBit - the index of the lowest bit to drivevalue - the value to driveOutputSignal.syncDrive()
public void driveRange(BitRange range,
Object value)
driveRange in interface OutputSignalrange - the range of bits to drivevalue - the value to driveOutputSignal.syncDrive()
public void driveRangeNB(int highBit,
int lowBit,
Object value)
driveRangeNB in interface OutputSignalhighBit - the index of the highest bit to drivelowBit - the index of the lowest bit to drivevalue - the value to drive
public void driveRangeNB(BitRange range,
Object value)
driveRangeNB in interface OutputSignalrange - the range of bits to drivevalue - the value to drive
public void driveRangeDelay(int cycles,
int highBit,
int lowBit,
Object value)
driveRangeDelay in interface OutputSignalcycles - the number of times the drive edge must be observedhighBit - the index of the highest bit to drivelowBit - the index of the lowest bit to drivevalue - the value to drive
public void driveRangeDelay(int cycles,
BitRange range,
Object value)
driveRangeDelay in interface OutputSignalcycles - the number of times the drive edge must be observedrange - the range of bits to drivevalue - the value to drive
public void driveRangeDelayNB(int cycles,
int highBit,
int lowBit,
Object value)
driveRangeDelayNB in interface OutputSignalcycles - the number of times the drive edge must be observedhighBit - the index of the highest bit to drivelowBit - the index of the lowest bit to drivevalue - the value to drive
public void driveRangeDelayNB(int cycles,
BitRange range,
Object value)
driveRangeDelayNB in interface OutputSignalcycles - the number of times the drive edge must be observedrange - the range of bits to drivevalue - the value to drive
public void driveRangeAsync(int highBit,
int lowBit,
Object value)
driveRangeAsync in interface OutputSignalhighBit - the index of the highest bit to drivelowBit - the index of the lowest bit to drivevalue - the value to drive
public void driveRangeAsync(BitRange range,
Object value)
driveRangeAsync in interface OutputSignalrange - the range of bits to drivevalue - the value to drive
public void driveRangeSoft(int highBit,
int lowBit,
Object value)
driveRangeSoft in interface OutputSignalhighBit - the index of the highest bit to drivelowBit - the index of the lowest bit to drivevalue - the value to driveOutputSignal.syncDrive()
public void driveRangeSoft(BitRange range,
Object value)
driveRangeSoft in interface OutputSignalrange - the range of bits to drivevalue - the value to driveOutputSignal.syncDrive()
public void driveRangeSoftNB(int highBit,
int lowBit,
Object value)
driveRangeSoftNB in interface OutputSignalhighBit - the index of the highest bit to drivelowBit - the index of the lowest bit to drivevalue - the value to drive
public void driveRangeSoftNB(BitRange range,
Object value)
driveRangeSoftNB in interface OutputSignalrange - the range of bits to drivevalue - the value to drive
public void driveRangeDelaySoft(int cycles,
int highBit,
int lowBit,
Object value)
driveRangeDelaySoft in interface OutputSignalcycles - the number of times the drive edge must be observedhighBit - the index of the highest bit to drivelowBit - the index of the lowest bit to drivevalue - the value to drive
public void driveRangeDelaySoft(int cycles,
BitRange range,
Object value)
driveRangeDelaySoft in interface OutputSignalcycles - the number of times the drive edge must be observedrange - the range of bits to drivevalue - the value to drive
public void driveRangeDelaySoftNB(int cycles,
int highBit,
int lowBit,
Object value)
driveRangeDelaySoftNB in interface OutputSignalcycles - the number of times the drive edge must be observedhighBit - the index of the highest bit to drivelowBit - the index of the lowest bit to drivevalue - the value to drive
public void driveRangeDelaySoftNB(int cycles,
BitRange range,
Object value)
driveRangeDelaySoftNB in interface OutputSignalcycles - the number of times the drive edge must be observedrange - the range of bits to drivevalue - the value to drive
public void driveRangeAsyncSoft(int highBit,
int lowBit,
Object value)
driveRangeAsyncSoft in interface OutputSignalhighBit - the index of the highest bit to drivelowBit - the index of the lowest bit to drivevalue - the value to drive
public void driveRangeAsyncSoft(BitRange range,
Object value)
driveRangeAsyncSoft in interface OutputSignalrange - the range of bits to drivevalue - the value to drivepublic void syncDrive()
syncDrive in interface OutputSignalpublic void syncDriveDelay(int cycles)
syncDriveDelay in interface OutputSignalcycles - the number of times the drive edge must be observedpublic int getCycleCount()
getCycleCount in interface ClockSignal
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||