FPGA Altery bootujące się z szeregowego EPROM/FLASH

Sep 21, 2004 63 Replies

I od tego trzeba bylo zaczac. A pytalem czy jestes pewny ze wersje sa te same ? A .. przepraszam, w koncu flash z podejrzanej plyty dobrze dziala w drugiej, a flash z drugiej zle dziala w pierwszej ..

No to wpisz to do flasha i zobacz co sie bedzie dzialo.

J.

No właśnie - ten flash to jedyna kopia tego oryginalnego kodu, który robi fochy.

Tak zrobię.

No dobra... a jak w takim razie napisać prawidłowo normalny zatrzask bez sygnału zegara?

Zmienił na synchroniczne?? 8-)

No to czemu nie działa? I czemu dajesz 90% szans na błąd?

Te "undefined clocks" o tym świadczą, ale ki pieron wie dlaczego jakiś sygnał, np. CPU_RW potraktował jako clock??? Tego jeszcze nie wiem.

A inne przykłady?

Paskuda :-)

Łojejku... Aż rok się trzeba tego uczyć? A jak ktoś nieco mniej zdolny? ;-)

ok, ok...

No czasami pokazuje taką sieczkę, że rzeczywiście tylko w VHDL da się to przeczytać... Mam tam w UARTcie maszynę stanów nadajnika, to ten wizualizator wysmolił dwie strony bramek i przerzutników... Konia z rzędem temu, kto bez kodu VHDL skapnie się co "autor miał na myśli" i jak ten układ działa...

Sprawdzę czy są z tej samej serii produkcyjnej... Układy mają wymalowany tydzień w roku w którym zostały wyprodukowane... Ciekawe to wszystko jest - szkoda że tyle niewiadomych... I najbardziej niepokojące te "warningi" których nie ma jak za bardzo ugryźć bo większość wskazuje na moduły biblioteczne :-(

Użytkownik "Pszemol" snipped-for-privacy@PolBox.com napisał w wiadomości news: snipped-for-privacy@poczta.onet.pl...

message news: snipped-for-privacy@4ax.com...

Jeżeli chodzi o wylutowywanie to możesz użyć bardzo sztywnego i cienkiego drucika ( np. wolframowy (?) ) zakładając go "od środka" i w miarę nagrzewania cyny pod nóżkami delikatnie go wysówać podważając nóżki. Zdejmowałem tak TQFP100 - i działa :)

Pozdrawiam, Grzegorz Kepiński

Owszem, znam tą metodę - niestety przy obudowie 240-pinowej wylutowane w ten sposób układy nie przypominały już nowych pod względem kształtu pinów... Przylutować ich spowrotem byłby niezły problem.

No dobrze, ale co ma robic jesli jednak chce asynchronicznie ?

A zwyklego latcha az sie prosi w wielu wypadkach, w dodatku sporo kosci ma ograniczona ilosc zegarow..

J.

W moim przypadku właściwie już c_enable jest w miarę synchroniczny z zegarem sysclk. To znaczy się, jest kombinacją sygnałów zależnych od sysclk, a więc zbocze pojawia się parę bramek (kilka nanosekund) po zboczu sysclk. Modyfikacja mojego zatrzasku na taki rejestrowany kolejnym sysclk wprowadzi opóźnienie całego taktu zegara a tego nie chcę.

A policzyłeś ile masz domen zegarowych w tym projekcie? I czy one są poprawnie zsynchronizowane? Brak poprawnej synchronizacji między domenami zegarowymi to zazwyczaj jest to 99% problemów.

Mister

Musi wiedziec co robi :-)

Generalnie to przejscia pomiedzy domenammi CLK nalezy traktowac tez jako interfejs asynchroniczny :-(

Jesli _zatrzask_ bez sygnalu zegara, to jaki to bedzie zatrzask? Poza tym, zawsze w FPGA masz jakis zegar. Napisz tak: if(clk'event and clk='1') then if(costam_enable='1') then .....

Pojecia nie mam co zrobil.

Bez kodu to nie chce mi sie wymyslac :-)

Ja od kilku lat z tym mam doczynienia i caly czas mam wrazenie, ze im dluzej tego cholerstwa uzywam, tym mniej wiem :-)

Tego _nie_da_sie_ sensownie na bramkach przedstawic, bo wychodza kompletnie nieczytelne rzeczy. Kiedys dla treningu probowalem zrobic maszynke na 8 stanow na bramkach i... 8 piw bylo za malo :-(

Grunt to wiedziec skad sie biora - ja mam czasami kilkaset warningow ale za to nieszkodliwych. Ot, gdzies LUTy upakowal, cos tam skrocil, cos zobaczyl ze niepotrzebne... fajny ten kompilator :-)

Co to znaczy 'w miare synchroniczny'?? Aaaa - ze 'na zewnatrz' Cyclona jest synchroniczny? To nie ma zadnego znaczenia. To TY musisz reagowac na niego _synchronicznie_ z _wlasnym_ zegarem.

To se napisz 10 linijek programu, wpisz program JTAGiem i wyslij zawartosc EPCS do kompa.

Przeczuwam, ze chcial miec jedna domene... A ile wyszlo? :-)

I co potem miałbym z tym plikiem binarnym zrobić? :-)

Jest jedna - zegar o nazwie sysclk taktowany zewnętrznym kwarcem

18,663 MHz. Ten zegar idzie bezpośrednio do CPU Motorolki, oraz wchodzi w FPGA i jest poddawany dzieleniu dla uzyskania baudrate clocks dla UARTów. Służy również do zatrzaskiwania adresów i innych rzeczy z procka aby dużo "powolniejszy" UART nie wstrzymywał proca. Między innymi takty z procka odczytują fifo UARTów... Te fifo to moduły biblioteczne z Quartusa i dla nich mam jakieś 30 ostrzeźeń z "timing analisis"... Jestem trochę zniesmaczony.

Narzekales ze cos tam zle i boisz sie flasha skasowac :-)

No ale nie wiesz ile zegarkow wyszlo po kompilacji - bo przeciez kompilator jest glupi i sie slucha programisty. A jak programista napisal 'wsad' tak, ze wychodzi 100 roznych clk... :-)

Bo stracę możliwosć przekonania się co jest źle :-)

A, no racja... kompilator jednak powinien być mądrzejszy :-)

"Pszemol"

[...]

no i jak to sie skonczylo ? wyszlo, co bylo przyczyna bledu ?

a przy okazji - u mnie w firmie zakazane jest stosowanie latch'y w projektach, tylko D flip-flop;

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