Procek z 4 UART

May 28, 2005 66 Replies

Nie muszê przecie¿ pisaæ ca³ego kompilatora, a jedynie poprawiæ generator kodu. A poniewa¿ coraz powszechniej stosuje siê generatory dzia³aj±ce w oparciu o przepisywanie drzew, ca³e przeniesienie sprowadzi³oby siê do dopisania kilku wzorców do ju¿ istniej±cego zestawu.

A co za problem, przecie¿ to zadanie na jeden dzieñ.

Pozdrawiam Piotr Wyderski

[...]

Fajne. A jaki jest koszt tego rdzenia? Bo chyba za darmo nie rozdaja wszystkiego. Zeby sie szybko nie okazalo ze co prawda fpga jest tanie, ale calkowity koszt wychodzi wyzszy niz 20 prockow porownywalnej mocy wraz z peryferiami.

pzdr. j.

Zaraz, nie bardzo rozumiem - jakie dwie ? Dwa procki w jednym FPGA sie zmiescily, czy zaprojektowales przetwarzanie "hardwareowe" .. bo nawet w FPGA tych ukladow mnozacych jest ograniczona ilosc a w procku moze byc ich wiecej :-)

J.

Jak masz kupiony software to wszystko jest darmo. Kupno softu? Mnie nie kosztowalo NIC. Zreszta teraz to jesli bedziesz pracowac z Quartusem Web zamiast z Full (bo po co Ci full) to moze i mozna darmo wszystko sciagnac.

Ale soft do procka tez musisz kupic... chyba ze procki mozna robic na piratach, a Niosa nie mozna na piracie :P

Ano dwie. Jedna czesc buforuje nam dane z SPI (bo do tego nie trzeba procka), a druga _rownolegle_ (znaczy dokladnie w tym samym czasie) liczy algorytm PID. Trzecia czesc? Powiedzmy do czegos FFT potrzeba :-) W procku Ci sie w koncu skonczy moc obliczeniowa i bedzie trza z czegos zrezygnowac. Tutaj? Dokladasz logike dopoki bramki sie nie skoncza. Skoncza sie bramki? To sciagasz nowego Quartusa, bo z reguly 10% mniejszy uklad powinien wyjsc :-)

Do w/w rzeczy procek nie jest potrzebny. W zasadzie to w dobrze zaprojektowanym ukladzie procesor powinien zajmowac sie tylko obslugiwaniem klawiatury, wyswietlacza i zapisu do EEPROMu podczas zaniku napiecia. Reszta rzeczy robiona w hardware

Po co? Starczy se wlasne instrukcje podopisywac. Jak odkad zaczalem uzywac Niosa to nawet nie wiem jak asembler w nim wyglada (znaczy wiem... bootloader musialem napisac :P)

Jasna sprawa, ale nie mylmy przetwarzania sprzetowego z komputerem. Praktyka pokazuje ze nawet dosc trywialny program komputerowy zastepuje bardzo duzy uklad elektroniczny.

Hm, imho zdecydowanie przesadzasz - bo bardzo czesto brakuje tych bramek nie 10% a 1000%.

Przeciez to wszystko jak najbardziej mozesz tez zrobic bez procesorka. Tylko potem ci powiedza "po co 2000 LE, lepiej maly atmelek" :-)

P.S. grzebalem kiedy w starym ploterze, zreszta czeskim .. sterowal czytnikiem tasiemki, silniki z enkoderami, rysowal odcinki i luki .. i to wszystko robily TTL, a dokladniej pol szafy, bo drugie pol to zasilacze :-) A potem jakis Roland robil to samo na jednej plytce - i to sie wtedy nazywalo "postep" - taniej, szybciej, lepiej :-)

J.

Zalezy, co sie ma do dyspozycji. Jesli tylko elementy fundamentalne, np. tranzystory, albo co najwyzej bramki, to jest problem z poskladaniem bardziej skomplikowanych ukladów. Ale jesli ma sie cala biblioteke gotowych, parametryzowalnych bloków logicznych, czesto majacych swoje sprzetowe odpowiedniki w strukturze logicznej (PLL, mnozniki, RAMy, FIFO itd.) to sie sprawa znacznie upraszcza.

