kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #40444
Re: Feature Proposal: Schematic Netlist modules for Eeschema/SKIDL hybrid
-
To:
kicad-developers@xxxxxxxxxxxxxxxxxxx
-
From:
Wayne Stambaugh <stambaughw@xxxxxxxxx>
-
Date:
Fri, 3 May 2019 09:06:29 -0400
-
Autocrypt:
addr=stambaughw@xxxxxxxxx; prefer-encrypt=mutual; keydata= mQGiBEM0hxQRBAC2fNh3YOVLu1d5GZ0SbrTNldGiGnCJPLqzEnqFX9v6jmf33TMt6EmSLkl6 Wtfkoj0nVwKxcYmJkA8DX0QAokBkwNIzhSsBzQvthBLIk/5LnPVVKrEXOcL4mUyH1doKlkaE slgJozNa6Av+oavcvD02o1zJOloBbaHlNlyRt7fKswCgtIFlVjWggVH/15KfWk+Qo5JVPbME AIUBAQyL2OAx0n60AWec2WHnO9buHuG0ibtICgUMkE+2MRmYyKwYRdyVwGoIUemFuOyHp0AJ InX4T+vy2E7vkwODqjtMLfIoRkokW74Fi4nrvjlhOAw/vdq/twLbAmR9MOfPTpR4y7kQy1O2 /n+RkkRvh26vTzfbQmrH7cBJhk6aA/9Uwvu3E4zNJgHVZeS0HyWtmR1eOPPRbnkPgJTToX5O KMKzTJI/FX6kT7cFoCamitHrW3BJP4Dx+cMMsa47EGxqVTdbVJ4LjogsXTXxb+0Fn1u4zBdx x3Cer6O7+hqWy7zvpzeC6nSREjqDKa5CgHtv/GLm5uFPOmsjAsnHj2tlBrQmV2F5bmUgU3Rh bWJhdWdoIDxzdGFtYmF1Z2h3QGdtYWlsLmNvbT6IeAQTEQIAOBYhBOffs6CbblRzBkv33BtR cWlZ+CReBQJbFBS2AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEBtRcWlZ+CReMI8A nRbrLkzp7+c2f0vX7sfg4ICX8LAKAJ9uClo4uJajmZa5zZrL2nKdZlUwIrkCDQRDNIcxEAgA gCru+3/aOC6RCjpvYC72wY+d5SmHphC6yeiV2/mOumyt5MLo/Ps2GznZr11JspqFk5K/Zpvp MMLqqjDZ39+50a2iKRQFJ6NlK+hJWMmj6eJygQrCwYo3Gjc6CqfrqUv+8VSnf/i5sIZmtOVA 4ZjML18MuBvMSsNdVLFJd5HNnYb1iOECpvqdPVh/21LLCEw7MUUGGnHBhCrmk2aJe5hFmcSN g4ldBcXrgMQBwf7aMVoobXBMFDb/IENByXn0llB7Gr2IFMRmNS9/p8s/II1Yl2bTqyX4FSz8 cfn7C9KEz7faZ7wzAcpwHFC/zs3JoAjJ0IEKdNUpIwAlKMzT3CzctwADBQf/cxpG28MKyrqk nNmq/8LQLy+x6FSYXBLjxQz9BiBNYeesDZQ6J5UbL1mjpJzMa5tLZypPYo4bbGyR22hrbyDF K7m6AcVaMIJKl98g4ukMutFfAJyRDaREH5Zl/X1P4u1Z/yaAIy9mKaNbaK1/5djNJ5wCTFen TUgAp9xdc30kGkFDdLJFp5uxDY4P0vaZiZdjUCvDM3Zjv5IzpNOfxVqTUBQNUP/BnnKhkk0p DTD6s3X8S+D0rOtEBQ8K0cwERI/E8EFa8nj0TNw4e2MYGR8wg+SxqJ7z5f0zPY0bO6G9DDFB wYCqzzPWGqdAh9vA5971TAbPERtdFybhkurozp2SfYhJBBgRAgAJBQJDNIcxAhsMAAoJEBtR cWlZ+CResHUAniULLCWiT26ieRTl7N2vS6vBo/DuAJ4m7Ss/gyiW6ybTn1ctDXAUgm2QVQ==
-
In-reply-to:
<CA+qGbCCHHqhg8DD7JOe-1Wv-cunVi3+-O85BnZnyP4RiJAzDag@mail.gmail.com>
-
Openpgp:
preference=signencrypt
-
User-agent:
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
On 5/2/19 9:34 PM, Jon Evans wrote:
> Neat idea, Russell!
>
> In theory, this is possible. In practice, there are many challenges to
> overcome.
>
> The internal representation of the schematic does not resemble the
> netlist that is given to PcbNew.
> So, a PcbNew netlist (whether generated by SKIDL or anything else) would
> have to be "imported" to
> the schematic in order to create a "Subsheet from Netlist" as you describe.
> This import process would need to parse the netlist and generate the
> internal connectivity state
> to allow the schematic connectivity code to work with that subsheet the
> same way it works with
> regular graphical subsheets.
>
> That part is technically possible, but the surrounding code to make this
> a nice experience would
> also be a significant task. How would you edit or update the underlying
> SKIDL code generating the
> subsheet? How would you display ERC errors that involve both a
> graphical schematic and a subsheet
> created from a SKIDL netlist? Would you be able to make changes to the
> components on the subsheet
> generated from a SKIDL netlist (for example, to edit properties) using
> the Edit Symbol Fields
> dialog and other things that interact with objects across the whole
> schematic hierarchy? If so,
> would you be able to back those changes out to valid SKIDL code?
>
> I don't mean to discourage you or others from pursuing things like this,
> I just want to caution
> that there would be many, many details to talk through and figure out
> before a feature of this
> complexity could be added to KiCad.
>
> A route that may be easier to implement, and less intrusive, would be to
> wait for the coming
> Eeschema file format update and Python API, and add support for
> generating schematic sheets to
> SKIDL itself. Of course, the complexity there would lie in the
> algorithm for laying out the
> items described in SKIDL in a graphical fashion. But, it doesn't have
> to be pretty as long as
> it is electrically consistent. You could then include the generated
> sheet as a subsheet in the
> normal fashion, and update it using Python (since SKIDL is implemented
> as a Python library, it may
> be possible to have fairly tight integration between SKIDL and KiCad
> once the Python API is more
> stable and it is possible to interact with the schematic using Python).
This is probably the best course of action. Once the schematic and
symbol library code is swigged out to Python, integrating functionality
as a third party Python script should be possible since all of the low
level objects will be exposed to Python scripting in much the same way
as the low level board objects are exposed in the board and footprint
editors.
>
> Best,
> Jon
>
> On Thu, May 2, 2019 at 9:16 PM Russell Oliver <roliver8143@xxxxxxxxx
> <mailto:roliver8143@xxxxxxxxx>> wrote:
>
> Hi All,
>
> First off congratulations to everyone involved with KiCon for making
> it a success and the great progress that is happening with Kicad at
> the moment.
>
> I've been following Dave Vandenbout's work on SKIDL [1] a while but
> his talk [2] at the conference on SKIDL really showed the power that
> programmatic circuit design could bring to electronic design
> especially with a simulation/optimization loop.
>
> To that end I wondered weather it would be possible to include the
> netlist output from a SKIDL script into a traditional schematic,
> allowing for the best use of both worlds?
>
> Given that we currently have subsheets that can be reused multiple
> times, could it be possible through the inclusion of a netlist reader
> into Eeschema to read either a netlist file directly or the result of
> executing a SKIDL script and incorporate that back into the larger
> netlist?
>
> I can imagine a type of hierarchical sheet where the user can specify
> the nets to be shown as sheet pins, which would be connected to the
> matching nets from the netlist file.
>
> My question to those with more knowledge of the current netlist
> generation algorithm is how possible this would be?
>
> [1] https://github.com/xesscorp/skidl
> [2] https://www.youtube.com/watch?v=WErQYI2A36M
>
> Regards
> Russell Oliver
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
Follow ups
References