nexus: Updates and fixes

Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
David Shah 2020-10-03 15:13:53 +01:00
parent e54aa836a4
commit 682351df7f
3 changed files with 7 additions and 3 deletions

View File

@ -25,6 +25,9 @@ NEXTPNR_NAMESPACE_BEGIN
bool Arch::nexus_logic_tile_valid(LogicTileStatus &lts) const
{
#if 1
return true;
#endif
for (int s = 0; s < 4; s++) {
if (lts.slices[s].dirty) {
lts.slices[s].valid = false;
@ -62,7 +65,7 @@ bool Arch::nexus_logic_tile_valid(LogicTileStatus &lts) const
if (lts.halfs[h].dirty) {
bool found_ff = false;
FFControlSet ctrlset;
for (int i = 0; i < 1; i++) {
for (int i = 0; i < 2; i++) {
for (auto bel : {BEL_FF0, BEL_FF1, BEL_RAMW}) {
if (bel == BEL_RAMW && (h != 1 || i != 0))
continue;

View File

@ -232,6 +232,7 @@ struct NexusFasmWriter
write_enum(cell, "HFDIV_FABRIC_EN", "ENABLED");
write_enum(cell, "LF_FABRIC_EN");
write_enum(cell, "LF_OUTPUT_EN");
write_enum(cell, "DEBUG_N", "DISABLED");
write_int_vector(stringf("HF_CLK_DIV[7:0]"), ctx->parse_lattice_param(cell, id_HF_CLK_DIV, 8, 0).intval, 8);
pop(2);
}

View File

@ -56,9 +56,9 @@ Property Arch::parse_lattice_param(const CellInfo *ci, IdString prop, int width,
if (c >= '0' && c <= '9')
nibble = (c - '0');
else if (c >= 'a' && c <= 'f')
nibble = (c - 'a');
nibble = (c - 'a') + 10;
else if (c >= 'A' && c <= 'F')
nibble = (c - 'A');
nibble = (c - 'A') + 10;
else
log_error("Invalid hex digit '%c' in property %s.%s\n", c, nameOf(ci), nameOf(prop));
for (int j = 0; j < 4; j++)