public class ECOTools
extends Object
Constructor and Description |
---|
ECOTools() |
Modifier and Type | Method and Description |
---|---|
static void |
connectNet(Design d,
Cell cell,
String logPin,
Net net)
Convenience wrapper method to connectNet() that allows for minimal
specification of a single connection to be made.
|
static void |
connectNet(Design design,
List<String> netPinList)
Given a list of strings containing one net path followed by one or more pin paths
separated by spaces (in line with Tcl convention) connect the latter pins to the former net.
|
static void |
connectNet(Design design,
List<String> netPinList,
Map<Net,Set<SitePinInst>> deferredRemovals)
Given a list of strings containing one net path followed by one or more pin paths
separated by spaces (in line with Tcl convention) connect the latter pins to the former net.
|
static void |
connectNet(Design design,
Map<EDIFHierNet,List<EDIFHierPortInst>> netToPortInsts,
Map<Net,Set<SitePinInst>> deferredRemovals)
Given a map of EDIFHierNet to list of EDIFHierPortInst object(s), connect the latter pins to
the former net.
|
static Cell |
createAndPlaceInlineCellOnInputPin(Design design,
EDIFHierPortInst input,
Unisim reference,
Site site,
BEL bel,
String logInput,
String logOutput)
Creates and places a new primitive cell inline from the existing net driving
the input pin provided and connects its output to the existing input.
|
static void |
createCell(Design design,
EDIFCell reference,
List<String> paths)
Given a EDIFCell object and a list of instance paths, create these cell instantiations
in the design.
|
static SitePinInst |
createExitSitePinInst(Design design,
EDIFHierPortInst ehpi,
Net net)
Creates a new SitePinInst source or sink for the physical net provided.
|
static void |
createNet(Design design,
List<String> paths)
Given list of net paths, create these nets in the design.
|
static void |
disconnectNet(Design design,
EDIFHierPortInst... pins)
Given a list of EDIFHierPortInst objects, disconnect these pins from their current nets.
|
static void |
disconnectNet(Design design,
List<EDIFHierPortInst> pins)
Given a list of EDIFHierPortInst objects, disconnect these pins from their current nets.
|
static void |
disconnectNet(Design design,
List<EDIFHierPortInst> pins,
Map<Net,Set<SitePinInst>> deferredRemovals)
Given a list of EDIFHierPortInst objects, disconnect these pins from their current nets.
|
static void |
disconnectNetPath(Design design,
List<String> pins)
Given a list of strings with one more space-separated pins, disconnect these pins from
their current nets.
|
static void |
disconnectNetPath(Design design,
List<String> pins,
Map<Net,Set<SitePinInst>> deferredRemovals)
Given a list of strings with one more space-separated pins, disconnect these pins from
their current nets.
|
static void |
removeCell(Design design,
List<EDIFHierCellInst> insts,
Map<Net,Set<SitePinInst>> deferredRemovals)
Given a list of EDIFHierCellInst objects, remove these cell instances from the design.
|
static void |
removeCellPath(Design design,
List<String> paths,
Map<Net,Set<SitePinInst>> deferredRemovals)
Given a list of strings containing the hierarchical path to cell instances,
remove these instances from the design.
|
public static void disconnectNet(Design design, EDIFHierPortInst... pins)
design
- The design where the pin(s) are instantiated.pins
- A variable array of hierarchical pins for disconnection.public static void disconnectNet(Design design, List<EDIFHierPortInst> pins)
design
- The design where the pin(s) are instantiated.pins
- A list of hierarchical pins for disconnection.public static void disconnectNet(Design design, List<EDIFHierPortInst> pins, Map<Net,Set<SitePinInst>> deferredRemovals)
design
- The design where the pin(s) are instantiated.pins
- A list of hierarchical pins for disconnection.deferredRemovals
- An optional map that, if passed in non-null will be populated with
site pins marked for removal. The map allows for persistent tracking
if this method is called many times as the process is expensive
without batching. This map can also allow SitePinInst objects to be
reused by ECOTools.connectNet(Design, Map, Map)
.public static void disconnectNetPath(Design design, List<String> pins)
design
- The design where the pin(s) are instantiated.pins
- A list of hierarchical pins for disconnection.public static void disconnectNetPath(Design design, List<String> pins, Map<Net,Set<SitePinInst>> deferredRemovals)
design
- The design where the pin(s) are instantiated.pins
- A list of hierarchical pins for disconnection.deferredRemovals
- An optional map that, if passed in non-null will be populated with
site pins marked for removal. The map allows for persistent tracking
if this method is called many times as the process is expensive
without batching. This map can also allow SitePinInst objects to be
reused by ECOTools.connectNet(Design, Map, Map)
.public static void connectNet(Design design, Map<EDIFHierNet,List<EDIFHierPortInst>> netToPortInsts, Map<Net,Set<SitePinInst>> deferredRemovals)
design
- The design where the net(s) and pin(s) are instantiated.netToPortInsts
- A map of hierarchical nets and pins for connection.deferredRemovals
- An optional map that, if passed in non-null will allow any SitePinInst
objects deferred previously for removal to be reused for new connections.
See ECOTools.disconnectNet(Design, List, Map)
.
By default, this method will throw a RuntimeException if there is a mismatch between
the net connected to logical pins (EDIFHierPortInst) and the net connected to its physical pin
(SitePinInst). The Java property "rapidwright.ecotools.connectNet.warnIfCellInstStartsWith"
allows such pins with an EDIFCellInst name that start with its value to be demoted from an
RuntimeException to a printed warning. An example use case for this feature would be if
it is known that the conflicting logical pin will be removed later.public static void connectNet(Design d, Cell cell, String logPin, Net net)
d
- The design where the net exists.cell
- The cell on which the pin to be connected existslogPin
- The logical name on the cell to connectnet
- The physical net to connect the logical pin topublic static void connectNet(Design design, List<String> netPinList)
design
- The design where the net(s) and pin(s) are instantiated.netPinList
- A list of strings containing net and pin paths.public static void connectNet(Design design, List<String> netPinList, Map<Net,Set<SitePinInst>> deferredRemovals)
design
- The design where the net(s) and pin(s) are instantiated.netPinList
- A list of strings containing net and pin paths.deferredRemovals
- An optional map that, if passed in non-null will allow any SitePinInst
objects deferred previously for removal to be reused for new connections.
See ECOTools.disconnectNet(Design, List, Map)
.public static SitePinInst createExitSitePinInst(Design design, EDIFHierPortInst ehpi, Net net)
design
- The current design.ehpi
- The hierarchical pin.net
- The net to add the new SitePinInst to.public static void removeCell(Design design, List<EDIFHierCellInst> insts, Map<Net,Set<SitePinInst>> deferredRemovals)
design
- The current design.insts
- A list of hierarchical cell instances for removal.deferredRemovals
- An optional map that, if passed in non-null will be populated with
site pins marked for removal. The map allows for persistent tracking
if this method is called many times as the process is expensive
without batching.public static void removeCellPath(Design design, List<String> paths, Map<Net,Set<SitePinInst>> deferredRemovals)
design
- The current design.paths
- A list of instance paths for removal.deferredRemovals
- An optional map that, if passed in non-null will be populated with
site pins marked for removal. The map allows for persistent tracking
if this method is called many times as the process is expensive
without batching.public static void createCell(Design design, EDIFCell reference, List<String> paths)
design
- The current design.reference
- The cell to be instantiated.paths
- A list of instance paths for creation.public static Cell createAndPlaceInlineCellOnInputPin(Design design, EDIFHierPortInst input, Unisim reference, Site site, BEL bel, String logInput, String logOutput)
design
- The existing design.input
- The reference logical input pin on which the new inline cell
should be created and connected.reference
- The primitive cell type to create.site
- The site on which the new cell should be placed.bel
- The BEL within the provided site onto which the cell should
be placed.logInput
- The logical cell's input pin that should connect to the
existing input's net.logOutput
- The logical cell's output pin that should connect to the
existing input.public static void createNet(Design design, List<String> paths)
design
- The current design.paths
- A list of net paths for creation.