FPGA Altery bootujące się z szeregowego EPROM/FLASH
Sep 21, 2004 63 Replies
J
J.F.
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.
Didn't find your answer? Ask the community — no account required.
P
Pszemol
No właśnie - ten flash to jedyna kopia tego oryginalnego kodu, który robi fochy.
Tak zrobię.
P
Pszemol
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 :-(
G
Grzegorz K.
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
P
Pszemol
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.
J
J.F.
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.
P
Pszemol
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ę.
M
Mister
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
J
jerry1111
Musi wiedziec co robi :-)
Generalnie to przejscia pomiedzy domenammi CLK nalezy traktowac tez jako interfejs asynchroniczny :-(
J
jerry1111
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 :-)
J
jerry1111
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.
J
jerry1111
To se napisz 10 linijek programu, wpisz program JTAGiem i wyslij zawartosc EPCS do kompa.
J
jerry1111
Przeczuwam, ze chcial miec jedna domene... A ile wyszlo? :-)
P
Pszemol
I co potem miałbym z tym plikiem binarnym zrobić? :-)
P
Pszemol
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.
J
jerry1111
Narzekales ze cos tam zle i boisz sie flasha skasowac :-)
J
jerry1111
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... :-)
P
Pszemol
Bo stracę możliwosć przekonania się co jest źle :-)
P
Pszemol
A, no racja... kompilator jednak powinien być mądrzejszy :-)
J
JA
"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
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.