Zasilanie FPGA

Witam,

wlasnie dostarczono mi Cyklona (nie przypuszczalem, ze obudowa PQFP240 jest taka wielka... :->), wiec kontynuuje niedawno poruszony temat zasilania. Z powodu potrzeby uzyskania duzej sprawnosci uklad bedzie zasilany z przetwornicy impulsowej.

  1. Jak wyglada sprawa jednoczesnosci podawania napiec zasilajacych do Cyklona? Jezeli nie uda mi sie wygenerowac wszystkich potrzebnych napiec na jednej przetwornicy, to bede musial uzyc kilku. Czy jesli wystapi (a musi...) rozbieznosc w czasie miedzy pojawieniem sie V_CORE i V_IO, to uklad ulegnie uszkodzeniu?

  1. Jakiego poboru pradu z szyn V_CORE i V_IO nalezy sie spodziewac po Cyklonie taktowanym 65MHz, jesli steruje on tylko logika CMOS 3,3V (tzn. z jego wyjsc nie pobiera sie pradu do zasilania LED itp.)?

  2. Jakiego szarpania poborem pradu nalezy sie spodziewac?

  1. Jak poprowadzic zasilanie na plytce drukowanej? Z przyczyn "technologicznych" bedzie ona tylko dwustronna, wiec VCC planes odpadaja. Ze wzgledu na dosc prosty uklad polaczen chce dac czesc sygnalowa na jednej warstwie, a zasilanie na drugiej. Czy zastosowac jedna wielka plaszczyzne masy w ktorej osadzono sciezki VCC, czy tez podzielic powierzchnie plytki na trzy obszary podobnej wielkosci, jeden dla GND, drugi dla V_CORE, trzeci dla V_IO?

  2. Co dac po stronie sygnalowej pod Cyklonem, duzy kwadrat GND, czy puste miejsce?

  1. Gdzie i czym odsprzegac zasilanie tego ukladu? Czy kondensatory SMD 100nF na kazdym pinie zasilania, po stronie odwrotnej do sygnalowej, wystarcza? Czy blisko pinow zasilania warto dac kondensatory elektrolityczne Low ESR?

  2. W jaki sposob zrobic porzadne zabezpieczenie nadnapieciowe na szynie 3,3V?

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski
Loading thread data ...

Piotr Wyderski napisal(a):

W moich dwoch dosc nowych projektach siedzi 1k10 na plytce dwustronnej. Core podlaczony do 2.5V, I/O do 3.3V. Wydaje mi sie, ze sposob podlaczenia zasilania i masy do ukladu opracowalem w sposob optymalny. Jesli chcesz, to moge Ci podrzucic gerbery lub baze danych programu CAD abys sobie to podejrzal....

Dalbym tylko 100n przy kazdym pinie zasilania lub, jesli miejsca brakuje, to przy wiekszosci pinow zasilania od kazdej strony. Ja daje caps zawsze po tej stronie gdzie jest PLD. Wszystkie elmenty SMD sa po tej samej stronie - $$$. Aha, sformulowanie warstwa sygnalowa jest co najmniej niejasne ;--)/

Reply to
Marcin E. Hamerla

Poprosze gerbery, bo nie wiem o jakim konkretnie programie CAD mowisz, ale z prawdopodobienstwem graniczacym z pewnoscia go nie mam.

Miejsce nie jest czynnikiem krytycznym, tylko nie wiem, skad wziac mase o niskiej impedancji po stronie FPGA. No chyba, ze przez VIA ukryte w pinach kondensatorow -- mozna tak?

Mnie to ograniczenie nie dotyczy, jesli wszystko pojdzie dobrze, to wyprodukuje jedna sztuke urzadzenia. :->

To ta, po ktorej znajduje sie FPGA i sciezki prowadzace wychodzace z niej sygnaly logiczne. Warstwa zasilania to przeciwna strona plytki. :-)

Pozrdawiam Piotr Wyderski

Reply to
Piotr Wyderski

Użytkownik "Piotr Wyderski" snipped-for-privacy@ii.uni.wroc.pl> napisał w wiadomości news:cv24i4$vbn$ snipped-for-privacy@news.dialog.net.pl

Nie znam konktretnego przypadku, i nie wiem _na_pewno_, ale... IIRC (!) kwestia kolejności załączania napięć zasilających wynikała z konieczności poprawnego spolaryzowania struktury. W pierwszej kolejności musiało się pojawić napiecie _najniższe_ - tzn. to, które polaryzowalo podłoże i zapewniało funkcjonowanie izolacji złączowej. Np. w starych DRAM zasilanych napieciami dodatnimi (+12V, +5V) i ujemnym (-5V) , brak tego ostatniego powodował depolaryzację i usmażenie kości przez pozostałe źródła zasilania.

W Twoim wypadku podloże jest na potencjale GND więc _zawsze_ będzie najniżej.

Reply to
Marek Dzwonnik

A wiec jesli rozbieznosci w pojawianiu sie napiec nie beda siegaly, powiedzmy, tygodnia, to mam sie tym nie przejmowac, dobrze zrozumialem? :-)

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski

Cykolny sa trouble-free pod tym wzgledem. Gdzies w ichnim PDFie jest notka ze maja dowolnosc zalaczania zasilan. Ja w swoich ukladach stosuje LM2676 (do robienia 3v3) i za tym jest TPS76715 (1.5V + reset). Wiekszosc Cyclonow to EP1C3T144

Mozesz sie spodziewac od 0 + prad_pinow do X + prad pinow. X zalezy od tego, co sie dzieje w srodku FPGA - czyli ile przerzutnikow jednoczesnie sie przelacza, ile bitow jednoczesnie zmienia swoj stan. W niektorych seriach Cyclonow (nie wiem czy one sa jeszcze sprzedawane) byl problem z zasilaniem. Podczas narastania napiecia zasilajacego Vcore (1.5V) uklad w pewnym momencie (chyba w okolicach Vcore=0.8V) zaczynal pobierac straszny prad (kilka A). W wiekszosci stabilizatorow wlaczalo sie wtedy zabezpieczenie i trzymalo 0.7V na wyjsciu => spalenie Cyclona.

Zalezy od designu.

Duzo rozrzuconych pojemnosci. Pamietaj, ze kondensatory im mniejsze, tym sprawniejsze (mniejsze ESR i ESL). Ja daje 0402 albo 0603. Pamietaj, ze przelotki maja swoja indukcyjnosc, wiec staraj sie dac kondziorki jak najblizej nozek Cyklona. Wrzuc 22 albo 47n bezposrednio na nozki, rozrzuc "w okolicach" siakies 100n/220n i kilka tantali.

Tutaj nie wiem - mialem problemy z dwiema warstwami. Problemy ze najpierw zasilanie nie chcialo sie w sensowny sposob poukladac na plytce, a po zrobieniu prototypa bylo duzo szumow na zasilaniu. Efekt? Cholerstwo zrobilo sie wrazliwe na zaklocenia. Efekt koncowy? Odzalowalem kase na 6-stronna plytke :-(

GND masz juz w strukturze. IMHO najlepiej dac tam troche niskostratnych pojemnosci :-)

Im blizej pinow, tym mniejsze pojemnosci uzywaj. Czestotliwosci >100MHz i tak nie odfiltrujesz (one juz sa filtrowane w srodku FPGA z powodu R i L doprowadzen).

Trzeba? Daj zenerke 3V3 i wsadz gdzies polimera. Cykolny maja siakas tolerancje - AFAIR do 3.8V

Aha - ja troche z tym cholerstwem walczylem, wiec w razie pytan wiesz gdzie atakowac :-)

Reply to
jerry1111

Nawet i miesiaca nie musisz sie bac. Cyclone sa zrobione tak, zeby przezyc dowolne timingi zasilania - oni to siakos hot-plug czy hot-costam w PDFie nazwali.

Reply to
jerry1111

No to kamien z serca, powaznie.

A czy oprocz peryferiow zaleznych od designu wchodzi Ci w ten 1C3 jeszcze Nios?

Oczywiscie, ale chodzi mi o oszacowanie ograniczenia gornego, a nie podania dokladnej wartosci. Jesli to cos pomoze, to w FPGA beda dwa potoki po ~20 warunkowych sumatorow/subtraktorow

18-bitowych, pracujace na 65MHz, potokowy multiplikator 18-bitowy (albo dwa), sterownik LCD, koder/dekoder TDMA do wspolpracy z kodekiem AC-97, interfejs do SDRAMu na 130MHz i "bzdurki" typu interfejs do karty CF, MMC/SD. Jak sie zmiesci, to byc moze dam tam tez Niosa i odciaze DSP.

