Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

MAX+plus II zadanie w VHDL

pandaci
-
-
Posty:7
Rejestracja:20 sty 2008, o 20:08
Lokalizacja:Bydgoszcz
MAX+plus II zadanie w VHDL

Postautor: pandaci » 20 sty 2008, o 20:09

Witam

Dostałem zadanie do zrobienia na uczelnie.
Zad

Zaprojektować w języku VHDL układ cyfrowy do detekcji ciągu 0 1 w strumieniu danych. Tak zaprojektować by sprawdzić w programie MAX + PLUS II Altera zliczyć zdarzenia do wartości 99.
Zlicza gdy na jednym jest s1 -11 a na drugim s2 - 01


Jak do tego sie zabrać?? Nigdy nic nie robiłem w tym języku dlatego jestem zupełnie zielony. Program zainstalowany i dalej jest pustka.

Jak generować takie sygnały??
Jak to później zliczać??

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Postautor: pajaczek » 20 sty 2008, o 22:22

Zaczac od przeczytania jakiegos kursu badz ksiazki. O VHDL jest kilka.

pandaci
-
-
Posty:7
Rejestracja:20 sty 2008, o 20:08
Lokalizacja:Bydgoszcz

Postautor: pandaci » 21 sty 2008, o 11:28

No a może ktoś by mnie naprowadził. Od czego powiniennem zacząć może jakieś przykłądy.

rafszym
-
-
Posty:44
Rejestracja:4 gru 2007, o 12:39
Lokalizacja:Warszawa

Postautor: rafszym » 21 sty 2008, o 15:39

Dużo przykładów z VHDL'a jest w "układy FPGA w przykładach" http://www.btc.pl/?id_prod=11380 ale to pod Xilinx'a i bez wstepu o podstawach języka.
Uważaj na pierwszy projekt (4.1), w tekście piszą o liczniku z resetem synchronicznym a w kodzie VHDL jest asynchroniczny...

pzdr.

pandaci
-
-
Posty:7
Rejestracja:20 sty 2008, o 20:08
Lokalizacja:Bydgoszcz

Postautor: pandaci » 21 sty 2008, o 19:27

A coś w wersji elektronicznej??

Może mały przykładzik z waszych zasobów.

Albo mniej więcej jak to powinno wyglądać w jakiś pseudokodzie lub w vhdl-u??

Piotr
Moderator
Moderator
Posty:468
Rejestracja:14 lut 2003, o 13:53
Lokalizacja:Warszawa
Kontaktowanie:

Re: MAX+plus II zadanie w VHDL

Postautor: Piotr » 22 sty 2008, o 11:33

Witam

Dostałem zadanie do zrobienia na uczelnie.
Zad

Zaprojektować w języku VHDL układ cyfrowy do detekcji ciągu 0 1 w strumieniu danych. Tak zaprojektować by sprawdzić w programie MAX + PLUS II Altera zliczyć zdarzenia do wartości 99.
Zlicza gdy na jednym jest s1 -11 a na drugim s2 - 01
^^^^ O czym tu piszesz? Co to jest "s1" i "s2"?

Jak do tego sie zabrać?? Nigdy nic nie robiłem w tym języku dlatego jestem zupełnie zielony. Program zainstalowany i dalej jest pustka.
Masz "golego" MAX+Plus II czy z doinstalowanym syntezerem VHDL?
Jak generować takie sygnały??
Jezeli pytasz o sygnaly pobudzjace w symulatorze, to robi sie to w edytorze przebiegow. Jezeli pytasz o cos innego, to napisz precyzyjnie o co pytasz.

Pzdr
PZb
Ostatnio zmieniony 22 sty 2008, o 13:27 przez Piotr, łącznie zmieniany 1 raz.

pandaci
-
-
Posty:7
Rejestracja:20 sty 2008, o 20:08
Lokalizacja:Bydgoszcz

Postautor: pandaci » 22 sty 2008, o 15:41

Mam Maxplus+ II sciagnietego ze strony wersja student.

s1- sygnal pierwszy
s2 - sygnal drugi

Chodzi oto aby te sygnały były losowe.

I jeżeli na sygnale 1 -> s1 wystąpi 11 a na sygnale drugim w tym czasie 01 to ma zliczyć jeden impuls. I tak do 99 ma zliczać później zerowanie.

rafszym
-
-
Posty:44
Rejestracja:4 gru 2007, o 12:39
Lokalizacja:Warszawa

Postautor: rafszym » 22 sty 2008, o 16:39

I jeżeli na sygnale 1 s1 wystąpi 11 a na sygnale drugim w tym czasie 01 to ma zliczyć jeden impuls. I tak do 99 ma zliczać później zerowanie.
Zatem układ ma dwa równoległe wejścia s2-s1, na których mogą pojawić się pary 00, 01, 10 lub 11 w dowolnej sekwencji. Zliczyć należy kolejności 01 i 11...
Proponuję detektor zrobić jako maszynę stanów, a jej 1-bitowy sygnał wyjściowy podać na licznik.

