build.res: detect physical conflicts earlier.
authorwhitequark <cz@m-labs.hk>
Wed, 3 Jul 2019 15:07:44 +0000 (15:07 +0000)
committerwhitequark <cz@m-labs.hk>
Wed, 3 Jul 2019 15:07:44 +0000 (15:07 +0000)
commitd828b16554db72e7bacc880a03c135ae120285f7
tree01ca44c80b08dc1b9b34ccfae7a5201a479e0a8b
parentecf6dd1cfc6be4cce51e9feb5b050395ffce1f29
build.res: detect physical conflicts earlier.

This is useful for two reasons:
  1. nMigen can provide better error messages than the platform and
     do it earlier in the build pipeline.
  2. Many platforms handle diffpairs by only constraining the P pin;
     the N pin is completely ignored. If this is undetected,
     downstream users (human or software) can rely on this
     information assuming it is correct and introduce more errors.
     (Of course, this will not catch every mistake, but the most
     common is a copy-paste issue, and that will handle it.)

Fixes #124.
nmigen/build/res.py
nmigen/test/test_build_res.py