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

Subversion Repositories sgmii

[/] [sgmii/] [trunk/] [sim/] [BFMs/] [SGMII_altera/] [sgmii_constraints.tcl] - Blame information for rev 9

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 9 jefflieu
#####################################################################################
2
# Copyright (C) 1991-2009 Altera Corporation
3
# Any  megafunction  design,  and related netlist (encrypted  or  decrypted),
4
# support information,  device programming or simulation file,  and any other
5
# associated  documentation or information  provided by  Altera  or a partner
6
# under  Altera's   Megafunction   Partnership   Program  may  be  used  only
7
# to program  PLD  devices (but not masked  PLD  devices) from  Altera.   Any
8
# other  use  of such  megafunction  design,  netlist,  support  information,
9
# device programming or simulation file,  or any other  related documentation
10
# or information  is prohibited  for  any  other purpose,  including, but not
11
# limited to  modification,  reverse engineering,  de-compiling, or use  with
12
# any other  silicon devices,  unless such use is  explicitly  licensed under
13
# a separate agreement with  Altera  or a megafunction partner.  Title to the
14
# intellectual property,  including patents,  copyrights,  trademarks,  trade
15
# secrets,  or maskworks,  embodied in any such megafunction design, netlist,
16
# support  information,  device programming or simulation file,  or any other
17
# related documentation or information provided by  Altera  or a megafunction
18
# partner, remains with Altera, the megafunction partner, or their respective
19
# licensors. No other licenses, including any licenses needed under any third
20
# party's intellectual property, are provided herein.
21
#####################################################################################
22
 
23
#####################################################################################
24
# Altera Triple-Speed Ethernet Megacore TCL constraint file
25
#
26
# Generated on Sat Feb 25 11:16:45 SGT 2012
27
#
28
#####################################################################################
29
 
30
# Generated TSE variation - Do not modify
31
# General Option
32
set IS_SOPC 0
33
set VARIATION_NAME "sgmii"
34
set DEVICE_FAMILY "CYCLONEIVGX"
35
set FROM_THE_VARIATION_NAME ""
36
set TO_THE_VARIATION_NAME ""
37
 
38
# MAC Option
39
set IS_MAC 0
40
set NUMBER_OF_CHANNEL 1
41
set IS_SMALLMAC 0
42
set IS_SMALLMAC_GIGE 0
43
set IS_FIFOLESS 0
44
set IS_HALFDUPLEX 0
45
set MII_INTERFACE "MII_GMII"
46
 
47
# PCS Option
48
set IS_PCS 1
49
set IS_SGMII 1
50
 
51
# PMA Option
52
set IS_PMA 1
53
set TRANSCEIVER_TYPE 0
54
 
55
# GXB Option
56
set IS_POWERDOWN 1
57
 
58
 
59
 
60
 
61
 
62
if { [ expr ( $IS_SOPC == 1 )] } {
63
 
64
    set FROM_THE_VARIATION_NAME "_from_the_$VARIATION_NAME"
65
    set TO_THE_VARIATION_NAME "_to_the_$VARIATION_NAME"
66
 
67
} else {
68
 
69
    set FROM_THE_VARIATION_NAME ""
70
    set TO_THE_VARIATION_NAME ""
71
 
72
}
73
 
74
 
