Elektroda.pl
Elektroda.pl
X
Elektroda.pl
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

pytanie laika :D różnica między CPLD i FPGA

08 Lut 2007 18:39 11382 3
  • Poziom 15  
    Może dla niektórych to głupie ale czym różni się CPLD od FPGA??
  • PCBway
  • Poziom 17  
    Witam

    FPGA (ang. Field Programmable Gate Array) to rodzaj programowalnego układu logicznego. Dla projektanta ma funkcjonalność taką samą jak układ typu ASIC, jednak może być wielokrotnie przeprogramowany po tym jak został już wytworzony, zakupiony i zamontowany w urządzeniu docelowym. Największymi dostawcami tego typu układów są firmy Altera i Xilinx a także Actel, Atmel, Cypress, Lattice Semiconductor, QuickLogic.

    Układy FPGA są zazwyczaj wolniejsze od odpowiadających im układów ASIC i pobierają więcej mocy. Mają natomiast wiele innych zalet takich jak krótszy czas projektowania, niższe koszty produkcji (dla małych serii). Ponadto istnieje obecnie możliwość wykonania tzw. Hard-Copy układu FPGA, czyli układu scalonego o funkcjonalności takiej jak wgrany do układu FPGA projekt. Układ taki jest szybszy i pobiera mniej mocy.

    Na ogół układy FPGA zawierają rozmieszczone matrycowo bloki logiczne CLB. Poszczególne bloki są łączone ze sobą za pośrednictwem linii traktów połączeniowych (Routing Channels) oraz programowalnych matryc kluczy połączeniowych umieszczonych w miejscu krzyżowania się traktów poziomych i pionowych. Na obrzeżach matrycy bloków logicznych znajdują się programowalne bloki IOB (wejściowo-wyjściowe). Struktury FPGA zawierają od 64 do dziesiątków tysięcy bloków logicznych o bardzo zróżnicowanej budowie. Bloki logiczne mogą być bardzo złożone, jest ich wówczas mniej w układzie, lub względnie proste i jest ich wówczas więcej. Zazwyczaj złożone bloki logiczne zawierają dwie lub więcej pamięci RAM umożliwiających tworzenie tablic wartości funkcji LUT (Look-up Table) i dwa lub więcej przerzutników. W większości układów są to tablice czterowejściowe (pamięć RAM o pojemności 16 bitów). W układach o prostszej budowie, bloki logiczne zawierają zwykle dwuwejściowe układy generacji funkcji kombinacyjnych lub multipleksery czterowejściowe i ewentualnie przerzutniki.

    Nowoczesne układy FPGA mają możliwość przeprogramowania 'w locie' co prowadzi do pomysłu rekonfigurowalnego komputera czy rekonfigurowalnego systemu - czyli układów, które mogą dostosować swoją strukturę tak by lepiej sprostać zadaniom, przed którymi stoją w danym momencie.

    Układy FPGA używane są w cyfrowym przetwarzaniu sygnałów, lotnictwie i wojsku, w fazie prototypowej układów ASIC i w wielu innych dziedzinach. Np. układy FPGA firmy Xilinx z powodzeniem sprawdziły się w misji na Marsa zakończonej lądowaniem łazików Spirit i Opportunity.

    Aby zdefiniować zachowanie układu FPGA używa się języka opisu sprzętu takiego jak Verilog czy VHDL. Następnie przy pomocy narzędzi syntezy generuje się listę połączeń, która potem w procesie implementacji jest odwzorowywana w konkretnym układzie. Należy zwrócić uwagę, że proces syntezy dopuszcza tworzenie układów logicznych dowolnych rozmiarów, podczas gdy proces implementacji jest próbą wpisania go do konkretnego układu FPGA, gdzie może zabraknąć zasobów do realizacji zadanej logiki. Do zaprogramowania układu FPGA służy plik binarny, który zawiera informacje o konfiguracji układu.

    Układy rekonfigurowalne można podzielić ze względu na rodzaj technologii wykorzystywanej w celu pamiętania swojej konfiguracji:

    * SRAM - Bazuje na technologii pamięci statycznej, dlatego przy braku zasilania tracą swoją konfigurację.
    * EPROM - Zazwyczaj programowalne tylko raz. Ewentualnie można wykasować ich konfigurację przy pomocy promieniowanie ultrafioletowego.
    * EEPROM - Wielokrotnego użytku. Zachowują swoją konfigurację przy braku zasilania.
    * FLASH - Wielokrotnego użytku. Zazwyczaj komórki FLASH są mniejsze niż odpowiadające im komórki EEPROM, dlatego układy takie są tańsze do wyprodukowania.
    * przepalenia (ang. fuse), udrożnienia (ang. anti-fuse) - Programowalne tylko raz. Stary typ.

    Układy FPGA to jedna z dwóch rodzin programowalnych cyfrowych układów logicznych o dużym stopniu scalenia - drugą grupę stanowią układy CPLD (Complex Programmable Logic Device) o nieco innej architekturze.

    Natomiast CPLD (ang. Complex Programmable Logic Device) - złożone programowalne układy elektroniczne.

    Układy te są koncepcyjnie podobne do SPLD, lecz są bardziej złożone, czyli mają większe zasoby logiczne i możliwości funkcjonalne. Mają architekturę hierarchiczną opartą na makrokomórkach logicznych, których zawierają od kilkudziesięciu do kilkuset. Zazwyczaj od 4 do 16 makrokomórek jest połączonych w większe bloki funkcjonalne. Większa ilość bloków jest łączona za pomocą matrycy połączeniowej kluczy, której zdolność łączeniowa określa w jakim stopniu układ jest programowalny.

    Pozdrawiam
  • PCBway
  • Poziom 10  
    Układy FPGA i CPLD różnią sie budową wewnętrzną (chociaż te różnice czasami są słabo widoczne). Układy FPGA to matryca identycznych bloków logicznych pomiędzy którymi znajdują się trakty połączeniowe (do łączenia logiki wewnątrz układu FPGA). Najczęściej do konfigurowania tych układów jest wykorzystywana pamięć SRAM.

    Układ CPLD można wyobrazić jako połączenie kilku (kilkunastu) układów typu SPLD (np.: GAL) - zwanych makrokomórkami. Pomiędzy makrokomórkami znajdują się trakty połączeniowe. Do konfigurowania układów CPLD najczęściej wykorzystywana jest pamięć typu EEPROM (FLASH).
  • Poziom 15  
    Dzięki za wszystkie odpowiedzi,rozjaśniły mi trochę co i jak.
    Pozdrawiam Piotrek