Układy cyfrowe zbudowane w oparciu o bramki - kik

Transkrypt

Układy cyfrowe zbudowane w oparciu o bramki - kik
Michał Białko
Oleg Maslennikow
Natalia Maslennikowa
Piotr Pawłowski
Politechnika Koszalińska
Wydział Elektroniki
ul. Śniadeckich 2, 75-453 Koszalin
email: [email protected]
Układy cyfrowe zbudowane w oparciu o
bramki prądowe: stan obecny, perspektywy
rozwoju i zastosowania
Słowa kluczowe: mieszane analogowo-cyfrowe systemy VLSI, zakłócenia podłożowe,
układy cyfrowe pracujące w trybie prądowym, układy reprogramowalne
STRESZCZENIE
W niniejszej pracy omówiono stan obecny oraz perspektywy rozwoju i zastosowania bramek cyfrowych
pracujących w trybie prądowym, a także różnego rodzaju układów cyfrowych zbudowanych z bramek
prądowych. Praca podsumowuje kilkuletnie badania autorów nad koncepcją bramki prądowej i jej realizacją,
podstawami algebry bramek prądowych oraz sposobów projektowania i weryfikacji cyfrowych układów
prądowych działających w standardowej logice binarnej (Boole’a), jak i w wielowartościowych logikach
z podstawą N > 2. W pracy rozpatrzono również możliwość wykorzystania bramek prądowych w układach
reprogramowalnych, w których w sposób programowy może być określony typ systemu liczbowego oraz jego
podstawa N.
1.
WPROWADZENIE
Prace nad koncepcją bramki prądowej oraz nad algebrą bramek prądowych
zapoczątkowała idea profesora Andrzeja Guzińskiego, który na początku lat 90-tych XX
wieku opracował pierwsze rozwiązanie bramki prądowej dla technologii CMOS [4]. Pierwsze
badania układów cyfrowych zbudowanych w oparciu o bramki prądowe prof. A. Guziński
prowadził razem ze swoimi dyplomantami. W miarę zdobywania doświadczeń i powstawania
nowych koncepcji związanych z tymi układami, powiększała się grupa osób zaangażowanych
w te badania. Od 1997 roku badania są prowadzone przez zespół złożony
z pracowników Wydziału Elektroniki Politechniki Koszalińskiej, głównie w ramach
projektów badawczych finansowanych przez Polski Komitet Badań Naukowych (grantów
KBN) 8T11B 042 14 (lata 1998-1999), 7T11B 004 20 (lata 2001-2003) i obecnie
3T11B 059 26. Działalność autorów w tym zespole badawczym skupiała się głównie
na opracowywaniu podstaw algebry bramek prądowych i sposobów projektowania cyfrowych
układów prądowych, a także na zaprojektowaniu układów cyfrowych różnego stopnia
złożoności w oparciu o bramki prądowe [5-11]. Większość opracowanych przez autorów
układów została zrealizowana praktycznie w postaci układów scalonych ASIC [9].
Prezentowane w niniejszej pracy wyniki badań pokazują, że bramki prądowe mogą być
III Krajowa Konferencja Elektroniki
—1—
z powodzeniem wykorzystane do konstruowania zarówno standardowych, binarnych układów
cyfrowych, jak i układów cyfrowych działających w logice wielowartościowej MVL (ang.
Multiple-Valued Logic) z podstawą N > 2 lub w arytmetyce modulo N.
2.
KONCEPCJA, PRZEZNACZENIE, TYPY I WŁAŚCIWOŚCI LOGICZNE
BRAMEK PRĄDOWYCH
Koncepcję opracowanej przez prof. Guzińskiego bramki pracującej w trybie prądowym
oraz przykładową realizację tej bramki przedstawiono na rys. 1. Zgodnie z tą koncepcją, tryb
prądowy pracy układu cyfrowego oznacza, że poziom logicznego 0 na wejściu lub wyjściu
bramki odpowiada prądowi o wartości równej zero, a prąd logicznego 1 odpowiada pewnej,
ustalonej wartości prądu wpływającego na wejście bramki lub wypływającego z jej wyjścia.
Dla bramki z rys. 1, poziomowi logicznemu 1 na wejściu ( tj. prądowi wpływającemu II
o ustalonej arbitralnie wartości) odpowiada poziom 0 na wyjściu ( prąd wyjściowy IO = 0)
bramki i odwrotnie. Z tego powodu bramka ta otrzymała nazwę inwertera prądowego;
jej parametry elektryczne przedstawione są np. w pracy [4].
a)
b)
VDD
IH
in
II
M5
IO out
M1
VDD
Vbias
M4
II
in
M2
IO out
M1
M2
V
M3
GND
Rys. 1.
GND
Koncepcja bramki prądowej (a); przykładowa realizacja CMOS bramki inwertera (b)
W trakcie badań prowadzonych przez autorów w ramach grantu 7T11B 004 20
opracowano nową koncepcję podstawowej bramki prądowej, cechującej się lepszymi
parametrami elektrycznymi i dynamicznymi, w szczególności lepszą charakterystyką
przejściową. Nową koncepcję bramki inwertera prądowego i jej przykładową realizację
z ilustracją sposobu dołączania dodatkowych wyjść przedstawiono na rys. 2.
a)
b)
IH
IO out
in II
K
/2 IH
GND
Rys. 2.
Mp1
IA
IA = IH
Vbias1
1:1
bramka
prądowa
Mp2
II
Mp3
Y
Uk
1
VDD
1:1
out IO
2:
Mo2
:1
Mp5
obwód
polaryzacji
Mi2
Mi3
Ibias = IH
GND
Mo1
in
Mi5
Mp4
:1
Mi4
Mi1
Uk
:2
Mo3
Vbias2
Ulepszona koncepcja bramki inwertera prądowego (a) i jej przykładowa realizacja CMOS (b)
Pierwotnym celem opracowania bramek prądowych było zwalczenie negatywnego
wpływu zakłóceń podłożowych generowanych przez część cyfrową mieszanego analogowocyfrowego układu scalonego, na jego część analogową [2, 3]. Przyczyną wymienionych
zakłóceń są impulsy prądowe powstające podczas pracy (przełączania) układów cyfrowych,
w których bramki pracują w trybie napięciowym. Główną cechą bramek prądowych jest stała
wartość pobieranego prądu w różnych trybach pracy (np. w stanach logicznego zera, jedynki
—2—
oraz podczas przełączania się). Np. badania elektroniczne ulepszonej bramki prowadzone
przez członków zespołu badawczego pokazały, że fluktuacje wartości prądu w linii zasilania
bramki prądowej wynoszą około 8 μA dla prądu jedynki logicznej wynoszącego 40 μA.
Z kolei dla stosowanych powszechnie bramek napięciowych te fluktuacje osiągają wartości
nawet do 1 mA. Z tego powodu bramki prądowe cechują się znacznie mniejszym poziomem
zakłóceń przenoszonych do podłoża układu scalonego (przez występujące w sposób
nieunikniony pasożytnicze sprzężenia podłożowe) w porównaniu z bramkami napięciowymi
i mogą być stosowane mieszanych analogowo-cyfrowych systemach jednoukładowych.
Analiza działania bramki inwertera prądowego wykazuje, że np. poziom zera
logicznego na wyjściu bramki osiągany jest w przypadku pojawienia się na jej wejściu nie
tylko jedynki logicznej, lecz dowolnej wartości prądu większej od jedynki. Poza tym,
koncepcja bramki umożliwia wprowadzenie trzeciego stanu logicznego na wyjściu bramki,
w którym z wyjścia bramki prąd o ustalonej wartości nie tylko wypływa lub nie, ale również
do tego wyjścia wpływa. Czyli do dotychczasowych wartości logicznych „0” (brak prądu)
i „1” (prąd wypływa) można dodać trzeci stan wyjścia – „-1” (schemat elektryczny
zmodyfikowanej bramki, która otrzymała nazwę anty-inwerter, i jej parametry przedstawiono
w pracach [6, 7]). Stąd wynika, że fizyczne i logiczne zasady funkcjonowania bramek
prądowych różnią się od analogicznych zasad funkcjonowania klasycznych bramek
napięciowych, a algebra bramek prądowych nie jest algebrą binarną.
W wyniku badań przeprowadzonych przez członków zespołu badawczego opracowane,
przetestowane i zakwalifikowane do wykorzystania w układach prądowych zostały bramki
czterech typów – inwertera, anty-inwertera, podwójnego-inwertera i anty-podwójnegoinwertera, których oznaczenie graficzne i wykonywane funkcje są przedstawione na rys. 4.3.
a)
⎧ 1 , dla X = 0, - 1, - 2, ...
Y1 = X = ⎨
⎩ 0 , dla X = 1, 2, ...
X
b)
Rys. 3.
⎧ 0 dla X = 0, - 1, - 2, ...
Y3 = X = ⎨
⎩ 1 dla X = 1, 2, ...
X
X
⎧ 0 , dla X = 0, - 1, - 2, ...
Y2 = Xˆ = ⎨
⎩ - 1 , dla X = 1, 2, ...
X
c)
X
d)
X
⎧ - 1 dla X = 0, - 1, - 2, ...
Y4 = Xˆ = ⎨
⎩ 0 dla X = 1, 2, ...
X
X
Bramki prądowe: inwerter (a), anty-inwerter (b), podwójny-inwerter (c), anty-podwójny-inwerter (d)
Ponadto, technika bramek prądowych umożliwia realizacje bramek wielowyjściowych
(dla układu z rys. 2, w celu utworzenia dodatkowego wyjść wystarczy dołączyć kolejną grupę
tranzystorów Mo1-Mo3 sterowanych napięciem Uk), a nawet takich, które mają wyjścia
różnych typów. Przykładowe oznaczenie graficzne takiej bramki prądowej z wyjściami
czterech różnych typów przedstawiono na rys. 4. Dla tego samego pobudzenia na wejściu X,
z wyjścia Y1 bramka jest widoczna jako inwerter, z wyjścia Y2 jako anty-inwerter, z wyjścia Y3
jako podwójny inwerter, i z wyjścia Y4 – jako anty-podwójny-inwerter.
Bardzo interesującą cechą bramek prądowych jest możliwość łączenia wyjść różnych
bramek (a nawet kilku wyjść jednej bramki) w jeden węzeł. Faktycznie w ten sposób
w technologii bramek prądowych realizowana jest operacja dodawania algebraicznego, która
na poziomie fizycznym odpowiada dodawaniu prądów (ich określone natężenia odpowiadają
wartościom logicznym odpowiedniego operandu).
III Krajowa Konferencja Elektroniki
—3—
3.
OPIS ALGEBRY BRAMEK PRĄDOWYCH
W algebrze bramek prądowych zdefiniowane są trzy podstawowe operacje: suma
algebraiczna, inwersja i anty-inwersja. Symbolem operacji sumy algebraicznej jest znak „+”.
Dla tej operacji w algebrze bramek prądowych obowiązuje zasada skracania; oznacza to, że
z a+ b= a+ c wynika b= c. Operacje inwersja i anty-inwersja są jednoargumentowymi, a ich
symbolami są znaki odpowiednio „ ¯ ” i „ ^ ” umieszczone nad argumentem operacji.
W algebrze bramek prądowych przyjmuje się aksjomaty (1)-(2). Wzór (1) stwierdza,
że w algebrze bramek prądowych operacja sumy algebraicznej jest działaniem przemiennym,
a wzór (2) – iż jest to działanie łączne. Wzór (3) informuje, że tak jak w zwykłej algebrze,
elementem neutralnym operacji sumy algebraicznej jest element 0 (zero).
W algebrze bramek prądowych możliwe jest tworzenie operacji złożonych, w ten
sposób, że we wzorze, w miejsce argumentu operacji można wstawić dowolną inną operację.
Poza tym, obowiązuje następujące starszeństwo operacji: w przypadku dowolnego wyrażenia
operacje wykonuje się w kolejności – najpierw dolna, potem górna.
Podstawowe tożsamości algebry bramek prądowych mają charakter stwierdzeń
dających się wyprowadzić z podanych wyżej aksjomatów, przy uwzględnieniu podanych
wcześniej definicji. W lewej kolumnie tablicy tabl. 1 dla przykładu przedstawiono tylko kilka
z nich, gdzie zmienne a, b i ai ( i = 1 ... n ) przyjmują wartości z przedziału (- M, P ), a M i P
są liczbami naturalnymi, których wartości zależą od realizacji fizycznej bramki.
Y1
Y2
Y3
Y4
X
X
I
Y1
AI
Y2
I
I
Y3
I
AI
Y4
K
Rys. 4.
Przykładowa wielowyjściowa bramka prądowa
Tabl. 1.
Przykładowe tożsamości algebry bramek prądowych
a+b =b+a
(1)
( a + b) + c = b + ( a + c )
(2)
a+0= a
(3)
Tożsamości podstawowe
przypadek a, b, a i ∈ (-M, P), i = 1 ... n
Tożsamości dodatkowe
przypadek a, b, a i ∈ {0, 1} , i = 1 ... n
a = aˆ + 1
a=a
a=a
a + aˆ = 0
∧
a = aˆ
a + a =1
a + a +K+ a = a
a1 + a2 + K + an = a1 + aˆ 2 + K + aˆ n
∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧
aˆ + b = a + bˆ
a + a + K + a = aˆ
aˆ + b = a + bˆ
W algebrze bramek prądowych dwukrotne wykonanie operacji inwersji danego
elementu na ogół nie daje w wyniku tego samego elementu, jak ma to miejsce w algebrze
Boole’a w przypadku podwójnej negacji. W tej algebrze można jednak otrzymać takie same
wartości wyniku i argumentu w przypadku podwójnej inwersji, gdy zakres wartości
—4—
argumentu ograniczy się do zbioru {0, 1}; taka właściwość ma zastosowanie przy konstrukcji
odpowiedników funkcjonalnych układów algebry Boole’a. W tym przypadku zbiór
tożsamości algebry bramek prądowych może być poszerzony o inne tożsamości, z których
kilka przedstawiono w prawej kolumnie tabl. 1.
4.
SPOSOBY MINIMALIZACJI FUNKCJI BINARNYCH W ALGEBRZE
BRAMEK PRĄDOWYCH
W trakcie przeprowadzonych przez autorów badań zostało udowodniono, że dowolnie
złożona funkcja logiczna przedstawiona w postaci wyrażenia boolowskiego może być
zrealizowana w oparciu o bramki inwerterów prądowych. W tym celu opracowano m.in.
wyrażenia (4)-(7) dla zamiany podstawowych operacji algebry Boole’a AND, NAND, OR
i NOR na podstawowe operacje algebry prądowej. Należy zaznaczyć, że w lewej części tych
wyrażeń symbole „·”, „∨” i „ ¯ ” reprezentują odpowiednio operacje boolowskie AND, OR
i negacji, natomiast symbole „+” i „ ¯ ” w prawej części każdego z wymienionych wyrażeń
reprezentują odpowiednio operacje dodawania i inwersji algebry bramek prądowych.
To oznacza, że lewa strona w każdym wyrażeniu (4)-(7) reprezentuje odpowiednią funkcję
w algebrze Boole’a, natomiast prawa strona reprezentuje tę samą funkcję w algebrze bramek
prądowych (przy czym prawa strona wyrażeń (5) i (6) w niektórych przypadkach może być
jeszcze bardziej uproszczona [6]).
a1 ⋅ a 2 ⋅ K ⋅ a n = a1 + a 2 + K + a n ,
(4)
a1 ⋅ a2 ⋅ K ⋅ an = a1 + a2 + K + an ,
(5)
a1 ∨ a 2 ∨ K ∨ a n = a1 + a 2 + K + a n ,
(6)
a1 ∨ a 2 ∨ K ∨ a n = a1 + a 2 + K + a n .
(7)
Ze wzorów (4)-(7) wynika jeden ze sposobów minimalizacji binarnych funkcji
logicznych w algebrze bramek prądowych. Sposób ten polega na otrzymaniu dla funkcji
logicznej, która powinna być realizowana przez układ, jej opisu w postaci wyrażenia
boolowskiego. Następnie dokonuje się minimalizacji otrzymanego wyrażenia (również
w algebrze Boole’a) kierując się specjalnie opracowanymi przez autorów kryteriami, które
pozwalają otrzymać (przy pomocy wzorów konwersji (4)-(7)) zminimalizowaną postać
funkcji logicznej w algebrze prądowej [6].
Kolejny sposób minimalizacji funkcji logicznych jest przeznaczony do wykorzystania
bezpośrednio w algebrze bramek prądowych i jest oparty o udowodnione przez autorów
twierdzenie, że dowolna funkcja logiczna może być przedstawiona w algebrze prądowej jako
suma algebraiczna kilku innych (np. prostszych) funkcji logicznych nazywanych funkcjami
bazowymi. Sposób ten może być najefektywniej wykorzystany w przypadku minimalizacji
równocześnie kilku funkcji logicznych mających wspólne argumenty. W takim przypadku
jedna lub więcej funkcji (najlepiej najprostszych) są minimalizowane za pomocą pierwszego
sposobu, natomiast pozostałe funkcje wykorzystują je jako funkcje bazowe. Oprócz tego,
udowodnione twierdzenie pozwala minimalizować binarne funkcje logiczne bezpośrednio
w algebrze prądowej w oparciu o diagramy Veitcha-Karnaugha. Ten trzeci sposób
minimalizacji polega na wykorzystaniu dla funkcji n argumentów binarnych a1, a2, ... , an
diagramu zawierającego 2n kratek (pól), który wypełniany jest analogicznie jak w przypadku
diagramów w algebrze Boole’a. Po wypełnieniu diagramu, sąsiednie kratki zawierające
jednakowe wartości funkcji, większe od zera i mniejsze od zera, łączy się w osobne bloki
III Krajowa Konferencja Elektroniki
—5—
(w sposób standardowy, jak jest to wykonywane w algebrze Boole’a). Przy tworzeniu bloków
z kratek diagramu dąży się do zmniejszenia liczby bloków, zwiększenia ich rozmiaru oraz
do tworzenia bloków niezależnych (bez wspólnych kratek). Następnie, dla każdego bloku,
w sposób standardowy określana jest odpowiednia koniunkcja, z których każda zostaje
następnie przekształcona za pomocą wyrażenia (4). Ostateczne wyrażenie dla
zminimalizowanej funkcji otrzymuje się jako sumę algebraiczną funkcji poszczególnych
bloków.
Prawidłowość i efektywność opracowanych sposobów minimalizacji funkcji logicznych
w algebrze bramek prądowych potwierdzają wyniki testowania zaprojektowanych przez
autorów prototypów prądowych standardowych układów cyfrowych: różnego rodzaju
sumatorów, dekoderów, multiplekserów, przerzutników, rejestrów, liczników [5-8], jednostki
4-bitowej ALU 74S181, z których większość została zrealizowana praktycznie w postaci
układów scalonych ASIC [9]. W trakcie badań zostało ustalone, że otrzymane prądowe układy
kombinacyjne zwykle cechują się mniejszą liczbą bramek w porównaniu z ich prototypami
zbudowanymi na bazie klasycznych bramek napięciowych, natomiast układy sekwencyjne
wymagają wykorzystania porównywalnej liczby bramek w obu technikach. Jako przykład, na
rys. 5a przedstawiono schemat pełnego jednobitowego sumatora zbudowanego
z bramek prądowych (w skrócie: „sumatora prądowego”) zawierającego ponad 2 razy mniej
bramek w porównaniu ze swoim analogiem złożonym z bramek boolowskich techniki
napięciowej oraz prawie 2 razy mniej tranzystorów (w realizacji CMOS). Rys. 5b przedstawia
schemat przerzutnika prądowego typu D, sterowanego poziomem sygnału taktującego,
zawierającego tyle bramek, ile ma jego analog napięciowy.
S
a) X
b)
D
Q
Y
COUT
CIN
C
“-1”
NQ
Rys. 5. Schemat jednobitowego sumatora prądowego (a) i przerzutnika prądowego typu D (b)
Przedstawione cechy cyfrowych układów prądowych stwarzają podstawę
do opracowania i wytworzenia mieszanych analogowo-cyfrowych układów na wspólnym
podłożu, w tym mieszanych reprogramowalnych układów FPMA, w których część cyfrowa
przedstawia sobą układ FPGA zbudowany w oparciu o bramki prądowe. Jako prototyp
funkcjonalny komórki układu prądowego FPGA wybrany został blok SLICE układu Spartan
II firmy Xilinx. Oznacza to, że założeniem wstępnym autorów przy zaprojektowaniu
prototypu prądowego bloku SLICE było to, że układ ten powinien posiadać jednakowe
z oryginałem wejścia, wyjścia i wszystkie tryby pracy. Wybór nowoczesnego, dobrze
znanego, układu FPGA jako wzorca miał na celu sprawdzenie tezy, iż stosując bramki
prądowe, możliwe jest zbudowanie dowolnie złożonego systemu cyfrowego. Poza tym,
wykorzystanie prądowych układów FPGA, funkcjonalnie zgodnych z ich odpowiednikami
napięciowymi, pozwala zautomatyzować procedurę implementacji w nich układów
cyfrowych za pomocą wykorzystania standardowych narzędzi programowych do syntezy
i implementacji układów.
Przy projektowaniu struktury wewnętrznej bloku SLICE, szczególną uwagę zwrócono
na opracowanie możliwie jak najprostszego, pod względem liczby bramek, układu LUT (ang.
Look-Up-Table), który w bloku SLICE pełni funkcję jednostki arytmetyczno-logicznej,
lub funkcję 16-komórkowego bloku pamięci typu RAM, ROM lub FIFO.
—6—
Rys. 6.
Prototyp prądowy bloku LUT układów FPGA
rodzin Spartan II i Virtex
Autorom udało się opracować
pełny
funkcjonalny
analog bloku LUT [7], który
przedstawiony został na rys. 6.
Na tym schemacie sygnały G1G4 oznaczają wejścia układu
LUT, D – wyjście układu, RAM,
ROM i FIFO – wejścia sterujące
określające tryb pracy układu,
DIG1 i DIG2 – wejścia układu
w trybie FIFO, WSG – wejście
sterujące zapisem i odczytem
danych do/z układu LUT.
Wprowadzenie tranzystorów do
układu prądowego LUT spowodowane jest zastosowaniem w
układzie
prądowym
FPGA
pamięci konfiguracyjnej pracującej w trybie napięciowym.
Ponieważ podczas pracy układu
zawartość pamięci konfiguracyjnej nie zmienia się, bramki
nie zmieniają swojego stanu, t.j.
nie generują zakłóceń.
A
Cin
Bi
Ai
G4
A4
G3
G2
A3
G1
A1
1
LUT
COUT
B nB
O
nD1 D2 nD2 D1
A2
YB
nC1 nC2
WS
C2 C1
DI
nV V
1
Y
H nH
LUT
BY
nE E
CLK
J
nF
F
Si
T1 T2 T3
M nM
T nT
CE
K
L
D S Q
nQ
CE
nG G
GSR
SR
CLK
R
F5IN
I
WS
Cin
Bi
F4
A4
F3
F2
A3
F1
A1
A2
N nN
DI
D S Q
nQ
CE
O
LUT
nR1 R2 nR2 R1
O
CLK
R
Ai
nU U
YQ
Y
nY
Z
nZ
Cout
XQ
W
nW
X
nX
1
nP1 nP2
1
BX
F5
XB
P2 P1
S nS
Q nQ
CIN
Rys. 7. Struktura układu prądowego SLICE
III Krajowa Konferencja Elektroniki
—7—
X
Oprócz prądowego układu LUT autorzy zaprojektowali prototypy prądowe bloku
realizującego szybkie przeniesienie w układzie SLICE, oraz logikę sterującą tego układu.
W wyniku powstał prototyp prądowy całego układu SLICE, przedstawiony na rys. 7, gdzie
grube linie pokazują (jako przykład możliwego zastosowania układu) przepływ sygnałów
przy realizacji sumatora szeregowego.
5.
WERYFIKACJA ZAPROJEKTOWANYCH UKŁADÓW PRĄDOWYCH I
ICH IMPLEMENTACJA W PRĄDOWYCH UKŁADACH FPGA
Realizacja fizyczna każdego z opracowanych układów prądowych była poprzedzona
opracowaniem i przetestowaniem jego modelu w języku VHDL. Przystosowanie języka
VHDL oraz środowiska programowego Active-HDL do opisu i symulacji układów polegało
m.in. na opracowaniu biblioteki deklarującej i definiującej poziomy logiczne algebry
prądowej, a także tablic i funkcji rezolucji sygnałów działających zarówno dla pojedynczych
sygnałów jak i ich wektorów, z uwzględnieniem właściwości algebry bramek prądowych.
Dodatkowo, w celu przyspieszenia testowania otrzymywanych układów na poziomie
logicznym, autorzy opracowali środowisko graficzne „MPUK” umożliwiające m.in.: wybór,
umieszczenie na ekranie, przesunięcie i usunięcie bramek prądowych; określenie liczby
i typów wyjść dla każdej użytej w układzie bramki; łączenie bramek oraz usuwanie połączeń.
Okno główne programu „MPUK” ze schematem jednobitowego sumatora prądowego jest
pokazane na rys. 8.
Rys. 8. Okno programu MPUK
Oprócz konstruowania i edycji schematu układu, program umożliwia jego symulację
poprzez ustawienie stanu dla każdego wejścia układu i odczytanie stanów jego wyjść oraz
zapis tablicy prawdy prądowych układów kombinacyjnych do pliku.
Na podstawie utworzonych bloków prądowych SLICE, IOB, pamięci konfiguracyjnej
i przełączników macierzowych, przez członków zespołu zaprojektowana została architektura
układu prądowego FPGA, podobna do architektury układu FPGA SPARTAN II oraz
opracowany jej model w języku VHDL [5]. Model ten jest bezpośrednio powiązany
z układem, który powinien być realizowany w układzie FPGA. Z tego powodu głównymi
parametrami modelu są liczba wykorzystywanych bloków SLICE i IOB oraz ich połączenia.
Badanie modelu całego układu prądowego FPGA dokonano m.in. na układach różnego
rodzaju sumatorów w postępowaniu składającym się z kilku etapów. Najpierw określono
—8—
liczbę bloków SLICE i IOB niezbędnych dla realizacji danego układu funkcjonalnego.
Następnie określono tryby pracy i realizowane funkcje logiczne dla każdego bloku SLICE
i połączenia między nimi. Na podstawie otrzymanych danych określono zawartość
poszczególnych komórek pamięci konfiguracyjnej układu FPGA. Po wprowadzeniu danych
konfiguracyjnych do pamięci modelu, sprawdzono poprawność jego działania w środowisku
Active-HDL. Należy zaznaczyć, że opisana procedura formowania danych konfiguracyjnych
może być wykonana nie tylko w sposób „ręczny”, lecz również w sposób zautomatyzowany.
Jako bazę programową członkowie zespołu badawczego wykorzystali pakiet Foundation/ISE
firmy Xilinx, w którym przy próbie implementacji opisu VHDL urządzenia w układzie FPGA
otrzymuje się plik binarny NCD (ang. Native Circuit Description) zawierający informację
o konfiguracji i połączeniach komórek układu FPGA przy realizacji w nim zaprojektowanego
urządzenia. Otrzymany plik binarny może być przekształcony za pomocą programu XDL
do formatu tekstowego XDL (ang. Xilinx Design Language), który może zostać użyty
we własnych programach użytkowników pakietu Foundation. Dzięki takiej możliwości
członkom zespołu udało się opracować następującą procedurę projektowania cyfrowych
układów prądowych i ich implementacji w układach prądowych FPGA zawierającą
następujące etapy:
• opracowanie projektu układu w algebrze Boole’a oraz jego opisu w języku VHDL;
• synteza i implementacja układu w wybranym układzie FPGA;
• otrzymanie pliku NCD i jego przekształcenie do formatu XDL;
• analiza pliku XDL i generacja opisu VHDL układu prądowego FPGA.
Należy zaznaczyć, że ostatni etap jest realizowany za pomocą specjalnie opracowanego
przez członków zespołu programu GEDEON [10] przekształcającego informacje zawarte
w plikach XDL do postaci modelu VHDL układu prądowego FPGA zawierającego także dane
konfigurujące ten układ.
6.
CYFROWE UKŁADY PRĄDOWE DZIAŁAJĄCE W LOGIKACH Z
PODSTAWĄ N > 2
Szczególną i zdaniem autorów bardzo korzystną cechą algebry bramek prądowych jest
to, że jest ona w pewnym stopniu algebrą (logiką) wielowartościową MVL [11]. Przykładem
logiki wielowartościowej może być np. system trójkowy z cyframi 0, 1, 2, lub nawet
dziesiętny z cyframi 0, 1, 2, ... , 9. Wykorzystanie arytmetyki wielowartościowej
w specjalistycznych systemach komputerowych niesie ze sobą kilka istotnych korzyści,
wymienionych niżej.
1) Przedstawienie określonej liczby z określoną dokładnością wymaga w systemach
wielowartościowych użycia mniejszej liczby cyfr w porównaniu z systemem
dwójkowym. Pozwala to na odpowiednie zmniejszenie szerokości rejestrów, liczników,
komórek pamięci, a nawet bloków operacyjnych – sumatorów, mnożarek, itd., oraz
zmniejszenie szerokości magistral danych i adresów systemu. Poza tym, znacznie
zmniejsza się liczba połączeń wewnętrznych i zewnętrznych w systemie.
2) Dzięki mniejszej liczbie cyfr przedstawiających dane, czas wykonywania operacji
w układach szeregowych – sumatorach, blokach mnożenia, dzielenia, itd. także jest
mniejszy.
3) System wielowartościowy może być łatwo przerobiony w odpowiedni system resztowy
RNS (ang. Residue Number System) [11], oparty o arytmetykę modulo N, poprzez
usunięcie bloków przeniesienia z układów sumujących. W tym przypadku uzyskuje się
dodatkowe zalety wykorzystania arytmetyki resztowej powiązane z brakiem
przeniesienia między poszczególnymi cyframi w liczbach.
III Krajowa Konferencja Elektroniki
—9—
Ponieważ bramki prądowe mogą być wykorzystane dla realizacji operacji logiki MVL
z podstawą N i arytmetyki modulo N, autorzy podjęli próbę zaprojektowania podstawowych
układów prądowych działających w w/w systemach. W wyniku prowadzonych badań
wykazano, że opracowane sumatory, a nawet kombinacyjne bloki mnożące działające
w logice MVL lub w arytmetyce modulo N są prostsze od znanych zarówno pod względem
liczby wykorzystanych bramek, jak i liczby tranzystorów. Jako przykład, rys. 9a przedstawia
schemat sumatora MVL z podstawą N, rys. 9b – schemat sumatora modulo N , rys. 9c –
realizację sumatora modulo N na poziomie tranzystorów (dla przypadku N = 3), z ilustracją
sposobu modyfikacji schematu przy zmianie wartości N. Zaletą ostatniego sumatora jest to,
że jest on najprostszy ze znanych: zawiera tylko jedną wielowyjściową bramkę prądową
realizowaną na 3⋅( N + 1) tranzystorach.
a)
c)
X
1
S
X
X
2
Y
Y
Y
N
CIN
COUT
“-(N-1)”
1
2
Y
“-(N-1)”
II
N
Ibias = IH
-1
-1
2:
:2
:2
S
GND
out
S
out
IO1
IO2
ION
Mo21
Mo22
Mo2N
Mi2
in
b)
X
out
Mi3
Mi4
Mi1
:1
:2
Mo31
:2
Mo32
:2
Mo3N
Vbias2
N-1 = 2
komparator
prądów dla ½ IH
K
obwód
wyjściowy
AI
obwód
wyjściowy
AI
obwód
wyjściowy
AI
wielowyjściowa bramka prądowa
N=3
Rys. 9. Przykładowa realizacja sumatorów prądowych: z podstawą 3 (a), modulo 3 (b i c)
7.
KONCEPCJA UKŁADU REPROGRAMOWALNEGO DZIAŁAJĄCEGO
W LOGICE MVL I ARYTMETYCE RNS
Wyróżniającą cechą opracowanych przez autorów sumatorów, przerzutników
i kombinacyjnych bloków mnożących działających w logice MVL i arytmetyce resztowej
oraz opracowanych przez zespół badawczy układów pomocniczych (np. układów
replikujących), a nawet podstawowych bramek prądowych jest modułowość i regularność ich
budowy. Oznacza to, że schemat ogólny układu składa się z prostych modułów kilku różnych
typów, których liczba zależy od wartości podstawy N systemu liczbowego. Każda bramka
prądowa składa się z obwodu wejściowego przedstawiającego sobą komparator K oraz
jednego lub kilku obwodów wyjściowych typu inwerter I lub anty-inwerter AI.
Konstruowanie bramki jednowyjściowego anty-inwertera prądowego polega na połączeniu
wyjścia bloku K z wejściem bloku AI, natomiast bramkę jednowyjściowego podwójnego
inwertera otrzymuje się przez dołączenie do bloku K dwóch bloków I, przy czym w takim
przypadku pierwszy blok I zawiera również uproszczony komparator wytwarzający
odpowiednie napiecie sterujące dla drugiego bloku. Należy zaznaczyć, że dla logiki MVL,
w przypadku ogólnym, obwód wejściowy bramki składa się z (N -1) szeregowo połączonych
komparatorów K, a realizacja np. jednowyjściowej bramki inwertera MVL wymaga
podłączenia osobnego bloku I do wyjścia każdego komparatora K, przy czym wyjścia
wszystkich (N -1) bloków I są połączone w jeden węzeł, który jest wyjściem bramki.
Opracowane przez autorów sumatory, przerzutniki i inne układy wielowartościowe też
mają regularną strukturę. Na przykład, w sumatorach przedstawionych na rys. 9 w zależności
od wartości N zmienia się tylko liczba wyjść typu anty-inwerter w wykorzystanej bramce.
Umożliwia to opracowanie układów reprogramowalnych typu FPGA przeznaczonych
— 10 —
do działania w systemach MVL i RNS, w których w sposób programowy można wybrać typ
systemu liczbowego (MVL lub RNS) oraz wartość jego podstawy N. (Należy zaznaczyć,
że w przypadku systemu resztowego RNS realizacja wielocyfrowego sumatora wymaga
stosowania równocześnie p podstaw N1, N2, ... , Np, gdzie p – liczba wyjść sumatora).
Struktura ogólna takiego układu reprogramowalnego FPGA może składać się z matrycy
bloków kilku różnych typów oraz sieci połączeń umożliwiającej łączenie bloków w sposób
programowalny. Fragment struktury wewnętrznej takiego układu reprogramowalnego
przedstawiono na rys. 10, gdzie przez K, I i AI oznaczono odpowiednio komparator, obwód
wyjściowy typu inwerter i obwód wyjściowy typu anty-inwerter. Programowalne przełączniki
sieci połączeń są zaznaczone na rys. 10 za pomocą przekreślonych kółek.
PAMIĘĆ KONFIGURACYJNA UKŁADU
IOB
IOB
IOB
K
I
AI
IOB
IOB
K
I
AI
IOB
IOB
K
I
AI
IOB
SYGNAŁY STEROWANIA KONFIGURACJĄ UKŁADU
IOB
IOB
IOB
IOB
IOB
...
K
I
AI
IOB
...
K
I
AI
...
IOB
...
K
I
AI
IOB
IOB
IOB
...
Rys. 10. Ogólna struktura układu reprogramowalnego działającego w systemach MVL i/lub RNS
Praca jest wykonana w ramach grantu KBN 3T11B 059 26.
BIBLIOGRAFIA
[1] The Programmable Logic Data Book. Xilinx, Inc., 2002
[2] M. Nagata, J. Nagai, T. Morie, A. Iwata, „Measurements and Analyses of Substrate Noise Waveform in
Mixed-Signal IC Environment” IEEE Trans. on Computer-Aided Design of Integrated Circuits and Systems,
vol. 19, No. 6, pp. 671-678, June 2000
[3] E. Charbon, P. Miliozzi, L. P. Carloni, A. Ferrari, A. Sangiovanni-Vincentelli, „Modeling Digital Substrate
Noise Injection in Mixed-Signal IC’s ” IEEE Trans. on Computer-Aided Design of Integrated Circuits and
Systems, vol. 18, No. 3, pp. 301-310, March 1999
[4] A. Guziński, A. Kielbasinski, „Current-Mode Digital Circuits Operating in Mixed Analog-Digital Systems”
Bulletin of the Polish Academy of Sciences, Technical Sciences, vol. 44, No. 2, pp. 193-198, 1996
[5] D. Gretkowski, A. Guziński, J. Kaniewski, O. Maslennikow, „VHDL models of digital combinatorical
circuits on the current-mode gates”, Proc. 6-th Int. Conf. MIXDES’99, pp. 253-258, Kraków, Poland, 1999
[6] O. Maslennikow, „Approaches to Designing and Examples of Digital Circuits Based on the Current-Mode
Gates” Data Recording, Storage & Processing, vol. 3, No. 2, pp. 84-98, 2001
[7] O. Maslennikow, P. Pawlowski, P. Sołtan, R. Berezowski, „Current-Mode Digital Gates and Circuits:
Conception, Design and Verification” Proc. IEEE Int. Conf. ICECS’2002, pp. 623-626, Dubrovnik 2002
[8] O. Maslennikow, R. Berezowski, P. Soltan, M. Rajewska, „Designing Prototype of the Spartan II FPGA
Slice with the Current-Mode Gates” Proc. IEEE Int. Conf. ICCSC’2002, pp. 182-185, St.-Petersburg 2002
[9] D. Gretkowski, O. Maslennikow, „Designing and Testing the Prototype of Reprogrammable Chip Based on
the Current-Mode Gates” Proc. 7 Int. Conf. CADSM’2003, pp. 434-437, Lwów 2003
[10] O. Maslennikow, P. Soltan, „Automated Implementation of Digital Circuits in Current-Mode FPGA Chips”
Proc. 7 Int. Conf. CADSM’2003, pp. 223-225, Lwów 2003
[11] O. Maslennikow, D. Gretkowski, P. Pawlowski, „Current-Mode Circuits for Multiple-Valued Logic and
Residue Number System Arithmetic” Proc. 10-th Int. Conf. MIXDES’2003, pp. 182-187, 2003
III Krajowa Konferencja Elektroniki
— 11 —