/********************************************** _ _ Cook Darwin __

_ descript: author : Cook.Darwin Version: VERA.0.0 creaded: 2017/8/23 madified: ***********************************************/ `timescale 1ns/1ps module next_prio #(

parameter   NUM = 8,
parameter   NSIZE = $clog2(NUM)

)(

input [NSIZE-1:0]               curr_addr,
input [NUM-1:0]                 array,
output logic[NSIZE-1:0]         next_addr

);

int CC,II; logic [NSIZE-1:0] index; logic [NSIZE-1:0] addr_t;

always_comb begin

addr_t = '0;
for(CC=0;CC<NUM;CC++)begin
    if(CC==curr_addr || CC == 0)begin
        for(II=NUM;II>0;II--)begin
            if((NUM-II+CC)>=NUM )
                    index = CC-II;
             else   index = NUM-II+CC;

            addr_t  = array[index] ? index : addr_t;
        end
    end
end

end

assign next_addr = addr_t;

endmodule