Kod VHDL na podstawie symulacji

0

Witam,

Temat kodowania układów programowalnych w VHDL jest mi praktycznie obcy, ale niestety studiując kierunek związany z IT trzeba byc wszechstronnie uzdolnionym w szeroko pojętej informatyce, a więc do rzeczy.

Mam do zaprogramowania układ Nexys™3 Spartan-6 FPGA Board. Prowadzacy zajęcia rozrysował przebiegi na tablicy, a podał także rozpiskę PINów i to wszystko.

Czy bazując jedynie na symulacji można napisać kod ?
Co przedstawiają rozrysowane dwa warianty?
Czy w każdym wariancie są po 3 czy 4 sygnały? (do czego jest podłączony sygnał DATA?)

Z góry przepraszam, jeśli temat został utworzony w niewłaściwym dziale, ale to dla mnie bardzo ważne.
Proszę o jak najprostsze wytłumaczenie :)

Dziekuję i pozdrawiam.

1

Ogólnie: tak, na podstawie przebiegów czasowych można odtworzyć tablicę przejść-wyjść i finalnie zsyntezować układ. Na moje oko to co masz na tej tablicy to jest jakiś SPI-podobny interfejs. Wstaw to w lepszej jakości bo mało widać póki co.

0

Niestety nie mam fotki w wyższej rozdzielczości. Moge jedynie załączyć przerysowany na szybko (nie do konca pokrywaja sie linie) poglądowy rysunekuser image po prawej u góry powinno byc chyba "RS"

I faktycznie, facet wspominal cos o interfejsie szeregowym.

Post pod postem, ale nie mam możliwości edycji

0

A jakieś informacje o kierunkowości poszczególnych sygnałów? Która strona dostarcza zegar?

1

Wydaje mi się, że clk jest taktowaniem tego układu, prawdopodobnie drugi przebieg przedstawia wysyłanie. BCX to prawdopodobnie clk potraktowane przerzutnikiem typu t (dzielenie częstotliwości na 2).
2. Przebieg: gdy FSX(wejście, ustawia ten układ w tryb mikroproceosorwy) jest w stanie wysokim, to przy najbliższym zboczu opadającym sygnału taktującego włącza się transmisja, która wysyła dane bit po bicie(data jest wyjściem), prawdopodobnie do końca danych(?),
Pewnie ustawia WS, żeby odbiornik wiedział, kiedy kończy się jedna "porcja danych".

  1. Przebieg przy zboczu opadającym następuje zmiana odbieranego bitu na mniej znaczący (data jest wejściem), przed najmniej znaczącym stan WS zmienia się na przeciwny, wydaje mi się, że jest to po to, by układ odbierający wiedział ile bitów jest w paczce danych (teraz, patrząc na 2. przebieg przesyła chara czy innego uinta_8t), etap odbierania danych.

To są moje luźne domysły, bo dopiero w technikum jestem ;)

Zegar jest prawdopodobnie podawany z zewnątrz

0

No dobra Panowie, a powiedzcie mi co z tymi poziomowymi liniami pod sygnalami (KL, KP, B0 i B1) ?

0

Dzieki wielkie za zainteresowanie :) dalbym + ale jestem gosciem

Powiedzcie mi jeszcze jedna rzecz. Na zaliczenie wystarczy zrealizować jeden przebieg, podejrzewam że pierwszy jest prostszy? I generalnie ciezkie dla początkującego do zaprogramowania w VHDL ?

0

Skonfigurowania/zamodelowania, nie zaprogramowania. Nie, nie ciężkie, generalnie interfejs szeregowy bez żadnego wymyślnego protokołu to w zasadzie taka podstawa.
Rozpisz sobie wymogi, możesz pomóc sobie grafem, schematem blokowym itp. Jeżeli chcesz to robić zgodnie ze sztuką (oraz nauczyć się trochę więcej) to najpierw napisałbym interfejs behawioralnie, potem syntezowalnie, oczywiście od razu do tego testbench i min. kilka przypadków testowych (zwykłe działanie+corner cases). Dodatkowo możesz oba puścić równolegle i porównać wyniki (wersja wypas: robi to automat).

BTW - jakiego symulatora używasz? ActiveHDL, ModelSim, ten darmowy od Xilinxa (ISim bodajże...), jeszcze jakiś inny?

I czy musi to być VHDL? Bo do weryfikacji aż mi się tu o (System)Veriloga prosi (aczkolwiek może to kwestia tego, że znam go po prostu o wiele lepiej ;) ).

Pzdr.

EDIT: to pierwsze to jest I2S:
https://www.sparkfun.com/datasheets/BreakoutBoards/I2SBUS.pdf

Poziom trudności imho dość podobny. Kwestia tego, że pewne rzeczy w FPGA syntezują się do postaci równoległych a nie sekwencyjnych i zwyczajnie należy to wiedzieć.

EDIT2: KL i KP - kanał lewy, kanał prawy. Oba interfejsy są powiązane z dźwiękiem, więcej podpowiedzi nie daję, teraz konkrety proszę ;)

0

Ok jakims cudem zaliczyłem ;) temat do zamknięcia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1