logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Graf automatu Active-HDL. Projekt automatu w VHDL-u.

Wieniu 11 Mar 2007 17:30 4119 12
REKLAMA
  • #1 3667442
    Wieniu
    Poziom 18  
    Posty: 425
    Pomógł: 5
    Ocena: 25
    Witam

    Mam problem z projektem automatu w VHDL-u. Nie wiem w jaki sposób zrobić graf automatu realizujący następujące zadanie:

    Na wejściu A pojawiają się impulsy o różnym czasie trwania. Zaprojektować automat sygnalizujący:
    - na wyjściu X impuls o czasie 3ms, jeśli 3 kolejne impulsy były coraz krótsze,
    - na wyjściu Y impuls o czasie 2ms, jeśli przerwa pomiędzy kolejnymi impulsami była krótsza niż każdy z tych impulsów,
    - na wyjściu Z impuls o czasie 1ms, jeśli czas trwania 2 kolejnych impulsów razem z przerwą był krótszy niż 2ms,
    - na wyjściu W fala prostokątna o wypełnieniu 50% i częstotliwości równej średniej częstotliwości impulsów na wejściu A w ciągu ostatniej sekundy.

    Każe wyjście można zrobić w postaci oddzielnego grafu. Cz ktoś wie jak to zrobić w postaci grafu w Active-HDL (poprawnie zadeklarować wejścia, wyjścia, sygnały itd.) tak, żeby można było wygenerować poprawny kod programu (w jezyku VHDL) i przeprowadzić symulację. Jeżeli ktoś jest zainteresowany zrobieniem tego to chętnie zapłacę za Pomoc.

    Bardzo Proszę o informację.
  • REKLAMA
  • Pomocny post
    #2 3673564
    tony_tg
    Poziom 16  
    Posty: 140
    Pomógł: 13
    Ocena: 3
    Czesc,

    Mozesz kazde wyjscie traktowac osobno. Wiec skup sie na jednym problemie i go rozwiaz. Czyli co? Masz wystawic stan aktywny przez 3ms jesli 3 impulsy po sobie byly krotsze? tzn kazdy byl krotszy niz 3ms? No to masz zegar, i wiesz ile jego okres jest i masz liczniki ktore mierza czas i kazdy jest uruchamiany dla swojego impulsu. Jak sie okaze, ze wszystkie trzy pokazuja ze impuls na jego "wejsciu enable" byl krotszy niz zadana wielkosc to odpalasz nastepny licznik, ktory przytrzyma aktywne wyjscie przez 3ms. No a ze chodzi o to, ze te 3 impulsy wejsciowe maja byc coraz mniejsze, to popatrz na wszystkie trzy zanim podejmiesz decyzje.

    Reszta wyjsc jest tak samo.

    To tak jak dalej mozesz miec osobne automaty na kazde wyjscie. I tak jestes w komfortowej sytuacji. Normalnie nikt nie ma tego luksusu...

    Pozdrawiam,
    tony_tg
  • #3 3674965
    Wieniu
    Poziom 18  
    Posty: 425
    Pomógł: 5
    Ocena: 25
    Wiesz może jak to rozrysować w ActiveHDL (deklaracja porów, warunki dla węzłów i krawędzi)??
  • REKLAMA
  • #4 3705763
    tony_tg
    Poziom 16  
    Posty: 140
    Pomógł: 13
    Ocena: 3
    Czesc,

    Nie mam Active-HDL'a wiec nie wiem :)

    Pozdrawiam,
    tony_tg
  • REKLAMA
  • #5 3705861
    Wieniu
    Poziom 18  
    Posty: 425
    Pomógł: 5
    Ocena: 25
    Wielka szkoda. Kilka miesięcy temu pewna osoba zrobiła mi ten projekt, niestety umieściła w nim za warunki np. warunki generacji w postaci tekstowej, czyli np. w ostatnim elemencie grafu jeżeli licz1=licz1+1 to ustaw generację na 1ms. Niestety zostało to odrzucone przez prowadzącego. Nie wiem jak to rozrysować, za pomocą stanów (kółek), strzełek(krawędzie przejść) itd., lub za pomocą takiego schematu blokowego: http://pl.wikipedia.org/wiki/Schemat_blokowy

    Z tego co mi gość podesłał trochę przerobiłem i mam coś takiego jak na zdjęciu tylko nie wiem czy dobrze.

    Graf automatu Active-HDL. Projekt automatu w VHDL-u.

    A w załączniku znajduje się cały projekt w openoffice20, który mi gość zrobił.
    Załączniki:
    • graf_pracy.zip (9.69 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #6 3709420
    griva
    Poziom 17  
    Posty: 203
    Pomógł: 12
    Ocena: 1
    Wieniu napisał:
    Wielka szkoda. Kilka miesięcy temu pewna osoba zrobiła mi ten projekt, niestety umieściła w nim za warunki np. warunki generacji w postaci tekstowej, czyli np. w ostatnim elemencie grafu jeżeli licz1=licz1+1 to ustaw generację na 1ms. Niestety zostało to odrzucone przez prowadzącego. .


    sie nie dziwie, jak mozna nazywac stany S0, S1, ... ??!! albo licz1 licz2 co to jest??!! na Twoim miejscu nie chcialbym nawet za free tego "projektu".
    Wez sobie siadz, rozczaj tutorial w Activie i ponazywaj wszystko po ludzku, kod ma byc samodokumentujacy sie, tony_tg napisal Ci jak masz to zrobic i mysle ze w mniej niz 8h bedziesz mial zadanie zrobione plus bedziesz cos wiedzial.
    Active jest tak prostym narzedziem ze nawet jak nie masz pojecia o HDL-u to powinienes dac rade zrobic ta maszyne.

    BTW:
    Twojemu prowadzacemy chodzilo chyba o to zeby nie stosowac licznikow tylko rozpisac kazdy jeden stan
  • #7 3709479
    Wieniu
    Poziom 18  
    Posty: 425
    Pomógł: 5
    Ocena: 25
    Jeżeli chodzi o nazewnictwo S0,S1,..., licz1,licz1 to może takie być. Pytałem prowadzącego o te kwestie i powiedział, że coś takiego mu wystarczy, tylko żeby automat spełniał założone zadanie. Czytałem tutora 2 razy i na jego podstawie oraz różnych wskazówek przerabiałem projekt (za który zapłaciłem) na to co jest na zrzucie. Jak na dniach nie uda mi się tego poprawić to zaryzykuje wysyłkę tego co mam. Niestety totalnie nie wiem co zrobić z wyjściem W i falą prostokątną.
  • #8 3709677
    griva
    Poziom 17  
    Posty: 203
    Pomógł: 12
    Ocena: 1
    Wieniu napisał:
    Niestety totalnie nie wiem co zrobić z wyjściem W i falą prostokątną.


    Zrob tak, liczysz co 1ms czy na A jest 0 , jakis licznik_zer_A np inkrementujesz jak jest 0, po 1sek masz T_ms <= licznik_zer/ 1000ms i masz czas polowy okresu, teraz wygenerowac sygnal to banal

    W_int <= not W_int after T_ms;
    W <= W_int;
  • #9 3709851
    Wieniu
    Poziom 18  
    Posty: 425
    Pomógł: 5
    Ocena: 25
    Możesz mi to rozrysować (cały projekt lub sam punkt W). Zapłacę za pomoc. Podaj tylko cenę na PW.
  • #10 3711198
    griva
    Poziom 17  
    Posty: 203
    Pomógł: 12
    Ocena: 1
    Wieniu napisał:
    Możesz mi to rozrysować (cały projekt lub sam punkt W). Zapłacę za pomoc. Podaj tylko cenę na PW.


    nie zrobie Ci tego bo to jest sprzeczne z moimi ortodoksyjnymi zasadami religijnymi ;-))

    a powaznie to dlaczego nie chce Ci sie tego zrobic? masz tyle kasy ze przez cale zycie bedziesz placil za wszystko (jesli tak to zazdroszcze CI).
    zadanie nie jest trudne tylko wymaga twardego tylka lub wygodnego krzesla ;-)

    kiedys za studenckich czasow podjalem sie paru takich projektow, wyszlo na to ze nie mialem twardej psychy i zrobilem je za mniej niz wartosc 2x0.5l a siedzialem nad tym netto 3 doby a teraz 3 doby mojego siedzenia kosztuje wiecej niz 2 transportery 0.5l ;-). Takze naprawde oplaca Ci sie to zrobic samemu.
  • #11 3711659
    Wieniu
    Poziom 18  
    Posty: 425
    Pomógł: 5
    Ocena: 25
    Siedzę nad tym już dłuższy czas (nawet nie będę pisał ilę) i nie mogę sobie poradzić. Gratuluję zarobków, ja niestety tyle nie zarabiam i daleko mi do tego. Faktycznie nie stać mnie na twoją pomoc. Dziękuję za wskazówki.
  • #12 3711725
    griva
    Poziom 17  
    Posty: 203
    Pomógł: 12
    Ocena: 1
    Wieniu napisał:
    Faktycznie nie stać mnie na twoją pomoc.


    Przeciez pisalem ze nie robie projektow za kase dla forumowiczow/studentow.

    Napisz konkretnie czego nie mozesz przejsc. FSM jak dziala i jak sie go robi znajdziesz w kazdej ksiazce do podstaw techniki cyfrowej.
  • #13 3711750
    Wieniu
    Poziom 18  
    Posty: 425
    Pomógł: 5
    Ocena: 25
    Przepraszam źle wpisałem. Chciałem wpisać Nie stać by mnie było na Twoją pomoc.

