byucc.jhdl.Logic
Class TechMapper

java.lang.Object
  extended bybyucc.jhdl.Logic.BasicTechMapper
      extended bybyucc.jhdl.Logic.TechMapper
Direct Known Subclasses:
CSRCTechMapper, TechMapper, TechMapper

public abstract class TechMapper
extends BasicTechMapper

This is the abstract TechMapper class. It defines all the things that a TechMapper must do to successfully interface with the Logic class. The implementation of each of these methods provides the back-end specific gate instantiation and tech-mapping annotation.


Field Summary
protected  boolean _ignore_placement_calls
           
 
Constructor Summary
protected TechMapper()
          Default constructor, enables tech-mapping.
protected TechMapper(boolean enabled)
          Sets the techmapping enabled flag.
 
Method Summary
 int ALIGN_BOTTOM()
           
 int ALIGN_LEFT()
           
 int ALIGN_LSB()
           
 int ALIGN_MSB()
           
 int ALIGN_RIGHT()
           
 int ALIGN_TOP()
           
 PlacementInfo createPlacementInfo(Cell c)
           
 int DOWN()
           
 boolean getIgnorePlacementCalls()
           
 boolean getInsertTechMapHints()
          Returns whether a techmapper inserts placement hints before netlisting.
abstract  java.lang.String getLibName()
          Returns the name of the library targetted by the particular techmapper.
 Cell getSinkLeafCell(Logic parent, Cell c, Wire w1)
           
 Cell getSourceLeafCell(Logic parent, Wire w1)
           
 Cell getSourcePlaceable(Cell parent, Wire w1)
           
 Cell getSourcePlaceableLeaf(Cell parent, Wire w1)
           
 java.lang.String getTechMapHint(Logic parent, Cell c)
           
 java.lang.String getTechMapHint(Logic parent, Wire w)
           
protected  void insertTechMapHints(Cell cell)
          Does the work necessary to insert hints in the netlist of the cell.
 Cell map(Logic parent, Wire[] in, Wire out, java.lang.String hints)
           
 void netlist(Cell cell, boolean flat, NetlistWriter nw)
          Netlists the given cell downward hierarchically into the given file.
 void netlist(Cell cell, boolean flat, java.lang.String filename)
          Netlists the given cell downward hierarchically into the given file.
 void netlist(Cell cell, java.lang.String filename)
          Netlists the given cell downward hierarchically into the given file.
 void place(Logic parent, Cell c1, int x, int y, java.lang.String hints)
           
 void place(Logic parent, Wire w1, int x, int y, int dx, int dy, java.lang.String hints)
           
 void place(Logic parent, Wire w1, int x, int y, java.lang.String hints)
           
 void regc(Cell parent, Wire in, Wire out, java.lang.String name)
           
 void regc(Cell parent, Wire clk, Wire in, Wire out, java.lang.String name)
           
 void regce(Cell parent, Wire in, Wire ce, Wire out, java.lang.String name)
           
 void regce(Cell parent, Wire clk, Wire in, Wire ce, Wire out, java.lang.String name)
           
 void regp(Cell parent, Wire in, Wire out, java.lang.String name)
           
 void regp(Cell parent, Wire clk, Wire in, Wire out, java.lang.String name)
           
 void regpe(Cell parent, Wire in, Wire ce, Wire out, java.lang.String name)
           
 void regpe(Cell parent, Wire clk, Wire in, Wire ce, Wire out, java.lang.String name)
           
 void regr(Cell parent, Wire in, Wire r, Wire out, java.lang.String name)
           
 void regr(Cell parent, Wire clk, Wire in, Wire r, Wire out, java.lang.String name)
           
 void regre(Cell parent, Wire in, Wire ce, Wire r, Wire out, java.lang.String name)
           
 void regre(Cell parent, Wire clk, Wire in, Wire ce, Wire r, Wire out, java.lang.String name)
           
 void regs(Cell parent, Wire in, Wire s, Wire out, java.lang.String name)
           
 void regs(Cell parent, Wire clk, Wire in, Wire s, Wire out, java.lang.String name)
           
 void regse(Cell parent, Wire in, Wire ce, Wire s, Wire out, java.lang.String name)
           
 void regse(Cell parent, Wire clk, Wire in, Wire ce, Wire s, Wire out, java.lang.String name)
           
 void setIgnorePlacementCalls(boolean b)
          Allows a user to "re"-use a design that was placed in a technology that does not (or cannot) implement place calls.
 void setInsertTechMapHints(boolean b)
          Used to change whether a techmapper inserts placement hints before netlisting.
