MAGIC Magic Mailing List
 
 

From: Philippe Pouliquen (philippe AT alpha DOT ece.jhu.edu)
Date: Tue Feb 26 2002 - 22:14:39 EST

  • Next message: Steve Tell: "Re: more corner stitching"

    Jeff Solomon <jsolomon AT vlsi DOT stanford.edu> wrote:
    
    > [This email contains more opinions related to magic's
    > corner-stitching data structures. If this bothers you, I invite you
    > to delete it now.]
    
    Some discussion on alternative database representation for magic or
    some hypothetical layout tool is appropriate to this e-mail list.  But
    if the discussion generates too much e-mail, then it should be move to
    a more suitable (e.g. generic) forum.
    
    > Before I start talking about corner-stitching again, let me state
    > these two properties of magic that are noticeable to me:
    >
    >    1. magic's memory footprint is large compared to commercial tools
    >       for large designs.
    >    2. magic takes a lot longer to read a design than commercial
    >       tools.
    
    From your later explanations, I gather that you mean:
    1:  Memory usage:
        Magic with no layout loaded:                        W bytes
        Magic with a layout using N rectangles loaded:      X bytes
        Other tool with no layout loaded:                   Y bytes
        Other tool with a layout using N rectangles loaded: Z bytes
    
        Your claim is that (X - W) > (Z - Y)
    
        This is certainly true.
    
    2:  The time required for Magic to load a .mag file of N rectangles
        (not including Magic's start-up time) is greater than the time
        required for other tools to read in their proprietary file of
        N rectangles (not including the start-up time).
    
        This is certainly true as well.
    
    > Now this is only really true for designs with lots of unique
    > rectangles. If your designs are small or contain tons of hierarchy,
    > then these aren't issues for you.
    
    Its likely that 1 and 2 apply in all cases, but aren't as noticeable
    for small designs, etc.
    
    > And perhaps huge designs will never be of interest to people using
    > magic. They are to me because I'm trying to make a layout viewer
    > that can handle designs of arbitrary size.
    
    If this is the single most important issue, because you are otherwise
    running out of RAM (or worse -- address space), then naturally you should
    use a different layout tool.  Alternatively, perhaps you need to change
    the way you do layout in Magic.
    
    
    > [Benchmark results deleted]
    
    > The fracturing is pathologically bad because all the cells besides
    > the vias are perfectly stitched together. Add the vias randomly over
    > the surface and you get 5.5 million tiles with about 12 million
    > CellTileBody structures.
    
    Right.  Magic creates new subcell tiles for each subcell, as well as
    each rectangular intersection of subcell boundaries.  This is one of
    the situations where you can't merge tiles on the same plane -- and
    there can be an arbitrary number of these subcell tiles.  The memory
    usage penalty for corner-stitching as analyzed by Magic's authors only
    holds for a finite number of distinct tile types per plane.
    
    > Design B has a major metal layer that interacts with a contact on the
    > same plane is such a way that each metal wire is actually broken into
    > 3 tiles. I believe the additional difference between 455 and ~130MB is
    > due to the memory cost of the space tiles.
    
    Sounds like a worst-case scenario.
    
    
    > [Benchmark results deleted]
    
    > Two things I believe. The first is that .mag files are ascii and
    > verbose. Even though magic has special code to subvert the standard
    > file i/o interface, it's still slow. Second is that magic must
    > re-create the corner-stitching each and every time the design is
    > read in. This is a lot of work.
    
    You can estimate the penalty for using ASCII by looking at the file
    size for the .mag files versus the proprietary formats.  The penalty
    for recreating the corner-stitching should be amortized over the time
    needed to DRC the design.  For example, it would be unfair to claim
    that Magic takes 300 seconds to read in the design and Virtuoso takes
    20 seconds, if a DRC then takes 20 seconds in Magic and 300 seconds
    in Virtuoso.
    
    
    > It's probably true that magic is just never going to be used for
    > huge designs. If the majority of magic users are happy with its
    > current memory footprint and the read-in time, then who cares? I
    > truly might be the very special case of someone who cares about
    > these things but also must have the source code.
    
    Read-in time shouldn't be an issue, unless you are restarting Magic
    often right?  Memory footprint is a problem only if you are running
    low on memory in your machine right?
    
    
    > 1) Magic could have a binary format. I've hacked one into my version
    >    but I wouldn't call it pretty. I can read in the above designs in
    >    about the same time as Mentor or Cadence.
    
    What did you do?  Dump the memory straight to a file?  If not, you
    still need to fix-up pointers don't you?  And then, how can you match
    Mentor and Cadence, unless your pointer fix-up is faster than your
    file i/o?
    
    > 2) Is corner-stitching necessary for the sub-cell plane?
    
    No, but a good replacement database scheme is not trivial to invent.
    
    
    > So am I the only one who's noticed the memory footprint and read-in
    > time of magic?
    
    I've found that the time saved in the layout phase more than compensates
    for these two inconveniences.  Also, when I do layout with Magic, I try
    to minimize the cell overlap as much as possible.  In your case, perhaps
    an additional hierarchy level would help.
    
    > Jeff
    
    Thanks for clarifying your previous contributions to this list.  I had
    not understood that you were concerned about corner stitching on the
    subcell plane.
    
    Philippe Pouliquen
    The Johns Hopkins University
    


  •  
     
    Questions? Contact Rajit Manohar
    cornell logo