|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectbyucc.jhdl.base.Nameable
byucc.jhdl.base.Node
byucc.jhdl.base.Cell
byucc.jhdl.base.Structural
byucc.jhdl.Logic.LogicGates
byucc.jhdl.Logic.LogicStatic
byucc.jhdl.Logic.Logic
byucc.jhdl.platforms.util.GenericBoard
Class designed for making the board-level of board models easier to create. The class supplies methods for declaring wires and the board level and specifying how they wire up to the sub components. The class also provides the basic board-level functionality. If a given method does not apply to a board model, or if more functionality is needed, the board model writer is free to overload and/or add methods to get the desired functionallity.
Field Summary |
Fields inherited from class byucc.jhdl.Logic.Logic |
ABOVE, ALIGN_BOTTOM, ALIGN_CENTER, ALIGN_LEFT, ALIGN_LSB, ALIGN_MSB, ALIGN_RIGHT, ALIGN_TOP, BELOW, DOWN, EAST_OF, LEFT_OF, MAX_PACK, NORTH_OF, ON, ONTOP, ONTOP_OF, RIGHT_OF, SOUTH_OF, TOLEFT, TORIGHT, UNCONSTRAINED, UP, WEST_OF |
Fields inherited from class byucc.jhdl.Logic.LogicGates |
tech_mapper |
Fields inherited from interface byucc.jhdl.platforms.util.UtilConstants |
directions, IN, NONE, OUT, TRISTATE, UNASSIGNED |
Constructor Summary | |
protected |
GenericBoard(Node parent)
Creates a new GenericBoard with the specified parent and no instance name. |
protected |
GenericBoard(Node parent,
java.lang.String instance)
Creates a new GenericBoard with the specified parent and instance name. |
Method Summary | |
protected void |
buildMemList()
|
protected void |
buildPeList()
|
protected void |
buildRegList()
|
protected void |
circuitChanged()
|
protected void |
constructDescribedModel()
This method will take all the information that is defined by the Board and will construct all the board-level elements. |
protected void |
declareCell(java.lang.String cellname,
java.lang.String classname)
This call is used to declare all the cells that will be wired together using the defineConnection() call. |
protected void |
declareMemory(java.lang.String cellname,
java.lang.String classname,
int index)
Declare a memory to be instanced in the board model. |
protected void |
declarePE(java.lang.String cellname,
java.lang.String classname,
int index)
Declare a PE to be instanced in the board model. |
protected void |
declareRegisterInteface(java.lang.String cellname,
java.lang.String classname,
int set)
Declare a register interface to be instanced in the board model. |
protected void |
defineConnection(int width,
java.lang.String connection,
java.lang.String wirename)
This will define a connection between two or more ports on two or more cells. |
protected java.util.Enumeration |
getAllWires()
|
protected Cell |
getCell(java.lang.String name)
Gets a cell for the cell list by its instance name. |
StateObject |
getHardwareState(ExternallyUpdateable[] eCells,
LargeExternallyUpdateable[] leCells,
Checkpointable[] cCells)
Returns the hardware state |
java.lang.String |
getModuleName()
Returns the hardware module name |
GenericProcessingElement |
getPE(int i)
|
java.lang.String |
getPEName(int i)
|
protected PortAssociation |
getPortAssociation(java.lang.String cellname)
|
int |
getTotalRegisterSets()
|
protected Wire |
getWireByName(java.lang.String name)
Gets a wire created by a defineConnection() call. |
protected Cell |
instanceCell(java.lang.String instance)
Instances a declared cell. |
PlatformCommandStatus |
loadMem(int index,
java.lang.String filename)
|
PlatformCommandStatus |
peProgram(int index,
java.lang.String classname)
|
PlatformCommandStatus |
readRegister(int set,
int address,
BV value)
|
protected void |
setCellAsMemory(LargeWritableMemory cell,
int index)
Set a previously instanced cell to be a memory in the board model. |
protected void |
setCellAsPE(GenericProcessingElement cell,
int index)
Set a previously instanced cell to be a PE in the board model. |
protected void |
setCellAsRegisterInterface(GenericRegisterInterface cell,
int set)
Set a previously instanced cell to be a register interface in the board model. |
protected void |
setTotalMems(int number)
Tells GenericBoard how many memories there are in the platform. |
protected void |
setTotalPEs(int number)
Tells GenericBoard how many PEs there are in the platform. |
protected void |
setTotalRegisterSets(int number)
Tells GenericBoard how many register sets there are in the platform. |
void |
stepHardwareClock(int steps)
Steps the hardware clock |
PlatformCommandStatus |
writeRegister(int set,
int address,
BV value)
|
PlatformCommandStatus |
writeRegister(int set,
int address,
java.lang.String value)
|
Methods inherited from class byucc.jhdl.base.Node |
addObservable, addSimulatorCallback, checkAll, delete, getBuildingFlag, getChildren, getChildrenEnumeration, getInstanceName, getParent, getParentCell, getRelatives, getSystem, getWires, optimize, orphanAllowed, printAllChildren, printTree, removeSimulatorCallback, setDefaultClock |
Methods inherited from class byucc.jhdl.base.Nameable |
caseSensitivity, caseSensitivity, disableNameClashChecking, getFullName, getFullNameNoTestBench, getHierNameNoTestBench, getInstanceNo, getInstanceNumber, getLeafName, getLeafName, getRelativeName, getUserName, getUserName, hasUserSpecifiedName, isDescendantOf, setInstanceNumber |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
protected GenericBoard(Node parent, java.lang.String instance)
parent
- Parent of the GenericBoard. This is typically the HWSystem.instance
- Optional instance name. If no instance name is desired, simply
pass in null.protected GenericBoard(Node parent)
parent
- Parent of the GenericBoard. This is typically the HWSystem.Method Detail |
protected void defineConnection(int width, java.lang.String connection, java.lang.String wirename)
"cell:port,cell:port,..."
You must specify all ports which are connected together in one call. In other words, you may not hook up port a of cell a to port b of cell b, then in another call hook up port b of cell b to port c of cell c. You must connect them all in a single call. In this case it would look something like this (for width of 16):
defineConnection(16,"a:a,b:b,c:c");
You may wire as many ports together as you need to in the call. Please note that the names of the cells used in these calls must have been declared using a declareCell() call.
width
- Width of the ports to connect. All ports you are connecting must have the
same width.connection
- String which give the connection information using the format described
above.wirename
- Name of the wire which will connect all these ports together. You must supply
a unique wire name for wach defineConnection() call. If null or a non-unique name is passed
an error will be generated.protected void declareCell(java.lang.String cellname, java.lang.String classname)
cellname
- Instance name for the cell.classname
- Fully qualified (include package information) classname for the class to instance
with the above instance name.
DeclarationException
- Will throw a DeclarationException if the cellname has already been
declared, or if cellname or classname is null.protected Wire getWireByName(java.lang.String name)
name
- Name of the wire to retrieve.protected java.util.Enumeration getAllWires()
protected PortAssociation getPortAssociation(java.lang.String cellname)
protected void constructDescribedModel()
public Contructor(Node parent, String instance, PortAssociation wires).
The method will use reflection to find all the elements and construct them.
protected void buildPeList()
protected void buildMemList()
protected void buildRegList()
protected Cell instanceCell(java.lang.String instance)
instance
- Instance name for the cell to be created.
protected Cell getCell(java.lang.String name)
name
- Instance name of the cell to be returned.
protected void setTotalPEs(int number)
number
- Total number of PEs.protected void declarePE(java.lang.String cellname, java.lang.String classname, int index)
cellname
- Instance name for the cell.classname
- Fully qualified (include package information) classname for the class to instance
with the above instance name.index
- Index that will be used to reference this PE. The index must be
between 0 and (totalPEs - 1).
DeclarationException
- Will throw a DeclarationException if the cellname has already been
declared, or if cellname or classname is null. Exception will also be thrown if the index
was already used by another PE.protected void setCellAsPE(GenericProcessingElement cell, int index)
cell
- Cell to add as a PE. This must be a subclass (direct or indirect) of
GenericProcessingElement.index
- Index that will be used to reference this PE.
The index must be between 0 and (totalPEs - 1).
DeclarationException
- Will throw a DeclarationException if totalPEs has not been set, or
if the index was already used by another PE.protected void setTotalMems(int number)
number
- Total number of memories.protected void declareMemory(java.lang.String cellname, java.lang.String classname, int index)
cellname
- Instance name for the cell.classname
- Fully qualified (include package information) classname for the class to instance
with the above instance name.index
- Index that will be used to reference this memory. The index must be
between 0 and (totalMems - 1).
DeclarationException
- Will throw a DeclarationException if the cellname has already been
declared, or if cellname or classname is null. Exception will also be thrown if the index
was already used by another memory.protected void setCellAsMemory(LargeWritableMemory cell, int index)
cell
- Cell to add as a memory. This must implement LargeWritableMemory and inherit Logic.index
- Index that will be used to reference this memory.
The index must be between 0 and (totalMems - 1).
DeclarationException
- Will throw a DeclarationException if totalMems has not been set, or
if the index was already used by another memory.protected void setTotalRegisterSets(int number)
number
- Total number of register sets.public int getTotalRegisterSets()
protected void declareRegisterInteface(java.lang.String cellname, java.lang.String classname, int set)
cellname
- Instance name for the cell.classname
- Fully qualified (include package information) classname for the class to instance
with the above instance name.set
- Set which will be controlled by this interface. This must be
between 0 and (totalRegisterSets - 1).
DeclarationException
- Will throw a DeclarationException if the cellname has already been
declared, or if cellname or classname is null. Exception will also be thrown if the set
was already used by another register interface.protected void setCellAsRegisterInterface(GenericRegisterInterface cell, int set)
cell
- Cell to add as a register interface. This must implement GenericRegisterInterface and inherit Logic.set
- Set that will be used to reference this register interface.
The set must be between 0 and (totalRegs - 1).
DeclarationException
- Will throw a DeclarationException if totalRegs has not been set, or
if the set was already used by another register interface.protected void circuitChanged()
public java.lang.String getModuleName()
HardwareInterface
getModuleName
in interface HardwareInterface
public void stepHardwareClock(int steps)
HardwareInterface
stepHardwareClock
in interface HardwareInterface
steps
- How many cycles to clockpublic StateObject getHardwareState(ExternallyUpdateable[] eCells, LargeExternallyUpdateable[] leCells, Checkpointable[] cCells)
HardwareInterface
getHardwareState
in interface HardwareInterface
eCells
- the ExternallyUpdateable
cells to look atleCells
- the LargeExternallyUpdateable
cells to look atcCells
- the Checkpointable
cells to look at
public PlatformCommandStatus peProgram(int index, java.lang.String classname)
public PlatformCommandStatus loadMem(int index, java.lang.String filename)
public PlatformCommandStatus readRegister(int set, int address, BV value)
public PlatformCommandStatus writeRegister(int set, int address, BV value)
public PlatformCommandStatus writeRegister(int set, int address, java.lang.String value)
public GenericProcessingElement getPE(int i)
public java.lang.String getPEName(int i)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |