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

Subversion Repositories pci

[/] [pci/] [tags/] [rel_8/] [apps/] [crt/] [syn/] [synplify/] [pci_crt.ucf] - Blame information for rev 154

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 59 mihad
##############################################
2
#      BASIC UCF SYNTAX EXAMPLES V2.1.6      #
3
##############################################
4
#
5
# The "#" symbol is a comment character.   To use this sample file, find the
6
# specification necessary, remove the comment character (#) from the beginning
7
# of the line, and modify the line (if necessary) to fit your design.
8
#
9
#              TIMING SPECIFICATIONS
10
#
11
# Timing specifications can be applied to the entire device (global) or to
12
# specific groups in your design (called "time groups'). The time groups are
13
# declared in two basic ways.
14
#
15
# Method 1: Based on a net name, where 'my_net' is a net that touches all the
16
#           logic to be grouped in to 'logic_grp'. Example:
17
#NET my_net TNM_NET = logic_grp ;
18
#
19
# Method 2: Group using the key word 'TIMEGRP' and declare using the names of
20
#           logic in your design. Example:
21
#TIMEGRP group_name = FFS ("U1/*");
22
#           creates a group called 'group_name' for all flip-flops within
23
#           the hierarchical block called U1. Wildcards are valid.
24
#
25
# Grouping is very important because it lets you tell the software which parts
26
# of a design run at which speeds.  For the majority of the designs with only
27
# one clock, use simple global constraints.
28
#
29
# The type of grouping constraint you use can vary depending on the synthesis
30
# tools you are using.  Foundation Express does better with Method 2.
31
#
32
#
33
############################################################
34
# Internal to the device clock speed specifications - Tsys #
35
############################################################
36
#
37
# data      _________      /^^^^^\       _________   out
38
# ----------| D   Q |-----{ LOGIC } -----| D   Q |------
39
#           |       |      \vvvvv/       |       |
40
#        ---|> CLK  |                 ---|> CLK  |
41
# clock  |  ---------                 |  ---------
42
# ------------------------------------
43
#
44
# ---------------
45
# Single Clock
46
# ---------------
47
#
48
# ----------------
49
# PERIOD TIME-SPEC
50
# ----------------
51
# The PERIOD spec. covers all timing paths that start or end at a
52
# register, latch, or synchronous RAM which are clocked by the reference
53
# net (excluding pad destinations).  Also covered is the setup
54
# requirement of the synchronous element relative to other elements
55
# (ex. flip flops, pads, etc...).
56
# NOTE:  The default unit for time is nanoseconds.
57
#
58
#NET clock PERIOD = 50ns ;
59
#
60
#       -OR-
61
#
62
# ------------------
63
# FROM:TO TIME-SPECs
64
# ------------------
65
# FROM:TO style timespecs can be used to constrain paths between time
66
# groups.  NOTE:  Keywords:  RAMS, FFS, PADS, and LATCHES are predefined
67
# time groups used to specify all elements of each type in a design.
68
#TIMEGRP RFFS = RISING FFS ("*");  // creates a rising group called RFFS
69
#TIMEGRP FFFS = FALLING FFS ("*");  // creates a falling group called FFFS
70
#TIMESPEC TSF2F  = FROM : FFS   : TO : FFS   : 50 ns; // Flip-flips with the same edge
71
#TIMESPEC TSR2F  = FROM : RFFS  : TO : FFFS  : 25 ns; // rising edge to falling edge
72
#TIMESPEC TSF2R  = FROM : FFFS  : TO : RFFS  : 25 ns; // falling edge to rising edge
73
#
74
# ---------------
75
# Multiple Clocks
76
# ---------------
77
# Requires a combination of the 'Period' and 'FROM:TO' type time specifications
78
#NET clock1 TNM_NET = clk1_grp ;
79
#NET clock2 TNM_NET = clk2_grp ;
80
#
81
#TIMESPEC TS_clk1 = PERIOD : clk1_grp : 50 ;
82
#TIMESPEC TS_clk2 = PERIOD : clk2_grp : 30 ;
83
#TIMESPEC TS_ck1_2_ck2 = FROM : clk1_grp : TO : clk2_grp : 50 ;
84
#TIMESPEC TS_ck2_2_ck1 = FROM : clk2_grp : TO : clk1_grp : 30 ;
85
#
86
#
87
############################################################
88
# CLOCK TO OUT specifications - Tco                        #
89
############################################################
90
#
91
# from      _________      /^^^^^\       --------\
92
# ----------| D   Q |-----{ LOGIC } -----| Pad    >
93
# PLD       |       |      \vvvvv/       --------/
94
#        ---|> CLK  |
95
# clock  |  ---------
96
# --------
97
#
98
# ----------------
99
# OFFSET TIME-SPEC
100
# ----------------
101
# To automatically include clock buffer/routing delay in your
102
# clock-to-out timing specifications, use OFFSET constraints .
103
# For an output where the maximum clock-to-out (Tco) is 25 ns:
104
#
105
#NET out_net_name OFFSET = OUT 25 AFTER clock_net_name ;
106
#
107
#      -OR-
108
#
109
# ------------------
110
# FROM:TO TIME-SPECs
111
# ------------------
112
#TIMESPEC TSF2P  = FROM : FFS   : TO : PADS  : 25 ns;
113
# Note that FROM: FFS : TO: PADS constraints start the delay analysis
114
# at the flip flop itself, and not the clock input pin.  The recommended
115
# method to create a clock-to-out constraint is to use an OFFSET constraint.
116
#
117
#
118
############################################################
119
# Pad to Flip-Flop speed specifications - Tsu              #
120
############################################################
121
#
122
# ------\         /^^^^^\       _________   into PLD
123
# |pad   >-------{ LOGIC } -----| D   Q |------
124
# ------/         \vvvvv/       |       |
125
#                            ---|> CLK  |
126
# clock                      |  ---------
127
# ----------------------------
128
#
129
# ----------------
130
# OFFSET TIME-SPEC
131
# ----------------
132
# To automatically account for clock delay in your input setup timing
133
# specifications, use OFFSET constraints.
134
# For an input where the maximum setup time is 25 ns:
135
#NET in_net_name OFFSET = IN 25 BEFORE clock_net_name ;
136
#
137
#      -OR-
138
#
139
# ------------------
140
# FROM:TO TIME-SPECs
141
# ------------------
142
#TIMESPEC TSP2F  = FROM : PADS  : TO : FFS   : 25 ns;
143
# Note that FROM: PADS : TO: FFS constraints do not take into account any
144
# delay for the clock path.  The recommended method to create an input
145
# setup time constraint is to use an OFFSET constraint.
146
#
147
#
148
############################################################
149
# Pad to Pad speed specifications - Tpd                    #
150
############################################################
151
#
152
# ------\         /^^^^^\       -------\
153
# |pad   >-------{ LOGIC } -----| pad   >
154
# ------/         \vvvvv/       -------/
155
#
156
# ------------------
157
# FROM:TO TIME-SPECs
158
# ------------------
159
#TIMESPEC TSP2P  = FROM : PADS  : TO : PADS  : 125 ns;
160
#
161
#
162
############################################################
163
# Other timing specifications                              #
164
############################################################
165
#
166
# -------------
167
# TIMING IGNORE
168
# -------------
169
# If you can ignore timing of paths, use Timing Ignore (TIG). NOTE: The
170
# "*" character is a wild card, which can be used for bus names.  A "?"
171
# character can be used to wild-card one character.
172
# Ignore timing of net reset_n:
173
#NET : reset_n : TIG ;
174
#
175
# Ignore data_reg(7:0) net in instance mux_mem:
176
#NET : mux_mem/data_reg* : TIG ;
177
#
178
# Ignore data_reg(7:0) net in instance mux_mem as related to a TIMESPEC
179
# named TS01 only:
180
#NET : mux_mem/data_reg* : TIG = TS01 ;
181
#
182
# Ignore data1_sig and data2_sig nets:
183
#NET : data?_sig : TIG ;
184
#
185
# ---------------
186
# PATH EXCEPTIONS
187
# ---------------
188
# If your design has outputs that can be slower than others, you can
189
# create specific timespecs similar to this example for output nets
190
# named out_data(7:0) and irq_n:
191
#TIMEGRP slow_outs = PADS(out_data* : irq_n) ;
192
#TIMEGRP fast_outs = PADS : EXCEPT : slow_outs ;
193
#TIMESPEC TS08 = FROM : FFS : TO : fast_outs : 22 ;
194
#TIMESPEC TS09 = FROM : FFS : TO : slow_outs : 75 ;
195
#
196
# If you have multi-cycle FF to FF paths, you can create a time group
197
# using either the TIMEGRP or TNM statements.
198
#
199
# WARNING:  Many VHDL/Verilog synthesizers do not predictably name flip
200
# flop Q output nets.  Most synthesizers do assign predictable instance
201
# names to flip flops, however.
202
#
203
# TIMEGRP example:
204
#TIMEGRP slowffs = FFS(inst_path/ff_q_output_net1* :
205
#inst_path/ff_q_output_net2*);
206
#
207
# TNM attached to instance example:
208
#INST inst_path/ff_instance_name1_reg* TNM = slowffs ;
209
#INST inst_path/ff_instance_name2_reg* TNM = slowffs ;
210
#
211
# If a FF clock-enable is used on all flip flops of a multi-cycle path,
212
# you can attach TNM to the clock enable net.  NOTE:  TNM attached to a
213
# net "forward traces" to any FF, LATCH, RAM, or PAD attached to the
214
# net.
215
#NET ff_clock_enable_net TNM = slowffs ;
216
#
217
# Example of using "slowffs" timegroup, in a FROM:TO timespec, with
218
# either of the three timegroup methods shown above:
219
#TIMESPEC TS10 = FROM : slowffs : TO : FFS : 100 ;
220
#
221
# Constrain the skew or delay associate with a net.
222
#NET any_net_name MAXSKEW = 7 ;
223
#NET any_net_name MAXDELAY = 20 ns;
224
#
225
#
226
# Constraint priority in your .ucf file is as follows:
227
#
228
#    highest 1.  Timing Ignore (TIG)
229
#            2.  FROM : THRU : TO specs
230
#            3.  FROM : TO specs
231
#    lowest  4.  PERIOD specs
232
#
233
# See the on-line "Library Reference Guide" document for
234
# additional timespec features and more information.
235
#
236
#
237
############################################################
238
#                                                                                                                    #
239
#         LOCATION and ATTRIBUTE SPECIFICATIONS            #
240
#                                                                                                                    #
241
############################################################
242
# Pin and CLB location locking constraints                 #
243
############################################################
244
#
245
# -----------------------
246
# Assign an IO pin number
247
# -----------------------
248
#INST io_buf_instance_name  LOC = P110 ;
249
#NET io_net_name  LOC = P111 ;
250
#
251
# -----------------------
252
# Assign a signal to a range of I/O pins
253
# -----------------------
254
#NET "signal_name" LOC=P32, P33, P34;
255
#
256
# -----------------------
257
# Place a logic element(called a BEL) in a specific CLB location.
258
# BEL = FF, LUT, RAM, etc...
259
# -----------------------
260
#INST instance_path/BEL_inst_name  LOC = CLB_R17C36 ;
261
#
262
# -----------------------
263
# Place CLB in rectangular area from CLB R1C1 to CLB R5C7
264
# -----------------------
265
#INST /U1/U2/reg<0> LOC=clb_r1c1:clb_r5c7;
266
#
267
# -----------------------
268
# Place hierarchical logic block in rectangular area from CLB R1C1 to CLB R5C7
269
# -----------------------
270
#INST /U1* LOC=clb_r1c1:clb_r5c7;
271
#
272
# -----------------------
273
# Prohibit IO pin P26 or CLBR5C3 from being used:
274
# -----------------------
275
#CONFIG PROHIBIT = P26 ;
276
#CONFIG PROHIBIT = CLB_R5C3 ;
277
# Config Prohibit is very important for forcing the software to not use critical
278
# configuration pins like INIT or DOUT on the FPGA.  The Mode pins and JTAG
279
# Pins require a special pad so they will not be available to this constraint
280
#
281
# -----------------------
282
# Assign an OBUF to be FAST or SLOW:
283
# -----------------------
284
#INST obuf_instance_name FAST ;
285
#INST obuf_instance_name SLOW ;
286
#
287
# -----------------------
288
# FPGAs only:  IOB input Flip-flop delay specification
289
# -----------------------
290
# Declare an IOB input FF delay (default = MAXDELAY).
291
# NOTE:  MEDDELAY/NODELAY can be attached to a CLB FF that is pushed
292
# into an IOB by the "map -pr i" option.
293
#INST input_ff_instance_name MEDDELAY ;
294
#INST input_ff_instance_name NODELAY ;
295
#
296
# -----------------------
297
# Assign Global Clock Buffers Lower Left Right Side
298
# -----------------------
299
# INST gbuf1 LOC=SSW
300
#
301
# #
302
 
303
 
304
# define a group of metastable Flip-Flops
305
INST *sync_data_out* TNM = sync_ffs ;
306
TIMESPEC TS_sync_flops = FROM : sync_ffs : TO : FFS : 15 ;
307
INST *meta_q_o* TNM = meta_ffs ;
308
TIMESPEC TS_meta_flops = FROM : meta_ffs : TO : FFS : 15 ;
309
 
310
NET CLK TNM_NET = CLK_GRP ;
311
NET CRT_CLK TNM_NET = CRT_CLK_GRP ;
312
 
313
TIMESPEC TS_CLK_2_CRT_CLK = FROM : CLK_GRP : TO : CRT_CLK_GRP : 15 ;
314
TIMESPEC TS_CRT_CLK_2_CLK = FROM : CRT_CLK_GRP : TO : CLK_GRP : 15 ;
315
 
316
NET "AD0" IOSTANDARD = PCI33_5;
317
NET "AD1" IOSTANDARD = PCI33_5;
318
NET "AD2" IOSTANDARD = PCI33_5;
319
NET "AD3" IOSTANDARD = PCI33_5;
320
NET "AD4" IOSTANDARD = PCI33_5;
321
NET "AD5" IOSTANDARD = PCI33_5;
322
NET "AD6" IOSTANDARD = PCI33_5;
323
NET "AD7" IOSTANDARD = PCI33_5;
324
NET "AD8" IOSTANDARD = PCI33_5;
325
NET "AD9" IOSTANDARD = PCI33_5;
326
NET "AD10" IOSTANDARD = PCI33_5;
327
NET "AD11" IOSTANDARD = PCI33_5;
328
NET "AD12" IOSTANDARD = PCI33_5;
329
NET "AD13" IOSTANDARD = PCI33_5;
330
NET "AD14" IOSTANDARD = PCI33_5;
331
NET "AD15" IOSTANDARD = PCI33_5;
332
NET "AD16" IOSTANDARD = PCI33_5;
333
NET "AD17" IOSTANDARD = PCI33_5;
334
NET "AD18" IOSTANDARD = PCI33_5;
335
NET "AD19" IOSTANDARD = PCI33_5;
336
NET "AD20" IOSTANDARD = PCI33_5;
337
NET "AD21" IOSTANDARD = PCI33_5;
338
NET "AD22" IOSTANDARD = PCI33_5;
339
NET "AD23" IOSTANDARD = PCI33_5;
340
NET "AD24" IOSTANDARD = PCI33_5;
341
NET "AD25" IOSTANDARD = PCI33_5;
342
NET "AD26" IOSTANDARD = PCI33_5;
343
NET "AD27" IOSTANDARD = PCI33_5;
344
NET "AD28" IOSTANDARD = PCI33_5;
345
NET "AD29" IOSTANDARD = PCI33_5;
346
NET "AD30" IOSTANDARD = PCI33_5;
347
NET "AD31" IOSTANDARD = PCI33_5;
348
 
