Magic Tutorial : Inverter Layout

bug or comment to

  1. Execute magic program See Fig 1.
    %magic inverter
  2. Show grid on window See Fig 2.
    "g" or "box-> :grid"

  3. Draw pmos and nwell See Fig 3.
    "box(24,18)-> :paint nwell"
    "box(10,12)-> :paint pdiff"
    "box(10,4)-> :paint pdc"
    "box(10,4)-> :paint pdc"
    "box(14,2)-> :paint poly"

  4. Increase pmos W from 10 to 12
    Sorry!! Your TA should have told you that W of pmos should be 12. So please follow the next steps.
    Step 1: Select part of pmos and nwell. See Fig 4.
    click lmb(left mouse button) then rmb(right mouse button) to make a box as shown in Fig 4.
    "a" or "box-> :select" area

    Step 2: Stetch selected area to increase W of pmos. See Fig 5.
    "E" or ":stretch up 1"
    "E" or ":stretch up 1"

  5. Draw nmos using copy and wiring tool
    Step 1: See Fig 7.
    "box(4,12)-> :paint ndiff"
    "box(4,4)-> :paint ndc"

    Step 2: See Fig 8.
    put cursor on ndc drawn in step 1.
    "s" or ":select"
    put cursor on left bottom where selected ndc will be located.
    "c" or ":copy"

    Step 3: Change to wiring tool by typing "spacebar" key.
    Step 4: See Fig 9.
    click lmb on bottom of poly at pmos.
    put cursor at the end point of poly (2 grid below of nmos).
    click rmb.

  6. Draw via and metal1 See Fig 10.
    switch to box tool (type "spacebar" key 3 times)
    "box(4,4)-> :paint via"
    "box(4,4)-> :paint m1"
    "box(4,4)-> :paint via"
    "box(4,4)-> :paint m1"

  7. Draw metal2 See Fig 11.
    "box(4,4)-> :paint m2"
    switch to wiring tool (type "spacebar" key)
    connect both via by metal2.

  8. Draw Vdd and Ground line
    Step 1: See Fig 12.
    Draw metal1 connections as shown in Fig 12.

    Step 2: See Fig 13.
    "box(4,4)-> :paint nwc"
    "box(4,4)-> :paint pwc"

  9. Draw poly contact and metal1 See Fig 14.
    switch to wiring tool
    click lmb on the middle of poly
    put cursor on any of metal1
    click mmb(middle mouse button) to make a poly contact

  10. Finalizing drawing See Fig 15.
    Using all techniques you have learned, finalize your layout as shown in Fig 15.
    You may use ":move", wiring and contact generation using wiring tool.

  11. Save now

  12. Delete layer(s)

  13. Enlarge the width of inverter
    Your inverter turns out that width of cell is too small. Let's enlarge it by 2 lambda on both sides.

  14. Labeling
    Step 1: See Fig 26 and Fig 27.
    put cursor on metal1 of input
    click lmb and rmb at the same point - This will put cross point on metal1.
    ":label in"

    Step 2: See Fig 28.
    put cursor on metal1 of Vdd
    click lmb and rmb at the same point
    ":label Vdd n m1"

    Step 3: See Fig 29.
    Complete labeling as shown in Fig 29.

  15. Save

  16. Practice yourself See Fig 30.
    Draw the same nand gate layout shown in Fig 30.

Copyright Joong-Seok "Jay" Moon