edu.byu.ece.edif.tools.replicate.nmr
Interface ReplicationType

All Superinterfaces:
java.io.Serializable
All Known Implementing Classes:
AbstractReplicationType, DWCReplicationType, TMRReplicationType, UnityReplicationType

public interface ReplicationType
extends java.io.Serializable

In this framework, a ReplicationType represents the number of times to replicate things (replication factor), how to restore signals (i.e. voting), and how to name replicated objects. The class also contains code for performing replications.


Method Summary
 java.util.List<OrganSpecification> antiRestore(EdifNet net, ReplicationDescription desc)
          Give a list of organ specifications to implement a "force_no_restore" on the net.
 java.util.List<OrganSpecification> defaultRestore(EdifNet net, ReplicationDescription desc)
          Give a list of organ specifications to implement the default restoration for the given net.
 java.util.List<OrganSpecification> forceRestore(EdifNet net, java.util.List<EdifPortRef> forceRestoreRefs, java.util.Collection<OrganSpecification> prevSpecs, ReplicationDescription desc)
          Give a list of organ specifications to implement a forced restoration on the given net.
 java.util.List<OrganSpecification> forceRestore(EdifNet net, java.util.List<EdifPortRef> forceRestoreRefs, ReplicationDescription desc)
          Give a list of organ specifications to implement a forced restoration on the given net.
 int getReplicationFactor()
           
 EdifNameable getReplicationInstanceNameable(EdifNameable origName, int domain)
          Get a replicated name for the given instance name
 EdifNameable getReplicationNetNameable(EdifNameable origName, int domain)
          Get a replicated name for the given net name
 EdifNameable getReplicationPortNameable(EdifNameable origName, int domain)
          Get a replicated name for the given port name
 java.util.List<EdifCellInstance> replicate(EdifCellInstance oldInstance, EdifCell newCellDefinition, EdifCell newTopCell)
          Replicate the given cell instance
 java.util.List<EdifPort> replicate(EdifPort oldPort, EdifCell newTopCell)
          Replicate the given port
 

Method Detail

getReplicationFactor

int getReplicationFactor()
Returns:
the replication factor of the replication type

antiRestore

java.util.List<OrganSpecification> antiRestore(EdifNet net,
                                               ReplicationDescription desc)
Give a list of organ specifications to implement a "force_no_restore" on the net. Generally, this will just be null because not restoring doesn't require doing anything. This method exists solely so that the replication type can know about anit_restore locations just in case it needs to for some project later on.

Parameters:
net -
desc -
Returns:

forceRestore

java.util.List<OrganSpecification> forceRestore(EdifNet net,
                                                java.util.List<EdifPortRef> forceRestoreRefs,
                                                ReplicationDescription desc)
Give a list of organ specifications to implement a forced restoration on the given net.

Parameters:
net -
forceRestoreRefs -
desc -
Returns:

forceRestore

java.util.List<OrganSpecification> forceRestore(EdifNet net,
                                                java.util.List<EdifPortRef> forceRestoreRefs,
                                                java.util.Collection<OrganSpecification> prevSpecs,
                                                ReplicationDescription desc)
Give a list of organ specifications to implement a forced restoration on the given net. This version of the method checks to see if any of prevSpecs can be reused.

Parameters:
net -
forceRestoreRefs -
prevSpecs -
desc -
Returns:

defaultRestore

java.util.List<OrganSpecification> defaultRestore(EdifNet net,
                                                  ReplicationDescription desc)
Give a list of organ specifications to implement the default restoration for the given net. A default restoration is any restoration needed as a consequence of a scale down or up in replication factor (i.e. a triplicated partition feeds into a duplicated partition).

Parameters:
net -
desc -
Returns:

replicate

java.util.List<EdifCellInstance> replicate(EdifCellInstance oldInstance,
                                           EdifCell newCellDefinition,
                                           EdifCell newTopCell)
                                           throws EdifNameConflictException
Replicate the given cell instance

Parameters:
oldInstance -
newCellDefinition -
newTopCell -
Returns:
Throws:
EdifNameConflictException

replicate

java.util.List<EdifPort> replicate(EdifPort oldPort,
                                   EdifCell newTopCell)
                                   throws EdifNameConflictException
Replicate the given port

Parameters:
oldPort -
newTopCell -
Returns:
Throws:
EdifNameConflictException

getReplicationInstanceNameable

EdifNameable getReplicationInstanceNameable(EdifNameable origName,
                                            int domain)
Get a replicated name for the given instance name

Parameters:
origName -
domain -
Returns:

getReplicationPortNameable

EdifNameable getReplicationPortNameable(EdifNameable origName,
                                        int domain)
Get a replicated name for the given port name

Parameters:
origName -
domain -
Returns:

getReplicationNetNameable

EdifNameable getReplicationNetNameable(EdifNameable origName,
                                       int domain)
Get a replicated name for the given net name

Parameters:
origName -
domain -
Returns: