Indholdsfortegnelse:

VHDL Et minuts stopur: 5 trin
VHDL Et minuts stopur: 5 trin

Video: VHDL Et minuts stopur: 5 trin

Video: VHDL Et minuts stopur: 5 trin
Video: Basys2 Stopwatch (10min) 2024, November
Anonim
Image
Image

Dette er en vejledning i, hvordan du opbygger et stopur på et minut ved hjælp af VHDL og et Basys 3 -kort. Sådan en enhed er ideel til spil, hvor hver spiller maksimalt har et minut til at foretage sit træk. Stopuret viser nøjagtigt sekunder og millisekunder på displayet med syv segmenter, der starter med 0 sekunder og 0 millisekunder, op til 60 sekunder og 0 millisekunder. To knapper bruges også: den centrale knap, der bruges til at starte, stoppe og fortsætte timeren, og den højre knap, bruges til at genstarte timeren. Når enheden sammenlignes side om side med det indbyggede stopur på en smartphone, er urets nøjagtighed mærkbar.

Trin 1: Hent hardware/software

Blokdiagram
Blokdiagram

1. Basys 3 Artix-7 FPGA Trainer Board fra Digilent med Micro-USB til USB-kabel

2. Vivado 2016.2 Design Suite fra Xilinx

Trin 2: Blokdiagram

Dette kredsløb er konstrueret adfærdsmæssigt og bruger indbyggede Xilinx-komponenter, men kan også beskrives strukturelt, som vist af det generelle strukturdiagram ovenfor. Af diagrammet kan det ses, at kredsløbet drives af to frekvensdelere. En af frekvensdelerne kører på 1 centisekund og driver katodetælleren, der bruges som de tal, der vises på syv-segment displayet. Den anden frekvensdeler kører ved 240Hz og bruges til at drive anodetælleren, der roterer gennem anoderne, så alle tallene vises korrekt på syvsegmentets display. Koderen tager katodelogikken fra katodetælleren og anodelogikken fra anodetælleren og koder den til outputets katode og anode, der kører det syv-segmenters display. Funktionen af denne encoder er, at katodeudgangen ændres hver gang anodeudgangen ændres. Katodeudgangen kan ikke køres uafhængigt af tælleren, fordi anoderne skal rotere gennem de 4 separate cifre.

Trin 3: Projektmodul

For det første laves en procesblok for CEN, så når en knap Tryk registreres, vil ENABLE skifte. Dette fungerer som stop/start af katodetælleren.

I den næste procesblok indstilles centisekund og 240Hz urssignaler, så deres respektive tællere stiger med 1 hver gang det interne 100mHz ur når en stigende kant. Når centisekundstælleren når 500000, nulstilles den tilbage til 0. I mellemtiden nulstilles 240Hz -tælleren, når tællingen når 41667.

For katodesektionen i koden, hvis ENABLE er '0', stopper katodetællingen. Hvis der trykkes på reset -knappen i løbet af denne tid, nulstilles alle tællingerne til "0000". I mellemtiden, hvis ENABLE er '1', fortsætter katodtællingen, indtil katodeantallet når 60,00, hvor det udløser stopsignalet til at være '1'. Stoppesignalet går tilbage til CEN -procesblokken og får ENABLE til at være '0', mens stopsignalet er '1' og ændres ikke, før der trykkes på reset -knappen.

Endelig er det syv segment display konfigureret ved at have de 4 anoder korrekt forbundet med hver af deres 8 katoder for at vise deres respektive cifre 0-9 samtidigt.

Trin 4: Begrænsninger

Begrænsninger
Begrænsninger

Denne begrænsningsfil forbinder de angivne input og output fra VHDL til de nødvendige, fysiske dele af Basys -kortet. Til dette projekt omfatter komponenterne de fire anoder og hver af deres otte katoder til syv segment display, det interne 100 mHz ur, midterknappen og den højre knap.

Trin 5: Test

Når du har udfyldt koden, kan du nu programmere FPGA via USB -kablet. Displayet med syv segmenter skal vise 0,00. Test for at se, om knapperne virker ved at trykke på den midterste knap for at starte timeren, indtil den når 60,00 og stopper; når som helst imellem, kan du trykke på den centrale knap igen for at sætte den på pause. Når den er sat på pause, kan du trykke på den højre knap for at nulstille timeren til 0,00. Hvis alt fungerer korrekt, tillykke, du har lige bygget en et minuts timer!

Anbefalede: