Procesor wejscia-wyjscia w FPGA

Jan 01, 2005 46 Replies

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