Index: detour/4_appendix.html =================================================================== --- detour/4_appendix.html (revision 901) +++ detour/4_appendix.html (revision 902) @@ -135,7 +135,7 @@ -

4.1.5. Topo-geo: routing through zig-zag labyrinth

+

4.1.6. Topo-geo: routing through zig-zag labyrinth

Blu nets N2 and N3 are unmovable, there is only one layer available and it is impossible to go around. Hence N1 is forced to find its way bending at P1, P2, P3 and P4. N1 start is top. @@ -163,9 +163,7 @@ - - -

4.1.6. Topology: oscillation detection

+

4.1.7. Topology: oscillation detection

This is an optimization because the algorithm would work without this as well: in case of oscillation, the script grows long which increases the @@ -172,4 +170,18 @@ cost function which in turn will make other solutions more favorable. However this would cause a lot of computation wasted on recalculating the oscillation many times. - +

+TODO: finalzie how to detect this. +

+

+

+

Figure 4/7. a. initial state with a gap between N2 and N3 too narrow; b. resolve +N1-N3 introducing a crossing on N1-N2; c. resolve the N1-N2 crossing causing +and N1-N3 crossing. +

+

+When the new N1-N3 crossing is to be resolved, the state will be very similar +to b and the solver could keep oscillating between b. and c. With the hull based +detour calculation this is a bit worse, because not the whole bent network is +moved, only the tiny veryical line segment in the middle between b and c so +the drawing on c becomes something like d. Index: detour/img/topo_cross3.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: detour/img/topo_cross3.png =================================================================== --- detour/img/topo_cross3.png (revision 901) +++ detour/img/topo_cross3.png (nonexistent) Property changes on: detour/img/topo_cross3.png ___________________________________________________________________ Deleted: svn:mime-type ## -1 +0,0 ## -application/octet-stream \ No newline at end of property Index: detour/img/Makefile =================================================================== --- detour/img/Makefile (revision 901) +++ detour/img/Makefile (revision 902) @@ -4,6 +4,7 @@ ex_bneck.png \ ex_multi1.png \ ex_order.png \ + ex_osc.png \ ex_topo.png \ ex_zigzag.png \ geo_go_around.png \ Index: detour/img/ex_osc.lht =================================================================== --- detour/img/ex_osc.lht (nonexistent) +++ detour/img/ex_osc.lht (revision 902) @@ -0,0 +1,550 @@ +ha:pcb-rnd-board-v7 { + ha:meta { + ha:size { + thermal_scale = 0.500000 + x = 47.0mm + y = 19.5mm + } + ha:grid { + spacing = 0.25mm + offs_x = 0.0 + offs_y = 0.0 + } + } + ha:layer_stack { + li:groups { + ha:0 { + ha:attributes { + thickness = {0.7375mm } + } + ha:type { + substrate = 1 + intern = 1 + } + li:layers { + } + name = grp_4 + } + ha:1 { + ha:attributes { + thickness = {0.125mm } + } + ha:type { + substrate = 1 + intern = 1 + } + li:layers { + } + name = grp_6 + } + ha:2 { + ha:attributes { + thickness = {0.7375mm } + } + ha:type { + substrate = 1 + intern = 1 + } + li:layers { + } + name = grp_8 + } + ha:3 { + ha:attributes { + init-invis = 0 + } + purpose = fab + ha:type { + top = 1 + doc = 1 + } + li:layers { + 0 + } + name = top-doc + } + ha:4 { + ha:attributes { + init-invis = 0 + } + purpose = fab + ha:type { + top = 1 + doc = 1 + } + li:layers { + 1 + } + name = top-doc + } + ha:5 { + ha:attributes { + init-invis = 0 + } + purpose = fab + ha:type { + top = 1 + doc = 1 + } + li:layers { + 2 + } + name = top-doc + } + ha:6 { + ha:attributes { + init-invis = 0 + } + purpose = fab + ha:type { + top = 1 + doc = 1 + } + li:layers { + 3 + } + name = top-doc + } + ha:7 { + purpose = fab + ha:type { + top = 1 + doc = 1 + } + li:layers { + 4 + } + name = top-doc + } + } + } + li:styles { + ha:normal { + diameter = 2.2mm + text_scale = 200 + text_thick = 1.0mm + thickness = 1.0mm + hole = 2.0mm + clearance = 20.0mil + } + ha:thick { + diameter = 2.2mm + text_scale = 0 + text_thick = 0.0 + thickness = 1.7mm + hole = 1.0mm + clearance = 20.0mil + } + ha:thin { + diameter = 137.8mil + text_scale = 0 + text_thick = 0.0 + thickness = 0.35mm + hole = 47.24mil + clearance = 25.0mil + } + ha:thinner { + diameter = 1.5mm + text_scale = 100 + text_thick = 0.0 + thickness = 0.15mm + hole = 0.9mm + clearance = 25.0mil + } + } + li:pcb-rnd-conf-v1 { + ha:overwrite { + ha:design { + text_font_id = 0 + text_scale = 100 + via_thickness = 137.80 mil + via_drilling_hole = 47.24 mil + text_thickness = 0 + line_thickness = 350.00 um + clearance = 25.00 mil + } + ha:editor { + wireframe_draw = false + grid_unit = mm + grids_idx = 10 + grid = 250.00 um + buffer_number = 1 + all_direction_lines = true + } + } + } + ha:data { + li:padstack_prototypes { + unused = 1 + unused = 1 + unused = 1 + unused = 1 + unused = 1 + unused = 1 + } + li:objects { + } + li:layers { + ha:draft { + lid = 0 + li:objects { + ha:arc.6460 { + x=5.25mm; y=3.25mm; width=0.6mm; height=0.6mm; astart=0.000000; adelta=360.000000; thickness=0.8mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:arc.6461 { + x=5.25mm; y=15.25mm; width=0.6mm; height=0.6mm; astart=0.000000; adelta=360.000000; thickness=0.8mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:arc.6514 { + x=18.25mm; y=3.25mm; width=0.6mm; height=0.6mm; astart=0.000000; adelta=360.000000; thickness=0.8mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:arc.6515 { + x=18.25mm; y=15.25mm; width=0.6mm; height=0.6mm; astart=0.000000; adelta=360.000000; thickness=0.8mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:arc.6583 { + x=29.75mm; y=3.25mm; width=0.6mm; height=0.6mm; astart=0.000000; adelta=360.000000; thickness=0.8mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:arc.6584 { + x=29.75mm; y=15.25mm; width=0.6mm; height=0.6mm; astart=0.000000; adelta=360.000000; thickness=0.8mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:arc.6700 { + x=41.75mm; y=3.25mm; width=0.6mm; height=0.6mm; astart=0.000000; adelta=360.000000; thickness=0.8mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:arc.6701 { + x=41.75mm; y=15.25mm; width=0.6mm; height=0.6mm; astart=0.000000; adelta=360.000000; thickness=0.8mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + } + color = {#757575} + group = 3 + ha:combining { + } + } + ha:ratlines { + lid = 1 + li:objects { + ha:line.6462 { + x1=5.25mm; y1=3.25mm; x2=5.25mm; y2=15.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6541 { + x1=18.25mm; y1=15.25mm; x2=17.5mm; y2=9.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6544 { + x1=17.5mm; y1=9.25mm; x2=17.5mm; y2=8.0mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6547 { + x1=17.5mm; y1=8.0mm; x2=18.25mm; y2=3.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6625 { + x1=29.75mm; y1=15.25mm; x2=30.5mm; y2=9.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6628 { + x1=30.5mm; y1=8.0mm; x2=30.5mm; y2=9.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6631 { + x1=30.5mm; y1=8.0mm; x2=29.75mm; y2=3.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6702 { + x1=41.75mm; y1=15.25mm; x2=41.0mm; y2=9.5mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6708 { + x1=41.0mm; y1=7.5mm; x2=41.75mm; y2=3.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6733 { + x1=41.0mm; y1=9.5mm; x2=42.5mm; y2=9.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6736 { + x1=42.5mm; y1=9.25mm; x2=42.5mm; y2=8.0mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6739 { + x1=42.5mm; y1=8.0mm; x2=41.0mm; y2=7.5mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:text.6465 { + string=N1; x=5.75mm; y=4.75mm; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + } + color = {#d3a232} + group = 4 + ha:combining { + } + } + ha:wires { + lid = 2 + li:objects { + ha:line.6466 { + x1=4.75mm; y1=1.25mm; x2=1.25mm; y2=1.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6469 { + x1=1.25mm; y1=1.25mm; x2=1.25mm; y2=8.5mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6472 { + x1=1.25mm; y1=8.5mm; x2=4.75mm; y2=8.5mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6475 { + x1=5.75mm; y1=8.5mm; x2=9.25mm; y2=8.5mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6478 { + x1=9.25mm; y1=8.5mm; x2=9.25mm; y2=1.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6481 { + x1=9.25mm; y1=1.25mm; x2=5.75mm; y2=1.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6520 { + x1=17.75mm; y1=1.25mm; x2=14.25mm; y2=1.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6523 { + x1=14.25mm; y1=1.25mm; x2=14.25mm; y2=8.5mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6526 { + x1=14.25mm; y1=8.5mm; x2=17.75mm; y2=8.5mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6529 { + x1=18.75mm; y1=8.5mm; x2=22.25mm; y2=8.5mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6532 { + x1=22.25mm; y1=8.5mm; x2=22.25mm; y2=1.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6535 { + x1=22.25mm; y1=1.25mm; x2=18.75mm; y2=1.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6595 { + x1=29.25mm; y1=1.25mm; x2=25.75mm; y2=1.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6598 { + x1=25.75mm; y1=1.25mm; x2=25.75mm; y2=8.5mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6601 { + x1=25.75mm; y1=8.5mm; x2=29.25mm; y2=8.5mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6604 { + x1=30.25mm; y1=8.5mm; x2=33.75mm; y2=8.5mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6607 { + x1=33.75mm; y1=8.5mm; x2=33.75mm; y2=1.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6610 { + x1=33.75mm; y1=1.25mm; x2=30.25mm; y2=1.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6711 { + x1=41.25mm; y1=1.25mm; x2=37.75mm; y2=1.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6714 { + x1=37.75mm; y1=1.25mm; x2=37.75mm; y2=8.5mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6717 { + x1=37.75mm; y1=8.5mm; x2=41.25mm; y2=8.5mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6720 { + x1=42.25mm; y1=8.5mm; x2=45.75mm; y2=8.5mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6723 { + x1=45.75mm; y1=8.5mm; x2=45.75mm; y2=1.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:line.6726 { + x1=45.75mm; y1=1.25mm; x2=42.25mm; y2=1.25mm; thickness=0.35mm; clearance=50.0mil; + ha:flags { + clearline=1 + } + } + ha:text.6484 { + string=a; x=4.75mm; y=16.25mm; scale=200; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.6485 { + string=N2; x=1.75mm; y=1.5mm; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.6486 { + string=N3; x=7.25mm; y=1.5mm; scale=100; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.6538 { + string=b; x=17.75mm; y=16.25mm; scale=200; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.6613 { + string=c; x=29.25mm; y=16.25mm; scale=200; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + ha:text.6732 { + string=d; x=41.25mm; y=16.25mm; scale=200; fid=0; + ha:flags { + clearline=1 + } + rot = 0.000000 + } + } + color = {#104e8b} + group = 5 + ha:combining { + } + } + ha:annotation { + lid = 3 + li:objects { + } + color = {#cd3700} + group = 6 + ha:combining { + } + } + ha:top-doc { + lid = 4 + li:objects { + } + color = {#548b54} + group = 7 + ha:combining { + } + } + } + } + ha:pixmaps { + } +} Index: detour/img/ex_osc.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: detour/img/ex_osc.png =================================================================== --- detour/img/ex_osc.png (nonexistent) +++ detour/img/ex_osc.png (revision 902) Property changes on: detour/img/ex_osc.png ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: detour/img/ex_topo.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: detour/img/ex_topo.png =================================================================== --- detour/img/ex_topo.png (nonexistent) +++ detour/img/ex_topo.png (revision 902) Property changes on: detour/img/ex_topo.png ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property