Programowalne programy do projektowania chipów altera. Sprzęt - ALTERA: programowalne układy logiczne (materiał wprowadzający). produkty Altera. altera, jeden z największych deweloperów PLS, została założona w 1983 roku jako


(C) Badania/WołgaSoft Nowoczesne technologie. ALTERA.(materiał wprowadzający) WSTĘP W tym artykule będzie mowa o nowoczesnym małym cudzie, wyrachowanym przełomie w świecie elektroniki cyfrowej - programowalnych układach logicznych. To cegła, która stoi w najnowocześniejszych modelach ZX-SPECTRUM - GMX i SPRINTER , to ten sam mikroukład, na którym można zrobić prawie wszystko - od Z80X (powiedzmy 30 MHz, zegar cyklu maszynowego 1), po wszystko Pięciokąt wraz z akceleratorem 2D, GS, myszą i kontrolerem IDE. Chyba każdy radioamator, opracowując urządzenie cyfrowe, marzył w swoim sercu – gdzie znaleźć pigułkę na wszystkie choroby – mikroukład, który zastąpi wszystko. Inżynierowie szczególnie potrzebowali takich urządzeń, ponieważ opracowując poważny produkt, musieli zaprojektować niestandardowy układ scalony „do tego zadania”. Od momentu opracowania logiki do pojawienia się działającego produktu mijało zwykle kilka miesięcy i wydano ogromną ilość zasobów. Jednak popyt tworzy podaż – pojawiły się częściowo niestandardowe wielkoskalowe układy scalone (LSI) i programowalne tablice logiczne (PLA). Nauka nie stała w miejscu, technologie stawały się coraz bardziej zaawansowane i pewnego dnia zapowiedziano wypuszczenie pakietu „oprogramowanie” + „sprzęt” + „kamień”. Pomysł był bardzo prosty: programista rysuje w programie diagram (być może przenosi go z papieru) lub opisuje logikę przyszłego produktu za pomocą równań binarnych i prostych operatorów, następnie kompilator tłumaczy diagram na jakiś kod, a kod jest zszyty przez programistę („sprzęt”). „) w programowalny układ logiczny („kamień”), który można natychmiast wlutować w płytkę. Nie ma też żadnych kosztów opracowania i testowania chipów. Twórcy urządzeń cyfrowych przyjęli nowy produkt z hukiem. Obecnie na rynku jest wielu producentów logiki programowalnej LSI (PL). Ich produkty różnią się zarówno pojemnością i architekturą, jak i jakością wsparcia dla oprogramowania i sprzętu, usługą i ostatecznie kosztem. Wyraźnym liderem jest dziś firma Firma Altera . Podbiła rynek nie tylko szeroką gamą produktów, ale także kompetentną dystrybucją swoich produktów. Na przykład korzystanie z oprogramowania (wersji studenckich) do celów edukacyjnych jest bezpłatne. Ogólnie rzecz biorąc, dla Rosji nie jest to ważne (prawo autorskie prawie nikt nigdy nie widział), ale za granicą kwestia ta jest istotna. Ponadto produkty firmy dosłownie wdarły się na rynek krajowy - w rezultacie jesteśmy teraz prawie wszyscy na nim. OD SŁÓW DO DZIAŁAŃ VLSI PL od Altery klasyfikowane według następujących kryteriów: 1) stopień integracji (liczba dostępnych bramek (elementów 2I-NOT) i przerzutników); 2) architektura najprostszego konwertera funkcjonalnego (ogniwa); 3) organizacja struktury wewnętrznej VLSI i struktura macierzy połączeń konwerterów funkcjonalnych (sposób łączenia ogniw); 4) obecność wewnętrznej pamięci RAM; 5) technologia wykonania elementu programowalnego (bezpiecznik, EPROM, EEPROM, FLASH, SRAM) – sposób okablowania obwodu. Współpracuje z większością swoich firm BIS PL Altera oferuje język opisu sprzętu MAX+plus II. System automatyzacji projektowania MAX+plus II obsługuje sześć rodzin VLSI PL.┌─────────┬──────────────────────┐ │ │ Parametry │ │ ├────────── ┬─────┬─────┤ │Rodzina│Logika│UPin │Tech │ │ │ pojemność │ │ │ │ │ │ │ │ ├─── ─ ─────┼────── ────┼─────┼─────┤ │Klasyczny │ 300-900 │22-64│EPROM│ │MAX5000 │ 600-3750 │24-84│EPRO M │ │MAX7000E │ 600-5000 │ do 164│EEP- │ │MAX9000 │ 6e3-12e3 │do 216│ROM │ │FLEX8000A│ 2500-16e3│do 208│SRAM │ │FLEX10K │ 1e4-1e5 │do 406 │SRAM │ └── ───────┴─ ─────────┴─────┴─────┘Pojemność logiczna to liczba dostępnych elementów 2I-NOT, co oznacza, że ​​w FLEX10K zmieści się do 25 000 naszych LA3. UPin - liczba pinów użytkownika. Technika - technologia. Praktyczne wyjaśnienie do tabeli: załóżmy, że bierzemy najsłabszego FLEX8000A (technologia SRAM - czyli po włączeniu zasilania obwód urządzenia należy „wlać” do alternatora), zawieszamy go stopami użytkownika na autobusie Rodimigo Specky (zostanie kilka wolnych), robimy masowo prosty dekoder portu i podłączamy go do wejścia alterina. Co otrzymujemy? Dostajemy super urządzenie!!! Przecież teraz możesz wrzucić w alter praktycznie każdy schemat!!! Może to być wszystko, począwszy od maty zewnętrznej. procesor (powiedzmy, że do jednego portu wstawimy 16-bitową liczbę bajt po bajcie, drugą liczbę do drugiego, kod operacji gdzie indziej, a następnie odczytamy wynik), do wszystkiego, co jest zrozumiałe dla umysłu (jeśli wepchniesz kilka wolnych nóg „tam, gdzie powinno” - można wykonać sprzętowe wypełnienie i sprzętową konstrukcję segmentów, wielokanałowe programowalne przerwania (szczególnie istotne w przypadku dźwięku cyfrowego), nowe polecenia procesora (jak w"sprinter" lub dodatkowe rejestry procesora...). Można tworzyć biblioteki funkcji sprzętowych, żeby nie wymyślać wielkich, jak to wciąż robią uparci „koderzy”, i czytać je zgodnie z zadaniem. „Oprogramowanie” obwodu tego samego FLEX8282A („najbardziej śmiercionośne”, patrz wyżej) waży, jeśli mnie pamięć nie myli, 6kB. Podczas konfiguracji wszystkie nogi użytkownika znajdują się w stanie Z i nie wpływają na działanie systemu. Jeśli chcesz, aby urządzenie „działało wiecznie” i nie konfigurowało go za każdym razem po włączeniu, możesz skorzystać z rodziny MAX. Ponadto niektóre LSI z rodziny MAX mają zabezpieczenie przed „upływem obwodu” - trochę tajemnicy rozwojowej, jednak moim zdaniem użycie tej rodziny jest nieco ograniczone (przynajmniej w warunkach „domowych”) ze względu na potrzebę programatora i ograniczoną liczbę cykli programowania.TERAZ KILKA SŁÓW O ŚRODOWISKU PROJEKTOWYM: OPIS SPRZĘTU JĘZYK MAX + PLUS II.System MAX+ plus II napisany jest na platformy: PC, MAC, NIEDZ. Ani Speccy'ego z jakiegoś powodu na tej liście nie było nawet tej osławionej dziewczyny. System jest bardzo dobry, prosty i ma szerokie możliwości. Głównymi komponentami są edytory graficzne i tekstowe, kompilator, edytor diagramów (znany również jako „debugger”), licznik czasu oraz edytor układu i układu. Schemat urządzenia rysowany jest w edytorze graficznym (jeśli zastosowano zadanie graficzne). Jako elementy schematu możesz zastosować logikę „według mieszczańskiego gościa”, jest tam cała 74. seria, a jeśli nie podobają ci się oznaczenia wroga, możesz narysować wszystko na naszej drodze i sprawić, by działało. Do zapewnienia tekstowego opisu sprzętu używany jest edytor tekstu. Język jest gdzieś pomiędzy dBase, C, Pascal . Istnieje prawie gotowe polecenie opisujące synchroniczną maszynę skończoną, jest też jeśli i przypadek . Dodatek jest opisany dosłownie jako C=A+B . Telefoniczna karta chipowa jest opisana i przetestowana (patrz poniżej) w ciągu godziny bez wysiłku. Kompilator sprawdza schemat (lub tekst) i generuje firmware dla danej „cegiełki”. Szeroko regulowane limity optymalizacji prędkości i głośności pozwalają wycisnąć maksymalną wydajność z urządzenia lub minimalną zajmowaną powierzchnię na chipie. Jest przydatna rzecz zaprojektowana przez lekarza. Pokazuje, gdzie są wyścigi i niebezpieczne miejsca oraz w jakich warunkach się pojawią, nie zapomina poprosić o wciśnięcie resetu w celu inicjalizacji urządzenia po jego włączeniu itp. W edytorze diagramów możesz symulować działanie przyszłego urządzenia: powiedzmy, że ustawiasz sygnały wejściowe i patrzysz na odpowiednie wyjścia; wyścigi również nie zapominają o wyświetleniu. Dlatego przed złożeniem obwodu lepiej uruchomić go na „max” i sprawdzić. To prawda, że ​​​​był też błąd - wykonany z wyzwalacza T R.S. , zsynchronizowany różnicą, chociaż w praktyce zaorał. Przeglądanie diagramów jest bardzo wygodne: możesz przeglądać diagramy, łącząc je w grupy i prezentując łatwy do przeglądania system liczbowy (binarny, dziesiętny, szesnastkowy). Dane wejściowe można również określić kodem Szary . Można także przeglądać wewnętrzne stany maszyny. Timer – to też timer w Afryce – pokazuje opóźnienia i maksymalną możliwą częstotliwość pracy urządzenia. Edytor układu i układu służy do „sprzętowego” usuwania wyścigów (przestawiania komórek logicznych) i umieszczania niestandardowych pinów. Cena dystrybutora Altera Niestety zgubiłem go, więc z pamięci mogę tylko powiedzieć, że FLEX10K10 kosztuje od 20 dolarów, FLEX8282A od 8 dolarów, elementy rodziny MAX kosztują od 3,3 dolarów. Jeśli interesuje Cię, gdzie możesz uzyskać informacje, możesz przewinąć do końca artykułu, ponieważ wkrótce pojawią się dalsze informacje.WIĘCEJ INFORMACJI O RODZINACH Rodzina Classic obejmuje 3 serie VLSI. LSI tej rodziny umożliwiają wymianę urządzenia zawierającego od 10 do 20 mikroukładów o średnim stopniu integracji i zapewniają: * opóźnienie propagacji sygnału z dowolnego wejścia i wyjścia LSI nie większe niż 10 ns; * stabilna praca na częstotliwościach do 100 MHz; * możliwość pracy w trybie niskiego zużycia energii; * możliwość ustawienia trybu tajemnicy programowania (nie można ponownie połączyć obwodu z mikruhi). Uwaga: wygląda na to, że zostały już wycofane. Rodzina MAX5000 obejmuje 5 serii VLSI. LSI tej rodziny umożliwiają wymianę urządzenia zawierającego do kilkudziesięciu mikroukładów o średnim stopniu integracji i zapewniają: * opóźnienie propagacji sygnału z dowolnego wejścia i wyjścia LSI nie większe niż 15 ns; * stabilna praca na częstotliwościach do 76 MHz; * możliwość ustawienia trybu tajności programowania; * możliwość wykorzystania trzech trybów pracy buforów wyjściowych: wejściowy, wyjściowy, dwukierunkowy. Rodzina MAX7000 obejmuje 7 serii VLSI. Układy LSI tej rodziny umożliwiają wymianę urządzenia zawierającego nawet setki mikroukładów o średnim stopniu integracji i zapewniają: * opóźnienie propagacji sygnału od dowolnego wejścia do wyjścia układu LSI nie większe niż 5 ns; * stabilna praca na częstotliwościach do 178 MHz; * możliwość regulacji szybkości przełączania buforów wyjściowych; * możliwość wykorzystania 4 trybów pracy buforów wyjściowych: wejściowy, wyjściowy, dwukierunkowy, otwarty kolektor; * możliwość ustawienia trybu niskiego zużycia energii zarówno dla całego VLSI jako całości, jak i dla obwodów propagacji poszczególnych sygnałów; * możliwość programowania i przeprogramowania po okablowaniu na płytce; * możliwość ustawienia trybu tajności programowania; * praca przy obniżonym (3,3 V) napięciu zasilania. Uwaga: wiele serii jest zgodnych ze standardem magistrali PCI. Rodzina FLEX8000A obejmuje 7 serii VLSI. LSI tej rodziny umożliwiają wymianę urządzenia zajmującego kilkadziesiąt płytek wykonanych na mikroukładach o średnim stopniu integracji i zapewniają możliwość: * stabilnej pracy w częstotliwościach do 294 MHz; * emulacja magistrali wewnętrznej z 3 stanami; * praca przy obniżonym (3,3 V) napięciu zasilania; * praca w układach o mieszanym (3,3 V, 5 V) napięciu zasilania; * realizacja nieograniczonej liczby cykli konfiguracyjnych, w tym „w locie”, tj. bez wyłączania zasilania VLSI; * regulacja szybkości przełączania buforów wyjściowych; * możliwość wykorzystania 3 trybów pracy buforów wyjściowych: wejściowy, wyjściowy, dwukierunkowy. Uwaga: wszystkie VLSI z tej serii są zgodne ze standardem magistrali PCI. Rodzina MAX9000 obejmuje 4 serie chipów. LSI tej rodziny umożliwiają wymianę urządzenia zajmującego kilkadziesiąt płytek wykonanych na mikroukładach o średnim stopniu integracji i zapewniają możliwość: * stabilnej pracy w częstotliwościach do 125 MHz; * niezależne wykorzystanie części logicznej i wyzwalacza makrokomórki; * możliwość ustawienia trybu niskiego zużycia energii zarówno dla całego VLSI jako całości, jak i dla obwodów propagacji poszczególnych sygnałów; * możliwość programowania i przeprogramowania po okablowaniu na płytce; * praca w układach o mieszanym (3,3 V, 5 V) napięciu zasilania; * regulacja szybkości przełączania buforów wyjściowych; * zastosowanie 3 trybów pracy buforów wyjściowych: wejściowy, wyjściowy, dwukierunkowy. Uwaga: wiele serii jest zgodnych ze standardem magistrali PCI. Rodzina FLEX10K obejmuje 7 serii VLSI. LSI tej rodziny umożliwiają zastąpienie urządzenia zajmującego setki płytek wykonanych na mikroukładach o średnim stopniu integracji i zapewniają możliwość: * stabilnej pracy w częstotliwościach do 450 MHz; * implementacja on-chip pamięci statycznej i ROM o pojemności do 24 Kbit; * niezależne wykorzystanie części logicznej i wyzwalacza każdego elementu logicznego; * emulacja magistrali wewnętrznej z 3 stanami; * pomnożenie częstotliwości zegara wewnętrznego; * praca w układach o mieszanym (3,3 V, 5 V) napięciu zasilania; * realizacja nieograniczonej liczby cykli konfiguracyjnych, w tym „w locie”, tj. bez wyłączania zasilania VLSI; * regulacja szybkości przełączania buforów wyjściowych; * możliwość wykorzystania 4 trybów pracy buforów wyjściowych: wejściowy, wyjściowy, dwukierunkowy, otwarty kolektor. Uwaga: wszystkie VLSI z tej serii są zgodne ze standardem magistrali PCI. Otóż ​​to. Dodam tylko, że postęp nie stoi w miejscu i do każdej rodziny dodano kolejne serie. WYSTĄPIENIA WWW.ALTERA.COM - tam można uzyskać bardziej szczegółowe informacje oraz elektroniczne klucze do programu MAX+ Plus II (podając się za studenta lub naukowca).Firma EFO. E-mail: [e-mail chroniony] Tel. (812) 247-5340 194021 Petersburg, ul.Politechniczeskaja, 21(tutaj możesz kupić odpowiednie elementy).LITERATURA 1. Recenzja podstawy elementów ALTERA (Antonow A.P., Melekhin V.F., Fillipov A.S.; St. Petersburg 1997) 2. Ta sama książka (tylko wydaje się większa) jest na kompaktach z MAX + Plus II w wideo.PDF (najwyraźniej 45 MB), chociaż w języku angielskim.

Programowalne układy logiczne ALTERA i system komputerowego wspomagania projektowania MAX+PLUS II

Programowalne układy logiczne logiczne (FPGA), zwane w literaturze zagranicznej PLD (programmable logic devices), to półniestandardowe cyfrowe układy LSI, które dzięki swoim cechom architektonicznym i technologicznym mogą być opracowywane i produkowane bez specjalistycznego wyposażenia technicznego. Układy FPGA pojawiły się na rynku światowym w połowie lat 80-tych. I natychmiast stały się powszechne, przenosząc proces tworzenia specjalistycznego LSI z fabryki do miejsca pracy projektanta. Cykl rozwoju LSI został skrócony do kilku godzin, a koszty z nim związane zostały znacząco obniżone.

Od początku lat 90-tych. Największe zapotrzebowanie jest na układy FPGA posiadające:

wysoka integracja logiczna oparta na technologiach CMOS;

prędkość do 80 -100 MHz i wyższa;

Możliwość programowania (wczytania konfiguracji wewnętrznej) bez programatora.

Wszystkie te wymagania spełniają układy FPGA firmy ALTERA (USA), światowego lidera w dziedzinie układów FPGA. Obecnie ALTERA produkuje siedem rodzin układów FPGA o różnej architekturze [14].

W Rosji najbardziej znanymi układami FPGA są rodzina Classic, produkowana od jakiegoś czasu przez firmę INTEL. Głównymi zaletami tych mikroukładów są prostota, niski koszt, łatwe w instalacji pakiety DIP, zużycie mikroenergii w trybie statycznym oraz możliwość wsparcia środkami domowymi (programiści CAD FORS+, Blitz, Sterkh, Forsys). FPGA EP220 zastępuje dowolny mikroukład serii 1556 (HP4, HP6, HP8, XL8).

Wszystkie układy FPGA są produkowane w technologii CMOS kasowalnej w ultrafiolecie (EPROM), która zapewnia następujące parametry zużycia energii:

w trybie statycznym - 10-30 µA;

przy częstotliwości 1 MHz - 2-8 mA;

wraz ze wzrostem częstotliwości taktowania - 1 mA/MHz.

Aby obniżyć cenę o 30-40% przy masowej produkcji wyrobów, wszystkie układy FPGA produkowane są również w opakowaniach plastikowych (DIP i PLCC) z jednorazowym programowaniem.

Wadami układów FPGA z klasycznej rodziny jest stosunkowo niski stopień integracji i pewne cechy architektoniczne: brak wejścia dla wyzwalaczy ustawionych na „1” (SET), blokowanie styków przy implementacji elementów pamięci wewnętrznej.

Układy FPGA z rodzin MAX7000 i FLASHlogic, które posiadają architekturę macierzową, tj. zawierają programowalne macierze bramek logicznych „AND”, „OR” i przerzutniki.

Rodzina MAX7000 składa się z siedmiu układów o poziomach integracji od 1200 do 10 000 równoważnych bramek logicznych, zawierających od 32 (EPM7032) do 256 (EPM 7256) przerzutników.

Dodatkowo produkowany jest FPGA EPM7032V - funkcjonalny analog mikroukładu EPM7032 o napięciu zasilania 3,3 V.

Rodzina układów FPGA MAX7000 jest produkowana przy użyciu technologii elektrycznie kasowalnego CMOS (EEPROM). Zapewniają:

minimalne opóźnienie propagacji sygnału od wejścia do wyjścia 5 ns;

maksymalna częstotliwość taktowania 190 MHz;

do 100 cykli programowania/kasowania.

Rodzina układów FPGA MAX7000 ma elastyczną architekturę. Ich makrokomórki zawierają dwie niezależne linie sprzężenia zwrotnego; od spustu i od kontaktu. Dzięki temu przerzutnik może być używany jako rejestr wewnętrzny, a pin może być jednocześnie używany jako port wejściowy. Dodatkowymi zasobami FPGA są człony rozwinięcia - łączniki, których odwrotne wyjścia tworzą połączenia zwrotne z macierzą elementów „AND”. Terminy umożliwiają generowanie sygnałów sterujących (na przykład CLK, SET, RESET) bez wydawania makrokomórek. W wyniku redystrybucji terminów pomiędzy makrokomórkami liczba wejść elementów „OR” może zostać zwiększona do 32.

Każda makrokomórka posiada indywidualny bit turbo, którego zaprogramowanie pozwala na zmniejszenie zużycia energii przy niewielkim spadku wydajności. Począwszy od roku 1996, wszystkie układy FPGA z rodziny MAX7000 będą dostępne w wariancie ISP (programowalnym systemowo). Umożliwi to zaprogramowanie i skasowanie obwodu bezpośrednio na płycie roboczej poprzez 4-ty interfejs sygnałowy podłączony do portu komputera. Obecność programisty staje się opcjonalna, co znacznie upraszcza i zmniejsza koszty stosowania układów FPGA.

Rodzina układów FPGA MAX7000 jest tania. Na przykład cena chipa EPM7032 jest mniejsza niż 7, a chipa EPM7128 jest mniejsza niż 25.

Wraz z pojawieniem się rodziny MAX7000, praktyczna wartość produkowanych wcześniej układów FPGA z rodziny MAX5000 znacznie spadła, ponieważ pojawiły się analogi wszystkich mikroukładów (na przykład EPM5128 - EPM7128) o lepszych parametrach użytkowych i zużyciu energii po niższych cenach.

MAX+PLUS II to zautomatyzowany system projektowania programowalnych układów scalonych (FPGA) opracowany przez Altera Corporation, światowego lidera w produkcji FPGA.

MAX+PLUS II to wielofunkcyjne oprogramowanie, które zapewnia projektantowi możliwość całkowitego zaprojektowania układu FPGA, począwszy od wejścia do obwodu, który projektant zamierza zaimplementować na FPGA, a skończywszy na zaprogramowaniu samego FPGA na programatorze.

MAX+PLUS II oferuje następujące opcje użytkownika:

wprowadzenie struktury wewnętrznej układu FPGA poprzez graficzne wprowadzenie schematu funkcjonalnego;

wprowadzanie wewnętrznej struktury układu FPGA przy użyciu języka programowania wysokiego poziomu Altera Hardware Opis Language (AHDL), który jest całkowicie wbudowany w powłokę MAX+PLUS II;

modelowanie działania FPGA w postaci diagramów czasowych;

Jeśli masz programistę, napisz zaprojektowaną strukturę do FPGA itp.

Opisując wewnętrzną strukturę FPGA za pomocą AHDL, możliwych jest kilka opcji.

W pierwszym wariancie opisz konstrukcję w prymitywach, tj. za pomocą prostych funkcji, takich jak wyzwalacz RS, wyzwalacz D, wyzwalacz T, wyzwalacz JK itp.

W drugiej opcji wykonaj opis za pomocą prymitywów i mega-funkcji.

Megafunkcje to złożone funkcje logiczne, takie jak licznik, multiplekser, dekoder, rejestr itp.

Zaletą pierwszej opcji jest to, że tłumacz poświęca mniej czasu na konwersję najprostszych funkcji języka AHDL na kody maszynowe.

Wadami tej opcji jest duża objętość tekstu programu i konieczność szczegółowego opisu całego systemu.

W drugim wariancie, korzystając z megafunkcji, nie ma potrzeby szczegółowego opisywania elementów w tym sensie, że programista ustawia jedynie parametry złożonej funkcji logicznej. Na przykład, używając megafunkcji lpm_counter, licznik można opisać, podając tylko taktowane wejście i szerokość samego licznika. Znacząco zmniejsza to objętość zajmowaną przez tekst programu, a także pozwala nieco skrócić czas potrzebny na napisanie programu.

Wadą jest to, że tłumaczenie programu na kody maszynowe zajmuje więcej czasu w porównaniu do pierwszej opcji.

Ale ostatecznie wynik jest taki sam, więc styl pisania oprogramowania zależy wyłącznie od projektanta.

Podczas debugowania napisanego oprogramowania SIMULATOR MAX+PLUS II umożliwia szczegółowe zbadanie wyniku działania układu FPGA w postaci diagramów czasowych. Projektant może wybrać różne opisane w programie wyjścia i stany pośrednie, a także określić różne działania wejściowe.

WSTĘP

Zwykle, gdy ktoś widzi działającą płytkę, zawsze zadaje te same pytania: - Czy to Arduino? - Jak to działa bez Arduino?

To nie jest mikrokontroler, to nawet nie jest procesor, to jest FPGA. FPGA to programowalny układ logiczny, taki mikroukład składa się z wielu identycznych bloków lub makrokomórek, każdy producent nazywa je inaczej, więc dla Xilinxa są to Slices (skrawki), dla Altery - LogicElements (elementy logiczne). Bloki te są stosunkowo proste, mogą pełnić rolę kilku elementów logicznych, być małą tablicą przeglądową (LUT), zawierać gotowy blok sumatora, mnożnika, cyfrowego przetwarzania sygnału (DSP), ogólnie wszystko, co ma na myśli producent . Użytkownik może dowolnie układać i konfigurować te bloki, realizując w ten sposób dość złożone obwody cyfrowe. Można zaimplementować nawet mikrokontroler na FPGA, np. implementując to samo Arduino lub procesor własnej architektury, np. nie procesor rejestrowy, a procesor stosowy, można nawet zaimplementować własne FPGA na FPGA!

Wśród dostępnych budżetowych układów FPGA można wyróżnić dwóch głównych producentów: Altera i Xilinx, od których produktów można rozpocząć drogę do opanowania tych technologii. Moim zdaniem lepiej wybrać chipy Altera, ponieważ ich środowisko projektowe jest stale aktualizowane, a jeśli wybierzesz jeden popularny chip Xilinx XC3S500E, będziesz musiał zadowolić się przestarzałym środowiskiem ISE 14.7 (choć ma to też swoje zalety) .

W literaturze zagranicznej można spotkać skróty dla FPGA: FPGA i CPLD. CPLD (Complex Programmable Logic Device) - chipy z małą liczbą makrokomórek, wyspecjalizowanymi blokami i niskim poborem mocy. Dużego projektu nie da się zsyntetyzować dla tego typu chipów, ale i one są stosowane w praktyce, np. rzadki mikrokontroler ma powiedzmy 300 nóg. Takie chipy są często używane jako systemy interfejsów, preprocesory i ekspandery we/wy. FPGA (Field-Programmable Gate Array) to programowalna przez użytkownika tablica bramek (FPGA), znacznie wydajniejsza w porównaniu do CPLD, ale zużywająca więcej energii i znacznie droższa. Aby zmniejszyć koszt obszaru matrycy, układy FPGA mogą zawierać gotowe funkcje, takie jak jednostki przetwarzania sygnału cyfrowego (jednostki DSP), wbudowane procesory i wbudowana pamięć. Układy FPGA są szeroko stosowane do testowania i weryfikacji projektów, w tzw. walidacji przed krzemem, redukując w ten sposób koszty i czas przed wypuszczeniem produktu na rynek. Układy FPGA można rekonfigurować niemal w dowolnym momencie; obecnie na przykład w firmie Intel trwają prace nad połączeniem architektury konwencjonalnego procesora i układu FPGA. Takie rozwiązania ma już Xilinx – Zynq, ale na razie nie będziemy o nich rozmawiać.

Porozmawiamy o prostszych rzeczach, zwłaszcza że wpadł mi w ręce zestaw deweloperski: płyta główna Cyclone IV 4 FPGA Core Board i zestaw deweloperski Altera USB Blaster Downloader PLD Development Kit za 35 dolarów, kupiony na AliExpress.

1 Płytka demonstracyjna Cyclone IV 4 Płyta główna FPGA, krótki opis

Ryż. 1 - Płatność demonstracyjna Płyta główna Cyclone IV 4 FPGA

Na płytce (rys. 1) zamontowany jest układ EP4CE6E22C8N, którego charakterystyka:

Typ zasobu Krótki opis Ilość
Elementy logiczne (Les) Liczba bloków logicznych - komórek, główna cecha, dzięki której możemy porównać „moc” chipów; każda syntetyzowana logika wykorzysta te bloki 6,272
Wbudowana pamięć (kb) Wbudowana pamięć nie jest dla nas jeszcze ważną cechą 270
Wbudowane mnożniki 18x18 Wbudowane mnożniki sprzętowe, bardzo ważny parametr w cyfrowym przetwarzaniu sygnału, pełna moc układów FPGA ujawnia się, gdy kilka mnożników działa równolegle 15
PLL ogólnego przeznaczenia Węzły pętli synchronizacji fazowej, które nie są jeszcze ważną cechą, upraszczają synchronizację urządzeń pracujących na różnych częstotliwościach 2
Globalne sieci zegarowe Liczba dziedzin częstotliwości nie jest jeszcze ważną cechą 10
Banki we/wy użytkownika Liczba oddzielnych banków wejść/wyjść użytkownika nie jest jeszcze ważną cechą 8
Maksymalna liczba wejść/wyjść użytkownika Ilość niestandardowych pinów I/O, do których możemy podłączyć dowolne urządzenia, takie jak Arduino 91

Płyta posiada:

  1. Pamięć Flash – po włączeniu zasilania układ FPGA zostanie skonfigurowany do implementacji w pamięci flash. Możesz zsyntetyzować swój projekt i zapisać go w tej pamięci flash
  2. Kwarc 25 MHz jest referencyjnym generatorem częstotliwości zegara, to na tej częstotliwości będą działać wszystkie nasze projekty, nasz FPGA może obsłużyć do 10 takich kanałów.
  3. Diody LED – 10, przyciski – 2.
  4. Styki we/wy 61 + 2 masa, 1 niepodłączony. Można podłączyć różne urządzenia. DAC-ADC, akcelerometry i żyroskopy, wyświetlacze znakowe i graficzne, takie jak Arduino.
  5. Zasilanie przez USB lub zewnętrzne 5V.

W zestawie znajduje się także programator JTAG Altera USB Blaster.

2. Środowisko Quartus II i nasz pierwszy projekt

Aby pracować z tym FPGA musimy pobrać oficjalne środowisko programistyczne - Wydanie internetowe Quartus II, jest wolne. Wchodzimy na oficjalną stronę http://dl.altera.com/15.0/?edition=web, w chwili pisania tego tekstu najnowsza jest wersja 15.0, jeśli jest nowsza, pobierz ją.

Wybierać:


Ryż. 2 - wybierz niezbędne produkty Altera

I kliknij przycisk pobierania (Pobierz wybrane pliki). Następnie zostaniemy poproszeni o rejestrację, rejestrację, pobranie i instalację.

Stwórzmy nasz pierwszy projekt.

Uruchom Quartusa, wybierz menu główne Plik -> Kreator nowego projektu, pojawi się okno wprowadzenia, kliknij dalej. Następnie musisz podać katalog projektu i jego nazwę, trzecie pole to nazwa najwyższego modułu, później zobaczysz, co to jest. Wybieramy folder, w którym chcemy zapisać projekt i wymyślamy nazwę, mam test1.


Ryż. 3 - okno kreatora nowego projektu

Kliknij dalej, zostaniemy zapytani czy jest to pusty projekt czy szablon projektu. Następnie pozostaw puste. Następnie zostajemy poproszeni o dodanie istniejących plików, nie mamy nic, ponieważ dopiero zaczynamy naszą podróż, kliknij dalej.

Następnie musimy wybrać nasz chip, można to zrobić w dowolnym momencie. Wybieramy jak na rysunku Rodzina – Cyclone IV E, konkretne urządzenie wybrane w „Dostępne urządzenia” i wybieramy nasz układ EP4CE6E22C8N, to już na samym początku. Jeśli masz inny, znajdź swój, to jest ważne. Kliknij Następny.


Ryż. 4 -

Pojawi się okno - wybór narzędzi do projektowania, debugowanie, na razie pomiń to, kliknij dalej i zakończ.


Ryż. 5 - Okno „Zadania-Deice”

W oknie wybierz pozycję „Nieużywane piny”. To ustawienie określa, co stanie się z niepołączonymi pinami. Może to być ważne; jest mało prawdopodobne, że w twoim projekcie wykorzystasz wszystkie piny, a niepodłączone mogą w rzeczywistości być podłączone do masy lub zasilania (no cóż, nigdy nie wiadomo, kto podłączył płytkę). Jeśli zastosujesz jedynkę do uziemionego pinu, wypali się, dlatego musisz to uważnie monitorować.

Domyślnie nieużywane piny „Jako wejście trójstanowe ze słabym podciągnięciem” (kołki wejściowe są w trzecim stanie z wysoką impedancją, ze słabym podciągnięciem mocy), możesz opuścić lub wybrać „Jako wejście trójstanowe ”. O rezystorze podciągającym możesz przeczytać na Wikipedii https://ru.wikipedia.org/wiki/Pull-up_resistor. W technologii cyfrowej mogą występować trzy stany, logiczny to napięcie zasilania lub wysoki poziom, logiczne zero to gdy pin jest podłączony do masy lub niski poziom i stan o wysokiej impedancji. Stan wysokiej impedancji- ma to miejsce wtedy, gdy pin ma bardzo dużą rezystancję i praktycznie nie wpływa na przewód, do którego jest podłączony; taki stan jest niezbędny np. przy organizowaniu magistrali, gdy do jednego przewodu podłączonych jest wiele urządzeń, a urządzenia nieaktywne nie zakłócają z operacją.


Ryż. 6 - Okno „Opcje urządzenia i pinów”, Nieużywane piny

Łączymy to wszystko w „Edytorze zadań”


Ryż. 7 – Zadzwoń do „Edytora zadań” z menu lub panelu

W oknie, które się pojawi, zrób to tak jak ja, lub jeśli jest to całkowicie poprawne, to zgodnie ze schematem swojej płytki.


Ryż. 8 - Edytor zadań

W kolumnie „Do” wpisz nazwę wejścia lub wyjścia. W kolumnie „Nazwa zadania” wybierz „Lokalizacja”. W kolumnie „Wartość” znajduje się numer pinów mikroukładu, zgodnie ze schematem płytki (mam numery pinów zapisane bezpośrednio na płytce).

Trzeba też określić co zrobić z przyciskami, które jedną nóżką łączymy z ziemią a drugą z wejściem chipa. Kiedy naciśniesz nogę, poziom będzie niski, ale bez naciśnięcia nie jest jasne, noga chipa po prostu wisi w powietrzu, co jest bardzo złe. Wejście chipa należy podłączyć do zasilania albo poprzez rezystor na płytce, albo w bardziej elegancki sposób w „Edytorze przypisań”. W kolumnie „Nazwa przypisania” wybierz „Słaby rezystor podciągający” dla grupy kluczy* (grupa jest oznaczona gwiazdką).


Ryż. 9 - Edytor zadań

Następnie należy utworzyć opis modułu najwyższego poziomu, który będzie współpracował bezpośrednio z nogami chipów, wszystkie pozostałe moduły będą działać tylko z nim. W menu głównym kliknij Nowy i wybierz "Pliki projektu-> Schemat blokowy/Plik schematu".


Ryż. 10 – Okno dialogowe nowych plików

W oknie, które zostanie otwarte, wybierz „Pin Tool” i umieść wejście i wyjście (piny wejściowe i wyjściowe) na schemacie. Zmieniamy nazwę wejścia na klucz, wyjście na diodę i łączymy je przewodnikiem. Zapisz i kliknij „Rozpocznij kompilację”.


Ryż. 11 - Okno opisu graficznego, podświetlone narzędzie Pin Tool i Rozpocznij kompilację

Po kompilacji dostają ostrzeżenia, na razie je ignorujemy, dotyczą one niepodłączonych pinów, braku sygnału zegara i opisu dla „Analizatora Timingu”.

Łączymy płytkę demonstracyjną z programatorem, wybieramy narzędzie „Programista”. W oknie powinno być napisane „USB-Blaster”, jeśli nie, kliknij „Hardware Setup” i spróbuj dowiedzieć się, dlaczego nie, najprawdopodobniej sterowniki nie są zainstalowane, spójrz na urządzenia z systemem Windows, poszukaj niezidentyfikowanych urządzeń, może wystąpił problem z kablem. Jeśli wszystko jest w porządku, kliknij „Auto Detect” i wybierz nasz chip.


Ryż. 12 - Okno programisty

Kliknij dwukrotnie pole „Plik” i wybierz plik do zapisania na FPGA (znajdujący się w folderze Output_files naszego projektu), zaznacz pole „Program / Konfiguruj” i kliknij przycisk „Start”.


Ryż. 13 - Okno programatora, nasz chip jest już skonfigurowany

Gratulujemy pierwszej konfiguracji FPGA! Dioda D1 powinna się zaświecić, po naciśnięciu klawisza 1 powinna zgasnąć (ponieważ przycisk dociska nogę do masy), wtedy coś z tym zrobimy)

