TC2 wyklad 2009, Elektronika i Telekomunikacja, EiT pwr, Semestr 4, Technika Cyfrowa 2


PROGRAMOWALNE UKŁADY LOGICZNE

kryteria klasyfikacji:

• ilość bramek w układzie (złożoność układu, tzw. stopień integracji),

• technologia wykonania.

Stopień integracji -liczba bramek logicznych w układzie

• SSI (Small Scale Integration) < 10

• MSI (Medium Scale Inetgration) 10 - 100

• LSI (Large Scale Inetgration) 100 - 10.000

proste mikroprocesory (4004, 8008)

• VLSI (Very Large Scale Inetgration) > 10.000

Mikroprocesory(i486Dx , Pentium)

UWAGI:

• Klasyfikacja utworzona na początku lat 80.

• Obecnie miarą złożoności mikroprocesorów jest liczba tranzystorów niż bramek (pamięci podręczne cache...).

Technologie

• Tranzystory bipolarne

- rodzina TTL (Transistor-Transistor Logic)

- rodzina ECL (Emiter Coupled Logic)

• Tranzystory unipolarne MOS: mniejszy pobór mocy, mniejsze rozmiary

- pMOS: chronologicznie pierwsze

- nMOS: szybsze (większa ruchliwość nośników n);

technologia HMOS: down, sizing, zmniejszanie długości kanału tranzystora zwiększa także szybkość; największy stopień scalenia

- Complementary MOS, CMOS: oba typy tranzystorów MOS, najmniejszy pobór mocy

Układy ASIC

Application Specific Integrated Circuits

Układy ASIC: użytkownik ma w pewien sposób wpływ na strukturę logiczna układu

Full-Custom

Semi-Custom

• Standard Cells

• Gate Arrays

Field Programmable Gate Arrays (układy FPGA)

Programmable Logic Devices (układy PLD)

Rodzaje układów ASIC

• Dwie pierwsze klasy układów ASIC (Full Custom, Semi Custom) - programowalne w procesie produkcji (programowalne maską).

• Dwie pozostałe klasy układów (PLD, FPGA): wszystkie układy określonego typu opuszczają producenta identyczne programowanie układu po jego wykonaniu poprzez utworzenie połączeń w istniejącej sieci ścieżek sygnałowych.

Zalety ASIC:

Niższe koszty zaprojektowania, wykonania i uruchomienia systemu cyfrowego. Możliwości reprogramowania układu.

Full-Custom ASIC

• Użytkownik sam projektuje komórki logiczne układu, rozmieszczenie oraz połączenia.

• Produkcja we wsadach po 5 ÷ 30 wafli (wafer), każdy wafel zawiera 10 ÷ 100 układów.

Standard-Cell ASIC

• Układ projektowany z predefiniowanych standardowych komórek (standard cells), zaprojektowanych w trybie full-custom;

• Duże komórki, realizujące złożone bloki funkcjonalne (np. mikroprocesory) - tzw. mega cells, cores.

• Regularny rozkład komórek w układzie.

Gate-Array ASIC

• Regularna, niezmienna struktura elementów układu - użytkownik projektuje sieć połączeń

• Standardowe układy produkowane seryjnie

• Taniej i szybciej niż standard-cell.

Układy PLD (Programmable Logic Devices)

• Standardowe, produkowane masowo układy scalone opuszczają producenta w identycznej postaci.

• Nie ma modyfikowanych masek (komórki logiczne czy metalizacje),

jeden duży blok programowanych połączeń programowanie wyłącznie po stronie użytkownika.

Układy FPGA ( lub FPLD - Field Programmable Logic Devices)

• Zasada programowania podobna do PLD, ale bardziej złożona struktura.

• Programowanie nie tylko sieci połączeń (jak w PLD), ale także pewien sposób konfigurowania funkcji komórek logicznych:

• Liderzy architektur FPGA: firmy Xilinx oraz Altem.

0x01 graphic

Programowanie układów:

- programowanie jednokrotne (Programmable ROM, PROM)

- programowanie kasowalne przez naświetlenie promieniami UV (Erasable Programmable ROM, EPROM)

napięcie programowania VPP>>+5V (+15 ÷ 20V),

Kasowanie:

• Naświetlenie promieniowaniem jonizującym, jonizacja dielektryka - spłynięcie wzbudzonych elektronów z bramki swobodnej.

• Obudowy z oknem ze szkła kwarcowego.

• Jeśli trwa za długo - niebezpieczeństwo nieodwracalnego pozbawienia bramki swobodnej możliwości

uwięzienia elektronów (over-erasure).

• Samoczynne kasowanie pod wpływem promieniowania słonecznego, promieniowania tła

• Ograniczona ilość cykli programowanie - kasowanie; rzędu 1000.

• Czas programowania najkrótszy wśród metod programowania odwracalnego.

• Bardzo dobre możliwości scalania (pojedynczy tranzystor jako jednocześnie urządzenie programujące i odczytujące).

- programowanie kasowalne elektrycznie (Electrically Erasable PROM, EEPROM, E2PROM)

efekt tunelowy Fowlera - Nordheima, wstrzyknięcie elektronów wprost z drenu.

• niższe napięcie programowania (VGD ~ +12V)

• Niższe natężenie prądu, dłuższy czas programowania

• Kasowanie: ten sam efekt przy odwróconej polaryzacji napięć

• Podczas kasowania niebezpieczeństwo silnego dodatniego naładowania bramki swobodnej

(tranzystor stale otwarty) specjalne układy kontrolujące rozładowanie.

Programowanie nieodwracalne (One -Time Programming, OTP)

A. Bezpieczniki (Fuses)

• Technologia chronologicznie pierwsza, związana z układami bipolarnymi.

• Metoda: przepalenie bezpiecznika - fragmentu odpowiednio przygotowanej ścieżki metalizacji.

B. Antybezpieczniki (Antifuses)

• Antybezpiecznik jest normalnie rozwarty (off); przepuszczenie odpowiednio dużego

prądu (5 ÷ 15 mA) stapia izolujący dielektryk i powoduje stałe zwarcie (on).

• Antybezpieczniki zajmują mniej miejsca, dzięki niskiej rezystancji i pojemności są także szybkie.

żne technologie programowania wielokrotnego - podsumowanie

0x01 graphic

Pamięci Flash = technologia E2PROM + możliwość jednoczesnego kasowania wszystkich

lub grupy komórek.

Układy PLD

Elementy:

N linii poziomych z sygnałami WE I1...IN,

K linii pionowych reprezentujących tzw. termy T1 ... TK,

M linii poziomych z sygnałami WY F1...FM,

• połączenia programowalne

Analiza pracy:

• Tranzystory MOS otwierane poziomem „0” logicznego (napięciem niskim).

Klasyfikacja architektur PLD

0x01 graphic

• Nieprogramowalność oznacza, że w danej matrycy linie sygnałowe są na stałe dołączone do określonych bramek.

• Np. w układach PAL linie termów są na stałe dołączone do bramek OR: matryca OR jest nieprogramowalna,

Układy PLE

• Nieprogramowalna matryca AND.

pamięć ROM (Read Only Memory) o organizacji 8 słów 4-bitowych, której zawartość ustala się programując matrycę OR.

• W zależności od technologii pamięć PROM, EPROM lub E2PROM.

• W porównaniu do klasycznych realizacji pamięci ROM:

- zaleta: szybsza odpowiedź

- wada: mniejszy stopień scalenia, mniejsze pojemności

Bufory trójstanowe - zwykle występują na wyjściach w układach PLE

Bufor 3-stanowy: (OE - Output Enable)

OE=1 > OUT=IN (0 lub 1)

OE=0 > OUT=Z (stan wysokiej impedancji)

Układy PAL

• Nieprogramowalna matryca OR => każdy term dołączony na stałe do jednej z bramek OR

• Struktura: dwupoziomowy układ AND - OR (SOP, Sum Of Products)

• Najbardziej rozpowszechniona rodzina układów PLD

• Produkowana początkowo głównie w dwóch technologiach

- PROM: przepalane bezpieczniki, szybkie układy bipolarne

- EPROM: układy MOS

obecnie także w technologii E2PROM (np. rodzina PALCE, EE CMOS)

• Podstawowa klasyfikacja układów PAL:

- kombinacyjne

- rejestrowe

