This commit is contained in:
Miodrag Milanovic 2026-01-08 16:04:34 +01:00 committed by Lofty
parent af70c0533d
commit 3da663bf9d
3 changed files with 14 additions and 1 deletions

View File

@ -153,6 +153,13 @@ struct BitstreamBackend
void export_connection(ChipConfig &cc, PipId pip)
{
const auto &extra_data = *uarch->pip_extra_data(pip);
if (extra_data.type == PipExtra::PIP_EXTRA_MUX) {
IdString name = IdString(extra_data.name);
if (name==ctx->id("PASS")) {
auto n = ctx->getPipName(pip);
printf("PASS %s %s -> %s\n", n[0].c_str(ctx), n[2].c_str(ctx), n[1].c_str(ctx));
}
}
if (extra_data.type == PipExtra::PIP_EXTRA_MUX && (extra_data.flags & MUX_VISIBLE)) {
IdString name = IdString(extra_data.name);
CfgLoc loc = get_config_loc(pip.tile);

View File

@ -43,6 +43,8 @@ NPNR_PACKED_STRUCT(struct GateMatePipExtraDataPOD {
uint8_t plane;
uint8_t dummy1;
uint16_t dummy2;
uint32_t data;
uint32_t mask;
});
NPNR_PACKED_STRUCT(struct GateMateBelPinConstraintPOD {

View File

@ -74,6 +74,8 @@ class PipExtraData(BBAStruct):
value: int = 0
invert: int = 0
plane: int = 0
data: int = 0
mask: int = 0
def serialise_lists(self, context: str, bba: BBAWriter):
pass
@ -86,6 +88,8 @@ class PipExtraData(BBAStruct):
bba.u8(self.plane)
bba.u8(0)
bba.u16(0)
bba.u32(self.data)
bba.u32(self.mask)
@dataclass
class BelPinConstraint(BBAStruct):
@ -313,7 +317,7 @@ def main():
mux_flags |= MUX_ROUTING
if mux.name == "PASS":
mux_flags |= MUX_PASSTROUGH
pp.extra_data = PipExtraData(PIP_EXTRA_MUX, ch.strs.id(mux.name), mux.bits, mux.value, mux_flags, plane)
pp.extra_data = PipExtraData(PIP_EXTRA_MUX, ch.strs.id(mux.name), mux.bits, mux.value, mux_flags, plane, mux.data, mux.mask)
if type_name in new_wires:
for wire in sorted(new_wires[type_name]):
delay = wire_delay[wire]