
#---------------------------------------------------------------------------------------------
# IO standards
#---------------------------------------------------------------------------------------------
NET "l2p_data[0]"  IOSTANDARD = SSTL18_I;
NET "l2p_data[1]"  IOSTANDARD = SSTL18_I;
NET "l2p_data[2]"  IOSTANDARD = SSTL18_I;
NET "l2p_data[3]"  IOSTANDARD = SSTL18_I;
NET "l2p_data[4]"  IOSTANDARD = SSTL18_I;
NET "l2p_data[5]"  IOSTANDARD = SSTL18_I;
NET "l2p_data[6]"  IOSTANDARD = SSTL18_I;
NET "l2p_data[7]"  IOSTANDARD = SSTL18_I;
NET "l2p_data[8]"  IOSTANDARD = SSTL18_I;
NET "l2p_data[9]"  IOSTANDARD = SSTL18_I;
NET "l2p_data[10]" IOSTANDARD = SSTL18_I;
NET "l2p_data[11]" IOSTANDARD = SSTL18_I;
NET "l2p_data[12]" IOSTANDARD = SSTL18_I;
NET "l2p_data[13]" IOSTANDARD = SSTL18_I;
NET "l2p_data[14]" IOSTANDARD = SSTL18_I;
NET "l2p_data[15]" IOSTANDARD = SSTL18_I;
NET "l2p_clkp"     IOSTANDARD = DIFF_SSTL18_I;
NET "l2p_clkn"     IOSTANDARD = DIFF_SSTL18_I;
NET "l2p_rdy"      IOSTANDARD = SSTL18_I;
NET "l_clkn"       IOSTANDARD = DIFF_SSTL18_I; #SSTL18_I;
NET "l_clkp"       IOSTANDARD = DIFF_SSTL18_I; #SSTL18_I;
NET "l_rst_n"      IOSTANDARD = SSTL18_I;
NET "p2l_clkp"     IOSTANDARD = DIFF_SSTL18_I;
NET "p2l_clkn"     IOSTANDARD = DIFF_SSTL18_I;
NET "p2l_data[0]"  IOSTANDARD = SSTL18_I;
NET "p2l_data[1]"  IOSTANDARD = SSTL18_I;
NET "p2l_data[2]"  IOSTANDARD = SSTL18_I;
NET "p2l_data[3]"  IOSTANDARD = SSTL18_I;
NET "p2l_data[4]"  IOSTANDARD = SSTL18_I;
NET "p2l_data[5]"  IOSTANDARD = SSTL18_I;
NET "p2l_data[6]"  IOSTANDARD = SSTL18_I;
NET "p2l_data[7]"  IOSTANDARD = SSTL18_I;
NET "p2l_data[8]"  IOSTANDARD = SSTL18_I;
NET "p2l_data[9]"  IOSTANDARD = SSTL18_I;
NET "p2l_data[10]" IOSTANDARD = SSTL18_I;
NET "p2l_data[11]" IOSTANDARD = SSTL18_I;
NET "p2l_data[12]" IOSTANDARD = SSTL18_I;
NET "p2l_data[13]" IOSTANDARD = SSTL18_I;
NET "p2l_data[14]" IOSTANDARD = SSTL18_I;
NET "p2l_data[15]" IOSTANDARD = SSTL18_I;
NET "p2l_rdy"      IOSTANDARD = SSTL18_I;
NET "l_wr_rdy[0]"    IOSTANDARD = SSTL18_I;
NET "l_wr_rdy[1]"    IOSTANDARD = SSTL18_I;
NET "p_rd_d_rdy[0]"  IOSTANDARD = SSTL18_I;
NET "p_rd_d_rdy[1]"  IOSTANDARD = SSTL18_I;
NET "l2p_dframe"   IOSTANDARD = SSTL18_I;
NET "l2p_valid"    IOSTANDARD = SSTL18_I;
NET "l2p_edb"      IOSTANDARD = SSTL18_I;
NET "p2l_dframe"   IOSTANDARD = SSTL18_I;
NET "p2l_valid"    IOSTANDARD = SSTL18_I;
NET "p_wr_rdy[0]"    IOSTANDARD = SSTL18_I;
NET "p_wr_rdy[1]"    IOSTANDARD = SSTL18_I;
NET "rx_error"     IOSTANDARD = SSTL18_I;
NET "tx_error"     IOSTANDARD = SSTL18_I;
NET "vc_rdy[0]"    IOSTANDARD = SSTL18_I;
NET "vc_rdy[1]"    IOSTANDARD = SSTL18_I;
NET "p_wr_req[0]" IOSTANDARD = SSTL18_I;
NET "p_wr_req[1]" IOSTANDARD = SSTL18_I;

NET "l_rst_n"    IOSTANDARD = "LVCMOS18";

# GPIO
NET "gpio[*]" IOSTANDARD = "LVCMOS33";

# Font panel LEDs
NET "led_red"   IOSTANDARD = "LVCMOS15";
NET "led_green"   IOSTANDARD = "LVCMOS15";

# System clock
NET "sys_clk_p" IOSTANDARD = "LVDS_33";

# User IO (eSATA connector)
NET "user_io_0_p" IOSTANDARD = "LVCMOS33";
NET "user_io_0_n" IOSTANDARD = "LVCMOS33";
NET "user_io_1_p" IOSTANDARD = "LVCMOS18";
NET "user_io_1_n" IOSTANDARD = "LVCMOS18";


#---------------------------------------------------------------------------------------------
# Local clock from GN4124
#---------------------------------------------------------------------------------------------
NET "L_CLKp" TNM_NET = "l_clkp_grp";
TIMESPEC TS_l_clkp = PERIOD "l_clkp_grp" 5 ns HIGH 50%;

#---------------------------------------------------------------------------------------------
# P2L source synchronous interface
#---------------------------------------------------------------------------------------------
# Period constraint on incomming clock
NET "P2L_CLKp" TNM_NET = "p2l_clkp_grp";
TIMESPEC TS_p2l_clkp = PERIOD "p2l_clkp_grp" 5 ns HIGH 50%;
NET "P2L_CLKn" TNM_NET = "p2l_clkn_grp";
TIMESPEC TS_p2l_clkn = PERIOD "p2l_clkn_grp" 5 ns HIGH 50%;

#---------------------------------------------------------------------------------------------
# False Path
#---------------------------------------------------------------------------------------------
NET "l_rst_n" TIG;
NET "cmp_gn4124_core/rst_*" TIG;

#---------------------------------------------------------------------------------------------
# The IO Location Constraints
#---------------------------------------------------------------------------------------------
NET "sys_clk_p" LOC = AE15;
NET "sys_clk_n" LOC = AF15;

NET "l_rst_n" LOC = P8;
NET "l_clkp" LOC = R2;
NET "l_clkn" LOC = R1;

NET "l2p_data[0]" LOC = U3;
NET "l2p_data[1]" LOC = U4;
NET "l2p_data[2]" LOC = N8;
NET "l2p_data[3]" LOC = U8;
NET "l2p_data[4]" LOC = P6;
NET "l2p_data[5]" LOC = T9;
NET "l2p_data[6]" LOC = N5;
NET "l2p_data[7]" LOC = R9;
NET "l2p_data[8]" LOC = V6;
NET "l2p_data[9]" LOC = T4;
NET "l2p_data[10]" LOC = U7;
NET "l2p_data[11]" LOC = R5;
NET "l2p_data[12]" LOC = P3;
NET "l2p_data[13]" LOC = T8;
NET "l2p_data[14]" LOC = N4;
NET "l2p_data[15]" LOC = R8;
NET "l2p_dframe" LOC = P1;
NET "l2p_valid" LOC = R3;
NET "l2p_edb" LOC = P5;
NET "l2p_clkp" LOC = P10;
NET "l2p_clkn" LOC = N9;
NET "l_wr_rdy[0]" LOC = V7;
NET "l_wr_rdy[1]" LOC = R4;
NET "p_rd_d_rdy[0]" LOC = U2;
NET "p_rd_d_rdy[1]" LOC = U5;
NET "l2p_rdy" LOC = U9;
NET "tx_error" LOC = Y6;

NET "p2l_data[0]" LOC = AA1;
NET "p2l_data[1]" LOC = AE1;
NET "p2l_data[2]" LOC = AA3;
NET "p2l_data[3]" LOC = Y1;
NET "p2l_data[4]" LOC = AC1;
NET "p2l_data[5]" LOC = AC2;
NET "p2l_data[6]" LOC = AB1;
NET "p2l_data[7]" LOC = AB3;
NET "p2l_data[8]" LOC = AD1;
NET "p2l_data[9]" LOC = AE2;
NET "p2l_data[10]" LOC = AA2;
NET "p2l_data[11]" LOC = AD3;
NET "p2l_data[12]" LOC = AA4;
NET "p2l_data[13]" LOC = AB5;
NET "p2l_data[14]" LOC = Y5;
NET "p2l_data[15]" LOC = AB4;
NET "p2l_dframe" LOC = Y3;
NET "p2l_valid" LOC = AC3;
NET "p2l_clkp" LOC = T3;
NET "p2l_clkn" LOC = T1;
NET "p_wr_req[0]" LOC = V1;
NET "p_wr_req[1]" LOC = V3;
NET "p_wr_rdy[0]" LOC = M4;
NET "p_wr_rdy[1]" LOC = N20;
NET "vc_rdy[0]" LOC = U1;
NET "vc_rdy[1]" LOC = V5;
NET "p2l_rdy" LOC = W2;
NET "rx_error" LOC = W1;

NET "gpio[0]" LOC = AA18;
NET "gpio[1]" LOC = W17;

NET "led_red" LOC = L21;
NET "led_green" LOC = L20;

NET "user_io_0_p" LOC = AE13;
NET "user_io_0_n" LOC = AF13;
NET "user_io_1_p" LOC = Y26;
NET "user_io_1_n" LOC = Y24;
