during packing, neighboring and related logic elements of the circuit are clustered together into logic blocks matching the hardware of the fpga. during placement, these logic blocks as well as hard blocks are assigned to the available hardware resources of the fpga. finally, during routing the signal connections between blocks are made. vpr is primarily developed by the university of toronto, with contributions from many other universities and companies.