Grzegorz Kurczyk
Guest
Fri Jul 11, 2014 11:12 am
Witam
Pytanie do Kolegów "rzeźbiących" w środowisku Xilinx ISE.
Czy jest możliwość zmuszenia symulatora ISim do pokazywania opóźnień
powstających w blokach kombinacyjnych?
Na ten moment podczas symulacji ISim pokazuje zerowe opóźnienia i układ
na symulatorze "działa", a po wgraniu do FPGA mam zachowanie wskazujące
na zatrzaskiwanie danych w przerzutnikach nim ustalą się stany na
wyjściu układu kombinacyjnego.
Pozdrawiam
Grzegorz
Guest
Sat Jul 26, 2014 12:24 am
W dniu wtorek, 15 lipca 2014 11:07:32 UTC+2 użytkownik Grzegorz Kurczyk napisał:
Quote:
Juďż˝ nieaktualne.
Pozdrawiam
Pomimo nieaktualności pytania/wątka, sugeruję 'ograniczone zaufanie' do wyników symulacji. Symulator swoje (teoria), a oscyloskop swoje (praktyka). Bywa tak, że na symulatorze jest LIPTON, a w praktyce jest OK. Albo na odwyrtkę, bo też tak bywa. To są 'śliskie' tematy, dlatego sugeruję najsampierw sprawdzić ideę (behavioral simulation). Jak będzie wynik do dupy, to nawet nie podchodź do sprawdzania na 'żywym organiźmie', bo będzie jeszcze bardziej do dupy.
Korzystaj z symulatorów, ale z pewnym marginesem zaufania. Oscyl prawdę Ci powie !!
Grzegorz Kurczyk
Guest
Wed Jul 30, 2014 11:04 pm
W dniu 26.07.2014 o 00:24, stchebel@gmail.com pisze:
Quote:
W dniu wtorek, 15 lipca 2014 11:07:32 UTC+2 użytkownik Grzegorz Kurczyk napisał:
Juďż˝ nieaktualne.
Pozdrawiam
Pomimo nieaktualności pytania/wątka, sugeruję 'ograniczone zaufanie' do wyników symulacji. Symulator swoje (teoria), a oscyloskop swoje (praktyka). Bywa tak, że na symulatorze jest LIPTON, a w praktyce jest OK. Albo na odwyrtkę, bo też tak bywa. To są 'śliskie' tematy, dlatego sugeruję najsampierw sprawdzić ideę (behavioral simulation). Jak będzie wynik do dupy, to nawet nie podchodź do sprawdzania na 'żywym organiźmie', bo będzie jeszcze bardziej do dupy.
Korzystaj z symulatorów, ale z pewnym marginesem zaufania. Oscyl prawdę Ci powie !!
Tak jak pisałem w modelu behawioralnym układ "działa", a po
implementacji "w krzemie" miałem pewną dozę losowości. Układ jest już
dość złożony (wymyślone własne CPU-16bit z peryferiami, kontroler SDRAM,
grafika VGA i GPU 2D) Metodę "oscyloskopową" oczywiście stosuję z
użyciem 96kanałowego analizatora logicznego 500Ms/s ale jest to dość
upierdliwe z powodu m.in. małej ilości niewykorzystanych pinów I/O i jak
chcę przeanalizować zależności między np. magistralą danych CPU i
adresami, to już mi brakuje pinów. Z drugiej strony ta metoda też jest
obarczona błędem, bo wyprowadzenie jakiegoś sygnału na zewnątrz
wprowadza dodatkowe opóźnienie z bloku I/O więc Oscyl nie koniecznie
powie prawdę o chwili pojawienia się zbocza we wnętrzu układu. Można (co
też stosuję) zaimplementować "oscyloskop" cyfrowy we wnętrzu FPGA,
podpiąć do pod interesujące linie i gadać z nim przez JTAG-a, ale to też
ma swoje minusy bo po pierwsze musi być jeszcze miejsce w układzie na
zaimplementowanie oscyloskopu, a po drugie dodanie tego oscyloskopu do
projektu powoduje, że badany blok zostanie inaczej "skompilowany" w
krzemie (np. zbraknie multiplekserów w CLB, to sobie "wydłubie"
multiplekser w LUT)
W każdym razie symulacja Post-Route dała mi odpowiedź, w którym miejscu
mam "wąskie" gardło i wystarczyła zmiana implementacji multipleksera
adresów w CPU oraz rezygnacja z magistral dwukierunkowych aby wszystko
zaczęło pięknie działać :-)
Pozdrawiam
Grzegorz