1. A method comprising: receiving a plurality of parameters for customization of a plurality of hardware components for implementation on a programmable chip, wherein the plurality of parameters is received using an application environment configured to load an application environment manifest, wherein the application environment comprises a plurality of software components associated with a pre-patched module; generating a logic description including a reference to the plurality of hardware components, the plurality of hardware components including a processor core and a peripheral; and applying a software component specific patch to the pre-patched module to create a patched module, wherein each software component of the plurality of software components includes a patch manifest and a pre-patch manifest, the patch manifest mapping modules with patched implementations and the pre-patch manifest mapping modules with pre-patch implementations; using version information to determine whether a software component should use a pre-patched module by only reading a pre-patch manifest or use a patched module by reading both a pre-patch manifest and a patch manifest, the patch manifest overriding an aspect of the pre-patch manifest.