Różnica między układami FPGA i CPLD
Różnica między układami FPGA i CPLD
Dwa typy programowalnych układów logicznych to Field Programmable Gate Array (FPGA) i Complex Programmable Logic Device (CPLD). Pierwszy z nich jest urządzeniem "drobnoziarnistym", podczas gdy drugi opiera się na większych blokach. Oba typy mają różne mocne i słabe strony. Podczas gdy układy FPGA są lepsze do prostych zastosowań, układy CPLD są idealne do złożonych algorytmów.
CPLD to programowalne urządzenie ASIC
CPLD to programowalne urządzenie IC, które składa się z makrokomórki. Makrokomórka zawiera tablice AND i przerzutniki, które uzupełniają funkcję logiki kombinacyjnej. Tablica AND generuje iloczyn, który jest wyjściem układu CPLD. Liczba członów iloczynu jest również wskaźnikiem wydajności układu CPLD. Podobnie, tablica AND-OR ma programowalny bezpiecznik na każdym przecięciu.
Układy CPLD można programować za pomocą języka opisu sprzętu. Języki te mogą być używane do pisania i testowania oprogramowania. Na przykład, inżynier może napisać język opisu sprzętu (HDL) dla CPLD, który może być odczytany przez CPLD. Kod jest następnie pobierany do układu. Układ CPLD jest następnie testowany, aby upewnić się, że jest funkcjonalny, a wszelkie błędy można naprawić, zmieniając schemat lub język opisu sprzętu. Ostatecznie prototyp może zostać wysłany do produkcji.
CPLD jest bardziej odpowiedni dla algorytmów
Układy CPLD to wielkoskalowe układy scalone, które mogą być zaprojektowane do implementacji dużej liczby złożonych algorytmów. Wykorzystują one kombinację technologii programowania CMOS EPROM i EEPROM i charakteryzują się wysoką gęstością i niskim zużyciem energii. Ich architektura o wysokiej gęstości umożliwia im osiągnięcie ekstremalnie wysokich prędkości i pracy w wysokiej gęstości. CPLD są również niezwykle złożone, z dużą liczbą wewnętrznych komponentów.
Układy CPLD są również szybsze i bardziej przewidywalne niż układy FPGA. Ponieważ są one konfigurowane przy użyciu elektrycznie kasowalnej programowalnej pamięci tylko do odczytu (EEPROM), można je skonfigurować w układzie podczas uruchamiania systemu, w przeciwieństwie do układów FPGA, które wymagają zewnętrznej pamięci nieulotnej do zasilania strumienia bitów. Sprawia to, że układy CPLD są bardziej odpowiednie dla algorytmów niż układy FPGA w wielu zastosowaniach.
CPLD jest bezpieczniejszy
Istnieje kilka kluczowych różnic między układami FPGA i CPLD. Układy FPGA składają się z programowalnej logiki, podczas gdy układy CPLD wykorzystują bardziej elastyczną strukturę. Układy CPLD mają mniej programowalnych funkcji, ale nadal są łatwiejsze do zaprogramowania. Układy CPLD są często konstruowane jako pojedynczy chip z wieloma makrokomórkami. Każda makrokomórka ma odpowiadający jej pin wyjściowy.
Pierwszą istotną różnicą pomiędzy tymi dwoma typami układów jest sposób generowania zegarów. Układy CPLD mogą wykorzystywać pojedyncze zewnętrzne źródło zegara lub szereg unikalnych układów generujących zegar. Zegary te mają zdefiniowane zależności fazowe i mogą być wykorzystywane do poprawy wydajności programowania układów. Układ CPLD można zaprogramować na kilka sposobów, a w razie potrzeby projekt można wielokrotnie zmieniać.
Układy CPLD mają również niższy całkowity koszt posiadania. Czynnik ten sprawia, że ich produkcja jest tańsza. Układy CPLD mogą być wykorzystywane do wielu różnych zastosowań. Na przykład, CPLD może zawierać wiele dyskretnych komponentów, ale może również zawierać wiele programowalnych elementów logicznych. Zwiększa to elastyczność.
CPLD jest tańszy
Układy CPLD są bardziej opłacalne niż układy FPGA, choć układy FPGA mają pewne ograniczenia. Ze względu na mniejszy rozmiar CPLD, obwody nie są tak deterministyczne, co może komplikować scenariusze czasowe. Niemniej jednak istnieje szereg zalet związanych z układami FPGA, w tym większa elastyczność i bezpieczeństwo.
Układy CPLD mogą być programowane przy użyciu kasowalnej elektrycznie programowalnej pamięci tylko do odczytu, w przeciwieństwie do układów FPGA, które opierają się na statycznej pamięci o dostępie swobodnym. W rezultacie układy CPLD mogą konfigurować się same podczas uruchamiania systemu, podczas gdy układy FPGA muszą być ponownie konfigurowane z zewnętrznej pamięci nieulotnej. Układy CPLD są również bardziej energooszczędne i wydajne termicznie niż układy FPGA.
CPLD składa się ze złożonych programowalnych makrokomórek logicznych, które są połączone ze sobą za pomocą macierzy połączeń. Matryca ta jest rekonfigurowalna i może obsługiwać wielkoskalowe, szybkie projekty logiczne. Typowym zastosowaniem CPLD jest pamięć konfiguracyjna dla układów FPGA, taka jak bootloader systemu. CPLD posiada pamięć nieulotną, podczas gdy układy FPGA wykorzystują pamięć zewnętrzną do ładowania konfiguracji.
CPLD jest bardziej odpowiedni dla logiki taktowania
CPLD to układ scalony, który może wykonywać wiele zadań. Jego elastyczność i programowalność są zwiększone dzięki architekturze Logic Doubling, która umożliwia podwójne funkcje zatrzasku na mikrokomórkę. Technologia ta pozwala na stworzenie mniejszego urządzenia z dużą ilością miejsca na poprawki. Układy CPLD mogą wykonywać więcej funkcji niż tradycyjne układy CMOS, w tym wiele niezależnych sprzężeń zwrotnych, wiele zasobów routingu i indywidualne włączanie wyjść.
Układy CPLD są bardziej elastyczne niż konwencjonalne układy logiczne, ponieważ nie wymagają zewnętrznej pamięci konfiguracyjnej. W przeciwieństwie do układów FPGA, układy CPLD wykorzystują pamięć EEPROM, nieulotną pamięć, która zachowuje konfigurację nawet po wyłączeniu systemu.
Dodaj komentarz
Chcesz się przyłączyć do dyskusji?Zapraszamy do udziału!