8 11 ukcyfprog id 46809 Nieznany

background image

8.11. Układy programowalne

1

ETR 8.11

Cyfrowe układy scalone z punktu widzenia użytkownika projektującego
urządzenie, w którym mają być stosowane można podzielić na trzy
grupy: układy standardowe (cegiełki, z których można zbudować duży
układ łącząc je na płytce drukowanej), układy projektowane na
zamówienie u producenta oraz układy programowalne, które w jednym
układzie scalonym zawierają bardzo dużo podstawowych elementów
cyfrowych, a konfigurację połączeń między nimi może realizować w
sposób dowolny użytkownik. Przyjęty ogólnie w świecie elektroniki
skrót nazwy tych układów to

PLD

– Programmable Logic

Devices

. Projektowanie urządzenia finalnego wymaga użycia

specjalistycznego oprogramowania i sprzętu programującego
dostarczanego przez wytwórcę PLD. Współczesne oprogramowanie
wspomagające jest przyjazne dla użytkownika.

Układy programowalne mogą być

programowalne

jednokrotnie lub wielokrotnie

.

Opracował Mirosław Doleżych

background image

Układy programowalne jednokrotnie.

W układach jednokrotnie programowalnych wszystkie
możliwe połączenia mogą być już zrealizowane, a w
procesie projektowania finalnego układu wybrane
połączenia są usuwane (przepalane). W takich układach
połączenia są wykonane w postaci cieniutkich ścieżek

przepalanych w procesie programowania

przez użycie

prądów o wartościach znacznie większych od stosowanych
przy normalnej pracy układu. Drugim typem układów
jednokrotnie programowalnych są układy, w których
wszystkie możliwe połączenia stanowią rozwarcia, a w
procesie programowania

rozwarcia są niszczone

(diody

niszczone przez przebicie lawinowe lub mikrokondensatory,
których izolacja jest przepalana) i

zastępowane przez

zwarcia

. Programowanie obydwu typów realizowane jest w

specjalnych programatorach.

2

ETR 8.11

background image

3

Układy programowalne wielokrotnie.

W układach tego typu połączenia pomiędzy elementami są
tworzone przez

komórki pamięci półprzewodnikowych,

których tranzystory realizują zwarcie lub rozwarcie

w

zależności od wpisanego stanu. Mogą to być pamięci
bipolarne typu

SRAM

lub pamięci unipolarne typu

CMOS

.

Pamięci SRAM są szybsze ale ulotne, więc konfiguracja
połączeń musi być w takich układach ładowana z
zewnętrznej pamięci po każdym włączeniu zasilania. W
układach CMOS stosowane są programowalne pamięci
stałe

EPROM, EEPROM i FLASH

co pozwala utrzymywać

konfigurację połączeń przy wyłączonym zasilaniu.
Spotykane są również układy z pamięcią EPROM bez
okienka do kasowania zawartości programowalne
jednokrotnie (

OTP ROM

– One Time Programmable).

ETR 8.11

background image

4

Proste układy programowalne – SPLD (Simple PLD).

Są to układy średniej skali integracji (kilkadziesiąt bramek) w
tradycyjnych obudowach dwurzędowych. W części
kombinacyjnej układy zawierają bramki AND, OR i negacje,
w części sekwencyjnej przerzutniki typu D.
W zależności od architektury wyróżnia się układy

PLA

(Programmable Logic Array),

PAL

(Programmable Array

Logic) i

GAL

(Generic Array Logic).

W części kombinacyjnej układy te zasadniczo realizują
funkcje logiczne zapisane jako sumy iloczynów. Zawierają
od strony wejść negacje, następnie matrycę bramek AND i
od strony wyjść bramki OR. Możliwości układu wyznacza
liczba wejść i wyjść. W układach PLA: programowana jest
zarówno sieć bramek AND jak i sieć wyjściowych bramek
OR.

ETR 8.11

background image

Ogólnie przyjęta jest konwencja uproszczonych symboli
bramek logicznych, w których wszystkie wejścia bramki
zastępowane są jedną linią.
Przykładowy uproszczony schemat fragmentu układu PLA:

5

