Considera la classe JKFlipFlop
che simula il funzionamento di un flip-flop JK edge-triggered.
L’interazione con gli ingressi J
e K
del flip-flop avviene tramite i metodi:
public void setJ(boolean j)
public void setK(boolean k)
Il triggering del flip-flop è prodotto dal metodo che simula un impulso di clock:
public void clock()
Lo stato del flip-flop è accessibile attraverso il metodo:
public boolean getQ()
La logica di funzionamento del FF JK é riassunta nella seguente tabella:
J | K | C | Q | |
---|---|---|---|---|
0 | 0 | ↑ | Q0 | NC |
0 | 1 | ↑ | 0 | RESET |
1 | 0 | ↑ | 1 | SET |
1 | 1 | ↑ | !Q0 | TOGGLE |
L’istanziazione dei flip-flop è possibile esclusivamente tramite il costruttore vuoto; inizialmente i flip-flop si trovano nello stato RESET (Q=0).
Dovrai:
JKFlipFlop
, per ognuno di essi dovrai fornire:
JKFlipFlop
JKFlipFlop
utilizzando il framework JUnit
in modo appropriato