6,127
社区成员
发帖
与我相关
我的任务
分享
process(clkDiv1s,rst)
variable hourHight_r : integer range 0 to 15;
variable hourLow_r : integer range 0 to 15;
variable minHight_r : integer range 0 to 15;
variable minLow_r : integer range 0 to 15;
variable secHight_r : integer range 0 to 15;
variable secLow_r : integer range 0 to 15;
begin
if rst='0' then
hourHight_r:=2;
hourLow_r:=3;
minHight_r:=5;
minLow_r:=9;
secHight_r:=5;
secLow_r:=6;
else
if clkDiv1s'event and clkDiv1s='0' then
secLow_r:=secLow_r+1;
if secLow_r>=10 then
secLow_r:=0;
secHight_r:=secHight_r+1;
if secHight_r>=6 then
secHight_r:=0;
minLow_r:=minLow_r+1;
if minLow_r >=10 then
minLow_r:=0;
minHight_r:=minHight_r+1;
if minHight_r>=6 then
minHight_r:=0;
hourLow_r:=hourLow_r+1;
if (not (hourHight_r>1 and hourLow_r>3)) and hourLow_r>=9 then
hourLow_r:=0;
hourHight_r:=hourHight_r+1;
elsif (hourHight_r>1 and hourLow_r>3) then
hourHight_r:=0;
hourLow_r:=0;
end if;
end if;
end if;
end if;
end if;
end if;
end if;
hourHight<=hourHight_r;
hourLow<=hourLow_r;
minHight<=minHight_r;
minLow<=minLow_r;
secHight<=secHight_r;
secLow<=secLow_r;
end process;