gateware

A collection of little open source FPGA hobby projects
git clone http://frotz.net/git/gateware.git
Log | Files | Refs | README

ulx3s.lpf (23309B)


      1 BLOCK RESETPATHS;
      2 BLOCK ASYNCPATHS;
      3 ## ULX3S v2.x.x and v3.0.x
      4 
      5 # The clock "usb" and "gpdi" sheet
      6 LOCATE COMP "clk_25mhz" SITE "G2";
      7 IOBUF PORT "clk_25mhz" PULLMODE=NONE IO_TYPE=LVCMOS33;
      8 FREQUENCY PORT "clk_25mhz" 25 MHZ;
      9 
     10 # JTAG and SPI FLASH voltage 3.3V and options to boot from SPI flash
     11 # write to FLASH possible any time from JTAG:
     12 #SYSCONFIG CONFIG_IOVOLTAGE=3.3 COMPRESS_CONFIG=ON MCCLK_FREQ=62 MASTER_SPI_PORT=ENABLE SLAVE_SPI_PORT=DISABLE SLAVE_PARALLEL_PORT=DISABLE;
     13 # write to FLASH possible from user bitstream:
     14 SYSCONFIG CONFIG_IOVOLTAGE=3.3 COMPRESS_CONFIG=ON MCCLK_FREQ=62 MASTER_SPI_PORT=DISABLE SLAVE_SPI_PORT=DISABLE SLAVE_PARALLEL_PORT=DISABLE;
     15 
     16 ## USBSERIAL FTDI-FPGA serial port "usb" sheet
     17 LOCATE COMP "ftdi_rxd" SITE "L4"; # FPGA transmits to ftdi
     18 LOCATE COMP "ftdi_txd" SITE "M1"; # FPGA receives from ftdi
     19 LOCATE COMP "ftdi_nrts" SITE "M3"; # FPGA receives
     20 LOCATE COMP "ftdi_ndtr" SITE "N1"; # FPGA receives
     21 LOCATE COMP "ftdi_txden" SITE "L3"; # FPGA receives
     22 IOBUF PORT "ftdi_rxd" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
     23 IOBUF PORT "ftdi_txd" PULLMODE=UP IO_TYPE=LVCMOS33;
     24 IOBUF PORT "ftdi_nrts" PULLMODE=UP IO_TYPE=LVCMOS33;
     25 IOBUF PORT "ftdi_ndtr" PULLMODE=UP IO_TYPE=LVCMOS33;
     26 IOBUF PORT "ftdi_txden" PULLMODE=UP IO_TYPE=LVCMOS33;
     27 
     28 ## LED indicators "blinkey" and "gpio" sheet
     29 LOCATE COMP "led[7]" SITE "H3";
     30 LOCATE COMP "led[6]" SITE "E1";
     31 LOCATE COMP "led[5]" SITE "E2";
     32 LOCATE COMP "led[4]" SITE "D1";
     33 LOCATE COMP "led[3]" SITE "D2";
     34 LOCATE COMP "led[2]" SITE "C1";
     35 LOCATE COMP "led[1]" SITE "C2";
     36 LOCATE COMP "led[0]" SITE "B2";
     37 IOBUF PORT "led[0]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
     38 IOBUF PORT "led[1]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
     39 IOBUF PORT "led[2]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
     40 IOBUF PORT "led[3]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
     41 IOBUF PORT "led[4]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
     42 IOBUF PORT "led[5]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
     43 IOBUF PORT "led[6]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
     44 IOBUF PORT "led[7]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
     45 
     46 ## Pushbuttons "blinkey", "flash", "power", "gpdi" sheet
     47 LOCATE COMP "btn[0]" SITE "D6";  # BTN_PWRn (inverted logic)
     48 LOCATE COMP "btn[1]" SITE "R1";  # FIRE1
     49 LOCATE COMP "btn[2]" SITE "T1";  # FIRE2
     50 LOCATE COMP "btn[3]" SITE "R18"; # UP
     51 LOCATE COMP "btn[4]" SITE "V1";  # DOWN
     52 LOCATE COMP "btn[5]" SITE "U1";  # LEFT
     53 LOCATE COMP "btn[6]" SITE "H16"; # RIGHT
     54 IOBUF PORT "btn[0]" PULLMODE=UP IO_TYPE=LVCMOS33;
     55 IOBUF PORT "btn[1]" PULLMODE=DOWN IO_TYPE=LVCMOS33;
     56 IOBUF PORT "btn[2]" PULLMODE=DOWN IO_TYPE=LVCMOS33;
     57 IOBUF PORT "btn[3]" PULLMODE=DOWN IO_TYPE=LVCMOS33;
     58 IOBUF PORT "btn[4]" PULLMODE=DOWN IO_TYPE=LVCMOS33;
     59 IOBUF PORT "btn[5]" PULLMODE=DOWN IO_TYPE=LVCMOS33;
     60 IOBUF PORT "btn[6]" PULLMODE=DOWN IO_TYPE=LVCMOS33;
     61 
     62 ## DIP switch "blinkey", "gpio" sheet
     63 LOCATE COMP "sw[0]" SITE "E8"; # SW1
     64 LOCATE COMP "sw[1]" SITE "D8"; # SW2
     65 LOCATE COMP "sw[2]" SITE "D7"; # SW3
     66 LOCATE COMP "sw[3]" SITE "E7"; # SW4
     67 IOBUF PORT "sw[0]" PULLMODE=DOWN IO_TYPE=LVCMOS33;
     68 IOBUF PORT "sw[1]" PULLMODE=DOWN IO_TYPE=LVCMOS33;
     69 IOBUF PORT "sw[2]" PULLMODE=DOWN IO_TYPE=LVCMOS33;
     70 IOBUF PORT "sw[3]" PULLMODE=DOWN IO_TYPE=LVCMOS33;
     71 
     72 ## SPI OLED DISPLAY SSD1331 (Color) or SSD1306 (B/W) "blinkey", "usb" sheet
     73 LOCATE COMP "oled_clk" SITE "P4";
     74 LOCATE COMP "oled_mosi" SITE "P3";
     75 LOCATE COMP "oled_dc" SITE "P1";
     76 LOCATE COMP "oled_resn" SITE "P2";
     77 LOCATE COMP "oled_csn" SITE "N2";
     78 IOBUF PORT "oled_clk" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
     79 IOBUF PORT "oled_mosi" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
     80 IOBUF PORT "oled_dc" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
     81 IOBUF PORT "oled_resn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
     82 IOBUF PORT "oled_csn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
     83 
     84 ## SPI Flash chip "flash" sheet
     85 LOCATE COMP "flash_csn" SITE "R2";
     86 #LOCATE COMP "flash_clk" SITE "U3";
     87 LOCATE COMP "flash_mosi" SITE "W2";
     88 LOCATE COMP "flash_miso" SITE "V2";
     89 LOCATE COMP "flash_holdn" SITE "W1";
     90 LOCATE COMP "flash_wpn" SITE "Y2";
     91 #LOCATE COMP "flash_csspin" SITE "AJ3";
     92 #LOCATE COMP "flash_initn" SITE "AG4";
     93 #LOCATE COMP "flash_done" SITE "AJ4";
     94 #LOCATE COMP "flash_programn" SITE "AH4";
     95 #LOCATE COMP "flash_cfg_select[0]" SITE "AM4";
     96 #LOCATE COMP "flash_cfg_select[1]" SITE "AL4";
     97 #LOCATE COMP "flash_cfg_select[2]" SITE "AK4";
     98 IOBUF PORT "flash_csn" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
     99 #IOBUF PORT "flash_clk" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    100 IOBUF PORT "flash_mosi" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    101 IOBUF PORT "flash_miso" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    102 IOBUF PORT "flash_holdn" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    103 IOBUF PORT "flash_wpn" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    104 #IOBUF PORT "flash_csspin" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    105 #IOBUF PORT "flash_initn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    106 #IOBUF PORT "flash_done" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    107 #IOBUF PORT "flash_programn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    108 #IOBUF PORT "flash_cfg_select[0]" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4;
    109 #IOBUF PORT "flash_cfg_select[1]" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4;
    110 #IOBUF PORT "flash_cfg_select[2]" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4;
    111 
    112 ## SD card "sdcard", "usb" sheet
    113 LOCATE COMP "sd_clk" SITE "H2"; # sd_clk WiFi_GPIO14
    114 LOCATE COMP "sd_cmd" SITE "J1"; # sd_cmd_di (MOSI) WiFi GPIO15
    115 LOCATE COMP "sd_d[0]" SITE "J3"; # sd_dat0_do (MISO) WiFi GPIO2
    116 LOCATE COMP "sd_d[1]" SITE "H1"; # sd_dat1_irq WiFi GPIO4
    117 LOCATE COMP "sd_d[2]" SITE "K1"; # sd_dat2 WiFi_GPIO12
    118 LOCATE COMP "sd_d[3]" SITE "K2"; # sd_dat3_csn WiFi_GPIO13
    119 LOCATE COMP "sd_wp" SITE "P5"; # not connected
    120 LOCATE COMP "sd_cdn" SITE "N5"; # not connected
    121 IOBUF PORT "sd_clk" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    122 IOBUF PORT "sd_cmd" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    123 IOBUF PORT "sd_d[0]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    124 IOBUF PORT "sd_d[1]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    125 IOBUF PORT "sd_d[2]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4; # WiFi GPIO12 pulldown bootstrapping requirement
    126 IOBUF PORT "sd_d[3]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    127 IOBUF PORT "sd_wp" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    128 IOBUF PORT "sd_cdn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    129 
    130 ## ADC SPI (MAX11123) "analog", "ram" sheet
    131 LOCATE COMP "adc_csn" SITE "R17";
    132 LOCATE COMP "adc_mosi" SITE "R16";
    133 LOCATE COMP "adc_miso" SITE "U16";
    134 LOCATE COMP "adc_sclk" SITE "P17";
    135 IOBUF PORT "adc_csn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    136 IOBUF PORT "adc_mosi" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    137 IOBUF PORT "adc_miso" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    138 IOBUF PORT "adc_sclk" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    139 
    140 ## Audio 4-bit DAC "analog", "gpio" sheet
    141 # Output impedance 75 ohm.
    142 # Strong enough to drive 16 ohm earphones.
    143 LOCATE COMP "audio_l[3]" SITE "B3"; # JACK TIP (left audio)
    144 LOCATE COMP "audio_l[2]" SITE "C3";
    145 LOCATE COMP "audio_l[1]" SITE "D3";
    146 LOCATE COMP "audio_l[0]" SITE "E4";
    147 LOCATE COMP "audio_r[3]" SITE "C5"; # JACK RING1 (right audio)
    148 LOCATE COMP "audio_r[2]" SITE "D5";
    149 LOCATE COMP "audio_r[1]" SITE "B5";
    150 LOCATE COMP "audio_r[0]" SITE "A3";
    151 LOCATE COMP "audio_v[3]" SITE "E5"; # JACK RING2 (video or digital audio)
    152 LOCATE COMP "audio_v[2]" SITE "F5";
    153 LOCATE COMP "audio_v[1]" SITE "F2";
    154 LOCATE COMP "audio_v[0]" SITE "H5";
    155 IOBUF PORT "audio_l[3]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16;
    156 IOBUF PORT "audio_l[2]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16;
    157 IOBUF PORT "audio_l[1]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16;
    158 IOBUF PORT "audio_l[0]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16;
    159 IOBUF PORT "audio_r[3]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16;
    160 IOBUF PORT "audio_r[2]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16;
    161 IOBUF PORT "audio_r[1]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16;
    162 IOBUF PORT "audio_r[0]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16;
    163 IOBUF PORT "audio_v[3]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16;
    164 IOBUF PORT "audio_v[2]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16;
    165 IOBUF PORT "audio_v[1]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16;
    166 IOBUF PORT "audio_v[0]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16;
    167 
    168 ## WiFi ESP-32 "wifi", "usb", "flash" sheet
    169 # other pins are shared with GP/GN, SD card and JTAG
    170 LOCATE COMP "wifi_en" SITE "F1"; # enable/reset WiFi
    171 LOCATE COMP "wifi_rxd" SITE "K3"; # FPGA transmits to WiFi
    172 LOCATE COMP "wifi_txd" SITE "K4"; # FPGA receives from WiFi
    173 LOCATE COMP "wifi_gpio0" SITE "L2";
    174 LOCATE COMP "wifi_gpio5" SITE "N4"; # WIFI LED
    175 LOCATE COMP "wifi_gpio16" SITE "L1"; # Serial1 RX
    176 LOCATE COMP "wifi_gpio17" SITE "N3"; # Serial1 TX
    177 # LOCATE COMP "prog_done" SITE "Y3"; # not GPIO, always active
    178 IOBUF PORT "wifi_en" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    179 IOBUF PORT "wifi_rxd" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    180 IOBUF PORT "wifi_txd" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    181 IOBUF PORT "wifi_gpio0" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    182 IOBUF PORT "wifi_gpio5" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    183 IOBUF PORT "wifi_gpio16" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    184 IOBUF PORT "wifi_gpio17" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    185 # IOBUF PORT "prog_done" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    186 
    187 ## PCB antenna 433 MHz (may be also used for FM) "usb" sheet
    188 LOCATE COMP "ant_433mhz" SITE "G1";
    189 IOBUF PORT "ant_433mhz" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    190 
    191 ## Second USB port "US2" going directly into FPGA "usb", "ram" sheet
    192 LOCATE COMP "usb_fpga_dp" SITE "E16"; # single ended or differential input only
    193 LOCATE COMP "usb_fpga_dn" SITE "F16";
    194 IOBUF PORT "usb_fpga_dp" PULLMODE=NONE IO_TYPE=LVCMOS33D DRIVE=16;
    195 IOBUF PORT "usb_fpga_dn" PULLMODE=NONE IO_TYPE=LVCMOS33D DRIVE=16;
    196 LOCATE COMP "usb_fpga_bd_dp" SITE "D15"; # single-ended bidirectional
    197 LOCATE COMP "usb_fpga_bd_dn" SITE "E15";
    198 IOBUF PORT "usb_fpga_bd_dp" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    199 IOBUF PORT "usb_fpga_bd_dn" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    200 LOCATE COMP "usb_fpga_pu_dp" SITE "B12"; # pull up/down control
    201 LOCATE COMP "usb_fpga_pu_dn" SITE "C12";
    202 IOBUF PORT "usb_fpga_pu_dp" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16;
    203 IOBUF PORT "usb_fpga_pu_dn" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=16;
    204 
    205 ## JTAG ESP-32 "usb" sheet
    206 # connected to FT231X and ESP-32
    207 # commented out because those are dedicated pins, not directly useable as GPIO
    208 # but could be used by some vendor-specific JTAG bridging (boundary scan) module
    209 #LOCATE COMP "jtag_tdi" SITE "R5"; # FTDI_nRI   FPGA receives
    210 #LOCATE COMP "jtag_tdo" SITE "V4"; # FTDI_nCTS  FPGA transmits
    211 #LOCATE COMP "jtag_tck" SITE "T5"; # FTDI_nDSR  FPGA receives
    212 #LOCATE COMP "jtag_tms" SITE "U5"; # FTDI_nDCD  FPGA receives
    213 #IOBUF PORT "jtag_tdi" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    214 #IOBUF PORT "jtag_tdo" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    215 #IOBUF PORT "jtag_tck" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    216 #IOBUF PORT "jtag_tms" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    217 
    218 ## SDRAM "ram" sheet
    219 LOCATE COMP "sdram_clk" SITE "F19";
    220 LOCATE COMP "sdram_cke" SITE "F20";
    221 LOCATE COMP "sdram_cs_n" SITE "P20";
    222 LOCATE COMP "sdram_we_n" SITE "T20";
    223 LOCATE COMP "sdram_ras_n" SITE "R20";
    224 LOCATE COMP "sdram_cas_n" SITE "T19";
    225 LOCATE COMP "sdram_addr[0]" SITE "M20";
    226 LOCATE COMP "sdram_addr[1]" SITE "M19";
    227 LOCATE COMP "sdram_addr[2]" SITE "L20";
    228 LOCATE COMP "sdram_addr[3]" SITE "L19";
    229 LOCATE COMP "sdram_addr[4]" SITE "K20";
    230 LOCATE COMP "sdram_addr[5]" SITE "K19";
    231 LOCATE COMP "sdram_addr[6]" SITE "K18";
    232 LOCATE COMP "sdram_addr[7]" SITE "J20";
    233 LOCATE COMP "sdram_addr[8]" SITE "J19";
    234 LOCATE COMP "sdram_addr[9]" SITE "H20";
    235 LOCATE COMP "sdram_addr[10]" SITE "N19";
    236 LOCATE COMP "sdram_addr[11]" SITE "G20";
    237 LOCATE COMP "sdram_addr[12]" SITE "G19";
    238 LOCATE COMP "sdram_addr[13]" SITE "P19";
    239 LOCATE COMP "sdram_addr[14]" SITE "N20";
    240 LOCATE COMP "sdram_dqm[0]" SITE "U19";
    241 LOCATE COMP "sdram_dqm[1]" SITE "E20";
    242 LOCATE COMP "sdram_data[0]" SITE "J16";
    243 LOCATE COMP "sdram_data[1]" SITE "L18";
    244 LOCATE COMP "sdram_data[2]" SITE "M18";
    245 LOCATE COMP "sdram_data[3]" SITE "N18";
    246 LOCATE COMP "sdram_data[4]" SITE "P18";
    247 LOCATE COMP "sdram_data[5]" SITE "T18";
    248 LOCATE COMP "sdram_data[6]" SITE "T17";
    249 LOCATE COMP "sdram_data[7]" SITE "U20";
    250 LOCATE COMP "sdram_data[8]" SITE "E19";
    251 LOCATE COMP "sdram_data[9]" SITE "D20";
    252 LOCATE COMP "sdram_data[10]" SITE "D19";
    253 LOCATE COMP "sdram_data[11]" SITE "C20";
    254 LOCATE COMP "sdram_data[12]" SITE "E18";
    255 LOCATE COMP "sdram_data[13]" SITE "F18";
    256 LOCATE COMP "sdram_data[14]" SITE "J18";
    257 LOCATE COMP "sdram_data[15]" SITE "J17";
    258 IOBUF PORT "sdram_clk" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    259 IOBUF PORT "sdram_cke" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    260 IOBUF PORT "sdram_cs_n" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    261 IOBUF PORT "sdram_we_n" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    262 IOBUF PORT "sdram_ras_n" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    263 IOBUF PORT "sdram_cas_n" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    264 IOBUF PORT "sdram_addr[0]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    265 IOBUF PORT "sdram_addr[1]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    266 IOBUF PORT "sdram_addr[2]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    267 IOBUF PORT "sdram_addr[3]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    268 IOBUF PORT "sdram_addr[4]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    269 IOBUF PORT "sdram_addr[5]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    270 IOBUF PORT "sdram_addr[6]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    271 IOBUF PORT "sdram_addr[7]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    272 IOBUF PORT "sdram_addr[8]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    273 IOBUF PORT "sdram_addr[9]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    274 IOBUF PORT "sdram_addr[10]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    275 IOBUF PORT "sdram_addr[11]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    276 IOBUF PORT "sdram_addr[12]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    277 IOBUF PORT "sdram_addr[13]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    278 IOBUF PORT "sdram_addr[14]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    279 IOBUF PORT "sdram_dqm[0]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    280 IOBUF PORT "sdram_dqm[1]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    281 IOBUF PORT "sdram_data[0]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    282 IOBUF PORT "sdram_data[1]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    283 IOBUF PORT "sdram_data[2]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    284 IOBUF PORT "sdram_data[3]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    285 IOBUF PORT "sdram_data[4]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    286 IOBUF PORT "sdram_data[5]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    287 IOBUF PORT "sdram_data[6]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    288 IOBUF PORT "sdram_data[7]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    289 IOBUF PORT "sdram_data[8]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    290 IOBUF PORT "sdram_data[9]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    291 IOBUF PORT "sdram_data[10]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    292 IOBUF PORT "sdram_data[11]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    293 IOBUF PORT "sdram_data[12]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    294 IOBUF PORT "sdram_data[13]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    295 IOBUF PORT "sdram_data[14]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    296 IOBUF PORT "sdram_data[15]" PULLMODE=NONE IO_TYPE=LVCMOS33 DRIVE=4;
    297 
    298 # GPDI differential interface (Video) "gpdi" sheet
    299 LOCATE COMP "gpdi_dp[0]" SITE "A16"; # Blue +
    300 LOCATE COMP "gpdi_dn[0]" SITE "B16"; # Blue -
    301 LOCATE COMP "gpdi_dp[1]" SITE "A14"; # Green +
    302 LOCATE COMP "gpdi_dn[1]" SITE "C14"; # Green -
    303 LOCATE COMP "gpdi_dp[2]" SITE "A12"; # Red +
    304 LOCATE COMP "gpdi_dn[2]" SITE "A13"; # Red -
    305 LOCATE COMP "gpdi_dp[3]" SITE "A17"; # Clock +
    306 LOCATE COMP "gpdi_dn[3]" SITE "B18"; # Clock -
    307 LOCATE COMP "gpdi_ethp" SITE "A19"; # Ethernet +
    308 LOCATE COMP "gpdi_ethn" SITE "B20"; # Ethernet -
    309 LOCATE COMP "gpdi_cec" SITE "A18";
    310 LOCATE COMP "gpdi_sda" SITE "B19"; # I2C shared with RTC
    311 LOCATE COMP "gpdi_scl" SITE "E12"; # I2C shared with RTC C12->E12
    312 IOBUF PORT "gpdi_dp[0]" IO_TYPE=LVCMOS33;
    313 IOBUF PORT "gpdi_dn[0]" IO_TYPE=LVCMOS33;
    314 IOBUF PORT "gpdi_dp[1]" IO_TYPE=LVCMOS33;
    315 IOBUF PORT "gpdi_dn[1]" IO_TYPE=LVCMOS33;
    316 IOBUF PORT "gpdi_dp[2]" IO_TYPE=LVCMOS33;
    317 IOBUF PORT "gpdi_dn[2]" IO_TYPE=LVCMOS33;
    318 IOBUF PORT "gpdi_dp[3]" IO_TYPE=LVCMOS33;
    319 IOBUF PORT "gpdi_dn[3]" IO_TYPE=LVCMOS33;
    320 IOBUF PORT "gpdi_ethp" IO_TYPE=LVCMOS33;
    321 IOBUF PORT "gpdi_ethn" IO_TYPE=LVCMOS33;
    322 IOBUF PORT "gpdi_cec" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    323 IOBUF PORT "gpdi_sda" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    324 IOBUF PORT "gpdi_scl" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    325 
    326 # GPIO (default single-ended) "gpio", "ram", "gpdi" sheet
    327 # Physical connector pins:
    328 # *** when FEMALE ANGLED (90 deg PMOD) soldered ***
    329 # Jm_n- = Jm_n, Jm_n+ = Jm_n+1
    330 # example: J1_5- is J1_5 phsyical, J1_5+ is J1_6 physical
    331 # *** when MALE VERTICAL soldered ***
    332 # Jm_n+ = Jm_n, Jm_n- = Jm_n+1
    333 # example: J1_5+ is J1_5 physical, J1_5- is J1_6 physical
    334 # Pins enumerated gp[0-27], gn[0-27].
    335 # With differential mode enabled on Lattice,
    336 # gp[] (+) are used, gn[] (-) are ignored from design
    337 # as they handle inverted signal by default.
    338 # To enable differential, rename LVCMOS33->LVCMOS33D
    339 # To enable clock i/o, add this (example):
    340 #FREQUENCY PORT "gp[12]" 25.00 MHZ;
    341 LOCATE COMP "gp[0]" SITE "B11"; # J1_5+  GP0 PCLK
    342 LOCATE COMP "gn[0]" SITE "C11"; # J1_5-  GN0 PCLK
    343 LOCATE COMP "gp[1]" SITE "A10"; # J1_7+  GP1 PCLK
    344 LOCATE COMP "gn[1]" SITE "A11"; # J1_7-  GN1 PCLK
    345 LOCATE COMP "gp[2]" SITE "A9";  # J1_9+  GP2 GR_PCLK
    346 LOCATE COMP "gn[2]" SITE "B10"; # J1_9-  GN2 GR_PCLK
    347 LOCATE COMP "gp[3]" SITE "B9";  # J1_11+ GP3
    348 LOCATE COMP "gn[3]" SITE "C10"; # J1_11- GN3
    349 LOCATE COMP "gp[4]" SITE "A7";  # J1_13+ GP4
    350 LOCATE COMP "gn[4]" SITE "A8";  # J1_13- GN4
    351 LOCATE COMP "gp[5]" SITE "C8";  # J1_15+ GP5
    352 LOCATE COMP "gn[5]" SITE "B8";  # J1_15- GN5
    353 LOCATE COMP "gp[6]" SITE "C6";  # J1_17+ GP6
    354 LOCATE COMP "gn[6]" SITE "C7";  # J1_17- GN6
    355 IOBUF PORT "gp[0]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    356 IOBUF PORT "gn[0]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    357 IOBUF PORT "gp[1]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    358 IOBUF PORT "gn[1]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    359 IOBUF PORT "gp[2]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    360 IOBUF PORT "gn[2]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    361 IOBUF PORT "gp[3]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    362 IOBUF PORT "gn[3]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    363 IOBUF PORT "gp[4]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    364 IOBUF PORT "gn[4]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    365 IOBUF PORT "gp[5]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    366 IOBUF PORT "gn[5]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    367 IOBUF PORT "gp[6]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    368 IOBUF PORT "gn[6]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    369 LOCATE COMP "gp[7]" SITE "A6";  # J1_23+ GP7
    370 LOCATE COMP "gn[7]" SITE "B6";  # J1_23- GN7
    371 LOCATE COMP "gp[8]" SITE "A4";  # J1_25+ GP8
    372 LOCATE COMP "gn[8]" SITE "A5";  # J1_25- GN8  DIFF
    373 LOCATE COMP "gp[9]" SITE "A2";  # J1_27+ GP9  DIFF
    374 LOCATE COMP "gn[9]" SITE "B1";  # J1_27- GN9  DIFF
    375 LOCATE COMP "gp[10]" SITE "C4";  # J1_29+ GP10 DIFF
    376 LOCATE COMP "gn[10]" SITE "B4";  # J1_29- GN10 DIFF
    377 LOCATE COMP "gp[11]" SITE "F4";  # J1_31+ GP11 DIFF WIFI_GPIO26
    378 LOCATE COMP "gn[11]" SITE "E3";  # J1_31- GN11 DIFF WIFI_GPIO25
    379 LOCATE COMP "gp[12]" SITE "G3";  # J1_33+ GP12 DIFF WIFI_GPIO33 PCLK
    380 LOCATE COMP "gn[12]" SITE "F3";  # J1_33- GN12 DIFF WIFI_GPIO32 PCLK
    381 LOCATE COMP "gp[13]" SITE "H4";  # J1_35+ GP13 DIFF WIFI_GPIO35
    382 LOCATE COMP "gn[13]" SITE "G5";  # J1_35- GN13 DIFF WIFI_GPIO34
    383 IOBUF PORT "gp[7]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    384 IOBUF PORT "gn[7]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    385 IOBUF PORT "gp[8]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    386 IOBUF PORT "gn[8]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    387 IOBUF PORT "gp[9]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    388 IOBUF PORT "gn[9]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    389 IOBUF PORT "gp[10]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    390 IOBUF PORT "gn[10]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    391 IOBUF PORT "gp[11]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    392 IOBUF PORT "gn[11]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    393 IOBUF PORT "gp[12]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    394 IOBUF PORT "gn[12]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    395 IOBUF PORT "gp[13]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    396 IOBUF PORT "gn[13]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    397 LOCATE COMP "gp[14]" SITE "U18"; # J2_5+  GP14 DIFF ADC1
    398 LOCATE COMP "gn[14]" SITE "U17"; # J2_5-  GN14 DIFF ADC0
    399 LOCATE COMP "gp[15]" SITE "N17"; # J2_7+  GP15 DIFF ADC3
    400 LOCATE COMP "gn[15]" SITE "P16"; # J2_7-  GN15 DIFF ADC2
    401 LOCATE COMP "gp[16]" SITE "N16"; # J2_9+  GP16 DIFF ADC5
    402 LOCATE COMP "gn[16]" SITE "M17"; # J2_9-  GN16 DIFF ADC4
    403 LOCATE COMP "gp[17]" SITE "L16"; # J2_11+ GP17 DIFF ADC7 GR_PCLK
    404 LOCATE COMP "gn[17]" SITE "L17"; # J2_11- GN17 DIFF ADC6
    405 LOCATE COMP "gp[18]" SITE "H18"; # J2_13+ GP18 DIFF
    406 LOCATE COMP "gn[18]" SITE "H17"; # J2_13- GN18 DIFF
    407 LOCATE COMP "gp[19]" SITE "F17"; # J2_15+ GP19 DIFF
    408 LOCATE COMP "gn[19]" SITE "G18"; # J2_15- GN19 DIFF
    409 LOCATE COMP "gp[20]" SITE "D18"; # J2_17+ GP20 DIFF
    410 LOCATE COMP "gn[20]" SITE "E17"; # J2_17- GN20 DIFF
    411 IOBUF PORT "gp[14]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    412 IOBUF PORT "gn[14]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    413 IOBUF PORT "gp[15]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    414 IOBUF PORT "gn[15]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    415 IOBUF PORT "gp[16]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    416 IOBUF PORT "gn[16]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    417 IOBUF PORT "gp[17]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    418 IOBUF PORT "gn[17]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    419 IOBUF PORT "gp[18]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    420 IOBUF PORT "gn[18]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    421 IOBUF PORT "gp[19]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    422 IOBUF PORT "gn[19]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    423 IOBUF PORT "gp[20]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    424 IOBUF PORT "gn[20]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    425 LOCATE COMP "gp[21]" SITE "C18"; # J2_23+ GP21 DIFF
    426 LOCATE COMP "gn[21]" SITE "D17"; # J2_23- GN21 DIFF
    427 LOCATE COMP "gp[22]" SITE "B15"; # J2_25+ GP22
    428 LOCATE COMP "gn[22]" SITE "C15"; # J2_25- GN22
    429 LOCATE COMP "gp[23]" SITE "B17"; # J2_27+ GP23
    430 LOCATE COMP "gn[23]" SITE "C17"; # J2_27- GN23
    431 LOCATE COMP "gp[24]" SITE "C16"; # J2_29+ GP24
    432 LOCATE COMP "gn[24]" SITE "D16"; # J2_29- GN24
    433 LOCATE COMP "gp[25]" SITE "D14"; # J2_31+ GP25
    434 LOCATE COMP "gn[25]" SITE "E14"; # J2_31- GN25
    435 LOCATE COMP "gp[26]" SITE "B13"; # J2_33+ GP26
    436 LOCATE COMP "gn[26]" SITE "C13"; # J2_33- GN26
    437 LOCATE COMP "gp[27]" SITE "D13"; # J2_35+ GP27
    438 LOCATE COMP "gn[27]" SITE "E13"; # J2_35- GN27
    439 IOBUF PORT "gp[21]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    440 IOBUF PORT "gn[21]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    441 IOBUF PORT "gp[22]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    442 IOBUF PORT "gn[22]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    443 IOBUF PORT "gp[23]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    444 IOBUF PORT "gn[23]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    445 IOBUF PORT "gp[24]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    446 IOBUF PORT "gn[24]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    447 IOBUF PORT "gp[25]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    448 IOBUF PORT "gn[25]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    449 IOBUF PORT "gp[26]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    450 IOBUF PORT "gn[26]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    451 IOBUF PORT "gp[27]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    452 IOBUF PORT "gn[27]" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    453 
    454 ## PROGRAMN (reload bitstream from FLASH, exit from bootloader)
    455 # PCB v2.0.5 and higher
    456 LOCATE COMP "user_programn" SITE "M4";
    457 IOBUF PORT "user_programn" PULLMODE=UP IO_TYPE=LVCMOS33 DRIVE=4;
    458 
    459 ## SHUTDOWN "power", "ram" sheet (connected from PCB v1.7.5)
    460 # on PCB v1.7 shutdown is not connected to FPGA
    461 LOCATE COMP "shutdown" SITE "G16"; # FPGA receives
    462 IOBUF PORT "shutdown" PULLMODE=DOWN IO_TYPE=LVCMOS33 DRIVE=4;