349
NET "CBE0" IOSTANDARD = PCI33_5;
350
NET "CBE1" IOSTANDARD = PCI33_5;
351
NET "CBE2" IOSTANDARD = PCI33_5;
352
NET "CBE3" IOSTANDARD = PCI33_5;
353
 
354
NET "DEVSEL" IOSTANDARD = PCI33_5;
355
 
356
NET "FRAME" IOSTANDARD = PCI33_5;
357
 
358
NET "GNT" IOSTANDARD = PCI33_5;
359
NET "RST" IOSTANDARD = PCI33_5;
360
NET "INTA" IOSTANDARD = PCI33_5;
361
 
362
NET "IRDY" IOSTANDARD = PCI33_5;
363
 
364
NET "PAR" IOSTANDARD = PCI33_5;
365
 
366
NET "PERR" IOSTANDARD = PCI33_5;
367
 
368
NET "REQ" IOSTANDARD = PCI33_5;
369
 
370
NET "SERR" IOSTANDARD = PCI33_5;
371
 
372
NET "STOP" IOSTANDARD = PCI33_5;
373
 
374
NET "TRDY" IOSTANDARD = PCI33_5;
375
 
376
NET "IDSEL" IOSTANDARD = PCI33_5;

powered by: WebSVN 2.1.0

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