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/] [output_ports.sv] - Diff between revs 55 and 56

Show entire file | Details | Blame | View Log

Rev 55 Rev 56
Line 24... Line 24...
**      output_ports module: contain output VC (OVC) status registers and credit counters,
**      output_ports module: contain output VC (OVC) status registers and credit counters,
**
**
**************************************************************/
**************************************************************/
 
 
 
 
module output_ports
module output_ports #(
    import pronoc_pkg::*;
    parameter NOC_ID=0,
 #(
    parameter P=5
    parameter P = 5 // router port num
 
)(
)(
    vsa_ovc_allocated_all,
    vsa_ovc_allocated_all,
    flit_is_tail_all,
    flit_is_tail_all,
 
 
    dest_port_all,
    dest_port_all,
Line 59... Line 58...
    smart_ctrl_in,
    smart_ctrl_in,
    credit_init_val_in
    credit_init_val_in
);
);
 
 
 
 
 
        `NOC_CONF
 
 
 
    localparam
    function integer log2;
        PV      =    V        *    P,
      input integer number; begin
 
         log2=(number <=1) ? 1: 0;
 
         while(2**log2
 
            log2=log2+1;
 
         end
 
      end
 
    endfunction // log2
 
 
 
    localparam      PV      =    V        *    P,
 
                    VV      =   V       *  V,
                    VV      =   V       *  V,
                    PVV     =    PV        *  V,
                    PVV     =    PV        *  V,
                    P_1     =   ( SELF_LOOP_EN=="NO")?  P-1 : P,
                    P_1     =   ( SELF_LOOP_EN=="NO")?  P-1 : P,
                    VP_1    =    V        *     P_1,
                    VP_1    =    V        *     P_1,
                    PP_1    =    P_1    *    P,
                    PP_1    =    P_1    *    P,
                    PVP_1    =    PV        *    P_1;
                    PVP_1    =    PV        *    P_1;
 
 
 
 
    localparam  NORTH  =       2,
 
                SOUTH  =       4;
 
    localparam [V-1     :   0] ADAPTIVE_VC_MASK = ~ ESCAP_VC_MASK;
    localparam [V-1     :   0] ADAPTIVE_VC_MASK = ~ ESCAP_VC_MASK;
    localparam  CONG_ALw=   CONGw * P;   //  congestion width per router;
    localparam  CONG_ALw=   CONGw * P;   //  congestion width per router;
 
 
    input  [PV-1       :    0] vsa_ovc_allocated_all;
    input  [PV-1       :    0] vsa_ovc_allocated_all;
    input  [PV-1       :    0] flit_is_tail_all;
    input  [PV-1       :    0] flit_is_tail_all;
Line 293... Line 281...
    for(i=0; i
    for(i=0; i
 
 
        assign assigned_ovc_num_all[(i+1)*V-1 : i*V] = ivc_info[i/V][i%V].assigned_ovc_num;
        assign assigned_ovc_num_all[(i+1)*V-1 : i*V] = ivc_info[i/V][i%V].assigned_ovc_num;
        assign ovc_is_assigned_all[i]=ivc_info[i/V][i%V].ovc_is_assigned;
        assign ovc_is_assigned_all[i]=ivc_info[i/V][i%V].ovc_is_assigned;
 
 
 
 
 
 
        credit_monitor_per_ovc  #(
        credit_monitor_per_ovc  #(
 
                .NOC_ID(NOC_ID),
                        .SW_LOC(i/V)
                        .SW_LOC(i/V)
                )
        )       credit_monitor (
                credit_monitor
 
                (
 
                        .credit_init_val_i(credit_init_val_in[i/V][i%V]),
                        .credit_init_val_i(credit_init_val_in[i/V][i%V]),
                        .credit_counter_o (credit_counter[i]),
                        .credit_counter_o (credit_counter[i]),
                        .credit_increased (credit_increased_all[i]),
                        .credit_increased (credit_increased_all[i]),
                        .credit_decreased(credit_decreased_all[i]),
                        .credit_decreased(credit_decreased_all[i]),
                        .empty_all_next(empty_all_next[i]),
                        .empty_all_next(empty_all_next[i]),
Line 487... Line 472...
 
 
/*********************
/*********************
 *      credit_monitor_per_ovc
 *      credit_monitor_per_ovc
 ********************/
 ********************/
 
 
module   credit_monitor_per_ovc
module   credit_monitor_per_ovc  #(
        import pronoc_pkg::*;
    parameter NOC_ID=0,
        #(
 
        parameter SW_LOC=0
        parameter SW_LOC=0
        )(
        )(
                credit_init_val_i,
                credit_init_val_i,
                credit_increased,
                credit_increased,
                credit_decreased,
                credit_decreased,
Line 503... Line 487...
                nearly_full_all_next,
                nearly_full_all_next,
                reset,
                reset,
                clk
                clk
        );
        );
 
 
 
        `NOC_CONF
 
 
        localparam
        localparam
        PORT_B = port_buffer_size(SW_LOC),
        PORT_B = port_buffer_size(SW_LOC),
        DEPTHw = log2(PORT_B+1);
        DEPTHw = log2(PORT_B+1);
 
 

powered by: WebSVN 2.1.0

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