Re: gEDA-user: series of gnetlist backend patches
On Monday 03 January 2011, Dan White wrote: The Analog Rails tweaks to gnucap make parallel simulations with hspice feasible from a common *.sch set. Their repo is at http://redmine.gnucapplus.org/ I could use some help with gnucap development. I have asked Analog Rails to officially participate in the main line of gnucap development, but they refuse. Management decision. Very bad management decision. In the geda context Gnucap's preferred netlist format is Verilog, but the geda Verilog netlister doesn't do attributes and other problems, so it is useless for this. The spice format has been a serious headache for simulator developers for years. Taking this a step further. There is a need to treat nets as first class objects, which no geda netlister does. Gnucap has its own translation facility, that can import as well as export. If someone can write plugins for gschem format, and PCB format, that would be most appreciated. Gnucap was never intended to be just another spice, but rather a modern replacement. It's the original fast-spice, and the first true single kernel mixed-mode simulator. I could help on the research side too, but in this context, just someone to grab the low-hanging-fruit would be extremely helpful. Everything that any Spice has that Gnucap doesn't is low-hanging fruit. ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: series of gnetlist backend patches
Dan White d...@whiteaudio.com writes: gnetlist: Option sort_port_value sorts spice-IO devs by value=. SF: 3150019 This allows using the refdes' to indicate pinlabel and then using value= to yield a meaningful ordering to a subckt's ports. My symbol generator script uses the refdes for pinlabel, order from the value attribute, and pintype from the device attribute. This smells like nasty attribute overloading. It there no way to implement this with some orthogonal attribute names? -- Stephan ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: series of gnetlist backend patches
On Monday 03 January 2011 07.19:46 Dan White wrote: gnetlist: makedepend backend SF: 3150021 Gnetlist backend to determine a schematic's dependencies. Output is in the form of: source.sch: depend1.sch depend2.sch source.cir: source.sch depend1.cir depend2.cir other.inc ...written to source.d file for inclusion into a project's Makefile. First line collects all source= attributes in the input pages. Second line lists transformed source='s/sch/cir/' and file= attributes (.include files). I think that the symbols should also be included in this file. I use a weird combination of grep, cut, sort, uniq, awk, tr and sed to do this, but a backend would be much nicer. I also use tragesym, so the depends on symbols relies either on *.sym (handdrawn symbol) or a *.sym generated out of a *.csv (tragesym source). A few suggestions: - There should be an attribute to set the directory which hold the symbols and subsheets. - There should be an option so that the backend includes only the symbols it founds in a directory, perhaps under another pattern and directory too, like /.sym$/.csv/ (regex would be nice, or at least a simple extension matching), so that gEDA stock symbols aren't included. Below is the Makefile snippet I use: %.sch.d: %.sch ${ECHO} -n $ $(:%.sch=%.ps) $(:%.sch=%_c.ps) $(:%.sch=%.net): $@ \ for SYM in $$(grep C $^ | cut -d -f 7 | sort | uniq | awk 'BEGIN {print}{print ${SYM_SYM_DIR}/$$0}' | tr '\n' ' ') ; do \ if [ -f $$(echo -n $$SYM | sed -e 's/\.sym$$/\.csv/' -e 's,^${SYM_SYM_DIR},${SYM_SRC_DIR},') -o -f $$SYM ]; then \ ${ECHO} -n $$SYM; \ fi ; \ done $@ \ ${ECHO} $@ \ ${ECHO} $@ \ ${ECHO} $@: $ $@ \ ${ECHO} $@ -- mit freundlichem Gruss Christian Riggenbach signature.asc Description: This is a digitally signed message part. ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: series of gnetlist backend patches
Stephan Boettcher wrote: gnetlist: Option sort_port_value sorts spice-IO devs by value=. SF: 3150019 This allows using the refdes' to indicate pinlabel and then using value= to yield a meaningful ordering to a subckt's ports. My symbol generator script uses the refdes for pinlabel, order from the value attribute, and pintype from the device attribute. This smells like nasty attribute overloading. It there no way to implement this with some orthogonal attribute names? +1 Please don't introduce additional road blocks to double purpose schematics for pcb and simulation. ---)kaimartin(--- -- Kai-Martin Knaak Öffentlicher PGP-Schlüssel: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6C0B9F53 ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: series of gnetlist backend patches
On Mon, 2011-01-03 at 14:24 +0100, kai-martin knaak wrote: +1 Please don't introduce additional road blocks to double purpose schematics for pcb and simulation. I wonder if slotdef in a symbol is a good thing at all. If I place an OpAmp in a schematic -- should I decide for dual or quad really at this moment? Or better later in the PCB layout process. ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: series of gnetlist backend patches
Stefan Salewski wrote: I wonder if slotdef in a symbol is a good thing at all. If I place an OpAmp in a schematic -- should I decide for dual or quad really at this moment? Or better later in the PCB layout process. Without this information gnetlist cannot produce a valid netlist. I'd rather not have gnetlist look into *.sch and additionally into *.pcb. Anyway, slot information on the schematic is feature not a bug. It facilitates debugging and service. ---)kaimartin(--- -- Kai-Martin Knaak Öffentlicher PGP-Schlüssel: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x6C0B9F53 ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: series of gnetlist backend patches
On Jan 3, 2011, at 8:50 AM, kai-martin knaak wrote: Stefan Salewski wrote: I wonder if slotdef in a symbol is a good thing at all. If I place an OpAmp in a schematic -- should I decide for dual or quad really at this moment? Or better later in the PCB layout process. Without this information gnetlist cannot produce a valid netlist. Depends on the kind of netlist you mean. The slotting mechanism gets in the way of simulation. You don't logically need pin numbers, although at the moment gnetlist gets into trouble without them. I'd rather not have gnetlist look into *.sch and additionally into *.pcb. Anyway, slot information on the schematic is feature not a bug. It facilitates debugging and service. Different roles, possibly different schematics. As projects get bigger WYSIWYG gets in the way more. In a big project, it makes good sense to separate clean source schematics for design capture from from annotated schematics for debugging and service. That's part of the goal of the lambda-geda tool we've been developing, and the only area where it's developed enough to be useful (it can can flatten hierarchy for documentation). John Doty Noqsi Aerospace, Ltd. http://www.noqsi.com/ j...@noqsi.com ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
gEDA-user: series of gnetlist backend patches
I've pushed my local changes to the spice-sdb gnetlist backend and a new backend out to repo.or.cz and also on the SourceForge patch tracker. These have been part of my workflow for gschem - {gnucap-arails, hspice} within my analog VLSI work for some time. The holidays presented time to clean them up. http://repo.or.cz/w/geda-gaf/whiteaudio.git I use hierarchical, multi-page schematics and mostly use subcircuits for IC devices to model parasitics and such from the foundry. The Analog Rails tweaks to gnucap make parallel simulations with hspice feasible from a common *.sch set. Their repo is at http://redmine.gnucapplus.org/ A short summary of the patches: gnetlist: spice-sdb no_end_card option suppresses .end SF: 3150011 A two-liner to allow a simulation netlist to .include the topology/designn netlist. gnetlist: spice-sdb: write provided subckt parameters from value= attr SF: 3150016 A value= attribute on the spice-subcircuit-LL symbol is the default subcircuit parameters. This then outputs e.g. .subckt name n1 n2 n3 n4 M=1 foo=43 *contents .ends gnetlist: spice-sdb MOS subcircuits SF: 3150017 Makes device=SUBCKT_NMOS and PMOS behave like a spice M device but wrapped in a subcircuit. gnetlist: New spice-sdb:packsort, generalize to any refdes prefix. SF: 3150018 The main one, sorts by the refdes alpha-prefix (case insensitive) order given by 'refdes-sort-order which defaults to: (* TP A). Gnucap is (more) sensitive to netlist order for parameters, probes, and analyses. This gives control over the sorting (with the gnetlist -s option) by specifying the order of certain prefixes. gnetlist: Option sort_port_value sorts spice-IO devs by value=. SF: 3150019 This allows using the refdes' to indicate pinlabel and then using value= to yield a meaningful ordering to a subckt's ports. My symbol generator script uses the refdes for pinlabel, order from the value attribute, and pintype from the device attribute. gnetlist: makedepend backend SF: 3150021 Gnetlist backend to determine a schematic's dependencies. Output is in the form of: source.sch: depend1.sch depend2.sch source.cir: source.sch depend1.cir depend2.cir other.inc ...written to source.d file for inclusion into a project's Makefile. First line collects all source= attributes in the input pages. Second line lists transformed source='s/sch/cir/' and file= attributes (.include files). Makefile snippets for my usage of the makedepend backend and other patches: # # AUTO-DEPENDENCIES # For the moment I don't know a way to avoid restarting make using the methods # described in http://mad-scientist.net/make/autodep.html #generate schematic hierarchy dependencies for .sch and .cir %.d: %.sch $(GNETLIST) -g makedepend -o $@ $ -include $(schematics:.sch=.d) # # bash script generator, if $1 matches, keep the element # use as $(shell $(call keep-filter,*.sch)) # (removes all matches, then removes these elements from orig array) define keep-filter a=( $^ ); for c in $$...@]##$1}; do a=( $$...@]#$$c} ); done; echo $$...@]} endef %.cir: $$(wildcard %-*.sch) %.drc gnetlist -g spice-sdb -I -s \ -O sort_port_value \ -O no_end_card \ -o $@ $(shell $(call keep-filter,*.sch)) # At some point I'll write-up my usage of GAF, but for now: The setup uses a naming convention including: some_name-{1,2,..}.sch -- some_name.cir make tests in gnetlist/tests and ./run_tests.sh in gnetlist/tests/common both pass. Dan -- SDG www.whiteaudio.com ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user