OpenCores
URL https://opencores.org/ocsvn/genesys_ddr2/genesys_ddr2/trunk

Subversion Repositories genesys_ddr2

[/] [genesys_ddr2/] [trunk/] [par/] [test_DDR2_wb.ucf] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 oana.bonca
############################################################################
2
##
3
##  Xilinx, Inc. 2006            www.xilinx.com
4
##  Sat Nov 24 16:04:29 2012
5
##  Generated by MIG Version 3.6.1
6
##
7
############################################################################
8
##  File name :       mem_controller.ucf
9
##
10
##  Details :     Constraints file
11
##                    FPGA family:       virtex5
12
##                    FPGA:              xc5vlx50t-ff1136
13
##                    Speedgrade:        -3
14
##                    Design Entry:      VERILOG
15
##                    Design:            with Test bench
16
##                    DCM Used:          Disable
17
##                    Two Bytes per Bank:Disable
18
##                    No.Of Controllers: 1
19
##
20
############################################################################
21
############################################################################
22
# Clock constraints                                                        #
23
############################################################################
24
 
25
#NET "clk0" TNM_NET = "SYS_clk0";
26
#TIMESPEC "TS_SYS_clk0" = PERIOD "SYS_clk0" 8 ns HIGH 50 %;
27
#
28
#NET "clk90" TNM_NET = "SYS_clk90";
29
#TIMESPEC "TS_SYS_clk90" = PERIOD "SYS_clk90" "TS_SYS_clk0" PHASE 2 ns HIGH 50 %;
30
#
31
#NET "clkdiv0" TNM_NET = "SYS_clkdiv0";
32
#TIMESPEC "TS_SYS_clkdiv0" = PERIOD "SYS_clkdiv0" "TS_SYS_clk0" * 2 HIGH 50 %;
33
#
34
#NET "clk200" TNM_NET = "SYS_clk200";
35
#TIMESPEC "TS_SYS_clk200" = PERIOD "SYS_clk200" 5 ns HIGH 50 %;
36
 
37
########################################################################
38
# Controller 0
39
# Memory Device: DDR2_SDRAM->SODIMMs->MT4HTF3264HY-667
40
# Data Width:     64
41
# Frequency:      125
42
# Time Period:      8000
43
# Data Mask:     1
44
########################################################################
45
 
46
 
47
################################################################################
48
# I/O STANDARDS
49
################################################################################
50
 
51
NET  "ddr2_dq[*]"                               IOSTANDARD = SSTL18_II_DCI;
52
NET  "ddr2_a[*]"                                IOSTANDARD = SSTL18_II;
53
NET  "ddr2_ba[*]"                               IOSTANDARD = SSTL18_II;
54
NET  "ddr2_ras_n"                               IOSTANDARD = SSTL18_II;
55
NET  "ddr2_cas_n"                               IOSTANDARD = SSTL18_II;
56
NET  "ddr2_we_n"                                IOSTANDARD = SSTL18_II;
57
NET  "ddr2_cs_n[*]"                             IOSTANDARD = SSTL18_II;
58
NET  "ddr2_odt[*]"                              IOSTANDARD = SSTL18_II;
59
NET  "ddr2_cke[*]"                              IOSTANDARD = SSTL18_II;
60
NET  "ddr2_dm[*]"                               IOSTANDARD = SSTL18_II_DCI;
61
#NET  "sys_rst_n"                                IOSTANDARD = LVCMOS18;
62
#NET  "phy_init_done"                            IOSTANDARD = LVCMOS18;
63
#NET  "error"                                    IOSTANDARD = LVCMOS18;
64
NET  "ddr2_dqs[*]"                              IOSTANDARD = DIFF_SSTL18_II_DCI;
65
NET  "ddr2_dqs_n[*]"                            IOSTANDARD = DIFF_SSTL18_II_DCI;
66
NET  "ddr2_ck[*]"                               IOSTANDARD = DIFF_SSTL18_II;
67
NET  "ddr2_ck_n[*]"                             IOSTANDARD = DIFF_SSTL18_II;
68
 
69
################################################################################
70
# Location Constraints
71
################################################################################
72
 
73
NET  "sysClk"                                 LOC = "AG18" ;          #Bank 12
74
NET  "sysRst"                                 LOC = "G7" ;          #Bank 22
75
 
76
#NET  "sw[0]"                                  LOC = "L19" ;          #Bank 22
77
#NET  "sw[1]"                                  LOC = "L18" ;          #Bank 22
78
#NET  "sw[2]"                                  LOC = "K18" ;          #Bank 22
79
#NET  "sw[3]"                                  LOC = "H18" ;          #Bank 22
80
#NET  "sw[4]"                                  LOC = "H17" ;          #Bank 22
81
#NET  "sw[5]"                                  LOC = "k17" ;          #Bank 22
82
#NET  "sw[6]"                                  LOC = "G16" ;          #Bank 22
83
#NET  "sw[7]"                                  LOC = "G15" ;          #Bank 22
84
 
85
#NET  "leds[0]"                                LOC = "AG8" ;          #Bank 22
86
#NET  "leds[1]"                                LOC = "AH8" ;          #Bank 22
87
#NET  "leds[2]"                                LOC = "AH9" ;          #Bank 22
88
#NET  "leds[3]"                                LOC = "AG10" ;          #Bank 22
89
#NET  "leds[4]"                                LOC = "AH10" ;          #Bank 22
90
#NET  "leds[5]"                                LOC = "AG11" ;          #Bank 22
91
#NET  "leds[6]"                                LOC = "AF11" ;          #Bank 22
92
#NET  "leds[7]"                                LOC = "AE11" ;          #Bank 22
93
 
