VPR-6.0

vpr/SRC/route/rr_graph_area.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void count_routing_transistors (enum e_directionality directionality, int num_switch, t_segment_inf *segment_inf, float R_minW_nmos, float R_minW_pmos)

Function Documentation

void count_routing_transistors ( enum e_directionality  directionality,
int  num_switch,
t_segment_inf segment_inf,
float  R_minW_nmos,
float  R_minW_pmos 
)

Counts how many transistors are needed to implement the FPGA routing resources. Call this only when an rr_graph exists. It does not count the transistors used in logic blocks, but it counts the transistors in the input connection block multiplexers and in the output pin drivers and pass transistors. NB: this routine assumes pass transistors always generate two edges (one forward, one backward) between two nodes. Physically, this is what happens -- make sure your rr_graph does it.

I assume a minimum width transistor takes 1 unit of area. A double-width transistor takes the twice the diffusion width, but the same spacing, so I assume it takes 1.5x the area of a minimum-width transitor.

Definition at line 61 of file rr_graph_area.c.

{

    if(directionality == BI_DIRECTIONAL)
        {
            count_bidir_routing_transistors(num_switch, R_minW_nmos,
                                            R_minW_pmos);
        }
    else
        {
            assert(directionality == UNI_DIRECTIONAL);
            count_unidir_routing_transistors(segment_inf, R_minW_nmos,
                                             R_minW_pmos);
        }
}

Here is the call graph for this function:

Here is the caller graph for this function: