Dzwon.

Są ci, którzy przeczytali tę wiadomość przed tobą.
Subskrybuj odbieranie artykułów świeżych.
E-mail
Nazwa
Nazwisko
Jak chcesz przeczytać dzwonek
Bez spamu

Wyobraź sobie, że procesor zamiast wykonywania określonego zestawu instrukcji, zostanie odbudowany w każdym programie i obrócić algorytm bezpośrednio do "żelaza". W ten sposób działa FPG. W dzisiejszym artykule, powiem ci, ile jest możliwe, i przedstawię Ci różne metody projektowania FPGA.

Najpierw musisz trochę zrozumieć w cyfrowej logiki układu ASIC, ale bardzo trudno jest zacząć od nich i drogie, a zamiast tego lepiej rozpocząć od FPGA.

Co to jest FPGA?

FPGA. Rozszyfrowane jako programowalna tablica bramy (matryce programowalne, PPVM). W bardziej ogólnym przypadku są one nazywane FPGA - programowalne logiczne obwody zintegrowane.

Za pomocą FPGA można w dosłownym znaczeniu słowa, projektować cyfrowe żetony, siedząc w domu z przystępną deską debugowania na stole i deweloper dla kilku tysięcy zielonych rubli. Ale są bezpłatne opcje. Uwaga: Jest to projektowanie, a nie do programowania, ponieważ na wyjściu otrzymamy fizyczny obwód cyfrowy, który wykonuje określony algorytm na poziomie sprzętowym, a nie Prog dla projektu.

Działa w następujący sposób. Istnieje gotowa drukowana płytka drukowana z zestawem interfejsów, które są podłączone do mikroukładu FPGA zainstalowanego na płycie, coś w rodzaju fajnej opłaty za centrum danych lub zarząd do uczenia się.

Podczas gdy nie skonfigurujemy FPGA, nie ma po prostu logiki wewnątrz chipa do przetwarzania danych z interfejsów, a zatem nie będzie działać. Ale w wyniku projektowania oprogramowanie oprogramowanie zostanie utworzone, które po załadowaniu w FPGA będzie utworzyć obwód cyfrowy potrzebny. W ten sposób możesz utworzyć kontroler Ethernet 100G, który odbiera i przetwarzać pakiety sieciowe.

Ważną cechą FPGA jest możliwość rekonfiguracji. Powiedzmy, że teraz potrzebujemy sterownika Ethernet 100g, a tydzień później, ta sama płyta może być wykorzystana do wdrożenia niezależnych interfejsów Ethernet czterech 25g.

Rynek zatrudnia dwóch liderów w producencie żetonów FPGA: wszystkie słynne Intel i Xilinx. Sterowali 58 i 42% rynku. Pierwszy założyciele FPGA z Xilinx wymyślonych w 1985 roku. Intel przyszedł na rynku dość ostatnio - w 2015 r., Absorbowanie Altera, który został założony w tym samym czasie co Xilinx. Technologie Altera i Xilinx są w dużej mierze podobne jako środowisko rozwoju. Częściej pracowałem z produktami Xilinx, więc nie bądź zaskoczony stałą wzmianką o artykule.

FPGA jest szeroko rozpowszechniona w różnych obszarach: elektronika konsumencka, sprzęt telekomunikacyjny, akceleratory wspomagające do użytku w centrach danych, robotyki, prototypowania mikrocrysy ASIC. Kilka przykładów będę dowiedzieć się tuż poniżej.

Rozważmy również technologię, która zapewnia rekonfiguracja sprzętu, zapoznamy się z procesem projektowym, a przeanalizujemy prosty przykład wdrażania licznika sprzętu w języku Verilog. Jeśli masz jakąkolwiek płytę debugową FPGA, możesz go powtórzyć. Jeśli nie ma opłat, nadal możesz zapoznać się z Verilog, symulując pracę schematu na komputerze.

Zasada działania FPGA

Chip FPGA jest tym samym niestandardowym układzie ASIC, składającym się z tych samych tranzystorów, z których wyzwalacze, rejestry, multipleksery i inne elementy logiczne są gromadzone dla konwencjonalnych programów. Aby zmienić kolejność połączenia tych tranzystorów, oczywiście jest to niemożliwe. Ale mikroukładka architektoniczna jest wbudowana w taki sekretny sposób, że można zmienić przełączanie sygnałów między więkstwymi blokami: nazywane są one CLB - programowalne bloki logiczne.

Możesz także zmienić funkcję logiczną, którą wykonuje CLB. Osiąga się to ze względu na fakt, że cały układ przeniknie się z komórkami pamięci konfiguracji statycznej pamięci RAM. Każdy kawałek tej pamięci zarządza jakiś rodzaj klucza przełączania sygnału lub jest częścią tabeli prawdy funkcji logicznej, którą implementuje CLB.

Ponieważ pamięć konfiguracyjna jest budowana przy użyciu statycznej technologii RAM, najpierw, gdy moc FPGA włącza się, żeton musi być skonfigurowany, a po drugie, mikrokirit może być ponownie skonfigurowany niemal nieskończoną liczbę razy.

Bardzo uproszczona struktura 2D chipa bez pamięci konfiguracji

Bloki CLB znajdują się w macierzy przełączającej, która ustawia wejścia i wyjścia bloków CLB.

Schemat macierzy przełączania

Na każdym przecięciu przewodów istnieje sześć klawiszy przełączających za pomocą komórek pamięci konfiguracyjnych. Otwieranie niektórych i zamykających innych, możesz zapewnić różne przełączanie sygnałów między CLB.

Clb.

Clb bardzo prosty składa się z bloku definiującego funkcję boolowską z kilku argumentów (nazywana jest pasującą tabelą - table, LUT) i wyzwalacza (Flip-Flop, FF). W nowoczesnej Lutce FPGA ma sześć wejść, ale trzy są pokazane na rysunku dla prostoty. Wyjście Lut jest podawane do wyjścia CLB lub asynchronicznie (bezpośrednio) lub synchronicznie (przez spust FF działający na częstotliwości zegara systemu).

Zasada wdrażania Lut.

Interesujące jest spojrzenie na zasadę wdrażania Lut. Pozwól nam mieć trochę funkcji boolowskiej Y \u003d (A & B) | ~ C. Jego obwody i tabela prawdy jest pokazana na rysunku. Funkcja ma trzy argumenty, więc zajmuje 2 ^ 3 \u003d 8 wartości. Każdy z nich odpowiada jego kombinacji sygnałów wejściowych. Wartości te są obliczane przez program do opracowania oprogramowania FPGA i zarejestrowane w określonych komórkach pamięci konfiguracji.

Wartość każdej komórki jest dostarczana do wejścia multipleksera wyjściowego LUT, a argumenty wejściowe funkcji byka są używane do wyboru jednej lub innej wartości funkcji. CLB jest najważniejszym zasobem sprzętowym FPGA. Ilość CLB w nowoczesnych kryształach FPGA może być inny i zależy od typu i pojemnika kryształu. Xilinx ma kryształy o liczbie CLB w ciągu około czterech tysięcy do trzech milionów.

Oprócz CLB, wewnątrz FPGA ma wiele ważnych zasobów sprzętowych. Na przykład klocki mnożenia sprzętu z blokami akumulacji lub DSP. Każdy z nich może operacjować mnożące i dodać 18-bitowe liczby każdego uderzenia. W górnych kryształach liczba bloków DSP może przekraczać 6000.

Innym zasobem jest wewnętrzne bloki pamięci (Block RAM, Bram). Każda jednostka może przechowywać 2 KB. Pełna pojemność takiej pamięci w zależności od kryształu może osiągnąć od 20 KB do 20 MB. Podobnie jak bloki CLB, Brama i DSP są połączone matrycą przełączającą i przenikają cały kryształ. Binding CLB, DSP i Bram Bloki, można uzyskać bardzo skuteczne schematy przetwarzania danych.

Zalety FPGA.

Pierwszy chip FPGA stworzony przez XILINX w 1985 roku zawierał tylko 64 CLB. W tym czasie integracja tranzystorów na układzie były znacznie niższa niż teraz, aw urządzeniach cyfrowych często używanych żetonów "Running Logic". Były oddzielne rejestry frytki, liczniki, multipleksery, multiplawitory. Specyficzne urządzenie utworzyło własną płytkę drukowaną, na której zainstalowano te niskie wióry integracyjne.

Korzystanie z FPGA umożliwiło porzucenie tego podejścia. Nawet FPGA na 64 CLB znacząco oszczędza miejsce na płytce drukowanej, a dostępność rekonfiguracji dodała możliwość aktualizacji funkcjonalności urządzeń po produkcji podczas pracy, jak mówią "w polu" (stąd nazwa - pole -Programalna tablica bramy).

Ze względu na fakt, że wewnątrz FPGA można utworzyć dowolny schemat cyfrowy sprzętowy (główną rzeczą jest posiadanie wystarczającej ilości zasobów), jedną z ważnych zastosowań FPGA jest prototypującym układem isicznym.

Rozwój ASIC jest bardzo złożony i kosztowny, cena błędu jest bardzo wysoka, a kwestia logiki testowej jest krytyczna. Dlatego jeden z etapów rozwoju, nawet przed rozpoczęciem pracy na fizycznej topologii programu był prototypowanie na jednej lub kilku kryształach FPGA.

Rozwój ASIC produkuje specjalne opłaty zawierające wiele połączonych FPGA. Prototyp mikroukładu działa w znacznie niższych częstotliwościach (może dziesiątki megaherca), ale oszczędza problemy i błędy, aby zaoszczędzić na identyfikacji problemów i błędów.

Moim zdaniem jest jednak bardziej interesujące zastosowania FPG. Elastyczna struktura FPGA umożliwia wdrożenie schematów sprzętowych do szybkiego i równoległego przetwarzania danych z możliwością zmiany algorytmu.


Porównanie platform sprzętowych

Pomyślmy o zasadniczo innym procesorze, GPU, FPGA i ASIC. CPU jest uniwersalny, możesz uruchomić dowolny algorytm na nim, jest najbardziej elastyczny, i łatwiej jest go używać dzięki ogromnej liczbie języków programowania i środowisk rozwojowych.

W tym przypadku, ze względu na wszechstronność i konsekwentne wykonanie instrukcji procesora, wydajność zmniejsza się i zwiększa się zużycie zasilania schematu. Dzieje się tak, ponieważ dla każdej przydatnej operacji arytmetycznej CPU wprowadza wiele dodatkowych operacji związanych z instrukcjami czytania, przenoszenie danych między rejestrami i kasużą oraz inną telewizją.

Po drugiej stronie jest Asoma. Na tej platformie wymagany algorytm jest realizowany przez sprzęt z powodu bezpośredniego podłączenia tranzystorów, wszystkie operacje są połączone wyłącznie z wykonywaniem algorytmu i nie ma możliwości zmiany go. Stąd maksymalna wydajność i najmniejsze zużycie energii platformy. Ale przeprogramować Asoma jest niemożliwe.

Po prawej stronie CPU jest GPU. Początkowo żetony te zostały zaprojektowane do obsługi grafiki, ale teraz używane do obliczeń ogólnego przeznaczenia. Składają się z tysięcy małych jąder obliczeniowych i wykonywać równoległe operacje w tablicy danych.

Jeśli algorytm może być równoległy, GPU osiągnie znaczne przyspieszenie w porównaniu z procesorem. Z drugiej strony, kolejne algorytmy będą gorsze, więc platforma jest mniej elastyczna niż procesor. Do rozwijania się w ramach GPU konieczne jest posiadanie specjalnych umiejętności, znać openCl lub CUDA.

Wreszcie FPGA. Ta platforma łączy skuteczność ASIC z możliwością zmiany programu. Flas nie są uniwersalne, ale istnieje zajęcia algorytmów i zadań, które pokaże lepszą wydajność na nich niż na procesorze, a nawet GPU. Złożoność rozwoju w ramach FPGA jest wyższa, ale nowe osiągnięcia sprawiają, że ta przerwa jest mniejsza.

Decydującą zaletą FPGA jest możliwość przetwarzania danych w tempie ich odbioru z minimalnym opóźnieniem reakcji. Jako przykład możesz wyobrazić sobie inteligentny router sieciowy z dużą liczbą portów: gdy pakiet Ethernet przybywa do jednego z jego portów, musisz sprawdzić wiele reguł przed wybraniem portu wyjściowego. Może być konieczne zmianę niektórych pól pakietów lub dodać nowe.

Korzystanie z FPGA umożliwia natychmiastowe rozwiązanie tego zadania: Bajty pakietowe zaczęły wejść do wiórów z interfejsu sieciowego, a jego nagłówek jest już analizowany. Korzystanie z procesorów może znacznie spowolnić prędkość przetwarzania ruchu sieciowego. Oczywiste jest, że dla routerów możesz dokonać zarejestrowanego chipa ASIC, który będzie działać najskuteczniej, ale co, jeśli zasady przetwarzania pakietów powinny zmienić? Wszystkie FPGA pomogą osiągnąć wymaganą elastyczność w połączeniu z wysoką wydajnością.

W związku z tym FPGA są używane, gdy istnieje wysoka wydajność przetwarzania danych, najmniejszy czas reakcji, a także niskie zużycie energii.

FPGA w chmurze

W Cloud Computing FPGA stosuje się do szybkiego konta, przyspieszyć ruch sieciowy i dostęp do tablic danych. Obejmuje to zastosowanie FPGA do handlu wysokiej częstotliwości na giełdach. Serwery są wstawiane karty FPGA za pomocą PCI Express i interfejsu sieciowego Intel Optical (Altera) lub Xilinx.

Algorytmy kryptograficzne są idealnie niskie na FPGA, porównaniu sekwencji DNA i zadań naukowych, takich jak dynamika molekularna. Microsoft od dawna korzystał z FPGA, aby przyspieszyć usługę wyszukiwania Bing, a także do organizowania oprogramowania zdefiniowanej sieci w obudowie Azure.

Boom uczący maszyny również nie obejdzie FPGA. Xilinx i Intel oferują fundusze oparte na FPGA do pracy z głębokim neuronymi sieciami. Pozwalają na otrzymywanie oprogramowania FPGA, które wdrażają jedną lub inną sieć bezpośrednio z ram, takich jak Caffe i Tensorflow.

I to wszystko, czego możesz spróbować bez wychodzenia z domu i korzystania z usług w chmurze. Na przykład Amazon może wypożyczyć maszynę wirtualną z dostępem do karty FPGA i wszelkich narzędzi programistycznych, w tym uczących maszyny.

FPGA na krawędzi

Co jeszcze jest interesujące na FPGA? Ale dlaczego nie robić tego! Robotyka, bezzałogowe samochody, dronów, urządzenia naukowe, urządzenia medyczne, niestandardowe urządzenia mobilne, inteligentne kamery nadzoru wideo i tak dalej.

Tradycyjnie FPGA został użyty do cyfrowego przetwarzania sygnałów jednowymiarowych (i konkurcjonowane z procesorami DSP) w urządzeniach radarowych, transceivery radiowe. Wraz ze wzrostem integracji mikrokrysku i wzrostu wydajności platformy FPGA stało się coraz częściej stosowane do przetwarzania wysokowydajnych, na przykład do przetwarzania sygnałów dwuwymiarowych "na krawędzi chmury" (przetwarzanie krawędzi).

Koncepcja ta jest najłatwiejsza, aby zrozumieć przykład kamery do analizy ruchu samochodowego z funkcją rozpoznawania funkcji numerów maszyn. Możesz wziąć aparat z możliwością przenoszenia przez Ethernet i przetwarzać wątek na serwerze zdalnym. Wraz z rosnącą liczbą kamer ładunek w sieci wzrośnie, co może prowadzić do awarii systemu.

Zamiast tego lepiej jest zdawać sobie sprawę z rozpoznawania numerów na kalkulatorze zainstalowanym bezpośrednio do obudowy kamery i przenieść maszyny w chmurze formatu maszyny. Aby to zrobić, możesz nawet wziąć stosunkowo niedrogi FPGA o niskim zużyciu mocy, aby wykonać baterię. Pozostaje możliwość zmiany logiki operacji FPGA, na przykład podczas zmiany standardu numerów samochodów.

Co do robotyki i dronów, a następnie w tej dziedzinie, jest szczególnie ważne, aby wykonać dwa warunki - wysoka wydajność i niskie zużycie energii. Platforma FPGA jest odpowiednia, ponieważ jest to niemożliwe i mogą być używane, w szczególności do tworzenia kontrolerów lotów do sterowników drona. Teraz wykonaj UBL, które mogą podejmować decyzje w locie.

Rozwój projektu na FPGA

Istnieją różne poziomy projektowania: niski, blok i wysoki. Niski poziom obejmuje stosowanie języków Verilog lub VHDL, gdzie zarządzasz rozwojem na poziomie przekładni rejestru (RTL - poziom przenoszenia rejestracji). W takim przypadku tworzysz rejestry jak w procesorze i określają funkcje logiczne, które zmieniają dane między nimi.

Schematy FPGA zawsze pracują nad pewnymi częstotliwościami zegara (zwykle 100-300 MHz), a na poziomie RTL określasz zachowanie obwodu z dokładnością taktu częstotliwości systemu. Ta żmudna praca prowadzi do tworzenia najskuteczniejszych programów pod względem wydajności, zużycie zasobów kryształowych FPGA i zużycie energii. Ale są poważne umiejętności w obwodzie, a proces jest z nimi bezprecedensowy.

Na poziomie bloku zajmujesz się głównie podłączeniem już gotowych dużych bloków, które wykonują pewne funkcje, aby uzyskać funkcjonalność systemu na krysztale (system-on-chip).

Na wysokim poziomie projektu nie będziesz już kontrolować danych na każdym zegarze, zamiast tego skoncentruje się na algorytmie. Istnieją kompilatory lub tłumacze z językami C i C ++ na poziomie RTL, na przykład Vivado HLS. Jest całkiem mądry i pozwala nadawać szeroką klasę algorytmów na poziomie sprzętu.

Główną zaletą tego podejścia do języków RTL jest przyspieszenie rozwoju, a zwłaszcza testowanie algorytmu: C ++ Kod można uruchomić i weryfikować na komputerze, a także będzie znacznie szybszy niż zmienia się algorytm testowy w Poziom RTL. Dla wygody, oczywiście, będziesz musiał zapłacić - schemat może nie być tak szybki i zajmie więcej zasobów sprzętowych.

Często jesteśmy gotowi zapłacić tę cenę: Jeśli kompetentnie używasz tłumacza, to skuteczność nie jest zbyt ranna, a zasoby w nowoczesnej FPGA są wystarczające. W naszym świecie, z krytycznym czasem na wskaźnik rynku, okazuje się to uzasadnione.

Często w jednym projekcie musisz połączyć wszystkie trzy style projektowe. Przypuśćmy, że musimy wykonać urządzenie, które moglibyśmy zintegrować do robota i umieścić ją z możliwością rozpoznawania obiektów w strumieniu wideo - na przykład znaki drogowe. Weź chip wideo i podłącz go bezpośrednio do FPGA. Do debugowania możemy użyć monitora HDMI, również podłączony do FPGA.

Ramki z kamery będą przesyłane do FPGA nad interfejsem, który jest oczywiście określony przez producenta czujnika (USB nie przewraca tutaj), przetwarzany i wyświetlany na monitorze. W przypadku przetwarzania ramek będziesz potrzebować kamy, która jest zwykle w zewnętrznej pamięci DDR zainstalowanej na płytce drukowanej obok mikroukustywania FPGA.


Typowy diagram projektu FPGA

Jeśli producent SEENSOR VIDEO nie dostarcza interfejsu IP dla naszego chipa FPGA, będziemy musieli napisać go w języku RTL, licząc taktyk, bitów i bajtów zgodnie ze specyfikacją protokołu transferu danych. Preprocess, sterownik DDR i bloki IP HDMI, najprawdopodobniej przyjmują gotową i po prostu podłączyć ich interfejsy. A blok HLS przeszukuje i przetwarza dane przychodzące, możemy pisać na C ++ i transmisji z Vivado HLS.

Najprawdopodobniej nadal potrzebujemy gotowej biblioteki detektora i klasyfikatora znaków drogowych przystosowanych do stosowania w FPGA. W tym przykładzie, oczywiście, cytuję silnie uproszczony schemat projektu, ale poprawnie odzwierciedla logikę pracy.

Rozważ ścieżkę projektową przed pisaniem kodu RTL przed otrzymaniem pliku konfiguracyjnego do pobrania na FPGA.

Ścieżka projektowa

Więc piszesz kod RTL, który implementuje potrzebny schemat. Przed sprawdzeniem go na prawdziwym gruczołu musisz upewnić się, że jest poprawny i poprawnie rozwiązuje wymagane zadanie. Wykorzystuje modelowanie RTL w symulatorze na komputerze.

Bierzesz swój schemat, przedstawiony do tej pory tylko w kodzie RTL i umieść go na stojaku wirtualnym, gdzie sekwencja sygnałów cyfrowych do wejść obwodu rejestruje wykresy wyjściowe, w zależności od czasu sygnałów wyjściowych i porównać oczekiwane wyniki. Zwykle znajdziesz błędy i powrót do pisania RTL.

Następnie logicznie zweryfikowany kod jest przesyłany do wejścia programu Synthesizer. Konwertuje opis tekstu obwodu do połączonej listy elementów cyfrowych z biblioteki dostępnej dla tego kryształu FPGA. W tej liście zostaną wyświetlone elementy takie jak Lut, wyzwalacze i relacje między nimi. Na tym etapie elementy nadal nie są związane z konkretnymi zasobami sprzętowymi. Aby to zrobić, musisz narzucić na schemat ograniczenia (ograniczenia) - w szczególności, aby określić, które kontakty fizyczne chipsy I / O FPGA są połączone wejściami logistycznymi i wyjściami schematu.

W tych ograniczeniach należy również określić, na jakich częstotliwościach zegara należy pracować schemat. Wyjście syntezatora i plik limitu są podawane do procesora wdrażania, które między innymi zajmuje się zakwaterowaniem i śledzeniem (miejsce i trasę).

Proces Place, który każdy jest nadal niezależnym elementem z netlii wiąże się z określonym elementem wewnątrz chipa FPGA. Następnie rozpoczyna proces trasy, który próbuje znaleźć optymalne połączenie tych elementów do odpowiedniej konfiguracji matrycy przełączania Plit.

Ustawa o miejscu i trasa na podstawie ograniczeń nałożonych przez nas na schemacie: kontakt z kontaktami we / wy i częstotliwości zegara. Okres częstotliwości czasu jest bardzo pod wpływem wdrażania: nie powinno być mniejsze niż opóźnienie czasowe elementów logicznych w łańcuchu krytycznym między dwoma kolejnymi wyzwalaczem.

Często niezwłocznie spełniają ten wymóg nie jest możliwy, a następnie musisz wrócić do początkowego etapu i zmienić kod RTL: na przykład, spróbuj zmniejszyć logikę w łańcuchu krytycznym. Po pomyślnym zakończeniu realizacji wiemy, jakie są elementy, w których są i jak są połączone.

Dopiero po tym, jak uruchomiono proces tworzenia pliku oprogramowania układowego binarnego FPGA. Pozostaje przesyłać go do prawdziwego żelaza i sprawdzić, czy działa zgodnie z oczekiwaniami. Jeśli na tym etapie pojawią się problemy, oznacza to, że symulacja była niekompletna i wszystkie błędy i niedociągnięcia nie zostały wyeliminowane na tym etapie.

Można wrócić do etapu symulacji i symulować nieprawidłową sytuację, a jeśli nie działa, mechanizm debugowania jest dostarczany do skrajnego przypadku bezpośrednio w sprzęcie roboczym. Możesz określić, które sygnały chcą śledzić na czas, a środowisko programistyczne wygeneruje dodatkowy schemat analizatora logicznego, który jest umieszczony na krysztale obok rozwiniętego obwodu, łączy się z sygnałami Cię zainteresowany i oszczędza ich wartości czas. Zapisane tymczasowe diagramy pożądanych sygnałów można rozładować do komputera i analizować.

Wdrożenie projektu na PLIS

Po opracowaniu schematu logiki za pomocą modelowania funkcjonalnego, konieczne jest umieszczenie go na krysztale. Następnie wykonaj symulację schematu, biorąc pod uwagę rzeczywiste opóźnienia elementów uzyskanych po umieszczeniu diagramu na krysztale. W razie potrzeby dostosuj uzyskane roztwory. Następnie schemat jest załadowany w Plis i działa na stoisku.

Figa. 82.Etapy projektowania urządzeń cyfrowych na Plis

Główne etapy projektu na Plis (z wykładów):

    Diagram urządzenia jest rozwijany i wprowadzany do XILINX.

    Realizacja jest wykonywana (transmisja, formacja diagramu poprzez wyodrębnianie elementów biblioteki, optymalizacji, umieszczania na krysztale).

    Programowanie.

  1. Pamięć asocjacyjna. Organizacja, metoda próbkowania, różnice od pamięci adresowej.

Accessiative Access.wdraża wyszukiwanie informacji na temat niektórych funkcji, a nie przez jego lokalizację w pamięci (adres lub miejsce w kolejce). W najbardziej kompletnej wersji wszystkie słowa przechowywane w pamięci są jednocześnie sprawdzane pod kątem zgodności z funkcją, na przykład, na zbieżności niektórych pola słów (znaczniki - z angielskiego znacznika słowa) ze znakiem ustawionym przez słowo wejściowe ( Adres tagów). Wyjście wydawane są słowa, które spełniają znak. Dyscyplina słowa wydawania, jeśli znacznik jest zadowolony z kilku słów, a także dyscyplinę nagrywania nowych danych może być inny. Główny obszar zastosowania pamięci stowarzyszonej w nowoczesnych komputerach - buforowanie danych.

W skojarzonej niezapomnianym urządzenich, wyszukiwanie informacji jest wykonane zgodnie z funkcją asocjacyjną zapisaną w każdej komórce pamięci.

Słowo, które pozwala na prośbę o wszystkich lub tylko niektóre zrzuty funkcji asocjacyjnej, zastosowanie maski umożliwia zmniejszenie lub rozszerzenie obszaru wyszukiwania.

Wyszukiwanie informacji jest wykonywane równolegle ze wszystkimi komórek, porównując zapytanie z asocjacyjną cechą każdej komórki.

Wynik wyszukiwania generuje specjalny obwód kombinacyjny, który wytwarza sygnały powiadamiające brak słów, które spełniają warunki wyszukiwania, o obecności tylko jednego słowa, o obecności kilku słów, które mają taką asocjacyjną cechę.

Po utworzeniu i przetwarzaniu sygnałów powiadamiających obwód sterujący jest odczytywany przez niezbędne informacje. Podczas nagrywania, wolna komórka występuje zgodnie z wartością zwolnienia zatrudnienia, informacje są rejestrowane w pierwszej znalezionej komórce.

Sprawdzanie wyładowania zatrudnienia jest wykonane na instalacji masek n-th (rozładowanie zatrudnienia). Podczas stosowania dodatkowych obwodów kombinacyjnych w pamięci asocjacyjnej można wykonać różne operacje logiczne, określając liczbę maksymalną lub minimalną, liczbę słów o tej samej cechy asocjacyjnej itp. Komórki pamięci stowarzyszenia Urządzenie pamięci masowej muszą być elementami pamięci statycznej, w pamięci skojarzonej, odwołanie jest przeznaczone do wszystkich komórek w tym samym czasie i nie należy przerywać cykli regeneracji. Pamięć skojarzająca jest najbardziej szybkimi działaniem, ale bardzo drogi, ponieważ wymaga dodatkowego schematu porównania, który umożliwia wyszukiwanie każdej komórki pamięci. Dlatego taka pamięć zazwyczaj nie jest używana w czystej formie, a urządzenia pamięci pamięci pamięci podręcznej szybkiego podręcznego są zwykle wykonywane jako częściowo skojarzone.

Ww pełni asocjacja pamięć podręczna (FACM, w pełni powiązany pamięć pamięci podręcznej), każde przechowuje dane do komórek, aw polu "Tag" - pełny fizyczny adres informacji, której jest rejestrowana kopia. Dzięki dowolnej wymiany fizyczny adres żądanej informacji jest porównywany z polami "Tag" wszystkich komórek i, gdy zbiegają się, sygnał HIT jest zainstalowany w dowolnej komórce.

Podczas odczytu i wartością sygnału HIT \u003d 1 dane są wyświetlane na magistrali danych, jeśli nie ma żadnych zbiegów (hit \u003d 0), a następnie podczas odczytu z pamięci głównej, dane wraz z adresem jest umieszczone w Bezpłatna lub nowo używana komórka pamięci podręcznej.

Podczas pisania dane wraz z adresem jest najpierw, z reguły, są umieszczone w pamięci podręcznej (w wykrywanej komórce z hit \u003d 1 i za darmo z hit \u003d 0). Kopiowanie danych do pamięci podstawowej wykonuje się prowadzenie specjalnego kontrolera, gdy nie ma odwołań pamięci.

Pamięć typu FAM jest bardzo złożonym urządzeniem i jest stosowany tylko w niskich zbiornikach, głównie w specjalnych zastosowaniach. Jednocześnie ten typ pamięci podręcznej zapewnia największą elastyczność funkcjonalną i konflikt adresów, ponieważ każda jednostka informacji można pobrać do dowolnej komórki pamięci podręcznej.

Od wykładów:

Współpracowcze niezapomniane urządzenia

Podstawową różnicą jest to, że system próbkowania z nich nie jest przeprowadzany na unikalnym adresie wyszukiwania informacji, ale dla określonego znaku, który jest zasadniczo częścią informacji wyszukiwania.

Informacja

Tag jest charakterystyczną cechą, w zbiegu, z którym jest informacja.

Uproszczony schemat pamięci stowarzyszonej:

Powierzchnia pamięci - Pamięć adresowa z numerowanymi komórkami, przechowuje informacje i znaczniki.

Aby odwołać się do pamięci stowarzyszonej, próbka pożądanego znacznika jest umieszczona na rejestrze APROP. Schemat porównania porównuje wniosek. W rejestrze zbiegającego się zbieg okoliczności, w którym znacznik był zbiegł się z pamięci z próbką. Reakcje są możliwe (nie ma zbiegów; istnieje co najmniej jeden przypadek - w tym przypadku znalezioną komórkę jest umieszczane w rejestrze danych; wielokrotny zbieg okoliczności - policjant powinien podjąć decyzję, która z komórek do obróbki).

Zastosowanie: baza danych, bazy wiedzy, komputer jako pamięć podręczna.

Artykuł podejmuje próbę określenia składu załączonej dokumentacji na rozwiniętych modułach cyfrowych do programowalnych logicznych żetonów integralnych (FPGS). Ta towarzysząca dokumentacja powinna dostarczyć deweloperom konsumentowi / klientowi w celu pomyślnego dalszego wykorzystania rozwiniętego modułu cyfrowego w swoich projektach na etapie projektowania urządzeń cyfrowych na FPGA.

Wprowadzenie

Jakiego rodzaju dokumentacja projektowa powinna zapytać dewelopera, jeżeli firma lub przedsiębiorstwa-klient lub inny deweloper zostaną wykorzystane w przyszłości "Alien" rozwinięte urządzenie w swoich projektach? Ten artykuł może służyć jako "ściąga", aby rozpocząć prawidłowe wydanie zadania technicznego na temat rozwoju urządzenia cyfrowego dla FPGA, a następnie poprosić dokumentację projektowania deweloperów dla już opracowanego urządzenia cyfrowego. Na podstawie wcześniejszych doświadczeń z dokumentacją projektową przedsiębiorstwo lub firma jest używana przez następujące normy i dokumenty regulacyjne:

  • GOST 2.102-68 ECCD. Rodzaje i kompletność dokumentów projektowych.
  • GOST 15.101-98. Rozwój i system produkcji do produkcji. Procedura wykonywania prac badawczych naukowo.
  • GOST R 15.201-20-00. Rozwój i system produkcji do produkcji. Produkcja produkcji i cele techniczne. Procedura rozwijania i wytwarzania produktów do produkcji.

Z reguły był to plik oprogramowania układowego i program (opis urządzenia cyfrowego na VHDL / Verilog lub zestaw obwodów cyfrowych opracowanych w edytorze obwodów za pomocą elementów bibliotecznych logiki cyfrowej, takich jak wyzwalacze, rejestry, liczniki, dekodery itd.) Na instrukcjach CD lub DVD i programowania. I to wszystko.

Autor, na przykład, zderzył się z poniższym problemem. Jeden pracownik opracował złożone wielokrotne urządzenie cyfrowe. Wszystkie moduły opisane w języku VHDL oraz cyklogram działania tych modułów i urządzenia cyfrowego jako całej spojrzał na dobry i drogi oscyloskop. Nie znał plików o ławce testowej lub nie wiedziałem, czy ich napisać, przy okazji, komentarze do projektu i opisy modułów były również nieobecne. Sytuacja może być jeszcze gorsza, jeśli moduły są prezentowane przez obwody cyfrowe opracowane w edytorze obwodów przy użyciu elementów bibliotecznych. Oto jeden z głównych wad: z wyjątkiem samego dewelopera, jest mało prawdopodobne, aby ktoś inny zrozumiem to urządzenie cyfrowe, zwłaszcza jeśli projekt jest modułowy, a opis każdego modułu wynosi więcej niż 100 rzędów lub więcej niż jeden ekran monitora. Jeśli tak, jeśli pożądany jest inny deweloper, konieczne jest wprowadzenie nowego rozwoju lub projektu, który opracował już urządzenie cyfrowe dla FPGA, jest ponownie konieczne, aby spędzić czas na rozwój tego urządzenia cyfrowego.

Projekt historii pytania dla PLIS

Obecnie rynek FPGA jest jednym z najbardziej dynamicznie rozwijających się. Plis stosuje się w wielu branżach. W tej chwili nie ma jednoznacznego, spełniającego wszystkich programistów metodologii do uzyskania konfiguracji FPG przez model funkcjonalny urządzenia na poziomie systemu. Najpopularniejszym podejściem do rozwiązywania tego problemu jest użycie technologii IP-Core (rdzeń własności intelektualnej). Jądra IP są gotowymi komponentami, które pozwalają im łatwo dołączyć do nich we własnym projekcie, aby stworzyć bardziej złożony system. Takie podejście ma jedną znaczącą wadę - przyłączenie IP-jądra do podstawy elementu. Każdy rdzeń IP jest zoptymalizowany dla określonej serii mikrochipów danego producenta, co znacznie pogorszyło możliwość przesyłania już utworzonych urządzeń z jednej podstawy elementu do drugiego. Bliskość architektur komercyjnych CAD uniemożliwia dodanie własnych modeli urządzeń na poziomie systemu, aby uzyskać na ich zasadzie modele urządzenia na poziomie przekładni rejestru (RTL). Rozwój modułu cyfrowego przeprowadza się w postaci obwodu cyfrowego narysowanego w edytorze obwodu przy użyciu podstawowych elementów obwodów wbudowanych w wbudowany producenta biblioteki producenta, takich jak wyzwalacze, dekodery, liczniki, dodatki itp.

