[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gEDA: Recent changes in CVS




Hi All,

	Here's a quick summary of some of the recent CVS changes:


-*- Hierarchy support in gnetlist -*-

	Probably the bulk of the changes are here.  I've added
	first cut of hierarchy support to gnetlist.  

	First off, here are the *gnetlistrc keywords which control the
	various options associated with hierarchical traversal:

(hierarchy-traversal "enabled")	
;(hierarchy-traversal "disabled")	

	Self explanatory

(hierarchy-uref-mangle "enabled")
(hierarchy-netname-mangle "enabled")
(hierarchy-netattrib-mangle "enabled")

	These control if gnetlist will "mangle" underlying uref, named nets,
	and nets created via the net= attribute.  By mangle I mean make 
	unique by either appending or prepending the toplevel (or one level
	up) uref.  

(hierarchy-uref-seperator "string") 
(hierarchy-netname-seperator "string") 
(hierarchy-netattrib-seperator "string") 

	These specify the character which is inbetween the mangling.
	If you make the string "", then no characters are placed inbetween
	the mangling.

(hierarchy-uref-order "append")  ;; or "prepend"
(hierarchy-netname-order "append")
(hierarchy-netattrib-order "append")

	These control the order of how the mangled names are created.
	If you have append specified then you will get mangled names like:
	U1/U2/U3 etc...  If you have prepend specified then you will get 
	mangled names like: U3/U2/U1.

	I do agree that some of the keywords seem absurd, however I didn't
	see any other way of satisfying everybody (hehe, yeah right).  If
	you still see some permutation I have missed, let me know and I will
	try to accommodate.  Also there are quirks associated with each 
	option, so you will have to experiment.  See the system-gnetlistrc
	file for more comments.

	So, how do you use the hierarchy support in gnetlist.  Simple:

	1) Make sure all composite symbols have the pinlabel attribute
	   attached to pins.  None of the symbols in the library use
	   pinlabel (they use the new / old label attribute which really
	   should be pinlabel)

	2) Attach the appropriate source= attribute to component in the 
	   schematic.

	3) Make sure all components have some sort of uref.

	4) To bring a net out (inside an underlying schematic) to the
	   symbol, place a in-1.sym or out-1.sym and change the default
	   uref (which is pinlabel) to the same value you specified
	   for pinlabel= in the symbol.  Take a look at in-1.sym and
	   out-1.sym.  Though, there's nothing magical about those
	   symbols, any symbol with the correct uref will work so you
	   are welcome to use whatever input / output symbol you want.
	   Keep in mind that these input/output symbols do not show up
	   in the netlist.

	5) Make sure gschem can properly find all underlying schematics 
	   (ie make sure you have the right source-library keyword in 
	   *gschemrc and obviously in *gnetlistrc)  Traverse the hierarchy
	   using gschem.

	6) Run gnetlist against the toplevel schematic and see what happens.
	   I have only tested using the geda native netlist format, but
	   the other backends should work fine too.  You should get a totally
	   flat netlist in the output file.  If it doesn't work, e-mail
	   me your test schematics and symbols.

	7) Tweak the above mentioned *gnetlistrc keywords to get the hierarchy
	   name mangling you want.

	Hopefully I haven't missed any steps.  I'll create some sample
	schematics which demo this.  Or if somebody has some hierarchical
	designs they are willing to share... :-)

	Roger W., I tried to accommodate the way operate, so you will
	certainly need to tweak the *gnetlistrc rc keywords.  Let me
	know if I missed the mark.

	I cannot stress this enough, please make sure gnetlist is working
	for you everytime you create a netlist.  There most certainly
	could be some serious bugs in the new (and old code).

	This is a first alpha cut, it's crude, but it seems to work (for me).
	Let me know of your success (hopefully) or failure (hopefully not).
	Thanks.

-*- gnetlist.txt -*-

	I checked in an incomplete version of gnetlist.txt.  Feel free
	to send me stuff to put in there.  I'll slowly get this file
	more complete.  I need to add a section on hierarchy support.

	Also, gnetlist.txt and gschem.txt are now in gnetlist/docs and
	gschem/docs instead of the docs package.

-*- VHDL-AMS backend -*-

	I've started integrating this new backend, which will eventually
	replace the existing VHDL backend, but there are some bugs which
	might cause it to not work on your system.  I'm dealing.

-*- gschem bugs / patches -*-

	- Bunch of bug fixes to the zooming code by Werner Hoch (Thanks).
	  This code should slowly get much better with time.

	- Bunch of other smaller patches and bug fixes.

	
	I think that's it.  

								-Ales