Książka na zupełny początek z FPGA
Książka na zupełny początek z FPGA
Jaką książkę polecacie na początek z fpga? Taką, żeby poruszała zupełne podstawy, opis tych układów itd.
- michalstec1
- Użytkownik
- Posty: 202
- Rejestracja: 20 kwie 2007, 13:24
- Lokalizacja: Jazowsko
- Kontakt:
-
keruseykaryu
Widziałem już wiele książek o FPGA i VHDL. To straszne, ale żadna nie była napisana tak by się tego łatwo nauczyć. Trzeba przekopywać się przez PDFy, strony, manuale, helpy i samemu działać, próbować, symulować. Nie ma lekko.
Możesz sobie kupić to http://komputeks.pl/product_info.php/products_id/1620 ale ta książka nieco za szybko przechodzi od opisów do oprogramowania.
Powiem tak: na początek architektura FPGA nie taka istotna jest. Bo w sumie zwykłe FPGA to jakaś tam matryca jednakowych klocków (zwykle przerzutnik, jakaś bramka i bufor) połączonych sygnałowymi autostradami. A ty piszesz kod w VHDL i to program do syntezy ma się martwić jak to połączyć by dobrze działało. Nawet jak rysujesz układ na bramkach to i tak powstaje VHDL (ale nieźle pokręcony).
Przykładem takie cóś jak na obrazku, tworzy taki kod.
A szłoby to opisać w paru linijkach:
I jak sobie odpale pogląd po syntezie to obie struktury są takie same.
Możesz sobie kupić to http://komputeks.pl/product_info.php/products_id/1620 ale ta książka nieco za szybko przechodzi od opisów do oprogramowania.
Powiem tak: na początek architektura FPGA nie taka istotna jest. Bo w sumie zwykłe FPGA to jakaś tam matryca jednakowych klocków (zwykle przerzutnik, jakaś bramka i bufor) połączonych sygnałowymi autostradami. A ty piszesz kod w VHDL i to program do syntezy ma się martwić jak to połączyć by dobrze działało. Nawet jak rysujesz układ na bramkach to i tak powstaje VHDL (ale nieźle pokręcony).
Przykładem takie cóś jak na obrazku, tworzy taki kod.
Kod: Zaznacz cały
library ieee;
use ieee.std_logic_1164.all;
library proasic3;
use proasic3.all;
entity BRAMKA is
port( ANDO : out std_logic;
ORO : out std_logic;
XORO : out std_logic;
INA : in std_logic;
INB : in std_logic
);
end BRAMKA;
architecture DEF_ARCH of BRAMKA is
component AND2
port( A : in std_logic := 'U';
B : in std_logic := 'U';
Y : out std_logic
);
end component;
component XOR2
port( A : in std_logic := 'U';
B : in std_logic := 'U';
Y : out std_logic
);
end component;
component OR2
port( A : in std_logic := 'U';
B : in std_logic := 'U';
Y : out std_logic
);
end component;
component INBUF
port( PAD : in std_logic := 'U';
Y : out std_logic
);
end component;
component OUTBUF
port( D : in std_logic := 'U';
PAD : out std_logic
);
end component;
signal \$1N10\, \$1N11\, \$1N12\, \$1N4\, \$1N7\
: std_logic;
begin
\$1I1\ : AND2
port map(A => \$1N4\, B => \$1N7\, Y => \$1N10\);
\$1I3\ : XOR2
port map(A => \$1N4\, B => \$1N7\, Y => \$1N12\);
\$1I2\ : OR2
port map(A => \$1N4\, B => \$1N7\, Y => \$1N11\);
\$1I17\ : INBUF
port map(PAD => INB, Y => \$1N7\);
\$1I13\ : OUTBUF
port map(D => \$1N10\, PAD => ANDO);
\$1I15\ : OUTBUF
port map(D => \$1N12\, PAD => XORO);
\$1I16\ : INBUF
port map(PAD => INA, Y => \$1N4\);
\$1I14\ : OUTBUF
port map(D => \$1N11\, PAD => ORO);
end DEF_ARCH; Kod: Zaznacz cały
library ieee;
use ieee.std_logic_1164.all;
library proasic3;
use proasic3.all;
entity BRAMKA is
port( ANDO : out std_logic;
ORO : out std_logic;
XORO : out std_logic;
INA : in std_logic;
INB : in std_logic
);
end BRAMKA;
architecture DEF_ARCH of BRAMKA is
begin
ANDO <= INA and INB;
XORO <= INA xor INB;
ORO <= INA or INB;
end DEF_ARCH;- Załączniki
-
- andorxor.png (1.95 KiB) Przejrzano 10916 razy
1. Musisz się zdecydować na jeden z języków opisu sprzętowego HDL: VHDL lub Verilog.Kulpina pisze:Jaką książkę polecacie na początek z fpga? Taką, żeby poruszała zupełne podstawy, opis tych układów itd.
Ten pierwszy jest bardziej popularny w Europie (co za tym idzie więcej książek traktuje o nim), ten drugi daje dużo większe możliwości (w szczególnie w standardzie Verilog-200x).
2. Zdecydować się na jednego z trzech wielkich graczy CPLD/FPGA: Xilinx, Altera, Lattice. Kolejność nie przypadkowa! Reszta nie jest dostępna dla zwykłego śmiertelnika.
3. Poznać podstawy układów logicznych: sekwencyjny, kombinacyjny i przede wszystkim FSM, maszyna stanów.
Co za tym idzie, wybór książek, manuali i tutoriali:
-język opisu:
-VHDL - Zieliński
-Verilog
Szukać po uczelniach:
-PG - ETI
-AGH - Język opisu sprzętu
O samej strukturze FPGA tylko w książkach zagranicznych!
O ciekawych zastosowaniach jak własny mikroprocesor: NIOS-II (Altera) lektura w EP, Picoblaze (Xilinx) książka dostępna w BTC.
Dużo przykładów na stronie:
OpenCores
Praktyczne zastosowania:
Układy FPGA w przykładach
Tak naprawdę dobrej książki, która prezentuje zagadnienie od zera do bohatera w Polsce nie uświadczysz. Chociaż wymienione u góry spokojnie Ci wystarczą.
w praktyce dla laika wygląda to tak:
Ściągnąć darmowe IDE (Xilinx, Altera, Lattice), zaopatrzyć się w książkę z VHDL lub Verilog, pościągać tutoriale do obsługi IDE, potestować oraz załatwić Sobie jakiegoś CPLD/FPGA do zabawy (ważne, środowiska współpracują tylko z układami firmowymi (; ).
Osobiście polecam produkty Xilinx'a:
-łatwo i tanio dostępne w Polsce
-dystrybutor układów startowych w Europie, i zniżka dla studentów
-miażdżący support, ciekawe i przyjemne tutoriale
-
keruseykaryu
No nie bardzo. Na przykład kości Actel-Microsemi: ProAsic3, Igloo czy SmartFusion są dostępne, choćby w MSC. Szkoda tyko, że inne sklepy wolą ich nie sprowadzać. Taka polityka pod studentów i Xilinx-a.tymon_x pisze:Reszta nie jest dostępna dla zwykłego śmiertelnika.
Do tych FPGA nie trzeba wcale drogiego programatora Silicon Sculptor i zestawu adaptorów, zadowolą się FlashPro4 USB za... Uwaga! 49 USD!
Środowisko Libero IDE jest darmowe (licencja roczna na serial number dysku). Soft Console do oprogramowania rdzeni IP Cortex-M też (ostatnio nawet to składnik Libero). Dużo też jest samych IP Core (i2c, uart, pwm, irp.) tak, że fajny SoC można sobie skleić.
Tu mnie masz, zbyt dużego skrótu myślowego użyłem (; Ale faktem jest, że rynek został podzielony między dwoma najpopularniejszymi graczami Xilinx i Alterą (jak się nie mylę 80-90% rynku). Pozostali (Actel, Lattice, QuickLogic. Cypress, Atmel) mogą konkurować ciekawymi rozwiązaniami, bo z dostępnością w Polsce po rozsądnych cenach to trudno je dostać. Wiem że rodzimi dystrybutorzy handlują też ofertami Lattice i Cypress.