Kółka na przecięciu
linii siatek oznaczają
połączenia
programowane,
które mogą być
zwarciem lub
rozwarciem.

ETR 8.11

background image

6

Układy PAL mają programowalne tylko połączenia do wejść
bramek AND. Wyjściowe bramki OR mają wejścia na stałe
dołączone do wyjść bramek AND.
Przykładowy uproszczony schemat fragmentu układu PAL:

Wyjściowe bramki OR są najczęściej 4 lub 8 – wejściowe.

z http://commons.wikimedia.org/wiki/
File:AMD_PAL_22V10.jpg

ETR 8.11

background image

7

W układach programowalnych stosowane są również bramki
trójstanowe. Najczęściej są to bufory wyjściowe, co
umożliwia stosowanie tych samych zacisków jako wyjścia
lub wejścia (wtedy odpowiedni bufor wyjściowy musi być w
stanie wysokiej impedancji).
Układy GAL są rozwinięciem układów PAL. Historycznie były
to pierwsze układy programowalne wielokrotnie. Oprócz
negacji wejściowych i matrycy bramek AND zawierają tak
zwane

makrokomórki wyjściowe

(Makrocell). Przykładowo

makrokomórka zawiera, prócz bramek, przerzutnik typu D z
wejściami kasowania i ustawiania oraz trójstanowy bufor
wyjściowy. Sygnały wejściowe makrokomórki to sygnały z
matrycy AND. Makrokomórka ma też oddzielne wejścia:
zegarowe i wejście zezwalające buforów trójstanowych.
Prócz wejść makrokomórka ma jedną końcówkę, która
może być wyjściem, wyjściem przerzutnika lub wejściem.

ETR 8.11

background image

8

Przykładowy uproszczony schemat blokowy układu GAL:

ETR 8.11

background image

9

Na rysunku obok
zamieszczono schemat
logiczny układu ATF16V8B
firmy ATMEL w trybie
rejestrowym. Układ ma 8
wejść, wejście zegarowe
CLK, wejście zezwalające
OE oraz 8 wejść/wyjść. Na
skrzyżowaniu linii
poziomych i pionowych
znajdują się
programowalne połączenia
(technologia Flash).
Matryca połączeń
dołączona jest do wejść
bramek AND. Schemat
makrokomórki Output Logic
przedstawiono na
następnej stronie.

https://www1.elfa.se/data1/wwwroot/assets/datasheets/

background image

10

Schemat makrokomórki Output Logic układu ATF16V8B firmy ATMEL w
trybie rejestrowym (dostępne są trzy tryby: Registered, Complex i
Simple).

background image

11

Złożone układy programowalne – CPLD (Complex PLD).

Są to układy dużej skali integracji (kilkaset bramek) w
nowoczesnych obudowach wielozaciskowych. Układy SPLD
stanowią tu bloki logiczne złożone z makrokomórek
połączone dodatkową matrycą połączeń.
Przykładowy schemat blokowy układu CPLD:

ETR 8.11

background image

12

Programowalne matryce bramkowe (FPGA

– Field

Programmable Gate Array).

Przykładowy schemat architektury układu FPGA:

z

http://commons.wikimedia.org/wiki/

File:Fpga_xilinx_spartan.jpg

ETR 8.11

MC

– makrokomórka

P

– programowalne

połączenia międzyblokowe

background image

13

Układy FPGA są układami bardzo dużej skali integracji (do
kilkudziesięciu milionów bramek) w nowoczesnych obudowach
wielozaciskowych. Stanowią matrycę programowalnych

makrokomórek

(MC

– Macrocell). W węzłach matrycy umieszczone

są programowalne połączenia międzyblokowe (P).

Makrokomórka zawiera
kilka bramek, kilka
multiplekserów i jeden
lub dwa przerzutniki z
wejściami kasującymi i
ustawiającymi.
Przykładową
makrokomórkę
przedstawiono obok.

ETR 8.11

background image

14

