jak to jest z tym FPGA?

Nov 04, 2008 20 Replies

Kolejne z pytań "zielonego". ;) Jak to właściwie działa? To zwykły "mikroprocesorek" zbudowany z myślą wytworzenia pewnego "wirtualnego" środowiska, w którym powoływane są do życia bramki i inne elementy logiczne współgrające ze sobą wedle założeń programu czy też tam FAKTYCZNIE istnieją bramki? To znaczy istnieć muszą, więc może inaczej: czy bramce zaprogramowanej przez użytkownika faktycznie odpowiada jakaś fizyczna bramka istniejąca w krzemowej strukturze? Jeśli tak, to co decyduje o połączeniach między nimi?



Po drugie: z tego co wyczytałem to te układy programuje się za pomocą specjalnych języków. A nie dałoby się tego zrobić w oparciu o zwykły schemat układu logicznego?


Atlantis pisze:

To nie jest uC tylko stado bramek.

Tak

FPGA na starcie ładuje z pamięci co i jak ma być połączone.

Oczywiście że by się dało, ale nie jest to zbyt wygodne. Większość środowisk do "opisywania FPGA", ma możliwość wprowadzenia schematu.

Ściągnij sobie PDF-a do jakiegoś FPGA i poczytaj.

Dumak pisze:

Czyli krótko mówiąc bez większego problemu można w takim XLinxie odtworzyć dowolny układ logiczny zaprojektowany np. w latach 80s z myślą o TTLach, albo np. upchnąć w takim układziku projekt odpowiednika ULA z klona ZX Spectrum SpeccyBob lub innego podobnego, o ile dysponuje schematem? ;)

Atlantis pisze:

formatting link

ZX Spectrum to maly pikus

Zwykle jest to bardziej skomplikowane, ale generalnie tak. Róznice s± jednak na tyle du¿e, ¿e pewne sztuczki których uzywa³o siê w ¶wiecie TTL (np. uk³ady asynchroniczne) nie wyjd± w ¶wiecie FPGA gdzie bramki i przerzutniki maj± czasy propagacji rzêdu 2ns lub mniej a nie 15ns czy 40ns i na dodatek po ka¿dej kompilacji moga znale¼æ siê w innym miejscu wewn±trz kostki.

Typowy uk³ad FPGA bêdzie mia³ od 5000 uniwersalnych bloczków logicznych do oko³o 250 tysiêcy... Bior±c pod uwagê ¿e w technologii TTL mia³e¶ od 1 do oko³o 4 lub czasem 6 bramek na uk³ad to jedna kostka FPGA zast±piæ Ci mo¿e od 1000 do 5000 kostek TTL i na dodatek da Ci mo¿liwo¶æ zmienno¶ci hardware po zaprogramowaniu innego software. Pomy¶l o tym jak w TTL zrobi³e¶ jaki¶ b³±d na p³ytce to musia³e¶ ci±æ ¶cie¿ki, ³±czyæ druciki... W FPGA sobie poprawiasz projekt na ekranie komputera, kompilujesz i u¿ywaj±c JTAGa programujesz kostkê i masz.

FPGA dzi¶ s³u¿± te¿ do prototypowania uk³adów ASIC.

Sa jeszcze mniejsze uklady - CPLD. Konfiguracje maja w eepromie, sa tansze i mniejsze, od 32 do 500 bramek. Poczytaj np: o MAX II firmy Altera, a najlepiej sciagnij se Quartusa Web Edition i sie pobaw.

Nawet w uP istnieja :-)

Istnieja tam "naprawde".

Na tym polega istota pomyslu ze jest miedzy nimi konfigurowalna siec polaczen.

Wiele programow taki "schematic capture" ma, ale mowiac szczerze - jak masz przerysowac schemat do programu, to prosciej opisac polaczenia w tym jezyku :-)

J.

Jerry1111 pisze:

Całkiem fajne małe CPLD (a przy tym ciągnące znacznie mniej prądu niż seria MAX Altery) robi Xilinx, guglaj za "Coolrunner".

J.F. pisze:

Eee tam, zarówno w układach FPGA, jak i procesorach, istnieją conajwyżej tylko tranzystory. Bramki wychodzą z nich tak "przy okazji". A FPGA/CPLD to już raczej LUT/makrocele a nie sama "chmura" bramek do dowolnego łączenia.

In the darkest hour on Tue, 04 Nov 2008 19:01:43 +0100, Atlantis snipped-for-privacy@wp.pl screamed:

