8.5 Non-volatile Memory Design Methodologies