Kolejne popularne podejście, które pozwala nam przejść z modelu funkcjonalnego na poziomie systemu do modelu urządzenia rejestru - stosując języki opis systemu na poziomie systemu (Języki projektowe na poziomie systemu, SLDLS). Takie języki obejmują SystemC, Handel-C, VHDL, Verilog, System Verilog. Główną zaletą jest niezależność zasady sprzętowej, w której urządzenie zostanie wdrożone.

Zatem z jednej strony, przy stosowaniu technologii IP-Jądra, deweloper urządzenie otrzymuje rozwiązanie jakościowe, ale mocno przymocowane do zasady sprzętowej, w której urządzenie jest wdrażane. Z drugiej strony, stosując języki opis urządzenia na poziomie systemu, implementacja urządzenia jest niezależna od sprzętu. Od powyższego wynika, że \u200b\u200bobecnie dzielenie się przyspieszeniem projektowania modułów cyfrowych w języku opisu sprzętu oraz rdzeni IP producenta (Xilinx, Alteral itp.) Oraz firmami deweloperowymi. Podczas korzystania z cyfrowych modułów stron trzecich może czasami występować w informatywaniu dokumentacji towarzyszącej.

Dostarczanie informacji o rozwiniętym module cyfrowym dla FPGA

W zależności od metodologii uzyskania konfiguracji FPGA wzdłuż modelu funkcjonalnego urządzenia na poziomie systemu, deweloper może wybrać następujące typy modułu cyfrowego dla FPGA:

  • Oprogramowanie. - Opracowany moduł cyfrowy przekazany przez konsumenta jako opis w języku opisu urządzenia (VHDL, Verilog) lub / i opracowany w edytorze przetwarzania schematu Edytora schematycznego do dalszego stosowania w automatycznej syntezie obwodów logicznych i zoptymalizowany przez parametry funkcjonalne.
  • Oprogramowanie układowe. - Opracowany przez stronę trzecią, moduł cyfrowy, który nazywany jest IR-rdzeń przekazanym przez konsumenta jako obwód logiczny (lista obwodów - Netlist) w oparciu o elementy logiczne Producent FPGA i zoptymalizowane na parametrach funkcjonalnych i elektrycznych.

Na etapie rozwijania dokumentacji, na podstawie osobistych doświadczeń, konieczne jest wydanie oprócz zwykłej płyty CD i TU przeprowadzonej zgodnie z GOST 15.101, GOST 15.201, GOST 2.102, GOST 2.114, Dokumentacja dla wszystkich typów modeli (system , Logiczne, obwody) stworzone przez etapy projektowania urządzeń cyfrowych na PLIS.

Innymi słowy, dokumentacja projektowa dla urządzenia cyfrowego dla FPGA, z wyjątkiem pliku oprogramowania układowego, instrukcje programowania i rejestrowanego projektu na CD / DVD, należy również obejmować dokumentację towarzyszącą.

Stół. Lista towarzyszących dokumentacji

Nazwa sekcji. Widok
Oprogramowanie. Oprogramowanie układowe.
Generał
Cel i zakres O R.
Specyfikacje O O
Opis sygnałów zresetowania O O
Opis sygnałów synchronizacji O O
Opis interfejsów O R.
Tymczasowe diagramy. R. O
Opis rejestrów sterowania O O
Schemat strukturalny (funkcjonalny) R. R.
Przewodnik programowy. O O
Model lub Farce Rodzina,
Manufaktura
R. O
Prezentacja modułu cyfrowego
Dla logicznego projektu na PLIS
Model RTL. O Nie
Model logiczny Nie O
Ograniczenia projektu. O O

Oto lista sekcji (tabela), która powinna być zawarta w załączonej dokumentacji projektu modułu cyfrowego dla FPGA. Dla każdej sekcji pojawi się znaki potrzeby włączenia sekcji w dokumencie:

  • "O" - koniecznie dostarczana sekcja;
  • "P" - polecany do dostawy.

Zalecane formaty plików do transferu dokumentacji towarzyszącej - MS Word, PDF (najlepszy format), HTML. Opis języka Opis urządzenia (VHDL, Verilog) lub / i opracowany w edytorze schematycznym edytora schematycznego w tym formularzu, jak wymaga rozwój smutnego oprogramowania. Wyjątkiem może być dodatkowa rezerwa w formacie graficznym (JPEG, BMP) plików obwodów cyfrowych opracowanych w procesie schematu edytora schematycznego.

Generał

W tej sekcji opisano ogólne informacje na temat zaprojektowanego modułu cyfrowego jako opis:

  • obwód funkcjonalny i jego kompozytowe bloki / części;
  • sygnały reliefowe, synchronizacja;
  • używane interfejsy;
  • rejestry kontroli;
  • tymczasowy diagram;
  • programowanie.

Cel i zakres

Celem modułu cyfrowego, obszar jego zastosowania jest określony.

Specyfikacje

Opis podstawowych właściwości technicznych, takich jak wydajność, zużycie energii dla określonego kryształu FPGA, liczba zaworów zajętych, typ stosowanego kryształu FPGA został dostarczony. Dodatkowo określony podczas opracowywania cyfrowego modułu CAD producenta FPGA i oprogramowanie używane do modelowania i weryfikacji. W przypadku wszystkich używanych programów wersja i zainstalowane aktualizacje są określone. Graficzna reprezentacja modułu cyfrowego jest podana w postaci "czarnej skrzynki" przy oznaczeniu wejść / wyjść zewnętrznych oraz krótki opis ich przeznaczenia.

Opis sygnałów zresetowania

Oblicz szczegółowe informacje na sygnały resetowania:

  • Lista sygnałów zewnętrznych i wewnętrznych.
  • Parametry czasu i tymczasowe sygnały rozładowania.
  • Schematy do tworzenia sygnałów resetowania wewnętrznego, jeśli takie są zawarte w module cyfrowym.
  • Wskaźniki z innymi sygnałami (zwłaszcza z sygnałami synchronizacji).

Opis sygnałów synchronizacji

Prowadzi szczegółowe informacje na sygnały synchronizacji:

  • opis zewnętrznych sygnałów synchronizacji;
  • sygnały synchronizacji czasowej;
  • opis wewnętrznych sygnałów synchronizacji i schematów formowania;
  • tymczasowe stosunki między sygnałami synchronizacji z różnych źródeł;

Opis interfejsów

Funkcje korzystania ze wszystkich interfejsów, które są częścią opracowanego modułu cyfrowego, pożądane do organizowania interakcji z innymi węzłami systemu na krysztale. Dodatkowo, łącze internetowe do pełnego opisu standardowego interfejsu jest dostarczane lub sam opis interfejsu. W tej chwili interfejsy do AMBA, PLB, magistrali wishbone są akceptowane jako ujednolicone interfejsy modułów cyfrowych.

Tymczasowe diagramy

Wymagane informacje dotyczące organizacji wymiany danych przez interfejsy i inne wejścia / wyjścia modułu cyfrowe: graficzna reprezentacja tymczasowych diagramów, opis protokołów transmisji danych, wymagania dla sygnałów zewnętrznych dostarczanych do modułu cyfrowego (czas trwania, częstotliwości itp.) Oraz inne informacje.

Opis rejestrów sterowania

Podana jest opis wszystkich rejestrów sterowania modułu cyfrowego. Typowy opis rejestru sterowania zawiera nazwę rejestru, adres rejestru w wewnętrznej przestrzeni adresowej, wartością początkową po usunięciu sygnału resetowania, rodzaj dostępu (odczyt / zapis), opis pól wewnętrznych.

Schemat strukturalny (funkcjonalny)

Obraz wewnętrznej struktury związków głównych węzłów wewnętrznych / bloków modułu cyfrowego, a także ich krótki opis tekstu. Dodatkowo podano opis głównych bloków wewnętrznych modułu cyfrowego. Celem tego dokumentu jest zapewnienie informacji konsumentów niezbędnych do zrozumienia zasad modułu cyfrowego.

Liczba opisanych bloków i opisu opisu definiuje deweloper modułu cyfrowego. Korzystnie, korespondencja minimalnej liczby opisanych modułów opisanych przez liczbę elementów obwodu modułu cyfrowego strukturalnego (funkcjonalnego).

Typowy opis jednostki wewnętrznej zawiera:

  • cel bloku;
  • strukturalny (funkcjonalny) schemat blokowy (jeśli to konieczne);
  • tryby i algorytmy pracy;
  • tymczasowe wykresy pracy;
  • jednostka zarządzania organizacją;
  • organizacja komunikacji z innymi blokami;
  • wszelkie inne informacje.

Przewodnik programowy.

Zapewnia wszystkie niezbędne informacje na temat procesu programowania za pomocą producenta modułu cyfrowego CAPR w FPGA wymagane narzędzia do opracowywania i debugowania oprogramowania, bibliotek oprogramowania.

Model lub Farce Rodzina, producent

W przypadku modułu cyfrowego oprogramowania układowego wskazuje producenta FPGA, modelu lub rodziny FPGA oraz jego charakterystykę prędkości. W przypadku oprogramowania modułu cyfrowego informacje o liczbie zajmowanych zasobów, podano wymagania dla zastosowanych UPS.

Prezentacja modułu cyfrowego do projektowania logicznego

Artykuł obejmował trudności w stosowaniu projektu "Alien" na VHDL - niedobór odpowiednich instrukcji wytycznych i przepisów programowych. Podano również ogólne instrukcje dotyczące nazw, "dobry ton" podano również zasady dotyczące pisania i podręczników do syntezy. Pytania te powinny być awansowane jak najwięcej z deweloperem, jeśli planujesz kontynuować rozwój lub aktualizację samodzielnie, zanim przebiega do rozwoju modelu RTL modułu cyfrowego na FPGA. Jest to szczególnie prawdziwe w przypadku oprogramowania modułu cyfrowego oprogramowania na PLIS. W tej samej części artykułu opisano ogólne wymagania dotyczące całego projektu opracowanego modułu cyfrowego na FPGA. Oto pytania, dla których należy zwrócić uwagę na przygotowanie zadania technicznego na temat rozwoju modułu cyfrowego na FPGA, a zwykle dotyczy transmisji wyników pracy.

Model RTL.

Moduł cyfrowy opisany na zsyntezowanym kolorze języka Verilog lub VHDL lub / i opracowany w edytorze przetwarzania schematu Edytora schematycznego jest przeznaczony do stosowania w fazie syntezy logiki PLIT. Przychodzi do oprogramowania w formie zmontowanego projektu modułu cyfrowego w Capr producenta FPGA. W przypadku modułu cyfrowego model oprogramowania RTL jest dostarczany zgodnie z osobną umową.

