From 09e388f453d9cf998391495349c88e5478b62e34 Mon Sep 17 00:00:00 2001 From: gatecat Date: Thu, 23 Jun 2022 18:48:31 +0100 Subject: netlist: Add PseudoCell API When implementing concepts such as partition pins or deliberately split nets, there's a need for something that looks like a cell (starts/ends routing with pins on nets, has timing data) but isn't mapped to a fixed bel in the architecture, but instead can have pin mappings defined at runtime. The PseudoCell allows this by providing an alternate, virtual-function based API for such cells. When a cell has `pseudo_cell` used, instead of calling functions such as getBelPinWire, getBelLocation or getCellDelay in the Arch API; such data is provided by the cell itself, fully flexible at runtime regardless of arch, via methods on the PseudoCell implementation. --- fpga_interchange/arch.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'fpga_interchange') diff --git a/fpga_interchange/arch.h b/fpga_interchange/arch.h index 789b188e..aeb5578f 100644 --- a/fpga_interchange/arch.h +++ b/fpga_interchange/arch.h @@ -748,11 +748,11 @@ struct Arch : ArchAPI // Get the delay through a cell from one port to another, returning false // if no path exists. This only considers combinational delays, as required by the Arch API - bool getCellDelay(const CellInfo *cell, IdString fromPort, IdString toPort, DelayQuad &delay) const final; + bool getCellDelay(const CellInfo *cell, IdString fromPort, IdString toPort, DelayQuad &delay) const; // Get the port class, also setting clockInfoCount to the number of TimingClockingInfos associated with a port - TimingPortClass getPortTimingClass(const CellInfo *cell, IdString port, int &clockInfoCount) const final; + TimingPortClass getPortTimingClass(const CellInfo *cell, IdString port, int &clockInfoCount) const; // Get the TimingClockingInfo of a port - TimingClockingInfo getPortClockingInfo(const CellInfo *cell, IdString port, int index) const final; + TimingClockingInfo getPortClockingInfo(const CellInfo *cell, IdString port, int index) const; // ------------------------------------------------- -- cgit v1.2.3