Here we discuss the basic approaches to creating a multi-module design. The schematic editor suppports full hierarchical design. This basically means that we can create the project components or module in any order and can then combine them into a complete design. For instance, you can draw the schematic first, and then create a block symbol for it or you can specify the block first and then create the schematic for it later. Through hierarchical design a large design can be broken down or decomposed into smaller modules and can be entered one piece at a time. This way you can organize and structure your design and the design process which in turn speeds up the design process and reduces the possibility of design or implementation errors.
While creating a top-down design you need not know all the details of your project when you start. You can start from the top that gives a general description of how your project works and therefore consists mainly of block symbols which represent the modules. You can then break the design into different modules which perform the appropiate functions. Hence in a top-level design you move in order from the top-level which gives the general description, to the modules that perform appropiate functions, and to the lower-level gates that realize the functions.
Applying the top-down design to the schematic, the upper-most schematic would just consist of block symbols that represent the different modules in the project. These modules can then be repeatedly decomposed into simpler modules until the entire design is complete.
Bottom-up design is ideally suited for projects in which the top-level behavior cannot be defined until the low-level behavior is established. Hence in the bottom-up design we first define all our lower-level modules and then combine them in schematics at increasingly higher-levels. Having defined the functionality of the simplest modules it is now easy to combine them to create the upper-level schematic.
As the name suggests the mixed design is a hybrid of top-level and bottom-up design. It combines the features and advantages of both. In this type of design you can start wherever you want to in the project working your way up or down as required. This means that you have to have a clear knowledge of the modules that need to be defined first so that you can use bottom-up design for those parts and you can use top-level design on those parts that have clear functional definitions. Regardless of the approach you take it is always preferred to start with those parts of the design that are clearly defined and then move up or down to those parts that need additional definition.