gEDA-dev: Broken slotting

Peter Clifton pcjc2 at cam.ac.uk
Mon Sep 10 21:50:01 EDT 2007


On Tue, 2007-09-11 at 02:21 +0100, Peter Clifton wrote:

> The code changes are quite large though:
> 
>  libgeda/ChangeLog             |    6 ++
>  libgeda/include/prototype.h   |    1 +
>  libgeda/src/o_attrib.c        |  156
> +++++++++++++++++++++++++++++++++++-----
>  libgeda/src/o_complex_basic.c |   40 +++++++++++
>  libgeda/src/s_tile.c          |    2 +-
>  5 files changed, 184 insertions(+), 21 deletions(-)
> 
> 
> Its not obvious what broke it.

Its becoming clearer...

The pinnumber replacement (and the whole slot update) is keyed on the
pinseq numbers, however this patch causes them to be re-written for
different lots. e.g:

inverter with pinseq=1 and pinseq=2 for slot=1

becomes

pinseq=3 and pinseq=4 for slot=2
pinseq=5 and pinseq=6 for slot=3

A comment in the code is wrong:
"Write new string pinseq=(slot * (number of pins-1)) + pin_counter"

Should be:
pinseq = ((slot - 1) * (number of pins)) + pin_counter


The question remains... is the fix to revert the behaviour - and keep
pinseq constant for slotted parts, or (seems more likely) introduce a
modulo operation when looking for pinseq when updating slots?


Regards,

-- 
Peter Clifton

Electrical Engineering Division,
Engineering Department,
University of Cambridge,
9, JJ Thomson Avenue,
Cambridge
CB3 0FA

Tel: +44 (0)7729 980173 - (No signal in the lab!)



More information about the geda-dev mailing list