## Prohibit the automatic placement of pins that are connected to VCC or GND for configuration.
CONFIG PROHIBIT=P99;
CONFIG PROHIBIT=P43;
CONFIG PROHIBIT=P42;
CONFIG PROHIBIT=P39;
CONFIG PROHIBIT=P49;
CONFIG PROHIBIT=P48;
CONFIG PROHIBIT=P47;
CONFIG PART=XC3S500E-VQ100-5;
# Clock
NET "CLK_32MHZ" LOC = "P89" | IOSTANDARD = LVCMOS25 | PERIOD=31.25ns;
# Reset
NET "RESET" LOC="P67" | IOSTANDARD=LVTTL | PULLDOWN;
# Joypad
NET "BTN_UP" LOC="P54" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST;
NET "BTN_DOWN" LOC="P41" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST;
NET "BTN_LEFT" LOC="P58" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST;
NET "BTN_RIGHT" LOC="P36" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST;
# PS/2, port A
NET "PS2A_DAT" LOC="P91" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP;
NET "PS2A_CLK" LOC="P92" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP;
# PS/2, port B
NET "PS2B_DAT" LOC="P70" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP;
NET "PS2B_CLK" LOC="P79" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP;
# Joystick, port A
NET "JOYA_UP" LOC="P34" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # B12
NET "JOYA_DOWN" LOC="P25" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # B14
NET "JOYA_LEFT" LOC="P22" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # B15
NET "JOYA_RIGHT" LOC="P23" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # A1
NET "JOYA_FIRE1" LOC="P32" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # B13
NET "JOYA_FIRE2" LOC="P33" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # A3
NET "JOYA_GND" LOC="P18" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # A0
# Joystick, port B
NET "JOYB_UP" LOC="P5" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # B12
NET "JOYB_DOWN" LOC="P10" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # B14
NET "JOYB_LEFT" LOC="P11" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # B15
NET "JOYB_RIGHT" LOC="P15" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # A1
NET "JOYB_FIRE1" LOC="P9" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # B13
NET "JOYB_FIRE2" LOC="P17" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # A3
NET "JOYB_GND" LOC="P12" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # A0
# LEDs
NET "LED<3>" LOC="P35" | IOSTANDARD=LVTTL; # A4
NET "LED<2>" LOC="P40" | IOSTANDARD=LVTTL; # A5
NET "LED<1>" LOC="P53" | IOSTANDARD=LVTTL; # A6
NET "LED<0>" LOC="P57" | IOSTANDARD=LVTTL; # A7
# VGA
NET "VGA_R<0>" LOC="P98" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # C4
NET "VGA_R<1>" LOC="P2" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # C5
NET "VGA_R<2>" LOC="P3" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # C6
NET "VGA_R<3>" LOC="P4" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # C7
NET "VGA_G<0>" LOC="P68" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # B4
NET "VGA_G<1>" LOC="P66" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # B5
NET "VGA_G<2>" LOC="P63" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # B6
NET "VGA_G<3>" LOC="P61" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # B7
NET "VGA_B<0>" LOC="P83" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # B1
NET "VGA_B<1>" LOC="P78" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # B2
NET "VGA_B<2>" LOC="P71" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # B3
NET "VGA_B<3>" LOC="P85" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # B0
NET "VGA_VSYNC" LOC="P94" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # B3
NET "VGA_HSYNC" LOC="P95" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST; # B3