Zbudowanie zbyt cherlawej przetwornicy mogloby miec tragiczne skutki dla dzialania ukladu, a "spawarki" tez nie ma sensu tam wkladac. Czy jesli zaloze, ze FPGA zje nie wiecej niz po 2,5A na V_CORE i V_IO, to bedzie to wystarczajacy margines bezpieczenstwa?

Czytalem o tym (tylko gdzie...?), ale myslalem, ze te kilka A to ich prad nominalny i nic zlego sie im od tego nie stanie. :-)

Mam 0805, nadadza sie? BTW, te 0402 to jak Ty lutujesz?! :-)

OK.

Chodzi mi o to, co dac _bezposrednio_ pod ukladem, a nie po drugiej stronie plytki.

Wolalbym tak, na tej plytce beda uklady o lacznej wartosci rzedu duzych kilkustet PLN. Jak mi to pojdzie z dymem, to sie potne... ;-(

Jasne, dziekuje za propozycje. :-)

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski

No to jeden bardzo powazny problem z glowy, dzieki!

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski

2 male albo 1 duzy i troche luzu. Nios generalnie to 1000-1500-2000 LE (zalezy od wielkosci i ilosci peryferiow w Niosie).

Czy jestes pewny ze wszystko wsadzone do jednego FPGA "pojdzie" na 65MHz? Syntezowales juz design?

IMHO powinno starczyc. Sa siakies kalkulatory do tego, ale... ale 2.5A starczy :-)

Nie - to prad chwilowy. Poprawili w nowych "wypustach" wiec nie powinno byc wielkiego problemu. Ja mialem jedna taka kostke w ktorej efekt wystepowal. Gdzies na stronach Altery sa podane numery serii z tym bledem.

Peseta i lupa :-) Aha - setka Wyborowej przed montazem (uspokaja rece) :-)

Cholera wie - pewnie wyjda Ci siakies przelotki/sciezki z pinow...

Wieksza zenerka na 3V3 i polimer?

Reply to
jerry1111

Myslalem, ze wkladales je w 1C6, a nie 1C3, tak przynajmniej zrozumialem jeden z Twoich dawniejszych listow. Ale tak male zuzycie zestawu LE jest pocieszajace.

Wszystko nie musi chodzic na 65MHz, tylko CORDIC (czyli te sumatory). No i interfejs do SDRAMu.

Jeszcze nie umiem go w pelni zapisac. :-( Ale widzialem CORDIC wsadzony w 1C12 i chodzacy na ~100MHz, wiec nie powinno byc wiekszego problemu z timingami.

Zapewne, ale pod EP1C6Q240C6 jest jakies _9 cm^2_ miejsca, a tyle przelotki na pewno nie zuzyja. :-)

Hm, a moze to jest rozwiazanie...

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski

Chcesz kilka domen zegarowych? To uwazaj na polaczeniach miedzy nimi :-) IMHO najbezpieczniej byloby zasilic scalaka z 65MHz i pozostale (wolniejsze) zegarki niech se PLLem porobi synchronicznie do 65MHz.

Jak juz nie ma co z miejscem na plytce zrobic, to dac mase.

Ale to nie bedzie IMHO krytyczne

IMHO sensowne - polimery to wygodne bestie.

Reply to
jerry1111

Zamierzalem to zrealizowac w dokladnie ten sposob, tylko zamiast marnowania PLL-i chcialem po prostu zastosowac dzielniki. Jednym PLL-em chce wygenerowac

130MHz dla interfejsu do SDRAM, a drugi jest mi chwilowo niepotrzebny, byc moze DAC-a z niego bede taktowal. :-)

OK.

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski

Dzielniki wprowadza przesuniecie fazowe... czyli bedziemy mieli (z punktu widzenia logiki) niezsynchronizowane zegary. A tego nie chcemy :-)

Reply to
jerry1111

BTW, chodze sobie wlasnie po stronie Altery i sciagam opencores. Okazuje sie, ze to, co ja chcialem miec na

65MHz zrobili na Stratixie z fmax=405MHz. Tak wiec tym sie nie martwie. :-)

