# Input clock periods. These duplicate the values entered for the
#  input clocks. You can use these to time your system
#----------------------------------------------------------------
# ignore relative timing between the 60MHz USB reference clock and the processing clock CLK_P
NET "USB_CLK60G" TNM_NET = "TNM_NET_USB_CLK60G";	# all synchronous elements after BUFG
NET "CLK_P" TNM_NET = "TNM_NET_CLK_P";	# all synchronous elements after BUFG
TIMESPEC "TS_USB_CLK60G" = PERIOD "TNM_NET_USB_CLK60G" 16.666 ns HIGH 50%;
TIMESPEC "TS_CLK_P" = PERIOD "TNM_NET_CLK_P" 12 ns HIGH 50%;
TIMESPEC TS_TIG1 = FROM "TNM_NET_USB_CLK60G" TO "TNM_NET_CLK_P" TIG;
TIMESPEC TS_TIG2 = FROM "TNM_NET_CLK_P" TO "TNM_NET_USB_CLK60G" TIG;

############################################################################
#----------------------------------- USB 20 --------------------------------
############################################################################
NET  "USB_ULPI_DATA<0>"                     		LOC = "T7" ;
NET  "USB_ULPI_DATA<1>"                   		LOC = "R7" ;
NET  "USB_ULPI_DATA<2>"                    		LOC = "V4" ;
NET  "USB_ULPI_DATA<3>"                    		LOC = "T4" ;
NET  "USB_ULPI_DATA<4>"                    		LOC = "P6" ;
NET  "USB_ULPI_DATA<5>"                    		LOC = "N5" ;
NET  "USB_ULPI_DATA<6>"                    		LOC = "V3" ;
NET  "USB_ULPI_DATA<7>"                    		LOC = "P12" ;
NET  "USB_ULPI_STP"                         		LOC = "B2" ;
NET  "USB_ULPI_NXT"                        		LOC = "C4" ;
NET  "USB_ULPI_DIR"                        		LOC = "A2" ;
NET  "USB_CLK60"                        			LOC = "T9" ;
INST "USB_ULPI_DATA<0>" TNM = USB_ULPI_OUT;
INST "USB_ULPI_DATA<1>" TNM = USB_ULPI_OUT;
INST "USB_ULPI_DATA<2>" TNM = USB_ULPI_OUT;
INST "USB_ULPI_DATA<3>" TNM = USB_ULPI_OUT;
INST "USB_ULPI_DATA<4>" TNM = USB_ULPI_OUT;
INST "USB_ULPI_DATA<5>" TNM = USB_ULPI_OUT;
INST "USB_ULPI_DATA<6>" TNM = USB_ULPI_OUT;
INST "USB_ULPI_DATA<7>" TNM = USB_ULPI_OUT;
INST "USB_ULPI_STP" TNM = USB_ULPI_OUT;
TIMEGRP "USB_ULPI_OUT" OFFSET = OUT 8.5 ns AFTER USB_CLK60;
INST "USB_ULPI_DATA<0>" TNM = USB_ULPI_IN;
INST "USB_ULPI_DATA<1>" TNM = USB_ULPI_IN;
INST "USB_ULPI_DATA<2>" TNM = USB_ULPI_IN;
INST "USB_ULPI_DATA<3>" TNM = USB_ULPI_IN;
INST "USB_ULPI_DATA<4>" TNM = USB_ULPI_IN;
INST "USB_ULPI_DATA<5>" TNM = USB_ULPI_IN;
INST "USB_ULPI_DATA<6>" TNM = USB_ULPI_IN;
INST "USB_ULPI_DATA<7>" TNM = USB_ULPI_IN;
INST "USB_ULPI_NXT" TNM = USB_ULPI_IN;
INST "USB_ULPI_DIR" TNM = USB_ULPI_IN;
TIMEGRP "USB_ULPI_IN" OFFSET = IN 13.666 ns BEFORE USB_CLK60;  #3ns at ULPI PHY output, period 16.6ns
