Różnica między CPLD a FPGA

CPLD vs FPGA

CPLD (Complex Programmable Logic Device) i FPGA (Field Programmable Gate Array) to dwa urządzenia logiczne, które zaczynają się rozmywać z powodu ulepszeń technologii i wprowadzenia innych funkcji. Główną różnicą między układami FPGA i CPLD jest złożoność lub liczba bramek logicznych w nich zawartych. Chociaż rzeczywiste liczby mogą się znacznie różnić w zależności od modelu, CPLD zawierają od kilku tysięcy bramek do dziesiątek tysięcy. Dla porównania, układy FPGA mają dziesiątki tysięcy do kilku milionów. Ze względu na ogromną różnicę w liczbie bramek łatwo jest powiedzieć, że można zbudować bardziej złożoną logikę z FPGA niż z CPLD.

Jedną z głównych zalet posiadania wyjątkowo dużej liczby bramek jest możliwość wbudowania funkcji wysokiego poziomu do mikroukładu. Zamiast tworzyć je samodzielnie, niektóre układy FPGA mają już sumatory, mnożniki i wielu innych operatorów do najczęstszych zadań. Programista może wówczas skupić się na rzeczywistym celu projektu i nie musi się martwić o implementację takich funkcji.

Istnieje również ogromna różnica między nimi, jeśli chodzi o ich architekturę. Układy FPGA używają LUT (tablice przeglądowe), podczas gdy CPLD używa prostszej sumy produktów (zwanej także morzem bram). Korzystanie z LUT jest korzystne, ponieważ zapewnia znaczną oszczędność czasu przetwarzania, ponieważ chip nie musiałby przechodzić przez proces ponownego obliczania sumy produktów, jak to robi CPLD. LUT zapewniają również bardziej elastyczne połączenie między wewnętrznymi modułami FPGA niż to, co potrafi CPLD.

Ostatnią dużą różnicą między nimi jest pamięć nieulotna. LUT są formą pamięci, ale nie utrzymuje się po odłączeniu zasilania. CPLD mają nieulotną pamięć wbudowaną w układy, dzięki czemu mogą działać od razu bez potrzeby korzystania z zewnętrznej pamięci ROM. CPLD są nawet używane jako „moduł ładujący” dla układów FPGA. Jak już wspomniano na początku tego artykułu, linia między funkcjami zaczyna się zacierać. Aby wyeliminować potrzebę „programów ładujących”, twórcy układów FPGA zaczęli osadzać pamięć nieulotną w swoich układach FPGA; dzięki czemu ta funkcja jest obecna zarówno w CPLD, jak i niektórych FPGA.

Streszczenie:

1. FPGA są bardziej złożone niż CPLD.
2.FPGA mają więcej wbudowanych funkcji wysokiego poziomu niż CPLD.
3. FPGA korzystają z tablic przeglądowych, a CPLD wykorzystują sumę produktów.
4. CPLD mają nieulotną pamięć, podczas gdy FPGA nie.