Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Licznik wstecz z pobieraniem czasu do odliczenia [ABEL]

Rascal90 28 Gru 2011 11:21 1225 0
  • #1 28 Gru 2011 11:21
    Rascal90
    Poziom 1  

    Witam,
    Jestem początkującym forumowiczem jak również początkującym "programistą" w układów CPLD (wymóg uczelni). Otóż mam do zaprojektowania licznik, który odliczając w tył, będzie odliczał czas od pewnej zadanej przez użytkownika wartości aż do 0 i wtedy wyśle sygnał dźwiękowy o zakończeniu procesu. Mnie sen z powiek spędza samo wprowadzenie czasu do odliczania. O ile sam projekt licznika rewersyjnego mi zadziałał (najpierw liczymy w górę i w pewnym momencie każemy liczyć w dół) to samo zaprojektowanie licznika, który będzie liczył tylko w dół od zadanej wartości już mi nie wychodzi. Poniżej przedstawiam początek kodu, który stworzyłem :

    MODULE counter

    TITLE 'licznik wstecz'

    DECLARATIONS
    CLK, A3..A0, B7..B0 PIN;
    OE PIN ISTYPE 'com';
    Q7..Q0 PIN ISTYPE 'reg';

    KOD = [A3..A0];
    CZAS = [B7..B0];
    CNT = [Q7..Q0];

    EQUATIONS
    CNT.CLK = CLK;

    CNT := (CNT.fb-1) & OE & (CNT.fb > 0);

    TRUTH_TABLE(KOD->[OE])
    0->[0];
    1->[0];
    2->[0];
    3->[0];
    4->[0];
    5->[0];
    6->[0];
    7->[0];
    8->[0];
    9->[1];
    10->[0];
    11->[0];
    12->[0];
    13->[0];
    14->[0];
    15->[0];

    END

    Licznik jest wyposażony w wejście OE, które nie pozwala na pracę gdy wprowadzony KOD jest niepoprawny (Stąd truth_table). Chcę aby mój CZAS został wysłany do CNT i od tej wartości rozpoczęło się odliczanie. Przypisanie CNT = CZAS lub podobne nie dało skutku, wektory testowe wtedy na nic się zdają.

    Bardzo proszę o jakiekolwiek wskazówki, porady, będę wdzięczny za każdą pomoc.
    Pozdrawiam

    0 0