加法计数器
原理
每次时钟脉冲信号 clk 为上升沿时, 计数器会将计数值加 1。下图为模4计数器。
代码
module lab(
input clk,
output reg [3:0]Q=0 //模16计数器
);
always @(posedge clk)
begin
Q<=Q+1;
end
endmodule
仿真
module Test();
//input
reg clk;
//output
wire [3:0]Q; //不要漏掉[3:0],否则仿真有误
initial
begin
clk=0;
end
always #50 clk=~clk;
lab test(
.clk(clk),
.Q(Q)
);
endmodule
波形
RTL
减法计数器
原理
减法计数器的计数方式改成 15,14…0,其他与加法计数器一样
代码
module lab(
input clk,
output reg [3:0]Q=4'b1111 //模16计数器
);
always @(posedge clk)
begin
Q<=Q-1;
end
endmodule
仿真
和加法计数器一样
波形
RTL
结束语
这次的实验很简单,下一个实验是 "进阶版"分频器,继续学习去了~