- z makrokomórkami programowalnymi

Układy PAL kombinacyjne

• Układ PAL16L8 -10 WE / 8 WY,

matryca 64x32 - 6 WY ze sprzężeniami zwrotnymi (dwa skrajne bez!)

• Termy linie poziome; obudowa 20-wyprowadzeniowa; w układach większych obudowa 24-wypr.

• Wejścia do matrycy programowalnej (linie pionowe)

Piny WE + sprzężenia zwrotne z WY. Ich liczba = liczba WE + liczba sprzężeń zwrotnych.

• Wszystkie sygnały w matrycy są dostępne komplementarnie; funkcje WY są zanegowane.

PAL16L8: Komórka WY

• Na każde wypr. WY przypada 8 termów (AND): 1 sterujący buforem + 7 dołączonych na stałe do bramki OR

• Matryca AND: 64 x 32 punktów programowania (8x8 = 64 linii termów, (10 + 6) x 2 = 32 pionowych linii sygnałowych)

• Obudowa 20 wyprowadzeniowa (10 WE + 8 WY + Vcc + GND)

Układy PAL rejestrowe

Układ PAL16R8

• Sygnał z każdej bramki OR podawany na przerzutnik typu D

• Dwa sygnały WE wspólne dla wszystkich komórek WY:

- Clk

- /OE

• Po 8 termów na każdą bramkę OR

• Matryca programowalna 64 x 32

• Sygnały dostępne w matrycy: 8 WE + 8 sprzężeń zwrotnych z przerzutników

• Obudowa 20-wypr. (8WE+Clk+/OE + 8WY + Vcc + GND)

• OE nieprogramowalny, wyprowadzenia WY nie mogą być dwukierunkowe

Układy pokrewne 16R8

16R6: dwa skrajne WY rejestrowe zastąpiono WE/WY kombinacyjnymi identycznymi

jak w 16L8 (7 termów dołączonych do bramki OR + 1 term sterujący buforem trójstanowym;

sprzężenie zwrotne pobrane za buforem możliwa praca dwukierunkowa).

16R4: cztery skrajne WY jako kombinacyjne WE/WY j.w.

PAL 16 L 8

PAL 16 R 6

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

Układy PAL z makrokomórkami programowalnymi

PAL22V10

• Bramki OR dołączone do 10 jednakowych makrokomórek programowalnych

• Matryca AND 132 x 44

• Sygnały w matrycy: 12 wyprowadzeń zewnętrznych + 10 sprzężeń zwrotnych

• Różna liczba termów dołączonych do bramek OR: 8/10/12/14/16/16/14/12/10/8

• Dodatkowe dwa termy realizujące wspólne dla wszystkich makrokomórek sygnały AR i SP

• Obudowa 24-wyprowadzenia (12 WE + 10 WY + Vcc + GND)

Makrokomórka OLMC - Output Logic Macro Cell

• Zaprogramowanie dwóch punktów (S0 oraz S1) steruje pracą multiplekserów i określa konkretną funkcję makrokomórki.

• Przerzutnik typu D z sygnałami AR (Asynchronous Reset) oraz SP (Synchronous Preset) - dwa dodatkowe termy globalne w matrycy.

• Sygnał Clk wspólny dla wszystkich makrokomórek, pobierany z WE I0.

• Dodatkowy term steruje bufor 3-stanowy.

0x01 graphic

Układ PAL16V8

• Poza konfiguracjami niestandardowymi może emulować dowolny układ z rodziny 16R8 lub z rodziny 10H8.

• Obudowa 20 wyprowadzeń, matryca AND 64 x 32.

• 8 programowalnych makrokomórek WY (MC0 ÷ MC7).

• 2 globalne punkty programowania (SG0, SG1) i po 2 lokalne w każdej makrokomórce (SL0i, SL1i) razem 18 pkt programowania

Układy PAL / GAL - uwagi:

• Moduły PLD z makrokomórkami programowalnymi wprowadziła firma Lattice Semiconductors i nazwała je GAL (Generic Array Logic).

Układy PLA

• Najbardziej uniwersalna struktura PLD: obie matryce programowalne.

• obecnie wyparte przez prostsze układy PAL, znacznie rzadziej od nich stosowane.