75
if { [ expr ( $IS_FIFOLESS == 0 )] } {
76
 
77
#  macPcs=
78
   if { [ expr ($IS_MAC == 1) && ($IS_PCS == 1) && ($IS_PMA == 0)] } {
79
      #Optimize I/O timing for TBI interface
80
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to tbi_rx_d${TO_THE_VARIATION_NAME}
81
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to tbi_tx_d${FROM_THE_VARIATION_NAME}
82
   }
83
 
84
# pcs=
85
   if { [ expr ($IS_MAC == 0) && ($IS_PCS == 1) && ($IS_PMA == 0)] } {
86
      #Optimize I/O timing for MII interface
87
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to m_tx_d
88
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to m_tx_en
89
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to m_tx_err
90
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to m_rx_col
91
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to m_rx_crs
92
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to m_rx_d
93
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to m_rx_en
94
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to m_rx_err
95
 
96
      #Optimize I/O timing for GMII interface
97
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to gm_tx_d
98
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to gm_tx_en
99
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to gm_tx_err
100
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to gm_rx_d
101
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to gm_rx_dv
102
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to gm_rx_err
103
 
104
      #Optimize I/O timing for TBI interface
105
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to tbi_rx_d
106
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to tbi_tx_d
107
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to tbi_rx_d
108
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to tbi_tx_d
109
      }
110
 
111
# pcsPma=
112
   if { [ expr ($IS_MAC == 0) && ($IS_PCS == 1) && ($IS_PMA == 1)] } {
113
      #Optimize I/O timing for MII interface
114
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to m_tx_d
115
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to m_tx_en
116
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to m_tx_err
117
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to m_rx_col
118
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to m_rx_crs
119
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to m_rx_d
120
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to m_rx_en
121
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to m_rx_err
122
 
123
      #Optimize I/O timing for GMII interface
124
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to gm_tx_d
125
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to gm_tx_en
126
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to gm_tx_err
127
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to gm_rx_d
128
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to gm_rx_dv
129
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to gm_rx_err
130
   }
131
 
132
 
133
# pmaTransceiver=
134
 
135
   if { [ expr ($IS_PCS == 1) && ($IS_PMA == 1)] } {
136
      if { [ expr ($TRANSCEIVER_TYPE == 0)] } {
137
         if { [string match $DEVICE_FAMILY "STRATIXIV"]} {
138
            #Optimize I/O timing for serdes interface
139
            set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to txp
140
            set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rxp
141
         } else {
142
 
143
            # pmaTransceiverStratixIV=
144
            #Optimize I/O timing for serdes interface
145
            set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to txp
146
            set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to rxp
147
         }
148
      }
149
 
150
      if { [ expr ($TRANSCEIVER_TYPE == 1)] } {
151
         # pmaLvds=
152
 
153
         #Constrain MAC PCS reference clock
154
         set_instance_assignment -name GLOBAL_SIGNAL ON -to ref_clk
155
 
156
         #Optimize I/O timing for serdes interface
157
         set_instance_assignment -name IO_STANDARD LVDS -to ref_clk
158
         set_instance_assignment -name IO_STANDARD LVDS -to txp
159
         set_instance_assignment -name IO_STANDARD LVDS -to rxp
160
      }
161
   }
162
 
163
 
164
# gmii=
165
   if { [ expr ($IS_MAC == 1) && ($IS_PCS == 0) && ($IS_PMA == 0) && ([string match $MII_INTERFACE "MII_GMII"]) ] } {
166
      #Optimize I/O timing for GMII network-side interface
167
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to gm_rx_d
168
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to gm_rx_dv
169
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to gm_rx_err
170
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to gm_tx_d
171
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to gm_tx_en
172
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to gm_tx_err
173
 
174
          #Optimize I/O timing for MII network-side interface
175
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to m_rx_col
176
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to m_rx_crs
177
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to m_rx_d
178
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to m_rx_en
179
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to m_rx_err
180
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to m_tx_d
181
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to m_tx_en
182
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to m_tx_err
183
   }
184
 
185
 
186
 
187
# rgmii=
188
   if { [ expr ($IS_MAC == 1) && ($IS_PCS == 0) && ($IS_PMA == 0) && ([string match $MII_INTERFACE "RGMII"])] } {
189
      #Optimize I/O timing for RGMII network-side interface
190
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to rx_control
191
      set_instance_assignment -name FAST_INPUT_REGISTER ON -to rgmii_in
192
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to tx_control
193
      set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to rgmii_out
194
   }
195
 
196
} else {
197
 
198
   if { [ expr ($IS_FIFOLESS == 1) && ($IS_MAC == 1) && ($IS_PCS == 0) && ($IS_PMA == 0) ] } {
199
 
200
                set_instance_assignment -name GLOBAL_SIGNAL "GLOBAL CLOCK" -to clk${TO_THE_VARIATION_NAME}
201
                set_instance_assignment -name GLOBAL_SIGNAL ON -to reset${TO_THE_VARIATION_NAME}
202
 
203
      for {set x 0} {$x < $NUMBER_OF_CHANNEL} {incr x} {
204
 
205
 
206
                if { [ expr [string match $MII_INTERFACE "MII_GMII"] ] } {
207
 
208
                        #Optimize I/O timing for MII network-side interface
209
                        if { [ expr $IS_HALFDUPLEX != 0 ] } {
210
                                set_instance_assignment -name FAST_INPUT_REGISTER ON -to m_rx_col_${x}${TO_THE_VARIATION_NAME}
211
                                set_instance_assignment -name FAST_INPUT_REGISTER ON -to m_rx_crs_${x}${TO_THE_VARIATION_NAME}
212
                        }
213
                        set_instance_assignment -name FAST_INPUT_REGISTER ON -to m_rx_d_${x}${TO_THE_VARIATION_NAME}
214
                        set_instance_assignment -name FAST_INPUT_REGISTER ON -to m_rx_en_${x}${TO_THE_VARIATION_NAME}
215
                        set_instance_assignment -name FAST_INPUT_REGISTER ON -to m_rx_err_${x}${TO_THE_VARIATION_NAME}
216
                        set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to m_tx_d_${x}${FROM_THE_VARIATION_NAME}
217
                        set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to m_tx_en_${x}${FROM_THE_VARIATION_NAME}
218
                        set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to m_tx_err_${x}${FROM_THE_VARIATION_NAME}
219
 
220
                        #Optimize I/O timing for GMII network-side interface
221
                        set_instance_assignment -name FAST_INPUT_REGISTER ON -to gm_rx_d_${x}${TO_THE_VARIATION_NAME}
222
                        set_instance_assignment -name FAST_INPUT_REGISTER ON -to gm_rx_dv_${x}${TO_THE_VARIATION_NAME}
223
                        set_instance_assignment -name FAST_INPUT_REGISTER ON -to gm_rx_err_${x}${TO_THE_VARIATION_NAME}
224
                        set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to gm_tx_d_${x}${FROM_THE_VARIATION_NAME}
225
                        set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to gm_tx_en_${x}${FROM_THE_VARIATION_NAME}
226
                        set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to gm_tx_err_${x}${FROM_THE_VARIATION_NAME}
227
 
228
                        set_instance_assignment -name GLOBAL_SIGNAL "REGIONAL CLOCK" -to rx_clk_${x}${TO_THE_VARIATION_NAME}
229
                        set_instance_assignment -name GLOBAL_SIGNAL "REGIONAL CLOCK" -to tx_clk_${x}${TO_THE_VARIATION_NAME}
230
 
231
                }
232
 
233
                if { [ expr [string match $MII_INTERFACE "RGMII"] ] } {
234
 
235
                        #Optimize I/O timing for RGMII network-side interface
236
                        set_instance_assignment -name FAST_INPUT_REGISTER ON -to rx_control_${x}${TO_THE_VARIATION_NAME}
237
                        set_instance_assignment -name FAST_INPUT_REGISTER ON -to rgmii_in_${x}${TO_THE_VARIATION_NAME}
238
                        set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to tx_control_${x}${FROM_THE_VARIATION_NAME}
239
                        set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to rgmii_out_${x}${FROM_THE_VARIATION_NAME}
240
                        set_instance_assignment -name GLOBAL_SIGNAL "REGIONAL CLOCK" -to rx_clk_${x}${TO_THE_VARIATION_NAME}
241
                        #set_instance_assignment -name GLOBAL_SIGNAL "GLOBAL CLOCK" -to tx_clk_${x}${TO_THE_VARIATION_NAME}
242
 
243
 
244
                }
245
 
246
        }
247
}
248
 
249
   if { [ expr ($IS_FIFOLESS == 1) && ($IS_MAC == 1) && ($IS_PCS == 1) && ($IS_PMA == 0) ] } {
250
                set_instance_assignment -name GLOBAL_SIGNAL "GLOBAL CLOCK" -to clk${TO_THE_VARIATION_NAME}
251
                set_instance_assignment -name GLOBAL_SIGNAL ON -to reset${TO_THE_VARIATION_NAME}
252
                set_instance_assignment -name GLOBAL_SIGNAL "GLOBAL CLOCK" -to ref_clk${TO_THE_VARIATION_NAME}
253
 
254
       for {set x 0} {$x < $NUMBER_OF_CHANNEL} {incr x} {
255
           #Optimize I/O timing for TBI interface
256
           set_instance_assignment -name FAST_INPUT_REGISTER ON -to tbi_rx_d_${x}${TO_THE_VARIATION_NAME}
257
           set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to tbi_tx_d_${x}${FROM_THE_VARIATION_NAME}
258
           set_instance_assignment -name GLOBAL_SIGNAL "REGIONAL CLOCK" -to tbi_rx_clk_${x}${FROM_THE_VARIATION_NAME}
259
        }
260
   }
261
 
262
 
263
   if { [ expr ($IS_FIFOLESS == 1) && ($IS_MAC == 1) && ($IS_PCS == 1) && ($IS_PMA == 1) ] } {
264
                set_instance_assignment -name GLOBAL_SIGNAL "GLOBAL CLOCK" -to clk${TO_THE_VARIATION_NAME}
265
                set_instance_assignment -name GLOBAL_SIGNAL ON -to reset${TO_THE_VARIATION_NAME}
266
                set_instance_assignment -name GLOBAL_SIGNAL "GLOBAL CLOCK" -to ref_clk${TO_THE_VARIATION_NAME}
267
   }
268
 
269
 
270
   if { [ expr ($IS_FIFOLESS == 1) && ($IS_MAC == 1) && ($IS_PCS == 1) && ($IS_PMA == 1) && ($TRANSCEIVER_TYPE == 0) ] } {
271
      for {set x 0} {$x < $NUMBER_OF_CHANNEL} {incr x} {
272
          if { [string match $DEVICE_FAMILY "STRATIXIV"]} {
273
            #Optimize I/O timing for serdes interface
274
            set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to txp_${x}${FROM_THE_VARIATION_NAME}
275
                        set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rxp_${x}${TO_THE_VARIATION_NAME}
276
         } else {
277
            #Optimize I/O timing for serdes interface
278
            set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to txp_${x}${FROM_THE_VARIATION_NAME}
279
                        set_instance_assignment -name IO_STANDARD "1.5-V PCML" -to rxp_${x}${TO_THE_VARIATION_NAME}
280
         }
281
 
282
      }
283
   }
284
 
285
 
286
   if { [ expr ($IS_FIFOLESS == 1) && ($IS_MAC == 1) && ($IS_PCS == 1) && ($IS_PMA == 1) && ($TRANSCEIVER_TYPE == 1) ] } {
287
 
288
        set_instance_assignment -name IO_STANDARD LVDS -to ref_clk${TO_THE_VARIATION_NAME}
289
 
290
        for {set x 0} {$x < $NUMBER_OF_CHANNEL} {incr x} {
291
                set_instance_assignment -name IO_STANDARD LVDS -to txp_${x}${FROM_THE_VARIATION_NAME}
292
                set_instance_assignment -name IO_STANDARD LVDS -to rxp_${x}${TO_THE_VARIATION_NAME}
293
        }
294
   }
295
 
296
}
297
 
298
 if { [ expr [string match $DEVICE_FAMILY "ARRIAV"] ] } {
299
        set_instance_assignment -name GLOBAL_SIGNAL OFF -to *reset_ff_wr
300
        set_instance_assignment -name GLOBAL_SIGNAL OFF -to *reset_ff_rd
301
 
302
        if { [ expr !(($IS_PCS == 1) && ($IS_PMA == 1) &&  ($TRANSCEIVER_TYPE == 1))] } {
303
                set_instance_assignment -name GLOBAL_SIGNAL OFF -to *reset_sync_*|altera_tse_reset_synchronizer_chain[0]
304
        }
305
   }
306
 
307
export_assignments
308
 

powered by: WebSVN 2.1.0

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