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

Subversion Repositories pcie_sg_dma

[/] [pcie_sg_dma/] [branches/] [Virtex6/] [ML605_ISE13.3/] [ipcore_dir_ISE13.3/] [v6_pcie_v1_6/] [example_design/] [pcie_app_v6.v] - Blame information for rev 13

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 barabba
//-----------------------------------------------------------------------------
2
//
3
// (c) Copyright 2009-2011 Xilinx, Inc. All rights reserved.
4
//
5
// This file contains confidential and proprietary information
6
// of Xilinx, Inc. and is protected under U.S. and
7
// international copyright and other intellectual property
8
// laws.
9
//
10
// DISCLAIMER
11
// This disclaimer is not a license and does not grant any
12
// rights to the materials distributed herewith. Except as
13
// otherwise provided in a valid license issued to you by
14
// Xilinx, and to the maximum extent permitted by applicable
15
// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
16
// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
17
// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
18
// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
19
// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
20
// (2) Xilinx shall not be liable (whether in contract or tort,
21
// including negligence, or under any other theory of
22
// liability) for any loss or damage of any kind or nature
23
// related to, arising under or in connection with these
24
// materials, including for any direct, or any indirect,
25
// special, incidental, or consequential loss or damage
26
// (including loss of data, profits, goodwill, or any type of
27
// loss or damage suffered as a result of any action brought
28
// by a third party) even if such damage or loss was
29
// reasonably foreseeable or Xilinx had been advised of the
30
// possibility of the same.
31
//
32
// CRITICAL APPLICATIONS
33
// Xilinx products are not designed or intended to be fail-
34
// safe, or for use in any application requiring fail-safe
35
// performance, such as life-support or safety devices or
36
// systems, Class III medical devices, nuclear facilities,
37
// applications related to the deployment of airbags, or any
38
// other applications that could lead to death, personal
39
// injury, or severe property or environmental damage
40
// (individually and collectively, "Critical
41
// Applications"). Customer assumes the sole risk and
42
// liability of any use of Xilinx products in Critical
43
// Applications, subject only to applicable laws and
44
// regulations governing limitations on product liability.
45
//
46
// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
47
// PART OF THIS FILE AT ALL TIMES.
48
//
49
//-----------------------------------------------------------------------------
50
// Project    : Virtex-6 Integrated Block for PCI Express
51
// File       : pcie_app_v6.v
52
// Version    : 1.7
53
//--
54
//-- Description:  PCI Express Endpoint sample application
55
//--               design. 
56
//--
57
//------------------------------------------------------------------------------
58
 
