module count(
input clk,
input rst,
input reset,
input flag_add,
input flag_sub,
output reg [7:0] sum
);
always@(posedge clk or negedge rst)
begin
if(!rst)
sum<=8'h00;
else if(!reset)
sum <= 8'h69; //同步置位 数值自己定;
else if(flag_add)
sum <= sum+1;
else if(flag_sub)
sum <= sum-1;
end
endmodule
计数器是一种应用十分广泛的时序电路,除用于计数,分频外,还广泛用于数字测量,运算和控制,从小型数字仪表,到大型数字电子计算机,几乎无所不在,是任何现代数字系统中不可缺少的组成部分.
计数器可利用触发器和门电路构成.但在实际工作中,主要是利用集成计数器来构成.在用集成计数器构成n进制计数器时,需要利用清零端或置数控制端,让电路跳过某些状态来获得n进制计数器.
寄存器是用来存放二进制数据或代码的电路,是一种基本时序电路.任何现代数字系统都必须把需要处理的数据和代码先寄存起来,以便随时取用.
寄存器分为基本寄存器和移位寄存器两大类.基本寄存器的数据只能并行输入,并行输出.移位寄存器中的数据可以在移位脉冲作用下依次逐位右移或左移,数据可以并行输入,并行输出,串行输入,串行输出,并行输入,串行输出,串行输入,并行输出
module 4_bit_counter(
clk,
reset_n,
enable,
out
);
input clk;
input reset_n;
input enable;
output [3:0]out;
always@(posedge clk or negedge reset_n)begin
if(!reset_n) out <= 4'b0;
else if(enable && out<=4'b1111)
out <= out + 1'b1;
else out <= 4'b0;
end
endmodule