From 1602774d27bc68fb291886276ff7cc409405717a Mon Sep 17 00:00:00 2001 From: David Lattimore Date: Wed, 5 Oct 2022 14:33:06 +1100 Subject: nexus: Transform registered output parameters Dual ported: OUTREG_A -> OUT_REGMODE_A OUTREG_B -> OUT_REGMODE_B Pseudo dual ported: OUTREG -> OUT_REGMODE_B Single ported: OUTREG -> OUT_REGMODE_A --- nexus/constids.inc | 5 +++++ nexus/pack.cc | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/nexus/constids.inc b/nexus/constids.inc index 8731fad7..596d064c 100644 --- a/nexus/constids.inc +++ b/nexus/constids.inc @@ -446,6 +446,11 @@ X(FBK_MMD_DIG) X(CLKMUX_FB) X(LRAM_CORE) +X(OUTREG_A) +X(OUTREG_B) +X(OUTREG) +X(OUT_REGMODE_A) +X(OUT_REGMODE_B) X(EBR_SP_EN) X(ECC_BYTE_SEL) diff --git a/nexus/pack.cc b/nexus/pack.cc index 3d293f69..cd042485 100644 --- a/nexus/pack.cc +++ b/nexus/pack.cc @@ -1111,6 +1111,7 @@ struct NexusPacker lram_rules[id_SP512K_MODE].port_xform[id_WE] = id_WEA; lram_rules[id_SP512K_MODE].port_xform[id_RSTOUT] = id_RSTA; lram_rules[id_SP512K_MODE].port_xform[id_CEOUT] = id_OCEA; + lram_rules[id_SP512K_MODE].param_xform[id_OUTREG] = id_OUT_REGMODE_A; add_bus_xform(lram_rules[id_SP512K_MODE], "DI", "DIA", 32); add_bus_xform(lram_rules[id_SP512K_MODE], "DO", "DOA", 32); add_bus_xform(lram_rules[id_SP512K_MODE], "AD", "ADA", 14); @@ -1123,6 +1124,7 @@ struct NexusPacker lram_rules[id_PDPSC512K_MODE].port_xform[id_CSR] = id_CSB; lram_rules[id_PDPSC512K_MODE].port_xform[id_WE] = id_WEA; lram_rules[id_PDPSC512K_MODE].port_xform[id_RSTR] = id_RSTB; + lram_rules[id_PDPSC512K_MODE].param_xform[id_OUTREG] = id_OUT_REGMODE_B; add_bus_xform(lram_rules[id_PDPSC512K_MODE], "DI", "DIA", 32); add_bus_xform(lram_rules[id_PDPSC512K_MODE], "DO", "DOB", 32); add_bus_xform(lram_rules[id_PDPSC512K_MODE], "ADW", "ADA", 14); @@ -1132,6 +1134,8 @@ struct NexusPacker lram_rules[id_DPSC512K_MODE].new_type = id_LRAM_CORE; lram_rules[id_DPSC512K_MODE].port_xform[id_CEOUTA] = id_OCEA; lram_rules[id_DPSC512K_MODE].port_xform[id_CEOUTB] = id_OCEB; + lram_rules[id_DPSC512K_MODE].param_xform[id_OUTREG_A] = id_OUT_REGMODE_A; + lram_rules[id_DPSC512K_MODE].param_xform[id_OUTREG_B] = id_OUT_REGMODE_B; log_info("Packing LRAM...\n"); generic_xform(lram_rules, true); -- cgit v1.2.3