Witam na moim blogu.

Życzę przyjemnego wertowania moich przemyśleń. Zapraszam do komentowania.

czwartek, 21 lipca 2011

Cupl i GAL: Dobrana para

Mam ostatnio trochę więcej wolnego czasu i dlatego postanowiłem wreszcie spróbować tworzenia własnych scalonych układów cyfrowych. Nie, nie założyłem fabryki półprzewodników, ale do tego, żeby stworzyć własny wyspecjalizowany układ logiczny potrzeba  znacznie mniejszych nakładów środków.

Układy GAL nie są już żadną nowością. Ich starsze odmiany wykonane w technologii E2CMOS są ostatnim czasem sukcesywnie wycofywane z rynku na rzecz układów ispGAL i CUPLD. Ja miałem w swoich zapasach kilkanaście kostek GAL16V8 produkcji Lattice. Szkoda, żeby leżały, a poza tym potrzebowałem nowego układu GAL do emulatora EPROM AVT270. Oryginalna kostka padła w niejasnych okolicznościach po podłączeniu sondy emulacyjnej do płytki procesora AVT2250. To raczej dziwne, że podanie +5V na jedno z wejść powoduje wystąpienie zwarcia w GAL'u... Pozostaje domniemanie, że dostarczony układ był trefny. Na forach internetowych można znaleźć zapytania o wsad do tej kostki, ale samego wsadu nie ma...

Do stworzenia pliku JEDEC wykorzystałem pakiet Atmel WinCupl zawierający edytor, kompilator języka Cupl oraz bardzo wygodny w obsłudze symulator. Do kompletu przydał się jeszcze programator. Do zaprogramowania GAL16V8 wystarczy najbardziej zminimalizowana wersja GALBlasta, gdzie napięcie programujące podaje się z zasilacza laboratoryjnego. Opis można znaleźć tutaj.

Jak już wspomniałem, opis GAL'a napisałem w WinCupl oferowanym za darmo przez firmę Atmel za darmo. Trzeba się tylko zarejestrować. Zainstalować sobie ten pakiet z numerem rejestracyjnym i można używać pełnej wersji. Dla zainteresowanych link.

Do dyspozycji mamy teraz dwa programy. Pierwszy to WinCupl czyli edytor-kompilator. Za jego pomocą opisujemy co w naszym PLD będzie się działo. Dla przypomnienia: to nie jest żaden program! Za pomocą Cupl opisujemy zachowanie układu programowalnego, a na podstawie opisu kompilator generuje plik połączeń w matrycy GAL lub przepaleń w układach PAL (były kiedyś takie układy, programowalne tylko raz, dużo tańsze od GAL'i i dlatego stosowane w urządzeniach seryjnych zamiast nich).


Drugi program to symulator WinSim, którym możemy bez programowania kostki sprawdzić, co będzie robiło nasze "dzieło". Ułatwia życie, bo zaprogramowanie kostki zabiera chwilę. Jej testowanie przez zadawanie stanów wejść i badanie stanów wyjść jest dość kłopotliwe w praktyce. A tak pozostaje nam zaprojektować serię wektorów testowych zadawanych na wejścia, a WinSim wygeneruje dla nas przebiegi na wyjściach.


Zrzut wyżej pokazuje przebiegi dla GAL'a, który pracuje teraz w moim emulatorze. Wyniki są identyczne jak w tabeli w opisie kitu AVT270. GAL został potem zaprogramowany, a emulator sprawdzony i działa zgodnie z pierwowzorem. Czegoś się nauczyłem, a przy okazji zaoszczędziłem tych parę złotych za nowego, zaprogramowanego GAL'a z AVT. Nowa kostka nie "poszła z dymem" po dołączeniu sondy do podstawki EPROM'u w płytce komputerka AVT2250.

Mam teraz w zamiarze zmontowanie GALBlasta w pełnej wersji. Układ do emulatora jest układem kombinacyjnym. Za pomocą GAl'i i innych układów PLD można realizować również układy sekwencyjne...

2 komentarze:

  1. Warto poznać układy GAL czy w obecnych czasach lepiej wziąć się za CPLD? Czym to programujesz?

    OdpowiedzUsuń
  2. Układy GAL już powoli odchodzą do lamusa, ale w tym przypadku potrzebowałem "zrobić" sobie taką kostkę na zamianę za oryginalnego GAL'a do AVT270, który wyzionął ducha w nieznanych okolicznościach. Programowałem takim czymś:

    http://www.armory.com/~rstevew/Public/Pgmrs/GAL/_ClikMe1st.htm

    CPLD są bardziej przyjazne pod tym względem bo wystarczy mieć J-TAG'a.

    OdpowiedzUsuń