Dla większości radioamatorów i projektantów zajmujących się własnym rozwojem mikroukłady cyfrowe są od dawna znane i opanowane. Wiele osób projektuje swoje projekty na mikrokontrolerach już od dłuższego czasu, ponieważ znacznie zmniejsza to wymiary i poprawia funkcjonalność urządzeń. Problem jest tylko taki, że nie wszystko da się zbudować w oparciu o kontroler. Na mikrokontrolerze nie można budować szybkich urządzeń, które wymagają natychmiastowej reakcji na zmieniające się sygnały wejściowe, ponieważ organizuje on krok po kroku (potokowe) przetwarzanie poleceń, w wyniku czego podejmowana jest decyzja o wydaniu określonego sygnału. Dlatego wraz z mikrokontrolerami konieczne jest zastosowanie konwencjonalnej logiki, czasem z przyzwoitą liczbą pakietów. Konsekwencją tego jest duża liczba połączeń zewnętrznych, złożoność konstrukcji i duże wymiary płytek drukowanych, duże długości przewodów łączących, trudność w konstruowaniu urządzeń o wysokich częstotliwościach taktowania i niska niezawodność. Rozwiązaniem tego problemu jest zastosowanie programowalnych układów scalonych logicznych (FPGA), które stanowią zbiór pewnej liczby podstawowych elementów funkcjonalnych, które nie posiadają ze sobą sztywnych połączeń elektrycznych, co pozwala na ustawienie niemal dowolnej konfiguracji w w celu stworzenia określonego obwodu elektronicznego. W pierwszym etapie FPGA były mikroukładami ze zworkami z bezpiecznikami, takimi jak K556RT4-RT5 itp. Można było na nich stworzyć pewne funkcje, ale nie dało się upchać małego obwodu licznikami i wyzwalaczami.

Etapy projektowania urządzeń w oparciu o prostą logikę są słabo zautomatyzowane i w przypadku wystąpienia błędu konieczna jest modyfikacja płytki w celu wprowadzenia dodatkowych elementów. Przestudiowanie pakietu oprogramowania MAX+plus II BASELINE i układu FPGA firmy Altera nie tylko uprości obwód, ale także pozwoli uniknąć wielu pułapek. Tego oprogramowania można również używać podczas projektowania obwodów w serii 155 i jej analogach. Do programowania (tworzenia połączeń) w PLD (a także

CPLD) Stosowane są technologie EPROM, EEPROM i FLASH. Dla radioamatorów największym zainteresowaniem cieszą się mikroukłady FLASH, ponieważ pozwalają one przeprogramować kryształ około 100 razy i po odłączeniu napięcia zasilania zachować strukturę ustaloną w wyniku programowania.

W artykule zostaną omówione zagadnienia krok po kroku rozbudowy układów opartych na FPGA firmy Altera - EPM3064A jako najtańszej. Jest on umieszczony w 44-pinowej obudowie PLCC. Mikroukład ma mieszane zasilanie i wielonapięciowy interfejs wejścia/wyjścia (I/O). Napięcie zasilania rdzenia logicznego wynosi 3,3 V, elementy wejścia/wyjścia – 5; 3,3; i 2,5 wolta. Maksymalna częstotliwość taktowania 227,3 MHz w zależności od modyfikacji. Ustawiając bity konfiguracyjne, można kontrolować nachylenie krawędzi ( ObrótWskaźnik) sygnały wejściowe/wyjściowe. Istnieje również implementacja wyjść z otwartym drenem poprzez ustawienie bitu ( otwartyOdpływ). Możliwe jest ustawienie trybu oszczędzania energii, który zmniejsza zużycie energii o ponad 50%. Możliwe jest również ustawienie bitu prywatności ( bezpieczeństwofragment), co nie pozwoli na skopiowanie wewnętrznej konfiguracji chipa. Ten mikroukład ma 4 bloki matryc logicznych i 64 makrokomórki. Programowalne wyzwalacze makrokomórek mają indywidualne wejścia zegarowe ( zegar), uprawnienia synchronizacji ( zegarwłączać), Resetowanie ( jasne) i ustawienia wstępne ( ustawione). Każdą makrokomórkę można uznać za programowalną matrycę I i stałą matrycę LUB. Na wyjściu matrycy LUB W zestawie rejestr z konfigurowalnym obwodem sterującym. Obwód sterujący rejestrem zapewnia niezależnie programowalne sygnały zegara, włączania zegara, resetowania i ustawień wstępnych. Według autora w ten mikroukład można upchnąć 10-15 obudów serii 155 (w sprzedaży dostępne są mikroukłady EPM3256 z 16 blokami matrycy logicznej i 158 pinami).

Architektura EPM3064A obejmuje następujące elementy: Bloki logiczne ( LAB). Makrokomórki ( Makrokomórki). Ekspandery logiczne, współdzielone ( Możliwość udostępniania) i równoległe ( Równoległy). Programowalna matryca połączeń ( PIA). Jednostki sterujące we/wy ( I/OkontrolaBloki). Układ posiada cztery wyspecjalizowane wejścia ( dedykowaneszpilka), które mogą być używane jako wejścia ogólnego przeznaczenia lub szybkie wejścia sterowania globalnego (synchronizacja - zegar, zerowanie jasne i dwa wyjściowe sygnały zezwolenia - włączać), dla każdej makrokomórki i pinu I/O. Schemat blokowy pokazano na rys.1.

RYS. 1

Podstawową architekturą EPM 3064A jest bloki logiczne, składający się z 16 makrokomórek. Bloki logiczne łączone są ze sobą za pomocą programowalnej matrycy połączeń ( PIA). Do każdego bloku logicznego dostarczane są następujące sygnały: 36 sygnałów z PIA, używane jako wejścia logiczne. Globalne sygnały sterujące. Bezpośrednie obwody z buforów wejściowych do rejestrów, zapewniając wysoką wydajność. Więcej informacji na temat składu funkcjonalnego i zasady działania mikroukładu można znaleźć w.

