Új hozzászólás Aktív témák

  • CPT.Pirk

    Jómunkásember

    Nem tudom ki foglalkozott itt VHDL kóddal, de lenne egy kérdésem.

    Kellene egy 24 bites fel / le számláló CPLD nekem, ami nem a rendszer órajelét számolja, hanem az egyik bemeneten érkező impulzusra felfelé számol, a másikon érkezőre meg lefelé.
    Csináltam egy while ciklusos megoldást, de ez nem igazán HW-re való megoldás, a top modul implementációnál le is akad, mert a while ciklusnak nincs vége.

    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;
    use IEEE.STD_LOGIC_UNSIGNED.ALL;

    entity updown is
    GENERIC(X : INTEGER := 24);
    port(CLR, UP, DOWN : in STD_LOGIC;
    Q : out STD_LOGIC_VECTOR ( (X-1) downto 0));
    end updown;

    architecture Behavioral of updown is
    signal tmp: STD_LOGIC_VECTOR ( (X-1) downto 0);
    begin
    process (CLR, UP, DOWN)
    begin
    while (1=1) loop
    if (CLR='1') then
    tmp <= "000000000000000000000000";
    elsif (UP = '1' and DOWN = '0') then
    tmp <= tmp + 1;
    elsif (UP = '0' and DOWN = '1') then
    tmp <= tmp - 1;
    end if;
    Q <= tmp;
    end loop;
    end process;
    end Behavioral;

    Ez az elgondolás a programozásból fakad, valakinek van valami jobb ötlete? Googliztam már a témában, de leginkább az óra jelet számolgatják, nem impulzusokat.

    Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)

Új hozzászólás Aktív témák