nexus: ACC54 definitions

Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
David Shah 2020-11-17 16:18:42 +00:00
parent 91d746cfc8
commit edd719c5c5
3 changed files with 77 additions and 0 deletions

View File

@ -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)

View File

@ -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;
}

View File

@ -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