MAGIC Magic Mailing List
 
 

From: Jeff Solomon (jsolomon AT vlsi DOT stanford.edu)
Date: Tue Apr 09 2002 - 18:59:00 EDT

  • Next message: Mikael Sahrling: "weird bug in non-manhattan stream-in"

    Andrew P. Lentvorski writes:
     > If you really meant your statement about viewing designs of
     > arbitrary size (up to max disk space), there is *NO* current vlsi
     > editor which will meet your needs.
     >  
     > What you really want is some form of viewer which converts stream
     > formats into a fully-packed RTree which is then packed onto a hard
     > drive or similar mass-storage device. This is the realm of database
     > design rather than VLSI tools design. Antonin Guttman's "R-Trees: A
     > Dynamic Index Structure for Spatial Searching" (ACM 1984) is a good
     > starting point.
     >  
     > If what you want is a more compact representation to fit bigger
     > designs into DRAM, that's a different story entirely. However,
     > corner stitching is so fundamental to Magic that changing it to
     > something like a quad-tree, a k-d tree, or an R-Tree requires
     > *major* surgery.
     >  
     > Let me assure you, however, that "dumb, simple and straightforward"
     > structures do not have sufficient performance. The difference
     > between O(n^2) (most dumb algorithms) and O(n log n) (the provably
     > optimal, but complicated algorithms) for n=10,000 is significant
     > even on a 1GHz computer with 1GB of RAM.
     >  
     > You will have to take a dive into some heavy-duty computational
     > geometry if you hope to have anything approaching reasonable redraw
     > performance for 100,000+ shapes (a relatively small design by
     > today's standards)
    
    Andrew,
    
    Let me explain to you a little bit better where I'm coming from. The 
    problem with layout redraw (and EDA visualization) is something that's
    been bothering me for a while. I started some work on it a few years
    ago and have managed to make some progress:
    
        http://www-vlsi.stanford.edu/~jsolomon/chipmap/
        
    To implement my viewer, I used magic because it was the only existing
    viewer with source code available. I claim that my viewer can
    interactively navigate through designs of arbitrary size. This is
    mostly true. But the startup time is non-zero. And you'll have to wait
    an arbitrarily long time for a top level view to become fully computed
    for arbitrarily large designs. But for all the designs I have, and all
    the designs I know about, the initial computation times aren't
    terrible.
    
    I guess I believe that my algorithm is the fastest way to draw (and
    redraw) every element in a VLSI database on the screen.
    
    I brought up the points in my previous posts to share with other magic
    users my experiences with reading in massive databases. I'm betting
    I'm one of the only people trying to do this with magic. If people who
    want to use magic, want to use it with very large databases, they
    might want to know how poorly it performs in overall memory footprint
    compared to commercial editors/viewers. I suspect that these
    commercial editors/viewers are using just the type of database
    representation that you talk about above.
    
    Jeff
    


  •  
     
    Questions? Contact Rajit Manohar
    cornell logo