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

VHDL - Jak podzielić projekt kodera/dekodera Hamminga 7,4 na moduły?

Szef_FBI 13 Gru 2011 11:21 4056 11
REKLAMA
  • #1 10254099
    Szef_FBI
    Poziom 16  
    Posty: 172
    Pomógł: 12
    Ocena: 17
    Witam serdecznie.

    Wykonałem projekt kodera/dekodera kodu liniowego Hamminga 7,4 w VHDL.
    Cały projekt był jednym modułem, co nie podobało się prowadzącemu, więc zgodnie z zasadami projektowania, chcę teraz podzielić mój projekt na moduły.

    Wygladałoby to tak:

    Top.vhd - odpowiada za wczytanie danych -> wysłanie ich do modułu koder/dekoder, a następnie odebranie gotowych danych i wyrzucenie ich na fizyczny port

    Koder.vhd - moduł kodera

    Dekoder.vhd - moduł dekodera

    Poniżej zamieszczam spis portów dla modułów kodera i dekodera.
    Całego kodu nie ma chyba sensu prezentować, wszystko działa jak należy :D

    Kod: VHDL
    Zaloguj się, aby zobaczyć kod


    Kod: VHDL
    Zaloguj się, aby zobaczyć kod



    Poniżej znajduje się proces wczytywania danych, jak widać dane były wczytywane z portu na sygnał wewnętrzny.
    Kod: VHDL
    Zaloguj się, aby zobaczyć kod


    No i teraz rodzi się moje pytanie, jak wykonać mapowanie portów, aby funkcja wczytywania danych była w module Top i przenosiła dane wejściowe do poszczególnych modułów, a na koniec dane wyjściowe wracały do modułu Top na porty wyjścia?
    VHDL - Jak podzielić projekt kodera/dekodera Hamminga 7,4 na moduły?
  • REKLAMA
  • #3 10254385
    Szef_FBI
    Poziom 16  
    Posty: 172
    Pomógł: 12
    Ocena: 17
    Czytałem już ten opis i o ile przy takich prostych bramkach wszystko łapię, to przy moim problemie robi się to już zbyt skomplikowane (mapowanie jest w 2 strony przecież).

    W sumie to sam już nie wiem, czy subkomponenty mam dodawać do Top, czy odwrotnie...

    Używam funkcji "View HDL Instantiation Template" z ISE.
  • REKLAMA
  • #4 10254460
    lss
    Poziom 21  
    Posty: 352
    Pomógł: 59
    Ocena: 20
    a jaka jest relacja miedzy dekoderem a koderem oraz jakie maja byc I/O w topie
  • #5 10254492
    Szef_FBI
    Poziom 16  
    Posty: 172
    Pomógł: 12
    Ocena: 17
    Między koderem i dekoderem nie ma żadnych relacji. Tak jak przedstawiłem to na obrazku.

    W Topie chcę żeby były wejścia/wyjścia fizyczne (porty) dla kodera/dekodera, port błędu dekodera i cały proces wczytywania danych.

    VHDL - Jak podzielić projekt kodera/dekodera Hamminga 7,4 na moduły?
  • Pomocny post
    #6 10256784
    lss
    Poziom 21  
    Posty: 352
    Pomógł: 59
    Ocena: 20
    Tworzysz sobie topa
    Kod: VHDL
    Zaloguj się, aby zobaczyć kod
    Mając top zadeklarowany tworzysz sobie tak jak Tobie pokazałem w przykładzie z bramką komponenty które będziesz łączył czy z nich korzystał
    Kod: VHDL
    Zaloguj się, aby zobaczyć kod
    Następnie deklarujesz sobie sygnały, rejestry które wykorzystasz sobie do łączenia komponentów czy do wprowadzenia do nich danych, przetrzymania etc.
    Kod: VHDL
    Zaloguj się, aby zobaczyć kod

    I tworzysz relacje zgodnie z tym prostym przykładem na podstawie bramki mapujemy komponenty.
    Kod: VHDL
    Zaloguj się, aby zobaczyć kod

    Mając podłączone komponenty do do topa teraz trzeba zrobić relacje aby wysyłać i odbierać dane z tych sub komponentów.
    Kod: VHDL
    Zaloguj się, aby zobaczyć kod


    Tak na szybko stworzyłem bez kompilatora można to uprościć ale chciałem abyś miał to uwidocznione. Podstawa rzecz rysuj sobie takie rzeczy na kartce a potem je przepisuj na kod to jest najwygodniejsza sprawa a jak nie to wygeneruj sobie komponenty do schematic'ka i połącz je za pomocą "rysunków" i już.
    Pzdr.
  • REKLAMA
  • #7 10256954
    Szef_FBI
    Poziom 16  
    Posty: 172
    Pomógł: 12
    Ocena: 17
    No i nie działa, wysypało się spektakularnie ;)
    ok, już działa, problem był w tym że dodałeś zerowanie wyjść, a tym steruje inny proces...

    Wychodzi, że nie jest to do końca połączone...

    VHDL - Jak podzielić projekt kodera/dekodera Hamminga 7,4 na moduły?
  • REKLAMA
  • Pomocny post
    #8 10257642
    lss
    Poziom 21  
    Posty: 352
    Pomógł: 59
    Ocena: 20
    Zmień na to:
    Kod: VHDL
    Zaloguj się, aby zobaczyć kod
  • #9 10258029
    Szef_FBI
    Poziom 16  
    Posty: 172
    Pomógł: 12
    Ocena: 17
    Tak już też kombinowałem...
  • #11 10261028
    Szef_FBI
    Poziom 16  
    Posty: 172
    Pomógł: 12
    Ocena: 17
    Skoro kompilator nie wymagał instrukcji else, to przypuszczam że nic się nie stanie :)
  • #12 10262447
    Szef_FBI
    Poziom 16  
    Posty: 172
    Pomógł: 12
    Ocena: 17
    Problem rozwiązany, może trochę metodą "na piechotę", ale ważne że działa :)

    Bardzo pomocny okazał się kolega lss, serdeczne dzięki :D

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik zrealizował projekt kodera/dekodera kodu Hamminga 7,4 w VHDL, który był początkowo zintegrowany w jednym module. W odpowiedzi na sugestie prowadzącego, postanowił podzielić projekt na trzy moduły: Top.vhd, Koder.vhd i Dekoder.vhd. W dyskusji poruszono kwestie związane z mapowaniem portów oraz relacjami między modułami. Użytkownik miał trudności z implementacją, ale po kilku próbach i wskazówkach od innych uczestników, udało mu się rozwiązać problemy związane z zerowaniem wyjść i poprawnym połączeniem komponentów. Ostatecznie projekt działał zgodnie z oczekiwaniami.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA