Due to its potential for reducing the buffer size, while achieving satisfactory performance and power figures, the virtual channel flow control (VCFC) provides an efficient implementation for on-chip networks. However, allocating the virtual channels (VCs) uniformly, across all links in the network, results in a waste of area and significant leakage power, especially at nanoscale. To remedy this situation, we propose a novel approach for customizing the virtual channels allocation based on the traffic characteristics of the target application. Towards this end, we first develop an algorithm that calculates the port contention rates and expected bandwidth at each router in the network. Using this information, we add VCs only to the channels with the highest bandwidth usage. Our experimental results, for various traffic characteristics, show that more than 40% buffering space can be saved by VC planning compared to uniform VC allocation, while achieving similar performance levels.