/entradas/
PIN 1=CLK;
PIN 2= A;
PIN 3= B;
PIN 4= C;
PIN 5= D;
/salidas/
PIN 23=!Q0;
PIN 22=!Q1;
PIN 21=!Q2;
PIN 20=!Q3;
PIN 19=!Q4;
PIN 18=!Q5;
PIN 17=correcto;
PIN 16=incorrecto;
/definicion de estados/
$define S0 'b' 000000
$define S1 'b' 000001
$define S2 'b' 000010
$define S3 'b' 000100
$define S4 'b' 001000
$define S5 'b' 010000
$define S6 'b' 100000
field entrada=[A, B, C, D];
field estados=[Q0, Q1, Q2, Q3, Q4, Q5];
Qd = !Q0 & !Q1 & !Q2 & !Q3 & !Q4 & !Q5 & !D & !C & !B & A;
APPEND Qd = Q0 & !Q1 & !Q2 & !Q3 & !Q4 & !Q5 & !D & !C & B & !A;
APPEND Qd = !Q0 & Q1 & !Q2 & !Q3 & !Q4 & !Q5 & !D & !C & B & A;
APPEND Qd = !Q0 & !Q1 & Q2 & !Q3 & !Q4 & !Q5 & !D & C & !B & !A;
APPEND Qd = !Q0 & !Q1 & !Q2 & Q3 & !Q4 & !Q5 & !D & C & !B & A;
APPEND Qd = !Q0 & !Q1 & !Q2 & !Q3 & Q4 & !Q5 & !D & C & B & !A;
sequence incorrecto{
present 'b' 0
if Qd next 'b' 0;
if !Qd next 'b' 1;
present 'b' 1
default next 'b' 1;
}
sequence estados {
PRESENT Q0
IF b NEXT Q1;
DEFAULT NEXT Q0 ;
PRESENT Q1
IF b NEXT Q2;
DEFAULT NEXT Q0 ;
PRESENT Q2
IF b NEXT Q3;
DEFAULT NEXT Q0 ;
PRESENT Q3
IF b NEXT S4;
DEFAULT NEXT Q0 ;
PRESENT Q4
IF b NEXT Q5;
DEFAULT NEXT Q0 ;
PRESENT Q5
DEFAULT NEXT Q0 ;
}