public class SLRCrosserGenerator
extends Object
| Modifier and Type | Field and Description |
|---|---|
static int |
LAGUNA_FLOPS_PER_SITE |
static int |
LAGUNA_SITES_PER_TILE |
static int |
LAGUNA_TILES_PER_FSR |
| Constructor and Description |
|---|
SLRCrosserGenerator() |
| Modifier and Type | Method and Description |
|---|---|
static void |
createBUFGCE(Design d,
String clkName,
String clkInName,
String clkOutName,
String bufgceInstName)
Creates/instantiates a BUFGCE in the design
|
static void |
createBUFGCEAndFlops(Design d,
int northBusWidth,
int southBusWidth,
List<String> busPrefixes,
String clkName,
String clkInName,
String clkOutName,
String bufgceInstName)
Creates the logical netlist of the SLR crosser design.
|
static void |
customRouteSLRCrossingClock(Design d,
String clkName,
String[] lagunaStarts,
String txClkWire,
String rxClkWire,
boolean useCommonCentroid) |
static ClockRegion |
findCentroid(String[] lagunaStarts,
Device dev) |
static Map<RouteNode,List<SitePinInst>> |
getLCBPinMappings(Net clk,
String txClkWire,
String rxClkWire)
Separates clock sinks by direction in a half clock region so
they can be driven by independent leaf clock buffers (LCBs).
|
static void |
main(String[] args) |
static Net |
placeAndRouteLagunaFlopPair(Design d,
EDIFHierNet path,
Site txSite,
String txElementName)
Given a logical net and site/bel site, this method will perform the placement and routing
of two laguna flops and their inter-site super-long-line routing.
|
static void |
placeAndRouteSLRCrossing(Design d,
Site northStart,
String northBusName,
String southBusName,
int northBusWidth,
int southBusWidth)
Places and routes an SLR crossing given a north and south bus of size width.
|
static Cell |
placeBUFGCE(Design d,
Site s,
String bufName)
Places a BUFGCE present in the netlist.
|
static void |
routeControlSignalsInLagunaSite(Cell c,
Net clk,
Net rst,
Net ce)
Routes the control signals (CLK,CE,RST) for a laguna flop within its site.
|
static SitePin |
routeToLagunaRx(Net n)
Routes the current incomplete net to its corresponding RX site.
|
public static final int LAGUNA_FLOPS_PER_SITE
public static final int LAGUNA_SITES_PER_TILE
public static final int LAGUNA_TILES_PER_FSR
public static SitePin routeToLagunaRx(Net n)
n - The net with a Laguna TX pin source.public static void routeControlSignalsInLagunaSite(Cell c, Net clk, Net rst, Net ce)
c - The laguna flop cell to route signals toclk - The physical clock net to routerst - The physical reset net to routece - The physical ce net to routepublic static Net placeAndRouteLagunaFlopPair(Design d, EDIFHierNet path, Site txSite, String txElementName)
d - The current design.path - The logical net to implement as an SLR crossing signaltxSite - The laguna site onto which to place the TX floptxElementName - The element/bel site to place the TX floppublic static Cell placeBUFGCE(Design d, Site s, String bufName)
d - Design containing BUFGCEs - Site onto which to place the BUFGCEbufName - Full hierarchical instance name of the BUFGCEpublic static void placeAndRouteSLRCrossing(Design d, Site northStart, String northBusName, String southBusName, int northBusWidth, int southBusWidth)
d - The current designnorthStart - The starting Laguna site to start placement (placement
moves north) for the north traveling busnorthBusName - Full hierarchical net name of the bus to cross SLR in
north directionsouthBusName - Full hierarchical net name of the bus to cross SLR in
south directionnorthBusWidth - Width of north buses crossing SLRsouthBusWidth - Width of south buses crossing SLRpublic static Map<RouteNode,List<SitePinInst>> getLCBPinMappings(Net clk, String txClkWire, String rxClkWire)
clk - The physical clock nettxClkWire - The INT tile wire name to use for TX-based clocksrxClkWire - The INT tile wire name to use for RX-based clockspublic static ClockRegion findCentroid(String[] lagunaStarts, Device dev)
public static void customRouteSLRCrossingClock(Design d, String clkName, String[] lagunaStarts, String txClkWire, String rxClkWire, boolean useCommonCentroid)
public static void createBUFGCE(Design d, String clkName, String clkInName, String clkOutName, String bufgceInstName)
d - The current designclkName - Name of the clock netclkInName - Name of the clock in portclkOutName - Name of the clock out port, or null for nonebufgceInstName - Name of the BUFGCE instancepublic static void createBUFGCEAndFlops(Design d, int northBusWidth, int southBusWidth, List<String> busPrefixes, String clkName, String clkInName, String clkOutName, String bufgceInstName)
d - Current designnorthBusWidth - Width of the North buses to createsouthBusWidth - Width of the South buses to createbusPrefixes - Prefixes to use for bus namesclkName - Name of the clock netclkInName - Name of the clock in portclkOutName - Name of the clock out portbufgceInstName - Name of the BUFGCE instancepublic static void main(String[] args)