pzdr.

pandaci
-
-
Posty:7
Rejestracja:20 sty 2008, o 20:08
Lokalizacja:Bydgoszcz

Postautor: pandaci » 22 sty 2008, o 20:15

Aha. Tylko jak to zrobić w VHDL-u ja jestem zupełnie zielony w tym temacie??

Może jakaś pomoc??

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Postautor: pajaczek » 23 sty 2008, o 04:00

Pandaci:

Dlatego Ci od poczatku proponuje przeczytanie ksiazki (o VHDL oczywiscie), np. wspomniane juz FPGA w przykladach, albo (chyba lepiej) "projektowanie ukl cyfr z wykozystaniem jezyka VHDL" (choc to jest dosc "akademicko" napisane).

Teraz nawet jesli ktos Ci poda fragmenty przykladowe, to sie zaczniesz pytac co to jednostka projektowa, co to architektura, co to proces...

no chyba ze liczysz, ze ktos Ci poda gotowy, przetestowany i kompletny projekt??

rafszym
-
-
Posty:44
Rejestracja:4 gru 2007, o 12:39
Lokalizacja:Warszawa

Postautor: rafszym » 23 sty 2008, o 08:52


pandaci
-
-
Posty:7
Rejestracja:20 sty 2008, o 20:08
Lokalizacja:Bydgoszcz

Postautor: pandaci » 23 sty 2008, o 09:42

Nie licze na gotowy projekt, bo wiem że takie rzeczy to nie na forum.

Liczyłem na jakieś podpowiedzi w stylu kawałków kodu np z jakiś waszych gotowych projektów.

Dzięki za linki.

To może dostane podpowiedź jak zadeklarować takie sygnały losowe??

rafszym
-
-
Posty:44
Rejestracja:4 gru 2007, o 12:39
Lokalizacja:Warszawa

Postautor: rafszym » 23 sty 2008, o 10:09

Sygnały s2 i s1 to sygnały wejściowe układu, losowo pojawiają się 0 i 1 na nich z zewnątrz.
W vhdlu nie ma sygnału losowego, opisujemy działanie układu cyfrowego zamiast rysować jego schemat na bramkach i przerzutnikach.
Syganały s2 i s1 tylko zadeklaruj w części port jako wejścia.
W symulatorze narysujesz sobie ich dowolną kombinację a układ zliczy wytąpienie tej do detekcji.
Proponuję narusuj schemat blokowy, potem każdy blok opisz w osobnym procesie.
Kody jeśłi nie zadziałają to wrzuć na forum, ludziska doradzą co zmienić.
Przykład grafu stanów jest w poście xyspokusa

pzdr.

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Postautor: pajaczek » 23 sty 2008, o 13:31

W vhdlu nie ma sygnału losowego, opisujemy działanie układu cyfrowego zamiast rysować jego schemat na bramkach i przerzutnikach.
O ile mowa o opisie dzialania ukladu, to oczywiscie nie mozna mowic o zadnej rendomizacji. Jesli jednak chodzi wylacznie o potrzebe symulacji/testowania to jednak mozemy posluzyc sie pewna losowoscia... mozna wykozystac ieee.math_real.all (1076.2) do napisania sobie generatorka impulsow (pseudo)losowych :599: (jak wiemy pelnej losowosci w swiecie maszyn nie ma).

Btw. sie tak nawet zastanawialem czy znacie jakies inne metody generacji liczb pseudolosowych niz LFSR (do zastosowania rowniez w uC), ale... jeszcze powroce do tego zagadnienia w innym temacie.

rafszym
-
-
Posty:44
Rejestracja:4 gru 2007, o 12:39
Lokalizacja:Warszawa

Postautor: rafszym » 23 sty 2008, o 14:02

Pandaci działa w MAX+plusII, który nie zawiera symalatora VHDLa (mam na myśli pisanie "testbenczy" czyli programów testowych w VHDLu do testowania układów opisanych w VHDL). Moim zdaniem jedynie można zaimplementować generatorek jako osobny układ w jednym CPLD/FPGA z projektowanym detektorem. Wyjścia połączyć zenętrznie.

a ponadto
Można iść dalej i "pisać w VHDL" generatory o danym rozkładzie prawdopodobieństwa jako IPCore'y - miałem kiedyś takie pomysły, ale jakoś nie rozpocząłem... Wzory na to są znane ale gorzej z implementacją... Można by pomysleć o takim poście, ale na razie nikt nie dostał takiego projektu na zalicznie :611:

Wróć do „PLD/FPGA i inne zagadnienia techniki cyfrowej”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 5 gości