Line 1... |
Line 1... |
module port_macro
|
module port_macro
|
#(parameter port_num = 0)
|
#(parameter port_num = 0,
|
|
parameter lpsz = 12,
|
|
parameter lpdsz = 13)
|
(input clk,
|
(input clk,
|
input reset,
|
input reset,
|
|
|
input [`PRW_SZ-1:0] ri_data, // To ring_tap of port_ring_tap.v
|
|
output [`PRW_SZ-1:0] ro_data, // From ring_tap of port_ring_tap.v
|
|
input [`NUM_PORTS-1:0] fli_data, // To ring_tap of port_ring_tap.v
|
|
/*AUTOINPUT*/
|
/*AUTOINPUT*/
|
// Beginning of automatic inputs (from unused autoinst inputs)
|
// Beginning of automatic inputs (from unused autoinst inputs)
|
input fli_srdy, // To ring_tap of port_ring_tap.v
|
input drf_drdy, // To dealloc of deallocator.v
|
|
input [`LL_PG_ASZ-1:0] f2d_data, // To dealloc of deallocator.v
|
|
input f2d_srdy, // To dealloc of deallocator.v
|
input gmii_rx_clk, // To port_clocking of port_clocking.v, ...
|
input gmii_rx_clk, // To port_clocking of port_clocking.v, ...
|
input gmii_rx_dv, // To rx_gigmac of sd_rx_gigmac.v
|
input gmii_rx_dv, // To rx_gigmac of sd_rx_gigmac.v
|
input [7:0] gmii_rxd, // To rx_gigmac of sd_rx_gigmac.v
|
input [7:0] gmii_rxd, // To rx_gigmac of sd_rx_gigmac.v
|
input p2f_drdy, // To pkt_parse of pkt_parse.v
|
input lnp_drdy, // To alloc of allocator.v
|
input rarb_ack, // To ring_tap of port_ring_tap.v
|
input par_drdy, // To alloc of allocator.v
|
input ri_srdy, // To ring_tap of port_ring_tap.v
|
input [`LL_PG_ASZ-1:0] parr_page, // To alloc of allocator.v
|
input ro_drdy, // To ring_tap of port_ring_tap.v
|
input parr_srdy, // To alloc of allocator.v
|
|
input pbra_drdy, // To alloc of allocator.v
|
|
input pbrd_drdy, // To dealloc of deallocator.v
|
|
input [`PFW_SZ-1:0] pbrr_data, // To dealloc of deallocator.v
|
|
input pbrr_srdy, // To dealloc of deallocator.v
|
|
input pm2f_drdy, // To pm2f_join of sd_ajoin2.v
|
|
input rlp_drdy, // To dealloc of deallocator.v
|
|
input [`LL_PG_ASZ:0] rlpr_data, // To dealloc of deallocator.v
|
|
input rlpr_srdy, // To dealloc of deallocator.v
|
// End of automatics
|
// End of automatics
|
|
/*AUTOOUTPUT*/
|
output rarb_req,
|
// Beginning of automatic outputs (from unused autoinst outputs)
|
output fli_drdy, // From ring_tap of port_ring_tap.v
|
output [`LL_PG_ASZ*2-1:0] drf_page_list, // From dealloc of deallocator.v
|
|
output drf_srdy, // From dealloc of deallocator.v
|
|
output f2d_drdy, // From dealloc of deallocator.v
|
output gmii_tx_en, // From tx_gmii of sd_tx_gigmac.v
|
output gmii_tx_en, // From tx_gmii of sd_tx_gigmac.v
|
output [7:0] gmii_txd, // From tx_gmii of sd_tx_gigmac.v
|
output [7:0] gmii_txd, // From tx_gmii of sd_tx_gigmac.v
|
output [`PAR_DATA_SZ-1:0] p2f_data, // From pkt_parse of pkt_parse.v
|
output [`LL_LNP_SZ-1:0] lnp_pnp, // From alloc of allocator.v
|
output p2f_srdy, // From pkt_parse of pkt_parse.v
|
output lnp_srdy, // From alloc of allocator.v
|
output ri_drdy, // From ring_tap of port_ring_tap.v
|
output par_srdy, // From alloc of allocator.v
|
output ro_srdy // From ring_tap of port_ring_tap.v
|
output parr_drdy, // From alloc of allocator.v
|
|
output [`PBR_SZ-1:0] pbra_data, // From alloc of allocator.v
|
|
output pbra_srdy, // From alloc of allocator.v
|
|
output [`PBR_SZ-1:0] pbrd_data, // From dealloc of deallocator.v
|
|
output pbrd_srdy, // From dealloc of deallocator.v
|
|
output pbrr_drdy, // From dealloc of deallocator.v
|
|
output [(`PAR_DATA_SZ)+(`LL_PG_ASZ*2)-1:0] pm2f_data,// From pm2f_join of sd_ajoin2.v
|
|
output pm2f_srdy, // From pm2f_join of sd_ajoin2.v
|
|
output [`LL_PG_ASZ-1:0] rlp_rd_page, // From dealloc of deallocator.v
|
|
output rlp_srdy, // From dealloc of deallocator.v
|
|
output rlpr_drdy // From dealloc of deallocator.v
|
|
// End of automatics
|
);
|
);
|
|
|
wire [`RX_USG_SZ-1:0] rx_usage;
|
wire [`RX_USG_SZ-1:0] rx_usage;
|
wire [`TX_USG_SZ-1:0] tx_usage;
|
wire [`TX_USG_SZ-1:0] tx_usage;
|
wire [`PFW_SZ-1:0] prx_data; // From fifo_rx of sd_fifo_b.v
|
wire [`PFW_SZ-1:0] prx_data; // From fifo_rx of sd_fifo_b.v
|
Line 36... |
Line 58... |
wire [1:0] rxg_code; // From rx_sync_fifo of sd_fifo_s.v
|
wire [1:0] rxg_code; // From rx_sync_fifo of sd_fifo_s.v
|
wire [7:0] rxg_data; // From rx_sync_fifo of sd_fifo_s.v
|
wire [7:0] rxg_data; // From rx_sync_fifo of sd_fifo_s.v
|
wire [`PFW_SZ-1:0] ctx_data; // From oflow of egr_oflow.v
|
wire [`PFW_SZ-1:0] ctx_data; // From oflow of egr_oflow.v
|
/*AUTOWIRE*/
|
/*AUTOWIRE*/
|
// Beginning of automatic wires (for undeclared instantiated-module outputs)
|
// Beginning of automatic wires (for undeclared instantiated-module outputs)
|
|
wire a2f_drdy; // From pm2f_join of sd_ajoin2.v
|
|
wire [`LL_PG_ASZ-1:0] a2f_end; // From alloc of allocator.v
|
|
wire a2f_srdy; // From alloc of allocator.v
|
|
wire [`LL_PG_ASZ-1:0] a2f_start; // From alloc of allocator.v
|
wire crx_abort; // From con of concentrator.v
|
wire crx_abort; // From con of concentrator.v
|
wire crx_commit; // From con of concentrator.v
|
wire crx_commit; // From con of concentrator.v
|
wire [`PFW_SZ-1:0] crx_data; // From con of concentrator.v
|
wire [`PFW_SZ-1:0] crx_data; // From con of concentrator.v
|
wire crx_drdy; // From fifo_rx of sd_fifo_b.v
|
wire crx_drdy; // From alloc of allocator.v
|
wire crx_srdy; // From con of concentrator.v
|
wire crx_srdy; // From con of concentrator.v
|
wire ctx_abort; // From oflow of egr_oflow.v
|
|
wire ctx_commit; // From oflow of egr_oflow.v
|
|
wire ctx_drdy; // From fifo_tx of sd_fifo_b.v
|
|
wire ctx_srdy; // From oflow of egr_oflow.v
|
|
wire gmii_rx_reset; // From port_clocking of port_clocking.v
|
wire gmii_rx_reset; // From port_clocking of port_clocking.v
|
|
wire [`PAR_DATA_SZ-1:0] p2f_data; // From pkt_parse of pkt_parse.v
|
|
wire p2f_drdy; // From pm2f_join of sd_ajoin2.v
|
|
wire p2f_srdy; // From pkt_parse of pkt_parse.v
|
wire [1:0] pdo_code; // From pkt_parse of pkt_parse.v
|
wire [1:0] pdo_code; // From pkt_parse of pkt_parse.v
|
wire [7:0] pdo_data; // From pkt_parse of pkt_parse.v
|
wire [7:0] pdo_data; // From pkt_parse of pkt_parse.v
|
wire pdo_drdy; // From con of concentrator.v
|
wire pdo_drdy; // From con of concentrator.v
|
wire pdo_srdy; // From pkt_parse of pkt_parse.v
|
wire pdo_srdy; // From pkt_parse of pkt_parse.v
|
wire prx_drdy; // From ring_tap of port_ring_tap.v
|
|
wire prx_srdy; // From fifo_rx of sd_fifo_b.v
|
|
wire ptx_drdy; // From dst of distributor.v
|
wire ptx_drdy; // From dst of distributor.v
|
wire ptx_srdy; // From fifo_tx of sd_fifo_b.v
|
wire ptx_srdy; // From dealloc of deallocator.v
|
wire rttx_drdy; // From oflow of egr_oflow.v
|
|
wire rttx_srdy; // From ring_tap of port_ring_tap.v
|
|
wire [1:0] rxc_rxg_code; // From rx_gigmac of sd_rx_gigmac.v
|
wire [1:0] rxc_rxg_code; // From rx_gigmac of sd_rx_gigmac.v
|
wire [7:0] rxc_rxg_data; // From rx_gigmac of sd_rx_gigmac.v
|
wire [7:0] rxc_rxg_data; // From rx_gigmac of sd_rx_gigmac.v
|
wire rxc_rxg_drdy; // From rx_sync_fifo of sd_fifo_s.v
|
wire rxc_rxg_drdy; // From rx_sync_fifo of sd_fifo_s.v
|
wire rxc_rxg_srdy; // From rx_gigmac of sd_rx_gigmac.v
|
wire rxc_rxg_srdy; // From rx_gigmac of sd_rx_gigmac.v
|
wire rxg_drdy; // From pkt_parse of pkt_parse.v
|
wire rxg_drdy; // From pkt_parse of pkt_parse.v
|
Line 86... |
Line 107... |
.reset (gmii_rx_reset),
|
.reset (gmii_rx_reset),
|
.rxg_\(.*\) (rxc_rxg_\1[]),
|
.rxg_\(.*\) (rxc_rxg_\1[]),
|
);
|
);
|
*/
|
*/
|
sd_rx_gigmac rx_gigmac
|
sd_rx_gigmac rx_gigmac
|
(/*AUTOINST*/
|
(
|
|
.cfg_check_crc (1'b0),
|
|
/*AUTOINST*/
|
// Outputs
|
// Outputs
|
.rxg_srdy (rxc_rxg_srdy), // Templated
|
.rxg_srdy (rxc_rxg_srdy), // Templated
|
.rxg_code (rxc_rxg_code[1:0]), // Templated
|
.rxg_code (rxc_rxg_code[1:0]), // Templated
|
.rxg_data (rxc_rxg_data[7:0]), // Templated
|
.rxg_data (rxc_rxg_data[7:0]), // Templated
|
// Inputs
|
// Inputs
|
Line 126... |
Line 149... |
.p_clk (clk), // Templated
|
.p_clk (clk), // Templated
|
.p_reset (reset), // Templated
|
.p_reset (reset), // Templated
|
.p_drdy (rxg_drdy)); // Templated
|
.p_drdy (rxg_drdy)); // Templated
|
|
|
pkt_parse #(port_num) pkt_parse
|
pkt_parse #(port_num) pkt_parse
|
(/*AUTOINST*/
|
(
|
|
/*AUTOINST*/
|
// Outputs
|
// Outputs
|
.rxg_drdy (rxg_drdy),
|
.rxg_drdy (rxg_drdy),
|
.p2f_srdy (p2f_srdy),
|
.p2f_srdy (p2f_srdy),
|
.p2f_data (p2f_data[`PAR_DATA_SZ-1:0]),
|
.p2f_data (p2f_data[`PAR_DATA_SZ-1:0]),
|
.pdo_srdy (pdo_srdy),
|
.pdo_srdy (pdo_srdy),
|
Line 165... |
Line 189... |
.c_data (pdo_data[7:0]), // Templated
|
.c_data (pdo_data[7:0]), // Templated
|
.c_code (pdo_code[1:0]), // Templated
|
.c_code (pdo_code[1:0]), // Templated
|
.c_srdy (pdo_srdy), // Templated
|
.c_srdy (pdo_srdy), // Templated
|
.p_drdy (crx_drdy)); // Templated
|
.p_drdy (crx_drdy)); // Templated
|
|
|
/* sd_fifo_b AUTO_TEMPLATE "fifo_\(.*\)"
|
/* allocator AUTO_TEMPLATE
|
(
|
(
|
.p_abort (1'b0),
|
|
.p_commit (1'b0),
|
|
.c_usage (@_usage),
|
|
.p_usage (),
|
|
.c_\(.*\) (c@_\1),
|
|
.p_\(.*\) (p@_\1),
|
|
);
|
);
|
*/
|
*/
|
sd_fifo_b #(`PFW_SZ, `RX_FIFO_DEPTH, 0, 1) fifo_rx
|
allocator alloc
|
(/*AUTOINST*/
|
|
// Outputs
|
|
.c_drdy (crx_drdy), // Templated
|
|
.p_srdy (prx_srdy), // Templated
|
|
.p_data (prx_data), // Templated
|
|
.p_usage (), // Templated
|
|
.c_usage (rx_usage), // Templated
|
|
// Inputs
|
|
.clk (clk),
|
|
.reset (reset),
|
|
.c_srdy (crx_srdy), // Templated
|
|
.c_commit (crx_commit), // Templated
|
|
.c_abort (crx_abort), // Templated
|
|
.c_data (crx_data), // Templated
|
|
.p_drdy (prx_drdy), // Templated
|
|
.p_commit (1'b0), // Templated
|
|
.p_abort (1'b0)); // Templated
|
|
|
|
sd_fifo_b #(`PFW_SZ, `TX_FIFO_DEPTH, 0, 1) fifo_tx
|
|
(/*AUTOINST*/
|
(/*AUTOINST*/
|
// Outputs
|
// Outputs
|
.c_drdy (ctx_drdy), // Templated
|
.crx_drdy (crx_drdy),
|
.p_srdy (ptx_srdy), // Templated
|
.par_srdy (par_srdy),
|
.p_data (ptx_data), // Templated
|
.parr_drdy (parr_drdy),
|
.p_usage (), // Templated
|
.lnp_srdy (lnp_srdy),
|
.c_usage (tx_usage), // Templated
|
.lnp_pnp (lnp_pnp[`LL_LNP_SZ-1:0]),
|
|
.pbra_data (pbra_data[`PBR_SZ-1:0]),
|
|
.pbra_srdy (pbra_srdy),
|
|
.a2f_start (a2f_start[`LL_PG_ASZ-1:0]),
|
|
.a2f_end (a2f_end[`LL_PG_ASZ-1:0]),
|
|
.a2f_srdy (a2f_srdy),
|
// Inputs
|
// Inputs
|
.clk (clk),
|
.clk (clk),
|
.reset (reset),
|
.reset (reset),
|
.c_srdy (ctx_srdy), // Templated
|
.crx_abort (crx_abort),
|
.c_commit (ctx_commit), // Templated
|
.crx_commit (crx_commit),
|
.c_abort (ctx_abort), // Templated
|
.crx_data (crx_data[`PFW_SZ-1:0]),
|
.c_data (ctx_data), // Templated
|
.crx_srdy (crx_srdy),
|
.p_drdy (ptx_drdy), // Templated
|
.par_drdy (par_drdy),
|
.p_commit (1'b0), // Templated
|
.parr_srdy (parr_srdy),
|
.p_abort (1'b0)); // Templated
|
.parr_page (parr_page[`LL_PG_ASZ-1:0]),
|
|
.lnp_drdy (lnp_drdy),
|
|
.pbra_drdy (pbra_drdy),
|
|
.a2f_drdy (a2f_drdy));
|
|
|
/* port_ring_tap AUTO_TEMPLATE
|
/* sd_ajoin2 AUTO_TEMPLATE
|
(
|
(
|
.ro_data (ro_data[`PRW_SZ-1:0]),
|
.c2_data ({a2f_end,a2f_start}),
|
.ri_data (ri_data[`PRW_SZ-1:0]),
|
.c1_\(.*\) (p2f_\1[]),
|
.prx_\(.*\) (prx_\1),
|
.c2_\(.*\) (a2f_\1[]),
|
.ptx_\(.*\) (rttx_\1),
|
.p_\(.*\) (pm2f_\1[]),
|
);
|
);
|
*/
|
*/
|
port_ring_tap #(port_num) ring_tap
|
sd_ajoin2 #(.c1_width(`PAR_DATA_SZ), .c2_width(`LL_PG_ASZ*2)) pm2f_join
|
(/*AUTOINST*/
|
(/*AUTOINST*/
|
// Outputs
|
// Outputs
|
.ri_drdy (ri_drdy),
|
.c1_drdy (p2f_drdy), // Templated
|
.prx_drdy (prx_drdy), // Templated
|
.c2_drdy (a2f_drdy), // Templated
|
.ro_srdy (ro_srdy),
|
.p_srdy (pm2f_srdy), // Templated
|
.ro_data (ro_data[`PRW_SZ-1:0]), // Templated
|
.p_data (pm2f_data[(`PAR_DATA_SZ)+(`LL_PG_ASZ*2)-1:0]), // Templated
|
.ptx_srdy (rttx_srdy), // Templated
|
|
.ptx_data (rttx_data), // Templated
|
|
.fli_drdy (fli_drdy),
|
|
.rarb_req (rarb_req),
|
|
// Inputs
|
// Inputs
|
.clk (clk),
|
.clk (clk),
|
.reset (reset),
|
.reset (reset),
|
.ri_srdy (ri_srdy),
|
.c1_srdy (p2f_srdy), // Templated
|
.ri_data (ri_data[`PRW_SZ-1:0]), // Templated
|
.c1_data (p2f_data[(`PAR_DATA_SZ)-1:0]), // Templated
|
.prx_srdy (prx_srdy), // Templated
|
.c2_srdy (a2f_srdy), // Templated
|
.prx_data (prx_data), // Templated
|
.c2_data ({a2f_end,a2f_start}), // Templated
|
.ro_drdy (ro_drdy),
|
.p_drdy (pm2f_drdy)); // Templated
|
.ptx_drdy (rttx_drdy), // Templated
|
|
.fli_srdy (fli_srdy),
|
deallocator dealloc
|
.fli_data (fli_data[`NUM_PORTS-1:0]),
|
(/*AUTOINST*/
|
.rarb_ack (rarb_ack));
|
// Outputs
|
|
.f2d_drdy (f2d_drdy),
|
/* egr_oflow AUTO_TEMPLATE
|
.rlp_srdy (rlp_srdy),
|
(
|
.rlp_rd_page (rlp_rd_page[`LL_PG_ASZ-1:0]),
|
.c_\(.*\) (rttx_\1[]),
|
.rlpr_drdy (rlpr_drdy),
|
.p_\(.*\) (ctx_\1[]),
|
.drf_srdy (drf_srdy),
|
);
|
.drf_page_list (drf_page_list[`LL_PG_ASZ*2-1:0]),
|
*/
|
.pbrd_data (pbrd_data[`PBR_SZ-1:0]),
|
egr_oflow oflow
|
.pbrd_srdy (pbrd_srdy),
|
(/*AUTOINST*/
|
.pbrr_drdy (pbrr_drdy),
|
// Outputs
|
.ptx_srdy (ptx_srdy),
|
.c_drdy (rttx_drdy), // Templated
|
.ptx_data (ptx_data[`PFW_SZ-1:0]),
|
.p_srdy (ctx_srdy), // Templated
|
|
.p_data (ctx_data[`PFW_SZ-1:0]), // Templated
|
|
.p_commit (ctx_commit), // Templated
|
|
.p_abort (ctx_abort), // Templated
|
|
// Inputs
|
// Inputs
|
.clk (clk),
|
.clk (clk),
|
.reset (reset),
|
.reset (reset),
|
.c_srdy (rttx_srdy), // Templated
|
.port_num (port_num[1:0]),
|
.c_data (rttx_data[`PFW_SZ-1:0]), // Templated
|
.f2d_srdy (f2d_srdy),
|
.tx_usage (tx_usage[`TX_USG_SZ-1:0]),
|
.f2d_data (f2d_data[`LL_PG_ASZ-1:0]),
|
.p_drdy (ctx_drdy)); // Templated
|
.rlp_drdy (rlp_drdy),
|
|
.rlpr_srdy (rlpr_srdy),
|
|
.rlpr_data (rlpr_data[`LL_PG_ASZ:0]),
|
|
.drf_drdy (drf_drdy),
|
|
.pbrd_drdy (pbrd_drdy),
|
|
.pbrr_srdy (pbrr_srdy),
|
|
.pbrr_data (pbrr_data[`PFW_SZ-1:0]),
|
|
.ptx_drdy (ptx_drdy));
|
|
|
/* distributor AUTO_TEMPLATE
|
/* distributor AUTO_TEMPLATE
|
(
|
(
|
.p_\(.*\) (txg_\1[]),
|
.p_\(.*\) (txg_\1[]),
|
);
|
);
|