Index: doc-rnd/devlog/20150830b_back_ann.html =================================================================== --- doc-rnd/devlog/20150830b_back_ann.html (revision 909) +++ doc-rnd/devlog/20150830b_back_ann.html (revision 910) @@ -37,9 +37,9 @@ netlist in pcb from whatever gnetlist produced" approach would not work.
An alternative is to keep the netlist as-is, and maintain a separate list of -changes. The form proposed hereby is a table of "operation,net,pinID" or -"operation,net". Operation is one of "del_conn", "add_conn", "del_net" and -"add_net". The table is called the netlist patch. +changes. The form proposed hereby is a table of "operation,pinID,net" or +"operation,args...". Netlist operation is one of "del_conn", "add_conn" and "net_info". The table is called the netlist patch.
For example assume two components with pins A1, A2 and B1, B2, with connections n1=A1-B1 and n2=A2-B2. While routing the designer decides changing them to @@ -46,11 +46,11 @@ n1=A1-B2 and n2=A2-B1 would be easier and is acceptable by the design. The table of changes would contain this:
op | net | pinID - |
---|---|---|
del_conn | n1 | B1 - |
del_conn | n2 | B2 - |
add_conn | n1 | B2 - |
add_conn | n2 | B1 + |
op | pinID | net + |
del_conn | B1 | n1 + |
del_conn | B2 | n2 + |
add_conn | B2 | n1 + |
add_conn | B1 | n2 |
The table would be normalized after operations. For example:
op | net | pinID - |
---|---|---|
del_conn | n1 | B1 - |
add_conn | n2 | B1 - |
add_conn | n3 | B1 - |
del_conn | n2 | B1 + |
op | pinID | net + |
del_conn | B1 | n1 + |
add_conn | B1 | n2 + |
add_conn | B1 | n3 + |
del_conn | B1 | n2 |
op | net | pinID - |
---|---|---|
del_conn | n1 | B1 - |
add_conn | n3 | B1 + |
op | pinID | net + |
del_conn | B1 | n1 + |
add_conn | B1 | n3 |
+net_info is used to describe the original members of a net, in +the state they were before any change on the netlist occured.
action | screenshot - | |
---|---|---|
| - | |
| + | |
action | screenshot | patch list after the actions + |
| (empty) + | |
| (empty) | |
| + | (empty) |
| + |
++net_info n1 A1 B1 +net_info n2 A2 B2 +del_conn B1 n1 +add_conn B1 n2 + |
| + |
++net_info n1 A1 B1 +net_info n2 A2 B2 +del_conn B1 n1 +add_conn B1 n2 +del_conn B2 n2 ++ + |
| ||
| + |
++net_info n1 A1 B1 +net_info n2 A2 B2 +del_conn B1 n1 +add_conn B1 n2 +del_conn B2 n2 +add_conn B2 n1 ++ |
- del_conn netname1 U1-1 - add_conn netname2 U1-1 +del_conn netname1 U1-1 +add_conn netname2 U1-1
- change_attrib U1 footprint=DIP(8) footprint=SO(8) +change_attrib U1 footprint=DIP(8) footprint=SO(8)
(or it could be a del_attrib and add_attrib pair, like with connections)