vpr/src/pack/cluster.cpp
/* Determine if pins of speculatively packed pb are legal */
Determine if pins of speculatively packed pb are legal
Determine if pins of speculatively packed pb are legal
static void compute_and_mark_lookahead_pins_used(const AtomBlockId blk_id) {
    auto& atom_ctx = g_vpr_ctx.atom();
    const t_pb* cur_pb = atom_ctx.lookup.atom_pb(blk_id);
    VTR_ASSERT(cur_pb != nullptr);
    for (auto pin_id : atom_ctx.nlist.block_pins(blk_id)) {
        auto net_id = atom_ctx.nlist.pin_net(pin_id);
        const t_pb_graph_pin* pb_graph_pin = find_pb_graph_pin(atom_ctx.nlist, atom_ctx.lookup, pin_id);
        compute_and_mark_lookahead_pins_used_for_pin(pb_graph_pin, cur_pb, net_id);
    }
}
static void compute_and_mark_lookahead_pins_used ( const AtomBlockId blk_id ) { auto & atom_ctx = g_vpr_ctx . atom ( ) ; const t_pb * cur_pb = atom_ctx . lookup . atom_pb ( blk_id ) ; VTR_ASSERT ( cur_pb != nullptr ) ; for ( auto pin_id : atom_ctx . nlist . block_pins ( blk_id ) ) { auto net_id = atom_ctx . nlist . pin_net ( pin_id ) ; const t_pb_graph_pin * pb_graph_pin = find_pb_graph_pin ( atom_ctx . nlist , atom_ctx . lookup , pin_id ) ; compute_and_mark_lookahead_pins_used_for_pin ( pb_graph_pin , cur_pb , net_id ) ; } }
Determine if pins of speculatively packed pb are legal
Determine if pins of speculatively packed pb are legal
/* Walk through inputs, outputs, and clocks marking pins off of the same class */