Skocz do zawartości

PicoBlaze z jaką maksymalną częstotliwością zegara działa na Elbercie?


FlyingDutch

Pomocna odpowiedź

FlyingDutch, masz ode mnie piwo za znalezienie kompilatora C na picoblaze. Tego mi właśnie brakowało 🙂

Cześć Elvis,

też się cieszę (szczególnie, że wydaje się iż działa on całkiem rozsądnie). Tak naprawdę, to znalazłem go trochę przez przypadek 😉

Pozdrawiam

[ Dodano: 02-01-2018, 09:33 ]

Drobiazg ^^ W końcu jako naukowy człowiek jestem właśnie od analiz 🙂 Niemnie wracając do tematu - oczywiście testowałem tylko pod względem błędów (nie sprawdzałem dalej jak idzie symulacja - stąd spodziewam się, że pewnie na tym się nie skończy i zauważysz jakieś dalsze błędy - a jeśli tak no to dalej się będziemy martwić 🙂)

Myślę, że będzie działać, też doszedłem do wnioski, że coś jest nie tak z interpretacją wygenerowanego assemblera w pBlazeIDE.

Link do komentarza
Share on other sites

Cześć,

właśnie od około 20-tu minut testuję PicoBlaze na zestawie ElbertV2 z zegarem 180 MHz i programem CPU (ASM) liczącym w pętli funkcję CRC-8 i jak dotąd nie ma błędów. Bardzo prawdopodobne jest, że PicoBlaze na Spartanie 3A może bezproblemowo pracować z zegarem 180 MHz nawet z programami intensywnie korzystającymi z funkcji arytmetyczno-logicznych tego Soft-CPU.

To było dość długie ćwiczenie i chyba czas zająć się jakimś projektem "na luzie" - może jakiś projekt audio. Ma może ktoś jakieś pomysły?

---------------------------------------------------------------------

Update: sorry zapomniałem w samym projekcie VHDL w pliku "kcpsm3.vhd" zmienić proces ustawiający diodę LED (port out). Poprawiłem projekt"ISE" i przetestowałem, że gdy daję w porównaniu obliczonej sumy CRC-8 inną wartość niż 0x0F to zapala się dioda LED - tak, że teraz mam pewność iż cały projekt działa poprawnie.

Testowałem też projekt PicoBlaze (liczenie CRC-8) z różnymi częstotliwościami zegara w pobliżu wartości 180 MHz i ustaliłem, że już przy częstotliwości zegara 192 MHz program działa ale po nawet dość krótkim czasie działania sygnalizuje błędy obliczeń.

Tak, że wartość 180 MHz pozostaje górną granicą zegara dla której PicoBlaze działa poprawnie.

W załączniku poprawiony projekt PicoBlaze (liczenie CRC-8).

PicoBlaze06.zip

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Testuję ostatnio kompilator C do PicoBlaze i dochodzę do wniosku, że to niestety bardzo niedopracowany program. Właściwie nie nadaje się do niczego 🙁 Jednak trzeba się pogodzić z pisaniem w asemblerze, na C lepiej nie liczyć. Chyba że ktoś zna jakiś inny kompilator.

Link do komentarza
Share on other sites

Testuję ostatnio kompilator C do PicoBlaze i dochodzę do wniosku, że to niestety bardzo niedopracowany program. Właściwie nie nadaje się do niczego 🙁 Jednak trzeba się pogodzić z pisaniem w asemblerze, na C lepiej nie liczyć. Chyba że ktoś zna jakiś inny kompilator.

Elvis,

mógłbyś podać jakieś przykłady (no np. konstrukcje, które nie działają poprawnie)?

Pozdrawiam

Link do komentarza
Share on other sites

Zwykłe dzielenie przez 10 nie działa. A tylko chciałem przetestować licznik :/

[ Dodano: 04-01-2018, 21:28 ]

Operator przesunięcia bitowego też nie najlepiej działa:

PBLAZEPORT[OUT_LEDS] = 1 << leds;

Daje w wyniku:

Internal error: validateOpType failed in OP_LIVETO(left) @ gen.c:2639: expected symbol, got value

Makefile:7: recipe for target 'prog_1.psm' failed

Link do komentarza
Share on other sites

Zwykłe dzielenie przez 10 nie działa. A tylko chciałem przetestować licznik :/

[ Dodano: 04-01-2018, 21:28 ]

Operator przesunięcia bitowego też nie najlepiej działa:

PBLAZEPORT[OUT_LEDS] = 1 << leds;

Daje w wyniku:

Internal error: validateOpType failed in OP_LIVETO(left) @ gen.c:2639: expected symbol, got value

Makefile:7: recipe for target 'prog_1.psm' failed

Cześć Elvis,

Ja też zauważyłem małe 'dewiacje' w składni. Np pętla for:

Nie możesz napisać tak:

for(int i =0; i < 19; i++)

tylko:

int i = 19;

for(i; i <19; i++)

Na stronie kompilatora są przykłady programów do pobrania (z nich można dużo wywnioskować).

Mógłbyś podać kod programu, który nie działa prawidłowo?

BTW: moim zdanie użycie tego kompilatora ma sens, aby wygenerować szkielet programu w assemblerze, a szczegóły uzupełnić "ręcznie" (zaoszczędza to sporo czasu).

Pozdrawiam

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.