RYSUNEK 2

Aby zaprogramować chip, musisz wykonać specjalny kabel do pobierania ByteBlasterMV Ryc.2. Umożliwia szybką i sprawną zmianę konfiguracji FPGA zarówno na etapie testowania projektu jak i w trakcie eksploatacji. Przeprogramowanie można wykonać bezpośrednio w systemie. Podczas programowania piny mikroukładu przechodzą do trzeciego stanu, aby uniknąć konfliktu z systemem. Rezystancja wewnętrznych rezystorów podciągających wynosi 50 kOhm.

Ten kabel do pobierania może być używany do programowania mikroukładów serii MAX 3000A, MAX 7000, MAX 9000 i wielu innych, więcej możesz przeczytać w. Schemat kabla do pobierania pokazano na rys. 3. Złącze X1 podłącza się bezpośrednio do portu równoległego komputera lub poprzez przedłużacz, a jego długość nie powinna przekraczać 1,5 metra. Zasilanie programatora pobierane jest bezpośrednio z obwodu projektowanego urządzenia. Do normalnej pracy programatora należy zainstalować sterownik ByteBlasterMV co zostanie opisane poniżej. Wskazane jest stosowanie oryginalnego chipa D 1, ponieważ może on pracować w zakresie napięcia zasilania od 2,5 do 5 V (w skrajnych przypadkach można go zastąpić 1564AP5). Wszystkie rezystory są typu MLT 0,125. Kondensator C1 jest ceramiczny.

RYSUNEK 3

Płytka drukowana Rys.4. wykonane z jednostronnego materiału folia włókno szklane o grubości 1,5 mm i wymiarach 52x43 mm.

RYSUNEK 4

Aby stworzyć projekt w środowisku systemu MAX+PLUS II firmy ALTERA należy pobrać z Internetu i zainstalować Rys5. plik do swobodnej redystrybucji baseline10_1.exe Link do strony podany jest w . Po zainstalowaniu programu w celu uzyskania pełnej funkcjonalności należy udać się na stronę Altera i pozyskać plik licencyjny. Na tej stronie wybierz łącze Oprogramowanie MAX+PLUS II dla studentów i uniwersytetów. Na następnej stronie wybierz łącze Wersja 10.2, 10.1,lub 9.23 i naciśnij przycisk Kontynuować. Na następnej stronie okna wprowadź numer rejestracyjny dysku twardego. Aby to zrobić w systemie Windows, naciśnij przycisk ZACZNIJ zatem Programy, akcesoria, linia poleceń, i wybierz polecenie reż I Wchodzić.

RYS. 5

W drugiej linii zostanie wydrukowany 8-cyfrowy numer seryjny dysku. To właśnie trzeba wpisać. Następnie naciśnij przycisk Kontynuować i wypełnij formularz na następnej stronie. Po zakończeniu wypełniania formularza kliknij przycisk Kontynuować. Plik licencji zostanie przesłany do Ciebie pocztą. Utwórz folder c:\mp2student\ i umieść tam przesłany do Ciebie plik licencja.data. Aby zainstalować plik licencji, uruchom MAX+plusII 10.1 PODSTAWA następnie kliknij kartę Opcje I LicencjaOrganizować coś w wyświetlonym oknie kliknij przycisk Przeglądać, i określ ścieżkę do pliku licencji. Naciśnij przycisk OK. Po tym wszystkie aplikacje staną się dostępne. Następnie musisz zainstalować plik sterownika programisty. Aby to zrobić, naciśnij przycisk POCZĄTEK Następnie Konfiguracja, panel sterowania, instalacja sprzętuDalej potem przycisk Daha, urządzenie jest już podłączone i przycisk Dalej. W kolejnym oknie wybierz Dodanie nowego urządzenia I Daleja. Zainstaluj przycisk Ręczna instalacja sprzętu wybranego z listy I Daleja. Wybierz z listy Dźwięk, urządzenia wideo i do gier I Daleja. naciśnij przycisk Uzainstaluj z dysku, a następnie przycisk Recenzja. Ustawianie ścieżki C:\maxplus2\Drivers\win2000 jeśli masz zainstalowany system Windows XP, kliknij OK. Wybierz z listy Altera Bajtowy Blaster, przycisk Dalej I Gotowy.

