Procesor wejscia-wyjscia w FPGA

Jan 01, 2005 46 Replies
Jump to replies (46)

Witam,



mam pytanie podobne do zadanego niedawno przez Petersa, ale wymagania sa troche inne. Buduje urzadzenie oparte na zmiennoprzecinkowym DSP mogace sie wydajnie komunikowac z komputerem przez popularny interfejs IO. Poniewaz DSP ma co robic, chcialbym zlecic obsluge peryferiow osobnemu ukladowi. Musi on zawierac nastepujace rzeczy:


- 4 szeregowe porty synchroniczne 32-bitowe min. 33Mbit/s wspolbiezne (tj. wszystkie pracuja na tej samej baud rate i zaczynaja/koncza transmisje w tych samych momentach).


- 1 szeregowy port synchroniczny 24-bitowy 33Mbit/s potrafiacy w razie potrzeby stac sie 16-bitowym portem rownoleglym (tzn. linie sa dzielone).


- 16-bitowy interfejs do DSP.


- kontroler USB (front-end w FPGA albo podlaczany z zewnatrz), zdolny pracowac co najmniej w trybie 12Mbit/s, ale USB2.0 byloby wspaniale.


- interfejsy IDE (tryb 16-bitowy, CF, dyski twarde) oraz SD.



Poza tym malo wymagajace "bzdurki":


- komunikacja z wyswietlaczem graficznym LCD przez



8-bitowy interfejs rownolegly.


- obsluga klawiatury matrycowej 4x4 (moze ona dzielic linie z wyswietlaczem) i kilka diod LED.


- kilka portow szeregowych realizujacych podzbior standardu SPI.


- jedno wyjscie PWM 8bit.


Warunki "brzegowe" sa takie:


- mam zegar F = 66 MHz (oraz F/2, F/4 i F/8),


- uklad zasilany z 3,3V (+2,5V core, jesli jest potrzeba),


- obudowa SMD "lutowalna", tj. np. xQFP (x = T, L, M, P itd.), BGA odpada, PLCC niemile widziane,


- mozna kupic jedna sztuke w detalu.



Jaki uklad byscie mi polecili do zrealizowania powyzszych celow albo co nalezy zmienic w zalozeniach, by sie dalo te cele osiagnac?



Pozdrawiam Piotr Wyderski


On Sat, 1 Jan 2005 13:35:14 +0100, "Piotr Wyderski" snipped-for-privacy@ii.uni.wroc.pl> wrote: [.....]

Konkretnego układu to Ci nie podam, ale sugerowałbym najpierw opisanie całej funkcjonalności w jakimś HDL-u, syntezę, symulację, a następnie dobranie układu w którym projekt się zmieści - fitter informuje o tym że nie może upakować projektu w zadanym układzie. Z częstotliwością, zasilaniem i obudową raczej nie będzie problemu - na pewno coś sobie dobierzesz. CPLD i FPGA Xilinxa można kupić w małych ilościach w gliwickim Memecu, aczkolwiek nie wiem czy sprzedają oni osobom fizycznym czy tylko "na firmę". Nie wiem jak jest z układami Altery.

Front-end USB upakowany w FPGA może nawet działać, ale takie rozwiązanie chyba nie będzie spełniać *wszystkich* wymagań elektrycznych, czyli nie będzie się nadawać do masowej produkcji/sprzedaży. Gdzieś w Sieci widziałem nawet projekt z kontrolerem Ethernet w FPGA gdzie transformator separujący jest podłączony bezpośrednio do pinów FPGA. :-)

BTW. Co rozumiesz przez N-bitowy synchroniczny port szeregowy?

Regards, /J.D.

Ciekawa metoda, sprobuje. :-) Jakie oprogramowanie do tego celu polecasz?

OK, spytam ich. Znalazlem tez troche ukladow Xilinxa w BTC, ale nie wiem, czy sie nadadza.

Poki co interesuje mnie tylko powstanie dzialajacego prototypu, choc w to USB w FPGA sam mocno watpie. Tylko jaka jest alternatywa dla wiekszych predkosci? Dla "wolnego" USB 12Mbit/s istnieja kostki FTDI od reki zalatwiajace sprawe, ale co z USB2.0 -- sa jakies front-endy albo nawet cale kontrolery do tego? Przeslanie do peceta 400Mbit/s to juz nie w kij dmuchal... :-(

N-bitowy rejestr przesuwajacy z wejsciem rownoleglym i wyjsciem szeregowym wraz z prosta logika generujaca sygnaly Frame Sync, Frame End itd. (zgodnie ze specyfikacja SPORT procesorow Analog Devices, ale o znacznie okrojonych mozliwosciach -- czestotliwosc i liczba bitow ustawione na sztywno) wraz z malym FIFO.

Jesli pominac USB, to ta moja glue logic ma bardzo prosta konstrukcje wewnetrzna: piec rejestrow przesuwajacych, piec FIFO, jakis banalny kontroler IDE, dekoder adresow i wejscie-wyjscie 16 bitowe z DSP (uklad bedzie memory-mapped) -- tylko sporo (64+) linii IO bedzie potrzeba...

Pozdrawiam Piotr Wyderski

IMO całkiem naturalna. :-)

To, które jest (bezpłatnie) dostępne: ISE Webpack do kości Xilinxa lub Quartus II do Altery. Ten soft nie obsługuje topowych FPGA w/w producentów, ale to chyba Ci na razie nie będzie przeszkadzało.

AFAIR w BTC mają tylko CPLD i to raczej te "mniejsze", więc BTC raczej odpada. :-(

W USB (na razie) nie siedzę, więc nic nie poradzę. Jestem na poziomie kości FTDI. :-) BTW. FT245BM jest USB 2.0, ale implementuje tylko "full speed device", czyli owe 12Mbit/s.

OK. Przez chwilę to mi się z HDLC pomyliło. A to trochę wyższa warstwa. :-)

Też tak sądzę. Bez USB powinno to się dać zmieścić w jakimś większym CPLD, np. Xilinxa np. XC95288XL w 100 lub 144 pinowej TQFP. Gdyby był za mały, to jest są jeszcze CPLD z rodziny CoolRunner.

Regards, /J.D.

sciagnij sobie quartusa altery - wszystko ladnei sobie w nim przesymylujesz, opisane w VHDL,Verilog lub zlozone w sposob graficzny z bibliotek ukladow TTL. do implementacji polecam Cyclone - powiien poradzic sobie EP1C3CT144 lub wiekszy, mozna je meic juz od jakis 16 EUR/szt (EBV)

do USb2.0 mozesz uzyc CY7C68013 (cypress, FX2) sa w roznych wersjach i zapewniaja te 50..60MB/s

Zupelnie mozliwe, z PLD do tej pory uzywalem tylko GALi, to bedzie moja pierwsza FPGA albo CPLD. :-)

Juz sie sciaga.

Jeszcze znalazlem to:

formatting link

FullSpeed mi wystarczy do wiekszosci zastosowan (na styk), wiec mnie to poki co specjalnie nie boli. W "wersji marzen" urzadznia (przesylanie do peceta calego strumienia danych 400Mbit/s z DSP) chcialem miec jednak duuuza rezerwe, stad apetyt na HighSpeed. :-)

Tu mam pytanie: czy jedna makrocela CPLD to przerzutnik D + troche logiki kombinacyjnej? Jesli tak, to liczac, ze 1 stopien shiftera potrzebuje 1 przerzutnika daje to 4*32 (SPORT) + 24 (SPORT)

  • ze 20 (IDE) = 172 makrocele, nie uwzgledniajac cel potrzebnych na wewnetrzne potrzeby ukladu. Dobrze licze, czy to sie (mam nadzieje...) szacuje inaczej? Bo jesli mam racje, to w jaki sposob ludzie mieszcza w FPGA IP cores -- Harry Potter im pomaga? :o)

Pozdrawiam Piotr Wyderski

A kto handluje tym w Polsce ? (w ilościach detalicznych)

mysle ze 5..10 szt to kupisz bez problemu w EBV - ja tak robie. a po mniejsze to do JAWI trzeba sie usmeichnac

No popatrz, a ja właśnie będę walczył z GAL-ami jeśli Greg podeśle mi kości. :-)

[.....]

oznaczeniach. Drogie mają te kości, ale dobrze wiedzieć że coś takiego jest i można sobie bezproblemowo kupić 1 sztukę. Do tej pory znałem tylko Memeca i BTC. A może ktoś wie gdzie można kupić na sztuki Cyclone'a Altery? W Jawi? Gdzieś jeszcze?

Tak. Z tym że element pamiętający to raczej nie jest goły przerzutnik D, ale coś więcej. Np. w CoolRunnerach Xilinxa ów element może być jednocześnie taktowany zboczem narastającym i opadającym (XC9500 tego nie potrafi). Więcej informacji znajdziesz oczywiście w dejtaszitach.

Liczysz dobrze, ale makrocela CPLD to zupełnie coś innego niż CLB[*] w FPGA. Zajrzyj do dejtaszita. :-) Np. w CPLD potrzebujesz co najmniej 16 makrocel aby zrealizować 16-bitowy rejestr przesuwający, a w FPGA na 1 CLB możesz zrealizować 2 takie rejestry (i zostanie Ci jeszcze sporo wolnej logiki); największy z CoolRunnerów (CPLD) ma 512 makrocel, a najmniejszy ze Spartanów-3 (FPGA) ma 192 CLB. Ponadto FPGA mają wbudowany RAM, układy mnożące oraz inne gadżety.

[*] Configurable Logic Block wg. nomenklatury Xilinxa; Altera używa innej nomenklatury i sposobu podziału FPGA na mniejsze bloki funkcjonalne

Regards, /J.D.

Takie składanie "graficzne" to raczej słaby pomysł - nadaje się tylko do trywialnych projektów. Przy większych naklika się człowiek jak wół, a schemat i tak będzie nieczytelną plątaniną kresek. :-) Poza tym po co się męczyć i odwalać robotę za syntezer skoro to on ma odwalać robotę za nas. :-)

Regards, /J.D.