Druga sprawa to wydajnosc: spróbuj za pomoca programu zaszyfrowac za pomoca jakiegos bardzo silnego algorytmu kryptograficznego strumien 100MB/s -- nawet najszybszy z dostepnych procesorów sie nie wyrobi. A najmniejszy i najwolniejszy Cyclone robi to "na styk", jesli sie przemysli uklad tak, by sie w nim zmiescil; o wydajnosc nie trzeba sie martwic, jest jej duzy zapas.

Mnie wyszedl taki sam. Czyzbym zrobil uklad optymalny? :-)

Wlasnie najbardziej zaskakujace jest to, ze typowo te uklady wychodza dosc male.

I wlasnie dlatego na rynku jest dostepna cala gama ukladów, od najmniejszego procka do najwiekszego FPGA, by mozna bylo dobrac uklad odpowiedni do potrzeb. Trudno sie ogolic siekiera, a i porabac drewno na opal brzytwa nie jest prosto. ;-)

BTW, w Seguro pojawily sie nowe i bardzo tanie ARMy o wspanialych mozliwosciach.

Pozdrawiam Piotr Wyderski

Zastepuje, jesli nie trzeba wysterowac 10 roznych urzadzen W TEJ SAMEJ chwili. Jesli trza w tej samej chwili, to najlepszy program nie pomoze. A mi w roznych spawarkach, zasilaczach itp czesto trza robic kilka rzeczy w tej samej chwili. Wiem - moge wrzucic paczke TTLi :-)

Nie potrzebujesz dodatkowych bramek :-)

Dokladnie - trza sie tylko dokladnie zastanowic czego sie chce

Tu chodzilo o druga strone: zamiast malego programu trzeba duzy uklad.

A to "w tej samej chwili" to z jaka tolerancja ? 1 ns, 10ns,

10us ? :-) Poza tym 8 bitow portu mozna zmienic "w tej samej chwili"

J.

A co nazywasz duzym ukladem? Nie przeliczaj rozmiaru ukladu na bramki, bo LE to troche wiecej niz typowa bramka -- moze generowac calkowicie dowolny jeden sygnal wejsciowy z czterech sygnalów wejsciowych albo dwa wyjsciowe z trzech wejsciowych; jest tez przerzutnik i dodatkowe szybkie kanaly przeniesien.

32-bitowy NIOS sie miesci w mniej niz 700 LE, a taka liczba bramek nie wystraczy nawet na 8-bitowego Atmelka.

Na tym samym zboczu zegarowym.

To zrób na nim interfejs do DDRAMu. ;-)

Pozdrawiam Piotr Wyderski

U¿ytkownik "Jan Dubiec" snipped-for-privacy@SPAMTRAP.slackware.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@hs001.slackware.pl...

musze podziekowac za chec pomocy, ale dzisiaj dotarly do mnie 3 szt zalatwione przez contrans jako probki. jestem pod wrazeniem tempa w jakim to sie odbylo ...

pozdr

@

Co nazwiesz duzym programem i malym ukladem? :-) Pojecia wzgledne.

No wlasnie. Albo zmien nastepny bit tego portu _polowe_ albo jeden takt zegarowy pozniej.

Tak mozemy sie gadac jeszcze rok ;-) Jedyne lekarstwo: wez alterke i sie pobaw. Po tygodniu Ci sie tak spodoba, ze bedzie 'maly uklad' i niepotrzebny dlugi program. A co mi sie najbardziej podoba? Po zmianie wsadu w Alterce i podlaczeniu innych tranzystorow ze spawarki zrobilem sterownik silnika DC 3kW :-) Na tej samej plytce :-)

Wzgledne, ale kazda istotna linia programu zamienia sie na blok przetwarzajacy - a glupi sumator to juz pare LE. I to rosnie liniowo - w komputerze przyrasta tylko pamiec programu.

Ale co za problem ? zapisujesz do portu nowa wartosc, gdzie polowa bitow jest taka jak stara. Ten DDRAM to na oko przyklad nie bardzo udany - na oko to to sie pieknie obsluzy malym procesorkiem. Multipleksowana magistrala adresow - swietnie, mniej pinow trzeba. A ze cykl dostepu wyjdzie 10us a nie 10ns .. Piotr bedzie narzekal, ale nie zawsze bedzie mial powody. Nie wiem tylko jaka tam jest minimalna czestotliwosc zegara - bo moze sie okazac za wolna :-)