Oprócz plików modelowych RTL są przesyłane:

  • Instrukcje dotyczące korzystania z modelu.
  • Opis bloków pamięci zawartych w modelu, w tym rodzaj pamięci, rozmiar, liczba bloków pamięci, hierarchiczna nazwa bloku pamięci.
  • Opis procesu tworzenia gotowych rdzeni podczas korzystania z programów do tworzenia ich (na przykład CoreGenerator dla XILINX ISE). W przypadku braku opisów ograniczenia mogą pojawić się w celu ponownego projektowania i stosowania ze względu na zależność od technologii i producenta.
  • W przypadku stosowania mikroprocesora od producenta (na przykład z Altera - procesor NIOS; z mikroprocesorów XILINX - Microoblaze, mikroprocesory PowerPC, opis wymagany opis procesora konfiguracji jądra procesora i jego obrzeża.
  • Testowe zestawy ławek (ławka testowa) do weryfikacji i modelowania modułu cyfrowego napisanego w Verilog lub / i VHDL lub / i Verilog.
  • Wszelkie inne dodatkowe informacje.

Model logiczny

Model jest lista obwodów opisanych przy użyciu języków Verilog lub VHDL w zasadzie biblioteki producenta FPGA i jest wyposażony w oprogramowanie modułu cyfrowego.

Oprócz logicznych plików modelowych są przesyłane:

  • Instrukcje dotyczące korzystania z tego modelu.
  • Testowe zestawy ławek (ławka testowa) do weryfikacji i modelowania modułu cyfrowego napisanego w Verilog lub / i VHDL lub / i Verilog.
  • Przewodnik do pracy z zestawem testów do modelowania i weryfikacji modułu cyfrowego.
  • Wszelkie inne dodatkowe informacje.

Ograniczenia projektu.

Ograniczenia projektów są dostarczane jako plik z opisem zestawu ograniczeń nałożonych na moduł cyfrowy, gdy jest włączony do logicznego modelu systemu na krysztale. Zestaw ten zawiera ograniczenia sygnałów synchronizacji (ograniczenia zegara), limity czasu (ograniczenia czasu), ograniczenia od interakcji modułu cyfrowego z innymi modułami i warunkami pracy modułu cyfrowego. Preferowany jest opis formatu ograniczeń projektowych ograniczeń konstrukcyjnych (SDC) lub formatu dla producenta CAD FPGA.

Przykładowa lista limitów do sygnałów synchronizacji:

  • tymczasowy diagram (przebieg zegara);
  • stabilność częstotliwości zegara (jitter);
  • zmiana fazy częstotliwości zegara;
  • czasy przejścia czasów przejściowych;
  • tymczasowe diagramy sygnałów synchronizacji (wygenerowane przebiegi zegara);
  • wszelkie inne dodatkowe informacje.

Zestaw ograniczeń sygnałów synchronizacji jest wymagany do modułów cyfrowych oprogramowania i oprogramowania.

Przykładowa lista tymczasowych ograniczeń:

  • czasy przyjazdu na wejściach (czasy przyjazdu na wejściach);
  • wymagane czasy na wyjściach (wymagane czasy na wyjściach);
  • wiele ścieżek (ścieżki multi-cyklu);
  • fałszywe ścieżki (fałszywe ścieżki);
  • czas trwania przełączania sygnału danych (czasy przejścia sygnału danych);
  • wszelkie inne dodatkowe informacje.

Wniosek

Kompozycja towarzyszącej dokumentacji na rozwiniętych modułach cyfrowych dla FPGA jest świadczona przez porozumienie między konsumentem a deweloperem. Najczęściej deweloper zapewnia po prostu moduł cyfrowy opisany w języku VHDL, Verilog, System Verilog i / lub zaprojektowany w edytorze obwodów. Jeśli chodzi o dodatkową dokumentację, odpowiedź od programisty najczęściej dzieje się: "Moduł cyfrowy działa, więc weź i użyj. W opisie schematu w języku instrumentu nie ma nic trudnego: odkładasz to. "

W opinii autora możliwe jest radzenie sobie z czymkolwiek, wszystko zależy od pragnienia i spędza czas, a czas poświęcony na zrozumienie projektu na już opracowany moduł cyfrowy, bezpośrednio proporcjonalny do doświadczenia opisu opisu Sprzęt w urządzeniu obwodu cyfrowego VHDL, Verilog i wiedzy i mikroprocesor. Można go unikać, jeśli początkowo uzgodniono z dewelopera o składzie dokumentacji towarzyszącej, a następnie użycie modułu cyfrowego w swoim projekcie staje się łatwiejsze, a jego wdrożenie wystąpi szybsze.

Podsumowując, autor chciałby zauważyć, że przy formułowaniu zadania dla rozwoju urządzenia cyfrowego na FPGA należy przestrzegać zaleceń podanych w artykule, a następnie problemy z ponownym użyciem lub podczas aktualizacji wcześniej opracowanego urządzenia cyfrowego nie będą powstać.

Literatura

  1. Denisov A. Kilka wskazówek dotyczących projektowania urządzeń cyfrowych na VHDL dla komponentów i technologii FPGA //. 2009 № 12.
  2. GOST 2.102-68 ECCD. Rodzaje i kompletność dokumentów projektowych.
  3. GOST 2.114-95 ECCD. Warunki techniczne.
  4. GOST 15.101-98. Rozwój i system produkcji do produkcji. Procedura wdrażania badań i TELSKI działa.
  5. GOST R 15.201-20-00. Rozwój i system produkcji do produkcji. Produkcja produkcji i cele techniczne. Procedura rozwijania i wytwarzania produktów do produkcji.

Chociaż były święta, wykonałem mały projekt na Verilog, który długo chciał spróbować.

Istota projektu jest następująca: FPGA jest podłączony szybki (stosunkowo, oczywiście) ADC z dwoma kanałami i interfejsem równoległym (14-16 bitów na kanał). FPGA odczytuje dane z ADC i składa się do buforu (jego wewnętrzny Bram]. Gdy bufor jest wypełniony, zatrzymuje się czytanie, a urządzenie zewnętrzne (mikrokontroler) może odczytać dane z bufora za pomocą interfejsu SPI. Możesz także skonfigurować niektóre parametry SPI (zostanie to zapisane w następnym poście).

Test projektu (klikalny obraz).

Synteza Wynik dla Cyclone Ive

Wynik zsyntetyzowany w Quartus II, dla FPGA rodziny Cyclone Ive (EP4CE6E2A7). Jest to jeden z najłatwiejszych i najbardziej tanich FPGA w obudowie QFP144 na elementach logicznych 6272. Mikrokiruk ma pamięć 30k * 9 bitów. Kołki niestandardowe - 92.

eP4CE6E2A7 mikroukładka.
elementy logiczne - 301 (5%)
szpilki - 41 (45%)
pamięć - 65536 bitów (24%)
częstotliwość dla najgorszego przypadku (125 s) - 151 MHz.

Pamięć 8 KB jest to rzeczywistym buforem, w którym dane są rejestrowane. Z dwoma kanałami 16 bitów, 32 bitów na odliczanie i 2048 odniesień. Zdecydowałem, że jest to wystarczająco dość, chociaż bufor można rozbudować przynajmniej na całym objętości.

Częstotliwość jest dość odpowiednia, spodziewałem się, że występuje częstotliwość zegara 50 MHz i 25 MHz ADC. Oznacza to, że otrzymuje się trzydrożne zapasy w częstotliwości.

Liczba elementów logicznych jest całkowicie nieznacznie dla takiego FPGA, tj. Jeśli chcesz, możesz zrobić wiele rzeczy nawet tam, zwłaszcza że szpilki pozostają aż 51.

Istnieje nowszy cyklon rodzinny 10.

Synteza Wynik dla cyklonu 10

Wybierz chip 10Cl006ye144c8g. Ma tyle elementów logicznych (6272) jako opcja na CyClone 4 i tej samej pamięci (30K x 9). Obudowa jest taka sama, QFP144, Custom Pins jeszcze mniej - 89.

chip 10Cl006ye144c8g.
elementy logiczne - 289 (5%)
szpilki - 41 (46%)
pamięć - 65536 bitów (24%)
częstotliwość dla najgorszego przypadku (85 s) - 145,5 MHz.

Jest ciekawy, że projekt stał się bardziej kompaktowy w logicznych elementach. Oznacza to, że z taką samą pojemnością logiki w cyklonie pasuje do bardziej złożonego projektu. Wszystko inne dotyczy tego samego poziomu.

Powstaje rozsądne pytanie: Czy można zaoszczędzić, wprowadzenie kolejnej FPGA lub CPLD?

Spróbujmy FPGA max10.

Synteza wynika dla max 10

Tutaj czytelnik (jeśli jest w temacie) może zawołać: Nie, wszystko jest nie tak! Maksymalna rodzina jest CPLD, a nie FPGA i pomylić te koncepcje - rażący nieprzetworzystyzm!

Jednak przez wysiłki marketerzy Intel (wszystko jest świadome, że mowa o żetonach Intel?) Rodzina Max10 przekształciła się w FPGA, chociaż ma wewnętrzną nieulotną pamięć konfiguracyjną, jak każda CPLD.

Tak więc, wybierz chip, na przykład 10m02SCE144A7G (2304 LE, 101 GPIO, 12KX9 Bram), obudowa QFP144.

chip 10m02sce144a7g.
elementy logiki - 298 (13%)
szpilki - 41 (41%)
pamięć - 65536 bitów (59%)
częstotliwość najgorszego przypadku (125 s) - 153 MHz.

Widzimy, że wskaźniki absolutne pozostały praktycznie takie same, zwiększa się tylko stopień wypełnienia kryształowego, co jest zrozumiałe - 2304le przeciwko 6272 le.

Czy max II może być używany?

Teraz pytanie brzmi: czy możliwe jest użycie bardzo taniego CPLD, takiego jak Max II? Wszystko jest tutaj bardziej skomplikowane. Nie mają pamięci Brama, tj. Trzeba być również zewnętrznym szybkim SRAM.

Aby podłączyć SRAM, oczywiście będziesz potrzebować dodatkowej logiki. Jeśli użyjemy pamięci 4K x 16, potrzebujemy dodatkowych 16 pinów do danych, 12 dla adresu i 3 do sterowania (/ CS, / ME, / OE), tylko 31 dodatkowych pinów.

Logika zwiększy również rozmiar. Jeśli chodzi o dokładność, trudno jest powiedzieć, ale w CPLD w 240 Le, nie pasuje początkowo, aw 570 le może będzie się zmieścić.

Wybierz CPLD EPM570 w obudowie QFP100. Potrzebujemy tylko 72 pinów, obudowa ma 76 pinów dla GPio, tj. Powinno być wystarczające dla wszystkiego, ale jest już bardzo mało miejsca na rozbudowę.

Plusy takiego rozwiązania: Być może niższa cena (nawet biorąc pod uwagę dodatkowy układ sram), wady: wielką złożoność obwodu i obszaru płyty.

Cena kwestii.

To właśnie znalazłem z efind. Mikroguty są niewiele innych, ale cyfra i litera na końcu jest indeks prędkości i zakres temperatur (komercyjna). Ponieważ mamy trzykolorowe zapasy w częstotliwości, dane te są absolutnie nieważne dla nas.

EP4CE6E22C8N - 456.55 P (Promelektronika, EKB, ROS)
10Cl006ye144C - 754.71 (Piąty element, SPB, Hurt)
10m02sce144c8g - 456 p (Elitan, EKB, Hurt)
EPM570F100C5N - 368 P (Hightec, SPB) + Pamięć (CY7C1021DV33-10ZSXI, SRAM 1MBIT 10NS 44TSOP) - 92,51 p (Promelectronics, EKB, ROS)

Oczywiście można znaleźć i tańszyć, to tylko ceny detaliczne w sklepie, ale stosunek będzie mniej więcej taki sam.

Można zauważyć, że opcja z CPLD nie wygra w tej cenie, mając wiele wad. Reszta opcji jest w przybliżeniu równa, z wyjątkiem tego, że cyklon 10 jest nadal nieco droższy, a niewielu ludzi ma w magazynie. Jest to jednak zupełnie nowa rodzina, do tej pory wszystkich dystrybutorów go nie przyprowadzili.

Osobiście najbardziej podoba mi się opcja na max 10. Ma jedną zaletę: podczas uruchamiania konfiguracji FPGA podczas uruchamiania. W wariancie na CyClone 4 musisz pobrać konfigurację FPGA, która może być wykonana przy użyciu dodatkowego układu pamięci konfiguracji lub za pomocą mikrokontrolera. Istnieje kolejna trzecia opcja: Flash przez JTAG i nigdy nie wyjmuj zasilania z chipu. Słyszałem, że ktoś to zrobił, nie wiem, to jest żart, ale nie, ale nie zrobię dokładnie.

Jednak opcja z cyklonem oprogramowania układowego 4 przez mikrokontroler ma przewagę: możliwość aktualizacji oprogramowania układowego FPGA za pośrednictwem interfejsów użytkownika: USB, Ethernet itp.

Możliwa jest inna nietrywialna opcja: nie umieścić mikrokontrolera w ogóle, ale migać dowolnego wbudowanego procesora w FPGA. Ale to nie jest bardzo dobra opcja, prawdopodobnie dlatego, że Jednocześnie z pewnością potrzebuje zewnętrznego ROM i pamięci RAM, a także przynajmniej mostu USB. Oczywiście nie jest konieczne odrzucenie tej opcji, ale wydaje mi się bardziej skomplikowane w implementacji niż z mikrokontrolera.

O jakiego funkcjonowania wykonuje to oprogramowanie układowe, piszę w następnym poście.

Wprowadzenie

LanguageVHDL jest w rzeczywistości międzynarodowym standardem w dziedzinie automatyki projektowej systemu cyfrowego, jest to język wejściowy wielu nowoczesnych automatycznych systemów projektowych (CAPR) zarówno niestandardowych, jak i programowalnych logicznych układów zintegrowanych (PLS) i programowalnych macierzy zaworów. VHDL został zaprojektowany przede wszystkim do specyfikacji - dokładny opis zaprojektowanych systemów i ich symulacji na początkowych etapach projektowania - algorytmicznego i logicznego. Korzystając z VHDL, można symulować obwody elektroniczne, biorąc pod uwagę opóźnienia w czasie rzeczywistym.

Ostatnio systemy syntezy syntezy w tym języku są bardzo pomyślnie opracowane. Na przykład przy użyciu CAPR XILINX Foundation Series 2.1i można symulować oryginalny opis diagramu w języku VHDL, a następnie zsyntetyzować schemat i zdobądź plik konfiguracyjny (konfigurację) układu typu XILINX FPGA. Korzystanie z CAPR MAX + Plusii umożliwia rozwiązywanie podobnych problemów dla programowalnych mikrokiriuchów wytwarzanych przez Altera.

VHDL jest potężnym językiem, pozwala na opisanie zachowania, tj. Algorytmy do funkcjonowania systemów cyfrowych, jak również hierarchiczny opis konstrukcji funkcjonalnej systemów, ma środki do opisania równoległych procesów asynchronicznych, regularnych struktur regularnych (skurczowych) i jednocześnie ma wszystkie oznaki języka programowania wysokiego szczebla - pozwala Aby utworzyć typy danych, ma szeroką gamę operacji arytmetycznych i logicznych itp.

3 4
Język VHDL rozwija się, międzynarodowe konferencje są przeznaczone dla niego, a czasopisma naukowe są wydawane, w których badano problemy z użyciem VHDL. Stał się językiem rozwoju projektów międzynarodowych, w tym tych wdrożonych za pomocą światowego komputera internetowego. Znajomość tego języka jest niezbędna do skutecznej pracy przy tworzeniu najbardziej zróżnicowanego sprzętu elektronicznego na nowoczesnej bazie elementarnej super-wysokich układów scalonych.

Laboratorium Praca numer 1

Debuger FPGA Express.

1. Opis ogólny.

1.1. Celem pracy jest uzyskanie umiejętności do pracy z debuggerem FPGA Express.

Prace laboratoryjne składają się z zadań domowych i laboratoryjnych. Praca domowa leży w niezależnym rozwoju najłatwiejszych możliwości debugera i zapoznanie się z jego celem. Zadanie laboratoryjne obejmuje wprowadzenie wersji programu napisanego na VHDL i opanowanie zasad współpracy z debuggerem FPGA Express na jego przykładzie.

Według przewodnika metodologicznego zaznajomił się z wizytami i możliwościami debugera modeli urządzeń cyfrowych w języku VHDL.

3. Praca teoretyczna.

FPGA Express transmituje i optymalizuje opisy VHDL w wewnętrzny format odpowiednik poziomu prymitywnych elementów logicznych. Ten format jest następnie kompilowany do technologii FPGA.

Aby pracować z VHDL, musisz zapoznać się z następującymi pojęciami:

Opis sprzętu Języki.

Korzystanie z FPGA Express.

Model procesu projektowania.

Departament Obrony USA w 1982 r VHSIC HDL.(VHDL) w ramach ultra-szybkiego programu rozwoju IP (VHSIC). VHDL opisuje zachowanie, funkcje, wejścia i wyjścia obwodu cyfrowego. Styl VHDL i składnia jest podobna do nowoczesnych języków programowania, jednak zawiera wiele konkretnych struktur sprzętowych. FPGA Express odczytuje i analizuje obsługiwaną składnię VHDL ..

Opis sprzętu Języki

Opis sprzętu Języki (HDL) są używane do opisu architektury i zachowania dyskretnych systemów elektronicznych. Języki te mają na celu budowanie złożonych projektów. Historyczna analogia jest często przeprowadzana na temat sposobu wywoływania opisów opisu, z kodów maszynowych (tranzystorów i lutowania) do Assemblerblas (listy obwodów) i w dalszej części do wysokiego poziomu języków (HDL).

Systemy zorientowane na HDL są przydatne przy opracowywaniu dużych projektów, gdy kilku programistów lub nawet kilka poleceń współpracuje ze sobą. HDL zapewnia programowanie strukturalne. Po przyjęciu głównych rozwiązań architektonicznych, a główne składniki i relacje między nimi są zidentyfikowane, prace nad podprojektami mogą wystąpić całkowicie niezależnie.

Typowe aplikacje HDL.

5 6
HDL zwykle obsługuje mieszane opisy, w których projekty strukturalne lub listy łańcuchów mogą być podłączone do opisów algorytmicznych i opisów zachowania. Jeśli istnieją takie opisy mieszanych poziomów, możliwe jest wyświetlenie architektury systemu na najwyższym poziomie abstrakcji; Projekt jest następnie szczegółowy, zwiększając wykonanie prywatnego poziomu komponentów. Alternatywnie stosuje się opis projektu HDL w FPGA Express, a następnie sprawia, że \u200b\u200bkompilator automatycznie syntetyzuje wykonanie na poziomie prymitywów logicznych.

Zalety HDL.

Metodologia projektu, który korzysta z HDL ma kilka podstawowych korzyści na tradycyjnej metodologii projektowania poziomu komponentów. Wśród tych zalet należy odnotować następujące czynności:

Możesz bardzo wiele sprawdzić funkcjonalność projektu i natychmiast go zmodyfikować. Modelowanie projektu na takim szczycie przed transmisją do wersji elementarnej pozwala przetestować wiele rozwiązań architektonicznych i projektowych.

FPGA Express zapewnia syntezę logiczną i optymalizację, dzięki czemu można automatycznie przekształcić opis VHDL do poziomu elementarnego dla wybranej technologii. Ta metodologia eliminuje wąskie gardła poziomu komponentu i zmniejsza czas projektowania, a także liczba błędów wykonanych przez ręczne nadawanie programu VHDL w określonych elementach. Przez optymalizacja logiczna FPGA Express Możliwe jest automatyczne przekształcenie syntetyzowanego projektu w najmniejszy i rozbieżny schemat. Ponadto może przypisać informacje uzyskane w syntezie i optymalizacji schematów, ponownie do istniejącego opisu VHDL, co prowadzi do dokładniejszej regulacji rozwiązań architektonicznych.

Opisy HDL zapewniają technologicznie niezależną dokumentację projektu i jego funkcjonalność. Programy te są czytane i rozumiane znacznie łatwiejsze niż listy łańcuchów lub schematów. Ze względu na fakt, że początkowy opis projektu HDL jest niezależny technologicznie, może używać go do generowania projektów z różnymi technologią bez wpływu na oryginał.

VHDL, podobnie jak większość poziomów wysokiego poziomu, produkować ciężko sprawdź. Składniki, których typ jest zadeklarowany sygnał czteroosobowy nie może być podłączony do sygnału trzech lub pięcioosobowego; Takie nieporozumienia spowoduje błąd kompilacji. Jeśli zakres zmiennych jest zdefiniowany od 1 do 15, błąd wystąpi, gdy wartość 0 zostanie przypisana. Nieprawidłowe użycie typów jest głównym źródłem błędów w opracowywaniu opisów. Sprawdź, czy sprawdź wykrywanie takich błędów, nawet przed generowaniem projektu.

Debugowanie w FPGA Express

W celu debugowania należy wdrożyć następujące działania:

7 8
Utwórz opis zaprojektowanego urządzenia (komponent) w języku VHDL w dowolnym edytorze tekstu. W tym przypadku warunkiem jest to, że rozszerzenie tego pliku musi być: * .vhd. (Na przykład, aby utworzyć plik, możesz użyć wbudowanego edytora dowódcy Norton za pomocą kombinacji klawiszy Shift-F4).

2. Podłącz utworzony plik do projektu w FPGA Express.

Aby podłączyć plik do projektu, musisz utworzyć sam projekt:

Wybierz menu Plik / Nowe.

Wprowadź nazwę projektu.

Prośba o pliki projektu, musisz znaleźć plik (y) utworzony w 1 punkcie z już gotowym opisem urządzenia (komponent).

Gdy projekt jest prawidłowo podłączony (S) pojawia się okno, podzielone na dwie części: Źródła projektowe i żetony (rys. 1). Gdzie źródła projektowania - okno do pracy z plikami projektu, żetony - okno do pracy z syntetyzowanymi urządzeniach.


Rys. 1. Okno projektu.

Aby ułatwić operację z plikami (s) projektu w oknie źródła projektowania, nazwa (ów) jest wyświetlana, lokalizacja (ów) plików, a także obecność błędów składniowych i leksykalnych lub nieścisłości.

Po najechaniu kursora i jednocześnie naciskając prawym przyciskiem myszy na dowolnej nazwy w tym oknie, pojawi się następujące menu kontekstowe (rys. 2):

Zaktualizuj projekt - analiza projektu dla nieścisłych lub błędów.

Projekt Force Update jest kompletną analizą wszystkich projektów Falatów dla błędów lub nieścisłości.

Utwórz implementację - tworzenie modelu urządzenia.

Edytuj plik - Edycja pliku.

Zidentyfikuj źródła - podłączanie pliku do projektu.

Nowa biblioteka - łączenie własnej biblioteki do projektu.

Raport projektu - Raport projektu (krótki opis w formie zewnętrznego pliku tekstowego).

Usuń - Usuń plik lub bibliotekę z projektu.


Podobnie jak we wszystkich aplikacjach z przyjaznym interfejsem, każdy element menu kontekstowego jest powielany przez proste menu i przyciski na panelu.
Rys.3. Część pliku z błędem

Edycja plików występuje podobnie do edytorów tekstowych, a jedyną różnicą jest to usuwanie znaków lub wierszy można wykonać tylko przy użyciu klucza space.

Po naprawieniu, aby wyszukać inne istniejące błędy w tym oknie, należy nacisnąć prawy przycisk myszy i wybierz analizuj element pliku w menu Active Context (wyszukaj nieścisłości lub błędy). Następny po udanym edycja jest pożądana, aby zapisać bieżące zmiany.

Jeśli nie ma błędów, odpowiedni plik będzie miał własną wersję syntetyzowaną (tj. Model urządzenia opisany w formacie wewnętrznym FPGA Express pokazano na rys. 4).

Rys.4. Syntetyczna wersja urządzenia Coder

Wersja z syntetyzowaną jest link pośredni, aby pomyślnie utworzyć model urządzenia cyfrowego.

4. Postępowanie

4.1 Używanie dowolnego edytora tekstu, wybierz opis urządzenia cyfrowego zgodnie z opcją. Aby zapobiec błędom, konieczne jest, aby plik ma rozszerzenie * .VHD.

4.2 Utwórz projekt w Debuger FPGA Express i podłącz do niego złożony plik.

4.3 Po prawidłowym opisie pliku opisu utwórz raport na temat projektu za pomocą FPGA Express.

Nazwa;

Cel pracy;

Używany sprzęt;

Część teoretyczna;

Opis sekwencji działań podczas debugowania opcji;

Wydruk raportu projektu;

1. Jaka jest aplikacja FPGA Express i jakie są jej główne funkcje?

2. Jakie są twoje zalety i wady języka HDL jako język opisu sprzętu?

3. Jaka jest sekwencja działań podczas debugowania opisów VHDL urządzenia?

11 12

Laboratorium Praca numer 2

Podstawowe możliwości debugera FPGA Express

1. Opis ogólny.

1.1. Celem pracy jest zbadanie możliwości syntezy i optymalizacji debugera FPGA Express.

Prace laboratoryjne składają się z zadań domowych i laboratoryjnych. Praca domowa jest powtórzenie zasad debugowania opisów VHDL. Zadanie laboratoryjne obejmuje wprowadzenie przykładu wykonania programu napisanego w VHDL i zbadać zasady syntezy i optymalizację zaprojektowanego urządzenia za pomocą debugera FPGA Express.

1.3. Używany sprzęt

Aby wykonać pracę laboratoryjną, używany jest IBM PC typu PEVM, monitor kolorowy z adapterem graficznym VGA i powyżej, drukarka.

2. Praca domowa i wytyczne dotyczące jego wdrożenia

Według przewodnika metodologicznego zaznajomił się i powtórzył miejsce docelowe i możliwość debugera modele urządzeń cyfrowych w języku VHDL.

3. Praca teoretyczna.

Metodologia projektowania

Na rys. 5 przedstawia typową procedurę projektowania, która korzysta z symulatora FPGA Express i VHDL. Każdy etap takiego modelu projektu jest szczegółowo opisany.



Figa. 5. Konstrukcja konstrukcyjna etapów projektowych

13 14
1. Zapisz opis projektu w języku VHDL. Ten opis może być kombinacją elementów strukturalnych i funkcjonalnych. Ten opis jest używany przez symulatorów VHDL FPGA Express i Synopsys.

2. Dostarczanie kierowców testowych VHDL dla symulatora. Sterowniki zapewniają wektor testowy do modelowania i zbierania wyjścia.

3. Modelowanie projektu za pomocą symulatora VHDL. Sprawdź poprawność opisu projektu.

4. Korzystanie z FPGA Express do syntetyzacji i zoptymalizowania opisu projektu VHDL do podstawowej listy łańcuchów. FPGA Express generuje zoptymalizowane listy łańcuchowe, które spełniają limity czasu wybranej architektury FPGA.

5. Korzystanie z systemu projektowania FPGA (Design Manager) do komunikowania konkretnej wersji technologicznej FPGA z symulatorem VHDL. System projektowy obejmuje modele symulacyjne i interfejsy potrzebne do projektowania końcowego do końca.

6. Modelowanie konkretnej wersji procesu projektu za pomocą symulatora VHDL. Dozwolone jest użycie oryginalnych sterowników modelowania VHDL z ust. 2, ponieważ definicje modułów i portów są zapisywane w procesie transmisji i optymalizacji.

7. Porównanie wyjścia modelowania na poziomie elementarnym (klauzula 6) z wyjściem modelowania oryginalnego opisu VHDL (klauzula 3) w celu sprawdzenia, czy wykonanie jest prawidłowe.

Hierarchia projektu.

FPGA Express obsługuje hierarchiczne granice zdefiniowane podczas korzystania z konstrukcyjnych wzorów strukturalnych VHDL. Te granice prowadzą do dwóch głównych wyników:

1. Każdy obiekt projektu zdefiniowany w opisie VHDL jest syntetyzowany oddzielnie i utrzymywany jako niezależny projekt. Jednocześnie uwzględniane są ograniczenia projektu, a każdy obiekt może być zoptymalizowany oddzielnie w FPGA Express.

2. Wdrożenia komponentów wewnątrz opisów VHDL są obsługiwane podczas wejścia. Nazwa implementacji przypisanej do każdego obiektu użytkownika jest zapisywana do wykonania na poziomie elementu.

Uwaga. FPGA Express nie obsługuje i nie tworzy automatycznej hierarchii innych niestrukturalnych struktur VHDL, takich jak bloki, procesy, cykle, funkcje i procedury. Te elementy opisu VHDL są nadawane w kontekście ich projektów. Po przeczytaniu projektu VHDL możesz grupować logikę procesu, funkcji lub procedur wewnątrz FPGA Express (okno wdrożenia).

Wybór bramek hierarchicznych ma znaczący wpływ na jakość syntezy projektu. Dzięki FPGA Express możesz zoptymalizować projekt, utrzymując hierarchiczne granice. FPGA Express tylko częściowo optymalizuje logikę na modułach hierarchicznych. Pełna optymalizacja jest możliwa w tych częściach hierarchii projektu, które są kompresowane w FPGA Express.

Przykładem konstrukcji hierarchicznej kompleksu urządzenia jest pokazane na FIG. 6.

Figa. 6. Struktura hierarchiczna

Typy danych.

W VHDL należy przypisać typ wszystkich portów, sygnałów i zmiennych. Rodzaj danych obiektów jest określony przez działanie, którą można do niego przypisane. Na przykład operator i jest określony dla obiektów typu Kawałek,ale nie dla obiektów obiektów Liczba całkowita. Typy danych są ważne iw syntezie projektu. Rodzaj danych obiektów określa jego rozmiar (szerokość w bitach) i organizacji bitowej. Prawidłowy wybór typów danych znacząco poprawia jakość projektu i pomaga zminimalizować liczbę błędów.

Ograniczenia projektu.

Konieczne jest opisanie jakościowe ograniczenia modułu projektu wewnątrz okna wdrażania FPGA Express.

Wybierz rejestr

Umieszczenie rejestrów i schematów taktowania to bardzo ważne rozwiązanie architektoniczne. Istnieją dwa sposoby zdefiniowania rejestrów w opisie VHDL. Każda z tych metod ma pewne zalety:

1. Wdrożyć rejestry bezpośrednio w opisie VHDL, wybierając dowolną pozycję z biblioteki FPGA. Schematy biletów mogą być dowolną złożonością. Wybiera architekturę na podstawie wyzwalaczy lub zatrzasków. Głównymi wadami tego podejścia są:

Opis VHDL jest teraz związany z określoną technologią, ponieważ wybrałeś elementy strukturalne z biblioteki technologicznej. Możliwe jest jednak izolowanie tej sekcji projektu w postaci oddzielnego obiektu, który będzie wówczas związany z resztą projektu.

Program jest napisany trudniejszy.

15 16
2. Użyj struktur. gdybyi czekać.Przynieść spust i zatrzaski z opisu. Zalety tego podejścia znajdują się bezpośrednio do niedociągnięć poprzedniego. Korzystając z logicznego opisu rejestru, program VHDL staje się niezależny technologicznie i łatwiejszy do pisania. Ta metoda umożliwia FPGA Express wybranie typu składnika opisanego w zależności od ograniczeń. Tak więc, jeśli potrzebny jest konkretny składnik, należy stosować jego wdrożenie. Jednak niektóre rodzaje rejestrów i zatrzasków nie można opisać logicznie.

Asynchroniczne projekty

Możliwe jest użycie FPGA Express do konstruowania asynchronicznych projektów z wieloma i sterowanymi impulsami synchronizacji. Jednak, chociaż projekty te są logicznie (statystycznie) poprawne, mogą być nieprawidłowo symulowane lub działające w związku z warunkami konkursu.

Struktury językowe.

Innym składnikiem polityki syntezy VHDL jest zestawem projektów opisujących projekt, definiują jego architekturę i zapewniają konsekwentnie dobre wyniki. Rejestry są realizowane za pomocą konstrukcji komponentów.

Laboratoryjna praca numer 3

Modele symulatora VHDL Modelsim

1. Opis ogólny.

1.1. Celem pracy jest zapoznanie się z modelami Modelesim Simulator VHDL.

Prace laboratoryjne składają się z zadań domowych i laboratoryjnych. Praca domowa jest powtórzenie zasad debugowania, syntezy i optymalizację opisów VHDL przy użyciu debugera FPGA Express. Zadanie laboratoryjne obejmuje wprowadzenie przykładowej wersji programu napisanego na VHDL i modelowanie i analizowanie urządzenia za pomocą symulatora Modelesim.

1.3. Używany sprzęt

Aby wykonać pracę laboratoryjną, używany jest IBM PC typu PEVM, monitor kolorowy z adapterem graficznym VGA i powyżej, drukarka.

2. Praca domowa i wytyczne dotyczące jego wdrożenia

Według przewodnika metodologicznego jest znany i powtórzyć miejsce docelowe i wszystkie główne cechy debugera modeli urządzeń cyfrowych w języku VHDL.

3. Praca teoretyczna.

21 22
Modelsim to system symulacji, który umożliwia symulację opisów prezentowanych w językach VHDL i HDL. W tym przypadku warunkiem wstępnym do prostego modelowania jest obecność opisu modelu aktywnego modelu, tj. W pewnym okresie czasu na wejściu, a odpowiednio, na wyjściu tego modelu, powinny wystąpić zmiany w stanach logicznych. Na przykład: istnieje opis elementu elementarnego czytnika (rys. 10).

Figa. 10. Schemat aktywnego urządzenia cyfrowego

To tutaj, oprócz opisywania struktury i funkcji samego elementu, konieczne jest utworzenie dodatkowego urządzenia generującego określoną sekwencję stanów logicznych wejść (ewentualnie wejściowa część tabeli prawdy) elementu czytnika.

Modelowanie w Modelsim.

W przypadku braku błędów na etapach połączeń plików za pomocą urządzenia aktywnego źródła, sam proces modelowania można uruchomić.

W zależności od celów modelowania w systemie MODESIM jest dostarczany: konwój dla tymczasowej uznania modelowania, a także możliwość bezpośredniego obserwacji w prawie wszystkich kluczowych procesach, które występują w urządzeniu (ten ostatni będzie rozważany w następnym laboratorium praca).

Rozważmy środki kontrolującego modelowania. W tym sensie, do pełnej kontroli nad procesem modelowania, wymagane jest menu główne i opcje są wymagane. Wszystkie elementy są przeznaczone do sterowania menu Uruchom, aw menu Opcje - pozycja opcji Symulacji (instalacja parametrów modelowania prywatnego).

Po włączeniu elementu Opcje Symulacji pojawi się panel wprowadzania parametrów modelowania (Rysunek 14).

Ten panel zawiera trzy zakładki:

Vsim. - bezpośrednio modelowanie parametrów. Instalowane są następujące parametry:

Domyślna długość uruchamiania - ustawianie minimalnego próbkowania czasowego procesu symulacji.

27 28
Limit iteracji - Maksymalny czas iteracji.

Stłumić ostrzeżenia - wyłączenie / obracanie systemu reakcji dla ostrzeżeń związanych z różnymi rodzajami nieścisłościami.

Domyślna siła rodzaj - ustawienie modelowania procesu modelowania (zamrożenie / napęd) / depozyt (w pełni pod kontrolą)).

