build.{dsl,plat,res}: allow dir="oe".
authorwhitequark <whitequark@whitequark.org>
Mon, 3 Jun 2019 04:39:05 +0000 (04:39 +0000)
committerwhitequark <whitequark@whitequark.org>
Mon, 3 Jun 2019 04:42:55 +0000 (04:42 +0000)
commit6fae06aea9b73b0f2080b8e4d317c6c02163b0d7
treec057d57bb8a4815d8dda7e10f34fa54d3615f1a2
parent1eee7cd76f4c9a79329c185a25003fd2d5bf4c47
build.{dsl,plat,res}: allow dir="oe".

Although a dir="oe" pin is generally equivalent to dir="io" pin with
the i* signal(s) disconnected, they are not equivalent, because some
pins may not be able to support input buffers at all, either because
there are no input buffers, or because the input buffers are consumed
by some other resource.

E.g. this can happen on iCE40 when the input buffer is consumed by
a PLL.
nmigen/build/dsl.py
nmigen/build/plat.py
nmigen/build/res.py
nmigen/test/test_build_dsl.py
nmigen/test/test_build_res.py
nmigen/vendor/fpga/lattice_ice40.py