Simplified crossbar pip detection
This commit is contained in:
parent
85603a9cf3
commit
e771ba0236
@ -751,17 +751,9 @@ void NgUltraImpl::fixup_crossbars()
|
|||||||
{
|
{
|
||||||
|
|
||||||
auto is_crossbar_pip = [&] (PipId pip) {
|
auto is_crossbar_pip = [&] (PipId pip) {
|
||||||
auto &pd = chip_pip_info(ctx->chip_info, pip);
|
const auto &pd = chip_pip_info(ctx->chip_info, pip);
|
||||||
auto src_orig_type = IdString(chip_tile_info(ctx->chip_info, pip.tile).wires[pd.src_wire].wire_type).str(ctx);
|
const auto &extra_data = *reinterpret_cast<const NGUltraPipExtraDataPOD *>(pd.extra_data.get());
|
||||||
auto dst_orig_type = IdString(chip_tile_info(ctx->chip_info, pip.tile).wires[pd.dst_wire].wire_type).str(ctx);
|
return (extra_data.name && extra_data.type == PipExtra::PIP_EXTRA_CROSSBAR);
|
||||||
if (!boost::starts_with(dst_orig_type,"CROSSBAR_") || !boost::ends_with(dst_orig_type, "OUTPUT_WIRE")) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// replace _OUTPUT_WIRE with _INPUT_WIRE and check same crossbar
|
|
||||||
if (src_orig_type != (dst_orig_type.substr(0, dst_orig_type.size() - 11) + "INPUT_WIRE")) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
auto crossbar_key = [&] (PipId pip, bool src) {
|
auto crossbar_key = [&] (PipId pip, bool src) {
|
||||||
|
Loading…
Reference in New Issue
Block a user