|
|||||||||||
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
The Logic class provides a platform-independent interface into
FPGA circuit design. It provides many convenience methods for
accelerating structural design. It should be emphasized
that none of these methods provide any compution
whatsoever, they only are shortcuts for instantiating
gates. For example, the method call and(a, b)
instantiates a new 2-input and gate for you, wires up a and
b to the inputs, instantiates a new wire for you, connects
the new wire to the output of the gate, and returns the new wire.
Because these method calls return wires, not gates, it
allows you to have nested method calls to quickly build up complex
logic circuits. For example:
Wire carryOut = or( and(a, b), and(a, ci), and(b, ci) );
One more time: this instantiates 3 "and" gates and 1 "or" gate, it
does not compute the resulting carry value. The
gates are instantiated as technology-specific primitives from an
appropriate vendor library via a TechMapper object.
One more style convention is noteworthy. Most every logic function provided has two versions. One version creates a new output wire for you and returns that wire. The other version lets you pass in the wire reference that you want to use as output; it will return the output wire you pass simply to facilitate nesting. For example, here are the different prototypes for a multiplexor and a 2-input and gate:
and_o ( Wire in1, Wire in2, Wire out ); // Uses out
as the output wire, and returns it
mux ( Wire d0, Wire d1, Wire sel ); // Creates a new wire
as the output, and returns it.
mux_o ( Wire d0, Wire d1, Wire sel, Wire out ); // Uses
out as the output wire, and returns it.
and ( Wire in1, Wire in2 ); // Creates a new wire for the
output, and returns it
Note that both gates use a slightly different method call name for the different cases. This is because we need to differentiate the and_o(Wire in1, Wire in2, Wire, out) call from a three-input and-gate: and(Wire in1, Wire in2, Wire in3). This general naming convention will apply for all logic methods -- the suffix "_o" is appended if you provide the output wire; the suffix is not appended when you do not provide the output wire.
Say that you need an and gate. Which version of and should you use? Should be obvious with a little thought: if you already have a reference to the output wire, you need to pass that wire into the function. This is common when the wire has been passed to you and connected to one of the ports, for example. If you don't have a reference, you can let the Logic methods create it for you. This approach is common when building up intermediate logic.
Field Summary | |
static Directive |
ABOVE
Relational Placement directive which indicates that the current cell should be placed in the negative Y direction on the JHDL grid from a previous cell. |
static int |
ALIGN_BOTTOM
|
static int |
ALIGN_CENTER
|
static int |
ALIGN_LEFT
|
static int |
ALIGN_LSB
|
static int |
ALIGN_MSB
|
static int |
ALIGN_RIGHT
|
static int |
ALIGN_TOP
|
static Directive |
BELOW
Relational Placement directive which indicates that the current cell should be placed in the positive Y direction on the JHDL grid from a previous cell. |
static int |
DOWN
Value stored in class byucc.jhdl.Logic.Directive that indicates direction of relational placement. |
static Directive |
EAST_OF
Relational Placement directive which indicates that the current cell should be placed in the positive X direction on the JHDL grid from a previous cell. |
static Directive |
LEFT_OF
Relational Placement directive which indicates that the current cell should be placed in the negative X direction on the JHDL grid from a previous cell. |
static int |
MAX_PACK
Placement directive representing maximal "primitive" packing. |
static Directive |
NORTH_OF
Relational Placement directive which indicates that the current cell should be placed in the negative Y direction on the JHDL grid from a previous cell. |
static Directive |
ON
Relational Placement directive which indicates that the current cell should be placed in the same spot on the JHDL grid as a previous cell. |
static int |
ONTOP
Value stored in class byucc.jhdl.Logic.Directive that indicates direction of relational placement. |
static Directive |
ONTOP_OF
Relational Placement directive which indicates that the current cell should be placed in the same spot on the JHDL grid as a previous cell. |
static Directive |
RIGHT_OF
Relational Placement directive which indicates that the current cell should be placed in the positive X direction on the JHDL grid from a previous cell. |
static Directive |
SOUTH_OF
Relational Placement directive which indicates that the current cell should be placed in the positive Y direction on the JHDL grid from a previous cell. |
static int |
TOLEFT
Value stored in class byucc.jhdl.Logic.Directive that indicates direction of relational placement. |
static int |
TORIGHT
Value stored in class byucc.jhdl.Logic.Directive that indicates direction of relational placement. |
static int |
UNCONSTRAINED
The value representing an unconstrained coordinate in placement. |
static int |
UP
Value stored in class byucc.jhdl.Logic.Directive that indicates direction of relational placement. |
static Directive |
WEST_OF
Relational Placement directive which indicates that the current cell should be placed in the negative X direction on the JHDL grid from a previous cell. |
Fields inherited from class byucc.jhdl.Logic.LogicGates |
tech_mapper |
Constructor Summary | |
|
Logic(Node parent)
Constructs a new Logic object with given node as parent. |
|
Logic(Node parent,
boolean connect_implicit_ports)
Constructs a new Logic object with given node as parent. |
|
Logic(Node parent,
java.lang.String name)
Constructs a new Logic object with given node as parent, naming it with the given string. |
|
Logic(Node parent,
java.lang.String name,
boolean connect_implicit_ports)
Constructs a new Logic object with given node as parent, naming it with the given string. |
protected |
Logic(Node parent,
TechMapper tm)
Constructs a new Logic object with given node as parent, using the given TechMapper object for technology mapping. |
protected |
Logic(Node parent,
TechMapper tm,
java.lang.String name,
boolean connect_implicit_ports)
Constructs a new Logic object with given node as parent, naming it with the given string, and using the given TechMapper object for technology mapping. |
Method Summary | |
Wire |
clockDriver(Wire clock,
java.lang.String schedule)
|
Wire |
clockDriver(Wire clock,
java.lang.String schedule,
java.lang.String name)
|
protected void |
connect_implicit_ports()
Deprecated. You should now use the method name of connectImplicitPorts() . |
protected void |
connectImplicitPorts()
Connects the implicit ports. |
SubCell |
constructSubCell(Node parent,
java.lang.String name)
This call overrides that in Cell, so that pushHierarchy returns a Logic cell. |
SubCell |
constructSubCellNoImplicitPorts(Node parent,
java.lang.String name)
This call is used to determine which underlying class is created in Cell.pushHierarchyNoImplicitPorts(CellInterface[], String, boolean, String) . |
static boolean |
enableNewPlacement()
|
void |
enableNewPlacement(boolean enp)
|
Wire |
extend(boolean signed,
Wire a,
int len)
Extend a wire to the left |
Wire |
extend(boolean signed,
Wire a,
int len,
java.lang.String name)
Extend a wire to the left (named) |
Wire |
getDefaultClock()
Returns the default clock for this part of the circuit. |
static TechMapper |
getDefaultTechMapper()
Returns the TechMapper object associated with the Logic class. |
Wire |
getGlobalClock(HWSystem system)
Deprecated. Use getDefaultClock() |
static Cell |
getSinkCell(Wire w)
Finds the simulation sink of the wire parameter. |
static Cell |
getSourceCell(Cell parent,
Wire w)
Finds the hierarchical/simulation source of the wire parameter. |
Cell |
getSourceCell(Wire w)
Finds the hierarchical/simulation source of the wire parameter. |
static Cell |
getSourceLeaf(Wire w)
Finds the leaf source of the wire parameter. |
Cell |
getSourcePlaceable(Wire w)
Finds the placeable hierarchical source of the wire parameter. |
Cell |
getSourcePlaceableLeaf(Wire w)
Finds the placeable leaf source of the wire parameter. |
java.lang.Class |
getSubCellClass()
This call overrides that in Cell, so that pushHierarchy knows what Class is created in constructSubCell. |
java.lang.String |
getTechMapHint(Cell c)
Returns a String describing the technology mapping
hints for the Cell parameter. |
java.lang.String |
getTechMapHint(Wire w)
Returns a String describing the technology mapping
hints for the Cell that is the source for the wire parameter. |
TechMapper |
getTechMapper()
Returns the TechMapper object associated with Logic. |
Wire |
growAndShiftl(Wire a,
int len)
Deprecated. |
static void |
lockChildPlacement(Cell c)
Locks the placement of the children of the specified cell. |
static Wire |
lsb(Wire a)
Pick off least significant bit of wire |
static Wire |
lsb(Wire a,
int n)
Pick off n-th least significant bit of wire |
protected Cell |
map(Wire[] warray,
Wire o,
java.lang.String hints)
|
Cell |
map(Wire i1,
Wire o)
Attempts to map given wires to a single architectural "primitive" in the target device. |
Cell |
map(Wire i1,
Wire o,
java.lang.String hints)
Attempts to map given wires to a single architectural "primitive" in the target device, with String
hints. |
Cell |
map(Wire i1,
Wire i2,
Wire o)
Attempts to map given wires to a single architectural "primitive" in the target device. |
Cell |
map(Wire i1,
Wire i2,
Wire o,
java.lang.String hints)
Attempts to map given wires to a single architectural "primitive" in the target device, with String
hints. |
Cell |
map(Wire i1,
Wire i2,
Wire i3,
Wire o)
Attempts to map given wires to a single architectural "primitive" in the target device. |
Cell |
map(Wire i1,
Wire i2,
Wire i3,
Wire o,
java.lang.String hints)
Attempts to map given wires to a single architectural "primitive" in the target device, with String
hints. |
Cell |
map(Wire i1,
Wire i2,
Wire i3,
Wire i4,
Wire o)
Attempts to map given wires to a single architectural "primitive" in the target device. |
Cell |
map(Wire i1,
Wire i2,
Wire i3,
Wire i4,
Wire o,
java.lang.String hints)
Attempts to map given wires to a single architectural "primitive" in the target device, with String
hints. |
Cell |
map(Wire i1,
Wire i2,
Wire i3,
Wire i4,
Wire i5,
Wire o)
Attempts to map given wires to a single architectural "primitive" in the target device. |
Cell |
map(Wire i1,
Wire i2,
Wire i3,
Wire i4,
Wire i5,
Wire o,
java.lang.String hints)
Attempts to map given wires to a single architectural "primitive" in the target device, with String
hints. |
Cell |
map(Wire i1,
Wire i2,
Wire i3,
Wire i4,
Wire i5,
Wire i6,
Wire o)
Attempts to map given wires to a single architectural "primitive" in the target device. |
Cell |
map(Wire i1,
Wire i2,
Wire i3,
Wire i4,
Wire i5,
Wire i6,
Wire o,
java.lang.String hints)
Attempts to map given wires to a single architectural "primitive" in the target device, with String
hints. |
Cell |
map(Wire i1,
Wire i2,
Wire i3,
Wire i4,
Wire i5,
Wire i6,
Wire i7,
Wire o)
Attempts to map given wires to a single architectural "primitive" in the target device. |
Cell |
map(Wire i1,
Wire i2,
Wire i3,
Wire i4,
Wire i5,
Wire i6,
Wire i7,
Wire o,
java.lang.String hints)
Attempts to map given wires to a single architectural "primitive" in the target device, with String
hints. |
Cell |
map(Wire i1,
Wire i2,
Wire i3,
Wire i4,
Wire i5,
Wire i6,
Wire i7,
Wire i8,
Wire o)
Attempts to map given wires to a single architectural "primitive" in the target device. |
Cell |
map(Wire i1,
Wire i2,
Wire i3,
Wire i4,
Wire i5,
Wire i6,
Wire i7,
Wire i8,
Wire o,
java.lang.String hints)
Attempts to map given wires to a single architectural "primitive" in the target device, with String
hints. |
Cell |
map(Wire i1,
Wire i2,
Wire i3,
Wire i4,
Wire i5,
Wire i6,
Wire i7,
Wire i8,
Wire i9,
Wire o)
Attempts to map given wires to a single architectural "primitive" in the target device. |
Cell |
map(Wire i1,
Wire i2,
Wire i3,
Wire i4,
Wire i5,
Wire i6,
Wire i7,
Wire i8,
Wire i9,
Wire o,
java.lang.String hints)
Attempts to map given wires to a single architectural "primitive" in the target device, with String
hints. |
static Wire |
msb(Wire a)
Pick off most significant bit of wire |
static Wire |
msb(Wire a,
int n)
Pick off n-th most significant bit of wire |
static int |
msbIndx(Wire a)
Return index of MSB of wire |
void |
netlist()
Creates a netlist of the default variety determined by the techmapper, and default filename determined by the netlister. |
void |
netlist(boolean flat)
Creates a netlist of the default variety determined by the techmapper, and default filename determined by the netlister. |
void |
netlist(boolean flat,
java.lang.String filename)
Creates a netlist of the default variety determined by the techmapper |
static void |
netlist(Cell cell)
Creates a netlist of the default variety determined by the techmapper, and default filename determined by the netlister. |
static void |
netlist(Cell cell,
boolean flat)
Creates a netlist of the default variety determined by the techmapper, and default filename determined by the netlister. |
static void |
netlist(Cell cell,
boolean flat,
java.lang.String filename)
Creates a netlist of the default variety determined by the techmapper, and default filename determined by the netlister. |
static void |
netlist(Cell cell,
java.lang.String filename)
Creates a netlist of the default variety determined by the techmapper, and default filename determined by the netlister. |
void |
netlist(java.lang.String filename)
Creates a netlist of the default variety determined by the techmapper |
Wire |
padClock_o(Wire pad,
Wire in)
Create a clock pad. |
Wire |
padClock_o(Wire pad,
Wire in,
java.lang.String[] mods)
Create a clock pad. |
Wire |
padClock_o(Wire pad,
Wire in,
java.lang.String[] mods,
java.lang.String name)
Create a clock pad. |
Wire |
padClock(Wire pad)
Create a clock pad. |
Wire |
padClock(Wire pad,
java.lang.String[] mods)
Create a clock pad. |
Wire |
padClock(Wire pad,
java.lang.String[] mods,
java.lang.String name)
Create a clock pad. |
Wire |
padIn_o(Wire pad,
Wire in,
boolean clocked)
Create an input pad. |
Wire |
padIn_o(Wire pad,
Wire in,
boolean clocked,
java.lang.String[] mods)
Create an input pad. |
Wire |
padIn_o(Wire pad,
Wire in,
boolean clocked,
java.lang.String[] mods,
java.lang.String name)
Create an input pad. |
Wire |
padIn(Wire pad,
boolean clocked)
Create an input pad. |
Wire |
padIn(Wire pad,
boolean clocked,
java.lang.String[] mods)
Create an input pad. |
Wire |
padIn(Wire pad,
boolean clocked,
java.lang.String[] mods,
java.lang.String name)
Create an input pad. |
Wire |
padInout_o(Wire out,
Wire ena,
Wire pad,
Wire in,
boolean clockedOut,
boolean clockedIn)
Create an input/output pad. |
Wire |
padInout_o(Wire out,
Wire ena,
Wire pad,
Wire in,
boolean clockedOut,
boolean clockedIn,
java.lang.String[] mods)
Create an input/output pad. |
Wire |
padInout_o(Wire out,
Wire ena,
Wire pad,
Wire in,
boolean clockedOut,
boolean clockedIn,
java.lang.String[] mods,
java.lang.String name)
Create an input/output pad. |
Wire |
padInout(Wire out,
Wire ena,
Wire pad,
boolean clockedOut,
boolean clockedIn)
Create an input/output pad. |
Wire |
padInout(Wire out,
Wire ena,
Wire pad,
boolean clockedOut,
boolean clockedIn,
java.lang.String[] mods)
Create an input/output pad. |
Wire |
padInout(Wire out,
Wire ena,
Wire pad,
boolean clockedOut,
boolean clockedIn,
java.lang.String[] mods,
java.lang.String name)
Create an input/output pad. |
Wire |
padOut_o(Wire out,
Wire pad,
boolean clocked)
Create an output pad. |
Wire |
padOut_o(Wire out,
Wire pad,
boolean clocked,
java.lang.String[] mods)
Create an output pad. |
Wire |
padOut_o(Wire out,
Wire pad,
boolean clocked,
java.lang.String[] mods,
java.lang.String name)
Create an output pad. |
Wire |
padOut(Wire pad,
boolean clocked)
Create an output pad. |
Wire |
padOut(Wire pad,
boolean clocked,
java.lang.String[] mods)
Create an output pad. |
Wire |
padOut(Wire pad,
boolean clocked,
java.lang.String[] mods,
java.lang.String name)
Create an output pad. |
Wire |
padOutT_o(Wire out,
Wire ena,
Wire pad,
boolean clocked)
Create a tri-state output pad. |
Wire |
padOutT_o(Wire out,
Wire ena,
Wire pad,
boolean clocked,
java.lang.String[] mods)
Create a tri-state output pad. |
Wire |
padOutT_o(Wire out,
Wire ena,
Wire pad,
boolean clocked,
java.lang.String[] mods,
java.lang.String name)
Create a tri-state output pad. |
Wire |
padOutT(Wire ena,
Wire pad,
boolean clocked)
Create a tri-state output pad. |
Wire |
padOutT(Wire ena,
Wire pad,
boolean clocked,
java.lang.String[] mods)
Create a tri-state output pad. |
Wire |
padOutT(Wire ena,
Wire pad,
boolean clocked,
java.lang.String[] mods,
java.lang.String name)
Create a tri-state output pad. |
void |
place(Cell curr_cell,
Directive dir,
Cell prev_cell)
Places the cell curr_cell in the direction of dir from prev_cell. |
void |
place(Cell curr_cell,
Directive dir,
Wire prev_out)
Places curr_cell in the direction of dir from the cell associate with prev_out. |
void |
place(Cell c,
int x,
int y)
Annotates [x,y] placement hint onto the Cell parameter. |
static void |
place(Cell c,
int x,
int y,
java.lang.String s)
Aqnnotates [x,y] placement hint and target-specific String hint onto the Cell parameter. |
static void |
place(Cell c,
int x,
int y,
java.lang.String s,
boolean complain)
This is just here to let internal Logic placement not have warning messages. |
void |
place(Cell c,
java.lang.String s)
Annotates target-specific String placement hint onto
the Cell parameter. |
void |
place(Wire currWire,
Cell curr_cell,
Directive dir,
Wire prevWire,
Cell prev_cell)
This place method is the interface through which all port placement is done. |
void |
place(Wire currWire,
Cell curr_cell,
Directive dir,
Wire prevWire,
Wire prev_out)
This place method is a convenience method for port placement. |
void |
place(Wire curr_out,
Directive dir,
Cell prev_cell)
Places the cell associate with curr_out in the direction of dir from prev_cell. |
void |
place(Wire curr_out,
Directive dir,
Wire prev_out)
Places the cell associate with curr_out in the direction of dir from prev_out. |
void |
place(Wire out1,
int x,
int y)
Annotates placement hint (x,y) onto the Cell which drives wire out1. |
void |
place(Wire out1,
int x,
int y,
int dx,
int dy)
Annotates placement hint (x,y) onto the Cell which drives wire out1. |
void |
place(Wire out1,
int x,
int y,
int dx,
int dy,
java.lang.String s)
Deprecated. Iterated placement has caused much painful confusion. Therefore we suggest that you use standard placement, cell transformations, and relational placement instead. This should also simplify your code. |
void |
place(Wire out1,
int x,
int y,
java.lang.String s)
Annotates [x,y] placement hint and target-specific String hint onto the Cell which drives the wire
parameter. |
void |
place(Wire out1,
java.lang.String s)
Annotates target-specific String placement hint onto
the Cell which drives the wire parameter. |
void |
place(Wire currWire,
Wire curr_out,
Directive dir,
Wire prevWire,
Cell prev_cell)
This place method is a convenience method for port placement. |
void |
place(Wire currWire,
Wire curr_out,
Directive dir,
Wire prevWire,
Wire prev_out)
This place method is a convenience method for port placement. |
void |
printTechMapHints()
Debugging method. |
Wire |
range(Wire src,
int hi,
int lo)
Returns the sub-range of bits, [hi, lo] (inclusive) from a bus. |
Cell |
rotate(Cell c,
int degrees)
Rotates the specified cell by the specifed number of degrees in a counter-clockwise direction. |
Cell |
rotate(Wire w,
int degrees)
Rotates the source of the specified wire by the specifed number of degrees in a counter-clockwise direction. |
Cell |
scale(Cell c,
int xFact,
int yFact)
Scales the specified cell by the specifed amount in the x direction and by the specified amount in the y direction. |
Cell |
scale(Wire w,
int xFact,
int yFact)
Scales the source of the specified wire by the specifed amount in the x direction and by the specified amount in the y direction. |
static java.awt.Point |
setBBox(Cell par)
This method computes the bounding box of a cell, translates the children of that cell to position the upper left hand corner at (0,0) and returns how far the children were translated. |
static void |
setDefaultTechMapper(TechMapper tm)
Sets the default TechMapper associated with the Logic class. |
static void |
setFloorPlannerIsMaster(java.lang.Object fp,
boolean b)
Deprecated. floorPlannerIsMaster is not currently supported. |
static void |
setTechMappingEnabled(boolean b)
Specifies whether technology mapping hints are to be annotated. |
protected java.awt.Point |
setWandH(Cell par)
|
Wire |
signExtend_o(Wire a,
Wire q)
Sign extend to width of output wire |
Wire |
signExtend(Wire a,
int len)
Sign extend a wire |
Wire |
signExtend(Wire a,
int len,
java.lang.String name)
Sign extend a wire (named) |
Cell |
sink(Wire w,
Cell c)
|
Cell |
source(Wire w)
Deprecated. Use getSourceCell(Wire w), getSourceLeaf(Wire w), or getSourcePlaceable(Wire w), getSourcePlaceableLeaf(Wire w) |
Wire |
takeBot_o(Wire a,
Wire q)
Take the bottom part of a and put into output. |
Wire |
takeBot(Wire a,
int len)
Take the bottom part of a and put into output. |
Wire |
takeBot(Wire a,
int len,
java.lang.String name)
Take the bottom part of a and put into output (named). |
Wire |
takeBotSigned_o(Wire a,
Wire q)
Take the bottom part of a and put into output. |
Wire |
takeBotSigned(Wire a,
int len)
Take the bottom part of a and put into output. |
Wire |
takeTop_o(Wire a,
Wire q)
Take the top part of a and put into output. |
Wire |
takeTop(Wire a,
int len)
Take the top part of a and put into output. |
Wire |
takeTop(Wire a,
int len,
java.lang.String name)
Take the top part of a and put into output (named). |
void |
techmap(java.lang.Object arg)
Initiates any necessary post-processing steps in the TechMapper. |
static boolean |
techMappingEnabled()
Indicates the current enable status of technology hint annotation. |
Cell |
translate(Cell c,
int dx,
int dy)
Translates the specified cell by dx in the x direction and dy in the y direction. |
Cell |
translate(Wire w,
int dx,
int dy)
Translate the source of wire w by dx in the x direction and dy in the y direction. |
Wire |
zeroExtend_o(Wire a,
Wire q)
Zero extend to width of output wire |
Wire |
zeroExtend(Wire a,
int len)
Zero extend a wire |
Wire |
zeroExtend(Wire a,
int len,
java.lang.String name)
Zero extend a wire (named) |
Wire |
zeroExtendRight_o(Wire a,
Wire q)
Zero extend a wire on right to width of output |
Wire |
zeroExtendRight(Wire a,
int len)
Zero extend a wire on the right |
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 |
Field Detail |
public static final int UNCONSTRAINED
public static final int MAX_PACK
public static final int UP
public static final int DOWN
public static final int TORIGHT
public static final int TOLEFT
public static final int ONTOP
public static final int ALIGN_RIGHT
public static final int ALIGN_LEFT
public static final int ALIGN_TOP
public static final int ALIGN_BOTTOM
public static final int ALIGN_CENTER
public static final int ALIGN_MSB
public static final int ALIGN_LSB
public static Directive ABOVE
public static Directive BELOW
public static Directive RIGHT_OF
public static Directive LEFT_OF
public static Directive ON
public static Directive NORTH_OF
public static Directive SOUTH_OF
public static Directive EAST_OF
public static Directive WEST_OF
public static Directive ONTOP_OF
Constructor Detail |
public Logic(Node parent)
parent
- The Node object to be used as parent.public Logic(Node parent, java.lang.String name)
parent
- The Node object to be used as parent.name
- The name of the cell.public Logic(Node parent, boolean connect_implicit_ports)
parent
- The Node object to be used as parent.connect_implicit_ports
- Should Logic be responsible for connecting implicit portspublic Logic(Node parent, java.lang.String name, boolean connect_implicit_ports)
parent
- The Node object to be used as parent.name
- The name of the cell.connect_implicit_ports
- Should Logic be responsible for connecting implicit portsprotected Logic(Node parent, TechMapper tm)
parent
- The Node object to be used as parent.tm
- The TechMapper object to use for technology mapping.protected Logic(Node parent, TechMapper tm, java.lang.String name, boolean connect_implicit_ports)
parent
- The Node object to be used as parent.tm
- The TechMapper object to use for technology mapping.name
- The name of the cell.Method Detail |
public TechMapper getTechMapper()
public static TechMapper getDefaultTechMapper()
public static void setDefaultTechMapper(TechMapper tm)
tm
- The TechMapper object to be associated with the Logic class.public static boolean enableNewPlacement()
public void enableNewPlacement(boolean enp)
public static void setFloorPlannerIsMaster(java.lang.Object fp, boolean b)
fp
- The FloorPlanner module that will be the masterb
- true
if the FloorPlanner is to be masterpublic static void setTechMappingEnabled(boolean b)
b
- The enable value: true
to enable,
false
to disable.public static boolean techMappingEnabled()
true
if enabled, false
if
disabled.protected void connect_implicit_ports()
connectImplicitPorts()
.
#implicit_ports
. For backwards
compatibility reasons, it is still called by reflection if you have instantiated
it, but this practice is discouraged. Instead, you should override the new name.
protected void connectImplicitPorts()
#implicit_ports
.
If you used the old version of connect_implicit_ports, this method will use
reflection to see that the old version gets called correctly.
public Wire getGlobalClock(HWSystem system)
getDefaultClock()
system
- The HWSystem with which to register the global clock
public Wire getDefaultClock()
getDefaultClock
in class Node
public Wire clockDriver(Wire clock, java.lang.String schedule)
public Wire clockDriver(Wire clock, java.lang.String schedule, java.lang.String name)
public Wire range(Wire src, int hi, int lo)
src
- Source wire.hi
- Highest-order bit to retrieve (inclusive).lo
- Lowest-order bit to retrieve (inclusive).
public Cell map(Wire i1, Wire o)
i1
- Input 1 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire i2, Wire o)
i1
- Input 1 to "primitive".i2
- Input 2 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire i2, Wire i3, Wire o)
i1
- Input 1 to "primitive".i2
- Input 2 to "primitive".i3
- Input 3 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire i2, Wire i3, Wire i4, Wire o)
i1
- Input 1 to "primitive".i2
- Input 2 to "primitive".i3
- Input 3 to "primitive".i4
- Input 4 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire i2, Wire i3, Wire i4, Wire i5, Wire o)
i1
- Input 1 to "primitive".i2
- Input 2 to "primitive".i3
- Input 3 to "primitive".i4
- Input 4 to "primitive".i5
- Input 5 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire i2, Wire i3, Wire i4, Wire i5, Wire i6, Wire o)
i1
- Input 1 to "primitive".i2
- Input 2 to "primitive".i3
- Input 3 to "primitive".i4
- Input 4 to "primitive".i5
- Input 5 to "primitive".i6
- Input 6 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire i2, Wire i3, Wire i4, Wire i5, Wire i6, Wire i7, Wire o)
i1
- Input 1 to "primitive".i2
- Input 2 to "primitive".i3
- Input 3 to "primitive".i4
- Input 4 to "primitive".i5
- Input 5 to "primitive".i6
- Input 6 to "primitive".i7
- Input 7 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire i2, Wire i3, Wire i4, Wire i5, Wire i6, Wire i7, Wire i8, Wire o)
i1
- Input 1 to "primitive".i2
- Input 2 to "primitive".i3
- Input 3 to "primitive".i4
- Input 4 to "primitive".i5
- Input 5 to "primitive".i6
- Input 6 to "primitive".i7
- Input 7 to "primitive".i8
- Input 8 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire i2, Wire i3, Wire i4, Wire i5, Wire i6, Wire i7, Wire i8, Wire i9, Wire o)
i1
- Input 1 to "primitive".i2
- Input 2 to "primitive".i3
- Input 3 to "primitive".i4
- Input 4 to "primitive".i5
- Input 5 to "primitive".i6
- Input 6 to "primitive".i7
- Input 7 to "primitive".i8
- Input 8 to "primitive".i9
- Input 9 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire o, java.lang.String hints)
String
hints. The mapping call and hint string are interpreted as
appropriate by the TechMapper object associated with this Logic
object.
i1
- Input 1 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire i2, Wire o, java.lang.String hints)
String
hints. The mapping call and hint string are interpreted as
appropriate by the TechMapper object associated with this Logic
object.
i1
- Input 1 to "primitive".i2
- Input 2 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire i2, Wire i3, Wire o, java.lang.String hints)
String
hints. The mapping call and hint string are interpreted as
appropriate by the TechMapper object associated with this Logic
object.
i1
- Input 1 to "primitive".i2
- Input 2 to "primitive".i3
- Input 3 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire i2, Wire i3, Wire i4, Wire o, java.lang.String hints)
String
hints. The mapping call and hint string are interpreted as
appropriate by the TechMapper object associated with this Logic
object.
i1
- Input 1 to "primitive".i2
- Input 2 to "primitive".i3
- Input 3 to "primitive".i4
- Input 4 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire i2, Wire i3, Wire i4, Wire i5, Wire o, java.lang.String hints)
String
hints. The mapping call and hint string are interpreted as
appropriate by the TechMapper object associated with this Logic
object.
i1
- Input 1 to "primitive".i2
- Input 2 to "primitive".i3
- Input 3 to "primitive".i4
- Input 4 to "primitive".i5
- Input 5 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire i2, Wire i3, Wire i4, Wire i5, Wire i6, Wire o, java.lang.String hints)
String
hints. The mapping call and hint string are interpreted as
appropriate by the TechMapper object associated with this Logic
object.
i1
- Input 1 to "primitive".i2
- Input 2 to "primitive".i3
- Input 3 to "primitive".i4
- Input 4 to "primitive".i5
- Input 5 to "primitive".i6
- Input 6 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire i2, Wire i3, Wire i4, Wire i5, Wire i6, Wire i7, Wire o, java.lang.String hints)
String
hints. The mapping call and hint string are interpreted as
appropriate by the TechMapper object associated with this Logic
object.
i1
- Input 1 to "primitive".i2
- Input 2 to "primitive".i3
- Input 3 to "primitive".i4
- Input 4 to "primitive".i5
- Input 5 to "primitive".i6
- Input 6 to "primitive".i7
- Input 7 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire i2, Wire i3, Wire i4, Wire i5, Wire i6, Wire i7, Wire i8, Wire o, java.lang.String hints)
String
hints. The mapping call and hint string are interpreted as
appropriate by the TechMapper object associated with this Logic
object.
i1
- Input 1 to "primitive".i2
- Input 2 to "primitive".i3
- Input 3 to "primitive".i4
- Input 4 to "primitive".i5
- Input 5 to "primitive".i6
- Input 6 to "primitive".i7
- Input 7 to "primitive".i8
- Input 8 to "primitive".o
- Output to "primitive".public Cell map(Wire i1, Wire i2, Wire i3, Wire i4, Wire i5, Wire i6, Wire i7, Wire i8, Wire i9, Wire o, java.lang.String hints)
String
hints. The mapping call and hint string are interpreted as
appropriate by the TechMapper object associated with this Logic
object.
i1
- Input 1 to "primitive".i2
- Input 2 to "primitive".i3
- Input 3 to "primitive".i4
- Input 4 to "primitive".i5
- Input 5 to "primitive".i6
- Input 6 to "primitive".i7
- Input 7 to "primitive".i8
- Input 8 to "primitive".i9
- Input 9 to "primitive".o
- Output to "primitive".protected Cell map(Wire[] warray, Wire o, java.lang.String hints)
public void place(Wire out1, java.lang.String s)
String
placement hint onto
the Cell which drives the wire parameter. This form is used to
facilitate the placement of cells which are constructed using
other gate-constructing method calls in the Logic class,
as explained above.The meaning of the placement hint is determined by the TechMapper associated with this Logic object.
out1
- Wire whose driver is the gate to be placed.s
- Target-specific placement hint string.public void place(Wire out1, int x, int y)
place ( and_out, 5, 6 );
Wire and_out = and ( a, b, c, d );
The meaning of the placement hint is determined by the TechMapper
associated with this Logic object.
out1
- Wire whose driver is the gate to be placed.x
- X-placement hint.y
- Y-placement hint.public void place(Wire out1, int x, int y, java.lang.String s)
String
hint onto the Cell which drives the wire
parameter. This form is used to
facilitate the placement of cells which are constructed using
other gate-constructing method calls in the Logic class,
as explained above.The meaning of the placement hint is determined by the TechMapper associated with this Logic object.
out1
- Wire whose driver is the gate to be placed.x
- X-placement hint.y
- Y-placement hint.s
- Target-specific placement hint string.public void place(Wire out1, int x, int y, int dx, int dy)
This form is used for iteratively placing all the cells that drive the individual bits of the wire.
The meaning of the placement hint is determined by the TechMapper associated with this Logic object.
out1
- Wire whose driver is the gate to be placed.x
- X-placement hint.y
- Y-placement hint.dx
- X-increment for iterated placement.dy
- Y-increment for iterated placement.public void place(Wire out1, int x, int y, int dx, int dy, java.lang.String s)
String
hint onto the Cell which drives the wire
parameter. This form is used to facilitate the placement of
cells which are constructed using other gate-constructing method
calls in the Logic class, as explained above. This form is also used for iteratively placing all the cells that drive the individual bits of the wire. For example, assume that we have the following code, which instantiates and places 8 bits of register:
Wire in = wire( 8 );
Wire out = reg( in );
place( in, 0, 0, 1, 3 );
should result in placing the registers in positions (0,0), (1,3),
(2,6), (3,9), ... The meaning of each placement hint is
determined by the TechMapper associated with this Logic
object.
out1
- Wire whose driver is the gate to be placed.x
- X-placement hint.y
- Y-placement hint.dx
- X-increment for iterated placement.dy
- Y-increment for iterated placement.s
- Target-specific placement hint string.public void place(Cell c, int x, int y)
c
- Cell to be placed.public void place(Cell c, java.lang.String s)
String
placement hint onto
the Cell parameter.
The meaning of the placement hint is determined by the TechMapper
associated with this Logic object.
c
- Cell to be placed.s
- Target-specific placement hint string.public static void place(Cell c, int x, int y, java.lang.String s)
String
hint onto the Cell parameter.
The meaning of the placement hint is determined by the TechMapper
associated with this Logic object.
c
- Cell to be placed.x
- X-placement hint.y
- Y-placement hint.s
- Target-specific placement hint string.public static void place(Cell c, int x, int y, java.lang.String s, boolean complain)
public void place(Wire curr_out, Directive dir, Wire prev_out)
curr_out
- The output Wire of the cell to be placed.dir
- A Directive object that specifies how this cell is to be placed and
aligned relative to the previous cell.prev_out
- The output Wire of the cell we are placing relative to.public void place(Cell curr_cell, Directive dir, Wire prev_out)
curr_cell
- The cell to be placed.dir
- A Directive object that specifies how this cell is to be placed and
aligned relative to the previous cell.prev_out
- The output Wire of the cell we are placing relative to.public void place(Wire curr_out, Directive dir, Cell prev_cell)
curr_out
- The output Wire of the cell to be placed.dir
- A Directive object that specifies how this cell is to be placed and
aligned relative to the previous cell.prev_cell
- The cell we are placing relative to.public void place(Cell curr_cell, Directive dir, Cell prev_cell)
curr_cell
- The cell to be placed.dir
- A Directive object that specifies how this cell is to be placed and
aligned relative to the previous cell.prev_cell
- The cell we are placing relative to.public void place(Wire currWire, Wire curr_out, Directive dir, Wire prevWire, Wire prev_out)
currWire
- the Wire to align curr_cell with.curr_out
- the Wire whose source is to be placed.dir
- The Directive which specifies the direction to place in.prevWire
- the Wire to align the previous cell with.prev_out
- the Wire whose source we are placing relationally to.public void place(Wire currWire, Cell curr_cell, Directive dir, Wire prevWire, Wire prev_out)
currWire
- the Wire to align curr_cell with.curr_cell
- the Cell to be placed.dir
- The Directive which specifies the direction to place in.prevWire
- the Wire to align the previous cell with.prev_out
- the Wire whose source we are placing relationally to.public void place(Wire currWire, Wire curr_out, Directive dir, Wire prevWire, Cell prev_cell)
currWire
- the Wire to align curr_cell with.curr_out
- the Wire whose source is to be placed.dir
- The Directive which specifies the direction to place in.prevWire
- the Wire to align the previous cell with.prev_cell
- the Cell that we are placing relationally to.public void place(Wire currWire, Cell curr_cell, Directive dir, Wire prevWire, Cell prev_cell)
currWire
- the Wire to align curr_cell with.curr_cell
- the Cell to be placed.dir
- The Directive which specifies the direction to place in.prevWire
- the Wire to align the previous cell with.prev_cell
- the Cell that we are placing relationally to.public Cell translate(Wire w, int dx, int dy)
w
- The output wire of the cell to be tranlated.dx
- How far to translate the cell in the x direction.dy
- How far to translate the cell in the y direction.public Cell translate(Cell c, int dx, int dy)
dx
- How far to translate the cell in the x direction.dy
- How far to translate the cell in the y direction.public Cell rotate(Wire w, int degrees)
w
- The output wire of the cell to be rotated.degrees
- How far to rotate the cell in the Counter-clockwise direction.public Cell rotate(Cell c, int degrees)
c
- The cell to be rotated.degrees
- How far to rotate the cell in the Counter-clockwise direction.public Cell scale(Wire w, int xFact, int yFact)
w
- The output wire of the cell to be scaled.xFact
- How much to scale the cell by in the X direction.yFact
- How much to scale the cell by in the Y direction.public Cell scale(Cell c, int xFact, int yFact)
c
- The cell to be scaled.xFact
- How much to scale the cell by in the X direction.yFact
- How much to scale the cell by in the Y direction.public static java.awt.Point setBBox(Cell par)
par
- The cell for which we are computing a bounding box.
protected java.awt.Point setWandH(Cell par)
public static void lockChildPlacement(Cell c)
c
- The cell whose children will be locked together.public void techmap(java.lang.Object arg)
public Cell source(Wire w)
Cell c = source(sum); // Find the source
new adder(a, b, sum); // A structural adder
In the above example, c will be a reference to the new
adder. If we looked at sum's source nodes, however, we
would only find the individual xor gates, etc. inside the adder
that drive the wire in simulation.
w
- Wire whose source is to be found.
public Cell getSourceCell(Wire w)
w
- Wire whose simulation sources is to be found.
public static Cell getSourceCell(Cell parent, Wire w)
parent
- Cell who is the hierarchical/simulation parent of the cell to return.w
- Wire whose simulation sources is to be found.
public static Cell getSourceLeaf(Wire w)
w
- Wire whose simulation sources is to be found.
public Cell getSourcePlaceable(Wire w)
w
- Wire whose simulation sources is to be found.
public Cell getSourcePlaceableLeaf(Wire w)
w
- Wire whose simulation sources is to be found.
public Cell sink(Wire w, Cell c)
public static Cell getSinkCell(Wire w)
w
- Wire whose simulation sink is to be found.
public java.lang.String getTechMapHint(Wire w)
String
describing the technology mapping
hints for the Cell that is the source for the wire parameter.
Meaning of hint
string is determined by the TechMapper object associated with
this Logic object.
w
- Wire driven by the desired source Cell.
public java.lang.String getTechMapHint(Cell c)
String
describing the technology mapping
hints for the Cell parameter. Meaning of hint
string is determined by the TechMapper object associated with
this Logic object.
c
- Cell whose technology mapping hints are to be returned.
public void printTechMapHints()
public SubCell constructSubCell(Node parent, java.lang.String name)
constructSubCell
in class Cell
parent
- the parent of the subcellname
- the name of the subcell
public SubCell constructSubCellNoImplicitPorts(Node parent, java.lang.String name)
Cell
Cell.pushHierarchyNoImplicitPorts(CellInterface[], String, boolean, String)
.
The SubCell
interface should only be applied to an object that extends Cell.
When extending this, be sure to also extend getSubCellClass.
constructSubCellNoImplicitPorts
in class Cell
parent
- the parent of the subcellname
- the name of the subcell
public java.lang.Class getSubCellClass()
getSubCellClass
in class Cell
public Wire takeTop(Wire a, int len)
a
- the input wirelen
- length to chop to
public Wire takeTop(Wire a, int len, java.lang.String name)
a
- the input wirelen
- length to chop toname
- name of the cell and output wire
public Wire takeTop_o(Wire a, Wire q)
a
- the input wireq
- the output wire
public Wire takeBot(Wire a, int len)
a
- the input wirelen
- length to chop to
public Wire takeBot(Wire a, int len, java.lang.String name)
a
- the input wirelen
- length to chop to
public Wire takeBot_o(Wire a, Wire q)
a
- the input wireq
- the output wire
public Wire takeBotSigned(Wire a, int len)
a
- the input wirelen
- length to chop to
public Wire takeBotSigned_o(Wire a, Wire q)
a
- the input wire
public Wire extend(boolean signed, Wire a, int len)
signed
- tell whether to do signed extend or zero pada
- the input wire
public Wire extend(boolean signed, Wire a, int len, java.lang.String name)
signed
- tell whether to do signed extend or zero pada
- the input wirename
- name of the cell and output wire
public Wire signExtend(Wire a, int len)
a
- the input wirelen
- number of places to extend to
public Wire signExtend(Wire a, int len, java.lang.String name)
a
- the input wirelen
- number of places to extend toname
- name of the cell and output wire
public Wire signExtend_o(Wire a, Wire q)
a
- the input wireq
- the output wire
public Wire zeroExtend(Wire a, int len)
a
- the input wirelen
- number of places to extend to
public Wire zeroExtend(Wire a, int len, java.lang.String name)
a
- the input wirelen
- number of places to extend toname
- name of the cell and output wire
public Wire zeroExtend_o(Wire a, Wire q)
a
- the input wireq
- the output wire
public Wire zeroExtendRight(Wire a, int len)
a
- the input wirelen
- number of places to extend to
public Wire zeroExtendRight_o(Wire a, Wire q)
a
- the input wireq
- the output wire
public Wire growAndShiftl(Wire a, int len)
a
- the input wirelen
- number of places to extend topublic static Wire msb(Wire a)
a
- the wire
public static Wire msb(Wire a, int n)
a
- the wiren
- 0=MSB, 1=next to MSB, etc...
public static Wire lsb(Wire a)
a
- the wire
public static Wire lsb(Wire a, int n)
a
- the wiren
- 0=LSB, 1=next to LSB, etc...
public static int msbIndx(Wire a)
a
- the wire
public Wire padIn(Wire pad, boolean clocked)
pad
- the pad wireclocked
- flag indicating whether it should be a clocked pad or just combinational
public Wire padIn(Wire pad, boolean clocked, java.lang.String[] mods)
pad
- the pad wireclocked
- flag indicating whether it should be a clocked pad or just combinationalmods
- String array of modifiers for pad. Legal modifers: XC4000=none, Virtex=none.
public Wire padIn(Wire pad, boolean clocked, java.lang.String[] mods, java.lang.String name)
pad
- the pad wireclocked
- flag indicating whether it should be a clocked pad or just combinationalmods
- String array of modifiers for pad. Legal modifers: XC4000=none, Virtex=none.name
- the name of the buffer or flip flop output wire created
public Wire padIn_o(Wire pad, Wire in, boolean clocked)
pad
- the pad wirein
- a wire to hook up the buffer or flip flop output toclocked
- flag indicating whether it should be a clocked pad or just combinational
public Wire padIn_o(Wire pad, Wire in, boolean clocked, java.lang.String[] mods)
pad
- the pad wirein
- a wire to hook up the buffer or flip flop output toclocked
- flag indicating whether it should be a clocked pad or just combinationalmods
- String array of modifiers for pad. Legal modifers: XC4000=none, Virtex=none.
public Wire padIn_o(Wire pad, Wire in, boolean clocked, java.lang.String[] mods, java.lang.String name)
pad
- the pad wirein
- a wire to hook up the buffer or flip flop output toclocked
- flag indicating whether it should be a clocked pad or just combinationalmods
- String array of modifiers for pad. Legal modifers: XC4000=none, Virtex=none.name
- the name of the buffer or flip flop output wire created
public Wire padOut(Wire pad, boolean clocked)
pad
- the pad wireclocked
- flag indicating whether it should be a clocked pad or just combinational
public Wire padOut(Wire pad, boolean clocked, java.lang.String[] mods)
pad
- the pad wireclocked
- flag indicating whether it should be a clocked pad or just combinationalmods
- String array of modifiers for pad. Legal modifers: XC4000="FAST", "SLOW", Virtex="FAST", "SLOW".
public Wire padOut(Wire pad, boolean clocked, java.lang.String[] mods, java.lang.String name)
pad
- the pad wireclocked
- flag indicating whether it should be a clocked pad or just combinationalmods
- String array of modifiers for pad. Legal modifers: XC4000="FAST", "SLOW", Virtex="FAST", "SLOW".name
- name of wire created as the input to the output buffer
or flip flop and name of buffer or flip flop
public Wire padOut_o(Wire out, Wire pad, boolean clocked)
out
- the wire in your circuit which should be the input to the
output buffer or flip floppad
- the pad wireclocked
- flag indicating whether it should be a clocked pad or just combinational
public Wire padOut_o(Wire out, Wire pad, boolean clocked, java.lang.String[] mods)
out
- the wire in your circuit which should be the input to the
output buffer or flip floppad
- the pad wireclocked
- flag indicating whether it should be a clocked pad or just combinationalmods
- String array of modifiers for pad. Legal modifers: XC4000="FAST", "SLOW", Virtex="FAST", "SLOW".
public Wire padOut_o(Wire out, Wire pad, boolean clocked, java.lang.String[] mods, java.lang.String name)
out
- the wire in your circuit which should be the input to the
output buffer or flip floppad
- the pad wireclocked
- flag indicating whether it should be a clocked pad or just combinationalmods
- String array of modifiers for pad. Legal modifers: XC4000="FAST", "SLOW", Virtex="FAST", "SLOW".name
- name of buffer or flip flop created
public Wire padOutT(Wire ena, Wire pad, boolean clocked)
ena
- the enable wire to the tri-state buffer. Active low.pad
- the pad wireclocked
- flag indicating whether it should be a clocked pad or just combinational
public Wire padOutT(Wire ena, Wire pad, boolean clocked, java.lang.String[] mods)
ena
- the enable wire to the tri-state buffer. Active low.pad
- the pad wireclocked
- flag indicating whether it should be a clocked pad or just combinationalmods
- String array of modifiers for pad. Legal modifers: XC4000="FAST", "SLOW", Virtex="FAST", "SLOW".
public Wire padOutT(Wire ena, Wire pad, boolean clocked, java.lang.String[] mods, java.lang.String name)
ena
- the enable wire to the tri-state buffer. Active low.pad
- the pad wireclocked
- flag indicating whether it should be a clocked pad or just combinationalmods
- String array of modifiers for pad. Legal modifers: XC4000="FAST", "SLOW", Virtex="FAST", "SLOW".name
- the name of the input wire created
public Wire padOutT_o(Wire out, Wire ena, Wire pad, boolean clocked)
out
- the wire in your circuit which should be the input to the
tri-state buffer or flip flopena
- the enable wire to the tri-state buffer. Active low.pad
- the pad wireclocked
- flag indicating whether it should be a clocked pad or just combinational
public Wire padOutT_o(Wire out, Wire ena, Wire pad, boolean clocked, java.lang.String[] mods)
out
- the wire in your circuit which should be the input to the
tri-state buffer or flip flopena
- the enable wire to the tri-state buffer. Active low.pad
- the pad wireclocked
- flag indicating whether it should be a clocked pad or just combinationalmods
- String array of modifiers for pad. Legal modifers: XC4000="FAST", "SLOW", Virtex="FAST", "SLOW".
public Wire padOutT_o(Wire out, Wire ena, Wire pad, boolean clocked, java.lang.String[] mods, java.lang.String name)
out
- the wire in your circuit which should be the input to the
tri-state buffer or flip flopena
- the enable wire to the tri-state buffer. Active low.pad
- the pad wireclocked
- flag indicating whether it should be a clocked pad or just combinationalmods
- String array of modifiers for pad. Legal modifers: XC4000="FAST", "SLOW", Virtex="FAST", "SLOW".name
- the name of the buffer or register created.
public Wire padInout(Wire out, Wire ena, Wire pad, boolean clockedOut, boolean clockedIn)
out
- the wire in your circuit which should be the input to the
tri-state buffer or flip flopena
- the enable wire to the tri-state buffer. Active low.pad
- the pad wireclockedOut
- flag indicating whether a clocked tri-state should
be used or just a simple tri-state bufferclockedIn
- flag indicating whether input path should be clocked
public Wire padInout(Wire out, Wire ena, Wire pad, boolean clockedOut, boolean clockedIn, java.lang.String[] mods)
out
- the wire in your circuit which should be the input to the
tri-state buffer or flip flopena
- the enable wire to the tri-state buffer. Active low.pad
- the pad wireclockedOut
- flag indicating whether a clocked tri-state should
be used or just a simple tri-state bufferclockedIn
- flag indicating whether input path should be clockedmods
- String array of modifiers for pad. Legal modifers: XC4000="FAST", "SLOW", Virtex="FAST", "SLOW".
public Wire padInout(Wire out, Wire ena, Wire pad, boolean clockedOut, boolean clockedIn, java.lang.String[] mods, java.lang.String name)
out
- the wire in your circuit which should be the input to the
tri-state buffer or flip flopena
- the enable wire to the tri-state buffer. Active low.pad
- the pad wireclockedOut
- flag indicating whether a clocked tri-state should
be used or just a simple tri-state bufferclockedIn
- flag indicating whether input path should be clockedmods
- String array of modifiers for pad. Legal modifers: XC4000="FAST", "SLOW", Virtex="FAST", "SLOW".name
- the name of the buffer or flip flop output wire created
public Wire padInout_o(Wire out, Wire ena, Wire pad, Wire in, boolean clockedOut, boolean clockedIn)
out
- the wire in your circuit which should be the input to the
tri-state buffer or flip flopena
- the enable wire to the tri-state buffer. Active low.pad
- the pad wirein
- the output of the input buffer or flip flopclockedOut
- flag indicating whether a clocked tri-state should
be used or just a simple tri-state bufferclockedIn
- flag indicating whether input path should be clocked
public Wire padInout_o(Wire out, Wire ena, Wire pad, Wire in, boolean clockedOut, boolean clockedIn, java.lang.String[] mods)
out
- the wire in your circuit which should be the input to the
tri-state buffer or flip flopena
- the enable wire to the tri-state buffer. Active low.pad
- the pad wirein
- the output of the input buffer or flip flopclockedOut
- flag indicating whether a clocked tri-state should
be used or just a simple tri-state bufferclockedIn
- flag indicating whether input path should be clockedmods
- String array of modifiers for pad. Legal modifers: XC4000="FAST", "SLOW", Virtex="FAST", "SLOW".
public Wire padInout_o(Wire out, Wire ena, Wire pad, Wire in, boolean clockedOut, boolean clockedIn, java.lang.String[] mods, java.lang.String name)
out
- the wire in your circuit which should be the input to the
tri-state buffer or flip flopena
- the enable wire to the tri-state buffer. Active low.pad
- the pad wirein
- the output of the input buffer or flip flopclockedOut
- flag indicating whether a clocked tri-state should
be used or just a simple tri-state bufferclockedIn
- flag indicating whether input path should be clockedmods
- String array of modifiers for pad. Legal modifers: XC4000="FAST", "SLOW", Virtex="FAST", "SLOW".name
- the name of the buffer or flip flop output wire created
public Wire padClock(Wire pad)
#clockDriver()
to set up your
clock with a pattern and, optionally, DLL's or anything else your
technology supports.
pad
- the pad wire
public Wire padClock(Wire pad, java.lang.String[] mods)
#clockDriver()
to set up your
clock with a pattern and, optionally, DLL's or anything else your
technology supports. Modifiers are technology-dependent.
pad
- the pad wiremods
- String array of modifiers for pad. Legal modifers: XC4000=none, Virtex=none.
public Wire padClock(Wire pad, java.lang.String[] mods, java.lang.String name)
#clockDriver()
to set up your
clock with a pattern and, optionally, DLL's or anything else your
technology supports. Legal modifers: XC4000=none, Virtex=none.
pad
- the pad wiremods
- String array of modifiers for pad. No modifiers
currently recognizedname
- name of the wire created and returned
public Wire padClock_o(Wire pad, Wire in)
#clockDriver()
to set up your
clock with a pattern and, optionally, DLL's or anything else your
technology supports.
pad
- the pad wirein
- a wire to hook up the buffer or flip flop output to
public Wire padClock_o(Wire pad, Wire in, java.lang.String[] mods)
#clockDriver()
to set up your
clock with a pattern and, optionally, DLL's or anything else your
technology supports. Modifiers are technology-dependent.
pad
- the pad wirein
- a wire to hook up the buffer or flip flop output tomods
- String array of modifiers for pad. Legal modifers: XC4000=none, Virtex=none.
public Wire padClock_o(Wire pad, Wire in, java.lang.String[] mods, java.lang.String name)
#clockDriver()
to set up your
clock with a pattern and, optionally, DLL's or anything else your
technology supports. Modifiers are technology-dependent.
pad
- the pad wirein
- a wire to hook up the buffer or flip flop output tomods
- String array of modifiers for pad. Legal modifers: XC4000=none, Virtex=none.name
- name of the pad or buffer created
public void netlist()
public void netlist(java.lang.String filename)
filename
- the (top-level) file to write the netlist inpublic static void netlist(Cell cell)
cell
- the cell to netlistpublic static void netlist(Cell cell, java.lang.String filename)
cell
- the cell to netlistfilename
- the (top-level) file to write the netlist inpublic void netlist(boolean flat)
flat
- whether the netlist should be flatpublic void netlist(boolean flat, java.lang.String filename)
flat
- whether the netlist should be flatfilename
- the (top-level) file to write the netlist inpublic static void netlist(Cell cell, boolean flat)
cell
- the cell to netlistflat
- whether the netlist should be flatpublic static void netlist(Cell cell, boolean flat, java.lang.String filename)
cell
- the cell to netlistflat
- whether the netlist should be flatfilename
- the (top-level) file to write the netlist in
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |