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

Subversion Repositories srdydrdy_lib

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 11 to Rev 12
    Reverse comparison

Rev 11 → Rev 12

/srdydrdy_lib/trunk/examples/bridge/rtl/port_ring_tap_fsm.v
21,7 → 21,10
input lptx_drdy,
input [rdp_sz-1:0] lri_data,
input lri_srdy,
input lro_drdy
input lro_drdy,
 
output rarb_req,
input rarb_ack
);
 
reg [4:0] state, nxt_state;
42,6 → 45,8
ns_rcopy = 4,
ns_rsink = 8,
ns_tdata = 16;
 
assign rarb_req = lfli_srdy & lprx_srdy | state[s_tdata];
always @*
begin
52,11 → 57,12
lptx_srdy = 0;
lri_drdy = 0;
lro_srdy = 0;
nxt_state = state;
case (1'b1)
state[s_idle] :
begin
if (lfli_srdy)
if (lfli_srdy & lprx_srdy & rarb_ack)
begin
if (lfli_data != 0)
begin
/srdydrdy_lib/trunk/examples/bridge/rtl/ring_arb.v
0,0 → 1,40
module ring_arb
(
input clk,
input reset,
 
input [`NUM_PORTS-1:0] rarb_req,
output reg [`NUM_PORTS-1:0] rarb_ack
);
integer i;
reg [`NUM_PORTS-1:0] nxt_rarb_ack;
reg [$clog2(`NUM_PORTS)-1:0] nxt_ack;
always @*
begin
nxt_rarb_ack = rarb_ack;
nxt_ack = 0;
 
if (rarb_req == 0)
nxt_rarb_ack = 0;
else if ((rarb_ack == 0) |
((rarb_req & rarb_ack) == 0))
begin
nxt_ack = 0;
for (i=`NUM_PORTS; i>0; i=i-1)
if (rarb_req[i-1])
nxt_ack = i-1;
nxt_rarb_ack = 1 << nxt_ack;
end
end // always @ *
 
always @(posedge clk)
begin
if (reset)
rarb_ack <= #1 0;
else
rarb_ack <= #1 nxt_rarb_ack;
end
 
endmodule // ring_arb
/srdydrdy_lib/trunk/examples/bridge/rtl/port_macro.v
13,10 → 13,12
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 p2f_drdy, // To pkt_parse of pkt_parse.v
input rarb_ack, // To ring_tap of port_ring_tap.v
input ri_srdy, // To ring_tap of port_ring_tap.v
input ro_drdy, // To ring_tap of port_ring_tap.v
// End of automatics
 
output rarb_req,
output fli_drdy, // From ring_tap of port_ring_tap.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
54,6 → 56,7
wire prx_srdy; // From fifo_rx of sd_fifo_b.v
wire ptx_drdy; // From dst of distributor.v
wire ptx_srdy; // From fifo_tx of sd_fifo_b.v
wire rarb_req; // From ring_tap of port_ring_tap.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
228,6 → 231,7
.ptx_srdy (rttx_srdy), // Templated
.ptx_data (rttx_data), // Templated
.fli_drdy (fli_drdy),
.rarb_req (rarb_req),
// Inputs
.clk (clk),
.reset (reset),
238,7 → 242,8
.ro_drdy (ro_drdy),
.ptx_drdy (rttx_drdy), // Templated
.fli_srdy (fli_srdy),
.fli_data (fli_data[`NUM_PORTS-1:0]));
.fli_data (fli_data[`NUM_PORTS-1:0]),
.rarb_ack (rarb_ack));
 
/* egr_oflow AUTO_TEMPLATE
(
/srdydrdy_lib/trunk/examples/bridge/rtl/port_ring_tap.v
28,7 → 28,10
 
input fli_srdy,
output fli_drdy,
input [`NUM_PORTS-1:0] fli_data
input [`NUM_PORTS-1:0] fli_data,
 
output rarb_req,
input rarb_ack
);
 
wire [`PRW_SZ-1:0] lri_data; // From tc_ri of sd_input.v
38,16 → 41,16
wire [`PRW_SZ-1:0] lro_data; // From fsm of port_ring_tap_fsm.v
/*AUTOWIRE*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
wire lfli_drdy; // From fsm of port_ring_tap_fsm.v
wire lfli_srdy; // From tc_fli of sd_input.v
wire lprx_drdy; // From fsm of port_ring_tap_fsm.v
wire lprx_srdy; // From tc_prx of sd_input.v
wire lptx_drdy; // From tc_ptx of sd_output.v
wire lptx_srdy; // From fsm of port_ring_tap_fsm.v
wire lri_drdy; // From fsm of port_ring_tap_fsm.v
wire lri_srdy; // From tc_ri of sd_input.v
wire lro_drdy; // From tc_ro of sd_output.v
wire lro_srdy; // From fsm of port_ring_tap_fsm.v
wire lfli_drdy; // From fsm of port_ring_tap_fsm.v
wire lfli_srdy; // From tc_fli of sd_input.v
wire lprx_drdy; // From fsm of port_ring_tap_fsm.v
wire lprx_srdy; // From tc_prx of sd_input.v
wire lptx_drdy; // From tc_ptx of sd_output.v
wire lptx_srdy; // From fsm of port_ring_tap_fsm.v
wire lri_drdy; // From fsm of port_ring_tap_fsm.v
wire lri_srdy; // From tc_ri of sd_input.v
wire lro_drdy; // From tc_ro of sd_output.v
wire lro_srdy; // From fsm of port_ring_tap_fsm.v
// End of automatics
/* sd_input AUTO_TEMPLATE "tc_\(.*\)"
60,63 → 63,65
sd_input #(rdp_sz) tc_ri
(/*AUTOINST*/
// Outputs
.c_drdy (ri_drdy), // Templated
.ip_srdy (lri_srdy), // Templated
.ip_data (lri_data), // Templated
.c_drdy (ri_drdy), // Templated
.ip_srdy (lri_srdy), // Templated
.ip_data (lri_data), // Templated
// Inputs
.clk (clk),
.reset (reset),
.c_srdy (ri_srdy), // Templated
.c_data (ri_data), // Templated
.ip_drdy (lri_drdy)); // Templated
.clk (clk),
.reset (reset),
.c_srdy (ri_srdy), // Templated
.c_data (ri_data), // Templated
.ip_drdy (lri_drdy)); // Templated
sd_input #(pdp_sz) tc_prx
(/*AUTOINST*/
// Outputs
.c_drdy (prx_drdy), // Templated
.ip_srdy (lprx_srdy), // Templated
.ip_data (lprx_data), // Templated
.c_drdy (prx_drdy), // Templated
.ip_srdy (lprx_srdy), // Templated
.ip_data (lprx_data), // Templated
// Inputs
.clk (clk),
.reset (reset),
.c_srdy (prx_srdy), // Templated
.c_data (prx_data), // Templated
.ip_drdy (lprx_drdy)); // Templated
.clk (clk),
.reset (reset),
.c_srdy (prx_srdy), // Templated
.c_data (prx_data), // Templated
.ip_drdy (lprx_drdy)); // Templated
sd_input #(`NUM_PORTS) tc_fli
(/*AUTOINST*/
// Outputs
.c_drdy (fli_drdy), // Templated
.ip_srdy (lfli_srdy), // Templated
.ip_data (lfli_data), // Templated
.c_drdy (fli_drdy), // Templated
.ip_srdy (lfli_srdy), // Templated
.ip_data (lfli_data), // Templated
// Inputs
.clk (clk),
.reset (reset),
.c_srdy (fli_srdy), // Templated
.c_data (fli_data), // Templated
.ip_drdy (lfli_drdy)); // Templated
.clk (clk),
.reset (reset),
.c_srdy (fli_srdy), // Templated
.c_data (fli_data), // Templated
.ip_drdy (lfli_drdy)); // Templated
 
