aboutsummaryrefslogtreecommitdiffstats
path: root/fpga_interchange/site_arch.h
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-03-23 16:59:35 +0000
committerGitHub <noreply@github.com>2021-03-23 16:59:35 +0000
commit2300d81c3c3874801176121b1a97446146ec6efd (patch)
treecd4fb58c4a239a360c65f45972e621381b908e42 /fpga_interchange/site_arch.h
parent8c85e648dfdb73d69d4adbc6420e706d21d61f93 (diff)
parent831b94cdac7af66e11d0e3d67fa3bbff29678d05 (diff)
downloadnextpnr-2300d81c3c3874801176121b1a97446146ec6efd.tar.gz
nextpnr-2300d81c3c3874801176121b1a97446146ec6efd.tar.bz2
nextpnr-2300d81c3c3874801176121b1a97446146ec6efd.zip
Merge pull request #640 from litghost/inversion_logic
Initial inverter logic for FPGA interchange
Diffstat (limited to 'fpga_interchange/site_arch.h')
-rw-r--r--fpga_interchange/site_arch.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/fpga_interchange/site_arch.h b/fpga_interchange/site_arch.h
index f8524586..95b6fcba 100644
--- a/fpga_interchange/site_arch.h
+++ b/fpga_interchange/site_arch.h
@@ -289,6 +289,12 @@ struct SiteArch
inline SiteWire getPipSrcWire(const SitePip &site_pip) const NPNR_ALWAYS_INLINE;
inline SiteWire getPipDstWire(const SitePip &site_pip) const NPNR_ALWAYS_INLINE;
+ // Does this site pip always invert its signal?
+ inline bool isInverting(const SitePip &site_pip) const NPNR_ALWAYS_INLINE;
+
+ // Can this site pip optional invert its signal?
+ inline bool canInvert(const SitePip &site_pip) const NPNR_ALWAYS_INLINE;
+
inline SitePipDownhillRange getPipsDownhill(const SiteWire &site_wire) const NPNR_ALWAYS_INLINE;
inline SitePipUphillRange getPipsUphill(const SiteWire &site_wire) const NPNR_ALWAYS_INLINE;
SiteWireRange getWires() const;
@@ -341,6 +347,7 @@ struct SiteArch
void archcheck();
bool is_pip_synthetic(const SitePip &pip) const NPNR_ALWAYS_INLINE;
+ SyntheticType pip_synthetic_type(const SitePip &pip) const NPNR_ALWAYS_INLINE;
};
struct SitePipDownhillIterator