7. Hierarchical Design

Here, we are going to show you the procedure for hierarchical design in a 10-bit Ripple adder using the full adder we built in the previous example. You may use similar skills to establish higher level blocks.

Remember that we have built a 1-bit full adder in the previous sections. We can Ripple 10 of them together to create a 10-bit adder as shown in Fig 7-1.

Fig 7-1. 10-bit Ripple adder

  1. Select 'CHOOSE SYMBOL' from the right hand side palette, a 'Select Symbol' dialog box will appear. Select the full adder you created before, then click 'OK'.
  2. A full adder symbol will stick on the cursor tip. Click on the work sheet to place it. The result is shown in Fig 7-2.
  3. Fig 7-2. Choose symbol 'full adder' and place it on the work sheet

  4. Use the skills acquired in section 4.2 Move/Copy to make 10 copies of it. Put them in two rows with each right next to the other as shown in Fig 7-3.
  5. Fig 7-3. Make 10 copies of the full adders

  6. Select 'CONNECT ALL' from the right hand side palette to connect all the pin overlaps marked with small circles. The overlap marks will disappear.
  7. For the convenience of connectivity, we need to turn the lower 5 adders upside-down. To do this, first select the lower row of the 5 adders to be flipped, put your cursor within the worksheet; click and hold RMB, you will see a pop-up menu.
  8. Select from that pop-up menu while holding RMB:
  9. Rotate/Flip->Flip->Vertical

    The result is shown in Fig 7-4.

    Fig 7-4. Flip the lower 5 full adders

  10. Add input and output ports named A(9:0), B(9:0), Cin, SUM(9:0), Cout.

  11. Note:For input and output bus ports, the name has to be followed by the width declaration of the bus. For example, if the bus port 'SUM' has a width of 10 bits, the port name should be 'SUM(9:0)' or 'SUM(0:9)'.

  12. Select 'Add Bus' from the right hand side palette to create input bus for A(9:0) runs beside full adders as shown in Fig 7-5.
  13. Fig 7-5. create bus beside full adders

  14. Add wire from all the input pins 'A' on the full adders to A(9:0) bus as shown in Fig 7.6
  15. Fig 7-6. connect wire to bus

  16. When you wire all the input pins, it will ask which bit of bus will be going into FA as shown in Fig 7-7.
  17. Fig 7-7. small 'R' beside junction of bus and wires

  18. In this example, we assign the upper-left full adder to be bit_0, the one right next to it to be bit_1, and so on. The results are shown in Fig 7-8.
  19. Fig 7-8. change small 'R' to wire number in the bus

    Note: don't forget to trim the bus end, or you will get warnings.
     

    Fig 7-9. overhang of bus end.

    Fig 7-9a. trimmed bus end.

  20. Use similar skills to connect input port CIN, B(9:0), and output port SUM(9:0). The resulting schematic is shown in Fig 7-10.
  21. Fig 7-10. 10-bit full adder.

  22. Use the same skills learned in the previous section to create a symbol of this 10-bit full adder, which can be saved for later use.

click here to go back to Index


8. Editing Strokes

  1. The use of strokes will let you work faster and easier. The strokes table can be found through
  2. Help -> On Strokes...

  3. To draw editing strokes, first hold the middle mouse button, draw  a stroke within any area in the schematic window and then release the button.
  4. Fig 8-1. Quick Help on Strokes.


click here to go back to Index


9. Exit Mentor Graphics

Exit from all the windows by selecting 'Close' from the window menu option.


click here to go back to Index



Click here to go to 'VLSI Design Flow Using Mentor-Graphics Tools'