Zazwyczaj tworzenie układów z bramek jest nieprzenośne. Co innego, gdy je opisujesz w Verilogu, ew. w VHDL (ewentualnie, bo ten drugi ma dużo mniej czytelną i bardziej nadmiarową składnię;). Nie musisz mieć schematu takiej ULI. Wystarczy, że wiesz jak ona działa.

Hmmm... poguglalem i znalazlem cos takiego:

formatting link
Moze inaczej - nie znalazlem nic na korzysc Xilinx. Owszem, zdanie ze CollrunnerII bierze 29uW jest fajne, tylko zapomnieli dodac ze w standby. Fajne Xilinx ma dffy dual-edge, tylko nie doczytalem czy mozna nad tym recznie zapanowac, czy skazani jestesmy na sprytnosc kompilatora.

Artur M. Piwko pisze:

A porównując VHDL i Verilog: w czym obecnie pisze ASIC'i większość świata? Co jest częściej spotykane w dużych projektach i bardziej praktyczne potem w realizacji sprzętowej (nie na FPGA)? Idąc dalej: łatwiej znaleźć nieźle płatną pracę jako spec od VHDL'a czy Veriloga?

In the darkest hour on Wed, 05 Nov 2008 21:32:23 +0100, Adam Dybkowski snipped-for-privacy@45wp.pl screamed:

Z moich obserwacji wynika, że Verilog jest bardziej popularny w USA, VHDL w Europie. Co do pozostałej części świata - nie wiem.

... i aby znaleźć dobrą pracę trzeba dobrze znać oba :-)

Artur M. Piwko snipped-for-privacy@buziaczek.pl napisał(a):

Nie wiem gdzie jest pozostala czesc swiata, ale w Huawei w Shenzen uzywaja Veriloga, System Veriloga i dodatkowych aplikacji w postaci kodu wykonywalnego.

Adam Dybkowski snipped-for-privacy@45wp.pl napisał(a):

Punkt widzenia zależy o punktu siedzenia. Taki LUT to chyba sklada sie z bramek i zarazem swietnie modeluje dzialanie bramki siedzacej gdzies na "chmurce".

Nie rozumiem co masz na myśli ..

Nic podobnego !! Ten LUT (Look Up Table) to zwykła pamięc RAM o pojemności od kilkudziesięciu do kilkuset bitów. Dowolną funkcję logiczną np. 5-ciu zmiennych , chocby nie wiem jak byłaby ta funkcja "popaprana" można zrealizowac na 32-bitowej pamięci. FPGA jest zbudowana z "chmury" CLB (Configurable Logic Block) , w którego skład wchodzi owa pamięc , parę multiplekserów i przerzutników. Każda LUT w obrębie CLB może byc wykorzystana zarówno jako zwykła pamięc RAM jak i "generator" dowolnej funkcji logicznej. Dalej , pomiędzy matrycą CLB przebiega siec "drutów" , które mogą byc ze sobą łączone za pomocą FET'ów znajdujących się na węzłach poziomych i pionowych. Sterowanie bramek FET'ów jest zrealizowane za pomocą odrębnej pamięci , tzw. Configuration Memory. Bardzo fajnie jest to wszystko opisane w szczegółach dokumentacji starych układów FPGA Xilinxa serii XC3000. Bramki jako takie , które są wykorzystywane w projektach użytkownika , NIE SIEDZĄ gdzieś tam fizycznie w strukturze FPGA !!!

MH

a taka pamiec RAM to zbudowana jest z ... tranzystorow ? :-)

Byly takie .. w zasadzie tez FPGA, Actela, gdzie bloki logiczne byly proste, na poziomie kilku bramek, ale bylo ich duzo. Do tego polaczenia na przepalanych "antifuse".

J.

Dla CoolRunner-II, je¿eli chcesz reakcji na zbocze narastaj±ce to piszesz: "if (clk'event) and (clk = '1')" then... a je¿eli na oba zbocza to: "if (clk'event) then" - proste - pe³na kontrola.

pozdrawiam tn

MH snipped-for-privacy@op.pl napisał(a):

No wlasnie widze ze nie rozumiesz. Zaleznie od poziomu abstrakcji pamiec można uważać za zlozona z bramek, chocby pelnily jedynie funkcje dekoder adresowego, jak rowniez tak jak napisales mozna CLB uzyc jak ""generator" dowolnej funkcji logicznej". Ot, co mam na mysli.

Brawo ! ma Pan zaliczenie ! :D

Odpowiadam jedynie przez grzecznosc, nie mam ochoty na rozwijanie tego tematu. :-)

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required