diff options
author | gatecat <gatecat@ds0.me> | 2022-04-07 18:43:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-07 18:43:25 +0100 |
commit | e42e22575f20b59634f88b5cf694efdb413ff0a0 (patch) | |
tree | dd1c201207b2b17f28cdcc1919f8ab160f718973 /ecp5/archdefs.h | |
parent | d5ec421d988b92d1f610d6a031381a999b3f901c (diff) | |
parent | efb58711b0dfcdb8080f63bd64d3f9d9fafd2637 (diff) | |
download | nextpnr-e42e22575f20b59634f88b5cf694efdb413ff0a0.tar.gz nextpnr-e42e22575f20b59634f88b5cf694efdb413ff0a0.tar.bz2 nextpnr-e42e22575f20b59634f88b5cf694efdb413ff0a0.zip |
Merge pull request #972 from YosysHQ/gatecat/ecp5-split-slice-v2
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; |