vpr/src/route/router_lookahead_map.cpp
/* fills in missing lookahead map entries by copying the cost of the closest valid entry */
fills in missing lookahead map entries by copying the cost of the closest valid entry
fills in missing lookahead map entries by copying the cost of the closest valid entry
static void fill_in_missing_lookahead_entries(int segment_index, e_rr_type chan_type) {
    int chan_index = 0;
    if (chan_type == CHANY) {
        chan_index = 1;
    }
    auto& device_ctx = g_vpr_ctx.device();
    for (unsigned ix = 0; ix < device_ctx.grid.width(); ix++) {
        for (unsigned iy = 0; iy < device_ctx.grid.height(); iy++) {
            Cost_Entry cost_entry = f_cost_map[chan_index][segment_index][ix][iy];
            if (cost_entry.delay < 0 && cost_entry.congestion < 0) {
                Cost_Entry copied_entry = get_nearby_cost_entry(ix, iy, segment_index, chan_index);
                f_cost_map[chan_index][segment_index][ix][iy] = copied_entry;
            }
        }
    }
}
static void fill_in_missing_lookahead_entries ( int segment_index , e_rr_type chan_type ) { int chan_index = 0 ; if ( chan_type == CHANY ) { chan_index = 1 ; } auto & device_ctx = g_vpr_ctx . device ( ) ; for ( unsigned ix = 0 ; ix < device_ctx . grid . width ( ) ; ix ++ ) { for ( unsigned iy = 0 ; iy < device_ctx . grid . height ( ) ; iy ++ ) { Cost_Entry cost_entry = f_cost_map [ chan_index ] [ segment_index ] [ ix ] [ iy ] ; if ( cost_entry . delay < 0 && cost_entry . congestion < 0 ) { Cost_Entry copied_entry = get_nearby_cost_entry ( ix , iy , segment_index , chan_index ) ; f_cost_map [ chan_index ] [ segment_index ] [ ix ] [ iy ] = copied_entry ; } } } }
fills in missing lookahead map entries by copying the cost of the closest valid entry
fills in missing lookahead map entries by copying the cost of the closest valid entry
/* find missing cost entries and fill them in by copying a nearby cost entry */