port_ring_tap_fsm #(rdp_sz, pdp_sz, portnum) fsm
(/*AUTOINST*/
// Outputs
.lfli_drdy (lfli_drdy),
.lprx_drdy (lprx_drdy),
.lptx_data (lptx_data[pdp_sz-1:0]),
.lptx_srdy (lptx_srdy),
.lri_drdy (lri_drdy),
.lro_data (lro_data[rdp_sz-1:0]),
.lro_srdy (lro_srdy),
.lfli_drdy (lfli_drdy),
.lprx_drdy (lprx_drdy),
.lptx_data (lptx_data[pdp_sz-1:0]),
.lptx_srdy (lptx_srdy),
.lri_drdy (lri_drdy),
.lro_data (lro_data[rdp_sz-1:0]),
.lro_srdy (lro_srdy),
.rarb_req (rarb_req),
// Inputs
.clk (clk),
.reset (reset),
.lfli_data (lfli_data[`NUM_PORTS-1:0]),
.lfli_srdy (lfli_srdy),
.lprx_data (lprx_data[pdp_sz-1:0]),
.lprx_srdy (lprx_srdy),
.lptx_drdy (lptx_drdy),
.lri_data (lri_data[rdp_sz-1:0]),
.lri_srdy (lri_srdy),
.lro_drdy (lro_drdy));
.clk (clk),
.reset (reset),
.lfli_data (lfli_data[`NUM_PORTS-1:0]),
.lfli_srdy (lfli_srdy),
.lprx_data (lprx_data[pdp_sz-1:0]),
.lprx_srdy (lprx_srdy),
.lptx_drdy (lptx_drdy),
.lri_data (lri_data[rdp_sz-1:0]),
.lri_srdy (lri_srdy),
.lro_drdy (lro_drdy),
.rarb_ack (rarb_ack));
 
/* sd_output AUTO_TEMPLATE "tc_\(.*\)"
(
128,28 → 133,28
sd_output #(pdp_sz) tc_ptx
(/*AUTOINST*/
// Outputs
.ic_drdy (lptx_drdy), // Templated
.p_srdy (ptx_srdy), // Templated
.p_data (ptx_data), // Templated
.ic_drdy (lptx_drdy), // Templated
.p_srdy (ptx_srdy), // Templated
.p_data (ptx_data), // Templated
// Inputs
.clk (clk),
.reset (reset),
.ic_srdy (lptx_srdy), // Templated
.ic_data (lptx_data), // Templated
.p_drdy (ptx_drdy)); // Templated
.clk (clk),
.reset (reset),
.ic_srdy (lptx_srdy), // Templated
.ic_data (lptx_data), // Templated
.p_drdy (ptx_drdy)); // Templated
 
sd_output #(rdp_sz) tc_ro
(/*AUTOINST*/
// Outputs
.ic_drdy (lro_drdy), // Templated
.p_srdy (ro_srdy), // Templated
.p_data (ro_data), // Templated
.ic_drdy (lro_drdy), // Templated
.p_srdy (ro_srdy), // Templated
.p_data (ro_data), // Templated
// Inputs
.clk (clk),
.reset (reset),
.ic_srdy (lro_srdy), // Templated
.ic_data (lro_data), // Templated
.p_drdy (ro_drdy)); // Templated
.clk (clk),
.reset (reset),
.ic_srdy (lro_srdy), // Templated
.ic_data (lro_data), // Templated
.p_drdy (ro_drdy)); // Templated
 
endmodule // port_ring_tap
// Local Variables:
/srdydrdy_lib/trunk/examples/bridge/rtl/bridge_ex1.v
55,6 → 55,8
wire [`PAR_DATA_SZ-1:0] ppi_data; // From fib_arb of sd_rrslow.v
wire ppi_drdy; // From fib_lookup of fib_lookup.v
wire ppi_srdy; // From fib_arb of sd_rrslow.v
wire [`NUM_PORTS-1:0] rarb_ack; // From ring_arb of ring_arb.v
wire [3:0] rarb_req; // From p0 of port_macro.v, ...
wire ri_drdy_0; // From p0 of port_macro.v
wire ri_drdy_1; // From p1 of port_macro.v
wire ri_drdy_2; // From p2 of port_macro.v
70,6 → 72,7
.clk (clk),
.reset (reset),
.ri_data (ri_data_@),
.rarb_\(.*\) (rarb_\1[@]),
.ro_\(.*\) (ri_\1_@"(% (+ 1 @) 4)"),
.p2f_srdy (p2f_srdy[@]),
.p2f_drdy (p2f_drdy[@]),
83,6 → 86,7
(/*AUTOINST*/
// Outputs
.ro_data (ri_data_1), // Templated
.rarb_req (rarb_req[0]), // Templated
.fli_drdy (flo_drdy[0]), // Templated
.gmii_tx_en (gmii_tx_en_0), // Templated
.gmii_txd (gmii_txd_0[7:0]), // Templated
100,6 → 104,7
.gmii_rx_dv (gmii_rx_dv_0), // Templated
.gmii_rxd (gmii_rxd_0[7:0]), // Templated
.p2f_drdy (p2f_drdy[0]), // Templated
.rarb_ack (rarb_ack[0]), // Templated
.ri_srdy (ri_srdy_0), // Templated
.ro_drdy (ri_drdy_1)); // Templated
 
