Specifying memory you will still be able to buy

A memory part is the easiest place in a design to create a dependency you cannot escape, and the easiest place to avoid one. The difference is usually a handful of decisions taken during schematic capture.

Start with density headroom. A design that fits in its memory with 2% spare will need a larger part eventually, and the larger part is often in a different package with a different pinout. Choosing the next density up at the start, or at least laying out for it, converts a future respin into a purchasing decision. The same logic applies to the package: a footprint that accepts both a standard and a wider variant of the same memory costs a little board area and buys a second supply route.

Prefer standard parts over clever ones. JEDEC-standard DRAM and conventional serial flash have multiple vendors with compatible interfaces and command sets; a proprietary multi-die module from one supplier has none. Where the interface is standard, keep the initialisation code parameterised rather than hard-coded to one device’s timing, so a second source is a configuration change rather than a firmware project.

Then check the discontinuation risk you are taking on. An older, smaller density may look cheap and available today while being scheduled out of production, because the fab capacity is worth more making something else. A part the manufacturer still lists as recommended for new designs, in a density that is currently the volume sweet spot, is usually both cheaper over the life of the product and far less likely to disappear from under it.