]>
Commit | Line | Data |
---|---|---|
40a1f26c | 1 | ////////////////////////////////////////////////////////////////////// |
2 | //// //// | |
3 | //// File name "wb_slave_unit.v" //// | |
4 | //// //// | |
5 | //// This file is part of the "PCI bridge" project //// | |
6 | //// http://www.opencores.org/cores/pci/ //// | |
7 | //// //// | |
8 | //// Author(s): //// | |
9 | //// - Miha Dolenc (mihad@opencores.org) //// | |
10 | //// //// | |
11 | //// All additional information is avaliable in the README //// | |
12 | //// file. //// | |
13 | //// //// | |
14 | //// //// | |
15 | ////////////////////////////////////////////////////////////////////// | |
16 | //// //// | |
17 | //// Copyright (C) 2001 Miha Dolenc, mihad@opencores.org //// | |
18 | //// //// | |
19 | //// This source file may be used and distributed without //// | |
20 | //// restriction provided that this copyright statement is not //// | |
21 | //// removed from the file and that any derivative work contains //// | |
22 | //// the original copyright notice and the associated disclaimer. //// | |
23 | //// //// | |
24 | //// This source file is free software; you can redistribute it //// | |
25 | //// and/or modify it under the terms of the GNU Lesser General //// | |
26 | //// Public License as published by the Free Software Foundation; //// | |
27 | //// either version 2.1 of the License, or (at your option) any //// | |
28 | //// later version. //// | |
29 | //// //// | |
30 | //// This source is distributed in the hope that it will be //// | |
31 | //// useful, but WITHOUT ANY WARRANTY; without even the implied //// | |
32 | //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// | |
33 | //// PURPOSE. See the GNU Lesser General Public License for more //// | |
34 | //// details. //// | |
35 | //// //// | |
36 | //// You should have received a copy of the GNU Lesser General //// | |
37 | //// Public License along with this source; if not, download it //// | |
38 | //// from http://www.opencores.org/lgpl.shtml //// | |
39 | //// //// | |
40 | ////////////////////////////////////////////////////////////////////// | |
41 | // | |
42 | // CVS Revision History | |
43 | // | |
44 | // $Log: pci_wb_slave_unit.v,v $ | |
45 | // Revision 1.1 2007-03-20 17:50:56 sithglan | |
46 | // add shit | |
47 | // | |
48 | // Revision 1.4 2006/07/04 13:16:19 mihad | |
49 | // Write burst performance patch applied. | |
50 | // Not tested. Everything should be backwards | |
51 | // compatible, since functional code is ifdefed. | |
52 | // | |
53 | // Revision 1.3 2004/01/24 11:54:18 mihad | |
54 | // Update! SPOCI Implemented! | |
55 | // | |
56 | // Revision 1.2 2003/10/17 09:11:52 markom | |
57 | // mbist signals updated according to newest convention | |
58 | // | |
59 | // Revision 1.1 2003/01/27 16:49:31 mihad | |
60 | // Changed module and file names. Updated scripts accordingly. FIFO synchronizations changed. | |
61 | // | |
62 | // Revision 1.8 2002/10/18 03:36:37 tadejm | |
63 | // Changed wrong signal name mbist_sen into mbist_ctrl_i. | |
64 | // | |
65 | // Revision 1.7 2002/10/17 22:49:22 tadejm | |
66 | // Changed BIST signals for RAMs. | |
67 | // | |
68 | // Revision 1.6 2002/10/11 10:09:01 mihad | |
69 | // Added additional testcase and changed rst name in BIST to trst | |
70 | // | |
71 | // Revision 1.5 2002/10/08 17:17:06 mihad | |
72 | // Added BIST signals for RAMs. | |
73 | // | |
74 | // Revision 1.4 2002/09/25 15:53:52 mihad | |
75 | // Removed all logic from asynchronous reset network | |
76 | // | |
77 | // Revision 1.3 2002/02/01 15:25:13 mihad | |
78 | // Repaired a few bugs, updated specification, added test bench files and design document | |
79 | // | |
80 | // Revision 1.2 2001/10/05 08:14:30 mihad | |
81 | // Updated all files with inclusion of timescale file for simulation purposes. | |
82 | // | |
83 | // Revision 1.1.1.1 2001/10/02 15:33:46 mihad | |
84 | // New project directory structure | |
85 | // | |
86 | // | |
87 | ||
88 | // Module instantiates and connects other modules lower in hierarcy | |
89 | // Wishbone slave unit consists of modules that together form datapath | |
90 | // between external WISHBONE masters and external PCI targets | |
91 | `include "pci_constants.v" | |
92 | ||
93 | // synopsys translate_off | |
94 | `include "timescale.v" | |
95 | // synopsys translate_on | |
96 | ||
97 | module pci_wb_slave_unit | |
98 | ( | |
99 | reset_in, | |
100 | wb_clock_in, | |
101 | pci_clock_in, | |
102 | ADDR_I, | |
103 | SDATA_I, | |
104 | SDATA_O, | |
105 | CYC_I, | |
106 | STB_I, | |
107 | WE_I, | |
108 | SEL_I, | |
109 | ACK_O, | |
110 | RTY_O, | |
111 | ERR_O, | |
112 | CAB_I, | |
113 | wbu_map_in, | |
114 | wbu_pref_en_in, | |
115 | wbu_mrl_en_in, | |
116 | wbu_pci_drcomp_pending_in, | |
117 | wbu_conf_data_in, | |
118 | wbu_pciw_empty_in, | |
119 | wbu_bar0_in, | |
120 | wbu_bar1_in, | |
121 | wbu_bar2_in, | |
122 | wbu_bar3_in, | |
123 | wbu_bar4_in, | |
124 | wbu_bar5_in, | |
125 | wbu_am0_in, | |
126 | wbu_am1_in, | |
127 | wbu_am2_in, | |
128 | wbu_am3_in, | |
129 | wbu_am4_in, | |
130 | wbu_am5_in, | |
131 | wbu_ta0_in, | |
132 | wbu_ta1_in, | |
133 | wbu_ta2_in, | |
134 | wbu_ta3_in, | |
135 | wbu_ta4_in, | |
136 | wbu_ta5_in, | |
137 | wbu_at_en_in, | |
138 | wbu_ccyc_addr_in , | |
139 | wbu_master_enable_in, | |
140 | wb_init_complete_in, | |
141 | wbu_cache_line_size_not_zero, | |
142 | wbu_cache_line_size_in, | |
143 | wbu_pciif_gnt_in, | |
144 | wbu_pciif_frame_in, | |
145 | wbu_pciif_irdy_in, | |
146 | wbu_pciif_trdy_in, | |
147 | wbu_pciif_trdy_reg_in, | |
148 | wbu_pciif_stop_in, | |
149 | wbu_pciif_stop_reg_in, | |
150 | wbu_pciif_devsel_in, | |
151 | wbu_pciif_devsel_reg_in, | |
152 | wbu_pciif_ad_reg_in, | |
153 | wbu_pciif_req_out, | |
154 | wbu_pciif_frame_out, | |
155 | wbu_pciif_frame_en_out, | |
156 | wbu_pciif_frame_en_in, | |
157 | wbu_pciif_frame_out_in, | |
158 | wbu_pciif_frame_load_out, | |
159 | wbu_pciif_irdy_out, | |
160 | wbu_pciif_irdy_en_out, | |
161 | wbu_pciif_ad_out, | |
162 | wbu_pciif_ad_en_out, | |
163 | wbu_pciif_cbe_out, | |
164 | wbu_pciif_cbe_en_out, | |
165 | wbu_err_addr_out, | |
166 | wbu_err_bc_out, | |
167 | wbu_err_signal_out, | |
168 | wbu_err_source_out, | |
169 | wbu_err_rty_exp_out, | |
170 | wbu_tabort_rec_out, | |
171 | wbu_mabort_rec_out, | |
172 | wbu_conf_offset_out, | |
173 | wbu_conf_renable_out, | |
174 | wbu_conf_wenable_out, | |
175 | wbu_conf_be_out, | |
176 | wbu_conf_data_out, | |
177 | wbu_del_read_comp_pending_out, | |
178 | wbu_wbw_fifo_empty_out, | |
179 | wbu_latency_tim_val_in, | |
180 | wbu_ad_load_out, | |
181 | wbu_ad_load_on_transfer_out | |
182 | ||
183 | `ifdef PCI_BIST | |
184 | , | |
185 | // debug chain signals | |
186 | mbist_si_i, // bist scan serial in | |
187 | mbist_so_o, // bist scan serial out | |
188 | mbist_ctrl_i // bist chain shift control | |
189 | `endif | |
190 | ); | |
191 | ||
192 | input reset_in, | |
193 | wb_clock_in, | |
194 | pci_clock_in ; | |
195 | ||
196 | input [31:0] ADDR_I ; | |
197 | input [31:0] SDATA_I ; | |
198 | output [31:0] SDATA_O ; | |
199 | input CYC_I ; | |
200 | input STB_I ; | |
201 | input WE_I ; | |
202 | input [3:0] SEL_I ; | |
203 | output ACK_O ; | |
204 | output RTY_O ; | |
205 | output ERR_O ; | |
206 | input CAB_I ; | |
207 | ||
208 | input [5:0] wbu_map_in ; | |
209 | input [5:0] wbu_pref_en_in ; | |
210 | input [5:0] wbu_mrl_en_in ; | |
211 | ||
212 | input wbu_pci_drcomp_pending_in ; | |
213 | ||
214 | input [31:0] wbu_conf_data_in ; | |
215 | ||
216 | input wbu_pciw_empty_in ; | |
217 | ||
218 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_bar0_in ; | |
219 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_bar1_in ; | |
220 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_bar2_in ; | |
221 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_bar3_in ; | |
222 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_bar4_in ; | |
223 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_bar5_in ; | |
224 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_am0_in ; | |
225 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_am1_in ; | |
226 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_am2_in ; | |
227 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_am3_in ; | |
228 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_am4_in ; | |
229 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_am5_in ; | |
230 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_ta0_in ; | |
231 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_ta1_in ; | |
232 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_ta2_in ; | |
233 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_ta3_in ; | |
234 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_ta4_in ; | |
235 | input [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] wbu_ta5_in ; | |
236 | input [5:0] wbu_at_en_in ; | |
237 | ||
238 | input [23:0] wbu_ccyc_addr_in ; | |
239 | ||
240 | input wbu_master_enable_in ; | |
241 | input wb_init_complete_in ; | |
242 | ||
243 | input wbu_cache_line_size_not_zero ; | |
244 | input [7:0] wbu_cache_line_size_in ; | |
245 | ||
246 | input wbu_pciif_gnt_in ; | |
247 | input wbu_pciif_frame_in ; | |
248 | input wbu_pciif_frame_en_in ; | |
249 | input wbu_pciif_irdy_in ; | |
250 | input wbu_pciif_trdy_in; | |
251 | input wbu_pciif_trdy_reg_in; | |
252 | input wbu_pciif_stop_in ; | |
253 | input wbu_pciif_stop_reg_in ; | |
254 | input wbu_pciif_devsel_in ; | |
255 | input wbu_pciif_devsel_reg_in ; | |
256 | input [31:0] wbu_pciif_ad_reg_in ; | |
257 | ||
258 | output wbu_pciif_req_out ; | |
259 | output wbu_pciif_frame_out ; | |
260 | output wbu_pciif_frame_en_out ; | |
261 | input wbu_pciif_frame_out_in ; | |
262 | output wbu_pciif_frame_load_out ; | |
263 | output wbu_pciif_irdy_out ; | |
264 | output wbu_pciif_irdy_en_out ; | |
265 | output [31:0] wbu_pciif_ad_out ; | |
266 | output wbu_pciif_ad_en_out ; | |
267 | output [3:0] wbu_pciif_cbe_out ; | |
268 | output wbu_pciif_cbe_en_out ; | |
269 | ||
270 | output [31:0] wbu_err_addr_out ; | |
271 | output [3:0] wbu_err_bc_out ; | |
272 | output wbu_err_signal_out ; | |
273 | output wbu_err_source_out ; | |
274 | output wbu_err_rty_exp_out ; | |
275 | output wbu_tabort_rec_out ; | |
276 | output wbu_mabort_rec_out ; | |
277 | ||
278 | output [11:0] wbu_conf_offset_out ; | |
279 | output wbu_conf_renable_out ; | |
280 | output wbu_conf_wenable_out ; | |
281 | output [3:0] wbu_conf_be_out ; | |
282 | output [31:0] wbu_conf_data_out ; | |
283 | ||
284 | output wbu_del_read_comp_pending_out ; | |
285 | output wbu_wbw_fifo_empty_out ; | |
286 | ||
287 | input [7:0] wbu_latency_tim_val_in ; | |
288 | ||
289 | output wbu_ad_load_out ; | |
290 | output wbu_ad_load_on_transfer_out ; | |
291 | ||
292 | `ifdef PCI_BIST | |
293 | /*----------------------------------------------------- | |
294 | BIST debug chain port signals | |
295 | -----------------------------------------------------*/ | |
296 | input mbist_si_i; // bist scan serial in | |
297 | output mbist_so_o; // bist scan serial out | |
298 | input [`PCI_MBIST_CTRL_WIDTH - 1:0] mbist_ctrl_i; // bist chain shift control | |
299 | `endif | |
300 | ||
301 | // pci master interface outputs | |
302 | wire [31:0] pcim_if_address_out ; | |
303 | wire [3:0] pcim_if_bc_out ; | |
304 | wire [31:0] pcim_if_data_out ; | |
305 | wire [3:0] pcim_if_be_out ; | |
306 | wire pcim_if_req_out ; | |
307 | wire pcim_if_rdy_out ; | |
308 | wire pcim_if_last_out ; | |
309 | wire pcim_if_wbw_renable_out ; | |
310 | wire pcim_if_wbr_wenable_out ; | |
311 | wire [31:0] pcim_if_wbr_data_out ; | |
312 | wire [3:0] pcim_if_wbr_be_out ; | |
313 | wire [3:0] pcim_if_wbr_control_out ; | |
314 | wire pcim_if_del_complete_out ; | |
315 | wire pcim_if_del_error_out ; | |
316 | wire pcim_if_del_rty_exp_out ; | |
317 | wire [31:0] pcim_if_err_addr_out ; | |
318 | wire [3:0] pcim_if_err_bc_out ; | |
319 | wire pcim_if_err_signal_out ; | |
320 | wire pcim_if_err_source_out ; | |
321 | wire pcim_if_err_rty_exp_out ; | |
322 | wire pcim_if_tabort_out ; | |
323 | wire pcim_if_mabort_out ; | |
324 | wire [31:0] pcim_if_next_data_out ; | |
325 | wire [3:0] pcim_if_next_be_out ; | |
326 | wire pcim_if_next_last_out ; | |
327 | wire pcim_if_posted_write_not_present_out ; | |
328 | ||
329 | ||
330 | ||
331 | wire pcim_sm_req_out ; | |
332 | wire pcim_sm_frame_out ; | |
333 | wire pcim_sm_frame_en_out ; | |
334 | wire pcim_sm_irdy_out ; | |
335 | wire pcim_sm_irdy_en_out ; | |
336 | wire [31:0] pcim_sm_ad_out ; | |
337 | wire pcim_sm_ad_en_out ; | |
338 | wire [3:0] pcim_sm_cbe_out ; | |
339 | wire pcim_sm_cbe_en_out ; | |
340 | wire pcim_sm_ad_load_out ; | |
341 | wire pcim_sm_ad_load_on_transfer_out ; | |
342 | ||
343 | wire pcim_sm_wait_out ; | |
344 | wire pcim_sm_wtransfer_out ; | |
345 | wire pcim_sm_rtransfer_out ; | |
346 | wire pcim_sm_retry_out ; | |
347 | wire pcim_sm_rerror_out ; | |
348 | wire pcim_sm_first_out ; | |
349 | wire pcim_sm_mabort_out ; | |
350 | wire pcim_sm_frame_load_out ; | |
351 | ||
352 | assign wbu_pciif_frame_load_out = pcim_sm_frame_load_out ; | |
353 | ||
354 | assign wbu_err_addr_out = pcim_if_err_addr_out ; | |
355 | assign wbu_err_bc_out = pcim_if_err_bc_out ; | |
356 | assign wbu_err_signal_out = pcim_if_err_signal_out ; | |
357 | assign wbu_err_source_out = pcim_if_err_source_out ; | |
358 | assign wbu_err_rty_exp_out = pcim_if_err_rty_exp_out ; | |
359 | assign wbu_tabort_rec_out = pcim_if_tabort_out ; | |
360 | assign wbu_mabort_rec_out = pcim_if_mabort_out ; | |
361 | ||
362 | assign wbu_wbw_fifo_empty_out = pcim_if_posted_write_not_present_out ; | |
363 | ||
364 | // pci master state machine outputs | |
365 | // pci interface signals | |
366 | assign wbu_pciif_req_out = pcim_sm_req_out ; | |
367 | assign wbu_pciif_frame_out = pcim_sm_frame_out ; | |
368 | assign wbu_pciif_frame_en_out = pcim_sm_frame_en_out ; | |
369 | assign wbu_pciif_irdy_out = pcim_sm_irdy_out ; | |
370 | assign wbu_pciif_irdy_en_out = pcim_sm_irdy_en_out ; | |
371 | assign wbu_pciif_ad_out = pcim_sm_ad_out ; | |
372 | assign wbu_pciif_ad_en_out = pcim_sm_ad_en_out ; | |
373 | assign wbu_pciif_cbe_out = pcim_sm_cbe_out ; | |
374 | assign wbu_pciif_cbe_en_out = pcim_sm_cbe_en_out ; | |
375 | assign wbu_ad_load_out = pcim_sm_ad_load_out ; | |
376 | assign wbu_ad_load_on_transfer_out = pcim_sm_ad_load_on_transfer_out ; | |
377 | ||
378 | // signals to internal of the core | |
379 | wire [31:0] pcim_sm_data_out ; | |
380 | ||
381 | // wishbone slave state machine outputs | |
382 | wire [3:0] wbs_sm_del_bc_out ; | |
383 | wire wbs_sm_del_req_out ; | |
384 | wire wbs_sm_del_done_out ; | |
385 | wire wbs_sm_del_burst_out ; | |
386 | wire wbs_sm_del_write_out ; | |
387 | wire [11:0] wbs_sm_conf_offset_out ; | |
388 | wire wbs_sm_conf_renable_out ; | |
389 | wire wbs_sm_conf_wenable_out ; | |
390 | wire [3:0] wbs_sm_conf_be_out ; | |
391 | wire [31:0] wbs_sm_conf_data_out ; | |
392 | wire [31:0] wbs_sm_data_out ; | |
393 | wire [3:0] wbs_sm_cbe_out ; | |
394 | wire wbs_sm_wbw_wenable_out ; | |
395 | wire [3:0] wbs_sm_wbw_control_out ; | |
396 | wire wbs_sm_wbr_renable_out ; | |
397 | wire wbs_sm_wbr_flush_out ; | |
398 | wire wbs_sm_del_in_progress_out ; | |
399 | wire [31:0] wbs_sm_sdata_out ; | |
400 | wire wbs_sm_ack_out ; | |
401 | wire wbs_sm_rty_out ; | |
402 | wire wbs_sm_err_out ; | |
403 | wire wbs_sm_sample_address_out ; | |
404 | ||
405 | assign wbu_conf_offset_out = wbs_sm_conf_offset_out ; | |
406 | assign wbu_conf_renable_out = wbs_sm_conf_renable_out ; | |
407 | assign wbu_conf_wenable_out = wbs_sm_conf_wenable_out ; | |
408 | assign wbu_conf_be_out = ~wbs_sm_conf_be_out ; | |
409 | assign wbu_conf_data_out = wbs_sm_conf_data_out ; | |
410 | ||
411 | assign SDATA_O = wbs_sm_sdata_out ; | |
412 | assign ACK_O = wbs_sm_ack_out ; | |
413 | assign RTY_O = wbs_sm_rty_out ; | |
414 | assign ERR_O = wbs_sm_err_out ; | |
415 | ||
416 | ||
417 | // wbw_wbr fifo outputs | |
418 | ||
419 | // wbw_fifo_outputs: | |
420 | wire [31:0] fifos_wbw_addr_data_out ; | |
421 | wire [3:0] fifos_wbw_cbe_out ; | |
422 | wire [3:0] fifos_wbw_control_out ; | |
423 | wire fifos_wbw_almost_full_out ; | |
424 | wire fifos_wbw_full_out ; | |
425 | wire fifos_wbw_half_full_out; //Robert, burst issue | |
426 | wire fifos_wbw_empty_out ; | |
427 | wire fifos_wbw_transaction_ready_out ; | |
428 | ||
429 | // wbr_fifo_outputs | |
430 | wire [31:0] fifos_wbr_data_out ; | |
431 | wire [3:0] fifos_wbr_be_out ; | |
432 | wire [3:0] fifos_wbr_control_out ; | |
433 | wire fifos_wbr_empty_out ; | |
434 | ||
435 | // address multiplexer outputs | |
436 | wire [5:0] amux_hit_out ; | |
437 | wire [31:0] amux_address_out ; | |
438 | ||
439 | // delayed transaction logic outputs | |
440 | wire [31:0] del_sync_addr_out ; | |
441 | wire [3:0] del_sync_be_out ; | |
442 | wire del_sync_we_out ; | |
443 | wire del_sync_comp_req_pending_out ; | |
444 | wire del_sync_comp_comp_pending_out ; | |
445 | wire del_sync_req_req_pending_out ; | |
446 | wire del_sync_req_comp_pending_out ; | |
447 | wire [3:0] del_sync_bc_out ; | |
448 | wire del_sync_status_out ; | |
449 | wire del_sync_comp_flush_out ; | |
450 | wire del_sync_burst_out ; | |
451 | ||
452 | assign wbu_del_read_comp_pending_out = del_sync_comp_comp_pending_out ; | |
453 | ||
454 | // delayed write storage output | |
455 | wire [31:0] del_write_data_out ; | |
456 | ||
457 | // config. cycle address decoder output | |
458 | wire [31:0] ccyc_addr_out ; | |
459 | ||
460 | ||
461 | // WISHBONE slave interface inputs | |
462 | wire [4:0] wbs_sm_hit_in = amux_hit_out[5:1] ; | |
463 | wire wbs_sm_conf_hit_in = amux_hit_out[0] ; | |
464 | wire [4:0] wbs_sm_map_in = wbu_map_in[5:1] ; | |
465 | wire [4:0] wbs_sm_pref_en_in = wbu_pref_en_in[5:1] ; | |
466 | wire [4:0] wbs_sm_mrl_en_in = wbu_mrl_en_in[5:1] ; | |
467 | wire [31:0] wbs_sm_addr_in = amux_address_out ; | |
468 | wire [3:0] wbs_sm_del_bc_in = del_sync_bc_out ; | |
469 | wire wbs_sm_del_req_pending_in = del_sync_req_req_pending_out ; | |
470 | wire wbs_sm_wb_del_comp_pending_in = del_sync_req_comp_pending_out ; | |
471 | wire wbs_sm_pci_drcomp_pending_in = wbu_pci_drcomp_pending_in ; | |
472 | wire wbs_sm_del_write_in = del_sync_we_out ; | |
473 | wire wbs_sm_del_error_in = del_sync_status_out ; | |
474 | wire [31:0] wbs_sm_del_addr_in = del_sync_addr_out ; | |
475 | wire [3:0] wbs_sm_del_be_in = del_sync_be_out ; | |
476 | wire [31:0] wbs_sm_conf_data_in = wbu_conf_data_in ; | |
477 | wire wbs_sm_wbw_almost_full_in = fifos_wbw_almost_full_out ; | |
478 | wire wbs_sm_wbw_full_in = fifos_wbw_full_out ; | |
479 | wire wbs_sm_wbw_half_full_in = fifos_wbw_half_full_out; ////Robert, burst issue | |
480 | wire [3:0] wbs_sm_wbr_be_in = fifos_wbr_be_out ; | |
481 | wire [31:0] wbs_sm_wbr_data_in = fifos_wbr_data_out ; | |
482 | wire [3:0] wbs_sm_wbr_control_in = fifos_wbr_control_out ; | |
483 | wire wbs_sm_wbr_empty_in = fifos_wbr_empty_out ; | |
484 | wire wbs_sm_pciw_empty_in = wbu_pciw_empty_in ; | |
485 | wire wbs_sm_lock_in = ~wbu_master_enable_in ; | |
486 | wire wbs_sm_cache_line_size_not_zero = wbu_cache_line_size_not_zero ; | |
487 | wire wbs_sm_cyc_in = CYC_I ; | |
488 | wire wbs_sm_stb_in = STB_I ; | |
489 | wire wbs_sm_we_in = WE_I ; | |
490 | wire [3:0] wbs_sm_sel_in = SEL_I ; | |
491 | wire [31:0] wbs_sm_sdata_in = SDATA_I ; | |
492 | wire wbs_sm_cab_in = CAB_I ; | |
493 | wire [31:0] wbs_sm_ccyc_addr_in = ccyc_addr_out ; | |
494 | wire wbs_sm_init_complete_in = wb_init_complete_in ; | |
495 | ||
496 | // WISHBONE slave interface instantiation | |
497 | pci_wb_slave wishbone_slave( | |
498 | .wb_clock_in (wb_clock_in) , | |
499 | .reset_in (reset_in) , | |
500 | .wb_hit_in (wbs_sm_hit_in) , | |
501 | .wb_conf_hit_in (wbs_sm_conf_hit_in) , | |
502 | .wb_map_in (wbs_sm_map_in) , | |
503 | .wb_pref_en_in (wbs_sm_pref_en_in) , | |
504 | .wb_mrl_en_in (wbs_sm_mrl_en_in) , | |
505 | .wb_addr_in (wbs_sm_addr_in), | |
506 | .del_bc_in (wbs_sm_del_bc_in), | |
507 | .wb_del_req_pending_in (wbs_sm_del_req_pending_in), | |
508 | .wb_del_comp_pending_in (wbs_sm_wb_del_comp_pending_in), | |
509 | .pci_drcomp_pending_in (wbs_sm_pci_drcomp_pending_in), | |
510 | .del_bc_out (wbs_sm_del_bc_out), | |
511 | .del_req_out (wbs_sm_del_req_out), | |
512 | .del_done_out (wbs_sm_del_done_out), | |
513 | .del_burst_out (wbs_sm_del_burst_out), | |
514 | .del_write_out (wbs_sm_del_write_out), | |
515 | .del_write_in (wbs_sm_del_write_in), | |
516 | .del_error_in (wbs_sm_del_error_in), | |
517 | .wb_del_addr_in (wbs_sm_del_addr_in), | |
518 | .wb_del_be_in (wbs_sm_del_be_in), | |
519 | .wb_conf_offset_out (wbs_sm_conf_offset_out), | |
520 | .wb_conf_renable_out (wbs_sm_conf_renable_out), | |
521 | .wb_conf_wenable_out (wbs_sm_conf_wenable_out), | |
522 | .wb_conf_be_out (wbs_sm_conf_be_out), | |
523 | .wb_conf_data_in (wbs_sm_conf_data_in), | |
524 | .wb_conf_data_out (wbs_sm_conf_data_out), | |
525 | .wb_data_out (wbs_sm_data_out), | |
526 | .wb_cbe_out (wbs_sm_cbe_out), | |
527 | .wbw_fifo_wenable_out (wbs_sm_wbw_wenable_out), | |
528 | .wbw_fifo_control_out (wbs_sm_wbw_control_out), | |
529 | .wbw_fifo_almost_full_in (wbs_sm_wbw_almost_full_in), | |
530 | .wbw_fifo_full_in (wbs_sm_wbw_full_in), | |
531 | .wbw_fifo_half_full_in (wbs_sm_wbw_half_full_in), ////Robert, burst issue | |
532 | .wbr_fifo_renable_out (wbs_sm_wbr_renable_out), | |
533 | .wbr_fifo_be_in (wbs_sm_wbr_be_in), | |
534 | .wbr_fifo_data_in (wbs_sm_wbr_data_in), | |
535 | .wbr_fifo_control_in (wbs_sm_wbr_control_in), | |
536 | .wbr_fifo_flush_out (wbs_sm_wbr_flush_out), | |
537 | .wbr_fifo_empty_in (wbs_sm_wbr_empty_in), | |
538 | .pciw_fifo_empty_in (wbs_sm_pciw_empty_in), | |
539 | .wbs_lock_in (wbs_sm_lock_in), | |
540 | .init_complete_in (wbs_sm_init_complete_in), | |
541 | .cache_line_size_not_zero (wbs_sm_cache_line_size_not_zero), | |
542 | .del_in_progress_out (wbs_sm_del_in_progress_out), | |
543 | .ccyc_addr_in (wbs_sm_ccyc_addr_in), | |
544 | .sample_address_out (wbs_sm_sample_address_out), | |
545 | .CYC_I (wbs_sm_cyc_in), | |
546 | .STB_I (wbs_sm_stb_in), | |
547 | .WE_I (wbs_sm_we_in), | |
548 | .SEL_I (wbs_sm_sel_in), | |
549 | .SDATA_I (wbs_sm_sdata_in), | |
550 | .SDATA_O (wbs_sm_sdata_out), | |
551 | .ACK_O (wbs_sm_ack_out), | |
552 | .RTY_O (wbs_sm_rty_out), | |
553 | .ERR_O (wbs_sm_err_out), | |
554 | .CAB_I (wbs_sm_cab_in) | |
555 | ); | |
556 | ||
557 | // wbw_wbr_fifos inputs | |
558 | // WBW_FIFO inputs | |
559 | wire fifos_wbw_wenable_in = wbs_sm_wbw_wenable_out; | |
560 | wire [31:0] fifos_wbw_addr_data_in = wbs_sm_data_out ; | |
561 | wire [3:0] fifos_wbw_cbe_in = wbs_sm_cbe_out ; | |
562 | wire [3:0] fifos_wbw_control_in = wbs_sm_wbw_control_out ; | |
563 | wire fifos_wbw_renable_in = pcim_if_wbw_renable_out ; | |
564 | ||
565 | //wire fifos_wbw_flush_in = 1'b0 ; flush for write fifo not used | |
566 | ||
567 | // WBR_FIFO inputs | |
568 | wire fifos_wbr_wenable_in = pcim_if_wbr_wenable_out ; | |
569 | wire [31:0] fifos_wbr_data_in = pcim_if_wbr_data_out ; | |
570 | wire [3:0] fifos_wbr_be_in = pcim_if_wbr_be_out ; | |
571 | wire [3:0] fifos_wbr_control_in = pcim_if_wbr_control_out ; | |
572 | wire fifos_wbr_renable_in = wbs_sm_wbr_renable_out ; | |
573 | wire fifos_wbr_flush_in = wbs_sm_wbr_flush_out || del_sync_comp_flush_out ; | |
574 | ||
575 | // WBW_FIFO and WBR_FIFO instantiation | |
576 | pci_wbw_wbr_fifos fifos | |
577 | ( | |
578 | .wb_clock_in (wb_clock_in), | |
579 | .pci_clock_in (pci_clock_in), | |
580 | .reset_in (reset_in), | |
581 | .wbw_wenable_in (fifos_wbw_wenable_in), | |
582 | .wbw_addr_data_in (fifos_wbw_addr_data_in), | |
583 | .wbw_cbe_in (fifos_wbw_cbe_in), | |
584 | .wbw_control_in (fifos_wbw_control_in), | |
585 | .wbw_renable_in (fifos_wbw_renable_in), | |
586 | .wbw_addr_data_out (fifos_wbw_addr_data_out), | |
587 | .wbw_cbe_out (fifos_wbw_cbe_out), | |
588 | .wbw_control_out (fifos_wbw_control_out), | |
589 | // .wbw_flush_in (fifos_wbw_flush_in), // flush for write fifo not used | |
590 | .wbw_almost_full_out (fifos_wbw_almost_full_out), | |
591 | .wbw_full_out (fifos_wbw_full_out), | |
592 | .wbw_empty_out (fifos_wbw_empty_out), | |
593 | .wbw_transaction_ready_out (fifos_wbw_transaction_ready_out), | |
594 | .wbw_half_full_out (fifos_wbw_half_full_out),////Robert, burst issue | |
595 | .wbr_wenable_in (fifos_wbr_wenable_in), | |
596 | .wbr_data_in (fifos_wbr_data_in), | |
597 | .wbr_be_in (fifos_wbr_be_in), | |
598 | .wbr_control_in (fifos_wbr_control_in), | |
599 | .wbr_renable_in (fifos_wbr_renable_in), | |
600 | .wbr_data_out (fifos_wbr_data_out), | |
601 | .wbr_be_out (fifos_wbr_be_out), | |
602 | .wbr_control_out (fifos_wbr_control_out), | |
603 | .wbr_flush_in (fifos_wbr_flush_in), | |
604 | .wbr_empty_out (fifos_wbr_empty_out) | |
605 | ||
606 | `ifdef PCI_BIST | |
607 | , | |
608 | .mbist_si_i (mbist_si_i), | |
609 | .mbist_so_o (mbist_so_o), | |
610 | .mbist_ctrl_i (mbist_ctrl_i) | |
611 | `endif | |
612 | ) ; | |
613 | ||
614 | wire [31:0] amux_addr_in = ADDR_I ; | |
615 | wire amux_sample_address_in = wbs_sm_sample_address_out ; | |
616 | ||
617 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_bar0_in = wbu_bar0_in ; | |
618 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_bar1_in = wbu_bar1_in ; | |
619 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_bar2_in = wbu_bar2_in ; | |
620 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_bar3_in = wbu_bar3_in ; | |
621 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_bar4_in = wbu_bar4_in ; | |
622 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_bar5_in = wbu_bar5_in ; | |
623 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_am0_in = wbu_am0_in ; | |
624 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_am1_in = wbu_am1_in ; | |
625 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_am2_in = wbu_am2_in ; | |
626 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_am3_in = wbu_am3_in ; | |
627 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_am4_in = wbu_am4_in ; | |
628 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_am5_in = wbu_am5_in ; | |
629 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_ta0_in = wbu_ta0_in ; | |
630 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_ta1_in = wbu_ta1_in ; | |
631 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_ta2_in = wbu_ta2_in ; | |
632 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_ta3_in = wbu_ta3_in ; | |
633 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_ta4_in = wbu_ta4_in ; | |
634 | wire [(`WB_NUM_OF_DEC_ADDR_LINES - 1):0] amux_ta5_in = wbu_ta5_in ; | |
635 | wire [5:0] amux_at_en_in = wbu_at_en_in ; | |
636 | ||
637 | pci_wb_addr_mux wb_addr_dec | |
638 | ( | |
639 | `ifdef REGISTER_WBS_OUTPUTS | |
640 | .clk_in (wb_clock_in), | |
641 | .reset_in (reset_in), | |
642 | .sample_address_in (amux_sample_address_in), | |
643 | `endif | |
644 | .address_in (amux_addr_in), | |
645 | .bar0_in (amux_bar0_in), | |
646 | .bar1_in (amux_bar1_in), | |
647 | .bar2_in (amux_bar2_in), | |
648 | .bar3_in (amux_bar3_in), | |
649 | .bar4_in (amux_bar4_in), | |
650 | .bar5_in (amux_bar5_in), | |
651 | .am0_in (amux_am0_in), | |
652 | .am1_in (amux_am1_in), | |
653 | .am2_in (amux_am2_in), | |
654 | .am3_in (amux_am3_in), | |
655 | .am4_in (amux_am4_in), | |
656 | .am5_in (amux_am5_in), | |
657 | .ta0_in (amux_ta0_in), | |
658 | .ta1_in (amux_ta1_in), | |
659 | .ta2_in (amux_ta2_in), | |
660 | .ta3_in (amux_ta3_in), | |
661 | .ta4_in (amux_ta4_in), | |
662 | .ta5_in (amux_ta5_in), | |
663 | .at_en_in (amux_at_en_in), | |
664 | .hit_out (amux_hit_out), | |
665 | .address_out (amux_address_out) | |
666 | ); | |
667 | ||
668 | // delayed transaction logic inputs | |
669 | wire del_sync_req_in = wbs_sm_del_req_out ; | |
670 | wire del_sync_comp_in = pcim_if_del_complete_out ; | |
671 | wire del_sync_done_in = wbs_sm_del_done_out ; | |
672 | wire del_sync_in_progress_in = wbs_sm_del_in_progress_out ; | |
673 | wire [31:0] del_sync_addr_in = wbs_sm_data_out ; | |
674 | wire [3:0] del_sync_be_in = wbs_sm_conf_be_out ; | |
675 | wire del_sync_we_in = wbs_sm_del_write_out ; | |
676 | wire [3:0] del_sync_bc_in = wbs_sm_del_bc_out ; | |
677 | wire del_sync_status_in = pcim_if_del_error_out ; | |
678 | wire del_sync_burst_in = wbs_sm_del_burst_out ; | |
679 | wire del_sync_retry_expired_in = pcim_if_del_rty_exp_out ; | |
680 | ||
681 | // delayed transaction logic instantiation | |
682 | pci_delayed_sync del_sync ( | |
683 | .reset_in (reset_in), | |
684 | .req_clk_in (wb_clock_in), | |
685 | .comp_clk_in (pci_clock_in), | |
686 | .req_in (del_sync_req_in), | |
687 | .comp_in (del_sync_comp_in), | |
688 | .done_in (del_sync_done_in), | |
689 | .in_progress_in (del_sync_in_progress_in), | |
690 | .comp_req_pending_out (del_sync_comp_req_pending_out), | |
691 | .comp_comp_pending_out(del_sync_comp_comp_pending_out), | |
692 | .req_req_pending_out (del_sync_req_req_pending_out), | |
693 | .req_comp_pending_out (del_sync_req_comp_pending_out), | |
694 | .addr_in (del_sync_addr_in), | |
695 | .be_in (del_sync_be_in), | |
696 | .addr_out (del_sync_addr_out), | |
697 | .be_out (del_sync_be_out), | |
698 | .we_in (del_sync_we_in), | |
699 | .we_out (del_sync_we_out), | |
700 | .bc_in (del_sync_bc_in), | |
701 | .bc_out (del_sync_bc_out), | |
702 | .status_in (del_sync_status_in), | |
703 | .status_out (del_sync_status_out), | |
704 | .comp_flush_out (del_sync_comp_flush_out), | |
705 | .burst_in (del_sync_burst_in), | |
706 | .burst_out (del_sync_burst_out), | |
707 | .retry_expired_in (del_sync_retry_expired_in) | |
708 | ); | |
709 | ||
710 | // delayed write storage inputs | |
711 | wire del_write_we_in = wbs_sm_del_req_out && wbs_sm_del_write_out ; | |
712 | wire [31:0] del_write_data_in = wbs_sm_conf_data_out ; | |
713 | ||
714 | pci_delayed_write_reg delayed_write_data | |
715 | ( | |
716 | .reset_in (reset_in), | |
717 | .req_clk_in (wb_clock_in), | |
718 | .comp_wdata_out (del_write_data_out), | |
719 | .req_we_in (del_write_we_in), | |
720 | .req_wdata_in (del_write_data_in) | |
721 | ); | |
722 | ||
723 | `ifdef HOST | |
724 | // configuration cycle address decoder input | |
725 | wire [31:0] ccyc_addr_in = {8'h00, wbu_ccyc_addr_in} ; | |
726 | ||
727 | pci_conf_cyc_addr_dec ccyc_addr_dec | |
728 | ( | |
729 | .ccyc_addr_in (ccyc_addr_in), | |
730 | .ccyc_addr_out (ccyc_addr_out) | |
731 | ) ; | |
732 | `else | |
733 | `ifdef GUEST | |
734 | assign ccyc_addr_out = 32'h0000_0000 ; | |
735 | `endif | |
736 | `endif | |
737 | ||
738 | // pci master interface inputs | |
739 | wire [31:0] pcim_if_wbw_addr_data_in = fifos_wbw_addr_data_out ; | |
740 | wire [3:0] pcim_if_wbw_cbe_in = fifos_wbw_cbe_out ; | |
741 | wire [3:0] pcim_if_wbw_control_in = fifos_wbw_control_out ; | |
742 | wire pcim_if_wbw_empty_in = fifos_wbw_empty_out ; | |
743 | wire pcim_if_wbw_transaction_ready_in = fifos_wbw_transaction_ready_out ; | |
744 | wire [31:0] pcim_if_data_in = pcim_sm_data_out ; | |
745 | wire [31:0] pcim_if_del_wdata_in = del_write_data_out ; | |
746 | wire pcim_if_del_req_in = del_sync_comp_req_pending_out ; | |
747 | wire [31:0] pcim_if_del_addr_in = del_sync_addr_out ; | |
748 | wire [3:0] pcim_if_del_bc_in = del_sync_bc_out ; | |
749 | wire [3:0] pcim_if_del_be_in = del_sync_be_out ; | |
750 | wire pcim_if_del_burst_in = del_sync_burst_out ; | |
751 | wire pcim_if_del_we_in = del_sync_we_out ; | |
752 | wire [7:0] pcim_if_cache_line_size_in = wbu_cache_line_size_in ; | |
753 | wire pcim_if_wait_in = pcim_sm_wait_out ; | |
754 | wire pcim_if_wtransfer_in = pcim_sm_wtransfer_out ; | |
755 | wire pcim_if_rtransfer_in = pcim_sm_rtransfer_out ; | |
756 | wire pcim_if_retry_in = pcim_sm_retry_out ; | |
757 | wire pcim_if_rerror_in = pcim_sm_rerror_out ; | |
758 | wire pcim_if_first_in = pcim_sm_first_out ; | |
759 | wire pcim_if_mabort_in = pcim_sm_mabort_out ; | |
760 | ||
761 | pci_master32_sm_if pci_initiator_if | |
762 | ( | |
763 | .clk_in (pci_clock_in), | |
764 | .reset_in (reset_in), | |
765 | .address_out (pcim_if_address_out), | |
766 | .bc_out (pcim_if_bc_out), | |
767 | .data_out (pcim_if_data_out), | |
768 | .data_in (pcim_if_data_in), | |
769 | .be_out (pcim_if_be_out), | |
770 | .req_out (pcim_if_req_out), | |
771 | .rdy_out (pcim_if_rdy_out), | |
772 | .last_out (pcim_if_last_out), | |
773 | .wbw_renable_out (pcim_if_wbw_renable_out), | |
774 | .wbw_fifo_addr_data_in (pcim_if_wbw_addr_data_in), | |
775 | .wbw_fifo_cbe_in (pcim_if_wbw_cbe_in), | |
776 | .wbw_fifo_control_in (pcim_if_wbw_control_in), | |
777 | .wbw_fifo_empty_in (pcim_if_wbw_empty_in), | |
778 | .wbw_fifo_transaction_ready_in (pcim_if_wbw_transaction_ready_in), | |
779 | .wbr_fifo_wenable_out (pcim_if_wbr_wenable_out), | |
780 | .wbr_fifo_data_out (pcim_if_wbr_data_out), | |
781 | .wbr_fifo_be_out (pcim_if_wbr_be_out), | |
782 | .wbr_fifo_control_out (pcim_if_wbr_control_out), | |
783 | .del_wdata_in (pcim_if_del_wdata_in), | |
784 | .del_complete_out (pcim_if_del_complete_out), | |
785 | .del_req_in (pcim_if_del_req_in), | |
786 | .del_addr_in (pcim_if_del_addr_in), | |
787 | .del_bc_in (pcim_if_del_bc_in), | |
788 | .del_be_in (pcim_if_del_be_in), | |
789 | .del_burst_in (pcim_if_del_burst_in), | |
790 | .del_error_out (pcim_if_del_error_out), | |
791 | .del_rty_exp_out (pcim_if_del_rty_exp_out), | |
792 | .del_we_in (pcim_if_del_we_in), | |
793 | .err_addr_out (pcim_if_err_addr_out), | |
794 | .err_bc_out (pcim_if_err_bc_out), | |
795 | .err_signal_out (pcim_if_err_signal_out), | |
796 | .err_source_out (pcim_if_err_source_out), | |
797 | .err_rty_exp_out (pcim_if_err_rty_exp_out), | |
798 | .cache_line_size_in (pcim_if_cache_line_size_in), | |
799 | .mabort_received_out (pcim_if_mabort_out), | |
800 | .tabort_received_out (pcim_if_tabort_out), | |
801 | .next_data_out (pcim_if_next_data_out), | |
802 | .next_be_out (pcim_if_next_be_out), | |
803 | .next_last_out (pcim_if_next_last_out), | |
804 | .wait_in (pcim_if_wait_in), | |
805 | .wtransfer_in (pcim_if_wtransfer_in), | |
806 | .rtransfer_in (pcim_if_rtransfer_in), | |
807 | .retry_in (pcim_if_retry_in), | |
808 | .rerror_in (pcim_if_rerror_in), | |
809 | .first_in (pcim_if_first_in), | |
810 | .mabort_in (pcim_if_mabort_in), | |
811 | .posted_write_not_present_out (pcim_if_posted_write_not_present_out) | |
812 | ); | |
813 | ||
814 | // pci master state machine inputs | |
815 | wire pcim_sm_gnt_in = wbu_pciif_gnt_in ; | |
816 | wire pcim_sm_frame_in = wbu_pciif_frame_in ; | |
817 | wire pcim_sm_irdy_in = wbu_pciif_irdy_in ; | |
818 | wire pcim_sm_trdy_in = wbu_pciif_trdy_in; | |
819 | wire pcim_sm_stop_in = wbu_pciif_stop_in ; | |
820 | wire pcim_sm_devsel_in = wbu_pciif_devsel_in ; | |
821 | wire [31:0] pcim_sm_ad_reg_in = wbu_pciif_ad_reg_in ; | |
822 | wire [31:0] pcim_sm_address_in = pcim_if_address_out ; | |
823 | wire [3:0] pcim_sm_bc_in = pcim_if_bc_out ; | |
824 | wire [31:0] pcim_sm_data_in = pcim_if_data_out ; | |
825 | wire [3:0] pcim_sm_be_in = pcim_if_be_out ; | |
826 | wire pcim_sm_req_in = pcim_if_req_out ; | |
827 | wire pcim_sm_rdy_in = pcim_if_rdy_out ; | |
828 | wire pcim_sm_last_in = pcim_if_last_out ; | |
829 | wire [7:0] pcim_sm_latency_tim_val_in = wbu_latency_tim_val_in ; | |
830 | wire [31:0] pcim_sm_next_data_in = pcim_if_next_data_out ; | |
831 | wire [3:0] pcim_sm_next_be_in = pcim_if_next_be_out ; | |
832 | wire pcim_sm_next_last_in = pcim_if_next_last_out ; | |
833 | wire pcim_sm_trdy_reg_in = wbu_pciif_trdy_reg_in ; | |
834 | wire pcim_sm_stop_reg_in = wbu_pciif_stop_reg_in ; | |
835 | wire pcim_sm_devsel_reg_in = wbu_pciif_devsel_reg_in ; | |
836 | wire pcim_sm_frame_en_in = wbu_pciif_frame_en_in ; | |
837 | wire pcim_sm_frame_out_in = wbu_pciif_frame_out_in ; | |
838 | ||
839 | pci_master32_sm pci_initiator_sm | |
840 | ( | |
841 | .clk_in (pci_clock_in), | |
842 | .reset_in (reset_in), | |
843 | .pci_req_out (pcim_sm_req_out), | |
844 | .pci_gnt_in (pcim_sm_gnt_in), | |
845 | .pci_frame_in (pcim_sm_frame_in), | |
846 | .pci_frame_out (pcim_sm_frame_out), | |
847 | .pci_frame_en_out (pcim_sm_frame_en_out), | |
848 | .pci_frame_out_in (pcim_sm_frame_out_in), | |
849 | .pci_frame_load_out (pcim_sm_frame_load_out), | |
850 | .pci_frame_en_in (pcim_sm_frame_en_in), | |
851 | .pci_irdy_in (pcim_sm_irdy_in), | |
852 | .pci_irdy_out (pcim_sm_irdy_out), | |
853 | .pci_irdy_en_out (pcim_sm_irdy_en_out), | |
854 | .pci_trdy_in (pcim_sm_trdy_in), | |
855 | .pci_trdy_reg_in (pcim_sm_trdy_reg_in), | |
856 | .pci_stop_in (pcim_sm_stop_in), | |
857 | .pci_stop_reg_in (pcim_sm_stop_reg_in), | |
858 | .pci_devsel_in (pcim_sm_devsel_in), | |
859 | .pci_devsel_reg_in (pcim_sm_devsel_reg_in), | |
860 | .pci_ad_reg_in (pcim_sm_ad_reg_in), | |
861 | .pci_ad_out (pcim_sm_ad_out), | |
862 | .pci_ad_en_out (pcim_sm_ad_en_out), | |
863 | .pci_cbe_out (pcim_sm_cbe_out), | |
864 | .pci_cbe_en_out (pcim_sm_cbe_en_out), | |
865 | .address_in (pcim_sm_address_in), | |
866 | .bc_in (pcim_sm_bc_in), | |
867 | .data_in (pcim_sm_data_in), | |
868 | .data_out (pcim_sm_data_out), | |
869 | .be_in (pcim_sm_be_in), | |
870 | .req_in (pcim_sm_req_in), | |
871 | .rdy_in (pcim_sm_rdy_in), | |
872 | .last_in (pcim_sm_last_in), | |
873 | .latency_tim_val_in (pcim_sm_latency_tim_val_in), | |
874 | .next_data_in (pcim_sm_next_data_in), | |
875 | .next_be_in (pcim_sm_next_be_in), | |
876 | .next_last_in (pcim_sm_next_last_in), | |
877 | .ad_load_out (pcim_sm_ad_load_out), | |
878 | .ad_load_on_transfer_out (pcim_sm_ad_load_on_transfer_out), | |
879 | .wait_out (pcim_sm_wait_out), | |
880 | .wtransfer_out (pcim_sm_wtransfer_out), | |
881 | .rtransfer_out (pcim_sm_rtransfer_out), | |
882 | .retry_out (pcim_sm_retry_out), | |
883 | .rerror_out (pcim_sm_rerror_out), | |
884 | .first_out (pcim_sm_first_out), | |
885 | .mabort_out (pcim_sm_mabort_out) | |
886 | ) ; | |
887 | ||
888 | endmodule |