hades.models.rtlib.memory
Class RegBank
java.lang.Object
hades.simulator.SimObject
hades.models.rtlib.memory.GenericMemory
hades.models.rtlib.memory.RegBank
- All Implemented Interfaces:
- java.lang.Cloneable, ContextToolTip, Memory, java.io.Serializable, Simulatable
- public class RegBank
- extends GenericMemory
RegBank - a generic register band with two-read ports (X,Y)
and one-write (Z) port with n words by m bits.
It has a global active-low write-enable and an edge-sensitive
clock for writing.
Note that the model currently does not check for timing violations
during write cycles.
- See Also:
- Serialized Form
Fields inherited from class hades.models.rtlib.memory.GenericMemory |
bit_mask, data, enableAnimationFlag, last_read_addr, last_read_data, last_write_addr, last_write_data, MEF, n_bits, n_words, resourcename, TRISTATED, UNDEFINED, vector_000, vector_111, vector_UUU, vector_XXX, vector_ZZZ |
Fields inherited from class hades.simulator.SimObject |
classloader, console, debug, editor, name, parent, ports, propertySheet, simulator, symbol, versionId, visible |
Constructor Summary |
RegBank()
RegBank constructor |
Method Summary |
boolean |
canChangeSize()
|
protected void |
constructPorts()
|
void |
elaborate(java.lang.Object arg)
elaborate(): On elaboration, the inputs of the RegBank will be undefined. |
void |
evaluate(java.lang.Object arg)
evaluate():
If either port_CLK or port_nWE are undefined, the RegBank data is
invalidated, and the DO1 value is undefined. |
boolean |
resize(int n_words,
int n_bits)
|
void |
schedule(Port port,
java.lang.Object value,
double time)
|
void |
setBitsPerWord(int n_bits)
|
void |
setSize(int n_words)
|
Methods inherited from class hades.models.rtlib.memory.GenericMemory |
addMemoryListener, addMemoryListenerOld, checkInvalidateMemory, configure, constructStandardValues, createMemory, dataAtAddressIsUndefined, dbg, getAddressBusWidth, getAddrOffset, getBitsPerWord, getConfigDialog, getDataArray, getDataAt, getEnableAnimationFlag, getExternalResources, getHexDigitsPerWord, getHexString, getInstructionDecoder, getPropertySheet, getResourcename, getSize, getToolTip, initialize, initializeWithDefaultValues, initializeWithRandomValues, initializeWithX, initializeWithZeroes, isConnected, main, merge, needsExternalResources, notifyReadListeners, notifyReadListenersOld, notifyWriteListeners, notifyWriteListenersOld, parse, parseLabelLine, parseRAM, removeMemoryListener, removeMemoryListenerOld, save, setDataArray, setDataAt, setEnableAnimationFlag, setEnableAnimationFlag, setInstructionDecoder, setResourcename, toString, warning, write |
Methods inherited from class hades.simulator.SimObject |
constructDynamicSymbol, copy, getBindkey, getClassLoader, getDebug, getEditor, getFullName, getName, getParent, getPort, getPorts, getResourceAsStream, getSimulator, getSymbol, getSymbolResourceName, getVersionId, isVisible, keyPressed, message, mousePressed, needsDynamicSymbol, setClassLoader, setConsole, setDebug, setEditor, setName, setParent, setPorts, setSimulator, setSymbol, setVersionId, setVisible, tearDown |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
port_AX
protected PortStdLogicVector port_AX
port_AY
protected PortStdLogicVector port_AY
port_AZ
protected PortStdLogicVector port_AZ
port_DX
protected PortStdLogicVector port_DX
port_DY
protected PortStdLogicVector port_DY
port_DZ
protected PortStdLogicVector port_DZ
port_nWE
protected PortStdLogic1164 port_nWE
port_CLK
protected PortStdLogic1164 port_CLK
t_access
public static final double t_access
- See Also:
- Constant Field Values
t_tristate
public static final double t_tristate
- See Also:
- Constant Field Values
t_undefined
public static final double t_undefined
- See Also:
- Constant Field Values
t_setup
public static final double t_setup
- See Also:
- Constant Field Values
t_min_we_cycle
public static final double t_min_we_cycle
- See Also:
- Constant Field Values
RegBank
public RegBank()
- RegBank constructor
constructPorts
protected void constructPorts()
- Overrides:
constructPorts
in class GenericMemory
canChangeSize
public boolean canChangeSize()
- Specified by:
canChangeSize
in interface Memory
- Overrides:
canChangeSize
in class GenericMemory
setSize
public void setSize(int n_words)
- Specified by:
setSize
in interface Memory
- Overrides:
setSize
in class GenericMemory
setBitsPerWord
public void setBitsPerWord(int n_bits)
- Specified by:
setBitsPerWord
in interface Memory
- Overrides:
setBitsPerWord
in class GenericMemory
resize
public boolean resize(int n_words,
int n_bits)
- Specified by:
resize
in interface Memory
- Overrides:
resize
in class GenericMemory
elaborate
public void elaborate(java.lang.Object arg)
- elaborate(): On elaboration, the inputs of the RegBank will be undefined.
Correspondingly, the outputs are, too.
- Specified by:
elaborate
in interface Simulatable
- Overrides:
elaborate
in class GenericMemory
evaluate
public void evaluate(java.lang.Object arg)
- evaluate():
If either port_CLK or port_nWE are undefined, the RegBank data is
invalidated, and the DO1 value is undefined.
Warning: The RegBank model currently does not check for timing violations
or address glitches during write cycles. Instead, the corresponding
memory locations are written.
- Specified by:
evaluate
in interface Simulatable
- Overrides:
evaluate
in class GenericMemory
schedule
public void schedule(Port port,
java.lang.Object value,
double time)