Musings on EDA CAD Frameworks

I've had the chance to work on CAD systems for the design of complex electronics for many years now, both in commercial tool and in-house tool settings. Here are some things I would like to see (and help create) in a CAD framework:

  • Explicitly supports (and requires) documentation of the designs created with it;
  • Is itself (the CAD system source code) extensively documented;
  • Has solid cross platform engineering designed in from the start;
  • Is designed around component software technologies:
    • thus being open and extensible, in both programming and human interface;
  • Has Internet integration (http, ftp, e-mail):
    • to allow group collaboration over the Internet or intranets;
  • Is engineered such that "software agents" can observe the design taking place, and perform tasks:
    • for example, support teaching of good design techniques and new design techniques; and
    • for example, support of "CAD Flow Safety Checks", to ensure necessary analysis get performed;