machxo2: Tristate is active-low.
authorWilliam D. Jones <thor0505@comcast.net>
Sun, 31 Jan 2021 16:33:20 +0000 (11:33 -0500)
committerMarcelina Koƛcielnicka <mwk@0x04.net>
Tue, 23 Feb 2021 16:39:58 +0000 (17:39 +0100)
techlibs/machxo2/cells_map.v
techlibs/machxo2/cells_sim.v

index 15428d4dcd0c05af43dc7d8e38f4ed388c4c8681..82eb10d9592b16b418e5803e4daf5732c2a6eed2 100644 (file)
@@ -28,7 +28,7 @@ endmodule
 module  \$_DFF_P_ (input D, C, output Q); FACADE_FF #(.CEMUX("1"), .CLKMUX("CLK"), .LSRMUX("LSR"), .REGSET("RESET")) _TECHMAP_REPLACE_ (.CLK(C), .LSR(1'b0), .DI(D), .Q(Q)); endmodule
 
 // IO- "$__" cells for the iopadmap pass.
-module  \$__FACADE_OUTPAD (input I, output O); FACADE_IO #(.DIR("OUTPUT")) _TECHMAP_REPLACE_ (.PAD(O), .I(I), .T(1'b1)); endmodule
+module  \$__FACADE_OUTPAD (input I, output O); FACADE_IO #(.DIR("OUTPUT")) _TECHMAP_REPLACE_ (.PAD(O), .I(I), .T(1'b0)); endmodule
 module  \$__FACADE_INPAD (input I, output O); FACADE_IO #(.DIR("INPUT")) _TECHMAP_REPLACE_ (.PAD(I), .O(O)); endmodule
-module  \$__FACADE_TOUTPAD (input I, OE, output O); FACADE_IO #(.DIR("OUTPUT")) _TECHMAP_REPLACE_ (.PAD(O), .I(I), .T(OE)); endmodule
-module  \$__FACADE_TINOUTPAD (input I, OE, output O, inout B); FACADE_IO #(.DIR("BIDIR")) _TECHMAP_REPLACE_ (.PAD(B), .I(I), .O(O), .T(OE)); endmodule
+module  \$__FACADE_TOUTPAD (input I, OE, output O); FACADE_IO #(.DIR("OUTPUT")) _TECHMAP_REPLACE_ (.PAD(O), .I(I), .T(~OE)); endmodule
+module  \$__FACADE_TINOUTPAD (input I, OE, output O, inout B); FACADE_IO #(.DIR("BIDIR")) _TECHMAP_REPLACE_ (.PAD(B), .I(I), .O(O), .T(~OE)); endmodule
index d2267e8fdf668331840984480056f3dc53ff7e70..5f985d4773849b5204e918061bbb213c3555dd26 100644 (file)
@@ -168,9 +168,9 @@ module FACADE_IO #(
                if (DIR == "INPUT") begin
                        assign O = PAD;
                end else if (DIR == "OUTPUT") begin
-                       assign PAD = T ? I : 1'bz;
+                       assign PAD = T ? 1'bz : I;
                end else if (DIR == "BIDIR") begin
-                       assign PAD = T ? I : 1'bz;
+                       assign PAD = T ? 1'bz : I;
                        assign O = PAD;
                end else begin
                        ERROR_UNKNOWN_IO_MODE error();