1. A method for building configurable designs, comprising the operations of: creating a configurable design using a hardware descriptive language, the configurable design having a plurality of instantiated configurable constructs that can be optionally included in a design; and generating a derived design by removing configurable constructs from the configurable design based on a specification, wherein the specification indicates which configurable constructs are to be included in the derived design, and wherein the derived design is suitable for synthesis.