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 11

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

powered by: WebSVN 2.1.0

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