# Complexity Question

3 messages
Open this post in threaded view
|

## Complexity Question

 Hi, i recently finished all the chips and i must say i feel that the last few chips took me alot of time experimenting\ testing over and over and i feel the explanation given in the docs and vids was really great and detailed but mostly for the elementary gates.. i also looked a little in the forum and tried to find a more detailed and clear way on how to approach more complex problems such as the DMux8Way / Mux4Way16.. i mean, what is the expected line of thought here? im just trying make sure not to miss it. any advice would be greatly appriciated! Thanks
 Administrator Digital design, like software design, involves a lot of art and lore. Computer Architecture courses, for example, include a lot of study of earlier designs. Part of the art is learning to recognize patterns and learn less obvious functions of basic parts. For instance, And can also be thought of as a switch. ``` enable in | out 0 X | 0 1 X | in ```Xor can be thought of as a controlled inverter. ``` invert in | out 0 X | in 1 X | ~in ```The DMux4/8Way can be approached using canonical notation and Karnaugh maps to do the sum of products optimization for each individual output. Mux4/8Way16 can be built out of Mux16s, or one can build auxiliary parts Mux4Way and Mux8Way and use 16 of them to make the 16-bit parts. Mux4Way has 6 inputs which is doable, if complex, using K-maps. Mux8Way has 11 inputs which is too complex to reasonably do using K-maps. This is where art comes into play, recognizing the pattern of how the selects are handled in the Mux and Mux4Way and extending that pattern. Another way to look at Mux4/8Way is to see it as a control circuit with 4/8 outputs followed by 4/8 And switches. That control circuit has 2/3 select bits and 4/8 outputs, exactly one of which is True. Can you see that this control circuit is a DMux4/8Way with in=true? In short, you didn't miss any overall methodology. --Mark