107,6 → 112,7
(/*AUTOINST*/
// Outputs
.ro_data (ri_data_2), // Templated
.rarb_req (rarb_req[1]), // Templated
.fli_drdy (flo_drdy[1]), // Templated
.gmii_tx_en (gmii_tx_en_1), // Templated
.gmii_txd (gmii_txd_1[7:0]), // Templated
124,6 → 130,7
.gmii_rx_dv (gmii_rx_dv_1), // Templated
.gmii_rxd (gmii_rxd_1[7:0]), // Templated
.p2f_drdy (p2f_drdy[1]), // Templated
.rarb_ack (rarb_ack[1]), // Templated
.ri_srdy (ri_srdy_1), // Templated
.ro_drdy (ri_drdy_2)); // Templated
 
131,6 → 138,7
(/*AUTOINST*/
// Outputs
.ro_data (ri_data_3), // Templated
.rarb_req (rarb_req[2]), // Templated
.fli_drdy (flo_drdy[2]), // Templated
.gmii_tx_en (gmii_tx_en_2), // Templated
.gmii_txd (gmii_txd_2[7:0]), // Templated
148,6 → 156,7
.gmii_rx_dv (gmii_rx_dv_2), // Templated
.gmii_rxd (gmii_rxd_2[7:0]), // Templated
.p2f_drdy (p2f_drdy[2]), // Templated
.rarb_ack (rarb_ack[2]), // Templated
.ri_srdy (ri_srdy_2), // Templated
.ro_drdy (ri_drdy_3)); // Templated
 
155,6 → 164,7
(/*AUTOINST*/
// Outputs
.ro_data (ri_data_0), // Templated
.rarb_req (rarb_req[3]), // Templated
.fli_drdy (flo_drdy[3]), // Templated
.gmii_tx_en (gmii_tx_en_3), // Templated
.gmii_txd (gmii_txd_3[7:0]), // Templated
172,6 → 182,7
.gmii_rx_dv (gmii_rx_dv_3), // Templated
.gmii_rxd (gmii_rxd_3[7:0]), // Templated
.p2f_drdy (p2f_drdy[3]), // Templated
.rarb_ack (rarb_ack[3]), // Templated
.ri_srdy (ri_srdy_3), // Templated
.ro_drdy (ri_drdy_0)); // Templated
 
211,6 → 222,15
.flo_drdy (flo_drdy[`NUM_PORTS-1:0]),
.ppi_srdy (ppi_srdy));
 
ring_arb ring_arb
(/*AUTOINST*/
// Outputs
.rarb_ack (rarb_ack[`NUM_PORTS-1:0]),
// Inputs
.clk (clk),
.reset (reset),
.rarb_req (rarb_req[`NUM_PORTS-1:0]));
 
endmodule // bridge_ex1
// Local Variables:
// verilog-library-directories:("." "../../../rtl/verilog/closure" "../../../rtl/verilog/buffers" "../../../rtl/verilog/forks")
/srdydrdy_lib/trunk/examples/bridge/env/bridge.vf
6,6 → 6,7
 
../rtl/basic_hashfunc.v
../rtl/bridge_ex1.v
../rtl/ring_arb.v
../rtl/concentrator.v
../rtl/distributor.v
../rtl/egr_oflow.v
/srdydrdy_lib/trunk/examples/bridge/env/env_top.v
33,7 → 33,7
driver3.send_packet (4, 1, 64);
join
 
#500;
#2000;
$finish;
end
 

powered by: WebSVN 2.1.0

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