1. A method for providing a metal programmable device, comprising: providing an array of programmable cells; providing an array of pre-diffused memory cells; and programming first peripheral interface logic using a first portion of the array of programmable cells, wherein the first peripheral interface logic accesses at least a first portion of the array of memory cells.