8. cschem implementation - ripple annotation
{imp8:0}
The back annotation is an optional feature. Cschem supports it, some
of the 3rd party software support it and the user may choose to use it.
The user is also free to choose the traditional, "tell me what I need
to change on the schematics, then I'll forward annotate" method.
{imp8:1}
The ripple annotation is just clever use of the back annotation plus some
netpatch management. It is probably a good idea to put the schematics,
the project file and all patches in the same version control system.
{imp8:2}
With such a setup a current snapshot of the VCS and a run of cschem
core on it, e.g. as a simple 'make' or 'make pcb' or 'make spice' will
produce up-to-date forward annotation packs at any member of the team.
{imp8:3}
The advantages of ripple annotations are:
- It lets a non-schematics-editor team member to update the project and
the changes may reach other team members without first having to wait
for a schematics update
- Provided sufficient 3rd party tool support, every member of the team
can make changes to the project, using their tools, from their point
of view, without having to learn the cschem GUI or even cschem concepts.
For example a PCB designer may agree with the schematics designer that
pins can be swapped arbitrarily on a connector; the PCB designer can
do this using e.g. pcb-rnd, the wiring diagrams, docs and simulation
can be updated even if the schematics editor is on holiday.
- Since changes are collected as an ordered netpatch set, it is always
clear if there are outstanding changes. This may make project management
easier, there won't be forgotten change requests.
- The netpatch is computer readable - this minimizes the chance
of misunderstanding a change request.
- For special projects, like a footprint converter board, it is possible
that the PCB happens first, and it is back-annotated against an empty
abstract model, then the schematics is created using the netpatch.
{imp8:4}
In theory, as an extreme example, one may even use the system without
schematics: build a smallish simulation by hand, add the right footprint
and pinout attributes, back annotate it against an empty abstract model then
forward annotate to PCB layout. This setup bypasses 90% of cschem and (ab)uses
cschem core as a tool for collecting netpatches and converting them to
different netlist formats.