EEC 116 - Debugging with the Magic and IRSIM CAD Tools

Are things not working? Try these first

  1. Check circuit

    1. Check transistor-level schematic (if you don't have one, draw one now).
    2. Check stick diagram, make sure the circuit matches the schematic (if you don't have one, draw one now).
    3. Check that magic layout matches the stick diagram.
    4. Verify magic connections and node names.
    5. Verify all power nodes are called Vdd and all ground nodes are called GND using getnode.
    6. Once the connections are verified correct, fix any DRC errors in the circuit. You can find the cause of an error by placing the box around the white dotted paint and using 'drc why' or ?.

  2. Check extraction

    1. If magic gives warnings when you extract your layout,
      1. Put a box around white warning paint and type 'feedback why'.
      2. Fix cause of warning(s).
      3. Type 'feedback clear' to clear warnings.
      4. Repeat until all warnings are solved

  3. Debug circuit
    1. Select important nodes (including inputs, outputs, Vdd, and GND of gates) one at a time, using s in magic.

    2. Type 'getnode' to get the "real" node name.

    3. Type 'analyzer nodename' in IRSIM to see the signals inside your simulation.

    4. Debugging rules:

      1. Start at inputs, move a node at a time toward the outputs

      2. Check that block inputs are correct

      3. Check outputs of gates which have block inputs as the gates' inputs

      4. Think hard while studying the waveforms on irsim's analyzer—this is the quickest way to get a design working.

      5. [repeat] You will find the bug(s).

    5. Finding the source of X's

      1. Start with a node that has gone X, move a node at a time toward the inputs of that gate.

      2. [repeat.] Until the source of the X's is found.

  4. If nothing is working right
  5. Copy your top-level .mag file to a temporary working file (e.g., temp.mag) and remove layout from it until it works.

Using IRSIM to find slow circuit paths

IRSIM freezing

Links


Updates:
2004/04/08  Written
2004/05/20  Added more magic tips and irsim section
2004/05/24  Schematic tips
2004/05/27  Irsim path command
2005/05/23  Updated for spring 05
2005/05/31  Added area calculation thanks to Jeremy Webb
2006/04/11  Updated for Spring 2006
2006/06/05  Added top-level power node hint
2008/04/30  Touched up magic error messages
2009/06/01  Touched up debugging notes
2010/10/19  Touched up and moved portions to magic.tips.html
2012/12/09  Added suggestion to copy cell and remove layout
2017/12/11  Added section on outputs going "x"; minor edits
2017/12/13  Major edits in section 1