W *polskim* EBV? W ubiegłym tygodniu dzwoniłem do nich ponieważ chcę sobie kupić evalboard-a z Cyclonem. Zepchneli mnie do Jawi. W zasadzie dla mnie to nawet i lepiej, ale aż strach pomyśleć co by było gdybym chciał kupić np. tylko 10 gołych Cyclonów. :-)

Regards, /J.D.

Czyli po dodaniu zaledwie dwuelementowego FIFO uklad nie wejdzie nawet w najwiekszy dostepny detalicznie CPLD za 340 zl. Nie wspominajac o tym, ze za te cene moge tam wsadzic 2 zmiennoprzecinkowe, 8 staloprzecinkowych DSP albo 10 ATmeg, ktorych jedynym zadaniem bedzie machanie liniami IO, a nie przetwarzanie sygnalow... Druga sprawa: koszt efektywny jednego przerzutnika D wynosi wowczas 66 groszy. Wiec gdzie sens w istnieniu takich ukladow -- Crappy Programmable Logic Devices? :-)

W takim razie chyba tylko FPGA mi zostaje, zgodnie z tytulem watku. A tu niespodzianka -- wszystkie dostepne w Tranzystorze sa na 5V, a ja mam wszystkie uklady na 3,3. Dodanie konwerterow poziomow, czyli dorobienie glue logic do glue logic jest z gory wykluczone... :->

Pozdrawiam Piotr Wyderski

Ja tak bardzo nie sugerowałbym się tą ceną. Raz że Lattice z jakichś powodów jest drogi - zauważ że układ Lattice'a jest na Tranzystorze około 2 razy droższy od kości Xilinxa o zbliżonej ilości makrokomórek. Dwa że Xilinxa mozesz kupić w Memecu kupić około 2 razy taniej. Wyjdzie coś pomiędzy 10 a 20 gr za makrokomórkę. Z moich obserwacji wynika że Memec przy małych ilościach ma ceny takie jak w sklepie internetowym Xilinxa + 5% + VAT.

Następna sprawa to to, że układy stare (czyli 5V CPLD i FPGA) są znacznie droższe od ich nowszych wersji. Widać to też po cenach na Tranzystorze.

Nie wszędzie jest sens wstawiać FPGA. Nawet 74* nadal się produkuje i używa. :-)

To co tam mają w ofercie to jakieś zabytki. XCS* to rodzina Spartan, a XC52* to już wogóle jakaś prehistoria. W każdym bądź razie Xilinx się do nich już nie przyznaje. :-) Współczesne "małe" FPGA Xilinxa to rodziny Spartan IIE i Spartan 3 ze wskazaniem na tą drugą. Ewentualnie możesz użyć Virtex-a i wsadzić tam parę Twoich układów razem z DSP. ;-)

Regards, /J.D.

Dostepny tylko w "Jawi"?

Wyglada BARDZO zachecajaco i rozwiazuje kilka malych problemow o ktorych nie wspomnialem. :-) Dzieki!

Pozdrawiam Piotr Wyderski

Dnia 2005-01-01 19:48, Użytkownik Zbych napisał:

Być może AVT będzie jeszcze coś miało - zrobili na tym konwerter USB->IDE i wprowadzili ten układ do swojej oferty.

Cos podobnego mi dzis rano przyszlo do glowy; tzn. nie az w takiej wersji hardcore, by tam pchac DSP, ale wepchniecie w FPGA systemu formowania sygnalu na pierwszy rzut oka wyglada sensownie. Bedzie potrzeba

30 sumatorow min. 24-bitowych pracujacych potokowo, dwa multiplikatory i 256 24-bitowych komorek RAM. Zaraz bede to probowal zapisac w VHDL. :-)

Sciagnalem dokumentacje do Cyklonow poleconych przez Grega, czytam i przecieram oczy, bo to zbyt piekne, by bylo prawdziwe... ;-)

Np. 13 blokow RAM 128*36 bitow kazdy, z opcja pracy bloku jako jeden wielki rejestr przesuwny -- cale glue logic mozna sprowadzic do pieciu takich RAMow, otrzymujac m.in.

128-stopniowe FIFO. :-)

Pozdrawiam Piotr Wyderski

i jest calkiem popularny komercyjne = Pinnacle PCTV Deluxe = powinien byc tani

Pozdrawiam.

Jan Dubiec napisal(a):

Tez mnie to zaskoczylo. To jest hurtownik i jednorazowa dostawa u nich musi miec cos kolo 2k i iles tam dziesiatek euro dla linijki zamowienia. Male zamowienia spychaja na Semos i innych.

Jan Dubiec napisal(a):

To nie jest takie oczywiste. Poczytaj dyskusje na fpga. Schemat rysowany jest uznawany za czytelniejszy.

Marcin E Hamerla wrote on Mon, 03 Jan 2005 11:44:42 +0100:

[.....]

IMO dla *każdego* człowieka istnieje pewna granica, od której opis w HDL jest bardziej czytelny niż schemat układu. Jak dla mnie, schemat zwykłego układu kombinacyjnego implementującego np. 10 nietrywialnych funkcji 10 zmiennych jest mniej czytelny od opisu w (V)HDL-u.

Regards, /J.D.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required