abstract  void techmap(Logic parent, java.lang.Object arg)
          Used to change whether a techmapper inserts placement hints before netlisting.
 int TOLEFT()
           
 int TORIGHT()
           
 int UP()
           
 
Methods inherited from class byucc.jhdl.Logic.BasicTechMapper
add, add, addsub, addsub, and, ashiftr, buf, clockDriver, concat, concat, constant, constant, createDefaultNetlister, getTechnology, gnd, mux, nand, netlist, netlist, nor, not, or, padClock, padIn, padInout, padOut, padOutT, pulldown, pullup, range, reg, reg, setTechnology, shiftl, shiftr, sub, sub, tbuf, unsupportedComponent, vcc, wire, wire, xnor, xor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_ignore_placement_calls

protected boolean _ignore_placement_calls
Constructor Detail

TechMapper

protected TechMapper()
Default constructor, enables tech-mapping.


TechMapper

protected TechMapper(boolean enabled)
Sets the techmapping enabled flag.

Parameters:
enabled - The new state of Logic.techMappingEnabled().
Method Detail

getLibName

public abstract java.lang.String getLibName()
Returns the name of the library targetted by the particular techmapper.

Specified by:
getLibName in class BasicTechMapper
Returns:
A String holding the library name.

netlist

public void netlist(Cell cell,
                    java.lang.String filename)
Netlists the given cell downward hierarchically into the given file.

Overrides:
netlist in class BasicTechMapper
Parameters:
cell - the root node of the netlist
filename - A String with the name of the target file.

netlist

public void netlist(Cell cell,
                    boolean flat,
                    java.lang.String filename)
Netlists the given cell downward hierarchically into the given file. Override this for more pre- or post-netlist behavior

Overrides:
netlist in class BasicTechMapper
Parameters:
cell - the root node of the netlist
flat - whether the netlist should be flat
filename - A String with the name of the target file.

netlist

public void netlist(Cell cell,
                    boolean flat,
                    NetlistWriter nw)
Netlists the given cell downward hierarchically into the given file. Override this for more pre- or post-netlist behavior

Overrides:
netlist in class BasicTechMapper
Parameters:
cell - the root node of the netlist
flat - whether the netlist should be flat

setInsertTechMapHints

public void setInsertTechMapHints(boolean b)
Used to change whether a techmapper inserts placement hints before netlisting.

Parameters:
b - the new value of the insertTechMapHints flag

getInsertTechMapHints

public boolean getInsertTechMapHints()
Returns whether a techmapper inserts placement hints before netlisting.

Returns:
the value of the insertTechMapHints flag

setIgnorePlacementCalls

public void setIgnorePlacementCalls(boolean b)
Allows a user to "re"-use a design that was placed in a technology that does not (or cannot) implement place calls. This eases the burden on the techmapper writer.

Parameters:
b - boolean to ignore the techmapper placement calls.

getIgnorePlacementCalls

public boolean getIgnorePlacementCalls()

insertTechMapHints

protected void insertTechMapHints(Cell cell)
Does the work necessary to insert hints in the netlist of the cell.

Parameters:
cell - the cell (and possibly its subtree) to add techmap hints to.

map

public Cell map(Logic parent,
                Wire[] in,
                Wire out,
                java.lang.String hints)

place

public void place(Logic parent,
                  Cell c1,
                  int x,
                  int y,
                  java.lang.String hints)

place

public void place(Logic parent,
                  Wire w1,
                  int x,
                  int y,
                  java.lang.String hints)

