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, 20 Jul 2012 09:12:09 +0200 From: Gabriel Paubert To: geda-user AT delorie DOT com Subject: Re: [geda-user] Symbol attributes Message-ID: <20120720071209.GA5091@visitor2.iram.es> References: <50084839 DOT 9080804 AT sbcglobal DOT net> <201207191830 DOT q6JIUH0o028413 AT envy DOT delorie DOT com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <201207191830.q6JIUH0o028413@envy.delorie.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-SPF-Received: 2 X-Spamina-Bogosity: Unsure X-Spam-Score: -4.4 (----) X-Spam-Report: Content analysis details: (-4.4 points) pts rule name description ---- ---------------------- -------------------------------------------------- -1.8 ALL_TRUSTED Passed through trusted hosts only via SMTP -2.6 BAYES_00 BODY: Bayesian spam probability is 0 to 1% [score: 0.0000] 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 Precedence: bulk On Thu, Jul 19, 2012 at 02:30:17PM -0400, DJ Delorie wrote: > > Do what you think makes sense for your symbols; the device= attribute > is not used rigourously by any of the scripts. Huh? It is heavily used by the netlisters. Actually, since I'm going to have the layout a board subcontracted and the person doing it uses CadStar. She does not know anything else so I had to write a Cadstar netlister and found it a bit painful. Here is a summary of the few things I had to do: - set he output encoding to ISO8859-1 so that CadStar would see my gEDA's "µ" as Windows "µ". I believe it only works with guile-2.0 or later so it's not compatible (yet) with gEDA's minimal requirements. (IMHO a good reason to not submit the netlister yet). - I set the device attribute to match her library (typically this includes a package name, like XC3S200AFT256). - For many devices which have too many variants, the text I put on the schematics is only a subset of the device part. Personnaly I hate the standard symbol like 7400, since I have to modify it to, say 74HC00 or 74LVC00 (not that I use standard 14/16 pins TTL like part any more, but quite a few single gate parts). For voltage regulators and references I have, say, device=LP2985-? in the symbol, a visible attribute that I call variant=LP2985-?. When the symbol is instantiated, I put for example device=LP2985AIM5-3.3 but variant (which is only for display) is "LP2985-3.3" or "LP2985A-3.3" if I want a A grade. I've found that with question mark in these attributes I can automate producing warnings in the netlister. The problem is that, if I change my mind, both attributes have to be modified to be kept in sync, but it seems to be a hard problem. - I don't use the value attribute in the above because the value attribute is reserved for passive components for which is makes more sense. The cadStar layout library of the subcontractor literally has thousands of parts like R0603_1k, C1206_3µ3 and so on. So for the parts that have a value attribute the part name becomes footprint_value, (or even footprint_value_suffix) when there is a (hidden) suffix attribute on the schematics for things like 1% for resistors or 25V for capacitors. - She wanted to have attributes like routing_code and bus_name to transmit information about controlled impedance and differential pairs. I found that it was impossble to get net attributes in the netlister except for net= which gives the net name. I ended up defining graphical symbols and using the concisely named gnetlist:graphical-objs-in-net-with-attrib-get-attrib function. I'm not sure that this is the best solution but it works, provided the graphical symbol is attached to the topmost sheet on which the net appears. Otherwise it is never found, which could be construed as a netlister bug. (I tried briefly to debug it but got lost, I must miss something since I can't understand why the netlister is so complex). - There are probably other points I forget, the project was interrupted in April by more urgent things. However it will restart in September so I may find time to dive into the code a bit more and come up with followups on this rant^Wsubject. Regards, Gabriel