From c81d21c56a05811f37578ce2aa8e55d39efd61d8 Mon Sep 17 00:00:00 2001 From: whitequark Date: Fri, 14 Jun 2019 20:44:02 +0000 Subject: [PATCH] vendor.lattice_ice40: never place an inverter on global buffer output. This would make `pin.i` not a global network anymore, which is likely undesirable if an explicit Attrs(GLOBAL=1) is specified. --- nmigen/vendor/lattice_ice40.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nmigen/vendor/lattice_ice40.py b/nmigen/vendor/lattice_ice40.py index 67bc556..da68c07 100644 --- a/nmigen/vendor/lattice_ice40.py +++ b/nmigen/vendor/lattice_ice40.py @@ -164,6 +164,7 @@ class LatticeICE40Platform(TemplatedPlatform): del attrs["GLOBAL"] else: is_global_input = False + assert not (is_global_input and i_invert) if "i" in pin.dir: if pin.xdr < 2: @@ -222,7 +223,7 @@ class LatticeICE40Platform(TemplatedPlatform): if "i" in pin.dir: if pin.xdr == 0 and is_global_input: - io_args.append(("o", "GLOBAL_BUFFER_OUTPUT", pin_i[bit])) + io_args.append(("o", "GLOBAL_BUFFER_OUTPUT", pin.i[bit])) elif pin.xdr < 2: io_args.append(("o", "D_IN_0", pin_i[bit])) elif pin.xdr == 2: -- 2.30.2