94
NET  "ddr2_dq[0]"                                LOC = "AF30" ;          #Bank 17
95
NET  "ddr2_dq[1]"                                LOC = "AK31" ;          #Bank 17
96
NET  "ddr2_dq[2]"                                LOC = "AF31" ;          #Bank 17
97
NET  "ddr2_dq[3]"                                LOC = "AD30" ;          #Bank 17
98
NET  "ddr2_dq[4]"                                LOC = "AJ30" ;          #Bank 17
99
NET  "ddr2_dq[5]"                                LOC = "AF29" ;          #Bank 17
100
NET  "ddr2_dq[6]"                                LOC = "AD29" ;          #Bank 17
101
NET  "ddr2_dq[7]"                                LOC = "AE29" ;          #Bank 17
102
NET  "ddr2_dq[8]"                                LOC = "AH27" ;          #Bank 21
103
NET  "ddr2_dq[9]"                                LOC = "AF28" ;          #Bank 21
104
NET  "ddr2_dq[10]"                               LOC = "AH28" ;          #Bank 21
105
NET  "ddr2_dq[11]"                               LOC = "AA28" ;          #Bank 21
106
NET  "ddr2_dq[12]"                               LOC = "AG25" ;          #Bank 21
107
NET  "ddr2_dq[13]"                               LOC = "AJ26" ;          #Bank 21
108
NET  "ddr2_dq[14]"                               LOC = "AG28" ;          #Bank 21
109
NET  "ddr2_dq[15]"                               LOC = "AB28" ;          #Bank 21
110
NET  "ddr2_dq[16]"                               LOC = "AC28" ;          #Bank 21
111
NET  "ddr2_dq[17]"                               LOC = "AB25" ;          #Bank 21
112
NET  "ddr2_dq[18]"                               LOC = "AC27" ;          #Bank 21
113
NET  "ddr2_dq[19]"                               LOC = "AA26" ;          #Bank 21
114
NET  "ddr2_dq[20]"                               LOC = "AB26" ;          #Bank 21
115
NET  "ddr2_dq[21]"                               LOC = "AA24" ;          #Bank 21
116
NET  "ddr2_dq[22]"                               LOC = "AB27" ;          #Bank 21
117
NET  "ddr2_dq[23]"                               LOC = "AA25" ;          #Bank 21
118
NET  "ddr2_dq[24]"                               LOC = "AC29" ;          #Bank 17
119
NET  "ddr2_dq[25]"                               LOC = "AB30" ;          #Bank 17
120
NET  "ddr2_dq[26]"                               LOC = "W31" ;          #Bank 17
121
NET  "ddr2_dq[27]"                               LOC = "V30" ;          #Bank 17
122
NET  "ddr2_dq[28]"                               LOC = "AC30" ;          #Bank 17
123
NET  "ddr2_dq[29]"                               LOC = "W29" ;          #Bank 17
124
NET  "ddr2_dq[30]"                               LOC = "V27" ;          #Bank 17
125
NET  "ddr2_dq[31]"                               LOC = "W27" ;          #Bank 17
126
NET  "ddr2_dq[32]"                               LOC = "V29" ;          #Bank 17
127
NET  "ddr2_dq[33]"                               LOC = "Y27" ;          #Bank 17
128
NET  "ddr2_dq[34]"                               LOC = "Y26" ;          #Bank 17
129
NET  "ddr2_dq[35]"                               LOC = "W24" ;          #Bank 17
130
NET  "ddr2_dq[36]"                               LOC = "V28" ;          #Bank 17
131
NET  "ddr2_dq[37]"                               LOC = "W25" ;          #Bank 17
132
NET  "ddr2_dq[38]"                               LOC = "W26" ;          #Bank 17
133
NET  "ddr2_dq[39]"                               LOC = "V24" ;          #Bank 17
134
NET  "ddr2_dq[40]"                               LOC = "R24" ;          #Bank 19
135
NET  "ddr2_dq[41]"                               LOC = "P25" ;          #Bank 19
136
NET  "ddr2_dq[42]"                               LOC = "N24" ;          #Bank 19
137
NET  "ddr2_dq[43]"                               LOC = "P26" ;          #Bank 19
138
NET  "ddr2_dq[44]"                               LOC = "T24" ;          #Bank 19
139
NET  "ddr2_dq[45]"                               LOC = "N25" ;          #Bank 19
140
NET  "ddr2_dq[46]"                               LOC = "P27" ;          #Bank 19
141
NET  "ddr2_dq[47]"                               LOC = "N28" ;          #Bank 19
142
NET  "ddr2_dq[48]"                               LOC = "M28" ;          #Bank 19
143
NET  "ddr2_dq[49]"                               LOC = "L28" ;          #Bank 19
144
NET  "ddr2_dq[50]"                               LOC = "F25" ;          #Bank 19
145
NET  "ddr2_dq[51]"                               LOC = "H25" ;          #Bank 19
146
NET  "ddr2_dq[52]"                               LOC = "K27" ;          #Bank 19
147
NET  "ddr2_dq[53]"                               LOC = "K28" ;          #Bank 19
148
NET  "ddr2_dq[54]"                               LOC = "H24" ;          #Bank 19
149
NET  "ddr2_dq[55]"                               LOC = "G26" ;          #Bank 19
150
NET  "ddr2_dq[56]"                               LOC = "G25" ;          #Bank 19
151
NET  "ddr2_dq[57]"                               LOC = "M26" ;          #Bank 19
152
NET  "ddr2_dq[58]"                               LOC = "J24" ;          #Bank 19
153
NET  "ddr2_dq[59]"                               LOC = "L26" ;          #Bank 19
154
NET  "ddr2_dq[60]"                               LOC = "J27" ;          #Bank 19
155
NET  "ddr2_dq[61]"                               LOC = "M25" ;          #Bank 19
156
NET  "ddr2_dq[62]"                               LOC = "L25" ;          #Bank 19
157
NET  "ddr2_dq[63]"                               LOC = "L24" ;          #Bank 19
158
NET  "ddr2_a[12]"                                LOC = "T31" ;          #Bank 15
159
NET  "ddr2_a[11]"                                LOC = "R29" ;          #Bank 15
160
NET  "ddr2_a[10]"                                LOC = "J31" ;          #Bank 15
161
NET  "ddr2_a[9]"                                 LOC = "R28" ;          #Bank 15
162
NET  "ddr2_a[8]"                                 LOC = "M31" ;          #Bank 15
163
NET  "ddr2_a[7]"                                 LOC = "P30" ;          #Bank 15
164
NET  "ddr2_a[6]"                                 LOC = "P31" ;          #Bank 15
165
NET  "ddr2_a[5]"                                 LOC = "L31" ;          #Bank 15
166
NET  "ddr2_a[4]"                                 LOC = "K31" ;          #Bank 15
167
NET  "ddr2_a[3]"                                 LOC = "P29" ;          #Bank 15
168
NET  "ddr2_a[2]"                                 LOC = "N29" ;          #Bank 15
169
NET  "ddr2_a[1]"                                 LOC = "M30" ;          #Bank 15
170
NET  "ddr2_a[0]"                                 LOC = "L30" ;          #Bank 15
171
NET  "ddr2_ba[1]"                                LOC = "J30" ;          #Bank 15
172
NET  "ddr2_ba[0]"                                LOC = "G31" ;          #Bank 15
173
NET  "ddr2_ras_n"                                LOC = "H30" ;          #Bank 15
174
NET  "ddr2_cas_n"                                LOC = "E31" ;          #Bank 15
175
 
