本文提供了一个同步清零、同步置数的十进制加法计数器代码和一个异步清零、异步置数的可逆十进制计数器代码,且使用ISE13.4综合通过并在Basys2开发板上成功验证功能,此外大家可以修改代码以调节周期。
同步清零、同步置数的十进制加法计数器代码:
module add_1(
input clk,//50MHz,20ns
input sw0,//清零
input sw1,//置数
input [3:0] data,
output reg [3:0] led
);
reg [25:0] mclk;
reg q;//1Hz时钟
initial mclk=26'b0;
initial q=0;
always@(posedge clk)
begin
if(mclk==25000000)
begin
mclk<=0;
q=!q;
end
else
begin
mclk<=mclk+1;
end
end
always@(posedge q)
begin
if(sw0==1)
begin
led<=0;
end
else if(sw1==1)
begin
led<=data;
end
else if(led>=9)
begin
led<=0;
end
else
begin
led<=led+1;
end
end
endmodule
约束条件:
NET"clk"LOC=B8;
NET"sw0"LOC=N3;
NET"sw1"LOC=E2;
NET"data[0]"LOC=P11;
NET"data[1]"LOC=L3;
NET"data[2]"LOC=K3;
NET"data[3]"LOC=B4;
NET"led[0]"LOC=M5;
NET"led[1]"LOC=M11;
NET"led[2]"LOC=P7;
NET"led[3]"LOC=P6;
异步清零、异步置数的可逆十进制计数器代码下载地址:
https://download.csdn.net/download/weixin_39603637/10374030