g20v8a er en programmerbar logisk enhed (PLD), som indeholder 8 input og output ben. Når du starter et program i WinCupl stifterne kan defineres på to måder; i en gruppe, eller individuelt. Bellow viser forskellen mellem de to Salg
Gruppe:. /* Output pins * /PIN [15..21] = [a, b, c, d, e, f, g] Pin 2 = res ;
Individuelt: /* output pins * /PIN 15 = a; PIN 16 = b, PIN 17 = c, PIN-kode 18 = d; PIN 19 = e, PIN 20 = f, PIN 21 = g; Pin 2 = res;
Der er ingen reel forskel mellem input og output pin hinanden input stifter begynde på Pin 2, mens produktionen begynder ved Pin 15.
Det følgende eksempel på kode implementerer en synkron tilstandsmaskine kodet for en 7 segment display
For det første skal du placere alle de output pins i en gruppe:.
felt tæller = [a, b, c, d, e, f, g ]
Så du definere alle de stater, som koncernen kan være i NB: I gal20v8a er der maksimalt 8 tilgængelige stater, der kan gøres.. For flere stater en højere orden chip ville være påkrævet.
$ definere S0 «b'0110000 $ definerer S1 'b'1101101 $ definerer S2' b'1111001 $ definerer S3 'b'0110011 $ definerer S4' b '1011011 $ definerer S5' b'1011111 $ definerer S6 'b'1001111
De stater, ovenstående er kodet for en 7 segment display. Bemærk, at de stater, tæller ned fra 1 til 6, derefter vise E.Now at alle variabler og stater er blevet skabt programmet kan writen. For en synkron maskine uret er automatisk antages at være Pin 1 og behøver ikke at blive defineret, og heller ikke er CLK eller Pin 1 refereret i overalt af koden
{stede S0 hvis res næste S1.
!; hvis res næste S0, nuværende S1 hvis res næste S2!; hvis res næste S0, nuværende S2 hvis res næste S3!; hvis res næste S0, nuværende S3 hvis res næste S4!; hvis res næste S0, nuværende S4 hvis res næste S5!; hvis res næste S0, nuværende S5 hvis res næste S6!; hvis res næste S0, nuværende S6 hvis res næste S0!; hvis res næste S0;}
fortsættes på næste side >> problemer, der opstår, og andre måder med at nå det samme resultat
.