Ponieważ jakiś czas temu wpadły mi w ręce używane kości CPLD postanowiłem zrobić z nich użytek i postanowiłem że posłużą mi do nauki programowania w Verilog. Po pierwszych sukcesach nabrałem ochoty na coś „ambitniejszego”. Inspiracją był artykuł Naszego Kolegi http://hardware.atari8.info/freddie.php oraz mój uszkodzony Atari 65XE. Tak powstał Freddie w wersji CPLD.
Do pracy użyłem układu testowego który to Pasiu zaproponował w swoim opracowaniu, tyle że z jedna zmianą (moje dwa uszkodzone Freddie mają linie A8 w innym miejscu niż wynika to ze schematu komputera oraz artykułu np. Wikipedi– prawdopodobnie posiadam wersje które potrafią również prawidłowo obsłużyć 16KB pamięci w komputerach Atari). Zajęło mi chwilkę czasu zanim się zorientowałem ale się udało.
Opis, założenia:
1. Tak jak pisałem wcześniej do opisania struktury użyłem języka Verilog.
2. Do synchronizacji używam wyłącznie opadającego zbocza sygnału Phi2. Podjąłem też próby użycia obu zboczy tego sygnału ale zbocze narastając jest tak „rozwleczone” że nie nadaje się do niczego jeśli chodzi o CPLD.
3. Pierwsza wersja jaką napisałem „rozpoczynała” swoją pracę od pierwszego opadającego zbocza sygnału CLK. Działa ale uważam że nieprawidłowo (Problemy pojawiały się przy zamianie procesora). Spowodowane było to tym że procesor 6502c i układ generowania sygnału Phi2 dla procesora 65c816 wprowadzają różne opóźnienia dla sygnału zegara.
Dlatego teraz pracuje nad wersją która będzie działała tak jak oryginał, czyli rozpoczynała pracę od pierwszego zbocza (opadającego lub narastającego) po opadającym Phi2.
4. Tymczasowo dla uproszczenia testów linie adresowe zdefiniowałem tak jak podaję Wikipedia ale docelowo spróbuje zrobić tak aby CPLD prawidłowo obsługiwała również 16KB pamięci.
5. Pomimo że sygnał RESET doprowadziłem do struktury to do niczego go w chwili obecnej nie wykorzystuje
PS. Chwilowo jestem na dłuższym wyjeździe i nie mogę dalej bawić się układem ale jak wrócę do domu i znajdę chwilkę postaram się opublikować kody źródłowe na githubie.