从培训机构学习的关于Verilog编程的一些规范。
计数器代码
计数器代码设计规则:
- 计数器逐一考虑三要素:初值、加1条件、结束值
- 计数初值必须为0
- 使用某一计数值,必须同时满足加1条件
- 结束条件必须满足加1条件,且结束值必须是
的形式 - 当取某个数时,
assign
形式必须为:(加1条件) && (cnt == 计数值 -1) - 计数器计数结束后必须回到 0
- 设置限定范围使用
和 两种符号 - 设计步骤是:先写计数器的
always
段,条件用名字判断;用assign
写出 加1条件;最后用assign
写出结束条件 - 加1条件必须与计数器严格对其,其他信号一律向计数器对齐
- 计数器的命名规范:加1条件的前缀必须以
add_
开头,结束计数条件必须以end_
开头
verilog
reg[7:0] cnt;
wire add_cnt, end_cnt; // 加1条件和结束条件
always @(posedge clk or negedge reset_n) begin
if (!reset_n) begin
cnt <= 8'd0;
end
else if (add_cnt) begin
if (end_cnt)
cnt <= 8'd0;
else
cnt <= cnt + 8'd1;
end
end
assign add_cnt = a == 2; // 开始计数的条件
assign end_cnt = add_cnt && cnt == 10 - 1;