build.res: detect physical conflicts earlier.
authorwhitequark <whitequark@whitequark.org>
Wed, 3 Jul 2019 15:07:44 +0000 (15:07 +0000)
committerwhitequark <whitequark@whitequark.org>
Wed, 3 Jul 2019 15:07:44 +0000 (15:07 +0000)
commitb471e33d7f79a2e427c341e1e3fffb8c7a368213
tree01ca44c80b08dc1b9b34ccfae7a5201a479e0a8b
parent7059cb49314d63e1d0f2d5ee21c54a701aaa44f8
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