NET "*" IOSTANDARD=LVCMOS33;
CONFIG VCCAUX = "3.3" ;
#50 MHz oscillator
NET "CLK50M" LOC = "p84";
NET "CLK50M" TNM_NET = "osc";
TIMESPEC "TS_osc" = PERIOD "osc" 20.000ns;
#Slide Switches
NET "sw<0>" LOC = p22; #LSB
NET "sw<1>" LOC = p21;
NET "sw<2>" LOC = p17;
NET "sw<3>" LOC = p16;
NET "sw<4>" LOC = p15;
NET "sw<5>" LOC = p14;
NET "sw<6>" LOC = p12;
NET "sw<7>" LOC = p11;
NET "sw<8>" LOC = p10;
NET "sw<9>" LOC = p9;
NET "sw<10>" LOC = p8;
NET "sw<11>" LOC = p7;
NET "sw<12>" LOC = p6;
NET "sw<13>" LOC = p5;
NET "sw<14>" LOC = p2;
NET "sw<15>" LOC = p1; #MSB
#Push Buttons
NET "PB[4]" LOC = P45;
NET "PB[3]" LOC = P44;
NET "PB[2]" LOC = P43;
NET "PB[1]" LOC = P41;
NET "PB[0]" LOC = P40;
#LEDs
NET "led<0>" LOC = p33; #LSB
NET "led<1>" LOC = p32;
NET "led<2>" LOC = p30;
NET "led<3>" LOC = p29;
NET "led<4>" LOC = p27;
NET "led<5>" LOC = p26;
NET "led<6>" LOC = p24;
NET "led<7>" LOC = p23;
NET "led<8>" LOC = p138;
NET "led<9>" LOC = p143;
NET "led<10>" LOC = p142;
NET "led<11>" LOC = p137;
NET "led<12>" LOC = p141;
NET "led<13>" LOC = p134;
NET "led<14>" LOC = p140;
NET "led<15>" LOC = p139; #MSB
#Seven Segment Display sharing I/O with LED
NET "digit[0]" LOC = P127;
NET "digit[1]" LOC = P131;
NET "digit[2]" LOC = P132;
NET "digit[3]" LOC = P133;
NET "Seven_Segment[0]" LOC = P134;
NET "Seven_Segment[1]" LOC = P137;
NET "Seven_Segment[2]" LOC = P138;
NET "Seven_Segment[3]" LOC = P139;
NET "Seven_Segment[4]" LOC = P140;
NET "Seven_Segment[5]" LOC = P141;
NET "Seven_Segment[6]" LOC = P142;
NET "Seven_Segment[7]" LOC = P143;
#flash chip
NET FLASH_CS LOC = "p38" ;
NET FLASH_SCK LOC = "p70" ;
NET FLASH_MOSI LOC = "p64" ;
NET FLASH_MISO LOC = "p35" ;
#serial interface
NET "TXD" LOC = "P117"; # transmit data (output to FTDI chip)
NET "RXD" LOC = "P116"; # receive data (input from FTDI chip)
# VGA port
NET "vga_R<0>" LOC = "p95";
NET "vga_R<1>" LOC = "p94";
NET "vga_R<2>" LOC = "p93";
NET "vga_R<3>" LOC = "p92";
NET "vga_G<0>" LOC = "p100";
NET "vga_G<1>" LOC = "p99";
NET "vga_G<2>" LOC = "p98";
NET "vga_G<3>" LOC = "p97";
NET "vga_B<0>" LOC = "p105";
NET "vga_B<1>" LOC = "p104";
NET "vga_B<2>" LOC = "p102";
NET "vga_B<3>" LOC = "p101";
NET "vga_HSync" LOC = "p111";
NET "vga_Vsync" LOC = "p112";
# PS/2 keyboard
NET "KBD_CLK" LOC = "p80" | PULLUP;
NET "KBD_DAT" LOC = "p81" | PULLUP;
# 2X16 LCD
NET "lcd_data(0)" LOC = "p23" ;
NET "lcd_data(1)" LOC = "p24" ;
NET "lcd_data(2)" LOC = "p26" ;
NET "lcd_data(3)" LOC = "p27" ;
NET "lcd_data(4)" LOC = "p29" ;
NET "lcd_data(5)" LOC = "p30" ;
NET "lcd_data(6)" LOC = "p32" ;
NET "lcd_data(7)" LOC = "p33" ;
NET "lcd_e" LOC = "p35" ;
NET "lcd_rs" LOC = "p34" ;
# audio
NET "AUDIO_L" LOC = "p79";
NET "AUDIO_R" LOC = "p78";
# SPI ADC
NET "cs" LOC = "p118" ;
NET "din" LOC = "p119" ;
NET "do" LOC = "P120" ;
NET "sck" LOC = "p121" ;
# SPI DAC
NET "CS" LOC = P123;
NET "MOSI" LOC = P124;
NET "SCK" LOC = P126;
# general-purpose I/O port (J5) / CMOS Camera Interface
NET "GPIO[0]" LOC = "p75";
NET "GPIO[1]" LOC = "p74";
NET "GPIO[2]" LOC = "p67";
NET "GPIO[3]" LOC = "p66";
NET "GPIO[4]" LOC = "p62";
NET "GPIO[5]" LOC = "p61";
NET "GPIO[6]" LOC = "p59";
NET "GPIO[7]" LOC = "p58";
NET "GPIO[8]" LOC = "p57";
NET "GPIO[9]" LOC = "p56";
NET "GPIO[10]" LOC = "p55";
NET "GPIO[11]" LOC = "p51";
NET "GPIO[12]" LOC = "p50";
NET "GPIO[13]" LOC = "p48";
NET "GPIO[14]" LOC = "p47";
NET "GPIO[15]" LOC = "p46";
# TFT Connector (J14) sharing I/O with LED and LCD
NET "tft_cs" LOC = P33;
NET "tft_dc" LOC = P30;
NET "tft_reset" LOC = P32;
NET "tft_sck" LOC = P27;
NET "tft_sdi" LOC = P29;