Re: gEDA-user: series of gnetlist backend patches

2011-01-05 Thread al davis
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

2011-01-03 Thread Stephan Boettcher
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

2011-01-03 Thread Christian Riggenbach
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

2011-01-03 Thread kai-martin knaak
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

2011-01-03 Thread Stefan Salewski
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

2011-01-03 Thread kai-martin knaak
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

2011-01-03 Thread John Doty

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

2011-01-02 Thread Dan White
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