ABEL: Zählerprogrammierung mit Ausgabe

Gast #2419770
Lesenswert?

hi,

ich bin dabei folgendes Programm zu erstellen.

Ich lese einen Takt "a_in" ein. Zudem lese ich von einem BCD 
Codierschalter eine BCD codierte Zahl ein.

Mein Wunsch: Wenn ich 5 auf dem BCD-Codierer habe, soll jeder 5te Takt 
ausgegeben werden.

Umgesetzt habe ich es wie folgt:
Die BCD Zahl lese ich binär ein und erzeuge ein Set "set_bcd_e".
Ich erzeuge interne Hilfsausgänge "NODE" und bündel diese zu einem Set 
"set_ctr". Dieses Set soll bei jedem Takt "a_in" hochzählen.
Wenn der Zähler "set_ctr" gleich dem BCD "set_bcd_e" ist, soll er den 
Takt auf den Ausgang "a_out" ausgeben und den Zähler Set "set_ctr" auf 0 
zurück setzten und wieder bei neuem anfangen.

CODE:

MODULE Spurteiler

TITLE 'Spurteiler'

DECLARATIONS

//Inputs
a_in  PIN  10;
bcd_e_3..bcd_e_0  PIN  32..29;

//Interne Hilfsausgänge
ctr_3..ctr_0  NODE  ISTYPE'BUFFER,REG';

//Sets
set_ctr = [ctr_3..ctr_0];
set_bcd_e = [bcd_e_3..bcd_e_0];

//Outputs
a_out  PIN  6  ISTYPE'BUFFER,COM';

EQUATIONS

set_ctr.CLK = a_in;

set_ctr.D = set_ctr.Q + 1;

WHEN(set_ctr == set_bcd_e)  THEN  {
        a_out = a_in;
        set_ctr.D = 0;
        }
END


Leider funktioniert mein Code nicht wie gewünscht! Wo ist der 
Denkfehler?
ispLEVER gibt bei Erzeugung der JEDEC-File folgende Warnung: "43006 
WARNING: No chip input pins drive data input and clock input of any 
register"

Über jede Hilfe bin ich dankbar!

Mit freundlichen Grüßen

Michael K.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren