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

Subversion Repositories nysa_sata

[/] [nysa_sata/] [trunk/] [rtl/] [sata_stack.v] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 cospan
//sata_stack.v
2
/*
3
Distributed under the MIT license.
4
Copyright (c) 2011 Dave McCoy (dave.mccoy@cospandesign.com)
5
 
6
Permission is hereby granted, free of charge, to any person obtaining a copy of
7
this software and associated documentation files (the "Software"), to deal in
8
the Software without restriction, including without limitation the rights to
9
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
10
of the Software, and to permit persons to whom the Software is furnished to do
11
so, subject to the following conditions:
12
 
13
The above copyright notice and this permission notice shall be included in all
14
copies or substantial portions of the Software.
15
 
16
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
SOFTWARE.
23
*/
24
 
25
`include "sata_defines.v"
26
 
27
module sata_stack (
28
  input               rst,            //reset
29
  input               clk,            //clock used to run the stack
30
  input               data_in_clk,
31
  input               data_in_clk_valid,
32
  input               data_out_clk,
33
  input               data_out_clk_valid,
34
 
35
  input               platform_ready,   //the underlying physical platform is
36 3 cospan
  output              platform_error,   //Underlying platform errored out, the
37
                                        //clock is misaligned, stack should
38
                                        //probably be reset
39
  output              linkup,           //link is finished
40 2 cospan
 
41
  input               send_sync_escape,
42 3 cospan
  input   [15:0]      user_features,
43 2 cospan
 
44
//User Interface
45 3 cospan
  output              sata_ready,
46
  output              sata_busy,
47 2 cospan
 
48 3 cospan
  output              hard_drive_error,
49 2 cospan
 
50 3 cospan
//  input               write_data_stb,
51
//  input               read_data_stb,
52 2 cospan
 
53 3 cospan
  input               execute_command_stb,
54
  input               command_layer_reset,
55
  input   [7:0]       hard_drive_command,
56 2 cospan
  output              pio_data_ready,
57
 
58 3 cospan
  input   [15:0]      sector_count,
59
  input   [47:0]      sector_address,
60 2 cospan
 
61
 
62
  output              dma_activate_stb,
63
  output              d2h_reg_stb,
64
  output              pio_setup_stb,
65
  output              d2h_data_stb,
66
  output              dma_setup_stb,
67 3 cospan
  output              set_device_bits_stb,
68 2 cospan
 
69 3 cospan
  output  [7:0]       d2h_fis,
70 2 cospan
  output              d2h_interrupt,
71
  output              d2h_notification,
72 3 cospan
  output  [3:0]       d2h_port_mult,
73
  output  [7:0]       d2h_device,
74
  output  [47:0]      d2h_lba,
75
  output  [15:0]      d2h_sector_count,
76
  output  [7:0]       d2h_status,
77
  output  [7:0]       d2h_error,
78 2 cospan
 
79 3 cospan
  input   [31:0]      user_din,
80 2 cospan
  input               user_din_stb,
81 3 cospan
  output  [1:0]       user_din_ready,
82
  input   [1:0]       user_din_activate,
83
  output  [23:0]      user_din_size,
84
  output              user_din_empty,
85 2 cospan
 
86 3 cospan
  output  [31:0]      user_dout,
87 2 cospan
  output              user_dout_ready,
88
  input               user_dout_activate,
89
  input               user_dout_stb,
90 3 cospan
  output  [23:0]      user_dout_size,
91 2 cospan
 
92
 
93
  output              transport_layer_ready,
94
  output              link_layer_ready,
95
  output              phy_ready,
96
 
97
//Buffer
98
//Platform Interface
99
  output  [31:0]      tx_dout,
100 3 cospan
  output              tx_is_k,         //Connect All 4 'tx_is_k'to this signal
101 2 cospan
  output              tx_comm_reset,
102
  output              tx_comm_wake,
103
  output              tx_elec_idle,
104
 
105
  input   [31:0]      rx_din,
106 3 cospan
  input   [3:0]       rx_is_k,
107 2 cospan
  input               rx_elec_idle,
108 3 cospan
  input               rx_byte_is_aligned,
109 2 cospan
  input               comm_init_detect,
110
  input               comm_wake_detect,
111 3 cospan
  input               tx_oob_complete,
112
  input               phy_error,
113 2 cospan
 
114
//DMA Specific Control
115
 
116
//Data Control
117 3 cospan
  output  [3:0]       dbg_cc_lax_state,
118
  output  [3:0]       dbg_cw_lax_state,
119 2 cospan
 
120 3 cospan
  output  [3:0]       dbg_t_lax_state,
121 2 cospan
 
122 3 cospan
  output  [3:0]       dbg_li_lax_state,
123
  output  [3:0]       dbg_lr_lax_state,
124
  output  [3:0]       dbg_lw_lax_state,
125
  output  [3:0]       dbg_lw_lax_fstate,
126 2 cospan
 
127
//Link Layer
128
  input               prim_scrambler_en,
129
  input               data_scrambler_en,
130
 
131
  output              dbg_ll_write_ready,
132
  output              dbg_ll_paw,
133
  output              dbg_ll_write_strobe,
134
  output              dbg_ll_send_crc,
135
 
136
//Phy Layer
137 3 cospan
  output  [3:0]       oob_state,
138 2 cospan
 
139
//Primative Detection
140
  output              dbg_detect_sync,
141
  output              dbg_detect_r_rdy,
142
  output              dbg_detect_r_ip,
143
  output              dbg_detect_r_ok,
144
  output              dbg_detect_r_err,
145
  output              dbg_detect_x_rdy,
146
  output              dbg_detect_sof,
147
  output              dbg_detect_eof,
148
  output              dbg_detect_wtrm,
149
  output              dbg_detect_cont,
150
  output              dbg_detect_hold,
151
  output              dbg_detect_holda,
152
  output              dbg_detect_align,
153
  output              dbg_detect_preq_s,
154
  output              dbg_detect_preq_p,
155
  output              dbg_detect_xrdy_xrdy,
156
 
157
  output              dbg_send_holda,
158
 
159 3 cospan
  output  [23:0]      slw_in_data_addra,
160
  output  [12:0]      slw_d_count,
161
  output  [12:0]      slw_write_count,
162
  output  [3:0]       slw_buffer_pos
163 2 cospan
);
164
 
165
//Parameters
166
//Registers/Wires
167
 
168
//Command Layer
169
wire                send_command_stb;
170
wire                send_control_stb;
171
wire                send_data_stb;
172
 
173
wire                if_strobe;
174
wire        [31:0]  if_data;
175
wire                if_ready;
176
wire                if_activate;
177
wire        [23:0]  if_size;
178
 
179
wire                of_strobe;
180
wire        [31:0]  of_data;
181
wire        [1:0]   of_ready;
182
wire        [1:0]   of_activate;
183
wire        [23:0]  of_size;
184
 
185
 
186
//Link Layer
187
wire                ll_sync_escape;
188
wire                ll_write_start;
189
wire                ll_write_strobe;
190
wire                ll_write_finished;
191
wire        [31:0]  ll_write_data;
192 3 cospan
wire        [23:0]  ll_write_size;
193 2 cospan
wire                ll_write_hold;
194
wire                ll_write_abort;
195
 
196
 
197
wire                ll_read_ready;
198
wire                ll_read_start;
199
wire                ll_read_strobe;
200
wire        [31:0]  ll_read_data;
201
wire                ll_read_finished;
202
wire                ll_read_crc_ok;
203
wire                ll_remote_abort;
204
wire                ll_xmit_error;
205
 
206
wire        [31:0]  ll_tx_dout;
207 3 cospan
wire                ll_tx_is_k;
208 2 cospan
 
209
//Phy Layer
210
wire        [31:0]  phy_tx_dout;
211 3 cospan
wire                phy_tx_is_k;
212 2 cospan
 
213
//User Interface state machine
214
 
215
//Transport Layer
216
wire                sync_escape;
217
 
218
wire        [7:0]   h2d_command;
219
wire        [15:0]  h2d_features;
220
wire        [7:0]   h2d_control;
221
wire        [3:0]   h2d_port_mult;
222
wire        [7:0]   h2d_device;
223
wire        [47:0]  h2d_lba;
224
wire        [15:0]  h2d_sector_count;
225
 
226
wire                remote_abort;
227
wire                xmit_error;
228
wire                read_crc_error;
229
 
230
//PIO
231
wire                pio_response;
232
wire                pio_direction;
233
wire        [15:0]  pio_transfer_count;
234
wire        [7:0]   pio_e_status;
235
 
236
//Data Control
237
wire                cl_if_ready;
238
wire                cl_if_activate;
239
wire        [23:0]  cl_if_size;
240
wire                cl_if_strobe;
241
wire        [31:0]  cl_if_data;
242
 
243
wire        [1:0]   cl_of_ready;
244
wire        [1:0]   cl_of_activate;
245
wire                cl_of_strobe;
246
wire        [31:0]  cl_of_data;
247
wire        [23:0]  cl_of_size;
248
 
249
//Link Layer Interface
250
wire                t_sync_escape;
251
wire                t_write_start;
252
wire                t_write_strobe;
253
wire                t_write_finished;
254
wire        [31:0]  t_write_data;
255 3 cospan
wire        [23:0]  t_write_size;
256 2 cospan
wire                t_write_hold;
257
wire                t_write_abort;
258
wire                t_xmit_error;
259
 
260
wire                t_read_start;
261
wire                t_read_ready;
262
wire        [31:0]  t_read_data;
263
wire                t_read_strobe;
264
wire                t_read_finished;
265
wire                t_read_crc_ok;
266
wire                t_remote_abort;
267
//Comand Layer registers
268
 
269
//Submodules
270
sata_command_layer scl (
271
  .rst                  (rst                      ),
272
  .linkup               (linkup                   ),
273
  .clk                  (clk                      ),
274
  .data_in_clk          (data_in_clk              ),
275
  .data_in_clk_valid    (data_in_clk_valid        ),
276
  .data_out_clk         (data_out_clk             ),
277
  .data_out_clk_valid   (data_out_clk_valid       ),
278
 
279
  //Application Interface
280
  .command_layer_ready  (sata_ready               ),
281 3 cospan
  .sata_busy            (sata_busy                ),
282
  .hard_drive_error     (hard_drive_error         ),
283 2 cospan
  .send_sync_escape     (send_sync_escape         ),
284
  .user_features        (user_features            ),
285
 
286 3 cospan
//  .write_data_stb       (write_data_stb           ),
287
//  .read_data_stb        (read_data_stb            ),
288
  .execute_command_stb  (execute_command_stb      ),
289 2 cospan
 
290 3 cospan
  .command_layer_reset  (command_layer_reset      ),
291
  .hard_drive_command   (hard_drive_command       ),
292 2 cospan
  .pio_data_ready       (pio_data_ready           ),
293
 
294
  .sector_count         (sector_count             ),
295
  .sector_address       (sector_address           ),
296
 
297
  .user_din             (user_din                 ),
298
  .user_din_stb         (user_din_stb             ),
299
  .user_din_ready       (user_din_ready           ),
300
  .user_din_activate    (user_din_activate        ),
301
  .user_din_size        (user_din_size            ),
302 3 cospan
  .user_din_empty       (user_din_empty           ),
303 2 cospan
 
304
  .user_dout            (user_dout                ),
305
  .user_dout_ready      (user_dout_ready          ),
306
  .user_dout_activate   (user_dout_activate       ),
307
  .user_dout_stb        (user_dout_stb            ),
308
  .user_dout_size       (user_dout_size           ),
309
 
310
  //Transfer Layer Interface
311
  .transport_layer_ready(transport_layer_ready    ),
312
  .sync_escape          (sync_escape              ),
313
 
314
  .t_send_command_stb   (send_command_stb         ),
315
  .t_send_control_stb   (send_control_stb         ),
316
  .t_send_data_stb      (send_data_stb            ),
317
 
318
  .t_dma_activate_stb   (dma_activate_stb         ),
319
  .t_d2h_reg_stb        (d2h_reg_stb              ),
320
  .t_pio_setup_stb      (pio_setup_stb            ),
321
  .t_d2h_data_stb       (d2h_data_stb             ),
322
  .t_dma_setup_stb      (dma_setup_stb            ),
323
  .t_set_device_bits_stb(set_device_bits_stb      ),
324
 
325
  .t_remote_abort       (remote_abort             ),
326
  .t_xmit_error         (xmit_error               ),
327
  .t_read_crc_error     (read_crc_error           ),
328
 
329
 
330
  //PIO
331
  .t_pio_response       (pio_response             ),
332
  .t_pio_direction      (pio_direction            ),
333
  .t_pio_transfer_count (pio_transfer_count       ),
334
  .t_pio_e_status       (pio_e_status             ),
335
 
336
  //Host to Device Register Values
337
  .h2d_command          (h2d_command              ),
338
  .h2d_features         (h2d_features             ),
339
  .h2d_control          (h2d_control              ),
340
  .h2d_port_mult        (h2d_port_mult            ),
341
  .h2d_device           (h2d_device               ),
342
  .h2d_lba              (h2d_lba                  ),
343
  .h2d_sector_count     (h2d_sector_count         ),
344
 
345
  //Device to Host Register Values
346
  .d2h_interrupt        (d2h_interrupt            ),
347
  .d2h_notification     (d2h_notification         ),
348
  .d2h_port_mult        (d2h_port_mult            ),
349
  .d2h_device           (d2h_device               ),
350
  .d2h_lba              (d2h_lba                  ),
351
  .d2h_sector_count     (d2h_sector_count         ),
352
  .d2h_status           (d2h_status               ),
353
  .d2h_error            (d2h_error                ),
354
 
355
  //command layer data interface
356
  .t_if_strobe          (if_strobe                ),
357
  .t_if_data            (if_data                  ),
358
  .t_if_ready           (if_ready                 ),
359
  .t_if_activate        (if_activate              ),
360
  .t_if_size            (if_size                  ),
361
 
362
  .t_of_strobe          (of_strobe                ),
363
  .t_of_data            (of_data                  ),
364
  .t_of_ready           (of_ready                 ),
365
  .t_of_activate        (of_activate              ),
366
  .t_of_size            (of_size                  ),
367
 
368
  .cl_c_state           (dbg_cc_lax_state         ),
369
  .cl_w_state           (dbg_cw_lax_state         )
370
 
371
);
372
 
373
//Transport Layer
374
sata_transport_layer stl (
375
  .rst                    (rst  | !linkup         ),
376
  .clk                    (clk                    ),
377
  .phy_ready              (phy_ready              ),
378
 
379
  //Status
380
  .transport_layer_ready  (transport_layer_ready  ),
381
  .sync_escape            (sync_escape            ),
382
 
383
  .send_command_stb       (send_command_stb       ),
384
  .send_control_stb       (send_control_stb       ),
385
  .send_data_stb          (send_data_stb          ),
386
 
387
  .dma_activate_stb       (dma_activate_stb       ),
388
  .d2h_reg_stb            (d2h_reg_stb            ),
389
  .pio_setup_stb          (pio_setup_stb          ),
390
  .d2h_data_stb           (d2h_data_stb           ),
391
  .dma_setup_stb          (dma_setup_stb          ),
392
  .set_device_bits_stb    (set_device_bits_stb    ),
393
 
394
  .remote_abort           (remote_abort           ),
395
  .xmit_error             (xmit_error             ),
396
  .read_crc_error         (read_crc_error         ),
397
 
398
  //PIO
399
  .pio_response           (pio_response           ),
400
  .pio_direction          (pio_direction          ),
401
  .pio_transfer_count     (pio_transfer_count     ),
402
  .pio_e_status           (pio_e_status           ),
403
 
404
  //Host to Device Register Values
405
  .h2d_command            (h2d_command            ),
406
  .h2d_features           (h2d_features           ),
407
  .h2d_control            (h2d_control            ),
408
  .h2d_port_mult          (h2d_port_mult          ),
409
  .h2d_device             (h2d_device             ),
410
  .h2d_lba                (h2d_lba                ),
411
  .h2d_sector_count       (h2d_sector_count       ),
412
 
413
  //Device to Host Register Values
414 3 cospan
  .d2h_fis                (d2h_fis                ),
415 2 cospan
  .d2h_interrupt          (d2h_interrupt          ),
416
  .d2h_notification       (d2h_notification       ),
417
  .d2h_port_mult          (d2h_port_mult          ),
418
  .d2h_device             (d2h_device             ),
419
  .d2h_lba                (d2h_lba                ),
420
  .d2h_sector_count       (d2h_sector_count       ),
421
  .d2h_status             (d2h_status             ),
422
  .d2h_error              (d2h_error              ),
423
 
424
  //command layer data interface
425
  .cl_if_ready            (cl_if_ready            ),
426
  .cl_if_activate         (cl_if_activate         ),
427
  .cl_if_size             (cl_if_size             ),
428
  .cl_if_strobe           (cl_if_strobe           ),
429
  .cl_if_data             (cl_if_data             ),
430
 
431
  .cl_of_ready            (cl_of_ready            ),
432
  .cl_of_activate         (cl_of_activate         ),
433
  .cl_of_strobe           (cl_of_strobe           ),
434
  .cl_of_data             (cl_of_data             ),
435
  .cl_of_size             (cl_of_size             ),
436
 
437
 
438
  //Link Layer Interface
439
  .link_layer_ready       (link_layer_ready       ),
440
  .ll_sync_escape         (t_sync_escape          ),
441
 
442
  .ll_write_start         (t_write_start          ),
443
  .ll_write_strobe        (t_write_strobe         ),
444
  .ll_write_finished      (t_write_finished       ),
445
  .ll_write_data          (t_write_data           ),
446
  .ll_write_size          (t_write_size           ),
447
  .ll_write_hold          (t_write_hold           ),
448
  .ll_write_abort         (t_write_abort          ),
449
  .ll_xmit_error          (t_xmit_error           ),
450
 
451
  .ll_read_start          (t_read_start           ),
452
  .ll_read_ready          (t_read_ready           ),
453
  .ll_read_data           (t_read_data            ),
454
  .ll_read_strobe         (t_read_strobe          ),
455
  .ll_read_finished       (t_read_finished        ),
456
  .ll_read_crc_ok         (t_read_crc_ok          ),
457
  .ll_remote_abort        (t_remote_abort         ),
458
 
459
  .lax_state              (dbg_t_lax_state        )
460
 
461
);
462
 
463
sata_link_layer sll(
464
  .rst                    (rst  | !linkup         ),
465
  .clk                    (clk                    ),
466
 
467
  //Status
468
  .link_layer_ready       (link_layer_ready       ),
469
  .sync_escape            (ll_sync_escape         ),
470
  .write_ready            (dbg_ll_write_ready     ),
471
  .post_align_write       (dbg_ll_paw             ),
472
  .hold                   (1'b0                   ),
473
 
474
  //Transport Layer Interface
475
  .write_start            (ll_write_start         ),
476
  .write_strobe           (ll_write_strobe        ),
477
  .write_finished         (ll_write_finished      ),
478
  .write_data             (ll_write_data          ),
479
  .write_size             (ll_write_size          ),
480
  .write_hold             (ll_write_hold          ),
481
  .write_abort            (ll_write_abort         ),
482
 
483
  .read_data              (ll_read_data           ),
484
  .read_strobe            (ll_read_strobe         ),
485
  .read_ready             (ll_read_ready          ),
486
  .read_start             (ll_read_start          ),
487
  .read_finished          (ll_read_finished       ),
488
  .remote_abort           (ll_remote_abort        ),
489
  .xmit_error             (ll_xmit_error          ),
490
  .read_crc_ok            (ll_read_crc_ok         ),
491
 
492
  .prim_scrambler_en      (prim_scrambler_en      ),
493
  .data_scrambler_en      (data_scrambler_en      ),
494
 
495
   //Phy Layer
496
  .phy_ready              (phy_ready              ),
497
  .platform_ready         (platform_ready         ),
498
  .tx_dout                (ll_tx_dout             ),
499 3 cospan
  .tx_is_k                (ll_tx_is_k             ),
500 2 cospan
 
501
  .rx_din                 (rx_din                 ),
502 3 cospan
  .rx_is_k                (rx_is_k                ),
503 2 cospan
  .is_device              (1'b0                   ),
504
 
505
//Primative Detection
506
  .detect_sync            (dbg_detect_sync        ),
507
  .detect_r_rdy           (dbg_detect_r_rdy       ),
508
  .detect_r_ip            (dbg_detect_r_ip        ),
509
  .detect_r_ok            (dbg_detect_r_ok        ),
510
  .detect_r_err           (dbg_detect_r_err       ),
511
  .detect_x_rdy           (dbg_detect_x_rdy       ),
512
  .detect_sof             (dbg_detect_sof         ),
513
  .detect_eof             (dbg_detect_eof         ),
514
  .detect_wtrm            (dbg_detect_wtrm        ),
515
  .detect_cont            (dbg_detect_cont        ),
516
  .detect_hold            (dbg_detect_hold        ),
517
  .detect_holda           (dbg_detect_holda       ),
518
  .detect_align           (dbg_detect_align       ),
519
  .detect_preq_s          (dbg_detect_preq_s      ),
520
  .detect_preq_p          (dbg_detect_preq_p      ),
521
  .detect_xrdy_xrdy       (dbg_detect_xrdy_xrdy   ),
522
 
523
  .dbg_send_holda         (dbg_send_holda         ),
524
 
525
  .send_crc               (dbg_ll_send_crc        ),
526
 
527
 
528
  .lax_i_state            (dbg_li_lax_state       ),
529
  .lax_r_state            (dbg_lr_lax_state       ),
530
  .lax_w_state            (dbg_lw_lax_state       ),
531
  .lax_w_fstate           (dbg_lw_lax_fstate      ),
532
 
533
 
534
  .in_data_addra          (slw_in_data_addra      ),
535
  .d_count                (slw_d_count            ),
536
  .write_count            (slw_write_count        ),
537
  .buffer_pos             (slw_buffer_pos         )
538
 
539
 
540
 
541
 
542
);
543
 
544
sata_phy_layer phy (
545
  .rst                    (rst                    ),
546
  .clk                    (clk                    ),
547
 
548
  //Control/Status
549
  .platform_ready         (platform_ready         ),
550 3 cospan
  .platform_error         (platform_error         ),
551 2 cospan
  .linkup                 (linkup                 ),
552
 
553
  //Platform Interface
554
  .tx_dout                (phy_tx_dout            ),
555 3 cospan
  .tx_is_k                (phy_tx_is_k            ),
556 2 cospan
  .tx_comm_reset          (tx_comm_reset          ),
557
  .tx_comm_wake           (tx_comm_wake           ),
558
  .tx_elec_idle           (tx_elec_idle           ),
559 3 cospan
  .tx_oob_complete        (tx_oob_complete        ),
560 2 cospan
 
561
  .rx_din                 (rx_din                 ),
562 3 cospan
  .rx_is_k                (rx_is_k                ),
563 2 cospan
  .comm_init_detect       (comm_init_detect       ),
564
  .comm_wake_detect       (comm_wake_detect       ),
565
  .rx_elec_idle           (rx_elec_idle           ),
566
  .rx_byte_is_aligned     (rx_byte_is_aligned     ),
567 3 cospan
  .phy_error              (phy_error              ),
568 2 cospan
 
569 3 cospan
  .lax_state              (oob_state              ),
570 2 cospan
  .phy_ready              (phy_ready              )
571
);
572
 
573
 
574
 
575
//Asynchronous Logic
576
 
577
//control of data to the platform controller
578 3 cospan
//In order to send align primitives the phy must sometimes take over the bus
579 2 cospan
assign                tx_dout     = (phy_ready) ? ll_tx_dout  : phy_tx_dout;
580 3 cospan
assign                tx_is_k     = (phy_ready) ? ll_tx_is_k  : phy_tx_is_k;
581 2 cospan
 
582
  //no activity on the stack
583
 
584
//Debug
585
assign                ll_write_start        = t_write_start;
586
assign                ll_write_data         = t_write_data;
587
assign                ll_write_hold         = t_write_hold;
588
assign                ll_write_size         = t_write_size;
589
assign                ll_write_abort        = t_write_abort;
590
 
591
assign                ll_read_ready         = t_read_ready;
592
assign                ll_sync_escape        = t_sync_escape;
593
 
594
assign                t_write_strobe        = ll_write_strobe;
595
assign                t_write_finished      = ll_write_finished;
596
 
597
assign                t_read_strobe         = ll_read_strobe;
598
assign                t_read_start          = ll_read_start;
599
assign                t_read_finished       = ll_read_finished;
600
assign                t_read_data           = ll_read_data;
601
assign                t_remote_abort        = ll_remote_abort;
602
assign                t_xmit_error          = ll_xmit_error;
603
assign                t_read_crc_ok         = ll_read_crc_ok;
604
 
605
assign                cl_if_ready             = if_ready;
606
assign                if_activate             = cl_if_activate;
607
assign                cl_if_size              = if_size;
608
assign                if_strobe               = cl_if_strobe;
609
assign                cl_if_data              = if_data;
610
 
611
assign                cl_of_ready             = of_ready;
612
assign                of_activate             = cl_of_activate;
613
assign                of_strobe               = cl_of_strobe;
614
assign                of_data                 = cl_of_data;
615
assign                cl_of_size              = of_size;
616
 
617
//Synchronous Logic
618
endmodule

powered by: WebSVN 2.1.0

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