• Typisk VHDL-beskrivning av MOORE-maskin
  • Umeå universitettillämpad fysik och elektronikDatorteknikHåkan Joëlson




    Download 88.88 Kb.
    bet4/6
    Sana04.01.2022
    Hajmi88.88 Kb.
    #11025
    1   2   3   4   5   6

    Sekvensfunktioner i VHDL


    Det som utmärker sekvenskretsar och sekvensnät är att utsignalerna beror både av kretsens/nätets tillstånd och av eventuella insignaler.

    Sekvensfunktioner är av två huvudtyper:


    Moore-maskiner - nätets utsignaler beror bara av nuvarande tillstånd

    Mealy-maskiner - nätets utsignaler beror både av nätets insignaler och av nuvarande tillstånd.

    Typisk VHDL-beskrivning av MOORE-maskin

    ENTITY cnt_moore IS PORT(

    i :IN bit;

    clk :IN bit;

    ut :OUT bit_vector(1 DOWNTO 0)

    );

    END;


    ARCHITECTURE beh_cnt_moore 0F cnt_moore IS
    TYPE tillst IS (s0,s1,s2,s3);

    SIGNAL nuv_tillst, nst_tillst :tillst;


    BEGIN
    P0: PROCESS(nuv_tillst,i)

    BEGIN


    CASE nuv_tillst IS

    WHEN s0 =>

    IF i='0' THEN nst_tillst <= s1;

    ELSE nst_tillst <= s3;

    END IF;

    WHEN s1 =>

    IF i='0' THEN nst_tillst <= s2;

    ELSE nst_tillst <= s0;

    END IF;

    WHEN s2 =>

    IF i='0' THEN nst_tillst <= s3;

    ELSE nst_tillst <= s1;

    END IF;

    WHEN s3 =>

    IF i='0' THEN nst_tillst <= s0;

    ELSE nst_tillst <= s2;

    END IF;

    END CASE;

    END PROCESS;
    P1: PROCESS(clk)

    BEGIN


    IF (clk'event AND clk='1') THEN nuv_tillst<=nst_tillst;

    END IF;


    END PROCESS;
    P2: PROCESS(nuv_tillst)

    BEGIN


    CASE nuv_tillst IS

    WHEN s0 => ut <= "00";

    WHEN s1 => ut <= "01";

    WHEN s2 => ut <= "10";

    WHEN s3 => ut <= "11";

    END CASE;

    END PROCESS;

    END;




    Download 88.88 Kb.
    1   2   3   4   5   6




    Download 88.88 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Umeå universitettillämpad fysik och elektronikDatorteknikHåkan Joëlson

    Download 88.88 Kb.