Magic Mailing List |
|
From: Stefanos Sidiropoulos (stefanos AT aeluros DOT com) Date: Mon Feb 25 2002 - 15:19:31 EST
Can someone please get me off the mailing list ? I have been following on and off for a while with interest, but I'd rather keep my mbox clean if the whole thing is going to degenerate to a holy war about corner-stitching. Thank you, -- Stefanos PS: I thought people fought that specific war back in 1985 and moved on from there. ----- Original Message ----- From: "R. Timothy Edwards" <tim AT stravinsky DOT jhuapl.edu> To: <magic-dev AT csl DOT cornell.edu> Sent: Monday, February 25, 2002 12:01 PM Subject: Jeff Solomon's Future of Magic > Okay, Jeff's email deserves a response, and anyone who has been reading > this list for any length of time knows that I always run in -verbose > mode, and can't resist. . . > > > 1) For people to use magic, it should be easier to build. > > > I've been tempted, but I just can't find the energy. > > Understandable. But I was under the impression from some time ago > that you were planning to do it. If not, I'll work on it. It will > need more than just one person, though. "autoconf" is not fundamentally > better than magic's existing "config" script, so we'll need some > volunteers to test compilation and running on all major platforms. > > > 2) The corner-stitched data structure is too memory-inefficient. > > First note that magic is one of those programs where the data structure > IS the program. The corner-stitched tile structure touches every part > of the code, and changing it would be tantamount to writing a new > program. > > I can't agree with your assessment of the memory/speed tradeoffs in > magic without some hard data. Magic's DRC has to be at least 1000 > times faster than any other VLSI layout tool. But of course a large > part of that has nothing to do with corner-stitching at all, but > rather is due to its running DRC as a background process and updating > only over areas where the layout has been modified, saving DRC info > in the output file, and using timestamps for validating the DRC of > each cell. The bottom line is that the cost of fundamentally > rewriting magic is huge, whereas the benefit is not entirely known. > A good cost/benefit analysis is warranted, even if it involves just > back-of-the-envelope calculations. > > > 3) 24-bit magic is ugly (and menus and dialog boxes aren't all evil) > > I agree that OpenGL is the way to go, but my implementation was > rather quick-and-dirty and needs some refinement. First, the cursor > box should attempt to use a 1-bit overlay plane which will keep > magic from redrawing layout every time the box is moved. And there > are probably other optimizations which can speed up the redraw rate. > Currently, most systems (including SGIs, which are supposedly highly > optimized for OpenGL rendering speed) seem to redraw layout at about > 2/3 the speed of redrawing in 8-bit indexed color. I was hoping that > the speed would turn out to be faster, not slower, but that's not the > case. > OpenGL is also more cross-platform independent than X11, but my > first attempt to use "glut" (the OpenGL server-level interface) had > horrible interactions with X11. It appears that OpenGL has to work > on top of interface code linking it to the display's native graphics > server. The interface also slows down rendering. On my system, if > any window obscures a portion of the OpenGL window, OpenGL switches > from hardware acceleration to software emulation, apparently the only > way X11 can prevent OpenGL from drawing overtop the X11 windows. > These issues are all likely hardware-dependent. I'm curious as to > whether anyone has found a hardware setup in which the OpenGL > interface runs faster than the 8-bit X11 interface. > > ------------------------------------------------ > I should add my own additions: > > 4) Threading is the way to go. > > Magic was written in pre-threads days. I've been able to switch the > graphics from using a forked process handling the server graphics calls > to a separate thread, but magic should be using threads much more > routinely, such as having a separate thread to run DRC, and possibly > handling repainting for each open window as a separate thread. > > 5) Scripting is the way to go. > > Rajit did a fine job embedding SCHEME into magic, but I have since > become convinced that EDA programs should have interpreters "wrapped" > around them rather than embedded in them. I'm hoping to demonstrate > such a system by June, based more-or-less on John Wood's GUI-wrapped > magic system, but more concerned with using the interpreter for > fundamental extensions to magic than with GUIs. Namely, it will run > SPICE in much the same way it now runs irsim; indeed, it should be > possible to mix-and-match with any simulator. Also, the interpreter > will handle interaction with other independent programs, such as > FastHenry for inductance extraction. > > 6) It pains me to say it, but we need a Windows version of magic. > > Linux has been gaining a lot of ground, but programmers who have their > idealism tempered with a measure of realism admit that any program > which seeks to expand its user base as much as possible should run > conveniently in Windows. I'm currently writing a native-Windows-API > version of the graphics. There will be much wringing of hands and > gnashing of teeth, but at least the setup of magic allows the addition > of Windows graphics while minimally touching the rest of the code. > > 7) Finally, did anybody mention documentation?? > > I think that's a well-known issue, another one like the build/install > interface that just needs doing, not discussing. > > --------------------------------------------- > > ---Tim >
|
|