Skip to content

从培训机构学习的关于Verilog编程的一些规范。

计数器代码

计数器代码设计规则:

  1. 计数器逐一考虑三要素:初值、加1条件、结束值
  2. 计数初值必须为0
  3. 使用某一计数值,必须同时满足加1条件
  4. 结束条件必须满足加1条件,且结束值必须是 x1的形式
  5. 当取某个数时,assign形式必须为:(加1条件) && (cnt == 计数值 -1)
  6. 计数器计数结束后必须回到 0
  7. 设置限定范围使用 >=<两种符号
  8. 设计步骤是:先写计数器的always段,条件用名字判断;用 assign写出 加1条件;最后用 assign 写出结束条件
  9. 加1条件必须与计数器严格对其,其他信号一律向计数器对齐
  10. 计数器的命名规范:加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;

最新更新: