2,425
社区成员
发帖
与我相关
我的任务
分享
localparam NUM_CE = 8;
localparam NUM_BLOCK = 80;
localparam NUM_BLOCK_k5_LOOP = 3*NUM_CE;
localparam NUM_BLOCK_k3_LOOP = 5*NUM_CE;
reg [2:0] s_mode_state[NUM_CE-1:0];
reg [5:0] s_rd_en [NUM_BLOCK-1:0];
genvar i;
generate
for (i=0;i<NUM_CE;i=i+1)
begin:TEST ///
always @(posedge I_clk or negedge I_rst_n)
begin
if(I_rst_n==1'b0)begin
s_rd_en[0*NUM_CE+i] <= 6'b0;
s_rd_en[1*NUM_CE+i] <= 6'b0;
s_rd_en[2*NUM_CE+i] <= 6'b0;
s_rd_en[3*NUM_CE+i] <= 6'b0;
s_rd_en[4*NUM_CE+i] <= 6'b0;
s_rd_en[5*NUM_CE+i] <= 6'b0;
s_rd_en[6*NUM_CE+i] <= 6'b0;
s_rd_en[7*NUM_CE+i] <= 6'b0;
s_rd_en[8*NUM_CE+i] <= 6'b0;
s_rd_en[9*NUM_CE+i] <= 6'b0;
end
else begin
case(s_mode_state[i])
3'b001:begin
s_rd_en[0*NUM_CE+i] <= (s_ram_batch_ren_cnt0[4*(i+1)-1:4*i]==4'd0) ? s_rd_ofmap_en0[6*(i+1)-1:6*i]:6'b0;
s_rd_en[1*NUM_CE+i] <= (s_ram_batch_ren_cnt0[4*(i+1)-1:4*i]==4'd1) ? s_rd_ofmap_en0[6*(i+1)-1:6*i]:6'b0;
s_rd_en[2*NUM_CE+i] <= (s_ram_batch_ren_cnt0[4*(i+1)-1:4*i]==4'd2) ? s_rd_ofmap_en0[6*(i+1)-1:6*i]:6'b0;
s_rd_en[3*NUM_CE+i] <= (s_ram_batch_ren_cnt0[4*(i+1)-1:4*i]==4'd3) ? s_rd_ofmap_en0[6*(i+1)-1:6*i]:6'b0;
s_rd_en[4*NUM_CE+i] <= (s_ram_batch_ren_cnt0[4*(i+1)-1:4*i]==4'd4) ? s_rd_ofmap_en0[6*(i+1)-1:6*i]:6'b0;
s_rd_en[5*NUM_CE+i] <= (s_ram_batch_ren_cnt0[4*(i+1)-1:4*i]==4'd5) ? s_rd_ofmap_en0[6*(i+1)-1:6*i]:6'b0;
end
3'b010:begin
s_rd_en[0*NUM_BLOCK_k5_LOOP+i*3+0] <= (s_ram_batch_ren_cnt1[4*(i+1)-1:4*i]==4'd0) ? s_rd_ofmap_en0[6*(i+1)-1:6*i]:6'd0;
s_rd_en[0*NUM_BLOCK_k5_LOOP+i*3+1] <= (s_ram_batch_ren_cnt1[4*(i+1)-1:4*i]==4'd0) ? s_rd_ofmap_en1[6*(i+1)-1:6*i]:6'd0;
s_rd_en[0*NUM_BLOCK_k5_LOOP+i*3+2] <= (s_ram_batch_ren_cnt1[4*(i+1)-1:4*i]==4'd0) ? s_rd_ofmap_en2[6*(i+1)-1:6*i]:6'd0;
s_rd_en[1*NUM_BLOCK_k5_LOOP+i*3+0] <= (s_ram_batch_ren_cnt1[4*(i+1)-1:4*i]==4'd1) ? s_rd_ofmap_en0[6*(i+1)-1:6*i]:6'd0;
s_rd_en[1*NUM_BLOCK_k5_LOOP+i*3+1] <= (s_ram_batch_ren_cnt1[4*(i+1)-1:4*i]==4'd1) ? s_rd_ofmap_en1[6*(i+1)-1:6*i]:6'd0;
s_rd_en[1*NUM_BLOCK_k5_LOOP+i*3+2] <= (s_ram_batch_ren_cnt1[4*(i+1)-1:4*i]==4'd1) ? s_rd_ofmap_en2[6*(i+1)-1:6*i]:6'd0;
s_rd_en[2*NUM_BLOCK_k5_LOOP+i*3+0] <= (s_ram_batch_ren_cnt1[4*(i+1)-1:4*i]==4'd2) ? s_rd_ofmap_en0[6*(i+1)-1:6*i]:6'd0;
s_rd_en[2*NUM_BLOCK_k5_LOOP+i*3+1] <= (s_ram_batch_ren_cnt1[4*(i+1)-1:4*i]==4'd2) ? s_rd_ofmap_en1[6*(i+1)-1:6*i]:6'd0;
s_rd_en[2*NUM_BLOCK_k5_LOOP+i*3+2] <= (s_ram_batch_ren_cnt1[4*(i+1)-1:4*i]==4'd2) ? s_rd_ofmap_en2[6*(i+1)-1:6*i]:6'd0;
end
3'b100:begin
s_rd_en[0*NUM_BLOCK_k3_LOOP+i*5+0] <= (s_ram_batch_ren_cnt25[4*(i+1)-1:4*i]==4'd0) ? s_rd_ofmap_en0[6*(i+1)-1:6*i]:6'd0;
s_rd_en[0*NUM_BLOCK_k3_LOOP+i*5+1] <= (s_ram_batch_ren_cnt25[4*(i+1)-1:4*i]==4'd0) ? s_rd_ofmap_en1[6*(i+1)-1:6*i]:6'd0;
s_rd_en[0*NUM_BLOCK_k3_LOOP+i*5+2] <= (s_ram_batch_ren_cnt25[4*(i+1)-1:4*i]==4'd0) ? s_rd_ofmap_en2[6*(i+1)-1:6*i]:6'd0;
s_rd_en[0*NUM_BLOCK_k3_LOOP+i*5+3] <= (s_ram_batch_ren_cnt25[4*(i+1)-1:4*i]==4'd0) ? s_rd_ofmap_en3[6*(i+1)-1:6*i]:6'd0;
s_rd_en[0*NUM_BLOCK_k3_LOOP+i*5+4] <= (s_ram_batch_ren_cnt25[4*(i+1)-1:4*i]==4'd0) ? s_rd_ofmap_en4[6*(i+1)-1:6*i]:6'd0;
s_rd_en[1*NUM_BLOCK_k3_LOOP+i*5+0] <= (s_ram_batch_ren_cnt25[4*(i+1)-1:4*i]==4'd1) ? s_rd_ofmap_en0[6*(i+1)-1:6*i]:6'd0;
s_rd_en[1*NUM_BLOCK_k3_LOOP+i*5+1] <= (s_ram_batch_ren_cnt25[4*(i+1)-1:4*i]==4'd1) ? s_rd_ofmap_en1[6*(i+1)-1:6*i]:6'd0;
s_rd_en[1*NUM_BLOCK_k3_LOOP+i*5+2] <= (s_ram_batch_ren_cnt25[4*(i+1)-1:4*i]==4'd1) ? s_rd_ofmap_en2[6*(i+1)-1:6*i]:6'd0;
s_rd_en[1*NUM_BLOCK_k3_LOOP+i*5+3] <= (s_ram_batch_ren_cnt25[4*(i+1)-1:4*i]==4'd1) ? s_rd_ofmap_en3[6*(i+1)-1:6*i]:6'd0;
s_rd_en[1*NUM_BLOCK_k3_LOOP+i*5+4] <= (s_ram_batch_ren_cnt25[4*(i+1)-1:4*i]==4'd1) ? s_rd_ofmap_en4[6*(i+1)-1:6*i]:6'd0;
end
default:begin
s_rd_en[0*NUM_CE+i] <= 6'b0;
s_rd_en[1*NUM_CE+i] <= 6'b0;
s_rd_en[2*NUM_CE+i] <= 6'b0;
s_rd_en[3*NUM_CE+i] <= 6'b0;
s_rd_en[4*NUM_CE+i] <= 6'b0;
s_rd_en[5*NUM_CE+i] <= 6'b0;
s_rd_en[6*NUM_CE+i] <= 6'b0;
s_rd_en[7*NUM_CE+i] <= 6'b0;
s_rd_en[8*NUM_CE+i] <= 6'b0;
s_rd_en[9*NUM_CE+i] <= 6'b0;
end
endcase
end
end
end
endgenerate