OpenCores
URL https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk

Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc

[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [rtl/] [src_noc/] [combined_vc_sw_alloc.sv] - Diff between revs 54 and 56

Show entire file | Details | Blame | View Log

Rev 54 Rev 56
Line 24... Line 24...
**      combined VC/SW allocator. VC allocation is done in parallel with swich allocator
**      combined VC/SW allocator. VC allocation is done in parallel with swich allocator
**      for header flits which are successfully get sw grant
**      for header flits which are successfully get sw grant
*************************************/
*************************************/
 
 
 
 
module combined_vc_sw_alloc
module combined_vc_sw_alloc #(
        import pronoc_pkg::*;
    parameter NOC_ID=0,
#(
 
    parameter P = 5 //port number
    parameter P = 5 //port number
)
)(
(
 
    ivc_info,
    ivc_info,
    dest_port_all,
    dest_port_all,
    masked_ovc_request_all,
    masked_ovc_request_all,
    ovc_allocated_all,
    ovc_allocated_all,
    granted_ovc_num_all,
    granted_ovc_num_all,
Line 52... Line 50...
    granted_dst_is_from_a_single_flit_pck,
    granted_dst_is_from_a_single_flit_pck,
    clk,
    clk,
    reset
    reset
 
 
);
);
 
        `NOC_CONF
 
 
    localparam
    localparam
        PV = V * P,
        PV = V * P,
        PVV = PV * V,
        PVV = PV * V,
        P_1 = (SELF_LOOP_EN == "NO")? P-1 : P,
        P_1 = (SELF_LOOP_EN == "NO")? P-1 : P,
        PP_1 = P_1 * P,
        PP_1 = P_1 * P,
        PVP_1 = PV * P_1;
        PVP_1 = PV * P_1;
 
 
 
 
    input  ivc_info_t ivc_info [P-1 : 0][V-1 : 0];
    input  ivc_info_t ivc_info [P-1 : 0][V-1 : 0];
    input  [PVP_1-1 : 0] dest_port_all;
    input  [PVP_1-1 : 0] dest_port_all;
    input  [PVV-1 :  0] masked_ovc_request_all;
    input  [PVV-1 :  0] masked_ovc_request_all;
 
 
 
 
 
 
    output [PV-1 : 0] ovc_allocated_all;
    output [PV-1 : 0] ovc_allocated_all;
    output [PVV-1 : 0] granted_ovc_num_all;
    output [PVV-1 : 0] granted_ovc_num_all;
    output [PV-1 : 0] ivc_num_getting_ovc_grant;
    output [PV-1 : 0] ivc_num_getting_ovc_grant;
    output [PV-1 : 0] ivc_num_getting_sw_grant;
    output [PV-1 : 0] ivc_num_getting_sw_grant;
    output [PV-1 : 0] nonspec_first_arbiter_granted_ivc_all;
    output [PV-1 : 0] nonspec_first_arbiter_granted_ivc_all;
Line 80... Line 76...
    output [P-1 :  0] any_ovc_granted_in_outport_all;
    output [P-1 :  0] any_ovc_granted_in_outport_all;
    output [PP_1-1 : 0] granted_dest_port_all;
    output [PP_1-1 : 0] granted_dest_port_all;
    output [PP_1-1 : 0] nonspec_granted_dest_port_all;
    output [PP_1-1 : 0] nonspec_granted_dest_port_all;
    output [PP_1-1 : 0] spec_granted_dest_port_all;
    output [PP_1-1 : 0] spec_granted_dest_port_all;
    output [PVV-1 : 0] spec_ovc_num_all;
    output [PVV-1 : 0] spec_ovc_num_all;
  //  input  [PVP_1-1 :  0] lk_destination_all;
 
    input  [PV-1 :  0] vc_weight_is_consumed_all;
    input  [PV-1 :  0] vc_weight_is_consumed_all;
    input  [P-1 :  0] iport_weight_is_consumed_all;
    input  [P-1 :  0] iport_weight_is_consumed_all;
 
 
    output [P-1 : 0] granted_dst_is_from_a_single_flit_pck;
    output [P-1 : 0] granted_dst_is_from_a_single_flit_pck;
 
 
Line 257... Line 253...
            );
            );
 
 
        end else begin :cmb_v1
        end else begin :cmb_v1
 
 
            comb_nonspec_allocator #(
            comb_nonspec_allocator #(
 
                .NOC_ID(NOC_ID),
               .P(P)
               .P(P)
            )
            )
            nonspec_comb
            nonspec_comb
            (
            (
                .ivc_info(ivc_info),
                .ivc_info(ivc_info),

powered by: WebSVN 2.1.0

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