com.sun.electric.tool.logicaleffort
Class LENetlister

java.lang.Object
  extended by com.sun.electric.database.hierarchy.HierarchyEnumerator.Visitor
      extended by com.sun.electric.tool.logicaleffort.LENetlister
Direct Known Subclasses:
LENetlister1, LENetlister2

public abstract class LENetlister
extends HierarchyEnumerator.Visitor


Nested Class Summary
protected static class LENetlister.LECellInfo
           
static class LENetlister.NetlisterConstants
           
 
Field Summary
static Variable.Key ATTR_alpha
           
static Variable.Key ATTR_diffn
           
static Variable.Key ATTR_diffp
           
static Variable.Key ATTR_epsilon
           
static Variable.Key ATTR_gate_cap
           
static Variable.Key ATTR_keeper_ratio
           
static Variable.Key ATTR_L
           
static Variable.Key ATTR_le
           
static Variable.Key ATTR_LEGATE
           
static Variable.Key ATTR_LEIGNORE
           
static Variable.Key ATTR_LEKEEPER
           
static Variable.Key ATTR_LEPARALLGRP
           
static Variable.Key ATTR_LESETTINGS
           
static Variable.Key ATTR_LEWIRE
           
static Variable.Key ATTR_LEWIRECAP
           
static Variable.Key ATTR_max_iter
           
static Variable.Key ATTR_su
           
static Variable.Key ATTR_wire_ratio
           
 
Method Summary
abstract  void done()
          Call to stop or interrupt netlisting
abstract  LENetlister.NetlisterConstants getConstants()
          Get the settings used for sizing
abstract  ErrorLogger getErrorLogger()
          Get the error logger
protected  LENetlister.NetlisterConstants getSettings(Cell cell)
          Get any Logical Effort settings saved on the specified cell
abstract  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)
          Get the sizes and associated variable names to store on the top level cell
abstract  float getTotalLESize()
          Get the total size of all gates sized using Logical Effort
protected  boolean isSettingsConflict(LENetlister.NetlisterConstants current, Cell topLevelCell, VarContext context, Cell localCell)
          This checks for LE settings in the cell, and returns true if they conflict.
abstract  boolean netlist(Cell cell, VarContext context, boolean useCaching)
          Call to start netlisting.
abstract  void nullErrorLogger()
          Destroy the error logger
abstract  boolean printResults(Nodable no, VarContext context)
          print the results for the Nodable
abstract  void printStatistics()
           
protected  boolean saveSettings(LENetlister.NetlisterConstants constants, Cell cell)
          Saves the Global settings to the cell.
abstract  boolean size(LESizer.Alg algorithm)
          Call to size netlist with the specified algorithm
 
Methods inherited from class com.sun.electric.database.hierarchy.HierarchyEnumerator.Visitor
enterCell, exitCell, newCellInfo, visitNodeInst
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ATTR_su

public static final Variable.Key ATTR_su

ATTR_le

public static final Variable.Key ATTR_le

ATTR_wire_ratio

public static final Variable.Key ATTR_wire_ratio

ATTR_epsilon

public static final Variable.Key ATTR_epsilon

ATTR_max_iter

public static final Variable.Key ATTR_max_iter

ATTR_gate_cap

public static final Variable.Key ATTR_gate_cap

ATTR_alpha

public static final Variable.Key ATTR_alpha

ATTR_diffn

public static final Variable.Key ATTR_diffn

ATTR_diffp

public static final Variable.Key ATTR_diffp

ATTR_keeper_ratio

public static final Variable.Key ATTR_keeper_ratio

ATTR_LEGATE

public static final Variable.Key ATTR_LEGATE

ATTR_LEKEEPER

public static final Variable.Key ATTR_LEKEEPER

ATTR_LEWIRE

public static final Variable.Key ATTR_LEWIRE

ATTR_LEIGNORE

public static final Variable.Key ATTR_LEIGNORE

ATTR_LESETTINGS

public static final Variable.Key ATTR_LESETTINGS

ATTR_LEPARALLGRP

public static final Variable.Key ATTR_LEPARALLGRP

ATTR_L

public static final Variable.Key ATTR_L

ATTR_LEWIRECAP

public static final Variable.Key ATTR_LEWIRECAP
Method Detail

netlist

public abstract boolean netlist(Cell cell,
                                VarContext context,
                                boolean useCaching)
Call to start netlisting. Returns false if failed


done

public abstract void done()
Call to stop or interrupt netlisting


size

public abstract boolean size(LESizer.Alg algorithm)
Call to size netlist with the specified algorithm

Returns:
true if successful, false otherwise

getErrorLogger

public abstract ErrorLogger getErrorLogger()
Get the error logger


nullErrorLogger

public abstract void nullErrorLogger()
Destroy the error logger


getConstants

public abstract LENetlister.NetlisterConstants getConstants()
Get the settings used for sizing


getSizes

public abstract 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)
Get the sizes and associated variable names to store on the top level cell


printStatistics

public abstract void printStatistics()

printResults

public abstract boolean printResults(Nodable no,
                                     VarContext context)
print the results for the Nodable

Returns:
true if successful, false otherwise

getTotalLESize

public abstract float getTotalLESize()
Get the total size of all gates sized using Logical Effort


getSettings

protected LENetlister.NetlisterConstants getSettings(Cell cell)
Get any Logical Effort settings saved on the specified cell

Parameters:
cell - the cell in question
Returns:
the netlister constants settings, or null if none found

isSettingsConflict

protected boolean isSettingsConflict(LENetlister.NetlisterConstants current,
                                     Cell topLevelCell,
                                     VarContext context,
                                     Cell localCell)
This checks for LE settings in the cell, and returns true if they conflict. It also warns the user that there are conflicting settings from the subcell.

Parameters:
current - the current settings (from the top level cell, or global options)
Returns:
true if there was a conflict, false otherwise

saveSettings

protected boolean saveSettings(LENetlister.NetlisterConstants constants,
                               Cell cell)
Saves the Global settings to the cell. Note that this does not overwrite settings already there. If any settings are found, it does nothing and returns false.

Returns:
true if settings saved, false otherwise