diff options
author | gatecat <gatecat@ds0.me> | 2022-03-31 11:17:57 +0100 |
---|---|---|
committer | gatecat <gatecat@ds0.me> | 2022-04-07 18:02:36 +0100 |
commit | efb58711b0dfcdb8080f63bd64d3f9d9fafd2637 (patch) | |
tree | a2b876f5cacc69125bdb2fbdc171517c6fb969c9 /ecp5/archdefs.h | |
parent | c4e47ba1a85d840c31d4be5c3f2c032664abd814 (diff) | |
download | nextpnr-efb58711b0dfcdb8080f63bd64d3f9d9fafd2637.tar.gz nextpnr-efb58711b0dfcdb8080f63bd64d3f9d9fafd2637.tar.bz2 nextpnr-efb58711b0dfcdb8080f63bd64d3f9d9fafd2637.zip |
ecp5: Split the SLICE bel into separate LUT/FF/RAMW bels
Diffstat (limited to 'ecp5/archdefs.h')
-rw-r--r-- | ecp5/archdefs.h | 41 |
1 files changed, 34 insertions, 7 deletions
diff --git a/ecp5/archdefs.h b/ecp5/archdefs.h index dd260a3e..b7d892c5 100644 --- a/ecp5/archdefs.h +++ b/ecp5/archdefs.h @@ -156,19 +156,46 @@ struct ArchNetInfo typedef IdString ClusterId; +struct CellInfo; struct NetInfo; struct ArchCellInfo : BaseClusterInfo { + enum CombFlags : uint8_t + { + COMB_NONE = 0x00, + COMB_CARRY = 0x01, + COMB_LUTRAM = 0x02, + COMB_MUX5 = 0x04, + COMB_MUX6 = 0x08, + COMB_RAM_WCKINV = 0x10, + COMB_RAM_WREINV = 0x20, + COMB_RAMW_BLOCK = 0x40, + }; + + enum FFFlags : uint8_t + { + FF_NONE = 0x00, + FF_CLKINV = 0x01, + FF_CEINV = 0x02, + FF_CECONST = 0x04, + FF_LSRINV = 0x08, + FF_GSREN = 0x10, + FF_ASYNC = 0x20, + FF_M_USED = 0x40, + }; + + struct + { + uint8_t flags; + IdString ram_wck, ram_wre; + CellInfo *mux_fxad; + } combInfo; struct { - bool using_dff; - bool has_l6mux; - bool is_carry; - bool is_memory; - IdString clk_sig, lsr_sig, clkmux, lsrmux, srmode; - int sd0, sd1; - } sliceInfo; + uint8_t flags; + IdString clk_sig, lsr_sig, ce_sig, di_sig; + } ffInfo; struct { bool is_pdp; |