Bo dyskusja dryfuje w zla strone. Jak trzeba szybkie przetwarzanie - to sie wstawia i nie pyta, bo nie ma innego wyjscia. Jak trzeba cos prostego, zegarek z budzikiem np - masz wybor: albo zrobisz to prosto i tanio w malenkim ASICu, albo zlozysz z TTL, albo uzyjesz FPGA, albo procesorka. Na FPGA wyjdzie najdrozej :-(

Alez mnie sie to podoba od samego poczatku, gdy Xilnix wypuscil pierwsze modele. Tylko zawsze bylo za drogie, trudno dostepne, i drogiego programu wymagalo [mialem dostep] :-( Lattice ISP, AMD troche to zmienily pare lat temu.

Mnie tylko zastanawia sens robienia procesora z FPGA. Ale powoli mnie przekonujecie - za 46 zl to faktycznie robi sie ciekawe. Tylko .. ile ten NIOS kosztuje ?

No ale przeciez jakby sercem byl procesor to by bylo tak samo. Ba - jakby to bylo w analogowce to tez mogloby wyjsc "przelutowalem

4 oporniki i wystarczylo".

A silnik DC .. fe, szczotki, jakbys tak przerobil spawarke na falownik

3 fazowy ... :-)

J.

Ale zeby wykonac 20 dodawan w jednym cyklu (moze w kilku cyklach) to juz inaczej. Po prostu 90% moich sterownikow wymaga naprawde pracy w czasie rzeczywistym - poczekam mikrosekunde i tranzystory spalone :P

I o to wlasnie chodzi :-)

Najdrozej? Bierzesz gotowe moduly, gotowe plytki i zmieniasz wsad. Kilka godzin pracy. Z prockiem trza zaczynac od poczatku => dla mnie FPGA zapewnia tak duze oszczednosci czasu, ze to sie oplaca. Zwlaszcza od poczatku roku, jak stawka za r-h podskoczyla znacznie :-)

Tutaj mowisz o czyms malym.

Tu nie chodzi o procesor. Procesor to tylko 10% dodatku do reszty 'flakow' jakie mamy. Te flaki natomiast potrafia bardzo latwo zastapic drogi i trudny w efektywnym programowaniu DSP.

Raz sie pytales. Jak kupisz starter kita (jest w nim i plytka i soft i kabelki do programowania) to potem nic nie kosztuje. Legalnie mozesz Niosa wsadzic do 100 milionow swoich urzadzen. Jeszcze jedna zaleta -

- kompilatory sa gcc :-)

Nie. Bo trza by dorobic sterowanie do pelnego mostka. A tak wszystko (generator PWM, komparator, PID... wszystko oprocz driverow bramek) bylo w jednej kostce.

Raczej zrobilem nowa plytke :-)

Nie mialem tylu driverow do mosfetow na plytce :-( Bo w Alterce miejsce bylo, bylo...

Mo¿esz sobie zrobiæ arytmetykê szeregow±, je¶li Ci zale¿y na ma³ej liczbie LE, a nie na wydajno¶ci. A wówczas sumator liczb o dowolnie wielu bitach sk³ada siê z jednego LE.

Ekhm, znane mi DDR RAM chodz± od 66MHz w górê (sam mam

16 SDRów 2MB ka¿dy o fmax = 183MHz ze starego GForcea), do tego maj± do¶æ pokrêcony protokó³ komunikacyjny. Jak Ty chcesz to obs³u¿yæ ma³ym procesorkiem?

To akurat mnie cieszy.

:-)))

To prawda, ale przecie¿ nikt tu nie proponowa³ stosowanie FPGA w zegarku -- do tego nawet AVR 2313 za 2,50z³./szt. bêdzie zbyt silny. Ja FPGA u¿y³em, bo mam do przetworzenia ob³êdne strumienie danych, do tego o zmieniaj±cej siê szeroko¶ci pasma. ¯aden z dostêpnych mi DSP by takich strumieni nie przyj±³, nie mówi±c ju¿ o ich obróbce. Dla w miarê taniego FPGA okaza³o siê to trywialne, mam nawet 4-krotny zapas wydajno¶ci frontendu.

Czasy siê zmieni³y. :-)

Nic, przynajmniej do zastosowañ hobbystyczno-domowo-studencko-

-badawczych. Jak jest w przypadku produkcji to nie wiem. Prawie w pe³ni funkcjonalny Quartus te¿ jest za darmo (brakuje mu ModelSima i byæ mo¿e jeszcze czego¶, co do tej pory nie by³o mi potrzebne), SoPC builder te¿ jest darmowy, wiele soft cores równie¿. ¦ci±gnij sobie i siê pobaw, naprawdê zachêcam.

