下列进程,正确的有
选项:
A:process (clk,rst)beginif (rst='0') thenLED_STATE_COUNT<=(others=>'0');Elsif (rising_edge(clk)) thenLED_STATE_COUNT<=(others=>'0') when (LED_STATE_COUNT=9) else(LED_STATE_COUNT+1);end if;end process;;
B:process (clk,rst)beginif (rst='0') thenLED_STATE_COUNT<=(others=>'0');elsif (rising_edge(clk)) thenif (LED_STATE_COUNT=9) thenLED_STATE_COUNT<=(others=>'0');elseLED_STATE_COUNT<=LED_STATE_COUNT+1;end if;end if;end process;;
C:PROCESS (clk, clr)BEGINIF clr = '1' THEN tmps <= "0000"; ELSIF (clk'EVENT AND clk = '1') THEN IF X= '0' THEN IF (tmps="0110") THEN tmps<="0000"; ELSE tmps <=tmps+'1'; end if; ELSIF X='1' then IF (tmps="1110") THEN tmps<="0000"; ELSE tmps <=tmps+'1'; END IF; END IF; END IF;q<=tmps;END PROCESS;;
D:PROCESS (clk, clr, Qx)BEGINIF clr = '1' THEN tmps <= "0000"; ELSIF (clk'EVENT AND clk = '1') THEN IF (Qx= '0') THEN IF (tmps = "0110") THEN Qx <= x; tmps<="0000"; ELSE tmps <=tmps+'1'; end if; ELSIF (Qx= '1') THEN IF (tmps ="1110") THEN Qx <= x; tmps<="0000"; ELSE tmps <=tmps+'1'; END IF; END IF; END IF;q<=tmps;END PROCESS;
发布时间:2024-06-09 15:35:03