wire _TECHMAP_REMOVEINIT_Q_ = 1;
endmodule
+module \$__GW_IOBUF (input I, OE, output O, inout IO);
+ IOBUF _TECHMAP_REPLACE_ (.I(I), .O(O), .OEN(~OE), .IO(IO));
+endmodule
+
+module \$__GW_TBUF (input I, OE, output O);
+ TBUF _TECHMAP_REPLACE_ (.I(I), .OEN(~OE), .O(O));
+endmodule
module \$lut (A, Y);
parameter WIDTH = 0;
module TBUF (O, I, OEN);
input I, OEN;
output O;
- assign O = OEN ? I : 1'bz;
+ assign O = OEN ? 1'bz : I;
endmodule
module IOBUF (O, IO, I, OEN);
input I,OEN;
output O;
inout IO;
- assign IO = OEN ? I : 1'bz;
+ assign IO = OEN ? 1'bz : I;
assign I = IO;
endmodule
if (retime || help_mode)
run("abc -dff -D 1", "(only if -retime)");
run("splitnets");
+ if (!noiopads || help_mode)
+ run("iopadmap -bits -inpad IBUF O:I -outpad OBUF I:O "
+ "-toutpad $__GW_TBUF OE:I:O -tinoutpad $__GW_IOBUF OE:O:I:IO", "(unless -noiopads)");
}
if (check_label("map_ffs"))
run("opt_lut_ins -tech gowin");
run("setundef -undriven -params -zero");
run("hilomap -singleton -hicell VCC V -locell GND G");
- if (!noiopads || help_mode)
- run("iopadmap -bits -inpad IBUF O:I -outpad OBUF I:O "
- "-toutpad TBUF OEN:I:O -tinoutpad IOBUF OEN:O:I:IO", "(unless -noiopads)");
run("clean");
run("autoname");
}
endmodule
module \$__NX_TOUTPAD (input I, OE, output O);
- OBZ _TECHMAP_REPLACE_ (.I(I), .O(), .T(~OE), .O(O));
+ OBZ _TECHMAP_REPLACE_ (.I(I), .T(~OE), .O(O));
endmodule
`ifndef NO_LUT
cd tristate # Constrain all select calls below inside the top module
#Internal cell type used. Need support it.
select -assert-count 1 t:TBUF
+select -assert-count 1 t:LUT1
select -assert-count 2 t:IBUF
-select -assert-none t:TBUF t:IBUF %% t:* %D
+select -assert-none t:TBUF t:IBUF t:LUT1 %% t:* %D
\ No newline at end of file