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

Subversion Repositories srdydrdy_lib

[/] [srdydrdy_lib/] [trunk/] [examples/] [bridge/] [rtl/] [port_macro.v] - Blame information for rev 16

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 8 ghutchis
module port_macro
2 11 ghutchis
  #(parameter port_num = 0)
3 8 ghutchis
  (input         clk,
4
   input         reset,
5
 
6
   input [`PRW_SZ-1:0]   ri_data,                // To ring_tap of port_ring_tap.v
7
   output [`PRW_SZ-1:0]  ro_data,                // From ring_tap of port_ring_tap.v
8
   input [`NUM_PORTS-1:0] fli_data,              // To ring_tap of port_ring_tap.v
9
   /*AUTOINPUT*/
10
   // Beginning of automatic inputs (from unused autoinst inputs)
11 16 ghutchis
   input                fli_srdy,               // To ring_tap of port_ring_tap.v
12
   input                gmii_rx_clk,            // To port_clocking of port_clocking.v, ...
13
   input                gmii_rx_dv,             // To rx_gigmac of sd_rx_gigmac.v
14
   input [7:0]           gmii_rxd,               // To rx_gigmac of sd_rx_gigmac.v
15
   input                p2f_drdy,               // To pkt_parse of pkt_parse.v
16
   input                rarb_ack,               // To ring_tap of port_ring_tap.v
17
   input                ri_srdy,                // To ring_tap of port_ring_tap.v
18
   input                ro_drdy,                // To ring_tap of port_ring_tap.v
19 8 ghutchis
   // End of automatics
20
 
21 12 ghutchis
   output               rarb_req,
22 8 ghutchis
   output               fli_drdy,               // From ring_tap of port_ring_tap.v
23 11 ghutchis
   output               gmii_tx_en,             // From tx_gmii of sd_tx_gigmac.v
24 8 ghutchis
   output [7:0]          gmii_txd,               // From tx_gmii of sd_tx_gigmac.v
25
   output [`PAR_DATA_SZ-1:0] p2f_data,           // From pkt_parse of pkt_parse.v
26
   output               p2f_srdy,               // From pkt_parse of pkt_parse.v
27
   output               ri_drdy,                // From ring_tap of port_ring_tap.v
28
   output               ro_srdy                 // From ring_tap of port_ring_tap.v
29
   );
30
 
31
  wire [`RX_USG_SZ-1:0] rx_usage;
32
  wire [`TX_USG_SZ-1:0] tx_usage;
33
  wire [`PFW_SZ-1:0]     prx_data;               // From fifo_rx of sd_fifo_b.v
34
  wire [`PFW_SZ-1:0]     ptx_data;               // From fifo_tx of sd_fifo_b.v
35
  wire [`PFW_SZ-1:0]     rttx_data;              // From ring_tap of port_ring_tap.v
36
  wire [1:0]             rxg_code;               // From rx_sync_fifo of sd_fifo_s.v
37
  wire [7:0]             rxg_data;               // From rx_sync_fifo of sd_fifo_s.v
38
  wire [`PFW_SZ-1:0]     ctx_data;               // From oflow of egr_oflow.v
39
  /*AUTOWIRE*/
40
  // Beginning of automatic wires (for undeclared instantiated-module outputs)
41 16 ghutchis
  wire                  crx_abort;              // From con of concentrator.v
42
  wire                  crx_commit;             // From con of concentrator.v
43
  wire [`PFW_SZ-1:0]     crx_data;               // From con of concentrator.v
44
  wire                  crx_drdy;               // From fifo_rx of sd_fifo_b.v
45
  wire                  crx_srdy;               // From con of concentrator.v
46
  wire                  ctx_abort;              // From oflow of egr_oflow.v
47
  wire                  ctx_commit;             // From oflow of egr_oflow.v
48
  wire                  ctx_drdy;               // From fifo_tx of sd_fifo_b.v
49
  wire                  ctx_srdy;               // From oflow of egr_oflow.v
50
  wire                  gmii_rx_reset;          // From port_clocking of port_clocking.v
51
  wire [1:0]             pdo_code;               // From pkt_parse of pkt_parse.v
52
  wire [7:0]             pdo_data;               // From pkt_parse of pkt_parse.v
53
  wire                  pdo_drdy;               // From con of concentrator.v
54
  wire                  pdo_srdy;               // From pkt_parse of pkt_parse.v
55
  wire                  prx_drdy;               // From ring_tap of port_ring_tap.v
56
  wire                  prx_srdy;               // From fifo_rx of sd_fifo_b.v
57
  wire                  ptx_drdy;               // From dst of distributor.v
58
  wire                  ptx_srdy;               // From fifo_tx of sd_fifo_b.v
59
  wire                  rttx_drdy;              // From oflow of egr_oflow.v
60
  wire                  rttx_srdy;              // From ring_tap of port_ring_tap.v
61
  wire [1:0]             rxc_rxg_code;           // From rx_gigmac of sd_rx_gigmac.v
62
  wire [7:0]             rxc_rxg_data;           // From rx_gigmac of sd_rx_gigmac.v
63
  wire                  rxc_rxg_drdy;           // From rx_sync_fifo of sd_fifo_s.v
64
  wire                  rxc_rxg_srdy;           // From rx_gigmac of sd_rx_gigmac.v
65
  wire                  rxg_drdy;               // From pkt_parse of pkt_parse.v
66
  wire                  rxg_srdy;               // From rx_sync_fifo of sd_fifo_s.v
67
  wire [1:0]             txg_code;               // From dst of distributor.v
68
  wire [7:0]             txg_data;               // From dst of distributor.v
69
  wire                  txg_drdy;               // From tx_gmii of sd_tx_gigmac.v
70
  wire                  txg_srdy;               // From dst of distributor.v
71 8 ghutchis
  // End of automatics
72
 
73
 
74
  port_clocking port_clocking
75
    (/*AUTOINST*/
76
     // Outputs
77 16 ghutchis
     .gmii_rx_reset                     (gmii_rx_reset),
78 8 ghutchis
     // Inputs
79 16 ghutchis
     .clk                               (clk),
80
     .reset                             (reset),
81
     .gmii_rx_clk                       (gmii_rx_clk));
82 8 ghutchis
 
83
/*  sd_rx_gigmac AUTO_TEMPLATE
84
 (
85
   .clk                         (gmii_rx_clk),
86
   .reset                       (gmii_rx_reset),
87
   .rxg_\(.*\)                  (rxc_rxg_\1[]),
88
 );
89
 */
90
  sd_rx_gigmac rx_gigmac
91
    (/*AUTOINST*/
92
     // Outputs
93 16 ghutchis
     .rxg_srdy                          (rxc_rxg_srdy),          // Templated
94
     .rxg_code                          (rxc_rxg_code[1:0]),      // Templated
95
     .rxg_data                          (rxc_rxg_data[7:0]),      // Templated
96 8 ghutchis
     // Inputs
97 16 ghutchis
     .clk                               (gmii_rx_clk),           // Templated
98
     .reset                             (gmii_rx_reset),         // Templated
99
     .gmii_rx_dv                        (gmii_rx_dv),
100
     .gmii_rxd                          (gmii_rxd[7:0]),
101
     .rxg_drdy                          (rxc_rxg_drdy));                 // Templated
102 8 ghutchis
 
103
/* sd_fifo_s AUTO_TEMPLATE
104
 (
105
     .c_clk                             (gmii_rx_clk),
106
     .c_reset                           (gmii_rx_reset),
107
     .c_data                            ({rxc_rxg_code,rxc_rxg_data}),
108
     .p_data                            ({rxg_code,rxg_data}),
109
     .p_clk                             (clk),
110
     .p_reset                           (reset),
111
  .c_\(.*\)                     (rxc_rxg_\1[]),
112
  .p_\(.*\)                     (rxg_\1[]),
113
 );
114
 */
115
  sd_fifo_s #(8+2,16,1) rx_sync_fifo
116
    (/*AUTOINST*/
117
     // Outputs
118 16 ghutchis
     .c_drdy                            (rxc_rxg_drdy),          // Templated
119
     .p_srdy                            (rxg_srdy),              // Templated
120
     .p_data                            ({rxg_code,rxg_data}),   // Templated
121 8 ghutchis
     // Inputs
122 16 ghutchis
     .c_clk                             (gmii_rx_clk),           // Templated
123
     .c_reset                           (gmii_rx_reset),         // Templated
124
     .c_srdy                            (rxc_rxg_srdy),          // Templated
125
     .c_data                            ({rxc_rxg_code,rxc_rxg_data}), // Templated
126
     .p_clk                             (clk),                   // Templated
127
     .p_reset                           (reset),                 // Templated
128
     .p_drdy                            (rxg_drdy));             // Templated
129 8 ghutchis
 
130 11 ghutchis
  pkt_parse #(port_num) pkt_parse
131 8 ghutchis
    (/*AUTOINST*/
132
     // Outputs
133 16 ghutchis
     .rxg_drdy                          (rxg_drdy),
134
     .p2f_srdy                          (p2f_srdy),
135
     .p2f_data                          (p2f_data[`PAR_DATA_SZ-1:0]),