Budowa makrokomórki jest niezwykle elastyczna co pozwala
uzyskiwać bardzo zróżnicowane funkcje wyjściowe.
Układy FPGA budowane są w wersji z pamięcią SRAM lub z
pamięcią stałą (EPROM, EEPROM, FLASH). Zastosowanie
pamięci SRAM pozwala uzyskiwać bardzo małe czasy
propagacji (rzędu 2 ns) i łatwość zmiany konfiguracji w
urządzeniach mikroprocesorowych.

Modyfikacja funkcji

układu jest możliwa w każdej chwili w trakcie działania układu

(np. w urządzeniach mikroprocesorowych). Układy z
pamięcią SRAM są programowane przy każdym włączeniu
zasilania. Ich zawartość musi być przechowywana w
zewnętrznych pamięciach stałych i najczęściej jest ładowana
przez wejście szeregowe.
Układy z pamięcią stałą są często układami OTP
(jednokrotnie programowalne).

ETR 8.11

background image

15

Do programowania układów FPGA stosowane jest
specjalistyczne oprogramowanie dostarczane przez
producenta układów najczęściej bezpłatnie. Umożliwia ono
projektowanie układu i sprawdzanie jego poprawności wraz z
oceną szybkości działania.
Stosowane są specjalne języki programowania zwane HDL –
Hardware Description Language. Zawierają one wiele
zdefiniowanych makrorozkazów znacznie ułatwiających
projektowanie.

Przykład: należy zaprojektować układ mnożący dwie liczby 16 – bitowe.
Układ zawiera dwa 16 – bitowe wejścia liczby A i B i 32 – bitowe wyjście
Y. Liczba bramek potrzebna do zrealizowania projektu wynosi około 6000.
Tradycyjny sposób projektowania polega na stworzeniu
wielostronicowego schematu co zajmuje kilka dni wytężonej pracy,
następnie stworzenie listy połączeń i dalszej obróbki. Układ taki trudno
jest modyfikować i musi zawierać bramki dostępne na rynku.

ETR 8.11

background image

W języku HDL projektowanie polega na napisaniu kilku linijek testu np. :

entity MULT is

--

nazwa układu

port (A,B : in std_logic (15 downto 0) ;

--

definicja wejść

Y : out std_logic (31 downto 0) ;

--

definicja wyjść

end MULT ;

architecture BEHAVE of MULT is

Y <= A * B ;

--

opis działania

end BEHAVE ;

W przypadku zmiany polegającej na rozszerzeniu liczby wejść i wyjść w
tradycyjnym projektowaniu pracę w zasadzie trzeba powtórzyć od nowa.
W przypadku języka HDL wystarczy po prostu zmienić dwie liczby.

16

ETR 8.11

background image

17

entity MULT is

--

nazwa układu

port (A,B : in std_logic (31 downto 0) ;

--

definicja wejść

Y : out std_logic (63 downto 0) ;

--

definicja wyjść

end MULT ;

architecture BEHAVE of MULT is

Y <= A * B ;

--

opis działania

end BEHAVE ;

Nowsze narzędzia projektowe tworzą graficzne środowisko
programistyczne co jest dalszym ułatwieniem dla użytkownika.

ETR 8.11


Wyszukiwarka

Podobne podstrony:
kinetyka 5 11 2010 id 235066 Nieznany
chem fiz 14 11 zad id 111352 Nieznany
Biuletyn 11 OK id 89409 Nieznany
c4 10 11 2011 id 97239 Nieznany
ei 2005 11 s006 id 154194 Nieznany
Kolokwium nr 1 30 11 12 id 2407 Nieznany
cad 1 I Cw 11 2012 id 107651 Nieznany
Cwiczenia nr 11 (z 14) id 98679 Nieznany
Proseminarium4 11 2012 id 40197 Nieznany
deklaracja PIT 11 3504 id 13296 Nieznany
cw 11 content87 id 663812 Nieznany
5 11 2009 id 39469 Nieznany (2)
cw 11 content92 id 663816 Nieznany
ei 2005 11 s094 id 154202 Nieznany
ei 2005 11 s070 id 154197 Nieznany
2004 11 podst id 381800 Nieznany (2)
ei 2005 11 s092 id 154201 Nieznany
11) McLuhan(1)id 12717 Nieznany

więcej podobnych podstron