16 bites szorzó áramkör logikai tervezése a részegységek analóg szimulációjával SZŐKE SÁNDOR Mikroelektronikai Vállalat -
BME/HEI*
ÖSSZEFOGLALÁS A cikk rövid betekintést aú a digitális szorzók világába, majd részle tesebben ismertet egy 16x16 + 31 bites szorzó—összeadó áramkört. A teljes áramkör logikai tervezése és szimulációja, valamint az egyes részegységek analóg szimulációja a MEV-ben levő tervező rendszer segítségével történt.
I . Bevezetés Napjainkban a digitális jelfeldolgozás egyre t ö b b analóg területre tör be. A kommersz e l e k t r o n i k á b a n t ö r t é n ő tömeges elterjedéseink alapfeltétele, hogy nagy mennyiségben álljanak rendelkezésre olcsó, e feladatra specializált integrált á r a m k ö r ö k . Az igényt felismerve a vezető nyugati félvezetőüyártók ( I N
T E L . A M I , NEC, B E L L , T I , I B M , I T T , INTERM E T A L L ) kifejlesztették egy chipes digitális jelprocesszoraikat (DSP) [1]. Széles körűen felhasznál h a t ó k azonban olyan kisebb komplexitású IC-k is, amelyek nagy sebességgel képesek digitális számok szorzására ( T R W , M M I ) . A MEV-ben jelenleg meg b í z h a t ó a n m ű k ö d ő 5—6 ^m-es NMOS technológia lehetővé teszi egy 16x16 + 31 bites szorzó-összeadó á r a m k ö r g y á r t á s á t . Mivel a szocialista piacon ilyen á r a m k ö r jelenleg nem szerezhető be, komoly keres letre s z á m í t h a t u n k .
2. Szorzó algoritmusok Egy szorzás eredményét a szorzandók értéke egyér t e l m ű e n meghatározza, így elvileg nincs a k a d á l y a , hogy egy N x M bites szorzót egy N + M be-, illetve kimenettel rendelkező kombinációs h á l ó z a t t a l reali záljunk. Ez az átviteli függvények gyors bonyolódása m i a t t gyakorlatilag csak n é h á n y bitre valósít h a t ó meg, nagyobb szorzók minden esetben részszor zatok — igen gyakran bitszorzatok — összegzésével állítják elő az e r e d m é n y t . A szorzó működése — s így tervezése is — k é t fázisra b o n t h a t ó : — a részszorzatok előállítása az összeszorzandó számokból, - a részszorzatok összegzésével a szorzat kiszámí tása. A szorzókat a részszorzatok előállításának és össze a d á s á n a k alapján k é t csoportba sorolhatjuk.
B e é r k e z e t t : 1985. I I . 5. ( A ) * M E V Szőke Sándor munkahelyét nappali szakmér nöki tanulmányai idejére a BME/HEI-be helyezte k i .
324
SZŐKE
SÁNDOR
A Budapesti Műszaki Egyetem Villamosmérnö ki Karának Híradástech nika Szakán szerzett ok levelet 1983-ban. Jelen leg a Mikroelektronikai Vállalat fejlesztő mér nökeként a BME Hír
adástechnikai Elektroni ka Intézetében folytat szakmérnöki tanulmá nyokat, a digitális jelfel dolgozásban felhasznál ható integrált áramkörök tervezését tanulmányozza. Szűkebb témája a digi tális szorzók.
A szekvenciális ( S E Q U E N T I A L ) szorzók jellem zője, hogy minden ciklusban ugyanaz az á r a m k ö r i egység szolgáltatja az aktuális részszorzatot, s hozzá adja az előző ciklusból származó részeredményhez, így a szorzatot egyetlen egység többszöri felhaszná lásával nyerjük. Hardware igényük viszonylag kicsi, de bonyolult vezérlő jeleket k í v á n n a k . Legfőbb hát r á n y u k , hogy a számolás időbeli széttolása és a cik lusok k ö z ö t t szükséges adatmozgatások miatt a mű veleti idő megnő. A p á r h u z a m o s ( P A R A L L E L ) szorzókban egy egy ség csak egy pozíción vesz részt a számolásban, minden funkciót külön megvalósított hálózat lát el. A részeredmények közvetlenül a következő fokozat bemenetére jutnak, így a sebességet csak a tényleges számolásra használt idő szabja meg. A műveletek nagyfokú párhuzamosítása, a holt idők csökkentése által lehetőség nyílik olyan s t r u k t ú r á k kialakítására, amelyek a sebesség jelentős növekedéséhez vezetnek. A műveleti idő csökkentése általában a komplexitás és a fogyasztás növekedése mellett érhető el. Tekintsük először a legegyszerűbb esetet, amikor egy N és egy M bites pozitív egészként értelmezett számot akarunk összeszorozni:
(
N-l
\
(M-l
\
2*? j x í 2 i B
\
2 i
0)
Ha (1) kifejezést átalakítjuk a (2)-nek megfelelő formába, azonnal adódik a léptet és összead ( S H I F T A N D A D D ) szorzási módszer.
P=
2*(A B)
N
t
(2)
i = 0
N-l
M-l
v
'
I t t A= 2 és B = 2 i i=o j=o Az összeadandó bitek képe a helyiértéküknek meg felelően az 1. ábrán l á t h a t ó , ahol minden bitet egy X karakter jelképez. Az összegzés megvalósítható például egy N bit hosszúságú összeadó sorral a k á r szekvenciálisan ugyanazon blokk ismételt alkalmaB
Híradástechnika
XXXVI.
2 i
évfolyam 1985. 7. szám
zásával, a k á r p á r h u z a m o s a n t ö b b blokk megépítésé vel. A bitek előállítása bitszorzatokkal vagyis A N D kapcsolatokkal t ö r t é n h e t . Az algoritmus jól használ h a t ó előjeles abszolút értékes formában ábrázolt szá mok szorzására is. Az előjelüktől megfosztott számo kat pozitív egészként összeszorozzuk, az eredmény előjele egy E X O R kapuval m e g h a t á r o z h a t ó . A digitális jelfeldolgozásban legelterjedtebb a 2's komplemens kód h a s z n á l a t a , ahol az előjegy (MSB bit) negatív súlyozása felborítja a m ű v e l e t i homoge nitást. Egy 2's komplemens k ó d b a n ábrázolt N bites szám é r t é k e : Ú{A}-
-a 2°+ 2X2-'-.
(3)
n
Ilyen formában kódolt számok szorzására is t ö b b módszer terjedt el. Szekvenciális szorzókban szíve sen alkalmazzák a Booth-algoritmust [2], mert ez mind az M lépésben azonos műveleti szabályok sze rint számolja az e r e d m é n y t . A szorzó aktuális k é t bitjét vizsgálva az előző részeredmény feléhez vagy hozzáadja, vagy abból kivonja a szorzandót, vagy pedig nem végez m ű v e l e t e t . A kivonás megvalósít h a t ó a szorzandó komplemensének hozzáadásával, ami a bitek negálását és az LSB helyen + 1 hozzá a d á s á t igényli. A műveletvégző egység így az összeadó-kivonó á r a m k ö r helyett egy egyszerűbb, csak összeadó hálózatot tartalmaz, az összeadandó tagok előállításához azonban az A N D kapuk helyett i t t egy bonyolultabb kapcsolásra van szükség, amely min den ciklusban a vezérlő jelektől függően vagy a , vagy a, biteket állít elő. P á r h u z a m o s szorzó áramkörök tervezésénél gyak ran alkalmazott megoldás, hogy különféle korrekciók bevezetésével visszatérnek az 1. ábrának megfelelő s t r u k t ú r á h o z és algoritmushoz. Alakítsuk á t (3)-t és nézzük meg, hogyan változik a szorzat kifejezése:
M X X * X X * * * X - - •
+
(
N-l
(
\
M-l
H35-1 1. ábra. Az összeadandó bitek képe egy N és egy M bites pozitív szám szorzásakor
X X X X X X X
X X X
X X X X X
[3;21
X X X X X
X X X X
X X b/
o/
[7;3]
5fe 5tí )ÍC 3(t 5lí
Í5,5;4]
X X X X Síi 5ií XX X X
X X X X X X X X X
<\
- a 2i + 2o a^-'J X ^ - & 2 + 2 bfi-'j = i X Zbpr* + 4a b -2a 2bj2-j - 2b02a,2- . J i '
X X X X X X X X X M+N-t
(4)
Záp'
0
XX * X
* X X X X -
N-l 1
- x x
X X * X X X X X X -
t
val{A}=-« 2 +
X X * * XX
xi/ 7K
7K
\i/ ' TV J
\is -t*.
vb* ^ \
vi/ -T\
l
0
'
0
0
()
0
ól
F2,2.2,3;5Í
©/
[3,3,3,3:61
(5) L á t h a t ó , hogy egy lehetséges megoldás az utólagos ( E X P L I C I T ) korrekció. Az (5) első t a g j á n a k értéke az első módszerrel számolható, a második az á b r á zolható t a r t o m á n y o n kívülre esik, így figyelmen kívül h a g y h a t ó . A k é t kivonás a 2's komplemens hozzáadásával realizálható, ami két újabb összeadó sor megvalósítását igényli. Ezt az eljárást régebben a l k a l m a z t á k , ha a m á r meglevő, drága (nagy m é r e t ű k á r t y á n k b . 100 IC-t t a r t a l m a z ó , p l . [4]) szorzó egy séget a k a r t á k felhasználni az újabb igényeknek meg felelő 2's komplemens k ó d b a n végzett számolásrá. Az e z u t á n építendő á r a m k ö r t eleve ilyen k ó d r a ter vezzük, s a szükséges korrekciókat m á r a számolás közben figyelembe vehetjük ( I M P L I C I T algoritmu sok). A műveleti homogenitás ezzel természetesen megbomlik, de ez p á r h u z a m o s szorzóknál nem alapHíradástechnika
XXXVI.
évfolyam
1985. 7. s$ám
H35-2 2. ábra. Néhány gyakoribb összeadó egység
X X
X
X
H35-3 3. ábra. 2Iá előállítása 4 db 2/a blokkból
325
/r,
# /TV
/TV,
NI£
\1S
/TV
/TN
NI/
Ni/
XI/
\A/
\ I /
/TV
/TV
/¥*•
/TV
/TV
.TV
/TN
/TV
/TV
/TV
/TV
/TV
/TV
/TV
/TV
/T*
/Tv
/TV
<^v
/TV.
/TV
/IV, /TV
/rv
/TV
/TV
/Fv
/TV
/TV /TV /TV
*T.
/TV
/TV
/TV
/TV. / T * .
*TS
/TV
>T\
/TV vi/
/TV vi/
/TV
/TV \iy
xt/
/TV \|/
/TV
viy
/TV
-TV,
^ V
/TV
xi/
/TV
/tv
/TV
/TV, ^TV,
/TV
/Is
/TV
/Tv
/TV
/TV
/TV
/TV /TV xi/ NÍ/
/TV \i/
/TV
/TV
/TV
/Tv
/TV
/TV
/TV
/TV
/TV /TV
/TV /TV
/TV
/TV /TV
/TV
/TV
/TV
/TV /TV
/TV
/TV
/TV
/Ti
/TV
/TV /TV /TV /TV
/TV
/TV
/TV
/TV /TV
\IX
í^í
/TN
/IV
XI/
/TV
•^V
/TV
\t/
\ | /
»TN.
/TV
\y
\y
XI/ I^N
Sr-
/TV
^v /TV
^TV
ÍT
/TV
/FV
/TV
-TV
TV
/TV
/TV
/TV
/TV
/TV
/TV
/TV
/TV.
/TV
/TV
/TV
/TV
/TV
/TV
/TV
/TV
/TV
/TV
/TV
/TV
/TV /TV
/Tv
/TV
/IN
/TV
/TV
/TV
/TV
/TV
/TV
/TV
/TV
/TV
/TV
/TV
íif * * * íif /T\
/TV \ix
\i/
¥ ¥ íif * * * * ílf
/TV
/TV* /TV
/TV
/Tv
/Tv
/TV
/TV
/TV
/TV,
/TV
/TV
/TV
/TV, /TV
/TV. / T V /TV
/TV
/TV
/TV
/TV
/TV
/TV
/TV
/TN
/TV
/TV
/|\
*###############
2
/TV ^ /TV
/I*.
/TV
/r.
/TV
/TV.
/v.
/TV
/r.
/TV
/TV
/TV
/TV
/T*.
/TV
/TV
/T*.
/TV
/TV
/tv
/TV
/T*.
/T*.
^v,
/TV
/TV
/TV
^ .
H35-4 4. ábra. Az összeadandó bitek képe a 16x16 bites 2' s komplemensű szorzónál
vető követelmény, csak a tervezést k ö n n y í t ő tulaj donság. Egy ilyen implicit algoritmus ismertetése t a l á l h a t ó a következő pontban. Vizsgáljuk meg ezek u t á n a részszorzatok össze a d á s á n a k p r o b l é m á j á t ! A bithalmaz redukálása k ü lönféle összeadó blokkok alkalmazásával t ö r t é n h e t . Egy általános összeadó egység K bemenő bitből L kimenő bitet állít elő. Minél nagyobb a ( K — L ) érték, annál kevesebb összeadót kell használnunk. Az alkal m a z a n d ó cella kiválasztásánál természetesen figye lembe kell venni a műveleti sebességet is, hiszen t ö b b , de lényegesen gyorsabb fokozat eredményezhet eredőben gyorsabb á r a m k ö r t . N é h á n y tipikusnak m o n d h a t ó cella l á t h a t ó a 2. ábrán [5] alapján. A leg egyszerűbb közülük az 1 bites teljes összeadóként ismert egység ( F U L L A D D E R ) , amely 3 bemenő b i t (a,-, b és egy kisebb helyiértékről származó átvi tel) felhasználásával 2 kimenő bitet (szumma és átvitel) számol. Megfigyelhetjük, hogy a 2/d egységgel megegyező funkciójú á r a m k ö r összeállítható 4 db F A felhasz nálásával a 3. ábra szerint. Ugyanígy egymás mellé helyezve N egységet összeadhatunk k é t N bites szá mot, és még marad is egy szabad b e m e n e t ü n k az LSB helyiértéken, ami p l . a komplemens hozzáadá sával megvalósított kivonás esetén felhasználható a + LSB érték figyelembe vételére a számolási idő növe lése nélkül. Leggyakoribb megoldás, hogy ilyen öszszeadó sorok segítségével az 1. ábrának megfelelő bitképet soronként összegzik, mivel ez egy szabá lyos, jól á t t e k i n t h e t ő hardware s t r u k t ú r á t eredmé nyez. A p á r h u z a m o s megvalósítás adta lehetőségeket lényegesen jobban kihasználó algoritmust ismertet t
326
Vuillemin, ahol /d(N) lépésben a szomszédos rész eredmények p á r o n k é n t i összegzésével j u t el a vég eredményhez [6]. Legáltalánosabb esetben a gyorsaság fokozása ér dekében tetszőleges, a feladatra orientált összeadó hálózat alkalmazható, de a szabálytalan s t r u k t ú r a nehezen á t t e k i n t h e t ő , számos hibalehetőséget rejt m a g á b a n . Az á r a m k ö r tervezése és ellenőrzése na gyobb m u n k á t igényel, s ezzel a tervezési időt és költséget, végső soron az integrált áramkör á r á t növeli.
3. A tervezéshez használt algoritmus A szorzó á r a m k ö r t a szabványok, a piaci igények és a technológiai lehetőségek figyelembevételével 16 X16 bitesre t e r v e z t ü k , így célszerű a felhasznált algorit must — az általánosság megszorítása nélkül — erre a k o n k r é t esetre levezetni. A feladat t e h á t a 16 bites, 2's komplemens k ó d b a n ábrázolt A és B számok összeszorzása. A szorzat kiszámításához használjuk a (3) képlet szerinti értelmezést: v a l { P } = | - a 2 ° + J « , 2 - ' j x | ~*
0
= « A + 2 2 a}>pr'-l-a 2 bj2'J-b 0
0
y'=l
; = 1 ; = 1
=
Z a,2-< (6) i=l
Az első k é t tag a számolás során nem okoz problé m á t , de mivel h á l ó z a t u n k b a n csak összeadó cellákat szeretnénk használni, a k é t kivonást vissza kell v e z e t n ü n k összeadásra. Az előjegyüktől megfosztott Híradástechnika
XXXVI.
évfolyam 1985. 7. szám
+1 + + + + ++++++++++ + #* * * + # ** * * * * * * * * * * * * * + # * ** * * + # * * ** * * + # * * * ** * * * ^ V ^ ^ ^ + #*'**** * * * * * * * * * * + # * * * * * * * * * ** ** ** ** ** * +#******* * * * + #*•**** * *X*. * * * * * ** * + # * * * * * . XX. * * * * * *. +#********** * * * * * +#*********** * * * * + #*****. * * * * * * * * * * + #***** * * * * * * * * * * + #************* * * *############### 4-
^ *^^* ^^
, T \ „ ./TV
/Ts
,TN
/Tv ^T\
^*^
/T\
iTV
/TV I T .
^*^
/TV
,T\
^%
,TV
/Tv
^*
vT".
/ív
/T.
/IV
,T,
.. Tf V.
/TV /TV /TV <*I\,
/»TV rv
/Tv .TV
yrv
/T\
/T\
.TV
•rv
/TV
/T\
/[\
«TV
sr.
/IN
*TN
xTV
/TV
.TV
ÍTV
«TV
STK
/TV
^TV
ÍTV
/IN
/TV.
,Tv
/TV
*
,OV
/TV
xl\
/«TV I\
^^^ /TV
,T\
*T\
/T\
/TV
/TV
/« T T V.
/TV
/. ITSV
TV // T ,
/TV
/IS
«TV
/IS
SI\
/T\
-TV
/Ti
/Tv
^
/Tv
/Tv
^* ¥
«T.
/Tv
/T . 7
1H35 - 5 ,J. áéra. Az összeadandó bitek képe a 16x16 + 31 bites szorzó-összeadónál
A és B számok pozitív értéket képviselnek, így k i - a d a n d ó bitek képe a 4. ábrán l á t h a t ó , ahol # karak egészíthetők egy 0-s előjeggyel. Az így nyert számo ter jelöli azokat a biteket, amelyeket negáltan kell kat jelöljük vesszővel (7) definíciók szerint: előállítani. A bitszorzatok generálásában ez nem okoz különösebb nehézséget, minden bitet egy egy a' =b' =0; «;= és b', = bj, i. j)0. (7) szerű logikai alapkapu szolgáltat. A 16x16 + 2 b i t összeadása legegs'szerűbben 15 db Jelöljük 5-sel a (6) első k é t t a g j á n a k összegét. A 16 bites összeadó sorral t ö r t é n h e t . H a megkeressük szorzat értéke (6) és (7) a l a p j á n : a jelterjedés szempontjából leghosszabb utat. azt találjuk, hogy a számolási i d ő : 0
o
a /
val {P} = S-2afö-i-2
(8)
T max = 29 T + 1 5 T , c
A kivonásokat a komplemensek hozzáadásával he lyettesítve :
+2
val {P} = S+2 ;'=o
+ 2 " " . (9)
;=o.
Mivel a =b' = 0, ; = 0 és / = 0 esetén keletkezik egy-egy 2° tag, amelyek összege 2. Ezen konstans érték az ábrázolható t a r t o m á n y o n kívülre kerül, így ez a k é t tag elhagyható a szummából. A m e g m a r a d ó vesszős tagok megegyeznek az eredeti értékekkel, így azokat visszaírva a szorzat értékére a következő végeredményt kapjuk: 0
0
val{P} = a 6 + Z 0
Za b 2- ~J+Z^Jj2-J+2y'=i , 7=i i
0
i
'=1
J
íS
J
+ZW~'+2- . w
+
(10)
i=i
Az egyenlet jobb oldalán levő s z u m m á k a t felbont va, majd a tagokat 2 h a t v á n y a i alapján csoporto sítva meghatározhatjuk, hogy melyik bitszorzatot milyen helyiértéken kell figyelembe venni. Az össze Híradástechnika
XXXVI.
évfolyam 1985. 7.... szám
s
(11)
ahol T a carry, T pedig a szumma képzésének ideje egy FA cellában. A képletből jól l á t h a t ó , hogy a soros átvitelterjedés igen sok időt emészt fel, meg szüntetése gyorsítaziá az á r a m k ö r t . Ez átvitel meg őrző (CARRY SAVE = CS) összeadó sorok használatá val érhető el. A CS összeadás lényege, hogy a vízszin tes átvitelterjedés helyett a keletkező C értékeket egy következő fokozat bemenetére vezetjük. Az öszszeadás eredménye így egy N bites C és egy N bites S jellegű szám lesz, amelyek együttesen képviselik az összeg értékét. A felszabaduló C bemenetek követ keztében az összeadó sor 3 számot képes fogadni, t e h á t 3 db A bites szám vagy egy normál és egy CS szám összeadására képes, az eredmény CS formá ban áll elő. Az N bites összeadás mindössze 1 T időt igényel, mivel a FA cellák egymástól függetle nül, azonos időben m ű k ö d n e k , s a számolási idő független az összeadó sor hosszától. 14 db 16 bites összeadó sor alkalmazásával az eredmény 14 T idő alatt előáll 16 bites CS formá ban, amiből még képezni kell a 2's komplemens k ó d ú végeredményt. H a ezt a legegyszerűbb módon, egy soros átvitelterjedéses 16 bites összeadóval végezc
s
r
s
s
327
nénk el, ehhez (15 T + \ T ) időre lenne szükség, ami még így is 14 r - n y i gyorsulást jelent az eredeti megoldáshoz képest. A végső összeadás azonban gyorsabban is elvégezhető átvitelgyorsító blokkokat t a r t a l m a z ó összeadóval [2]. Ennek műveleti ideje a megtervezett kapcsolásban k b . (6 T + l T )-nek felel meg, így v é g e r e d m é n y b e n a CS összeadó sorok és az átvitelgyorsítós Összeadó bevezetésével 23 T -vel csökkent a számolási idő. A z átvitelgyorsító blokkok az á r a m k ö r m é r e t é t növelik, ami azonban az összkomplexitáshoz m é r t e n nem jelentős. A csak szorzó á r a m k ö r h ö z képest lényegesen na gyobb keresletre s z á m í t h a t egy szorzó-összeadó. A szorzás p á r h u z a m o s megvalósítása lehetővé teszi a kapcsolás viszonylag egyszerű, gazdaságos t o v á b b fejlesztését. A k é t 16 bites számot összeszorzó, s a szorzathoz egy 31 bites számot adó á r a m k ö r bitel rendezése l á t h a t ó az 5. ábrán, ahol + jelöli a hozzá a d a n d ó szám bitjeit. Ebben az elrendezésben az előző kapcsoláshoz képest eggyel t ö b b FA sorra van szük ség, s minden sor 17 bites, az eredmény 16 bites CS szám. Az új funkció bevezetése m i a t t a műveleti idő 1 T -sel m e g n ő t t , a FA cellák s z á m á n a k változása (15x17 —14xl6) = 31. A kritikus p a r a m é t e r , a sebes ség t e h á t nem v á l t o z o t t jelentősen, de a komplexitás k b . 10%-kal n ő t t . A főbb p a r a m é t e r e k e t összefoglalva az átvitelterjedéses csak szorzó algoritmus műveleti ideje: c
s
c
c
lítva sebességük és k o m p l e x i t á s u k alapján a követ kező függvényeket megvalósító cellára esett a válasz tás :
S=W(A + C + B) + ABC
(19)
CÖ=C(A + B) + AB
(20)
s
c
s
A (19), (20) egyenleteket vizsgálva azt tapasztaljuk, hogy a C és S kimenetek k é t komplex kapuval reali zálhatók, s ezekből egy-egy inverter állítja elő C-t és S-t. Csökkentené a komplexitást, ha e l h a g y h a t n á n k az invertereket, s a negált kimeneteket t u d n á n k fel használni a t o v á b b i számolás során. A függvény szimmetriatulajdonságát kihasználva a negált kime neteket t e k i n t h e t j ü k ellentétes logikában értelme zett ponált értékeknek is, amit a következő, ellentétes logikában működő fokozat képes feldolgozni. A vál t o t t logika használatánál arra kell ügyelni, hogy az egyes cellák bemenetei azonosan legyenek értelmez ve. Ez egyszerűen megvalósítható a CS összeadok jóvoltából, az e g y m á s t k ö v e t ő sorokat felváltva pozi tív, illetve negatív logikában m ű k ö d t e t v e . Ez azt eredményezi, hogy az 5. ábra minden második sorá ban az algoritmus szerinti bitek negáltját kell előál lítani, de így is minden b i t kifejezhető A Bj vagy {
Aj + Bj alakban. Egy adott sorban minden b i t generálásához azonos logikában értelmezett 6 -re van szükség, míg az egy m á s t k ö v e t ő sorokban az er,-k felváltva ponált, majd negált értékkel szerepelnek. A bj értékek a tápfeszült séggel p á r h u z a m o s a n fémezéssel vezethetők végig a m á t r i x sorain, az erre merőlegesen futó er-kat poliSimal vagyunk kénytelenek t o v á b b í t a n i , ami a nagy távolság (3—4 mm) m i a t t nagy késleltetést jelentene. Mivel úgyis minden sorban az előző sorban levő érté kek negáltjaira vanszükség, azt az összes pozíción egyegy inverterrel állítjuk elő, ami e g y ú t t a l a jel soron k é n t i frissítését is eredményezi. Igaz, hogy ez t ö b b mint 200 plusz inverter megvalósítását igényli, de ezek a sebesség szempontjából nem kritikus ú t o n helyezkednek el, így kis területen kis fogyasztással megvalósíthatók. y
T(MUL)
= 29 T + 15 T . c
(12)
s
A szorzó-összeadó számolási ideje: T(MAD)
= 16T
S
+ 5T .
(13)
C
Az előzetes becslések szerint 1 T =2 s
T(MAD)/T(MUL)
T , így : c
= 0,63,
(14)
t e h á t az átvitelmegőrzős és az átvitelgyorsítós össze adások bevezetésével sikerült a műveleti időt a 63%-ára csökkenteni az á r a m k ö r i funkció bűvülése mellett. A komplexitás növekedése k b . 25%-os.
4. Logikai szimuláció A logikai szimulációhoz az egész h á l ó z a t o t meg kell tervezni logikai kapu szinten, amit nagyon megk ö n n y í t h e t a szabályosan ismétlődő részegységekből felépülő s t r u k t ú r a . A szorzó meghatározó alapeleme az egy bites FA cella, így annak optimalizálása a tervezés legfontosabb feladata. Az összeadó cellát definiáló alapegyenletek: S=A®B@C CO=AB+AC+BC
(15) (16)
K ö n n y e n b e l á t h a t ó a függvények szimmetria tulaj donsága : S=I©B©C CÖ=AB
+ AC+BC,
(17) (18)
ami gyakorlatilag azt jelenti, hogy ugyanaz az á r a m k ö r a k á r pozitív, a k á r negatív logikában korrekciók nélkül használható. Számos megoldást összehason
328
Az 5. ábra szerinti elrendezésben a bitek a helyi értéküknek megfelelően helyezkednek el, ami para lelogramma alakú chipet eredményezne. A megvaló sítás során a sorokat egymás alá toljuk, így a C füg gőlegesen lefelé, a S jobbra lefelé lép a következő fokozat bemenetére. A téglalap alakú s t r u k t ú r a jobb szélén keletkezik a 15 db kisebb helyiértékű ered m é n y b i t , az alján pedig a 16 bites CS szám. A fel használt FA cella logikai és tranzisztorszintű kap csolása l á t h a t ó a 6. ábrán. A CS szorzatot a 16 bites, kétszintű átvitelgyor sítót t a r t a l m a z ó összeadó fogadja, amelynek k o n k r é t kapcsolása a definiáló egyenletek technológiához illeszkedő átalakításával nyerhető [2J. A logikai szi mulációs programban a kapukésleltetések megfelelő megválasztásával elérhető, hogy a futtatások során T =6 nsec adódjon, ami reális érték egy komplex kapu késleltetésének figyelembevételére. Az ered m é n y a kipróbált bemenő adatokra minden esetben a becsült 37 T -nek megfelelő 222 nsec-on belül adó dott. A 6 nsec-os becslés helyességét az analóg futta tások eredményei megerősítették. c
c
Híradástechnika
XXXVI.
évfolyam 1985. 7. szám
CON< -cA
döntően a tranzisztorok a k t í v területének mérete h a t á r o z z a meg, az összeköttetések csak nagy távol ságok esetén okoznak jelentős lassulást ( p o l i S i > l mm). Az összeadó cella DC transzfer karakte risztikája l á t h a t ó a 7. ábrán. A vezérelt bemenet a B jelű, a vizsgált kimenetek CN és SN. Az á b r a alapján a logikai küszöbfeszültség k b . 2-3 V . M i n d k é t kapu erősítése a küszöbfeszültség k ö r n y e z e t é b e n > 1 (a k i m e n ő j e l meredeksége nagyobb a bemenőé nél), ami a zavarelnyomás m i a t t fontos követel mény.
SN H35-6d
CÜN
SN
L c 3.75 A
B
n
B
B—IL
•—IC
1
U,V
5.
— l í
|H35-7 j 7. ábra. A F A cella DC transzfer karakterisztikája
II—r-
c lH35-6b]
I,mA
6. ábra. Az összeadó cella logikai kapu és tranzisz torszintű kapcsolási rajza 5. Analóg szimuláció Az analóg szimulációval kapcsolatban elöljáróban meg kell említeni, hogy a szimulációs eredmények a technológiai és szimulációs bizonytalanságok m i a t t csak tájékoztató jellegű értékek, amelyek hasznos információkat szolgáltatnak a tervezés során, nem képesek azonban arra, hogy egy á r a m k ö r m ű k ö d é s é t előre pontosan megadják. Az analóg szimulációs futtatások a TKI-ban kifej lesztett A N A L 2 0 nevű MOS analízis program fel használásával készültek, amely MOS tranzisztorok ból, ellenállásokból, kapacitásokból és jelforrásokból felépülő hálózatok DC és tranziens viselkedésének modellezésére képes. A program nagy előnye, hogy az áramkörleírás bemenő p a r a m é t e r e i a layoutról vett méretek, így az analóg szimuláció jól definiált kapcsolatban van a tényleges á r a m k ö r r e l . A legfontosabb feladat i t t is a FA cella tervezése volt. A meghajtó tranzisztorok L értékét (csatorna hossz) célszerű a technológia által megengedett minimális értékre választani, s a szükséges csatorna szélességeket (W) a szimuláció során m e g h a t á r o z n i . A számolt tranzisztor méretek felhasználásával t ö b b layout terv is készült, az ezek alapján pontosított áramkörleírások szimulációi gyakorlatilag azonos e r e d m é n y e k e t szolgáltattak. Ez azzal m a g y a r á z h a t ó , hogy a késleltetéseket okozó R és C értékeket Híradástechnika
XXXVI.
évfolyam
1985. 7. szám
0.
50,
100,
158,
1 200,
t.ns H35-8oj
200.
t,ns
lH35-8b | 8. ábra. A F A cella tranziens jellemzői: a) áramfelvétel, b) tranziens feszültségátvitel
329
A FA cella késleltetését sorba k ö t ö t t blokkok tranziens vizsgálatával lehet m e g h a t á r o z n i . A prog ram 5 összeadót t a r t a l m a z ó sort volt képes feldol gozni, ennek f u t t a t á s i eredményei l á t h a t ó k a 8. áb rán. Az 5 fokozat késleltetése 60 nsec-ra a d ó d o t t , amiből T^-re a logikai futtatások során h a s z n á l t 6 nsec becsülhető. Az 5 cella együttes áramfelvétele még logikai szint v á l t á s k o r sem haladja meg az 1 mA-t, így az összeadó hálózat fogyasztása kisebb lesz mint 50 raA. Az inverterek együttes áramfel vétele max. 10 mA-re becsülhető, így a teljes szorzó egységé kisebb 60 mA-nál. A fogyasztás 5 V-os t á p feszültségnél kisebb 300 m W - n á l , amit a 40 lábú tok k ö n n y e d é n eldisszipálhat. A fogyasztás és sebesség p a r a m é t e r e k az igényeknek megfelelően v á l t o z t a t h a t ó k a tranzisztorok W / L a r á n y á n a k módosításá val. N ö v e k v ő értékgyorsulást és nagyobb fogyasz t á s t eredményez, míg a csökkentés h a t á s á r a kisebb fogyasztású, de lassúbb á r a m k ö r t n y e r ü n k .
(i. Összefoglalás A digitális szorzók rövid áttekintése u t á n egy konk rét p á r h u z a m o s szorzó á r a m k ö r tervezését l á t h a t t u k . Az á r a m k ö r összeszoroz 2 2's komplemens k ó d b a n adott 16 bites számot, s eközben a szorzathoz hoz záad egy 31 bites ugyancsak 2's komplemensű szá mot. A k i v o n á s o k a t egy implicit algoritmussal viszs z a v e z e t t ü k csak összeadást igénylő s t r u k t ú r á r a , így CS összeadó m á t r i x o t h a s z n á l h a t t u n k . A CS ered m é n y t egy kétszintű átvitelgyorsítót t a r t a l m a z ó öszszeadó segítségével alakítjuk á t 2's komplemens k ó d r a . A használt layout méretekkel a szorzó-összeadó 300 mW-os fogyasztás mellett max. 222 nsec
alatt szolgáltatja az eredményt, ami nyugati publi kációkkal összevetve is jó eredménynek t e k i n t h e t ő . Nem á r t még egyszer megemlíteni, hogy ezek az ada tok csak fenntartásokkal fogadhatók el, s az input output egységek nélkül jellemzik m a g á t az aktív műveletvégző egységet. 7. Köszönetnyilvánítás Végezetül szeretném köszönetemet nyilvánítani dr. Gordos Gézának és Tuzson Tibornak m u n k á m a t segítő hasznos ötleteikért, az á r a m k ö r tervezéséhez és a cikk megírásához n y ú j t o t t segítségükért. IRODALOM [1] Tuzson Tibor, Asztalos András : V L S I Digital Signal Processing Structures and their Feasibility, Proceedings of the Third Symposium on Microcomputer and Microprocessor Application, Bp., 18—21 October, 1983 vol. I . pp. 148-164. [2] Rupprich Péter: Digitális aritmetika, BME Mér nöktovábbképző jegyzet. [3] Gibson, J. A., Gibbard. R. W.: Synthesis and Comparison of Two's Complement Parallel Multipliers, I E E E Transactions on Computers, October 1975 vol. C - 2 4 , No. 10 pp., 1020-1027. [4] Pezaris, S. D.: A 40-ns 17-bit by 17-bit Array Multiplier, I E E E Transactions on Computers, Apr. 1971 vol. C - 2 0 , pp. 442-447. [51 Stenzel, W. J., Kubitz, W. J'., Garcia, G. H.: A Compact High-Speed Parallel Multiplication Scheme, I E E E Transactions on Computers, Oct. 1977. vol. C—26, No. 10 pp., 948-957. [6] Jean Vuülemin: A Very Fast Multiplication Algor i t h m for V L S I Implementation, North-Holland Publishing Company Integration, The V L S I Jour nal 1983 pp. 3 9 - 5 2 .