一、计数器最关心的三个问题:
1.初始值是多少
- 复位值
- 每轮技术的初始值
2.加1条件是什么
3.结束条件
- 即结束本轮技术的条件
- 一般又是加1条件,不要特地为结束而多统计一个数
- 记得要变回初始值
计数器使用中的注意问题
- 用于统计计数的,建议用自增计数器
- 用于不定时计数的(即每轮计数多少个不定),建议自减计数器
- 计数器一般从0开始计数,不要从非0开始。这样有助于检查计数器是否正确,也便于他人理解。
- 选好结束数,不要多计一个数来做结束。例如需要计10个数,则从0计数到9即可,结束数时9二不是10.
- 位宽应合理。位宽要能保证可以容纳得下计数器可以达到的最大的数,例如,记到6最少需要3位的位宽,二计到10就需要4位位宽了。
- 计数时,特别要注意0是否要统计在内。
//不定时计数,用自减计数器
always @(posedge clk or negedge rst_n)begin
if(rst_n == 1'b0)begin
cnt <= 0;
end
else if(start == 1)begin
cnt <= max;
end
else if(cnt != 0)begin
cnt <= cnt - 1;
end
end
//统计计数,用自增计数器
always @(posedge clk or negedge rst_n)begin
if(!rst_n)begi