1. A programmable logic device comprising: a plurality of programmable logic regions; a dual-port variable depth and width memory array; and a plurality of interconnects for routing signals between the programmable logic regions and the dual-port variable depth and width memory array.