Obsah:

Jednominutové stopky VHDL: 5 kroků
Jednominutové stopky VHDL: 5 kroků

Video: Jednominutové stopky VHDL: 5 kroků

Video: Jednominutové stopky VHDL: 5 kroků
Video: ECG Simulator with VGA output coded in VHDL 2024, Listopad
Anonim
Image
Image

Toto je návod, jak vytvořit minutové stopky pomocí VHDL a desky Basys 3. Takové zařízení je ideální pro hry, kde každý hráč má maximálně jednu minutu na svůj tah. Stopky na sedmisegmentovém displeji přesně zobrazují sekundy a milisekundy, počínaje 0 sekundami a 0 milisekundami, až 60 sekund a 0 milisekund. Používají se také dvě tlačítka: střední tlačítko sloužící ke spuštění, zastavení a pokračování časovače a pravé tlačítko slouží k restartování časovače. Když je zařízení porovnáno bok po boku s vestavěnými stopkami chytrého telefonu, je přesnost hodin znatelná.

Krok 1: Získejte hardware/software

Blokové schéma
Blokové schéma

1. Basys 3 Artix-7 FPGA Trainer Board od společnosti Digilent s kabelem Micro-USB na USB

2. Vivado 2016.2 Design Suite od Xilinx

Krok 2: Blokový diagram

Tento obvod je konstruován behaviorálně a používá vestavěné komponenty Xilinx, ale může být také popsán strukturálně, jak ukazuje obecný strukturální diagram výše. Z diagramu je vidět, že obvod je poháněn dvěma frekvenčními děliči. Jeden z frekvenčních děličů běží 1 centisekundu a pohání katodový čítač, který se používá jako čísla zobrazená na sedmisegmentovém displeji. Druhý dělič kmitočtů běží na 240 Hz a slouží k pohonu čítače anod, který se otáčí anodami, takže se všechna čísla na sedmisegmentovém displeji zobrazují správně. Kodér odebírá katodovou logiku z katodového čítače a anodovou logiku z anodového čítače a kóduje ji na výstupní katodu a anodu, která spouští sedmisegmentový displej. Funkce tohoto kodéru je, aby se výstup katody měnil pokaždé, když se změní výstup anody. Katodový výstup nelze spustit nezávisle na čítači, protože anody se musí otáčet přes 4 samostatné číslice.

Krok 3: Modul projektu

Za prvé, procesní blok pro CEN je vytvořen tak, že když je detekováno stisknutí tlačítka, ENABLE se přepne. Toto slouží jako zastavení/spuštění katodového čítače.

V dalším procesním bloku jsou hodinové signály centisekund a 240 Hz nastaveny tak, aby se jejich příslušné čítače zvýšily o 1 pokaždé, když vnitřní hodiny 100 MHz dosáhnou stoupající hrany. Jakmile čítač centisekund dosáhne 500 000, resetuje se zpět na 0. Mezitím se čítač 240 Hz resetuje, jakmile počet dosáhne 41667.

Pokud je pro část katody kódu, pokud je ENABLE '0', počítání katody se pozastaví. Pokud během této doby stisknete resetovací tlačítko, všechny počty se resetují na „0000“. Mezitím, pokud je ENABLE '1', počítání katody bude pokračovat, dokud počet katod nedosáhne 60,00, ve kterém spustí stop signál na '1'. Signál zastavení směřuje zpět do procesního bloku CEN a způsobí, že ENABLE bude '0', zatímco signál zastavení je '1', a nezmění se, dokud nestisknete tlačítko reset.

Nakonec je sedmisegmentový displej nastaven tak, že 4 anody jsou správně spojeny s každou z jejich 8 katod, aby se současně zobrazily jejich příslušné číslice 0-9.

Krok 4: Omezení

Omezení
Omezení

Tento soubor omezení spojuje určené vstupy a výstupy z VHDL do nezbytných fyzických částí desky Basys. Pro tento projekt komponenty obsahují čtyři anody a každou z jejich osmi katod pro sedmisegmentový displej, interní hodiny 100 MHz, středové tlačítko a pravé tlačítko.

Krok 5: Test

Jakmile kód dokončíte, můžete nyní programovat FPGA pomocí kabelu USB. Sedmisegmentový displej by měl ukazovat 0,00. Otestujte, zda tlačítka fungují, stisknutím středového tlačítka spusťte časovač, dokud nedosáhne 60,00 hodin a nezastaví se; kdykoli mezi tím můžete pozastavení pozastavit opětovným stisknutím středového tlačítka. Jakmile je pozastaveno, můžete stisknutím pravého tlačítka resetovat časovač zpět na 0,00. Pokud vše funguje správně, gratulujeme, že jste právě vytvořili minutový časovač!

Doporučuje: