nexus: More DSP primitive config

Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
David Shah 2020-11-13 14:17:40 +00:00
parent 094bf419d4
commit d9a19897c4
3 changed files with 67 additions and 1 deletions

View File

@ -292,3 +292,12 @@ X(PREADDCAS_EN)
X(SR_18BITSHIFT_EN) X(SR_18BITSHIFT_EN)
X(OPC) X(OPC)
X(RESET) X(RESET)
X(ASIGNED_OPERAND_EN)
X(BYPASS_MULT9)
X(REGBYPSA1)
X(REGBYPSA2)
X(REGBYPSB)
X(SHIFTA)
X(REGBYPS)

View File

@ -1393,6 +1393,22 @@ struct NexusPacker
cell->params[id_SIGNEDSTATIC_EN] = std::string("DISABLED"); cell->params[id_SIGNEDSTATIC_EN] = std::string("DISABLED");
cell->params[id_SR_18BITSHIFT_EN] = std::string("DISABLED"); cell->params[id_SR_18BITSHIFT_EN] = std::string("DISABLED");
cell->params[id_SUBSTRACT_EN] = std::string("SUBTRACTION"); cell->params[id_SUBSTRACT_EN] = std::string("SUBTRACTION");
} else if (type == id_MULT9_CORE) {
cell->params[id_ASIGNED_OPERAND_EN] = std::string("DISABLED");
cell->params[id_BYPASS_MULT9] = std::string("DISABLED");
cell->params[id_GSR] = std::string("DISABLED");
cell->params[id_REGBYPSA1] = std::string("DISABLED");
cell->params[id_REGBYPSA2] = std::string("DISABLED");
cell->params[id_REGBYPSB] = std::string("DISABLED");
cell->params[id_RESET] = std::string("SYNC");
cell->params[id_GSR] = std::string("DISABLED");
cell->params[id_SHIFTA] = std::string("DISABLED");
cell->params[id_SIGNEDSTATIC_EN] = std::string("DISABLED");
cell->params[id_SR_18BITSHIFT_EN] = std::string("DISABLED");
} else if (type == id_REG18_CORE) {
cell->params[id_GSR] = std::string("DISABLED");
cell->params[id_REGBYPS] = std::string("BYPASS");
cell->params[id_RESET] = std::string("SYNC");
} }
return cell; return cell;
} }

View File

@ -83,7 +83,48 @@ static const std::unordered_map<IdString, Arch::CellPinsData> base_cell_pin_data
{id_HFOUTEN, PINSTYLE_PU}, {id_HFOUTEN, PINSTYLE_PU},
{{}, PINSTYLE_CIB}, {{}, PINSTYLE_CIB},
}}, }},
}; {id_PREADD9_CORE,
{
{id_CLK, PINSTYLE_CLK}, {id_RSTCL, PINSTYLE_LSR}, {id_RSTB, PINSTYLE_LSR}, {id_CECL, PINSTYLE_CE},
{id_CEB, PINSTYLE_CE},
{id_B0, PINSTYLE_CIB}, {id_B1, PINSTYLE_CIB}, {id_B2, PINSTYLE_CIB}, {id_B3, PINSTYLE_CIB},
{id_B4, PINSTYLE_CIB}, {id_B5, PINSTYLE_CIB}, {id_B6, PINSTYLE_CIB}, {id_B7, PINSTYLE_CIB},
{id_B8, PINSTYLE_CIB}, {id_BSIGNED, PINSTYLE_CIB},
{id_C0, PINSTYLE_CIB}, {id_C1, PINSTYLE_CIB}, {id_C2, PINSTYLE_CIB}, {id_C3, PINSTYLE_CIB},
{id_C4, PINSTYLE_CIB}, {id_C5, PINSTYLE_CIB}, {id_C6, PINSTYLE_CIB}, {id_C7, PINSTYLE_CIB},
{id_C8, PINSTYLE_CIB}, {id_C9, PINSTYLE_CIB},
{{}, PINSTYLE_DEDI},
}},
{id_MULT9_CORE,
{
{id_CLK, PINSTYLE_CLK},
{id_RSTA, PINSTYLE_LSR},
{id_RSTP, PINSTYLE_LSR},
{id_CEA, PINSTYLE_CE},
{id_CEP, PINSTYLE_CE},
{id_A0, PINSTYLE_CIB},
{id_A1, PINSTYLE_CIB},
{id_A2, PINSTYLE_CIB},
{id_A3, PINSTYLE_CIB},
{id_A4, PINSTYLE_CIB},
{id_A5, PINSTYLE_CIB},
{id_A6, PINSTYLE_CIB},
{id_A7, PINSTYLE_CIB},
{id_A8, PINSTYLE_CIB},
{id_ASIGNED, PINSTYLE_CIB},
{{}, PINSTYLE_DEDI},
}},
{id_REG18_CORE,
{
{id_CLK, PINSTYLE_CLK},
{id_RSTP, PINSTYLE_LSR},
{id_CEP, PINSTYLE_CE},
}}};
} // namespace } // namespace
void Arch::init_cell_pin_data() { cell_pins_db = base_cell_pin_data; } void Arch::init_cell_pin_data() { cell_pins_db = base_cell_pin_data; }