Magic Mailing List |
|
From: R. Timothy Edwards (tim AT stravinsky DOT jhuapl.edu) Date: Mon Feb 24 2003 - 12:09:52 EST
Dear Charles, > 1. Can you point to some location for study about the recently added > inductance extraction I read about on Tims web page. Perhaps a couple of > commands or an example to allow further study. This is still under development, so I haven't written up anything formal about it. In brief: You need to get a copy of the "FastHenry" source code. Magic doesn't actually do inductance extraction, which is extremely labor intensive. What it does do is geometry extraction, which is dumped to a file and which can be shoved into a field equation solver like FastHenry to get an equivalent transmission-line circuit with inductors, capacitors, and resistors. Because field-equation solvers are slow, it is best only to extract the geometry of interest (such as when you specifically design a spiral inductor). The method undoubtedly requires a bit of playing around with, but the steps are as follows: 1) Put the inductor layout in a separate subcell. 2) Surround the entire subcell with (internally-defined) layer "subcircuit". 3) Define the "ports" (input/output) of the inductor with labels, one side of which should be coincident with the subcircuit layer boundary. 4) Extract ("extract all") 5) Write a .sim file netlist ("exttosim") (that's the Tcl-version variant of "ext2sim") 6) Do "extresis geometry" 7) Do "extresis all" 8) Do "exttospice" (likewise, the Tcl-version variant of ext2spice) What you get is very similar to the standard use of "extresis" (see the extresis tutorial), except that where the "subcircuit" layer is defined, you will get a file <cellname>.fh, which is a (hopefully valid) input file for FastHenry. Using FastHenry (see the FastHenry manual; I can't go into that much detail here), you can convert the .fh file to a SPICE equivalent circuit. The last "exttospice" step will produce the standard SPICE deck *except* that the subcell with the "subcircuit" layer will become a subcircuit call ("X..." record in the SPICE deck). At this point you should be able to append the SPICE deck produced by FastHenry to the SPICE deck produced by magic and simulate. Note that this method (i.e., using the "subcircuit" layer) is generally applicable to any situation in which magic is not expected to extract a subcircuit, but for which a subcircuit exists. This would include standard-cell designs (esp. analog standard cells) where a set of device or circuit layouts has been manufactured, characterized empirically, and a SPICE model produced to match the empirical data. > 2. Is there any way to display the cursor's X,Y location as I work with a > layout. I find knowing where I am, geometrically speaking is always very > useful with any drawing package. Yes. If you use "magic -w" (the GUI wrapper), the cursor's position is always printed in the upper right-hand corner of the title bar. This uses the magic command "box values" to grab the box coordinates. It occurs to me though, that you probably want a real-time display of the X11 cursor's position relative to the magic layout, not the position of the magic cursor (i.e., the box). There is no way to get the cursor (as opposed to the box) value in magic coordinates (as opposed to window pixel coordinates). There is such a function (grx11GetCursorPos() and friends), but no command-line command that calls it. It is trivial to add one, so I will (check 7.2.26, to be posted shortly). > 3. I see that with Magic 7.2 and its Tcl command window that the macro "g" > for grid doesnt work anymore. It keeps wanting four arguments. I did find > in ../command/CmdFl.c the CmdGrid function wanting a MagWindow first > argument, but quite frankly I dont know what to tell it. An example would > be appreciated. My mistake. To avoid conflicts with internal Tcl/Tk commands, I renamed a few of magic's commands. Because "grid" is the command for Tk's grid- placement widget, I extended the command to "gridspace" in magic to avoid conflict. However, I didn't change the command in the macro file. You can fix it by changing ${CAD_HOME}/lib/magic/sys/.magic: # G key macro g "grid" macro G "grid 2" to: # G key macro g "gridspace" macro G "gridspace 2" Changes need to be made to magic/proto.magic in the source directory if you don't want them overwritten on the next "make install-tcl". A fix to this will also be in the version 7.2.26 posting. About your comments on the Icarus Verilog-to-layout design flow: > I did take a side trip with Electric a month or so ago, and although I > can compile its automotive speed controller IC sample from source with > its library and its silicon compiler and it even does load in cells from > its version of the mosis library, place them in rows and connect them up, > it is designed for VHDL and I am working in Verilog. So, that and the fact > that Magic appears to be more prevalent then Electric has caused me to come > back to Magic again. I have trouble believing that Electric can do something > that Magic cannot do, rather, I suspect that my understanding of Magic is > not complete enough yet. Sadly, there are things which tools like Electric do which magic does not, and good netlist place & route is one of them. I would suggest that this is primarily due to the fact that development on magic slowed to a trickle about the same time that most of the digital custom design world moved on to VHDL/Verilog compiling. I think it's particularly unfortunate that academia is where good research gets done on complex tasks like place & route, and traditionally academia meshes well with open-source development. According to the standard open-source software manifesto, this is how the best solutions to the hardest problems get to the end- user in the fastest possible way. I'm trying to put magic back on this sort of development track. Regards, Tim
|
|