原创 verilog 的 FOR语句

2013-10-25 22:11 1783 20 20 分类: FPGA/CPLD

module pcie( input clk, input rst_n,output reg [15:0]numout,input [12:0]data
    );

reg [4:0]i;
always@(posedge clk or negedge rst_n)
  begin
  if(!rst_n)
  numout<=0;
  else begin
  for(i=0;i<13;i=i+1) begin   
    if (data)
    numout<=numout+1;
 
end
end

end
endmodule

 

 

注意 综合需要 将 for  循环展开

 资源 消耗如下

 

 

module pcie( input clk, input rst_n,output reg [15:0]numout,input [12:0]data
    );
reg[7:0] cnt;
reg [4:0]i;
always@(posedge clk or negedge rst_n)
  begin
  if(!rst_n)
  numout<=0;
  else begin
  for(i=0;i<13;i=i+1) begin   
    if (data)
    numout<=numout+1;
 
  

 

case (i)
1-7:begin
  cnt<=cnt+1;
  end
  8:begin
  cnt<=cnt-1;
  end
  endcase
  end
  end
  end
endmodule

 case   语句可以 做嵌套  做多个值case

 

 

 

 

 

 

文章评论0条评论)

登录后参与讨论
我要评论
0
20
关闭 站长推荐上一条 /2 下一条