fabulous: Support for configurable LUT size
Signed-off-by: gatecat <gatecat@ds0.me>
This commit is contained in:
parent
62b8baa959
commit
b0a78de78f
@ -48,6 +48,8 @@ struct FabulousImpl : ViaductAPI
|
|||||||
for (auto a : args) {
|
for (auto a : args) {
|
||||||
if (a.first == "fasm")
|
if (a.first == "fasm")
|
||||||
fasm_file = a.second;
|
fasm_file = a.second;
|
||||||
|
else if (a.first == "lut_k")
|
||||||
|
cfg.clb.lut_k = std::stoi(a.second);
|
||||||
else
|
else
|
||||||
log_error("unrecognised fabulous option '%s'\n", a.first.c_str());
|
log_error("unrecognised fabulous option '%s'\n", a.first.c_str());
|
||||||
}
|
}
|
||||||
|
@ -99,7 +99,7 @@ struct FabFasmWriter
|
|||||||
{
|
{
|
||||||
std::vector<bool> bits(width, false);
|
std::vector<bool> bits(width, false);
|
||||||
for (int i = 0; i < width; i++)
|
for (int i = 0; i < width; i++)
|
||||||
bits[i] = (value & (1ULL << i)) != 0;
|
bits[i] = (value & (1ULL << unsigned(i))) != 0;
|
||||||
write_vector(name, bits, invert);
|
write_vector(name, bits, invert);
|
||||||
}
|
}
|
||||||
// Write an int vector param
|
// Write an int vector param
|
||||||
@ -124,7 +124,9 @@ struct FabFasmWriter
|
|||||||
|
|
||||||
uint64_t depermute_lut(const CellInfo *lut)
|
uint64_t depermute_lut(const CellInfo *lut)
|
||||||
{
|
{
|
||||||
uint64_t orig_init = int_or_default(lut->params, id_INIT, 0);
|
uint64_t orig_init = 0;
|
||||||
|
if (lut->params.count(id_INIT))
|
||||||
|
orig_init = lut->params.at(id_INIT).as_int64();
|
||||||
std::vector<std::vector<unsigned>> phys_to_log;
|
std::vector<std::vector<unsigned>> phys_to_log;
|
||||||
phys_to_log.resize(cfg.clb.lut_k);
|
phys_to_log.resize(cfg.clb.lut_k);
|
||||||
for (unsigned i = 0; i < cfg.clb.lut_k; i++) {
|
for (unsigned i = 0; i < cfg.clb.lut_k; i++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user