Domyślny radix jest domyślnym widokiem sygnału (symboliczne / binarne / binarne) / oktokę (oktal) / dziesiętny (dziesiętny) / hex (szesnastkowy)).

Rysunek 14 - Symulować panel opcji

Ase.system działania systemu na różnych błędach (rys. 15):

rTion.- przerwa na modelowanie. (Uwaga (komentarz) / OSTRZEŻENIE (błąd)).

Ignoruj \u200b\u200btwierdzenia dotyczące ustalania granic systemu ochrony obronnej. (Uwaga / komentarz) / Ostrzeżenie (niedokładność) / Błąd (- Ustawia parametry wyjściowe pliku źródłowego w oknie błędu źródła) / awarię ("awaria")).

akcje systemowe.


4. Postępowanie

5. Instrukcje

Część teoretyczna;

Opis sekwencji działań z opisami instalacji urządzenia do modelowania;

Wnioski dotyczące wykonanej pracy.

5.2. Kontroluj pytania do pracy laboratoryjnej

1. Jaka jest potrzeba korzystania z systemów modelowania podobnych modelem.

2. Jakie są niedociągnięcia systemu, jeśli takie istnieją?

3. Jaki jest twój widok na zastosowanie systemu MODESIM?

29 30

Laboratorium Praca numer 4

