summaryrefslogtreecommitdiff
path: root/qconfig.c
diff options
context:
space:
mode:
authorTim Edwards <tim@opencircuitdesign.com>2016-04-24 21:34:55 -0400
committerTim Edwards <tim@opencircuitdesign.com>2016-04-24 21:34:55 -0400
commit46b5c4b24fc397b9bbf92a034267781d985f39be (patch)
treec09653fd6b75485b0900fc5f1e8a3d87c2334a1a /qconfig.c
parentde7e28a87912d16d323f3990b94ab5f7cc5b6825 (diff)
Corrected two errors, one which incorrectly assigns pitch to the
largest pitch among all the route layers (this may be harmless, and is possibly overwritten later, but the code is clearly wrong, so I fixed it). The other error allows pre-routed nets from the SPECIALNETS section to be ripped up during 2nd stage routing, and since these nets can't be routed, they vanish from the layout (except that they are dumped to the final DEF file, which almost guarantees that there will be shorts).
Diffstat (limited to 'qconfig.c')
-rw-r--r--qconfig.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/qconfig.c b/qconfig.c
index 19589ec..eb98f67 100644
--- a/qconfig.c
+++ b/qconfig.c
@@ -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];
}