176
NET  "ddr2_we_n"                                 LOC = "K29" ;          #Bank 15
177
NET  "ddr2_cs_n[0]"                              LOC = "L29" ;          #Bank 15
178
NET  "ddr2_odt[0]"                               LOC = "F31" ;          #Bank 15
179
NET  "ddr2_cke[0]"                               LOC = "T28" ;          #Bank 15
180
NET  "ddr2_dm[0]"                                LOC = "AJ31" ;          #Bank 17
181
NET  "ddr2_dm[1]"                                LOC = "AE28" ;          #Bank 21
182
NET  "ddr2_dm[2]"                                LOC = "Y24" ;          #Bank 21
183
NET  "ddr2_dm[3]"                                LOC = "Y31" ;          #Bank 17
184
NET  "ddr2_dm[4]"                                LOC = "V25" ;          #Bank 17
185
NET  "ddr2_dm[5]"                                LOC = "P24" ;          #Bank 19
186
NET  "ddr2_dm[6]"                                LOC = "F26" ;          #Bank 19
187
NET  "ddr2_dm[7]"                                LOC = "J25" ;          #Bank 19
188
NET  "ddr2_dqs[0]"                               LOC = "AA29" ;          #Bank 17
189
NET  "ddr2_dqs_n[0]"                             LOC = "AA30" ;          #Bank 17
190
NET  "ddr2_dqs[1]"                               LOC = "AK28" ;          #Bank 21
191
NET  "ddr2_dqs_n[1]"                             LOC = "AK27" ;          #Bank 21
192
NET  "ddr2_dqs[2]"                               LOC = "AK26" ;          #Bank 21
193
NET  "ddr2_dqs_n[2]"                             LOC = "AJ27" ;          #Bank 21
194
NET  "ddr2_dqs[3]"                               LOC = "AB31" ;          #Bank 17
195
NET  "ddr2_dqs_n[3]"                             LOC = "AA31" ;          #Bank 17
196
NET  "ddr2_dqs[4]"                               LOC = "Y28" ;          #Bank 17
197
NET  "ddr2_dqs_n[4]"                             LOC = "Y29" ;          #Bank 17
198
NET  "ddr2_dqs[5]"                               LOC = "E26" ;          #Bank 19
199
NET  "ddr2_dqs_n[5]"                             LOC = "E27" ;          #Bank 19
200
NET  "ddr2_dqs[6]"                               LOC = "H28" ;          #Bank 19
201
NET  "ddr2_dqs_n[6]"                             LOC = "G28" ;          #Bank 19
202
NET  "ddr2_dqs[7]"                               LOC = "G27" ;          #Bank 19
203
NET  "ddr2_dqs_n[7]"                             LOC = "H27" ;          #Bank 19
204
NET  "ddr2_ck[0]"                                LOC = "AK29" ;          #Bank 21
205
NET  "ddr2_ck_n[0]"                              LOC = "AJ29" ;          #Bank 21
206
NET  "ddr2_ck[1]"                                LOC = "E28" ;          #Bank 19
207
NET  "ddr2_ck_n[1]"                              LOC = "F28" ;          #Bank 19
208
 
209
 
210
#####################LEDS
211
#NET    "error"                                                                                                 LOC = "AG8";
212
#NET    "error_cmp"                                                                                             LOC = "AH8";
213
 
