| ## Copyright lowRISC contributors. |
| ## Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| ## SPDX-License-Identifier: Apache-2.0 |
| |
| ## Nexus FPGA Board. |
| |
| ## Clock Signal: 100Mhz REFCLK (Pin U13 and T13 at Bank 72) |
| ## TODO(pbf): Nexus board routed as diff-pair. Use LVDS or DIFF-SSTL18? |
| set_property -dict { PACKAGE_PIN U13 IOSTANDARD DIFF_SSTL18_I } [get_ports { IO_CLK }]; # CK_100M00_FPGA_1_P |
| set_property -dict { PACKAGE_PIN T13 IOSTANDARD DIFF_SSTL18_I } [get_ports { IO_CLK_N }]; # CK_100M00_FPGA_1_N |
| |
| ## Clock constraints |
| ## set via clocks.xdc |
| |
| ## Preserve prim_prince modules and setup multi-cycle paths |
| ## These are no longer required, but kept here as a reference |
| ## set_property KEEP_HIERARCHY TRUE [get_cells top_matcha/u_flash_eflash/gen_flash_banks[*].i_core/u_scramble/u_cipher] |
| ## set_multicycle_path -setup 2 -through [get_pins -of_objects [get_cells top_matcha/u_flash_eflash/gen_flash_banks[*].i_core/u_scramble/u_cipher]] |
| ## set_multicycle_path -hold 1 -through [get_pins -of_objects [get_cells top_matcha/u_flash_eflash/gen_flash_banks[*].i_core/u_scramble/u_cipher]] |
| |
| #set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets IO_SDCK_IBUF]; # SDCK clock to be ignored |
| |
| ## LEDs in Bank 68 LVCMOS12 |
| set_property -dict { PACKAGE_PIN R36 DRIVE 8 IOSTANDARD LVCMOS12 } [get_ports { IOA8 }]; #LED_B_0 |
| # 6/23/23. pbf comment out following LEDs pins, re-cycled IOB0-6 for Camera interface |
| #set_property -dict { PACKAGE_PIN T31 DRIVE 8 IOSTANDARD LVCMOS12 } [get_ports { IOB0 }]; #LED_B_1 |
| #set_property -dict { PACKAGE_PIN P31 DRIVE 8 IOSTANDARD LVCMOS12 } [get_ports { IOB1 }]; #LED_B_2 |
| #set_property -dict { PACKAGE_PIN N37 DRIVE 8 IOSTANDARD LVCMOS12 } [get_ports { IOB2 }]; #LED_B_3 |
| #set_property -dict { PACKAGE_PIN M38 DRIVE 8 IOSTANDARD LVCMOS12 } [get_ports { IOB3 }]; #LED_B_4 |
| #set_property -dict { PACKAGE_PIN L38 DRIVE 8 IOSTANDARD LVCMOS12 } [get_ports { IOB4 }]; #LED_B_5 |
| #set_property -dict { PACKAGE_PIN L36 DRIVE 8 IOSTANDARD LVCMOS12 } [get_ports { IOB5 }]; #LED_B_6 |
| #set_property -dict { PACKAGE_PIN K36 DRIVE 8 IOSTANDARD LVCMOS12 } [get_ports { IOB6 }]; #LED_B_7 |
| |
| ### Buttons in Bank 68 LVCMOS12 #TEMPORARILY REMOVED - should add in addition to FTDI reset |
| #set_property -dict { PACKAGE_PIN W31 IOSTANDARD LVCMOS12 } [get_ports { POR_N }]; #pushbutton PBA1 |
| |
| ## Switches (4 in Bank60 for Nexus: FPGA_SW[0-3] LVCMOS18, to DIP Switch SW03) |
| set_property -dict { PACKAGE_PIN AT30 IOSTANDARD LVCMOS18 } [get_ports { IOC8 }]; #FPGA_SW0 #tap0 |
| set_property -dict { PACKAGE_PIN AT31 IOSTANDARD LVCMOS18 } [get_ports { IOC5 }]; #FPGA_SW1 #tap1 |
| |
| # 6/23/23. pbf comment out following SW pins, re-cycled IOA2-7 for Camera interface |
| #set_property -dict { PACKAGE_PIN AR32 IOSTANDARD LVCMOS18 } [get_ports { IOA2 }]; #FPGA_SW2 |
| #set_property -dict { PACKAGE_PIN AR33 IOSTANDARD LVCMOS18 } [get_ports { IOA3 }]; #FPGA_SW3 |
| ## Switches (another 4 in Bank66 for Nexus: FPGA_SW[4-7] LVCMOS18, to both DIP switch SW47 and debug header J259) |
| #set_property -dict { PACKAGE_PIN BF9 IOSTANDARD LVCMOS18 } [get_ports { IOA4 }]; #FPGA_SW4 |
| #set_property -dict { PACKAGE_PIN BE9 IOSTANDARD LVCMOS18 } [get_ports { IOA5 }]; #FPGA_SW5 |
| #set_property -dict { PACKAGE_PIN BF10 IOSTANDARD LVCMOS18 } [get_ports { IOA6 }]; #FPGA_SW6 |
| #set_property -dict { PACKAGE_PIN BE10 IOSTANDARD LVCMOS18 } [get_ports { IOA7 }]; #FPGA_SW7 |
| |
| #SIGNALS REMOVED FROM SWITCHES TO MAKE WAY FOR OTHER SIGNALS |
| #IOA0 removed from FPGA_SW0 to make way for IOC8 (tap0) |
| #IOA1 removed from FPGA_SW0 to make way for IOC5 (tap1) |
| |
| ## SPI_Device Option 1: (SPI Device connect to SPI1 to MCU through 1v8<->3V3 level shifter, Bank60 LVCMOS18) |
| #set_property -dict { PACKAGE_PIN AT32 IOSTANDARD LVCMOS18 } [get_ports { SPI_DEV_CLK }]; #SCK (SPI1_SCK/FPGA_MCU_1P8_5) |
| #set_property -dict { PACKAGE_PIN AU33 IOSTANDARD LVCMOS18 } [get_ports { SPI_DEV_D0 }]; #SDI (SPI1_MOSI/FPGA_MCU_1P8_3) |
| #set_property -dict { PACKAGE_PIN AV34 IOSTANDARD LVCMOS18 } [get_ports { SPI_DEV_D1 }]; #SDO (SPI1_MISO/FPGA_MCU_1P8_4) |
| #set_property -dict { PACKAGE_PIN AU32 IOSTANDARD LVCMOS18 } [get_ports { SPI_DEV_CS_L }];#CSB (SPI1_NSS/FPGA_MCU_1P8_6) |
| |
| ## SPI_Device Option 2: (SPI Device connect to FTDI ADBUS through 1v8<->3V3 level shifter, Bank65 LVCMOS18) |
| set_property -dict { PACKAGE_PIN AV19 IOSTANDARD LVCMOS18 } [get_ports { SPI_DEV_CLK }]; #SCK (FT_AD0_SCK) |
| set_property -dict { PACKAGE_PIN AV20 IOSTANDARD LVCMOS18 } [get_ports { SPI_DEV_D0 }]; #SDI (FT_AD1_MOSI) |
| set_property -dict { PACKAGE_PIN AV18 IOSTANDARD LVCMOS18 } [get_ports { SPI_DEV_D1 }]; #SDO (FT_AD2_MISO) |
| set_property -dict { PACKAGE_PIN BA17 IOSTANDARD LVCMOS18 } [get_ports { SPI_DEV_D2 }]; #SDI (FT_AD4)-placeholder |
| set_property -dict { PACKAGE_PIN BB17 IOSTANDARD LVCMOS18 } [get_ports { SPI_DEV_D3 }]; #SDO (FT_AD5)-placeholder |
| set_property -dict { PACKAGE_PIN AW20 IOSTANDARD LVCMOS18 } [get_ports { SPI_DEV_CS_L }];#CSB (FT_AD3_SS) |
| |
| ## JTAG (Dedicate JTAG pin header for ARM/RISC-V, connected to header J291 through level shifter U291) |
| ## in bank 65 and 66 LVCMOS18 |
| ## This is different from CW310 in which JTAG and SPI_Device are overlaid. |
| ## TODO(pbf): Check PULLUP/DN for JTAG signals |
| set_property -dict { PACKAGE_PIN BE18 IOSTANDARD LVCMOS18 PULLTYPE PULLDOWN } [get_ports { IOR0 }]; #JTAG TMS (FPGA_ARM_TMS) |
| set_property -dict { PACKAGE_PIN BE17 IOSTANDARD LVCMOS18 PULLTYPE PULLDOWN } [get_ports { IOR1 }]; #JTAG TDO (FPGA_ARM_TDO) |
| set_property -dict { PACKAGE_PIN BB19 IOSTANDARD LVCMOS18 PULLTYPE PULLDOWN } [get_ports { IOR2 }]; #JTAG TDI (FPGA_ARM_TDI) |
| set_property -dict { PACKAGE_PIN AW18 IOSTANDARD LVCMOS18 PULLTYPE PULLDOWN } [get_ports { IOR3 }]; #JTAG TCK (FPGA_ARM_TCLK) |
| set_property -dict { PACKAGE_PIN BC19 IOSTANDARD LVCMOS18 } [get_ports { IOR4 }]; #JTAG_TRST (FPGA_ARAM_TRSTN) |
| set_property -dict { PACKAGE_PIN BC16 IOSTANDARD LVCMOS18 PULLTYPE PULLUP } [get_ports { JTAG_SRST_N }]; #JTAG SRST (FPGA_ARM_NSRST) |
| |
| ## SPI HOST (connected to FLASH1 U6 on Nexus, FPGA Bank 73, LVCMOS18) |
| set_property -dict { PACKAGE_PIN A16 IOSTANDARD LVCMOS18 } [get_ports { SPI_HOST_CLK }]; #SCK (FLASH1_SCK) |
| set_property -dict { PACKAGE_PIN B16 IOSTANDARD LVCMOS18 PULLTYPE PULLUP } [get_ports { SPI_HOST_D0 }]; #SDO (FLASH1_D0) |
| set_property -dict { PACKAGE_PIN C13 IOSTANDARD LVCMOS18 PULLTYPE PULLUP } [get_ports { SPI_HOST_D1 }]; #SD1 (FLASH1_D1) |
| set_property -dict { PACKAGE_PIN C12 IOSTANDARD LVCMOS18 PULLTYPE PULLUP } [get_ports { SPI_HOST_D2 }]; #SD2 (FLASH1_D2) |
| set_property -dict { PACKAGE_PIN H15 IOSTANDARD LVCMOS18 PULLTYPE PULLUP } [get_ports { SPI_HOST_D3 }]; #SD3 (FLASH1_D3) |
| set_property -dict { PACKAGE_PIN A14 IOSTANDARD LVCMOS18 } [get_ports { SPI_HOST_CS_L }]; #CSB (FLASH1_CSB) |
| ## TODO(pbf): assign reset pin for external Flash. |
| set_property -dict { PACKAGE_PIN C15 IOSTANDARD LVCMOS18 PULLTYPE PULLUP } [ get_ports { IOC12 }]; #RSTB (FLASH1_RSTB) |
| |
| ## Nexus PMOD3 connect to interace Connector (J263, 3.3V through level shifter), Bank62 LVCMOS18 |
| #set_property -dict { PACKAGE_PIN AU40 IOSTANDARD LVCMOS18 } [get_ports { IOC2 }]; #PMOD3_1_FPGA |
| #set_property -dict { PACKAGE_PIN AV40 IOSTANDARD LVCMOS18 } [get_ports { IOC3 }]; #PMOD3_2_FPGA USED FOR UART to match nexus |
| #set_property -dict { PACKAGE_PIN AW40 IOSTANDARD LVCMOS18 } [get_ports { IOC4 }]; #PMOD3_3_FPGA USED FOR UART to match nexus |
| set_property -dict { PACKAGE_PIN AY39 IOSTANDARD LVCMOS18 } [get_ports { IOA0 }]; #PMOD3_4_FPGA IOA0 moved for IOC8 TAP0 |
| set_property -dict { PACKAGE_PIN AU39 IOSTANDARD LVCMOS18 } [get_ports { IOC6 }]; #PMOD3_7_FPGA |
| set_property -dict { PACKAGE_PIN AV39 IOSTANDARD LVCMOS18 } [get_ports { IOC7 }]; #PMOD3_8_FPGA |
| set_property -dict { PACKAGE_PIN AW37 IOSTANDARD LVCMOS18 } [get_ports { IOA1 }]; #PMOD3_9_FPGA IOA1 moved for IOC5 TAP1 |
| set_property -dict { PACKAGE_PIN AW38 IOSTANDARD LVCMOS18 } [get_ports { IOC9 }]; #PMOD3_10_FPGA |
| |
| |
| ## Parallel Camera Nexus SMC J14 pins for HPS |
| #FORMAT: ASSIGNMENT #SIGNAL_DESCRIPTION #NEXUS_SIGNAL_NAME |
| #set_property -dict { PACKAGE_PIN BE35 IOSTANDARD LVCMOS18 } [get_ports { ISP_DVP_D0 }]; #PCAM_D0 #FMC_LA021_P |
| #set_property -dict { PACKAGE_PIN BD30 IOSTANDARD LVCMOS18 } [get_ports { ISP_DVP_D1 }]; #PCAM_D1 #FMC_LA12_P |
| #set_property -dict { PACKAGE_PIN BB36 IOSTANDARD LVCMOS18 } [get_ports { ISP_DVP_D2 }]; #PCAM_D2 #FMC_LA26_P |
| #set_property -dict { PACKAGE_PIN BF30 IOSTANDARD LVCMOS18 } [get_ports { ISP_DVP_D3 }]; #PCAM_D3 #FMC_LA011_P |
| #set_property -dict { PACKAGE_PIN BA35 IOSTANDARD LVCMOS18 } [get_ports { ISP_DVP_D4 }]; #PCAM_D4 #FMC_LA27_P |
| #set_property -dict { PACKAGE_PIN BD32 IOSTANDARD LVCMOS18 } [get_ports { ISP_DVP_D5 }]; #PCAM_D5 #FMC_LA16_P |
| #set_property -dict { PACKAGE_PIN BC35 IOSTANDARD LVCMOS18 } [get_ports { ISP_DVP_D6 }]; #PCAM_D6 #FMC_LA25_P |
| #set_property -dict { PACKAGE_PIN BE32 IOSTANDARD LVCMOS18 } [get_ports { ISP_DVP_D7 }]; #PCAM_D7 #FMC_LA015_P |
| #set_property -dict { PACKAGE_PIN AY32 IOSTANDARD LVCMOS18 } [get_ports { ISP_DVP_PCLK}]; #PCAM_PCLK #FMC_LA18_CC_P |
| ##set_property -dict { PACKAGE_PIN AW31 IOSTANDARD LVCMOS18 } [get_ports { ISP_DVP_MCLK }]; #PCAM_MCLK #FMC_LA17_CC_P |
| #set_property -dict { PACKAGE_PIN BF26 IOSTANDARD LVCMOS18 } [get_ports { ISP_DVP_VSYNC }]; #PCAM_FVLD #FMC_LA04_P |
| #set_property -dict { PACKAGE_PIN BE29 IOSTANDARD LVCMOS18 } [get_ports { ISP_DVP_HSYNC }]; #PCAM_LVLD #FMC_LA07_P |
| #set_property -dict { PACKAGE_PIN BE34 IOSTANDARD LVCMOS18 } [get_ports { CAM_SCL }]; #PCAM_SCL #FMC_LA019_P |
| #set_property -dict { PACKAGE_PIN BC33 IOSTANDARD LVCMOS18 } [get_ports { CAM_SDA }]; #PCAM_SDA #FMC_LA20_P |
| #set_property -dict { PACKAGE_PIN BD28 IOSTANDARD LVCMOS18 } [get_ports { CAM_INT }]; # #FMC_LA08_P |
| #set_property -dict { PACKAGE_PIN AT37 IOSTANDARD LVCMOS18 } [get_ports { CAM_TRIG }]; #PMOD2_10_FPGA #NOT USED IN HPS > left at pmod |
| |
| |
| ### Nexus PMOD1 and 2 for Valiant camera parallel interace Connector (J255), Bank63 LVCMOS18 |
| ### 6/23/23. pbf changed Cam interface (ISP_DVP_*, CAM_SCL, CAM_SDA CAM_INT, CAM_TRIG) from DIO to MIO. |
| set_property -dict { PACKAGE_PIN AK29 IOSTANDARD LVCMOS18 } [get_ports { IOB0 }]; #PMOD1_7_FPGA -ISP_DVP_D0 |
| set_property -dict { PACKAGE_PIN AL29 IOSTANDARD LVCMOS18 } [get_ports { IOB1 }]; #PMOD1_1_FPGA -ISP_DVP_D1 |
| set_property -dict { PACKAGE_PIN AL31 IOSTANDARD LVCMOS18 } [get_ports { IOB2 }]; #PMOD1_8_FPGA -ISP_DVP_D2 |
| set_property -dict { PACKAGE_PIN AL32 IOSTANDARD LVCMOS18 } [get_ports { IOB3 }]; #PMOD1_2_FPGA -ISP_DVP_D3 |
| set_property -dict { PACKAGE_PIN AL30 IOSTANDARD LVCMOS18 } [get_ports { IOB4 }]; #PMOD1_9_FPGA -ISP_DVP_D4 |
| set_property -dict { PACKAGE_PIN AM29 IOSTANDARD LVCMOS18 } [get_ports { IOB5 }]; #PMOD1_3_FPGA -ISP_DVP_D5 |
| set_property -dict { PACKAGE_PIN AM33 IOSTANDARD LVCMOS18 } [get_ports { IOB6 }]; #PMOD1_10_FPGA -ISP_DVP_D6 |
| set_property -dict { PACKAGE_PIN AM32 IOSTANDARD LVCMOS18 } [get_ports { IOB7 }]; #PMOD1_4_FPGA -ISP_DVP_D7 |
| set_property -dict { PACKAGE_PIN AN33 IOSTANDARD LVCMOS18 } [get_ports { IOB8 }]; #PMOD2_1_FPGA -ISP_DVP_PCLK |
| #set_property -dict { PACKAGE_PIN AN34 IOSTANDARD LVCMOS18 } [get_ports { ISP_DVP_MCLK }]; #PMOD2_7_FPGA -ISP_DVP_MCLK |
| set_property -dict { PACKAGE_PIN AM31 IOSTANDARD LVCMOS18 } [get_ports { IOA2 }]; #PMOD2_2_FPGA -ISP_DVP_VSYNC |
| set_property -dict { PACKAGE_PIN AP33 IOSTANDARD LVCMOS18 } [get_ports { IOA3 }]; #PMOD2_8_FPGA -ISP_DVP_HSYNC |
| set_property -dict { PACKAGE_PIN AR35 IOSTANDARD LVCMOS18 } [get_ports { IOA4 }]; #PCAM_SCL/PMOD2_9_FPGA -CAM_SCL |
| set_property -dict { PACKAGE_PIN AT35 IOSTANDARD LVCMOS18 } [get_ports { IOA5 }]; #PCAM_SDA/PMOD2_3_FPGA -CAM_SDA |
| set_property -dict { PACKAGE_PIN AT36 IOSTANDARD LVCMOS18 } [get_ports { IOA6 }]; #PMOD2_4_FPGA -CAM_INT |
| set_property -dict { PACKAGE_PIN AT37 IOSTANDARD LVCMOS18 } [get_ports { IOA7 }]; #PMOD2_10_FPGA -CAM_TRIG |
| |
| |
| |
| # PMOD4: (Bank62) Temporarily repurposed for demo display. SPI + 2x (incl CS) + 2x GPIO Required. |
| # 6/23/23. pbf changed SPI_HOST2 interface from DIO to MIO. |
| set_property -dict { PACKAGE_PIN AY38 IOSTANDARD LVCMOS18 } [get_ports { IOB10 }]; #PMOD4_1_FPGA -SPI_HOST2_D0 |
| set_property -dict { PACKAGE_PIN BA39 IOSTANDARD LVCMOS18 } [get_ports { IOB11 }]; #PMOD4_2_FPGA -SPI_HOST2_D1 |
| set_property -dict { PACKAGE_PIN AW35 IOSTANDARD LVCMOS18 } [get_ports { IOB12 }]; #PMOD4_3_FPGA -SPI_HOST2_D2 |
| set_property -dict { PACKAGE_PIN AY35 IOSTANDARD LVCMOS18 } [get_ports { IOR11 }]; #PMOD4_4_FPGA -SPI_HOST2_D3 |
| set_property -dict { PACKAGE_PIN AY40 IOSTANDARD LVCMOS18 } [get_ports { IOR12 }]; #PMOD4_7_FPGA -SPI_HOST2_CLK |
| set_property -dict { PACKAGE_PIN BA40 IOSTANDARD LVCMOS18 } [get_ports { IOR13 }]; #PMOD4_8_FPGA -SPI_HOST2_CS_L |
| #set_property -dict { PACKAGE_PIN AW36 IOSTANDARD LVCMOS18 } [get_ports { IOB7 }]; #PMOD4_9_FPGA |
| #set_property -dict { PACKAGE_PIN BC40 IOSTANDARD LVCMOS18 } [get_ports { IOB8 }]; #PMOD4_10_FPGA |
| |
| ##OLD## J271 pins for prototyping. Bank 63 -- IOB7/8 previously for display control moved. IOD0/1 will be used for display control signals for demo. |
| set_property -dict { PACKAGE_PIN AK30 IOSTANDARD LVCMOS18 } [get_ports { IOD0 }]; #EXP1x10_J271_P1 |
| set_property -dict { PACKAGE_PIN AJ30 IOSTANDARD LVCMOS18 } [get_ports { IOD1 }]; #EXP1x10_J271_P3 |
| set_property -dict { PACKAGE_PIN AH30 IOSTANDARD LVCMOS18 } [get_ports { IOD2 }]; #EXP1x10_J271_P5 |
| set_property -dict { PACKAGE_PIN AJ31 IOSTANDARD LVCMOS18 } [get_ports { IOD3 }]; #EXP1x10_J271_P7 |
| set_property -dict { PACKAGE_PIN AG31 IOSTANDARD LVCMOS18 } [get_ports { IOD4 }]; #EXP1x10_J271_P9 |
| set_property -dict { PACKAGE_PIN AH31 IOSTANDARD LVCMOS18 } [get_ports { IOD5 }]; #EXP1x10_J271_P11 |
| # set_property -dict { PACKAGE_PIN AG32 IOSTANDARD LVCMOS18 } [get_ports { xx }]; #EXP1x10_J271_P13 |
| #EXP1x10_J271_P19 held by IO_UPHY_DPPULLUP |
| #EXP1x10_J271_P17 unused |
| # set_property -dict { PACKAGE_PIN AG33 IOSTANDARD LVCMOS18 } [get_ports { xx }]; #EXP1x10_J271_P19 |
| |
| ###2## IO_TRIGGER, IO_CLKOUT and USB signals moved to FMC_HA pins for now. Skipping FMC_HA00_CC, FMC_HA01_CC as they are clocks |
| set_property -dict { PACKAGE_PIN BD13 IOSTANDARD LVCMOS18 } [get_ports { IO_TRIGGER }]; #FMC_HA02_P |
| set_property -dict { PACKAGE_PIN BE13 IOSTANDARD LVCMOS18 } [get_ports { IO_CLKOUT }]; #FMC_HA02_N |
| set_property -dict { PACKAGE_PIN BD12 IOSTANDARD LVCMOS18 } [get_ports { USB_P }]; #FMC_HA03_P |
| set_property -dict { PACKAGE_PIN BE12 IOSTANDARD LVCMOS18 } [get_ports { USB_N }]; #FMC_HA03_N |
| set_property -dict { PACKAGE_PIN BB13 IOSTANDARD LVCMOS18 } [get_ports { IO_USB_SENSE0 }]; #FMC_HA04_P |
| set_property -dict { PACKAGE_PIN BB12 IOSTANDARD LVCMOS18 } [get_ports { IO_USB_DNPULLUP0 }]; #FMC_HA04_N |
| set_property -dict { PACKAGE_PIN BC11 IOSTANDARD LVCMOS18 } [get_ports { IO_USB_DPPULLUP0 }]; #FMC_HA05_P |
| set_property -dict { PACKAGE_PIN BD11 IOSTANDARD LVCMOS18 } [get_ports { IOB9 }]; #FMC_HA05_N |
| |
| |
| ## TI TUSB1T1105AMHX USB Transceiver "usbdev" testing, Bank 64 LVCMOS18 |
| #set_property -dict { PACKAGE_PIN AW23 IOSTANDARD LVCMOS18 } [get_ports { IO_UPHY_DP_TX }]; #USB0_VPO |
| #set_property -dict { PACKAGE_PIN AW22 IOSTANDARD LVCMOS18 } [get_ports { IO_UPHY_DN_TX }]; #USB0_VMO |
| #set_property -dict { PACKAGE_PIN AY22 IOSTANDARD LVCMOS18 } [get_ports { IO_UPHY_DP_RX }]; #USB0_VP |
| #set_property -dict { PACKAGE_PIN BA22 IOSTANDARD LVCMOS18 } [get_ports { IO_UPHY_DN_RX }]; #USB0_VM |
| ## USRUSB_SOFTCONN(not used, conneted to xxxxx as placeholder) |
| #set_property -dict { PACKAGE_PIN AH33 IOSTANDARD LVCMOS18 } [get_ports { IO_UPHY_DPPULLUP }]; ## MOVED TO EXP1x10_J271_P15 to clear up PMOD4 |
| ## Roman added USB voltage sense pin to AY17 of Bank65 of Nexus FPGA in the latest revision board. |
| #set_property -dict { PACKAGE_PIN AY17 IOSTANDARD LVCMOS18 } [get_ports { IO_UPHY_SENSE }]; #USB0_VBUS_SENSEB |
| #set_property -dict { PACKAGE_PIN AU21 IOSTANDARD LVCMOS18 } [get_ports { IO_UPHY_OE_N }]; #USB0_OEB |
| #set_property -dict { PACKAGE_PIN AV21 IOSTANDARD LVCMOS18 } [get_ports { IO_UPHY_D_RX }]; #USB0_RCV |
| ## TODO(pbf): Re-use port IO_UPHY_SPD/SUS for MODE/CFG of TI USB1T1105A tranciver. Need to tie either high or low with logic. |
| #set_property -dict { PACKAGE_PIN BA21 IOSTANDARD LVCMOS18 PULLTYPE PULLUP} [get_ports { IO_UPHY_SPD }]; #USB0_MODE |
| #set_property -dict { PACKAGE_PIN AT21 IOSTANDARD LVCMOS18 PULLTYPE PULLUP} [get_ports { IO_UPHY_SUS }]; #USB0_CFG |
| |
| ## UART0 (Security Core UART0, default connect to FTDI CDBUS, late may map to SOM_FPGA_GPIO for in-system monitor) |
| ## Bank 65, LVCMOS18 |
| set_property -dict { PACKAGE_PIN BF20 IOSTANDARD LVCMOS18 } [get_ports { IOC4 }]; #FTDI_RX_FPGA_TX_1P8 - Matcha UART0 TX FTDI |
| set_property -dict { PACKAGE_PIN BD20 IOSTANDARD LVCMOS18 } [get_ports { IOC3 }]; #FTDI_TX_FPGA_RX_1P8 - Matcha UART0 RX FTDI |
| #set_property -dict { PACKAGE_PIN BC20 IOSTANDARD LVCMOS18 } [get_ports { xx }]; #FTDI_FPGA_CTS - not used in Matcha |
| #set_property -dict { PACKAGE_PIN BE20 IOSTANDARD LVCMOS18 } [get_ports { xx }]; #FTDI_FPGA_RTS - not used in Matcha |
| |
| ## UART1 (Security Core UART1 or SMC core UART, default connect to CP2103 U250, Bank 74, LVCMOS18 |
| ## late may map to SOM_FPGA_GPIO for in-system monitor) |
| set_property -dict { PACKAGE_PIN R23 IOSTANDARD LVCMOS18 } [get_ports { IOC11 }]; #FPGA_UART_TX - Matcha UART1 TX CP210 USB |
| set_property -dict { PACKAGE_PIN T23 IOSTANDARD LVCMOS18 } [get_ports { IOC10 }]; #FPGA_UART_RX - Matcha UART1 RX CP210 USB |
| #set_property -dict { PACKAGE_PIN P22 IOSTANDARD LVCMOS18 } [get_ports { xx }]; #FPGA_UART_CTS - not used in Matcha |
| #set_property -dict { PACKAGE_PIN R22 IOSTANDARD LVCMOS18 } [get_ports { xx }]; #FPGA_UART_RTS - not used in Matcha |
| |
| ## Configuration options, can be used for all designs |
| set_property CONFIG_VOLTAGE 1.8 [current_design] |
| ## Different from 7 Series or UltraScale, no CFGBVS pin in UltraScal+ device, |
| ## Became RSVGND pin and need to be connected to GND (as Nexus schematic pin AB11) |
| #set_property CFGBVS GND [current_design] |
| |
| # Bootstrap pins |
| set_property -dict { PACKAGE_PIN AU18 IOSTANDARD LVCMOS18 } [get_ports { IOC0 }]; # Bootstrap0 |
| set_property -dict { PACKAGE_PIN AU19 IOSTANDARD LVCMOS18 } [get_ports { IOC1 }]; # Bootstrap1 |
| set_property -dict { PACKAGE_PIN AR20 IOSTANDARD LVCMOS18 } [get_ports { IOC2 }]; # Bootstrap2 |
| set_property -dict { PACKAGE_PIN AR19 IOSTANDARD LVCMOS18 } [get_ports { POR_N }]; |
| |
| # Pushbuttons and LEDs on 1.2V Bank 68 |
| set_property -dict { PACKAGE_PIN U32 DRIVE 8 IOSTANDARD LVCMOS12 } [get_ports { POR_BUTTON_N }]; #PBC3 BUTTON |
| |
| set_property -dict { PACKAGE_PIN W31 DRIVE 8 IOSTANDARD LVCMOS12 } [get_ports { IOR5 }]; #PBA1 BUTTON |
| set_property -dict { PACKAGE_PIN U33 DRIVE 8 IOSTANDARD LVCMOS12 } [get_ports { IOR6 }]; #PBA2 BUTTON |
| set_property -dict { PACKAGE_PIN T35 DRIVE 8 IOSTANDARD LVCMOS12 } [get_ports { IOR7 }]; #PBA3 BUTTON |
| # IOR8, IOR9 are direct connect pins |
| set_property -dict { PACKAGE_PIN W32 DRIVE 8 IOSTANDARD LVCMOS12 } [get_ports { IOR10 }]; #PBB1 BUTTON |
| #set_property -dict { PACKAGE_PIN V30 DRIVE 8 IOSTANDARD LVCMOS12 } [get_ports { IOR11 }]; #PBB2 BUTTON MOVED TO SPI |
| #set_property -dict { PACKAGE_PIN T36 DRIVE 8 IOSTANDARD LVCMOS12 } [get_ports { IOR12 }]; #PBB3 BUTTON MOVED TO SPI |
| |
| ## # 6/23/23. pbf comment out following two placeholder bank assignment and reuse the IOB/IORs for SPI_host2 |
| # Placeholder 1.8V BANK63 GPIO J2611 |
| #set_property -dict { PACKAGE_PIN AL36 IOSTANDARD LVCMOS18 } [get_ports { IOB10 }]; #FPGA_EXP6X1_1_P2 |
| #set_property -dict { PACKAGE_PIN AM34 IOSTANDARD LVCMOS18 } [get_ports { IOB11 }]; #FPGA_EXP6X1_1_P3 |
| #set_property -dict { PACKAGE_PIN AM36 IOSTANDARD LVCMOS18 } [get_ports { IOB12 }]; #FPGA_EXP6X1_1_P4 |
| # Placeholder 1.8V BANK63 GPIO J2612 |
| set_property -dict { PACKAGE_PIN AJ33 IOSTANDARD LVCMOS18 } [get_ports { IOR8 }]; #FPGA_EXP6X1_2_P4 DIRECT ec_rst_l |
| set_property -dict { PACKAGE_PIN AJ32 IOSTANDARD LVCMOS18 } [get_ports { IOR9 }]; #FPGA_EXP6X1_2_P5 DIRECT flash_wp_l |
| # Placeholder 1.8V BANK63 GPIO J2613 |
| #set_property -dict { PACKAGE_PIN AP38 IOSTANDARD LVCMOS18 } [get_ports { IOR13 }]; #FPGA_EXP6X1_3_P5 |