Magic Mailing List |
|
From: Steve Tell (tell AT telltronics DOT org) Date: Tue Feb 26 2002 - 00:58:35 EST
I've been working inside the magic code since 1996 or so, and still get to spend some work time supporting for us locally, and would like to help out as time allows. So I'm glad to see a useful discussion. Please indulge my $0.02... >> 1) For people to use magic, it should be easier to build. Hear here! Autoconf is definitely a bit better than even magic 7.1's cleaned up makefiles, mainly because the configure process doesn't have to ask the user questions; when done right it just figures things out and works. Besides, making RPMs from a well-autoconfed package is usually quite straightforward; ditto for other package managers. I got irsim mostly autoconfiscated in about half a day - anyone interested in that? This is definitely a "just do it" sort of proposition. As for old code, magic may be one of the few mid-80's pieces of C code worth running any more, but I'm all for dragging it kicking and screaming into the 21st century. Target AnsiC + POSIX, with workarounds for the oddball cases anyone wants to support. Given assurances that the huge patches that such build and code updates will represent will be accepted, I'm ready to contribute to the necessary coding. >> 2) The corner-stitched data structure is too memory-inefficient. Here I must agree with Tim and perhaps go a bit further. A research project into new data structures is welcome to fork the code (if any of it can even be reused at all) with all my best wishes - but please don't call it "magic" until it works with all existing techfiles, and also benchmarks reasonably. >> 3) 24-bit magic is ugly (and menus and dialog boxes aren't all evil) I must agree that speed matters a lot, and getting openGL running isn't always easy. In fact, I must admit that I havent tried the GL flavor of magic. The 8-bit version works quite well for us, especialy with my colormap-sharing patch. Speed matters when browsing around a whole chip. But I'd like to try the GL driver, and I'm willing to be convinced by any true enhancements possible by using more alpha-blending. Perhaps change the opacity of selected rectangles instead of or in addition to outlining them? Menus and dialogs, especial if they can somehow help teach the corresponding macros and text commands would be a fine addition. Watching a first-time magic user get up the learning curve is quite painful. >4) Threading is the way to go. Sounds good to me, although I don't have much experience coding with threads under unix. Keeping a second CPU busy doing DRC could be a win. >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 I'm not sure what you mean by interpreters "wrapped around," but I'll look forward to your demo. I do really like the way Rajit's scheme interpreter interfaces to magic with so few changes, although I wish it was a standard scheme interpreter library such as guile. My preferred style for implementing an EDA tool is - write the core algorithms and data structures or objects in C (or C++ if you must) - expose those objects into the extension language - Implement as much of the UI in the extension language as possible (but do speed-critical things such as screen redraws directly in the C core) My current favorite set of tools for this are guile and guile-gtk. >6) It pains me to say it, but we need a Windows version of magic. While personally (and professionaly) I don't need magic on windows ("let them use X (or vmware)"), making magic accessible to more users is great. I hope it can be done cleanly. A few places in the code I've found the existing "#ifdef MAC" and "#ifdef OS2" distracting; maybe factoring some of the variations into seperate implementations of functions having the same interface can keep the main line of the code more readable? Can I add another: 8) The extractor needs further rework for today's and tomorrow's CMOS processes. Processes are getting smaller by shrinking the width of the metal, but keeping the thicknesses about the same, so sidewall capacitance dominates, and magic doesn't handle this very well. In 0.18u, magic's extractor is only a few percent pessimistic compared to say Star-RC. With 0.13u, we found it easy to be off by a factor of 4 without careful juggling to split the difference on the errors. "Sideoverlap" (up and down), and "sidewall" within plane essentialy need to conserve capacitance among each other, instead of treating them as seperate effects. I've spent a lot of time in the extractor code chasing down very minor issues, enough to know that this won't be a simple project. But unless the documentation evolves to say "magic is free but you'll have to pay synopsys or avanti full freight for an accurate extractor" this will have to be addressed. Steve -- Steve Tell tell AT telltronics DOT org
|
|