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 循环展开
资源 消耗如下
2
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条评论)
登录后参与讨论