delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mail set sender to geda-user-bounces using -f |
X-Recipient: | geda-user AT delorie DOT com |
X-Envelope-From: | paubert AT iram DOT es |
Date: | Fri, 10 Jan 2014 10:43:26 +0100 |
From: | Gabriel Paubert <paubert AT iram DOT es> |
To: | geda-user AT delorie DOT com |
Subject: | Re: [geda-user] Suppress NC nodes from netlist? |
Message-ID: | <20140110094326.GA12963@visitor2.iram.es> |
References: | <alpine DOT LRH DOT 2 DOT 01 DOT 1401091631360 DOT 13782 AT homer02 DOT u DOT washington DOT edu> |
MIME-Version: | 1.0 |
In-Reply-To: | <alpine.LRH.2.01.1401091631360.13782@homer02.u.washington.edu> |
User-Agent: | Mutt/1.5.20 (2009-06-14) |
X-Spamina-Bogosity: | Unsure |
X-Spamina-Spam-Score: | -0.2 (/) |
X-Spamina-Spam-Report: | Content analysis details: (-0.2 points) |
pts rule name description | |
---- ---------------------- -------------------------------------------------- | |
-1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP | |
0.8 BAYES_50 BODY: Bayes spam probability is 40 to 60% | |
[score: 0.5094] | |
Reply-To: | geda-user AT delorie DOT com |
Errors-To: | nobody AT delorie DOT com |
X-Mailing-List: | geda-user AT delorie DOT com |
X-Unsubscribes-To: | listserv AT delorie DOT com |
On Thu, Jan 09, 2014 at 04:38:35PM -0800, Frank Miles wrote: > (gschem-gnetlist newbie here...) > > I'd like to suppress 'not connected' nodes from the gnetlist output. These have > NC symbols attached in gschem. Is there some simple way that I'm oblivious to? > Or is this possible in a newer gnetlist and not mine? Thanks! I think it's a kind of "harmless bug" that does not bother most netlist writers. However, for a person who uses CadStar to implement my schematics, I had to write a new netlister and I had to remove single pin nets because of the format: the first line of each net definition has to include 2 pins. I also occasionnally encountered nets with zero pins! I don't think my netlister is really ready for use by external people, but what I did is the following (I have trimmed some parts which have nothing to see with connectivity netlist, since I also included routing directives for impedance control and grouping directives to define differential pairs, so maybe some parentheses are now unbalanced), the critical line being the (cond ((> (length netpins) 1) in the rinf:write-net function: ;; ;; Display the individual net connections ;; starting from the third if they exist. ;; (define rinf:write-connections (lambda (netpins port) (if (not (null? netpins)) (begin (format port " ~a ~a~%" (caar netpins) (cadar netpins)) (rinf:write-connections (cdr netpins) port))))) ;; ;; Display all pins from the net starting from the passed one ;; which is the second one. ;; ;; This is the line with the .TER command. ;; (define rinf:write-net-pins (lambda (netpins port) (format port ".TER ~a ~a~%" (caar netpins) (cadar netpins)) (rinf:write-connections (cdr netpins) port))) ;; ;; Write net: first line starting .ADD_TER ;; ;; Only write nets that have at least 2 pins: gnetlist ;; produces quite a lot of single pin nets, even when ;; a pin is explicitly connected to a No-connect symbol! ;; There are also cases where the list of pins is empty! define rinf:write-net (lambda (port netnames) (if (not (null? netnames)) (let ((netpins (gnetlist:get-all-connections (car netnames))) (cond ((> (length netpins) 1) (format port ".ADD_TER ~a ~a ~s~%" (caar netpins) (cadar netpins) (car netnames)) (rinf:write-net-pins (cdr netpins) port) (newline port))) (rinf:write-net port (cdr netnames)))))) ;; ;; Write the net part of the gEDA format ;; (define rinf:nets (lambda (port) (let ((all-uniq-nets (gnetlist:get-all-unique-nets "dummy"))) (rinf:write-net port all-uniq-nets)))) Gabriel
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |