求大神解释下这段代码
process(clk_in_40MHz)begin
if(rising_edge(clk_in_40MHz))then
if(key_in_buf='0')then
plu_beipin <= '0';
flag_50period<='0';
beipin_cnt<= X"0000";
count_pluse <= X"000000";
cnt_beipin<= X"0000000000";
cnt_num <= X"00";
else
denom_in_buf <= denom_in;
pluse_buf <= pluse_in;
count_pluse <= count_pluse + 1;
if((pluse_buf='1')and(pluse_in='0'))then
period <= count_pluse + 1;
count_pluse <= X"000000";
end if;
if((pluse_buf='0')and(pluse_in='1'))then
period_beipin <= quotient;
cnt_num <= cnt_num + 1;
if(cnt_num=X"31")then
cnt_num <=X"00";
flag_50period <= '1';
end if;
end if;
cnt_beipin <= cnt_beipin + period_beipin;
plu_beipin <= cnt_beipin(31);
if((plu_beipin='1')and(cnt_beipin(31)='0'))then
beipin_cnt <= beipin_cnt + 1;
if((beipin_cnt=denom_in_buf-1)and((flag_50period='1')))then
beipin_cnt<=X"0000";
flag_50period<='0';
end if;
end if;
if(beipin_cnt=denom_in_buf)then
beipin_cnt<=denom_in_buf;
cnt_beipin<=X"0000000000";
end if;
if((flag_50period='1')and(beipin_cnt=denom_in_buf))then
beipin_cnt<=X"0000";
flag_50period<='0';
end if;
end if;
end if;
end process;
页:
[1]