From: whitequark Date: Fri, 14 Jun 2019 20:44:02 +0000 (+0000) Subject: vendor.lattice_ice40: never place an inverter on global buffer output. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c81d21c56a05811f37578ce2aa8e55d39efd61d8;p=nmigen.git 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. --- 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: