com.sun.electric.tool.logicaleffort
Class LENetlister2

java.lang.Object
  extended by com.sun.electric.database.hierarchy.HierarchyEnumerator.Visitor
      extended by com.sun.electric.tool.logicaleffort.LENetlister
          extended by com.sun.electric.tool.logicaleffort.LENetlister2

public class LENetlister2
extends LENetlister

Creates a logical effort netlist to be sized by LESizer. This is so the LESizer is independent of Electric's Database, and can match George Chen's C++ version being developed for PNP.

Author:
gainsley

Nested Class Summary
static class LENetlister2.LECellInfo
          Logical Effort Cell Info class.
 
Nested classes/interfaces inherited from class com.sun.electric.tool.logicaleffort.LENetlister
LENetlister.NetlisterConstants
 
Field Summary
protected  LENetlister.NetlisterConstants constants
          Netlister constants
 
Fields inherited from class com.sun.electric.tool.logicaleffort.LENetlister
ATTR_alpha, ATTR_diffn, ATTR_diffp, ATTR_epsilon, ATTR_gate_cap, ATTR_keeper_ratio, ATTR_L, ATTR_le, ATTR_LEGATE, ATTR_LEIGNORE, ATTR_LEKEEPER, ATTR_LEPARALLGRP, ATTR_LESETTINGS, ATTR_LEWIRE, ATTR_LEWIRECAP, ATTR_max_iter, ATTR_su, ATTR_wire_ratio
 
Constructor Summary
LENetlister2(Job job, Technology layoutTech)
          Creates a new instance of LENetlister
 
Method Summary
 void done()
          Call to stop or interrupt netlisting
 void doneVisitNodeInst(Nodable ni, HierarchyEnumerator.CellInfo info)
           
 boolean enterCell(HierarchyEnumerator.CellInfo info)
          Enter cell initializes the LECellInfo.
 void exitCell(HierarchyEnumerator.CellInfo info)
          Nothing to do for exitCell
 LENetlister.NetlisterConstants getConstants()
          Get the settings used for sizing
 ErrorLogger getErrorLogger()
          Get the error logger
protected  float getGlobalSU()
           
protected  float getKeeperRatio()
           
protected  java.util.Iterator<LENodable> getSizeableNodables()
           
protected  LESizer2 getSizer()
           
 void getSizes(java.util.List<java.lang.Float> sizes, java.util.List<java.lang.String> varNames, java.util.List<NodeInst> nodes, java.util.List<VarContext> contexts)
          Updates the size of all Logical Effort gates
 float getTotalLESize()
          Get the total size of all gates sized using Logical Effort
 boolean netlist(Cell cell, VarContext context, boolean useCaching)
          Call to start netlisting.
 HierarchyEnumerator.CellInfo newCellInfo()
          Override the default Cell info to pass along logical effort specific information
 void nullErrorLogger()
          Destroy the error logger
 boolean printResults(Nodable no, VarContext context)
          print the results for the Nodable
 void printStatistics()
           
 boolean size(LESizer.Alg algorithm)
          Size the netlist.
static void test1()
           
 void updateSizes()
          Updates the size of all Logical Effort gates
 boolean visitNodeInst(Nodable ni, HierarchyEnumerator.CellInfo info)
          Visit NodeInst creates a new Logical Effort instance from the parameters found on the Nodable, if that Nodable is an LEGATE.
 
Methods inherited from class com.sun.electric.tool.logicaleffort.LENetlister
getSettings, isSettingsConflict, saveSettings
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

constants

protected LENetlister.NetlisterConstants constants
Netlister constants

Constructor Detail

LENetlister2

public LENetlister2(Job job,
                    Technology layoutTech)
Creates a new instance of LENetlister

Method Detail

netlist

public boolean netlist(Cell cell,
                       VarContext context,
                       boolean useCaching)
Description copied from class: LENetlister
Call to start netlisting. Returns false if failed

Specified by:
netlist in class LENetlister

size

public boolean size(LESizer.Alg algorithm)
Size the netlist.

Specified by:
size in class LENetlister
Returns:
true on success, false otherwise.

getSizes

public void getSizes(java.util.List<java.lang.Float> sizes,
                     java.util.List<java.lang.String> varNames,
                     java.util.List<NodeInst> nodes,
                     java.util.List<VarContext> contexts)
Updates the size of all Logical Effort gates

Specified by:
getSizes in class LENetlister

updateSizes

public void updateSizes()
Updates the size of all Logical Effort gates


done

public void done()
Description copied from class: LENetlister
Call to stop or interrupt netlisting

Specified by:
done in class LENetlister

getErrorLogger

public ErrorLogger getErrorLogger()
Description copied from class: LENetlister
Get the error logger

Specified by:
getErrorLogger in class LENetlister

nullErrorLogger

public void nullErrorLogger()
Description copied from class: LENetlister
Destroy the error logger

Specified by:
nullErrorLogger in class LENetlister

getConstants

public LENetlister.NetlisterConstants getConstants()
Description copied from class: LENetlister
Get the settings used for sizing

Specified by:
getConstants in class LENetlister

getSizeableNodables

protected java.util.Iterator<LENodable> getSizeableNodables()

getGlobalSU

protected float getGlobalSU()

getSizer

protected LESizer2 getSizer()

getKeeperRatio

protected float getKeeperRatio()

newCellInfo

public HierarchyEnumerator.CellInfo newCellInfo()
Override the default Cell info to pass along logical effort specific information

Overrides:
newCellInfo in class HierarchyEnumerator.Visitor
Returns:
a LECellInfo

enterCell

public boolean enterCell(HierarchyEnumerator.CellInfo info)
Enter cell initializes the LECellInfo.

Specified by:
enterCell in class HierarchyEnumerator.Visitor
Parameters:
info - the LECellInfo
Returns:
true to process the cell, false to ignore.

visitNodeInst

public boolean visitNodeInst(Nodable ni,
                             HierarchyEnumerator.CellInfo info)
Visit NodeInst creates a new Logical Effort instance from the parameters found on the Nodable, if that Nodable is an LEGATE. It also creates instances for wire models (LEWIREs).

Specified by:
visitNodeInst in class HierarchyEnumerator.Visitor
Parameters:
ni - the Nodable being visited
info - the cell info
Returns:
true to push down into the Nodable, false to continue.

doneVisitNodeInst

public void doneVisitNodeInst(Nodable ni,
                              HierarchyEnumerator.CellInfo info)

exitCell

public void exitCell(HierarchyEnumerator.CellInfo info)
Nothing to do for exitCell

Specified by:
exitCell in class HierarchyEnumerator.Visitor
Parameters:
info - information about the Cell instance being enumerated

printStatistics

public void printStatistics()
Specified by:
printStatistics in class LENetlister

getTotalLESize

public float getTotalLESize()
Description copied from class: LENetlister
Get the total size of all gates sized using Logical Effort

Specified by:
getTotalLESize in class LENetlister

printResults

public boolean printResults(Nodable no,
                            VarContext context)
Description copied from class: LENetlister
print the results for the Nodable

Specified by:
printResults in class LENetlister
Returns:
true if successful, false otherwise

test1

public static void test1()