Magic Mailing List |
|
From: cfk (cfk AT pacbell DOT net) Date: Fri Mar 28 2003 - 14:39:22 EST
Dear Stefan: Thank you for your e-mail. Progress is being made. I am hoping you will bear with me for another e-mail or two while I try to get to the "and thus we are done" stage also. I am cc-ing this to the magic users group in hopes it might prove useful to Tim and others also. Firstly, I have commented out the last lines in /home/cad/lib/magic/sys/.magic dealing with both plot and scheme (the scm invocations). I have also commented out the option statements for zoomTitle & zoomOutline as described in your dif file earlier. I then invoke 'magic -w' as you show: % magic -w Main console display active (Tcl8.3.3 / Tk8.3.3) % package require spice Cell /usr/lib/tclX8.3/../libtclx8.3.so couldnt be found Creating new cell can't find package Tclx % ;load /usr/lib/libspice % ; package require spice 0.2.6 Now I have to mention at this stage that the system I am running this on is a RH8 with all packages installed, including Tclx. The red hat installation did put a libtclx.so into /usr/lib and there is a /usr/lib/tclX8.3 with a pkgIndex.tcl and other files. Also, it seems that spice loaded OK the second time. Anyway, this is probably a -exact, or a path thing. Let me go on to the next step where I have an inverter that was extracted from http://www.rsl.ukans/~linhard/magic which is the magic file I have been working with. The .cir file I am using merely gets the nfet/pfet models to level 2 NMOS/PMOS and is a slightly modified version of the .cir file at http://bear.ces.cwru.edu/eecs_cad/cad_spice.html which appears to be a very useful reference for spice circuits pertaining to an inverter circuit extraction from magic. Anyway, here goes the next step or two. %;cd /home/global/test2 %;spice::source testx_trans.cir %;spice::run %;spice:;asciiplot v(out) At this point, I have a successful spice run and a successful spice plot of the out voltage of the invf100.mag file (where I changed the input from A1 to in and the output from O to out for personal reasons) from ukans where the testx_trans added a power supply, ground connection. %;plot out %:plot in And yes, there are now two graphs, one of the input and one of the output of a magic inverter cell. By, the way, I can just do a %;load /usr/lib/libspice and get everything running without the 'package require spice'. I think the issues are very minor and perhaps could be just worked out so the occaisional user can get his magic/irsim/tclspice working without having to understand everything about paths, packages and such. I am hoping you might consider working to make it easier on the user. I also have a couple of suggestions along that line. Both magic and irsim have a make config step, tclspice has arguments to ./configure. Perhaps tclspice could have a make config step and avoid the ./configure arguments and have its make procedure more like irsim & magic (or conversly, magic could have its make config changed to ./configure arguements). Similarly, magic and irsim do a 'make tcl' followed by a 'make install-tcl' and tclspice does a 'make tcl' followed by a 'make tcl_install'. I find I now have to look it up everytime I compile since they are different. Perhaps tclspice could change the make tcl_install to make install-tcl or conversly (well, you know what I was about to type, but my vote is really to change tclspice instead of magic and irsim, but youse folks can work that part out). Anyway, not criticism Stefan, I am trying to help and right now I am admiring two wonderful plots from a magic cell on my screen. Thank you very much for your help. Charles Subject: Re: [Ngspice-users] tclspice & magic > On Thu, 2003-03-27 at 20:46, cfk wrote: > > The invocation of "magic -w" creates a magic window, a tkcon and a tclspice > > graph that is blank. A "load /usr/lib/libspice" does get access to spice and > > I can spice an inverter extracted from magic with exttospice and plot it > > with ";spice::asciiplot v(out)", I just cant do a ";spice::plot v(out)" from > > within magic (works outside of magic with ngspice directly from a bash > > prompt, draws the output voltage with blt, no problem). > > > > Now it gets interesting. I can tell that the plot procedure in pkgIndex.tcl > > is being called as a consequence of the default loading of magic's tcl stuff > > even though magic knows nothing about spice at this point. It appears after > > reading mucho documentation that the tcl interpreter goes looking for all > > the "pkgIndex.tcl" files when it needs a procedure called for instance > > "plot". And there is one in ../spice/pkgIndex.tcl, and it is called. > > > So, I recompiled magic without the plot module, still same effect. Next, I > > renamed the plot as xplot in pkgIndex.tcl and voila, no blank plot anymore. > > I also put a puts inside pkgIndex.tcl so I would be told it was executing, > > and it is executing when I think it is executing. > > This is a namespace conflict which I have known for quite a while. In > the pkgIndex.tcl there are a lot of global variables which get in the > way of quite a few packages. Ideally it needs to be cleaned up with all > the functions / variables in pkgIndex.tcl being in a namespace and only > sourced from a seperate file when the user runs "package require spice" > > This would also speed up the execution time of tclsh as at the moment > every time it runs it sources the entire pkgIndex.tcl file. > > I am not the author of the current pkgIndex.tcl but I have CCed him > (Adrian Dawe). I think he may have done some work on the clean ups > already. > > > Perhaps some hints on the care and feeding of pkgIndex.tcl:plot could be > > suggested?? > > I only really look after the C-code stuff. But it is good to see that > that part works. > > Ok here are the mods I did to get it to work: > > Edit your .magic file normally found at $CAD_HOME/lib/magic/sys/.magic > and remove the plot commands at the bottom of the file: > ------ > # additions for plot package > > #plot parameter spoolCommand "echo use 'lpr -P%s -v -s -JMagic %s' to print plot" > #plot parameter directory "." > ------ > > This will stop the blank plot window appearing when you start magic, as > when you start magic wish sources /usr/lib/spice/pkgIndex.tcl which > creates a "plot" command whether you want to use spice or not, which > overwrites the magic plot command. .magic is then sourced by magic and > invokes the spice plot command which creates the blank plot. > > Now the pkgIndex.tcl file needs some fixes, in particular the options > lines which you found before. I commented these out. I also removed the > package require Tclx line as it is not required. > > Now I can do the following (PS. magic plot is compiled in but it seems > /usr/lib/spice/pkgIndex.tcl overwrites it with it's own function) > > magic -w > [ wait for the magic tcl prompt ] > [ at the magic prompt we get ] > [ snip .... ] > Main console display active (Tcl8.3.4 / Tk8.3.4) > % package require spice > 0.2.7 > % spice::source array.spice > % spice::step 10 > % plot 3019 > list add : 3019 > 2 > [ The plot pops up! ] > > And thus we are done! > > Attached it the patch I used to /usr/lib/spice/pkgIndex.tcl to get it > working here. This if for tclspice-0.2.7. > > Hope this helps, > > Stefan > > -- > Stefan Jones <stefan.jones AT multigig DOT com> > Multigig Ltd >
|
|