136
     .pdo_srdy                          (pdo_srdy),
137
     .pdo_code                          (pdo_code[1:0]),
138
     .pdo_data                          (pdo_data[7:0]),
139 8 ghutchis
     // Inputs
140 16 ghutchis
     .clk                               (clk),
141
     .reset                             (reset),
142
     .rxg_srdy                          (rxg_srdy),
143
     .rxg_code                          (rxg_code[1:0]),
144
     .rxg_data                          (rxg_data[7:0]),
145
     .p2f_drdy                          (p2f_drdy),
146
     .pdo_drdy                          (pdo_drdy));
147 8 ghutchis
 
148
/* concentrator AUTO_TEMPLATE
149
 (
150
    .c_\(.*\)     (pdo_\1[]),
151
    .p_\(.*\)     (crx_\1[]),
152
 );
153
 */
154
  concentrator con
155
    (/*AUTOINST*/
156
     // Outputs
157 16 ghutchis
     .c_drdy                            (pdo_drdy),              // Templated
158
     .p_data                            (crx_data[`PFW_SZ-1:0]), // Templated
159
     .p_srdy                            (crx_srdy),              // Templated
160
     .p_commit                          (crx_commit),            // Templated
161
     .p_abort                           (crx_abort),             // Templated
162 8 ghutchis
     // Inputs
163 16 ghutchis
     .clk                               (clk),
164
     .reset                             (reset),
165
     .c_data                            (pdo_data[7:0]),  // Templated
166
     .c_code                            (pdo_code[1:0]),  // Templated
167
     .c_srdy                            (pdo_srdy),              // Templated
168
     .p_drdy                            (crx_drdy));             // Templated
169 8 ghutchis
 
170
  /* sd_fifo_b AUTO_TEMPLATE "fifo_\(.*\)"
171
   (
172
    .p_abort  (1'b0),
173
    .p_commit (1'b0),
174 16 ghutchis
    .c_usage    (@_usage),
175
    .p_usage    (),
176 8 ghutchis
    .c_\(.*\)     (c@_\1),
177
    .p_\(.*\)    (p@_\1),
178
   );
179
   */
180
  sd_fifo_b #(`PFW_SZ, `RX_FIFO_DEPTH, 0, 1) fifo_rx
181
    (/*AUTOINST*/
182
     // Outputs
183 16 ghutchis
     .c_drdy                            (crx_drdy),              // Templated
184
     .p_srdy                            (prx_srdy),              // Templated
185
     .p_data                            (prx_data),              // Templated
186
     .p_usage                           (),                      // Templated
187
     .c_usage                           (rx_usage),              // Templated
188 8 ghutchis
     // Inputs
189 16 ghutchis
     .clk                               (clk),
190
     .reset                             (reset),
191
     .c_srdy                            (crx_srdy),              // Templated
192
     .c_commit                          (crx_commit),            // Templated
193
     .c_abort                           (crx_abort),             // Templated
194
     .c_data                            (crx_data),              // Templated
195
     .p_drdy                            (prx_drdy),              // Templated
196
     .p_commit                          (1'b0),                  // Templated
197
     .p_abort                           (1'b0));                         // Templated
198 8 ghutchis
 
199
  sd_fifo_b #(`PFW_SZ, `TX_FIFO_DEPTH, 0, 1) fifo_tx
200
    (/*AUTOINST*/
201
     // Outputs
202 16 ghutchis
     .c_drdy                            (ctx_drdy),              // Templated
203
     .p_srdy                            (ptx_srdy),              // Templated
204
     .p_data                            (ptx_data),              // Templated
205
     .p_usage                           (),                      // Templated
206
     .c_usage                           (tx_usage),              // Templated
207 8 ghutchis
     // Inputs
208 16 ghutchis
     .clk                               (clk),
209
     .reset                             (reset),
210
     .c_srdy                            (ctx_srdy),              // Templated
211
     .c_commit                          (ctx_commit),            // Templated
212
     .c_abort                           (ctx_abort),             // Templated
213
     .c_data                            (ctx_data),              // Templated
214
     .p_drdy                            (ptx_drdy),              // Templated
215
     .p_commit                          (1'b0),                  // Templated
216
     .p_abort                           (1'b0));                         // Templated
217 8 ghutchis
 
218
/* port_ring_tap AUTO_TEMPLATE
219
 (
220
    .ro_data                            (ro_data[`PRW_SZ-1:0]),
221
    .ri_data                            (ri_data[`PRW_SZ-1:0]),
222
    .prx_\(.*\)    (prx_\1),
223
    .ptx_\(.*\)    (rttx_\1),
224
  );
225
 */
226 11 ghutchis
  port_ring_tap #(port_num) ring_tap
227 8 ghutchis
    (/*AUTOINST*/
228
     // Outputs
229 16 ghutchis
     .ri_drdy                           (ri_drdy),
230
     .prx_drdy                          (prx_drdy),              // Templated
231
     .ro_srdy                           (ro_srdy),
232
     .ro_data                           (ro_data[`PRW_SZ-1:0]),   // Templated
233
     .ptx_srdy                          (rttx_srdy),             // Templated
234
     .ptx_data                          (rttx_data),             // Templated
235
     .fli_drdy                          (fli_drdy),
236
     .rarb_req                          (rarb_req),
237 8 ghutchis
     // Inputs
238 16 ghutchis
     .clk                               (clk),
239
     .reset                             (reset),
240
     .ri_srdy                           (ri_srdy),
241
     .ri_data                           (ri_data[`PRW_SZ-1:0]),   // Templated
242
     .prx_srdy                          (prx_srdy),              // Templated
243
     .prx_data                          (prx_data),              // Templated
244
     .ro_drdy                           (ro_drdy),
245
     .ptx_drdy                          (rttx_drdy),             // Templated
246
     .fli_srdy                          (fli_srdy),
247
     .fli_data                          (fli_data[`NUM_PORTS-1:0]),
248
     .rarb_ack                          (rarb_ack));
249 8 ghutchis
 
250
/* egr_oflow AUTO_TEMPLATE
251
 (
252
    .c_\(.*\)    (rttx_\1[]),
253
    .p_\(.*\)    (ctx_\1[]),
254
  );
255
 */
256
  egr_oflow oflow
257
    (/*AUTOINST*/
258
     // Outputs
259 16 ghutchis
     .c_drdy                            (rttx_drdy),             // Templated
260
     .p_srdy                            (ctx_srdy),              // Templated
261
     .p_data                            (ctx_data[`PFW_SZ-1:0]), // Templated
262
     .p_commit                          (ctx_commit),            // Templated
263
     .p_abort                           (ctx_abort),             // Templated
264 8 ghutchis
     // Inputs
265 16 ghutchis
     .clk                               (clk),
266
     .reset                             (reset),
267
     .c_srdy                            (rttx_srdy),             // Templated
268
     .c_data                            (rttx_data[`PFW_SZ-1:0]), // Templated
269
     .tx_usage                          (tx_usage[`TX_USG_SZ-1:0]),
270
     .p_drdy                            (ctx_drdy));             // Templated
271 8 ghutchis
 
272
/* distributor AUTO_TEMPLATE
273
 (
274
    .p_\(.*\)    (txg_\1[]),
275
 );
276
 */
277
  distributor dst
278
    (/*AUTOINST*/
279
     // Outputs
280 16 ghutchis
     .ptx_drdy                          (ptx_drdy),
281
     .p_srdy                            (txg_srdy),              // Templated
282
     .p_code                            (txg_code[1:0]),  // Templated
283
     .p_data                            (txg_data[7:0]),  // Templated
284 8 ghutchis
     // Inputs
285 16 ghutchis
     .clk                               (clk),
286
     .reset                             (reset),
287
     .ptx_srdy                          (ptx_srdy),
288
     .ptx_data                          (ptx_data[`PFW_SZ-1:0]),
289
     .p_drdy                            (txg_drdy));             // Templated
290 8 ghutchis
 
291
  sd_tx_gigmac tx_gmii
292
    (/*AUTOINST*/
293
     // Outputs
294 16 ghutchis
     .gmii_tx_en                        (gmii_tx_en),
295
     .gmii_txd                          (gmii_txd[7:0]),
296
     .txg_drdy                          (txg_drdy),
297 8 ghutchis
     // Inputs
298 16 ghutchis
     .clk                               (clk),
299
     .reset                             (reset),
300
     .txg_srdy                          (txg_srdy),
301
     .txg_code                          (txg_code[1:0]),
302
     .txg_data                          (txg_data[7:0]));
303 8 ghutchis
 
304
endmodule // port_macro
305
// Local Variables:
306
// verilog-library-directories:("." "../../../rtl/verilog/closure" "../../../rtl/verilog/buffers" "../../../rtl/verilog/forks")
307
// End:  

powered by: WebSVN 2.1.0

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