← Back to team overview

kicad-developers team mailing list archive

Re: [RFC] online (real-time) ERC/DRC

 

My bus upgrades branch already does the first part :-) I now have dynamic
netlist recalculation, and it is fast enough to run online.

On Sun, Mar 24, 2019 at 2:04 PM Simon Richter <Simon.Richter@xxxxxxxxxx>
wrote:

> Hi Jon,
>
> On 23.03.19 22:57, Jon Evans wrote:
>
> > I would start with the schematic ERC since that's where my head is at
> > right now, but what I do should be able to carry over to PcbNew in case
> > it ends up working well.
>
> > Any thoughts on this?
>
> I think the main roadblock is that we have no change notification
> framework in place, just a lot of code that knows that other code needs
> to be invoked after changes.
>
> For online checks to be fast enough, we'd need to limit them to
> "affected components", which has two passes:
>
>  - checking whether the set of connected components has changed
>  - running the ERC tests for the connected components only
>
> The second part is somewhat easy, it's just a different loop construct
> around the ERC main loop, the difficulty is how to keep the list of
> changed elements.
>
> For the first part, you essentially need to pull netlist generation
> forward, because that is where we turn wires into nets. The current code
> isn't very efficient, because it usually doesn't need to be, and it
> doesn't have provisions for incremental changes.
>
> The thing that ERC and DRC can both profit from is probably proximity
> based lookup of elements. I believe Tom has been doing some work
> switching from DLIST<> to an rtree.
>
>    Simon
>
> _______________________________________________
> 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
>

References