System MAX+PLUS II posiada narzędzia umożliwiające wygodne wprowadzanie projektów, kompilację i debugowanie, a także bezpośrednie programowanie urządzeń. Oprogramowanie systemu MAX+PLUS II zawiera 11 aplikacji oraz główny program sterujący. Różne aplikacje wspierające tworzenie projektów można natychmiast aktywować, umożliwiając użytkownikowi przełączanie się między nimi za pomocą kliknięcia myszką lub poleceń menu. Jednocześnie w jednej z aplikacji działających w tle może działać np. kompilator, symulator, analizator synchronizacji i programista.

Tabela opisuje zastosowania.

Tabela

Aplikacja Funkcja wykonana
HierarchiaWyświetlacz Przegląd hierarchii— wyświetla aktualną hierarchiczną strukturę plików w formie drzewa z gałęziami reprezentującymi podprojekty.
GraficznyRedaktor Edytor graficzny— umożliwia opracowanie projektu logiki obwodu w formie rzeczywistego wyświetlenia na ekranie.
SymbolRedaktor Edytor postaci— umożliwia edycję istniejących symboli i tworzenie nowych.
TekstRedaktor Edytor tekstu— umożliwia tworzenie i edycję plików tekstowych projektu logicznego zapisanych w AHDL, VHDL, Verilog HDL.
PrzebiegRedaktor Edytor sygnałów— pełni podwójną funkcję: narzędzia do opracowywania projektu oraz narzędzia do wprowadzania wektorów testowych i obserwacji wyników testów.
Plan piętraRedaktor Poziom po poziomieplanista— pozwala na dokonanie przypisań do styków urządzeń i zasobów elementów logicznych za pomocą środków graficznych.
Kompilator Kompilator— przetwarza projekty graficzne.
Symulator Symulator— umożliwia testowanie operacji logicznych i wewnętrznej synchronizacji projektowanego układu logicznego.
wyczucie czasuAnalizator Analizator czasu— analizuje działanie zaprojektowanego układu logicznego po jego syntezie i optymalizacji przez kompilator.
Programista Programista— pozwala programować, konfigurować, weryfikować i testować układy FPGA ALTERA.
WiadomośćEdytor Generator wiadomości— wyświetla na ekranie komunikaty o błędach, ostrzeżenia i informacje.

Stwórzmy katalog roboczy, w którym umieścimy nasz projekt C:\ALTERA_WORK\schetchic. Obwód można opisać w AHDL, VHDL, Verilog HDL (dla tych, którzy wolą programować) lub graficznie (bardziej odpowiedni dla radioamatorów). Plik projektu to plik graficzny, tekstowy lub sygnałowy utworzony za pomocą edytorów graficznych lub sygnałowych systemu MAX+PLUS II. Ten plik zawiera logikę projektu MAX+PLUS II i jest kompilowany przez kompilator. Kompilator może automatycznie przetwarzać następujące pliki projektu: graficzne pliki projektu ( .gdf); projektuj pliki tekstowe w języku AHDL ( .tdf); pliki sygnałów projektu ( .wdf); pliki projektu w języku VHDL ( .vhd); pliki projektu w języku Verilog ( .w); Pliki schematów OrCAD ( .sz); Pliki wejściowe EDIF ( edf); formatować pliki XilinxLista sieci (.xnf); pliki projektu Altera (.adf); cyfrowe pliki maszynowe ( .smf). Pliki pomocnicze to pliki, które są powiązane z projektem MAX+PLUS II, ale nie są częścią jego drzewa hierarchicznego. Większość tych plików nie zawiera logiki projektu. Niektóre z nich tworzone są automatycznie przez aplikację systemu MAX+PLUS II, inne przez użytkownika. Przykładami plików pomocniczych są pliki przypisań i konfiguracji ( .acf), pliki symboli ( .sym), pliki raportów ( .rpt) i testowe pliki wektorowe ( .vec).

Zatem w menu głównym kliknij Plik Następnie Nowy i wybierz element Graficzny Redaktor plik I OK ryc. 6. Otworzy się okno edytora graficznego. Następnie zapiszmy nasz projekt pod nazwą szkicowy. gdf do naszego katalogu C:\ALTERA_WORK\ aby to zrobić, kliknij Plik Następnie Ratować Jak I OK. Powiążmy nazwę pliku z plikiem projektu, w tym celu w menu głównym kliknij Plik Następnie Projekt i dalej Ustawić Projekt Do Aktualny Plik lub zamiast tego możesz nacisnąć klawisze jednocześnie klawisz kontrolny+ Zmiana+ J. Ustalmy typ mikroukładu, który zostanie zastosowany w projekcie. W tym celu należy w menu głównym nacisnąć przycisk Przydzielać Następnie Urządzenie.

W wyświetlonym oknie w wierszu Urządzenie Rodzina wybierz serię MAKS3000 A. I w oknie Urządzenia EPM3064ALC44-4 i OK. Jeśli nie wiesz, ile miejsca zajmie Twój projekt, to Urządzenia lepiej zainstaluj AUTOMATYCZNY, sam kompilator wybierze typ mikroukładu.

RYS. 6

Biblioteka robocza zawiera elementy różnych typów:

1). Elementy logiczne (znajdujące się w folderze c:\maxplus2\max2lib\prim\), takie jak I, Lub, ani itp. z różną liczbą wejść.

2). Analogi logiki dyskretnej serii 74. są analogami serii 155. (znajdujące się w folderze c:\maxplus2\max2lib\mf\).

3). Sparametryzowane funkcje logiczne umożliwiające tworzenie projektów urządzeń cyfrowych o dowolnej złożoności (znajdujące się w folderze c:\maxplus2\max2lib\mega_lpm\).

Stwórzmy katalog, w którym umieścimy własną bibliotekę komponentów C:\ALTERA_WORK\Altera_Lib i podłącz go do projektu. W tym celu należy w menu głównym nacisnąć przycisk Opcje Następnie UżytkownikBiblioteki i za oknem InformatorNazwa wejdźmy na ścieżkę c:\altera_work\altera_lib Następnie OK. Symbol na ekranie można umieścić na dwa sposoby, w tym celu należy kliknąć prawym przyciskiem myszy miejsce, w którym chcemy umieścić element i w wyświetlonym oknie wybrać menu Wejdź do Symbol w oknie SymbolNazwa w wyświetlonym oknie wpisz nazwę elementu i kliknij OK. Lub wybierz żądaną bibliotekę w oknie SymbolBiblioteki Okno dialogowe WchodzićSymbol i kliknij dwukrotnie lewym przyciskiem myszy, aby go otworzyć. Następnie w ten sam sposób wybierz żądany element w oknie SymbolPlik. Jeśli projekt jest mały i zadowalają Cię wszystkie elementy z biblioteki, to w ten sposób instalujemy wszystkie niezbędne elementy i łączymy ich piny za pomocą przewodów. W tym celu w edytorze graficznym po lewej stronie znajdują się ikony, po kliknięciu na nie można uzyskać połączenie w linii prostej, linie ułożone pod kątem prostym, sektory i okręgi.Jeśli linia jest podświetlona na czerwono, można to zrobić umieść na nim adres połączenia, a nie nawiązuj samego połączenia. Obwody wejściowe i wyjściowe rysuje się poprzez wybranie ich z biblioteki elementów wejście I wyjście( w razie potrzeby nadajemy im nazwę). Aby wykreślić logiczną jedynkę i zero, wpisz vcc Lub masa. A jeśli potrzebujesz własnego symbolu, to musisz otworzyć nowe okno edytora graficznego i narysować schemat komponentu Ryc. 7, nadać mu nazwę i zapisać w bibliotece c:\altera_work\altera_lib. Link do pliku projektu i skompiluj klikając Ctrl+L. Jeśli nie ma błędów, możesz sprawdzić działanie obwodu za pomocą symulatora.

RYS. 7

Aby to zrobić, otwieramy Przebieg Redaktor, zapisz plik pod tą samą nazwą. W pierwszej linijce pod Nazwa: kliknij prawym przyciskiem myszy i wybierz menu WchodzićwęzłyzSNF w wyświetlonym oknie kliknij przycisk Lista w oknie DostępnyWęzły iGrupy pojawią się wszystkie wejścia i wyjścia naszego obwodu. Wybieramy niezbędne (w tym przypadku W I NA ZEWNĄTRZ) I naciśnij przycisk => wybrane znaki zostaną skopiowane w prawym oknie. Kliknij OK. W edytorze można zobaczyć oscylogram Rys.8. Pod imieniem Wartość Móc ustawić stan początkowy sygnału wejściowego, w tym celu należy kliknąć lewym przyciskiem myszy w linii po lewej stronie w edytorze wyświetlane są ikony logicznej 1 i 0, klikając ikonę przypisujemy stan wejścia. Można wprowadzić sygnał zmienny w czasie lub Z państwo. Czas zakończenia oscylogramu można wprowadzić wchodząc do menu Plik Następnie KoniecCzas. Znaczniki czasu ustawia się za pomocą menu Opcje Następnie Grig Rozmiar.

Aby zobaczyć stan oscylogramu w czasie, uruchom Symulator naciśnięcie przycisków Ctrl+Shift+L. Oscylogram można zobaczyć na ryc. 9. Jeśli wynikowy model komponentu będzie dla nas satysfakcjonujący, narysujemy obraz symbolu. W tym celu otwórz edytor symboli, w menu głównym kliknij Plik Następnie Nowy i wybierz element SymbolRedaktor plik I OK ryc. 6. Klikając lewym przyciskiem myszy rysujemy kontur symbolu wybierając najpierw narzędzie rysujące po lewej stronie ikony.

Kliknij dwukrotnie lewym przyciskiem myszy otwórz menu WchodzićPinstub po lewej stronie okna, które wskazujemy typ wyjścia wejście lub wyjście I/ OTyp. W oknie PełnyPinstub Nazwa Określ nazwę wyjściową (w naszym przypadku W wejście NA ZEWNĄTRZ Wyjście). Rozmiary wszystkich linii i etykiet można zmieniać i przesuwać, klikając lewym przyciskiem myszy przesuwany element. Plik musi być zapisany pod tą samą nazwą co plik edytora graficznego w folderze naszej biblioteki.

Po zamknięciu wszystkich okien pomocniczych możemy wprowadzić symbol do pliku naszego projektu.

Rozważmy praktyczny obwód trzycyfrowego licznika ze wskazaniem dynamicznym Ryc.10. Zasilacz jest montowany na chipie D 2 typu LM 317 i zapewnia napięcie niezbędne dla D 1.

RYS. 10

Prąd wyjściowy wyładowań wskaźnika może wynosić około 80 mA przy włączonych wszystkich wskaźnikach, dlatego wyładowania wskaźnika są przełączane przez tranzystory VT 1-VT 3. Do modelu eksperymentalnego wybrano wewnętrzny obwód generatora, którego obwody zewnętrzne są rezystory R 16, R 18, C 2, ale w schemacie działania lepiej jest, aby generator był zewnętrzny. Według autora układy FPGA nie radzą sobie zbyt dobrze z obciążeniami pojemnościowymi. Do podłączenia do programatora wymagane jest złącze X1.

Rozważmy wewnętrzną strukturę projektu Ryc.11. Wszystkie komponenty zostały utworzone na nowo przy użyciu powyższej metody i zapisane we własnej bibliotece komponentów.

RYS. 11

Komponenty na schemacie 0_3r_komutator– jest to przełącznik trzycyfrowy, który przełącza po kolei cyfry wskaźnika i jednocześnie wydaje poziomy sterujące do multiplekserów 0_3 I_ Lub. Multipleksery łączą liczniki dziesiętne w zależności od wyświetlanej cyfry 0_2 B_10 D_ lada Do dwójkowysiedmiosegmentowy dekoder 0_ bcd _7 seg . Nazwy składników zawierają przyimek 0 _ co oznaczamy element naszej własnej biblioteki. Na schemacie w projekcie MAX+PLUS II dwukrotne kliknięcie lewym przyciskiem myszy na komponencie otworzy edytor graficzny i zobaczymy schemat elementu. Rysunek 12 przedstawia przełącznik, którego obwód składa się ze standardowych prymitywów bibliotecznych. Nazwa NIE oznacza falownik, DFFD spust, I2 - element I z dwoma wejściami. Rysunek 13 przedstawia schemat wewnętrzny dwójkowy licznik dziesiętny. Rysunek 14 przedstawia multiplekser. I ryż 15 dwójkowysiedmiosegmentowy dekoder. Poniżej znajduje się lista niektórych megafunkcji biblioteki standardowej.

RYS. 12

RYS. 13

RYSUNEK 14

Bramki logiczne (Bramy):

lpm_and – element AND

lpm_inv – element NOT (falownik)

lpm_bustri – autobus trójstanowy

lpm_mux - multiplekser

lpm_clshift - przesunięcie logiczne

lpm_or – element LUB

lpm_constant - stała

lpm_xor – Ekskluzywny element OR

lpm_decode - dekoder

mux – multiplekser

busmux – multiplekser

RYSUNEK 15

Składniki arytmetyczne:

dziel* — dzielnik

lpm_compare - komparator

lpm_abs – wartość bezwzględna

lpm_counter - licznik

lpm_add_sub – sumator/odejmowanie

lpm_divide — dzielnik

lpm_mult — mnożnik

Elementy pamięci:

altdpram* - dwuportowa pamięć RAM

lpm_latch – rejestr zatrzaskowy

lpm_shiftreg – rejestr przesuwny

dcfifo* — FIFO z podwójnym zegarem

lpm_ram_dp - dwuportowa pamięć RAM

scfifo* — FIFO z jednym zegarem

lpm_ram_dq – RAM z oddzielnymi portami wejściowymi i wyjściowymi

csdpram — podwójny port współdzielony cyklicznie

lpm_ram_io - RAM ze wspólnym portem wejściowym i wyjściowym

lpm_ff — Wyzwalacz

lpm_rom – ROM

lpm_fifo — FIFO z jednym zegarem

lpm_dff* — D – rejestr przerzutników i przesuwników

lpm_fifo_dc — FIFO z podwójnym zegarem

lpm_tff* – wyzwalacz T

Inne funkcje:

blokada zegara – PLL (pętla z synchronizacją fazową)

pll – detektor krawędzi impulsu

ntsc – generator sygnału wideo NTSC

Po utworzeniu wszystkich komponentów, narysowaniu ogólnego schematu projektu i wykonaniu wszystkich połączeń należy zapisać projekt i skompilować. Jeśli nie ma błędów, musisz iść do Przebieg Redaktor i jak to rozpatrywano Powyżej upewnij się, że projekt działa poprawnie Rys.16.

RYSUNEK 16

Obwód kierowany przez kompilator automatycznie przypisuje piny wejściowe i wyjściowe; można to zobaczyć w Edytor planów pięter naciskając przycisk. W tym samym edytorze możesz dowolnie zmieniać przeznaczenie nóg. W tym celu należy kliknąć przycisk i przeciągnąć myszką nazwy pinów wyświetlone w oknie NieprzypisanyWęzły i sworznie, do odpowiednich numerów pinów FPGA, a następnie ponownie skompiluj projekt. Następnie wszelkie zmiany wprowadzone w wewnętrznej strukturze projektu, tj. niezwiązane z dodawaniem lub usuwaniem pinów nie spowoduje zmiany przypisania pinów.

Następnie podłączamy obwód Fig10 poprzez złącze X1 do programatora, a programator do komputera (wszystkie te procedury wykonujemy przy wyłączonym komputerze) i zasilamy obwód. Otwieranie okna Programista i naciśnij przycisk Program. Po załadowaniu programu obwód przejdzie do trybu pracy. Ta metoda pozwala na zmianę obwodu wewnętrznego urządzenia w zależności od zmieniających się zadań bez zmiany płytki drukowanej.

Pomimo pozornej złożoności nauki środowiska oprogramowania MAX+PLUS II, będziesz w stanie wykonywać projekty znacznie szybciej, ponieważ projektowanie i debugowanie na komputerze dostarcza więcej informacji niż wykonanie obwodu na płytce stykowej i dalsze badania przy użyciu oscyloskopu. Jak wspomniano wcześniej, uzyskane wyniki można z powodzeniem zastosować w produkcji konstrukcji opartych na serii 155-555.

Czekałeś na znak? Tutaj jest!

Przez wiele lat wahałem się przed rozpoczęciem programowania układów FPGA, ponieważ było to trudne, kosztowne i bolesne (tak mi się wydawało). Ale dobrze jest mieć przyjaciół, którzy pomogą Ci zrobić pierwszy krok. I teraz nie rozumiem jednego – DLACZEGO TAK DŁUGO CZEKAŁAM?

Teraz pomogę i Tobie zrobić pierwszy krok!

Po co mi to?

Czy jesteś zmęczony ciągłym czytaniem dokumentów na swoim MK lub trzymaniem w głowie mnóstwa informacji? Przepisałeś wszystko w asm, ale prędkość nadal nie jest wystarczająca. Podłączyłeś do MK dwa urządzenia zewnętrzne, podłączasz trzecie, ale skończyły Ci się przerwania, moduły, które już działały, przestają działać. Bierzesz innego MK, mocniejszego z tej samej linii, ale znowu instrukcje, rejestry flagowe, bity… piekło. Zmieniasz platformę: przechodzisz na innego MK i wyrzucasz swoją wiedzę o poprzedniej platformie. Nieważne, co robisz, jest to trudne. Znajdujesz popularną platformę, na której możesz łatwo złożyć projekt z komponentów, ale nadal nie możesz przeskoczyć ograniczeń sprzętowych tego MK... Gdzieś na skraju świadomości czasami pojawia się myśl, że na FPGA to na pewno działałoby szybko i równolegle, co to jest „dokładnie problem, który należy rozwiązać, proszę”, ale jestem za stary/głupi/zajęty/etc, aby móc/zacząć to robić.

Chcesz w końcu swobodnie oddychać? Zacząć robić!

Radość tworzenia na układach FPGA

Miałem ciężki dzień w pracy. Z jednej pracy przyszedłem do drugiej, potem do daczy, wieczorem odrobiłem zadanie domowe, potem rodzinny film i dopiero o 23:00 byłem całkowicie wolny! Powiedzieć, że byłem zmęczony, to jakby nic nie powiedzieć. Ale w tym stanie usiadłem do laptopa z konkretnym celem: zrobić generator fali prostokątnej 440 Hz. Minęło 20 minut i już słyszałem to w słuchawkach. Nie mogłam uwierzyć własnym uszom! Wykonanie PWM i zmiana głośności zajęło mi kolejne 15 minut. Do tego czasu miałem płytkę FPGA zaledwie przez około tydzień, a wcześniej przeczytałem tylko kilka książek na temat Verilog.

Tego wieczoru zdałem sobie sprawę: TUTAJ JEST! To jest platforma, na której mogę szybko i łatwo zamienić swoje myśli w faktycznie działający sprzęt!

Dlaczego?

Opiszę zalety studiowania i używania układów FPGA, chociaż wszyscy już je znają:
  • Uniwersalność wiedzy- przy zmianie modelu MK należy zapoznać się z dokumentacją. Zmieniając producenta MK, należy zapoznać się z dokumentacją. Musisz stale czytać dokumenty, stale przechowywać wiele informacji w swojej głowie. Jeśli programujesz na FPGA, jeśli znasz Verilog lub VHDL, możesz nie tylko zaprogramować dowolny FPGA z linii jednego producenta, ale także, jeśli chcesz, przełączyć się na inny (Altera, Xilinx). Choć będą momenty, w których trzeba będzie opanować odmienne środowisko programistyczne i subtelne kwestie sprzętowe, to sama istota podejścia do projektowania urządzeń w HDL nie zmieni się od tego.
  • Od pomysłu do sprzętu- opracowując projekt, jeśli brakuje Ci jednego mikrokontrolera, musisz wybrać inny. W zasadzie można przyjąć założenia, czy ten MK poradzi sobie z projektem, czy nie. Lub istnieje konkretny MK i próbujesz dopasować do niego projekt. Najczęściej tak jest. Przypomina mi to trochę podejście mojego dziadka, który robi drabinę z tego, co ma w szopie. Chociaż możesz zaprojektować klatkę schodową, kup deski, które będą pasować... Od pomysłu do okuć i nie odwrotnie.
  • Łatwość korzystania z rozwiązań innych osób- możesz wziąć moduł innej osoby i zastosować go w swoim projekcie. Z kodu można zrozumieć, jak to działa. Nawet jeśli jest to dla Xilinx i robisz to pod alterą. Czasami nie działa to dobrze, ale jest łatwiejsze niż na przykład dodanie bibliotek binarnych do projektu C++/Qt
  • Zablokuj niezależność. Bloki w HDL są jak czyste funkcje w języku. Zależy tylko od sygnałów wejściowych. Opracowany i debugowany moduł będzie nadal działał poprawnie, niezależnie od tego, jak projekt się rozwinie. Nic z zewnątrz nie będzie miało wpływu na jego prawidłową pracę od wewnątrz. I w ogóle można zapomnieć jak to działa - to czarna skrzynka. Poza tym klocki działają równoległy.

Problem wyboru

Pojawia się wiele pytań co wybrać: Altera/Xilinx, Verilog/VHDL, jaką płytkę debugującą wybrać. Ale najpierw najważniejsze.

Producent

wybieram Altera. Dlaczego? Cóż, tak zdecydowaliśmy z kolegą, choć nazwa Xilinx jest dla mnie piękniejsza. ALE. Jeśli nie możesz wybrać teraz, zrobię to za Ciebie. Potrzebujesz Altery! Dlaczego? Nie wiem. Ważniejszą rzeczą jest teraz zrobienie kroku: dokonanie wyboru. Wybrałem Alterę i jak dotąd nie żałuję.



Język

Weźmy to Verilog - ponieważ… Cóż, rozumiesz.

Płyta rozwojowa

Najwięcej czasu zajął wybór płytki rozwojowej. Widać, że płyty różnią się zainstalowanym układem FPGA. A układy FPGA różnią się między sobą liczbą elementów. Nie jest jednak jasne, ile z nich będzie potrzebnych w projektach testowych. Dlatego większość czasu spędziłem na poszukiwaniu wszelkiego rodzaju projektów FPGA, aby dowiedzieć się, jak bardzo zużywają one zasoby FPGA.

W rodzinie Altera za rozsądne pieniądze możemy kupić płytki z CPLD MAX II z 240, 570 i 1270 elementami, lub starsze układy FPGA takie jak Cyclone 1, 2, 3, 4 z nawet 10 000 i większą liczbą ogniw. Jak wybrać?

Nawet w oparciu o 240 ogniw projekt łazika marsjańskiego wykonuje po prostu ogromną liczbę projektów. Gorąco polecam przeczytanie go, aby uzyskać ogólne pojęcie o złożoności projektów, które mieszczą się w 240 komórkach. Z drugiej strony istnieją projekty, które są całkowicie zaprogramowane dla kopii sprzętowej konkretnego komputera, łącznie z procesorem i całą logiką wokół niego (NES, Speccy, Orion, YuT-88 itp.). To już wymaga pięciu, dziesięciu lub więcej tysięcy komórek. Ponadto płyty te zawierają dodatkowe urządzenia zewnętrzne.

Dlatego radziłbym wziąć od 240 do 10 000 ogniw, preferując większe, w zależności od dostępnych środków. Na płycie debugowania dodatkowe komórki nie są wielkim problemem, ale jeśli nie jest ich wystarczająco dużo, nic nie możesz z tym zrobić. Następnie, gdy urządzenie zostanie debugowane, stanie się jasne, ile ogniw potrzeba, kup wymaganą ilość, bez niepotrzebnego „zestawu body”, taniej i zostaw w gotowym urządzeniu.

To, co naprawdę odróżnia MAX od Cyclones, poza liczbą ogniw, to:
1) Seria MAX nie posiada wewnątrz PLL. Każda płytka rozwojowa ma oscylator, zwykle 50 MHz. To wystarczy w przypadku większości projektów. Cała synchronizacja nastąpi poprzez podzielenie 50 MHz przez jakąś wartość. Można też wziąć zewnętrzny generator i zasilić go oddzielnym wejściem FPGA. A co jeśli potrzebujesz częstotliwości wyższej niż 50 MHz? Nie udało mi się od razu znaleźć oscylatorów powyżej 50 MHz. Ale w tym przypadku na ratunek przychodzi PLL wbudowany w cyklony. Można na nim pomnożyć częstotliwość, na przykład do 100 MHz.
2) Seria Cyclone ma wbudowane sprzętowe jednostki mnożące. Ich liczba zależy od konkretnego modelu - tutaj nadal możesz „zajrzeć do instrukcji”, aby dowiedzieć się, ile. Jeśli planujesz zrobić jakiś DSP, przydadzą się: zaoszczędzą komórki i zwiększą prędkość. Z drugiej strony, jeśli nie ma mnożników, można je zsyntetyzować, ale mała FPGA może nie mieć na to wystarczających zasobów.

We wszystkich innych aspektach mam kryterium „pasuje/nie pasuje”. Debugowanie na płycie, która jest oczywiście większa niż potrzeba, a następnie wypełnienie jej wymaganym do tego minimum.

Ile pieniędzy potrzeba?


Programista
Uważam, że nie mam czasu na lutowanie programistów masowo.

300 rubli. Kupiłem swój na eBayu, wygląda tak:

Płyta rozwojowa
Wybór jest szeroki, w zależności od ilości pieniędzy.

Pierwszy poziom 350 - 550 rubli. Są to płytki oparte na MAX II (lub ogniwach). Może być odpowiedni do wstępnego zapoznania się i dalszej integracji z urządzeniami końcowymi. Na płytce znajduje się generator, kilka przycisków, kilka diod LED i pozostałe 80 pinów według własnego uznania.

jednostka mocy
To obowiązkowy element wyposażenia, choć nie zawsze jest on zawarty w zestawie. Będziesz potrzebował zasilacza 5 V i prądu 2 A.

Średni poziom od 900 do 1500 rubli. Są to płyty Cyclone 1, 2, 3, 4, różniące się głównie liczbą ogniw.
Są one oznaczone mniej więcej tak:
EP 2 C 5 T144 – Cyklon 2, około 5 tys. ogniw
EP 4 CE 6 E22C8N – Cyklon 4, około 6 tys. komórek
EP 2 C 8 Q208C8N – Cyklon 2, około 8 tys. ogniw

Możesz zauważyć, że Cyklon 3 może mieć więcej komórek niż Cyklon 4.

Oto kilka opcji:

835 rubli.
ALTERA FPGA CycloneII EP2C5T144 Minimalna płyta systemowa do nauki dobrze

880 rubli
Altera CycloneII EP2C5T144 Mini rozwój FPGA Dowiedz się płyta główna E081

1265 rubli
EP2C8 EP2C8Q208C8N ALTERA Cyclone II Płyta główna do oceny FPGA

Zaawansowane tablice . Są to płytki, na których instalowane są dodatkowe moduły (UTP, USB, AUDIO), złącza (SD, VGA), przyciski, przełączniki, diody LED, wskaźniki siedmiosegmentowe itp. Lub może być płyta podstawowa, a karty rozszerzeń można do niej przymocować osobno.

Mam działający zestaw - płytka + karta rozszerzeń:
Altrea EP4CE10E22 Płyta główna FPGA + płyta urządzenia USB/dźwięk/Ethernet/karta SD/VGA
2760 rubli

Oto płyta główna. Posiada 2 diody LED, 2 przyciski, 4 przełączniki, wskaźnik siedmiosegmentowy i chip RAM.

Płyta rozszerzeń. Zawiera kontrolery SD, VGA, a także USB (High Speed ​​USB2.0 Chip: CY7C68013A), AUDIO (karta dźwiękowa do 96 kHz/32 bit ADC/DAC: WM8731S), UTP (interfejs Ethernet 100M: DM9000A):

Te deski po prostu wsuwa się w siebie, a mimo to mam je w szufladzie. Do moich prac mam płytkę stykową, którą podłączam za pomocą kabla dołączonego do zestawu. W zestawie znajduje się także zasilacz 5V.

Kontynuując temat:
Jabłko

Kanał Dniepr-Bug (dawniej Kanał Królewski) to kanał żeglugowy na Polesiu, zbudowany w latach 1775-1783. Łączy rzeki Pina (dopływ Prypeci;...