# SPDX-License-Identifier: MIT
#
# Copyright (c) 2014-2026 FPGA Ninja, LLC
#
# Authors:
# - Alex Forencich
#

# XDC constraints for the BittWare XUSP3S board
# part: xcvu095-ffvb2104-2-e

# 100 MHz DDR4 SODIMM 2 clock from Si5338 A ch 3
set_property -dict {LOC K18  IOSTANDARD DIFF_SSTL12_DCI ODT RTT_48} [get_ports clk_ddr_sodimm2_p]
set_property -dict {LOC J18  IOSTANDARD DIFF_SSTL12_DCI ODT RTT_48} [get_ports clk_ddr_sodimm2_n]
create_clock -period 10.000 -name clk_ddr_sodimm2 [get_ports clk_ddr_sodimm2_p]

# DDR4 SODIMM 2 (J10)
set_property -dict {LOC F20  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[0]}]
set_property -dict {LOC F19  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[1]}]
set_property -dict {LOC E21  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[2]}]
set_property -dict {LOC E20  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[3]}]
set_property -dict {LOC F18  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[4]}]
set_property -dict {LOC F17  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[5]}]
set_property -dict {LOC G21  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[6]}]
set_property -dict {LOC D19  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[7]}]
set_property -dict {LOC C19  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[8]}]
set_property -dict {LOC D21  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[9]}]
set_property -dict {LOC D20  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[10]}]
set_property -dict {LOC C21  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[11]}]
set_property -dict {LOC B21  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[12]}]
set_property -dict {LOC B19  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[13]}]
set_property -dict {LOC A19  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[14]}]
set_property -dict {LOC B20  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[15]}]
set_property -dict {LOC A20  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_adr[16]}]
set_property -dict {LOC H19  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_ba[0]}]
set_property -dict {LOC H18  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_ba[1]}]
set_property -dict {LOC G20  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_bg[0]}]
set_property -dict {LOC G19  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_bg[1]}]
set_property -dict {LOC E18  IOSTANDARD DIFF_SSTL12_DCI } [get_ports {ddr4_sodimm2_ck_t[0]}]
set_property -dict {LOC E17  IOSTANDARD DIFF_SSTL12_DCI } [get_ports {ddr4_sodimm2_ck_c[0]}]
set_property -dict {LOC C18  IOSTANDARD DIFF_SSTL12_DCI } [get_ports {ddr4_sodimm2_ck_t[1]}]
set_property -dict {LOC D18  IOSTANDARD DIFF_SSTL12_DCI } [get_ports {ddr4_sodimm2_ck_c[1]}]
set_property -dict {LOC K20  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_cke[0]}]
set_property -dict {LOC J21  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_cke[1]}]
set_property -dict {LOC L18  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_cs_n[0]}]
set_property -dict {LOC L20  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_cs_n[1]}]
set_property -dict {LOC A18  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_cs_n[2]}]
set_property -dict {LOC L17  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_cs_n[3]}]
set_property -dict {LOC K21  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_act_n}]
set_property -dict {LOC H21  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_odt[0]}]
set_property -dict {LOC J20  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_odt[1]}]
set_property -dict {LOC J19  IOSTANDARD SSTL12_DCI      } [get_ports {ddr4_sodimm2_par}]
set_property -dict {LOC K17  IOSTANDARD LVCMOS12 DRIVE 8} [get_ports {ddr4_sodimm2_reset_n}]
set_property -dict {LOC L19  IOSTANDARD LVCMOS12        } [get_ports {ddr4_sodimm2_alert_n}]

