Hardware
Všichni výrobci hradlových polí nabízí podporu svých produktů ve formě vývojových prostředků. Pro potřeby školy jsme vyzkoušeli různé, ale jednoznačně nejlepší zkušenost jsme učinili se Starter Kit Spartan 3 s typovým označením DO-SPAR3-DK. Jak je z názvu patrné, je tento kit postaven na hradlovém poli Spartan 3 firmy Xilinx.
Mnohé je patrné z obrázku, přesto však řada věcí není hned zřejmá. Pro úplnost tedy doplňuji
- Hradlové pole Spartan 3 obsahuje 200 tis hradel (XC3S200FT256)
- Konfigurační flash paměť XCF02S, 2 Mbit
- Dvě rychlé SRAM 256k x 16, 10 ns
- Port VGA
- Port RS232
- Port PS/2
- Čtyřmístný, sedmisegmentový displej
- 8 x LED
- 8 x posuvný spínač
- 4 x tlačítko
- Taktovací oscilátor 50 MHz
- Patice pro další oscilátor
- Tři 40 pinové rozšiřující konektory
Pro potřebu školy je významné, že už základní jednotka obsahuje řadu periferií a není tedy na začátku nutné nic dalšího připojovat. Jedinou drobnou nevýhodou je, že programovací JTAG kabel dodávaný spolu s kitem je pro LPT rozhraní a tak případný USB kabel představuje další výdaj.
Výrobcem toho vývojového prostředku je firma Digilent. Na stránkách této firmy může zájemce najít řadu výrobků pro objednání, nebo alespoň pro inspiraci.
Software
Druhou podstatnou částí podpory ze strany výrobce hradlových polí musí být také potřebný vývojový software. Nejinak je to i ze strany firmy Xilinx. Pro potřeby vývojářů je na stránkách firmy k dispozici ISE WebPack. To je prostředí, které umožňuje celý vývoj počínaje založením projektu, přes tvorbu potřebných souborů, jejich simulaci až po tvorbu konfiguračního souboru a jeho zavedení do paměti kitu. V současné době je k dispozici verze 8.2i. Celý software je free, stačí se zaregistrovat. Kromě toho je na stránkách firmy ke stažení také simulátor ModelSim XE.
Blikající LED
Že práce s hradlovými poli může být i zábavné hraní, se pokusím ukázat na příkladu blikající LED diody. Toto zadání je řešitelné několika způsoby. Pokud není stanovena frekvence blikání je asi nejjednodušší použít 26 bitový binární čítač na jehož vstup připojíme oscilátor 50 MHz a na nejvyšší bit připojíme LED.
Vlastní program byl vytvořen ve VHDL jako soubor Led_cntr.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Led_cntr is
Port ( clk : in STD_LOGIC;
led : out STD_LOGIC);
end Led_cntr;
architecture Behavioral of Led_cntr is
signal count : STD_LOGIC_VECTOR(25 downto 0):= "00000000000000000000000000";
begin
process (clk)
begin
if clk="1" and clk"event then
count <= count + 1;
end if;
end process;
led <= count(25);
end Behavioral;
Kromě toho byl vytvořen potřebný ucf soubor, který konfiguruje vstupy a výstupy.
Oba soubory jsou ke stažení v downloadu. Pokud si budete chtít program vyzkoušet, založte ve WebPacku projekt, ale do něj netvořte žádné soubory. Do adresáře projektu pak nakopírujte soubor Led_cntr.vhd z downloadu a přidejte jej do projektu. Pak už je možné vyzkoušet si simulaci. Pokud máte k dispozici kit, přidejte do projektu taky ucf soubor a po vytvoření konfiguračního souboru můžete program zavést do konfigurační paměti. Běh programu se spouští automaticky.
Závěr
Program blikající LED je tak jednoduchý, že nepředpokládám nějaké problémy. Současně si však myslím, že zájemci o hradlová pole uvítají i něco složitějšího. Příští díl tedy ukáže ovládání sedmisegmentového displeje.
kral.j@ centrum.cz
Downloads&Odkazy
- Domovské stránky Xilinx http://www.xilinx.com/products/spartan3/boards/SP3kitSS.pdf
- Domovské stránky Digilent http://www.digilentinc.com
- Download popisu vývojového kitu - http://www.xilinx.com/products/spartan3/boards/SP3kitSS.pdf
- Download souboru Led_cntr.vhd
- Download souboru Led_cntr.ucf