reset
– moduł opb_epp posiada wewnętrzny układ umożliwiający ustawienie sygnału reset w stan wysoki na krótki okres czasowy (około 10us). Aby tego dokonać można użyć komendy reset lub też komendy writebyte FFFF_FFFF 01 (ustaw reset w stan wysoki) i następnie writebyte FFFF_FFFF 00 (ustaw reset w stan niski).
LA
– Internal Logic State Analyser – moduły opb_epp dla c_la_mwidth³4 lub opb_la.
Dodatkowy opis tych instrukcji można znaleźć w opisie modułu opb_la.
Możliwe jest równoczesne obsługiwanie więcej niż jednego modułu analizatora stanów logicznych. Przy każdym odwołaniu do innego modułu należy jednak odpowiednio ustawić parametry labaseadr (oraz laawidth tylko w przypadku symulacji VHDL).
labaseadr adr
– powoduje ustawienie adresu adr bazowego analizatora stanów logicznych – instrukcja podobna do baseadr ale dotyczy tylko analizatora stanów logicznych. Dla projektów opb_epp wartość ta powinna być ustawiona na FFFF_0000. Dla modułu opb_la powinna ona mieć wartość c_baseaddr. Podczas wykonywania tej instrukcji program apsi.exe sprawdza czy pod podaną lokacją adresową znajduje się analizator stanów logicznych i odczytuje jego parametry. Dlatego nie jest konieczne ustawianie jego parametrów za pomocą komend laawidth lub lahighadr. Jest to konieczne tylko podczas symulacji VHDL.
laawidth liczba (dec)
– Komenda używana tylko podczas wstępnej symulacji VHDL gdy analizator nie został jeszcze poprawnie wykryty; normalnie komanda ta jest ignorowana – laawidth jest określone poprzez komunikacje z analizatorem stanów logicznych. Komenda ta określa szerokości magistrali adresowej analizatora – powinien to być to ten sam parametr co dla entity log_anal generic adr_width. Dla modułu opb_epp należy ustawić laawidth= c_la_mwidth + log2(c_la_dwidth/8) + 1. Dla modułu opb_la należy ustawić log2(c_highaddr+1-c_baseaddr) lub użyć instrukcji lahighadr. Instrukcja powinna być użyta przed instrukcją labaseadr.
lahighadr adr
– Podobnie jak instrukcja laawidth, instrukcja ta jest używana tylko podczas wstępnej symulacji VHDL, kiedy nie ma poprawnej komunikacji z modułem analizatora stanów logicznych. Instrukcja ta powoduje ustawienie adresu końcowego analizatora stanów logicznych. Instrukcja ta powinna być użyta zamiennie z instrukcją laawidth. Parametr adr powinien być taki sam jak parametr c_highaddr użyty w parametrach modułu opb_la. Instrukcja powinna być użyta przed instrukcji labaseadr.
latvalue liczba (hex) – określa wartość triggera, czyli takiej sekwencji danych, która powoduje wyzwolenie analizatora. Miejsce wyzwolenia (w oglądanym przebiegu) określa instrukcja lastart. Zob. lacare.
Warto podkreślić, że sygnał wyzwalający jest ignorowany do czasu kiedy nastąpi wypełnienie bufora pamięci w części określonej przez miejsce sygnału wyzwalającego (np. jeżeli trigger jest na końcu rejestrowanych próbek to najpierw musi być wypełniony cały bufor pamięci a następnie dopiero stan sygnału wyzwalającego jest brany pod uwagę). Nawet w momencie kiedy trigger jest na samym początku musi być zarejestrowana co najmniej jedna dana. Jest to szczególnie ważny warunek w momencie kiedy używa się logiki zezwolenia zegara dla rejestrowanych próbek.
latcare liczba (hex)
– określa czy dany bit triggera jest brany pod uwagę (1) czy też nie (0). Dla przykładu dla: latvalue 50 oraz latcare F0, dane zostaną zarejestrowane jeżeli na wejściu triggera wystąpi sekwencja 5X (gdzie x oznacza poziom dowolny).
lacevalue liczba (hex)
– określa wartość sygnału wejściowego la_ce_Dbus (moduł opb_la lub opb_epp), przy którym nastąpi uaktywnienie sygnału zezwolenia zegara (CE) dla rejestrowania próbek lub też uaktywnienie dodatkowego triggera. Instrukcja jest ważna tylko wtedy kiedy został wybrany parametr c_la_ce_dtype>0. Instrukcja działa podobnie jak instrukcja latvalue lecz dotyczy sygnału CE lub dodatkowego triggera. Zob. latcare oraz lactr.
lacecare liczba (hex)
– instrukcja podobna jak instrukcja lacevalue ale decyduje czy odpowiedni bit wartości zadeklarowana instrukcją lacevalue jest brany pod uwagę (1) lub nie jest brany pod uwagę (0).
lacectr liczba (hex)
– powoduje zapis do rejestru kontrolnego sterującego funkcją CED (zezwolenia ze do rejestrowanych danych lub rejestru kontrolnego). Zapis jest ważny tylko wtedy kiedy parametr c_la_ce_dtype>0. liczba jest określana bitowo na podstawie poniższych bitów. Domyślny wpis do wszystkich bitów to 0.
Bit # |
Opis |
0 ced_active_low |
Określa poziom wyjścia logiki CED, który aktywuje logikę zezwolenia zegara lub dodatkowego triggera. |
1 ced_reg |
0 – wyjście logiki CED jest bezpośrednie (nie opóźnione) |
2 |
0 – Sygnał jest rejestrowany niezależnie od logiki CED. |
3 |
0 – Bramka AND dla dodatkowego triggera jest nieaktywna. Trigger główny (lub bit 4) decyduje o momencie wyzwolenia. |
4 |
0 – Bramka OR jest nieaktywna. Wyzwolenie następuje tylko dla triggera głównego (zob. bit 3). |
5 |
0 – używaj kodowania RLC (oczywiście jeżeli został ustawiony odpowiedni parametr – use_run_length_coding |
Przykład:
lacectr 0 // logika CED jest nieaktywna czyli tak jakby jej w ogóle nie było (wartość początkowa)
lacectr 4 // powoduje rejestrowanie próbek tylko wtedy kiedy jest spełniony warunek logiki CED (czyli wejście logiki CE spełnia warunek lacevalue oraz lacecare
lacectr 11 // Wyzwolenie analizatora następuje tylko wtedy kiedy jest spełniony warunek latvalue latcare oraz nie jest spełniony warunek lacevalue lacecare.
latvalue 05
latcare 0F
lacevalue 0A
lacecare 0F
lacectr A // powoduje wyzwolenie analizatora w momencie kiedy sygnał na danych D0-D3 zmieni się z A na 5 w jednym takcie zegara (pod warunkiem że c_la_ce_type= 3)
lastart liczba (hex)
– określa miejsce położenia triggera względem obserwowanych próbek. Liczba= 00 – trigger na poczatku, liczba= 20- trigger w środku, liczba= 3F – trigger na końcu, 10xx_xxxx (bin) – wyzwól LA w chwili zapisu do rejestru – miejsce triggera jest określone przez 6 najmłodszych bitów. Instrukcja lastart jest równoważna zapisowi pod rejestr statusowy układu LA (zob. log_anal.doc(pdf))
laread [nazwa_pliku, [timeout]]
– powoduje oczekiwanie aż zostanie zakończony proces akwizycji danych oraz powoduje zapis zarejestrowanych danych do pliku la_data.bin, który jest następnie czytany prze entity la_view.vhd. Plik la_view automatycznie wyświetla zapisane dane w pliku la_data.bin. Możliwa jest zmiana domyślnej nazwy pliku la_data.bin, do którego zapisywane są pobrane dane na plik nazwa_pliku. Po liczbie odczytów timeout (jeden odczyt to około! 10ms) po której analizator nie zakończy akwizycji danych następuje zapis pod rejestr kontrolny ced o wartości 0x20 – co powoduje wyłączenie logiki zezwolenia zegara, dodatkowego triggera oraz wyłączenie kompresji danych RLC. Następnie procedura zostanie powtórzona. Jeżeli powtórnie po wykonaniu timeout odczytów nie zostanie zapełniony bufor pamięci analizatora, to program dokona odczytu pomimo tego, że część bufora (ta na początku rejestracji) nie zawiera poprawnych danych.
Podczas akwizycji po instrukcji la_read jest wyświetlana dana, rejestr stanu analizatora stanów logicznych zob, log_anal.doc. Jeśli bit 0x80 jest równy zero to analizator nie został wyzwolony i dlatego proces akwizycji nie mógł przebiec poprawnie. W tym wypadku należy np. zmienić wartość triggera. Jeżeli bit 0x80 jest ustawiony to następuje proces akwizycji danych, zakończy się on kiedy zostanie wypełniona pamięć próbek czyli odczytana dana (rejestr statusowy) osiągnie wartość 0xC0. Jeśli jednak inkrementacja tego rejestru do wartość 0xC0 przebiega zbyt wolno należy albo zmienić wartość logiki zezwolenia zegara (CE) instrukcją la_cecare / la_cevalue lub też zrezygnować z kompresji danych RLC (zob. lacectr).
Przykład dla parametrów domyślnych opb_epp.
la_base_adr FF_0000
la_tvalue 1
la_tcare 1 // przy wyzwalaniu liczą się tylko bity 1,3-7
la_start 01 // zarejestruj moment wyzwalania trigger na początku
// tu umiesc cos co chcesz oglądnąć
la_read // powoduje odczyt zarejestrowanych danych
Aby ostatecznie móc oglądnąć zarejestrowane dane należy w symulatorze VHDL wybrać jako plik nadrzędny moduł la_view.vhd wraz z zapisanym uprzednio plikiem zarejestrowanych danych (domyślnie la_data.bin). Zobacz dokładniejszą instrukcje log_anal.doc.