set_property -dict {LOC A25  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[0]}]
set_property -dict {LOC B25  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[1]}]
set_property -dict {LOC A24  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[2]}]
set_property -dict {LOC B24  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[3]}]
set_property -dict {LOC B26  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[4]}]
set_property -dict {LOC C26  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[5]}]
set_property -dict {LOC C23  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[6]}]
set_property -dict {LOC C24  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[7]}]
set_property -dict {LOC D25  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[8]}]
set_property -dict {LOC E25  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[9]}]
set_property -dict {LOC D23  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[10]}]
set_property -dict {LOC D24  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[11]}]
set_property -dict {LOC F22  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[12]}]
set_property -dict {LOC G22  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[13]}]
set_property -dict {LOC F23  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[14]}]
set_property -dict {LOC F24  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[15]}]
set_property -dict {LOC H24  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[16]}]
set_property -dict {LOC J24  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[17]}]
set_property -dict {LOC H23  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[18]}]
set_property -dict {LOC J23  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[19]}]
set_property -dict {LOC K23  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[20]}]
set_property -dict {LOC L23  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[21]}]
set_property -dict {LOC K22  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[22]}]
set_property -dict {LOC L22  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[23]}]
set_property -dict {LOC P25  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[24]}]
set_property -dict {LOC R25  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[25]}]
set_property -dict {LOC M24  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[26]}]
set_property -dict {LOC M25  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[27]}]
set_property -dict {LOC N23  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[28]}]
set_property -dict {LOC P23  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[29]}]
set_property -dict {LOC M22  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[30]}]
set_property -dict {LOC N22  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[31]}]
set_property -dict {LOC A17  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[32]}]
set_property -dict {LOC B17  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[33]}]
set_property -dict {LOC B16  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[34]}]
set_property -dict {LOC C16  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[35]}]
set_property -dict {LOC A13  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[36]}]
set_property -dict {LOC A14  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[37]}]
set_property -dict {LOC B14  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[38]}]
set_property -dict {LOC C14  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[39]}]
set_property -dict {LOC D16  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[40]}]
set_property -dict {LOC E16  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[41]}]
set_property -dict {LOC D15  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[42]}]
set_property -dict {LOC E15  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[43]}]
set_property -dict {LOC E13  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[44]}]
set_property -dict {LOC F13  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[45]}]
set_property -dict {LOC F15  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[46]}]
set_property -dict {LOC G15  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[47]}]
set_property -dict {LOC J15  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[48]}]
set_property -dict {LOC J16  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[49]}]
set_property -dict {LOC H14  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[50]}]
set_property -dict {LOC J14  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[51]}]
set_property -dict {LOC H13  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[52]}]
set_property -dict {LOC J13  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[53]}]
set_property -dict {LOC K15  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[54]}]
set_property -dict {LOC K16  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[55]}]
set_property -dict {LOC M16  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[56]}]
set_property -dict {LOC N16  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[57]}]
set_property -dict {LOC L14  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[58]}]
set_property -dict {LOC M14  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[59]}]
set_property -dict {LOC P15  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[60]}]
set_property -dict {LOC R15  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[61]}]
set_property -dict {LOC N14  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[62]}]
set_property -dict {LOC P14  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[63]}]
set_property -dict {LOC M21  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[64]}]
set_property -dict {LOC N21  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[65]}]
set_property -dict {LOC P20  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[66]}]
set_property -dict {LOC R20  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[67]}]
set_property -dict {LOC M19  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[68]}]
set_property -dict {LOC M20  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[69]}]
set_property -dict {LOC N18  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[70]}]
set_property -dict {LOC P18  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dq[71]}]
set_property -dict {LOC A23  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_t[0]}]
set_property -dict {LOC A22  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_c[0]}]
set_property -dict {LOC E23  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_t[1]}]
set_property -dict {LOC E22  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_c[1]}]
set_property -dict {LOC K25  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_t[2]}]
set_property -dict {LOC J25  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_c[2]}]
set_property -dict {LOC P24  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_t[3]}]
set_property -dict {LOC N24  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_c[3]}]
set_property -dict {LOC B15  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_t[4]}]
set_property -dict {LOC A15  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_c[4]}]
set_property -dict {LOC G17  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_t[5]}]
set_property -dict {LOC G16  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_c[5]}]
set_property -dict {LOC H17  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_t[6]}]
set_property -dict {LOC H16  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_c[6]}]
set_property -dict {LOC R16  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_t[7]}]
set_property -dict {LOC P16  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_c[7]}]
set_property -dict {LOC P19  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_t[8]}]
set_property -dict {LOC N19  IOSTANDARD DIFF_POD12_DCI  } [get_ports {ddr4_sodimm2_dqs_c[8]}]
set_property -dict {LOC C22  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dm_dbi_n[0]}]
set_property -dict {LOC G25  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dm_dbi_n[1]}]
set_property -dict {LOC L25  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dm_dbi_n[2]}]
set_property -dict {LOC R21  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dm_dbi_n[3]}]
set_property -dict {LOC D13  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dm_dbi_n[4]}]
set_property -dict {LOC G14  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dm_dbi_n[5]}]
set_property -dict {LOC L13  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dm_dbi_n[6]}]
set_property -dict {LOC P13  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dm_dbi_n[7]}]
set_property -dict {LOC N17  IOSTANDARD POD12_DCI       } [get_ports {ddr4_sodimm2_dm_dbi_n[8]}]
