Conclusions



 

        In hindsight, one can get a feel of the process involved in designing an integrated circuit chip going from an idea to the screen, and finally to a physically working device. Throughout this development, we learned how to use a layout tool called MAGIC.  MAGIC is a cumbersome yet effective way of laying out a circuit at the lowest level.  Unfortunately, its command line interface took some time to learn.
        One of the biggest problems was laying the wires so they would not pose future problems when implementing more cells into the design.  Particularly, if the design needed to be modified, moving wires and components proved to be distressing.  One way to avoid some problems we found, was to keep vertical wires blue, and horizontal wires purple.  That is, by keeping a metal wire in one direction, and different type of metal wire in the other, there will never be a junction occurring with the same type of wire thereby eliminating short circuits.  You may have noticed this in our picture of the MAGIC layout.
        Other problems included gate delays, bad connections, and HSPICE simulations.  Gate delays was not a large factor in our simulations since was adjusted the time to milliseconds.  However, in our design the worst possible gate delay would be 8.  The bit in question would need to go through the AND gate and 7 Muliplexers.  This is a considerable delay in any design.  Since our circuit was relatively small, there was little concern about placing buffers between stages to drive the voltage.  There was also the problem of human errors.  Staring at the screen for hours and wondering why is doesn't work wasn't an uncommon feeling.  Many times a wire would just be disconnected or misplaced causing the entire circuit to fail.  One way to avoid this problem, is to wire and test each part of the circuit before implementing the everything at once.  HSPICE simulations were also troublesome.  The errors reported from the simulations were uninformative and difficult to find.  Even when we new the circuit worked, by tracing the bits by hand, we couldn't get the simulations to function the way we wanted.  After many trials we were finally sucessful, but only after hours of failures.
        Given our design of an 8 bit Barrel Shifter and its functionality, one could modify it to his/her needs.  This design could be used as a guideline for implementing Barrel Shifters to upwards of 40 bits.  However, you might have to adapt some new techniques for larger shifters since the number of Muliplexers grows dramatically with the number of bits being used.