Symulator Modelsim.

1. Opis ogólny.

1.1. Celem pracy jest uzyskanie umiejętności do symulacji urządzeń projektowych w systemie MODESIM.

Prace laboratoryjne składają się z zadań domowych i laboratoryjnych. Praca domowa jest powtórzenie zasad współpracy z symulatorem modelem, opanowany w poprzednich prac laboratoryjnych. Zadaniem laboratoryjne jest podłączenie wersji programu napisanego na VHDL i przeprowadzanie pełnego modelowania i analizując zaprojektowane urządzenie za pomocą modeliM.

1.3. Używany sprzęt

Aby wykonać pracę laboratoryjną, używany jest IBM PC typu PEVM, monitor kolorowy z adapterem graficznym VGA i powyżej, drukarka.

2. Praca domowa i wytyczne dotyczące jego wdrożenia

Powtórz materiał opanowany w poprzednich klasach.

3. Praca teoretyczna.


i wyjście) / sygnały wewnętrzne (sygnały wewnętrzne)).

Aby to zrobić, w Modelsimach utworzono system informacji o informacjach i informacjach funkcjonalnych (widok menu głównego). Głównym warunkiem dla wszystkich systemu Windows jest prawidłowo podłączony plik źródłowy z opisem VHDL symulowanego urządzenia.

