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

Subversion Repositories nysa_sata

[/] [nysa_sata/] [trunk/] [rtl/] [link/] [sata_link_layer.v] - Diff between revs 2 and 3

Show entire file | Details | Blame | View Log

Rev 2 Rev 3
Line 40... Line 40...
  output              write_ready,
  output              write_ready,
  input               platform_ready,
  input               platform_ready,
 
 
//XXX: I probably need some feedback to indicate that there is room to write
//XXX: I probably need some feedback to indicate that there is room to write
  output    [31:0]    tx_dout,
  output    [31:0]    tx_dout,
  output              tx_isk,
  output              tx_is_k,
 
 
  input     [31:0]    rx_din,
  input     [31:0]    rx_din,
  input     [3:0]     rx_isk,
  input     [3:0]     rx_is_k,
 
 
  input               write_start,
  input               write_start,
  output              write_strobe,
  output              write_strobe,
  input     [31:0]    write_data,
  input     [31:0]    write_data,
  input     [31:0]    write_size,
  input     [23:0]    write_size,
  input               write_hold,
  input               write_hold,
  output              write_finished,
  output              write_finished,
  input               write_abort,
  input               write_abort,
 
 
  output              read_start,
  output              read_start,
Line 120... Line 120...
reg                 send_pmnack;
reg                 send_pmnack;
 
 
 
 
wire                sli_idle;
wire                sli_idle;
wire      [31:0]    sli_tx_dout;
wire      [31:0]    sli_tx_dout;
wire                sli_tx_isk;
wire                sli_tx_is_k;
 
 
reg                 write_en;
reg                 write_en;
wire                write_idle;
wire                write_idle;
wire      [31:0]    slw_tx_dout;
wire      [31:0]    slw_tx_dout;
wire                slw_tx_isk;
wire                slw_tx_is_k;
 
 
reg                 read_en;
reg                 read_en;
wire                read_idle;
wire                read_idle;
wire      [31:0]    slr_tx_dout;
wire      [31:0]    slr_tx_dout;
wire                slr_tx_isk;
wire                slr_tx_is_k;
 
 
wire      [31:0]    ll_tx_dout;
wire      [31:0]    ll_tx_dout;
wire                ll_tx_isk;
wire                ll_tx_is_k;
 
 
wire                last_prim;
wire                last_prim;
 
 
//Submodules
//Submodules
 
 
Line 153... Line 153...
  .phy_ready            (phy_ready              ),
  .phy_ready            (phy_ready              ),
  .xmit_cont_en         (prim_scrambler_en      ),
  .xmit_cont_en         (prim_scrambler_en      ),
  .last_prim            (last_prim              ),
  .last_prim            (last_prim              ),
 
 
  .rx_din               (rx_din                 ),
  .rx_din               (rx_din                 ),
  .rx_isk               (rx_isk                 ),
  .rx_is_k               (rx_is_k                 ),
 
 
  .ll_tx_din            (ll_tx_dout             ),
  .ll_tx_din            (ll_tx_dout             ),
  .ll_tx_isk            (ll_tx_isk              ),
  .ll_tx_is_k            (ll_tx_is_k              ),
 
 
  .cont_tx_dout         (tx_dout                ),
  .cont_tx_dout         (tx_dout                ),
  .cont_tx_isk          (tx_isk                 ),
  .cont_tx_is_k          (tx_is_k                 ),
 
 
  .detect_sync          (detect_sync            ),
  .detect_sync          (detect_sync            ),
  .detect_r_rdy         (detect_r_rdy           ),
  .detect_r_rdy         (detect_r_rdy           ),
  .detect_r_ip          (detect_r_ip            ),
  .detect_r_ip          (detect_r_ip            ),
  .detect_r_err         (detect_r_err           ),
  .detect_r_err         (detect_r_err           ),
Line 214... Line 214...
  .last_prim            (last_prim              ),
  .last_prim            (last_prim              ),
  .send_crc             (send_crc               ),
  .send_crc             (send_crc               ),
  .post_align_write     (post_align_write       ),
  .post_align_write     (post_align_write       ),
 
 
  .tx_dout              (slw_tx_dout            ),
  .tx_dout              (slw_tx_dout            ),
  .tx_isk               (slw_tx_isk             ),
  .tx_is_k              (slw_tx_is_k            ),
  .rx_din               (rx_din                 ),
  .rx_din               (rx_din                 ),
  .rx_isk               (rx_isk                 ),
  .rx_is_k              (rx_is_k                ),
 
 
  .xmit_error           (xmit_error             ),
  .xmit_error           (xmit_error             ),
  .wsize_z_error        (wsize_z_error          ),
  .wsize_z_error        (wsize_z_error          ),
 
 
  .data_scrambler_en    (data_scrambler_en      ),
  .data_scrambler_en    (data_scrambler_en      ),
Line 253... Line 253...
  .detect_holda         (detect_holda           ),
  .detect_holda         (detect_holda           ),
  .detect_hold          (detect_hold            ),
  .detect_hold          (detect_hold            ),
  .detect_xrdy_xrdy     (detect_xrdy_xrdy       ),
  .detect_xrdy_xrdy     (detect_xrdy_xrdy       ),
 
 
  .tx_dout              (slr_tx_dout            ),
  .tx_dout              (slr_tx_dout            ),
  .tx_isk               (slr_tx_isk             ),
  .tx_is_k              (slr_tx_is_k            ),
  .rx_din               (rx_din                 ),
  .rx_din               (rx_din                 ),
  .rx_isk               (rx_isk                 ),
  .rx_is_k              (rx_is_k                ),
 
 
  .read_ready           (read_ready             ),
  .read_ready           (read_ready             ),
  .read_strobe          (read_strobe            ),
  .read_strobe          (read_strobe            ),
  .read_data            (read_data              ),
  .read_data            (read_data              ),
  .read_start           (read_start             ),
  .read_start           (read_start             ),
Line 273... Line 273...
  .lax_r_state          (lax_r_state            )
  .lax_r_state          (lax_r_state            )
);
);
 
 
//Asynchronous logic
//Asynchronous logic
assign  ll_tx_dout = (!read_idle) ? slr_tx_dout  : (!write_idle) ? slw_tx_dout : sli_tx_dout;
assign  ll_tx_dout = (!read_idle) ? slr_tx_dout  : (!write_idle) ? slw_tx_dout : sli_tx_dout;
assign  ll_tx_isk  = (!read_idle) ? slr_tx_isk   : (!write_idle) ? slw_tx_isk  : sli_tx_isk;
assign  ll_tx_is_k  = (!read_idle) ? slr_tx_is_k   : (!write_idle) ? slw_tx_is_k  : sli_tx_is_k;
 
 
 
 
assign  sli_tx_dout   = (send_pmnack) ? `PRIM_PMNACK  :
assign  sli_tx_dout   = (send_pmnack) ? `PRIM_PMNACK  :
                        (send_pmack)  ? `PRIM_PMACK :
                        (send_pmack)  ? `PRIM_PMACK :
                        `PRIM_SYNC;
                        `PRIM_SYNC;
 
 
assign  sli_tx_isk    = 1;
assign  sli_tx_is_k    = 1;
 
 
assign  link_layer_ready  = (state == IDLE) && read_idle && write_idle;
assign  link_layer_ready  = (state == IDLE) && read_idle && write_idle;
 
 
assign  lax_i_state       = state;
assign  lax_i_state       = state;
 
 

powered by: WebSVN 2.1.0

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