|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objecthades.simulator.SimObject
hades.models.ttl74.SN74219
SN74219 - a static RAM of 16x4 bits. The RAM has combined nWE (read/nwrite) control line, tri-state outputs, and nCE chip enable (chip select). Ports are single bits of type StdLogic1164.
The RAM outputs are tri-stated and the input disabled as long as nCE is high. RAM outputs and the whole RAM contents are lost, whenever one of the control-lines is undefined. When nWE is low, the RAM continuously writes the input data to the storage location selected by the input address.
Clicking 'edit' on the RAM model will open a dialog window which allows selection of the initial RAM data file only.
Field Summary | |
protected MemoryEditorFrame |
MEF
|
static int |
N_ADDRESS_INPUTS
|
static int |
N_DATA_INPUTS
|
(package private) java.lang.String |
resourcename
|
static double |
t_access
|
static double |
t_tristate
|
static double |
t_undefined
|
static int |
TRISTATED
|
static int |
UNDEFINED
|
Fields inherited from class hades.simulator.SimObject |
classloader, console, debug, editor, name, parent, ports, propertySheet, simulator, symbol, versionId, visible |
Constructor Summary | |
SN74219()
SN74219 constructor |
Method Summary | |
void |
addMemoryListener(MemoryListener ML)
|
boolean |
canChangeSize()
|
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. |
int |
getAddrOffset()
utility method to support systems with different memory components mapped into a single address space at different offsets. |
protected void |
getAdress()
|
int |
getBitsPerWord()
return the number of bits per word in this memory. |
PropertySheet |
getConfigDialog()
|
long[] |
getDataArray()
|
long |
getDataAt(int address)
|
java.lang.String[] |
getExternalResources()
return a String[] array of length 1 with our RAM contents file. |
protected java.lang.String |
getHexString(long value,
int n_chars)
|
java.awt.Component |
getPropertySheet()
return a reference to the 'property sheet' or configuration window for this SimObject. |
java.lang.String |
getResourcename()
|
int |
getSize()
get the number of words in this memory. |
boolean |
initialize(java.lang.String s)
initialize a SN74219 from a String. |
void |
initRAM()
|
boolean |
merge(java.io.BufferedReader reader)
|
boolean |
needsExternalResources()
we use one external resource: the data file to initialize the RAM contents. |
boolean |
parse(java.io.BufferedReader br)
parse RAM data from a file specified via its Java 1.1 resourcename. |
long |
parseLongOrXXX(java.lang.String s)
|
void |
parseRAM(java.lang.String resourcename)
|
void |
printSramContent()
|
void |
removeMemoryListener(MemoryListener ML)
|
boolean |
resize(int n_words,
int n_bits_per_word)
|
boolean |
save(java.io.PrintWriter PW)
|
void |
setBitsPerWord(int n_bits)
|
void |
setDataArray(long[] data)
|
void |
setDataAt(int address,
long value)
|
void |
setResourcename(java.lang.String s)
|
void |
setSize(int n_words)
|
java.lang.String |
toString()
toString() - the usual info method |
void |
write(java.io.PrintWriter ps)
|
Methods inherited from class hades.simulator.SimObject |
constructDynamicSymbol, copy, getBindkey, getClassLoader, getDebug, getEditor, getFullName, getName, getParent, getPort, getPorts, 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 |
protected MemoryEditorFrame MEF
public static final int TRISTATED
public static final int UNDEFINED
public static final int N_ADDRESS_INPUTS
public static final int N_DATA_INPUTS
public static final double t_access
public static final double t_tristate
public static final double t_undefined
java.lang.String resourcename
Constructor Detail |
public SN74219()
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()
getResourcename
in interface Memory
public void setResourcename(java.lang.String s)
setResourcename
in interface Memory
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)
public boolean parse(java.io.BufferedReader br)
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.
parse
in interface Memory
public long parseLongOrXXX(java.lang.String s)
public void setDataAt(int address, long value)
setDataAt
in interface Memory
public long getDataAt(int address)
getDataAt
in interface Memory
public int getAddrOffset()
Memory
For example, the D*CORE processor used in our T3 practical course uses one ROM mapped to addresses 0x000..0x6FFF with address offset 0, a RAM mapped to addresses 0x8000..0xFFFF with address offset 0x8000, and IO components mapped to 0x7000..0x7FFF. Standard memory components will usually return 0 here.
getAddrOffset
in interface Memory
public int getBitsPerWord()
Memory
getBitsPerWord
in interface Memory
public void setBitsPerWord(int n_bits) throws java.lang.Exception
setBitsPerWord
in interface Memory
java.lang.Exception
public int getSize()
Memory
getSize
in interface Memory
public void setSize(int n_words) throws java.lang.Exception
setSize
in interface Memory
java.lang.Exception
public boolean resize(int n_words, int n_bits_per_word) throws java.lang.Exception
resize
in interface Memory
java.lang.Exception
public boolean canChangeSize()
canChangeSize
in interface Memory
public long[] getDataArray()
getDataArray
in interface Memory
public void setDataArray(long[] data)
setDataArray
in interface Memory
public boolean merge(java.io.BufferedReader reader)
merge
in interface Memory
public void addMemoryListener(MemoryListener ML)
addMemoryListener
in interface Memory
public void removeMemoryListener(MemoryListener ML)
removeMemoryListener
in interface Memory
protected java.lang.String getHexString(long value, int n_chars)
public boolean save(java.io.PrintWriter PW)
save
in interface Memory
public PropertySheet getConfigDialog()
getConfigDialog
in interface Memory
public void configure()
SimObject
configure
in class SimObject
public java.awt.Component getPropertySheet()
SimObject
getPropertySheet
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 getAdress()
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 |