214
###############################################################################
215
# Define multicycle paths - these paths may take longer because additional
216
# time allowed for logic to settle in calibration/initialization FSM
217
###############################################################################
218
#
219
## MIG 2.1: Eliminate Timegroup definitions for CLK0, and CLK90. Instead trace
220
##          multicycle paths from originating flip-flop to ANY destination
221
##          flip-flop (or in some cases, it can also be a BRAM)
222
## MUX Select for either rising/falling CLK0 for 2nd stage read capture
223
#INST "*/u_phy_calib/gen_rd_data_sel*.u_ff_rd_data_sel" TNM = "TNM_RD_DATA_SEL";
224
#TIMESPEC "TS_MC_RD_DATA_SEL" = FROM "TNM_RD_DATA_SEL" TO FFS
225
#"TS_SYS_clk0" * 4;
226
## MUX select for read data - optional delay on data to account for byte skews
227
#INST "*/u_usr_rd/gen_rden_sel_mux*.u_ff_rden_sel_mux" TNM = "TNM_RDEN_SEL_MUX";
228
#TIMESPEC "TS_MC_RDEN_SEL_MUX" = FROM "TNM_RDEN_SEL_MUX" TO FFS
229
#"TS_SYS_clk0" * 4;
230
## Calibration/Initialization complete status flag (for PHY logic only) - can
231
## be used to drive both flip-flops and BRAMs
232
#INST "*/u_phy_init/u_ff_phy_init_data_sel" TNM = "TNM_PHY_INIT_DATA_SEL";
233
#TIMESPEC "TS_MC_PHY_INIT_DATA_SEL_0" = FROM "TNM_PHY_INIT_DATA_SEL" TO FFS
234
#"TS_SYS_clk0" * 4;
235
## The RAM path is only used in cases where Write Latency (Additive Latency +
236
## (CAS Latency - 1) + (1 in case of RDIMM)) is 2 or below. So these constraints are
237
## valid for CAS Latency = 3, Additive Latency = 0 and selected part is not RDIMM.
238
## If Write Latency is higher than 3, then a warning will appear in PAR,
239
## and the constraint can be ignored as this path does not exist. RAM constraint
240
## can be safely removed if the warning is not to be displayed.
241
#TIMESPEC "TS_MC_PHY_INIT_DATA_SEL_90" = FROM "TNM_PHY_INIT_DATA_SEL" TO RAMS
242
#"TS_SYS_clk0" * 4;
243
## Select (address) bits for SRL32 shift registers used in stage3/stage4
244
## calibration
245
#INST "*/u_phy_calib/gen_gate_dly*.u_ff_gate_dly" TNM = "TNM_GATE_DLY";
246
#TIMESPEC "TS_MC_GATE_DLY" = FROM "TNM_GATE_DLY" TO FFS "TS_SYS_clk0" * 4;
247
#
248
#INST "*/u_phy_calib/gen_rden_dly*.u_ff_rden_dly" TNM = "TNM_RDEN_DLY";
249
#TIMESPEC "TS_MC_RDEN_DLY" = FROM "TNM_RDEN_DLY" TO FFS "TS_SYS_clk0" * 4;
250
#
251
#INST "*/u_phy_calib/gen_cal_rden_dly*.u_ff_cal_rden_dly"
252
#  TNM = "TNM_CAL_RDEN_DLY";
253
#TIMESPEC "TS_MC_CAL_RDEN_DLY" = FROM "TNM_CAL_RDEN_DLY" TO FFS
254
#"TS_SYS_clk0" * 4;
255
################################################################################
256
##The following constraint is added to prevent (false) hold time violations on
257
##the data path from stage1 to stage2 capture flops.  Stage1 flops are clocked by
258
##the delayed DQS and stage2 flops are clocked by the clk0 clock. Placing a TIG
259
##on the DQ IDDR capture flop instance to achieve this is acceptable because timing
260
##is guaranteed through the use of separate Predictable IP constraints. These
261
##violations are reported when anunconstrained path report is run.
262
################################################################################
263
#INST "*/gen_dq[*].u_iob_dq/gen*.u_iddr_dq" TIG ;
264
################################################################################
265
## DQS Read Post amble Glitch Squelch circuit related constraints
266
################################################################################
267
#
268
################################################################################
269
## LOC placement of DQS-squelch related IDDR and IDELAY elements
270
## Each circuit can be located at any of the following locations:
271
##  1. Unused "N"-side of DQS differential pair I/O
272
##  2. DM data mask (output only, input side is free for use)
273
##  3. Any output-only site
274
################################################################################
275
#
276
################################################################################
277
##The following constraint is added to avoid the HOLD violations in the trace report
278
##when run for unconstrained paths.These two FF groups will be clocked by two different
279
## clocks and hence there should be no timing analysis performed on this path.
280
################################################################################
281
#INST "*/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_gate[*].u_en_dqs_ff" TNM = EN_DQS_FF;
282
#TIMESPEC TS_FROM_EN_DQS_FF_TO_DQ_CE_FF = FROM EN_DQS_FF TO TNM_DQ_CE_IDDR 3.85 ns DATAPATHONLY;
283
#
284
#INST "*/gen_dqs[0].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y56";
285
#INST "*/gen_dqs[0].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y56";
286
#INST "*/gen_dqs[1].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y18";
287
#INST "*/gen_dqs[1].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y18";
288
#INST "*/gen_dqs[2].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y22";
289
#INST "*/gen_dqs[2].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y22";
290
#INST "*/gen_dqs[3].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y60";
291
#INST "*/gen_dqs[3].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y60";
292
#INST "*/gen_dqs[4].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y62";
293
#INST "*/gen_dqs[4].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y62";
294
#INST "*/gen_dqs[5].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y216";
295
#INST "*/gen_dqs[5].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y216";
296
#INST "*/gen_dqs[6].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y220";
297
#INST "*/gen_dqs[6].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y220";
298
#INST "*/gen_dqs[7].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y222";
299
#INST "*/gen_dqs[7].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y222";
300
#
301
################################################################################
302
## LOC and timing constraints for flop driving DQS CE enable signal
303
## from fabric logic. Even though the absolute delay on this path is
304
## calibrated out (when synchronizing this output to DQS), the delay
305
## should still be kept as low as possible to reduce post-calibration
306
## voltage/temp variations - these are roughly proportional to the
307
## absolute delay of the path.
308
##      The following code has been commented for V5 as the predictable IP will take
309
##      care of placement of these flops by meeting the MAXDELAY requirement.
310
##      These constraints will be removed in the next release.
311
################################################################################
312
#
313
#INST "*/u_phy_calib/gen_gate[0].u_en_dqs_ff"  LOC = SLICE_X0Y28;
314
#INST "*/u_phy_calib/gen_gate[1].u_en_dqs_ff"  LOC = SLICE_X0Y9;
315
#INST "*/u_phy_calib/gen_gate[2].u_en_dqs_ff"  LOC = SLICE_X0Y11;
316
#INST "*/u_phy_calib/gen_gate[3].u_en_dqs_ff"  LOC = SLICE_X0Y30;
317
#INST "*/u_phy_calib/gen_gate[4].u_en_dqs_ff"  LOC = SLICE_X0Y31;
318
#INST "*/u_phy_calib/gen_gate[5].u_en_dqs_ff"  LOC = SLICE_X0Y108;
319
#INST "*/u_phy_calib/gen_gate[6].u_en_dqs_ff"  LOC = SLICE_X0Y110;
320
#INST "*/u_phy_calib/gen_gate[7].u_en_dqs_ff"  LOC = SLICE_X0Y111;
321
#
322
## Control for DQS gate - from fabric flop. Prevent "runaway" delay -
323
## two parts to this path: (1) from fabric flop to IDELAY, (2) from
324
## IDELAY to asynchronous reset of IDDR that drives the DQ CE's
325
## This can be relaxed by the user for lower frequencies:
326
## 300MHz = 850ps, 267MHz = 900ps. At 200MHz = 950ps.
327
## In general PAR should be able to route this
328
## within 900ps over all speed grades.
329
#NET "*/u_phy_io/en_dqs[*]" MAXDELAY = 600 ps;
330
#NET "*/u_phy_io/gen_dqs*.u_iob_dqs/en_dqs_sync" MAXDELAY = 800 ps;
331
#
332
################################################################################
333
## "Half-cycle" path constraint from IOB flip-flop to CE pin for all DQ IDDR's
334
## for DQS Read Post amble Glitch Squelch circuit
335
################################################################################
336
#
337
## Max delay from output of IOB flip-flop to CE input of DQ IDDRs =
338
##  tRPST + some slack where slack account for rise-time of DQS on board.
339
##  For now assume slack = 0.400ns (based on initial SPICE simulations,
340
##  assumes use of ODT), so time = 0.4*Tcyc + 0.40ns = 1.6ns @333MHz
341
#INST "*/gen_dqs[*].u_iob_dqs/u_iddr_dq_ce" TNM = "TNM_DQ_CE_IDDR";
342
#INST "*/gen_dq[*].u_iob_dq/gen_stg2_*.u_iddr_dq" TNM = "TNM_DQS_FLOPS";
343
#TIMESPEC "TS_DQ_CE" = FROM "TNM_DQ_CE_IDDR" TO "TNM_DQS_FLOPS" 3.6 ns;
344
#
345
#

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.