place

public void place(Logic parent,
                  Wire w1,
                  int x,
                  int y,
                  int dx,
                  int dy,
                  java.lang.String hints)

getSourcePlaceable

public Cell getSourcePlaceable(Cell parent,
                               Wire w1)

getSourcePlaceableLeaf

public Cell getSourcePlaceableLeaf(Cell parent,
                                   Wire w1)

getSourceLeafCell

public Cell getSourceLeafCell(Logic parent,
                              Wire w1)

getSinkLeafCell

public Cell getSinkLeafCell(Logic parent,
                            Cell c,
                            Wire w1)

createPlacementInfo

public PlacementInfo createPlacementInfo(Cell c)

techmap

public abstract void techmap(Logic parent,
                             java.lang.Object arg)
Description copied from class: BasicTechMapper
Used to change whether a techmapper inserts placement hints before netlisting.

Specified by:
techmap in class BasicTechMapper

getTechMapHint

public java.lang.String getTechMapHint(Logic parent,
                                       Cell c)

getTechMapHint

public java.lang.String getTechMapHint(Logic parent,
                                       Wire w)

regc

public void regc(Cell parent,
                 Wire in,
                 Wire out,
                 java.lang.String name)

regce

public void regce(Cell parent,
                  Wire in,
                  Wire ce,
                  Wire out,
                  java.lang.String name)

regp

public void regp(Cell parent,
                 Wire in,
                 Wire out,
                 java.lang.String name)

regpe

public void regpe(Cell parent,
                  Wire in,
                  Wire ce,
                  Wire out,
                  java.lang.String name)

regr

public void regr(Cell parent,
                 Wire in,
                 Wire r,
                 Wire out,
                 java.lang.String name)

regre

public void regre(Cell parent,
                  Wire in,
                  Wire ce,
                  Wire r,
                  Wire out,
                  java.lang.String name)

regs

public void regs(Cell parent,
                 Wire in,
                 Wire s,
                 Wire out,
                 java.lang.String name)

regse

public void regse(Cell parent,
                  Wire in,
                  Wire ce,
                  Wire s,
                  Wire out,
                  java.lang.String name)

regc

public void regc(Cell parent,
                 Wire clk,
                 Wire in,
                 Wire out,
                 java.lang.String name)

regce

public void regce(Cell parent,
                  Wire clk,
                  Wire in,
                  Wire ce,
                  Wire out,
                  java.lang.String name)

regp

public void regp(Cell parent,
                 Wire clk,
                 Wire in,
                 Wire out,
                 java.lang.String name)

regpe

public void regpe(Cell parent,
                  Wire clk,
                  Wire in,
                  Wire ce,
                  Wire out,
                  java.lang.String name)

regr

public void regr(Cell parent,
                 Wire clk,
                 Wire in,
                 Wire r,
                 Wire out,
                 java.lang.String name)

regre

public void regre(Cell parent,
                  Wire clk,
                  Wire in,
                  Wire ce,
                  Wire r,
                  Wire out,
                  java.lang.String name)

regs

public void regs(Cell parent,
                 Wire clk,
                 Wire in,
                 Wire s,
                 Wire out,
                 java.lang.String name)

regse

public void regse(Cell parent,
                  Wire clk,
                  Wire in,
                  Wire ce,
                  Wire s,
                  Wire out,
                  java.lang.String name)

UP

public int UP()

DOWN

public int DOWN()

TORIGHT

public int TORIGHT()

TOLEFT

public int TOLEFT()

ALIGN_LEFT

public int ALIGN_LEFT()

ALIGN_RIGHT

public int ALIGN_RIGHT()

ALIGN_TOP

public int ALIGN_TOP()

ALIGN_BOTTOM

public int ALIGN_BOTTOM()

ALIGN_MSB

public int ALIGN_MSB()

ALIGN_LSB

public int ALIGN_LSB()


Copyright ? 2006 Brigham Young University, Configurable Computing Laboratory. All Rights Reserved.