"Simon" CPE 133 slutlig projekt (1 / 6 steg)
Steg 1: Första Finite State Machine
De två staterna i den första FSM skapade vi var display och vänta att korrekt Visa ett mönster på lysdioderna.
Mikronesien börjar i wait och när man trycker på startsignalen det skulle flytta till tillståndet displayen att Visa mönstret. När displayen genererades, skulle programmet flytta tillbaka till tillståndet wait baserat på max counter värde att vara hög det skulle överför sedan över till andra Mikronesien som skulle jämföra användaren är ingång till displayen.
Display tillstånd:
I vårt projekt ville vi skapa ett slumpmässigt mönster för lysdioderna. Det gör måste koden ha en slumpgenerator. Vi använde vhdl för en LFSR (linjär återkoppling skiftregister) som gavs till oss i klassen av Professor Danowitz för slumptalsgeneratorn.
Denna slumpgenerator måste anslutas till lysdioder, där olika utgångar av generatorn är kopplade till var och en av de 4 lysdioderna. Vår slumpgenerator skapar en slumpmässigt 32 bitars nummer och dividerade vi varje LED aktivera baserat på vad värdet av slumptalsgeneratorn var i hex.
Det är viktigt i vhdl ha en start signal, som vi har tilldelat till en knapp. I det här fallet när knappen trycks sedan slumptalsgeneratorn skulle börja och därför lamporna skulle visas. Med detta har användaren möjlighet att starta spelet när de är redo.
Dessutom skapade vi en timer för att sakta ner klockan för LED-displayen ska vara synlig för det mänskliga ögat istället för att vara lyste upp för en nanosekund. Vi hittade ett exempel på en timer online som vi ändrade arbeta för vårt spel som kan hittas i hänvisningarna. Timern skapar också en max counter signal: detta händer när klockan går igenom en cykel.
Vi införde också en d-flip-flop för att spärren det värde som genereras från LFSR för en klockcykel. Denna utgång blev sedan ingången av en multiplexer så att lampan skulle antingen slås på eller av för en klockcykel. På grund av multiplexorn har vi en Välj signal som bestäms av staten i Mikronesien; om staten är displayen och välj sedan skulle vara hög, om det var i vänta då det skulle vara låg. Detta är en teknik som vi använt så att lampan skulle bo upplyst under en kort tid och sedan stänga av för att skapa ett mönster.
Vänta tillstånd:
Syftet med tillståndet wait var för LED-displayen att säga programmet när mönstret var redo att genereras och sedan fortsätta till nästa Mikronesien när det var klart visar mönstret.