lysis using a defective or incomplete mixer model. This often results in costly redesigns. As mentioned before, since we do not know all im- plementation details in advance, we must rely on prior knowledge and experience to construct realistic model templates. This especially holds for models constructed dur- ing the early stages of a design. Finally, in realizing efficient (partially automated) hierarchical design methods, it is very important that models should be kept as simple as possible. Complex and overly detailed models compromise efficiency of analysis as they result in tedious computa- tions and lengthy simulations. This in turn hampers architecture exploration or optimization- based synthesis and/or specification translation. Since these steps often require nu- merous evaluations of the building block models, complex models render it slow and sometimes even infeasible. This especially holds at the architectural level where a great number of building block models need to be evaluated simultaneously. Low- complexity models are therefore among the cornerstones of (semi-)automated design. In summary, capturing complex building block behavior in a manner that is as simple as possible is one of the great challenges in CAD. 2.1.4 Modeling languages Describing system behavior requires a proper formalism, i.e. a language, to do SO. Choice of the language is driven by the nature of the system we want to describe. Human behavior, for one, is best described in a spoken language like English. On the other hand, the quantitative nature of engineering problems renders mathematics a natural choice. Often, new language constructs (syntaxes) need to be developed to capture newly encountered objects and their behavior. For example, electrical netlists have driven the creation of the SPICE input syntax [Vlad94]. More recently, describ- ing mixed-signal systems has brought about languages like VHDL-AMS [VHDL] and VERILOG-AMS [VERI]. It is, however, not the intention of this text to give a com- plete overview of such langua