Line 47... |
Line 47... |
// PART OF THIS FILE AT ALL TIMES.
|
// PART OF THIS FILE AT ALL TIMES.
|
//
|
//
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
// Project : Series-7 Integrated Block for PCI Express
|
// Project : Series-7 Integrated Block for PCI Express
|
// File : cl_a7pcie_x4_pipe_drp.v
|
// File : cl_a7pcie_x4_pipe_drp.v
|
// Version : 1.9
|
// Version : 1.10
|
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
// Filename : pipe_drp.v
|
// Filename : pipe_drp.v
|
// Description : PIPE DRP Module for 7 Series Transceiver
|
// Description : PIPE DRP Module for 7 Series Transceiver
|
// Version : 20.0
|
// Version : 20.0
|
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
Line 102... |
Line 102... |
output [ 2:0] DRP_FSM
|
output [ 2:0] DRP_FSM
|
|
|
);
|
);
|
|
|
//---------- Input Registers ---------------------------
|
//---------- Input Registers ---------------------------
|
reg gtxreset_reg1;
|
(* ASYNC_REG = "TRUE", SHIFT_EXTRACT = "NO" *) reg gtxreset_reg1;
|
reg [ 1:0] rate_reg1;
|
(* ASYNC_REG = "TRUE", SHIFT_EXTRACT = "NO" *) reg [ 1:0] rate_reg1;
|
reg x16x20_mode_reg1;
|
(* ASYNC_REG = "TRUE", SHIFT_EXTRACT = "NO" *) reg x16x20_mode_reg1;
|
reg x16_reg1;
|
(* ASYNC_REG = "TRUE", SHIFT_EXTRACT = "NO" *) reg x16_reg1;
|
reg start_reg1;
|
(* ASYNC_REG = "TRUE", SHIFT_EXTRACT = "NO" *) reg start_reg1;
|
reg [15:0] do_reg1;
|
(* ASYNC_REG = "TRUE", SHIFT_EXTRACT = "NO" *) reg [15:0] do_reg1;
|
reg rdy_reg1;
|
(* ASYNC_REG = "TRUE", SHIFT_EXTRACT = "NO" *) reg rdy_reg1;
|
|
|
reg gtxreset_reg2;
|
(* ASYNC_REG = "TRUE", SHIFT_EXTRACT = "NO" *) reg gtxreset_reg2;
|
reg [ 1:0] rate_reg2;
|
(* ASYNC_REG = "TRUE", SHIFT_EXTRACT = "NO" *) reg [ 1:0] rate_reg2;
|
reg x16x20_mode_reg2;
|
(* ASYNC_REG = "TRUE", SHIFT_EXTRACT = "NO" *) reg x16x20_mode_reg2;
|
reg x16_reg2;
|
(* ASYNC_REG = "TRUE", SHIFT_EXTRACT = "NO" *) reg x16_reg2;
|
reg start_reg2;
|
(* ASYNC_REG = "TRUE", SHIFT_EXTRACT = "NO" *) reg start_reg2;
|
reg [15:0] do_reg2;
|
(* ASYNC_REG = "TRUE", SHIFT_EXTRACT = "NO" *) reg [15:0] do_reg2;
|
reg rdy_reg2;
|
(* ASYNC_REG = "TRUE", SHIFT_EXTRACT = "NO" *) reg rdy_reg2;
|
|
|
//---------- Internal Signals --------------------------
|
//---------- Internal Signals --------------------------
|
reg [ 1:0] load_cnt = 2'd0;
|
reg [ 1:0] load_cnt = 2'd0;
|
reg [ 4:0] index = 5'd0;
|
reg [ 4:0] index = 5'd0;
|
reg mode = 1'd0;
|
reg mode = 1'd0;
|
reg [ 8:0] addr_reg = 9'd0;
|
reg [ 8:0] addr_reg = 9'd0;
|
reg [15:0] di_reg = 16'd0;
|
reg [15:0] di_reg = 16'd0;
|
|
|
//---------- Output Registers --------------------------
|
//---------- Output Registers --------------------------
|
reg done = 1'd0;
|
reg done = 1'd0;
|
reg [ 2:0] fsm = 1;
|
reg [ 2:0] fsm = 0;
|
|
|
//---------- DRP Address -------------------------------
|
//---------- DRP Address -------------------------------
|
// DRP access for *RXCDR_EIDLE includes
|
// DRP access for *RXCDR_EIDLE includes
|
// - [11] RXCDR_HOLD_DURING_EIDLE
|
// - [11] RXCDR_HOLD_DURING_EIDLE
|
// - [12] RXCDR_FR_RESET_ON_EIDLE
|
// - [12] RXCDR_FR_RESET_ON_EIDLE
|