59
`timescale 1ns / 1ps
60
 
61
`define PCI_EXP_EP_OUI                           24'h000A35
62
`define PCI_EXP_EP_DSN_1                         {{8'h1},`PCI_EXP_EP_OUI}
63
`define PCI_EXP_EP_DSN_2                         32'h00000001
64
 
65
module  pcie_app_v6
66
(
67
 
68
  input                                          trn_clk,
69
  input                                          trn_reset_n,
70
  input                                          trn_lnk_up_n,
71
 
72
  // Tx
73
  input  [5:0]                                   trn_tbuf_av,
74
  input                                          trn_tcfg_req_n,
75
  input                                          trn_terr_drop_n,
76
  input                                          trn_tdst_rdy_n,
77
  output [63:0]                                  trn_td,
78
  output                                         trn_trem_n,
79
  output                                         trn_tsof_n,
80
  output                                         trn_teof_n,
81
  output                                         trn_tsrc_rdy_n,
82
  output                                         trn_tsrc_dsc_n,
83
  output                                         trn_terrfwd_n,
84
  output                                         trn_tcfg_gnt_n,
85
  output                                         trn_tstr_n,
86
 
87
  // Rx
88
  input  [63:0]                                  trn_rd,
89
  input                                          trn_rrem_n,
90
  input                                          trn_rsof_n,
91
  input                                          trn_reof_n,
92
  input                                          trn_rsrc_rdy_n,
93
  input                                          trn_rsrc_dsc_n,
94
  input                                          trn_rerrfwd_n,
95
  input  [6:0]                                   trn_rbar_hit_n,
96
  output                                         trn_rdst_rdy_n,
97
  output                                         trn_rnp_ok_n,
98
 
99
  // Flow Control
100
  input  [11:0]                                  trn_fc_cpld,
101
  input  [7:0]                                   trn_fc_cplh,
102
  input  [11:0]                                  trn_fc_npd,
103
  input  [7:0]                                   trn_fc_nph,
104
  input  [11:0]                                  trn_fc_pd,
105
  input  [7:0]                                   trn_fc_ph,
106
  output [2:0]                                   trn_fc_sel,
107
 
108
 
109
  input  [31:0]                                  cfg_do,
110
  input                                          cfg_rd_wr_done_n,
111
  output [31:0]                                  cfg_di,
112
  output [3:0]                                   cfg_byte_en_n,
113
  output [9:0]                                   cfg_dwaddr,
114
  output                                         cfg_wr_en_n,
115
  output                                         cfg_rd_en_n,
116
 
117
 
118
  output                                         cfg_err_cor_n,
119
  output                                         cfg_err_ur_n,
120
  output                                         cfg_err_ecrc_n,
121
  output                                         cfg_err_cpl_timeout_n,
122
  output                                         cfg_err_cpl_abort_n,
123
  output                                         cfg_err_cpl_unexpect_n,
124
  output                                         cfg_err_posted_n,
125
  output                                         cfg_err_locked_n,
126
  output [47:0]                                  cfg_err_tlp_cpl_header,
127
  input                                          cfg_err_cpl_rdy_n,
128
  output                                         cfg_interrupt_n,
129
  input                                          cfg_interrupt_rdy_n,
130
  output                                         cfg_interrupt_assert_n,
131
  output [7:0]                                   cfg_interrupt_di,
132
  input  [7:0]                                   cfg_interrupt_do,
133
  input  [2:0]                                   cfg_interrupt_mmenable,
134
  input                                          cfg_interrupt_msienable,
135
  input                                          cfg_interrupt_msixenable,
136
  input                                          cfg_interrupt_msixfm,
137
  output                                         cfg_turnoff_ok_n,
138
  input                                          cfg_to_turnoff_n,
139
  output                                         cfg_trn_pending_n,
140
  output                                         cfg_pm_wake_n,
141
  input   [7:0]                                  cfg_bus_number,
142
  input   [4:0]                                  cfg_device_number,
143
  input   [2:0]                                  cfg_function_number,
144
  input  [15:0]                                  cfg_status,
145
  input  [15:0]                                  cfg_command,
146
  input  [15:0]                                  cfg_dstatus,
147
  input  [15:0]                                  cfg_dcommand,
148
  input  [15:0]                                  cfg_lstatus,
149
  input  [15:0]                                  cfg_lcommand,
150
  input  [15:0]                                  cfg_dcommand2,
151
  input   [2:0]                                  cfg_pcie_link_state_n,
152
 
153
  output [1:0]                                   pl_directed_link_change,
154
  input  [5:0]                                   pl_ltssm_state,
155
  output [1:0]                                   pl_directed_link_width,
156
  output                                         pl_directed_link_speed,
157
  output                                         pl_directed_link_auton,
158
  output                                         pl_upstream_prefer_deemph,
159
  input  [1:0]                                   pl_sel_link_width,
160
  input                                          pl_sel_link_rate,
161
  input                                          pl_link_gen2_capable,
162
  input                                          pl_link_partner_gen2_supported,
163
  input  [2:0]                                   pl_initial_link_width,
164
  input                                          pl_link_upcfg_capable,
165
  input  [1:0]                                   pl_lane_reversal_mode,
166
  input                                          pl_received_hot_rst,
167
 
168
  output [63:0]                                  cfg_dsn
169
 
170
 
171
);
172
 
173
  wire   [7:0]                                   trn_trem;
174
 
175
//
176
// Core input tie-offs
177
//
178
 
179
assign trn_fc_sel = 3'b0;
180
 
181
assign trn_rnp_ok_n = 1'b0;
182
assign trn_terrfwd_n = 1'b1;
183
 
184
assign trn_tcfg_gnt_n = 1'b0;
185
assign trn_tecrc_gen_n = 1'b1;
186
 
187
assign cfg_err_cor_n = 1'b1;
188
assign cfg_err_ur_n = 1'b1;
189
assign cfg_err_ecrc_n = 1'b1;
190
assign cfg_err_cpl_timeout_n = 1'b1;
191
assign cfg_err_cpl_abort_n = 1'b1;
192
assign cfg_err_cpl_unexpect_n = 1'b1;
193
assign cfg_err_posted_n = 1'b0;
194
assign cfg_err_locked_n = 1'b1;
195
assign cfg_pm_wake_n = 1'b1;
196
assign cfg_trn_pending_n = 1'b1;
197
 
198
assign trn_tstr_n = 1'b0;
199
assign cfg_interrupt_assert_n = 1'b1;
200
assign cfg_interrupt_n = 1'b1;
201
assign cfg_dwaddr = 0;
202
assign cfg_rd_en_n = 1;
203
 
204
assign pl_directed_link_change = 0;
205
assign pl_directed_link_width = 0;
206
assign pl_directed_link_speed = 0;
207
assign pl_directed_link_auton = 0;
208
assign pl_upstream_prefer_deemph = 1'b1;
209
 
210
assign cfg_interrupt_di = 8'b0;
211
 
212
assign cfg_err_tlp_cpl_header = 47'h0;
213
assign cfg_di = 0;
214
assign cfg_byte_en_n = 4'hf;
215
assign cfg_wr_en_n = 1;
216
assign cfg_dsn = {`PCI_EXP_EP_DSN_2, `PCI_EXP_EP_DSN_1};
217
 
218
assign trn_trem_n = (trn_trem == 8'h0F) ? 1'b1 : 1'b0;
219
 
220
//
221
// Programmable I/O Module
222
//
223
 
224
wire [15:0] cfg_completer_id = { cfg_bus_number, cfg_device_number, cfg_function_number };
225
wire        cfg_bus_mstr_enable      = cfg_command[2];
226
 
227
 
228
  PIO PIO (
229
        .trn_clk ( trn_clk ),                                // I
230
        .trn_reset_n ( trn_reset_n ),                        // I
231
        .trn_lnk_up_n ( trn_lnk_up_n ),                      // I
232
 
233
        .trn_td ( trn_td ),                                  // O [63:0]
234
        .trn_trem_n ( trn_trem ),                            // O [7:0]
235
        .trn_tsof_n ( trn_tsof_n ),                          // O
236
        .trn_teof_n ( trn_teof_n ),                          // O
237
        .trn_tsrc_rdy_n ( trn_tsrc_rdy_n ),                  // O
238
        .trn_tsrc_dsc_n ( trn_tsrc_dsc_n ),                  // O
239
        .trn_tdst_rdy_n ( trn_tdst_rdy_n ),                  // I
240
        .trn_tdst_dsc_n ( 1'b1 ),                            // I
241
 
242
 
243
        .trn_rd ( trn_rd ),                                    // I [63:0]
244
        .trn_rrem_n ( (trn_rrem_n == 1'b1) ? 8'h0F : 8'h00),   // I [7:0]
245
        .trn_rsof_n ( trn_rsof_n ),                            // I
246
        .trn_reof_n ( trn_reof_n ),                        // I
247
        .trn_rsrc_rdy_n ( trn_rsrc_rdy_n ),                // I
248
        .trn_rsrc_dsc_n ( trn_rsrc_dsc_n ),                // I
249
        .trn_rdst_rdy_n ( trn_rdst_rdy_n ),                // O
250
        .trn_rbar_hit_n ( trn_rbar_hit_n ),                // I [6:0]
251
 
252
        .cfg_to_turnoff_n ( cfg_to_turnoff_n ),            // I
253
        .cfg_turnoff_ok_n ( cfg_turnoff_ok_n ),            // O
254
 
255
        .cfg_completer_id ( cfg_completer_id ),         // I [15:0]
256
        .cfg_bus_mstr_enable (cfg_bus_mstr_enable )     // I
257
 
258
        );
259
 
260
endmodule // pcie_app

powered by: WebSVN 2.1.0

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