实验内容
手工绘制的电路结构RTL图
计数器代码
//////////////////// 计数器代码 /////////////////////////
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