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
-
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'.
-
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.

Fig 7-2. Choose symbol 'full adder' and place it on the work sheet
-
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.

Fig 7-3. Make 10 copies of the full adders
-
Select 'CONNECT ALL' from the right hand side palette to connect
all the pin overlaps marked with small circles. The overlap marks will
disappear.
-
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.
-
Select from that pop-up menu while holding RMB:
Rotate/Flip->Flip->Vertical
The result is shown in Fig 7-4.

Fig 7-4. Flip the lower 5 full adders
-
Add input and output ports named A(9:0), B(9:0), Cin, SUM(9:0), Cout.
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)'.
-
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.

Fig 7-5. create bus beside full adders
-
Add wire from all the input pins 'A' on the full adders to A(9:0)
bus as shown in Fig 7.6

Fig 7-6. connect wire to bus
-
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.

Fig 7-7. small 'R' beside junction of bus and wires
-
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.

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.
|
-
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.

Fig 7-10. 10-bit full adder.
-
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.
8. Editing Strokes
-
The use of strokes will let you work faster and easier. The strokes table
can be found through
Help -> On Strokes...
-
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.

Fig 8-1. Quick Help on Strokes.
9. Exit Mentor Graphics
Exit from all the windows by selecting 'Close' from the window menu option.
Click here to go to 'VLSI Design
Flow Using Mentor-Graphics Tools'