Stap 6: VHDL Modules beschrijvingen
Timer Counter:
Timer, is afhankelijk van enkele variabelen. De belangrijkste variabele is de nl, welke in de eindige toestandsmachine waarover is gesproken. Dit programma is het programma dat ervoor zorgt dat na bepaalde bedrag van de cyclus (in ons geval 4), het programma is beëindigd. Als de nl = 1, dan de module voegt een naar een binair getal van 3 bits, die aanvankelijk op nul, op de stijgende clk. anders de teller op nul wordt teruggesteld. Er is ook een vermogen om weer te geven als de tijd voorbij is, of u op de juiste knop hebt gedrukt.
Score de teller:
Functioneel, de teller opgeteld 1 tot en met de totale score als het een wedstrijd signaal ontvangt. Anders de score is ingesteld op de vorige score. De score is in eerste instantie ingesteld op nul. De score is opnieuw ingesteld op nul in de ruststand van de eindige toestandsmachine.
Comparateur:
De comparator vindt in twee 3 bits bussen en vergelijkt die bussen als de nl 1 is. Een van de bussen vertegenwoordigt is de btns en de andere de LEDs. Deze Comparateur is in principe controleren als de btns en de LED's overeenkomen. Als zij dit doen, het signaal een wedstrijd, anders het niet match signaal wordt verzenden. Als de comparator ziet dat de btn pers niet hebben, het zal niet geven match of niet overeenkomt met een signaal.
sseg_dec:
Code is gemaakt door Bryan Mealy. Deze code heeft enkele componenten in. Het converteert binair getal naar een decimaal getal, de zeven segment displays met de invoerwaarde beheert, en daarin ook een klok-verdeler.
Klok divisie:
De klok scheidingslijn code is geschreven door Bryan Mealy. Een klok divider vertraagt of verhoogt de frequentie van de klok. We getweaked de max waarden overeenkomen met de tijd frame / cyclus we zochten. Onze scheidingslijn gemodificeerde klok draait op een kwart een tweede termijn.
Decoders:
Wij hebben slechts één decoder die de willekeurige 8-bit waarde aan verschillende 3 bits waarden toewijst. De 8 bits nummer vertegenwoordigt de willekeurige waarde die wij krijgen van de generator van willekeurige bits die wij zullen sprak meer over in de details later. De 3 bits getal vertegenwoordigt de LED die zal worden verlichting up.
LED Driver:
Deze module is bedoeld om te worden van het stuurprogramma voor de knop en tempo-indicator LED's. Het tempo LED gewoon gekopieerd het vertraagd kloksignaal van onze klok scheidingslijn, en geflitst op het ritme van het spel. De knop indicator LED knippert op voor de eerste twee van de vier beats blijkt uit de tempo-indicator, terwijl het het signaal van onze super traag klok (periode van vier beats) gekopieerd.
Willekeurige knop kiezer:
De willekeurige knop kiezer dat hadden we een pseudo-random gebruikt beetje generator, gemaakt door een lineaire feedback shift register (of LFSR voor korte). Deze LFSR is gewoon een keten van d-flip flops met een paar selecteren flip-flop uitgangen leidt tot XOR-gates die terug naar de eerste d-flip flop leiden. Deze keten maakt een semi-willekeurige volgorde die zich herhalen zal op een bepaald punt (maar niet zo snel). Deze LFSR maakt een willekeurige 8-bits binair getal (in decimale notatie, ergens tussen 0 en 255), die we vervolgens onze decoder verzenden te kiezen voor een knop. (Onze PRBG was gemodelleerd naar Debashish Mohapatra van 16-bits PRBG, die kan worden gevonden herehttp://www.debashish.info/index.php/e-learning/vlsi-design/vhdl-codes/174-prbs-pseudo-random-binary-sequence-generator-vhdl-code-and-vhdl-testbench-creation)