1 |
91 |
tadejm |
##############################################
|
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 Device, Package, And Speed Grade
|
305 |
|
|
################################################################################
|
306 |
|
|
#
|
307 |
|
|
CONFIG PART = XC2S200-FG456-5 ;
|
308 |
|
|
#
|
309 |
|
|
################################################################################
|
310 |
|
|
# Prohibited Pins List
|
311 |
|
|
################################################################################
|
312 |
|
|
#
|
313 |
|
|
CONFIG PROHIBIT = "A20" ; #IO_WRITE
|
314 |
|
|
CONFIG PROHIBIT = "C19" ; #IO_CS
|
315 |
|
|
CONFIG PROHIBIT = "C21" ; #IO_DOUT_BUSY
|
316 |
|
|
CONFIG PROHIBIT = "D20" ; #IO_DIN_D0
|
317 |
|
|
CONFIG PROHIBIT = "H22" ; #IO_D1
|
318 |
|
|
CONFIG PROHIBIT = "H20" ; #IO_D2
|
319 |
|
|
CONFIG PROHIBIT = "K20" ; #IO_D3
|
320 |
|
|
#CONFIG PROHIBIT = "N22" ; #IO_D4
|
321 |
|
|
CONFIG PROHIBIT = "R21" ; #IO_D5
|
322 |
|
|
CONFIG PROHIBIT = "T22" ; #IO_D6
|
323 |
|
|
CONFIG PROHIBIT = "Y21" ; #IO_D7
|
324 |
|
|
CONFIG PROHIBIT = "V19" ; #IO_INIT
|
325 |
|
|
|
326 |
|
|
NET "CLK" IOSTANDARD = PCI33_5 ;
|
327 |
|
|
NET "CLK" TNM_NET = "CLK";
|
328 |
|
|
NET "CRT_CLK" TNM_NET = "CRT_CLK";
|
329 |
|
|
|
330 |
|
|
TIMESPEC "TS_CLK" = PERIOD "CLK" 30 ns HIGH 50 %;
|
331 |
|
|
TIMESPEC "TS_CRT_CLK" = PERIOD "CRT_CLK" 44 ns HIGH 50 %;
|
332 |
|
|
TIMESPEC "TS_CLK_2_CRT_CLK" = FROM : "CLK" : TO : "CRT_CLK" : 15 ;
|
333 |
|
|
TIMESPEC "TS_CRT_CLK_2_CLK" = FROM : "CRT_CLK" : TO : "CLK" : 15 ;
|
334 |
|
|
|
335 |
|
|
INST "AD0.PAD" TNM = "PCI_AD";
|
336 |
|
|
INST "AD1.PAD" TNM = "PCI_AD";
|
337 |
|
|
INST "AD2.PAD" TNM = "PCI_AD";
|
338 |
|
|
INST "AD3.PAD" TNM = "PCI_AD";
|
339 |
|
|
INST "AD4.PAD" TNM = "PCI_AD";
|
340 |
|
|
INST "AD5.PAD" TNM = "PCI_AD";
|
341 |
|
|
INST "AD6.PAD" TNM = "PCI_AD";
|
342 |
|
|
INST "AD7.PAD" TNM = "PCI_AD";
|
343 |
|
|
INST "AD8.PAD" TNM = "PCI_AD";
|
344 |
|
|
INST "AD9.PAD" TNM = "PCI_AD";
|
345 |
|
|
INST "AD10.PAD" TNM = "PCI_AD";
|
346 |
|
|
INST "AD11.PAD" TNM = "PCI_AD";
|
347 |
|
|
INST "AD12.PAD" TNM = "PCI_AD";
|
348 |
|
|
INST "AD13.PAD" TNM = "PCI_AD";
|
349 |
|
|
INST "AD14.PAD" TNM = "PCI_AD";
|
350 |
|
|
INST "AD15.PAD" TNM = "PCI_AD";
|
351 |
|
|
INST "AD16.PAD" TNM = "PCI_AD";
|
352 |
|
|
INST "AD17.PAD" TNM = "PCI_AD";
|
353 |
|
|
INST "AD18.PAD" TNM = "PCI_AD";
|
354 |
|
|
INST "AD19.PAD" TNM = "PCI_AD";
|
355 |
|
|
INST "AD20.PAD" TNM = "PCI_AD";
|
356 |
|
|
INST "AD21.PAD" TNM = "PCI_AD";
|
357 |
|
|
INST "AD22.PAD" TNM = "PCI_AD";
|
358 |
|
|
INST "AD23.PAD" TNM = "PCI_AD";
|
359 |
|
|
INST "AD24.PAD" TNM = "PCI_AD";
|
360 |
|
|
INST "AD25.PAD" TNM = "PCI_AD";
|
361 |
|
|
INST "AD26.PAD" TNM = "PCI_AD";
|
362 |
|
|
INST "AD27.PAD" TNM = "PCI_AD";
|
363 |
|
|
INST "AD28.PAD" TNM = "PCI_AD";
|
364 |
|
|
INST "AD29.PAD" TNM = "PCI_AD";
|
365 |
|
|
INST "AD30.PAD" TNM = "PCI_AD";
|
366 |
|
|
INST "AD31.PAD" TNM = "PCI_AD";
|
367 |
|
|
TIMEGRP "PCI_AD" OFFSET = IN 7 ns BEFORE "CLK";
|
368 |
|
|
TIMEGRP "PCI_AD" OFFSET = OUT 11 ns AFTER "CLK";
|
369 |
|
|
NET "AD0" IOSTANDARD = PCI33_5;
|
370 |
|
|
NET "AD1" IOSTANDARD = PCI33_5;
|
371 |
|
|
NET "AD2" IOSTANDARD = PCI33_5;
|
372 |
|
|
NET "AD3" IOSTANDARD = PCI33_5;
|
373 |
|
|
NET "AD4" IOSTANDARD = PCI33_5;
|
374 |
|
|
NET "AD5" IOSTANDARD = PCI33_5;
|
375 |
|
|
NET "AD6" IOSTANDARD = PCI33_5;
|
376 |
|
|
NET "AD7" IOSTANDARD = PCI33_5;
|
377 |
|
|
NET "AD8" IOSTANDARD = PCI33_5;
|
378 |
|
|
NET "AD9" IOSTANDARD = PCI33_5;
|
379 |
|
|
NET "AD10" IOSTANDARD = PCI33_5;
|
380 |
|
|
NET "AD11" IOSTANDARD = PCI33_5;
|
381 |
|
|
NET "AD12" IOSTANDARD = PCI33_5;
|
382 |
|
|
NET "AD13" IOSTANDARD = PCI33_5;
|
383 |
|
|
NET "AD14" IOSTANDARD = PCI33_5;
|
384 |
|
|
NET "AD15" IOSTANDARD = PCI33_5;
|
385 |
|
|
NET "AD16" IOSTANDARD = PCI33_5;
|
386 |
|
|
NET "AD17" IOSTANDARD = PCI33_5;
|
387 |
|
|
NET "AD18" IOSTANDARD = PCI33_5;
|
388 |
|
|
NET "AD19" IOSTANDARD = PCI33_5;
|
389 |
|
|
NET "AD20" IOSTANDARD = PCI33_5;
|
390 |
|
|
NET "AD21" IOSTANDARD = PCI33_5;
|
391 |
|
|
NET "AD22" IOSTANDARD = PCI33_5;
|
392 |
|
|
NET "AD23" IOSTANDARD = PCI33_5;
|
393 |
|
|
NET "AD24" IOSTANDARD = PCI33_5;
|
394 |
|
|
NET "AD25" IOSTANDARD = PCI33_5;
|
395 |
|
|
NET "AD26" IOSTANDARD = PCI33_5;
|
396 |
|
|
NET "AD27" IOSTANDARD = PCI33_5;
|
397 |
|
|
NET "AD28" IOSTANDARD = PCI33_5;
|
398 |
|
|
NET "AD29" IOSTANDARD = PCI33_5;
|
399 |
|
|
NET "AD30" IOSTANDARD = PCI33_5;
|
400 |
|
|
NET "AD31" IOSTANDARD = PCI33_5;
|
401 |
|
|
INST "CBE0.PAD" TNM = "PCI_CBE";
|
402 |
|
|
INST "CBE1.PAD" TNM = "PCI_CBE";
|
403 |
|
|
INST "CBE2.PAD" TNM = "PCI_CBE";
|
404 |
|
|
INST "CBE3.PAD" TNM = "PCI_CBE";
|
405 |
|
|
|
406 |
|
|
TIMEGRP "PCI_CBE" OFFSET = IN 7 ns BEFORE "CLK";
|
407 |
|
|
TIMEGRP "PCI_CBE" OFFSET = OUT 11 ns AFTER "CLK";
|
408 |
|
|
|
409 |
|
|
NET "CBE0" IOSTANDARD = PCI33_5;
|
410 |
|
|
NET "CBE1" IOSTANDARD = PCI33_5;
|
411 |
|
|
NET "CBE2" IOSTANDARD = PCI33_5;
|
412 |
|
|
NET "CBE3" IOSTANDARD = PCI33_5;
|
413 |
|
|
|
414 |
|
|
#INST "DEVSEL.PAD" TNM = "PCI_CTRL" ;
|
415 |
|
|
|
416 |
|
|
NET "DEVSEL" OFFSET = IN 7 ns BEFORE "CLK";
|
417 |
|
|
|
418 |
|
|
NET "DEVSEL" OFFSET = OUT 11 ns AFTER "CLK";
|
419 |
|
|
|
420 |
|
|
NET "DEVSEL" IOSTANDARD = PCI33_5;
|
421 |
|
|
|
422 |
|
|
NET "FRAME" OFFSET = IN 7 ns BEFORE "CLK";
|
423 |
|
|
|
424 |
|
|
NET "FRAME" OFFSET = OUT 11 ns AFTER "CLK";
|
425 |
|
|
|
426 |
|
|
NET "FRAME" IOSTANDARD = PCI33_5;
|
427 |
|
|
|
428 |
|
|
#INST "FRAME.PAD" TNM = "PCI_CTRL" ;
|
429 |
|
|
|
430 |
|
|
NET "GNT" OFFSET = IN 10 ns BEFORE "CLK";
|
431 |
|
|
|
432 |
|
|
NET "GNT" IOSTANDARD = PCI33_5;
|
433 |
|
|
NET "RST" IOSTANDARD = PCI33_5;
|
434 |
|
|
NET "INTA" IOSTANDARD = PCI33_5;
|
435 |
|
|
|
436 |
|
|
#INST "GNT.PAD" TNM = "PCI_GNT" ;
|
437 |
|
|
|
438 |
|
|
NET "IRDY" OFFSET = IN 7 ns BEFORE "CLK";
|
439 |
|
|
NET "IRDY" OFFSET = OUT 11 ns AFTER "CLK";
|
440 |
|
|
|
441 |
|
|
NET "IRDY" IOSTANDARD = PCI33_5;
|
442 |
|
|
|
443 |
|
|
#INST "IRDY.PAD" TNM="PCI_CTRL" ;
|
444 |
|
|
|
445 |
|
|
NET "PAR" OFFSET = IN 7 ns BEFORE "CLK";
|
446 |
|
|
NET "PAR" OFFSET = OUT 11 ns AFTER "CLK";
|
447 |
|
|
|
448 |
|
|
NET "PAR" IOSTANDARD = PCI33_5;
|
449 |
|
|
|
450 |
|
|
#INST "PAR.PAD" TNM = "PCI_CTRL" ;
|
451 |
|
|
|
452 |
|
|
NET "PERR" OFFSET = IN 7 ns BEFORE "CLK";
|
453 |
|
|
|
454 |
|
|
NET "PERR" OFFSET = OUT 11 ns AFTER "CLK";
|
455 |
|
|
|
456 |
|
|
NET "PERR" IOSTANDARD = PCI33_5;
|
457 |
|
|
|
458 |
|
|
#INST "PERR.PAD" TNM = "PCI_CTRL" ;
|
459 |
|
|
|
460 |
|
|
NET "REQ" OFFSET = OUT 12 ns AFTER "CLK";
|
461 |
|
|
|
462 |
|
|
NET "REQ" IOSTANDARD = PCI33_5;
|
463 |
|
|
|
464 |
|
|
#INST "REQ.PAD" TNM = "PCI_REQ" ;
|
465 |
|
|
|
466 |
|
|
NET "SERR" OFFSET = OUT 11 ns AFTER "CLK";
|
467 |
|
|
|
468 |
|
|
NET "SERR" IOSTANDARD = PCI33_5;
|
469 |
|
|
|
470 |
|
|
#INST "SERR.PAD" TNM = "PCI_CTRL" ;
|
471 |
|
|
|
472 |
|
|
NET "STOP" OFFSET = IN 7 ns BEFORE "CLK";
|
473 |
|
|
NET "STOP" OFFSET = OUT 11 ns AFTER "CLK";
|
474 |
|
|
|
475 |
|
|
NET "STOP" IOSTANDARD = PCI33_5;
|
476 |
|
|
|
477 |
|
|
#INST "STOP.PAD" TNM = "PCI_CTRL" ;
|
478 |
|
|
|
479 |
|
|
NET "TRDY" OFFSET = IN 7 ns BEFORE "CLK";
|
480 |
|
|
NET "TRDY" OFFSET = OUT 10 ns AFTER "CLK";
|
481 |
|
|
|
482 |
|
|
NET "TRDY" IOSTANDARD = PCI33_5;
|
483 |
|
|
|
484 |
|
|
#INST "TRDY.PAD" TNM = "PCI_CTRL" ;
|
485 |
|
|
|
486 |
|
|
NET "IDSEL" OFFSET = IN 7ns BEFORE "CLK" ;
|
487 |
|
|
NET "IDSEL" IOSTANDARD = PCI33_5 ;
|
488 |
|
|
|
489 |
|
|
##################################################################################
|
490 |
|
|
# Pin locations
|
491 |
|
|
##################################################################################
|
492 |
|
|
NET "CLK" LOC = "C11" ;
|
493 |
|
|
NET "INTA" LOC = "M3" ;
|
494 |
|
|
NET "RST" LOC = "E2" ;
|
495 |
|
|
NET "GNT" LOC = "L5" ;
|
496 |
|
|
NET "REQ" LOC = "K2" ;
|
497 |
|
|
NET "AD31" LOC = "E1" ;
|
498 |
|
|
NET "AD30" LOC = "G4" ;
|
499 |
|
|
NET "AD29" LOC = "G3" ;
|
500 |
|
|
NET "AD28" LOC = "H5" ;
|
501 |
|
|
NET "AD27" LOC = "F2" ;
|
502 |
|
|
NET "AD26" LOC = "F1" ;
|
503 |
|
|
NET "AD25" LOC = "H4" ;
|
504 |
|
|
NET "AD24" LOC = "G1" ;
|
505 |
|
|
NET "CBE3" LOC = "N2" ;
|
506 |
|
|
NET "IDSEL" LOC = "L6" ;
|
507 |
|
|
NET "AD23" LOC = "H3" ;
|
508 |
|
|
NET "AD22" LOC = "H2" ;
|
509 |
|
|
NET "AD21" LOC = "J4" ;
|
510 |
|
|
NET "AD20" LOC = "H1" ;
|
511 |
|
|
NET "AD19" LOC = "J5" ;
|
512 |
|
|
NET "AD18" LOC = "J2" ;
|
513 |
|
|
NET "AD17" LOC = "J3" ;
|
514 |
|
|
NET "AD16" LOC = "J1" ;
|
515 |
|
|
NET "CBE2" LOC = "N3" ;
|
516 |
|
|
NET "FRAME" LOC = "M6" ;
|
517 |
|
|
NET "IRDY" LOC = "L3" ;
|
518 |
|
|
#
|
519 |
|
|
NET "TRDY" LOC = "M1" ;
|
520 |
|
|
NET "DEVSEL" LOC = "L1" ;
|
521 |
|
|
NET "STOP" LOC = "L4" ;
|
522 |
|
|
NET "PERR" LOC = "N5" ;
|
523 |
|
|
NET "SERR" LOC = "M4" ;
|
524 |
|
|
NET "PAR" LOC = "P2" ;
|
525 |
|
|
NET "CBE1" LOC = "N4" ;
|
526 |
|
|
NET "AD15" LOC = "K5" ;
|
527 |
|
|
NET "AD14" LOC = "K1" ;
|
528 |
|
|
NET "AD13" LOC = "K3" ;
|
529 |
|
|
NET "AD12" LOC = "K4" ;
|
530 |
|
|
NET "AD11" LOC = "P4" ;
|
531 |
|
|
NET "AD10" LOC = "R1" ;
|
532 |
|
|
NET "AD9" LOC = "P5" ;
|
533 |
|
|
NET "AD8" LOC = "P3" ;
|
534 |
|
|
NET "CBE0" LOC = "P1" ;
|
535 |
|
|
NET "AD7" LOC = "R2" ;
|
536 |
|
|
NET "AD6" LOC = "T1" ;
|
537 |
|
|
NET "AD5" LOC = "R4" ;
|
538 |
|
|
NET "AD4" LOC = "T2" ;
|
539 |
|
|
NET "AD3" LOC = "U1" ;
|
540 |
|
|
NET "AD2" LOC = "R5" ;
|
541 |
|
|
NET "AD1" LOC = "V1" ;
|
542 |
|
|
NET "AD0" LOC = "T5" ;
|
543 |
|
|
|
544 |
|
|
# Dime Pinout: http://ece-www.colorado.edu/~ecen5633/dime.html
|
545 |
|
|
# Opencore VGA Dime connection http://www.opencores.org/projects/pci/test_board
|
546 |
|
|
#
|
547 |
|
|
#NET "HSYNC" LOC = "W17" ;
|
548 |
|
|
#NET "VSYNC" LOC = "W18" ;
|
549 |
|
|
#NET "RGB<0>" LOC = "" ;
|
550 |
|
|
#NET "RGB<1>" LOC = "" ;
|
551 |
|
|
#NET "RGB<2>" LOC = "" ;
|
552 |
|
|
#NET "RGB<3>" LOC = "" ;
|
553 |
|
|
#
|
554 |
|
|
NET "CRT_CLK" LOC = "W12" ;
|
555 |
|
|
NET "HSYNC" LOC = "W17" ;
|
556 |
|
|
NET "VSYNC" LOC = "W18" ;
|
557 |
|
|
NET "RGB4" LOC = "AA19" ;
|
558 |
|
|
NET "RGB5" LOC = "V12" ;
|
559 |
|
|
NET "RGB6" LOC = "Y15" ;
|
560 |
|
|
NET "RGB7" LOC = "Y12" ;
|
561 |
|
|
NET "RGB8" LOC = "Y16" ;
|
562 |
|
|
NET "RGB9" LOC = "V13" ;
|
563 |
|
|
NET "RGB10" LOC = "Y17" ;
|
564 |
|
|
NET "RGB11" LOC = "Y13" ;
|
565 |
|
|
NET "RGB12" LOC = "Y18" ;
|
566 |
|
|
NET "RGB13" LOC = "W13" ;
|
567 |
|
|
NET "RGB14" LOC = "Y14" ;
|
568 |
|
|
NET "RGB15" LOC = "V14" ;
|
569 |
|
|
#NET "LED" LOC = "" ;
|
570 |
|
|
#
|
571 |
|
|
|
572 |
|
|
##################################################################################
|
573 |
|
|
# IOB force
|
574 |
|
|
##################################################################################
|
575 |
|
|
#INST "bridge/pci_io_mux/ad_iob0/dat_out_reg" IOB = TRUE ;
|
576 |
|
|
#INST "bridge/pci_io_mux/ad_iob1/dat_out_reg" IOB = TRUE ;
|
577 |
|
|
#INST "bridge/pci_io_mux/ad_iob2/dat_out_reg" IOB = TRUE ;
|
578 |
|
|
#INST "bridge/pci_io_mux/ad_iob3/dat_out_reg" IOB = TRUE ;
|
579 |
|
|
#INST "bridge/pci_io_mux/ad_iob4/dat_out_reg" IOB = TRUE ;
|
580 |
|
|
#INST "bridge/pci_io_mux/ad_iob5/dat_out_reg" IOB = TRUE ;
|
581 |
|
|
#INST "bridge/pci_io_mux/ad_iob6/dat_out_reg" IOB = TRUE ;
|
582 |
|
|
#INST "bridge/pci_io_mux/ad_iob7/dat_out_reg" IOB = TRUE ;
|
583 |
|
|
#INST "bridge/pci_io_mux/ad_iob8/dat_out_reg" IOB = TRUE ;
|
584 |
|
|
#INST "bridge/pci_io_mux/ad_iob9/dat_out_reg" IOB = TRUE ;
|
585 |
|
|
#INST "bridge/pci_io_mux/ad_iob10/dat_out_reg" IOB = TRUE ;
|
586 |
|
|
#INST "bridge/pci_io_mux/ad_iob11/dat_out_reg" IOB = TRUE ;
|
587 |
|
|
#INST "bridge/pci_io_mux/ad_iob12/dat_out_reg" IOB = TRUE ;
|
588 |
|
|
#INST "bridge/pci_io_mux/ad_iob13/dat_out_reg" IOB = TRUE ;
|
589 |
|
|
#INST "bridge/pci_io_mux/ad_iob14/dat_out_reg" IOB = TRUE ;
|
590 |
|
|
#INST "bridge/pci_io_mux/ad_iob15/dat_out_reg" IOB = TRUE ;
|
591 |
|
|
#INST "bridge/pci_io_mux/ad_iob16/dat_out_reg" IOB = TRUE ;
|
592 |
|
|
#INST "bridge/pci_io_mux/ad_iob17/dat_out_reg" IOB = TRUE ;
|
593 |
|
|
#INST "bridge/pci_io_mux/ad_iob18/dat_out_reg" IOB = TRUE ;
|
594 |
|
|
#INST "bridge/pci_io_mux/ad_iob19/dat_out_reg" IOB = TRUE ;
|
595 |
|
|
#INST "bridge/pci_io_mux/ad_iob20/dat_out_reg" IOB = TRUE ;
|
596 |
|
|
#INST "bridge/pci_io_mux/ad_iob21/dat_out_reg" IOB = TRUE ;
|
597 |
|
|
#INST "bridge/pci_io_mux/ad_iob22/dat_out_reg" IOB = TRUE ;
|
598 |
|
|
#INST "bridge/pci_io_mux/ad_iob23/dat_out_reg" IOB = TRUE ;
|
599 |
|
|
#INST "bridge/pci_io_mux/ad_iob24/dat_out_reg" IOB = TRUE ;
|
600 |
|
|
#INST "bridge/pci_io_mux/ad_iob25/dat_out_reg" IOB = TRUE ;
|
601 |
|
|
#INST "bridge/pci_io_mux/ad_iob26/dat_out_reg" IOB = TRUE ;
|
602 |
|
|
#INST "bridge/pci_io_mux/ad_iob27/dat_out_reg" IOB = TRUE ;
|
603 |
|
|
#INST "bridge/pci_io_mux/ad_iob28/dat_out_reg" IOB = TRUE ;
|
604 |
|
|
#INST "bridge/pci_io_mux/ad_iob29/dat_out_reg" IOB = TRUE ;
|
605 |
|
|
#INST "bridge/pci_io_mux/ad_iob30/dat_out_reg" IOB = TRUE ;
|
606 |
|
|
#INST "bridge/pci_io_mux/ad_iob31/dat_out_reg" IOB = TRUE ;
|
607 |
|
|
|
608 |
|
|
####################################################################################
|
609 |
|
|
# Force output enable IOBs
|
610 |
|
|
####################################################################################
|
611 |
|
|
#INST "bridge/pci_io_mux/ad_iob0/en_out_reg" IOB = TRUE ;
|
612 |
|
|
#INST "bridge/pci_io_mux/ad_iob1/en_out_reg" IOB = TRUE ;
|
613 |
|
|
#INST "bridge/pci_io_mux/ad_iob2/en_out_reg" IOB = TRUE ;
|
614 |
|
|
#INST "bridge/pci_io_mux/ad_iob3/en_out_reg" IOB = TRUE ;
|
615 |
|
|
#INST "bridge/pci_io_mux/ad_iob4/en_out_reg" IOB = TRUE ;
|
616 |
|
|
#INST "bridge/pci_io_mux/ad_iob5/en_out_reg" IOB = TRUE ;
|
617 |
|
|
#INST "bridge/pci_io_mux/ad_iob6/en_out_reg" IOB = TRUE ;
|
618 |
|
|
#INST "bridge/pci_io_mux/ad_iob7/en_out_reg" IOB = TRUE ;
|
619 |
|
|
#INST "bridge/pci_io_mux/ad_iob8/en_out_reg" IOB = TRUE ;
|
620 |
|
|
#INST "bridge/pci_io_mux/ad_iob9/en_out_reg" IOB = TRUE ;
|
621 |
|
|
#INST "bridge/pci_io_mux/ad_iob10/en_out_reg" IOB = TRUE ;
|
622 |
|
|
#INST "bridge/pci_io_mux/ad_iob11/en_out_reg" IOB = TRUE ;
|
623 |
|
|
#INST "bridge/pci_io_mux/ad_iob12/en_out_reg" IOB = TRUE ;
|
624 |
|
|
#INST "bridge/pci_io_mux/ad_iob13/en_out_reg" IOB = TRUE ;
|
625 |
|
|
#INST "bridge/pci_io_mux/ad_iob14/en_out_reg" IOB = TRUE ;
|
626 |
|
|
#INST "bridge/pci_io_mux/ad_iob15/en_out_reg" IOB = TRUE ;
|
627 |
|
|
#INST "bridge/pci_io_mux/ad_iob16/en_out_reg" IOB = TRUE ;
|
628 |
|
|
#INST "bridge/pci_io_mux/ad_iob17/en_out_reg" IOB = TRUE ;
|
629 |
|
|
#INST "bridge/pci_io_mux/ad_iob18/en_out_reg" IOB = TRUE ;
|
630 |
|
|
#INST "bridge/pci_io_mux/ad_iob19/en_out_reg" IOB = TRUE ;
|
631 |
|
|
#INST "bridge/pci_io_mux/ad_iob20/en_out_reg" IOB = TRUE ;
|
632 |
|
|
#INST "bridge/pci_io_mux/ad_iob21/en_out_reg" IOB = TRUE ;
|
633 |
|
|
#INST "bridge/pci_io_mux/ad_iob22/en_out_reg" IOB = TRUE ;
|
634 |
|
|
#INST "bridge/pci_io_mux/ad_iob23/en_out_reg" IOB = TRUE ;
|
635 |
|
|
#INST "bridge/pci_io_mux/ad_iob24/en_out_reg" IOB = TRUE ;
|
636 |
|
|
#INST "bridge/pci_io_mux/ad_iob25/en_out_reg" IOB = TRUE ;
|
637 |
|
|
#INST "bridge/pci_io_mux/ad_iob26/en_out_reg" IOB = TRUE ;
|
638 |
|
|
#INST "bridge/pci_io_mux/ad_iob27/en_out_reg" IOB = TRUE ;
|
639 |
|
|
#INST "bridge/pci_io_mux/ad_iob28/en_out_reg" IOB = TRUE ;
|
640 |
|
|
#INST "bridge/pci_io_mux/ad_iob29/en_out_reg" IOB = TRUE ;
|
641 |
|
|
#INST "bridge/pci_io_mux/ad_iob30/en_out_reg" IOB = TRUE ;
|
642 |
|
|
#INST "bridge/pci_io_mux/ad_iob31/en_out_reg" IOB = TRUE ;
|
643 |
|
|
|
644 |
|
|
####################################################################################
|
645 |
|
|
# CBE IOBs
|
646 |
|
|
####################################################################################
|
647 |
|
|
#INST "bridge/pci_io_mux/cbe_iob0/dat_out_reg" IOB = TRUE ;
|
648 |
|
|
#INST "bridge/pci_io_mux/cbe_iob1/dat_out_reg" IOB = TRUE ;
|
649 |
|
|
#INST "bridge/pci_io_mux/cbe_iob2/dat_out_reg" IOB = TRUE ;
|
650 |
|
|
#INST "bridge/pci_io_mux/cbe_iob3/dat_out_reg" IOB = TRUE ;
|
651 |
|
|
#
|
652 |
|
|
#INST "bridge/pci_io_mux/cbe_iob0/en_out_reg" IOB = TRUE ;
|
653 |
|
|
#INST "bridge/pci_io_mux/cbe_iob1/en_out_reg" IOB = TRUE ;
|
654 |
|
|
#INST "bridge/pci_io_mux/cbe_iob2/en_out_reg" IOB = TRUE ;
|
655 |
|
|
#INST "bridge/pci_io_mux/cbe_iob3/en_out_reg" IOB = TRUE ;
|
656 |
|
|
|
657 |
|
|
####################################################################################
|
658 |
|
|
# Control signals IOBs
|
659 |
|
|
####################################################################################
|
660 |
|
|
#INST "bridge/pci_io_mux/frame_iob/dat_out_reg" IOB = TRUE ;
|
661 |
|
|
#INST "bridge/pci_io_mux/frame_iob/en_out_reg" IOB = TRUE ;
|
662 |
|
|
#INST "bridge/pci_io_mux/irdy_iob/dat_out_reg" IOB = TRUE ;
|
663 |
|
|
#INST "bridge/pci_io_mux/irdy_iob/en_out_reg" IOB = TRUE ;
|
664 |
|
|
#
|
665 |
|
|
#INST "bridge/pci_io_mux/trdy_iob/dat_out_reg" IOB = TRUE ;
|
666 |
|
|
#INST "bridge/pci_io_mux/trdy_iob/en_out_reg" IOB = TRUE ;
|
667 |
|
|
#
|
668 |
|
|
#INST "bridge/pci_io_mux/devsel_iob/dat_out_reg" IOB = TRUE ;
|
669 |
|
|
#INST "bridge/pci_io_mux/devsel_iob/en_out_reg" IOB = TRUE ;
|
670 |
|
|
#
|
671 |
|
|
#INST "bridge/pci_io_mux/stop_iob/dat_out_reg" IOB = TRUE ;
|
672 |
|
|
#INST "bridge/pci_io_mux/stop_iob/en_out_reg" IOB = TRUE ;
|
673 |
|
|
#
|
674 |
|
|
#INST "bridge/pci_io_mux/par_iob/dat_out_reg" IOB = TRUE ;
|
675 |
|
|
#INST "bridge/pci_io_mux/par_iob/en_out_reg" IOB = TRUE ;
|
676 |
|
|
#
|
677 |
|
|
#INST "bridge/pci_io_mux/perr_iob/dat_out_reg" IOB = TRUE ;
|
678 |
|
|
#INST "bridge/pci_io_mux/perr_iob/en_out_reg" IOB = TRUE ;
|
679 |
|
|
#
|
680 |
|
|
#INST "bridge/pci_io_mux/serr_iob/dat_out_reg" IOB = TRUE ;
|
681 |
|
|
#INST "bridge/pci_io_mux/serr_iob/en_out_reg" IOB = TRUE ;
|
682 |
|
|
#
|
683 |
|
|
#INST "bridge/pci_io_mux/req_iob/dat_out_reg" IOB = TRUE ;
|
684 |
|
|
#INST "bridge/pci_io_mux/req_iob/en_out_reg" IOB = TRUE ;
|
685 |
|
|
|
686 |
|
|
#INST "bridge/wishbone_slave_unit/pci_initiator_if" TNM=FFS:PCI_MIF_FFS ;
|
687 |
|
|
#INST "bridge/wishbone_slave_unit/pci_initiator_sm" TNM=FFS:PCI_MSM_FFS ;
|
688 |
|
|
#INST "bridge/pci_io_mux/frame_iob/dat_out_reg" TNM=FFS:PCI_O_FFS ;
|
689 |
|
|
#INST "bridge/parity_checker" TNM=FFS:PCI_PAR_FFS ;
|
690 |
|
|
#INST "bridge/input_register" TNM=FFS:PCI_I_FFS ;
|
691 |
|
|
|
692 |
|
|
#TIMEGRP "ALL_PCI_FFS" = "PCI_O_FFS" ;
|
693 |
|
|
|
694 |
|
|
#TIMESPEC TS_PCI_AD_SETUP = FROM : "PCI_AD" : TO : "ALL_PCI_FFS" : 7.000 ;
|
695 |
|
|
#TIMESPEC TS_PCI_CBE_SETUP = FROM : "PCI_CBE" : TO : "ALL_PCI_FFS" : 7.000 ;
|
696 |
|
|
#TIMESPEC TS_PCI_CTRL_SETUP = FROM : "PCI_CTRL" : TO : "ALL_PCI_FFS" : 7.000 ;
|
697 |
|
|
|
698 |
|
|
#TIMESPEC TS_PCI_REQ_TIME_OUT = FROM : "ALL_PCI_FFS" : TO : "PCI_REQ" : 12.000 ;
|
699 |
|
|
#TIMESPEC TS_PCI_GNT_SETUP = FROM : "PCI_GNT" : TO : "ALL_PCI_FFS" : 10.000 ;
|
700 |
|
|
|
701 |
|
|
#TIMESPEC TS_PCI_AD_HOLD = FROM : "ALL_PCI_FFS" : TO : "PCI_AD" : 11.000 ;
|
702 |
|
|
#TIMESPEC TS_PCI_CBE_HOLD = FROM : "ALL_PCI_FFS" : TO : "PCI_CBE" : 11.000 ;
|
703 |
|
|
#TIMESPEC TS_PCI_CTRL_HOLD = FROM : "ALL_PCI_FFS" : TO : "PCI_CTRL" : 11.000 ;
|