Gast
#2419770
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.