Rozważmy zasady pracy z nim:

1. Źródło - Okno z źródłem pliku VHDL (rys. 16). Umożliwia zainstalowanie stopy (dla tego potrzebujesz podwójnego naciśnięcia lewym przycisku myszy na numerze linii). Aby zmienić okno zawartości, musisz aktywować plik Wybierz plik źródłowy ... Główne menu pliku (Zmień plik źródłowy może znajdować się tylko w pliku podłączony do projektu) lub dwukrotnie kliknąć lewym przyciskiem myszy w oknie raportu i Sprawdź pytania.

5.1. Raport z raportem laboratoryjnym musi zawierać:

Nazwa;

Cel pracy;

używany sprzęt; struktura na nazwie wymaganego pliku. Uwaga: Okno nie pozwala na edycję plików źródłowych.


Rys .16. Okno źródła

2. Struktura. - Okno zawierające strukturę i podporządkowanie plików projektu (rys. 17). Przenosi funkcję pomocniczą dla okna źródła.

Figa. 17. Okno struktury


3. Zmienne. - Okno zawiera całą wewnętrzną zmienną konstrukcję języka VHDL używanego do opisania bieżącego podłączonego modelu (rys. 18). Tylko funkcja informacyjna nosi.

4. Sygnały. - Okno zawierające listę i wartości wszystkich portów i sygnałów we / wy (rys. 19). Okno przechwytuje wszelkie zmiany zawartości wszystkich portów we / wy. Możliwe jest usunięcie, dodanie lub zainstalowanie ograniczonej liczby sygnałów lub portów w tym oknie w zależności od tego

Wartość - bieżąca wartość sygnału.

Figa. 21. Okno sygnału siły

OPÓŹNIENIE. - Czas opóźnienia bieżącej wartości sygnału (wartość wartości jest określona po prawej stronie pola wejściowego).

Druga wartość. Wartość jest następnym stanem tego sygnału lub portu we / wy.

: Aby wprowadzić dokładnie rodzaj opóźnienia przed zmianą strumienia do wartości, którą Uwaga jest informacja o błędach ostrzegawczych związanych z modelowaniem urządzenia, Opóźnienie drugiej wartości - Wartość jest dostarczana do zaprojektowanego urządzenia.

jego status kolejnej (drugiej wartości). Uwaga: Wartość tego pola musi być koniecznie opóźnienia sygnału.


POWTARZAJ KAŻDE -to pole jest opcjonalnym parametrem do modelowania, ponieważ Oznacza to okres powtórzeń zmian w stanie portu wejściowego / wyjściowego lub wartości sygnału. Pole jest włączone w podstawowych parametrach zmian z flagą aktywowaną naprzeciwko go.

Uwaga: Wartość tego pola powinna być koniecznie większa niż wartość w opóźnieniu do pola drugiego wartości, ponieważ punkt wyjścia procesu modelowania jest wspólny dla wszystkich opóźnień sygnału.

Uprzejmy. - Ustaw stopień autonomii wprowadzonych zmian. (Freeze (System autonomicznie steruje zmianami) / napęd (możliwość kontroli) / depozyt (niekontrolowane zarządzanie projektantem)).

Aby potwierdzić wprowadzone ustawienia zmiany sygnału lub port I / O, kliknij przycisk Zastosuj.

Aby ustawić parametry zmian w innym sygnale, należy go wybrać w oknie sygnałów.

Możliwe jest zainstalowanie ograniczonej listy sygnałów za pomocą okna sygnału, w którym można wybrać najbardziej potrzebne z nich, a dodać do listy elementu (Sub-Clause wybrane sygnały (dotyczy dodania wybranej grupy do okna listy)) . Ponadto wszystkie sygnały bieżącego projektu można wykonać na liście (przy użyciu sygnałów w projektowaniu), wszystkie aktywne sygnały w momencie symulacji (przy użyciu sygnałów w regionie) lub sygnały związane z dowolnym przepływem informacji (przy użyciu okna Dataflow (wybierając Wymagany przepływ) i sygnały akapitowe z Dataflow ...).

Uwaga.

Animowany krok rejestracji zmian w wartościach sygnałowych jest ustawiony w parametrach procesu symulacji (opcje ... / symulować opcje ...). Okno zapewnia różne opcje powiązane z mocowaniem zmian w sygnałach i zapisz wynikową tabelę w oddzielnym pliku.

6. Proces. - Okno zawierające nazwę i stan VHDL -Processions z bieżącego symulowanego urządzenia (rys. 23). Możliwość ograniczonej produkcji procesów podczas korzystania z elementu procesów w menu głównym Opcje (możliwe jest wyprowadzenie wszystkich procesów aktywnych (wyświetlania procesów aktywnych) lub aktywnych procesów w bieżącym etapie (symulacja)).

Figa. 23. Okno przetwarzania

7. Fala - okno wymagane do wyjścia tymczasowych diagramów określonego zestawu sygnałów lub portów I / O (rys. 24).

Figa. 24. Okno falowe

Okno ma wszystkie właściwości elastycznego narzędzia do monitorowania sygnałów w ramach samego procesu modelowania. W agregacie z oknem sygnałów i punktem Dodaj do przebiegu menu głównego sygnałów, to okno ma możliwość definiowania ograniczonej listy sygnałów wybranych sygnałów (instalacja na liście roboczej sygnałów wybranych w oknie sygnałów) , sygnały sub-klauzulskie w regionie (monitorowanie aktywnych sygnałów na bieżącym symulacji), sygnały akapitu w projektowaniu (ustawienie wszystkich sygnałów projektu), sygnały pod-klauzula z Dataflow (ustawianie sygnałów związanych z wybranym przepływem informacji z okna Dataflow))))) . Podobnie jak wszystkie okna funkcjonalne, to okno ma możliwość pracy z listą sygnałów wyjściowych (menu okna kursora i edycji), umożliwia kontrolowanie wyjścia diagramów czasu (zoom menu i opcji). Dodatkowym środkiem pomocniczym jest suwak (zainstalowany w dowolnym momencie diagramu za pomocą myszy), co naprawia czas modelowania w bieżącej pozycji. Ponadto, gdy zmieniając pozycję biegacza, jeśli wartości dowolnych sygnałów zostaną zmienione w następnym położeniu, odpowiednie zmiany są rejestrowane na liście zdjęć sygnałów (po lewej stronie diagramów, jak pokazano na rys. 24).

8. DATAFLOW - Okno wyświetlające organizację wszystkich przepływów informacyjnych obecnych w urządzeniu modelującym (rys. 25).

Figa. 25. Okno Dataflow.

Podobnie jak najbardziej funkcjonalne okna, działa w połączeniu z innymi oknami:

Sygnały (to okno umożliwia wybór następującego sygnału, aby dodatkowo wizualizować powiązane strumienie informacji w oknie Dataflow).

Proces (z tym oknem można wybrać proces dalszego zademinowania ich przepływów).

4. Postępowanie

4.1. Korzystanie z dowolnego edytora tekstu, wybierz opis urządzenia cyfrowego zgodnie z opcją. Aby zapobiec błędom, konieczne jest, aby plik ma rozszerzenie * .VHD.

4.2. Utwórz projekt w systemie modelowania Modelsim i połącz się z nim wpisany i złożony w pliku FPGA Express.

4.3. Po prawidłowym podłączeniu pliku opisu zainstaluj system, aby przetestować urządzenie.

4.4. Testowanie i pełna analiza urządzenia cyfrowego zgodnie z opcją.

5. Instrukcje dotyczące rejestracji raportu i kwestii kontrolnych

5.1. Raport z raportem laboratoryjnym musi zawierać:

Nazwa;

Cel pracy;

Używany sprzęt;

Część teoretyczna;

Opis sekwencji działań w procesie analizy i modelowania opcji;

Wydruk wszystkich stanów, wszystkie sygnały;

Drukowanie pliku źródłowego;

Wydruk tymczasowych diagramów i procesów;

Wnioski dotyczące wykonanej pracy.

5.2. Kontroluj pytania do pracy laboratoryjnej

1. Jakie są główne funkcje sygnałów i okien falowych?

2. Jak ważna jest wizualizacja struktury przepływów informacji w projekcie podczas projektowania?

37 38
3. Urządzenia z typami sygnałów, twoją opinię, można przetestować w symulatorze Modelsim?

Laboratorium Praca numer 5

Znajomość języka VHDL

1. Opis ogólny.

Dzwon.

Są ci, którzy przeczytali tę wiadomość przed tobą.
Subskrybuj odbieranie artykułów świeżych.
E-mail
Nazwa
Nazwisko
Jak chcesz przeczytać dzwonek
Bez spamu