Układy PGA / FPGA

Gate Arrays - najprostsza z technologii układów programowalnych maską(gotowa matryca bramek + projektowanie warstw metalizacji).

Programmable Gate Arrays - matryca gotowych bloków + programowanie punktów połączeń linii sygnałowych jak w technologiach PLD.

• FPGA (Field Programmable GA) - układy reprogramowalne elektrycznie.

- CLB (Configurable Logic Block) = konfigurowalny blok logiczny

(dowolna funkcja boolowska zmiennych wejściowych + przerzutnik(i))

- SW (Switch Matrix) = programowalne połączenia pomiędzy różnego rodzaju liniami sygnałowymi, biegnącymi pomiędzy CLB.

- I/O Block = bufonowanie wyprowadzenia zewnętrznego.

JEDEC (Joint Electron Device Engineering Council).

Programowanie w systemie (In System Programming, ISP)

• Programowanie układu „wlutowanego”

• Joint Test Action Group (JTAG)

• IEEE 1149.1- standard testowania połączeń obwodów drukowanych.

- interfejs TAP (Test Access Port): 4 sygnały, urządzenia połączone szeregowo

- język BSDL (Boundary Scan Description Language): zestaw instrukcji testujących przesyłanych interfejsem TAP

• IEEE 1532 Standard for In-System Configuration of Programmable Devices standaryzacja zastosowania 1149.1 do programowania ISP.

• 4 sygnały interfejsu TAP:

- TDI (Test Data Input)

- TDO (Test Data Output)

- TMS (Test Mode Select)

- TCK (Tes tClock)

Programowanie PLD - System CUPL

System CUPL składa się z następujących programów: CUPL, CSIM, CBLD, PTOC

CUPL - Universal Compiler for Programmable Logic - uniwersalny kompilator do programowalnych układów logicznych.

CSIM - CUPL SIMULATOR - symulator układów logicznych zaprogramowanych kodem wytworzonym przez kompilator CUPL.

CBLD - CUPL BUILD - program zarządzający bibliotekami urządzeń logicznych dla kompilatora CUPL.

PTOC - PALASM To CUPL Translator - program do tłumaczenia zbiorów dyskowych zapisanych w formacie programu PALASM

na format wejściowy kompilatora CUPL.

Umożliwia programowanie układów:

• PROM (Programmable ROM,

• PAL (Programmable Array Logic),

• PLA (Programmable Logic Array),

• PGA (Programmable Gate Array)

• PLS (Programmable Logic Sequencer).

Zbiory wyjściowe mogą być wyprowadzone w formatach:

• .JED - JEDEC z wektorami testu lub bez (dla większości programatorów),

• .HEX - dla układów PROM,

• .HL - dla układów ImFL firmy Signetics,

• .DOC - zbiory dokumentacyjne,

• .LST - wykazy błędów kompilacji,

• .SO - wykazy błędów wykrytych podczas symulacji.

Składnia

Komentarze

/* komentarz */

Identyfikatory

Identyfikatorem jest ciąg znaków alfanumerycznych (cyfry, litery, podkreślenia) zawierający co najmniej

jedną literę, o długości nie większej niż 31 znaków.

Przykłady: a0, A0, 8250_ENABLE, _address;

Identyfikatory indeksowe

Identyfikatorem indeksowym jest identyfikator zakończony liczbą dziesiętną z zakresu od 0 do 31:

idn;

gdzie n jest liczbą dziesiętną.

Identyfikator pola bitowego o indeksie 0 zawsze oznacza najmniej znaczący bit.

Przykłady poprawnych identyfikatorów indeksowych: A0, Al, A2, counter_bit_3;

Listy

Przykłady:

[UP,DOWN,LEFT,RIGHT]; [A0..7];

[A0..7, B0..3]; [select, OUT0..3];

Stałe liczbowe

Przykłady

'B'1101, BA, 'O'[300..477], 'b' 1X11, 'O'0X6, `d`29

Operatory

Bitowe operatory logiczne.

! - negacja (dopełnienie) - NOT,

& - koniunkcja - AND,

# - alternatywa - OR,

$ - różnica symetryczna - XOR;

Listowe operatory logiczne.

Przykład : [D0, D1, D2, D3]:&; jest równoważne wyrażeniu ; D0 & D1 & D2 & D3;

Operator przyrównania

Operator przyrównania jest operatorem dwuargumentowym. Argumentami mogą być lista i stała oraz lista i zakres stałych, wynikiem zaś pojedyncze wyrażenie boolowskie. Lista może być zapisana w sposób niejawny jako pole bitowe.

Przykład : [A3..0]:D; oznacza: A3 & A2 & !A1 & A0;

Listowy operator przypisania

Operator przypisania między listami identyfikatorów oraz poszczególnymi wartościami wejść i wyjść jest stosowany przy specyfikacji układu za pomocą tablic prawdy.

Przykład

Konwerter z kodu binarnego na BCD:

TABLE [in3..0] => [out4..0]{

0=>00; 1=>01; 2=>02; 3=>03;

4=>04; 5=>05; 6=>06; 7=>07;

8=>08; 9=>09; A=>10; B=>11;

C=>12; D=>13; E=>14; F=>15;

}

Instrukcja APPEND

Instrukcja umożliwia wielokrotne przypisywanie identyfikatorowi różnych wyrażeń, następnie łączonych operatorem alternatywy.

Przykład

APPEND Y = AO & Al;

APPEND Y = BO & B1;

APPEND Y = CO & C1;

są równoważne wyrażeniu:

Y = AO & A1 # BO & B1 # CO & C1;

Deklaracje

Deklaracje wyprowadzeń z układów

Przykłady

PIN 1 = clock;

PIN 2 = !enable;

PIN [3..4] = ![stop,go];

PIN [5..7] = [a0..2];

Deklaracje pól bitowych

Przykłady

FIELD count=[Q3..0];

FIELD mode =[clr,dir];

Rozszerzenia

W celu wskazania na specyficzną funkcję pełnioną przez identyfikator można do niego dodać rozszerzenie, np. .D oznacza wejście przerzutnika typu D, a .OE wejście uaktywniające trójstanowy bufor wyjściowy. Q0.d Q0.oe

Opis automatów

Opis układu sekwencyjnego jest możliwy przez zastosowanie instrukcji o następującym formacie:

SEQUENCE lista zmiennych stanu{

PRESENT stan_n0 podinstrukcje

}

Podinstrukcje zapewniają możliwość opisu automatów synchronicznych i asynchronicznych.

Konstrukcja instrukcji warunkowej ma postać:

CONDITION{

IF wyr0 OUT id0;

IF wyrn OUT idn;

[DEFAULT OUT ;]

Służy ona tylko do opisu automatów asynchronicznych. Format podinstrukcji instrukcji SEQUENCE jest następujący:

podinstrukcja zmiany stanu:

NEXT stan_Y;

podinstrukcja asynchronicznego wyprowadzenia sygnału:

OUT id1 ... OUT idn;

podinstrukcja warunkowej zmiany stanu:

IF wyrl NEXT stan_Y1;

IF wyrn NEXT stan_Yn;

[DEFAULT NEXT stan_Yn+1 ;]

Przykład

Licznik binarny modulo 5

Sequence Q2..0 {

present 0 next 1;

present 1 next 2;

present 2 next 3;

present 3 next 4;

present 4 next 5;

}

Układy CPLD

Układy koncepcyjnie podobne do SPLD, lecz bardziej złożone:

-większe zasoby logiczne i możliwości funkcjonalne

-struktura hierarchiczna oparta o makrokomórki logiczne

-od 4 do 16 komórek łączy się tworząc blok logiczny

-większa liczba termów przypadająca na pojedynczą makrokomórkę

-możliwość pożyczki termów z sąsiednich makrokomórek

Układy CPLD i FPGA różnią się architekturą, mają różną strukturę połączeń między blokami

Oprócz znanych z SPLD metod: bezpieczniki, antybezpieczniki, tranzystory z izolowaną bramką

w układach CPLD oraz FPGA stosuje się statyczne pamięci RAM. Ponieważ pamięci RAM są ulotne więc ich zawartość musi być ładowana po włączeniu zasilania z zewnętrznych nieulotnych pamięci konfiguracji Istnieje możliwość rekonfiguracji układu w czasie pracy.

Pierwsze dostępne na rynku CPLD to układy MegaPal firmy MMI.

Matryce połączeniowe realizowane są w postaci:

a) kratownice - największe możliwości łączeniowe, wymaga jednak bardzo dużej ilości punktów programowalnych,

b) matryce zrealizowane w postaci zespołów programowalnych multiplekserów,

Układy CPLD firmy Altera

1) Rodziny MAX3K/7K/9K - klasyczna architektura CPLD

2) FLEX6K/8K, FLEX10K

3) APEX20K

4) ACEX1, ACEX2

Układy 2), 3) , 4) o dużo bardziej skomplikowanej architekturze, posiadają:

- konfigurowalne bloki pamięci SRAM

- wbudowane pętle PLL

- ultraszybkie interfejsy LVDS (Low Voltage Differential Signaling)

Rodziny MAX3K/MAX7K

- układy najmniej złożone

- MAX3K od 32 do 256 makrokomórek programowalnych

- MAX5K od 32 do 512 makrokomórek programowalnych

- technologia CMOS z reprogramowalną pamięcią konfiguracji EEPROM

- możliwość programowania i testowania w systemie dzięki interfejsowi JTAG

- podstawowy element to bloki logiczne LAB (Logic Array Block) składające się 16 makrokomórek

- szybka matryca połączeniowa PIA (Programmable Interconnect Array) wykonana

z użyciem programowalnych multiplekserów

- globalne sygnały OE rozprowadzane w strukturze przez PIA

Układy CPLD firmy Xilinx

Rodzinę układów XC9500 charakteryzują:

• duża szybkość działania (5ns opóźnienia pomiędzy pinami, fcnt do 125 MHz)

• duża gęstość upakowania (od 36 do 288 makrokomórek z 800 do 6,400 użytecznymi bramkami)

• układy programowalne w systemie o napięciu zasilania 5V (możliwość 10000 cykli progr. i kasowania)

• układy składają się z „elastycznych” bloków funkcyjnych

• posiadają interfejs standardu IEEE 1149.1 (JTAG)

• zapewniają programowalny tryb redukcji mocy dla każdej komórki

• wyjścia układów przewodzą prąd do 24 mA

• nóżki wejściowo-wyjściowe mogą być ustawione na standard 3,3V lub 5V

Architektura układu rodziny XC9500

- Każdy blok funkcyjny FB daje możliwość zaprogramowania 36 wejść i 18 wyjść.

- Bloki wejścia/wyjścia między innymi buforują sygnały wejściowe i wyjściowe z układu oraz zapewniają odpowiednie parametry elektryczne wyprowadzeń.

Matryca przełączająca łączy wszystkie wyjścia bloku FB z wejściami innego bloku FB. Dla każdego bloku FB

wyjścia w liczbie od 12 do 18 skojarzone z sygnałami output enable sterują bezpośrednio blokami wejścia/wyjścia IOB.

Blok funkcyjny układu rodziny XC9500

- z 18 niezależnych makrokomórek, każda może realizować funkcję kombinacyjną lub rejestrową

- do bloku funkcyjnego doprowadzony jest sygnał zegara oraz sygnały set/reset

- poprzez generację stanów na 18 wyjściach steruje matrycą przełączającą

- wyjścia wraz z sygnałami output enable sterują blokami IOB

Makrokomórka bloku FB układów rodziny XC9500

- każda makrokomórka w bloku może być indywidualnie skonfigurowana tak, aby realizować funkcje kombinacyjne lub rejestrowe

Blok PTA (Product Term Allocator)

- blok PTA makrokomórki steruje wykorzystaniem pięciu bezpośrednich linii product terms dochodzących do niej

Matryca przełączająca dostarcza sygnały z bloków IOB i FB do wejść bloków FB. Wszystkie wyjścia

bloków FB i wejścia/wyjścia bloków IOB są podawane na tę matrycę. Za pomocą matrycy użytkownik

wybiera sygnały, które mają dochodzić do danego bloku FB.

Bloki wejścia/wyjścia IOB stanowią interfejs pomiędzy wewnętrzną logiką, a nóżkami wejścia/wyjścia układu.

Każdy blok zawiera bufor wejściowy, sterownik wyjściowy, multiplekser wyboru output enable oraz programowalne uziemienie.

Bufor wejściowy jest kompatybilny ze standardami 5V CMOS, 5V TTL i poziomami sygnału 3,3V, używa wewnętrznego 5V źródła zasilania (VCCINT) w celu zapewnienia stałych progów wejścia i eliminacji wahań napięcia VCCIO.

Sygnał output enable może być generowany w następujący sposób, jako:

• sygnał product term z makrokomórki,

• dowolny sygnał zegara globalnego,

• zawsze „1” lub zawsze „0”.

Rezystory podciągające (typowa wartość 10k) są dołączone do każdego układu wejścia/wyjścia w celu zabezpieczenia go przed stanem nieokreślonym, w przypadku niewykorzystania tego układu przez projekt użytkownika. Rezystory te są aktywne w trybie programowania oraz kasowania układu, a także w momencie włączania zasilania systemu. Sterownik wyjściowy jest zdolny do przewodzenia prądu 24mA.

Programowanie i testowanie układów rodziny XC9500 jest realizowane za pomocą interfejsu standardu IEEE 1149.1 (JTAG).

Układy XC9500 zawierają zaawansowane sposoby ochrony danych, które całkowicie zabezpieczają

program przed nieautoryzowanym czytaniem lub pomyłkowym skasowaniem, czy przeprogramowaniem.

Użytkownik może ustawić odpowiednie bity w celu ochrony kodu programu zawartego w układzie przed jego przeczytaniem.

Wszystkie układy XC9500 oferują możliwość ustawienia trybu niskiego poboru mocy dla każdej makrokomórki z osobna lub dla wszystkich jednocześnie.

W czasie włączania zasilania (power-up time) układy XC9500 są w stanie uśpienia dopóki napięcie zasilające VCCINT nie osiągnie bezpiecznego poziomu (około 3,8 V).

Do tego czasu wszystkie nóżki układu oraz interfejsu JTAG są wyłączone i podwieszone do zasilania za pomocą rezystorów pull-up.

Podstawy języka VHDL

Very high speed integrated Hardware Description Language

0x01 graphic

Jednostka projektowa języka VHDL

0x01 graphic

Deklaracja sygnałów

• nazwa

• tryb

• typ danych

Jednostka deklaracji

0x08 graphic

in - wejściowy

out - wyjściowy

inout - dwukierunkowy

buffer - wyjściowy z możliwością odczytu

Typy danych: bit, bit_vector, integer, Boolean

Style specyfikacji

• funkcjonalny (behavioralny)

• przepływ danych (dataflow)

• strukturalny

Blok architektury

architecture nazwa_arch of nazwa_jednostki is

Definicje i deklaracje:

(typów, podtypów, stałych, sygnałów,

komponentów,konfiguracji)

begin

- instrukcje przypisania wartości do sygnałów

- procesy

- komponenty

end nazwa_arch;

Elementy strukturalne języka VHDL:

Słowa kluczowe, Identyfikatory, Obiekty danych, Operatory, Atrybuty, Instrukcje

Słowa kluczowe

BEGIN, END..

IF, THEN, CASE...

AND, OR, NAND, XOR...

SIGNAL, COMPONEN, IN, OUT

Identyfikatory

_ Identyfikatory mogą się składać z liter, cyfr i podkreślników

_ Wielkość liter nie ma znaczenia

_ Nazwa musi się rozpoczynać od litery

_ Nazwa nie powinna być dłuższa niż 16 znaków

_ Nazwa powinna być znacząca

Obiekty danych

Obiekty danych służą do przechowywania wartości.

Wyróżnia się trzy klasy obiektów:

• sygnał - signal

• zmienne - variable

• stałe - constant

Wartości zmiennych są przypisywane natychmiast, wartości sygnałów - z pewnym opóźnieniem.

Odpowiednikiem sprzętowym sygnału jest ścieżka w układzie scalonym.

Zmienna nie ma odpowiednika sprzętowego i służy do obliczeń na wyższym poziomie abstrakcji.

Typy danych

Wyróżnia się 10 typów danych sygnału:

BIT, BIT_VECTOR,

STD_LOGIC, STD_LOGIC_VECTOR,

(STD_ULOGIC),

SIGNED, UNSIGNED, INTEGER,

