diff options
-rw-r--r-- | maze.c | 5 | ||||
-rw-r--r-- | qconfig.c | 18 |
2 files changed, 16 insertions, 7 deletions
@@ -884,7 +884,10 @@ u_char ripup_net(NET net, u_char restore) free(rt); } - return TRUE; + // If this was a specialnet (numnodes set to 0), then routes are + // considered fixed obstructions and cannot be removed. + + return (net->numnodes == 0) ? FALSE : TRUE; } /*--------------------------------------------------------------*/ @@ -101,15 +101,21 @@ post_config(void) else if (v == -1) v = h; for (i = 0; i < Num_layers; i++) { - if (PitchX[i] != 0.0 && PitchX[i] != PitchX[v]) + if (PitchX[i] != 0.0 && PitchX[i] != PitchX[v]) { Fprintf(stderr, "Multiple vertical route layers at different" - " pitches. I cannot handle this! Using pitch %g\n", - PitchX[v]); + " pitches. Using smaller pitch %g, will route on" + " 1-of-N tracks if necessary.\n", + PitchX[i]); + PitchX[v] = PitchX[i]; + } PitchX[i] = PitchX[v]; - if (PitchY[i] != 0.0 && PitchY[i] != PitchY[h]) + if (PitchY[i] != 0.0 && PitchY[i] != PitchY[h]) { Fprintf(stderr, "Multiple horizontal route layers at different" - " pitches. I cannot handle this! Using pitch %g\n", - PitchY[h]); + " pitches. Using smaller pitch %g, will route on" + " 1-of-N tracks if necessary.\n", + PitchY[i]); + PitchY[h] = PitchY[i]; + } PitchY[i] = PitchY[h]; } |