Podsumowanie tematu

✨ Dyskusja dotyczy projektu automatu w VHDL realizującego zadania na wejściu A z impulsami o zmiennym czasie trwania. Automat ma generować sygnały wyjściowe: X (impuls 3ms, gdy 3 kolejne impulsy są coraz krótsze), Y (impuls 2ms, gdy przerwa między impulsami jest krótsza niż każdy impuls), Z (impuls 1ms, gdy suma czasu dwóch impulsów i przerwy jest krótsza niż 2ms) oraz W (fala prostokątna o wypełnieniu 50% i częstotliwości równej średniej częstotliwości impulsów na wejściu A w ciągu ostatniej sekundy). Zalecane jest rozdzielenie każdego wyjścia na osobny automat stanów (FSM). Propozycja rozwiązania obejmuje wykorzystanie liczników do pomiaru czasów impulsów i przerw oraz generowanie sygnałów wyjściowych na podstawie porów czasów. Wskazano, że w Active-HDL można tworzyć grafy stanów z odpowiednimi deklaracjami wejść, wyjść i sygnałów, jednak brak jest szczegółowego schematu graficznego. Dyskusja porusza także kwestie nazewnictwa stanów i sygnałów oraz problem generacji fali prostokątnej W, którą można uzyskać przez odwracanie sygnału co określony czas obliczony na podstawie liczników. Autor projektu ma trudności z implementacją i wizualizacją grafu w Active-HDL, zwłaszcza dla wyjścia W, a inni uczestnicy sugerują samodzielne opanowanie podstaw FSM i technik pomiaru czasu w VHDL. Projekt wymaga dokładnego rozpisania stanów i przejść bez stosowania warunków tekstowych w grafie, aby spełnić wymagania prowadzącego.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA