com.sun.electric.tool.logicaleffort
Class LENodable

java.lang.Object
  extended by com.sun.electric.tool.logicaleffort.LENodable

public class LENodable
extends java.lang.Object


Nested Class Summary
protected static class LENodable.Type
          Type is a typesafe enum class that describes the type of Instance this is
 
Field Summary
protected  VarContext context
           
protected  float leX
           
protected  LENetwork outputNetwork
           
protected  int parallelGroup
           
protected  float su
           
 
Constructor Summary
LENodable(Nodable no, LENodable.Type type, Variable mfactorVar, Variable suVar, Variable parallelGroupVar)
          Create a new LEInstance tied to the Nodable.
 
Method Summary
protected  void addPort(java.lang.String name, LEPin.Dir dir, float le, Network jnet)
          Add a port to this LEInstance
protected  LENodable copy()
           
protected  LENodable createUniqueInstance(VarContext context, LENetwork outputNetwork, float mfactor, float su, LENetlister.NetlisterConstants constants)
          Factory method to create a copy of this Nodable with the context-relevant info evaluated.
protected  java.lang.String getName()
           
protected  Nodable getNodable()
          Get the nodable
protected  Network getOutputNet()
          Get the output network
protected  java.util.List<LEPin> getPins()
          Get the pins
protected  LENodable.Type getType()
          Get the type
protected  boolean isGate()
          True if this is a gate
protected  boolean isLeGate()
          Return true if this is a sizeable gate
protected  void print()
           
protected  float printLoadInfo(LEPin pin, float alpha)
           
protected  java.lang.String printOneLine(java.lang.String indent)
           
protected  void printPins()
           
protected  boolean setOnlyContext(VarContext context, LENetwork outputNetwork, float mfactor, float su, LENetlister.NetlisterConstants constants)
          Set the only context of this LENodable.
protected  void setOutputNet(Network jnet)
          Set the output network
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

context

protected VarContext context

outputNetwork

protected LENetwork outputNetwork

su

protected float su

leX

protected float leX

parallelGroup

protected int parallelGroup
Constructor Detail

LENodable

public LENodable(Nodable no,
                 LENodable.Type type,
                 Variable mfactorVar,
                 Variable suVar,
                 Variable parallelGroupVar)
Create a new LEInstance tied to the Nodable. If the type represents a singular instance, i.e. whose properties do not change based on it's location in the hierarchy, then leContext is the singular (one and only) context. Otherwise, leContext is merely the first of many possible contexts.

Parameters:
no - the Nodable
Method Detail

copy

protected LENodable copy()

addPort

protected void addPort(java.lang.String name,
                       LEPin.Dir dir,
                       float le,
                       Network jnet)
Add a port to this LEInstance

Parameters:
name - the name of the port
dir - the direction of the port
le - the logical effort of the port

setOutputNet

protected void setOutputNet(Network jnet)
Set the output network


getOutputNet

protected Network getOutputNet()
Get the output network


getNodable

protected Nodable getNodable()
Get the nodable


getType

protected LENodable.Type getType()
Get the type


getPins

protected java.util.List<LEPin> getPins()
Get the pins


isLeGate

protected boolean isLeGate()
Return true if this is a sizeable gate


isGate

protected boolean isGate()
True if this is a gate


setOnlyContext

protected boolean setOnlyContext(VarContext context,
                                 LENetwork outputNetwork,
                                 float mfactor,
                                 float su,
                                 LENetlister.NetlisterConstants constants)
Set the only context of this LENodable. This is used when the nodable is cacheable, and remains the same throughout all contexts above the passed context. Returns false if provided context is not enough to evaluate all variables properly.

Parameters:
context - the context
outputNetwork - the global network loading the output
mfactor - the parent's mfactor
su - the parent's step-up

createUniqueInstance

protected LENodable createUniqueInstance(VarContext context,
                                         LENetwork outputNetwork,
                                         float mfactor,
                                         float su,
                                         LENetlister.NetlisterConstants constants)
Factory method to create a copy of this Nodable with the context-relevant info evaluated.

Parameters:
context - the context
outputNetwork - the global network loading the output
mfactor - the parent's mfactor
su - the parent's step-up

getName

protected java.lang.String getName()

print

protected void print()

printOneLine

protected java.lang.String printOneLine(java.lang.String indent)

printPins

protected void printPins()

printLoadInfo

protected float printLoadInfo(LEPin pin,
                              float alpha)