VI. Hierarchical Design Using Pyxis

Table of Contents

Introduction

In this tutorial we will use Pyxis Schematic and Pyxis Layout to create a two input AND gate. We will achieve that by using NOR logic. In previous tutorials we have created a symbol of a transistor level schematic. We will use that symbol to create the AND gate and then we will construct the layout by using the layout created for the corresponding symbol. The final result will be an AND gate created using NOR gates.

Prepare your Workspace

Make a cell named Tutorial_6 in Tutorials and create a schematic named and.

1.png

Creating a Hierarchical Design Using 2 Input NOR Gates

Navigate to Add > Instance... > Choose Symbol and add the NOR symbol created in Tutorial 5. Use your knowledge of Pyxis Schematic to create an AND gate using NOR logic as shown below.

2.png

Simulate the resulting schematic as you did in Tutorial 5 to evaluate its correct operation. Do not forget to put a force on VDD! Note now with two levels of hierarchy some of the non-ideal effects are showing up. You can see a spike caused by the finite rise and fall times on the inputs.

3.png

Close EZwave and End Sim.

Create a symbol for the AND gate as you did in Tutorial 5 except this time pick the AND gate shape. Check, save and check the symbol then exit the symbol editor. Check and save the schematic.

4.png

Exit Pyxis Schematic.

Creating the Layout of the AND Gate

Create a new layout named and in Tutorial_6. In the New Layout windows choose Logic loading options... and change the viewpoint type to Hierarchical. Press OK.

5.png

At this point the program should have opened your sheet and your empty layout.

Navigate to Setup SDL and direct the Search Path to Tutorial_5. This will be different depending on how you have arranged your folders. A simple way of figuring out the full path is to navigate to your desired directory in a terminal window using cd and then using the print working directory command (pwd). You final setup should look like the one below.

6.png

Click on one of the NOR gates and press Add Inst. Because of naming issues the above might not work in generating a layout automatically. In that case a pop-up window will appear. You just need to go to Browse Cell and choose your layout schematic for the desired cell.

7.png

Add all the gates on the layout as shown below. There is an issue when instantiating an object. You will not see the object itself. Just click on the sheet and View > All.

Arrange the gates as shown below. Remember that you can move and align objects. Simply click on m and then move your object and then click v to align with another object. If done correctly there should be no overflows (e.g., yellow lines) between any of the \(V_{DD}\) and ground rails.

8.png

At this point the procedure is the same as before. Add all ports to your schematic. Because we are going to be wiring between cells it is recommended that these ports are Metal 3. Since you still need to connect \(V_{DD}\) and ground to your whole design just click DLA Logic > Port in your schematic without having anything selected. This will basically instantiate all ports that haven't been added to your layout but they exist in the schematic one by one, even the ones that can't be seen in the schematic like \(V_{DD}\) and ground.

9.png

Wire the connections in the circuit correctly as shown below. This step could be different if you've laid your gates differently. Just pay attention to the overflows. You can also choose a net on the schematic and it will be highlighted in your layout.

10.png

Finally navigate to Connectivity > Port > Add Text on Ports.... Make sure the aspect is set to Both.

11.png

Run DRC as you've done before. Any errors you get with respect to area of the M3 layer can be ignored as those will be fixed when you interconnect the gate at the next level of hierarchy.

Run LVS. You should get the correct results.

12.png

Extract the SPICE file using PEX. You must make one required change in the PEX setup in order for the extracted file to be correct. Under the Netlist tab, select the Hierarchy separator item and change the "/" character to an underscore "_".

12.png

Optional: You might also want to set the Extraction Type to R (vs. R + C or the other options). Doing this will tell PEX to only add the parasitic resistances to the netlist and not any of the parasitic capacitances. While this will result in an unrealistic delay model in the simulation, it will allow the signals to transition to the "0" or "1" values much faster (i.e., have very short rise and fall times) which will allow you to verify the correct functionality of your blocks without running the simulation for as long a time.

12.png

Simulate the results with VASim as before to ensure the correct operation of your layout.