Pozdrawiam Piotr Wyderski

Moge tez zrobic z FPGA procesor :-)

Hm .. 3GHz .. w ktoryms z kodow RC, optymalizowanych pod procki, 32 bity naraz .. ja bym nie byl taki pewny :-)

RSA ? o ile pamietam bydle zlosliwie powolne :-)

A probowales spowolnic zegar ? Moze te 66MHz to lipa ?

Daj linka, przeczytam z ciekawosci.

Hm .. znajomi popelnili publikacje pod tytulem "sterownik kuchenki na FPGA". Ze sie tak wyraze .. na uczelni publikacja nie smiedzi :-) Oczywiscie na koncu zapisano ze teraz prosta droga do zamiany tego w asica, ktory bedzie tanszy, a ilosc produkowanych kuchenek uzasadnia inwestycje ..

Nawiasem mowiac - Altera byc moze nas pogodzi. Czy ja dobrze rozumiem ze seria Excalibur to jest FPGA+ARM na jednym kawalku krzemu ? Oby tylko wypuscili mniejsza i tansza wersje :-)

A co Ty wlasciwie robisz - jakies radio cyfrowe ?

Hm - w linku ktory podales to nie bardzo widze "download". A pamietam ze cos o cenie wspominano ..

J.

3GHz to jest taktowanie rdzenia, na zewn±trz (czyli FSB) tyle nie wychodzi.

Nie, 128-bitowy symetryczny AES. Szyfrowanie z kluczem asymetrycznym strumieni o du¿ym pa¶mie (tak ze 100Mbytes/s i wiêcej) to trochê za wysokie progi zarówno dla tanich FPGA, jak i procesorów ogólnego przeznaczenia.

Co prawda nie o to mi chodzi³o (przy wolnych zegarach stosowanie DDR RAMu to sztuka dla sztuki, SDRu nawiasem mówi±c te¿), ale przy znacznym spowolnieniu zegara bêd± problemy z od¶wie¿aniem.

Niestety nie mam linka do niczego w "zwartej" formie. :-(

Na to wygl±da, ale nigdy siê ni± nie interesowa³em: mogê tanio kupiæ Cyclone, to rze¼biê w Cyclone... :-)

Heh, to¶ siê obudzi³... ;-) Tak, a po co by mi by³o implementowanie mieszacza kwadraturowego w FPGA? :-)

Nic dziwnego, Altera ma "artystyczny nie³ad" na swojej stronie i sam mam problemy z doklikaniem siê do interesuj±cych mnie rzeczy. Tu masz:

formatting link

Ja przed miesi±cem ¶ci±gn±³em sobie najnowsz± wersjê IDE i -- podobnie jak poprzednia -- by³a ca³kowicie za darmo. P³atne s± gotowe EVBoards, ale to normalne.

Pozdrawiam Piotr Wyderski

J.F. napisał(a):

Może dlatego, że generalnie ALtera ma porypany system rejestracji(np. do Quartusa - licencja jest przypisana do numeru MAC karty sieciowej(a co jak jej ktoś nie ma?).

"J.F." :

ja probowalem, chodzilo z 200KHz :) rzecz w tym, ze ponizej dolnej czestotliwosci pll lub dll w pamieci zaczyna sie 'rozjezdzac' i timing dqs/data [o tym zaraz nizej] nie trzyma sie specyfikacji; inna sprawa, ze przy naprawde malych czestotliwosciach to ma znikome znaczenie; w konsekwencji najgorzej wyglada sprawa w okolicach dolnej f;

tez nie mam linka, ale w skrocie: sam protokol polaczenia jest taki sam jak sdram roznica w stosunku do zwyklej pamieci dynamicznej jest taka, ze dane do/z pamieci przesylane sa na obu zboczach zegara dqs, a wlasciwie zegarow, na kazde 8 bitow danych przypada jeden sygnal dqs [bidir] - data strobe; slac dane to pamieci kontroler ma 'wycentrowac' dqs mniej wiecej w srodku danych - czyli przesunac dqs o 90 deg. w stosunku do danych, ale pamiec, gdy jest czytana, wysyla dane i dqs z zerowym przesunieciem i kontroler musi sobie sam przesunac [zeby zycie nie bylo nudne ...]

tak;

JA

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required