简易计数器1

时间:2023-02-04 14:49:22

实验内容

简易计数器1


手工绘制的电路结构RTL图

简易计数器1


计数器代码

//////////////////// 计数器代码 /////////////////////////
module counter(
RST , // 异步复位, 高有效
CLK , // 时钟,上升沿有效
CNT // 输出的计数值信号
);
input RST, CLK;
output [3:0] CNT;

reg [3:0] CNT;

integer CNT_MAX = 6; //CNT_MAX,最大计数值
always @ (posedge CLK or posedge RST)
begin
if(RST)
CNT <= 0; //异步复位
else if(CNT < CNT_MAX) //计数器未计数到最大值,下一值加1
begin
CNT <= CNT + 1'b1;
end
else //计数器计数到最大值,下一计数值为0
begin
CNT <= 0;
if(CNT_MAX < 9)
CNT_MAX <= CNT_MAX + 1;
else
CNT_MAX <= 6;
end

end
endmodule

计数器波形仿真截图

简易计数器1


Quartus扫描生成的电路RTL图

简易计数器1