nexus: Add SEIO18 support
Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
parent
44f98c545b
commit
f8f3ee06c7
@ -205,6 +205,23 @@ struct NexusFasmWriter
|
|||||||
write_bit(stringf("BASE_TYPE.%s_%s", iodir, str_or_default(cell->attrs, id_IO_TYPE, "LVCMOS33").c_str()));
|
write_bit(stringf("BASE_TYPE.%s_%s", iodir, str_or_default(cell->attrs, id_IO_TYPE, "LVCMOS33").c_str()));
|
||||||
pop(2);
|
pop(2);
|
||||||
}
|
}
|
||||||
|
void write_io18(const CellInfo *cell)
|
||||||
|
{
|
||||||
|
BelId bel = cell->bel;
|
||||||
|
push_tile(bel.tile);
|
||||||
|
push_belname(bel);
|
||||||
|
push("SEIO18");
|
||||||
|
const NetInfo *t = get_net_or_empty(cell, id_T);
|
||||||
|
bool is_input = false, is_output = false;
|
||||||
|
if (t == nullptr || t->name == ctx->id("$PACKER_VCC_NET")) {
|
||||||
|
is_input = true;
|
||||||
|
} else if (t->name == ctx->id("$PACKER_GND_NET")) {
|
||||||
|
is_output = true;
|
||||||
|
}
|
||||||
|
const char *iodir = is_input ? "INPUT" : (is_output ? "OUTPUT" : "BIDIR");
|
||||||
|
write_bit(stringf("BASE_TYPE.%s_%s", iodir, str_or_default(cell->attrs, id_IO_TYPE, "LVCMOS18H").c_str()));
|
||||||
|
pop(3);
|
||||||
|
}
|
||||||
void operator()()
|
void operator()()
|
||||||
{
|
{
|
||||||
// Write routing
|
// Write routing
|
||||||
@ -221,6 +238,8 @@ struct NexusFasmWriter
|
|||||||
write_ff(ci);
|
write_ff(ci);
|
||||||
else if (ci->type == id_SEIO33_CORE)
|
else if (ci->type == id_SEIO33_CORE)
|
||||||
write_io33(ci);
|
write_io33(ci);
|
||||||
|
else if (ci->type == id_SEIO18_CORE)
|
||||||
|
write_io18(ci);
|
||||||
blank();
|
blank();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user