← Back to team overview

kicad-developers team mailing list archive

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


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.


Attachment: signature.asc
Description: OpenPGP digital signature

Follow ups