// Datei: elektr_wuerfel_mitdek.abl
// Autor: Sebastian Müll
// Datum: 30.05.11
MODULE Elektr_Wuerfel
TITLE 'Elektronischer Würfel - Lösung mit Dokodierer'
DECLARATIONS
// Eingabe Pins
Clk pin 89;
Btn pin 15;
Res pin 17;
// Flipflops
q0 pin istype 'REG,BUFFER';
q1 pin istype 'REG,BUFFER';
q2 pin istype 'REG,BUFFER';
d0 pin 58 istype 'REG,BUFFER';
d1 pin 59 istype 'REG,BUFFER';
d2 pin 60 istype 'REG,BUFFER';
d3 pin 61 istype 'REG,BUFFER';
// Enable (pin 91) muss, mittels Jumper,
// mit pin 5V verbunden werden für Stromversorgung
// per USB
En pin 91 istype 'com';
EQUATIONS
// Enable aktivieren um Würfelplatine zu aktivieren
En = 1;
// Zähler
q0.d = !q0.q;
q0.clk = Clk;
q0.ar = Res;
q1.d = (q0.q $ q1.q) & !q2.q;
q1.clk = Clk;
q1.ar = Res;
q2.d = (q2.q $ q1.q) & (q2.q $ q0.q);
q2.clk = Clk;
q2.ar = Res;
// Dekodierer (mit Register)
d0.d = !q0.q;
d0.clk = Clk & Btn; // Takt mit Taster gekoppelt
d0.ar = Res;
d1.d = (q0.q & q1.q) # q2.q;
d1.clk = Clk & Btn;
d1.ar = Res;
d2.d = q0.q & !q1.q & q2.q;
d2.clk = Clk & Btn;
d2.ar = Res;
d3.d = q0.q # q1.q # q2.q;
d3.clk = Clk & Btn;
d3.ar = Res;
END