Skocz do zawartości

Kurs FPGA - #8 - automat skończony w VHDL


Komentator

Pomocna odpowiedź

html_mig_img
Dzięki automatom skończonym możliwe jest łatwe zrealizowanie nawet pozornie trudnych i zawiłych urządzeń elektronicznych. Tym razem sprawdzimy w praktyce jak przejść od grafu reprezentującego działanie układu do kodu w VHDL. Dzięki temu przejdziemy cały proces tworzenia automatu skończonego.

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

Link do komentarza
Share on other sites

Przepraszam, że się czepiam ale od pierwszego zdania mam drobną uwagę - mówimy o skończonych stanach, czy skończonym automacie? Tytuł "automat stanów skończonych" sugeruje skończone stany, co jest nieco dziwne. O skończonych automatach słyszałem, o skończonych zbiorach stanów też, ale automat stanów skończonych wydaje mi się dziwnym pojęciem. Czym jest stan nieskończony?

Link do komentarza
Share on other sites

Faktycznie może nazewnictwo nie jest zbyt dobrze tutaj dobrane. Nazwa taka pojawia się w niektórych publikacjach, ale nie jest najpopularniejsza. Wrócę z tym zaraz do pierwotnej wersji i będzie o "automatach skończonych" 😉

Link do komentarza
Share on other sites

Tak się zastanawiam. Czy w przypadku każdego stanu konieczne jest ustawianie go na nowo jeżeli nie zostały spełnione warunku do przejścia do kolejnego stanu (instrukcja w blokach else)?

when S0 =>
	if(not DPSwitch(0)) = '1' then
		Stan <= S1;
	end if;

Przetestowałem coś takiego i działa ale czy są jakieś inne względy z powodu, których w każdym stanie powinien znaleźć się blok else z określeniem aktualnego stanu ponownie na ten sam stan w którym już i tak się znajduje?

Edytowano przez Rogal
  • Lubię! 1
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

Dnia 9.03.2020 o 20:31, Rogal napisał:

Przetestowałem coś takiego i działa ale czy są jakieś inne względy z powodu, których w każdym stanie powinien znaleźć się blok else z określeniem aktualnego stanu ponownie na ten sam stan w którym już i tak się znajduje?

Mnie też coś takiego od razu przyszło do głowy. Wywaliłem else ze wszystkich czterech warunków i wyszło mi, że wszystko działa ok. Tak więc podbijam pytanie: czy to else w ogóle czemuś służy?

Link do komentarza
Share on other sites

Zgodnie z zasadami języka VHDL, sygnał na początku procesu ma automatycznie poprzednią wartość, dlatego te instrukcje else są z tego punktu widzenia zupełnie niepotrzebne.
Autor pewnie miał na myśli zwiększenie czytelności kodu (może uważa definiowanie kompletnych instrukcji warunkowych za dobrą praktykę programistyczną) albo obawiał się podobnego zagadnienia, jak z klauzulą when others – żeby zawsze definiować wprost wszystkie przypadki, ale moim zdaniem niepotrzebnie w tym przykładzie automatu.

  • Lubię! 1
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.