-
Notifications
You must be signed in to change notification settings - Fork 50
/
zedboard.xdc
167 lines (157 loc) · 11.1 KB
/
zedboard.xdc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# Enable internal termination resistor on LVDS 125MHz ref_clk
set_property DIFF_TERM TRUE [get_ports ref_clk_clk_p]
set_property DIFF_TERM TRUE [get_ports ref_clk_clk_n]
# Define I/O standards
set_property IOSTANDARD LVCMOS25 [get_ports mdio_io_port_3_mdc]
set_property IOSTANDARD LVCMOS25 [get_ports mdio_io_port_3_mdio_io]
set_property IOSTANDARD LVCMOS25 [get_ports reset_port_2]
set_property IOSTANDARD LVCMOS25 [get_ports reset_port_0]
set_property IOSTANDARD LVCMOS25 [get_ports reset_port_1]
set_property IOSTANDARD LVCMOS25 [get_ports reset_port_3]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_0_rd[3]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_0_rd[2]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_0_rd[1]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_0_rd[0]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_0_td[3]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_0_td[2]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_0_td[1]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_0_td[0]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_1_rd[3]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_1_rd[2]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_1_rd[1]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_1_rd[0]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_1_td[3]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_1_td[2]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_1_td[1]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_1_td[0]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_2_rd[3]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_2_rd[2]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_2_rd[1]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_2_rd[0]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_2_td[3]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_2_td[2]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_2_td[1]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_2_td[0]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_3_rd[3]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_3_rd[2]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_3_rd[1]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_3_rd[0]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_3_td[3]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_3_td[2]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_3_td[1]}]
set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_port_3_td[0]}]
set_property IOSTANDARD LVCMOS25 [get_ports mdio_io_port_0_mdio_io]
set_property IOSTANDARD LVCMOS25 [get_ports mdio_io_port_0_mdc]
set_property IOSTANDARD LVCMOS25 [get_ports mdio_io_port_1_mdio_io]
set_property IOSTANDARD LVCMOS25 [get_ports mdio_io_port_1_mdc]
set_property IOSTANDARD LVCMOS25 [get_ports mdio_io_port_2_mdio_io]
set_property IOSTANDARD LVCMOS25 [get_ports mdio_io_port_2_mdc]
set_property IOSTANDARD LVCMOS25 [get_ports rgmii_port_0_rx_ctl]
set_property IOSTANDARD LVCMOS25 [get_ports rgmii_port_0_rxc]
set_property IOSTANDARD LVCMOS25 [get_ports rgmii_port_0_tx_ctl]
set_property IOSTANDARD LVCMOS25 [get_ports rgmii_port_0_txc]
set_property IOSTANDARD LVCMOS25 [get_ports rgmii_port_1_rx_ctl]
set_property IOSTANDARD LVCMOS25 [get_ports rgmii_port_1_rxc]
set_property IOSTANDARD LVCMOS25 [get_ports rgmii_port_1_tx_ctl]
set_property IOSTANDARD LVCMOS25 [get_ports rgmii_port_1_txc]
set_property IOSTANDARD LVCMOS25 [get_ports rgmii_port_2_rx_ctl]
set_property IOSTANDARD LVCMOS25 [get_ports rgmii_port_2_rxc]
set_property IOSTANDARD LVCMOS25 [get_ports rgmii_port_2_tx_ctl]
set_property IOSTANDARD LVCMOS25 [get_ports rgmii_port_2_txc]
set_property IOSTANDARD LVCMOS25 [get_ports rgmii_port_3_rx_ctl]
set_property IOSTANDARD LVCMOS25 [get_ports rgmii_port_3_tx_ctl]
set_property IOSTANDARD LVCMOS25 [get_ports rgmii_port_3_rxc]
set_property IOSTANDARD LVCMOS25 [get_ports rgmii_port_3_txc]
set_property IOSTANDARD LVDS_25 [get_ports ref_clk_clk_p]
set_property IOSTANDARD LVDS_25 [get_ports ref_clk_clk_n]
set_property IOSTANDARD LVCMOS25 [get_ports {ref_clk_oe[0]}]
set_property IOSTANDARD LVCMOS25 [get_ports {ref_clk_fsel[0]}]
set_property PACKAGE_PIN L21 [get_ports {rgmii_port_1_rd[0]}]
set_property PACKAGE_PIN L22 [get_ports mdio_io_port_0_mdio_io]
set_property PACKAGE_PIN T19 [get_ports {rgmii_port_1_rd[2]}]
set_property PACKAGE_PIN K20 [get_ports mdio_io_port_1_mdio_io]
set_property PACKAGE_PIN D20 [get_ports rgmii_port_3_rxc]
set_property PACKAGE_PIN C20 [get_ports rgmii_port_3_rx_ctl]
set_property PACKAGE_PIN E21 [get_ports {rgmii_port_3_rd[1]}]
set_property PACKAGE_PIN D21 [get_ports {rgmii_port_3_rd[3]}]
set_property PACKAGE_PIN N19 [get_ports rgmii_port_1_rxc]
set_property PACKAGE_PIN N20 [get_ports rgmii_port_1_rx_ctl]
set_property PACKAGE_PIN J18 [get_ports mdio_io_port_0_mdc]
set_property PACKAGE_PIN K18 [get_ports reset_port_0]
set_property PACKAGE_PIN R20 [get_ports {rgmii_port_1_rd[1]}]
set_property PACKAGE_PIN R21 [get_ports {rgmii_port_1_rd[3]}]
set_property PACKAGE_PIN M17 [get_ports mdio_io_port_1_mdc]
set_property PACKAGE_PIN B19 [get_ports rgmii_port_2_rxc]
set_property PACKAGE_PIN E15 [get_ports {rgmii_port_2_rd[2]}]
set_property PACKAGE_PIN D15 [get_ports {rgmii_port_2_rd[3]}]
set_property PACKAGE_PIN F18 [get_ports {rgmii_port_3_rd[0]}]
set_property PACKAGE_PIN E18 [get_ports {rgmii_port_3_rd[2]}]
set_property PACKAGE_PIN M19 [get_ports rgmii_port_0_rxc]
set_property PACKAGE_PIN M20 [get_ports rgmii_port_0_rx_ctl]
set_property PACKAGE_PIN N22 [get_ports {rgmii_port_0_rd[2]}]
set_property PACKAGE_PIN P22 [get_ports {rgmii_port_0_rd[3]}]
set_property PACKAGE_PIN J21 [get_ports {rgmii_port_0_td[1]}]
set_property PACKAGE_PIN J22 [get_ports {rgmii_port_0_td[2]}]
set_property PACKAGE_PIN P21 [get_ports {rgmii_port_1_td[0]}]
set_property PACKAGE_PIN J20 [get_ports {rgmii_port_1_td[2]}]
set_property PACKAGE_PIN K21 [get_ports {rgmii_port_1_td[3]}]
set_property PACKAGE_PIN G20 [get_ports rgmii_port_2_rx_ctl]
set_property PACKAGE_PIN G21 [get_ports {rgmii_port_2_rd[0]}]
set_property PACKAGE_PIN G19 [get_ports {rgmii_port_2_td[1]}]
set_property PACKAGE_PIN F19 [get_ports {rgmii_port_2_td[2]}]
set_property PACKAGE_PIN D22 [get_ports rgmii_port_2_tx_ctl]
set_property PACKAGE_PIN C22 [get_ports mdio_io_port_2_mdio_io]
set_property PACKAGE_PIN C18 [get_ports {rgmii_port_3_td[0]}]
set_property PACKAGE_PIN B16 [get_ports {rgmii_port_3_td[2]}]
set_property PACKAGE_PIN B17 [get_ports {rgmii_port_3_td[3]}]
set_property PACKAGE_PIN P17 [get_ports {rgmii_port_0_rd[0]}]
set_property PACKAGE_PIN P18 [get_ports {rgmii_port_0_rd[1]}]
set_property PACKAGE_PIN M21 [get_ports {rgmii_port_0_td[0]}]
set_property PACKAGE_PIN M22 [get_ports rgmii_port_0_txc]
set_property PACKAGE_PIN T16 [get_ports {rgmii_port_0_td[3]}]
set_property PACKAGE_PIN T17 [get_ports rgmii_port_0_tx_ctl]
set_property PACKAGE_PIN N17 [get_ports {rgmii_port_1_td[1]}]
set_property PACKAGE_PIN N18 [get_ports rgmii_port_1_txc]
set_property PACKAGE_PIN J16 [get_ports rgmii_port_1_tx_ctl]
set_property PACKAGE_PIN J17 [get_ports reset_port_1]
set_property PACKAGE_PIN G15 [get_ports {rgmii_port_2_rd[1]}]
set_property PACKAGE_PIN G16 [get_ports {rgmii_port_2_td[0]}]
set_property PACKAGE_PIN E19 [get_ports rgmii_port_2_txc]
set_property PACKAGE_PIN E20 [get_ports {rgmii_port_2_td[3]}]
set_property PACKAGE_PIN A18 [get_ports mdio_io_port_2_mdc]
set_property PACKAGE_PIN A19 [get_ports reset_port_2]
set_property PACKAGE_PIN A16 [get_ports {rgmii_port_3_td[1]}]
set_property PACKAGE_PIN A17 [get_ports rgmii_port_3_txc]
set_property PACKAGE_PIN C15 [get_ports rgmii_port_3_tx_ctl]
set_property PACKAGE_PIN B15 [get_ports mdio_io_port_3_mdc]
set_property PACKAGE_PIN A21 [get_ports mdio_io_port_3_mdio_io]
set_property PACKAGE_PIN L19 [get_ports ref_clk_clk_n]
set_property PACKAGE_PIN L17 [get_ports {ref_clk_oe[0]}]
set_property PACKAGE_PIN K19 [get_ports {ref_clk_fsel[0]}]
set_property PACKAGE_PIN A22 [get_ports reset_port_3]
set_property IODELAY_GROUP tri_mode_ethernet_mac_iodelay_grp1 [get_cells -hier -filter {name =~ *_i/gmii_to_rgmii_0/U0/*_gmii_to_rgmii_0_0_core/*delay_rgmii_rxd* }]
set_property IDELAY_VALUE 16 [get_cells -hier -filter {name =~ *_i/gmii_to_rgmii_0/U0/*_gmii_to_rgmii_0_0_core/*delay_rgmii_rxd*}]
create_clock -period 8.000 -name rgmii_port_3_rx_clk -waveform {0.000 4.000} [get_ports rgmii_port_3_rxc]
set_property IODELAY_GROUP tri_mode_ethernet_mac_iodelay_grp0 [get_cells {*_i/axi_ethernet_0/inst/mac/inst/tri_mode_ethernet_mac_i/rgmii_interface/delay_rgmii_rx* *_i/axi_ethernet_0/inst/mac/inst/tri_mode_ethernet_mac_i/rgmii_interface/rxdata_bus[*].delay_rgmii_rx*}]
set_property IODELAY_GROUP tri_mode_ethernet_mac_iodelay_grp0 [get_cells {*_i/axi_ethernet_1/inst/mac/inst/rgmii_interface/delay_rgmii_rx* *_i/axi_ethernet_1/inst/mac/inst/rgmii_interface/rxdata_bus[*].delay_rgmii_rx*}]
set_property IODELAY_GROUP tri_mode_ethernet_mac_iodelay_grp1 [get_cells {*_i/axi_ethernet_2/inst/mac/inst/rgmii_interface/delay_rgmii_rx* *_i/axi_ethernet_2/inst/mac/inst/rgmii_interface/rxdata_bus[*].delay_rgmii_rx*}]
set_property IODELAY_GROUP tri_mode_ethernet_mac_iodelay_grp1 [get_cells *_i/gmii_to_rgmii_0/U0/i_gmii_to_rgmii_block/*_gmii_to_rgmii_0_0_core/i_gmii_to_rgmii/i_gmii_to_rgmii/gen_rgmii_rx_zq.delay_rgmii_rx_ctl]
set_property IDELAY_VALUE 16 [get_cells *_i/gmii_to_rgmii_0/U0/i_gmii_to_rgmii_block/*_gmii_to_rgmii_0_0_core/i_gmii_to_rgmii/i_gmii_to_rgmii/gen_rgmii_rx_zq.delay_rgmii_rx_ctl]
set_property IODELAY_GROUP tri_mode_ethernet_mac_iodelay_grp0 [get_cells *_i/axi_ethernet_0/inst/mac/inst/tri_mode_ethernet_mac_idelayctrl_common_i]
# IODELAY group for GMII-to-RGMII block
set_property IODELAY_GROUP tri_mode_ethernet_mac_iodelay_grp1 [get_cells *_i/gmii_to_rgmii_0/U0/i_*_gmii_to_rgmii_0_0_idelayctrl]
create_clock -period 8.000 -name ref_clk_clk_p -waveform {0.000 4.000} [get_ports ref_clk_clk_p]
#False path constraints to async inputs coming directly to synchronizer
set_false_path -to [get_pins -hier -filter {name =~ *idelayctrl_reset_gen/*reset_sync*/PRE }]
set_false_path -to [get_pins -of [get_cells -hier -filter { name =~ *i_MANAGEMENT/SYNC_*/data_sync* }] -filter { name =~ *D }]
set_false_path -to [get_pins -hier -filter {name =~ *reset_sync*/PRE }]
#False path constraints from Control Register outputs
set_false_path -from [get_pins -hier -filter {name =~ *i_MANAGEMENT/DUPLEX_MODE_REG*/C }]
set_false_path -from [get_pins -hier -filter {name =~ *i_MANAGEMENT/SPEED_SELECTION_REG*/C }]
set_case_analysis 0 [get_pins -hier -filter {name =~ *i_bufgmux_gmii_clk_25m_2_5m/CE0}]
set_case_analysis 0 [get_pins -hier -filter {name =~ *i_bufgmux_gmii_clk_25m_2_5m/S0}]
set_case_analysis 1 [get_pins -hier -filter {name =~ *i_bufgmux_gmii_clk_25m_2_5m/CE1}]
set_case_analysis 1 [get_pins -hier -filter {name =~ *i_bufgmux_gmii_clk_25m_2_5m/S1}]
# Rename the gmii_to_rgmii_0_gmii_clk_125m_out clock to gmii_clk_125m_out so that the in-built constraints will find it
# Based on AR57197: http://www.xilinx.com/support/answers/57197.html
create_clock -period 8.000 -name gmii_clk_125m_out [get_pins *_i/gmii_to_rgmii_0/U0/i_*_gmii_to_rgmii_0_0_clocking/mmcm_adv_inst/CLKOUT0]