 blocks, each implementing part of the overall functionality. Next, the performance of the implementation is evaluated. The results may lead to adjusting the system implementation or even the initial set of system specifi- cations. implements system realization in a hierarchical manner. The problem statement is gradually refined by decomposing it into more manageable subproblems. During each stage in the design process, this decomposition proceeds along the lines illustrated in Fig. 1.3. The starting point is a set of system specifications that represent the required functionality, performance and cost constraints. To meet these specifica- tions, a designer suggests a number of candidate implementations¹. An implementa- tion involves a set of building block specifications -each intended to realize part of the overall functionality- and a system topology, i.e. the way in which the building blocks are interconnected. By means of techniques for modeling and analysis, the re- sulting system performance is evaluated. If specifications are met, one can proceed with the implementation of the building blocks. If not, the current system implementa- tion needs to be adjusted. If it seems impossible to meet specifications, one can request to relax them. This, however, may impact implementations at previous stages in the design hierarchy. This -synthesis- step is the one that mainly requires a designer's creative input. Of course, automated synthesis is possible, but it will always be based on filling out the degrees of freedom of some template solution devised by a -human- designer. The art of automated synthesis is making the template as general as possible. 1.1.4 Structured analysis Structured analog design requires designers to have both the knowledge and tools to tackle the problems of analysis and synthesis that occur. For this, we need to formalize the knowledge available on analysis and synthesis of analog build- ing blocks. This implies embedding that knowledge within a global theoretical framework. algorithms and t