X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.98.4 at av02.lsn.net Message-ID: <54D8D57C.6010901@ecosensory.com> Date: Mon, 09 Feb 2015 09:42:52 -0600 From: John Griessen User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.4.0 MIME-Version: 1.0 To: geda-user AT delorie DOT com Subject: Re: [geda-user] Using Lua to safely read configuration and layout files (program attached) References: <3709636 DOT NVszrDDjOR AT jasum> <20150208135925 DOT 6f6ddab6 AT Parasomnia DOT thuis DOT lan> <1897145 DOT BbSdS1MRWc AT jasum> <66DD3BF9-092C-4EFF-B12D-6214141C152D AT icloud DOT com> <52E0C8E3-2FD3-4D79-A01D-962E7EFA6D4F AT noqsi DOT com> <638942CE-E278-40ED-8C36-6A89C33FD158 AT noqsi DOT com> <54D7CC55 DOT 1090602 AT ecosensory DOT com> In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Reply-To: geda-user AT delorie DOT com On 02/08/2015 06:52 PM, John Doty wrote: > Peter Brett told me he was working on an complete implementation in Scheme, but he apparently never finished. I've done Scheme/guile/LISP as Cadence branded Skill language before. If we had a document for what the overall structure of gschem was, and how the desired new features of hierarchy where we can have schematics in schematics, or verilog modules in schematics and specify specific layout variants that go with instances of schematics or modules -- a big if -- I would take a function and redo it and debug it to work. We could add working code and keep it in the distributed, tested-by-all code. gschem could evolve to be better with two day code sprints per person. On 02/09/2015 03:08 AM, Chris Smith wrote:> In terms of hierarchical schematics, etc. what do you think is missing? What features would you need and where do you feel the support for them is missing: the file format? gschem? netlister? The way connectors create a larger flat assemblage is a big gap between what works for large designs or chip designs and especially boards with custom logic modules on them which are some of each. What the tools those designers use do is keep module instantiations uniquely tagged as to what unique layout corresponds to them. That kind of correspondence is used to simulate the final product so you can have a lower risk of success when spending to get it fabbed. Instances of a module have the same structure as the top level of a design also -- so it can be reused as a module later. Netlists can be made that have details of specific layout included for chip simulation purposes, or board fabbing oriented netlists can be made that show all part/package as identical. Netlists do not have node lists like we have now: flat-with-hierarchic-names: VDDA2: U1-8 U3-10 S1/U1-8 S2/U1-8 S2/S3-U7-10 where there are no identical instances of anything and S2/S3-U7-10 is just a blob of text where S3 is not for sure separable from it. they will have node lists like: VDDA2: module1:1/port4 module1:1/module5:1/port2 module1:1/module5:1/port1 module1:1/module5:1/C4 Where the slashes separate hierarchy levels and the colons enumerate instances. module5:1 is surrounded by slashes so one knows it is a separate text to parse that has meaning about levels. VerilogAMS has syntax similar to this and more and it well known, logically consistent, standard, published, tested for usabiility, has had millions of dollars bet on it working, etc. Verilog versions before it have had billions of dollars bet on them working.