ENUMERATION, BOOLEAN'

Sygnały

_ Sygnał może być zdefiniowany w jednostce deklaracji oraz w części

_ deklaracyjnej architektury lub pakietu.

_ Sygnał posiada dwie cechy z nim skojarzone:

_ typ

_ wartość

Atrybuty - dostarczają dodatkowych informacji o obiektach

Przykładowe atrybuty

_ `EVENT - równy TRUE, gdy zachodzi zmiana wartości sygnału,

_ `STABLE - równy TRUE, gdy nie zachodzi zmiana wartości sygnału

_ `LEFT - zwraca lewą granicę zakresu

_ `RIGHT - zwraca prawą granicę zakresu

_ `RANGE - zwraca zakres typu

0x01 graphic

Instrukcje

Współbieżne (Concurrent assignment statement)

Zachowanie układu jest niezależne od kolejności

instrukcji przyporządkowania sygnałów.

Stosowane w specyfikacji typu „przepływ danych”

Sekwencyjne (Sequential assignment statement)

Instrukcje sekwencyjne są stosowane w specyfikacji behawioralnej

(behavioral description). Przede wszystkim w tzw. procesach (process).

Porządek zapisu instrukcji sekwencyjnych zmienia działanie układu.

Współbieżne instrukcje przypisania sygnału (Concurrent Signal Assignment Statements)

- podstawowe przypisanie do sygnału - (simple signal assignment statement)

- warunkowe przypisanie do sygnału - (conditional signal assignmenet statement)

- selektywne przypisanie do sygnału - (selected signal assignment statement)

Instrukcje sekwencyjne są stosowane w specyfikacji behawioralnej (behavioral description)

Procesy

_ Konstrukcja wykonywana równolegle

_ Występuje wewnątrz architektury

_ Zawiera opis zachowania

_ Instrukcje wewnętrzne wykonywane są sekwencyjnie

_ Zawiera:

_ listę czułości (ang. sensitivity list); jest to lista sygnałów, których zmiana powoduje aktywację procesu

_ Procesy nie mogą być zagnieżdżane

_ Wewnątrz architektury może występować dowolna liczba procesów

_ W części deklaracyjnej można definiować: typy, podtypy, stałe, atrybuty i zmienne



Wyszukiwarka

Podobne podstrony:
TOS, Elektronika i Telekomunikacja, EiT pwr, Semestr 4, Technika Obliczeniowa i Symulacyjna
SPRAWOZDANIE Z LABORATORIUM, Elektronika i Telekomunikacja, EiT pwr, Semestr 3, Technika Analogowa
SPRAWOZDANIE Z LABORATO2RIUM, Elektronika i Telekomunikacja, EiT pwr, Semestr 3, Technika Analogowa
robotyka test, Elektronika i Telekomunikacja, EiT pwr, Semestr 3, Podstawy automatyki i robotyki
rezystancjamb, Elektronika i Telekomunikacja, EiT pwr, Semestr 3, Miernictwo 3
ściągi na miernictwo, Elektronika i Telekomunikacja, EiT pwr, Semestr 3, Miernictwo 3
Sieci telekom, Elektronika i Telekomunikacja, EiT pwr, Semestr 5, Sieci telekomunikacyjne
psychologia na zaliczenie z wykładów-sciaga, elektronika i telekomunikacja
Fizyka 0 wyklad organizacyjny Elektronika i Telekomunikacja Wrzesien 30 2012
Wykład 2009 2010 dynamika, Automatyka i Robotyka, SEMESTR 5, NEMAR, Nemar stary, nemar, nemar DUŻO,
MIKROEKONOMIA -Wykład 3 Przedsiębiorstwo (29.10.2011)(1), PWr, semestr I, mikroekonomia
Cyfrówka wykład ściąga, Semestr V, Technika cyfrowa
Strona tytułowa do sprawozdań, Akademia Morska, III semestr, technika cyfrowa, Technika Cyfrowa, TC
Technika Cyfrowa - streszczenie na egzamin, Semestr 2, Technika cyfrowa
7. Generatory zegarowe, Akademia Morska, III semestr, technika cyfrowa, Technika Cyfrowa, TC - lab B

więcej podobnych podstron