|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objecthades.simulator.SimObject
hades.models.ruge.RAM_64K
RAM_64K - a subclass of SimObject that models a static RAM of 64K integer words. Ports are for IntegerSignals. The RAM has separate nWE and nME lines.
The behaviour is modeled similar to typical ASIC SRAM macrocells. The RAM outputs are tri-stated and the input disabled as long as nCS is high. RAM outputs and the whole RAM contents are lost, whenever one of the control-lines is undefined.
On the rising edge of nME, the RAM latches the current value of the address inputs. If nWE is high during a nME cycle, the data from the selected RAM location appears on the data outputs after t_access. For a write cycle, hold nWE low during a nME cycle. The value from the data input lines is written to the selected address, as soon as the first of either nWE or nME goes low.
Clicking 'edit' on the RAM model will open a dialog window which allows selection of the initial RAM data file only.
Field Summary | |
(package private) StdLogic1164 |
output_0
|
(package private) StdLogic1164 |
output_1
|
(package private) StdLogic1164 |
output_X
|
(package private) StdLogic1164 |
output_Z
|
(package private) Port |
port_ADDR
|
(package private) Port |
port_DIN
|
(package private) Port |
port_DOUT
|
(package private) Port |
port_nME
|
(package private) Port |
port_nWE
|
(package private) java.lang.String |
resourcename
|
static double |
t_access
|
static double |
t_tristate
|
static double |
t_undefined
|
static int |
TRISTATED
|
static int |
UNDEFINED
|
(package private) java.lang.Integer |
value_ADDR
|
(package private) java.lang.Integer |
value_DIN
|
(package private) java.lang.Integer |
value_DOUT
|
Fields inherited from class hades.simulator.SimObject |
classloader, console, debug, editor, name, parent, ports, propertySheet, simulator, symbol, versionId, visible |
Constructor Summary | |
RAM_64K()
RAM_64K constructor |
Method Summary | |
void |
configure()
create and display a 'ConfigDialog' to set the parameters for a SimObject. |
void |
dbg(java.lang.String msg)
|
void |
elaborate(java.lang.Object arg)
elaborate(): This method is called by the simulation engine to initialize the simulation object. |
void |
evaluate(java.lang.Object arg)
evaluate(): called by the simulation engine on all events that concern this object. |
java.lang.String[] |
getExternalResources()
return a String[] array of length 1 with our ROM initialization data file. |
java.lang.String |
getResourcename()
|
boolean |
initialize(java.lang.String s)
initialize a RAM_64K from a String. |
void |
initRAM()
|
protected void |
latchAdress(IntegerSignal signal_A)
|
boolean |
needsExternalResources()
one external resource: the data file to initialize the RAM contents. |
void |
parseRAM(java.lang.String resourcename)
parse RAM data from a file specified via its Java 1.1 resourcename. |
void |
printSramContent()
|
void |
setResourcename(java.lang.String s)
|
java.lang.String |
toString()
toString() - the usual info method |
void |
updateDisplay(int address,
int value)
|
void |
write(java.io.PrintWriter ps)
|
Methods inherited from class hades.simulator.SimObject |
constructDynamicSymbol, copy, getBindkey, getClassLoader, getDebug, getEditor, getFullName, getName, getParent, getPort, getPorts, getPropertySheet, getResourceAsStream, getSimulator, getSymbol, getSymbolResourceName, getToolTip, 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 |
Field Detail |
StdLogic1164 output_0
StdLogic1164 output_1
StdLogic1164 output_X
StdLogic1164 output_Z
Port port_nWE
Port port_nME
Port port_ADDR
Port port_DIN
Port port_DOUT
java.lang.Integer value_ADDR
java.lang.Integer value_DIN
java.lang.Integer value_DOUT
java.lang.String resourcename
public static final int TRISTATED
public static final int UNDEFINED
public static final double t_access
public static final double t_tristate
public static final double t_undefined
Constructor Detail |
public RAM_64K()
Method Detail |
public boolean needsExternalResources()
needsExternalResources
in class SimObject
public java.lang.String[] getExternalResources()
getExternalResources
in class SimObject
public void initRAM()
public void printSramContent()
public java.lang.String getResourcename()
public void setResourcename(java.lang.String s)
public boolean initialize(java.lang.String s)
1002 /hades/examples/b-tutorial/ampel-43.rom
initialize
in class SimObject
public void write(java.io.PrintWriter ps)
write
in class SimObject
public void parseRAM(java.lang.String resourcename)
Each line of the RAM data file should contain the address and the corresponding data in hex format, seperated by a colon, e.g. '0001:D3' or '03FF:20'.
The alternative DigLOG compact format, e.g. '0000:000102030405060708090A0B0C0D0E0F' is also accepted.
The RAM model will issue a warning message, if the same location is written multiple times.
public void configure()
SimObject
configure
in class SimObject
public void elaborate(java.lang.Object arg)
elaborate
in interface Simulatable
elaborate
in class SimObject
public void evaluate(java.lang.Object arg)
evaluate
in interface Simulatable
evaluate
in class SimObject
arg
- an arbitrary object argumentprotected void latchAdress(IntegerSignal signal_A)
public void updateDisplay(int address, int value)
public void dbg(java.lang.String msg)
public java.lang.String toString()
toString
in class SimObject
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |