diff options
author | David Shah <dave@ds0.me> | 2020-11-17 16:18:42 +0000 |
---|---|---|
committer | David Shah <dave@ds0.me> | 2020-11-30 08:45:28 +0000 |
commit | edd719c5c5d3aaf7892b4e950af9d9c8fec838f2 (patch) | |
tree | 4c03f8e7d360858c6d6b645af0784a823fe25227 /nexus | |
parent | 91d746cfc83e3e78424ae079bc2bb36fa266788e (diff) | |
download | nextpnr-edd719c5c5d3aaf7892b4e950af9d9c8fec838f2.tar.gz nextpnr-edd719c5c5d3aaf7892b4e950af9d9c8fec838f2.tar.bz2 nextpnr-edd719c5c5d3aaf7892b4e950af9d9c8fec838f2.zip |
nexus: ACC54 definitions
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'nexus')
-rw-r--r-- | nexus/constids.inc | 34 | ||||
-rw-r--r-- | nexus/pack.cc | 32 | ||||
-rw-r--r-- | nexus/pins.cc | 11 |
3 files changed, 77 insertions, 0 deletions
diff --git a/nexus/constids.inc b/nexus/constids.inc index f1f255ee..cf19789c 100644 --- a/nexus/constids.inc +++ b/nexus/constids.inc @@ -328,3 +328,37 @@ X(REGINPUTC) X(MULTPREADD9X9) X(MULTPREADD18X18) + +X(REGPIPELINE) +X(REGADDSUB) +X(REGLOADC) +X(REGLOADC2) +X(REGCIN) + +X(ACC108CASCADE) +X(ACCUBYPS) +X(ACCUMODE) +X(ADDSUBSIGNREGBYPS1) +X(ADDSUBSIGNREGBYPS2) +X(ADDSUBSIGNREGBYPS3) +X(ADDSUB_CTRL) +X(CASCOUTREGBYPS) +X(CINREGBYPS1) +X(CINREGBYPS2) +X(CINREGBYPS3) +X(CONSTSEL) +X(CREGBYPS1) +X(CREGBYPS2) +X(CREGBYPS3) +X(DSPCASCADE) +X(LOADREGBYPS1) +X(LOADREGBYPS2) +X(LOADREGBYPS3) +X(M9ADDSUBREGBYPS1) +X(M9ADDSUBREGBYPS2) +X(M9ADDSUBREGBYPS3) +X(M9ADDSUB_CTRL) +X(OUTREGBYPS) +X(SIGN) +X(STATICOPCODE_EN) +X(PROGCONST) diff --git a/nexus/pack.cc b/nexus/pack.cc index e095afa6..48805267 100644 --- a/nexus/pack.cc +++ b/nexus/pack.cc @@ -1453,6 +1453,38 @@ struct NexusPacker cell->params[id_GSR] = std::string("DISABLED"); cell->params[id_REGBYPS] = std::string("BYPASS"); cell->params[id_RESET] = std::string("SYNC"); + } else if (type == id_ACC54_CORE) { + cell->params[id_ACC108CASCADE] = std::string("BYPASSCASCADE"); + cell->params[id_ACCUBYPS] = std::string("USED"); + cell->params[id_ACCUMODE] = std::string("MODE7"); + cell->params[id_ADDSUBSIGNREGBYPS1] = std::string("REGISTER"); + cell->params[id_ADDSUBSIGNREGBYPS2] = std::string("REGISTER"); + cell->params[id_ADDSUBSIGNREGBYPS3] = std::string("BYPASS"); + cell->params[id_ADDSUB_CTRL] = std::string("ADD_ADD_CTRL_54_BIT_ADDER"); + cell->params[id_CASCOUTREGBYPS] = std::string("BYPASS"); + cell->params[id_CINREGBYPS1] = std::string("REGISTER"); + cell->params[id_CINREGBYPS2] = std::string("REGISTER"); + cell->params[id_CINREGBYPS3] = std::string("BYPASS"); + cell->params[id_CONSTSEL] = std::string("BYPASS"); + cell->params[id_CREGBYPS1] = std::string("REGISTER"); + cell->params[id_CREGBYPS2] = std::string("REGISTER"); + cell->params[id_CREGBYPS3] = std::string("BYPASS"); + cell->params[id_DSPCASCADE] = std::string("DISABLED"); + cell->params[id_GSR] = std::string("DISABLED"); + cell->params[id_LOADREGBYPS1] = std::string("REGISTER"); + cell->params[id_LOADREGBYPS2] = std::string("REGISTER"); + cell->params[id_LOADREGBYPS3] = std::string("BYPASS"); + cell->params[id_M9ADDSUBREGBYPS1] = std::string("REGISTER"); + cell->params[id_M9ADDSUBREGBYPS2] = std::string("REGISTER"); + cell->params[id_M9ADDSUBREGBYPS3] = std::string("BYPASS"); + cell->params[id_OUTREGBYPS] = std::string("REGISTER"); + cell->params[id_RESET] = std::string("SYNC"); + cell->params[id_ROUNDHALFUP] = std::string("DISABLED"); + cell->params[id_ROUNDRTZI] = std::string("ROUND_TO_ZERO"); + cell->params[id_ROUNDBIT] = std::string("ROUND_TO_BIT0"); + cell->params[id_SFTEN] = std::string("DISABLED"); + cell->params[id_SIGN] = std::string("DISABLED"); + cell->params[id_STATICOPCODE_EN] = std::string("DISABLED"); } return cell; } diff --git a/nexus/pins.cc b/nexus/pins.cc index 78aa213e..0587c032 100644 --- a/nexus/pins.cc +++ b/nexus/pins.cc @@ -143,6 +143,17 @@ static const std::unordered_map<IdString, Arch::CellPinsData> base_cell_pin_data {id_SFTCTRL3, PINSTYLE_PU}, {id_ROUNDEN, PINSTYLE_CIB}, {{}, PINSTYLE_DEDI}, + }}, + {id_ACC54_CORE, + { + {id_CLK, PINSTYLE_CLK}, {id_RSTC, PINSTYLE_LSR}, {id_CEC, PINSTYLE_CE}, + {id_SIGNEDI, PINSTYLE_CIB}, {id_RSTCTRL, PINSTYLE_LSR}, {id_CECTRL, PINSTYLE_CE}, + {id_RSTCIN, PINSTYLE_LSR}, {id_CECIN, PINSTYLE_CE}, {id_LOAD, PINSTYLE_CIB}, + {id_ADDSUB0, PINSTYLE_CIB}, {id_ADDSUB1, PINSTYLE_CIB}, {id_M9ADDSUB0, PINSTYLE_PU}, + {id_M9ADDSUB1, PINSTYLE_PU}, {id_ROUNDEN, PINSTYLE_CIB}, {id_RSTO, PINSTYLE_LSR}, + {id_CEO, PINSTYLE_CE}, {id_CIN, PINSTYLE_CIB}, {id_SFTCTRL0, PINSTYLE_PU}, + {id_SFTCTRL1, PINSTYLE_PU}, {id_SFTCTRL2, PINSTYLE_PU}, {id_SFTCTRL3, PINSTYLE_PU}, + {{}, PINSTYLE_DEDI}, }}}; } // namespace |