Czy do uzywania Niosa trzeba sciagnac ten 301MiB instalator? :-(

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski

Dnia 2005-02-17 20:22, Użytkownik Piotr Wyderski napisał:

Właśnie, dlaczego oprogramowanie związane z układami programowalnymi jest takie duże? Max+Plus to około 50MB, Quartus II to już ponad 150MB a Webpack ISE Xilinxa to ponad 200MB a service pack do niego jescze więcej

optymalizować programów pod kątem zajmowanego miejsca?

Reply to
badworm

To na najszybszym Cyclonie moze wyjsc na 50MHz tylko :-) Bo np: uzyli embedded dsp-blocks ze Stratixa, a w Cyclonach trza je na piechote skladac z bramek.

A ja wiem? Ja se kupilem Nios DevKit (uzywajac University Program, wiec byl tani :-) ) Generalnie zeby cokolwiek zrobic to musisz miec Quartusa (na 99% dla Ciebie starczy WebEdition)

Reply to
jerry1111

E tam, zrobilem test: 20-bitowa lpm_add_sub megafunction, czyli jeden stopien potoku, potrzebuje ~10 ns. Czyli 100 MHz. :-)

Potestowalem tez multiplikatory: 16x16 signed potrzebuje 417 LE w trybie jednocyklowym i dziala z fmax = 50 MHz, a z pipeliningiem zajmuje ~360 LE. To gdzie tu zysk?

Inny test: 4-bitowy lpm_add_sub potrzebuje ~10ns, a tylko

64-bitowy ~20 ns. Ten timer analyser na pewno dziala dobrze? :-)

BTW, referencyjna lpm_nco CORDIC megafunction jest bez sensu w demie DDC, mozna to zrobic znacznie lepiej. :-)))

Uzyli multiplikatorow, ale w tym zastosowaniu wcale nie trzeba ich uzywac -- mozna zastosowac hybrydowy oscylator-mieszacz CORDIC, zamiast osobnego oscylatora na CORDICu i mieszacza na dwoch multiplikatorach:

formatting link
Ot, taka sztuczka, widocznie nieznana autorowi reference design

-- na Cyclonie zaplacil za niedoinformowanie ~900 nadmiarowych LE. :->

Mam Quartusa, wlasnie takiego, i juz mniej wiecej rozumiem, czego on ode mnie chce. :-> Tylko jeszcze nie wiem w jaki sposob robic bloki funkcjonalne w tym graficznym edytorku, tzn. ukrywac strukture i miec np. modul DDC z okreslonymi wejsciami i wyjsciami, a jego implementacje zrobic sobie w innym okienku. Narazie wszystko lepie na jednym ekranie. :-(

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski

Ale jak to robiles? Zmierzyles ze 10ns, czy po kompilacji Quartus powiedzial ze Fmax_clk=100MHz?

W pipeliningu mozesz zyskac 30% Fmax. Czyli uklad bedzie produkowac wynik nie w jednym, lecz w 3 cyklach zegara, ale za to szybszych :-)

A bo ja wiem cos Ty analizowal? Ale coraz bardziej dochodze do wniosku ze cos zle. Podeslij lepiej te symulacje :-)

Wiesz, DSP kita bede miec pod koniec marca (jak dobrze pojdzie). Wtedy daj mi z miesiac i bede wiedzial wiecej. Na razie raczej obchodzilem robienie DSP w alterze (poza regulatorem PID, ale skonczony tylko w 90%).

:-)

Gdzies powinno byc cos w stylu 'generate symbol file' albo podobnie - wezmie wszystkie porty (traktuje to teraz jak piny scalaka) i te porty bedziesz mial otoczone prostokatem :-)

Wiesz co, te symulacje to moze lepiej przeslij - sprawdzimy co to jest :)

Reply to
jerry1111

Wszystko jest teoretyczne, ja jeszcze tego FPGA nie uruchomilem. Wyklikalem sobie projekt testowy, ustawilem rodzine na "Cyclone", autofiter itp. i kazalem skompilowac. W raporcie bylo pole "timing analysis", a w niej cos, co sie chyba nazywalo "the longest signal path" i podane ~10 ns. Jak zwiekszalem liczbe bitow, to ten czas rosl. O zegarze nic nie pisal, bo ten sumator jest ukladem kombinacyjnym. Gdy robilem multiplikator potokowy, to cos tam pisal o chyba 283MHz.

Ale powtarzam, ze widzialem projekt DDC na Cyclonie 1C12 i on dzialal szybciej niz ja oczekuje od swojego ukladu.

To wiem. :-) Chodzi mi o zysk w zlozonosci sprzetowej ukladu.

Nie wiem jak. Moge Ci wyslac zzipowany projekt.

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.