nike air max 1 crepe premium brown gum sample
nike spring 2009 preview

Electronica Digitala(Buna Pentru Microcontrollere)613-Pag

January 14, 2018 | Author: fasolăi | Category: N/A
Share Embed Donate


Short Description

Electronica Digitala(Buna Pentru Microcontrollere)613-Pag...

Description

Electronic˘a digital˘a - Curs Gheorghe TOACS¸E

1

April 3, 2005

1

TRANSILVANIA University Bra¸sov, Electronics and Computers Email: [email protected]

Cuprins 1 PORT ¸ I LOGICE 1.1 SUPORTUL LOGIC PENTRU SISTEMELE DIGITALE . . . . . 1.1.1 Axiomele ¸si teoremele algebrei Booleene . . . . . . . . . . . 1.1.2 Algebre polivalente . . . . . . . . . . . . . . . . . . . . . . . 1.1.3 Funct¸ii Booleene . . . . . . . . . . . . . . . . . . . . . . . . 1.1.4 Forme canonice . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.5 Forme disjunctive ¸si conjunctive . . . . . . . . . . . . . . . ˘ . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 POARTA LOGICA 1.3 PARAMETRII PORT ¸ ILOR LOGICE . . . . . . . . . . . . . . . . ˘ . . . . . . . . . 1.4 PORT ¸ I LOGICE ˆIN TEHNOLOGIA BIPOLARA 1.4.1 Inversorul bipolar . . . . . . . . . . . . . . . . . . . . . . . . 1.4.2 Port¸i logice TTL . . . . . . . . . . . . . . . . . . . . . . . . 1.4.3 Port¸i pentru magistrale . . . . . . . . . . . . . . . . . . . . 1.5 PORT ¸ I ˆIN TEHNOLOGIA CMOS . . . . . . . . . . . . . . . . . . 1.5.1 Tranzistorul MOSFET . . . . . . . . . . . . . . . . . . . . . 1.5.1.1 Tehnologia de fabricat¸ie a tranzistorului MOS . . 1.5.1.2 Ecuat¸iile tranzistorului MOS . . . . . . . . . . . . 1.5.2 Inversorul CMOS . . . . . . . . . . . . . . . . . . . . . . . . 1.5.2.1 Caracteristica static˘ a de transfer VO = f (VI ) . . . 1.5.2.2 Proiectarea inversorului CMOS . . . . . . . . . . . 1.5.2.3 Tehnologia de fabricat¸ie a inversorului CMOS . . 1.5.2.4 Regimul dinamic al inversorului . . . . . . . . . . 1.5.3 Familia de port¸i logice CMOS . . . . . . . . . . . . . . . . . 1.5.3.1 Poarta NOR ¸si NAND cu dou˘ a intr˘ ari . . . . . . . 1.5.3.2 Port¸i logice complexe . . . . . . . . . . . . . . . . 1.5.3.3 Seriile de port¸i ale familiei CMOS . . . . . . . . . 1.5.3.4 Interfat¸area TTL-CMOS ¸si CMOS-TTL . . . . . . 1.5.4 Poarta de transmisie CMOS . . . . . . . . . . . . . . . . . . 1.5.5 Circuite logice dinamice . . . . . . . . . . . . . . . . . . . . 1.5.6 Metoda efortului logic . . . . . . . . . . . . . . . . . . . . . 1.5.6.1 Determinarea ˆıntˆ arzierii pe o poart˘ a logic˘ a . . . . 1.5.6.2 Calculul ˆıntˆ arzierii ˆın ret¸elele de port¸i logice . . . 1.5.6.3 Alegerea num˘ arului optim de niveluri pe un traseu 1.6 REJECT ¸ IA ZGOMOTELOR . . . . . . . . . . . . . . . . . . . . . 1.6.1 Reject¸ia zgomotelor externe . . . . . . . . . . . . . . . . . . 3

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7 7 7 11 14 19 26 31 39 52 52 56 59 66 66 66 72 79 80 83 87 90 94 95 98 105 107 111 115 123 124 131 136 142 148

4

CUPRINS 1.6.2

Reject¸ia 1.6.2.1 1.6.2.2 1.6.2.3 1.6.2.4

zgomotelor interne . . . . . . . . . . . . . . . . . . . . 150 Zgomotul de mas˘ a. . . . . . . . . . . . . . . . . . . . . 150 Zgomotul datorit˘ a neadapt˘ arii liniilor. . . . . . . . . . 151 Zgomotul datorat cuplajului electromagnetic (diafonia) 158 Zgomotul datorit˘ a curent¸ilor de alimentare . . . . . . 160

2 CIRCUITE LOGICE COMBINAT ¸ IONALE 2.1 CIRCUITUL LOGIC COMBINAT ¸ IONAL . . . . . . . . . . . . . . . . 2.2 REPREZENTAREA CLC . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Tabelul de adev˘ ar . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Reprezentarea analitic˘ a . . . . . . . . . . . . . . . . . . . . . . 2.2.3 Diagrama Veitch - Karnaugh . . . . . . . . . . . . . . . . . . . 2.2.3.1 Minimizarea funct¸iilor incomplet definite . . . . . . . 2.2.3.2 Minimizare pe diagrame V-K cu variabile reziduu . . 2.2.3.3 Minimizarea prin diagrame V-K a circuitelor cu ie¸siri multiple . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.4 Diagrama de decizie binar˘ a, BDD . . . . . . . . . . . . . . . . 2.2.5 Modalit˘ a¸ti neformale de reprezentare . . . . . . . . . . . . . . . 2.3 REALIZAREA CIRCUITELOR COMBINAT ¸ IONALE . . . . . . . . . 2.3.1 Hazardul static . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 CLC PENTRU FUNCT ¸ II LOGICE . . . . . . . . . . . . . . . . . . . 2.4.1 Codificatorul . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2 Codificatorul prioritar, CDCP . . . . . . . . . . . . . . . . . . . 2.4.3 Decodificatorul, DCD . . . . . . . . . . . . . . . . . . . . . . . 2.4.3.1 Convertorul de cod . . . . . . . . . . . . . . . . . . . 2.4.4 Multiplexorul . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.4.1 Aplicat¸ii cu circuite multiplexoare . . . . . . . . . . . 2.4.5 Demultiplexorul . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.6 Memoria numai cu citire, ROM . . . . . . . . . . . . . . . . . . 2.4.6.1 Realizarea circuitelor ¸si modulelor ROM . . . . . . . 2.4.6.2 Module de memorie ROM . . . . . . . . . . . . . . . . 2.4.7 Dispozitivele logice programabile, PLD . . . . . . . . . . . . . . 2.4.7.1 Matricea Logic˘ a Programabil˘ a, PLA . . . . . . . . . . 2.4.7.2 Matricea logic˘ a programabil˘ a cu nivel OR fix, PAL . 2.4.7.3 Circuitul de tip GAL . . . . . . . . . . . . . . . . . . 2.5 CLC PENTRU FUNCT ¸ II NUMERICE . . . . . . . . . . . . . . . . . 2.5.1 Comparatorul . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.2 Sumatorul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.2.1 Sumatorul cu Transport Progresiv, STP . . . . . . . . 2.5.2.2 Sumatoare de performant¸a˘ ridicat˘ a . . . . . . . . . . 2.5.3 Multiplicatorul . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.3.1 Multiplicatorul matriceal . . . . . . . . . . . . . . . . 2.5.3.2 Multiplicatorul tip arbore Wallace . . . . . . . . . . . 2.5.3.3 Multiplicatorul tabelar . . . . . . . . . . . . . . . . . 2.5.4 Circuite de deplasare . . . . . . . . . . . . . . . . . . . . . . . . 2.5.5 Unitatea Aritmetic˘ a ¸si Logic˘ a, ALU . . . . . . . . . . . . . . . 2.5.5.1 Calea de date . . . . . . . . . . . . . . . . . . . . . . .

173 173 176 177 182 186 191 193 196 199 203 209 213 218 218 220 224 232 233 237 247 250 255 261 263 263 269 272 273 273 275 275 280 287 288 291 293 295 301 301

CUPRINS

5 2.5.5.2

2.6

Organizarea ¸si implementarea unei ¸si logic˘ a . . . . . . . . . . . . . . . 2.5.5.3 Structurarea unei ALU elementare PROBLEME . . . . . . . . . . . . . . . . . . . . .

unit˘ a¸ti aritmetic˘ a . . . . . . . . . . . 305 . . . . . . . . . . . 306 . . . . . . . . . . . 311

3 CIRCUITE LOGICE SECVENT ¸ IALE, CLS 3.1 CIRCUITE LOGICE SECVENT ¸ IALE ASINCRONE . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE . . . . . . 3.2.1 Sincronizarea semnalelor asincrone . . . . . . . . . . . 3.2.2 Automate finite: structur˘ a, definit¸ii, clasific˘ ari . . . . 3.2.3 Modalit˘ a¸ti de reprezentare ale automatelor . . . . . . 3.2.3.1 Graful de tranzit¸ie al st˘ arilor . . . . . . . . . 3.2.3.2 Tabelul de tranzit¸ie al st˘ arilor . . . . . . . . 3.2.3.3 Diagrame de variat¸ie ˆın timp ale semnalelor . 3.2.3.4 Organigrama ASM . . . . . . . . . . . . . . . 3.2.3.5 Limbaje de transfer ˆıntre registre, RTL . . . 3.2.4 Reducerea num˘ arului de st˘ ari . . . . . . . . . . . . . . 3.2.5 Asignarea st˘ arilor . . . . . . . . . . . . . . . . . . . . . 3.2.5.1 Intr˘ ari ¸si ie¸siri asincrone . . . . . . . . . . . . 3.2.6 Proiectarea automatelor sincrone . . . . . . . . . . . . 3.3 CIRCUITE BASCULANTE . . . . . . . . . . . . . . . . . . . 3.3.1 Circuitul latch . . . . . . . . . . . . . . . . . . . . . . 3.3.1.1 Latch-ul SR . . . . . . . . . . . . . . . . . . 3.3.1.2 Latch-ul D . . . . . . . . . . . . . . . . . . . 3.3.2 Circuite Basculante Bistabile (Triggere) . . . . . . . . 3.3.2.1 Principiul master-slave . . . . . . . . . . . . 3.3.2.2 Bistabilul D . . . . . . . . . . . . . . . . . . 3.3.2.3 Bistabilul JK . . . . . . . . . . . . . . . . . . 3.3.2.4 Bistabilul T . . . . . . . . . . . . . . . . . . 3.3.3 Aplicat¸ii la automate . . . . . . . . . . . . . . . . . . . 3.3.4 Circuitul basculant bistabil asimetric (Triggerul Schmitt) . . . . . . . . . . . . . . . . . . . . 3.3.5 Circuitul basculant monostabil . . . . . . . . . . . . . 3.3.6 Circuitul basculant astabil . . . . . . . . . . . . . . . . ˘ ATOR ˘ 3.4 CIRCUITE NUMAR . . . . . . . . . . . . . . . . . . . 3.4.1 Num˘ ar˘ atoare asincrone . . . . . . . . . . . . . . . . . 3.4.2 Num˘ ar˘ atoare sincrone . . . . . . . . . . . . . . . . . . 3.4.2.1 Num˘ ar˘ atoare presetabile . . . . . . . . . . . 3.4.2.2 Num˘ ar˘ atoare ˆın cod arbitrar . . . . . . . . . 3.5 CIRCUITE REGISTRU . . . . . . . . . . . . . . . . . . . . . 3.5.1 Registru paralel . . . . . . . . . . . . . . . . . . . . . . 3.5.2 Circuitul acumulator . . . . . . . . . . . . . . . . . . . 3.5.3 Structura pipeline . . . . . . . . . . . . . . . . . . . . 3.5.4 Registrul de deplasare . . . . . . . . . . . . . . . . . . 3.5.5 Registrul serie-paralel . . . . . . . . . . . . . . . . . . 3.5.6 Circuite liniare cu registre de deplasare . . . . . . . .

321 . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

321 330 330 332 340 341 344 345 345 354 357 361 372 376 382 383 386 391 395 395 398 402 405 409

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

418 423 425 428 431 435 439 450 452 452 455 458 460 468 473

6

CUPRINS

3.6

3.5.7 Distribut¸ia ¸si aplicarea semnalului de ceas . . MEMORIA CU ACCES ALEATORIU . . . . . . . . 3.6.1 Memoria RAM static˘ a . . . . . . . . . . . . . 3.6.2 Memoria RAM dinamic˘ a. . . . . . . . . . . . 3.6.2.1 Memoria DRAM sincron˘ a, SDRAM 3.6.3 Circuite actuale pentru memoriile de date . . 3.6.4 Memoria adresabil˘ a prin cont¸inut, CAM . . .

4 SUPORTUL CIRCUISTIC PENTRU APLICAT ¸ II 4.1 CONEXIUNI PROGRAMABILE . . . . . . . . . . . 4.2 PROIECTAREA DE TIP FULL-CUSTOM . . . . . 4.3 PROIECTAREA CU ARII DE PORT ¸ I LOGICE . . 4.4 PROIECTAREA CU CELULE STANDARD . . . . 4.5 PROIECTAREA CU CPLD . . . . . . . . . . . . . . 4.6 PROIECTAREA CU FPGA . . . . . . . . . . . . . . 4.6.1 Blocul Logic Configurabil . . . . . . . . . . . 4.6.2 Resursele de interconectare . . . . . . . . . . 4.7 PROIECTAREA PENTRU TESTABILITATE . . . 4.8 COMBINAT ¸ IONAL SAU SECVENT ¸ IAL? . . . . . . 4.9 COMPARAT ¸ IE ˆINTRE DIFERITELE ˘ ¸ I DE PROGRAMARE . . . . . . . . . MODALITAT 5 Bibliografie

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

484 495 499 505 513 526 533

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

551 551 555 556 557 562 570 572 578 594 599

. . . . . . . . . . 608 611

Capitolul 1

PORT ¸ I LOGICE 1.1

SUPORTUL LOGIC PENTRU SISTEMELE DIGITALE

Practica sistemelor digitale simple se poate face pe baz˘ a de rat¸ionamente logice elementare. Dar, deoarece sistemele digitale au devenit foarte complexe, ¸si aceast˘ a tendint¸a˘ continu˘ a, pentru analiza, proiectarea/sinteza ¸si realizarea acestora este necesar un suport formal abstract ¸si un suport circuistic. Suportul formal abstract se construie¸ste, prin extensie, pe baza algebrei logice bivalente iar suportul circuistic se construie¸ste pornind de la poarta logic˘ a. Abordarea ˆıntrep˘ atruns˘ a a acestor dou˘ a componente constituie subiectul acestui capitol.

1.1.1

Axiomele ¸si teoremele algebrei Booleene

ˆIn logica aristotelian˘ a, care trebuie ˆınt¸eleas˘ a ca o ¸stiint¸a˘ a demonstrat¸iei, al c˘ arui obiect ˆıl constituie stabilirea condit¸iilor corectitudinii gˆ andirii, se opereaz˘ a pe baz˘ a de rat¸ionament cu propozit¸ii (logica propozit¸iilor), care pot fi: fie adev˘ arate, fie false. De exemplu, dac˘ a presupunem c˘ a pentru statura unei persoane sunt admise numai dou˘ a atribute - ˆınalt ¸si scund - iar pentru vreme numai dou˘ a atribute - rece ¸si cald - atunci sunt naturale urm˘ atoarele patru propozit¸ii simple: vremea este cald˘ a, vremea este rece, Radu este ˆınalt ¸si Radu este scund. Considerˆ and c˘ a din fiecare pereche de atribute unul este adev˘ arat ¸si cel˘ alalt fals rezult˘ a c˘ a propozit¸iile formate cu aceste atribute pot fi fie adev˘ arate fie false; o propozit¸ie nu poate fi simultan ¸si fals˘ a ¸si adev˘ arat˘ a (ˆın cazul nostru consider˘ am c˘ a prima ¸si a treia propozit¸ie simpl˘ a sunt adev˘ arate, iar celelalte dou˘ a sunt false). Dar, cu aceste propozit¸ii simple pot fi realizate propozit¸ii compuse, de exemplu: vremea este cald˘ a ¸si Radu este ˆınalt, vremea este rece sau Radu este scund. Propozit¸iile compuse pot fi, la fel, adev˘ arate sau false in funct¸ie de valoarea de adev˘ ar/fals a propozit¸iilor componente ¸si de modul de compunere a acestora ˆın propozit¸ia compus˘ a. Modul de compunere, ˆın acest caz corespunde conectorului AND/S¸I pentru prima propozit¸ie compus˘ a, respectiv conectorului OR/SAU pentru a doua propozit¸ie compus˘ a. Dac˘ a prima propozit¸ie are valoarea de adev˘ ar, cˆ and vremea este cald˘ a ¸si Radu este ˆınalt, evident c˘ a a doua propozit¸ie compus˘ a are valoare de fals. Dar dac˘ a prima propozit¸ie compus˘ a o transform˘ am ˆın nu 7

8

1.1. SUPORTUL LOGIC PENTRU SISTEMELE DIGITALE

este adev˘ arat: c˘ a Radu este ˆınalt ¸si vremea este cald˘ a atunci aceast˘ a nou˘ a propozit¸ie are o valoare de fals ca ¸si a doua propozit¸ie compus˘ a? Evident c˘ a da. Dar dac˘ a mai introducem ¸si o a treia pereche de propozit¸ii simple z˘ apada este alb˘ a, z˘ apada este neagr˘ a ¸si form˘ am propozit¸ii compuse, dup˘ a diferite moduri de compunere, din cˆ ate una din fiecare pereche anterioar˘ a atunci mai putem afirma cu u¸surint¸a˘ care dintre propozit¸iile compuse sunt echivalente? Destul de greu. ˆIn general, la nivelul normal de dotare intelectual˘ a, un individ cu greu poate realiza un rat¸ionament corect, f˘ ar˘ a un suport mecanic, cˆ and opereaz˘ a simultan cu mai mult de trei variabile. Pentru ,, a ˆınvinge aceast˘ a incapacitate avem nevoie de un instrument care s˘ a “mecanizeze rat¸ionamentele stufoase. Matematicianul englez George Boole (1815-1854) a elaborat o algebr˘ a (algebra Boolean˘ a) ale c˘ arei axiome ¸si teoreme pot fi utilizate pentru a transforma (transfera) logica aristotelian˘ a a propozit¸iilor din domeniul rat¸ionamentului oral ˆıntr-un limbaj formal, operant cu simboluri (logica formal˘ a). Aceast˘ a logic˘ a formal˘ a poate fi aplicat˘ a ca un instrument operant ¸si pentru descrierea conect˘ arii, ˆın sisteme, a elementelor fizice (mecanice, electrice, hidropneumatice) care prezint˘ a in funct¸ionarea lor doar dou˘ a st˘ ari distincte. Algebra Boolean˘ a (algebr˘ a logic˘ a binar˘ a, algebr˘ a logic˘ a bivalent˘ a) opereaz˘ a pe o mult¸ime binar˘ a B: {x|x = 0, 1} elementul nul elementul unitate (universal).

B = 0 = 1 =

(1.1)

Tabelul 1.1 Operatorii booleeni; definit¸ie ¸si simboluri grafice OPERATORUL LOGIC

SIMBOL

Complementarea logica(negatia)



NOT / NON Conjunctia, Produsul logic AND / SI Disjunctia, Suma logica OR / SAU

+

TABELUL DE ADEVAR

Reprezentarea grafica conform standardului IEC/ANSI−91−1984 varianta veche varianta noua

x

x’ x

1

0 1

1 0

1

x 0 0 1 1

y 0 1 0 1

x

y

x∪ y x∨y x +y

0 0 1 1

0 1 0 1

0 1 1 1

x∩ y x∧ y x.y

0 0 0 1

ANSI (American National Standard Institute)

x

x.y

y

x y

x y

x+y

x y

&

x.y

> 1 x+y

9

CAPITOLUL 1. PORT ¸ I LOGICE

ˆIn aceast˘ a carte elementele mult¸imii binare reprezint˘ a valorile logice de adev˘ ar sau de fals sau cifrele sistemului de numerat¸ie ˆın baza doi - bit ( binary digit - cifr˘ a binar˘ a). Exist˘ a concepute ¸si algebre definite pe mult¸imi care cont¸in mai mult de dou˘ a elemente, algebre polivalente – logic˘ a polivalent˘ a, logic˘ a cu n-valori; cazuri ˆın care mult¸imea de definit¸ie este format˘ a din n numere ˆıntregi. O generalizare pentru logica cu n-valori este logica fuzzy, ˆıns˘ a ˆın logica fuzzy variabilele iau valori ˆın mod continuu pe intervalul [0,1]. [Matei 0 93], [Cocan 0 01]. Definit¸ia 1.1 ˆın M

Fie M o mult¸ime nevid˘ a. O aplicat¸ie f definit˘ a pe M cu valori f :M →M

se nume¸ste lege de compozit¸ie intern˘ a. 

Algebra Boolean˘ a define¸ste pe mult¸imea B urm˘ atoarele trei legi de compozit¸ie intern˘ a (la care, obi¸snuit, ne vom referi ¸si prin termenul de operator logic): 1. Complementarea sau negat¸ia (NOT/NON); 2. Conjunct¸ia sau produsul logic (AND/S ¸ I); 3. Disjunct¸ia sau suma logic˘ a (OR/SAU). Tabelul 1.2 Axiomele ¸si teoremele algebrei Booleene Denumirea Axioma 1: Mult¸imea B = {0, 1} este ˆınchis˘ a ˆın raport cu operatorii + ¸si · (Inchiderea) Axioma 2: Asociativitatea Axioma 3: Comutativitatea Axioma 4: Existent¸a elementului neutru Axioma 5: Distributivitatea Axioma 6: Existent¸a complementului Teorema 1: Idempotent¸a sau tautologia Teorema 2: Legea lui 0 ¸si a lui 1 Teorema 3: Dubla negat¸ie (Involut¸ia) Teorema 4: Absorbt¸ia Absorbt¸ia invers˘ a Teorema 5: Teorema lui De Morgan

Forma cu operatorul produs (·)

Forma cu operatorul sum˘ a (+)

x ∈ B, y ∈ B ⇒ x · y ∈ B x ∈ B, y ∈ B ⇒ x + y ∈ B x · (y · z) = (x · y) · z x·y =y·x

x + (y + z) = (x + y) + z x+y =y+x

x·1=1·x=x

x+0=0+x=x

x · (y + z) = x · y + x · z x + y · z = (x + y) · (x + z) x·x=0

x+x=1

x·x=x

x+x=x

x·0=0

x+1=1

x=x

x=x

x · (x + y) = x x · (x + y) = x · y x · (x + y) = x · y

x+x·y =x x+x·y =x+y x+x·y =x+y

x·y =x+y

x+y =x·y

10

1.1. SUPORTUL LOGIC PENTRU SISTEMELE DIGITALE

ˆIn Tabelul 1.1 sunt prezentate pentru fiecare lege de compozit¸ie boolean˘ a aplicat¸ia definit˘ a sub forma unui tabel de adev˘ ar precum ¸si simbolurile grafice de reprezentare. De¸si exist˘ a recomandarea pentru utilizarea noilor reprezent˘ ari grafice s-a ˆıncet˘ a¸tenit ¸si continu˘ a folosirea vechilor reprezent˘ ari grafice (americane). Definit¸ia 1.2 O expresie Boolean˘ a f (x1 , x2 , . . . , xn , 0, 1, ·, +), compus˘ a prin intermediul celor trei operatori AND, OR, NOT prezint˘ a o expresie dual˘ a f D care se obt¸ine din expresia lui f prin substitut¸iile urm˘ atoare: AN D → OR, OR → AN D, 0 → 1, 1 → 0 f D (x1 , x2 , . . . , xn , 0, 1, ·, +) = f (x1 , x2 , . . . , xn , 1, 0, +, ·)

(1.2)



Dac˘ a o axiom˘ a, teorem˘ a sau expresie boolean˘ a este adev˘ arat˘ a atunci ¸si forma sa dual˘ a este adev˘ arat˘ a. Axiomele ¸si teoremele algebrei Booleene sunt prezentate, sistematic, ˆın Tabelul 1.2. Pentru fiecare dintre acestea sunt expuse cele dou˘ a forme, cea ˆın form˘ a produs ¸si cea ˆın form˘ a sum˘ a, fiecare fiind duala celeilalte. ˆIn acest tabel sunt ¸sase axiome ¸si cinci teoreme. Corectitudinea unei expresii booleene se poate verifica analitic (prin utilizarea axiomelor ¸si teoremelor din Tabelul 1.2) sau prin calcularea valorilor logice ale expresiilor din cele dou˘ a p˘ art¸i ale semnului egalit˘ a¸tii. Folosind aceste dou˘ a modalit˘ a¸ti ˆın continuare se va verifica corectitudinea expresiei teoremei absorbt¸iei (Teorema 4).

x · ( x +y)

x + x· y Axioma 4

Axioma 5 x ·x + x ·y

x· 1+ x · y Axioma 5

Teorema 1 x + x· y Axioma 4 x · 1+ x ·y Axioma 5 x · (1+y) Teorema 2

x · (1+ y) Teorema 2 x ·1 Axioma 4

x

y

x· y

x +y

x+ x · y

x· (x +y)

0 0 1 1

0 1 0 1

0 0 0 1

0 1 1 1

0 0 1 1

0 0 1 1

= =

x x+ x· y =x

x ·1 Axioma 4 x x·( x+y) =x Continu˘ am demonstrat¸ia analitic˘ a pentru variantele teoremei de absorbt¸ie invers˘ a (Teorema 4), dar acum nu se mai indic˘ a succesiune num˘ arul axiomelor ¸si teoremelor aplicate.

11

CAPITOLUL 1. PORT ¸ I LOGICE

x + y = x + y · 1 = x + y(x + x) = x · 1 + y · x + y · x = x · (1 + y) + y · x = x + x · y x + y = x + y · 1 = x + y(x + x) = x · 1 + y · x + y · x = x · (1 + y) + x · y = x + x · y

1.1.2

Algebre polivalente

Algebra Boolean˘ a a devenit un suport formal pentru sistemele fizice care utilizeaz˘ a elemente cu dou˘ a st˘ ari distincte. Algebra Boolean˘ a, care am introdus-o anterior ¸si la care ne vom referi prin B(2), este cel mai simplu membru al unei familii de algebre Booleene B(q) bazate pe not¸iunea abstract˘ a de latice (o latice este o mult¸ime nevid˘ a ,, ,, L ˆınzestrat˘ a cu dou˘ a operat¸ii “∨ , “∧ care satisfac propriet˘ a¸tile de idempotent¸a˘, comutativitate, asociativitate ¸si absorbt¸ie). Astfel, se poate construi o algebr˘ a Boolean˘ a B(q) pentru orice num˘ ar q care este o putere a lui doi, q = 2 k . Deci exist˘ a familia de algebre Booleene B(2), B(4), B(8),. . ., B(2 k ). Pentru k = 1, q = 21 rezult˘ a B(2) definit˘ a pe {0, 1} care este chiar algebra Boolean˘ a prezentat˘ a anterior. Pentru k = 2, q = 22 = 4 rezult˘ a B(4) definit˘ a pe mult¸imea {0, a, b, 1} cu urm˘ atoarele tabele de definit¸ie ale operatorilor: conjunct¸ie, disjunct¸ie ¸si deplasarea ciclic˘ a. · 0 a b 1

0 0 0 0 0

a 0 a 0 a

b 0 0 b b

1 0 a b 1

Conjunct¸ia

+ 0 a b 1

0 0 a b 1

a a a 1 1

b b 1 b 1

Disjunct¸ia

1 1 1 1 1

x 0 a b 1

x0 a b 1 0

Deplasarea ciclic˘ a

Dintre toate algebrele B(q) numai B(2) este funct¸ional complet˘ a, deci poate fi suport pentru implementarea sistemelor logice. O algebr˘ a este funct¸ional complet˘ a dac˘ a pentru o funct¸ie de un num˘ ar de variabile se genereaz˘ a doar o singur˘ a reprezentare/expresie. Dezvoltarea tehnologiei electronice a dus la realizarea unor elemente care pot realiza mai multe st˘ ari distincte. Era normal, ca pentru elementele cu mai multe st˘ ari, s˘ a se g˘ aseasc˘ a un suport formal cu valori multiple adic˘ a algebre polivalente, sau qvalente, mult¸imea de definit¸ie pentru aceste algebre fiind format˘ a dintr-un num˘ ar de q elemente distincte. Construct¸ia algebrelor polivalente a urmat dou˘ a c˘ ai. Prima, a fost o generalizare a operatorilor/(conectivi) booleeni AND, OR ¸si NOT spre operatori corespunz˘ atori – conjunct¸ia, disjunct¸ia ¸si deplasarea ciclic˘ a – obt¸inˆ andu-se algebrele Postiene (introduse de E.L. Post, 1921). A doua cale, dezvoltat˘ a de B.A. Bernstein (1928), a fost o abordare prin algebra claselor de resturi, operatorii fiind adunarea ¸si ˆınmult¸irea modulo q. O algebr˘ a Postian˘ a q-valent˘ a, P (q), este definit˘ a pe mult¸imea {0, 1, 2, . . . , q − 1}, adic˘ a pe intervalul de numere ˆıntregi [0, q − 1], iar operatorii sunt definit¸i ˆın felul urm˘ ator: - conjunct¸ia: x · y = min(x, y); - disjunct¸ia: x + y = max(x, y); - deplasarea ciclic˘ a: x0 = x ⊕ 1 modulo q.

12

1.1. SUPORTUL LOGIC PENTRU SISTEMELE DIGITALE

Pentru algebrele Postiene P (2) ¸si P (4) rezult˘ a urm˘ atoarele tabele de adev˘ ar ale celor trei operatori: - P(2) · 0 1 0 0 0 1 0 1 Conjunct¸ia binar˘ a

+ 0 1 0 0 1 1 1 1 Disjunct¸ia binar˘ a

x 0 1

x0 x00 1 0 0 1 Deplasarea ciclic˘ a binar˘ a

- P(4) · 0 1 2 3

0 1 2 0 0 0 0 1 1 0 1 2 0 1 2 Conjunct¸ia cuaternar˘ a

3 0 1 2 3

+ 0 1 2 3

0 1 2 0 1 2 1 1 2 2 2 2 3 3 3 Disjunct¸ia cuaternar˘ a

3 3 3 3 3

x 0 1 2 3

x0 x00 x000 1 2 3 2 3 0 3 0 1 0 1 2 Deplasarea ciclic˘ a cuaternar˘ a

x0000 0 1 2 3

Rezult˘ a o identitate ˆıntre B(2) ¸si P (2), (B(2) ≡ P (2)). Algebrele Postiene pot fi o replic˘ a pentru algebrele Booleene, dar operarea ˆın aceste algebre, ca aplicat¸ii pentru funct¸iile de comutat¸ie, devine dificil˘ a pe m˘ asur˘ a ce q are valori mai mari. Cea de a doua cale de generalizare, dezvoltat˘ a de B.A. Bernstein, a generat o alt˘ a clas˘ a de algebre q-valente care pot fi definite pentru oricare num˘ ar ˆıntreg prin q sau pentru un num˘ ar ˆıntreg putere a lui q. Mult¸imea de definit¸ie pentru o astfel de algebr˘ a este {0, 1, 2, . . . , q − 1}, iar operatorii sunt operat¸iile aritmetice de adunare ¸si de ˆınmult¸ire modulo q. Structurile algebrice definite pe clasele de resturi modulo q (q num˘ ar prim) sunt referite prin cˆ ampuri Galois ¸si sunt notate cu GF (q) . Pentru GF (3) tabelele de adev˘ ar prin aplicarea operatorilor produs, , ¸si sum˘ a, ⊕, modulo 3 sunt: 0 1 2

0 0 0 0

1 0 1 2

⊕ 0 1 2

2 0 2 1

0 0 1 2

1 1 2 0

2 2 0 1

Dintre structurile GF (q) cea pentru q = 2, GF (2) algebra modulo 2, denumit˘ a algebr˘ a Reed-Muller, prezint˘ a interes ca suport formal ˆın implement˘ arile unor algoritmi sau circuite de calcul sau de codificare. Operatorii algebrei Reed-Muller au urm˘ atoarele tabele de adev˘ ar: 0 1

0 0 0

1 0 1

⊕ 0 1

0 0 1

1 1 0

x 0 1

x0 1 0

Se observ˘ a c˘ a atˆ at pentru algebra Boolean˘ a B(2) cˆ at ¸si pentru algebra ReedMuller, GF (2), operatorii de ˆınmult¸ire logic˘ a sunt identici ( = ·), la fel ¸si operatorii de complementare. ˆIn schimb, difer˘ a operatorii disjunct¸ie, ace¸stia fiind SAU INCLUSIV (sum˘ a logic˘ a, +) ˆın B(2) ¸si respectiv SAU EXCLUSIV (sum˘ a aritmetic˘ a modulo

13

CAPITOLUL 1. PORT ¸ I LOGICE

2, ⊕) ˆın GF (2). Aceast˘ a, aparent neˆınsemnat˘ a diferent¸a˘, determin˘ a semnificative diferent¸e ˆıntre cele dou˘ a formalisme, ceea ce apare ¸si ˆın metodele de proiectare ¸si implementare. Axiomele pe GF (2) sunt: 1. ˆ Inchiderea. GF (2) este ˆınchis˘ a ˆın raport cu operatorii ¸si ⊕. 2. Asociativitatea. 3. Comutativitatea. 4. Distributivitatea. 5. Elementul neutru.

A ∈ GF (2), B ∈ GF (2) ⇒ A B ∈ GF (2), A ⊕ B ∈ GF (2) A ⊕ (B ⊕ C) = (A ⊕ B) ⊕ C = A ⊕ B ⊕ C A (B C) = (A B) C = A B C A ⊕ B = B ⊕ A, A B = B A A (B ⊕ C) = A B ⊕ A C A ⊕ 0 = A, A 1 = A

Din prezentarea acestor propriet˘ a¸ti apare similaritatea dintre GF (2) cu algebra numerelor reale (care este definit˘ a pe un cˆ amp infinit). Dar urm˘ atoarea axiom˘ a relev˘ a o proprietate diferit˘ a ˆıntre aceste dou˘ a algebre care rezult˘ a din natura aritmeticii modulo 2. A ⊕ A = 0, A A = A

6. Existent¸a inversului.

Din ultima axiom˘ a a algebrei GF (2) rezult˘ a c˘ a A = −A, adic˘ a fiecare element este egal cu inversul s˘ au; aceasta ˆınseamn˘ a c˘ a adunarea ¸si sc˘ aderea sunt identice ˆın GF (2), ceea ce este diferit fat¸a˘ de adunarea aritmetic˘ a din algebra numerelor reale. Folosind aceast˘ a axiom˘ a se deduce: dac˘ a A ⊕ B = C atunci A = C ⊕ B, B = A ⊕ C ¸si A ⊕ B ⊕ C = 0. Se pot duce relat¸ii pentru exprimarea operatorilor din B(2) prin cei din GF (2) A·B = A B A+B = A B⊕A⊕B A = A⊕1

(1.3-a)

care se pot demonstra ˆın felul urm˘ ator. Se consider˘ a expresia pentru sum˘ a modulo doi A ⊕ B = A · B + A · B (a se vedea funct¸ia f6 (x1 , x0 ) ˆın 1.1.3) A⊕1

A+B

= A·1+A·1=A·0+A=A

= A + B = A · B = ((A ⊕ 1) (B ⊕ 1)) ⊕ 1 = (A B ⊕ 1 B ⊕ A 1 ⊕ 1 1) ⊕ 1 = (A B ⊕ B ⊕ A ⊕ 1) ⊕ 1 = A B⊕B⊕A⊕1⊕1=A B⊕B⊕A

Iar pentru exprimarea operatorilor din GF (2) prin cei din B(2) exist˘ a relat¸iile A B A⊕B

A⊕1

= A·B = A·B+A·B

(1.3-b)

= A

Relat¸iile 1.3 indic˘ a modalit˘ a¸ti de utilizare atˆ at a formalismului din GF (2) cˆ at ¸si a celui din B(2) pentru implementarea sistemelor ˆın funct¸ie de suportul fizic (circuistica) disponibil˘ a.

14

1.1. SUPORTUL LOGIC PENTRU SISTEMELE DIGITALE

1.1.3

Funct¸ii Booleene

Fie B(2) = ({0, 1}, ·, +, −) algebra Boolean˘ a binar˘ a. Un cuvˆ ant binar este o succesiune de bit¸i; un cuvˆ ant este caracterizat prin lungimea sa, adic˘ a de num˘ arul de bit¸i din succesiune. Definit¸ia 1.3 Vom numi o configurat¸ie binar˘ a de n bit¸i, sau cuvˆ ant binar cu lungimea de n bit¸i, un element al mult¸imii {0, 1} n .  Cu doi bit¸i se pot forma patru cuvinte distincte cu lungimea de doi bit¸i (00, 01, 10, 11), cu trei bit¸i se pot forma opt cuvinte distincte cu lungimea de trei bit¸i (000, 001, 010, 011, 100, 101, 110, 111), iar cu n bit¸i se pot forma 2 n cuvinte distincte fiecare cu lungimea de n bit¸i; deci mult¸imea {0, 1} n este constituit˘ a din 2n cuvinte distincte cu lungimea de n bit¸i. Definit¸ia 1.4

O funct¸ie Boolean˘ a 1 , f , cu n intr˘ ari ¸si m ie¸siri este o aplicat¸ie f : {0, 1}n → {0, 1}m

(1.4)

cu domeniul de definit¸ie ˆın X = {0, 1}n ¸si cu domeniul de valori ˆın Y ⊆ {0, 1}m .  Relat¸ia 1.4, ˆın cazul cˆ and funct¸ia logic˘ a are o singur˘ a ie¸sire, m = 1, cuvˆ antul de ie¸sire are lungimea de un bit, se retranscrie sub forma: f : {0, 1}n → {0, 1}1

(1.5)

Teoretic, funct¸ia logic˘ a cu m ie¸siri se poate construi din m aplicat¸ii de forma 1.5 conectate ˆın paralel. O funct¸ie logic˘ a cu num˘ arul de ordine i dintr-o familie de funct¸ii logice de n variabile, definit˘ a conform relat¸iei 1.4, va fi notat˘ a sub forma fi (xn−1 , xn−2 , . . . , x1 , x0 ) sau sub forma fin . ˆIn acest capitol se vor studia doar funct¸iile cu o singur˘ a ie¸sire. Funct¸ia logic˘ a de zero variabile. Domeniul de definit¸ie pentru funct¸ia de zero variabile este mult¸imea vid˘ a, {0, 1}0 , iar domeniul de valori este {0, 1}. Rezult˘ a c˘ a pot exista dou˘ a funct¸ii notate cu f00 ¸si f10 care genereaz˘ a pe ie¸sire cele dou˘ a valori din mult¸imea {0, 1} f00 f10

= =

0 1

(1.6)

De fapt, putem spune c˘ a aceste funct¸ii sunt identice cu dou˘ a constante. ˆIntr-un sistem digital cele dou˘ a constante pot fi reprezentate fizic prin dou˘ a tensiuni fixe: tensiunea de alimentare (VDD , VCC ) ¸si tensiunea de mas˘ a VSS sau 0V (liniile/barele de alimentare ale circuitului). Funct¸ii logice de o singur˘ a variabil˘ a. Configurat¸iile distincte de un singur bit pe mult¸imea de definit¸ie {0, 1}1 sunt cei doi bit¸i 1 ¸si 0. Deci funct¸ia y = f (x), pentru fiecare valoare binar˘ a atribuit˘ a variabilei x, poate lua una din cele dou˘ a valori binare y = 1 sau y = 0. Cu cele dou˘ a valori posibile pentru y se pot forma patru cuvinte diferite, deci pentru o singur˘ a variabil˘ a exist˘ a patru funct¸ii logice distincte: f 01 , f11 , 1 1 f2 ¸si f3 reprezentate ˆın tabelul din Figura 1.1. 1 Termenul

de funct¸ie Boolean˘ a, ˆın aceast˘ a carte, este sinonim cu funct¸ie logic˘ a.

15

CAPITOLUL 1. PORT ¸ I LOGICE

x

f01

f11

f21

f31

0

0

0

1

1

1

0

1

0

1

a)

x

x

x

"0" b) x

c) x

d)

VCC

"1"

x e)

Figura 1.1 Funct¸iile de o singur˘ a variabil˘ a: a) tabelul funct¸iilor de o variabil˘ a; b) f01 , funct¸ia zero (conectarea la mas˘ a); c) f21 , funct¸ia inversor (circuitul inversor); d) f11 , funct¸ia identitate (driver, buffer); e) f31 , funct¸ia tautologie (conectarea la tensiunea de alimentare). 1. Funct¸ia zero f0 (x) = 0. Aceasta genereaz˘ a valoarea 0 indiferent de valoarea alocat˘ a variabilei x. ˆIntr-un sistem nu se va calcula niciodat˘ a funct¸ia zero deoarece valoarea acestei funct¸ii exist˘ a, fizic punctul respectiv se leag˘ a la tensiunea de mas˘ a; evident f01 ¸si f00 au acela¸si efect adic˘ a valoarea constant˘ a 0. 2. Funct¸ia identitate, f1 (x) = x. Logic, aceast˘ a funct¸ie pare a fi f˘ ar˘ a utilitate; dar, practic, aceast˘ a funct¸ie este foarte utilizat˘ a sub denumirea de driver sau buffer ¸si ˆıntr-un sistem fizic are o act¸iune de a aduce/ˆınt˘ ari la anumite valori normale semnalul electric care este suport pentru variabila x. Aceste circuite care nu realizeaz˘ a o funct¸ie ,, logic˘ a ci doar au rol de “ˆınt˘ arire a semnalului electric sunt referite prin circuit buffer sau circuit driver respectiv buffer sau driver. 3. Funct¸ia negat¸ie (NOT), f2 (x) = x. De fapt, acesta este operatorul de complementare din Tabelul 1.1. Putem interpreta aspectul logic sau aritmetic al act¸iunii acestei funct¸ii. Logic, funct¸ia negat¸ie aplicat˘ a va substitui adev˘ arul cu fals ¸si falsul cu adev˘ ar. Aritmetic, este un incrementor sau decrementor pentru num˘ ararea ˆın baza doi (atˆ at la num˘ arare ˆın sens cresc˘ ator (direct) cˆ at ¸si ˆın sens descresc˘ ator (invers), trecerea ˆıntre dou˘ a numere consecutive se face prin modificarea bitului cel mai put¸in semnificativ, LSB (Least Significant Bit), din unu ˆın zero sau din zero ˆın unu, vezi Figura 2.17-a ¸si 2.17-b). Suportul fizic pentru implementarea acestei funct¸ii este elementul inversor. 4. Funct¸ia tautologie, f3 (x) = 1. Acest˘ a funct¸ie genereaz˘ a valoarea 1 indiferent de valoarea alocat˘ a variabilei x. ˆIntr-un sistem nu se va calcula niciodat˘ a aceast˘ a funct¸ie deoarece valoarea sa exist˘ a, fizic punctul respectiv se leag˘ a la tensiunea de alimentare VDD /VCC ; evident f31 ¸si f10 au acela¸si efect. Funct¸ii de dou˘ a variabile. La o funct¸ie de dou˘ a variabile f (x 1 , x0 ) mult¸imea de definit¸ie, {0, 1}2 , este compus˘ a din cele patru cuvinte de intrare de doi bit¸i. Pentru cele patru cuvinte de intrare se obt¸in pentru funct¸ie patru valori binare, dar cu cele patru valori binare se pot obt¸ine 42 = 16 cuvinte, deci, ˆın total exist˘ a 16 funct¸ii diferite de dou˘ a variabile care sunt prezentate ˆın tabelul din Figura 1.2-a. Aceste funct¸ii au anumite denumiri care exprim˘ a act¸iunea realizat˘ a: 1. f0 (x1 , x0 ) = 0, funct¸ia zero. Act¸iunea sa este identic˘ a cu a celor dou˘ a funct¸ii f00 ,f01 .

16

1.1. SUPORTUL LOGIC PENTRU SISTEMELE DIGITALE

x1 x2 f02 f12 f22 f32 f42 f52 f62 f72 f82 f92 f102 f112 f122 f132 f142 f152 0 0 1 1

0 1 0 1

0 0 0 0

1 0 0 0

0 1 0 0

1 1 0 0

0 0 1 0

1 0 1 0

0 1 1 0

1 1 1 0

0 0 0 1

1 0 0 1

0 1 0 1

1 1 0 1

0 0 1 1

1 0 1 1

0 1 1 1

1 1 1 1

a) x1 x0 x1 x0

f6 = x1 x0

x1 x0

b) f9 = x1 x0

x1

f7 = x1. x0 c) f1 = x1+x0

x0 d)

e)

Figura 1.2 Funct¸ii de dou˘ a variabile: a) tabelul funct¸iilor de dou˘ a variabile; b) simbolul grafic pentru funct¸ia XOR, f62 ; c) simbolul grafic pentru funct¸ia NAND, f72 ; d) simbolul grafic pentru funct¸ia NXOR, f92 ; e) simbolul grafic pentru funct¸ia NOR, f12 . 2. f1 (x1 , x0 ) = x1 + x0 , funct¸ia SAU-NEGAT/NOT-OR/NOR cu reprezentarea grafic˘ a din Figura 1.2-e. Se observ˘ a c˘ a valorile funct¸iei rezult˘ a prin negarea valorilor obt¸inute cu operatorul OR (Tabelul 1.1). 3. f2 (x1 , x0 ) = x1 · x0 , funct¸ia negarea implicat¸iei inverse; circuitul interdict¸ie (inhibare). 4. f3 (x1 , x0 ) = x1 , negarea lui x1 . 5. f4 (x1 , x0 ) = x1 · x0 , funct¸ia negarea implicat¸iei directe; circuitul interdict¸ie (inhibare). 6. f5 (x1 , x0 ) = x0 , negarea lui x0 . 7. f6 (x1 , x0 ) = x1 · x0 + x1 · x0 , funct¸ia negarea coincident¸ei, SAU-EXCLUSIV/ XOR cu simbolul grafic de reprezentare ˆın Figura 1.2-b ¸si cu structura de implementare ˆın Figura 1.3-a. Act¸iunea acestei funct¸ii poate fi interpretat˘ a ˆın trei modalit˘ a¸ti. Prima, se observ˘ a c˘ a asupra celor dou˘ a valori binare ale variabilelor x 1 ¸si x0 funct¸ia opereaz˘ a ca un sumator modulo 2 (0⊕0 = 0, 0⊕1 = 1, 1⊕0 = 1, 1⊕1 = 0) de unde ¸si notat¸ia consacrat˘ a f6 (x1 , x0 ) = x1 ⊕ x0 . O alt˘ a variant˘ a echivalent˘ a de exprimare se obt¸ine ˆın felul urm˘ ator: x1 ⊕x0 = x1 ·x0 +x1 ·x0 = x1 ·x0 +x0 ·x0 +x1 ·x0 +x1 ·x1 = x0 · (x1 + x0 ) + x1 (x1 + x0 ) = (x1 + x0 )(x1 + x0 ) = (x1 + x0 ) · (x1 · x0 ). A doua interpretare este cea de inversor comandat, relat¸iile 1.3. Dac˘ a una din variabile este 1 atunci valoarea funct¸iei va fi egal˘ a cu negata celeilalte variabile de intrare; f6 (x1 , 1) = x1 ⊕ 1 = x1 . A treia interpretare este cea de negarea coincident¸ei, adic˘ a anticoincident¸˘ a

17

CAPITOLUL 1. PORT ¸ I LOGICE

(¸si invers, negarea anticoincident¸ei este coincident¸a, adic˘ a x 1 ⊕ x0 ). Rezult˘ a c˘ a se poate realiza foarte u¸sor un circuit pentru coincident¸a a dou˘ a cuvinte de doi bit¸i x1 x0 , y1 y0 rat¸ionˆ and ˆın felul urm˘ ator: cuvintele coincid cˆ and nu este adev˘ arat˘ a anticoincident¸a pentru bit¸ii de rangul unu x 1 , y1 SI nu este adev˘ arat˘ a anticoincident¸a pentru bit¸ii de rangul zero x0 , y0 ; deci relat¸ia de coincident¸a˘ este (x1 ⊕ y1 )·(x0 ⊕ y0 ) = (x1 ⊕ y1 ) + (x0 ⊕ y0 ). Reprezentarea acestui mod de implementare a relat¸iei de coincident¸a˘ este dat˘ a ˆın Figura 1.3-c. 8. f7 (x1 , x0 ) = x1 · x0 , funct¸ia SI-NEGAT/NOT-AND/NAND, cu simbolul grafic de reprezentare din Figura 1.2-c. Se observ˘ a c˘ a valorile funct¸iei rezult˘ a prin negarea valorilor obt¸inute cu operatorul AND (Tabelul 1.1). 9. f8 (x1 , x0 ) = x1 · x0 , funct¸ia conjunct¸ie, produsul logic AND, SI. 10. f9 (x1 , x0 ) = x1 · x0 + x1 · x0 , f9 (x1 , x0 ) = x1 ⊕ x0 , funct¸ia coincident¸a˘, SAU-EXCLUSIV NEGAT/NXOR cu simbolul grafic de reprezentare ˆın Figura 1.2-d ¸si cu structurarea ca ˆın Figura 1.3-b. Implementarea circuitului de coincident¸a˘ a dou˘ a cuvinte de doi bit¸i x1 x0 ¸si y1 y0 este prezentat˘ a ˆın Figura 1.3-d; (x1 ⊕ y1 ) · (x0 ⊕ y0 ). 11. f10 (x1 , x0 ) = x0 , funct¸ia ce nu depinde de x1 . 12. f11 (x1 , x0 ) = x1 + x0 , funct¸ia implicat¸ie direct˘ a. 13. f12 (x1 , x0 ) = x1 , funct¸ia ce nu depinde de x0 . a. 14. f13 (x1 , x0 ) = x1 + x0 , funct¸ia implicat¸ie invers˘ 15. f14 (x1 , x0 ) = x1 + x0 , funct¸ia conjunct¸ie, sum˘ a logic˘ a OR, SAU. 16. f15 (x1 , x0 ) = 1, funct¸ia tautologie, act¸iunea sa este identic˘ a cu ale funct¸iilor f10 , f31 . Funct¸ii de trei variabile. Pentru funct¸iile de trei variabile f (x 2 , x1 , x0 ) mul¸timea de defint¸ie, {0, 1}3 , este compus˘ a din opt (23 = 8) cuvinte binare de 3 bit¸i, pentru fiecare din aceste cuvinte funct¸ia poate avea o valoare binar˘ a 0 sau 1. Cu opt valori binare pot fi definite 28 funct¸ii diferite. Modul de formare al funct¸iilor de trei variabile fi3 , i = 0, 1, . . . , 255 rezult˘ a din Tabelul 1.3. Indicele i, care identific˘ a x1

x1

x1 x0

x 1x 0 x1 x0

x0

x 1x 0 x1 x0 x0

x 1x 0

x 1x 0

x0

a) x1 y1 x0 y0

x1

b)

x 1 = y1 x 1x 0 = y1y0 x 0 = y0

c)

x1 y1 x0 y0

x 1=y 1 x 1x 0 = y1y0 x 0=y 0

d)

Figura 1.3 Funct¸iile XOR ¸si NXOR: a,b) structura circuitelor XOR, respectiv NXOR; c,d) circuite de coincident¸a˘ cu XOR ¸si NXOR.

18

1.1. SUPORTUL LOGIC PENTRU SISTEMELE DIGITALE

funct¸ia fi3 , este corespondentul zecimal al num˘ arului binar de 8 bit¸i format cu valorile binare ale funct¸iei. De exemplu funct¸ia f187 are urm˘ atoarele valori binare 1101 1101, deoarece 187|10 = 1101 1101|2 . Bitul cel mai semnificativ, MSB (Most Significant Bit), din cuvˆ antul valorilor funct¸iei, corespunde configurat¸iei de intrare x 2 x1 x0 = 111, iar LSB corespunde configurat¸iei de intrare x2 x1 x0 = 000. Utilitatea tuturor funct¸iilor fi3 pentru implementarea sistemelor logice este discutabil˘ a deoarece , 16 dintre aceste funct¸ii sunt echivalentul funct¸iilor f i2 iar unele din cele r˘ amase pot fi compuse prin intermediul altor funct¸ii de dou˘ a variabile. ˆIn general, pentru implementarea sistemelor logice sunt utilizate doar cˆ ateva din funct¸iile expuse pentru cazul n = 2. n Pentru n variabile num˘ arul funct¸iilor logice distincte este 2(2 ) ; ceea ce determin˘ a pentru n = 4 → 216 = 65536 funct¸ii, iar pentru n = 5 → 232 = 4294967296 funct¸ii(!). Definit¸ia 1.5 Un sistem complet de funct¸ii Booleene este un set minimal de funct¸ii Booleene cu ajutorul c˘ arora se poate exprima orice funct¸ie Boolean˘ a.  ˆIn paragraful 1.1.1 s-au definit cele trei legi de compozit¸ie pe mult¸imea B. Cu ajutorul celor trei operatori NOT, AND ¸si OR poate fi exprimat˘ a oricare funct¸ie logic˘ a, deci ace¸sti operatori formeaz˘ a un sistem complet. Al doilea set de operatori care pot constitui un sistem complet este perechea NOT ¸si AND. Acest set poate fi substituit numai cu o singur˘ a funct¸ie, funct¸ia f7 (x1 , x0 ) = (x1 · x0 ), adic˘ a operatorul NAND, deoarece operatorul NOT apare ca un NAND de aceea¸si variabil˘ a (x · x) = x, iar operatorul AND rezult˘ a ca un NAND negat, (x1 · x0 ) = x1 · x0 . Al treilea set de operatori OR ¸si NOT formeaz˘ a de asemenea un sistem complet. S¸i aceast˘ a pereche de operatori poate fi substituit˘ a numai cu o singur˘ a funct¸ie, funct¸ia f2 (x1 , x0 ) = x1 + x0 , care este operatorul NOR. Deoarece NOR este un OR negat se poate obt¸ine u¸sor OR prin negarea NOR-ului, (x 1 + x0 ) = x1 + x0 , iar NOT-ul este Tabelul 1.3 Funct¸ii logice de trei variabile

x2 x1 x0 f03 f13 f23 0 0 0 0 1 1 1 1

0 0 1 1 0

0 1 0 1 0 0 1 1 0 1 1

0 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0

f173

f1873

f2553

1 0 0 0 1 0 0 0

1 0 1 1 1 0 1 1

1 1 1 1 1 1 1 1

17 10 = 0001001 2

187 10 = 10111011 2

19

CAPITOLUL 1. PORT ¸ I LOGICE

identic cu NOR-ul aplicat aceleia¸si variabile (x + x) = x. ˆIn Tabelul 1.4 sunt modelat¸i operatorii NOT, AND, OR, NAND ¸si NOR fie numai cu NAND, fie numai cu NOR. Apare, deci, posibilitatea ca un sistem logic s˘ a poat˘ a fi realizat doar cu un singur operator. Consecint¸a practic˘ a a acestei observat¸ii este enorm˘ a prin faptul c˘ a implementarea unui sistem se poate obt¸ine prin replicarea aceluia¸si operator (acela¸si tip de circuit), ˆın consecint¸a˘ pret¸ul de cost scade foarte mult ¸si sigurant¸a ˆın funct¸ionare cre¸ste. Exist˘ a circuite integrate, produse de turn˘ atoria de siliciu, dar ˆınc˘ a neterminate, care cont¸in un singur (sau dou˘ a) circuite logice elementare ˆıntr-un num˘ ar foarte mare, referite ca arie de port¸i logice (gate-array, vezi sect¸iunea 4.3). Pe o astfel de arie de port¸i logice utilizatorul ˆı¸si poate realiza sistemul pentru aplicat¸ia sa prin proiectarea doar a conexiunilor ˆıntre un num˘ ar de circuite logice elementare. Apoi, turn˘ atoria de siliciu termin˘ a circuitul integrat, prin realizarea conexiunilor proiectate de utilizator, rezultˆ and astfel un circuit cu multe avantaje, la a c˘ arui construct¸ie a participat atˆ at utilizatorul (custom) cˆ at ¸si turn˘ atoria de siliciu; sistem referit ca fiind o proiectare de tip semi-custom.

1.1.4

Forme canonice

Definit¸ia 1.4 exprim˘ a not¸iunea de funct¸ie logic˘ a de n variabile. Cu cele n variabile se pot compune, prin intermediul operatorilor AND, OR ¸si NOT, termenii funct¸iei ¸si la fel tot cu ace¸sti operatori pot fi inclu¸si termenii ˆın cadrul funct¸iei. ˆIn consecint¸a˘, un termen al unei funct¸ii logice poate avea variabile negate sau nenegate (NOT), care pot fi ˆınsumate logic (OR) sau ˆınmult¸ite logic (AND). Definit¸ia 1.6 Termenul canonic produs este produsul logic a tuturor celor n variabile ale funct¸iei, negate sau nenegate. Termenul canonic produs este referit ca minterm. 

Exemplu de termen canonic produs pentru n = 3 poate fi x 2 · x1 · x0 . Un termen canonic produs nu poate fi format din mai mult de n factori (variabile). Dac˘ a ar avea mai mult de n factori atunci ar ˆınsemna c˘ a una sau mai multe variabile ar intra ˆın produsul logic atˆ at negate cˆ at ¸si nenegate ceea ce, conform axiomei de existent¸a˘ a a termenul se reduce la constanta complementului x · x = 0, Tabelul 1.2, ar ˆınsemna c˘ Tabelul 1.4 Modelarea operatorilor logici pe baz˘ a de NAND sau NOR Operatorul logic modelat cu poarta:

NOT

A.B

A

A

A

A

A

OR

A

A+B

A.B

A+B

A

A

B

B

A.B = A+B A

A

B

B

B

A

A.B

A

A+B

A

A.B

A+B

B

A.B = A+B A B

A+B = A.B A B

B

B

A

NOR

A+B

B

A+B = A+B

A+B = A+B A+B A

NAND A.B

B

A+B = A.B

A.B = A+B

A = A+A A+B

A B

B

NOR B

AND A+B

B

B

A

A

A

A = A .A

NAND A

A

A+B = A+B A+B

A+B

A B

A+B

A.B

A.B

20

1.1. SUPORTUL LOGIC PENTRU SISTEMELE DIGITALE

Tabelul 1.5 Codificarea termenilor canonici produs ¸si sum˘ a (n=3)

i

Valoarea variabilelor x2 x1 x0

Mintermul si codul P i

Maxtermul si codul Si

0

0

0

0

x 2x 1x 0 = P 0

x 2 +x 1 + x 0 = S0

1

0

0

1

x 2x 1x 0 = P 1

x 2 + x 1 +x 0 = S1

2

0

1

0

x 2x 1x 0 = P 2

x 2 + x 1 + x 0 = S2

3

0

1

1

x 2x 1x 0 = P 3

x 2 + x 1 + x 0 = S3

4

1

0

0

x 2x 1x 0 = P 4

x 2 + x 1 + x 0 = S4

5

1

0

1

x 2x 1x 0 = P 5

x 2 + x 1 +x 0 = S5

6

1

1

0

x 2x 1x 0 = P 6

x 2 + x 1 +x 0 = S6

7

1

1

1

x 2x 1x 0 = P 7

x 2 + x 1 + x 0 = S7

0. Un termen produs se noteaz˘ a prin Pi . Num˘ arul tuturor termenilor produs Pi este 2n , deci i = 0, 1, 2, . . . , 2n − 1. Dar cum se codific˘ a un minterm prin simbolul Pi ? Se va exemplifica pentru cazul n = 3. Un termen canonic produs are valoarea logic˘ a 1 numai atunci cˆ and tot¸i factorii s˘ ai au valoarea logic˘ a 1. Pentru exemplul anterior de termen produs x 2 · x1 · x0 , cu valoarea logic˘ a 1, rezult˘ a o unic˘ a configurat¸ie de valori: x 2 = 1, x1 = 0, x0 = 1. Cuvˆ antul binar format din valorile variabilelor este 101, care este num˘ arul cinci ˆın zecimal, reprezentat ˆın codul de numerat¸ie binar natural. Deci, iat˘ a c˘ a mintermul x2 · x1 · x0 poate fi codificat prin litera P cu indicele 5, adic˘ a P 5 ; dar aceast˘ a codificare trebuie s˘ a fie o aplicat¸ie bijectiv˘ a deci ¸si trecerea invers˘ a de la codul P i la exprimarea ca produs logic canonic a mintermului trebuie s˘ a fie unic˘ a. De exemplu, trecerea de la termenul canonic produs P6 la mintermul corespunz˘ ator se face ˆın felul urm˘ ator: 6|10 = 110|2 → x2 · x1 · x0 . Rezult˘ a urm˘ atoarea regul˘ a de codificare a termenilor canonici produs: pentru reprezentarea unui minterm prin simbolul Pi variabilelor negate li se atribuie valoarea zero, iar variabilelor nenegate li se atribuie valoarea unu. Este corect˘ a ¸si reciproca, ˆın cuvˆ antul de cod Pi pentru un bit cu valoarea unu corespunde ˆın produsul logic canonic o variabil˘ a nenegat˘ a iar pentru un bit cu valoarea zero corespunde o variabil˘ a negat˘ a. Aplicˆ and aceast˘ a regul˘ a pentru funct¸ia de trei variabile se pot scrie relat¸iile din Tabelul 1.5. Definit¸ia 1.7 Termenul canonic sum˘ a este suma logic˘ a a tuturor celor n variabile ale funct¸iei, negate sau nenegate. Termenul canonic sum˘ a este referit ca maxterm.  Pentru o funct¸ie de trei variabile (n = 3) ca un exemplu de termen canonic sum˘ a poate fi acesta x2 +x1 +x0 . La fel, ca ¸si la termenul canonic produs, un termen canonic sum˘ a nu poate fi compus din mai mult de n variabile, ˆın caz contrar ˆın termen ar a cu constanta 1. Num˘ arul exista suma x + x = 1, deci valoarea termenului ar fi egal˘ total de termeni canonici sum˘ a este 2n iar codificarea se face prin simbolul Si . a zero numai atunci cˆ and Termenul canonic sum˘ a x2 + x1 + x0 are valoarea logic˘

21

CAPITOLUL 1. PORT ¸ I LOGICE

fiecare termen al sumei are valoarea zero, adic˘ a x 2 = 1, x1 = 0, x0 = 1. Rezult˘ a indicele i al simbolului Si ca fiind egal cu num˘ arul zecimal ce este reprezentat ˆın binar de cuvˆ antul format din valorile celor trei variabile adic˘ a 101| 2 = 5|10 , deci S5 . Trecerea invers˘ a, de exemplu de la S6 la maxtermul corespunz˘ ator, se face ˆın felul urm˘ ator 6|10 = 110|2 → x2 + x1 + x0 . Rezult˘ a urm˘ atoarea regul˘ a de codificare a termenilor canonici sum˘ a pentru reprezentarea unui maxterm prin simbolul Si : variabilelor negate li se atribuie valoarea unu, iar variabilelor nenegate li se atribuie valoarea zero. Este corect˘ a ¸si reciproca, ˆın cuvˆ antul de cod pentru un bit cu valoarea unu corespunde ˆın sum˘ a logic˘ a canonic˘ ao variabil˘ a negat˘ a iar pentru valoarea zero corespunde o variabil˘ a nenegat˘ a. Conform acestei reguli de codificare pentru n = 3 se pot scrie relat¸iile din Tabelul 1.5. Se observ˘ a c˘ a, pentru codificare, la aceea¸si variabil˘ a nenegat˘ a se atribuie valoarea 1 ˆın minterm ¸si 0 ˆın maxterm ¸si pentru aceea¸si variabil˘ a negat˘ a se atribuie valoarea 0 ˆın minterm ¸si 1 ˆın maxterm. Iar pentru trecerea invers˘ a, de la cod la expresia logic˘ a, unui bit 1 ˆın cuvˆ antul de cod ˆıi corespunde o variabil˘ a nenegat˘ a ˆın minterm ¸si o variabil˘ a negat˘ a ˆın maxterm ¸si invers pentru bitul 0. Ca o consecint¸a˘, din aceste reguli de codificare, se pot demonstra urm˘ atoarele relat¸ii: Si = P i ;

Pi = S i

(1.7)

adic˘ a termenul canonic sum˘ a se obt¸ine prin negarea termenului canonic produs ¸si invers. La fel, pentru i 6= j, i, j = 0, 1, 2, . . . , 2n − 1, se pot demonstra relat¸iile: Pi · Pj = 0;

S i + Sj = 1

(1.8)

(pe baza x + x = 1, x · x = 0, Axioma 6). Valoarea unui termen Pi , respectiv Si se poate modifica prin intermediul unui coeficient binar di ∈ {0, 1} ˆın felul urm˘ ator:  Pi dac˘ a di = 1 a) di · Pi = (1.9-a) 0 dac˘ a di = 0  Si dac˘ a di = 0 b) di + Si = (1.9-b) 0 dac˘ a di = 1 Definit¸ia 1.8 Forma canonic˘ a normal˘ a disjunctiv˘ a, FCND, a unei funct¸ii de n variabile este suma logic˘ a a tuturor termenilor de forma 1.9-a.  f (xn−1 , xn−2 , . . . , x1 , x0 ) =

n 2X −1

i=0

di · Pi

(1.10)

Definit¸ia 1.9 Forma canonic˘ a normal˘ a conjunctiv˘ a, FCNC, a unei funct¸ii de n variabile este produsul logic a tuturor termenilor de forma 1.9-b.  f (xn−1 , xn−2 , . . . , x1 , x0 ) =

n 2Y −1

i=0

(di + Si )

(1.11)

22

1.1. SUPORTUL LOGIC PENTRU SISTEMELE DIGITALE

Definit¸ia 1.10 Forma normal˘ a disjunctiv˘ a, FND, a unei funct¸ii de n variabile este o sum˘ a numai de mintermi ai c˘ aror coeficient¸i d i = 1 

Forma FND se obt¸ine din FCND prin eliminarea mintermilor ai c˘ aror coeficient¸i au valoarea di = 0. Pentru exprimarea FND se introduce o reprezentare simbolic˘ a, sub forma unei liste f (xn−1 , xn−2 , . . . , x1 , x0 ) =

n 2X −1

i=0

(d0 , d1 , . . . , d2n −2 , d2n −1 )

(1.12)

care cont¸ine doar indicii acelor coeficient¸i ai funct¸iei care au valoare d i = 1. De exemplu, pentru o funct¸ie de patru variabile: f (x3 , x2 , x1 , x0 ) =

15 X (0, 3, 4, 5, 8, 9, 12, 14, 15) i=0

aceast˘ a list˘ a enumer˘ a doar indicii coeficient¸ilor binari d 0 = 1, d3 = 1, d4 = 1, d5 = 1, d8 = 1, d9 = 1, d12 = 1, d14 = 1 ¸si d15 = 1. Definit¸ia 1.11 Forma normal˘ a conjunctiv˘ a, FNC, a unei funct¸ii de n variabile este un produs numai de maxtermi ai c˘ aror coeficient¸i d i = 0. 

Forma FNC se obt¸ine din FCNC prin eliminarea maxtermilor ai c˘ aror coeficient¸i a sub forma unei di = 1. Pentru exprimarea FNC se introduce o reprezentare simbolic˘ liste f (xn−1 , xn−2 , . . . , x1 , x0 ) =

n 2Y −1

i=0

(d0 , d1 , . . . , d2n −2 , d2n −1 )

(1.13)

care cont¸ine doar indicii acelor coeficient¸i ai funct¸iei care au valoarea d i = 0. Luˆ and ca exemplificare funct¸ia dat˘ a la relat¸ia 1.12 de data aceasta lista va fi f (x3 , x2 , x1 , x0 ) =

15 Y

(1, 2, 6, 7, 10, 11, 13),

i=0

adic˘ a sunt enumerat¸i doar indicii coeficient¸ilor binari care au valoarea zero. Uneori este avantajos s˘ a se lucreze cu negata formei normale conjunctive sau cu negata formei normale disjunctive ale funct¸iei care pot fi exprimate respectiv sub formele a)

f (xn−1 , xn−2 , . . . , x1 , x0 ) =

n 2Y −1

(di + Si )

(1.14-a)

i=0

b)

f (xn−1 , xn−2 , . . . , x1 , x0 ) =

n 2X −1

i=0

(di · Pi )

(1.14-b)

Aceste forme de scriere se pot obt¸ine pornind de la relat¸iile 1.10 ¸si 1.11, prin negarea ambelor p˘ art¸i, apoi aplicarea teoremei lui DeMorgan ¸si ¸tinˆ and cont de relat¸iile 1.7, ˆın felul urm˘ ator:

23

CAPITOLUL 1. PORT ¸ I LOGICE

f (xn−1 , xn−2 , . . . , x1 , x0 ) =

n −1 2X

i=0

f (xn−1 , xn−2 , . . . , x1 , x0 ) =

(di · Pi ) =

n −1 2Y

i=0

n 2Y −1

(di + P i ) =

(di + Si ) =

i=0

(di + Si )

i=0

i=0

n 2X −1

n 2Y −1

(di · S i ) =

n 2X −1

i=0

(di · Pi )

Aceste exprim˘ ari se pot deduce ¸si prin rat¸ionament din relat¸iile 1.10 ¸si 1.11. Din FCND se obt¸ine FND dac˘ a se consider˘ a numai termenii canonici produs care au valoarea 1, relat¸ia 1.12, respectiv din FCNC se obt¸ine FNC, relat¸ia 1.13, dac˘ a se consider˘ a numai termenii canonici sum˘ a care au valoarea 0. Sub forma FND funct¸ia are valoarea 1 pentru suma tuturor termenilor canonici care au coeficient¸ii d i = 1 ¸si are valoarea 0 pentru suma tuturor termenilor canonici care au coeficient¸ii d i = 0. Evident c˘ a funct¸ia negat˘ a f va avea valoarea 1 pentru suma tuturor acelor termeni canonici care produc valoarea 0 pentru f , adic˘ a pentru acei coeficient¸i d i care sunt 0; respectiv funct¸ia negat˘ a f va avea valoarea 0 pentru suma tuturor acelor termeni canonici care produc valoarea 1 pentru f , adic˘ a pentru acei coeficient¸i d i = 1. Deci a ca o form˘ a FND, relat¸ia 1.14-b, de acei termeni produs funct¸ia negat˘ a f poate fi scris˘ pentru care di = 1, adic˘ a pentru acei coeficient¸i di care au valoarea 0 la scrierea funct¸iei f sub form˘ a FND. Acela¸si rat¸ionament se poate face ¸si pentru forma FNC, adic˘ a se scrie funct¸ia f pentru coeficient¸ii d i care au valoarea 0 iar funct¸ia f , relat¸ia 1.14-a, pentru coeficient¸ii care au valoarea 1, adic˘ a d i = 0. O modalitate uzual˘ a de definire a unei funct¸ii logice este cea prin tabelul de adev˘ ar. Definit¸ia 1.12 Tabelul de adev˘ ar este un tabel care ˆın prima coloan˘ a din stˆ anga, coloana de intrare, listeaz˘ a toate configurat¸iile de valori ale variabilelor de intrare X = {0, 1}n , iar ˆın urm˘ atoarele coloane, coloane de ie¸sire, sunt listate valorile, din Y ⊆ {0, 1}, corespunz˘ atoare ie¸sirilor.  Astfel de tabele de adev˘ ar au fost prezentate init¸ial ˆın Tabelul 1.1 pentru introducerea operatorilor booleeni NOT, AND, OR iar apoi ˆın Figurile 1.1, 1.2 ¸si Tabelul 1.2, respectiv pentru funct¸ile logice de una, dou˘ a ¸si trei variabile. Exemplul 1.1 Pentru o celul˘a sumator complet s˘a se deduc˘a funct¸ia logic˘a sum˘a, si ¸si funct¸ia logic˘ a pentru transferul urm˘ ator, Ci . Solut¸ie. ˆIn sect¸iunea 2.5.2 se va analiza sumarea a dou˘ a cuvinte binare cu lungimea de n bit¸i A = An−1 An−2 . . . Ai . . . A1 A0 ¸si B = Bn−1 Bn−2 . . . Bi . . . B1 B0 . Operat¸ia de sumare a celor dou˘ a cuvinte se realizeaz˘ a pentru fiecare pereche de bit¸i (Ai , Bi ) ˆıncepˆ and cu perechea i = 0, de rangul cel mai put¸in semnificativ, (20 ), pˆ an˘ a la perechea i = n−1, de rangul cel mai semnificativ, (2n−1 ). Pentru fiecare rang aceast˘ a sumare este efectuat˘ a cu o celul˘ a sumator complet. O celul˘ a sumator complet pentru rangul i are trei intr˘ ari Ai , Bi , Ci−1 care sunt respectiv bit¸ii celor dou˘ a cuvinte A ¸si B ¸si transportul anterior Ci−1 ce a fost generat de celula din rangul 2(i−1) . Semnalele generate la ie¸sire de c˘ atre celula sumator complet sunt doi bit¸i: si –sum˘ a (= Ai + Bi + Ci−1 ) ¸si Ci –transportul urm˘ ator care se aplic˘ a la celula de rang 2(i+1) ca transport anterior. Celula sumator complet este notat˘ a uneori P P cu simbolul (3, 2), indicˆ and faptul c˘ a are trei intr˘ ari ¸si dou˘ a ie¸siri. Exist˘ a ¸si celula (2, 2) care are numai dou˘ a intr˘ ari Ai ¸si Bi (nu se consider˘ a transportul anterior Ci−1 ) care este referit˘ a ca celul˘ a semisumator. Pentru o celul˘ a sumator complet tabelul de adev˘ ar este prezentat ˆın Tabelul 1.6.

24

1.1. SUPORTUL LOGIC PENTRU SISTEMELE DIGITALE

Tabelul 1.6 Tabelul de adev˘ ar pentru o celul˘ a sumator/sc˘ az˘ ator complet

Ai

Intrari Adunare Bi C i−1 / Ii−1 si C i gi pi

Scadere di I i

Numarator de 1 Ci si

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 1 0 1 0 0 1

0 0 0 1 0 1 1 1

0 1 0 1 0 1 0 1

0 1 1 0 1 0 0 1

0 0 0 1 0 1 1 1

0 0 0 0 0 0 1 1

0 0 1 1 1 1 0 1

0 1 1 1 0 0 0 1

0 1 1 0 1 0 0 1

(0) (1) (1) (2) (1) (2) (2) (3)

Pentru ie¸sirea sum˘ a si forma normal˘ a canonic˘ a disjunctiv˘ a, FNCD conform relat¸iei 1.10, este : si (Ai , Bi , Ci−1 ) =

7 X i=0

di ·Pi = d0 ·P0 +d1 ·P1 +d2 ·P2 +d3 ·P3 +d4 ·P4 +d5 ·P5 +d6 ·P6 +d7 ·P7

unde di , i = 0, 1, 2, . . . , 7 sunt coeficient¸ii funct¸iei din coloana si din Tabelul 1.6. Evident c˘ a produsele pentru care di = 0 pot fi eliminate deoarece au valoarea 0 ¸si se obt¸ine forma normal˘ a disjunctiv˘ a, FND. si (Ai , Bi , Ci−1 )

= =

1 · P1 + 1 · P2 + 1 · P4 + 1 · P7 =

Ai · B i · Ci−1 + Ai · Bi · C i−1 + Ai · B i · C i−1 + Ai · Bi · Ci−1

Se observ˘ a c˘ a FND se poate scrie direct luˆ and numai acei mintermi pentru care funct¸ia are valoarea 1 ˆın tabelul de adev˘ ar, si (Ai , Bi , Ci−1 ) =

7 X

(1, 2, 4, 7)

0

,, de unde ¸si expresia de “sintez˘ a pe baz˘ a de 1 . Aplicˆ and axiomele ¸si teoremele din Tabelul 1.2, ¸si expresiile pentru XOR ¸si NXOR, forma normal˘ a disjunctiv˘ a pentru s i se transform˘ a ˆın felul urm˘ ator: si (Ai , Bi , Ci−1 )

= =

Ai · (B i · Ci−1 + Bi · C i−1 ) + Ai · (B i · C i−1 + Bi · Ci−1 ) = Ai · (Bi ⊕ Ci−1 ) + Ai (Bi ⊕ Ci−1 ) = Ai ⊕ Bi ⊕ Ci−1

(1.15)

Dar din Tabelul 1.6 se poate face ¸si sinteza funct¸iei negate si , aceasta va avea valori 1 a disjunctiv˘ aa (di = 1) acolo unde si are valori 0 (di = 0), relat¸ia 1.14-b, deci forma normal˘ funct¸iei negate se scrie direct examinˆ and tabelul de adev˘ ar: si (Ai , Bi , Ci−1 )

=

7 X (0, 3, 5, 6) = i=0

= = =

Ai · B i · C i−1 + Ai · Bi · Ci−1 + Ai · B i · Ci−1 + Ai · Bi · C i−1 = Ai · (B i · C i−1 + Bi · Ci−1 ) + Ai · (B i · Ci−1 + Bi · C i−1 ) = Ai ⊕ Bi ⊕ C i−1

25

CAPITOLUL 1. PORT ¸ I LOGICE

Se pune ˆıntrebarea care cale se alege pentru sinteza funct¸iei, cea prin FND pentru funct¸ia negat˘ a sau cea prin FND pentru funct¸ia nenegat˘ a? R˘ aspunsul este evident: prin calea care solicit˘ a mai put¸in efort, adic˘ a cea care duce la o form˘ a FND cu mai put¸ini mintermi. Pentru funct¸ia Ci sinteza se face din tabelul de adev˘ ar, de data aceasta pe baz˘ a de zerouri, adic˘ a prin formele conjunctive. Forma canonic˘ a normal˘ a conjunctiv˘ a, FCNC, conform exprim˘ arii din relat¸ia 1.11, se va scrie: Ci (Ai , Bi , Ci−1 )

=

7 Y

(di + Si ) =

i=0

=

(d0 + S0 ) · (d1 + S1 ) · (d2 + S2 ) · (d3 + S3 ) · (d4 + S4 ) · (d5 + S5 ) · ·(d6 + S6 ) · (d7 + S7 )

unde di , i = 0, 1, . . . , 7 sunt coeficient¸ii funct¸iei din coloana Ci . Se pot elimina factorii pentru care di = 1 deci se ajunge la forma normal˘ a conjunctiv˘ a FNC, Ci (Ai , Bi , Ci−1 ) =

7 Y

(0, 1, 2, 4)

0

,, care se putea scrie direct prin inspectarea valorilor de zero (“sintez˘ a pe baz˘ a de 0 ) ¸si scrierea produsului de maxtermi ˆın felul urm˘ ator: Ci

= =

S 0 · S1 · S2 · S4 =

(Ai + Bi + Ci−1 ) · (Ai + Bi + C i−1 ) · (Ai + B i + Ci−1 ) · (Ai + Bi + Ci−1 )

Aplicarea propriet˘ a¸tii de distributivitate la aceast˘ a expresie duce la 3 × 3 × 3 × 3 = 81 termeni produs care apoi sunt redu¸si prin aplicarea axiomelor ¸si teoremelor algebrei Booleene. A doua cale de sintez˘ a pe baz˘ a de zerouri se poate face pentru funct¸ia negat˘ a C i prin inspectarea tabelului de adev˘ ar se aleg maxtermii pentru care funct¸ia are valoarea 1, relat¸ia 1.14-a. Rezult˘ a forma normal˘ a conjunctiv˘ a, FNC, pentru funct¸ia negat˘ a C i (Ai , Bi , Ci−1 )

=

7 Y

(3, 5, 6, 7) =

0

=

(Ai + B i · C i−1 ) · (Ai + B i + Ci−1 ) · (Ai + B i + Ci−1 ) · ·(Ai + B i + C i−1 )

¸si de data aceasta se pot obt¸ine 81 de termeni produs care pot fi redu¸si. Uzual, se alege ˆıntre sinteza prin FNC pentru funct¸ia negat˘ a sau sinteza prin FNC pentru funct¸ia nenegat˘ a prin observarea ˆın tabelul de adev˘ ar care cale duce la mai put¸ini maxtermi. Din aceste dou˘ a tentative de sintez˘ a pe baz˘ a de zero se constat˘ a dificultatea aplic˘ arii formelor conjunctive, acesta este unul din argumentele pentru care ˆın practic˘ a se aplic˘ a aproape ˆın exclusivitate sinteza pe baz˘ a de 1, adic˘ a FND, fie pentru funct¸ia negat˘ a f , fie pentru funct¸ia nenegat˘ a f. ˆIn consecint¸a ˘, revenind la sinteza pe baz˘ a de 1 rezult˘ a pentru Ci a) Ci (Ai , Bi , Ci−1 ) =

7 X

(3, 5, 6, 7) =

i=1

=

Ai · Bi · Ci−1 + Ai · B i · Ci−1 + Ai · Bi · C i−1 + Ai · Bi · Ci−1

(1.16)

o form˘ a rezonabil˘ a, fat¸a ˘ de sintezele anterioare prin FNC ¸si care prin procedee analitice este adus˘ a la urm˘ atoarele forme disjunctive FD: b) Ci (Ai , Bi , Ci−1 )

=

Ai · (Bi ⊕ Ci−1 ) + Bi · Ci−1

c) Ci (Ai , Bi , Ci−1 )

=

Ci−1 · (Ai ⊕ Bi ) · (Ai · Bi )

26

1.1. SUPORTUL LOGIC PENTRU SISTEMELE DIGITALE

1.1.5

Forme disjunctive ¸si conjunctive

Forma disjunctiv˘ a FD a funct¸iei este o sum˘ a de termeni necanonici de unde ¸si denumirea de sum˘ a de produse, iar forma conjunctiv˘ a FC a funct¸iei este un produs de termeni sum˘ a necanonici, denumit˘ a ¸si produs de sume. Reducerea formelor normale disjunctive (FND) sau normale conjunctive (FNC), respectiv la FD sau FC este referit˘ a ca un procedeu de minimizare a funct¸iei, de¸si uneori nu se obt¸ine forma minim˘ a sau se obt¸in mai multe expresii (neminime). Exist˘ a trei modalit˘ a¸ti de minimizare: 1 - analitic˘ a, utilizˆ and axiomele ¸si teoremele algebrei Booleene. Aceast˘ a cale este eficient˘ a doar pentru funct¸ii cu num˘ ar mic de variabile ¸si de termeni. 2 - prin metode grafice (de exemplu diagrama Veitch - Karnaugh), de asemenea utilizabile pentru funct¸ii care nu au mai mult de 5-6 variabile. 3 - pe baza unor algoritmi sau abord˘ ari euristice . Exist˘ a algoritmi (de exemplu Quine - McQlusky) care pot fi aplicat¸i unor funct¸ii cu zeci de variabile ¸si ie¸siri multiple. Ace¸sti algoritmi stau la baza programelor de minimizare (de exemplu Espresso - MV) incluse ˆın medii de Programare Automat˘ a ˆın Electronic˘ a, referite prin termenul tehnici EDA (Electronic Design Automation). Minimizarea pe cale analitic˘ a implic˘ a put¸in˘ a practic˘ a ˆın utilizarea axiomelor ¸si teoremelor algebrei booleene. Aceast˘ a practic˘ a nu se bazeaz˘ a pe un algoritm anume ci mai mult pe intuit¸ie. Astfel se pot ad˘ auga termeni (tautologia) care apoi se grupeaz˘ a cu alt¸ii ˆıncˆ at s˘ a se aplice (cel mai frecvent ) axioma de existent¸a˘ a complementului a. (x + x = 1), teorema absorbt¸iei sau absorbt¸ia invers˘ Exemplul 1.2 Pentru urm˘atoarea form˘a normal˘a disjunctiv˘a F (A, B, C, D)

=

AB C D + AB C D + AB C D + AB C D + AB C D + +A B C D + A B C D + A B C D + A B C D + A B C D

s˘ a se deduc˘ a forma minim˘ a. Solut¸ie. Se grupeaz˘ a cˆ ate doi termeni canonici pentru a se aplica axioma de existent¸a ˘ a complementului (dar pentru aceasta unii termeni A B C D, A B C D se dubleaz˘ a) ˆın felul urm˘ ator: F (A, B, C, D)

=

A B D (C + C) + (A B C D + A B C D) + (A B C D + A B C D) +

=

A B D + A B C (D + D) + B C D(A + A) + B C D(A + A) +

=

B D(A + A) + A B C + B C D + B C D + A B C =

=

B D + B D(C + C) + B(A C + A C) =

=

B D + B D + B(A C + A C)

+(A B C D + A B C D) + (A B C D + A B C D) + A B D(C + C) = +A B C(D + D) + A B D =

pentru care aplicˆ and expresia funct¸iei SAU EXCLUSIV NEGAT se obt¸ine F (A, B, C, D) = B ⊕ D + B (A ⊕ C)

27

CAPITOLUL 1. PORT ¸ I LOGICE

Uneori se pune problema de a se parcurge traseul invers adic˘ a pentru o form˘ a minim˘ a s˘ a se deduc˘ a forma normal˘ a disjunctiv˘ a din care a provenit. ˆIn general, pentru o astfel de extindere de la un termen produs la un termen canonic produs se introduc ˆın termenul produs variabilele care lipsesc sub forma x + x. De asemenea, pentru ca o form˘ a disjunctiv˘ a s˘ a fie extins˘ a la forma normal˘ a conjunctiv˘ a (produse de sume) suma de termeni produs trebuie transformat˘ a ˆıntr-un produs de sume utilizˆ and axioma distributivit˘ a¸tii A + B C = (A + B) (A + C), iar ˆın termenii sum˘ a variabilele care lipseau se introduc prin axioma de existent¸a˘ a complemntului x · x = 0. Exemplul 1.3 Urm˘atoarea form˘a disjunctiv˘a F (A, B, C) = A B + A C s˘a fie extins˘a la forma normal˘ a conjunctiv˘ a. Solut¸ie. ˆIn primul rˆ and termenii produs sunt convertit¸i ˆın termeni sum˘ a utilizˆ and axioma de distributivitate. F (A, B, C)

=

(A B + A) (A B + C) = (A + A) (B + A) (A + C) (B + C) =

=

(A + B) (A + C) (B + C)

Fiec˘ arui termen sum˘ a ˆıi lipse¸ste o variabil˘ a care se introduce ˆın felul urm˘ ator: A+B

=

A + B + C C = (A + B + C) (A + B + C)

A+C

=

A + C + B B = (A + B + C) (A + B + C)

B+C

=

B + C + A A = (A + B + C) (A + B + C)

ˆIn final se obt¸ine: F (A, B, C)

=

(A + B + C) (A + B + C) (A + B + C) (A + B + C) =

7 Y

(0, 2, 4, 5)

0

Expresiile sub form˘ a de sume de produse sau produse de sume se pot modela pe dou˘ a niveluri de operatori respectiv pe AND-OR sau OR-AND. De exemplu urm˘ atoarele forme FD ¸si FC: F1 = A B + C D

¸si F2 = (A + B)(C + D)

pot fi modelate ca ˆın Figura 1.4-a ¸si 1.4-b. Uneori se impune ca modelarea s˘ a se fac˘ a fie numai cu operatorul NAND sau fie numai cu operatorul NOR. Pentru forme FD modelarea se face u¸sor pe baza operatorului NAND (not˘ am simbolic prin A · B → % (A, B)) deoarece aplicˆ and sumei de produse teorema dublei negat¸ii ¸si apoi teorema lui DeMorgan se obt¸ine tocmai un NAND de NAND-uri. ˆIn schimb pentru forme FC modelarea se face mai u¸sor pe baza operatorului NOR (not˘ am simbolic prin A + B → . (A, B)) deoarece aplicˆ and produsului de sume teorema dublei negat¸ii ¸si apoi teorema lui DeMorgan se obt¸ine tocmai un NOR de NOR-uri. Astfel F1 ¸si F2 devin: F1

=

AB + C D = AB · C D

−→

% (% (A, B), % (C, D))

F2

=

(A + B) (C + D) = (A + B) + (C + D)

−→

. (. (A, B), . (C, D))

28

1.1. SUPORTUL LOGIC PENTRU SISTEMELE DIGITALE A B

F 1 = A. B + C. D

C D

A B C D

A.B

C .D c)

a) A B

F 2 = (A+B).(C+D)

A B C D

C D b)

F 1 = (A. B) .(C. D)

A+B F 2 = (A+B)+(C+D) C+D

d)

Figura 1.4 Implementarea formelor FD ¸si FC: a,b) pe dou˘ a niveluri AND-OR, respectiv OR-AND; c,d) pe dou˘ a niveluri NAND-NAND, respectiv NOR-NOR.

Num˘ arˆ and simbolurile % ¸si . rezult˘ a c˘ a pentru fiecare funct¸ie sunt necesari trei operatori NAND respectiv NOR cu cˆ ate dou˘ a intr˘ ari cum se poate vedea ¸si ˆın Figura 1.4-c ¸si 1.4-d. Variabilele negate pot fi obt¸inute prin x →% (x, x) sau . (x, x). Uneori pentru conversia model˘ arii de tip AND-OR sau OR-AND, respectiv ˆıntr-o modelare de tip NAND-NAND sau NOR-NOR se pot utiliza anumite reguli grafice de transformare, care rezult˘ a din axiomele ¸si teoremele algebrei Booleene. Aceste reguli sunt:

Regula 1. La ie¸sirea unui operator se poate introduce un cerculet¸ de negat¸ie dar atunci trebuie introdus un cerculet¸ de negat¸ie ¸si la intrarea operatorului imediat ,, urm˘ ator (“Dubla negat¸ie este adev˘ ar ), deci pe conexiunea ˆıntre cei doi operatori variabila nu sufer˘ a modific˘ ari;

Regula 2. Introducerea unui cerculet¸ de negat¸ie pe ie¸sirea unei funct¸ii trebuie urmat˘ a, tot pe ie¸sire, de ad˘ augarea ˆınc˘ a a unui cerculet¸ de negat¸ie (buffer inversor). Respectiv, introducerea la o variabil˘ a de intrare, ˆıntr-un operator, a unui cerculet¸ de negat¸ie trebuie precedat˘ a de negarea aceleia¸si variabile de intrare (aplicarea pe intrare a variabilei negate);

Regula 3. Cˆ and se face conversia unui simbol grafic init¸ial ˆıntr-unul final, AND/NAND ↔ OR/NOR, se pot introduce la simbolul final cerculet¸e de negat¸ie fie la intrare, fie pe ie¸sire, fie atˆ at la intrare cˆ at ¸si la ie¸sire dar numai dac˘ a la terminalele corespunz˘ atoare ale simbolului init¸ial nu a existat un cerculet¸ de negat¸ie ˆın felul urm˘ ator (de fapt aceast˘ a regul˘ a nu este decˆ at o aplicare grafic˘ a a teoremei lui DeMorgan):

29

CAPITOLUL 1. PORT ¸ I LOGICE

AND

OR

NAND

NOR

Exemplul 1.4 Pentru conversiile din Figura 1.4 s˘a se aplice regulile grafice de transformare. Solut¸ie. Aplicˆ and regulile de conversie grafic˘ a se obt¸in succesiunile de circuite ca ˆın Figura 1.5. A B C D

F = (A.B). (C.D)

F = A. B + C. D

A F B C regula 1 D

A B F C regula 3 D

F

a) Maparea AND − OR in NAND − NAND este o conversie naturala

A B C D

F = A. B + C. D

A F B C regula 2 D

F = (A+B)+(C+D) A F B C regula 3 D

F

b) Maparea AND − OR in NOR − NOR este o conversie nepotrivita A B C D

F = (A+B)(C+D)

A F B C regula 1 D

F = (A+B)+(C+D) A F B C regula 3 D

F

c) Maparea OR − AND in NOR − NOR este o conversie naturala F = (A+B)(C+D) A B C D

A F B C regula 1 D

F = (A B)(C D) A F B C regula 3 D

F

d) Maparea OR − AND in NAND − NAND este o conversie nepotrivita

Figura 1.5 Exemple de conversii grafice de tipul AND-OR/OR-AND ˆın NAND-NAND sau NOR-NOR. Uneori apare ¸si problema invers˘ a a model˘ arii, pentru o modelare dat˘ a s˘ a se determine expresia FD sau FC care ˆıl descrie, de fapt aceast˘ a abordare pentru un sistem deja implementat este referit˘ a ca analiza sistemului. Se poate obt¸ine funct¸ia logic˘ aa modelului prin urm˘ atoarele trei modalit˘ a¸ti: 1 - pentru fiecare configurat¸ie de valori logice ale variabilelor de intrare se deduc

30

1.1. SUPORTUL LOGIC PENTRU SISTEMELE DIGITALE

valori logice ˆın punctele intermediare ale modelului ¸si respectiv se calculeaz˘ a valoarea logic˘ a de ie¸sire ¸si ˆın felul acesta se construie¸ste tabelul de adev˘ ar. Apoi, din tabelul de adev˘ ar rezultat se deduce funct¸ia logic˘ a. 2 - se scriu expresiile logice dup˘ a fiecare simbol de operator logic, pornind de la fiecare intrare ˆınspre ie¸sire, rezultˆ and dup˘ a ultimul operator expresia logic˘ aa funct¸iei. Aceast˘ a modalitate este asem˘ an˘ atoare cu prima: se merge de la intrare schemei spre ie¸sire din punct ˆın punct, dar la prima modalitate cu valorile funct¸iei pe cˆ and la aceast˘ a modalitate cu expresiile funct¸iei. 3 - utilizˆ and convent¸iile prin cerculet¸e de negat¸ie. A treia modalitate este recomandat˘ a doar atunci cˆ and operatorii au ie¸sirile negate (NAND, NOR) sau au intr˘ ari negate, deci parcurgerea de la intrare spre ie¸sire ridic˘ a anumite dificult˘ a¸ti. De ce? pentru c˘ a suntem mai obi¸snuit¸i s˘ a oper˘ am cu operatorii AND ¸si OR cu intr˘ ari nenegate. De fapt, aceasta se reduce tot la a doua modalitate dar prin conversia operatorilor care cont¸in cerculet¸e de negat¸ie ˆın operatori f˘ ar˘ a aceste cerculet¸e, se ajunge la o reprezentare numai cu operatori AND ¸si OR. Exemplul 1.5 Pentru modelele de circuite din Figura 1.6-a, 1.6-c s˘a se deduc˘a expresia funct¸iilor (aplicˆ and cerculet¸ele de negat¸ie). A B C A B C

F

F

D

c) regula 3

a)

A B C

regula 3

F

D

d)

A

F

B C

b)

F = A. (B+C)

regula 3 A B C

F

D

e)

F = (A+B). C+D

Figura 1.6 Exemple de conversie a modelelor logice spre structuri cu operatori AND ¸si OR pentru determinarea funct¸iilor logice. Solut¸ie. Pentru modelul din Figura 1.6-a se aplic˘ a regula 3 ¸si se obt¸in numai operatori AND ¸si OR, F = A · (B + C). Pentru modelul din Figura 1.6-c se aplic˘ a de dou˘ a ori regula 3 ¸si structura poate fi considerat˘ a ca fiind compus˘ a doar din operatori AND ¸si OR pentru care se scrie foarte simplu expresia logic˘ a, F = D + C · (A + B).

CAPITOLUL 1. PORT ¸ I LOGICE

31

Acest mod de transformare a modelelor logice este foarte indicat ˆın depanarea circuitelor deoarece pornind de la intrare spre ie¸sire, dup˘ a fiecare nivel logic de OR sau AND se poate verifica simplu corectitudinea semnalelor. ˆIn ˆıncheierea prezent˘ arii acestor not¸iuni de suport formal pentru sistemele digitale accentu˘ am faptul c˘ a formele normale disjunctive, FND, sau formele disjunctive, FD, (sum˘ a de produse) pot fi modelate pe dou˘ a nivele logice AND-OR. De asemenea, formele normale conjunctive, FNC, sau formele conjunctive, FC, (produse de sume) pot fi modelate pe dou˘ a nivele logice OR-AND. Aceste afirmat¸ii sunt adev˘ arate ˆın mod teoretic cˆ and operatorii AND, OR se aplic˘ a pentru orice num˘ ar de intr˘ ari ¸si exist˘ a disponibile ¸si variabilele negate. ˆIn practic˘ a, unde un operator este o poart˘ a logic˘ a, trebuie luate cu precaut¸ie aceste afirmat¸ii ˆın funct¸ie de port¸ile disponibile ¸si de num˘ arul de intr˘ ari ale acestora (adic˘ a de restrict¸iile electrice de conectivitate ale acestor port¸i).

1.2

˘ POARTA LOGICA

Cˆ and se trece de la formele FND, FNC la FD, FC ¸si de la modelele acestora pe baz˘ a de operatori NOT, AND, OR, NOR, NAND, la implement˘ ari reale pe baz˘ a de circuite electronice pentru operatorii logici se folose¸ste, ˆın exprimare, termenul de poart˘ a logic˘ a. Prin termenul de poart˘ a logic˘ a se face referire la orice circuit electronic care implementeaz˘ a un operator logic, deci exist˘ a poarta inversor (NOT), poarta AND, poarta OR, poart˘ a XOR, poarta NAND etc. Prin referirea tuturor circuitelor logice cu termenul de poart˘ a logic˘ a apare un abuz de limbaj care, totu¸si, are o justificare din punct de vedere al transferului semnalului (variabile logice binare) prin circuit. Considerˆ and operatorii logici prezentat¸i ˆın Tabelul 1.7, cu cele dou˘ a intr˘ ari A,C ¸si ie¸sirea f , se poate analiza cum pentru transferul semnalului logic A spre ie¸sirea f , prin condit¸ionarea de c˘ atre semnalul C (de control), circuitul electronic care implementeaz˘ a un astfel de operator are un comportament similar cu ,, utilizarea/funct¸ionarea unei port¸i. Astfel, cˆ and circuitul poart˘ a este “deschis las˘ a semnalul A s˘ a treac˘ a modificat sau nemodificat spre ie¸sirea f , iar cˆ and poarta este ,, “ˆınchis˘ a semnalul A nu se transfer˘ a la ie¸sirea f . Intuitiv, ˆın aceast˘ a analogie, poarta este ˆınchis˘ a sau deschis˘ a de c˘ atre cineva, adic˘ a ˆın cazul unui circuit de un semnal de control, variabila C. De exemplu, pentru poarta AND cˆ and este deschis˘ a, C = 1, semnalul de intrare A se transfer˘ a la ie¸sire f = A, iar cˆ and este ˆınchis˘ a, C = 0, semnalul de intrare A nu se transfer˘ a la ie¸sire, f este ˆıncontinuu la valoarea logic˘ a 0. Poarta XOR, este put¸in mai special˘ a, este permanent deschis˘ a, transfer˘ a la ie¸sire semnalul de intrare nemodificat pentru C = 0, f = A (A ⊕ 0 = A), iar pentru C = 1 transfer˘ a spre ie¸sire intrarea A negat˘ a, f = A (A ⊕ 1 = A); poarta XOR are o funct¸ionare de circuit inversor comandat. O astfel de interpretare, de circuit poart˘ a, se poate g˘ asi pentru oricare din operatorii prezentat¸i ˆın Tabelul 1.7. Analizˆ and ˆın paralel poarta AND ¸si poarta OR se poate observa c˘ a poarta AND este deschis˘ a pentru C = 1 iar poarta OR este deschis˘ a pentru C = 0, astfel spunem c˘ a una este deschis˘ a cˆ and semnalul C este activat ˆın 1 logic iar cealalt˘ a cˆ and semnalul C este activat ˆın 0 logic. Pˆ an˘ a acum ata¸sam valorii de adev˘ ar, pentru o variabil˘ a,

˘ 1.2. POARTA LOGICA

32

Tabelul 1.7 Interpretarea operatorilor logici ca circuite poart˘ a INTRARI

A

AND

f A

OR

f A

NAND

f A

NOR

f A

XOR

f A

NXOR

C

A

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

0

1

0

0

1

1

0

1

0

1

1

1

1

0

0

0

1

Iesirea este :

C

C

C

C

f

C

C

f=0 f=A f=1 f=A f=1 f=A f=0 f=Af=A f=A f=Af=A

Pentru variabila C = 0 C = 1 C = 1 C = 0 C = 0 C = 1 C = 1 C = 0 C = 0 C = 1 C = 0 C = 1 de control :

valoarea binar˘ a 1 ¸si pentru valoarea de fals valoarea binar˘ a 0. Dar, ˆın practic˘ a, se poate ata¸sa pentru starea de adev˘ ar a unei variabile acea valoare binar˘ a pe care variabila o are ˆın starea activ˘ a (adic˘ a starea care produce act¸iunea pentru care se justific˘ a acea variabil˘ a), care poate fi: fie bitul 1, fie bitul 0. Iar valoarea de fals variabila o are ˆın starea de neactivare, care poate fi: fie pentru valoarea binar˘ a 1, fie pentru valoarea binar˘ a 0. ˆIn aceast˘ a interpretare, variabila A cˆ and este ˆın stare activ˘ a pentru valoarea biand este ˆın starea activ˘ a nar˘ a 1 (activ High) se noteaz˘ a ˆın felul urm˘ ator A H ¸si cˆ pentru valoarea binar˘ a 0 (activ Low) se noteaz˘ a A L . La fel, ¸si o ie¸sire OU T a unei port¸i poate fi considerat˘ a ˆın stare activ˘ a (adev˘ arat˘ a) fie cˆ and are valoarea binar˘ a 0 ¸si se noteaz˘ a OU T L, fie cˆ and are valoarea binar˘ a 1 ¸si se noteaz˘ a OU T H . Cu aceste notat¸ii tabelele de adev˘ ar pentru port¸ile logice se realizeaz˘ a nu pentru valorile binare 1 ¸si 0 ci pentru st˘ arile de activare (adev˘ arat) ¸si neactivare (fals) ale intr˘ arilor ¸si, respectiv, pentru starea de activare (adev˘ arat) ¸si neactivare (fals) a ie¸sirii. Pe simbolurile grafice ale port¸ilor pentru semnalele de intrare ¸si de ie¸sire active ˆın L se introduc cerculet¸e de negat¸ie. ˆIn practic˘ a, dac˘ a un semnal este activ ˆın starea High, de a sufixul H ¸si se reprezint˘ a numai A sau exemplu A H sau OU T H, nu se mai adaug˘

INTR1 INTR2_L INTR3_L INTR4_L INTR5 a)

OUT_L

INTR1 INTR2_L INTR3_L INTR4_L INTR5

OUT_L

b)

Figura 1.7 Reprezentarea mixat˘ a a semnalelor (pentru valoarea binar˘ a asignat˘ a st˘ arii de adev˘ ar: a) pentru o poart˘ a AND; b) pentru o poart˘ a OR.

33

CAPITOLUL 1. PORT ¸ I LOGICE

OU T ˆınt¸elegˆ andu-se c˘ a au valoarea de adev˘ ar (starea activ˘ a) ˆın 1 logic iar valoarea de fals ˆın 0 logic. ˆIn schimb, pentru semnalele active ˆın starea Low se ment¸ine sufixul L. Deci, poate s˘ a apar˘ a aceast˘ a notare mixat˘ a, adic˘ a semnalele active ˆın starea High nu mai au sufixul H dar cele active ˆın starea Low au sufixul L. De exemplu, pentru poarta AND din Figura 1.7-a ie¸sirea este activ˘ a (valoare de adev˘ ar), OU T L = 0, se obt¸ine cˆ and toate intr˘ arile sunt activate (au valoare de adev˘ ar), adic˘ a: IN T R1 = 1, IN T R2 L = 0, IN T R3 L = 0, IN T R4 L = 0 ¸si IN T R5 = 1; iar pentru poarta OR din Figura 1.7-b ie¸sirea nu este activ˘ a (nu are valoare de adev˘ ar, OU T L = 1) numai cˆ and nici una din intr˘ ari nu este activat˘ a (este fals˘ a), adic˘ a: IN T R1 = 0, IN T R2 L = 1, IN T R3 L = 1, IN T R4 L = 1 ¸si IN T R5 = 0. ˆIn practica circuitelor digitale pentru o variabil˘ a V AR, care este activ˘ a ˆın starea a carte se va utiliza Low, se utilizeaz˘ a dou˘ a notat¸ii: V AR sau V AR L; ˆın aceast˘ atˆ at notat¸ia de variabil˘ a negat˘ a, V AR, cˆ at ¸si notat¸ia de nivel Low, V AR L, ambele avˆ and aceea¸si semnificat¸ie. Exemplul 1.6 S˘a se reprezinte tabelele de adev˘ar ¸si simbolurile grafice uniforme (vezi Tabelul 1.1) pentru toate variantele de activare ale variabilelor de intrare ¸si ie¸sirii la o poart˘ a AND cu dou˘ a intr˘ ari. Solut¸ie. Ie¸sirea unei port¸i AND cu dou˘ a intr˘ ari este activ˘ a (are valoare de adev˘ ar) numai cˆ and sunt active (au valori de adev˘ ar) ambele intr˘ ari; deci o aplicat¸ie pe mult¸imea A

B

A·B

A+B

Fals Fals Fals Fals Fals Adevarat Fals Adevarat Adevarat Fals Fals Adevarat Adevarat Adevarat Adevarat Adevarat A B

&

O

A B_L

A

B

O

A

0 0 1 1

0 1 0 1

0 0 0 1

0 0 1 1

A B

&

O_L

A

B

O_L

0 0 1 1

0 1 0 1

1 1 1 0

A B_L

&

O

B

B_L O 0 1 0 1

0 0 1 0

&

O_L

A B_L O_L 0 0 1 1

A_L

0 1 0 1

1 1 0 1

&

O

A_L

B

O

0 0 1 1

0 1 0 1

0 1 0 0

A_L B

&

A_L B_L

&

O

A_L B_L O 0 0 1 1 O_L

A_L

B

O_L

0 0 1 1

0 1 0 1

1 0 1 1

A_L B_L

0 1 0 1

1 0 0 0

&

O_L

A_L B_L O_L 0 0 1 1

0 1 0 1

0 1 1 1

Figura 1.8 Variante de asignare a valorilor binare pentru semnalele active la o poart˘ a AND

˘ 1.2. POARTA LOGICA

34

{adev˘ ar,fals} cu valori tot ˆın aceast˘ a mult¸ime. Ata¸sa ˆnd fiec˘ arei valori de adev˘ ar (activare), pentru variabilele de intrare ¸si pentru ie¸sire, fie nivelul Low fie nivelul High rezult˘ a 8 variante pentru tabelul de adev˘ ar, Figura 1.8. Realizat¸i variantele pentru tabelul de adev˘ ar ¸si pentru poarta OR.

ˆIn tehnic˘ a, de foarte mult timp, este utilizat un element ce prezint˘ a dou˘ a st˘ ari: contactul unui releu. Un contact ˆınchis prin lamela sa stabile¸ste, ˆıntre dou˘ a puncte de circuit, un traseu de rezistent¸a˘ electric˘ a de valoare foarte mic˘ a, teoretic zero, iar un contact deschis ˆıntrerupe un circuit ˆıntre dou˘ a puncte, deci realizeaz˘ a ˆıntre cele dou˘ a puncte o rezistent¸a˘ infinit˘ a. Celor dou˘ a st˘ ari ale contactului (ˆınchis, deschis) li se pot asocia elementele mult¸imii binare {0, 1}. Rezult˘ a c˘ a pentru circuitele cu contacte, denumite ret¸ele de comutat¸ie, se poate aplica formalismul algebrei Booleene, B(2); apare astfel posibilitatea de a formaliza proiectarea ¸si analiza ret¸elelor de comutat¸ie. Acest formalism a fost prima dat˘ a folosit de Claude Shannon ˆın 1938 care, a scos din arhiva matematicilor algebra conceput˘ a de George Boole (1852) ¸si a aplicat-o ˆın acest scop. ˆIn Figura 1.9 este schit¸at˘ a o structur˘ a de circuit cu releu care, prin cele dou˘ a contacte ale sale, unul normal deschis cel˘ alalt normal ˆınchis, realizeaz˘ a traseul circuitelor

f1

x

~

~ f2

x

f

x x

x

~

f

x x

x

f

~ x

~

y

y

z

x

y

z

x y z x y z

z

f

~

x

x

y

y

z

z

x y z x y z

x

f

z

f

x z

x z

f = x. y e)

f

f f = x+y d)

c)

x x

f

x y

f= x

f=x b)

f

y x y

x a)

x

~

f =x y z +xy z + x z f)

f =(x + y +z )(x + y +z )( x+z) g)

Figura 1.9 Ret¸ele de comutat¸ie: a) structur˘ a de circuit releu; b,c,d,e) ret¸ele de comutat¸ie pentru modelarea operatorilor de: identitate, negat¸ie, sum˘ a logic˘ a ¸si produs logic; f,g) ret¸ele de comutat¸ie pentru modelarea unei forme de sume-de-produse ¸si produse-de-sume.

35

CAPITOLUL 1. PORT ¸ I LOGICE

de alimentare a dou˘ a becuri notate cu f1 ¸si f2 . Un contact normal deschis este ˆın stare deschis˘ a cˆ and releul nu este comandat ¸si trece ˆın stare ˆınchis˘ a cˆ and releul este comandat. Invers, un contact normal ˆınchis este ˆın starea ˆınchis˘ a cˆ and releul nu este comandat ¸si se deschide cˆ and releul este comandat. ˆIn aceast˘ a schit¸a˘, cˆ and releul este necomandat tensiunea de alimentare a bobinei este 0, x = 0, arm˘ atura nu este atras˘ a, contactul normal ˆınchis este ˆınchis, cel normal deschis este deschis, iar becul f1 este stins ¸si becul f2 este aprins. Cˆ and se comand˘ a releul, tensiunea de alimentare are o anumit˘ a valoare, pe care o putem nota cu 1, x = 1, contactul normal deschis se ˆınchde, cel normal ˆınchis se deschide deci becul f 1 se aprinde ¸si f2 se stinge. Ata¸saˆnd st˘ arii becurilor valoarea logic˘ a 1 (activ) cˆ and este aprins ¸si valoarea logic˘ a 0 (inactiv) cˆ and este stins rezult˘ a c˘ a aplicat¸ia {0, 1} → {0, 1}, conform Figurii 1.1, este funct¸ia f11 , adic˘ a identitate pentru becul f1 , f1 = x ¸si este funct¸ia f21 , adic˘ a negat¸ie pentru becul f2 , f2 = x. Evident, contactul normal deschis prin care se realizeaz˘ a funct¸ia de identitate se va nota cu variabila x, Figura 1.9-b, iar contactul normal ˆınchis prin care se realizeaz˘ a funct¸ia de negat¸ie se va nota cu variabila negat˘ a, x, Figura 1.9-c. Rezult˘ a, intuitiv, c˘ a dou˘ a contacte ˆınseriate realizeaz˘ a, pentru ret¸eaua de comutat¸ie respectiv˘ a, modelarea produsului logic de dou˘ a variabile, Figura 1.9-e, iar dou˘ a contacte ˆın paralel realizeaz˘ a modelarea sumei logice a dou˘ a variabile, Figura 1.9-d. O

ID

+

A

A

G

UD

− A

+



K

S

D

K UD

K

G

UD S

A

D

K b)

a) V CC

V CC

RC

V DD

V DD

RC pMOS VO

Vin

VO Vin

c)

Vin

VO

Vin

VO

nMOS

d)

Figura 1.10 Elemente fizice componente de baz˘ a pentru structurarea port¸ilor logice: a,b) elemente componente pentru modelarea funct¸iei de identitate. c,d) elementele componente pentru modelarea funct¸iei de inversor ˆın tehnologie bipolar˘ a ¸si ˆın tehnologie CMOS.

˘ 1.2. POARTA LOGICA

36

ret¸ea de comutat¸ie serie-paralel, Figura 1.9-f, modeleaz˘ a o funct¸ie disjunctiv˘ a (sum˘ a de produse, FD) iar o ret¸ea de comutat¸ie paralel-serie, Figura 1.9-g, modeleaz˘ a o funct¸ie conjunctiv˘ a (produse de sume, FC). Elementele logice de baz˘ a ˆın structura unei port¸i sunt cele dou˘ a funct¸ii f 11 (identi1 tate) ¸si f2 (negat¸ie) cu care se pot realiza diferite organiz˘ ari prin intermediul celor patru tipuri de conectare: serie, paralel, serie-paralel ¸si paralel-serie. ˆIn circuitele poart˘ a componentele fizice care pot modela funct¸ia identitate pot fi dioda sau tranzistorul de trecere. O diod˘ a polarizat˘ a ˆın sens direct este echivalent˘ a unui contact ˆınchis iar polarizat˘ a ˆın sens invers poate modela un contact deschis, Figura 1.10-a (s-a considerat caracteristica de diod˘ a ideal˘ a). La fel, un tranzistor de trecere (vezi Figura 1.51) poate fi echivalentul unui contact ˆınchis/deschis dup˘ a cum tranzistorul este comandat ˆın conduct¸ie/blocare, Figura 1.10-b. Pentru funct¸ia de inversor exist˘ a circuite simple ˆın fiecare tehnologie. Structura unui circuit inversor ˆın tehnologie bipolar˘ a este reprezentat˘ a ˆın Figura 1.10-c (vezi sect¸iunea 1.5.2) iar pentru inversorul CMOS ˆın Figura 1.10-d (vezi sectiunea 1.4.1). Circuitul cu diode care produce la ie¸sire tensiunea de valoare minim˘ a aplicat˘ a la intrare, M IN (V1 , V2 , V3 ), Figura 1.11-a ¸si circuitul cu diode care produce la ie¸sire tensiunea maxim˘ a aplicat˘ a la intrare, M AX(V1 , V2 , V3 ), Figura 1.11-b pot fi utilizate ca structuri de poart˘ a AND sau OR ˆın funct¸ie de convent¸ia de logic˘ a folosit˘ a. Vref =+5V

V1 V2 V3

D1

R

D2

VO

D3

V1 V2 VO VL VL VL VL VH VL

V1 V2 0 0 0

VH VL VL VH VH VH

V High = +5V V Low = 0V V O = Min(V 1,V 2,V 3)

V2 V3

D1 D2

VO

D3

R Vref = 0V

V High = +5V V Low = 0V V O = Max(V 1,V 2,V 3)

VO

0

V1 V2 1 1

1

0

1

0

1

1

0

0

0

1

1

1

1

1

0

0

0

Logica pozitiva "1" VH "0" VL Poarta AND

a)

V1

VO

V1 V2 VO VL VL VL VL VH VH

V1 V2 0 0 0

VH VL VH VH VH VH

VO

1

Logica negativa "0" VH "1" VL Poarta OR VO

0

V1 V2 1 1

1

1

1

0

0

1

0

1

0

1

0

1

1

1

0

0

0

Logica pozitiva "1" VH "0" VL Poarta OR

1

Logica negativa "0" VH "1" VL Poarta AND

b)

Figura 1.11 Echivalarea circuitelor MIN (a) ¸si MAX(b) ca port¸i logice AND ¸si OR ˆın funct¸ie de convent¸ia de logic˘ a pozitiv˘ a sau negativ˘ a

CAPITOLUL 1. PORT ¸ I LOGICE

37

Prin convent¸ia de logic˘ a pozitiv˘ a ˆıntr-un circuit nivelului de tensiune ridicat VH (High), ˆın general tensiunea de alimentare V H = VCC , VH = VDD , i se atribuie ,, valoarea logic˘ a “1 iar nivelului de tensiune coborˆ at VL (Low), ˆın general tensiunea ,, de mas˘ a VL = VSS = 0V , i se atribuie valoarea logic˘ a “0 . Invers, prin convent¸ia de ,, ,, logic˘ a negativ˘ a se fac urm˘ atoarele atribuiri VH → “0 , VL → “1 . Exist˘ a circuite logice care sunt alimentate cu tensiuni negative (−V EE ) fat¸a˘ de mas˘ a, circuitele de tip ECL–Emitter Coupled Logic, ¸si la acestea se p˘ astreaz˘ a atribuirile din convent¸iile de logic˘ a pozitiv˘ a sau negativ˘ a; diferent¸a fat¸a˘ de circuitele care se alimenteaz˘ a la tensiune pozitiv˘ a este faptul c˘ a VH = 0V (tensiunea masei) ¸si VL = −VEE , Figura 1.13. Circuitul MIN, Figura 1.11-a, va genera pentru ie¸sire V O = M IN (V1 , V2 , V3 ) deoarece va conduce numai dioda care are aplicat pe catod tensiunea cu valoarea cea mai coborˆ at˘ a, celelalte diode, cu catozii mai pozitivi, vor fi blocate. Considerˆ and circuitul MIN realizat numai cu dou˘ a diode D1 ¸si D2 , la catozii c˘ arora se aplic˘ a numai tensiunile de valori VH sau VL , se poate construi tabelul pentru tensiunea de ie¸sire VO . Aplicˆ and acestui tabel convent¸ia de logic˘ a pozitiv˘ a rezult˘ a c˘ a circuitul MIN are o funct¸ionare de poart˘ a AND, iar ˆın convent¸ia de logic˘ a negativ˘ a are o funct¸ionare de poart˘ a OR. Circuitul MAX, Figura 1.11-b, va genera pentru ie¸sire tensiunea maxim˘ a aplicat˘ a pe intrare VO = M AX(V1 , V2 , V3 ) deoarece va conduce doar dioda care are aplicat pe anod tensiunea cea mai ridicat˘ a, celelalte diode, cu potent¸ial mai coborˆ at pe anod, vor fi blocate. Aplicˆ and tabelului, care arat˘ a corespondent¸a dintre tensiunea de ie¸sire VO ¸si tensiunile de intrare V1 , V2 (sunt considerate doar dou˘ a intr˘ ari), convent¸ia de logic˘ a pozitiv˘ a rezult˘ a c˘ a circuitul MAX are funct¸ionare de poart˘ a OR iar ˆın convent¸ia de logic˘ a negativ˘ a are o funct¸ionare de poart˘ a AND. Teorema 1.1 Duala unei funct¸ii de variabile negate este egal˘ a cu negata funct¸iei de variabile nenegate. f (x0 , x1 , . . . , xn−1 ) = f D (x0 , x1 , . . . , xn−1 )

(1.17)

Relat¸ia 1.17 se poate verifica pe tabelele de adev˘ ar din Figura 1.11-a ¸si 1.11-b deoarece o convent¸ie de logic˘ a se obt¸ine din cealalt˘ a convent¸ie prin negarea variabilelor iar operatorii AND ¸si OR sunt unul dualul celuilalt: V 1 · V2 = V1 + V2 ¸si V1 + V2 = V1 · V2 . De fapt, relat¸ia 1.17 este o generalizare a teoremei lui DeMorgan. Exemplul 1.7 S˘a se conceap˘a o organizare de circuit, folosind circuitele MIN ¸si MAX, care s˘ a produc˘ a tot¸i maxtermii ¸si mintermii de dou˘ a variabile. Se poate extinde aceasta pentru generarea de sume de produse de dou˘ a variabile? Solut¸ie. Mintermii de dou˘ a variabile x1 x0 , x1 x0 , x1 x0 , x1 x0 pot fi produ¸si de patru circuite MIN, ca ˆın Figura 1.11-a, dar cu patru diode pe catozii c˘ arora se aplic˘ a variabilele x1 , x1 , x0 , x0 . Cele patru circuite MIN se pun ˆın paralel ca ˆın Figura 1.12-a realizˆ and o matrice AND. Maxtermii de dou˘ a variabile x1 + x0 , x1 + x0 , x1 + x0 , x1 + x0 pot fi generat¸i de patru circuite MAX ca ˆın Figura 1.11-b, cu variabilele de intrare x1 , x1 , x0 , x0 , iar cele patru circuite sunt conectate ˆın paralel realizˆ and matricea OR din Figura 1.12-b. (Atent¸ie care catozi sunt conectat¸i la linii pentru circuitele MIN ¸si la coloane pentru circuitul MAX). Evident c˘ a se pot obt¸ine sume de produse de dou˘ a variabile dac˘ a cele patru ie¸siri de la matricea AND sunt conectate, fiecare, la cˆ ate o intrare la matricea OR realizˆ and o configurat¸ie

˘ 1.2. POARTA LOGICA

38

de circuit pe dou˘ a niveluri logice, AND-OR. Cˆ and se realizeaz˘ a aceast˘ a ˆınseriere de niveluri logice apar dou˘ a probleme: prima, este c˘ aderea de tensiune pe jonct¸iunile ˆın conduct¸ie, ceea ce duce ca semnalul de ie¸sire ˆın stare logic˘ a 1 s˘ a fie sub valoarea VH , iar a doua, este lipsa unei decupl˘ ari (izolare) ˆıntre intrare ¸si ie¸sire. Pentru valorile urm˘ atoare VH = 5V , VL = 0V , VDon = 0, 7V , R1 = 1KΩ, R2 = 10KΩ rezult˘ a tensiunea de ie¸sire ˆın starea H egal˘ a cu   R1 = 3, 9V ≤ VH = 5V VH − (VH − VDon ) · (R1 + R2 )

Structura obt¸inut˘ a prin ˆınserierea unei matrice AND cu o matrice OR poate fi suport pentru implementarea oric˘ arei funct¸ii sum˘ a de produse dac˘ a matricile respective sunt programabile, adic˘ a pe nivelul AND se poate genera oricare termen produs iar pe nivelul OR se poate selecta oricare produs ˆın obt¸inerea unei sume (vezi sectiunea 2.4.7). Fizic, generarea acestor termeni cu structura similar˘ a celei din Figura 1.12 se face, ˆıntr-un nod al celor dou˘ a matrice, prin neconectarea sau conectarea diodei la linie respectiv la coloan˘ a, ceea ce se reduce la arderea sau ment¸inerea unui fuzibil ˆınseriat cu dioda dintr-un nod. Prin fabricat¸ie, realizˆ and ˆın fiecare nod o diod˘ a ˆınseriat˘ a cu un fuzibil, i se ofer˘ a utilizatorului ca ulterior s˘ a aib˘ a posibilitatea de a programa fiecare nod din matricea AND ¸si matricea OR ˆın funct¸ie de expresia particular˘ a a funct¸iei exprimat˘ a ca sum˘ a de produse. ˆIn procesul de programare, cu ajutorul unui aparat programator, utilizatorul poate selecta oricare nod din cele dou˘ a matrice ¸si prin aplicarea unei tensiuni de valoare 10 ÷ 30V s˘ a ard˘ a fuzibilul. Dispozitivele programabile de c˘ atre utilizator sunt foarte eficiente ¸si flexibile ˆın etapa de dezvoltare a unui produs cˆ and se ˆıncearc˘ a diferite variante pˆ an˘ a la obt¸inerea variantei finale. Produc˘ atorii de dispozitive programabile produc aceste dispozitive cu toate nodurile matricei ˆınzestrate fie cu fuzibil fie cu un antifuzibil. La dispozitivele cu fuzibil, prin programare, rezistent¸a conexiunii dintr-un nod este modificat˘ a de la valoarea zero la valoara infinit˘ a (arderea fuzibilului). Un fuzibil din tungsten-titan sau nichel-crom cu l˘ a¸timea de 0.15µm necesit˘ a pentru ardere un curent de 10 ÷ 60mA timp de 1 ÷ 10ms (Texas Instruments), iar un fuzibil din polisiliciu cu +V (+5V)

R1

R1

R1

x +y

x +y

x +y

x

x

x

x

y

y

y

y xy

xy

Matricea AND a)

x +y

R1

xy

R2

xy pentru realizarea AND − OR

R2

R2

R2

Matricea OR b)

Figura 1.12 Organizarea unei matrice programabile ˆın logica pozitiv˘ a: a)pentru termeni produs; b)pentru termeni sum˘ a.

CAPITOLUL 1. PORT ¸ I LOGICE

39

,, l˘ a¸timea de 25µm se poate “arde cu un curent de 20 ÷ 80mA timp de 15µs (AMD). Dar, exist˘ a pericolul ca ˆın timp, datorit˘ a efectelor termice din circuitul integrat, unele fuzibile arse s˘ a duc˘ a la refacerea conexiunii. La dispozitivele cu antifuzibil, prin programare, rezistent¸a conexiunii dintr-un nod este modificat˘ a de la o valoare init¸ial˘ a foarte mare de ordinul 100M Ω la o valoare sub 1KΩ. Trasei de antifuzibil realizat˘ a fie dintr-un dielectric (de exemplu ONO, Oxigen-Nitrura-Oxigen), fie din siliciu amorf, ˆın procesul de programare, i se aplic˘ a un curent de ordinul zeci de mA cu durata sub 1µs, prin aceasta producˆ and modificarea rezistent¸ei. Conexiunile pe baz˘ a de antifuzibil, spre deosebire de cele pe baz˘ a de fuzibil, nu se pot reface ˆıntˆ ampl˘ ator (adic˘ a s˘ a revin˘ a la rezistent¸e de 100M Ω). Dispozitivele programabile atˆ at cele cu fuzibil cˆ at ¸si cele cu antifuzibil sunt referite ca dispozitive o singur˘ a dat˘ a programabile,OTP (One Time Programmable).

1.3

PARAMETRII PORT ¸ ILOR LOGICE

Pˆ an˘ a ˆın prezent s-a parcurs traseul de la expresie logic˘ a la un model al acesteia pe o ret¸ea de operatori care, fizic, sunt port¸i logice. Dar, ˆıntr-o implementare de sistem conectarea port¸ilor logice nu este f˘ ar˘ a limite ci trebuie s˘ a se respecte anumite restrict¸ii care sunt exprimate prin anumite valori ¸si care sunt referite prin termenul de parametrii de catalog ai port¸ilor logice. Prin parametrii (de catalog) ai unei port¸i logice se ˆınt¸eleg acele valori care ˆıi caracterizeaz˘ a funct¸ionarea sa ˆın interconectarea cu alte port¸i din aceea¸si familie sau ˆın condit¸ii de test. Uneori, poarta logic˘ a este interconectat˘ a ¸si cu alte port¸i din alte familii ceea ce impune o specificare unificat˘ aa parametrilor pentru toate familiile de port¸i logice. Parametrii unei port¸i trebuie s˘ a caracterizeze regimul de curent continuu, regimul tranzitoriu ¸si regimul de zgomot. Frecvent, ace¸sti parametri sunt dat¸i ˆın catalog ca valori tipice (normale), precum ¸si cu valorile pentru cazul cel mai defavorabil. Cazul cel mai defavorabil presupune c˘ a: circuitul cel mai defavorabil, din lotul admis, este ˆın condit¸iile cele mai defavorabile de funct¸ionare (temperatur˘ a, umiditate, tensiune de alimentare). Gama uzual˘ a de temperatur˘ a este ˆıntre 0 ◦ C ¸si 70◦ C, pentru aplicat¸iile civile, ¸si se extinde la intervalul −55 ◦ C ÷ +125◦ C, pentru aplicat¸iile militare. Condit¸iile defavorabile pentru tensiunea de alimentare se specific˘ a prin abaterile fat¸a˘ de valoarea nominal˘ a V , adic˘ a prin valorile V ± ∆V . ˆIn proiectare, chiar ¸si pentru cazul cel mai defavorabil, poarta trebuie s˘ a realizeze valori pentru parametrii s˘ ai care s˘ a nu ias˘ a din plaja valorilor prev˘ azute ˆın catalog. Cˆ and funct¸ionarea port¸ii se face ˆın afara condit¸iilor specificate mai sus se impune m˘ asurarea parametrilor s˘ ai ¸si ace¸sti parametri m˘ asurat¸i s˘ a fie ˆın limitele valorilor de catalog pentru a putea fi interconectate cu alte port¸i. Nivelurile de tensiune. ˆIntr-un circuit logic se poate face referire la dou˘ a niveluri constante de tensiune: tensiunea de alimentare V DD , VCC , −VEE ¸si tensiunea de mas˘ a 0V sau VSS ; aceste dou˘ a niveluri de tensiune sunt notate prin V H ¸si VL ¸si li se pot asigna cele dou˘ a valori ale mult¸imii binare B = {0, 1}, fie conform convent¸iei de logic˘ a pozitiv˘ a, fie conform convent¸iei negative. De fapt, cele dou˘ a niveluri de tensiune, practic, se extind la dou˘ a intervale de tensiune notate cu ∆V H ¸si ∆VL ca ˆın Figura 1.13, deci oricare valoare a tensiunii din aceste intervale (reprezint˘ a VH respectiv VL ) ¸si corespunde cifrei binare 1 sau 0 conform convent¸iei de logic˘ a

40

1.3. PARAMETRII PORT ¸ ILOR LOGICE

adoptat˘ a. Prin extinderea de la o valoare fix˘ a de tensiune la un interval se insensibilizeaz˘ a variat¸iile produse de: modificarea tensiunii VCC , VDD de alimentare, ˆımb˘ atrˆ anirea pieselor, temVH VH ˆIntre cele dou˘ VH peratur˘ a , zgomot. a inter"1" "0" vale de tensiune permise ∆VH , ∆VL exist˘ a Intervalul un interval de tensiune interzis; pentru o interzis poart˘ a cu funct¸ionare normal˘ a valorile tenVL "0" "1" siunilor de intrare ¸si de ie¸sire nu pot s˘ a se situeze ˆ ın intervalul interzis. Detectarea doar VL masa 0V,V SS a cifrelor logice de 1 sau 0 impune penVH tru o poart˘ a logic˘ a o comportare “procus,, "1" "0" tian˘ a , deci de fiecare dat˘ a cˆ and semnalul VH trece printr-o poart˘ a logic˘ a este readus la Intervalul interzis nivelul logic de 0 sau de 1, adic˘ a ˆın interiorul intervalelor permise. Deoarece fiecare "1" "0" VL poart˘ a readuce semnalul ˆın intervalele perVL VL − VEE mise ∆VH , ∆VL rezult˘ a c˘ a la propagarea semnalului printr-un lant¸ de port¸i zgomotul suprapus este eliminat ˆın fiecare nivel logic a, precum la circuitele cu Figura 1.13 Nivelurile de tensiune ¸si nu se amplific˘ funct¸ionare analogic˘ a. pentru valorile logice 00 100 ¸si 00 000 Marginea de zgomot ˆın curent continuu ¸si imunitatea la perturbat¸ii. O poart˘ a logic˘ a are specificate ˆın foaia de catalog nivelurile de tensiune garantate la ie¸sire ¸si nivelurile de tensiune permise la intrare, Figura 1.14-a. Nivelurile de tensiune garantate la ie¸sire sunt acoperitoare ˆın raport cu nivelurile de tensiune permise la intrare, aceast˘ a acoperire fiind gˆ andit˘ a ˆın scopul preˆıntˆ ampin˘ arii influent¸ei zgomotelor. (Prin zgomot se ˆınt¸elege orice semnal electric ce se suprapune peste semnalul logic). Aceast˘ a acoperire se reflect˘ a ˆın parametrii: margine de zgomot M H ˆın curent continuu pentru starea H ¸si marginea de zgomot M L ˆın curent continuu ˆın starea L. Logica pozitiva

Logica negativa

Definit¸ia 1.13 Marginea de zgomot pentru nivelul H ˆın curent continuu, MH , este diferent¸a dintre tensiunea de ie¸sire minim˘ a garantat˘ a ˆın starea H, VOHmin , ¸si tensiunea de intrare minim˘ a permis˘ a ˆın starea H, V IHmin . Marginea de zgomot pentru nivelul L ˆın curent continuu, ML , este diferent¸a dintre tensiunea de intrare maxim˘ a permis˘ a ˆın starea L, VILmax , ¸si tensiunea de ie¸sire maxim˘ a garantat˘ a ˆın starea L, VOLmax .  MH ML

= VOHmin − VIHmin ; = VILmax − VOLmax .

(1.18)

Valorile garantate la ie¸sire ¸si cele permise la intrarea unei port¸i pot fi corelate cu caracteristica de transfer, VTC (Voltage Transfer Characteristic). Caracteristica de transfer VO = f (VI ) exprim˘ a grafic dependent¸a static˘ a ˆıntre tensiunea la ie¸sirea port¸ii, VO , ¸si tensiunea aplicat˘ a la intrarea port¸ii, V I . Pentru o poart˘ a inversor VTC-ul este reprezentat ˆın Figura 1.14-b. Evident, c˘ a aceast˘ a caracteristic˘ a de transfer a unei port¸i este situat˘ a ˆın afara zonelor interzise (reprezentate ha¸surat)

41

CAPITOLUL 1. PORT ¸ I LOGICE

V O1

1

V I1

sursa de zgomot

(Valori garantate) V O V Intervalul garantat V OH pentru V OHmin V OH

VI

V O2

(Valori permise)

V V IH MH

Interval interzis V OLmax

Intervalul garantat pentru V OL

V I2

2

ML

V OL

V IHmin V ILmax V IL

Intervalul permis pentru V IH Interval interzis Intervalul permis pentru V IL

a)

V V OH V OHmin IP − Ny

VO

caracteristica ideala

V O=V I

V O=f(V I ) Zona interzisa prin valori garantate

N

IP +

Zona interzisa prin valori garantate

V OLmax V OL

VI V/2 V IL

V ILmax

V IH V IHmin

b)

Figura 1.14 Tensiunile de intrare ¸si ie¸sire la o poart˘ a logic˘ a: a) definirea nivelurilor/(intervalelor) de tensiune H ¸si L garantate la ie¸sire ¸si permise la intrare; b) caracteristica static˘ a de transfer VO = f (VI ) pentru o poart˘ a inversor.

42

1.3. PARAMETRII PORT ¸ ILOR LOGICE

ˆın planul VI , VO ¸si este desenat˘ a ca o band˘ a (punctat˘ a), pentru a indica faptul c˘ a port¸ile de acela¸si tip din cadrul unei familii au caracteristici ce nu se suprapun ci sunt dispersate ˆın aceast˘ a band˘ a. Imunitatea la perturbat¸ii, IP + respectiv IP − , se define¸ste prin tensiunile proport¸ionale cu urm˘ atoarele segmente din Figura 1.14-b: IP + = VOLmax Ny [V ] IP − = VOHmin Ny [V ]

(1.19-a)

Se presupune c˘ a tensiunea de ie¸sire a unei port¸i este V OHmin ¸si peste aceasta se suprapune (se scade) o tensiune de zgomot cu amplitudinea cel mult egal˘ a cu IP − ; iar tensiunea rezultat˘ a aplicat˘ a, ca tensiune de intrare la intrarea port¸ii urm˘ atoare (comandat˘ a), nu produce pentru aceast˘ a poart˘ a deplasarea punctului de funct¸ionare pe caracteristica de transfer dincolo de punctul N (tensiunea de intrare nu devine mai mic˘ a decˆ at V2 care ar corespunde trecerii tensiunii de intrare de la V IH la VIL ). La fel se consider˘ a c˘ a ¸si ˆın starea L peste valoarea V OLmax se poate suprapune cel mult tensiunea de zgomot IP + f˘ ar˘ a ca s˘ a se dep˘ a¸seasc˘ a pe caracteristic˘ a punctul N. Punctul N este intersect¸ia caracteristicii V O = f (VI ) cu prima bisectoare, care are and caracteristica este simetric˘ a. Dac˘ a amplitudinile de zgomot coordonatele ( V2 , V2 ) cˆ aplicate tensiunii de ie¸sire ˆın st˘ arile H sau L dep˘ a¸sesc respectiv valorile IP − sau IP + atunci tensiunea de intrare la poarta comandat˘ a trece dincolo de coordonatele punctului N ¸si produce o comutat¸ie eronat˘ a; coordonatele punctului N definesc pragul logic de comutat¸ie al port¸ii (vezi Definit¸ia 1.14). Pentru aplicat¸iile din mediile cu zgomot, de amplitudine mare, se recomand˘ a port¸i care au valori mari pentru IP + ¸si IP − ; astfel de port¸i denumite cu imunitate ridicat˘ a la zgomot au tensiuni de alimentare care pot ajunge la 30V. Pentru realizarea unei posibilit˘ a¸ti de comparat¸ie a imunit˘ a¸tii la perturbat¸ii a diferitelor familii de port¸i logice, care au valori diferite pentru nivelurile logice de tensiune V H , VL ¸si pentru tensiunile de alimentare, se introduc coeficient¸ii adimensionali – factorii de imunitate la perturbat¸ii: F IP + [%] = F IP − [%] =

IP + · 100 ∆V IP − · 100 ∆V

(1.19-b)

,, ,, unde ∆V este saltul de tensiune ˆıntre nivelurile logice “0 ¸si “1 . Dac˘ a se consider˘ a (cazul ideal) c˘ a ∆V este egal˘ a cu tensiunea de alimentare V CC , VDD ¸si IP + = 12 V , IP − = 21 V rezult˘ a pentru F IP + = F IP − = 50%, ˆın general F IP < 50%. Caracteristica ideal˘ a de inversor este cea de tip releu f˘ ar˘ a histerezis trasat˘ a cu linie ˆıntrerupt˘ a ˆıngro¸sat˘ a ˆın Figura 1.14-b. Port¸ile ˆın tehnologie CMOS au caracteristica de transfer care se apropie cel mai mult de cea ideal˘ a. Timpul de propagare τp . Timpul de propagare este un parametru care reflect˘ a viteza de r˘ aspuns/comutat¸ie a unei port¸i, altfel spus, este ˆıntˆ arzierea ˆın timp ˆıntre momentul aplic˘ arii semnalului logic la intrarea port¸ii ¸si momentul aparit¸iei semnalului la ie¸sirea port¸ii. Deoarece, practic, m˘ asur˘ arile se fac pe formele de variat¸ie ˆın timp ale semnalelor de intrare ¸si ie¸sire se vor defini unele puncte specifice fixate pe aceste semnale.

43

CAPITOLUL 1. PORT ¸ I LOGICE

ˆIn Figura 1.15-a sunt definite urm˘ atoarele m˘ arimi (pe semnalele de intrare ¸si de ie¸sire de la o poart˘ a inversor): τr - timpul de cre¸stere (rise time); intervalul de timp ˆıntre valorile 10% ¸si 90% pe frontul de cre¸stere de la L la H al semnalului de intrare ˆın poart˘ a; τf - timpul de descre¸stere (fall time); intervalul de timp ˆıntre valorile 10% ¸si 90% pe frontul de descre¸stere de la H la L al semnalului de intrare ˆın poart˘ a; τLH - durata frontului de cre¸stere; intervalul de timp ˆıntre valorile 10% ¸si 90% pe variat¸ia de la L la H a semnalului de ie¸sire din poart˘ a; τHL - durata frontului de c˘ adere; intervalul de timp ˆıntre valorile 90% ¸si 10% pe variat¸ia de la H la L a semnalului de ie¸sire din poart˘ a; τpLH - timpul de propagare prin poart˘ a la comutarea ie¸sirii de la L la H; m˘ asurarea se face ˆıntre punctele cu amplitudine 50% ale variat¸iei semnalului de intrare ¸si de ie¸sire; τpHL - timpul de propagare prin poart˘ a la comutarea ie¸sirii de la H la L; m˘ asurarea se face ˆıntre punctele cu amplitudine 50%; Tciclu - perioada de ciclu este intervalul de timp ˆıntre dou˘ a puncte identice pe dou˘ a cicluri succesive de variat¸ie ale unui semnal. ˆIn practica circuitelor digitale se recomand˘ a s˘ a se lucreze cu semnale care ˆındeplinesc relat¸ia: Tciclu ≥ (15 ÷ 40)τp (pentru circuitele care funct¸ioneaz˘ a la frecvent¸e de peste 1GHz T ciclu scade sub 10τp ). Timpul de propagare este definit prin relat¸ia: τp

=

τpHL + τpLH 2

(1.20)

De multe ori ˆın practic˘ a, pentru u¸surarea m˘ asur˘ arii intervalelor de timp ¸si f˘ ar˘ aa de introduce erori semnificative, se consider˘ a pentru semnalul de intrare V I o variat¸ie dreptunghiular˘ a, Figura 1.15-b. Pentru acest semnal de intrare ideal, cu panta fronturilor infinit˘ a, valorile timpilor de propagare τ pHL ¸si τpLH se m˘ asoar˘ a de la aceste fronturi pˆ an˘ a ˆın punctul de amplitudine 50% de pe variat¸ia semnalului de ie¸sire. Timpul de propagare este dependent de structura port¸ii ¸si sarcina comandat˘ a la ie¸sire. Dependent¸a de sarcina comandat˘ a este foarte puternic˘ a la port¸ile CMOS. Un model simplificat al circuitului de ie¸sire al unei port¸i logice ¸si a sarcinii comandate este reprezentat ˆın Figura 1.16-a. ˆIn acest model rezistent¸a echivalent˘ a R include rezistent¸a intern˘ a a etajului de ie¸sire al port¸ii (a generatorului G) plus rezistent¸a sarcinii (a port¸ii sau port¸ilor comandate), iar capacitatea echivalent˘ a C include capacit˘ a¸tile interne ale etajului de ie¸sire, capacitatea sarcinii comandate ¸si capacit˘ a¸tile parazite ale conexiunilor. Conform acestui model rezult˘ a variat¸ia tensiunii pe capacitatea de sarcin˘ a respectiv la inc˘ arcare ¸si desc˘ arcare:

44

1.3. PARAMETRII PORT ¸ ILOR LOGICE

VI

90%

V IH

50% 10%

τr

V IL

τf

Tciclu

τ pHL VO

t

τ pLH V OH

90% 50%

V OL

10%

τ HL

Tciclu

τ LH

t

a) VI

V OH Tciclu V OL

VO

τ pHL

t

τ pLH

V OH 50%

50%

V OL

b)

t

Tciclu

Figura 1.15 Definirea parametrilor de timp pe variat¸ia semnalelor de la intrarea ¸si ie¸sirea unei port¸i inversor: a) modul de definire a intervalelor: τ r , τf , τHL , τLH , τpHL , τpLH ¸si Tciclu ; b) model simplificat pentru m˘ asurarea de τpHL ¸si τpLH .

45

CAPITOLUL 1. PORT ¸ I LOGICE

R

VO

vO t

vO C

G VO

t1

vC VO

vC

t2

t3

T

50%

t t 1/2

a)

T

Figura 1.16 Modelul simplificat pentru circuitul de ie¸sire al unei port¸i (a) ¸si variat¸ia ˆın timp a tensiunii pe o sarcin˘ a capacitiv˘ a conectat˘ a la ie¸sire (b). a)

vC

=

b)

vC

=

  t VO 1 − e − T t

VO · e − T

(1.21)

unde T = R · C (variat¸iile ˆın timp ale tensiunii de ie¸sire de la 0V la V O ¸si de la VO la 0V sunt simetrice deoarece constantele de timp sunt egale). Timpul t 12 , la valoarea tensiunii de ie¸sire 50% VO , calculat cu relat¸iile 1.21, conform modelului simplificat din Figura 1.15-b, este egal cu τpHL , τpLH . t 12 = τpHL = τpLH = RCln2 = 0.69 RC Variat¸ia simetric˘ a a tensiunii vc determin˘ a valori egale ¸si pentru τr ¸si τf . τr = τf = T = RC (ln10 − ln

10 ) = 2.2 RC 9

Exemplul 1.8 Rezistent¸a de ie¸sire a unei port¸i ˆın starea H este R1 = 2KΩ iar ˆın starea L este R2 = 25Ω. Sarcina capacitiv˘ a pe ie¸sire are valoarea de 100pF . ˆIntˆ arzierea intern˘ a τpi este de 25ns. S˘ a se determine timpul de propagare τp al port¸ii. Solut¸ie: τpLH

=

τpHL

=

τp

=

τpi + R1 C ln 2 = 25ns + (2 · 103 Ω)(100 · 10−12 ) · ln2 ≈ 160ns τpi + R2 C ln 2 = 25ns + (25Ω)(100 · 10−12 ) · ln2 ≈ 27ns τpHL + τpHL 27 + 160 = = 93.5ns 2 2

Factorii de ˆınc˘ arcare la intrare ¸si la ie¸sire. Factorul de ˆınc˘ arcare la intrare (fan in, input loading factor) reprezint˘ a sarcina pe care o intrare o introduce cˆ and este conectat˘ a la ie¸sirea unei port¸i. Deoarece ˆıntr-o familie de circuite logice exist˘ a diferite port¸i cu num˘ ar diferit de intr˘ ari trebuie s˘ a se fixeze care tip de intrare reprezint˘ a sarcina standard. ˆIn general, se admite c˘ a sarcin˘ a este standard sarcina care corespunde unei intr˘ ari de la o poart˘ a NAND cu dou˘ a intr˘ ari (NAND2).

46

1.3. PARAMETRII PORT ¸ ILOR LOGICE

ˆIn funct¸ie de tehnologia de realizare a port¸ilor sarcina de intrare se m˘ asoar˘ a ˆın m˘ arimi fizice diferite. Pentru tehnologia bipolar˘ a, unde comanda se face printr-un curent pe baza unui tranzistor, sarcina de intrare se m˘ asoar˘ a ˆın unit˘ at˘ a¸ti de curent. Iar pentru tehnologia CMOS, unde comanda se face ˆın tensiune pe o capacitate (echivalent˘ a) de intrare, sarcina de intrare se m˘ asoar˘ a ˆın unit˘ a¸ti de capacitate. ˆIn Figura 1.17 sunt prezentate notat¸iile ¸si sensurile curent¸ior de la intrarea ¸si ie¸sirea port¸ilor. Referitor la o born˘ a, care este un terminal al unei port¸i, unui curent care intr˘ a prin acea born˘ a i se asociaz˘ a semnul plus (+I), iar unui curent care iese din acea born˘ a i se ata¸seaz˘ a semnul minus (-I); evident, simbolurile celor doi curent¸i care intr˘ a ¸si ies, la o aceea¸si born˘ a, au semne opuse. ˆIn foaia de catalog a unei port¸i este specificat˘ a sarcina maxim˘ a (curent sau capacitate) pe care intrarea unei port¸i o prezint˘ a pentru nivelurile permise de tensiune H ¸si L. O poart˘ a trebuie s˘ a poat˘ a absorbi/genera la ie¸sire un curent mai mare sau egal cu suma tuturor curent¸ilor necesari generat¸i/absorbit¸i de c˘ atre toate intr˘ arile port¸ilor care sunt conectate la acea ie¸sire, dar ˆın acela¸si timp poarta trebuie s˘ a asigure la ie¸sire ¸si nivelurile garantate de tensiune pentru starea H ¸si L. Cu aceste valori necesare pe o intrare ¸si disponibile pe o ie¸sire se poate determina un factor de ˆınc˘ arcare la ie¸sire (fan-out, output loading

Curentii la intrare VI

Nivel L

+ I IH

V IHmin

− IIL VI

V ILmax

V ILmax

Nivel H

V I V IHmin

Curentii la iesire Nivel L

Nivel H

− IIL

+ IIH

VO − IOH

+ IOL − IIL

V OHmin

+ IIH VO

− IIL VO

V OLmax

VOHmin + IIH

VOLmax

Figura 1.17 Explicativ˘ a pentru simbolurile ¸si sensurile curent¸ilor la intrarea (a) ¸si ie¸sirea (b) unei port¸i

47

CAPITOLUL 1. PORT ¸ I LOGICE

factor) atˆ at ˆın starea L, F IL cˆ at ¸si ˆın starea H, F IH conform relat¸iilor: IOLmax ; IILmax IOHmax ; F IH = IIHmax F I = min {F IL , F IH } F IL =

(1.22)

Rezult˘ a c˘ a factorul de ˆınc˘ arcare maxim F I este egal cu valoarea minim˘ a dintre F IL , ¸si F IH . ˆIn general, dac˘ a se consider˘ a c˘ a toate intr˘ arile port¸ilor au aceea¸si sarcin˘ a atunci factorul de ˆınc˘ arcare maxim exprim˘ a num˘ arul maxim de intr˘ ari comandate de ie¸sirea unei port¸i f˘ ar˘ a deteriorarea nivelurilor normale de tensiune. Acela¸si rat¸ionament, ca ¸si pentru curent¸i, se poate face cˆ and sarcina este capacitiv˘ a (se determin˘ a num˘ arul maxim de sarcini standard/unitare pe care le poate comanda o poart˘ a pe ie¸sire). Pentru o poart˘ a, ideal, F I ar trebui s˘ a fie infinit dar ˆın realitate are valori de ordinul unit˘ a¸tilor pentru tehnologia bipolar˘ a ¸si de ordinul zecilor pentru tehnologia ,, CMOS. Prin “t˘ aria unui semnal se ˆınt¸elege abilitatea de a absorbi sau genera un curent. Cu cˆ at un semnal este mai puternic cu atˆ at curentul generat sau absorbit este mai mare (prin convent¸ie bara de alimentare V DD /VCC genereaz˘ a un curent iar bara de mas˘ a 0V/VSS absoarbe un curent). Pentru port¸ile logice ie¸sirile sunt surse de nivelurile 1 sau 0 mai puternice decˆ at intr˘ arile. Liniile de alimentare V DD , VCC sau ,, VSS sunt sursele cele mai puternice de 1 logic ¸si 0 logic. Un semnal poate fi “ˆınt˘ arit , adic˘ a s˘ a poat˘ a comanda mai multe intr˘ ari, prin intermediul unui buffer/driver. Un buffer este un circuit care spre deosebire de poart˘ a nu proceseaz˘ a logic semnalul, eventual ˆıl inverseaz˘ a - buffer inversor, dar prezint˘ a la ie¸sire un F I mult m˘ arit. Ca funct¸ie logic˘ a bufferul neinversor este funct¸ia identitate f 11 , iar bufferul inversor este funct¸ia f21 , vezi sect¸iunea 1.1.3 . Circuitele buffer, ˆın general, sunt realizate ˆın grup de cˆ ate opt pe cip pentru a putea ˆınt˘ ari un cuvˆ ant de 8 bit¸i (1 byte). Unele port¸i au ,, pe ie¸sire un etaj circuit buffer, caz ˆın care sunt referite ca port¸i “bufferate . Exemplul 1.9 Pentru seriile de port¸i logice din familia TTL s˘a se determine F I. Solut¸ie. Curent¸ii de ie¸sire ¸si intrare ˆın starea H ¸si L, extra¸si din catalog sunt prezentat¸i ˆın Tabelul 1.8.

Tabelul 1.8 Valorile curent¸ilor pentru seriile de port¸i logice din familia TTL Seria 74 74S 74LS 74AS 74ALS ∗ depinde de circuit

INTRARE nivel H nivel L IIHmax , µA IILmax , mA 40 -1.6 50 -2.0 20 -0.36 20 -2,0 20 -0.1

IES¸IRE nivel H nivel L IOHmax , mA IOLmax , mA -0.4 / −0.8∗ 16 -1.0 20 -0.4 8 -0.4 4/8∗ -0.4 8

48

1.3. PARAMETRII PORT ¸ ILOR LOGICE

Pentru seria 74 (o poart˘ a din seria 74 comand˘ a port¸i tot din seria 74): 16mA IOLmax = = 10; IILmax 1.6mA IOHmax 800µA F IH = = = 20; IIHmax 40µA F I = min {20, 10} = 10 F IL =

Pentru seria 74LS (o poart˘ a din seria 74LS comand˘ a port¸i tot din seria 74LS): IOLmax 8mA = = 22; IILmax 0.36mA 400µA IOHmax = = 20; F IH = IIHmax 20µA F I = min {20, 20} = 20 F IL =

ˆIn acela¸si mod se pot calcula factorii de ˆınc˘ arcare pentru seriile: 74S, 74AL ¸si 74ALS. De asemenea se pot calcula F I pentru cazurile cˆ and o poart˘ a dintr-o serie comand˘ a port¸i din alt˘ a serie.

Exemplul 1.10 O poart˘a logic˘a CMOS din familia 74HC cu o rezistent¸a˘ de ie¸sire R = 300Ω, genereaz˘ a o tensiune de ie¸sire VO = 4.5V ¸si are o ˆıntˆ arziere intern˘ a τpi = 5ns. S˘ a se determine num˘ arul de port¸i de acela¸si tip care pot fi comandate de aceast˘ a poart˘ a astfel ˆıncˆ at timpul de propagare τp s˘ a nu fie mai mare de 40ns. Solut¸ie. Pentru port¸ile CMOS sarcina pe intrare este capacitiv˘ a (o valoare aproape standard a capacit˘ a¸tii de intrare pentru o poart˘ a CMOS, realizat˘ a discret, este Cin = 5pF ), curentul de intrare este neglijabil. De asemenea, se consider˘ a c˘ a procesul de ˆınc˘ arcare ¸si a: desc˘ arcare al capacit˘ a¸tii este simetric ca ˆın Figura 1.16-b deci τpHL = τpLH = t 1 . Rezult˘ 2

τp = τpi +

τpHL + τpLH = 40ns 2



t 1 = 40ns − 5ns = 35ns 2

Pentru τp = 35ns sarcina comandat˘ a de poart˘ a poate fi egal˘ a cu t 1 = 35ns = 0.69 RC ⇒ C = 170pF 2

= 34. Num˘ arul de port¸i comandate este 170pF 5pF Se observ˘ a c˘ a m˘ arimea sarcinii comandate de o poart˘ a CMOS determin˘ a valoarea timpului de propagare τp . Cre¸sterea timpului de propagare cu cre¸sterea sarcinii comandate este mult mai pregnant˘ a la port¸ile CMOS decˆ at la cele bipolare.

Consumul de putere. Consumul de putere Pd (puterea disipat˘ a) pentru port¸ile unei familii rezult˘ a ca o sum˘ a ˆıntre dou˘ a componente una static˘ a P dcc ¸si una dinamic˘ a Pdca , Pd = Pdcc + Pdca . 1. Consumul de putere ˆın regim static (ˆın c.c.) se define¸ste cu relat¸ia:   PH + P L ICCH + ICCL Pdcc = VCC = 2 2

(1.23)

ˆın care: ICCH , ICCL - sunt curent¸ii absorbit¸i de poart˘ a de la surs˘ a ˆın starea H, respectiv L; VCC - tensiunea de alimentare a port¸ii.

49

CAPITOLUL 1. PORT ¸ I LOGICE

De remarcat, c˘ a Pdcc este componenta principal˘ a de putere disipat˘ a la familia TTL (tipic, 1mW/poart˘ a pentru seria 74ALS ¸si ˆın jur de 8.5mW/poart˘ a pentru seria AS) pe cˆ and la tehnologia CMOS aceast˘ a component˘ a este neglijabil˘ a (tipic 2.5nW/poart˘ a pentru seria 74HC). 2. Consumul de putere ˆın regim dinamic Pdca (ˆın c.a.). Aceast˘ a component˘ a apare numai pe durata intervalelor de comutat¸ie ˆıntre cele dou˘ a niveluri logice ¸si se evident¸iaz˘ a sub dou˘ a forme: V CC iC

RC T

C RE

Figura 1.18 Circuit echivalent (simplficat) al unei port¸i pentru calculul puterii Pdca (a) ˆIn prima form˘ a, puterea disipat˘ a apare prin ˆınc˘ arcarea ¸si desc˘ arcarea capacit˘ a¸tilor din circuit care, uneori pentru simplificare, se substituie cu o singur˘ a capacitate echivalent˘ a C = capacitate intern˘ a din circuit + capacitatea conexiunilor + capacit˘ a¸tile de sarcin˘ a. Un circuit echivalent pentru calculul acestei puteri este prezentat ˆın Figura 1.18. Cˆ and contactul T (tranzistor) este comandat spre deschidere, ie¸sirea comut˘ a din L ˆın H, condensatorul C se ˆıncarc˘ a prin rezistent¸a RC stocˆ and o cantitate de energie 1 2 CV . Pe durata procesului de ˆ ınc˘ a rcare, cˆ a nd variat¸ia curentului este CC 2 VCC − Tt exprimat˘ a prin relat¸ia ic = RC · e , energia disipat˘ a pe rezistent¸a RC se calculeaz˘ a ˆın felul urm˘ ator: Z ∞ 2 Z ∞ VCC − 2t 2 e C·RC dt = W = ic · RC dt = R C 0 0 ∞ 2 ∞ t VCC R · C 1 C − C·R 2 C = − ·e = CVCC RC 0 2 2 0

rezult˘ a c˘ a energia nu depinde de valoarea rezistent¸ei R C . La comanda spre ˆınchidere a contactului T, cˆ and ie¸sirea comut˘ a din H ˆın L, energia 1 2 a pe condensatorul C este disipat˘ a pe rezistent¸a echivalent˘ a 2 CVCC stocat˘ a, RC k RE . Pe durata unei perioade T = f1 , a semnalului de comand˘  2 2 = CVCC . energia consumat˘ a pe rezistent¸ele RC ¸si RE este 2 12 CVCC Rezult˘ a c˘ a puterea disipat˘ a (energia ˆın unitatea de timp) pentru ˆınc˘ arcarea ¸si desc˘ arcarea capacit˘ a¸tii echivalente este exprimat˘ a de relat¸ia: 2 Pdca = CVCC ·f

(1.24)

50

1.3. PARAMETRII PORT ¸ ILOR LOGICE

(b) A doua form˘ a pentru puterea disipat˘ a ˆın regim dinamic apare datorit˘ a scurtcircuit˘ arii sursei de alimentare la mas˘ a pe durata fronturilor de comutat¸ie. Pe durata acestor fronturi, cˆ and unele tranzistoare din structura port¸ii comut˘ a din blocat ˆın conduct¸ie iar altele din conduct¸ie ˆın blocare, exist˘ a un interval scurt cˆ and toate tranzistoarele conduc (vezi Figura 1.22-e) ceea ce duce la scurtcircuitarea sursei la mas˘ a (pe unele trasee putˆ and exista anumite rezistent¸e), producˆ and vˆ arfuri de curent (spike) ˆın linia (V CC ) de alimentare a port¸ii. Aparit¸ia acestor vˆ arfuri de curent pe linia de alimentare pot s˘ a provoace comutat¸ii false la alte port¸i care se alimenteaz˘ a de la aceea¸si linie. Puterea disipat˘ a de scurtcircuit pe poart˘ a depinde de valoarea de vˆ arf a curentului de scurtcircuit, care este funct¸ie de tensiunea de alimentare VCC , ¸si depinde de frecvent¸a f de aparit¸ie a comutat¸iilor. Se poate exprima puterea disipat˘ a de scurtcircuit printr-o relat¸ie tot de aceea¸si form˘ a ca ˆın 1.24, ˆın care se introduce o capacitate echivalent˘ a de calcul a c˘ arei valoare nu dep˘ a¸se¸ste 20% din valoarea capacit˘ a¸tii echivalente utilizat˘ a pentru puterea disipat˘ a la ˆınc˘ arcarea ¸si desc˘ arcarea capacit˘ a¸tilor. Practic, luarea ˆın calcul ¸si a puterii disipate de scurtcircuit se face prin m˘ arirea valorii capacit˘ a¸tii din relat¸ia 1.24. Puterea disipat˘ a de scurtcircuit este cu atˆ at mai mic˘ a cu cˆ at semnalele de comand˘ a au fronturi mai abrupte, adic˘ a τf ¸si τr au valori cˆ at mai mici. O regul˘ a practic˘ a spune c˘ a: durata fronturilor trebuie s˘ a fie cel mult a zecea parte din timpul de propagare (τr , τf < 10τp ), pentru ca puterea disipat˘ a pe poart˘ a s˘ a nu o distrug˘ a prin cre¸sterea de temperatur˘ a. Pentru circuitele CMOS principala component˘ a de putere disipat˘ a este cea dinamic˘ a, relat¸ia 1.24. Reducerea acesteia se poate realiza prin mic¸sorarea factorilor din aceast˘ a relat¸ie ˆın special a tensiunii de alimentare care introduce o dependent¸a˘ p˘ atratic˘ a. S ¸ i la port¸ile ˆın tehnologie bipolar˘ a exist˘ a 2 · f , dar aceasta la frecvent¸e joase ¸si medii este componenta dinamic˘ a CVCC neglijabil˘ a fat¸a˘ de cea disipat˘ a ˆın regim static P dcc , relat¸ia 1.23. Exemplul 1.11 Valoarea tipic˘a a puterii disipate ˆın c.c. pe o poart˘a CMOS din seria HC este de 2, 5nW (la VDD = 5V ¸si 25◦ C) iar ˆın cazul cel mai defavorabil poate ajunge la 30µW . Dac˘ a aceast˘ a poart˘ a este comandat˘ a la frecvent¸a de 100KHz ¸si la ie¸sire sunt conectate zece port¸i de acela¸si tip, F I = 10, s˘ a se determine cˆ at va fi puterea disipat˘ a pe poart˘ a. Solut¸ie. Pentru port¸ile din seria HC ˆın catalog se specific˘ a sarcina pentru o intrare ca fiind Cintr = 5pF iar capacit˘ a¸tile interne totale se dau ca fiind 22pF . Se obt¸ine capacitatea echivalent˘ a total˘ a care trebuie s˘ a fie ˆınc˘ arcat˘ a ¸si desc˘ arcat˘ a la ie¸sirea port¸ii C = 22pF + 10 × 5pF = 72pF Rezult˘ a puterea disipat˘ a ˆın regim dinamic : 2 Pdac = CVDD · f = 72 · 10−12 × 52 × 105 = 180µW

Aceast˘ a valoare a puterii disipate este de 105 ori mai mare decˆ at valoarea disipat˘ a tipic˘ a ˆın regim de c.c. (2, 5nW ) ¸si de 6 ori mai mare decˆ at ˆın cazul cel mai defavorabil (30µW ).

CAPITOLUL 1. PORT ¸ I LOGICE

51

Factorul de merit. Factorul de merit notat PDP (Power Delay Product) este un parametru sintetic, ˆın sensul c˘ a poate caracteriza poarta atˆ at din punct de vedere al puterii disipate cˆ at ¸si din din punct de vedere al timpului de propagare ¸si este definit prin produsul dintre puterea disipat˘ a ¸si timpul de propagare: P DP [Joule] = Pd [W att] × τp [s]

(1.25)

Acest parametru poate fi interpretat ca fiind energia consumat˘ a pe decizie logic˘ a (pe comutat¸ie). Exist˘ a port¸i logice care au un factor de merit de ordinul pJ sau chiar mai mic, situˆ andu-se sub valoarea factorului de merit corespunz˘ ator unui neuron! Dependent¸a ˆıntre parametrii unei familii de circuite logice. Poarta logic˘ a ideal˘ a ar trebui s˘ a prezinte simultan valori optime pentru tot¸i parametrii: F I foarte mare, F IP = 50%, τp = 0, Pd = 0, VH = VCC sau VDD , VL = 0V , ∆V = VCC sau VDD . Pentru o astfel de poart˘ a inversor VTC-ul din Figura 1.14-b ar fi o caracteristic˘ a de tip releu (f˘ ar˘ a histerezis) cu panta infinit˘ a la tensiunea de intrare V2 . Cel mai mult se apropie de o caracteristic˘ a ideal˘ a port¸ile din tehnologia CMOS. ˆIn practic˘ a optimizarea simultan˘ a a tuturor parametrilor este contradictorie. M˘ arirea excesiv˘ a a lui F I atrage un curent absorbit de valoare mai mare de la surs˘ a determinˆ and deci m˘ arirea lui Pd . Iar dac˘ a sarcinile comandate sunt capacitive, o m˘ arime a acestora poate duce la cre¸sterea lui τ HL ¸si τLH ˆın semnalul de ie¸sire. Mic¸sorarea lui τp implic˘ a fort¸area regimului de comutat¸ie prin m˘ arirea tensiunii VCC sau VDD sau prin mic¸sorarea rezistent¸ei circuitului, ceea ce duce la curent¸i mari absorbit¸i de la surs˘ a ¸si ˆın consecint¸a˘ o cre¸stere a lui P d . Prin opozit¸ie, mic¸sorarea lui Pd prin sc˘ aderea curent¸ilor, ar duce la m˘ arirea lui τ p . Cre¸sterea factorului de imunitate la perturbat¸ii ar necesita un salt logic de tensiune cu valoare m˘ arit˘ a ceea ce este posibil prin m˘ arirea tensiunii de alimentare, deci, implicit puterea disipat˘ a Pd cre¸ste foarte mult. Eventual, se poate ment¸ine puterea disipat˘ a ˆın limite nepericuloase, pentru a nu se distruge circuitul prin ˆınc˘ alzire, dac˘ a simultan cu m˘ arirea tensiunii de alimentare s-ar mic¸sora curentul prin m˘ arirea rezistent¸elor dar aceasta ar duce la timpi de tranzit¸ie foarte lungi deci cre¸sterea lui τp . Tendint¸a de optimizare simultan˘ a a tuturor parametrilor ˆıntre anumite limite rezonabile pentru aplicat¸ii eficiente a dus ˆın cadrul unei familii de circuite logice la crearea unei serii standard; parametrii standard au valori cvasioptimale. ˆIn paralel cu seria standard, ˆıntr-o familie de circuite logice, exist˘ a serii speciale care optimizeaz˘ a doar un singur parametru, ceilalt¸i parametrii fiind ment¸inut¸i ˆın limite acceptabile. Astfel, exist˘ a: seria de vitez˘ a ridicat˘ a, seria de putere redus˘ a, seria de vitez˘ a ridicat˘ a ¸si putere redus˘ a, seria cu imunitate sporit˘ a la perturbat¸ii. Toate aceste serii ale unei familii de circuite logice putˆ and fi ˆın variante pentru aplicat¸ii civile cu gama de tempratur˘ a admisibil˘ a 0◦ C ÷ 70◦ C cˆ at ¸si ˆın variant˘ a militar˘ a cu gama de temperatur˘ a admisibil˘ a −55◦ C ÷ 125◦ C. Port¸ile logice pot exista fie ca entit˘ a¸ti separate sub forma unor circuite integrate discrete, care sunt utilizate ˆın realizarea unor sisteme mai complexe, fie pot exista ˆın interiorul unui sistem complex realizat ˆın totalitate integrat. Pentru port¸ile logice realizate discret, care se interconecteaz˘ a ˆın exterior cu alte port¸i, respectarea parametrilor este foarte strict˘ a. ˆIn schimb, pentru port¸ile logice dintr-un sistem integrat unde interconexiunile ˆıntre port¸i se fac ˆın siliciu, valorile parametrilor pot fi mai put¸in restrictive.

˘ 1.4. PORT ¸ I LOGICE ˆ IN TEHNOLOGIA BIPOLARA

52

1.4

PORT ¸ I LOGICE ˆIN TEHNOLOGIA ˘ BIPOLARA

Elementele componente de circuit, pe care se bazeaz˘ a tehnologia bipolar˘ a, sunt jonct¸iunea semiconductoare (dioda) ¸si tranzistoarele bipolare npn ¸si pnp. Tehnologia de integrare bipolar˘ a este caracterizat˘ a prin vitez˘ a ridicat˘ a, densitate de integrare relativ redus˘ a ¸si consum de putere ridicat. Cu aceste caracterisitici tehnologia bipolar˘ a, de la introducerea ei, la ˆınceputul anilor 1960, a fost tehnologia cea mai uzual˘ a pˆ an˘ a la ˆınceputul anilor 1990. ˆIncepˆ and cu mijlocul anilor 1980 au fost realizate progrese ˆın tehnologia MOS ¸si mai ales ˆın tehnologia CMOS ceea ce a dus ca ˆın anii 1990 tehnologia bipolar˘ a s˘ a fie substituit˘ a cu cea CMOS. De¸si, acum implement˘ arile ˆın tehnologia bipolar˘ a sunt reduse, totu¸si, minime cuno¸stint¸e despre aceast˘ a tehnologie sunt necesare pentru aplicat¸ii ocazionale cum ar fi operat¸ii de depanare a unor sisteme existente ¸si pentru aspecte de interfat¸are TTL/CMOS. Pentru ˆınsu¸sirea acestor minime cuno¸stint¸e se vor prezenta ˆın continuare urm˘ atoarele trei subiecte: inversorul bipolar, port¸i TTL ¸si port¸i pentru magistrale.

1.4.1

Inversorul bipolar

Circuitul inversor este elementul de baz˘ a ˆın structura oric˘ arui circuit logic dintr-o familie de port¸i logice. Structura de inversor se poate identifica ˆın structura oric˘ arei port¸i ¸si oricare poart˘ a logic˘ a se obt¸ine dintr-un circuit inversor prin completare. Se vor studia dou˘ a aspecte ale circuitului inversor: caracteristica static˘ a de transfer ¸si timpul de comutat¸ie. Structura ¸si caracteristica de transfer. Circuitul inversor, Figura 1.19-b, este de fapt un etaj amplificator cu saturat¸ie, cu sarcina ˆın colector, ˆın conexiunea emitor comun. Layout-ul pentru implementarea ˆın siliciu a inversorului este prezentat ˆın Figura 1.19-c. Tranzistorul npn este realizat, prin difuzie, ˆıntr-o insul˘ a de tip n ˆın stratul epitaxial. La fel ¸si rezistent¸ele de baz˘ a R B ¸si de sarcin˘ a RC sunt realizate prin difuzie ˆın insule de tip n din stratul epitaxial. Caracteristica static˘ a de transfer VO = f (VI ) (f˘ ar˘ a ˆınc˘ arcare la ie¸sire, ˆın gol) este trasat˘ a prin linii drepte avˆ and ca puncte fixe tensiunea de alimentare V CC ¸si cele dou˘ a puncte de frˆ angere P F 1 ¸si P F 2, Figura 1.20. Punctele de frˆ angere P F 1 ¸si P F 2 se situeaz˘ a tocmai la limita de trecere a punctului de funct¸ionare al tranzistorului de la regimul blocat la regimul activ (PF1), respectiv de la activ la regimul de saturat¸ie (PF2). ˆIn intervalul de variat¸ie a tensiunii de intrare V I = [0, VIL ) tranzistorul este blocat, tensiunea de ie¸sire este constant˘ a VO = VOH = VCC , iar caracteristica VO = f (VI ) este o dreapt˘ a orizontal˘ a. ˆIn punctul de frˆ angere P F 1 tensiunea de intrare devine egal˘ a cu V BE(on) , tranzistorul intr˘ a ˆın conduct¸ie, iar caracteristica de transfer se aproximeaz˘ a ˆın continuare cu o dreapt˘ a ce une¸ste punctele P F 1 (VIL , VCC ), P F 2 VIH , VCE(sat) . ˆIn punctul de frˆ angere P F 2 este ˆınceputul regimului de saturat¸ie pentru care tensiunea de intrare are valoarea: VI = VIH = VBE(sat) +

VCC − VCE(sat) 1 × RB × β RC

53

CAPITOLUL 1. PORT ¸ I LOGICE VCC=5V RC 1kΩ

A

Vin

F

a)

Vin p+

10kΩ B

b)

10µm

RB

Vout

C

RB

E

β F =70 VBE(on) =0,7V VBE(sat)=0,8V VCE(sat)=0,1V

10µm 5 µm

n Vout p E p+

c)

B

VCC

C

substrat p n (Emitor) p (Baza) n+ strat ingropat

RC

p+

n epitaxie (Colector)

p n p+

Figura 1.19 Circuitul inversor: a) simbol; b) structura circuitului; c) layout-ul ˆın siliciu (substrat de tip p). O cre¸stere ˆın continuare a tensiunii de intrare V I peste VIH produce o mic¸sorare nesemnificativ˘ a a tensiunii de ie¸sire, caracteristica de transfer este o dreapt˘ a orizontal˘ a VOL = VCE(sat) . Panta caracteristicii VO = f (VI ) prezint˘ a numai dou˘ a valori. Valoarea zero cˆ and O inversorul este ˆın starea H sau L ¸si o valoare ridicat˘ a A V = ∆V ˆ ın zona de trecere ∆VI ˆıntre cele dou˘ a st˘ ari. ˆIn reprezentarea idealizat˘ a din figur˘ a punctele de frˆ angere apar la intersect¸ia acestor drepte, dar ˆıntr-o reprezentare exact˘ a aceste puncte s-ar afla pe o curb˘ a, care ar racorda aceste drepte, unde panta ar fi unitar˘ a |A V | = 1. Aceast˘ a caracteristic˘ a exact˘ a se plaseaz˘ a ˆın interiorul benzii punctate din Figura 1.14-b. Punctul de funct¸ionare al inversorului trebuie s˘ a fie doar ˆın cele dou˘ a zone: blocat sau saturat. Trecerea ˆıntre cele dou˘ a zone cˆ and tranzistorul este ˆın regimul activ, specific funct¸ion˘ arii ˆın circuitele analogice, trebuie s˘ a se realizeze ˆıntr-un timp cˆ at mai scurt; de fapt, aceast˘ a trecere ar corespunde, pe Figura 1.13, intervalului interzis de tensiuni. Timpii de comutat¸ie ai inversorului. Timpii de comutat¸ie ai tranzistorului

˘ 1.4. PORT ¸ I LOGICE ˆ IN TEHNOLOGIA BIPOLARA

54 VO[V] Blocat Activ VCC=V OH 5 4 3 2 1

VOL =V CE(sat)

Saturatie

VI

PF1 Av=

VOH = V CC

∆ Vo ∆ VI

PF1

VIH = V BE(sat) +

1 VCC −VCE(sat) × ×R B β RC VCE(sat)

PF2 1 VIH 2

VO

3

4

VI [V]

VIH VIL = V BE(on)

PF2 VOL= V CE(sat)

5

VIL =V BE(on)

Figura 1.20 Caracteristica de transfer, VO = f (VI ) pentru un inversor bipolar la funct¸ionarea ˆın gol din blocat ˆın saturat¸ie ¸si din saturat¸ie ˆın blocat nu sunt egali, ceea ce determin˘ a valori diferite pentru τpHL , τpLH (τpLH > τpHL ). ˆIn raport cu timpul de comutat¸ie direct˘ a, din regimul blocat ˆınspre saturat¸ie, timpul de comutat¸ie invers˘ a, din regimul de saturat¸ie ˆınspre blocare, este mai mare. Aceast˘ a diferent¸a˘ apare datorit˘ a procesului de eliminare a sarcinii stocate ˆın surplus ˆın baz˘ a, cˆ and tranzistorul este ˆın saturat¸ie, fat¸a˘ de sarcina din baz˘ a cˆ and tranzistorul este ˆın regim activ direct. ˆIn regim de saturat¸ie se injecteaz˘ a ˆın baz˘ a purt˘ atori majoritari atˆ at din emitor cˆ at ¸si, ˆın surplus, din colector deoarece ambele jonct¸iuni sunt polarizate ˆın sens direct. Eliminarea sarcinii ˆın surplus din baz˘ a necesit˘ a un timp τ s (timp de saturat¸ie). Deci timpul de comutat¸ie invers˘ a, la un tranzistor ˆın saturat¸ie, fat¸a˘ de timpul de comutat¸ie invers˘ a al unui tranzistor ˆın regim activ direct este mai mare cu valoarea τ s , vezi Figura 1.21-a. Figura reprezint˘ a variat¸ia tensiunii de comand˘ a v I a inversorului (o variat¸ie dreptunghiular˘ a) ¸si variat¸ia tensiunii v O la ie¸sirea inversorului. ˆIn aceast˘ a figur˘ a timpii respectivi au urm˘ aroarele semnificat¸ii: - τd = t1 − t0 , timpul de ˆıntˆ arziere. Este timpul necesar pentru cre¸sterea tensiunii aplicate pe jonct¸iunea emitoare ¸si colectoare. Deoarece aceste jonct¸iuni sunt zone s˘ ar˘ acite de purt˘ atori acestea se comport˘ a ca ni¸ste condensatoare, deci este timpul de ˆınc˘ arcare al acestor condensatoare; - τf = t2 − t1 , timpul de coborˆ are (fall time). Este determinat, mai ales, de timpul de tranzit al purt˘ atorilor prin baz˘ a; - τs = t4 − t3 , timpul de saturat¸ie. Timpul necesar pentru eliminarea sarcinii ˆın surplus stocat˘ a ˆın baz˘ a; - τr = t5 −t4 , timpul de cre¸stere. Similar cu τf dar acum trebuie anulat¸i purt˘ atorii din baz˘ a pentru c˘ a tranzistorul se comand˘ a spre blocare. Mic¸sorarea lui τpLH se poate realiza ˆın dou˘ a modalit˘ a¸ti. Prima, const˘ a ˆın fort¸area comenzii pe baza tranzistorului prin suprapunerea unei componente derivative de curent peste curentul de baz˘ a de comand˘ a normal. Condensatorul C conectat ˆın paralel cu rezistent¸a de baz˘ a RB , Figura 1.21-b, formeaz˘ a cu rezistent¸a echivalent˘ a

55

CAPITOLUL 1. PORT ¸ I LOGICE

V CC

"1" vI

vO

"1"

t1

τf

50%

C

τs

τr t5

vO

RB

vI

t4

t2

"0"

RC

t3

"0" t 0 τ d

a)

0,0 13

C

RC

DS

UBC = U DS DS UCE

t1

t3

UCE

E

cu DS

E fara DS

B

C

SiO 2 n+ p

t

n+ Baza n

Colector

τs e)

B E

B

UBE E

metalizare

t

C

C

d)

24 15

vI

V CC

vI

0,8 4,4

c)

b)

B

0,7 4,2

cu : VOH (t 1) = VOH (t 5) = 5V R C = 1KΩ

τ pLH

τ pHL

τd τf τs τr

Valori comparative [ns] Tranzistorul: saturat cu DS

DS

f)

Figura 1.21 Inversorul bipolar: a) definirea timpilor care caracterizeaz˘ a procesul de comutat¸ie; b) inversor cu fort¸area comenzii prin producerea unei componente derivative ˆın curentul de baz˘ a; c) valori pentru parametrii de timp la un tranzistor normal ¸si la un tranzistor Schottky; d,e,f) realizarea unei structuri de tranzistor Schottky.

˘ 1.4. PORT ¸ I LOGICE ˆ IN TEHNOLOGIA BIPOLARA

56

baz˘ a emitor RBE a tranzistorului un circuit derivativ, deci genereaz˘ a componenta de fort¸are (derivativ˘ a) ˆın curentul de comand˘ a din baz˘ a. A doua modalitate se realizeaz˘ a prin utilizarea unui tranzistor Schottky, care se obt¸ine prin conectarea ˆıntre baz˘ a ¸si colectorul unui tranzistor normal a unei jonct¸iuni metal-semiconductor, adic˘ a o diod˘ a Schottky, DS, Figura 1.21-d. Implementarea unei astfel de diode ˆın acel loc se realizeaz˘ a, ˆın procesul de fabricare al tranzistorului, extrem de simplu ¸si practic f˘ ar˘ a cost, prin extinderea metaliz˘ arii (Al – aluminiu sau Pt – platin˘ a) de contact a terminalului bazei B ¸si peste zona semiconductoare de tip n a colectorului. Extinderea metaliz˘ arii, zona ˆıncercuit˘ a din Figura 1.21-f, formeaz˘ a la interfat¸a metal-colector o diod˘ a Schottky Aln sau P tn. Tensiunea la polarizare direct˘ a a unei diode Schottky este VDS = 0, 4V . Conectˆ and o astfel de diod˘ a ˆıntre baz˘ a ¸si colector (deci ˆın paralel cu jonct¸iunea colectoare) tensiunea pe jonct¸iunea colectoare nu va putea coborˆı cu mai mult de 0, 4V sub tensiunea bazei tranzistorului, rezult˘ a c˘ a tranzistorul nu mai poate intra ˆın saturat¸ie, nu se mai injecteaz˘ a din colector sarcin˘ a ˆın surplus (fat¸a˘ de regimul nesaturat) ˆın baz˘ a, deci τ s devine zero. Cu valorile tensiunilor din Figura 1.19-b se pot face urm˘ atoarele calcule: - f˘ ar˘ a diod˘ a Schottky: VBC = VBE(sat) − VCE(sat) = 0, 8V − 0, 1V = 0, 7V , tensiune ce comand˘ a jonct¸iunea baz˘ a colector ˆın conduct¸ie, tranzistorul este ˆın saturat¸ie; - cu diod˘ a Schottky VCE = VBE(sat) − VDS = 0, 8V − 0, 4V = 0, 4V tranzistorul nu este ˆın saturat¸ie (tensiunea de deschidere a unei jonct¸iuni este de ∼ 0, 7V ). Valori pentru timpii de comutat¸ie, definit¸i mai sus, sunt prezentate ˆın tabelul din Figura 1.21-c, atˆ at pentru un tranzistor normal cˆ at ¸si pentru un tranzistor Schottky. ˆIn seriile de port¸i logice din tehnologia bipolar˘ a, cu except¸ia seriei standard init¸ial˘ a, toate tranzistoarele de comutat¸ie sunt tranzistoare Schottky – ceea ce este indicat prin litera S ˆın codul seriei respective.

1.4.2

Port¸i logice TTL

Poarta NAND cu dou˘ a intr˘ ari. Seria standard 74XX de port¸i logice din familia de circuite logice TTL (Transitor-Transitor-Logic) a fost introdus˘ a de firma Sylvania ˆın 1963, dezvoltat˘ a ¸si comercializat˘ a de Texas Instruments. De fapt, la poarta NAND cu dou˘ a intr˘ ari integrat˘ a s-a ajuns pornind de la structura de poart˘ a NAND cu dou˘ a intr˘ ari DTL (Diode-Transistor-Logic) care era deja realizat˘ a cu componente discrete, Figura 1.22-a. Poarta DTL este compus˘ a dintr-un circuit MIN cu diode, ca ˆın Figura 1.11-a, care realizeaz˘ a operatorul AND ˆın logic˘ a pozitiv˘ a, ¸si la ie¸sirea c˘ aruia s-a ata¸sat un inversor realizat cu trazistorul T2. Diodele D3 ¸si D4 sunt introduse ˆın divizorul format de R1 ¸si R2 , conectat ˆıntre +5V ¸si −2V , pentru a produce o coborˆ are a nivelului de tensiune pe baza tranzistorului T2, asigurˆ and o blocare sigur˘ a. Structura DTL a evoluat ˆın structura TTL prin integrarea diodelor D1, D2, D3 sub forma unui tranzistor multiemitor T1, Figura 1.22-b. La aceast˘ a structur˘ a s-a ad˘ augat un etaj de ie¸sire (totem-pole) compus din tranzistoarele T3 ¸si T4, Figura 1.22-c, obt¸inˆ andu-se structura standard de poart˘ a NAND cu dou˘ a intr˘ ari (7400). Aceast˘ a structur˘ a se compune din circuitul AND de intrare, circuitul defazor, realizat pe tranzistorul T2, pentru comanda tranzistoarelor T3 ¸si T4 din etajul de ie¸sire.

57

CAPITOLUL 1. PORT ¸ I LOGICE VCC = +5V R1

VCC = +5V R1

R3 4ΚΩ

2ΚΩ

D1

A

D3

B

D2

A

F T2

D4

T1

R2 5ΚΩ

VCC = +5V R1 4K

R3

D4

B

F T2

D4

a) VO 5

D5

F

T2

T3

R2 1K

Circuit AND

b)

T4 D

T1

R2

V BB = − 2V

R4 130Ω

R3 1,6K

Defazor

c)

Etaj de iesire

[V]

4

V OH 3

PF1 (0,6V;3,6V) T2 intra in conductie

V BE(on) = 0,7V V BE(sat) = 0,8V V CE(sat) = 0,1V

PF2 (1,3V;2,5V) T3 intra in conductie

2

interval

T1

T2

T3

T4

VOH PF1

saturat

blocat

blocat

saturat

PF1 PF2

saturat

conduce

blocat

conduce

PF2 PF3

1 V OL

PF3 (1,5V;0,1V) T3 intra in saturatie 1 V IH 2

d)

3

4

VI

PF3

Toate tranzistoarele conduc in regim activ normal activ invers

saturat

saturat

blocat

5 [V]

e)

Figura 1.22 Poarta TTL standard: a) structura pot¸ii DTL; b) structura init¸ial˘ a a port¸ii TTL; c) structura (standard) pentru poarta 7400-NAND2; d) caracteristica static˘ a de transfer ¸si regimurile de funct¸ionare ale transiztoarelor pentru poarta 7400. Diodele D4 ¸si D5 pe intrare sunt pentru protect¸ia ˆımpotriva supratensiunilor negative care pot apare la intrare. Existent¸a acestor diode va produce scurtcircuitarea la mas˘ a a oric˘ arei tensiuni negative fat¸a˘ de masa aplicat˘ a pe intrare ¸si care ˆın valoare absolut˘ a este mai mare decˆ at tensiunea de deschidere a diodei (≈ 0, 7V ). Caracteristica static˘ a de transfer a port¸ii se poate trasa prin segmente de dreapt˘ a, la fel ca cea a inversorului din Figura 1.20, calculˆ and punctele de frˆ angere. Calculul acestor puncte de frˆ angere este realizat ˆın [Toac¸se 0 96]. Cu intrarea B legat˘ a la VCC = 5V iar tensiunea VA pe intrarea A parcurge intervalul [0, VCC ] se obt¸in urm˘ atoarele puncte de frˆ angere: - cˆ and VA = 0. T1 conduce, T2 este blocat, T4 conduce iar ie¸sirea este ˆın starea H, VOH = 3, 6V ; - P F1 (0, 6V ; 3, 6V ) cˆ and VA = 0, 6V . T1 conduce iar T2 intr˘ a ˆın conduct¸ie, T4 conduce;

58

˘ 1.4. PORT ¸ I LOGICE ˆ IN TEHNOLOGIA BIPOLARA

- P F2 (1, 3V ; 2, 5V ) cˆ and VA = 1, 3V , T1 ¸si T2 conduc iar T3 intr˘ a ˆın conduct¸ie, T4 conduce; - P F3 (1, 5V ; 0, 1V ) cˆ and VA = 1, 5V . T1 conduce ˆın regim activ inversat, T2 ¸si T3 conduc ˆın saturat¸ie iar T4 este blocat, ie¸sirea este ˆın nivel L. ˆIn intervalul dintre P F2 ¸si P F3 conduc toate tranzistoarele, sursa este conectat˘ a la mas˘ a prin rezistent¸ele circuitului, puterea disipat˘ a corespunde componentei dinamice de scurtcircuit. Se recomand˘ a ca parcurgerea acestui segment de caracteristic˘ a s˘ a se realizeze ˆıntr-un interval de timp cˆ at mai scurt ceea ce impune ca fronturile tensiunii de intrare VI s˘ a fie cˆ at mai abrupte. Cˆ and T2 ¸si T3 conduc ˆın saturat¸ie, tensiunea de comand˘ a pe T4 este V BET 4 = VBE(sat)T 3 + VCE(sat)T 2 − VCE(sat)T 3 = VBE(sat)T 3 = 0, 8V , ceea ce ar determina intrarea ˆın conduct¸ie ¸si a acestui tranzistor. Pentru a ˆımpiedica conduct¸ia lui T4, ˆın emitorul s˘ au, se introduce dioda D ¸si astfel tensiunea de 0, 8V nu este suficient˘ a s˘ a deschid˘ a cele dou˘ a jonct¸iuni ˆınseriate (jonct¸iunea BE(T4) + dioda D). ˆIn starea H, VOH = 3, 6V , poarta genereaz˘ a un curent la ie¸sire, de la sursa V CC prin R3 ¸si T4, pentru intr˘ arile port¸ilor comandate, iar ˆın starea L, V OL ≈ 0, 1V , poarta absoarbe la mas˘ a, prin tranzistorul T3, curent¸ii de pe intr˘ arile port¸ilor comandate. Seriei standard 74XX i s-au adus ˆımbun˘ at˘ a¸tiri, pe baza progreselor din domeniul tehnologic de integrare, obt¸inˆ andu-se serii cu performant¸e mai ridicate. Prima nou˘ a serie obt¸inut˘ a, dup˘ a cea standard, a fost seria Schottky 74SXX care utilizeaz˘ a pentru comutat¸ie tranzistoare Schottky. Apoi, combinˆ and tranzistoarele Schottky simultan cu cre¸sterea rezistent¸elor, pentru mic¸sorarea curent¸ilor, s-a obt¸inut seria TTL Schottky de putere redus˘ a (Low-Power Schottky) notat˘ a prin 74LSXX. Urm˘ atoarea serie a fost Schottky ˆımbun˘ at˘ a¸tit˘ a (Advanced Schottky TTL) notat˘ a prin 74ASXX, care ofer˘ a vitez˘ a dubl˘ a fat¸a˘ de 74SXX, dar la aceea¸si putere disipat˘ a. Seria ˆımbun˘ at˘ a¸tit˘ a a fost perfect¸ionat˘ a ˆın contiuare pentru a se reduce puterea disipat˘ a ¸si s-a obt¸inut seria Schottky ˆımbun˘ at˘ a¸tit˘ a de putere redus˘ a (Advanced-Low-Power-Schottky TTL) notat˘ a 74ALSXX. Cu performant¸e de mediere ˆıntre seriile AS ¸si ALS s-a realizat seria rapid˘ a (Fast TTL) notat˘ a 74FXX ¸si care este probabil cea mai popular˘ a din familia TTL, pentru cerint¸ele de vitez˘ a ˆın noile sisteme, la ora actual˘ a. Sufixul XX din notat¸ia acestor serii este un num˘ ar zecimal ¸si constituie codul port¸ii respective, o poart˘ a cu acela¸si XX, indiferent de serie, realizeaz˘ a aceea¸si funct¸ie logic˘ a. De exemplu, poarta logic˘ a NAND cu dou˘ a intr˘ ari (NAND2) are urm˘ atoarele referiri ˆın funct¸ie de seria ˆın care este implementat˘ a: 7400 (seria standard), 74S00, 74LS00, 74ALS00,74F00. Parametrii port¸ilor din seriile familiei TTL sunt prezentat¸i ˆın Tabelul 1.9. O alt˘ a famillie de circuite logice ˆın tehnologia bipolar˘ a, ¸si care se prezint˘ a la fel sub form˘ a de circuite integrate discrete, cont¸inˆ and diferite tipuri de port¸i este ECL (Emitter-Coupled-Logic). Circuitele ECL sunt caracterizate prin viteze foarte ridicate ajungˆ and pˆ an˘ a la 0, 5ns pentru timpul de propagare. Viteza sporit˘ a la comutat¸ie se obt¸ine tot prin evitarea regimului de saturat¸ie al tranzistorului dar nu prin tranzistor Schottky ci prin comutarea de curent ˆıntre dou˘ a canale. Structura de baz˘ a este cea de amplificator diferent¸ial cu un generator de curent ˆın emitor (de unde ¸si denumirea de cuplaj prin emitor) iar curentul este comutat ˆıntre cele dou˘ a ramuri ale amplificatorului diferent¸ial [Toac¸se 1996]. ˆIn familia ECL exist˘ a dou˘ a serii: 10K ¸si 100K, seria 100K avˆ and performant¸e ˆım-

59

CAPITOLUL 1. PORT ¸ I LOGICE

Tabelul 1.9 Parametrii seriilor din familia TTL

Simbol parametru τp [ns] (NAND2) Pd [mW] (NAND2) PDP [p] (NAND2) VILmax [V] VOLmax [V] VIHmin [V] VOHmin [V] IILmax [mA] IOLmax [mA] IIHmax [µ A] IOHmax [µ A] τpLHmax [ns] τpHLmax [ns]

74 10 10 100 0.8 0.4 2.0 2.8 -1.6 16 40 -800 22 15

74S 3 19 57 0.8 0.5 2.0 2.7 -2.0 20 50 -1000 4.5 5

Seriile familiei TTL 74LS 74AS 74ALS 9 1.7 4 2 8 1.2 18 13.6 4.8 0.8 0.8 0.8 0.5 0.5 0.5 2.0 2.0 2.0 2.7 2.7 2.7 -0.4 -0.5 -0.2 8 20 8 20 20 20 -400 -2000 -400 15 4.5 11 15 4 8

74F 3 4 12 0.8 0.5 2.0 2.7 -0.6 20 20 -1000

bun˘ at˘ a¸tite fat¸a˘ de seria 10K. Iat˘ a valorile cˆ atorva parametrii din seria 100K: tensiunea de alimentare VEE = −4, 5V ; salt de tensiune ˆıntre niveluri ∆V = 0, 8V , τ p = 0, 75ns, Pd = 40mW , P DP = 30. ˆIn aplicat¸ii port¸ile acestei familii nu sunt compatibile cu port¸ile din familia TTL sau CMOS. Port¸ile ECL ˆı¸si g˘ asesc locul ˆın sisteme logice ¸si de interfat¸a˘ de vitez˘ a foarte ridicat˘ a, evident cu un consum mare de putere, cum ar fi supercalculatoarele sau comunicat¸iile de mare vitez˘ a pe cablu sau fibr˘ a optic˘ a (ret¸ele ATM-Asynchronous Transfer Mode, Gigabit Ethernet). Tot o tehnologie bipolar˘ a este cea referit˘ a ca logic˘ a integrat˘ a de inject¸ie, I 2 L (Integrated Injection Logic) care ˆın raport cu tehnologia TTL a permis o anumit˘ a ˆımbun˘ at˘ a¸tire a compromisului vitez˘ a-putere disipat˘ a ¸si a densit˘ a¸tii de integrare pentru circuitele VLSI, dar care ˆın timp, s-ar p˘ area c˘ a, iese din utiliz˘ arile curente. Tehnologii alternative non-silicon sunt cele ˆın arseniur˘ a de galiu,GaAs, sau cele cu jonct¸iuni Josephson. Dispozitivele ˆın GaAs au vitez˘ a de comutat¸ie cam de cinci ori mai ridicat˘ a decˆ at cele care se pot obt¸ine ˆın Si, sunt mai rezistente la radiat¸ii dar au un proces de fabricat¸ie mai complicat, ˆın consecint¸a˘ sunt mai scumpe (mobilitatea electronului ˆın siliciu poate ajunge pˆ an˘ a la µ n = 1500cm2 /V · s pe cˆ and ˆın GaAs 2 este µn = 8500cm /V · s). Caracteristici tipice pentru GaAs sunt τp < 200ps, Pd = 0, 2mW/poart˘ a; exist˘ a implement˘ ari de circuite integrate ˆın GaAs dar nu exist˘ a serii de port¸i sub form˘ a de circuite integrate discrete. Dispozitivele Josephson ofer˘ a τp = 1 ÷ 10ps,Pd = 1 ÷ 10mW/poart˘ a dar funct¸ioneaz˘ a la temperaturi foarte sc˘ azute. Oricum, recentele dezvolt˘ ari de materiale semiconductoare la temperaturi obi¸snuite promit utilizarea acestor dispozitive ˆın viitor.

1.4.3

Port¸i pentru magistrale

Realizarea conect˘ arii, pentru comunicare, fiecare cu fiecare (punct-la-punct) a n leg˘ aturi distincte ˆıntre aceste puncte. Evitarea puncte dintr-un sistem, necesit˘ a n(n−1) 2 acestor multor leg˘ aturi distincte se poate prin realizarea unei magistrale. O magistral˘ a este o cale de transfer a informat¸iei/semnalelor sub form˘ a de cuvˆ ant. Rezult˘ a c˘ a prima

˘ 1.4. PORT ¸ I LOGICE ˆ IN TEHNOLOGIA BIPOLARA

60

caracteristic˘ a a magistralei este l˘ a¸timea sa egal˘ a cu lungimea cuvˆ antului, deci pentru transferul paralel a cuvˆ antului de n bit¸i magistrala este compus˘ a din n conductoare. ˆIn general lungimile uzuale de cuvˆ ant sunt de : 8 bit¸i-1byte, 16 bit¸i-semicuvˆ ant, 32 bit¸i-cuvˆ ant, 64 bit¸i-dublu cuvˆ ant. La o magistral˘ a de n bit¸i se conecteaz˘ a toate elementele unui sistem atˆ at cele care sunt emit¸a˘toare (talker) cˆ at ¸si cele care sunt receptoare (listener); uneori un element poate avea funct¸ionare atˆ at de emit¸a˘tor cˆ at ¸si de receptor, dar nu simultan. Regula de funct¸ionare ˆın magistral˘ a este: la un moment dat pe magistral˘ a poate exista cel mult un singur emit¸a˘tor activ, dar nu este limitat, teoretic, num˘ arul receptorilor. Aceast˘ a regul˘ a impune: dac˘ a sunt mai multe emit¸a˘toare legate la magistral˘ a cˆ and unul dintre acestea este activ (ˆınscrie informat¸ie pe magistral˘ a) celelalte s˘ a fie inactive, adic˘ a din punct de vedere electric s˘ a fie deconectate. Pentru o astfel de funct¸ionare port¸ile de pe ie¸sirea emit¸a˘torului trebuie s˘ a poat˘ a fi conectate sau deconectate la liniile magistralei dup˘ a cum emit¸a˘torul este activ sau inactiv. Pe o linie de magistral˘ a, la care este conectat˘ a ie¸sirea port¸ii emit¸a˘torului activ, pentru ie¸sirile port¸ilor emit¸a˘toarelor inactive ¸si intr˘ arile port¸ilor receptoarelor, conectate la aceia¸si linie, trebuie realizate specificat¸iile electrice care formeaz˘ a suportul nivelurilor logice de 0 ¸si 1. Pentru realizarea acestor specificat¸ii poarta normal˘ a este modificat˘ a ˆın structura sa obt¸inˆ andu-se poarta cu colectorul ˆın gol sau poarta TSL. V CC

Linii de magistrala

Linie de magistrala

V CC Poarta 1

Poarta 2

R4 130Ω T4

R4 130Ω T4

D T3

L H

Traseu de scurtcircuit

a)

D T3

R

Poarta cu colectorul in gol Poarta 1 Poarta 2 L L L H (scurt) H L (scurt) H

H

T3

C Simbol

b)

c)

Figura 1.23 Poarta cu colectorul ˆın gol: a) traseul de scurtcircuitare la conectarea ˆın comun a ie¸sirilor port¸ilor TTL pentru condit¸iile logice specificate ˆın tabelul (b); c) structura etajului de ie¸sire la poarta cu colectorul ˆın gol. Poarta cu colectorul ˆın gol. Prin conectarea ie¸sirilor a dou˘ a sau mai multor port¸i TTL, care au etajul de ie¸sire ˆın contratimp (totem pole), la aceea¸si linie de magistral˘ a, Figura 1.23-a, ¸si dac˘ a dou˘ a sau mai multe dintre aceste port¸i au la ie¸sire st˘ arile logice opuse atunci sursa VCC va fi scurtcircuitat˘ a la mas˘ a pe un traseu format din T4 ¸si T3 de la port¸i diferite. Pentru eliminarea posibilit˘ a¸tii de aparit¸ie a traseului

61

CAPITOLUL 1. PORT ¸ I LOGICE

de scurtcircuit, la conectarea ˆımpreun˘ a a ie¸sirilor de la mai multe port¸i, este necesar a se modifica structura etajului de ie¸sire. ˆIn acest sens, din etajul de ie¸sire se elimin˘ a repetorul pe emitor T4 r˘ amˆ anˆ and numai tranzistorul T3 al c˘ arui colector, la ie¸sire, este ˆın gol obt¸inˆ andu-se poarta denumit˘ a cu colectorul ˆın gol, Figura 1.23-c. Colectorul ˆın gol al tuturor port¸ilor se leag˘ a ˆımpreun˘ a (cableaz˘ a),Figura 1.24-a ¸si apoi se conecteaz˘ a printr-o rezistent¸a˘ comun˘ a la sursa de alimentare. Potent¸ialul pe colectorul comun, linia de magistral˘ a, va fi ˆın starea H numai cˆ and toate port¸ile au ie¸sirea ˆın stare H ¸si va fi ˆın stare L cˆ and cel put¸in una din port¸i are ie¸sirea ˆın starea L. Aceast˘ a conexiune (cablare), ˆın convent¸ia de logic˘ a pozitiv˘ a, realizeaz˘ a funct¸ia SI, de unde ¸si denumirea de SI-cablat (wired AND), iar ˆın logic˘ a negativ˘ a funct¸ia SAUcablat. Se poate obt¸ine ¸si ˆın logica pozitiv˘ a funct¸ia SAU-cablat iar ˆın logic˘ a negativ˘ a ,, SI-cablat dac˘ a ˆın etajul de ie¸sire nu se elimin˘ a tranzistorul care “trage ˆın sus ie¸sirea ,, la nivelul H (pull-up transistor) ci se elimin˘ a tranzistorul care “trage ˆın jos ie¸sirea la nivelul L (pull-down transistor), ca ˆın cazul port¸ilor din familia ECL. V CC

Linie de R magistrala

Poarta 1 T3

VI

VR

VO V CC +

4K

V CC V CC −

R1

In starea V L In starea H V V RH

V OH min

T1

MH

V IH min

Poarta 1

V RL

Poarta N Poarta m T3

SI cablat

4K

R1

V IL max

ML V OL max

a)

b)

Figura 1.24 Explicativ˘ a pentru calculul rezistent¸ei comune R: a) cablarea port¸ilor cu colectorul ˆın gol ˆıntr-o conexiune SI-cablat; b) reprezentarea c˘ aderilor de tensiune pe rezistent¸a comun˘ a pentru starea H ¸si L. Calculul rezistent¸ei comune R, din colector, Figura 1.24, se face pentru asigurarea nivelurilor logice de tensiune garantate la ie¸sire ¸si a nivelurilor de tensiune permise la intrare, cu respectarea marginilor de zgomot M H , ML ˆın condit¸iile de variat¸ie ale tensiunii de alimentare VCC ± ∆V . Pentru nivelul H la ie¸sire, care se obt¸ine cˆ and toate cele m port¸i emit¸a˘toare au ie¸sirea ˆın starea H, c˘ aderea de tensiune ∆V RH pe rezistent¸a comun˘ a nu trebuie s˘ a produc˘ a o sc˘ adere a tensiunii de ie¸sire sub valoarea minim˘ a garantat˘ a VOHminim . Rmax (m · IOHmax + N · IIHmax ) ≤ [VCC − ∆V − (VIHmin + MH )]

˘ 1.4. PORT ¸ I LOGICE ˆ IN TEHNOLOGIA BIPOLARA

62 rezult˘ a

Rmax ≤

VCC − ∆V − (VIHmin + MH ) m · IOHmax + N · IIHmax

(1.26-a)

Pentru nivelul L la ie¸sire, care se obt¸ine cˆ and cel put¸in o poart˘ a emit¸a˘toare este ˆın stare L, c˘ aderea de tensiune ∆VRL trebuie s˘ a determine o sc˘ adere a tensiunii de ie¸sire sub valoarea maxim˘ a garantat˘ a VOLmax : Rmin (IOLmax − N · IILmax ) ≥ [VCC + ∆V − (VILmax − ML )] rezult˘ a Rmin ≥

VCC + ∆V − (VILmax − ML ) IOHmax − N · IILmax

(1.26-b)

Deci rezistent¸a comun˘ a de colector se alege ˆın urm˘ atoarele intervale de valori: Rmin ≤ R ≤ Rmax

(1.26-c)

O utilizare curent˘ a a port¸ilor cu colectorul ˆın gol este comanda unor sarcini externe ca de exemplu becuri, LED-uri, bobine, relee sau rezistent¸e. Exemplul 1.12 O utilizare foarte frecvent˘a a conexiunii SI-cablat apare la implementarea sistemului de ˆıntreruperi multiple de la microprocesoare. Microprocesorul (µP ) posed˘ a un singur terminal IRQ (Intrerupt ReQuest, cerere de ˆıntrerupere) pe care este ˆın¸stiint¸at c˘ a unul sau mai multe din periferice solicit˘ a ˆın acel moment o cerere de ˆıntrerupere a toate semnalele IRQi L se prin activarea (ˆın starea L) a semnalului IRQi L . Pentru c˘ aplic˘ a pe acela¸si IRQ, acestea formeaz˘ a un SI-cablat, deci toate ie¸sirile corespunz˘ atoare de la periferice trebuie s˘ a fie cu colectorul ˆın gol, Figura 1.25. Microprocesor ( µ P)

IRQ1_L Periferic 1

IRQ2_L Periferic 2

IRQ IRQ3_L Periferic 3

V CC R IRQ4_L

SI cablat

Periferic 4

Figura 1.25 Sistemul de ˆıntreruperi multiple, pe intrarea de cerere ˆıntrerupere IRQ a unui microprocesor, realizat printr-o conexiune SIcablat a port¸ilor cu colector ˆın gol de la ie¸sirea perifericelor.

Exemplul 1.13 Folosind circuitul 74ALS136, patru port¸i SAU EXCLUSIV cu dou˘a intr˘ ari, cu colectorul ˆın gol, s˘ a se realizeze un detector pentru cuvˆ antul de patru bit¸i: b3 b2 b1 b0 = 1001. Rezultatul operat¸iei de detectare comand˘ a 5 circuite 74ALS136.

63

CAPITOLUL 1. PORT ¸ I LOGICE

Solut¸ie. O poart˘ a SAU EXCLUSIV va avea ie¸sirea ˆın starea H numai cˆ and cele dou˘ a intr˘ ari sunt diferite. ˆIn cazul cˆ and ie¸sirile formeaz˘ a un SI-cablat nivelul de ie¸sire este H (se detecteaz˘ a cuvˆ antul b3 b2 b1 b0 = 1001) numai dac˘ a pe cea de a doua intrare a port¸ilor este aplicat cuvˆ antul 0110, ceea ce rezult˘ a din relat¸ia (b3 ⊕ 0) (b2 ⊕ 1) (b1 ⊕ 1) (b0 ⊕ 0) = 1, Figura 1.26.

V CC R

74ALS136 b3

SI cablat b2 V CC b1 V CC b0

Figura 1.26 Comparator pentru cuvˆ antul b3 b2 b1 b0 = 1001 Se dau urm˘ atoarele date VCCmin = 4, 5V , VCCmax = 5, 5V , MH = 0V , ML = 0V , m = 4, N = 5 iar din Tabelul 1.9 se citesc parametrii: IOLmax = 8mA, IOHmax = 400µA, IIHmax = 20µA, IILmax = 0, 2mA, VOHmin = 2, 7V , VOLmin = 0, 5V . Aplicˆ and relat¸iile 1.26 rezult˘ a pentru rezistent¸a comun˘ a o valoarea ˆın intervalul 714Ω ≤ R ≤ 1050Ω.

Exemplul 1.14 Circuitul 7406 este un hex buffer neinversor cu colectorul ˆın gol ce poate comanda tensiuni de maxim 30V ¸si absorbi un curent IOLmax = 40mA. S˘ a se comande un bec (cu filament) de semnalizare cu Un = 14V , In = 80mA cˆ and este alimentat de la o tensiune V = 20V . V = 20V ON / OFF

14V 80mA

1/3 din 7406

R 75

D

C 0,33 uF

;0,5W

1/3 din 7406

Figura 1.27 Comand˘ a realizat˘ a cu bufferul cu colectorul ˆın gol 7406 Solut¸ie. Deoarece curentul In > IOLmax trebuie s˘ a se conecteze ˆın paralel dou˘ a buffere (1/3 din 7406), Figura 1.27. Pentru preluarea c˘ aderii de tensiune ∆V = 20V − 14V = 6V se

˘ 1.4. PORT ¸ I LOGICE ˆ IN TEHNOLOGIA BIPOLARA

64

6V = 75Ω, puterea disipat˘ a pe aceast˘ a rezistent¸a ˘ este ˆınseriaz˘ a cu becul o rezistent¸a ˘ R = 80mA ∆V 2 = 0, 48W , deci se alege o rezistent ¸ a ˘ de 75Ω care admite o putere disipat˘ a de 0, 5W . R Pentru ca salturile de curent generate la comutarea bufferelor s˘ a nu produc˘ a zgomot, pe linia de alimentare de la surs˘ a (vezi 1.6.2.4), se recomand˘ a conectarea, ca filtru, a unui condensator cu tantal de 0, 33µF pentru fiecare grup de 4 circuite 7406. ˆIn plus, pentru ca inductivitatea filamentului L s˘ a nu produc˘ a supratensiuni periculoase pentru tranzistorul de ie¸sire al bufferului, se recomand˘ a ca ˆın paralel cu becul s˘ a se conecteze o diod˘ a D de protect¸ie di (supresoare, amplitudinea tensiunii electromotoare generat˘ a pe inductivitate, −L dt , va fi limitat˘ a la valoarea tensiunii pe dioda de protect¸ie, ∼ 0, 8V ).

Dezavantajele port¸ilor cu colectorul ˆın gol sunt: - Deoarece impedant¸a de ie¸sire ˆın starea H este mare (R > R T 4 ) rezult˘ a pentru durata fronturilor τLH ¸si a timpilor de propagare, τpLH , la tranzit¸ia din L ˆın H, valori mult mai mari decˆ at la port¸ile normale (care au tranzistorul T4). - Imunitate mai sc˘ azut˘ a la zgomot ¸si necesit˘ a o rezistent¸a˘ comun˘ a R calculat˘ a de fiecare dat˘ a ˆın funct¸ie de circuit, valori uzuale ˆıntre 470Ω ¸si 4, 7KΩ. Poarta cu trei st˘ ari logice, TSL (Three-State-Logic). Structura port¸ii TSL se obt¸ine prin completarea port¸ii normale TTL, Figura 1.22-c, cu dioda D1 ¸si a inversorului I ca ˆın Figura 1.28-a. Cˆ and semnalul de validare a ie¸sirii, OE L (Output Enable) este activ, pe emitorul E2 ¸si pe catodul lui D1 tensiunea aplicat˘ a este H, deci poarta funct¸ioneaz˘ a normal, ie¸sirea este validat˘ a ¸si poate fi ˆın starea L sau H dup˘ a cum este valoarea logic˘ a aplicat˘ a pe intrarea A. Dac˘ a OE L nu este activ, este ˆın nivelul H, atunci tensiunea de valoare L de la ie¸sirea inversorului aplicat˘ a pe: emitorul E2 va duce la blocarea tranzitorului T3 din etajul de ie¸sire ¸si aplicat˘ a pe catodul diodei D1 va comanda conduct¸ia acesteia, deci semnal L pe baza lui T4, ceea V CC =+5V

R1 4K

E1

A

OE_L

a)

T1

R2 1,6K T2

E2

A

A

OE_L

T4

A

F +5V

OE_L

D1 F

D R2 1K

I

A

R4 130

T3

A 0 1 0 1

OE_L F = A 0 0 1 1

1 0 HZ HZ

b)

Figura 1.28 Poarta TSL: a) schem˘ a electric˘ a; b) echivalarea port¸ii TSL cu o poart˘ a normal˘ a avˆ and un contact pe ie¸sire (comandat de semnalul de validare OE L).

65

CAPITOLUL 1. PORT ¸ I LOGICE

ce duce ¸si la blocarea tranzistorului T4 din etajul de ie¸sire; ambele tranzistoare din etajul de ie¸sire sunt blocate. Poarta genereaz˘ a la ie¸sire (numai!) cele dou˘ a st˘ ari logice H sau L cˆ and comanda de validare este activ˘ a OE L = 0, iar cˆ and comanda de validare este inactiv˘ a OE L = 1 poarta are cele dou˘ a tranzistoare T 3, T 4 blocate. Ultima stare, cu T3, T4 blocate, nu este o stare logic˘ a comandat˘ a, prin semnalele logice aplicate pe intr˘ arile port¸ii, aceasta este denumit˘ a stare de ˆınalt˘ a impedant¸˘ a HZ (High Z). ˆIn starea HZ potent¸ialul pe ie¸sirea port¸ii este fixat de potent¸ialul care exist˘ a pe linia de magistral˘ a la care aceast˘ a ie¸sire este conectat˘ a (¸si nu de c˘ atre poarta TSL). Potent¸ialul pe linia de magistral˘ a este fort¸at ˆın 0 sau ˆın 1 de c˘ atre o alt˘ a poart˘ a legat˘ a la aceea linie de magistral˘ a, poart˘ a care este comandat˘ a ˆın starea normal˘ a de funct¸ionare. Dac˘ a pe linia de magistral˘ a nivelul fort¸at este H atunci trazistorul T4 de la o poart˘ a TSL ˆın HZ va genera un curent de maxim ordinul µA, iar dac˘ a nivelul pe linia de magistral˘ a este fort¸at ˆın L atunci tranzistorul T3 de la o poart˘ a TSL ˆın HZ va absorbi un curent maxim de ordinul µA. Cu aceste valori foarte mici ale curent¸ilor absorbit¸i sau generat¸i de poarta TSL ˆın HZ se poate considera c˘ a poarta, electric, este deconectat˘ a de la linia de magistral˘ a. Poarta TSL poate fi echivalat˘ a cu o poart˘ a normal˘ a ˆın a c˘ arei ie¸sire este ˆınseriat un contact care este ˆınchis cˆ and Output Enable este activ, OE L = 0, ¸si este deschis (ˆın starea HZ), cˆ and Output Enable nu este activ, OE L = 1, Figura 1.28-b. D7 D6

MAGISTRALA

D1 D0 R3

R2

R1

Transceiver #1

(READ)

Transceiver #3

Transceiver #2

(WRITE) W1

W3

W2 D0

D7

D0

D7

D0

D7

Figura 1.29 Conectarea la magistral˘ a a trei blocuri bidirect¸ionale de 8 bit¸i prin intermediul circuitelor transceiver Pentru blocurile care sunt conectate la o magistral˘ a ¸si care pot avea o funct¸ionare atˆ at de emit¸a˘tor cˆ at ¸si receptor transferul spre linia de magistral˘ a trebuie s˘ a fie bidirect¸ional. Aceste blocuri bidirect¸ionale trebuie s˘ a posede pe ie¸sire un circuit TRANSCEIVER (TRANSmitter + reCEIVER) care este compus pentru fiecare linie/bit a magistralei dintr-un buffer TSL ¸si o poart˘ a SI conectate ˆın paralel, Figura 1.29. La magistrala din figur˘ a particip˘ a trei elemente fiecare avˆ and pe ie¸sire un transceiver de opt bit¸i. ˆInscrierea pe magistral˘ a (WRITE) se face prin activarea, ˆın starea H, doar a unui singur semnal Wi (i = 1, 2, 3), la bufferele TSL, pentru a asigura accesul doar a unui singur emit¸a˘tor la un moment dat. Citirea de pe magistral˘ a (READ) se activeeaz˘ a prin semnalul Ri (i = 1, 2, 3) la port¸ile AND. La transceiverul

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

66

i semnalele Wi ¸si Ri sunt exclusive adic˘ a nu pot fi active simultan W i · Ri = 0. Avantajele utiliz˘ arii port¸ilor TSL ˆın raport cu utilizarea celor cu colectorul ˆın gol sunt: - Ofer˘ a o impedant¸a˘ mic˘ a la ie¸sire ˆın H ¸si L (ca la poarta normal˘ a); - Nu necesit˘ a rezistent¸a˘ adit¸ional˘ a; - ˆIn starea de HZ ˆıncarc˘ a insignifiant circuitele cu care sunt cuplate la ie¸sire (la un moment dat ˆıncarc˘ a numai circuitul care fort¸eaz˘ a potent¸ialul pe linia de magistral˘ a).

1.5

PORT ¸ I ˆIN TEHNOLOGIA CMOS

Componentele integrate ˆın electronic˘ a, introduse la ˆınceputul anilor 1960, au fost realizate aproape ˆın exclusivitate ˆın tehnologia bipolar˘ a, timp de dou˘ a decenii, pˆ an˘ a la ˆınceputul anilor 1980. ˆIn deceniul al nou˘ alea a fost trecerea de la tehnologia bipolar˘ a la tehnologia unipolar˘ a ˆın special la cea CMOS. ˆIncepˆ and cu anii 1990, aproape ˆın exclusivitate, circuitele integrate produse au fost CMOS. Schimbarea de tehnologie s-a produs cˆ and au ap˘ arut circuitele integrate pe scar˘ a larg˘ a VLSI (Very Large Scale Integration) care cont¸ineau de ordinul sutelor de mii de componente pe cip. La acest ordin de m˘ arime al densit˘ a¸tii de integrare, datorit˘ a puterii disipate ridicate, deci regim termic solicitant pentru circuit (datorit˘ a puterii disipate ridicate), tehnologia bipolar˘ a nu mai era corespunz˘ atoare, iar alternativa a fost tehnologia CMOS. Prin valorile parametrilor: margine de zgomot ridicat˘ a, puterea disipat˘ a ˆın curent continuu aproape neglijabil˘ a, fan-out ridicat, vitez˘ a m˘ arit˘ a ¸si ˆınalt grad de automatizare ˆın proiectare ¸si implementare, tehnologia CMOS s-a impus. Ast˘ azi circuitele CMOS domin˘ a piat¸a circuitelor integrate de la cele simple la cele mai complexe.

1.5.1

Tranzistorul MOSFET

1.5.1.1

Tehnologia de fabricat¸ie a tranzistorului MOS

Tranzistorul MOS sau extinzˆ and la circuitul integrat, fizic, constau din zone difuzate de conductivitate p+ sau n+ incluse ˆıntr-un substrat de siliciu, Si, ˆıntre care exist˘ a anumite conexiuni ¸si la care, din exterior, se aplic˘ a tensiuni de polarizare. Pentru obt¸inerea acestor zone de conductivitate p + sau n+ este necesar ˆıntˆ ai a se realiza ferestre pentru difuzie, ˆın locurile respective, pe placheta de siliciu. Succesiunea etapelor pentru realizarea acestor ferestre este descris˘ a succint ˆın continuare. Dintr-un lingou de Si, sub forma unui cilindru, cu rezistivitatea aproximativ 10Ω · cm se taie discuri (wafer) cu grosimea ˆın jur de 0.6mm, Figura 1.30-a. Aceste discuri ˆın tehnologia actual˘ a pot fi cu un diametru nu cu mult mai mare de 30 cm; pe una din suprafet¸ele waferului se realizeaz˘ a simultan un num˘ ar de zeci sau sute de circuite integrate identice, apoi prin t˘ aiere se obt¸in plachetele cu circuitul integrat. Pe suprafat¸a discului printr-un proces de oxidare se realizeaz˘ a un strat de bioxid de siliciu, SiO2 , referit prin termenul de oxid. Exist˘ a dou˘ a procedee de oxidare: umed˘ a ¸si uscat˘ a. Oxidarea umed˘ a este un rapid proces de oxidare ˆıntr-o atmosfer˘ a

67

CAPITOLUL 1. PORT ¸ I LOGICE

Gravare uscata sau umeda

Substrat−Si

a)

 

         

Fotorezist SiO2 (oxid)

Substrat−Si

b)

d 2 µ m W1 2µm

c) Masca

W2

e)

3µm

4µm

f)

 



 

SiO2

  

Fotorezist

Substrat−Si Ferestre pentru difuzie

SiO2 SiO2

Radiatie ultravioleta, UV



d)

Fotorezist

Substrat−Si

Substrat−Si

Fotorezist

SiO2

  

Substrat−Si

g) W1

W2

Figura 1.30 Etapele realiz˘ arii ferestrelor prin litografie optic˘ a: a) substrat (wafer); b) ansamblu substrat + strat de SiO2 + fotorezist; c,d) ansamblu cu masc˘ a supus radiat¸iei UV; e,f) ˆınl˘ aturarea stratului de SiO 2 prin gravare; g) substrat cu ferestrele (pentru difuzie) realizate ˆın stratul de oxid. care cont¸ine vapori de ap˘ a la temperaturi ˆıntre 900 ◦ ÷ 1000◦ C. Oxidarea uscat˘ a se realizeaz˘ a ˆıntr-o atmosfer˘ a de oxigen pur la o temperatur˘ a ˆın jur de 1200 ◦ C, viteza de cre¸stere a grosimii stratului de oxid este mai mic˘ a decˆ at cea obt¸inut˘ a prin procedeul de oxidare umed˘ a. Dou˘ a caracteristici fizice ale stratului de oxid sunt utilizate ˆın tehnologia circuitelor integrate: rezistivitatea electric˘ a mare, deci poate constitui un strat izolator foarte bun, ¸si impenetrabilitatea impurit˘ a¸tilor, deci poate constitui un strat opac pentru difuzia de impurit˘ a¸ti. Apoi, prin depunerea unei pic˘ aturi de fotorezist peste stratul de oxid ¸si centrifugarea ˆıntregului wafer, se formeaz˘ a un strat de fotorezist cu grosimea aproximativ 1µm, Figura 1.30-b. ˆInc˘ alzit la o temperatur˘ a de aproximativ 100◦ C stratul subt¸ire de fotorezist de pe suprafat¸a˘ se ˆınt˘ are¸ste (devine sticlos). Urmeaz˘ a apoi confect¸ionarea m˘ a¸stilor pentru realizarea ferestrelor de difuzie, care este o etap˘ a foarte complex˘ a ¸si costisitoare. S˘ a presupunem c˘ a se dore¸ste realizarea a dou˘ a ferestre dreptunghiulare cu dimensiunile W 1 = 2µm × 2µm, W2 = 3µm × 4µm pentru care s-a confect¸ionat masca din Figura 1.30-c. Aceast˘ a masc˘ a se aplic˘ a peste stratul de fotorezist ˆınt˘ arit (sticlos) ¸si ˆıntreg ansamblul este expus ˆıntr-un fascicul de radiat¸ie ultraviolet˘ a UV, Figura 1.30-d. Fotorezistul de sub ferestrele m˘ a¸stii (zonele

68

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

transparente) este penetrat de radiat¸ia UV, polimerizeaz˘ a ¸si devine solubil spre deosebire de cel din zonele opace ale m˘ a¸stii unde fotorezistul r˘ amˆ ane ˆınt˘ arit (sticlos). Apoi, prin sp˘ alare cu solvent, este ˆınl˘ aturat fotorezistul solubil din zonele de sub ferestre dar nu ¸si cel ˆınt˘ arit de pe restul suprafet¸elor. Acest tip de fotorezist este numit pozitiv, pentru c˘ a exist˘ a ¸si fotorezist negativ care este init¸ial solubil ¸si devine insolubil dup˘ a ce este penetrat de UV; evident pentru fotorezistul negativ masca trebuie s˘ a aib˘ a transparent¸a˘ ˆın zonele unde nu trebuie realizate ferestre pe substrat. M˘ a¸stile pentru cele dou˘ a tipuri de fotorezist sunt una complementar˘ a celeilalte. ˆIn continuare, ansamblul obt¸inut este supus unui proces de gravare. Prin gravare stratul de oxid de siliciu din zonele care au r˘ amas neacoperite de fotorezist este ˆınl˘ aturat (pˆ an˘ a la suprafat¸a de substrat) obt¸inˆ andu-se fereastra, Figura 1.30-e ¸si 1.30f. Gravarea se poate face cu un solvent chimic (s˘ aruri ale acidului florhidric, HF ), referit˘ a ca gravare umed˘ a, sau printr-o tehnologie cu plasm˘ a, referit˘ a ca gravare uscat˘ a. Apoi, se utilizeaz˘ a un alt tip de solvent care poate ˆınl˘ atura stratul ˆınt˘ arit de fotorezist r˘ amas deasupra stratului de oxid, Figura 1.30-g, terminˆ andu-se astfel aceast˘ a succesiune de operat¸ii de realizare a ferestrelor denumit˘ a fotolitografie sau litografie optic˘ a ce poate fi utilizat˘ a cu rezultate bune pˆ an˘ a la rezolut¸ii de 0, 8µm. R = k · λ/AN ; R–rezolut¸ia, k–un parametru al stratului de fotorezist, λ–lungimea de und˘ a a radiat¸iei utilizate, AN –apertura numeric˘ a (puterea de rezolut¸ie a aparatului utilizat). Tehnologia fotolitografic˘ a permite o reducere cu 30%, la fiecare doi ani, a valorii caracteristicii de proces. Dar, actual, s-a ajuns la valori ale caracteristicii de proces care sunt sub lungimile de und˘ a utilizate ˆın litografia optic˘ a. Pentru dep˘ a¸sirea limit˘ arilor litografiei optice au ap˘ arut alte variante, ca de exemplu litografia EUV (Extreme Ultra-Violet), care utilizeaz˘ a lungimea de und˘ a de 13, 4nm—lungime cu peste un ordin de m˘ arime mai scurt˘ a decˆ at lungimile de und˘ a din litografia optic˘ a— dar cu care se pot obt¸ine linii de trasee de dimensiuni sub 50nm. Fotolitografia se repet˘ a ori de cˆ ate ori este necesar˘ a realizarea unei noi ferestre; evident ferestrele care sunt pentru utiliz˘ ari similare la diferite circuite ¸si sunt pe acela¸si wafer se realizeaz˘ a ˆın paralel (ˆın Figura 1.30 au fost realizate simultan dou˘ a ferestre W1 ¸si W2 ). Pentru rezolut¸ii sub 0, 8µm litografia optic˘ a, recent, este substituit˘ a de litografia cu fascicol de electroni. Avantajele litografiei cu fascicol de electroni ˆın realizarea ferestrelor ˆın raport cu cea optic˘ a sunt: - fereastra poate fi generat˘ a direct digital f˘ ar˘ a confect¸ionarea m˘ a¸stii; - nu exist˘ a succesiunea tuturor etapelor (m˘ a¸sti, expunere UV etc.) procesul de gravare este direct; - modificarea formelor ¸si dimensiunilor ferestrelor precum ¸si plasarea lor pe suprafat¸a waferului se pot realiza u¸sor ¸si repede. Pentru realizarea unui tranzistor nMOS procesul este descris ˆın continuare. Se realizeaz˘ a pe un substrat de siliciu de conductivitate de tip p (conductivitate prin goluri) o fereastr˘ a pentru zona activ˘ a, adic˘ a zona pe suprafat¸a de Si unde se va implementa tranzistorul, Figura 1.31-a. Stratul gros de oxid (∼ 5000 ˚ A,1˚ A= 10−10 m) denumit oxid de cˆ amp care ˆınconjoar˘ a zona activ˘ a are rolul de a izola tranzistorul de alte tranzistoare. Uneori, izolarea tranzistorului de cel vecin se face ¸si ˆın substrat

69

CAPITOLUL 1. PORT ¸ I LOGICE

SiO2

Zona activa

oxid de camp

n+

a) SiO2 Strat subtire de oxid b)

Strat de polisiliciu c)

. . . ,- -, ,- .10/10 .10/10 .10/10 *+ *+ *+ ,- ,- -, / / / *+ *+ *+ SiO2 Strat de oxid de protectie

p−substrat, Si

                   

f)

Oxidul de poarta

p−substrat, Si

n+

g)

   

   

   

p−substrat, Si

h)

Poarta(polisiliciu)

SiO2

d) Difuzie impuritati donoare pentru zonele de Sursa si Dren e)

4 4 4 23 32 23 9898 9889 8998 54 54 54 23 23 32 67 76 76 5 5 5 p−substrat, Si Ferestre pentru contactele metalizate

  0 (gril˘ a - canal), deoarece densitatea de purt˘ atori de sarcin˘ a 1 -electroni liberi- ˆın placa metalic˘ a este mult mai mare decˆ at densitatea de purt˘ atori liberi ˆın semiconductor, cˆ ampul electric dintre pl˘ acile acestui condensator metal-semiconductor p˘ atrunde ˆın substrat dar nu p˘ atrunde ˆın placa metalic˘ a. Sarcina electric˘ a (pozitiv˘ a ˆın cazul acesta) de pe poarta (placa metalic˘ a) are o repartizare de suprafat¸a˘ iar sarcina negativ˘ a, indus˘ a ˆın substratul de tip p, are o repartizare volumetric˘ a; la interfat¸a cu oxidul sunt atra¸si electronii liberi din substrat care formeaz˘ a un strat de sarcin˘ a negativ˘ a cu grosimea ≈ 50˚ A. Acest strat de sarcin˘ a liber˘ a, indus˘ a la suprafat¸a substratului, este referit prin (zona de) canal (indus). Cantitatea de sarcin˘ a negativ˘ a indus˘ a ˆın canal este determinat˘ a de intensitatea cˆ ampului dintre poart˘ a ¸si substrat, deci de valoarea tensiunii VGC (sau VGB ). Deoarece la cele dou˘ a capete ale canalului exist˘ a ,, dou˘ a “rezervoare de sarcin˘ a negativ˘ a liber˘ a, cˆ and VGC este este suficient de mare ca s˘ a induc˘ a un canal cele dou˘ a rezervoare, obt¸inute prin difuzia de dren D ¸si de surs˘ a S, acestea vor fi unite printr-o cale conductiv˘ a - canalul indus ˆın substrat, cu lungimea L. Aplicˆ and o diferent¸a˘ de potent¸ial ˆıntre cele dou˘ a zone de dren ¸si de surs˘ a apare o deplasare de electroni ˆın canal, deci un curent de canal. ˆIn concluzie, se poate afirma c˘ a tranzistorul MOS este un dispozitiv la care valoarea curentului de conduct¸ie ˆın canalul, dintre dren ¸si surs˘ a, este controlat de tensiunea aplicat˘ a pe poart˘ a. Deci intensitatea curentului din canal este o funct¸ie de tensiune aplicat˘ a dintre dren ¸si surs˘ a, VDS , ¸si tensiunea poart˘ a-canal VGC , Icanal = f (VDS , VGC ). Pornind de la aceast˘ a explicat¸ie calitativ˘ a a funct¸ion˘ arii dispozitivului MOS, ˆın continuare, vor fi deduse relat¸ii simple care pot exprima ¸si cantitativ funct¸ionarea dispozitivului nMOS. Tensiunea pozitiv˘ a VGC , pentru valori cresc˘ atoare pornind de la 0V, va respinge sarcina mobil˘ a pozitiv˘ a din zona de interfat¸a˘ oxid-substrat ˆınspre masa substratului, adic˘ a golurile care sunt purt˘ atori mobili majoritari ˆın substratul de tip p. ˆIn urma 1 Densitatea de electroni liberi ˆ ın: metale - 1028 /cm3 , izolatoare - 107 /cm3 , semiconductoare 2 · 1013 /cm3 pt Ge ¸si 1, 45 · 1010 /cm3 pt Si

73

CAPITOLUL 1. PORT ¸ I LOGICE

V GS

h ] ] ] Q ^ Q ^ Q ^ c dQc sQ ct fQe sQt fQe st fQe ^Q]ji fQe ^]Qji feQ^Q]ji gh`Q_gnQm fe ^]^]ji `Q_nQm \Q[ZQY\[ `Q_nQm \Q[ZQY\[ `Q_nQm \Q[ZQY\[ `_nm \[ZY\[ bQa bQa bQ dQ d a XQW lk bQ a XQW ba XW bQ c dQc tQ c tQs ts ^Q]ji ^Q]ji ^Q]ji ^]ji YQ\[Z YQ\[Z YQ\[Z Y\[Z kQlQk a W lQ dQ d s k cc dcQc tQ dQ ss dcdc qQtQss qQtss qQ]Q^ji qQ]Q^ji qQ]Q^ji qQ]^ji qQZQY\[ qQZQY\[ qQZQY\[ qQZY\[ kQq lQk q WQlk q XQW lk qQXQW qQXW q dQ Q d kkQrq XQW lkk rQ WW rQ XQ XXWW rq cpo dQcpo tQ cpo rQq tQtQs rQq tts rQq ^Q]jiTQS^]jQiTSRP rQq ^Q]jiTQS^]jQiTSRP rQq ^Q]jiTQS^]jQiTSRP rQq ^]jiTQS^]jiTQSRP rQq ZY\Q[ZY\Q[ TSTSRP rQq ZY\Q[ZY\Q[ rQq ZY\Q[ZY\Q[ rQq ZY\[ZY\[ kQkQrq lQkkQl rq WWU lQ dQ d q q s Q t l l W Q X Q X VXQUWU lk rQVXQUWU rQVXUWU r dc sQ dc rQsQt rQst rQjQiRPTS rQjQiRPTS rQjQiRPTS rQjiRQPTS rQZY\Q[ RPTS rQZY\Q[ rQZY\Q[ rQZY\[ k rQlk rQWQ o o podcQ Q p p Q r t k l U VXQ VXQ VXVUW o o poQ Q p p Q k k k k Q l Q l l Q Y Q Y Q Y Y Z Z Z Z W W W U U U V V ooQpQooQpoo pQ UQ UU VQUU VUU VQ ppoQppQo ppo UQ VUQQ Q V V U UU VUU UQVQ VQU VQ VQV −

+

− V DS + D (Dren)

G (Poarta)

S (Sursa)

+

V DS



+

V GS −

S

B

W

V SS

D

G

Placa din polisiliciu sau metal

DOX

n+

Canal indus L

p−Substrat,

a)

I DS [mA]

3

SiO2

Si

canal W/L=60/6

Reg. liniara

V DS =3,0V

2.5

Reg. de saturatie

I DS(sat) [mA]

3

3.0

canal W/L=6/0,6

2

2 I DS(sat) ∝ (V GS −Vpn)

2.0 V DS =V GS −Vpn

1

b)

0

1.5

1

2

3

D

D B

G

c)

0

D G

I DS(sat) ∝ (V GS −Vpn) 2 W/L=60/6 (canal lung) V GS [V]

0

1

2

I DS(sat) ∝ V GS− Vpn

nMOS

G

W/L=6/0,6 1 (canal scurt)

1.0 V DS [V] 0

B

n+

3

pMOS

D

D

G

G

D G

B

d)

S simbol cu 4 terminale

S reprezentare simplificata

S

S simbol cu 4 terminale

S reprezentare simplificata

S

Figura 1.32 Tranzistorul nMOS: a) structur˘ a fizic˘ a de principiu pentru un tranzistor nMOS; b) caracteristicile statice de ie¸sire I D = f (VDS )VGS =const ; c) dependent¸a IDsat de tensiunea VGS ; d) simbolurile de reprezentare pentru tranzistoarele nMOS ¸si pMOS.

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

74

acestei respingeri ˆın zona de interfat¸a˘ a stratului r˘ amˆ ane doar sarcina negativ˘ a, fix˘ a ˆın ret¸eaua cristalin˘ a, format˘ a din ionii negativi ai atomilor acceptori. Rezult˘ a c˘ a ˆın stratul de interfat¸a˘ apare un regim de s˘ ar˘ acire de purt˘ atori majoritari ¸si chiar la aplicarea unei tensiuni ˆıntre dren ¸si surs˘ a curentul din canal este nul. Dar cˆ and tensiunea VGC devine mai mare decˆ at o valoare Vpn (valoare de prag/ deschidere pentru nMOS) cˆ ampul electric al condensatorului poart˘ a-substrat atrage, din masa substratului, sarcini electrice minoritare mobile (electronii) determinˆ and astfel ˆın zona de interfat¸a˘ o inversiune a sarcinilor mobile, adic˘ a conductivitatea init¸ial˘ a de tip p (goluri) devine de tip n. Electronii atra¸si ˆın zona de interfat¸a˘ vor constitui o sarcin˘ a mobil˘ a ˆın zona de canal, deci apare posibilitatea unui curent de canal. Cantitatea de sarcin˘ a poate fi exprimat˘ a prin relat¸ia: Q = C(VGC − Vpn )

(1.27)

ˆIn aceast˘ a expresie C este capacitatea echivalent˘ a a condensatorului plan format ˆıntre plac˘ a-substrat (cu suprafat¸a W × L, stratul dielectric avˆ and grosimea D ox iar εox permitivitatea oxidului) a c˘ arei valoare este dat˘ a de relat¸ia clasic˘ a: C = εox ·

W ·L = Cox · W · L Dox

(1.28)

εox este capacitatea pe unitatea de suprafat¸a˘ a stratului de oxid de unde Cox = D ox sub poart˘ a, care se obt¸ine din relat¸ia 1.28 cˆ and W = 1, L = 1. Cu valorile ε ox ≈ 3, 45 × 10−11 F · m−1 , Dox = 100˚ A = 10−8 m se obt¸ine Cox ≈ 3f F/µm2 .Capacitatea specific˘ a a stratului de oxid este o caracteristic˘ a a fiec˘ arui proces tehnologic ¸si trebuie luat˘ a de c˘ atre proiectantul de circuite ca o constant˘ a dat˘ a. Diferent¸a de tensiune VGC − Vpn poate fi privit˘ a ca tensiunea efectiv˘ a care comand˘ a sarcina din canal, deoarece pˆ an˘ a cˆ and tensiunea aplicat˘ a pe poart˘ a nu este mai mare decˆ at tensiunea de prag Vpn nu exist˘ a sarcin˘ a mobil˘ a ˆın canal, deci nici curent ˆın canal, tranzistorul este blocat. Prin existent¸a sarcinii induse, VGC − Vpn > 0, ¸si prin polarizarea zonelor de dren ¸si surs˘ a, ˆın canal se produce deplasare de sarcin˘ a, deci curent. Polarizarea se face ˆın felul urm˘ ator: pe dren se aplic˘ a o tensiune pozitiv˘ a fat¸a˘ de substrat V DB > 0 iar sursa se conecteaz˘ a la substrat VSB = VSS = 0V ; ˆın felul acesta potent¸ialul sursei este identic cu potent¸ialul de substrat ¸si este potent¸ialul de referint¸a˘ (mas˘ a), iar V DB devine VDS . ˆIntr-o abordare simpl˘ a, pentru deducerea unui model matematic pentru curentul din canal, se echivaleaz˘ a canalul cu o rezistent¸a˘ pe care sursa de tensiune V GC produce o c˘ adere de tensiune gradual˘ a ˆın funct¸ie de lungimea x din canal, V GC (x). Se admite pentru aceast˘ a c˘ adere de tensiune o variat¸ie liniar˘ a ˆın funct¸ie de lungimea din canal astfel: pentru x = 0, ˆın zona de surs˘ a, VGC = VGS ¸si pentru x = L (lungimea canalului) ˆın zona de dren VGC = VGS − VDS . Calculul sarcinii din canal se face cu relat¸ia 1.27 ˆın care se introduce c˘ aderea de tensiune ca o medie aritmetic˘ a a valorilor tensiunilor de la capetele canalului:     (VGC − Vpn )x=0 + (VGC − Vpn )x=L ) 1 Q=C (1.29) = C (VGS − Vpn ) − VDS 2 2

¸si utilizˆ and expresia capacit˘ a¸tii exprimat˘ a prin relat¸ia 1.28 se obt¸ine:   1 Q = Cox W L (VGS − Vpn ) − VDS 2

(1.30)

75

CAPITOLUL 1. PORT ¸ I LOGICE

Sub act¸iunea cˆ ampului electric din canal E x = −VDS /L (se consider˘ a numai componenta Vx ˆın lungul canalului) produs de tensiunea VDS electronii sunt deplasat¸i de la surs˘ a la dren cu viteza: VDS vx = −µn · Ex = µn (1.31) L unde µn este mobilitatea electronilor, cu valori ˆıntre 500 ÷ 1500cm 2 /V · s; pentru goluri valorile mobilit˘ a¸tilor sunt µp = 100 ÷ 400cm2 /V · s. Mobilitatea purt˘ atorilor scade cu concentrat¸ia de dopare ¸si cu cre¸sterea tempteraturii. Timpul de deplasare/tranzit al electronilor prin canal rezult˘ a simplu: τf =

L2 L = vx µn · VDS

(1.32)

Aceast˘ a relat¸ie exprim˘ a o dependent¸a˘ p˘ atratic˘ a a timpului de tranzit ˆın canal ˆın funct¸ie de lungimea canalului; apare evidenta concluzie c˘ a scalarea (mic¸sorarea dimensiunilor) duce la dispozitive mai rapide. ˆIn final, din relat¸iile 1.30 ¸si 1.32, se obt¸ine expresia curentului dren - surs˘ a, IDS :   Q 1 W IDS = (VGS − Vp ) − VDS VDS = = µn Cox τf L 2   (1.33) W 1 = Kn (VGS − Vp ) − VDS VDS L 2 Constanta: Kn = µn Cox

(1.34)

denumit˘ a factorul de cˆ a¸stig al procesului, la fel ca ¸si tensiunea de prag V pn , este o constant˘ a de proces ¸si are valori ˆın intervalul 100÷100µA/V 2 . Nu este neobi¸snuit ca ˆın cadrul aceluia¸si proces, ˆın funct¸ie de materialul init¸ial utilizat ca substrat, de variat¸ia ˆın grosime a stratului de oxid de sub poarta Dox , factorul de cˆ a¸stig al procesului s˘ a aib˘ a abateri de 10 ÷ 20%. Se define¸ste factorul de cˆ a¸stig al tranzistorului, β n : βn = K n ·

W L

(1.35)

Raportul dintre l˘ a¸timea canalului W ¸si lungimea canalului L este referit ca factorul de form˘ a al tranzistorului, de fapt conductant¸a canalului este proport¸ional˘ a cu raportul dintre l˘ a¸timea ¸si lungimea sa. Raportul W/L este unul din cei mai important¸i parametri asupra c˘ aruia proiectantul poate act¸iona ˆın etapa de dimensionare a layoutului pentru a obt¸ine caracteristicile dorite pentru tranzistor. Ecuat¸ia 1.33 este modelul matematic al tranzistorului MOS pentru regimul liniar de funct¸ionare. Acest regim liniar, ˆıntre variat¸iile ∆I DS ale curentului de canal ¸si variat¸iile ∆VGS ale tensiunii gril˘ a surs˘ a, se obt¸ine cˆ and sunt ˆındeplinite condit¸iile regimului liniar: VGS > Vpn ¸si VDS < VGS − Vpn . Cˆ and tensiunea dren-surs˘ a cre¸ste, peste valoarea efectiv˘ a a tensiunii de comand˘ a a canalului, VDS > VGS − Vpn , rezult˘ a o diferent¸a˘ de potent¸ial poart˘ a-dren de valoare negativ˘ a VGD = (VGS −Vp )−VDS < 0, deci se inverseaz˘ a sensul cˆ ampului poart˘ a-dren. Aceast˘ a inversare a sensului cˆ ampului determin˘ a o reducere a sarcinii din canal ˆın zona

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

76

de dren (x = L) ceea ce este echivalent cu cre¸sterea rezistent¸ei canalului ˆınspre dren, cea mai mare parte a tensiunii VDS se va reg˘ asi pe acest segment de rezistent¸a˘ m˘ arit˘ a. Lungimea efectiv˘ a, notat˘ a cu L0 , a canalului se mic¸soreaz˘ a (L0 < L) ¸si chiar la m˘ arirea tensiunii dren-surs˘ a, VDS , curentul ˆın canal r˘ amˆ ane la o valoare constant˘ a, I DS(sat) (ˆın realitate IDS(sat) are o cre¸stere u¸soar˘ a ˆın funct¸ie de VDS ). Acesta este regimul de saturat¸ie al tranzistorului obt¸inut pentru condit¸iile: V GS > Vpn ¸si VDS ≥ VGS − Vpn ; iar expresia curentului de saturat¸ie se obt¸ine din ecuat¸ia regimului liniar 1.33 ˆın care se face substitut¸ia VDS = VGS − Vpn : IDS(sat) =

β (VGS − Vpn )2 2

(1.36)

ˆIn Figura 1.32-b sunt reprezentate caracteristicile statice I DS = f (VDS )VGS =const pentru dou˘ a tranzistoare nMOS unul cu canal lung W/L = 60µm/6µm iar altul cu canal scurt W/L = 6µm/0, 6µm realizate ˆın tehnologie de 0, 5µm. Se observ˘ a din Figura 1.32-c c˘ a ecuat¸ia 1.36 exprim˘ a mult mai exact curentul de saturat¸ie I DS(sat) pentru tranzistoarele cu canal lung decˆ at pentru cele cu canal scurt. Separarea zonei liniare de zona de saturat¸ie ˆın Figura 1.32-b este demarcat˘ a printro linie ˆıntrerupt˘ a, care este reprezentarea grafic˘ a a ecuat¸iei V DS = VGS −Vpn . Regimul blocat al tranzistorului IDS = 0, obt¸inut cˆ and UGS ≤ Vpn , este reprezentat de axa absciselor (ˆın realitate, IDS are valori foarte mici determinat ˆın special de a¸sa-numitul curent de sub poart˘ a). Tranzistorul se deschide cˆ and tensiunea de comand˘ a V GS devine VGS > Vpn . ˆIn scheme echivalente, ˆın funct¸ie de regimul de funct¸ionare, tranzistorul MOS ˆıntro abordare calitativ˘ a poate fi substituit ˆın felul urm˘ ator: regimul blocat - contact deschis, regimul liniar - rezistent¸a, regimul saturat - generator de curent. Modelul matematic al dependent¸ei curent-tensiune ˆın curent continuu, IDS = f (VDS )UGS =const , pentru tranzistorul MOS exprimat de ecuat¸ia 1.33, pentru regimul liniar ¸si exprimat de ecuat¸ia 1.36, pentru regimul ˆın saturat¸ie, sunt relat¸ii simple, u¸sor de utilizat, dar rezultatele pot diferi de cele reale. De exemplu, calculˆ and factorul de cˆ a¸stig al procesului Kn , cu ajutorul ecuat¸iei 1.33, rezult˘ a o valoare de dou˘ a ori mai mic˘ a decˆ at valoarea lui Kn m˘ asurat˘ a pe tranzistor cˆ and este ˆın regimul liniar; explicat¸ia const˘ a ˆın faptul c˘ a Vpn ¸si µn nu sunt constante cum se consider˘ a ˆın ecuat¸ie. Un model matematic care s˘ a exprime exact funct¸ionarea tranzistorului este necesar atˆ at proiectantului de tranzistoare cˆ at ¸si proiectantului de circuite pe baza tranzistorului respectiv. Proiectantul de circuite dore¸ste ca prin simul˘ ari pe baza unui model matematic, ˆın care introduce datele de catalog ale tranzistorului , s˘ a obt¸in˘ a caracteristicile dinamice la circuitului (τpHL , τpLH , τHL , τLH ). Iar proiectantul de tranzistoare de la turn˘ atoria de Si dore¸ste ca pe baza unui model ˆın care s˘ a introduc˘ a valorile parametrilor de proces (Vpn , Kn , Cox , Dox etc.) s˘ a fac˘ a predict¸ia performant¸elor tranzistorului ˆınainte ca acesta s˘ a fie produs. Se pot obt¸ine modele mult mai exacte dac˘ a sunt luate ˆın considerare efectele de ordinul doi (neglijate ˆın deducerea ecuat¸iilor 1.33 ¸si 1.36). Programul de simulare SPICE (Simulation Program with Integrated Circuit Emphasis) existent ˆın toate mediile de proiectare automat˘ a ˆın electronic˘ a, EDA,are la baz˘ a diferite modele matematice pentru tranzistorul MOS (simulatoarele comerciale pot avea pˆ an˘ a la zece modele matematice pentru tranzistor).

CAPITOLUL 1. PORT ¸ I LOGICE

77

SPICE-ul poate simula pentru trei modele, acestea sunt selectabile prin identificatorul de nivel LEVELi. Nivelul LEVEL1 se bazeaz˘ a pe modelul matematic exprimat prin relat¸iile 1.33, 1.36 ˆın plus include ¸si efectele de ordinul doi importante. Nivelul LEVEL2 calculeaz˘ a curent¸ii pe baza unui model analitic al fizicii dispozitivului. Iar nivelul LEVEL3 este o abordare semi-empiric˘ a pe baza parametrilor de proces ¸si o ,, “potrivire a expresiei ecuat¸iilor astfel ˆıncˆ at acestea s˘ a se suprapun˘ a peste comportamentul real al tanzistorului. Evident, ˆın nivelul 2 ¸si 3 sunt incluse toate efectele de ordinul doi. ˆIn continuare vor fi expuse succint efectele de ordinul doi [Kang 0 96][Weste 0 92]. • Efectul de substrat. ˆIn Figura 1.32-a s-a considerat c˘ a sursa se leag˘ a la substrat, VSB = VSS = 0V , deci potent¸ialul de referint¸a˘ este potent¸ialul substratului. Se poate ca fat¸a˘ de potent¸ialul de referint¸a˘ (de mas˘ a) al sursei, V SS , substratul s˘ a fie polarizat cu o tensiune de substrat VSB 6= 0V . Polarizarea de substrat duce la o cre¸stere a tensiunii de prag Vp (aproximativ cu 0, 5V pentru fiecare cre¸stere a VBS cu 2 V). Cre¸sterea tensiunii de prag Vp determin˘ a o mic¸sorare a curentului IDS ceea ce duce la un dispozitiv mai lent. • Modulat¸ia lungimii canalului. Cˆ and VDS > VGS −Vp , adic˘ a ˆın regim de saturat¸ie sarcinile din canal din zona de dren dispar, deci lungimea efectiv˘ a (electric˘ a) L 0 0 a canalului devine mai mic˘ a decˆ at lungimea geometric˘ a L a canalului (L < L). Apare astfel o modulat¸ie a lungimii canalului care este o funct¸ie de V DS . Odat˘ a cu mic¸sorarea lungimii canalului se modific˘ a raportul W/L deci valoarea lui β (relat¸ia 1.35).La tranzistoarele cu canal lung aceast˘ a variat¸ie a lui β nu este important˘ a dar devine important˘ a la tranzistoarele cu canal scurt (deci odat˘ a cu scalarea). • Variat¸ia mobilit˘ a¸tii. Mobilitatea atˆ at a electronilor µ n cˆ at ¸si a golurilor µp nu este constant˘ a, acestea scad cu cre¸sterea concentrat¸iei de dopare cu impurit˘ a¸ti (deci cu scalarea) ¸si cu cret¸erea temperaturii. • Saturat¸ia vitezei. Din relat¸ia 1.31 apare c˘ a viteza de drift a purt˘ atorilor poate cre¸ste oricˆ at de mult ˆın funct¸ie µ ¸si de E. ˆIn realitate viteza ajunge la o valoare de saturat¸ie, de exemplu viteza electronului ajunge la valoarea v max = 105 m/s care se atinge pentru E = 106 V /m (o c˘ adere de 1V pe lungimea de 1µm) ¸si care nu se poate dep˘ a¸si chiar dac˘ a Ex cre¸ste ˆın continuare. • Conduct¸ia de subprag IOH . ˆIn modul de aproximare gradual˘ a a canalului cˆ and VGS < Vp curentul IDS = 0. Dar atunci cˆ and VDS are valori ridicate chiar dac˘ a VGS < Vp apare totu¸si un curent de valoare relativ sc˘ azut˘ a ˆın canal deci I DS 6= 0; care are urm˘ atoarele dou˘ a componente: un curent de polarizare invers˘ a prin jonct¸iunile formate ˆıntre zonele difuzate ¸si substrat; un curent de (conduct¸ie) subprag. Odat˘ a cu scalarea dimensional˘ a (¸si a tensiunii V DD , scalare complet˘ a) trebuie mic¸sorat˘ a ¸si valoarea tensiunii de prag V p pentru a asigura vitez˘ a ridicat˘ a de comutat¸ie a tranzistorului ¸si o margine de zgomot suficient˘ a. Curentul de Vp subprag este proport¸ional cu e− T , deci are o cre¸stere odat˘ a cu mic¸sorarea tensiunii de prag ¸si cu cre¸sterea temperaturii (T ). • Inject¸ia de purt˘ atori fierbint¸i. Cˆ and, prin scalare, dimensiunile tranzistorului sunt foarte mici ¸si VDS este de valoare mare, componentele orizontale ¸si verticale

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

78

(Ex , Ey ) ale cˆ ampului ˆın canal au valori ridicate sub a c˘ aror efect purt˘ atorii mo,, bili de sarcin˘ a pot atinge energii cintetice ridicate (devin purt˘ atori “fierbint¸i ). Electronii fierbint¸i pentru nMOS pot p˘ atrunde: ˆın stratul de oxid de sub poart˘ a modificˆ and distribut¸ia de sarcin˘ a de la interfat¸a SiO 2 -substrat sau ˆın zona de dren dislocˆ and goluri care sunt apoi atra¸si ˆınspre substrat. Efectul de injectie de purt˘ atori fierbint¸i este dezastruoas mai ales pentru dispozitivele deja ˆın funct¸ionare care, ˆın timp, se distrug scot¸aˆnd din funct¸iune sistemul respectiv. • Scalarea, care nu este un efect de ordinul doi pentru tranzistor dar, prin reducerea dimensiunilor ¸si a tensiunilor de alimentare, prin cre¸sterea nivelurilor de dopare cu impurit˘ a¸ti donoare ND sau acceptoare NA creaz˘ a condit¸ii ca efectele explicate mai sus s˘ a apar˘ a mult mai pronunt¸at. Tabelul 1.10 Reducerea m˘ arimii caracteristice (minime) la un proces tipic de matrice de port¸i CMOS ANUL Marimea caractersitica minima [µm]

1980 1983 1985 1987 1989 1991 1993 1995 1997 1999 2001 2003 5.0

3.5

2.5

1.75 1.25

1

0.8

0.6

0.35 0.25 0.18

0.13

Reducerea dimensiunilor ˆın tehnologia de integrare este referit˘ a prin termenul de scalare. Prin ˆımbun˘ at˘ a¸tiri, ˆın timp, procesul tehnologic ˆı¸si mic¸soreaz˘ a caracterstica de proces (dimensiunea minim˘ a care poate fi definit˘ a ¸si realizat˘ a pentru procesul respectiv); astfel s-a constatat c˘ a m˘ arimea caracteristic˘ a (minim˘ a) a procesului se scaleaz˘ a/reduce aproximativ cu 1, 3÷1, 5 ˆın decurs de 2-3 ani, cum rezult˘ a din Tabelul 1.10. Scalarea este caracterizat˘ a prin factorul de scalare s, m˘ arimea cu care se divid toate dimensiunile. Sunt referite dou˘ a cazuri de scalare: scalarea complet˘ a ¸si scalarea la tensiune constant˘ a. Scalarea complet˘ a reduce toate dimensiunile cu factorul s, reduce tensiunile cu factorul s iar valorile densit˘ a¸tilor de dopare sunt multiplicate cu s, toate acestea pentru a ment¸ine cˆ ampul electric ˆın dispozitiv nemodificat. Acest mod de scalare apare atractiv din punct de vedere al puterii disipate, Tabelul 1.11, care se reduce de s2 ori, de¸si puterea disipat˘ a pe unitatea de arie nu se modific˘ a. Scalarea la tensiune constant˘ a reduce dimensiunile cu factorul s, m˘ are¸ste densit˘ a¸tile de dopare cu s2 , dar tensiunile de alimentare r˘ amˆ an nemodificate. Acest tip de scalare este preferat, uneori, pentru a se putea interfat¸a circuitul scalat cu alte circuite (anterioare) care nu au fost scalate (se utilizeaz˘ a aceea¸si valoare a tensiunii de alimentare). Se observ˘ a c˘ a puterea disipat˘ a cre¸ste de s ori, puterea disipat˘ a pe unitatea de arie de s3 ori, iar densitatea de curent j tot de s3 ori. Cre¸sterea densit˘ a¸tii de curent pe traseele metalice poate provoca, prin electromigrat¸ie, ˆıntreruperea acestora. Electromigrat¸ia metalului este efectul prin care, la densit˘ a¸ti foarte mari, ˆıntr-un conductor atomii metalului sunt antrenat¸i ˆın sensul curentului. Prin scalare la tensiune constant˘ a ˆın unele puncte ale traseelor metalice pot apare ˆıngust˘ ari, unde densitatea de curent dep˘ a¸se¸ste 105 A/cm2 (pentru Aluminiu), iar ˆın timp, prin electromigrat¸ie, traseul se subt¸iaz˘ a continuu pˆ an˘ a se ˆıntrerupe ˆın acele puncte.

79

CAPITOLUL 1. PORT ¸ I LOGICE

1.5.2

Inversorul CMOS

Inversorul bipolar, din Figura 1.21-b, este compus dintr-un element de comutat¸ie, tranzistorul T, ¸si o rezistent˘ a de sarcin˘ a R C . ˆIn aceea¸si idee, se poate realiza un circuit inversor la care un tranzistor nMOS este elementul de comutat¸ie iar sarcina un tranzistor pMOS. Dar la fel, tranzistorul pMOS poate fi privit ca un element de comutat¸ie ˆıntr-un circuit inversor care are ca sarcin˘ a tranzistorul nMOS. Aceast˘ a structur˘ a de circuit, format˘ a din dou˘ a tranzistoare n ¸si pMOS ˆınseriate ˆın opozit¸ie, conectate ˆıntre potent¸ialele VDD ¸si VSS , avˆ and un singur terminal de poart˘ a, este referit˘ a ca inversor Complementar MOS, Figura 1.33-a. Cele dou˘ a tranzistoare sunt realizate pe aceea¸si plachet˘ a, Figura 1.35, dar au substraturi diferite, zonele de tip p + ale tranzistorului pMOS (sursa ¸si drenul) sunt implantate ˆıntr-un substrat de tip n, care este de fapt o insul˘ a difuzat˘ a ˆın substratul de pe plachet˘ a, iar zonele n + (sursa ¸si drenul) ale tranzistorului nMOS sunt implantate ˆın substratul de tip p al plachetei. Avantajele pe care le prezint˘ a inversorul CMOS ˆın raport cu alte tipuri de inversoare sunt: • puterea disipat˘ a, ˆın regim static, teoretic este zero; • caracteristica de transfer VO = f (VI ) se apropie cel mai mult de caracteristica ideal˘ a a unui inversor, Figura 1.14-b, cu tensiunea de prag (logic) de comutat¸ie la VDD /2, vezi Definit¸ia 1.14. Tabelul 1.11 Valorile unor parametrii electrici ¸si geometrici dup˘ a scalare

M˘ arimea Lungimea de canal L˘ a¸timea de canal Grosimea oxidului de sub poart˘ a Tensiunea de alimentare Tensiunea de prag Cˆ ampul electric ˆın oxid Concentrat¸ia de impurit˘ a¸ti donoare Concentrat¸ia de impurit˘ a¸ti acceptoare Capacitatea specific˘ aa port¸ii Curentul de dren-surs˘ a Densitatea de curent Puterea disipat˘ a Puterea disipat˘ a/unitate de arie

ˆInainte de scalare L W

Dup˘ a scalare Scalare Scalare la complet˘ a tensiune constant˘ a L0 = Ls L0 = Ls W 0 = Ls W = Ls Dox s VDD s Vp s

Dox 0 =

VDD Vp E

VDD 0 = Vp 0 = E0 = E

ND

ND 0 = N D · s

N D 0 = ND · s2

NA

NA 0 = N A · s

N A 0 = NA · s2

Cox

Cox 0 = Cox · s

Cox 0 = Cox · s

IDS j Pd

IDS 0 = IDS s j0 = j Pd 0 = Ps2d

Pd arie

Pd 0 arie0

=

Pd arie

Dox 0 =

Dox s

Dox

VDD 0 = VDD Vp 0 = V p E0 = E · s

IDS 0 = IDS · s j 0 = j · s3 Pd = P d · s

Pd 0 arie0

Pd = s3 ( arie )

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

80 1.5.2.1

Caracteristica static˘ a de transfer VO = f (VI )

ˆIn opozit¸ie fat¸a˘ de tranzistorul nMOS (prezentat anterior), care are zonele difuzate de tip n+ ¸si la care drenul se polarizeaz˘ a cu o tensiune pozitiv˘ a fat¸a˘ de surs˘ a iar tensiunea de deschidere Vpn este pozitiv˘ a, la tranzistorul pMOS zonele difuzate sunt de tip p+ , drenul se polarizeaz˘ a cu tensiune negativ˘ a fat¸a˘ de surs˘ a iar tensiunea de deschidere Vpp este negativ˘ a, Figura 1.33-b. ˆIn structura de inversor CMOS prin conectarea, pentru ambele tranzistoare, a zonelor de surs˘ a la substraturile corespunz˘ atoare nu se va lua ˆın considerare efectul de polarizare a substratului, deci se pot deduce urm˘ atoarele relat¸ii: VGSn = VI VDSn = VO

(1.37)

¸si de asemenea VGSp = −(VDD − VI ) VDSp = −(VDD − VO )

(1.38)

Caracteristica static˘ a, Figura 1.33-c, se va analiza pentru variat¸ia tensiunii de intrare pornind de la VI = VSS = 0V pˆ an˘ a la VI = VDD , iar ie¸sirea inversorului se consider˘ a ˆın gol, deci pentru curent¸ii celor dou˘ a tranzistoare exist˘ a relat¸ia: IDSn = −IDSp

(1.39)

Regimul liniar de funct¸ionare este definit de relat¸iile: VI > Vpn VI < VDD + Vpp

¸si ¸si

VDSn < VI − Vpn pentru nMOS VDSp > VGSp − Vpp pentru pMOS

(1.40)

iar tranzistoarele sunt echivalente unor rezistent¸e. Regimul de funct¸ionare ˆın saturat¸ie este definit de relat¸iile: VI > Vpn VI < VDD + Vpp

¸si ¸si

VDSn ≥ VGSn − Vpn ⇐⇒ VO ≥ VI − Vpn pentru nMOS (1.41) VDSp ≤ VGSp − Vpp ⇐⇒ VO ≤ VI − Vpp pentru pMOS

iar tranzistoarele sunt echivalente unor generatoare de curent. ˆIn caracteristica static˘ a de transfer VO = f (VI ), ˆın funct¸ie de regimul de funct¸ionare al fiec˘ aruia din tranzistoarele nMOS ¸si pMOS se disting cinci regiuni de funct¸ionare ( A , B , C , D , E ) pentru inversor. Pe aceast˘ a caracterstic˘ a se pot calcula valorile tensiunii de intrare ˆın stare L, VIL , ¸si de intrare ˆın starea H, VIH . Regiunea A . 0 ≤ VI < Vpn deci nMOS este blocat, IDSn = 0 ¸si este echivalent unui contact deschis. Tranzistorul pMOS are VGSp < V pp ¸si este ˆın regiunea liniar˘ a cu IDSp = 0, conform relat¸iei 1.39. Fiind ˆın regiunea liniar˘ a cu I DSp = 0 rezult˘ a c˘ a ¸si VDSp = 0 ceea ce din relat¸ia a doua 1.38 determin˘ a tensiunea de ie¸sire ˆın stare H: VO = VOH = VDD

(1.42)

81

CAPITOLUL 1. PORT ¸ I LOGICE

I DS

V DD S

V DSp

V GSp G

D D

V I=V GSn

nMOS

pMOS

O

−Vpp

V pn

nMOS

V O=V DSn

S V SS

a)

VO

V GS

0

pMOS

b) B

S

S

L

L

nMOS

L

L

S

S

B

pMOS

A

B

C

D

E

V DD

B − Blocat L − Liniar S − Saturat

V O=V I−Vpp V O=V I−Vpn

V DD

N

2

c)

V pp

V pn

V DD

VIL V VIH T

V DD

I DSp I DSn

VO V SS

Regiunea A

VDD+Vpp V DD

V DD

I DSp

O

I DSn=−IDSp

I DSp

O

I DSn

VO V SS

Regiunea B

VI V DD

I DSp

O

I DSn

VO V SS

Regiunea C

V DD

I DSp

O

I DSn

VO V SS

Regiunea D

O

I DSn

VO V SS

Regiunea E

d)

Figura 1.33 Inversorul CMOS: a) schema electric˘ a; b) caracteristicile de comand˘ a IDS = f (VGS ) pentru nMOS ¸si pMOS; c) caracterstica static˘ a V O = f (VI ); d) circuitele echivalente pentru cele cinci regiuni ale caracteristicii statice.

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

82

Regiunea B . VI ≥ Vpn , VDSn ≈ VDD > VI −Vpn deci nMOS intr˘ a ˆın saturat¸ie iar pMOS continu˘ a ˆın regimul liniar. ˆIn caracteristica de transfer VO = f (VI ) tensiunea ˆıncepe s˘ a scad˘ a ¸si, prin definit¸ie, cˆ and panta caracteristicii de transfer este egal˘ a cu −1 (dVO /dVI = −1), se consider˘ a pentru tensiunea de intrare V I = VIL . Introducˆ and ˆın relat¸ia 1.39 pentru nMOS exprimarea de regim de saturat¸ie relat¸ia 1.36, iar pentru pMOS exprimarea de regim liniar se obt¸ine:  βn βp  (VI − Vpn )2 = 2 ((VI − VDD ) − VP P ) (VO − VDD ) − (VO − VDD )2 2 2

(1.43)

Din aceast˘ a expresie, prin derivarea lui VO ˆın raport cu VI ¸si apoi efectuarea substituirilor dVO /dVI = −1, VI = VIL , se obt¸ine expresia pentru VIL : VIL =

2VO + Vpp − VDD + 1+

βn βp Vpn

βn βp

(1.44)

Prin rezolavarea ecuat¸iilor 1.44 ¸si 1.43 se obt¸ine valoarea lui V O pentru VIL ˆın punctul caracteristicii cu panta -1. amˆ ane ˆın saturat¸ie ¸si dup˘ a punctul de interRegiunea C . Tranzistorul nMOS r˘ sect¸ie al caracteristicii VO = f (VI ) cu dreapta VO = VI − Vpp cˆ and intr˘ a ˆın saturat¸ie ¸si tranzistorul pMOS, VO ≤ VI − Vpp (relat¸ia 1.41). Teoretic, ˆın aceast˘ a regiune caracteristica ar trebui s˘ a fie vertical˘ a dar pentru c˘ a tranzistoarele ˆın saturat¸ie nu sunt generatoare de curent ideale, IDS(sat) are o mic˘ a cre¸stere cu VDS , aceast˘ a caracteristica are o mic˘ a abatere de la o pant˘ a infinit˘ a. ˆIn aceast˘ a regiune pentru variat¸ii mici ∆VI se obt¸in variat¸ii mari ∆VO , exist˘ a un punct cˆ and tensiunea VI care cre¸ste devine egal˘ a cu tensiunea VO care descre¸ste ¸si corespunde punctului (N ) de intersect¸ie al caracteristicii cu prima bisectoare (vezi ¸si Figura 1.14-b). Definit¸ia 1.14 Pragul (logic) de comutat¸ie VT al unei port¸i este aceea valoare a tensiunii de intrare care produce la ie¸sire o tensiune de valoare egal˘ a, adic˘ a VT = V I = V O .  Prin introducerea expresiilor curent¸ilor de saturat¸ie ˆın relat¸ia 1.39 se obt¸ine: βp βn 2 (VI − Vpn )2 = [(VI − VDD ) − Vpp ] 2 2

(1.45)

¸si prin substitut¸ia VI = VT rezult˘ a VT =

Vpn +

q

βp βn (VDD

1+

q

βp βn

+ Vpp )

(1.46)

and caracteristica de ie¸sire intersecteaz˘ a dreapta V O = VI − Vpn , Regiunea D . Cˆ sub care VO < VI − Vpn , tranzistorul nMOS intr˘ a ˆın zona liniar˘ a de funct¸ionare iar pMOS r˘ amˆ ane ˆın saturat¸ie. ˆIn caracteristica de transfer tensiunea VOˆıncepe s˘ a nu mai O descreasc˘ a puternic ¸si, prin definit¸ie, cˆ and panta are valoarea dV = −1, se consider˘ a dVI

pentru tensiunea de intrare VI = VIH . ˆIn mod asem˘ an˘ ator, ca ˆın regiunea B , ¸si

83

CAPITOLUL 1. PORT ¸ I LOGICE

aici, egalˆ and expresia curentului de saturat¸ie prin canalul p cu expresia ˆın regim liniar din canalul n se obt¸ine:  βp βn  2 2(VI − Vpn )Vo − Vo2 = [(VI − VDD ) − Vpp ] 2 2

(1.47)

ˆın care substituind VI = VIH ¸si dVO /dVI = −1 rezult˘ a expresia pentru VIH : VIH =

βn βp (2VO + ββnp

VDD + Vpp + 1

+ Vpn )

(1.48)

Prin rezolvarea sistemului de ecuat¸ii 1.47 ¸si 1.48 se obt¸in valorile pentru V IH ¸si VO ˆın punctul caracteristicii cu panta -1. Regiunea E . VI ≥ VDD −Vpp deci pMOS este blocat, IDSn = 0 ¸si este echivalent unui contact deschis. Tranzistorul nMOS are VGS > Vpn ¸si este ˆın regiunea liniar˘ a cu a c˘ a ¸si a cu I DSn = 0 rezult˘ IDSn = 0, conform relat¸iei 1.39. Fiind ˆın regiunea liniar˘ a: VDSn = 0 adic˘ VO = VOL = 0 (1.49) 1.5.2.2

Proiectarea inversorului CMOS

Proiectarea, sau sinteza, unui inversor CMOS const˘ a ˆın determinarea dimensiunilor geometrice ale canalelor (W/L)n , (W/L)p necesare realiz˘ arii layoutului, pornind de la parametrii caracteristici de proces (Vpn , Vpp , Dox , Cox etc.), astfel ˆıncˆ at s˘ a se obt¸in˘ a o caracteristic˘ a de transfer VO = f (VI ) ¸si anumite performant¸e dinamice cerute. Poate fi parcurs ¸si traseul invers, adic˘ a analiza, pentru un inversor deja realizat, ˆıntr-un anumit proces ¸si cu un anumit layout, s˘ a se determine caractersitica de proces ¸si performant¸ele dinamice (eventual acestea s˘ a fie comparate cu valorile obt¸inute experimental). Fiind date VDD , Vpn ¸si Vpp ¸si impus˘ a o anumit˘ a valoare a tensiunii de prag de comutat¸ie VT din relat¸ia 1.46 se deduce expresia pentru raportul β n /βp : 2  βn VDD + Vpp − VT = (1.50) βp VT − Vpn Considerˆ and c˘ a inversorul este ideal, adic˘ a are tensiunea de prag logic de comutat¸ie la jum˘ atatea tensiunii de alimentare, ca ˆın Figura 1.33-c, VTideal = se obt¸ine:



βn βp



ideal

=



1 VDD 2

0, 5VDD + Vpp 0, 5VDD − Vpn

(1.51) 2

(1.52)

Caracteristica static˘ a VO = f (VI ) poate fi simetric˘ a dac˘ a tensiunile de prag ale tranzistoarelor sunt egale ˆın valoare absolut˘ a V pn = |Vpp |. Astfel din relat¸ia 1.52 se obt¸ine valoarea raportului βn /βp pentru inversorul ideal ¸si cu o caracteristic˘ a simetric˘ a: βn =1 (1.53) βp

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

84

Expresia explicit˘ a a raportului βn /βp este :  µn · Cox W µn βn L n  = = W βp µp · Cox L p µp



W L n  W L p

(1.54)

ˆın care s-a considerat c˘ a grosimea stratului de oxid de sub poart˘ a D ox , ˆın consecint¸a˘ ¸si Cox = εox /Dox , au acelea¸si valori pentru ambele tranzistoare. Mobilitatea purt˘ atorilor, mai mare cam de dou˘ a ori a electronilor fat¸a˘ de cea a golurilor, scade odat˘ a cu doparea cu impurit˘ a¸ti a substratului ¸si cu cre¸sterea temperaturii. Luˆ and valori tipice pentru mobilit˘ a¸ti µn = 580cm2 /V · s, µp = 230cm2 /V · s ¸si introduse ˆın raportul unitar din relatia 1.54 se obt¸ine:  W µ 230cm2 /V · s L n  = p = (1.55) W µn 580cm2 /V · s L p Rezult˘ a relat¸ia cantitativ˘ a ˆıntre coeficient¸ii de form˘ a ai celor dou˘ a canale:     W W ≈ 2, 5 (1.56) L p L n

iar ˆın cazul cˆ and se realizeaz˘ a aceea¸si lungime pentru ambele canale, L n = Lp , rezult˘ a relat¸ia ˆıntre l˘ a¸timea canalelor Wp = 2, 5Wn . [V] 6

VO V DD =5V, V pn=1V, V pp=−1V β n /β p =0,25

5

β n /β p =1

4

β n /β p =4

3 2,5

V T1=2V

N

2

V T2=2.5V V T3=3V

1

VI

45 0

1

2 2,5 3

4

5

6 [V]

Figura 1.34 Dependent¸a tensiunii de prag (logic) de comutat¸ie a inversorului ˆın funct¸ie de valoarea raportului βn /βp . Din relat¸ia 1.50 se observ˘ a c˘ a exist˘ a o dependent¸a˘ ˆıntre raportul β n /βp ¸si valoarea tensiunii de prag logic de comutat¸ie a inversorului. Pentru a obt¸ine caracteristici statice cu prag de comutat¸ie VT mai ridicat trebuie mic¸sorat˘ a l˘ a¸timea Wn a canalului n ˆın raport cu l˘ a¸timea Wp a canalului p (considerˆ and c˘ a lungimile de canal r˘ amˆ an neschimbate ), Figura 1.34.

85

CAPITOLUL 1. PORT ¸ I LOGICE

Pentru inversorul ideal ¸si caracteristica simetric˘ a (β n /βp = 1, Vpn = |Vpp |) din relat¸ia 1.44 se obt¸ine expresia pentru VIL : VIL =

1 (3VDD − 2Vpn ) 8

(1.57)

iar din relat¸ia 1.49 relat¸ia pentru VIH : VIH =

1 (5VDD − 2Vpn ) 8

(1.58)

iar suma lor rezult˘ a VIH + VIL = VDD

(1.59)

deci ˆıntr-un inversor simetric suma VIH + VIL este constant˘ a. Se pot calcula marginile de zgomot ˆın curent continuu M L , MH : ML MH

= =

VIL − VOL VOH − VIH = VDD − VIH

(1.60)

care sunt egale : MH = ML = VIL

(1.61)

Exemplul 1.15 Pentru inversorul CMOS realizat cu urm˘atorii parametrii: VDD = 5V , Vpn = 1V , Vpp = −1, 2V , βn = 100µA/V 2 , βp = 40µA/V 2 s˘ a se calculeze valorile pentru marginile de zgomot ˆın curent continuu MH , ML . Solut¸ie. Problema nu este de sintez˘ a ci este de analiz˘ a. Se observ˘ a c˘ a nu este un inversor simetric Vpn 6= |Vpp |; βn /βp = 2, 5. Valorile pentru VOL = 0V , VOH = VDD = 5V rezult˘ a din relat¸iile 1.42 ¸si 1.49 iar cele pentru VIL ¸si VIH se calculeaz˘ a ˆın felul urm˘ ator: din relat¸ia 1.44 rezult˘ a VIL VIL = 0, 57VO − 1, 06 prin introducerea expresiei lui VIL ˆın relat¸ia 1.43 se obt¸ine: 2, 5(0, 57VO − 1, 06 − 1)2 = 2(0, 57VO − 1, 06 − 5 + 1, 2)(VO − 5) − (VO − 5)2 0, 66VO2 − 0, 46VO − 13 = 0

Numai solut¸ia pozitiv˘ a a ecuat¸iei corespunde fizic problemei (VO > 0) VO = 4, 8V cu care se calculeaz˘ a VIL = 0, 57VO − 1, 06 = 1, 68V . Din relat¸ia 1.49 rezult˘ a VIH VIH = 1, 43VO + 1, 8 prin introducerea expresiei VIH ˆın relat¸ia 1.47 se obt¸ine:   (1, 43VO − 2)2 = 2, 5 2(1, 43VO + 1, 8 − 1)VO − VO2 2, 61VO2 + 9, 72VO − 4 = 0

La fel, numai solut¸ia pozitiv˘ a a ecuat¸iei corespunde fizic problemei VO = 0, 37V cu care se calculeaz˘ a VIH = 1, 43 · 0, 37 + 1, 8 = 2, 33V .

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

86 S ¸ i ia ˆın final :

ML = VIL − VOL = 1, 68 − 0 = 1, 68V

MH = VOH − VIH = 5 − 2, 33 = 2, 67V

Pe intervalul Vpn ≤ VI ≤ VDD + Vpp se observ˘ a din Figura 1.33-c c˘ a ambele tranzistoare conduc, deci exist˘ a un curent de scurtcircuit ˆıntre V DD ¸si VSS . Durata acestor impulsuri de curent de scurtcircuit, curba I DSn = −IDSp trasat˘ a punctat ˆın Figura 1.33-c, depinde de durata de excursie a tensiunii de intrare ˆın sens cresc˘ ator ˆıntre valorile Vpn ¸si VDD + Vpp ¸si ˆın sens descresc˘ ator. Durata de excursie este cu atˆ at mai scurt˘ a cu cˆ at panta fronturilor semnalelor de comand˘ a, aplicate pe poart˘ a, este mai mare. Puterea disipat˘ a Pd la inversorul CMOS are cele trei componente explicate ˆın sect¸iunea 1.3. Pd = Pdcc + Pdca = Pdcc + Pdsc + Pdc (1.62) ˆIn regim static, regiunile A ¸si E din caracteristica static˘ a, Figura 1.33-c, teoretic, puterea disipat˘ a Pdcc este zero, deoarece fie tranzistorul nMOS, fie pMOS sunt blocate, deci IDSn = −IDSp = 0. ˆIn realitate exist˘ a o putere disipat˘ a de valoare redus˘ a datorit˘ a unui curent rezidual IDS (= IDDQ ) care are dou˘ a cauze. Prima, cˆ and VGS < |Vp | exist˘ a un curent ˆın canal de ordinul µA datorit˘ a conduct¸iei de sub prag Iof f . A doua, prin jonct¸iunile polarizate invers, formate ˆıntre zonele difuzate n + ¸si substratul de tip p la nMOS ¸si zonele difuzate p + ¸si substratul de tip n la pMOS, exist˘ a un curent de conduct¸ie spre substrat. Acest curent rezidual, notat prin I DDQ curentul ˆıntre VDD ¸si VSS ˆın regim stat¸ionar, poate fi utilizat pentru o prim˘ a metod˘ a simpl˘ a de testare a unui circuit integrat CMOS. Valoarea normal˘ a a lui I DDQ se poate estima sau se poate m˘ asura la un circuit (verificat) care are o funct¸ionare normal˘ a. Dac˘ a la un circuit prin m˘ asurare se determin˘ a, ˆın regim stat¸ionar, pentru curentul absorbit de la sursa de alimentare o valoare mai mare decˆ at cea normal˘ a a lui I DDQ atunci acel circuit prezint˘ a o cale de scurtcircuit de la V DD la VSS , deci este defect. Puterea disipat˘ a ˆın regim dinamic Pdca apare pe durata cˆ and inversorul are punctul de funct¸ionare ˆın regiunile B , C , D , Figura 1.33-c, ca o putere de scurtcircuit Pdsc ¸si ca o putere consumat˘ a pentru ˆınc˘ arcarea ¸si desc˘ arcarea condensatoarelor interne ¸si de sarcin˘ a, Pdc . ˆIntr-o schem˘ a echivalent˘ a, similar˘ a celei din Figura 1.18, toate capacit˘ a¸tile sunt incluse ˆıntr-o singur˘ a capacitate de sarcin˘ a C L conectat˘ a la ie¸sire, iar puterea disipat˘ a pe aceast˘ a capacitate echivalent˘ a, conform relat¸iei 1.24, este egal˘ a cu : 2 Pdca = CL VDD f

(1.63-a)

Reducerea puterii disipate se poate realiza prin reducerea oric˘ aruia din factorii produsului din relat¸ia 1.63-a. Cea mai indicat˘ a modalitate de reducere a puterii este prin scalare complet˘ a, Tabelul 1.11 (actual, s-a ajuns la tensiuni de alimentare de VDD = 0, 8V ). Puterea disipat˘ a de scurtcircuit Pdsc , apare, ca ¸si Pdc , pe durata tranzit¸iilor de la H −L ¸si L−H cˆ and VDD este scurtcircuitat˘ a la VSS . Reducerea valorii medii a puterii Pdsc se poate obt¸ine prin comanda inversorului cu semnale cu fronturi bine formate

CAPITOLUL 1. PORT ¸ I LOGICE

87

(abrupte). Aceast˘ a component˘ a Pdsc de putere disipat˘ a este greu de calculat, practic se estimeaz˘ a ca un procent din Pdc (uzual < 0, 2Pdc ), ˆın consecint¸a˘ se consider˘ a c˘ a puterea total˘ a disipat˘ a ˆın regim dinamic este P dca ≈ 1, 2Pdc . O relat¸ie utilizat˘ a cu succes ˆın evaluarea puterii disipate P d este: 2 Pd = αCL VDD f + Iof f VDD

(1.63-b)

care ¸tine cont ¸si de componenta de putere disipat˘ a ˆın curent continuu produs˘ a de curentul de subprag Pdcc = Iof f VDD ; la dimensiuni sub 0, 1µm ¸si VDD < 1, 8V curentul Iof f are o cre¸stere pronunt¸at˘ a. α -este coeficientul (mediu) al activit˘ a¸tii de comutat¸ie (procentajul de timp ˆın care dispozitivul este ˆın funct¸iune). Mic¸sorarea frecvent¸ei nu este o cale de reducere a puterii disipate deoarece se opune tendint¸ei de cre¸stere a vitezei sistemelor. Dar printr-o analiz˘ a a sistemului se pot identifica anumite componente care pot funct¸iona ¸si la frecvent¸e mai mici decˆ at frecvent¸a maxim˘ a f˘ ar˘ a a reduce din performant¸ele de vitez˘ a ale sistemului. ˆIn plus, uneori, chiar componentele care funct¸ioneaz˘ a la frecvent¸e ridicate pot fi oprite pe anumite intervale de timp (1 − α). 1.5.2.3

Tehnologia de fabricat¸ie a inversorului CMOS

Tehnologia de fabricat¸ie a inversorului CMOS, pentru explicat¸ie, poate fi considerat˘ a o extensie a tehnologiei de realizare a tranzistorului MOS, Figura 1.31. Dificultatea care apare acum const˘ a ˆın faptul c˘ a, de data aceasta, cele dou˘ a tranzistoare complementare nMOS ¸si pMOS ar trebui implementate ˆın acela¸si substrat. Solut¸ia pentru aceast˘ a incompatibilitate, de realizare ˆın acela¸si substrat, este difuzarea ˆın substratul init¸ial a unei insule (well) care va constitui un al doilea substrat ¸si astfel unul din tranzistoare se implementeaz˘ a ˆın substratul init¸ial iar cel˘ alalt ˆın al doilea substrat (insul˘ a). Dac˘ a substratul init¸ial este de tip p se difuzeaz˘ a o zon˘ a (insul˘ a) de tip n ˆın care va fi implementat tranzistorul pMOS, ca ˆın Figura 1.35-b, iar dac˘ a substratul init¸ial este de tip n se difuzeaz˘ a o zon˘ a de tip p ˆın care va fi implementat tranzistorul nMOS. Dup˘ a realizarea insulei de substrat, etapele de fabricare a fiec˘ arui tranzistor sunt cele descrise ˆın sect¸iunea Tehnologia de fabricat¸ie a tranzistorului MOS (1.5.1.1) cu diferent¸a c˘ a atunci cˆ and se difuzeaz˘ a sursa ¸si drenul tranzistorului nMOS se difuzeaz˘ a ¸si o zon˘ a n+ de contact VDD ˆın fereastra pentru tranzistorul pMOS. Iar atunci cˆ and se difuzeaz˘ a sursa ¸si drenul tranzistorului pMOS se difuzeaz˘ a ˆın plus ¸si o zon˘ a p + de contact VSS ˆın fereastra pentru tranzistorului nMOS. Aceste difuzii de contact (cu VSS la tranzistorul nMOS ¸si cu VDD la tranzistorul pMOS) nu formeaz˘ a o jonct¸iune cu substratul respectiv, de aceea¸si conductivitate, ci un contact ohmic. Apoi, pe deasupra stratului gros de oxid de cˆ amp se realizeaz˘ a prin trasee metalice conexiunile ˆıntre : 1- zona de dren nMOS cu zona de dren pMOS care constituie ie¸sirea inversorului; 2- sursa nMOS cu zona p+ de contact VSS ¸si ˆımpreun˘ a la trasa pentru potent¸ialul VSS ; 3- sursa pMOS cu zona n+ de contact VDD ¸si ˆımpreun˘ a la trasa pentru potent¸ialul VDD .

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

88 intrare

a)

V DD

P−MOS

€€ ŽŽŽ ŽŽŽ ‚‚ ŽŽŽ ‚‚ ŽŽŽ ‚‚ “ ŽŽŽ ƒƒ„ƒ„ ”“ ƒƒ„ƒ„ ¸·¸·¸·¸· ”“ ƒƒ„ƒ„ ¸·¸·¸·¸·  …†…† ƒƒ„ƒ„ ¸·¸·¸·¸·  …†…† € € ®­ Ž Ž ‚ Ž ‚ Ž ‚ — Ž „ ˜— „ ˜— „  …† „  …† ®­®­ ®­®­ ²² ®­®­ ±²± ®­ vuvu vuvu vuvu vuvu } vuvu ~} ~} ~} °±¯°¯°¯ ~} ¬«¬« vuvuvu vuvuvu vuvuvu vuvuvu }} vuvuvu ~}~} ~}~} ~}~} °¯°¯ ~}~} ¬««¬ vuvu vuvu vuvu vuvu } vuvu ~} ~} zy ~} °¯ zy ~} |{ |{ ¬« vuvuvu |{ vuvuvu |{ vuvuvu ªª |{ vuvuvu |{ } vuvuvu |{ ~} |{ ~} |{ zyzy ~}   |{ zyzy ~} vuvu vuvu vuvu ©ª©© vuvu } vuvu ~} ~} ~}Ÿ ŸŸ ~} vu vu vu vu ¨§¨§ } vu ¨§¨§ ~} ¨§¨§ ~} ¨§¨§ ~} ¨§¨§ ~} €€

¸·¸·  … ¸·¸·  †…†… †

 …†…

N−MOS

 †…†

º¹º¹  … ‡‡ º¹º¹  ‡‡ º¹º¹ ‡‡ º¹º¹  †…†… ‡ º¹º¹  ˆ‡ˆ º¹º¹ –•š™ ‡ˆˆ † ˆ ˆ

~}

}~ À¿À¿¿À

 …†…

Intrare (polisiliciu)

Sectiune AA

n+

p+

p+

substrat n

V DD

contact metalic V DD n+

p+

p+

¾¾

 †…†

}~ ½¾½½ ~} ~} ~} ~} ~}¡ |{ zyzyzy ~}~} ¤£¤£ |{ zyzyzy ~~}}¡¡ ~} ¤£¤£ ~} ~} ¤£ ~}

insula difuzata

A

b)

iesire

n

V SS

‡‡ ’‘ ‡‡ ‘’ ‰‰ ’‘ ‰‰ ’‘ ‰‰‹‹ ’‘ ‹‹ –•š™ ˆ‡ˆˆ ’‘’‘’‘ ‡ˆˆˆ ’‘’‘’‘ Š‰ŠŠ ‘’’‘’‘ ‰ŠŠŠ µ ’‘‘’’‘ Š‰ŠŠŒ‹ŒŒ ¶µ ’‘’‘‘’ Œ‹ŒŒ µµ ¶µ¶µ µµ ¶µ¶µ µµ ¶µ¶µ µ ¶µ ~} xwxw xwxw xwxw xwxw ´³ xwxw ~} xwxw xwxw xwxw xwxw ³´´³ xwxw ~} xwxw xwxw xwxw xwxw ´³´³ xwxw |{ ~~}} |{ xwxwxwxw |{ xwxwxwxw œ|{ xwxwxwxw |{ xwxwxwxw |{´³ ¼¼»¼xwxwxwxw ~} xwxw xwxw ›œ› xwxw xwxw »»xwxw ¦¥¦¥ ~} ¦¥xw¦¥ xw xw xw xw

‹‹ Œ‹Œ

Iesire

n+

}~ À¿À¿¿À ~}

iesire n+ trasee metalice

p+

Œ

substrat p

Intrare (polisiliciu)

~} }~ ~} ~}¡ ~} ~} |{ zyzyzy ~}~}¡¡¢¢ |{ zyzyzy ~}~} žž |{ zyzyzy ~}~} ~}¢  ~} ž ~} ~} ~} ¦¥¦¥ ~}

n+

~}

V SS

~}

|{ ~} ¦¥¦¥ ~}

~}

~}

contact substrat V SS

n+

|{ |{

A

p+

Figura 1.35 Inversorul CMOS: a) schema electric˘ a; b) layout-ul pe substratul de Si ¸si sect¸iunea vertical˘ a AA ˆın substrat (tranzistorul pMOS este realizat ˆın substratul (insula) de tip n).

De asemenea, ˆınainte de difuziile de dren ¸si surs˘ a de tip n + ¸si de tip p+ , pentru cele dou˘ a tranzistoare, se realizeaz˘ a din polisiliciu traseul pentru poarta comun˘ a a inversorului care va constitui intrarea. Problema pe care o are proiectantul ˆın siliciu este de a transforma schema electric˘ a a circuitului ˆın layout. Dar cum se poate face simplu aceast˘ a trecere? Liniile ˆıntre terminalele tranzistoarelor de pe schema electric˘ a vor reprezenta trasee metalice pe layout, aceste trasee metalice au contacte metalizate la cele dou˘ a capete ca terminale. La dou˘ a linii de conexiune ˆın desenul electric, care nu trebuie s˘ a se intersecteze, le corespund dou˘ a trasee, ˆın planuri diferite, de metalizare. Un exemplu simplu de trecere de la schema electric˘ a la layout este dat ˆın Figura 1.36 pentru un inversor CMOS. Linia de conexiune ˆıntre terminalele de dren ale canalelor n ¸si p de pe schema electric˘ a, Figura 1.36-a, este substituit˘ a cu o tras˘ a metalic˘ a pe suprafat¸a superioar˘ a a oxidului de cˆ amp evident, cu contacte la cele dou˘ a capete (p˘ atratele ˆınegrite de la capetele trasei metalice), Figura 1.36-b. La fel, conexiunea zonelor de surs˘ a la liniile de VSS ¸si VDD se realizeaz˘ a prin trase metalice, ˆın

89

CAPITOLUL 1. PORT ¸ I LOGICE

V DD Gp

S

D

Intrare

D

Iesire

D

D

a)

Gp

É

Gn Cp+

S

b)

Â×ØØÂ× ØÂ×ØÂ× ØÂ×ØÂ× ØÂ×ØÂ× ØÂ×ØÂ× ØÂ×ØÂ× Ø×Ø× äÂãäÂã äãÂäÂã äÂãäÂã äÂãäÂã äÂãäÂã äÂãäÂã äãäã äãÂäãÂäÂãäÂã äÂãäÂã äÂãäÂã ÙÂäÂãäÂã ÚÙÂäÂãäÂã ÚÙÂäãäã ÚÙÂÚÙ äÂãäãÂäÂãäÂã äÂãäÂã äÂãäÂã ÙÂÙÂäÂãäÂã ÚÂÚÂÙÙ äÂãäÂã ÚÂÚÂÙÙ äãäã ÚÂÚÂÙÙ ÚÚÙÙ äãÂäÂã äÂãäÂã äÂãäÂã äÂãäÂã ÙÂäÂãäÂã ÚÂÙ äÂãäÂã ÚÂÙ äãäã ÚÂÙ ÚÙ äãÂäÂã äÂã äÂã äÂã äÂã äã ÜÂÛÜÂÛ ÜÂÛÜÂÛ ÜÂÛÜÂÛ ÜÂÛÜÂÛ ÜÂÛÜÂÛ ÜÂÛÜÂÛ ÜÛÜÛ V DD

pMOS

Sursa Poarta Dren

Intrare

Iesire

Dren

nMOS

V SS e)

Poarta Sursa

V DD S

V DD

Contact la substart V DD

D

Gp

Intrare

Iesire

D

D S

V SS

ÊÉÊ

S

Gp

Gn

ÎÂÍÎÂÍ ÎÂÍÎÂÍ ÎÂÍÎÂÍ ÎÍÎÍ ÑÂÑÂÒÂÑÒÂÑ ÒÂÑÒÂÑ ÒÂÑÒÂÑ ÒÂÑÒÂÑ ÒÑÒÑ ÎÍÂÎÂÍ ÎÂÍ ÎÍ ÇÈ ÑÂÒÂÑ ÒÂÑ ÒÂÑ ÒÂÑ ÒÑ ÁÂÁÂÃÂÁÁÂÃ ÃÂÁÁÂÃ ÃÂÁÁÂÃ ÃÁÁÃ ÌÂËÌÂË ÌËÌË ÁÂÃÂÁ ÃÂÁ ÃÂÁ ÃÁ ÕÂÕÂÖÂÖÂÕÕ ÖÖÕÕ ÁÂÁÂÃÂÁÃÂÁ ÃÂÁÃÂÁ ÃÂÁÃÂÁ ÃÁÃÁ ÐÏÂÐÏÂÐÂÏÐÂÏ ÐÂÏÐÂÏ ÄÅÐÏÐÏ ÄÆ ÓÂÓÂÔÂÓÔÂÓ ÔÂÓÔÂÓ ÔÂÓÔÂÓ ÔÂÓÔÂÓ ÔÓÔÓ C n+

C n+

Gn

V SS

S

Contact la substart V SS

Gn

V SS

Cp+

c)

d)

ÂÝÞÞÂÝ ÞÂÝÞÂÝ ÞÂÝÞÂÝ ÞÂÝÞÂÝ ÞÂÝÞÂÝ ÞÂÝÞÂÝ ÞÝÞÝ åÂåÂæåæå ÞÂÝÞÂÝ æåæå ÞÂÝÞÂÝ æåæå ÞÂÝÞÂÝ æåæå ÞÂÝÞÂÝ æåæå ÞÂÝÞÂÝ ÞÂÝÞÂÝ ÞÝÞÝ åÂåÂæÂåæÂå æÂåæÂå æÂåæÂå æÂåæÂå àÂßàÂß æåæå àÂßàÂß àÂßàÂß àßàß åÂåÂæÂåæÂå æÂåæÂå æÂåæÂå æÂåæÂå àÂßàÂß æåæå àÂßàÂß àÂßàÂß àßàß åÂåÂæÂåæÂå æÂåæÂå æÂåæÂå æÂåæÂå àÂßàÂß æåæå àÂßàÂß àÂßàÂß àßàß åÂåÂæÂåæÂå âá æÂåæÂå âá æÂåæÂå âá æÂåæÂå âá æåæå âÂá âÂá âá âáâÂá âáâÂá âáâÂá âáâÂá âÂáâÂá âÂáâÂá âáâá âÂá âÂá âÂá âÂá âÂá âÂá âá V DD

Poarta

Dren

pMOS

Sursa

Intrare

Iesire

Sursa

nMOS

Poarta

Dren

V SS f)

Figura 1.36 Succesiunea etapelor de transformare a schemei electrice ˆın layout pentru un inversor CMOS

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

90

acela¸si timp se conecteaz˘ a ¸si contactele de substrat p + ¸si n+ respectiv la trasele VSS ¸si VDD , Figura 1.36-c. S¸i ˆın final, conexiunea comun˘ a de poart˘ a este substituit˘ a cu trasa de siliciu policristalin, Figura 1.36-d. Layout-ul este complet dac˘ a ¸si simbolurile de tranzistoare sunt substituite cu geometria acestora pe siliciu, Figura 1.36-e ¸si 1.36-f (sau realizat dou˘ a variante de layout pentru tranzistoarele inversorului CMOS). Pentru circuite mai complexe exist˘ a reguli de trecere care genereaz˘ a p˘ art¸i de layout cu un grad mare de repetabilitate (repetabilitatea este o caracteristic˘ a dorit˘ a ˆın obt¸inerea unui layout deoarece determin˘ a un cost mai sc˘ azut ¸si poate duce la un circuit cu fiabilitate mai ridicat˘ a). 1.5.2.4

Regimul dinamic al inversorului

Pe lˆ ang˘ a nivelurile de tensiune, definite ˆın regimul static pe caracteristica VO = f (VI ), ˆın practica sistemelor digitale sunt necesari ¸si parametrii de timp definit¸i ˆın regimul dinamic. Parametrii de timp pentru semnalul de ie¸sire: timpul de cre¸stere τLH ¸si timpul de de descre¸stere τHL sunt definit¸i ca ˆın Figura 1.15-a iar timpul de propagare H − L, τpHL , ¸si timpul de propagare L − H, τpHL , sunt definit¸i ca ˆın Figura 1.15-b. Timpul de propagare pe un nivel inversor se calculeaz˘ a cu relat¸ia 1.20, τp = (τpHL + τp LH )/2. Se consider˘ a dou˘ a inversoare CMOS ˆınseriate cu reprezentarea tuturor capacit˘ a¸tilor parazite ale fiec˘ arui tranzistor, Figura 1.37-a. ˆIn aceast˘ a reprezentare CGD ¸si CGS sunt capacit˘ a¸tile gril˘ a-dren ¸si gril˘ a-surs˘ a datorate suprapunerii part¸iale a trasei de gril˘ a peste zonele difuzate dren ¸si surs˘ a, C DB ¸si CSB sunt capacit˘ a¸tile dependente de tensiune ale jonct¸iunilor dren-substrat ¸si surs˘ a substrat, C GB capacitatea gril˘ asubstrat este capacitatea stratului de oxid de sub poarta fiec˘ arui tranzistor iar C cox este capacitatea datorit˘ a conexiunilor (traselor) ˆın polisiliciu sau metalice ˆıntre ie¸sirea primului inversor ¸si intrarea urm˘ atorului inversor. Calculul tensiunii de ie¸sire v O , luˆ and ˆın considerare toate aceste capacit˘ a¸ti, devine foarte complicat chiar ¸si pentru un circuit simplu. De foarte multe ori, ˆın practic˘ a, pentru simplificare calculului, toate aceste capacit˘ a¸ti sunt ˆınglobate ˆıntr-o singur˘ a capacitate echivalent˘ a C L , considerat˘ a ca o capacitate de sarcin˘ a, conectat˘ a la iesirea inversorului, Figura 1.37-b, conform relat¸iei: CL = CGDn + CGDp + CDBn + CDBp + Ccox + CGB (1.64) ˆIn capacitatea de sarcin˘ a echivalent˘ a CL nu sunt incluse CSBn ¸si CSBp deoarece ambele surse sunt conectate la substraturile corespunz˘ atoare deci nu au un efect ˆın regim dinamic. De asemenea, nu sunt incluse ˆın C L capacit˘ a¸tile CGSn ¸si CGSp deoarece acestea sunt conectate ˆıntre nodul de intrare ¸si mas˘ a respectiv ˆıntre nodul de intrare ¸si VDD . Studiul regimului dinamic se face pe circuitul echivalent din Figura 1.37-b aplicˆ and la intrare un semnal cu variat¸ia dreptunghiular˘ a v I ¸si determinˆ and variat¸ia ˆın timp a tensiunii de ie¸sire vO . Pentru variat¸ia 0 → 1 la intrare, condensatorul C L ˆınc˘ arcat la tensiunea VDD se va desc˘ arca prin tranzistorul nMOS (pMOS este blocat), tensiunea vO avˆ and o variat¸ie exponent¸ial˘ a de la VOH la VOL . Din variat¸ia ˆın timp a tensiunii vO se pot determina parametrii de timp τHL ¸si τpHL . Iar pentru variat¸ia 1 → 0 la intrare, CL se ˆıncarc˘ a pˆ an˘ a la tensiunea VDD prin tranzistorul pMOS (nMOS este blocat), tensiunea vO avˆ and o variat¸ie exponent¸ial˘ a de la VOL la VOH ; din variat¸ia ˆın

91

CAPITOLUL 1. PORT ¸ I LOGICE

V DD

pMOS

S

nMOS

D vI

V DD

C SBp

C GSp

C DBp C DBn

C GDp C GDn

vO

iDp vO

vI vI

iC

D pMOS

iDn nMOS

S C GSn

C COX

C SBn

a)

CL

C GB b)

Figura 1.37 ˆ Inserierea a dou˘ a inversoare CMOS: a) reprezentarea capacit˘ a¸tilor interne (parazite) pentru un inversor; b) schem˘ a echivalent˘ a simplificat˘ a. timp a tensiunii vO se pot determina parametrii de timp τLH ¸si τpLH . Pentru calculul acestor parametri de timp se vor expune succint urm˘ atoarele patru metode: 1- Simulare ˆın SPICE; 2- Metoda curentului constant; 3- Metoda analitic˘ a; 4- Metoda empiric˘ a. 1. Simularea ˆın SPICE (NIVEL2 ¸si NIVEL3, vezi 1.5.1.2 ¸si exemplul de simulare, ANEXA1 din vol. II) se poate face pe baza circuitului din Figura 1.37-a, cu luarea ˆın considerare a tuturor efectelor de ordinul al doilea ˆın modelul matematic IDS = f (VDS , VGS ) al tranzistorului ¸si a parametrilor de proces, ˆın consecint¸a˘ valorile obt¸inute pentru parametrii de timp au abateri minime fat¸a˘ de cele reale. ˆIn practic˘ a, de multe ori, pentru determin˘ ari f˘ ar˘ a precizie ridicat˘ a dar efectuate simplu ¸si rapid, sunt utilizate una din celelalte (urm˘ atoare) trei metode. 2. Metoda curentului constant. Aceast˘ a metod˘ a, dup˘ a cum ¸si denumirea indic˘ a, consider˘ a valori constante pentru curentul de ˆınc˘ arcare ¸si desc˘ arcare ale condensatorului CL , aproximate prin valori medii ImHL ¸si ImLH . ˆIn consecint¸a˘, cu aceste valori medii, se pot calcula simplu parametrii τpHL ¸si τpLH ˆın felul urm˘ ator: τpHL =

CL · ∆VHL CL · (VOH − V50% ) = ImHL ImHL

(1.65)

τpLH =

CL · (V50% − VOL ) CL · ∆VLH = ImLH ImLH

(1.66)

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

92

Iar valorile ImHL ¸si ImLH se calculeaz˘ a ca medie aritmetic˘ a ale curent¸ilor prin tranzistoarele nMOS respectiv pMOS ˆın punctele de ˆınceput ¸si de sfˆ ar¸sit ale tranzit¸iei: 1 [iC (pentru vI = VOH , vO = VOH ) + iC (pentru vI = VOH , vO = V50% )] 2 (1.67) 1 ImLH = [iC (pentru vI = VOL , vO = V50% ) + iC (pentru vI = VOL , vO = VOL )] 2 (1.68) 3. Metoda analitic˘ a. Variat¸ia tensiunii vO ˆın timp poate fi determinat˘ a prin rezolvarea ecuat¸iei de stare pentru nodul de ie¸sire al circuitului din Figura 1.37-b ImHL =

CL ·

dvO = i C = i Dp − i Dn dt

(1.69)

arile date prin relat¸iile 1.33 ¸si 1.36. ˆın care pentru iDp ¸si iDn sunt considerate exprim˘ La excursia H − L a tensiunii de ie¸sire (pMOS este blocat) tranzistorul nMOS la ˆınceput este ˆın regimul de saturat¸ie iar cˆ and v O ≤ VDD − V pn trece ˆın regimul liniar. Pentru excursia L − H a tensiunii de ie¸sire (nMOS este blocat) tranzistorul pMOS la ˆınceput este ˆın regim de saturat¸ie ¸si apoi cˆ and v O ≥ VDD + Vpp trece ¸si ˆın regimul liniar. ˆIn rezolvarea ecuat¸iei 1.69 se jonct¸ioneaz˘ a intervalul de timp cˆ and tranzistorul este ˆın regim liniar de funct¸ionare, se utilizeaz˘ a relat¸ia 1.33, cu intervalul de timp cˆ and tranzistorul este ˆın regimul de saturat¸ie, se utilizeaz˘ a relat¸ia 1.36. Se obt¸in urm˘ atoarele expresii pentru τHL ¸si τLH [Weste 0 92]. τHL ≈

CL K · VDD βn

(1.70)

τLH ≈

K CL · VDD βp

(1.71)

ˆın care K = 3 ÷ 4 pentru VDD = 3 ÷ 5V , ¸si Vpn ¸si |Vpn | au valori ˆıntre (0, 5 ÷ 1)V . Pentru un inversor la care factorii de form˘ a ai celor dou˘ a tranzistoare sunt egali  W W = (rezult˘ a din relat ¸ ia 1.54 c˘ a β = 2β , pentru c˘ a µn = 2µp ) se obt¸ine n p L n L p din 1.70 ¸si 1.71 o relat¸ie uzual˘ a cunoscut˘ a ˆın practica proiect˘ arii: τHL =

τLH 2

(1.72)

adic˘ a ˆın semnalul de ie¸sire vO (t) tranzit¸iile nu sunt egale, durata tranzit¸iei de la L → H este aproximativ de dou˘ a ori mai lung˘ a decˆ at durata tranzit¸iei de la H → L. Pentru obt¸inerea unui semnal de ie¸sire cu tranzit¸ii H − L ¸si L − H simetrice, la ie¸sirea inversorului, trebuie ca βn /βp = 1 ceea ce implic˘ a, pentru lungimi egale de canal, s˘ a se realizeze canalul p cu o l˘ a¸time cam de dou˘ a pˆ an˘ a la trei ori mai mare decˆ at l˘ a¸timea canalului n (µn ≈ 2µp ). Wp ≈ (2 ÷ 3)Wn

(1.73)

4. Metoda empiric˘ a. Prin simulare ˆın SPICE, pentru o variant˘ a de inversor, se determin˘ a valoarea exact˘ a a constantei K din relat¸iile 1.70 ¸si 1.71. Apoi,utilizˆ and aceast˘ a valoare determinat˘ a pentru K, pentru alte variante de inversor, realizate ˆın aceea¸si tehnologie, se calculeaz˘ a τHL ¸si τLH cu relat¸iile 1.70 ¸si 1.71.

93

CAPITOLUL 1. PORT ¸ I LOGICE

Exemplul 1.16 Pentru o turn˘atorie de siliciu care are un proces cu urm˘atorii parametrii: µn Cox = 30µA/V 2 , µp Cox = 10µA/V 2 , L = 1µm atˆ at pentru canal n cˆ at ¸si pentru canal p, Vpn = 1, 0V , Vpp = −1, 5V , Wmin = 2µm s˘ a se dimensioneze un inversor CMOS, l˘ a¸timile de canal Wn ¸si Wp , ˆıncˆ at s˘ a se obt¸in˘ a urm˘ atoarele caracteristici: 1. VT = 2V pentru VDD = 5V ; 2. Durata timpului de c˘ adere τHL s˘ a fie de 2ns cˆ and tensiunea vO are variat¸ia de la 4V la 1V . Solut¸ie. Considerˆ and saltul ˆın vI instantaneu de la 0 la 5V rezult˘ a c˘ a atunci cˆ and vO = 4V tranzistorul nMOS trece din regimul de saturat¸ie ˆın regimul liniar (VDS = 4V ≤ VGS − VP = 5V − 1V = 4V ) deci ˆın ecuat¸ia 1.69 se introduce exprimarea din relat¸ia 1.33: CL

1 Wn  dvO 2 = − µn · Cox · 2(VOH − Vpn )vO − vO dt 2 Ln

iar prin integrare se obt¸ine τHL

Z

vO =1

=

2 · 10−16 = −2C

=

1 × 10−12 n ×4 30 × 10−16 × W Ln

vO =4

µn · Cox ·

Wn Ln

dvO = 2 [2(VOH − Vpn )vO − vO ]

din care se obt¸ine pentru canalul n

Wn = 8, 1 Ln ¸si pentru Ln = 1µm rezult˘ a Wn = 8, 1µm Condit¸ia impus˘ a VT = 2V ne ajut˘ a s˘ a obt¸inem dimensiunea inversorului. Conform relat¸iei 1.46 se poate scrie: q 2=

Vpn +

βp (VDD βn

1+

iar raportul βn /βp se obt¸ine ca fiind

q

+ Vpp )

βp βn

n µn Cox W βn 9 Ln = = W p βp 4 µp Cox Lp

rezult˘ a l˘ a¸timea Wp (pt Lp = 1) Wp =

3 µn Wn 4 βp × = × × 8, 1 = 10, 8µm βn µp 9 1

Deci inversorul cu dimensiunile L = 1µm, Wn = 8, 1µm ¸si Wp = 10, 8µm satisface condit¸iile impuse.

Exemplul 1.17 Pentru un oscilator ˆın inel s˘a se determine frecvent¸a de oscilat¸ie. Solut¸ie. Un oscilator ˆın inel, dup˘ a cum ¸si denumirea indic˘ a, se obt¸ine prin conectarea ˆın inel a unui num˘ ar n impar de inversoare. ˆInchiderea buclei peste un singur inversor vI = vO determin˘ a o instabilitate deoarece avˆ and variat¸ii permanent opuse se comand˘ a ca intrarea s˘ a se modifice din 1 → 0 ¸si invers, la fel ¸si ie¸sirea din 0 → 1 ¸si invers. Singurul punct de funct¸ionare cˆ and vI = vO , este la tensiunea de prag de comutat¸ie a inversorului VT , dar

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

94

dup˘ a cum s-a v˘ azut din Figura 1.33-c acesta nu este un punct stabil de funct¸ionare. Acela¸si rat¸ionament se poate extinde cˆ and sunt cuprinse ˆın bucl˘ a un num˘ ar impar de inversoare, Figura 1.38-a. Considerˆ and inversoarele identice cu τHL = τLH ¸si τpHL = τpLH = τp variat¸iile tensiunilor vO1 , vO2 ¸si vO3 sunt reprezentate ˆın Figura 1.38-b. Perioada T a oscilat¸iilor se poate calcula simplu : T = τpHL1 + τpLH1 + τpHL2 + τpLH2 + τpHL3 τpLH3 = 2τp + 2τp + 2τp = 6τp iar frecvent¸a oscilat¸iilor rezult˘ a (pentru un num˘ ar n de inversoare)

vO1

1

vO2

2 C L1

vO V OH

vO2

vO1

3

vO3

C L2

vO3

vO2

C L3 vO1

vO3 V 50%

t

V OL τ pLH2 τ pLH3 τ pHL1 τ pHL2 τ pHL3 τ pLH1

T

Figura 1.38 Oscilatorul ˆın inel: a) structur˘ a cu trei inversoare; b) formele de variat¸ie ale tensiunilor vO1 , vO2 , vO3 f=

1 1 = T 2nτp

(1.74)

Aceast˘ a relat¸ie poate fi utilizat˘ a pentru determinarea timpului de propagare τp pentru un inversor. ˆIn tehnologia respectiv˘ a, pe o plachet˘ a se realizeaz˘ a pentru test un num˘ ar impar de inversoare, ˆın general un num˘ ar mai mare de trei, care se conecteaz˘ a ˆın inel. ˆIn urma m˘ asur˘ arii frecvent¸ei de oscilat¸ie se poate determina, cu relat¸ia 1.74, timpul de propagare. Pentru tehnologia respectiv˘ a, apoi, se poate exprima timpul de propagare al circuitelor mai complexe ca multiplii de τp (vezi metoda efortului logic).

1.5.3

Familia de port¸i logice CMOS

Circuitul inversor CMOS, ca ¸si inversorul bipolar pentru port¸ile TTL, este celula de baz˘ a ˆın structurarea port¸ilor CMOS; port¸ile CMOS pot fi obt¸inute prin extensia circuitului inversor, respectiv port¸ile CMOS pot fi reduse la o structur˘ a echivalent˘ a de inversor.

95

CAPITOLUL 1. PORT ¸ I LOGICE

Inversorul CMOS prin cele dou˘ a canale n ¸si p are o complementaritate ˆın modul de a fi comandat, o comand˘ a de 1 logic pentru canalul n este o comand˘ a de 0 logic pentru canalul p ¸si invers, ceea ce permite ca ramura p a inversorului s˘ a fie privit˘ a ca duala ramurii n ¸si invers. Dar, realizˆ and conexiuni (ret¸ele) care pot fi serie, paralel, serie-paralel ¸si paralel-serie cu ramuri de tip n ˆın conceptul dualit˘ a¸tii ˆınseamn˘ a c˘ a ret¸eaua corespunz˘ atoare format˘ a din ramuri p trebuie s˘ a fie respectiv paralel, serie, paralel-serie ¸si serie-paralel. Duala unei relat¸ii logice se obt¸ine conform relat¸iei 1.2 iar pentru axiomele ¸si teoremele algebrei booleene formele duale sunt prezentate ˆın Tabelul 1.2 (duala lui AND este OR ¸si invers). Mai multe tranzistoare ˆın conduct¸ie, fie cu canal n fie cu canal p, toate avˆ and aceea¸si tensiune de prag ¸si neglijˆ and efectul de polarizare a substratului, cˆ and sunt ˆıntr-o ret¸ea, conectate ˆın paralel sau ˆın serie, pot fi substituite cu un singur tranzistor echivalent ˆın conduct¸ie. Deoarece conductant¸a canalului este proport¸ional˘ a cu coeficientul de form˘ a al tranzistorului W/L, dimensiunile canalului tranzistorului echivalent al ret¸elei se calculeaz˘ a cu relat¸ii similare conect˘ arii ˆın serie sau ˆın paralel a conductant¸elor. Astfel coeficientul de form˘ a al tranzistorului echivalent pentru conectarea a k tranzistoare ˆın paralel se calculeaz˘ a cu relat¸ia: 

W L



=

echivalent

 k  X W i=0

L

(1.75) i

respectiv pentru conectarea a k tranzistoare ˆın serie:   1 W = Pk 1 L echivalent i=0 ( W ) L i 1.5.3.1

(1.76)

Poarta NOR ¸si NAND cu dou˘ a intr˘ ari

Amintind faptul c˘ a operatorul OR poate fi modelat prin conexiunea paralel˘ a a elementelor de comutat¸ie iar operatorul AND prin conexiunea serie apare foarte simpl˘ a modalitatea de a structura port¸ile NOR ¸si NAND. Structura port¸ii NOR cu dou˘ a intr˘ ari (NOR2), Figura 1.39-a, const˘ a din dou˘ a inversoare la care ramurile canalelor n formeaz˘ a o ret¸ea paralel˘ a iar ramurile canalelor p formeaz˘ a o ret¸ea serie. Cˆ and cel put¸in una din intr˘ arile A sau B este ˆın starea H ret¸eaua n creaz˘ a o cale de conduct¸ie a nodului de ie¸sire spre mas˘ a, V O =VOL , ret¸eaua complementar˘ a p nu este ˆın conduct¸ie. Iar cˆ and ambele intr˘ ari sunt ˆın starea L, ret¸eaua p creeaz˘ a o cale de conduct¸ie ˆıntre V DD ˆınspre nodul de ie¸sire, VO = VOH , ret¸eaua n nu este ˆın conduct¸ie. Pentru determinarea tensiunii de prag (logic) de comutat¸ie a port¸ii VT (VA = VB = VO = VT ) poarta NOR cu dou˘ a intr˘ ari este substituit˘ a cu structura echivalent˘ a a unui inversor cu coeficient¸ii β n /2 ¸si 2βp , Figura 1.39-b. Rescriind relat¸ia 1.46 pentru ace¸sti coeficient¸i rezult˘ a expresia pentru tensiunea de prag de comutat¸ie a port¸ii NOR2.

VT (N OR2) =

Vpn +

q

βp 4βn

1+

(VDD − |Vpp |) q βp 4βn

(1.77)

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

96

Dac˘ a βn = βp ¸si Vpn = |Vpp | tensiunea de prag de comutat¸ie a inversorului CMOS este VDD /2 pe cˆ and a port¸ii NOR2 din relat¸ia 1.77 rezult˘ a VT (N OR2) =

VDD + Vpn 3

(1.78)

care este diferit˘ a de VDD /2. De exemplu, pentru VDD = 5V ¸si Vpn = |Vpp | = 1V se obt¸ine VT (IN V ERSOR) = 2, 5V ¸si VT (N OR2) = 2V . Relat¸ia 1.77 pote fi utilizat˘ a pentru proiectarea port¸ii NOR2 ˆın care dac˘ a se impune tensiunea de prag (logic) de comutat¸ie VT rezult˘ a relat¸ia ˆıntre βn ¸si βp . De exemplu, pentru VT = VDD /2 ¸si Vpn = |Vpp | rezult˘ a βp = 4βn (cu Ln = Lp → Wp = 4Wn ). ,, Layoutul port¸ii NOR2 este compus dintr-o “linie de difuzie de tip p+ pentru zonele de surs˘ a ¸si dren ale celor dou˘ a tranzistoare T3 ¸si T4 realizate ˆın insula difuzat˘ a de tip n ¸si la fel o linie de difuzie de tip n+ ˆın substrat care realizeaz˘ a zonele de dren ¸si surs˘ a ale tranzistoarelor T1 ¸si T2. Poarta comun˘ a pentru nMOS T1, pMOS T3 ¸si poarta comun˘ a pentru nMOS T2 ¸si pMOS T4 sunt sub forma a dou˘ a bare (trase) verticale realizate din polisiliciu. La extremitatea de sus ¸si extremitatea de jos a layoutului sunt trasele metalice pentru VDD ¸si VSS (mas˘ a) cu conexiunile metalizate (p˘ atr˘ a¸tele ˆınegrite) corespunz˘ atoare la zonele (liniile) de difuzie p + ¸si n+ respectiv din insula difuzat˘ a n ¸si din substrat. Trasa de ie¸sire VO , metalic˘ a sau din polisiliciu, conecteaz˘ a ˆıntre ele cele dou˘ a linii difuzate de canal n + ¸si p+ . Realizarea tranzistoarelor ˆın linii de difuzie paralele simplific˘ a atˆ at layoutul cˆ at ¸si tehnologia; toate zonele de tip n + se realizeaz˘ a cu o singur˘ a difuzie la fel ¸si toate zonele de tip p + , iar barele verticale ale port¸ilor de polisiliciu servesc ¸si ca m˘ a¸sti cu autoaliniere ˆın procesul de difuzie. Acest mod de organizare structurat˘ a constituie o condit¸ie ˆın conceperea unor metode de generare automat˘ a a layoutului. Linie de difuzie p+

V DD

V DD T3 A

T4

V DD

βp β p/2

βp VO

VI

VO

βn

T2

βn

2 βn

V SS a)

V SS b)

T4

T1

T2

Insula n

B T1

T3

VO

V SS c)

A B Linie de difuzie n+

Figura 1.39 Poarta NOR cu dou˘ a intr˘ ari: a) stuctur˘ a; b) schema inversorului echivalent port¸ii; c) layoutul port¸ii structurat pe o linie de difuzie n + ¸si o linie de difuzie p+ .

97

CAPITOLUL 1. PORT ¸ I LOGICE

Poarta NAND cu dou˘ a intr˘ ari (NAND2), Figura 1.40-a, poate fi privit˘ a ca fiind format˘ a din dou˘ a inversoare la care canalele n formeaz˘ a o ret¸ea serie iar canalele p formeaz˘ a o ret¸ea paralel˘ a. Se creeaz˘ a o cale de conduct¸ie de la nodul de ie¸sire spre mas˘ a, VO = VOL , prin tranzistoarele T1 ¸si T2 ˆın serie numai cˆ and ambele intr˘ ari A,B sunt ˆın nivelul H, iar tranzistoarele T3 ¸si T4 ale ret¸elei complementare p sunt blocate. Pentru toate celelalte trei combinat¸ii ale nivelurilor intr˘ arilor A,B unul sau ambele tranzistoare ale ret¸elei p conduc, ret¸eaua n nu conduce, iar tensiunea de ie¸sire are valoarea VO = VOH . Linie de difuzie p+

T3

T4

2βp

A

B

V DD

V DD

V DD

VO

VI T2

VO

V SS

V SS a)

b)

T4

T1

T2

Insula n

βn/2

T1

T3

VO

V SS c)

Linie de difuzie n+

Figura 1.40 Poarta NAND cu dou˘ a intr˘ ari: a) stuctur˘ a; b) schema inversorului echivalent port¸ii; c) layoutul port¸ii structurat pe o linie de difuzie n + ¸si o linie de difuzie p+ . Tensiunea de prag (logic) de comutat¸ie a port¸ii, relat¸ia 1.46, aplicat˘ a pentru inversorul echivalent din Figura 1.40-b, are expresia: q β Vpn + 2 βnp (VDD − |Vpn |) q (1.79) VT (N AN D2) = β 1 + 2 βnp

Pentru valorile βn = βp , Vpn = |Vpn |, la care pragul logic de comutat¸ie al inversorului CMOS este VDD /2 , port¸ii NAND2 ˆıi corespunde o tensiune de prag logic de comutat¸ie: 2VDD − |Vpp | VT (N AN D2) = (1.80) 3 Din relat¸ia 1.79 rezult˘ a c˘ a pentru a obt¸ine un prag logic de V DD /2 cˆ and Vpn = |Vpp | este necesar˘ a ˆındeplinirea condit¸iei βn = 4βp ; relat¸ia 1.80 poate fi utilizat˘ a pentru dimensionarea layoutului port¸ii NAND2 cˆ and se impune o anumit˘ a valoare pentru VT .

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

98

Layoutul port¸ii NAND2, Figura 1.40-c, este structurat ¸si realizat pe dou˘ a linii de difuzie, ˆın mod asem˘ an˘ ator cu cel al port¸ii NOR2 din Figura 1.39-c. Trecerea de la schema electric˘ a a circuitului la layout se poate face conform succesiunii de pa¸si prezentat¸i ˆın Figura 1.36. Totu¸si, pentru circuite complexe, aceast˘ a trecere direct˘ a poate fi dificil˘ a ˆın consecint¸a˘ se utilizeaz˘ a init¸ial o form˘ a simplificat˘ a/intermediar˘ a de layout (stick diagram). Forma simplificat˘ a cont¸ine informat¸ii despre plasarea relativ˘ a a tranzistoarelor ¸si a conexiunilor dintre acestea, Figura 1.41. ˆIn aceste forme simplificate suprafet¸ele difuzate (liniile de difuzie n + ¸si p+ ) sunt reprezentate sub forma unor dreptunghiuri (Wn ¸si Wp ), traseele metalice sunt simple linii de conexiune avˆ and pentru contacte punctele evident¸iate, iar barele de polisiliciu pentru port¸i sunt coloane ha¸surate. Conform acestor reguli pentru trecerea din Figura 1.39, de la circuitul port¸ii NOR2 la layoutul corespunz˘ ator, se poate realiza init¸ial layoutul simplificat din Figura 1.41-a, iar pentru trecerea din Figura 1.40, corespunz˘ ator port¸ii NAND2, este realizat init¸ial layoutul simplificat din Figura 1.41-b. Apoi de la layoutul simplificat se trece la forma complet˘ a de layout. V DD Wp

Wn V SS a)

èQçèQç èçèç èçQèçQèçèç èQçèçQèçèç èQçèQç èçèç èçQèç A

êéêé

NOR

V DD

êéêé

Wp

êéêé B

VO

êéêé êé

Linii de difuzie Wn V SS b)

ëQ ë ì ëQ ìëìë ëQ ëQ ìëìë ëQ ëQ ë ì ëQ ìëìë ëQ ëQìë A

îíîí

NAND

îíîí îíîí B

VO

îíîí îí

Figura 1.41 Layoutul simplificat / intermediar: a) pentru port˘ a NOR2; b) pentru poart˘ a NAND2.

1.5.3.2

Port¸i logice complexe

La implementarea port¸ilor complexe, care cont¸in multe variabile de intrare, aspectele implicite care se impun a fi optimizate sunt: mic¸sorarea num˘ arului de tranzistoare folosite ¸si mic¸sorarea ariei utilizate pe placheta de siliciu.Evident¸ierea acestor aspecte va rezulta prin exemplificarea implement˘ arii unei port¸i care realizeaz˘ a urm˘ atoarea relat¸ie logic˘ a: Z = A(D + E) + BC Pentru expresia nenegat˘ a a relat¸iei se va construi o ret¸ea/graf similar ca la modelarea acesteia cu contacte (prin structura sa o poart˘ a CMOS modeleaz˘ a o expresie negat˘ a). (De fapt se poate porni de la desenarea unei ret¸ele cu contacte, care modeleaz˘ a funct¸ia respectiv˘ a, ca ˆın Figura 1.9, ¸si din care se deduce graful expresiei nenegate). Deoarece ˆın locul contactelor se utilizeaz˘ a tranzistoare (canale) n sau p, pentru o linie ce ar cont¸ine un contact (ˆın ret¸eaua de contacte), acum ˆın graf, se va desena un simplu arc pe care se noteaz˘ a variabila de comand˘ a a port¸ii tranzistorului respectiv. (Un

99

CAPITOLUL 1. PORT ¸ I LOGICE

Z=A(D+E)+BC V DD

VO

D

D

A B

A

V DD D D

A

B

VO

E

A E

B

E

B

C

C

VO

Z

E

A

C D

a)

C

b)

B

E

C

c)

Figura 1.42 Explicativ˘ a pentru obt¸inerea unei structuri de ret¸ea CMOS pentru relat¸ia Z = A(D + E) + BC: a,b) realizarea grafului pentru ret¸eaua n ¸si deducerea grafului pentru ret¸eaua dual˘ a p; c) structura port¸ii obt¸inute prin maparea grafurilor pentru ret¸eaua n ¸si ret¸eaua p.

tranzistor este echivalent unui contact). Conexiunea dintre liniile cu contacte va reprezenta acum vˆ arfurile (nodurile) grafului. Astfel se obt¸ine graful pentru ret¸eaua n, conturul ˆıngro¸sat din Figura 1.42-a. Pe baza grafului ret¸elei n se va construi graficul ret¸elei duale p ˆın felul urm˘ ator: ˆın fiecare suprafat¸a˘ ˆınchis˘ a sau semiˆınchis˘ a format˘ a de graful ret¸elei n se fixeaz˘ a un nou vˆ arf (punctele cerculet¸e), se unesc cˆ ate dou˘ a din aceste vˆ arfuri prin cˆ ate un nou arc astfel ˆıncˆ at aceste arce noi s˘ a intersecteze doar o singur˘ a dat˘ a un arc al ret¸elei init¸iale n, fiec˘ arui arc nou i se asigneaz˘ a aceea¸si variabil˘ a ca aceea a arcului pe care l-a intersectat - graful nou obt¸inut este graful ret¸elei duale p, desenat cu linie ˆıntrerupt˘ a ˆın Figura 1.42-a. Avˆ and, acum, cele dou˘ a grafuri desenate separat, ˆın Figura 1.42-b, se poate, printr-o mapare unu-la-unu, trece de la aceste grafuri la ret¸ele de tranzistoare n ¸si p, Figura 1.42-c. Fiec˘ arui arc din graf ˆıi corespunde un tranzistor pe poarta c˘ aruia se aplic˘ a variabila ˆınscris˘ a pe acel arc; punctelor cerculet¸e le corespund conexiunile ˆıntre tranzistoarele respective. Urmeaz˘ a transformarea circuitului electric ˆın layout pe siliciu. Se obt¸ine o arie minim˘ a cˆ and, atˆ at pentru toate tranzistoarele n cˆ at ¸si pentru toate tranzistoarele

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

100 D

V DD

A x

S

E

y

B

D

C

S D

S S

D D

S

nMOS

D Z

VO

Drumul eulerian E−D−A−B−C

D

x y

a)

S

D S

D D

S

D

B

A D

S

E

S

pMOS V ss

E

D

A

B

C

C b)

Figura 1.43 Explicativ˘ a pentru layoutul port¸ii Z = A(D + E) + BC: a) identificarea drumului eulerian ˆın graful ret¸elei n ¸si ret¸elei p; b) pe liniile continue de difuzie de tip n+ ¸si p+ s-au ordonat port¸ile din polisiliciu (barele verticale ha¸surate) ale tranzistoarelor ˆın ordinea g˘ asit˘ a la parcurgerea drumului eulerian. p, se poate realiza cˆ ate o difuzie ˆın linie neˆıntrerupt˘ a pentru canalele n ¸si pentru canalele p. Pentru realizarea unei difuzii ˆın linie neˆıntrerupt˘ a, ˆın care o zon˘ a din aceast˘ a linie de difuzie dintre dou˘ a bare de polisiliciu (port¸i) s˘ a fie un terminal comun la dou˘ a tranzistoare vecine, este necesar a se g˘ asi ordinea de ˆınl˘ ant¸uire (plasare) a fiec˘ arui tranzistor al ret¸elei ˆın linia difuzat˘ a. Aceast˘ a ordine poate fi determinat˘ a prin identificarea unui traseu eulerian comun atˆ at ˆın graful ret¸elei p cˆ at ¸si ˆın graful ret¸elei n. Definit¸ia 1.15 Un drum care parcurge neˆıntrerupt o singur˘ a dat˘ a toate arcele dintr-un graf se nume¸ste eulerian. 

Pentru grafurile duale din Figura 1.42-b s-a identificat drumul eulerian comun E−D−A−B−C din Figura 1.43-a. Cunoscˆ and acum ordinea de jonct¸ionare/al˘ aturare a tranzistoarelor (care este aceea¸si cu ordinea de parcurgere ˆın drumul eulerian) se poate realiza succesiunea port¸ilor din polisiliciu (barele ha¸surate) pe liniile de difuzie n+ ¸si p+ ca ˆın layoutul simplificat din Figura 1.43-b. Dac˘ a ˆın grafuri nu se poate identifica un singur drum eulerian distinct, pentru toate tranzistoarele circuitului, ci mai multe drumuri distincte care acoper˘ a graful, atunci sunt necesare atˆ atea linii de difuzie n+ ¸si p+ ˆıntrerupte cˆ ate drumuri euleriene distincte au fost identificate. O funct¸ie logic˘ a poate fi sub forma sum˘ a de produse (FD) sau produse de sum˘ a (FC); forma negat˘ a a acestor funct¸ii este potrivit˘ a pentru implementarea ˆın tehnologia CMOS deoarece se pot realiza u¸sor port¸i de tipul AND-OR-NOT ¸si OR-AND-NOT. Port¸ile AND-OR-NOT au pentru ret¸eaua n o structurare paralel-serie ¸si o structurare serie - paralel pentru ret¸eaua p dual˘ a, Figura 1.44-a, iar port¸ile OR-AND-NOT au o structurare serie-paralel pentru ret¸eaua n ¸si paralel-serie pentru ret¸eaua p, Figura 1.44-b.

101

CAPITOLUL 1. PORT ¸ I LOGICE

V DD Reteaua Duala p

A1 A2 A3

VO VO

B1 B2

C1

A1

C1 C2 C3

B1

A2 AND − OR − NOT

C2

B2

A3

C3

V SS

a)

V DD Reteaua Duala p

A1 A2 A3

VO C1

VO

B1 B2

B2

B1

C1 OR − AND − NOT A1

b)

A2

A3

V SS

Figura 1.44 Modalit˘ a¸ti de structurare a port¸ilor CMOS complexe: a) structurare pentru implementarea funct¸iilor logice de forma AND-OR-NOT; b) structurare pentru implementarea funct¸iilor logice de forma OR-AND-NOT.

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

102

Exemplul 1.18 Pentru circuitul cu layoutul desenat ˆın Figura 1.45 s˘a se deduc˘a structura de circuit apoi s˘ a se determine circuitul inversor CMOS echivalent pentru cazul cˆ and toate intr˘ arile comut˘ a, presupunˆ and c˘ a: (W/L)p = 15 pentru toate tranzistoarele pMOS ¸si (W/L)n = 10 pentru toate tranzistoarele nMOS. Linia de difuzie p+ D

E

A

B

V DD

Z

C

D

V DD

B

E C

A

p+

Z B

n+

C

D

E

V SS

A

V SS n+

Linia de difuzie

Figura 1.45 Trecere de la layout de circuit la schema electric˘ a. Solut¸ie. Fat¸a ˘ de prezent˘ arile anterioare aici se face o trecere invers˘ a, de la layout la structura de circuit. Inspectˆ and ˆın linia de difuzie n+ trasele ¸si contactele metalice rezult˘ a c˘ a exist˘ a grupul de tranzistoare D, E, A legate ˆın paralel ¸si grupul de tranzistoare B, C legate ˆın paralel iar cele dou˘ a grupuri sunt ˆınseriate. Ret¸eaua n a port¸ii modeleaz˘ a urm˘ atoarea relat¸ie (D + E + A)(B + C), deci ie¸sirea Z este (D + E + A)(B + C) pentru care corespunde circuitul poart˘ a CMOS din Figura 1.45-b. Rapoartele echivalente, (W/L)n,IN V ¸si (W/L)p,IN V , ale inversorului echivalent cˆ and comut˘ a toate intr˘ arile se obt¸in cu relat¸iile 1.75 ¸si 1.76 ˆın felul urm˘ ator: 



W L W L



1

= n,IN V



1 + W + W (W L )D ( L ) E ( L )A 1

(W L )D =

(W L )B

1 +( W L

= )C

1 30

1

= p,IN V

+

+

1

1 1 15

+

1 15

1 + W1 + W1 (W ( L )B ( L )C L )A 1 + 1 1 = 12, 5 + 15 15

(W L )E

+

1 15

+

1 + =

1 20

= 12

103

CAPITOLUL 1. PORT ¸ I LOGICE

Pseudo poarta CMOS. Port¸ile CMOS complexe, cu n intr˘ ari, necesit˘ a pentru fiecare intrare dou˘ a tranzistoare, deci ˆın total 2n tranzistoare plus ˆınc˘ a dou˘ a tranzistoare (un inversor) pentru fiecare din intr˘ arile negate. Rezult˘ a c˘ a reducerea num˘ arului de tranzistoare, cˆ and num˘ arul de intr˘ ari n este mare, se impune. O variant˘ a de reducere a num˘ arului de tranzistoare, de la 2n la n + 1, se obt¸ine la structura denumit˘ a pseudo poart˘ a CMOS. Pseudo poarta CMOS, pentru un anumit operator, se obt¸ine din poarta normal˘ a, care implementeaz˘ a acel operator, prin substituirea ret¸elei p cu un singur tranzistor pMOS a c˘ arui poart˘ a se conecteaz˘ a la potent¸ialul de mas˘ a (deci este permanent ˆın conduct¸ie), Figura 1.46-a. De fapt, tranzistorul pMOS, are rolul de sarcin˘ a (rezistent¸a˘) pentru ret¸eaua nMOS. Dezavantajul pseudo port¸ii CMOS const˘ a ˆın consumul mare de putere ˆın regim static datorat unui permanent curent prin canalul p atˆ at timp cˆ at V O < VDD . De asemenea, VOL ¸si marginea de zgomot sunt determinate de raportul ˆıntre transconductant¸a tranzistorului de sarcin˘ a supra transconductant¸a echivalent˘ a din ret¸eaua n. V DD

V DD RC

Linie de magistrala

VO

retea n

a)

V SS

A

T1

B

T2

R

Circuit de mentinere

e)

b)

V DD

V DD EN

EN

T1 f=A

EN f A

T2

A V SS EN

V SS EN f

A

c)

0 0 1 1

A (EN .A) EN 0 1 0 1

1 1 1 0

1 1 0 0

A EN+A 0 1 0 1

0 0 1 0

f HZ HZ 0 A 1

d)

Figura 1.46 Port¸i CMOS speciale: a) structurarea unei pseudo port¸i CMOS; b) structur˘ a pentru poarta cu drenul ˆın gol; c) structura ¸si simbolul de reprezentare ale unei port¸i de tip TSL; d) structura unui buffer TSL neinversor; e) evitarea aparit¸iei unui potent¸ial flotant pe o linie de magistral˘ a prin conectarea acesteia la un circuit (celul˘ a) activ de ment¸inere a nivelului (bus holder).

104

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

Poarta cu drenul ˆın gol. Restrict¸ia impus˘ a de a nu se conecta ˆımpreun˘ a ie¸sirile port¸ilor TTL, Figura 1.23-a, are valabilitate ¸si pentru port¸ile CMOS. Conectarea ie¸sirilor ˆımpreun˘ a a mai multor port¸i poate crea o cale de scurtcircuit ˆıntre V DD ¸si VSS prin ret¸elele n sau p de la diferite port¸i. Eliminarea acestei restrict¸ii se poate obt¸ine pentru port¸ile care sunt realizate, ˆın etajul de ie¸sire, f˘ ar˘ a ret¸eaua p, numai cu ret¸eaua n, aceste port¸i sunt denumite cu drenul ˆın gol, Figura 1.46-b (similare port¸ilor cu colectorul ˆın gol). Poarta devine funct¸ional˘ a numai cˆ and drenul ˆın gol este conectat la tensiunea V DD printr-o rezistent¸a˘ RD ata¸sat˘ a exterior port¸ii. Port¸ile cu drenul ˆın gol (open-drain) sunt necesare pentru urm˘ atoarele aplicat¸ii: comanda unor sarcini externe (LED-uri, relee, rezistent¸e, bobine etc), realizarea conexiunii SI-cablat ¸si comanda unor linii de magistral˘ a, Figura 1.24-a; pentru calculul rezistent¸ei RD ata¸sat˘ a ˆın exteriorul port¸ii se utilizeaz˘ a relat¸iile 1.26. Poarta TSL. Aceast˘ a poart˘ a prezint˘ a pe lˆ ang˘ a cele dou˘ a st˘ ari logice normale H ¸si L, existente la o poart˘ a obi¸snuit˘ a, ¸si starea cˆ and ie¸sirea este ˆın ˆınalt˘ a impedant¸a˘, HZ. Structura unei port¸i TSL se obt¸ine din cea a unei port¸i normale la care se ˆınseriaz˘ a cˆ ate un tranzistor n ¸si p respectiv cu ret¸eaua n ¸si p, Figura 1.46-c. Cˆ and semnalul de validare EN (ENable) este activ, EN=1, poarta are funct¸ionarea unei port¸i normale, iar cˆ and validarea nu este activat˘ a, EN=0, cele dou˘ a tranzistoare ˆınseriate sunt blocate, atˆ at calea de conduct¸ie prin ret¸eaua n cˆ at ¸si cea prin ret¸eaua p nu sunt ˆın conduct¸ie, deci ie¸sirea este ˆın HZ. O alt˘ a variant˘ a de poart˘ a CMOS TSL este cea cu structura din Figura 1.68-a. La o poart˘ a CMOS TSL cˆ and este ˆın HZ ie¸sirea sa este fort¸at˘ a, de o alt˘ a poart˘ a care comand˘ a ˆın acel moment linia de magistral˘ a, pe nivelul H sau pe nivelul L ¸si genereaz˘ a respectiv absoarbe curent¸i la ie¸sire pˆ an˘ a la 10µA. Pentru cazurile cˆ and sarcina ce trebuie comandat˘ a este relativ mare sunt utilizate buffere; o astfel de structur˘ a de buffer TSL este prezentat˘ a ˆın Figura 1.46-d. Un buffer TSL se compune din dou˘ a tranzistoare complementare T1 ¸si T2 comandate, prin port¸iile NAND ¸si NOR, fie ambele tranzistoare simultan ˆın blocare (starea HZ), fie un tranzistor ˆın blocare ¸si cel˘ alalt ˆın conduct¸ie sau invers (ca la inversorul CMOS). Din tabelul de adev˘ ar, ata¸sat bufferului, se observ˘ a c˘ a pentru EN=0 ie¸sirea este ˆın HZ, iar pentru EN=1 ie¸sirea este identic˘ a cu intrarea (buffer neinversor). Bufferele CMOS TSL sunt utilizate pentru comanda liniilor de magistrale; o linie de magistral˘ a poate fi comandat˘ a, la un moment, de cel mult un buffer (emit¸a˘tor). Dac˘ a toate ie¸sirile bufferelor conectate la o linie de magistral˘ a sunt ˆın HZ atunci potent¸ialul pe linie este flotant, iar dac˘ a acest potent¸ial este aproape de valoarea de prag de comutat¸ie ( Definit¸ia 1.14 ) al port¸ilor receptoare acestea consum˘ a un curent de valoare relativ mare sau pe linie pot ap˘ area oscilat¸ii. Se pot elimina aceste inconveniente dac˘ a linia de magistral˘ a se conecteaz˘ a la V DD printr-o rezistent¸a˘ Rpu , ,, deci cˆ and linia devine flotant˘ a potent¸ialul acesteia va fi “tras ˆın sus (pull-up) ˆın intervalul de tensiune H. Dar aceast˘ a solut¸ie prezint˘ a unele inconveniente: 1. dac˘ a Rpu este de valoare mare, atunci cˆ and linia din L r˘ amˆ ane ˆın stare flotant˘ a, ¸si fort¸at˘ a imediat ˆın H de Rpu , datorit˘ a faptului c˘ a prezint˘ a o constant˘ a de timp mare Rpu · C, timpul de cre¸stere τr devine lung. Un τr lung face ca durata excursiei, ˆın zona tensiunilor interzise, pentru tensiunile de intrare ale port¸ilor receptoare s˘ a fie de asemenea lung˘ a deci un consum m˘ arit de putere; 2. dac˘ a Rpu este de valoare mic˘ a atunci bufferul care va comanda linia ˆın starea L

CAPITOLUL 1. PORT ¸ I LOGICE

105

va trebui s˘ a absoarb˘ a un curent mai mare. Inconvenientele anterioare pot fi eliminate prin conectarea la linia de magistral˘ a a unui circuit (celul˘ a) activ de ment¸inere a nivelului (bus holder) cu structura din Figura 1.46-e. Se va vedea ˆın sect¸iunea 3.3.1 c˘ a aceast˘ a celul˘ a activ˘ a de ment¸inere nu este altceva decˆ at un circuit latch. Cˆ and linia de magistral˘ a r˘ amˆ ane ˆın HZ, deci va trece din L sau din H ˆın starea flotant˘ a, celula va fort¸a ment¸inerea liniei ˆın aceea¸si stare L sau H pe care a avut-o anterior. Bufferul de magistral˘ a care comut˘ a linia din starea H ˆın starea L sau din starea L ˆın H va absorbi sau va genera un surplus de curent pentru comanda celulei de ment¸inere ˆın starea L sau H, dar numai pe durata comutat¸iei st˘ arilor. ˆIn general, un buffer de magistral˘ a are integrat pe ie¸sirea sa o astfel de celul˘ a de ment¸inere a nivelului pe linia de magistral˘ a. Celula de ment¸inere a nivelului pe linia de magistral˘ a nu este eficient˘ a cˆ and la magistral˘ a sunt conectat¸i receptori de tip TTL. Port¸ile TTL necesit˘ a curent¸i de intrare de valoare ridicat˘ a, mai ales ˆın starea L, IIL , care nu pot fi generat¸i de c˘ atre celula de ment¸inere dac˘ a la aceast˘ a celul˘ a rezistent¸a R nu este de valoare mic˘ a, iar o rezistent¸a˘ de valoare mic˘ a duce la o ˆınc˘ arcare puternic˘ a a liniei de magistral˘ a. 1.5.3.3

Seriile de port¸i ale familiei CMOS

ˆIn cadrul tehnologiei CMOS, port¸ile, elemente de baz˘ a pentru realizarea unor sisteme, pot fi celulele cu care se realizeaz˘ a sistemul sub form˘ a de circuit integrat (monolitic) sau pot fi celule discrete (independente, integrate pe plachete separate) cu care se realizeaz˘ a sistemul pe o plac˘ a de circuit imprimat. Parametrii unei port¸i logice, sect¸iunea 1.3, sunt mult mai restrictive pentru o poart˘ a implementat˘ a ca circuit independent decˆ at pentru o poart˘ a inclus˘ a ˆıntr-un circuit integrat. Pentru port¸ile discrete ace¸sti parametri sunt specificat¸i de fabricant ˆın fi¸sa tehnic˘ a ce ˆınsot¸e¸ste poarta. ˆIn cadrul familiei de port¸i CMOS discrete exist˘ a mai multe serii de port¸i, aceste serii au ap˘ arut ˆın funct¸ie de optimizarea parametrilor pentru anumite aplicat¸ii ¸si mai ales ca urmare a perfect¸ion˘ arii ˆın timp a tehnologiei de integrare. Prima serie de port¸i discrete a familiei CMOS a fost seria 4000. ˆIn prezent, port¸ile din aceast˘ a serie nu se mai utilizeaz˘ a deoarece au ap˘ arut alte serii mult mai performante. Exist˘ a ˆın cadrul fiec˘ arei serii varianta civil˘ a (0 ◦ ÷ 70◦ C) ¸si varianta militar˘ a (−55◦ ÷ 125◦ C), notate respectiv cu 74 sau 54. Cuvˆ antul de cod al unei port¸i este de forma 74SERXX/54SERXX, unde SER sunt dou˘ a sau trei litere (abreviat¸ie) din denumirea SERiei ˆın care este implementat˘ a poarta, iar XX este codul port¸ii. De exemplu, aceea¸si poart˘ a NAND cu dou˘ a intr˘ ari (NAND2) care are codul 7400 poate fi specificat˘ a prin cuvintele 74HC00, 74HCT00, 74VHC00, 74VHCT00 ˆın funct¸ie de seria c˘ areia ˆıi apart¸ine (la prima privire, se poate spune, dac˘ a poarta este din familia CMOS deoarece ˆın abreviat¸ia seriei intr˘ a totdeauna litera C). Seriile HC ¸si HCT. Seria HC (High-speed CMOS) este optimizat˘ a pentru realizarea ˆın special de sisteme numai cu port¸i CMOS. Utilizeaz˘ a o alimentare ˆın gama de la 2 ÷ 6V ; valorile mai mici ale tensiunii de alimentare sunt recomandate cˆ and se dore¸ste o putere disipat˘ a mai mic˘ a iar valorile mai ridicate cˆ and este necesar˘ a o vitez˘ a mai ridicat˘ a. O comparat¸ie a seriei HC cu seriile din familia TTL arat˘ a c˘ a ˆıntre acestea nu exist˘ a compatibilitate a tensiunilor de ie¸sire ¸si a celor de intrare. Pentru a se putea intermixa, ˆın sisteme, port¸ile CMOS cu port¸ile TTL s-a conceput seria HCT (High-speed CMOS, TTL compatible). Valorile tensiunilor de ie¸sire

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

106

garantate (VOHmin , VOLmax ) ¸si de intrare admise (VIHmin , VILmax ) de la seria HCT sunt identice cu cele de la familia TTL, deci port¸ile pot fi interconectate. Seriile HC ¸si HCT au aceia¸si parametrii pe ie¸sire dar parametrii diferit¸i pe intrare, aceast˘ a diferent¸a˘ a fost creat˘ a la HCT pentru ca aceast˘ a serie s˘ a devin˘ a compatibil˘ a cu TTL. Ambele serii au comanda pe ie¸sire simetric˘ a, adic˘ a exist˘ a egalitate ˆıntre curentul absorbit de poart˘ a ˆın stare L cu cel generat de poart˘ a ˆın starea H (simetria aceasta de curent¸i pe ie¸sire nu exist˘ a la TTL). Seria FCT (FCT-T). Prin introducerea seriei FCT (Fast-CMOS, TTL compatible) la ˆınceputul anilor 1990 s-a urm˘ arit realizarea ˆın CMOS a urm˘ atoarelor performant¸e: atingerea unei capabilit˘ a¸ti de comand˘ a pe ie¸sire (valori m˘ arite pentru IOHmax , IOLmax ), vitez˘ a ridicat˘ a ca la cele mai performante port¸i TTL dar ˆın acela¸si timp reducerea puterii consumate ¸si, evident, o complet˘ a compatibilitate (pe nivelurile de tensiune) cu port¸ile TTL. Totu¸si seria FCT realizat˘ a cu aceste performant¸e era afectat˘ a de dou˘ a deficient¸e: fiind alimentat˘ a la V DD = 5V , saltul tensiunii de ie¸sire la comutat¸ie era de aproape 5V, ceea ce ducea la o putere disipat˘ a (C L V 2 f ) foarte mare la frecvent¸e de peste 25M Hz ¸si, ˆın plus, aceste salturi rapide genereaz˘ a zgomot ˆın sistem. Pentru ˆınl˘ aturarea acestor deficient¸e s-au introdus anumite perfect¸ion˘ ari ˆın structura de circuit FCT obt¸inˆ andu-se astfel seria FCT-T (Fast CMOS, TTL compatible with TTL VOH ). Cele dou˘ a deficient¸e amintite anterior, de la FCT au fost atenuate la seria FCT-T ˆın primul rˆ and prin reducerea V OH ≈ 5V la valoarea tipic˘ a Tabelul 1.12 Parametrii port¸ilor familiei CMOS (prezentare simplificat˘ a) Denumire parametru Timpul de propagare tipic Curentul in regim static Puterea disipata in regim static Capacitatea interna a circuitului

τ p [ns] IDDQ [ µ A ] Pdcc [mW] [pF]

Conditia de test Vin=0 sau VDD Vin=0 sau VDD

Puterea disipata in regim dinamic Pdca [mW/MHz] f=100KHz Puterea disipata totala

Pd [mW]

Factorul de merit

Pd × τp [pJ]

Tensiunea de intrare permisa Tensiunea de intrare permisa

VILmax [V] VIHmin [V]

f=1MHz f=10MHz f=100KHz f=1MHz f=10MHz

Curentul de iesire in starea L

IOLmax [mA]

Curentul de iesire in starea H

IOHmax

Tensiunea de iesire in starea L Tensiunea de iesire in starea H

incarcare CMOS

incarcare TTL incarcare CMOS [mA] incarcare TTL

VOLmax [V] VOHmin [V]

Iout ≤IOLmax CMOS Iout ≤IOLmax TTL |Iout ≤ IOLmax CMOS| |Iout ≤IOLmax TTL |

HC

HCT

Seria VHC VHCT FCT−T 5,5 5,2 5,8 5 200 5

9 10 2,5 2,5 0,0125 0,0125 0,025 0,025 17 22 15 19 0,38 0,55 0,48 0,43 0,068 0,050 0,073 0,068 0,50 0,45 0,39 0,56 5,5 0,61 5,1 50 1,35 3,85 −0,02 4,0

3,8 0,50

4,8 0,38

3,9 38 0,8

2,6

2,0 0,02 4,0

1 − 0,6 0,60

4,3

1,06 1,6

0,37 2,5

6,15 9,3

2,5

24

41

1,35 3,85

0,8 2,0 0,05

0,8 2,0

0,05

− 64

0,1 0,33

8,0 8,0 −0,02 −0,05 −0,05 −4,0 −8,0 −8,0 0,1 0,1 0,1 0,33 0,44 0,44

0,55

4,4 3,84

4,4 3,84

4,4 3,80

2,4

−0,02 −4,0

4,4 3,80

− −15

107

CAPITOLUL 1. PORT ¸ I LOGICE

de VOH = 3, 3V . Varianta FCT-T datorit˘ a performant¸elor sale este, ˆın prezent, foarte popular˘ a. Aplicat¸ii uzuale pentru port¸ile FCT-T sunt comanda liniilor de magistral˘ a sau comenzi pentru sarcini mari (comparativ cu alte port¸i CMOS poate absorbi ¸si genera pe ie¸sire valori foarte mari de curent¸i, I OLmax ≈ 60mA). Seria FCT (FCT-T) nu are implementate port¸ile simple ci numai port¸i complexe (zeci de tranzistoare). Selectiv, unii din parametrii port¸ilor logice din seriile familiei CMOS sunt prezentat¸i ˆın Tabelul 1.12. Pentru seriile HC, HCT, VHC ¸si VHCT (abrevierea VH este de la Very High-speed) au fost selectate unele din valorile parametrilor port¸ilor NAND2 (74XX00) iar pentru seria FCT-T au fost selectate unele din valorile parametrilor port¸ii 74FCT138T, care este un circuit decodificator 3 : 8. 1.5.3.4

Interfat¸area TTL-CMOS ¸si CMOS-TTL

Interfat¸area ˆıntre cele dou˘ a familii se poate face cu condit¸ia respect˘ arii compatibilit˘ a¸tii nivelurilor de tensiune ¸si a factorilor de ˆınc˘ arcare la ie¸sire, fan-out. Respectarea nivelurilor de tensiune ˆınseamn˘ a realizarea unor margini de zgomot ˆın curent continuu MH , ML , calculate cu relat¸ia 1.18, care pot avea anumite valori pozitive acceptabile dar ˆın nici un caz valori negative. Valorile nivelurilor de tensiune pe intrare ¸si pe ie¸sire pentru ambele familii sunt reprezentate ˆın Figura 1.47 [Wakerly 0 00]. Evident, c˘ a exist˘ a compatibilitate pe nivelurile de tensiune ˆıntre seriile HCT, VHCT, FCT ¸si familia TTL dar nu exist˘ a comptibilitate complet˘ a ˆıntre HC, VHC ¸si familia TTL. De exemplu, la interfat¸area HC sau VHC cu TTL rezult˘ a ML = 0, 8 − 0, 33 = 0, 47V ¸si MH = 3, 84 − 2, 0 = 1, 84V , iar la interfat¸area TTL cu HC sau VHC rezult˘ a ML = 1, 35 − 0, 4 = 0, 95, MH = 2, 7 − 3, 85 = −1, 15V !; ar trebui ca VOHmin de la TTL s˘ a fie ridicat˘ a cu cel put¸in 1, 15V . O solut¸ie de compromis ˆın realizarea ¸si a acestei interfat¸a˘ri ar fi ridicarea valorii tensiunii V OHmin prin conectarea unei rezistent¸e R ˆıntre ie¸sirea TTL ¸si V CC (trebuie verficat dac˘ a aceast˘ a ,, rezistent¸a˘ de “tragere ˆın sus nu distruge prin c˘ aderea de tensiune R × IOLmax nivelul de tensiune garantat VOLmax cˆ and poarta TTL este comandat˘ a pe ie¸sire ˆın L). IESIRI VOHmin , VOLmax

INTRARI

5.0 HIGH

HC,HCT 3.84 VHC,VHCT 3.80 LS,S,ALS,AS,F

3.85

FCT 0.55 LS,S,ALS,AS,F 0.5 VHC,VHCT 0.44 0.33

(HC,VHC) Margine de zgomot (M H) in c.c. pentru starea H

2.7

VALORI INTERZISE

HC,HCT

VIHmin , VILmax

LOW

2.0

LS,S,ALS,AS,F HCT,VHCT,FCT

1.35

(HC,VHC)

0.8

LS,S,ALS,AS,F HCT,VHCT,FCT Margine de zgomot (M L ) in c.c. pentru starea L

0

Figura 1.47 Nivelurile de tensiune pentru seriile familiei TTL ¸si familiei CMOS

108

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

Respectarea factorului de ˆınc˘ arcare (ˆın curent) la ie¸sire, relat¸ia 1.22, impune ca valoarea maxim˘ a a curentului absorbit sau generat la ie¸sirea port¸ii s˘ a fie mai mare sau egal cu suma curent¸ilor respectiv generat¸i sau absorbit¸i de intr˘ arile tuturor port¸ilor comandate. Interfat¸area TTL-CMOS nu ridic˘ a nici un fel de problem˘ a, deoarece port¸ile CMOS aproape c˘ a nu necesit˘ a curent de intrare, atˆ at ˆın H cˆ at ¸si ˆın L curent¸ii de intrare au valori maxime < 50µA. ˆIn schimb pentru interfat¸area CMOS-TTL trebuie calculat˘ a valoarea de fan-out a port¸ii CMOS, de exemplu, port¸ile HC sau HCT pot comanda 10 port¸i 74LSXXTTL, dar pot comanda numai dou˘ a port¸i 74SXXTTL. La interconectarea port¸ilor CMOS factorul de ˆınc˘ arcare se calculeaz˘ a nu ˆın funct¸ie de un curent de intrare, ca sarcin˘ a standard, ci ˆın funct¸ie de o sarcin˘ a capacitiv˘ a standard prezentat˘ a pe intrare de o poart˘ a. ˆIn general, se consider˘ a capacitatea de 5pF ca sarcin˘ a standard, care aproximeaz˘ a capacitatea de intrare medie la o poart˘ a CMOS. Factorul de ˆınc˘ arcare la ie¸sire se exprim˘ a prin num˘ arul de sarcini standard (nr de intr˘ ari) pe care le comand˘ a la ie¸sire.Cu m˘ arirea sarcinii capacitive conectate pe ie¸sire timpul de propagare al port¸ii cre¸ste (aproximativ cu 1ns pentru fiecare sarcin˘ a de 5pF ad˘ augat˘ a) . Interfat¸area CMOS de tensiune redus˘ a. Dou˘ a sunt argumentele pentru care tensiunea de alimentare VDD a circuitelor CMOS tinde a fi redus˘ a: 1. Puterea disipat˘ a se reduce (Pd = CV 2 f ) 2. Scalarea determin˘ a ¸si mic¸sorarea grosimii D ox (Figura 1.32-a) a oxidului de sub poart˘ a care, evident, pentru evitarea str˘ apungerii, impune ¸si o tensiune de valoare mai mic˘ a aplicabil˘ a pe poart˘ a. Au fost selectate tensiunile de alimentare: 3, 3V ±0, 3V ; 2, 5V ±0, 2V , 1, 8V ±0, 15V ca valori pentru viitoarele standarde. Evident, ˆın cadrul fiec˘ arei tensiuni de alimentare au fost definite ¸si nivelurile logice de intrare ¸si de ie¸sire. Migrarea spre valori mai reduse de tensiuni de alimentare se face treptat, ˆın etape, aceasta impunˆ and ca unele din noile port¸i logice CMOS discrete de 3.3V care apar s˘ a poat˘ a tolera ˆınc˘ a tensiunile mai mari de intrare ¸si de ie¸sire TTL ¸si CMOS de la seriile alimentate la 5V , aceast˘ a tolerant¸a˘ fiind necesar˘ a pentru realizarea de sisteme cu port¸i cu tensiuni diferite de alimentare. Necesitatea de intermixare a circuitelor CMOS de tensiuni reduse cu alte circuite de tensiuni mai ridicate exist˘ a ¸si ˆın cazul circuitelor integrate cum sunt µP ¸si ASIC-urile (Application Specific Integrated Circuits) numai c˘ a rezolvarea se face ˆıntr-un alt mod. Aceste circuite fiind mari justific˘ a alimentarea cu dou˘ a tensiuni de alimentare, de exemplu cu 2, 5V (1, 8V )¸si 3, 3V , vezi sect¸iunile 4.5. ¸si 4.6. Tensiunea sc˘ azut˘ a de 2, 5V alimenteaz˘ a nucleul de procesare, iar tesiunea ridicat˘ a componentele de interfat¸are cu circuitele exterioare care sunt alimentate cu tensiunea de 3, 3V . ˆIn interiorul circuitului integrat exist˘ a circuite buffer speciale, alimentate la cele dou˘ a tensiuni 3, 3V ¸si 2, 5V , care fac deplas˘ arile de nivel de la tensiunea coborˆ at˘ a la cea ridicat˘ a ¸si invers. Nivelurile logice de tensiune pentru familia CMOS la alimentare cu 5V precum ¸si la valorile reduse sunt prezentate ˆın Figura 1.48. Nivelurile logice de tensiune, Figura 1.48-a, corespund seriilor HC ¸si VHC ale familiei CMOS de 5V adic˘ a acelor port¸i CMOS care s˘ a fie interconectate numai cu port¸i CMOS. ˆIn Figura 1.48-b sunt prezentate nivelurile logice de tensiune pentru seriile HCT, VHCT, FCT ¸si TTL (compatibile ˆıntre ele ca niveluri de tensiune), care evident pot fi substituite ˆıntre ele dac˘ a sunt satisf˘ acute ¸si condit¸iile de ˆınc˘ arcare la intrare ¸si ie¸sire.

109

CAPITOLUL 1. PORT ¸ I LOGICE HC, VHC 5.0 V

VCC

4.44 V

VOH

3.5 V

VIH

2.5 V

VT

1.5 V

VIL

0.5 V

VOL

0.0 V

GND

Familiile 5 V CMOS

a)

XCT,TTL 5.0 V

VCC

3.3 V

VCC

2.4 V

VOH

2.4 V

VOH

2.5 V

VCC

2.0 V

VIH

2.0 V

VIH

1.5 V

VT

1.5 V

VT

2.0 V 1.7 V

VOH VIH

1.2 V

VT

0.8 V

VIL

0.8 V

VIL

0.7 V

VIL

0.4 V

VOL

0.4 V

VOL

0.4 V

VOL

0.0 V

GND

0.0 V

GND

0.0 V

GND

Familiile 5 V TTL

b)

Familiile 3.3−V LVTTL

c)

Familiile 2.5 V CMOS

d)

1.8 V

VCC

1.45 V 1.2 V 0.9 V

VOH VIH VT

0.65 V 0.45 V

VIL VOL

0.0 V

GND

Familiile 1.8 V CMOS

e)

Figura 1.48 Nivelurile logice de tensiune pe intrare ¸si ie¸sire pentru toate familiile CMOS Familia CMOS la 3, 3V . Pentru alimentarea cu 3, 3V se definesc dou˘ a seturi de niveluri logice de tensiune. Primul set de niveluri, abreviat prin LVCMOS (LowVoltage CMOS), este definit pentru port¸ile CMOS care se interconecteaz˘ a numai cu port¸i CMOS. Aceasta ˆınseamn˘ a c˘ a valorile de ˆınc˘ arcare ˆın regim static sunt foarte reduse (mai put¸in de 100µA) astfel c˘ a VOL ¸si VOH se ment¸in la diferent¸e de maximum 0, 2V fat¸a˘ de 0V respectiv fat¸a˘ de VDD = 3, 3V . De fapt, nivelurile LVCMOS corespund seriilor HC ¸si VHC la 3, 3V . Al doilea set de niveluri logice de tensiune abreviat prin LVTTL (Low-Voltage TTL) reprezentat ˆın Figura 1.48-c este definit pentru port¸ile CMOS care sunt utilizate ˆın aplicat¸ii cu sarcini m˘ arite ¸si care pot produce pentru tensiunea de ie¸sire valorile VOL = 0, 4V , VOH = 2, 4V . Deoarece ˆın timp asignarea nivelurilor de tensiune pentru port¸ile TTL, respectiv ¸si pentru cele CMOS compatibile TTL, s-au ales valori de lucru sub 2, 4V (f˘ ar˘ a a se lua ˆın considerare evolut¸ia ulterioar˘ a spre tensiuni standard de alimentare sub 5V ), aceast˘ a potrivire a f˘ acut ca mai tˆ arziu s˘ a fie posibil˘ a asignarea ¸si pentru LVTTL a acelora¸si niveluri de tensiune ca ¸si pentru TTL, a se compara reprezent˘ arile din Figura 1.48-b ¸si 1.48-c. Astfel port¸ile CMOS cu nivelurile LVTTL (cu VCC = 3, 3V ) pot comanda la ie¸sire port¸i TTL (cu VCC = 5V ) atˆ at timp cˆ at ˆınc˘ arcarea nu dep˘ a¸se¸ste valorile IOLmax , IOHmax ¸si, la fel, ie¸sirile port¸ilor TTL pot comanda intr˘ arile LVTTL (dac˘ a aceste intr˘ ari sunt realizate tolerante la 5V ). De fapt, nivelurile LVTTL corespund cu nivelurile de lucru de la seriile HCT, VHCT ¸si FCT ale familiei CMOS de 5V . De ce port¸ile LVTTL trebuie s˘ a fie realizate tolerante 5V la intrare? ˆIn general, pe intrare port¸ile au conectate diodele D1 ¸si D2, care au rolul de a shunta supratensiunile ce pot ap˘ area la intrare, Figura 1.49-a. Dioda D1 shunteaz˘ a la mas˘ a supratensiunile care au amplitudinea negativ˘ a iar D2 shunteaz˘ a la bara de alimentare V DD supraten-

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

110

siunile care au amplitudinea mai mare de 3, 3V . Dar la port¸ile logice TTL valorile tipice pentru VOH dep˘ a¸sesc 3, 3V ceea ce ˆınseamn˘ a c˘ a o poart˘ a TTL ce comand˘ ao poart˘ a LVTTL poate avea ie¸sirea scurtcircuitat˘ a prin dioda D2 la bara V DD = 3, 3V (deci un curent foarte mare). Solut¸ia? La structura de poart˘ a LVTTL netolerant˘ a pe intrare la 5V , Figura 1.49-a, se elimin˘ a dioda D2 ¸si se obt¸ine structura tolerant˘ a pe intrare la 5V, Figura 1.14-b. Evident, tranzistorul acestei structuri tolerante trebuie s˘ a reziste la o tensiune de str˘ apungere de minimum 5V . Dar port¸ile TSL de tip LVTTL trebuie s˘ a fie tolerante la 5V ¸si pe ie¸sire. S˘ a consider˘ am c˘ a un buffer LVTTL de tip TSL are ie¸sirea conectat˘ a la o linie de magistral˘ a la care sunt conectate ¸si alte port¸i TTL de tip TSL, Figura 1.49-c. Bufferul LVTTL este ˆın HZ cˆ and tensiunea aplicat˘ a pe poarta tranzistorului pMOS este V DD = 3, 3V iar pe poarta tranzistorului nMOS este 0V . Dac˘ a linia de magistral˘ a este comandat˘ a de o poart˘ a TTL ˆın stare H ˆınseamn˘ a c˘ a tensiunea de ie¸sire V O a bufferului LVTTL este fixat˘ a de linia de magistral˘ a la 5V, tensiune care este aplicat˘ a ¸si pe drenul tranzistorului pMOS notat cu Q. Tranzistorul Q avˆ and o tensiune pe dren de V DD = 3,3V

V DD = 3,3V D2

pMOS

VI

TTL

VO

V ≤ 3,3V

pMOS VI

TTL

V ≥ 3,3V D1

nMOS

D1

a)

Linie de magistrala V DD = 3,3V

V DD = 3,3V Q

nMOS

buffer LVTTL

c)

Q

pMOS VO

0V

nMOS

b)

Linie de magistrala

V DD

VO

EN

V DD

Q1 0V

buffer TSL de tip TTL

pMOS VO

nMOS

EN

buffer TSL de tip TTL

d)

Figura 1.49 Port¸i CMOS de 3.3V : a) structur˘ a de poart˘ a netolerant˘ a la 5V pe intrare ¸si tolerant˘ a la 5V (b); structur˘ a de buffer TSL netolerant la 5V pe ie¸sire (c) ¸si tolerant pe ie¸sire la 5V (d).

CAPITOLUL 1. PORT ¸ I LOGICE

111

5V, fat¸a˘ de tensiunea de 3, 3V aplicat˘ a pe poarta sa, va conduce deci creaz˘ a o cale de scurtcircuit de la sursa de 5V la sursa de 3, 3V . Se poate ˆımpiedica intrarea ˆın conduct¸ie a tranzistorului Q dac˘ a ˆıntre poarta sa ¸si dren se introduce un tranzistor pMOS notat cu Q1, Figura 1.49-d. Pe poarta tranzistorului Q1 se aplic˘ a o tensiune constant˘ a VDD = 3, 3V . Cˆ and tensiunea de ie¸sire VO > VDD tranzistorul Q1 intr˘ a ˆın conduct¸ie realizˆ and o cale de impedant¸a˘ mic˘ a ˆıntre ie¸sire ¸si poarta tranzistorului Q. Rezult˘ a c˘ a potent¸ialul pe poarta tranzistorului Q nu poate s˘ a scad˘ a sub potent¸ialul VO aplicat pe drenul s˘ au, deci este blocat. O astfel de structur˘ a aplicat˘ a circuitului buffer LVTTL de tip TSL (alimentat la VDD = 3, 3V ) ˆıl face tolerant la 5V pe ie¸sire. Concluzionˆ and, interfat¸area TTL/LVTTL se poate realiza ˆın condit¸iile: 1. Interfat¸area LVTTL-TTL se poate face direct cu respectarea condit¸iilor de ˆınc˘ arcare la ie¸sire (nedep˘ a¸sirea valorilor pentru I OHmax ¸si IOLmax ); 2. Interfat¸area TTL-LVTTL se poate realiza dac˘ a intr˘ arile pe partea de LVTTL sunt intr˘ ari tolerante la 5V; 3. Port¸ile TTL ¸si LVTTL de tip TSL pot comanda ˆımpreun˘ a linii de magistral˘ a dac˘ a ie¸sirile LVTTL sunt tolerante la 5V. CMOS la 2, 5V ¸si 1, 8V . Migrarea de la 3, 3V la 2, 5V nu va fi simpl˘ a. Ie¸sirile de la familia CMOS de 3, 3V pot comanda intr˘ arile de la familia CMOS de 2, 5V atˆ at timp cˆ at intr˘ arile pe partea de 2, 5V sunt tolerante la 3, 3V . Dar, comparˆ and nivelurile logice de tensiune din Figura 1.48-c ¸si 1.48-d se observ˘ a c˘ a tensiunea V OH = 2V de la VDD = 2, 5V este egal˘ a cu VIH = 2V de la VDD = 3, 3V deci MH = 0 cˆ and CMOS de 2, 5V comand˘ a CMOS de 3, 3V . Solut¸ionarea acestei deficient¸e ar fi integrarea ˆımpreun˘ a cu poarta de 2, 5V a unui circuit de deplasare de nivel spre 3, 3V , solut¸ie ce se aplic˘ a ˆın prezent doar la µP ¸si ASIC-uri. Probabil cˆ and familia de port¸i logice CMOS la 2, 5V va deveni popular˘ a atunci ¸si port¸ile discrete vor avea ˆınglobat ¸si o component˘ a standard - circuitul de deplasare de nivel. Urm˘ atorul pas va fi tranzit¸ia de la 2, 5V la 1, 8V . Analizˆ and nivelurile logice de tensiune din Figura 1.48-d ¸si 1.48-e, cˆ and CMOS de 1, 8V comand˘ a CMOS de 2, 5V , rezult˘ a o valoare negativ˘ a pentru MH = 1, 45 − 1, 7 = −0, 25V deci, de asemenea, este necesar un circuit de deplasare de nivel.

1.5.4

Poarta de transmisie CMOS

Poarta de transmisie CMOS este compus˘ a din dou˘ a tranzistoare complementare, nMOS ¸si pMOS, avˆ and conectate ˆın comun drenurile, la fel ¸si sursele, iar port¸ile lor sunt comandate separat. Semnalele de comand˘ a pe cele dou˘ a port¸i ale tranzistoarelor sunt complementare, deci semnalul S pentru poarta tranzistorului pMOS se obt¸ine de la ie¸sirea unui inversor la a c˘ arui intrare s-a aplicat semnalul S pentru comanda port¸ii tranzistorului nMOS. Aceast˘ a structur˘ a cu reprezent˘ arile simbolice din Figura 1.50 are o funct¸ionare de comutator bidirect¸ional care este trecut ˆın starea deschis˘ a, ambele canale sunt blocate, prin semnalul de comand˘ a S = 0, S = 1, respectiv trecut ˆın stare inchis˘ a, cel put¸in un canal conduce, prin semnalul de comand˘ a S = 1, S = 0. Pentru ˆınt¸elegerea funct¸ion˘ arii acestui dispozitiv compus dintr-un tranzistor (de trecere) nMOS ¸si un tranzistor (de trecere) pMOS, conectate ˆıntre potent¸ialele Vin ¸si VO se va analiza funct¸ionarea separat˘ a a fiec˘ arui tranzistor. Se va considera

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

112 S A

S B

A

S B

A S

S

S B

A

B S

S

Figura 1.50 Diferite simboluri de reprezentare pentru poarta de transmisie CMOS. potent¸ialul de alimentare VDD ca fiind 1 logic iar potent¸ialul de mas˘ a VSS ca 0 logic. Reamintim c˘ a ambele tranzistoare sunt blocate cˆ and |V GS | ≤ |Vp | ¸si sunt ˆın conduct¸ie cˆ and |VGS | ≥ |Vp |. Tranzistoarele ˆın conduct¸ie sunt ˆın zona liniar˘ a cˆ and |VDS | < |VGS − Vp | ¸si ˆın zona de saturat¸ie cˆ and |VDS | ≥ |VGS − Vp |, Figura 1.32-b (dac˘ a relat¸iile sunt exprimate ˆın modul atunci sunt corecte atˆ at pentru nMOS cˆ at ¸si pentru pMOS). Pentru tranzistorul nMOS, Figura 1.51-a, cˆ and semnalul pe poart˘ a are valoarea S = 0 canalul este blocat ¸si este trecut ˆın conduct¸ie pentru S = 1. Pentru comanda trecerii ˆın conduct¸ie, S = VDD , la momentul t = 0, perechea de tensiuni vI(0) , vO(0) poate fi: VDD , VSS ; VSS , VDD ; VSS , VSS ; VDD , VDD . Considerˆ and c˘ a la terminalele tranzistorului este aplicat˘ a prima pereche de valori, v I (0) = VDD , vO (0) = VSS , atunci la ˆınceput canalul conduce ˆın saturat¸ie v DS = VDD − vO (0) = VDD − VSS = VDD > VGS − Vpn = VDD − Vpn condensatorul de sarcin˘ a CL se ˆıncarc˘ a pˆ an˘ a la tensiunea vO (∞) = VDD − Vpn cˆ and tranzistorul se blocheaz˘ a vGS = VDD − vO (∞) = VDD − (VDD − Vpn ) ≤ Vpn . Valoarea 1 logic de la intrare este transmis˘ a degradat˘ a la ie¸sire vO (∞) = VDD − Vpn ; se spune c˘ a tranzistorul nMOS transmite slab 1 logic. Pentru vI (0) = VSS ¸si vO (0) = VDD − Vpn canalul intr˘ a ˆın conduct¸ie ˆın regim liniar vGS = VDD − vI (0) = VDD − VSS = VDD , vDS = (VDD − Vpn ) − VSS = VDD − Vpn < vGS = VDD pˆ an˘ a cˆ and se ajunge la vDS = VSS , vGS = VDD ¸si IDS = 0; condensatorul CL se descarc˘ a pˆ an˘ a la vO (∞) = VSS . Rezult˘ a c˘ a valoarea 0 logic la intrare este transmis˘ a f˘ ar˘ a degradare la ie¸sire; se spune c˘ a tranzistorul nMOS transmite bine 0 logic. Valorile tensiunilor de ie¸sire v O (t = ∞) pentru toate cele patru combinat¸ii init¸iale ale perechii vI (0), vO (0) sunt concentrate ˆın tabelul din Figura 1.51-b. Tranzistorul de trecere pMOS, Figura 1.51-c, este blocat pentru S = 1 ¸si comandat a la comanda ˆın conduct¸ie, ovS = V SS , la terminalele ˆın conduct¸ie pentru S = 0. Dac˘ tranzistorului perechea vI (0), vO (0) are valorile VDD , VSS atunci la ˆınceput canalul conduce ˆın saturat¸ie |VDS | = |VSS − VDD | > |VGS | = |VSS − Vpp | pˆ an˘ a cˆ and vO cre¸ste la valoarea |VDD − Vpp | ¸si apoi ˆın regim liniar pˆ an˘ a cˆ and vO (∞) = VDD , deci CL se ˆıncarc˘ a pˆ an˘ a la tensiunea vO (∞) = VDD . Nivelul 1 logic este transmis prin canalul pMOS f˘ ar˘ a degradare. Pentru cazul cˆ and vI (0) = VSS , vO (0) = VDD condensatorul se descarc˘ a prin rezistent¸a canalului ˆın conduct¸ie pˆ an˘ a cˆ and v O = Vpp , sub aceast˘ a valoare |VGS | < |Vpp | canalul se blocheaz˘ a VO (∞) = |Vpp |. Canalul pMOS transmite cu degradare nivelul de 0 logic. Tabelul din Figura 1.51-d prezint˘ a modul cum se transmite semnalul prin tranzistorul pMOS pentru toate cele patru combinat¸ii de perechi vI (0), vO (0). Poarta de transmisie CMOS, care este un comutator format din cele dou˘ a canale

113

CAPITOLUL 1. PORT ¸ I LOGICE vI

vI

vO I DS

I DS

VGS Vpn

vO (0)

vI (0)

VDD VSS VSS VDD

VSS VDD − Vpn VSS VDD − Vpn

p

c)

vO ( ∞)

VDD VDD − Vpn VSS

VSS

VSS VDD − Vpn

vO ( ∞)

vO (0)

vI (0)

S

Canalul n blocat

VSS

VDD

CL

S

a) S

− VGS

n

CL

S

− Vpn

vO

Canalul p blocat VDD VSS VSS VDD

VSS VDD

VDD Vpp

Vpp VDD

Vpp VDD

d)

b)

Figura 1.51 Tranzistoare de trecere: a) tranzistorul de trecere nMOS ¸si caracterstica de comand˘ a IDSn = f (VGS ); b) analiza modului de transfer al semnalului printr-un canal nMOS; c) tranzistorul de trecere pMOS ¸si caracteristica de comand˘ a IDSp = f (VGS ); d) analiza modului de transfer al semnalului printr-un canal pMOS.

n ¸si p conectate ˆın paralel comandate cu semnale complementate, elimin˘ a dezavantajul de transmisie, degradarea de semnal, a fiec˘ arui tranzistor de trecere, astfel c˘ a realizeaz˘ a o transmisie bun˘ a atˆ at pentru 1 logic, prin canalul p, cˆ at ¸si pentru 0 logic prin canalul n, Figura 1.52-b. De¸si inversorul CMOS transmite bine nivelurile de 1 ¸si 0 logic, ˆıntr-un lant¸ de transmisie pentru un transfer corect, este necesar ca ¸si semnalele s˘ a fie suficient de puternice. ˆIn acest sens s˘ a consider˘ am c˘ a semnalul logic V m , din punctul A de pe condensatorul Cm (de valoare mic˘ a) vrem s˘ a-l transmitem prin intermediul port¸ii de VDD

Transmisie "1" fara degradare S

"0" Vm Cm

a)

A

B

"1"

VM

VI

CM

b)

A

B

S Transmisie "0" fara degradare

VI

VO

VO

CL VSS

c)

Figura 1.52 Poarta de transmisie CMOS: a) utilizarea port¸ii pentru controlul conexiunii ˆıntre dou˘ a puncte; b) poarta transmite f˘ ar˘ a degradare atˆ at nivelul de 1 logic cˆ at ¸si nivelul de 0 logic; c) ˆınserierea port¸ii de transmisie la ie¸sirea unei port¸i CMOS inversor este modalitatea normal˘ a de utilizare.

114

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

transmisie CMOS ˆın punctul B unde este conectat condensatorul C M (de valoare mare) pe care exist˘ a semnalul logic VM , Figura 1.52-a. Tensiunea rezultant˘ a, cˆ and poarta conduce, este : CM · V M + C m · V m VR = (1.81) CM + C m Dac˘ a Cm = 0, 02pF (o sarcin˘ a standard ˆın tehnologia integrat˘ a de 0, 5µm) ¸si V m = 5V iar CM = 0, 2pF (zece sarcini standard) ¸si Vm = 0V , cu relat¸ia 1.81, rezult˘ a tensiunea pe ambele capacit˘ a¸ti egal˘ a cu VR = 0, 45V . Aceasta ˆınsemn˘ a c˘ a semnalul din punctul A cu valoarea logic˘ a 1 nu s-a transmis corect ˆın punctul B, mai mult, semnalul din B a deteriorat semnalul din A ¸si aceasta pentru c˘ a semnalul V m nu a fost suficient de puternic s˘ a fort¸eze semnalul VM din B. Corectitudinea transferului prin poarta de transmisie se poate realiza prin: 1- izolarea nodului A de nodul B prin introducerea unui buffer; 2- realizarea unui semnal ˆın punctul A suficient de puternic. Uzual, realizarea unui semnal destul de puternic la intrarea unei port¸i de transfer CMOS rezult˘ a prin obt¸inerea semnalului de intrare la poarta de transfer de la ie¸sirea unui inversor CMOS, ca ˆın Figura 1.52-c. ˆIn implementarea sistemelor logice se intermixeaz˘ a port¸ile de transmisie cu cele pe baz˘ a de inversor CMOS; prin utilizarea ¸si a port¸ilor de transmisie rezult˘ a un num˘ ar mai redus de tranzistoare. Implementarea operatorilor logici pe baz˘ a de port¸i de transmisie CMOS se face ˆıntr-un mod similar ca la realizarea schemelor logice pe baz˘ a de contacte. Dac˘ a variabila de intrare ˆın poarta de transmisie (variabila de trecere) este x iar poarta este comandat˘ a ˆın deschidere cu variabila de control y se obt¸ine produsul logic xy, iar dac˘ a variabila de control este y se obt¸ine produsul logic xy. ˆIn acest mod de implementare, and x ca variabila de trecere iar y ca variabil˘ a pentru funct¸ia x ⊕ y = xy + xy, considerˆ de control, se obt¸ine structura din Figura 1.53-a. Implement˘ arile de baz˘ a de tranzistoare de trecere se fac la fel de simplu ca ¸si cele cu relee, de exemplu, ˆın Figura 1.53-b este implementat operatorul XOR. Bazat pe aceast˘ a simpl˘ a implementare a operatorului XOR se poate realiza un circuit pentru calculul identit˘ a¸tii a dou˘ a cuvinte, de exemplu X = x3 x2 x1 x0 ¸si Y = y3 y2 y1 y0 ca ˆın Figura 1.53-d. Acest circuit realizeaz˘ a funct¸ia de identificare cuvinte Idc = (x3 ⊕ y3 ) + (x2 ⊕ y2 ) + (x1 ⊕ y1 ) + (x0 ⊕ y0 ), generˆ and Idc = 1 numai cˆ and exist˘ a identitate. Structural este o pseudopoart˘ a NOR (Figura 1.46-a) ale c˘ arei intr˘ ari se obt¸in de la port¸i XOR. Extinzˆ and aceste reguli simple se poate obt¸ine o structur˘ a de circuit pe baz˘ a de port¸i de transmisie care poate modela toate cele 16 funct¸ii de dou˘ a variabile x, y. Fiecare funct¸ie de dou˘ a variabile fi2 (x, y) se poate obt¸ine, din tabelul de adev˘ ar din Figura 1.2-a, ca o form˘ a canonic˘ a normal˘ a disjunctiv˘ a, relat¸ia 1.10, sau pentru o exprimare sintetic˘ a se poate folosi relat¸ia matriceal˘ a:

2

f0 (x, y)

2

f1 (x, y) 0 0 0 0







.. x1 x0

0 0 0 1



. . . .

2 .

x1 x0



f (x, y) =

⇒ fi2 = kdij k · kP k . . . . (1.82)

· . . . .



i

x1 x0



..

1 1 1 0



x1 x0

.



f 2 (x, y) 1 1 1 1

14

f 2 (x, y) 15

115

CAPITOLUL 1. PORT ¸ I LOGICE

adic˘ a matricea funct¸iilor kfi2 k este produsul dintre matricea coeficient¸ilor kd ij k, i = 0, 1, · · · , 15, j = 0, 1, 2, 3 ai funct¸iei cu matricea termenilor produs de dou˘ a variabile kP k. Funct¸ia fi2 (x, y) are forma: fi2 (x1 , x0 ) = di0 x1 x0 + di1 x1 x0 + di2 x1 x0 + di3 x1 x0

(1.83)

Analizˆ and aceast˘ a relat¸ie se deduce c˘ a implementarea const˘ a din patru ramuri ˆın paralel, la fiecare din ramuri se aplic˘ a unul din coeficent¸ii binari ai funct¸iei (d i0 , di1 , di2 , di3 ), iar pe fiecare ramur˘ a sunt cˆ ate dou˘ a port¸i de transmisie ˆınseriate care realizeaz˘ a unul din termenii canonici produs (x 1 x0 , x1 x0 , x1 x0 , x1 x0 ), Figura 1.53-c. De exemplu, pentru setul de coeficient¸i: (d0 = 0, d1 = 1, d2 = 1, d3 = 0) ai funct¸iei f62 (vezi Figura 1.2) circuitul va implementa operatorul XOR, iar pentru setul: d0 = 0, d1 = 1, d2 = 1, d3 = 0 se obt¸ine modelarea operatorului NAND. Pentru fiecare combinat¸ie de patru bit¸i aplicat˘ a la intr˘ arile acestui circuit se va modela una din cele 16 funct¸ii de dou˘ a variabile. Se va vedea ˆın sect¸iunea 2.4.4 c˘ a acest circuit este, de fapt, o structur˘ a de multiplexor, MUX 4:1.

1.5.5

Circuite logice dinamice

La circuitele logice prezentate pˆ an˘ a acum funct¸ia logic˘ a realizat˘ a corespunde regimului static de funct¸ionare, adic˘ a este asociat˘ a cu punctul static de funct¸ionare. La o poart˘ a logic˘ a dup˘ a un (anumit) timp de propagare (ˆıntˆ arziere pe poart˘ a), de la aplicarea intr˘ arilor, se obt¸ine la ie¸sire o stare logic˘ a stabil˘ a care se ment¸ine atˆ at timp cˆ at VDD y x y

xy + xy

y x

di

y

a)

di

y x

di

y

di xy + xy

y3 0

A 1

A

b)

f i2 (x,y)

B

y2

2

A

B

y2

3

A

c)

x

y3

B

B

y1 y1 y0 y0

x3

I dc

x3 x2 x2 x1 x1 x0 x0

d)

Figura 1.53 Exemple de circuite implementate cu port¸i de transmisie CMOS ¸si tranzistoare de trecere: Operatorul XOR cu port¸i de transmisie (a) ¸si cu tranzistoare de trecere (b); c) structur˘ a programabil˘ a pentru toate cele 16 funct¸ii de dou˘ a variabile, fi2 (x, y); d) structur˘ a de circuit pentru determinarea identit˘ a¸tii a dou˘ a cuvinte de patru bit¸i (X = x3 x2 x1 x0 , Y = y3 y2 y1 y0 ).

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

116

se ment¸in valorile intr˘ arilor ¸si tensiunea de alimentare se p˘ astreaz˘ a. Implement˘ arile acestea, referite ca statice, ˆın general necesit˘ a un num˘ ar mare de tranzistoare ¸si care, ˆın plus, pot determina timpi de ˆıntˆ arziere considerabili. Pentru implement˘ arile de ˆınalt˘ a performant¸a˘ ¸si de densitate mare de integrare, unde puterea disipat˘ a, ˆıntˆ arzierea pe circuit ¸si aria consumat˘ a pe siliciu sunt cerint¸e majore, se recomand˘ a a¸sa numitele circuite logice dinamice care ofer˘ a unele avantaje ˆın raport cu circuitele logice statice. Totu¸si, aceste avantaje pot fi umbrite de faptul c˘ a, ˆın raport cu circuitele statice, imunitatea la zgomot este mai sc˘ azut˘ a, ceea ce a determinat ca unele circuite dinamice s˘ a fie modificate pentru o funct¸ionare pseudostatic˘ a. Funct¸ionarea circuitelor logice dinamice se bazeaz˘ a pe stocarea temporar˘ a (tranzistorie) a unei sarcini electrice pe o capacitate parazit˘ a a unui nod de circuit. Tensiunea tranzitorie pe acea capacitate parazit˘ a, ˆın intervalele de timp cˆ and se situeaz˘ a ˆın intervalele ∆VIH , ∆VIL , este considerat˘ a ca semnal logic de intrare pentru comanda circuitului a c˘ arui intrare este conectat˘ a la acel nod (ˆın aceste intervale de timp nu mai este necesar s˘ a se aplice semnal de intrare din exterior). Circuitele logice dinamice de baz˘ a, pentru port¸ile dinamice nMOS ¸si pentru cele CMOS, sunt reprezentate respectiv ˆın Figura 1.54-a ¸si 1.54-b. Pentru ambele circuite

D

VGS =0 vx

VI nMOS

S

VDD

CLK

canal initial

G

CLK

I DS

VDD

VO

− Vpn 0

VGS

vx

VI

VO

T1 Cx

a)

CL

Cx

CLK

CL

b)

VDD CLK VSS

t t1 VDD

t2

t3

vx

VDD − Vpn Vp inversor

t t1

t2

t4

c)

Figura 1.54 Circuite logice dinamice: a) structur˘ a de inversor dinamic (cu sarcin˘ a tranzistor cu canal init¸ial) ¸si comutator pe intrare – tranzistor de trecere; b) structur˘ a de inversor dinamic CMOS cu comutator pe intrare – poart˘ a de trecere; c) diagramele de timp pentru semnalul de ceas, CLK, ¸si pentru variat¸ia tensiunii v x pe capacitatea parazit˘ a Cx a nodului de intrare.

CAPITOLUL 1. PORT ¸ I LOGICE

117

tensiunea Vx , care va comanda ˆın intervalele tranzitorii inversorul cu tranzistor de comand˘ a nMOS ¸si sarcina cu canal init¸ial (depletion-load nMOS) sau inversorul CMOS, este tensiunea rezultat˘ a pe capacitat¸ile parazite C x ale port¸ilor de intrare. Inversorul cu tranzistor de comand˘ a nMOS (sau pMOS) are o structur˘ a de principiu similar˘ a ca ¸si inversorul bipolar, Figura 1.21-d, un element comandat-tranzistorul-¸si o sarcin˘ a. La fel ca ¸si cel bipolar, sarcina se poate realiza cu o rezistent¸a˘ de sarcin˘ a ˆın dren, dar ˆın tehnologia integrat˘ a o rezistent¸a˘ de sarcin˘ a obt¸inut˘ a prin difuzie ocup˘ a o suprafat¸a˘ pe siliciu echivalent˘ a cu suprafat¸a consumat˘ a, pentru implementarea, a zeci de tranzistoare. Evitarea unui astfel de consum mare de suprafat¸a˘ de siliciu poate fi obt¸inut˘ a prin utilizarea ca rezistent¸a˘ de sarcin˘ a rezistent¸a unui canal nMOS ˆın conduct¸ie, deci un tranzistor utilizat ca rezistent¸a˘. Exist˘ a dou˘ a modalit˘ a¸ti de realizare a sarcinii pe baz˘ a de tranzistor: fie cu un tranzistor nMOS cu canal indus ˆın regim de saturat¸ie, fie un tranzistor nMOS cu canal init¸ial. Inversorul cu rezistent¸a de sarcin˘ a canal ˆın saturat¸ie se obt¸ine prin conectarea ˆıntre tranzistorul inversor (de comand˘ a) ¸si bara V DD a unui tranzistor (de sarcin˘ a) nMOS a c˘ arui poart˘ a se conecteaz˘ a la VDD . Prin aceast˘ a conexiune poarta ¸si drenul fiind echipotent¸iale, VGS sarcin˘a = VDD − VS = VDD − VO , VDS sarcin˘a = VD − VS = VDD − VO rezult˘ a c˘ a totdeauna VGS sarcin˘a = VDS sarcin˘a iar VDS sarcin˘a > VGS sarcin˘a − Vpn sarcin˘a , deci canalul este permanent ˆın saturat¸ie, Figura 1.32-b. C˘ aderea de tensiune pe canal VDS sarcin˘a nu poate sc˘ adea sub valoarea de prag de deschidere V pn sarcin˘a deoarece atunci canalul s-ar bloca (s-a explicat ˆın 1.5.4 c˘ a tranzistorul nMOS transmite deteriorat 1 logic). Aceasta ˆınseamn˘ a c˘ a tensiunea maxim˘ a de ie¸sire ˆın starea H nu poate atinge valoarea barei de alimentare V DD , VOmax = VDD − Vpn sarcin˘a < VDD . Inversorul cu tranzistor inversor nMOS ¸si cu sarcin˘ a tranzistor nMOS cu canal init¸ial poate genera la ie¸sire o tensiune maxim˘ a egal˘ a cu V DD . Tranzistorul nMOS cu canal init¸ial are, chiar cˆ and V GS = 0, permanent o sarcin˘ a electric˘ a negativ˘ a ˆın canal (canalul init¸ial), deci exist˘ a un curent dac˘ a V DS > 0; aceast˘ a stare se poate observa din caracteristica de comand˘ a I DS = f (VGS ), desenat˘ a lˆ ang˘ a tranzistor ˆın Figura 1.54-a. Se observ˘ a c˘ a din aceast˘ a caracteristic˘ a valoarea tensiunii de prag de deschidere a tranzistorului este negativ˘ a, −V pn , iar cˆ and grila este conectat˘ a la surs˘ a, VGS = 0, canalul este ˆın conduct¸ie, IDS 6= 0. Deci atunci cˆ and tranzistorul inversor este blocat tensiunea de ie¸sire V OH nu mai este limitat˘ a la valoarea VDD −Vpn (ca la inversorul cu sarcin˘ a tranzistor saturat) ci poate cre¸ste pˆ an˘ a la valoarea VDD . Canalul init¸ial se obt¸ine ˆın procesul tehnologic printr-o difuzie suplimentar˘ a, ˆın zona canalului, de impurit˘ a¸ti donoare care genereaz˘ a (permanent) canalul init¸ial; m˘ arind tensiunea de comand˘ a pe poart˘ a V GS peste valoarea zero sarcina negativ˘ a a canalului init¸ial este ˆınt˘ arit˘ a suplimentar printr-o sarcin˘ a indus˘ a ˆın canal. Pentru cele dou˘ a tipuri de inversoare, din Figura 1.54-a ¸si 1.54-b, tensiunea de intrare VI se aplic˘ a pe grilele de intrare prin intermediul unui comutator, care este un tranzistor de trecere nMOS pentru inversorul cu sarcin˘ a cu canal init¸ial, iar pentru inversorul CMOS este o poart˘ a de transmisie CMOS. Comutatorul este comandat periodic cu un semnal de ceas, CLK; deci cˆ and CLK = 1 comutatorul este ˆınchis iar tensiunea de intrare VI va fort¸a ˆınc˘ arcarea sau desc˘ arcarea capacit˘ a¸tii parazite Cx pˆ an˘ a la un potent¸ial vx = VDD sau vx = 0 dup˘ a cum la intrare VI a avut valorile 1 sau 0 logic. Aceste valori pentru Vx se obt¸in doar pentru comutatorul poarta de transmisie dar pentru comutatorul tranzistor de trecere se obt¸in valorile vx = VDD −Vpn , vx = 0 (tranzistorul de trecere nMOS transmite cu deteriorare 1 logic

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

118

¸si f˘ ar˘ a deteriorare 0 logic, iar poarta de transmisie transmite f˘ ar˘ a deteriorare atˆ at 1 logic cˆ at ¸si 0 logic). Cˆ and semnalul de ceas devine inactiv CLK = 0, comutatorul este deschis, condensatorul Cx r˘ amˆ ane ˆınc˘ arcat sau desc˘ arcat, iar tensiunea sa V x va comanda ie¸sirea inversorului respectiv ˆın starea logic˘ a 0, V O = VOL sau 1, VO = VOH . Sarcina stocat˘ a pe Cx scade ˆın timp datorit˘ a unui curent de desc˘ arcare. Curentul de desc˘ arcare spre mas˘ a nu este prin stratul de oxid de sub poarta tranzistorului/tranzistoarelor inversorului, care prezint˘ a o rezistent¸a˘ extrem de mare (∼ 10 14 Ω) ci prin comutatorul de pe intrare. Curentul de desc˘ arcare prin acest comutator are dou˘ a componente: 1- curentul prin jonct¸iunea pn polarizat˘ a invers, format˘ a ˆıntre zona difuzat˘ a a terminalului tranzistorului de trecere legat˘ a la C x ¸si substratul ˆın care este realizat˘ a aceast˘ a zon˘ a; 2- curentul de conduct¸ie de sub prag; dar preponderent˘ a este prima component˘ a. Cˆ and CLK = 0 vx = VDD sau VDD −Vpn(tranzistor de trecere) inversoarele genereaz˘ a la ie¸sire VOL ¸si aceast˘ a valoare logic˘ a se p˘ astreaz˘ a pˆ an˘ a cˆ and v x descre¸ste pˆ an˘ a la tensiunea de prag a tranzistorului inversor V p(inversor) , adic˘ a momentul t4 din Figura 1.54-c. Evident, funct¸ionarea corect˘ a a inversorului dinamic se realizeaz˘ a numai atunci cˆ and semnalul CLK devine activ ˆınainte ca v x s˘ a scad˘ a la Vp(inversor) , t3 < t4 . Atˆ at pentru comutatorul tranzistor de trecere cˆ at ¸si pentru comutatorul poart˘ a de transmisie variat¸ia ˆın timp a tensiunii v x (t), deci a intervalului cˆ and aceasta ajunge la pragul Vp(inversor) , se poate determina analitic pe baza circuitelor echivalente din Figura 1.51-a, 1.51-b sau printr-o modelare ˆın SPICE. Dar un calcul orientativ se poate efectua foarte rapid; de exemplu pentru C x = 0, 1pF , Idesc˘arcare = 0, 1pA rezult˘ a o variat¸ie ∆Vx /∆t = I/C = 0, 1 · 10−12 pA/0, 1 · 10−12 pF = 1V /s, deci o 5V sc˘ adere de la 5V la 0V ˆın 5s ( 1V a vitez˘ a de sc˘ adere de 1V /s a /s = 5s). La aceast˘ tensiunii Vx o frecvent¸a˘ de exemplu 500Hz (T = 2ms) pentru semnalul de ceas, ca s˘ a reˆımprosp˘ ateze sarcina pe condensator, este cu mult peste suficient. Semnalul de ceas mai este referit, ˆın acest caz, ¸si ca semnal de reˆımprosp˘ atare (refreshment). Exemplul 1.19 Pentru lant¸urile de tranzistoare de transmisie nMOS din Figura 1.55-a ¸si 1.55-b s˘ a se determine tensiunea la ie¸sire. VI = V DD

T1

(V DD − Vpn1)

T2

(V DD − Vpn2)

V1 VDD

T3

VDD

T4 V4max = (V DD − Vpn4) V4

(V DD − Vpn3)

V2

V3 VDD

VDD

a) VI = V DD VI = V DD T1

VI = V DD

T2

T3

V3max = V DD − Vpn1 − Vpn2 − Vpn3

V2max = V DD − Vpn1 − Vpn2

V1max = V DD − Vpn1

VDD

b)

Figura 1.55 Structuri de lant¸uri cu tranzistoare de trecere nMOS

119

CAPITOLUL 1. PORT ¸ I LOGICE

Solut¸ie. Pentru lant¸ul obt¸inut din ˆınserierea a patru tranzistoare de trecere nMOS identice (Vpn1 = Vpn2 = Vpn3 = Vpn4 ) se consider˘ a c˘ a VI = VDD ¸si toate cele patru noduri sunt desc˘ arcate (V1 = V2 = V3 = V4 = 0). Cu aceste considerat¸ii tranzistorul T1 opereaz˘ a ˆın saturat¸ie VDS1 > VGS1 − Vpn1 deci c˘ aderea de tensiune pe primul canal nu poate fi mai mic˘ a decˆ at Vpn1 rezult˘ a c˘ a tensiunea V1 ˆın nodul 1 nu poate dep˘ a¸si valoarea V1max = (VDD −Vpn1 ). Tranzistorul T2 funct¸ioneaz˘ a la limita de saturat¸ie deci tensiunea maxim˘ a ˆın nodul 2 va fi V2max = (VDD − Vpn2 ). Extinzˆ and la T4 tensiunea ˆın nodul 4 va fi mai mic˘ a cu Vpn4 decˆ at VDD . Rezult˘ a c˘ a indiferent cˆ ate tranzistoare sunt ˆınseriate cˆ and la intrare se aplic˘ a VI = VDD tensiunea pe fiecare nod intern se va stabiliza la o valoare egal˘ a cu Vpn sub VDD oricare a fost tensiunea init¸ial˘ a pe nod. Ca o imagine intuitiv˘ a se poate considera un singur tranzistor de trecere, cu de n ori lungimea de canal, pe care este o c˘ adere egal˘ a cu Vp . Pentru structura din Figura 1.55-b cˆ and ie¸sirea de la tranzistorul anterior se aplic˘ a pe poarta tranzistorului urm˘ ator, fiecare tensiune de ie¸sire poate cre¸ste doar pˆ an˘ a la valoarea egal˘ a cu Vpn sub tensiunea aplicat˘ a pe poart˘ a deci V1max = VDD − Vpn , V2max = VDD − Vpn − Vpn , V3max = VDD − Vpn − Vpn − Vpn − . . . Vnmax = VDD − nVpn .

Circuite CMOS dinamice. Implementarea urm˘ atoarei funct¸ii de opt variabile F = AB + (C + D)(E + F ) + GH pe o structur˘ a CMOS static˘ a convent¸ional˘ a necesit˘ a 16 tranzistoare ca ˆın Figura 1.56-a. Aceea¸si implementare pe o structur˘ a CMOS VDD

CLK

VDD Tp

y

VDD A

B

A

G

E

F

E

C

B

H

C

D

F

D

G

H

vO

Cy

VDD Te

A

G

E

F

B

H

C

D

VO

b) Preincarcare VDD VSS

a)

VDD VSS

Preincarcare Evaluare

CLK

vO

Conduce:

Tp

Te

Tp

c)

Figura 1.56 Port¸i CMOS pentru implementarea funct¸iei F = AB + (C + D)(E + F ) + GH: a) cu o structur˘ a static˘ a; b) cu o structur˘ a dinamic˘ a; c) diagramele de semnale pentru fazele de preˆınc˘ arcare ¸si evaluare ˆın funct¸ionarea port¸ii dinamice.

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

120

dinamic˘ a, reprezentat˘ a ˆın Figura 1.56-b, necesit˘ a doar 10 tranzistoare; structura are asem˘ anare cu cu pseudo-poarta CMOS din Figura 1.46-a. Aceast˘ a poart˘ a dinamic˘ a const˘ a dintr-o ret¸ea de n tranzistoare al c˘ arui nod de ie¸sire y, caracterizat de o capacitate parazit˘ a Cy , este preˆınc˘ arcat la tensiunea VDD prin tranzistorul pMOS, Tp . Apoi condensatorul Cy este desc˘ arcat/evaluat condit¸ionat (de intr˘ arile de comand˘ a ale port¸ii) prin unele din tranzistoarele ret¸elei nMOS ¸si prin tranzistorul nMOS, T e . Alternativ, se poate realiza o structur˘ a cu un nMOS tranzistor pentru preˆınc˘ arcare la VDD , un pMOS tranzistor pentru desc˘ arcare la VSS ¸si o ret¸ea de p de tranzistoare. Faza de preˆınc˘ arcare a capacit˘ a¸tii Cy prin tranzistorul Tp pˆ an˘ a la tensiunea vO = VDD se realizeaz˘ a pe intrevalul de timp cˆ and semnalul de ceas are valoarea CLK = 0, Figura 1.55-c, totodat˘ a se aplic˘ a ¸si valorile variabilelor pe intr˘ arile port¸ii. Apoi, pe intervalul de timp cˆ and semnalul de ceas are valoarea CLK = 1, iar T p este blocat dar Te conduce, se realizeaz˘ a evaluarea valorii funct¸iei. ˆIn funct¸ie de valorile logice ale variabilelor de intrare se poate realiza sau nu o cale de scurtcircuit la mas˘ a pentru tensiune vO = VDD , deci valoarea funct¸iei este evaluat˘ a la 0 sau 1 logic. Pe nodul de ie¸sire y poate obt¸ine doar o tranzit¸ie de la 1 la 0 sau r˘ amˆ ane ˆın starea 1 logic. VDD CLK Tp1

VDD

vO1

Tp2 vO2

Intr1 RETEA nMOS

VDD CLK VSS

Evaluare

1

Te1

Te2

Poarta 1

Poarta 2

VDD vO2

b)

VDD Tp1 CLK

VDD Tp2 vO1

VDD vO1

Intr2

a)

Preincarcare

vO2

RETEA nMOS

RETEA nMOS

Te1

Te2

Poarta 1

Poarta 2

Corect Eronat

c)

Figura 1.57 Port¸i CMOS dinamice: a) ˆınserierea port¸ilor ¸si diagrama semnalelor la ie¸sirea lor (b); c) ˆınserierea port¸ilor de tip domino. Funct¸ionarea unei singure port¸i CMOS dinamice, ca ˆın Figura 1.56-b, este corect˘ a, dar cˆ and sunt ˆınseriate mai multe port¸i ca ˆın Figura 1.57-a poate apare o funct¸ionare eronat˘ a. ˆIn aceast˘ a ˆınseriere Poarta2 se consider˘ a a fi un NAND cu dou˘ a intr˘ ari (Intr1, Intr2). Pe durata fazei de preˆınc˘ arcare, prin tranzistoarele T p1 ¸si Tp2 , tensiunile de ie¸sire vO1 ¸si vO2 ajung la valoarea VDD iar valorile variabilelor de intrare sunt aplicate la Poarta1, a doua intrare (Intr2) pentru Poarta2 se consider˘ a c˘ a are aplicat˘ a valoarea 1 (pe prima intrare (Intr1) a Port¸ii2 se aplic˘ a v O1 ). Se presupune c˘ a intr˘ arile pentru Poarta1 determin˘ a pentru aceasta, prin unele tranzistoare ˆın conduct¸ie din ret¸eaua n ¸si prin Te1 , o cale de scurtcircuit la mas˘ a pe durata fazei de evaluare, deci vO1 devine 0 logic, valoare evaluat˘ a corect pentru Poarta1. Dar, la ˆınceputul fazei de evaluare tensiunea de ie¸sire, care se aplic˘ a pe prima

CAPITOLUL 1. PORT ¸ I LOGICE

121

intrare de la Poarta2, este ˆınc˘ a la nivelul vO1 = vDD deci ie¸sirea vO2 a port¸ii NAND va fi comandat˘ a ˆın valoarea zero, vO2 = 0. Aceast˘ a valoare logic˘ a 0 de la ie¸sirea port¸ii NAND este eronat˘ a deoarece la sfˆ ar¸situl fazei de evaluare ar trebui s˘ a fie 1 logic (vO2 = VDD ) pentru c˘ a ie¸sirea corect˘ a de la Poarta1 este 0 logic, Figura 1.57-b. Rezult˘ a c˘ a posibilitatea de funct¸ionare eronat˘ a la aceast˘ a poart˘ a cˆ and este ˆınseriat˘ a cu alte port¸i s-ar p˘ area c˘ a elimin˘ a celelalte avantaje (putere disipat˘ a redus˘ a, valoarea ridicat˘ a pentru marginea de zgomot, num˘ ar redus de tranzistoare ¸si vitez˘ a ridicat˘ a). Pentru eliminarea posibilit˘ a¸tii de funct¸ionare eronat˘ a au fost realizate o mult¸ime de structuri [Weste 2001][Kang 1996] CMOS dinamice de mare performant¸a˘ dar care nu prezint˘ a acest dezavantaj, dintre acestea se va prezenta doar structura de poart˘ a CMOS (dinamic˘ a) domino. O poart˘ a logic˘ a CMOS domino se compune dintr-o poart˘ a CMOS dinamic˘ a la care se conecteaz˘ a pe ie¸sire un inversor CMOS static, Figura 1.57-c. S˘ a explic˘ am necesitatea introducerii inversorului. Poarta1 poate realiza la ie¸sire doar o comutat¸ie de la 1 la 0 ¸si trebuie s˘ a comande tranzistorul Port¸ii2 numai cˆ and are evaluat˘ a pentru ie¸sire valoarea 0. Deoarece tranzistorul nMOS al Port¸ii2 se comand˘ a cu 1 logic este normal ca ˆıntre ie¸sirea Port¸ii1 ¸si intrarea Port¸ii2 s˘ a se introduc˘ a un inversor CMOS static; cu aceast˘ a completare Poarta2 este comandat˘ a numai atunci cˆ and, dup˘ a evaluare, Poarta1 comut˘ a din 1 ˆın 0. Cˆ and Poarta1 comut˘ a din 1 ˆın 0, comand˘ a, prin inversor, ca Poarta2 s˘ a poat˘ a comuta din 1 ˆın 0, care la fel comand˘ a Poarta3 s˘ a comute din 1 ˆın 0 ¸si a¸sa mai departe pˆ an˘ a la poarta n-a (propagare de tip domino!). Evident, ,, aceast˘ a succesiune de “c˘ aderi ale tensiunilor de ie¸sire ale port¸ilor din 1 ˆın 0 – similar ca la un lant¸ domino – trebuie s˘ a se propage ˆıntr-un interval de timp care s˘ a nu fie mai lung decˆ at faza de evaluare, CLK = 1. Dar ¸si poarta domino prezint˘ a inconveniente: primul, poarta este la ie¸sire (din inversorul static CMOS) o structur˘ a neinversoare (necesar˘ a pentru un lant¸ domino) iar dac˘ a este necesar˘ a o inversare trebuie introdus ˆınc˘ a un inversor static; al doilea, distribut¸ia sarcinii C y pe nodurile intermediare ale tranzistoarelor nMOS ˆınseriate (din ret¸eaua nMOS) ˆın timpul fazei de evaluare, poate produce o ie¸sire eronat˘ a. Distribut¸ia sarcinii nodului de ie¸sire pe nodurile intermediare din ret¸eaua nMOS apare ˆın felul urm˘ ator. S˘ a consider˘ am poarta domino din Figura 1.58-a. ˆIn intervalul de timp de preˆınc˘ arcare tensiunea v y ˆın nodul de ie¸sire y, pe capacitatea parazit˘ a Cy , atinge valoarea VDD . Se poate ca unele semnale de comand˘ a pe port¸ile tranzistoarelor nMOS ˆınseriate s˘ a nu fie aplicate corect; semnalele de intrare pe port¸ile tranzistoarelor trebuie aplicate numai pe durata fazei de preˆınc˘ arcare, este incorect˘ a modificarea valorii acestor semnale pe durata fazei de evaluare. S˘ a presupunem c˘ a ˆın faza de evaluare pe port¸ile primelor dou˘ a tranzistoare nMOS de lˆ ang˘ a nodul de ie¸sire y al Port¸ii1 se aplic˘ a semnalele 1 logic care comand˘ a aceste dou˘ a tranzistoare ˆın conduct¸ie; restul tranzistoarelor ˆınseriate din ret¸eaua nMOS sunt comandate ˆın blocare, Te1 conduce, deci nu exist˘ a o cale de scurtcircuit a sarcinii de pe C y la mas˘ a, ie¸sirea Port¸ii1 nu comut˘ a din 1 ˆın 0. Deoarece primele dou˘ a tranzistoare T1 ¸si T2 conduc, sarcina de pe Cy se distribuie ¸si pe condensatoarele parazite C 1 ¸si C2 din nodurile dintre tranzistoarele T1 ¸si T2 respectiv T2 ¸sihT3. ˆIn urma i distribuirii C sarcinii tensiunea ˆın nodul de ie¸sire va avea valoarea v y = Cy +Cy1 +C2 VDD . Pentru VDD = 5V , Cy = C1 = C2 rezult˘ a Vy = 1, 66V . Valoarea tensiunii vy = 1, 66V , cˆ and tensiunea la ie¸sirea Port¸ii1 ar fi trebuit s˘ a r˘ amˆ an˘ a la valoarea v y = VDD = 5V , este sub valoarea de prag de comutat¸ie (≈ 2, 5V ) a inversorului CMOS static, deci ie¸sirea

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

122

CLK

VDD

VDD

Tp1

Tp2

y

CLK

VDD Tp1

Tm vy

T1

vO

Cy C1

T2 C2

Retea nMOS

Retea nMOS

Retea nMOS Te1

a)

Poarta 1

Te1

Te2 Poarta 2

b)

Figura 1.58 Poarta CMOS domino: a) dac˘ a nu se respect˘ a aplicarea semnalelor de intrare, numai ˆın faza de preˆınc˘ arcare, atunci redistribut¸ia sarcinii de pe C y poarta produce o funct¸ionare eronat˘ a pentru o poart˘ a domino; b) eliminarea posibilit˘ a¸tii de funct¸ionare eronat˘ a prin introducerea unui circuit cu react¸ie (tranzistorul T m ) pentru ment¸inerea vy = VDD . acestuia comut˘ a din 0 ˆın 1 ¸si se comand˘ a intrarea Port¸ii2. Iat˘ a c˘ a prin distribut¸ia de sarcin˘ a sc˘ aderea tensiunii vO1 produce o comand˘ a eronat˘ a pentru Poarta2. Pentru eliminarea comutat¸iei eronate datorat˘ a distribut¸iei sarcinii din nodul de ie¸sire se poate aplica una din urm˘ atoarele solut¸ii: 1. Se realizeaz˘ a inversorul CMOS static cu un prag de comutat¸ie foarte sc˘ azut; 2. Se utilizeaz˘ a cˆ ate un tranzistor de preˆınc˘ arcare, similar lui T p1 , pentru fiecare nod din ret¸eaua de tranzistoare nMOS, ˆın felul acesta capacitatea din fiecare nod se ˆıncarc˘ a la tensiunea VDD (deci sarcina de pe Cy nu se mai distribuie). 3. Se realizeaz˘ a un tranzistor pMOS de ment¸inere T m ca ˆın Figura 1.58-b. Acesta ,, este un tranzistor “slab , adic˘ a fort¸eaz˘ a un curent foarte mic ˆın nodul de ie¸sire deoarece are un raport de forma W/L de valoare foarte mic˘ a, deci poate ment¸ine tensiunea vy ˆın starea H ˆın acest nod numai dac˘ a nu exist˘ a o cale putenic˘ a de scurtcircuit de la nod la mas˘ a prin lant¸ul de tranzistoare din ret¸eaua nMOS. Se observ˘ a c˘ a tranzistorul Tm este ˆın conduct¸ie doar cˆ and tensiunea ˆın nod este de nivel H; prin react¸ia invers˘ a, realizat˘ a prin intermediul inversorului static, se aplic˘ a un semnal de nivel L pe poarta lui Tm ment¸inˆ andu-l ˆın conduct¸ie. Performant¸ele tranzitorii ale port¸ii domino pot fi ˆımbun˘ at˘ a¸tite prin reducerea timpului de desc˘ arcare a capacit˘ a¸tii Cy la mas˘ a prin linia de tranzistoare nMOS ˆınseriate. O solut¸ie ˆın acest sens este realizarea layoutului tranzistoarelor ˆınseriate ca ˆın Figura 1.59-b, unde l˘ a¸timea de canal cre¸ste ˆın sensul de la tranzistorul conectat la nod spre tranzistorul conectat la mas˘ a, de¸si aceast˘ a geometrie pare a fi contraintuitiv˘ a.

123

CAPITOLUL 1. PORT ¸ I LOGICE

Prin mic¸sorarea raportului de form˘ a W/L al unui tranzistor capabilitatea de a furniza curent scade (rezistent¸a echivalent˘ a a canalului cre¸ste), la fel scad ¸si capacit˘ a¸tile parazite. Explicat¸ia ˆın cazul prezentei geometrii este: dac˘ a lungimea canalelor nMOS ˆınseriate este destul de mare cre¸sterea rezistent¸ei prin mic¸sorarea unor l˘ a¸timi de canal este neˆınsemnat˘ a pe cˆ and sc˘ aderea capacit˘ a¸tii parazite este semnificativ˘ a ¸si deci per total rezult˘ a o constant˘ a de timp mic¸sorat˘ a pentru desc˘ arcare. ˆIn plus, se poate realiza pentru inversorul static de pe ie¸sire, care dup˘ a faza de evaluare poate comuta de la 0 la 1, o vitez˘ a m˘ arit˘ a a comutat¸iei L − H de la ie¸sirea sa prin dimensionarea tranzistorului nMOS al s˘ au cu W m˘ arit. VDD CLK

Tp1

CLK

Tp1

O

O

A

A

B

B

C

C

D

D

Te1 a)

Te1 b)

Figura 1.59 Poarta CMOS dinamic˘ a: a) structur˘ a tipic˘ a de poart˘ a domino; b) variant˘ a de layout (simplificat) care poate realiza un timp redus ˆın etapa de evaluare pentru poarta domino. Poarta domino, de fapt, este realizat˘ a din dou˘ a etaje, poarta dinamic˘ a urmat˘ a de inversorul CMOS static, Figura 1.59-a. Uneori poarta domino nu este sincronizat˘ a ˆın faza de evaluare, deci tranzistorul Te este eliminat; acest tranzistor ˆıncetine¸ste procesul de desc˘ arcare al capacit˘ a¸tii Cy dar elimin˘ a ˆın faza de preˆınc˘ arcare orice cale de conduct¸ie ˆıntre VDD ¸si VSS . Tipic o poart˘ a domino este de 1, 5 ÷ 2 ori mai rapid˘ a decˆ at o poart˘ a CMOS static˘ a.

1.5.6

Metoda efortului logic

Metoda efortului logic a fost conceput˘ a de c˘ atre Ivan Sutherland ¸si Bob Sproull (1991), ca un instrument ˆın proiectarea circuitelor CMOS ˆın funct¸ie de ˆıntˆ arzierea pe circuit, ulterior a fost publicat˘ a o monografie pe acest subiect [Sutherland 0 99]. Prezentul material este o sintez˘ a a metodei efortului logic bazat˘ a pe aceast˘ a monografie.

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

124

Metoda efortului logic ˆın raport cu alte metode de proiectare (simulare ¸si corectare, fan-out egal pe etaj, optimizarea numeric˘ a, ˆıntˆ arziere egal˘ a pe nivel) este u¸sor de aplicat pentru c˘ a se bazeaz˘ a pe un simplu model RC al port¸ii, permite o leg˘ atur˘ a cu structura intern˘ a a circuitului, deci se poate alege topologia optim˘ a de circuit. Prin aplicarea metodei se pot proiecta circuite care realizeaz˘ a abateri ale timpului de propagare cu cel mult 10% fat¸a˘ de timpul minim. Este foarte important faptul c˘ a, prin utilizarea metodei efortului logic, se poate selecta ˆın prima etap˘ a cu certitudine care dintre variantele de circuit luate ˆın considerare pentru analiz˘ a este mai rapid˘ a; valoarea absolut˘ a a ˆıntˆ arzierii pe circuit nu este chiar a¸sa de important˘ a ˆın prima etap˘ a, deoarece pentru o variant˘ a de circuit selectat se pot face apoi simul˘ ari exacte de timp. De¸si metoda efortului logic conduce la proiectarea unui circuit CMOS rapid apare totu¸si ca lacunar˘ a prin faptul c˘ a nu este corelat˘ a cu obt¸inerea pentru acel circuit ¸si a unui minim pentru aria consumat˘ a ¸si pentru puterea disipat˘ a. 1.5.6.1

Determinarea ˆıntˆ arzierii pe o poart˘ a logic˘ a

Primul pas ˆın modelarea ˆıntˆ arzierilor este concentrarea tuturor efectelor de ˆıntˆ arziere, ale unui circuit de referint¸a˘ realizat ˆıntr-o anumit˘ a tehnologie, sub forma unei unit˘ a¸ti etalon de ˆıntˆ arziere. ˆIn fiecare tehnologie se alege ca circuit de referint¸a˘, dintre toate port¸ile realizate ˆın tehnologia respectiv˘ a, poarta cea mai simpl˘ a, adic˘ a poarta inversor. Iar ca unitate etalon de ˆıntˆ arziere, notat˘ a cu τ , este ˆıntˆ arzierea introdus˘ a de poarta inversor cˆ and se consider˘ a c˘ a nu are capacit˘ a¸ti interne parazite ¸si comand˘ a doar o poarta inversor identic˘ a. Astfel se va exprima ˆıntˆ arzierea absolut˘ a, dabs , a unei alte port¸i din aceea¸si tehnologie ca produsul dintre ˆıntˆ arzierea etalon τ a inversorului ¸si o ˆıntˆ arziere adimensional˘ a d (specific˘ a fiec˘ arei port¸i) dabs = d · τ

(1.84)

Pentru o tehnologie cu caracteristica de 0, 6µm ¸si V DD = 3, 3V valoarea ˆıntˆ arzierii etalon este τ = 50ps. De fapt, caracteristica de vitez˘ a a procesului respectiv se exprim˘ a printr-o singur˘ a valoare, τ . ˆIntˆ arzierea pe o poart˘ a logic˘ a cuprinde dou˘ a componente, una constant˘ a, notat˘ a cu p, datorat˘ a capacit˘ a¸tilor interne parazite ¸si alta notat˘ a cu f , referit˘ a ca efortul pe poart˘ a/nivel (stage effort) dependent˘ a de sarcina comand˘ a la ie¸sire ¸si de structurarea/topologia port¸ii. Rezult˘ a c˘ a ˆıntˆ arzierea adimensional˘ a a port¸ii, care indic˘ a de cˆ ate ori este mai mare decˆ at a inversorului, poate fi exprimat˘ a prin relat¸ia: d=f +p

(1.85)

La efortul pe poart˘ a f contribuie efortul electric, h, ce caracterizeaz˘ a sarcina comandat˘ a de poart˘ a ¸si efortul logic, g, ce ˆınglobeaz˘ a particularitatea structurii port¸ii ˆın raport cu structura port¸ii etalon (inversorul), acestea dou˘ a sunt ˆın relat¸ia: f =h·g

(1.86)

Efortul electric, h, reflect˘ a cum m˘ arimea sarcinii conectate la ie¸sire afecteaz˘ a ˆıntˆ arzierea pe poarta logic˘ a ¸si cum dimensiunile port¸ilor tranzistoarelor determin˘ a capabilitatea de a produce curent¸i pentru sarcina conectat˘ a la ie¸sire ¸si se exprim˘ a prin raportul: CO h= (1.87) Cin

125

CAPITOLUL 1. PORT ¸ I LOGICE

ˆın care Cin este capacitatea prezentat˘ a de poart˘ a la intrare, iar C O este toat˘ a capacitatea comandat˘ a de poart˘ a la ie¸sire. Evident, dac˘ a se consider˘ a la ie¸sire numai capacit˘ a¸tile prezentate de intr˘ arile port¸ilor comandate, efortul electric poate fi referit ¸si prin fan-out (num˘ arul de intr˘ ari de port¸i comandate la ie¸sire de c˘ atre o poart˘ a). Mai mult, este foarte uzual˘ a ˆınc˘ arcarea unei port¸i, la ie¸sire, cu patru sarcini etalon, adic˘ a realizarea unei comenzi pentru patru inversoare, notat˘ a cu FO4 (fan-out 4), vezi Exemplul 1.20. Dar, ˆın general ˆın valoarea lui C O pe lˆ ang˘ a capacit˘ a¸tile de intrare ale port¸ilor comandate intr˘ a ¸si capacit˘ a¸tile conexiunilor dintre ie¸sirea port¸ii de comand˘ a ¸si intr˘ arile comandate (Ccox ˆın relat¸ia 1.64), deci ˆın cazul metodei efortului logic se va considera valoarea lui h obt¸inut˘ a prin raportul dat de relat¸ia 1.87 ¸si care numai ˆın cazuri particulare coincide cu fan-out-ul (cˆ and nu se consider˘ a capacit˘ a¸tile conexiunilor). Uneori atˆ at Cin cˆ at ¸si CO se exprim˘ a ˆın unit˘ a¸tile ˆın care se m˘ asoar˘ a l˘ a¸timea canalului W , adic˘ a ˆın µm, pentru c˘ a la aceea¸si lungime de canal L, a tuturor tranzistoarelor, capacit˘ a¸tile fiind proport¸ionale cu suprafat¸a port¸ilor tranzistoarelor, W × L, rezult˘ a c˘ a sunt proport¸ionale cu W ; dar ˆın acest caz ¸si componenta de capacitate a conexiunilor, Ccox , care intr˘ a ˆın CO , trebuie convertit˘ a ˆın µm. Pentru capacitatea de poart˘ a a tranzistorului ¸si pentru capacitatea de conexiune valori uzuale sunt: respectiv 2f F/µm ¸si 0, 2f F/µm, valori care r˘ amˆ an cam acelea¸si pentru multe generat¸ii de proces atunci cˆ and se scaleaz˘ a identic dimensiunile dar simultan ¸si grosimea stratului de oxid (Dox , Figura 1.32-a). Din relat¸iile 1.85, 1.86, 1.87 se obt¸ine expresia ˆıntˆ arzierii pe o poart˘ a ˆın unit˘ a¸ti τ : d = gh + p

(1.88)

care reflect˘ a faptul c˘ a efortul electric, h, ¸si efortul logic,g, contribuie la cre¸sterea ˆıntˆ arzierii ˆın aceea¸si manier˘ a. Pentru un inversor care comand˘ a un inversor identic, in = 1, ¸ s i nu se consider˘ a capacit˘ a ¸ t ile interne parazite, p = 0, pentru a se h = C Cin obt¸ine o ˆıntˆ arziere adimensional˘ a egal˘ a cu unitatea d = 1, se consider˘ a efortul logic g = 1 (rezult˘ a din relat¸ia 1.88). Considerˆ and µ n = 2µp (de¸si la tehnologiile adˆ anc submicronice µn /µp tinde spre 1, 5), pentru un inversor care s˘ a comande un curent egal pentru sarcin˘ a, atˆ at ˆın tranzit¸ia H − L, cˆ at ¸si ˆın tranzit¸ia L − H, este necesar raportul Wn /Wp = 0, 5. Un inversor cu raportul Wp = 2Wn prezint˘ a la intrare o capacitate Cinv proport¸ional˘ a cu 3 unit˘ a¸ti de capacitate (de l˘ a¸time de canal W): o unitate de capacitate pentru poarta de canal nMOS ¸si dou˘ a unit˘ a¸ti de capacitate pentru poarta de canal pMOS, Figura 1.60; evident s-a considerat capacitatea minim˘ a, cea a port¸ii nMOS, ca unitate de capacitate. Efortul logic exprim˘ a informat¸ia despre topologia port¸ii – adic˘ a ret¸eaua de tranzistoare care realizeaz˘ a conectarea ie¸sirii port¸ii la tensiunea V DD ¸si la tensiunea VSS (mas˘ a) – necesar˘ a pentru determinarea ˆıntˆ arzierii pe poart˘ a. Se vor prezenta trei definit¸ii echivalente ale efortului logic, fiecare definit¸ie exprimˆ and o alt˘ a perspectiv˘ a de abordare. Definit¸ia 1.16 Efortul logic al unei port¸i, g, este raportul dintre capacitatea de intrare a unei port¸i, Cin , ¸si capacitatea de intrare a unei port¸i inversor, C inv , pentru care ambele port¸i au acelea¸si valori ale curent¸ilor pe ie¸sire: g= 

Cin Cinv

(1.89)

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

126

V DD 2 unitati (de capacitate)

2 pMOS

nMOS

C inv

C inv

C inv

1

C inv = 2+1 = 3 unitati

1 unitate (de capacitate)

V SS

(de capacitate)

Figura 1.60 Exprimarea capacit˘ a¸tii de intrare a unui inversor Cinv ˆın unit˘ a¸ti echivalente de capacitate (minim˘ a). Conform acestei definit¸ii, din Figura 1.61-a, 1.61-b ¸si 1.61-c se calculeaz˘ a pentru port¸ile inversor, NAND ¸si NOR valorile capacit˘ a¸tilor pe fiecare intrare, fiind egale respectiv cu 1 + 2 = 3, 2 + 2 = 4 ¸si 4 + 1 = 5; rezult˘ a deci valorile efortului logic 3/3 pentru inversor, 4/3, pentru NAND ¸si 5/3 pentru NOR. ˆIn Tabelul 1.13 sunt prezentate valorile efortului logic pentru port¸ile foarte uzuale ˆın funct¸ie de num˘ arul de intr˘ ari ¸si de valorile raportului γ = Wp /Wn . Definit¸ia 1.17 Efortul logic al unei port¸i, g, este num˘ arul care exprim˘ a de cˆ ate ori este mai redus curentul pe ie¸sirea port¸ii decˆ at curentul pe ie¸sirea unei port¸i inversor cˆ and ambele port¸i au aceea¸si capacitate de intrare.  Tabelul 1.13 Valorile efortului logic pentru port¸ile uzuale

Tipul de poart˘ a

Efortul logic

Inversor

1

NAND

Total Pe intrare

NOR Multiplexor XOR, XNOR Latch

Num˘ arul de intr˘ ari

Formula de

Total Pe intrare Total Pe date, selector Total Pe intrare pereche Total Pe date, clock

calcul 1+γ 1+γ n(n+γ) 1+γ n+γ 1+γ n(n+nγ) 1+γ 1+nγ 1+γ

4n 2, 2 n2 · 2n−1 n · 2n−1 4 2, 2

n=1

n=2

n=3

n=4

1

-

-

-

-

8/3 4/3

5 5/3

8 2

-

10/3 5/3 8 2, 2 8 4

7 7/3 12 2, 2 36 12

12 3 16 2, 2 128 32

γ=2

127

CAPITOLUL 1. PORT ¸ I LOGICE

2+1=3

VDD 2

I O,L−H

VDD

2+2=4 C in=4

4+1=5 2

A B C in=4

A C in=3 g= 3/3=1

2

I O,L−H 4

I O,H−L

C in=5 B C in=5

2 I O,H−L=I O,L−H

b) VDD 40

1

A

g= 4/3

a)

4

I O,L−H 2

I O,H−L 1

1

C in=60 A

g= 5/3

VDD

30

B C in=60

A

I O,H−L

c) VDD

I O,L−H

VDD

48 30

3/ I 5 O,L−H

3/ I 4 O,L−H

48

C in=60 20

I O,H−L

C in=60

30 3/ I 4 O,H−L

30 I O,L−H=I O,H−L

d)

e)

12

A B

3/ I 5 O,H−L

12

C in=60

f)

Figura 1.61 Efortul logic pentru port¸ile inversor, NAND ¸si NOR: a,b,c) cˆ and toate aceste port¸i au aceea¸si capabilitate de comand˘ a la ie¸sire; d,e,f) cˆ and toate aceste port¸i au aceea¸si capacitate Cin pe intrare.

Orice topologie de poart˘ a logic˘ a prezint˘ a o mai mic˘ a capabilitate de a produce un curent de ie¸sire decˆ at o poart˘ a inversor cˆ and ambele au aceea¸si capacitate pe intrare. Reducerea curentului pe ie¸sirea port¸ii ˆınseamn˘ a un timp de propagare mai lung, deci efortul logic exprim˘ a de cˆ ate ori este mai lent˘ a poarta ˆın efectuarea comenzii unei sarcini decˆ at poarta inversor ˆın efectuarea aceleia¸si comenzi. Din Figura 1.61-e ¸si Figura 1.61-f rezult˘ a de cˆ ate ori sunt mai redu¸si curent¸ii la ie¸sirea port¸ilor NAND ¸si NOR decˆ at curent¸ii la ie¸sirea port¸ii inversor, Figura 1.61-d, cˆ and toate trei port¸ile au aceea¸si capacitate la intrare, egal˘ a cu 60 de unit˘ a¸ti. Definit¸ia 1.18 Efortul logic al unei port¸i, g, este egal cu raportul dintre panta dreptei care reprezint˘ a dependent¸a ˆıntˆ arzierii pe poart˘ a ˆın funct¸ie de fan-out ¸si panta dreptei care reprezint˘ a dependent¸a ˆıntˆ arzierii port¸ii inversor ˆın funct¸ie de fan-out.  Aceast˘ a definit¸ie sugereaz˘ a ¸si o metod˘ a de m˘ asurare a efortului logic din dependent¸a grafic˘ a ˆıntˆ arziere - fan-out obt¸inut˘ a experimental sau prin simulare, Figura 1.62. Se poate defini un efort logic gb ¸si pentru un grup de b intr˘ ari, analog relat¸iei 1.89,

128

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

ˆın felul urm˘ ator:

Pb Ci Cb gb = = i=1 (1.90) Cinv Cinv ˆın care Cb este suma capacit˘ a¸tilor Ci , ale fiec˘ arui semnal aplicat pe o intrare i din cele b intr˘ ari. De fapt, rezult˘ a c˘ a g este suma eforturilor logice gi pentru toate cele b Pb b semnale de intrare gb = i=1 gi . Din Tabelul 1.13 rezult˘ a c˘ a pentru o poart˘ a cu cˆ at este mai complex˘ a funct¸ia logic˘ a realizat˘ a cu atˆ at este mai mare efortul logic ¸si, mai mult, efortul logic al port¸ilor cre¸ste cu num˘ arul de intr˘ ari ale port¸ii, deci concluzia este c˘ a port¸ile mai complexe sau mai mari (ca num˘ ar de intr˘ ari) vor prezenta ˆıntˆ arzieri mai mari. Aceast˘ a concluzie este un ghid ˆın selectarea/alegerea unei structuri logice. Proiectarea care urm˘ are¸ste minimizarea num˘ arului de niveluri logice va necesita mai multe intr˘ ari pentru fiecare poart˘ a logic˘ a ¸si astfel efortul logic pe poart˘ a devine mai mare. ˆIn schimb proiectarea care urm˘ are¸ste mai put¸ine intr˘ ari, ¸si astfel cu un efort logic mai mic pe nivel logic, va necesita mai multe niveluri logice. De fapt, acest aspect ˆın proiectarea unui sistem este ve¸snicul compromis care trebuie f˘ acut ˆıntre adˆ ancimea (ˆıntˆ arzierea), D(n), ¸si dimensiunea, S(n), aspect ce va fi permanent ˆın atent¸ie ˆın capitolul 2 ¸si 3 al aceste lucr˘ ari. Calculul ˆıntˆ arzierii p, datorit˘ a capacit˘ a¸tilor interne parazite, nu este a¸sa de u¸sor de efectuat cum este pentru efortul logic. Principala contribut¸ie la aceast˘ a capacitate parazit˘ a o au capacit˘ a¸tile zonelor difuzate ale tranzistoarelor ¸si care sunt conectate la semnalul de ie¸sire. Pentru calculul unei astfel de capacit˘ a¸ti este luat˘ a ˆın considerare atˆ at suprafat¸a zonei difuzate cˆ at ¸si peret¸ii laterali ai zonei difuzate ¸si care depind de layout ¸si parametrii de proces. Considerˆ and o capacitate de difuzie specific˘ a pentru proces, Cd , atunci o aproximare grosier˘ a pentru capacit˘ a¸tile zonelor difuzate de dren ¸si surs˘ a poate fi exprimat˘ a prin produsul W · Cd . Cu aceast˘ a aproximare se poate concepe un model pentru inversor ˆın felul urm˘ ator. Semnalul de ie¸sire din poarta inversor este conectat la dou˘ a zone difuzate: una corespunde c˘ aii ˆınspre mas˘ a prin canalul n pentru care se consider˘ a W = 1 ¸si atunci aceast˘ a capacitate este C d ¸si alta corespunde c˘ aii ˆınspre VDD , prin canalul p, pentru care capacitatea este γ · C d deci suma lor este (1 + γ)Cd . Capacitatea de intrare ˆın inversor este egal˘ a cu produsul dintre suprafat¸a port¸ilor celor dou˘ a canale (1 + γ), pentru W = 1, ¸si capacitatea specific˘ a de poart˘ a Cox , adic˘ a (1 + γ)Cox . ˆIntˆ arzierea datorat˘ a capacit˘ a¸tilor interne parazite ale inversorului pinv este egal˘ a cu raportul dintre capacit˘ a¸tile parazite ¸si (1+γ)Cd d capacitatea de intrare, pinv = (1+γ)C = CCox . Se consider˘ a pentru pinv ca fiind o ox m˘ arime adimensional˘ a egal˘ a cu unitatea pinv = 1. ˆIntˆ arzierea pentru o poart˘ a se poate calcula din ˆıntˆ arzierea inversorului p inv , considerˆ and c˘ a poarta are reguli de layout similare cu cele ale inversorului. ˆIntˆ arzierea pentru poart˘ a, p, este mai mare decˆ at a inversorului, p inv , cu raportul dintre suma tuturor l˘ a¸timilor acelor zone difuzate Wd ale tranzistoarelor care sunt conectate la semnalul de ie¸sire ¸si l˘ a¸timea corespunz˘ atoare a inversorului, cu condit¸ia c˘ a poarta logic˘ a este dimensionat˘ a s˘ a aib˘ a acela¸si curent de ie¸sire ca ¸si inversorul:  P Wd pinv (1.91) p= 1+γ Aplicˆ and aceast˘ a aproximare pentru poarta NAND cu n intr˘ ari care au ˆın calea spre mas˘ a o singur˘ a zon˘ a difuzat˘ a conectat˘ a la ie¸sire cu l˘ a¸timea nW d ¸si ˆın calea spre

129

CAPITOLUL 1. PORT ¸ I LOGICE

tensiunea VDD un num˘ ar de n zone difuzate de l˘ a¸timea γWd , deci suprafat¸a total˘ a n(1 + γ)Wd , rezult˘ a p = n · pinv . La fel, se poate calcula pentru poarta NOR ¸si rezult˘ a p = n · pinv . Tabelul 1.14 prezint˘ a, pentru cˆ ateva port¸i uzuale, aceste calcule. Tabelul 1.14 Estimarea ˆıntˆ arzierilor p pentru unele port¸i Tipul de poart˘ a NAND NOR Multiplexor XOR

Formula n · pinv n · pinv 2n · pinv n · 2n−1 · pinv

n=2 2 2 4 4

pinv = 1.0 n=3 n=4 3 4 3 4 6 8 12

Estimarea componentei de ˆıntˆ arziere p are serioase limit˘ ari cˆ and se consider˘ a c˘ a aceast˘ a ˆıntˆ arziere cre¸ste liniar cu num˘ arul de intr˘ ari ale port¸ii. Deoarece ˆıntˆ arzierea datorat˘ a capacit˘ a¸tilor interne parazite este dependent˘ a de layout cea mai bun˘ a cale pentru determinarea acesteia este prin simularea circuitului cu datele exacte de layout. Dar o determinare exact˘ a pentru ˆıntˆ arzierea p, datorit˘ a capacit˘ a¸tilor interne parazite, nu este necesar˘ a ˆın etapa de dimensionare a tranzistoarelor deoarece aceast˘ a dimensionare se face ˆın funct¸ie doar de efortul pe poarta f = g · h care este independent de p. Valorile ˆın unit˘ a¸ti de timp [ps] ale parametrilor τ ¸si p inv pentru inversor ¸si, ˆın extensie pentru fiecare poart˘ a, pot fi determinate din reprezentarea grafic˘ a a ˆıntˆ arzierii absolute a port¸ii inversor dabs = τ (h + pinv ), sau a unei port¸i dabs = τ (g · h + p) ˆın funct¸ie de efortul electric h, Figura 1.62. Aceast˘ a dreapt˘ a poate fi trasat˘ a doar prin dabs [ps]

α1

IN

V

ER

SO

R

NA

ND

2

dabs= τ ·gh+ τ ·p dabs= τ .h+ τ ·pinv τ =tg α 1 τ ·g=tg α 2

τ ·p

α τ ·pinv 0

1

2 3 4 Efortul electric

5

h

Figura 1.62 Utilizarea diagramei dabs = f (h) pentru calculul parametrilor τ ¸si p.

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

130

cunoa¸sterea a dou˘ a puncte care pot fi determinate prin simulare, prin experiment sau din foaia de catalog a circuitului. Panta dreptei pentru inversor determin˘ a ˆıntˆ arzierea unitar˘ a τ = tgα1 iar t˘ aietura pe ordonat˘ a este egal˘ a cu produsul τ · p inv , deci rezult˘ a pinv . O metod˘ a pentru determinarea ˆıntˆ arzierii absolute d abs pentru inversor este expus˘ a ˆın Exemplul 1.17. Prin m˘ asurarea frecvent¸ei f a unui oscilator ˆın inel compus din n inversoare, dabs = τ (h + p) cu h = 1, pinv = 1 rezult˘ a dabs = 2τ ¸si din egalitatea 2τ = 1/2nf se obt¸ine cu n = 1, τ = 1/4f . Exemplul 1.20 S˘a se estimeze ˆıntˆarzierea d pe un inversor care comand˘a patru inversoare identice, inversor FO4 (fan-out 4), Figura 1.63-a.

d

d x

a) x

x

x

x

x

x

x

x

x

x

x

b)

Figura 1.63 Calculul ˆıntˆ arzierii pe poart˘ a: a) Pentru inversor cu ˆınc˘ arcare patru port¸i inversor,FO4; b) Pentru NAND4 care comand˘ a 10 port¸i NAND4. Solut¸ie. Deoarece toate inversoarele sunt identice CO = 4Cin deci h = 4. Pentru inversor efortul logic este unitar g = 1. Conform relat¸iei 1.88 rezult˘ a d = gh + p = 1 × 4 + pinv = 4 + 1 = 5. Adesea, ˆıntˆ arzierea pe o poart˘ a este exprimat˘ a ˆın raport de ˆıntˆ arzierea inversorului cu patru sarcini inversor, pentru c˘ a ˆıntr-un proces este cunoscut˘ a ˆıntˆ arzierea F O4, adic˘ a ˆıntˆ arzierea de 5τ . ˆIntˆ arzierile pentru alte circuite vor fi multipli de 5τ (de FO4).

Exemplul 1.21 O poart˘a NOR4 (cu patru intr˘ari) comand˘a alte 10 port¸i NOR4 identice, Figura 1.63-b. Care este ˆıntˆ arzierea d pe poarta de comand˘ a? Solut¸ie. Capacitatea Cin pe o intrare a port¸ii NOR4 este x iar capacitatea conectat˘ a pe ie¸sire CO = 10x deci efortul electric este h = 10. Efortul logic g pentru poarta cu patru intr˘ ari, obt¸inut din Tabelul 1.13, este g = 9/3 = 3, iar ˆıntˆ arzierea p rezult˘ a din Tabelul 1.14. ˆIntˆ arzierea pe poarta de comand˘ a este d = gh + p = 3 × 10 + 4 × 1 = 34 unit˘ a¸ti de ˆıntˆ arziere. Se observ˘ a c˘ a atunci cˆ and sarcina este mare ˆıntˆ arzierea p datorat˘ a capacit˘ a¸tilor parazite interne este nesemnificativ˘ a ˆın raport cu efortul pe poart˘ a.

Exemplul 1.22 S˘a se structureze o poart˘a XOR ¸si s˘a se calculeze efortul logic. Solut¸ie. Exprimˆ and A ⊕ B ca o funct¸ie negat˘ a, pentru implementare ˆın CMOS, A ⊕ B = A ⊕ B = AB + AB = AB + A B

CAPITOLUL 1. PORT ¸ I LOGICE

131

rezult˘ a expresia logic˘ a AB + A B, pentru ret¸eaua nMOS, ¸si prin complementarea acesteia se obt¸ine expresia logic˘ a AB + AB, pentru ret¸eaua pMOS, cu structurarea din Figura 1.64. Fiecare intrare este o pereche de semnale deoarece se genereaz˘ a atˆ at variabila cˆ at ¸si variabila negat˘ a. Efortul total al port¸ii este (8 + 8γ)/(1 + γ) = 8 iar efortul logic pe o intrare (A, A, B, B) este de patru ori mai mic, adic˘ a 2. Evident c˘ a efortul logic pe o intrare pereche A, A sau B, B este de dou˘ a ori mai mare, adic˘ a 2 × 2 = 4. De la structura XOR cu dou˘ a variabile, prin extensie, se poate obt¸ine o structur˘ a cu n variabile; ˆın Figura 1.64-b, este prezentat˘ a o structur˘ a XOR pentru trei variabile A ⊕ B ⊕ C. O poart˘ a XOR de n variabile va avea pentru ret¸eaua nMOS un num˘ ar de 2n−1 ramuri ˆın paralel, fiecare ramur˘ a fiind compus˘ a din n tranzistoare ˆınseriate de l˘ a¸time n.Pentru ret¸eaua pMOS sunt, la fel, 2n−1 ramuri ˆın paralel, fiecare ramur˘ a fiind compus˘ a din n tranzistoare ˆınseriate de l˘ a¸time nγ. Efortul logic total este 2n−1 · n(n + nγ)/(1 + γ) = n2 · 2n−1 , iar efortul logic pe o intrare va fi de 2n ori mai mic adic˘ a n · 2n−2 , efortul logic pe o intrare pereche este de dou˘ a ori mai mare n · 2n−1 ( a se vedea Tabelul 1.13). Cu aceast˘ a organizare simetric˘ a a port¸ii XOR pentru n ≥ 3 nu se obt¸ine cel mai mic efort logic, de exemplu pentru n = 3 efortul logic este 36. Analizˆ and semnalele pentru comanda tranzistoarelor se observ˘ a c˘ a unele dintre acestea pot fi comune pentru cˆ ate dou˘ a ramuri, atˆ at ˆın ret¸eaua nMOS cˆ at ¸si ˆın ret¸eaua pMOS, astfel se obt¸ine o organizare asimetric˘ a prezentat˘ a ˆın Figura 1.64-c. La organizarea asimetric˘ a calculˆ and efortul logic total, pentru n = 3, rezult˘ a valoarea de 24, valoare mai mic˘ a fat¸a ˘ de organizarea simetric˘ a (32). Rezult˘ a valoarea 6 pentru efortul logic al intr˘ arilor pereche A ¸si C iar pentru intrarea pereche B valoarea 12 (ca ¸si la organizarea simetric˘ a deoarece nici un tranzistor conectat la B sau B nu a fost eliminat). Din organizarea port¸ii XOR cu dou˘ a intr˘ ari rezult˘ a imediat cea a port¸ii XNOR cu dou˘ a intr˘ ari prin ˆınlocuirea variabilei A cu A ¸si invers a variabilei A cu A.

1.5.6.2

Calculul ˆıntˆ arzierii ˆın ret¸elele de port¸i logice

ˆIntr-o ret¸ea de port¸i logice metoda efortului logic permite evaluarea num˘ arului optim de port¸i pentru obt¸inerea ˆıntˆ arzierii minime pe un anumit traseu precum ¸si repartizarea ˆıntˆ arzierilor part¸iale pe fiecare poart˘ a din acel traseu. Not¸iunile de efort logic ¸si efort electric, pentru un traseu de port¸i, se obt¸in prin generalizarea acestor not¸iuni definite pentru o singur˘ a poart˘ a. Efortul logic pentru un traseu, notat cu G, se obt¸ine ca un produs al efortului logic gi al tuturor port¸ilor de-a lungul acestui traseu: Y G= gi (1.92)

Efortul electric pentru un traseu, notat cu H, se obt¸ine ca un raport ˆıntre capacitatea total˘ a care ˆıncarc˘ a ie¸sirea ultimei port¸i a traseului ¸si capacitatea de intrare de la prima poart˘ a din traseu: CO H= (1.93) Cin Dar ˆın anumite puncte ale traseului considerat se pot ramnifica ¸si alte trasee (colaterale) deci ˆın acele puncte curentul de ie¸sire al port¸ii respective se ramnific˘ a ˆıntre traseul considerat ¸si traseul/traseele colaterale; pentru aceste situat¸ii este necesar a se lua ˆın considerare ¸si ˆınc˘ arc˘ arile colaterale. Aceste ˆınc˘ arc˘ ari colaterale sunt cont¸inute ˆın not¸iunea de efort de ramnificat¸ie la ie¸sirea port¸ii cu indexul i din traseu ¸si este

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

132

A

B

A A

B B

V DD B



B



A



A



AB + AB

3

A

3

B

3

B

3

A



A



A



B



B



B



B



C



C



C



C

3γ A

C

3

C

3

C

3

C

3

B

3

B

3

B

3

B

3

A

3

A

3

A

3

A

3

B

C

B

C

b) V DD A

A

V DD A 3γ

A

B



B



C



C

3

B

3

B

A

3

B

A 3γ

B





B



AB + AB

a)

C



C

3

3

B

A

3

B

A

3

3

c)

Figura 1.64 Structurarea port¸ii XOR ˆın tehnologia CMOS: a) poarta XOR cu dou˘ a intr˘ ari; b) structurare simetric˘ a pentru poarta XOR cu trei intr˘ ari; c) o modalitate de structurare asimetric˘ a pentru poarta XOR cu trei intr˘ ari.

133

CAPITOLUL 1. PORT ¸ I LOGICE

notat cu bi . Efortul de ramnificat¸ie bi (ˆın punctul de ramnificat¸ie) se define¸ste ca raportul dintre suma capacit˘ a¸tii de intrare a port¸ii urm˘ atoare din traseu, C it , ¸si a capacit˘ a¸tilor de intrare de la port¸ile de pe traseul/traseele de ramnificat¸ie, C ir , supra Cit . Cit + Cir bi = (1.94) Cit ˆIntr-un punct de neramnificat¸ie al traseului rezult˘ a b i = 1, deoarece Cir = 0. Efortul de ramnificat¸ie pe ˆıntregul traseu, B, se obt¸ine ca un produs al tuturor eforturilor de ramnificat¸ie bi de-a lungul traseului: Y B= bi (1.95) Similar cu relat¸ia 1.86 se poate defini un efort al traseului, notat cu F , ca produsul dintre efortul electric, H, efortul logic, G, ¸si efortul de ramnificat¸ie, B, de-a lungul traseului: F = GBH (1.96) Se observ˘ a c˘ a F depinde numai de topologia (G) ¸si de ˆınc˘ arcarea traseului (H) ¸si nu de dimensiunea tranzistoarelor din port¸ile de pe acest traseu. Mai mult, efortul traseului nu se schimb˘ a dac˘ a se introduc sau se scot inversoare deoarece acestea au efortul logic egal cu 1. Pentru traseu, produsul dintre efortul electric H ¸si efortul de ramnificat¸ie B este egal cu produsul efortului electric hi al tuturor port¸ilor de pe traseu: BH =

Y CO Y bi = hi Cin

(1.97)

aceast˘ a relat¸ie este important˘ a deoarece pentru un traseu se cunoa¸ste C in , CO ¸si eforturile de ramnificat¸ie bi deci proiectantul va trebui s˘ a dimensioneze efortul electric pentru fiecare poart˘ a hi astfel ˆınc˘ a s˘ a realizeze produsul BH. ˆIntˆ arzierea pe traseu D este egal˘ a cu suma ˆıntˆ arzierilor port¸ilor din traseu ¸si, la fel ca ˆın relat¸ia 1.88, are dou˘ a componente: una, ˆıntˆ arzierea de efort a traseului D F ¸si cealalt˘ a ˆıntˆ arzierea datorat˘ a capacit˘ a¸tilor interne parazite ale port¸ilor din traseu, P , deci se pot scrie relat¸iile: X D = di = D F + P (1.98) X DF = gi h i (1.99) X P = pi (1.100) Se demonstreaz˘ a c˘ a intˆ arzierea pe traseu are valoarea minim˘ a cˆ and fiecare poart˘ a din cele N ale traseului are acela¸si efort, notat cu fˆ, a c˘ arui valoare se obt¸ine cu relat¸ia: √ N fˆ = gi hi = F (1.101) Din relat¸iile 1.101 ¸si 1.98 se deduce principalul rezultat al metodei efortului logic, ˆ ce se poate obt¸ine pentru adic˘ a relat¸ia care exprim˘ a ˆıntˆ arzierea minim˘ a,notat˘ a cu D, un traseu: ˆ = N · F N1 + P D (1.102)

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

134

Pentru un traseu a c˘ arui topologie este dat˘ a se poate calcula efortul F ¸si repartizˆ and un efort egal pe fiecare poart˘ a, din relat¸ia 1.101, rezult˘ a cˆ at trebuie s˘ a fie ˆ i pe fiecare poart˘ efortul electric h a din traseu 1

N ˆi = F h gi

(1.103)

ˆ i cunoscut˘ iar, apoi, cu valoarea lui h a, se pot determina dimensiunile tranzistoarelor din fiecare poart˘ a logic˘ a din traseu. De fapt, calculul ˆıncepe cu dimensionarea tranzistoarelor din ultima poart˘ a a traseului, pentru care se cunoa¸ste: ˆınc˘ arcarea la ie¸sire CO , efortul logic ¸si valoarea fˆ, deci rezult˘ a capacitatea de intrare a ultimei port¸i (care este capacitatea de ie¸sire a penultimei port¸i atunci cˆ and efortul de ramnificat¸ie ˆın acest punct este 1). Apoi, dup˘ a dimensionarea tranzistoarelor din ultima poart˘ aa traseului se dimensioneaz˘ a, succesiv, ¸si celelalte port¸i ˆın sensul invers de parcurgere a port¸ilor din traseu, adic˘ a de la penultima poart˘ a pˆ an˘ a la poarta de intrare. Relat¸ia de dimensionare pentru poarta cu indicele i din traseu este: Cini =

gi C O i fˆ

(1.104)

din care rezult˘ a capacitatea Cini de intrare ˆın poarta i, care apoi se distribuie potrivit la toate tranzistoarele de pe acea intrare a port¸ii. C Oi a rezultat deja de la dimensionarea (anterioar˘ a a) port¸ii urm˘ atoare din traseu, (i + 1). Exemplul 1.23 Un traseu A − B ca ˆın Figura 1.65-a este compus prin ˆınserierea a trei port¸i NAND2; capacitatea de intrare a primei port¸i este C iar ˆınc˘ arcarea ultimei port¸i este tot C. Care este ˆıntˆ arzierea minim˘ a pe traseu ¸si care sunt dimensiunile tranzistoarelor acestor port¸i? V DD A

C

C/2 y

z

C/2

B C

C/2 C/2

a)

b)

Figura 1.65 Explicativ˘ a pentru exemplul 1.23 Solut¸ie. Pentru a determina efortul traseului B trebuie calculate efortul electric H, de ramnificat¸ie B ¸si logic G, de-a lungul traseului. Efortul logic este produsul efortului logic al celor trei port¸i NAND2, G = g0 g1 g2 = (4/3)(4/3)(4/3) = (4/3)3 = 2, 37 . Efortul de ramnificat¸ie B are valoarea 1 deoarece nu exist˘ a nici o ramnificat¸ie pe traseu. Efortul electric al traseului este H = C/C = 1, deci F = GBH = 2, 37 . Cˆ and efortul pe fiecare

CAPITOLUL 1. PORT ¸ I LOGICE

135

√ poart˘ a are aceea¸si valoare egal˘ a cu fˆ = 3 F = 4/3 ˆıntˆ arzierea minim˘ a care se poate obt¸ine 3 ˆ = 3· √ pe traseu se calculeaz˘ a cu relat¸ia 1.102, D 2, 37 + 3(2pinv ) = 10 unit˘ a¸ti de ˆıntˆ arziere. Pornind dimensionarea tranzistoarelor de la ultima poart˘ a care are capacitatea pe ie¸sire C ¸si aplicˆ and relat¸ia 1.104 se obt¸ine capacitatea de intrare pentru a treia poart˘ a NAND2, z = (c · 4/3)/(4/3) = C. Similar rezult˘ a capacitatea de intrare pentru a doua poart˘ a NAND2, y = (z · 4/3)/(4/3) = z = C. Rezult˘ a c˘ a toate port¸ile au acelea¸si dimensiuni pentru tranzistoare, adic˘ a port¸ile sunt identice, ceea ce nu este surprinz˘ ator deoarece fiecare poart˘ a are aceea¸si sarcin˘ a ¸si acela¸si efort logic, iar pentru obt¸inerea timpului minim toate trebuie s˘ a aib˘ a acela¸si efort. F˘ acˆ and dimensionarea pentru µn /µp = 2 rezult˘ a o poart˘ a NAND2 cu dimensiunile pentru port¸ile tranzistoarelor specificate ˆın Figura 1.65-b.

Exemplul 1.24 Pentru traseul A − B, Figura 1.65-a de la Exemplul 1.23, s˘a se determine ˆıntˆ arzierea minim˘ a ¸si dimensiunile tranzistoarelor cˆ and sarcina la ie¸sire este 8C. Solut¸ie. G = (4/3)3 , H = 8C/C = 8, B = 1 deci F = GBH = (4/3)3 · 8 = 18, 96 ˆ = 3(18, 96) 13 + 3(2pinv ) = 14 unit˘ a¸ti iar ˆıntˆ arzierea minim˘ a care se poate obt¸ine este D de ˆıntˆ arziere. Se observ˘ a c˘ a de¸si efortul electric este de 8 ori mai mare decˆ at ˆın Exemplul 1.23 ˆıntˆ arzierea minim˘ a a crescut numai cu 40 %. Pentru efort egal pe fiecare poart˘ a fˆ = √ 3 18, 96 = 8/3 se determin˘ a dimensiunile tranzistoarelor pornind cu ultima poart˘ a z = (8C ·4/3)/(8/3) = 4C, y = (z·4/3)/(8/3) = 2C, iar ca o verificare se calculeaz˘ a ¸si capacitatea de intrare pentru prima poart˘ a (y · 4/3)/(8/3) = y/2 = C. Fiecare poart˘ a are capacitatea de intrare dubl˘ a fat¸a de capacitatea port¸ii anterioare, deci dimensiunile tranzistoarelor se dubleaz˘ a pe fiecare nivel ˆın sensul de parcurgere a traseului de la A la B, tranzistoare cu l˘ a¸time de canal mai mare ˆın etaje succesive au capabilitate mai mare de a comanda curent¸i ˆın sarcin˘ a.

Exemplul 1.25 S˘a se dimensioneze tranzistoarele port¸ilor de pe traseul A − B din Figura 1.66-a pentru a obt¸ine timpul minim de ˆıntˆ arziere cˆ and efortul electric al traseului este H = 4, 5. Solut¸ie. Efortul de ramnificat¸ie la ie¸sirea primei port¸i este b1 = (y + y)/y = 2 iar la ie¸sirea celei de-a doua port¸i este b2 = (2+2+2)/2 = 3 deci B = 2×3, G = (4/3)3 iar H = 4, 5, ˆ = 3 × 64 31 + 3(pinv ) = 18 rezult˘ a F = GBH = 64. ˆIntˆ arzierea minim˘ a pe traseu se obt¸ine D √ unit˘ a¸ti de ˆıntˆ arziere. Se calculeaz˘ a un efort egal pe fiecare poart˘ a fˆ = 3 64 = 4. Rezult˘ a z = (4, 5 × 4/3)/4 = 1, 5, y = (b2 z × 4/3)/4 = z = 1, 5C iar pentru prima poart˘ a se poate face o verificare (b1 y × 4/3)/4 = 2/3y = C, deci se pot dimensiona tranzistoarele pe intrare ale port¸ilor NAND2.

Exemplul 1.26 S˘a se dimensioneze circuitul din Figura 1.66-b pentru a realiza o ˆıntˆ arziere minim˘ a. Se consider˘ a c˘ a sarcina de ie¸sire CO este capacitatea unei port¸i logice cu l˘ a¸timea (de poart˘ a) de 20µm iar capacitatea de intrare corespunde unei port¸i de l˘ a¸time 10µm. Solut¸ie. Presupunˆ and aceea¸si lungime pentru toate tranzistoarele rezult˘ a c˘ a valoarea capacit˘ a¸tii lor este proport¸ional˘ a cu l˘ a¸timea port¸ilor lor deci se poate exprima valoarea capacit˘ a¸tii ¸si prin µm. Se calculeaz˘ a pentru traseu: efortul logic G = 1 × (5/3) × (4/3) × 1 = 20/9, efortul electric H = 20/10 = 2, efortul de ramnificat¸ie B = 1 × 1 × 1 = 1 rezult˘ a F = GBH = 40/9, deci efortul egal pe fiecare poart˘ a, pentru ˆıntˆ arziere minim˘ a, este fˆ =

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

136 z

10 µm (latime de poarta) 4,5C

y A

x

z 4,5C

C

y

z

z

20 µ m (latime de poarta)

B 4,5C

a)

y

b)

Figura 1.66 Explicativ˘ a pentru: a) Exemplul 1.25; b) Exemplul 1.26. p 4 40/9 = 1, 45. Parcurgˆ and traseul ˆın sens invers, pornind cu ultima poart˘ a, rezult˘ a l˘ a¸timea total˘ a a port¸ilor tranzistoarelor de intrare de pe nivelul respectiv: z = (20×1)/1, 45 = 14µm, y = (14×4/3)/1, 45 = 13µm ¸si x = (13×5/3)/1, 45 = 15µm; apoi aceste valori de capacitate se distribuie potrivit pentru fiecare poart˘ a de tranzistor din nivelul respectiv. Se observ˘ a, c˘ a rezult˘ a l˘ a¸timi mai mari pentru port¸ile tranzistoarelor din inversoare decˆ at pentru port¸ile tranzistoarelor din celelalte port¸i logice ceea ce este normal deoarece inversoarele au o mai bun˘ a capabilitate de a comanda sarcini. Se observ˘ a c˘ a ˆın dimensionarea tranzistoarelor pentru obt¸inerea ˆıntˆ arzierii minime pe traseu, relat¸ia 1.102, am neglijat ˆıntˆ arzierea P deoarece aceasta este fix˘ a, iar ajustarea dimensiunii port¸ii nu modific˘ a ˆıntˆ arzierea parazitic˘ a. De fapt, se poate neglija totdeauna ˆıntˆ arzierea P cˆ and nu se dore¸ste o precizie ridicat˘ a ˆın determinarea ˆıntˆ arzierii pe traseu sau cˆ and se compar˘ a dou˘ a trase care cont¸in port¸i logice diferite ori cont¸in un num˘ ar diferit de port¸i logice.

1.5.6.3

Alegerea num˘ arului optim de niveluri pe un traseu

Cˆ and num˘ arul N de niveluri ˆın traseu este dat cu relat¸ia 1.101 se calculeaz˘ a 1 valoarea efortului ,fˆ = F N ,egal pe fiecare nivel, care va determina ˆıntˆ arzierea minim˘ a pe traseu. Dar pentru un traseu, la care se cunoa¸ste efortul F dar nu ¸si num˘ arul de ˆ, niveluri, s-ar putea ca num˘ arul dat N s˘ a nu fie egal cu cel optim, num˘ ar notat cu N care s˘ a genereze cea mai mic˘ a ˆıntˆ arziere. Cˆ and num˘ arul de etaje pentru un efort dat ˆ , atunci cel mai bun efort egal pe etaj, notat cu ρ, se pentru traseu este cel optim N 1 ˆ N atoarei ecuat¸ii: calculeaz˘ a cu relat¸ia ρ = F ¸si care este solut¸ia urm˘ pinv − ρ(1 − lnρ) = 0

(1.105)

ˆ ˆıntr-un traseu pentru obt¸inerea Tabelul 1.15 prezint˘ a num˘ arul optim de niveluri N celei mai mici ˆıntˆ arzieri pe traseu, cˆ and p inv = 1. Pentru un traseu cu N etaje se calculeaz˘ a efortul F , iar din inspect¸ia Tabelului ˆ etaje, deci este necesar a se 1.15 rezult˘ a c˘ a ˆıntˆ arzierea cea mai mic˘ a necesit˘ a N ˆ etaje ad˘ auga sau a se sc˘ adea etaje din num˘ arul de etaje N pˆ an˘ a se ajunge la N ˆın traseu. Informat¸ia tabelului este corect˘ a numai cˆ and se m˘ are¸ste sau se scade num˘ arul de niveluri prin introducerea sau scoaterea de etaje inversor, deoarece se consider˘ a c˘ a numai aceste etaje au ˆıntˆ arzierea parazitic˘ a p = 1. Evident, pentru

137

CAPITOLUL 1. PORT ¸ I LOGICE

ˆ ˆın funct¸ie de efortul pe traseu Tabelul 1.15 Num˘ arul optim de niveluri N F , pentru pin = 1 Efortul de traseu F 0

Num˘ arul optim ˆ de etaje N

ˆIntˆ arzierea minim˘ aD 1 6,8

0 ∼ 5, 8

11,4

2.4 ∼ 4, 7

16,0

2, 8 ∼ 4, 4

20,7

3, 0 ∼ 4, 2

25,3

3, 1 ∼ 4, 1

29,8

3, 2 ∼ 4, 0

34,4

3, 3 ∼ 3, 9

39,0

3, 3 ∼ 3, 9

43,6

3, 3 ∼ 3, 9

48,2

3, 4 ∼ 3, 8

52,8

3, 4 ∼ 3, 8

57,4

3, 4 ∼ 3, 8

1 5,83 2 22,3 3 82,2 4 300 5 1090 6 3920 7 14200 8 51000 9 184000 10 661000 11 2380000 12 8560000

Efortul pe etaj f

138

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

a nu se schimba funct¸ia logic˘ a calculat˘ a pe traseu trebuie introduse sau scoase un ˆ num˘ ar par de inversoare. Unul sau dou˘ a niveluri diferent¸a˘ fat¸a˘ de valoarea optim˘ aN modific˘ a nesemnificativ ˆıntˆ arzierea pe traseu, dac˘ a acest traseu este destul de lung, numai la trasee scurte introducerea sau scoaterea a unui etaj sau dou˘ a poate provoca abateri semnificative fat¸a˘ de ˆıntˆ arzierea cea mai mic˘ a. Exemplul 1.27 Se consider˘a trei variante de trasee inversoare compuse din ˆınserierea de respectiv 1,3 ¸si 5 inversoare, fiecare traseu comand˘ a la ie¸sire o sarcin˘ a capacitiv˘ a egal˘ a cu de 25 de ori capacitatea de intrare. Care dintre aceste variante este optim˘ a ¸si cˆ at este ˆıntˆ arzierea cea mai mic˘ a? Solut¸ie. Pentru fiecare din trasee rezult˘ a valori egale de G = 1, B = 1, ¸si H = 25. ˆIntˆ ˆ = N · (25) N1 + N · pinv , cu N = 1 arzierea pe fiecare traseu este dat˘ a de ecuat¸ia 1.102, D ˆ = 25 unit˘ ˆ = 11, 8 ,3 ¸si 5. Pentru N = 1 rezult˘ aD a¸ti de ˆıntˆ arziere; pentru N = 3 rezult˘ aD ˆ unit˘ a¸ti de ˆıntˆ arziere iar pentru N = 5 rezult˘ a D = 14, 5 unit˘ a¸ti de ˆıntˆ arziere. Varianta cu trei inversoare ˆınseriate cont¸ine num˘ arul optim de inversoare ˆın consecint¸a ˘ realizeaz˘ a ˆıntˆ arzierea √ cea mai mic˘ a D = 11, 8 unit˘ a¸ti de ˆıntˆ arziere, fiecare etaj suport˘ a un efort egal cu 3 25 = 2, 9, deci fiecare inversor va fi dimensional de 2, 9 ori mai mare decˆ at predecesorul inversor. Se poate constata ¸si din Tabelul 1.15 c˘ a pentru F = 25, 22, 3 < 25 < 82, 2 num˘ arul optim de ˆ = 3, adic˘ etaje este N a exact cel calculat prin acest exemplu.

Exemplul 1.28 Un ¸sir de inversoare ˆın tehnologia 0, 6µ (3, 3V, τ = 50ps) comand˘a un semnal conectat la un terminal de ie¸sire al circuitului integrat (pad). Capacitatea terminalului de ie¸sire este de 40pF care este echivalent˘ a cu o capacitate de poart˘ a de 20000µm. Presupunˆ and capacitatea de intrare ˆın ¸sirul de inversoare de 7, 2µm s˘ a se dimensioneze ¸sirul de inversoare cel mai rapid. Solut¸ie. Se calculeaz˘ a B = 1, G = 1 ¸si H = 20000/7, 2 = 2777. Din Tabelul 1.15 rezult˘ a ˆ = 6, 1090 < 2777 < 3920. Efortul cel mai bun pe c˘ a num˘ arul optim de inversoare este N 1 etaj este fˆ = (2777) 6 = 3, 75 deci fiecare inversor are capacitatea de intrare de 3, 75 ori mai ˆ = 6 × 3, 75 + 6 × pinv = 28, 5 mare decˆ at a inversorului precedent, iar ˆıntˆ arzierea este D unit˘ a¸ti de intˆ arziere, adic˘ a 28, 5 × 50ps = 1, 43ns. ˆIn acest exemplu s-a g˘ asit c˘ a cel mai bun raport de multiplicare a dimensiunilor de la un nivel la urm˘ atorul nivel este de 3, 75. Unele referint¸e indic˘ a pentru acest raport de multiplicare valoarea de 2, 71, adic˘ a constanta e, care este corect numai cˆ and ˆıntˆ arzierea parazitic˘ a p este nul˘ a. Pe m˘ asur˘ a ce p cre¸ste raportul de multiplicare cre¸ste peste valoarea lui e iar num˘ arul de niveluri scade . Dac˘ a efortul pe nivel variaz˘ a ˆın intervalul de 2 pˆ an˘ a 8 abaterea ˆıntˆ arzierii realizat˘ a fat¸a˘ de cea mai mic˘ a ˆıntˆ arziere este 35%, iar dac˘ a efortul pe nivel variaz˘ a ˆın intervalul de 2, 4 pˆ an˘ a la 6 abaterea este doar de 15%. Pentru pinv = 1 cel mai bun efort pe nivel este de 3, 59. A intrat ˆın uz ca ,, cel mai bun efort pe nivel s˘ a fie considerat 4, pentru c˘ a este un num˘ ar “rotund ¸si este u¸sor de calculat mental num˘ arul de niveluri, aceast˘ a alegere de efort 4 pe nivel duce la o abatere de 1% fat¸a˘ de ˆıntˆ arzierea cea mai mic˘ a pentru p inv = 1. Considerˆ and ˆ de niveluri rezult˘ efortul pe nivel 4 num˘ arul N a prin relat¸ia log4 F iar ˆıntˆ arzierea F O4, pe un nivel cu ˆınc˘ arcarea 4, este cunoscut˘ a ca fiind egal˘ a 5τ (vezi Exemplul 1.20), ˆ = 5log4 F . Cuadruplˆ deci ˆıntˆ arzierea se calculeaz˘ a simplu cu relat¸ia D and efortul pe traseu atrage dup˘ a sine o ˆıntˆ arziere egal˘ a cu cea a unui inversor care comand˘ a alte patru inversoare identice.

139

CAPITOLUL 1. PORT ¸ I LOGICE

Un caz particular de structur˘ a de circuit, dar foarte des utilizat, este a¸sa numita ,, “furc˘ a ce se compune din dou˘ a ramuri de inversoare, pe o ramur˘ a num˘ arul inversoarelor ˆınseriate fiind impar iar pe cealalt˘ a ramur˘ a num˘ arul inversoarelor ˆınseriate fiind par, astfel c˘ a la ie¸siri se genereaz˘ a valoarea negat˘ a respectiv nenegat˘ a a semnalului comun aplicat la intrare, Figura 1.67. Pentru circuitul furc˘ a se cunosc cele dou˘ a capacit˘ ati de ie¸sire Ca , Cb , ˆın general egale Ca = Cb , de la cele dou˘ a ramuri, CO = Ca + Cb . De asemenea, se cunoa¸ste capacitatea total˘ a de intrare ˆın furc˘ a, Cin , care este sarcina suportat˘ a de semnal la intrarea ˆın furc˘ a, pe care va trebui s˘ ao at ˆıntˆ arzierile repartiz˘ am pe cele dou˘ a intr˘ ari Cina , Cinb , Cin = Cina + Cinb , astfel ˆıncˆ pe cele dou˘ a ramuri s˘ a fie egale. Se poate defini un efort electric total pentru circuitul furc˘ a H = CO /Cin ¸si, respectiv, cˆ ate un efort electric individual pentru fiecare ramur˘ a Ha = Ca /Cina , Hb = Cb /Cinb , aceste eforturi electrice individuale, ˆın general, nu sunt egale chiar dac˘ a ˆınc˘ arc˘ arile la ie¸sire sunt egale. C ina

N niveluri

C in

Ca C inb

C ina= β C in C inb=(1−β )C in

N−1 niveluri

Cb C o=C a+C b

Figura 1.67 Structura general˘ a a circuitului furc˘ a: Pentru proiectarea circuitului furc˘ a se porne¸ste cu determinarea coeficientului de repartizare β a capacit˘ a¸tii de intrare, Cin , ˆıntre cele dou˘ a ramuri, Cina = β · Cinb , coeficient care rezult˘ a din egalitatea ˆıntˆ arzierilor, ecuat¸ia 1.102, pe cele dou˘ a ramuri. Ramura care suport˘ a un efort electric mai mare, uzual cea cu amplificatoare mai multe, are o capacitate de intrare mai mic˘ a β < 0, 5, deci i se repartizeaz˘ a o parte mai mic˘ a din curentul semnalului de intrare decˆ at celeilalte ramuri. Evident, c˘ a oricare ramur˘ a poate fi dimensionat˘ a s˘ a devin˘ a mai rapid˘ a, prin reducerea efortului electric al s˘ au ceea ce implic˘ a m˘ arirea dimensiunilor tranzistoarelor de la primul etaj, adic˘ a m˘ arindu-i curentul repartizat ˆın detrimentul celeilalte ramuri care va deveni mai lent˘ a. Un circuit furc˘ a particular este referit prin num˘ arul de inversoare cont¸inut ˆın fiecare ramur˘ a, ˆın general diferent¸a este de un singur inversor, deci pot fi circuite: 2−1, 3−2, 4−3, 5−4 , . . . . ˆIn funct¸ie de valoarea efortului electric total H = C O /Cin din Tabelul 1.16 se obt¸ine recomandarea ce structur˘ a de circuit furc˘ a este indicat s˘ a se utilizeze (pentru pinv = 1). Exemplul 1.29 S˘a se proiecteze un circuit furc˘a 2 − 1 cu capacitatea de intrare Cin = 10 iar capacitatea de ie¸sire, pe fiecare ramur˘ a, este Ca = Cb = 100. Care este ˆıntˆ arzierea introdus˘ a de circuit? Solut¸ie. Coeficientul β de repartizare a capacit˘ a¸tii de intrare Cin ˆıntre ramura cu dou˘ a inversoare, Cina = β · Cin ¸si ramura cu un singur inversor Cinb = (1 − β)Cin , rezult˘ a din egalizarea ˆıntˆ arzierilor, ecuat¸ia 1.102, pe cele dou˘ a ramuri.   1  100 100 2 + 2pinv = 2 + pinv 10β 10(1 − β)

1.5. PORT ¸I ˆ IN TEHNOLOGIA CMOS

140

Prin rezolvare numeric˘ a rezult˘ a β = 0, 258, deci Cina = 10β = 2, 6 ¸si Cinb = 10(1 − β) = 7, 4. Al doilea inversor din ramura cu dou˘ a inversoare are capacitatea de intrare, conform ecuat¸iei 1 1.104, egal˘ a cu Ca2 = 2, 6 × (100/2, 6) 2 = 16, 1. ˆIntˆ arzierea ˆın ramur˘ a cu un singur inversor, arzierea ˆın ramura conform ecuat¸iei 1.98, este Cb /Cinb + pinv = 100/7, 4 + 1 = 14, 5. Iar ˆıntˆ cu dou˘ a inversoare este Ca2 /Cina + Ca /Ca2 + 2pinv = 16, 1/2, 6 + 100/16, 1 + 2 = 14, 5.

Tabelul 1.16 Circuitul furc˘ a recomandat ˆın funct¸ie de efortul electric total (pinv = 1) H De la

Pˆ an˘ a la 9,68 38,7 146 538 1970 7150

9,68 38,7 146 538 1970

Circuitul furc˘ a 2-1 3-2 4-3 5-4 6-5 7-6

Exemplul 1.30 S˘a se proiecteze un circuit furc˘a pentru comanda de validare/acces a 64 buffere tristate la o magistral˘ a, Figura 1.68-b. Capacitatea de intrare la circuitul furc˘ a este de 12 unit˘ a¸ti, iar un buffer tristate are dimensiuni de ¸sase ori mai mari decˆ at cele ale structurii de referint¸a ˘ de circuit poart˘ a tristate. Structura de referint¸a ˘ de circuit V DD

dimensiune x6 24

V DD 4 (EN) S

2

(EN) S

a)

12 12 d63

2

d (data)

(data)

12

2

6,5

32

156

5,5

19

6,5

EN

Validare EN 224

V DD 24 12 12

d0 b)

(data)

12

Figura 1.68 Explicativ˘ a pentru exemplul 1.30

linii de magistrala d63 d0

141

CAPITOLUL 1. PORT ¸ I LOGICE

poart˘ a tristate este prezentat˘ a ˆın Figura 1.68-a, acest circuit are aceea¸si funct¸ionare ca ¸si circuitul din Figura 1.52-c, care este format dintr-un inversor CMOS static avˆ and pe ie¸sire o poart˘ a de transmisie CMOS (dar de data aceasta, tranzistoarele complementare ale port¸ii de transmisie sunt ˆınseriate/incluse ˆın coloana port¸ii CMOS static˘ a ¸si comandate cu semnalele complementare s ¸si s). Solut¸ie. Sarcina pe ie¸sire pentru fiecare din semnalele de validare/ENable, EN , EN este 64 × 6 × 2 = 768 unit˘ a¸ti de capacitate. Efortul electric pentru ˆıntregul circuit furc˘ a este H = (768 + 768)/12 = 128, iar din Tabelul 1.16 rezult˘ a c˘ a structura de 4 − 3 este cea optim˘ a. Coeficientul de repartizare β a capacit˘ a¸tii de intrare pe cele dou˘ a ramuri rezult˘ a din relat¸ia 4



768 12β

1

4

+ 4pinv = 3



768 12(1 − β)

1 3

+ 3pinv

Prin rezolvare numeric˘ a se obt¸ine β = 0, 46. Capacitatea de intrare pe ramura cu patru inversoare este 12 × 0, 46 = 5, 5 iar pe ramura cu trei inversoare este 12 − 5, 5 = 6, 5, ˆın consecint¸a efortul electric pe ramur˘ a este respectiv egal cu 768/5, 5 = 140, 768/6, 5 = 118, √ √ la fel ¸si efortul pe nivel este 4 140 = 3, 44, 3 118 = 4, 90. Pornind cu dimensionarea, de la capacitatea de sarcin˘ a de ie¸sire spre capacitatea de intrare, rezult˘ a capacit˘ a¸tile de intrare ˆın fiecare nivel egale cu 224, 65,19 ¸si 5, 5 pentru ramura cu 4 inversoare ¸si 156, 32 ¸si 6,5 pentru 1 ramura cu 3 inversoare. ˆIntˆ arzierea pe fiecare ramur˘ a este 4(140) 4 + 4pinv = 4 × 3, 44 + 4 = 1 17, 7 ¸si 3 × (118) 3 + 3pinv = 3 × 4, 90 + 3 = 17, 7. Se observ˘ a c˘ a efortul electric total al circuitului H = 128 ((118 + 140)/2 = 128) este balansat inegal pe cele dou˘ a ramuri prin ˆımbun˘ at˘ a¸tirea ˆıntˆ arzierii pe ramura mai lent˘ a ˆın detrimentul celei mai rapide astfel ˆıncˆ at fiecare s˘ a ajung˘ a la ˆıntˆ arzierea de 17, 7.

Modul de analiz˘ a pentru circuitul furc˘ a se poate extinde ¸si pentru circuite mai complexe cu mai multe ramuri, unde fiecare ramur˘ a cont¸ine un num˘ ar diferit de niveluri, fiecare ramur˘ a realizeaz˘ a o funct¸ie logic˘ a diferit˘ a ¸si unde fiecare ramur˘ a comand˘ a sarcin˘ a diferit˘ a. Totu¸si aceast˘ a extindere la circuite mai complexe necesit˘ a unele artificii ceea ce arat˘ a unele deficient¸e ¸si limit˘ ari ale metodei. Metoda efortului logic este o procedur˘ a de proiectare pentru obt¸inerea celui mai mic timp de ˆıntˆ arziere pentru un traseu dintr-o ret¸ea. Aceast˘ a metod˘ a combin˘ a ˆıntrun singur calcul atˆ at capabilitatea de a comanda sarcini electrice mari cˆ at ¸si realizarea unei funct¸ii logice. Expresiile de calcul ˆın cadrul metodei sunt concentrate ˆın Tabelul 1.17 iar procedura de calcul parcurge urm˘ atoarele etape: 1. Se calculeaz˘ a efortul F = GBH pentru traseul din ret¸eaua de analizat. Efortul logic pe traseu, G, este produsul efortului logic al tuturor port¸ilor logice de pe traseu, efortul logic al port¸ilor este dat ˆın Tabelul 1.13; efortul de ramnificat¸ie pe traseu, B, este produsul efortului de ramnificat¸ie al tuturor port¸ilor de pe traseu; efortul electric pe traseu, H, este raportul dintre capacitatea de sarcin˘ a total˘ a a ultimului nivel ¸si a capacit˘ a¸tii de intrare la primul nivel. ˆ , pentru efortul F calculat, care pro2. Se estimeaz˘ a num˘ arul optim de niveluri N duce cel mai mic timp de ˆıntˆ arziere; pentru aceast˘ a estimare se utilizeaz˘ a fie ˆ ≈ log4 F . Tabelul 1.15, fie relat¸ia N

ˆ =N ˆ F N1ˆ + P pi , folosind pentru ˆıntˆ 3. Se estimeaz˘ a ˆıntˆ arzierea minim˘ a, D arzierea datorit˘ a capacit˘ a¸tilor interne parazite datele din Tabelul 1.14. Procedura se

142

1.6. REJECT ¸ IA ZGOMOTELOR

opre¸ste aici dac˘ a se urm˘ are¸ste doar compararea ˆıntˆ arzierilor diferitelor structuri. Pentru o proiectare se parcurg ¸si punctele urm˘ atoare. 4. Se adaug˘ a sau se elimin˘ a niveluri pˆ an˘ a cˆ and num˘ arul de niveluri N atinge ˆ. valoarea N 1 5. Se calculeaz˘ a efortul suportat pe fiecare nivel: fˆ = F N .

6. Se dimensioneaz˘ a tranzistoarele  din  fiecare etaj, succesiv, pornind de la ultimul ˆ nivel folosind relat¸ia Cin = gi /f CO pˆ an˘ a la primul nivel; valoarea calculat˘ a Cin a unui etaj i devine capacitatea de ie¸sire a etajului i−1 (eventual modificat˘ a prin efortul de ramnificat¸ie); indicele etajului ˆın traseu cre¸ste ˆıncepˆ and cu etajul de intrare ˆınspre etajul de ie¸sire. Tabelul 1.17 Relat¸iile utilizate de metoda efortului logic Denumire Expresia pe nivel Expresia pe traseu Q Efortul logic g (Tabelul 1.13) G = gi COtraseu O Efortul electric h = CCin H = Cin Qtraseu Efortul de ramnificat¸ie B = bi Q Efortul f = gh F = GBH = fi P 1 ˆIntˆ f DF = fi minimizat cˆ and f = F Nˆ arzierea de efort Num˘ arul de niveluri 1 N (Tabelul 1.15) P ˆIntˆ arzierea parazitic˘ a p (Tabelul 1.14) P = pi ˆIntˆ arzierea total˘ a d=f +p D = DF + P Metoda efortului logic poate indica rapid proiectantului care dintre structurile analizate trebuie a fi aleas˘ a ¸si pentru cea aleas˘ a se poate obt¸ine o proiectare aproape optim˘ a, iar apoi aceast˘ a structur˘ a poate apoi fi ˆımbun˘ at˘ a¸tit˘ a prin simulare cu un program de simulare. De asemenea, aceast˘ a metod˘ a introduce not¸iuni cantitative foarte necesare ˆın cooperarea ¸si comunicarea celor care proiecteaz˘ a circuite rapide CMOS.

1.6

REJECT ¸ IA ZGOMOTELOR

Prin semnal de zgomot se ˆınt¸elege orice semnal electric nedorit care apare ˆın sistem. Zgomotul este tolerat ˆın sistem atˆ at timp cˆ at suprapus peste semnalul logic nu se ajunge la o amplitudine de semnal care s˘ a duc˘ a la o funct¸ionare incorect˘ a a sistemului. ˆIn sistemele digitale, spre deosebire de cele analogice, zgomotul nu se cumuleaz˘ a cˆ and se trece de la un nivel logic (poart˘ a) la urm˘ atorul nivel logic; aceast˘ a ,, eliminare a zgomotului se datoreaz˘ a funct¸ion˘ arii “procustiene a port¸ilor logice, adic˘ a o poart˘ a dac˘ a este comandat˘ a ˆın limita valorilor de intrare permise va genera la ie¸sire numai semnale ˆın limita valorilor garantate. O prim˘ a cale prin care port¸ile pot tolera zgomotul, pˆ an˘ a la o anumit˘ a valoare, se obt¸ine, intrinsec, prin fixarea de valori garantate ¸si de valori permise. Amplitudinea

CAPITOLUL 1. PORT ¸ I LOGICE

143

semnalului de zgomot tolerat de c˘ atre o poart˘ a logic˘ a se poate exprima prin parameterii: marginea de zgomot ˆın curent continuu ˆın starea high, M H , ¸si ˆın starea low, ML , relat¸ia 1.18; imunitatea la perturbat¸ii IP + , IP − , relat¸ia 1.19-a ¸si factorul de imunitate la perturbat¸ii F IP + ¸si F IP − , relat¸ia 1.19-b. Pentru tehnologia TTL valorile tipice pentru tensiunile de ie¸sire garantate ¸si cele de intrare permise sunt: VOHmin = 2, 4V , VOLmax = 0, 4V ¸si VIHmin = 2V , VILmax = 0, 8V deci rezult˘ a: MH = 2, 4V − 2V = 0, 4V, ML = 0, 8V − 0, 4V = 0, 4V. De fapt, zgomotul tolerat de poart˘ a are valori mai mari decˆ at marginile calculate, de 0, 4V , deoarece valorile tipice de ie¸sire sunt V OH = 3, 4V , VOL = 0, 25V . Considerˆ and tensiunea de prag de comutare a port¸ii VT = 1, 7V rezult˘ a IP − = 3, 4V − 1, 7V = 1, 7V, IP + = 1, 7V − 0, 25V = 1, 45V ¸si pentru ∆V = 5V se pot calcula factorii de imunitate la zgomot     1, 7 1, 45 F IP − [%] = × 100 = 34%, F IP + [%] = × 100 = 29% 5 5 deci, circuitul este mai bine protejat la zgomot ˆın starea H decˆ at ˆın starea L. Tehnologia CMOS, cˆ and comand˘ a tot port¸i CMOS, are urm˘ atoarele valori tipice: VOHmin = VDD − 0, 1V , VOLmax = VSS + 0, 1V ¸si VIHmin = 70% din VDD , VILmax = 30% din VDD iar pentru VDD = 5V ¸si VT = 2, 5V rezult˘ a MH = 4, 9V − 3, 5V = 1, 4V, ML = 1, 5V − 0, 1V = 1, 4V. IP − = 4, 9V − 2, 5V = 2, 4V, IP + = 2, 5V − 0, 1V = 2, 4V     2, 4 2, 4 − + F IP [%] = × 100 = 48%, F IP [%] = × 100 = 48% 5 5 ˆIn mediile puternic perturbative este recomandat˘ a utilizarea port¸ilor cu imunitate ridicat˘ a la zgomot, la care IP + ¸si IP − au valori absolute destul de mari, pentru c˘ a tensiunile de alimentare sunt destul de ridicate, se poate ajunge pˆ an˘ a la 30V . O a doua cale de a tolera zgomotele de c˘ atre port¸ile logice const˘ a ˆın dotarea port¸ilor cu circuit trigger Schmitt. Pentru port¸ile TTL circuitul trigger Schmitt se introduce dup˘ a tranzistorul T1 ¸si va comanda tranzistorul inversor T2, Figura 1.22-c, iar pentru cele CMOS triggerul Schmitt va fi plasat ˆınaintea unui inversor CMOS. Capacitatea de a tolera zgomot, de amplitudine destul de ridicat˘ a, rezult˘ a din caracteristica static˘ a de releu cu histerezis a circuitului trigger Schmitt, V O = f (VI ), Figura 1.69-a. Din caracteristica static˘ a (cadranul I) se observ˘ a c˘ a pentru sensul cresc˘ ator al tensiunii de intrare VI numai cˆ and aceast˘ a tensiune atinge pragul superior V p+ , ie¸sirea triggerului va bascula ˆın starea 1; iar la descre¸sterea tensiunii de intrare bascularea ie¸sirii din 1 ˆın 0 nu se produce la pragul superior Vp+ ci la pragul inferior Vp− ( Vp− < Vp+ ), valoarea histerezisului fiind ∆ = Vp+ − Vp− . La o poart˘ a logic˘ a cu trigger Schmitt tensiunea de intrare, V I , va fi ˆınc˘ a interpretat˘ a ca 1 logic pˆ an˘ a cˆ and aceast˘ a tensiune (peste care, eventual, se suprapune semnal an˘ ator, de zgomot cu faz˘ a opus˘ a) scade sub valoarea VIH pˆ an˘ a la valoarea Vp− . Asem˘

144

1.6. REJECT ¸ IA ZGOMOTELOR

vO V OH

b) vI

V OL vO

a)

V IL V OH

V OL

t

V p− V p−

V p+ V IH

V p+

vI

t

Figura 1.69 Triggerul Schmitt: a) caracteristica de releu cu histerezis (cadranul I), variat¸ia tensiunii de intrare (cadranul IV) ¸si variat¸ia corespunz˘ atoare a tensiunii de ie¸sire (cadranul III); b) simbolul de reprezentare a unui buffer neinversor cu trigger Schmitt. tensiunea de intrare (eventual cu semnal de zgomot suprapus) va fi ˆınc˘ a interpretat˘ a ca 0 logic peste VIL pˆ an˘ a cˆ and se ajunge la valoarea Vp+ . Intervalele tensiunilor de intrare ˆın 1 ¸si 0 logic se suprapun pe intervalul de histerezis ∆. Marginile statice de zgomot pentru o poart˘ a cu trigger Schmitt se calculeaz˘ a cu relat¸iile: M H = VOHmin − Vp− , ML = Vp+ − VOLmax , care, evident, sunt mai mari decˆ at la o poart˘ a obi¸snuit˘ a. Port¸ile trigger Schmitt sunt recomandate ˆın aplicat¸iile, pentru care imunitatea la zgomot este o cerint¸a˘ principal˘ a, cum ar fi receptoarele de magistral˘ a sau pentru recept¸ia unor semnale lent variabile (cazul semnalelor de intrare ˆın sisteme, semnale ,, obt¸inute de la diverse traductoare “care trebuie formate ). ˆIn Figura 1.69-a ˆın cadranul IV este reprezentat˘ a variat¸ia ˆın timp a unui semnal oarecare v I = f (t) aplicat la intrarea unui buffer neinversor trigger Schmitt iar ˆın cadranul III este desenat˘ a variat¸ia corespunz˘ atoare a tensiunii la ie¸sirea din buffer; pragurile de basculare fiind am s˘ a desenat¸i forma de variat¸ie a tensiunii de ie¸sire v O = f (t), Vp− ¸si Vp+ . (Suger˘ obt¸inut˘ a pentru aceea¸si tensiune de intrare, dar cˆ and bufferul nu este un circuit trigger Schmitt ¸si apoi s˘ a comparat¸i, tensiunea obt¸inut˘ a cu forma de variat¸ie a tensiunii de ie¸sire deja desenat˘ a ˆın cadranul III). Semnalele de zgomot nu trebuie considerate numai ca surse potent¸iale de producere a unor funct¸ion˘ ari eronate ci ¸si ca posibile cauze de distrugere fizic˘ a a port¸ilor, mai ales cˆ and aceste semnale vin din exterior ¸si sunt aplicate pe intr˘ ari. Supratensiunile aplicate pe terminalele de intrare pot duce la str˘ apungerea unor jonct¸iuni sau, pentru CMOS, la str˘ apungerea stratului de oxid de sub poart˘ a, ori la aparit¸ia efec-

145

CAPITOLUL 1. PORT ¸ I LOGICE

V DD Pad

R

Intrare

V DD D1

D1

vI

D2

R

Data

D2 C

V DD

T2

VT

Pad

T1

VT

2

D (Data) 1

V DD D1 Pad D2 a)

vI R C

OE

D

VT

0 1 1

X 0 1

0 1 1

1

VT 1 1 0

2

Validare Iesire OE

Iesire

Pad HZ 0 1

terminal de intrare terminal de iesire

b)

Figura 1.70 Terminale (paduri) la un circuit integrat: a) circuite de protect¸ie la un terminal de intrare; b) structur˘ a de circuit pentru utilizarea unui pad atˆ at pentru semnale de ie¸sire cˆ at ¸si semnale de intrare. ,, tului de z˘ avorˆ are (“latch-up ). Aceste supratensiuni pot apare la intr˘ arile port¸ilor datorit˘ a: reflexiilor pe liniile neadaptate, tensiunilor induse, alimentarea sistemului cu mai multe niveluri de tensiune, desc˘ arc˘ arilor electrostatice. Cea mai simpl˘ a, ¸si uzual˘ a, cale de a proteja o poart˘ a pe terminalele de intrare sau pe pad-uri (la sistemele integrate) const˘ a ˆın conectarea unor diode de desc˘ arcare ˆınspre cele dou˘ a bare de alimentare: VSS (mas˘ a), VDD /VCC . Pentru port¸ile TTL diodele D4 ¸si D5 pe intr˘ ari, Figura 1.22-c, limiteaz˘ a supratensiunile negative la valoarea de −0, 7V (tensiunea de conduct¸ie a diodei) sub potent¸ialul masei. Pentru terminalele de intrare ˆın tehnologia CMOS este utilizat˘ a pentru protect¸ie structura de circuit din Figura 1.70-a care pentru tensiuni de intrare peste V DD sau sub VSS , prin diodele D1, D2, produce o limitare ˆın interiorul intervalului −0, 7V < v I < VDD + 0, 7V . La aceast˘ a structur˘ a de protect¸ie prin C se consider˘ a orice capacitate existent˘ a pe intrare, iar rezistent¸a R se realizeaz˘ a prin difuzie sau, mai indicat, din polisiliciu; evident, constanta de timp RC care apare pe intrare poate introduce o limitare a vitezei pentru circuitele de vitez˘ a ridicat˘ a. Distrugerea unei port¸i CMOS prin desc˘ arcare electrostatic˘ a poate apare nu numai ˆın condit¸ii de utilizare a port¸ii ci ¸si ˆın situat¸ia de manipulare/transport. O persoan˘ a mergˆ and pe un covor, ˆın condit¸iile de 80% umiditate relativ˘ a, se ˆıncarc˘ a electrostatic care, apoi, prin atingerea intr˘ arii unei port¸i logice poate genera o tensiune de ordinul sutelor de volt¸i aplicat˘ a pe stratul de oxid de sub poart˘ a (tensiunea de str˘ apungere a stratului de oxid este ˆıntre 40 ÷ 100V ). De exemplu, pentru o astfel de atingere, cu urm˘ atoarele valori C = 0, 3pF , I = 100µA, ∆t = 1µs, se genereaz˘ a

146

1.6. REJECT ¸ IA ZGOMOTELOR

pe stratul de oxid o tensiune egal˘ a cu V = I · ∆t/C ≈ 330V ; evident, poarta ar fi distrus˘ a f˘ ar˘ a circuitul de protect¸ie cu diode de desc˘ arcare pe intrare. Ca m˘ asuri de precaut¸ie la port¸ile CMOS se recomand˘ a: 1. manipularea/transportul se face numai ˆın pungi, tuburi sau spum˘ a care sunt conductivi; 2. ˆın timpul asambl˘ arii sau depan˘ arii sistemelor, persoana executant˘ a s˘ a fie conectat˘ a cu un fir spre p˘ amˆ ant. Efectul de z˘ avorˆ are se manifest˘ a prin aparit¸ia ˆın interiorul plachetei de siliciu a unui traseu de scurtcircuitare ˆıntre VDD ¸si mas˘ a care, dac˘ a nu este eliminat, poate duce la distrugerea cipului; acest efect este cel mai negativ efect al tehnologiei CMOS. Efectul de z˘ avorˆ are are ca explicat¸ie formarea unei structuri (parazite) de tiristor. ˆIntre zonele difuzate (surs˘ a, dren, contacte metalice) ¸si substrat se formeaz˘ a structuri care, atunci cˆ and sunt polarizate corespunz˘ ator, au funct¸ionare de tranzistor npn sau pnp. Structurile de tranzistoare complementare parazite npn ¸si pnp ˆımpreun˘ a pot determina o funct¸ionare de tiristor care, ˆın anumite condit¸ii de funct¸ionare anormal˘ a ale port¸ii, poate intra ˆın conduct¸ie deci are loc scurtcircuitarea barei V DD spre mas˘ a. Tiristorul parazit odat˘ a amorsat nu mai poate fi comandat spre blocare – de unde ¸si denumirea de z˘ avorˆ are pentru acest efect; eliminarea unei astfel de c˘ ai de scurtcircuit, prin blocarea tiristorului, se poate face doar prin deconectarea tensiunii de alimentare. Circuitele logice CMOS sunt fabricate ˆın structuri care previn efectul de z˘ avorˆ are [Weste 0 00],[Kang 0 97]. Intrarea ˆın z˘ avorˆ are poate fi determinat˘ a de: • aplicarea, la pornire, a tensiunii de alimentare V DD cu un front de cre¸stere cu pant˘ a foarte mic˘ a (lent variabil˘ a); • variat¸ii mari ale semnalului de intrare peste V DD sau VSS ; • intr˘ arile unui sistem/subsistem sunt comandate de ie¸sirile unui alt sistem/subsistem iar cele dou˘ a sisteme au surse de alimentare diferite (semnalele de intrare la sistemul comandat ar putea fi aplicate ˆınainte ca sistemul comandat s˘ a fie alimentat la VDD ); • curent¸i de scurgere prin jonct¸iunile insulei de izolare, particule γ, radiat¸ii X sau cosmice. Padurile circuitelor integrate sunt mari consumatoare de suprafat¸a˘ de siliciu apoi conexiunile de la paduri la pinii (terminalele) circuitului integrat ocup˘ a spat¸iu relativ mare; ˆın plus comanda unui pad necesit˘ a un superbuffer, vezi Exemplul 1.28. Cu cre¸sterea complexit˘ a¸tii circuitelor cre¸ste ¸si num˘ arul de pini (de ordinul sutelor) la circuitele integrate de¸si exist˘ a permanenta tendint¸a˘ de a ¸tine acest num˘ ar cˆ at se poate mic. O variant˘ a practic˘ a, ˆın acest sens, este cea prin care un terminal este dedicat (multiplexat) atˆ at pentru semnalele de intrare cˆ at ¸si pentru semnale de ie¸sire, Figura 1.70-b. Din tabelul de adev˘ ar ata¸sat acestei figuri rezult˘ a c˘ a atunci cˆ and semnalul de validare ie¸sire OE (Output Enable) este activ data interioar˘ a D este transmis˘ a la pad, deci padul constituie un terminal de ie¸sire. Pentru OE = 0, ambele tranzistoare T1 ¸si T2 sunt blocate, ie¸sirea ˆınspre pad, din interiorul circuitului, este ˆın starea de

CAPITOLUL 1. PORT ¸ I LOGICE

147

ˆınalt˘ a impedant¸a˘ HZ, pe pad se poate aplica un semnal din exterior, deci este un terminal de intrare. Evident, aplicarea semnalului din exterior ¸si aplicarea semnalului din interior trebuie s˘ a fie operat¸ii disjuncte. Terminalele circuitelor integrate neutilizate ˆın sistemul respectiv nu trebuie l˘ asate flotante pentru c˘ a pot s˘ a capteze zgomote, mai ales la CMOS unde impedant¸ele de intrare sunt mai mari, iar circuitul poate manifesta o funct¸ionare hazardat˘ a. Problema terminalelor de intrare neutilizate poate fi solut¸ionat˘ a ˆın trei modalit˘ a¸ti: 1. Se leag˘ a ˆımpreun˘ a cu un alt terminal de intrare conectat la ie¸sirea unei port¸i logice (evident c˘ a poarta respectiv˘ a este ˆınc˘ arcat˘ a suplimentar pe ie¸sire); 2. Se leag˘ a la tensiunea de alimentare VDD /VCC (1 logic) printr-o rezistent¸a˘ pentru port¸ile AND sau NAND; 3. Se leag˘ a la potent¸ialul masei (0 logic) printr-o rezistent¸a˘ pentru poart¸ile OR, NOR. Valoarea rezistent¸ei, de conectare, la mas˘ a sau la alimentare a intr˘ arilor neutilizate, poate fi ˆın intervalul 1 ÷ 10KΩ pentru port¸ile CMOS, dar trebuie calculat˘ a exact pentru port¸ile TTL. La port¸ile TTL, care au curent¸ii de intrare mult mai mari decˆ at la CMOS, este necesar ca valoarea c˘ aderilor de tensiune pe rezistent¸a conectat˘ a la mas˘ a sau VCC s˘ a situeze nivelul de tensiune produs pe intrare ˆın plaja tensiunilor garantate ≤ VOLmax , ≥ VOHmin . De exemplu, pentru port¸ile LS-TTL care pe intrare ˆın starea L au un curent de 0, 4mA rezistet¸a de conectare la mas˘ a R cm a n intr˘ ari neutilizate se calculeaz˘ a cu relat¸ia n · 0, 4mA · R cm ≤ VOLmax ; respectiv rezistent¸a de conectare la VCC , Rca , cˆ and pe intrare ˆın starea H se absoarbe un curent de 20µA se calculeaz˘ a cu relat¸ia n · 0, 02mA · Rca < VCC − VOHmin . Majoritatea sistemelor integrate sunt realizate ˆın tehnologia CMOS, dar ˆın exterior unde, uneori, curent¸ii necesari au valori ridicate se utilizeaz˘ a ¸si circuite ˆın tehnologie TTL, deci adesea apare o comand˘ a de tip TTL pe o intrare a unui circuit CMOS. Valorile garantate pe ie¸sirile TTL sunt VOLmax = 0, 4V , VOHmin = 2V , iar pentru CMOS valorile permise pe intrare sunt VILmax = 0, 8V , VIHmin = 3, 5V ; se observ˘ a c˘ a nu exist˘ a compatibilitate pentru nivelul H, tensiunea generat˘ a de TTL ar trebui s˘ a fie ridicat˘ a cu cel put¸in 1, 5V . Solut¸ia pentru compatibilizare const˘ a ˆın realizarea inversorului CMOS de pe intrare, dup˘ a circuitele de protect¸ie, Figura 1.70-a, cu o tensiune de prag VT situat˘ a la mijlocul intervalului ˆıntre 0, 8V ¸si 2V adic˘ a V T = 1, 4V . Cunoscˆ and valoarea lui VT se pot calcula dimensiunile port¸ilor Wp ¸si Wn astfel ˆıncˆ at deplasarea de nivel de tensiune, de la 3, 5V la 2V , s˘ a se realizeze ˆın jos, c˘ atre 2V de c˘ atre inversorul de intrare CMOS. Se poate defini ¸si o m˘ arime margine dinamic˘ a de zgomot, aceasta fiind amplitudinea zgomotului mai mare decˆ at MH , ML , cu o durat˘ a mai mic˘ a decˆ at timpul de propagare minim prin poart˘ a, dar care nu provoac˘ a comutarea ie¸sirii port¸ii. Implusurile de amplitudine mare, dar de durat˘ a mai mic˘ a decˆ at timpul de propagare, ,, nu sunt “simt¸ite la ie¸sire. Marginea dinamic˘ a de zgomot nu este garantat˘ a pentru o poart˘ a de c˘ atre fabricant. Este foarte greu s˘ a se garanteze valoarea minim˘ a a timpului de propagare, τpmin , ˆın catalog pentru o poart˘ a este dat˘ a doar valoarea maxim˘ a a timpului de propagare, τpmax . Pentru eliminarea sau atenuarea zgomotului ˆıntr-un circuit este necesar a se cunoa¸ste natura ¸si locul sursei de zgomot. Primul pas necesar spre aceast˘ a cunoa¸stere

148

1.6. REJECT ¸ IA ZGOMOTELOR

este o clasificare a zgomotului dup˘ a locul unde se afl˘ a sursa de zgomot; ˆın acest sens trebuie s˘ a distingem dac˘ a sursa de zgomot este intern˘ a sau extern˘ a circuitului ¸si, apoi, pentru aceast˘ a surs˘ a s˘ a se identifice natura fenomenului produc˘ ator de zgomot.

1.6.1

Reject¸ia zgomotelor externe

Zgomotul extern are ca surs˘ a: instalat¸iile de electronic˘ a de putere, motoarele electrice, motoarele termice, comutat¸iile ˆın cablurile electrice de fort¸a˘, supratensiunile pe linia electric˘ a, instalat¸iile de ˆınalt˘ a frecvent¸a˘ de putere , transmisiunile emit¸a˘toarelor RTV ¸si alte surse de radiat¸ii electromagnetice ¸si este introdus ˆın sistem prin induct¸ie electromagnetic˘ a sau prin conduct¸ie pe firele de alimentare de la ret¸ea. Zgomotul de conduct¸ie. Acest zgomot poate intra ˆın sistem prin firele de alimentare de la ret¸ea, se poate elimina sau atenua prin: separare galvanic˘ a ¸si/sau filtrare (folosite, ˆın general, ˆımpreun˘ a). Separarea galvanic˘ a a sistemului de ret¸eaua de alimentare se face prin transformatorul redresorului de alimentare. Chiar dac˘ a adaptarea nivelurilor de tensiune ˆıntre ret¸eaua electric˘ a ¸si sursa de alimentare (redresor stabilizat) nu necesit˘ a un transformator, totu¸si se recomand˘ a introducerea separ˘ arii printr-un transformator cu raportul de transformare 1 : 1. Prin filtrare se pot elimina atˆ at frecvent¸ele joase cˆ at ¸si cele ridicate generate de c˘ atre sursa de alimentare. ˆIn acest sens se recomand˘ a conectarea la intrarea pe placa de circuit imprimat, ˆıntre barele de alimentare V CC /VDD ¸si mas˘ a, a unui filtru capacitiv. Cu cˆ at capacitatea conectat˘ a pe intrare are valoare mai mare cu atˆ at este mai bine dar, evident, o valoare mare a capacit˘ a¸tii poate fi limitat˘ a de pret¸ ¸si volumul ocupat. Practic, aceast˘ a capacitate conectat˘ a la intrarea pe placa de circuit imprimat a sistemului se realizeaz˘ a cu dou˘ a condensatoare: unul electrolitic, de valori uzuale ˆın gama 50 ÷ 100µF , pentru filtrarea frecvent¸elor joase ¸si medii ¸si unul ceramic, de capacitate ˆın gama zecimi de µF , pentru filtrarea frecvent¸elor ˆınalte. De asemenea, pentru placa de circuit imprimat a sistemului o leg˘ atur˘ a bun˘ a la p˘ amˆ ant, care s˘ a aib˘ a o rezistent¸a˘ cˆ at mai mic˘ a chiar ¸si pentru domeniul frecvent¸elor radio, dar separat˘ a de ˆımp˘ amˆ antarea la ret¸ea, este foarte recomandat˘ a. Zgomotul electromagnetic. Acest tip de zgomot p˘ atrunde ˆın sistem prin induct¸ie electromagnetic˘ a deci poate fi anulat sau atenuat prin ecranarea sistemului supus induct¸iei cu ajutorul unui ecran din materiale feroase – cu¸sc˘ a Faraday – ¸si legarea acestui ecran la priza de ˆımp˘ amˆ antare ¸si printr-un filtru capacitiv ¸si la sursa de alimentare. P˘ atrunderi de cˆ amp ce pot ap˘ area ˆın sistem prin zonele de ˆıntrerupere ale ecranului, fante pentru acces, orificii pentru cablurile cu exteriorul ¸si aceste p˘ atrunderi pot duce ˆın interior la o induct¸ie ˆın sistem. Dar cel mai pregnant efect al induct¸iei electromagnetice const˘ a ˆın tensiuni de zgomot induse ˆın conexiunile exterioare ecran˘ arii care leag˘ a diferite p˘ art¸i ale sistemului cu exteriorul. La transmisia unui semnal pe un singur fir ¸si reˆıntoarcerea prin traseul de mas˘ a, tensiunea obt¸inut˘ a la receptor se compune din tensiunea de la emit¸a˘tor plus oricare semnal de zgomot indus pe linia de leg˘ atur˘ a v zl sau pe linia de mas˘ a vzm , Figura 1.71-a. Evident c˘ a, pentru o funct¸ionare corect˘ a, marginea de zgomot a receptorului trebuie s˘ a fie mai mare decˆ at amplitudinea maxim˘ a a zgomotului indus pe linie. Ideal, se recomand˘ a ca leg˘ aturile exterioare s˘ a se fac˘ a prin cablu coaxial iar ˆımbr˘ ac˘ amintea (ecranarea) acestuia, la ambele capete, s˘ a fie legat˘ a la p˘ amˆ ant ¸si s˘ a

149

CAPITOLUL 1. PORT ¸ I LOGICE Intrare date

Zgomot indus pe linie vz1

Emitator

Receptor

Iesire date

vzm a)

Masa A

V CC +5V

0.1 µF

Masa A b)

Emitator

Legaturi de masa cat mai apropiate

x x

Masa B

0.1 µF

Cablu ecranat

Semnale pe linia diferentiala

Emitator Intrare date

Zgomot indus pe linia de masa

vz1

Legaturi de masa cat mai apropiate

Zgomot indus pe linie

Masa B Receptor

Receptor Iesire date

vz1 vzm

Masa A

Zgomot indus pe linia de masa

Masa B

c)

Figura 1.71 Zgomote externe: a) exemplificare pentru inducerea semnalelor de zgomot pe o linie de conexiune;b) eliminarea posibilit˘ a¸tii de inducere a zgomotului de induct¸ie prin utilizarea de cablu ecranat; c) eliminarea zgomotului suprapus peste semnal prin utilizarea modului de transmisie diferent¸ial˘ a.

se decupleze la surs˘ a, Figura 1.71-b. Iar cˆ and leg˘ aturile exterioare sunt realizate prin cablu plat se recomand˘ a ca ˆıntre dou˘ a fire, de transmisie pentru semnal, s˘ a fie utilizat un fir ca mas˘ a ¸si aceste fire de mas˘ a s˘ a fie legate la carcas˘ a/ecran. O solut¸ie foarte eficient˘ a ˆın eliminarea zgomotului indus const˘ a ˆın transmisia diferent¸ial˘ a a semnalului. Semnalul digital x ce trebuie transmis este convertit la emit¸a˘tor ¸si ˆın complementul s˘ au, x, iar aceste dou˘ a semnale complementare, x ¸si x, sunt transmise pe dou˘ a linii torsodate, Figura 1.71-c. Orice zgomot v zl indus pe cele dou˘ a linii sau pe traseul de mas˘ a este un semnal de mod comun, deci semnalele la receptor sunt: x+vzl ¸si x+vzl . Receptorul diferent¸ial va realiza la ie¸sire un semnal proport¸ional cu diferent¸a celor dou˘ a semnale aplicate la intrare, adic˘ a elimin˘ a semnalul de mod ,, comun. Prin transmisia diferent¸ial˘ a se poate obt¸ine la receptor un semnal “curat chiar cu circuite care nu posed˘ a imunitate ridicat˘ a la zgomot; atˆ at emit˘ atorul cˆ at ¸si receptorul sunt alimentate la tensiunea standard de +5V .

150

1.6. REJECT ¸ IA ZGOMOTELOR

1.6.2

Reject¸ia zgomotelor interne

Zgomotul intern, dup˘ a cum ¸si denumirea spune, este produs chiar de ˆınsu¸si sistemul respectiv, iar ˆın funct¸ie de natura fenomenului care ˆıl genereaz˘ a pot fi identificate urm˘ atoarele tipuri: zgomotul de mas˘ a, zgomotul datorit˘ a neadapt˘ arii liniilor, zgomotul indus prin cuplaj electromagnetic ¸si zgomotul datorit˘ a curent¸ilor de alimentare. ˆIn general, zgomotul intern poate cauza mai multe probleme decˆ at cel ex,, tern (“r˘ aul este ˆın noi! ). Este bine demonstrat c˘ a o proiectare ¸si o execut¸ie corect˘ a ¸si ˆıngrijit˘ a a sistemului sunt premise sigure pentru evitarea aparit¸iei zgomotului intern. 1.6.2.1

Zgomotul de mas˘ a.

Prin mas˘ a electronic˘ a ˆıntr-un circuit se ˆınt¸elege potent¸ialul de referint¸a˘ pentru toate tensiunile din circuit, fizic masa electronic˘ a este materializat˘ a printr-un conductor/traseu la care se conecteaz˘ a toate componentele circuitului; evident acest traseu trebuie s˘ a fie echipotent¸ial pentru toate componentele. Aplicarea unui semnal sau culegerea unui semnal de prelucrat se face pe un traseu compus din conductorul de semnal (firul cald) cu ˆıntoarcere prin conductorul de mas˘ a. Conductorul de mas˘ a fiind comun pentru toate circuitele de aplicare sau de culegere a semnalelor rezult˘ a c˘ a acest conductor este parcurs de tot¸i curent¸ii de ˆıntoarcere ai semnalelor. Dac˘ a rezistent¸a conductorului de mas˘ a nu este nul˘ a curent¸ii de ˆıntoarcere produc c˘ aderi de tensiune, iar diferitele puncte ale traseului de mas˘ a nu mai sunt echipotent¸iale, deci componentele circuitului au potent¸iale de mas˘ a diferite. Considerˆ and punctul unde se conecteaz˘ a masa sursei de alimentare la masa circuitului/sistemului alimentat ca punct init¸ial de mas˘ a, ˆın cazul ˆın care traseele de mas˘ a pornind din punctul init¸ial nu au rezistent¸a˘ zero, potent¸ialul de mas˘ a al fiec˘ arei componente va fi diferit fat¸a˘ de potent¸ialul punctului init¸ial de mas˘ a ˆın funct¸ie de valorile curent¸ilor de ˆıntoarcere. VCC

VCC 1 4

3 ∆Ι

a)

Circuit integrat

2

Z Traseu de masa

Plan de alimentare Plan de masa



Punct initial de masa

Masa

Planuri pentru traseele de conexiuni

b)

Figura 1.72 Zgomot de mas˘ a: a) exemplificare pentru o posibil˘ a aparit¸ie a semnalului de zgomot de mas˘ a datorit˘ a unei impedant¸e, Z, pe traseul de mas˘ a; b) solut¸ie de eliminare a zgomotului de mas˘ a prin utilizarea unui plan separat de mas˘ a ¸si altul separat de alimentare (pe o plac˘ a multistrat). De exemplu, pentru circuitul din Figura 1.72-a cˆ and ie¸sirea port¸ii1 (TTL) comut˘ a din 1 ˆın 0 curentul de la surs˘ a spre mas˘ a cre¸ste cu valoarea ∆I. Deoarece, ˆıntre punctul init¸ial de mas˘ a ¸si punctul de conectare la mas˘ a al port¸ii 1, traseul de mas˘ a prezint˘ a o impedant¸a˘ Z, se va produce un salt al c˘ aderii de tensiune ∆V pe aceast˘ a

151

CAPITOLUL 1. PORT ¸ I LOGICE

impedant¸a˘ egal cu ∆V = ∆I · Z. Punctul de mas˘ a al port¸ii 3 fiind foarte aproape de cel al port¸ii 1, saltul de tensiune produs ∆V poate comanda poarta 3 s˘ a genereze la ie¸sire un impuls fals care, apoi, este format (adus la nivelul 0) de c˘ atre poarta 4, deci o funct¸ionare eronat˘ a a circuitului. Remediu pentru zgomotul de mas˘ a apare prin realizarea unui traseu de mas˘ a echipotent¸ial pentru toate componentele circuitului ceea ce practic const˘ a ˆın: 1. Realizarea unui plan de mas˘ a ˆın cazul utiliz˘ arii unei pl˘ aci multistrat, Figura 1.72-b. La o plac˘ a multistrat poate fi utilizat ˆın totalitate un strat numai pentru masa sistemului implementat, la fel, un alt strat numai pentru tensiunea de alimentare iar restul straturilor pentru conexiunile necesare (actual, exist˘ a pl˘ aci cu pˆ an˘ a la 12 straturi metalizate); 2. La folosirea unui suport unistrat s˘ a se aloce traseului de mas˘ a o suprafat¸a˘ conductiv˘ a cˆ at mai mare. Se recomand˘ a ca traseul de mas˘ a, cu o l˘ a¸time cˆ at mai mare, ˆın funct¸ie de suprafat¸a˘ disponibil˘ a pe plac˘ a, s˘ a ˆınconjoare toate traseele de conexiuni, ¸si acest traseu (/suprafat¸a˘) de mas˘ a s˘ a fie la ambele capete legat de masa sursei de alimentare. 1.6.2.2

Zgomotul datorit˘ a neadapt˘ arii liniilor.

ˆIn toate analizele de pˆ an˘ a acum s-a considerat c˘ a transferul semnalului pe traseul de conexiune ˆıntre poarta care comand˘ a ¸si o poart˘ a comandat˘ a se face ˆın timp zero, adic˘ a instantaneu, dar ˆın realitate nu este a¸sa chiar dac˘ a viteza de propagare v p pe traseul de conexiune ar fi egal˘ a cu viteza luminii. Un traseu de conexiune, pe o plac˘ a de circuit imprimat, este caracterizat de m˘ arimi electrice distribuite pe lungimea x a traseului. Astfel se definesc valorile, pe lungimea infinitezimal˘ a dx, pentru inductivitate, Ldx, ¸si pentru capacitate, Cdx, unde L ¸si C sunt valori pe unitatea de lungime. Viteza de propagare pe un astfel de traseu se poate exprima prin relat¸ia: vp =

dx 1 =√ [m/s] dt LC

(1.106)

c 1 = √ [m/s] µ 0 εr ε0 εr

(1.107)

sau ˆın funct¸ie de viteza luminii, c: vp = √

unde ε0 ¸si µ0 sunt respectiv permitivitatea electric˘ a ¸si permeabilitatea magnetic˘ aa vidului iar εr este permitivitatea electric˘ a relativ˘ a (pentru pl˘ acile de sticlotextolit este ˆın jur de εr = 4, 5). Rezult˘ a viteza de propagare vp pentru circuitele imprimate ˆın domeniul 15cm/ns ÷ 25cm/ns respectiv timpi de propagare pe metru ˆın domeniul 7ns/m÷4ns/m. Pentru ca semnalul s˘ a parcurg˘ a traseul de lungime l ˆıntre dou˘ a port¸i de dou˘ a ori, de la ie¸sirea port¸ii de comand˘ a la intrarea port¸ii comandate ¸si reflectat ˆınapoi la ie¸sirea port¸ii de comand˘ a, este necesar timpul 2T = 2l/v p . Pentru cazurile cˆ and, Figura 1.15, fronturile de tranzit¸ie ale semnalelor logice, τ HL , τLH , sau timpii de propagare τp prin port¸i, relat¸ia 1.20, sunt de acela¸si ordin sau mai mici decˆ at 2T nu se mai poate utiliza analiza ˆın curent continuu pentru procesul de tranzit¸ie al semnalului. Se poate utiliza ¸si analiza ˆın curent continuu dar numai cˆ and procesul

152

1.6. REJECT ¸ IA ZGOMOTELOR

de transfer a ajuns ˆın regim static, adic˘ a nu mai exist˘ a variat¸ii, ceea ce practic ar corespunde parcurgerii lungimii l cam de cinci ori, 5T . Pentru analiza procesului tranzistoriu pe traseu este necesar s˘ a se utilizeze teoria liniilor de transmisie. Condit¸ia ca o linie de lungime l, care este parcurs˘ a cu viteza vp , s˘ a fie considerat˘ a linie lung˘ a, pentru un impuls cu durata τ , este exprimat˘ a prin relat¸ia τ ≤ 2l/vp = 2T ; adic˘ a durata semnalului este mai mic˘ a decˆ at timpul necesar de parcurgere dus ¸si ˆıntors a traseului de conexiune (amintim c˘ a un semnal cu cˆ at are variat¸ii mai rapide cu atˆ at spectrul s˘ au de frecvent¸a˘, B, este mai larg, ceea ce se poate exprima simplu cu relat¸ia B · T = 1, unde T este perioada semnalului respectiv). Cu cˆ at viteza port¸ilor cre¸ste cu atˆ at lungimea de traseu care determin˘ a ˆıncadrarea ˆın linie lung˘ a se mic¸soreaz˘ a, de exemplu, pentru dou˘ a port¸i cu τ p1 = 4ns, τp2 = 1ns linia lung˘ a se reduce respectiv la lungimile de tras˘ a de (4ns×15cm/ns)/2 ≥ 30cm, (1ns × 15cm/ns)/2 ≥ 7, 5cm. Un traseu de transmisie este caracterizat prin impedant¸˘ a caracteristic˘ a, Z 0 . Impedant¸a˘ caracteristic˘ a este definit˘ a ca raportul dintre tensiunea tranzistorie, v, pe linie ¸si curentul tranzistoriu, i, generat ˆın linie ¸si poate fi calculat˘ a prin relat¸ia: r L v Z0 = = [Ω] (1.108) i C Valori uzuale pentru impedant¸a caracteristic˘ a sunt: tras˘ a de circuit pe plac˘ a de textolit pentru circuit imprimat 50 ÷ 150Ω, cablu coaxial 50Ω, cablu bifilar torsodat 120Ω, cablu plat 80 ÷ 120Ω. Pe un traseu de transmisie ori de cˆ ate ori pentru impedant¸a liniei exist˘ a o discontinuitate apar reflexii ale semnalului, adic˘ a o parte din energia semnalului incident este ˆındreptat˘ a ˆınapoi, Figura 1.73-a. ˆIntr-un punct al traseului cˆ and se trece de la impedant¸a liniei Z0 la impedant¸a Zr (Z0 6= Zr )se define¸ste un coeficient de reflexie, kr , prin relat¸ia: Zr − Z 0 kr = (1.109) Zr + Z 0 Dac˘ a semnalul incident V ajunge ˆın punctul de reflexie, de coeficient de reflexie kr , atunci ˆın urma reflexiei se propag˘ a ˆınapoi pe linie un semnal reflectat v r = kr · V . Imediat dup˘ a reflexie ˆın punctul de reflexie semnalul rezultat (total), v t , prin aplicarea principiului superpozit¸iei, este egal cu semnalul incident V plus semnalul reflectat v r : vt = V + vr = (1 + kr )V

(1.110)

ˆIn punctele de traseu, cˆ and tensiunea reflectat˘ a se propag˘ a ˆın sens invers, tensiunea rezultant˘ a este egal˘ a cu tensiunea care exista ˆın acel punct, ˆın acel moment, plus tensiunea reflectat˘ a vr . Pentru plaja de impedant¸e Zr ∈ [0, ∞], care pot fi ˆıntˆ alnite ˆıntr-un punct de reflexie, rezult˘ a, din relat¸ia 1.109, pentru coeficientul de reflexie c˘ a are valori ˆın intervalul kr = [−1, 1]. Pentru o linie de transmisie se vor analiza trei cazuri (limit˘ a) de reflexie dup˘ a cum linia se termin˘ a pe impedant¸ele Zr = 0, Zr = Z0 sau Zr = ∞. • Linia de transmisie terminat˘ a ˆın scurtcircuit, Zr = 0. Rezult˘ a kr = −1, vr = kr V = −V iar vt = V − V = 0. Imediat dup˘ a reflexia semnalului incident V , ˆın punctul de terminare pe impedant¸a˘ Zr , tensiunea rezultat˘ a este zero ¸si ˆın

153

CAPITOLUL 1. PORT ¸ I LOGICE Poarta emitatoare VG

Linia de transmisie

Zs

V

I

Poarta receptoare Zr

Zo

vp

Zr

Zo V

V

vt

vr

a)

vt

vp V

Distanta

Capatul liniei

vt

Tensiunea pe linie dupa o reflexie la capat pentru :

vr

V Zr>Zo

Distanta Emitator

V Zr Z0 ; c) pentru cazul cˆ and Zr < Z0 ; d) exemplu de forme de semnale la transferul dintre dou˘ a port¸i. continuare devine zero tensiunea pe linie pe m˘ asur˘ a ce tensiunea reflectat˘ a vr ,, se propag˘ a ˆınapoi pe linie (semnalul se “stinge ). • Linia de transmisie terminat˘ a pe impedant¸˘ a caracteristic˘ a , Z r = Z0 (linie adaptat˘ a). Rezult˘ a kr = 0, vr = 0·V = 0 iar vt = V +0. Pentru o linie adaptat˘ a nu exist˘ a component˘ a reflectat˘ a, dup˘ a timpul T de propagare a semnalului pe linie pˆ an˘ a la punctul de impedant¸a˘ Zr , procesul devine stat¸ionar, iar tensiunile se pot calcula dup˘ a legea lui Ohm. • Linie de transmisie terminat˘ a ˆın gol, Zr = ∞. Rezult˘ a kr = +1, vr = kr V = V , vt = V + vr = 2V . Deoarece semnalul reflectat are amplitudinea egal˘ a cu V tensiunea pe linie devine egal˘ a cu 2V , pe m˘ asur˘ a ce tensiunea reflectat˘ a se propag˘ a ˆınapoi, ˆıncepˆ and cu punctul de reflexie (liniile care se termin˘ a pe intr˘ arile port¸ilor CMOS, care au impedant¸a de intrare foarte mare R > 10 12 Ω,

154

1.6. REJECT ¸ IA ZGOMOTELOR

pot fi considerate ca linii ˆın gol). Pentru dou˘ a cazuri Zr > Z0 ¸si Zr < Z0 , ˆın Figura 1.73-b ¸si c se reprezint˘ a simplificat modul cum se obt¸ine tensiunea total˘ a pe linie, v t , prin sumarea tensiunii incidente, V (spre poarta receptoare) cu tensiunea reflectat˘ a, v r , de c˘ atre impedant¸a de intrare, Zr , ˆın poarta receptoare. Poarta generatoare R 0=Z0/3

l/2 kr=−1/2

+

V

v1

v0

V −

l/2

R in1=Z0 kr1=0

R in2=3Z0 kr2=+1/2 v2

R in1

R in2

Poarta 1

v0

0,93V 0,89V

0,75V

1,125V v1 0,93V 0,84V 0,75V

t T

2T

3T

4T

Poarta 2 1,125 V

v2

0,84 V

t T

2T

3T

4T

t T

2T

3T

4T

Figura 1.74 Variat¸ia tensiunii pe o linie de transmisie cu puncte de reflexie la ambele capete. ˆIn Figura 1.74 este reprezentat˘ a schema echivalent˘ a a unei port¸i a c˘ arei ie¸sire, prin intermediul unei linii de transmisie de impedant¸a˘ Z 0 ¸si lungime l, comand˘ a ˆın punctul terminus intrarea unei alte port¸i. Poarta de comand˘ a este echivalat˘ a cu un generator de tensiune V ¸si o rezistent¸a˘ de ie¸sire RO = Z0 /3, iar intrarea port¸ii comandate din punctul terminus este echivalat˘ a numai prin rezistent¸a de intrare R in2 = 3Z0 . La mijlocul liniei de transmisiune, l/2, mai este conectat˘ a o poart˘ a care are rezistent¸a a de intrare Rin1 = Z0 . Se va analiza variat¸ia tensiunii vO la ie¸sirea port¸ii de comand˘ ¸si a tensiunilor v1 ¸si v2 la intr˘ arile port¸ilor comandate, cˆ and tensiunea generatorului are un salt de la zero la valoarea V . La momentul t = 0 tensiunea generatorului se aplic˘ a pe divizorul rezistiv format din R0 ¸si Z0 (semnalul nu a ˆınceput s˘ a se propage pe   linie) deci la ie¸sirea port¸ii de V comand˘ a rezult˘ a tensiunea egal˘ a cu vO = Z0 +Z0 /3 Z0 = 3/4V = 0, 75V . Dup˘ a

timpul (l/2)/vp = T /2 semnalul cu amplitudinea 3/4V ajunge la Poarta1 la a c˘ arei intrare se va aplica tensiunea v1 (T /2) = 3/4V deoarece nu exist˘ a reflexie, intrarea fiind adaptat˘ a, kr = 0. Dup˘ a ˆınc˘ a un interval T /2 semnalul ajunge la intrarea Port¸ii2 de la cap˘ atul terminus unde sufer˘ a o reflexie cu un coeficient de reflexie k r2 = (3Z0 − Z0 )/(3Z0 + Z0 ) = 1/2. Tensiunea reflectat˘ a este vr = 1/2 × 3/4V = 3/8V , iar tensiunea total˘ a aplicat˘ a port¸ii rezult˘ a v 2 (T ) = 3/4V + 3/8V = 9/8V = 1, 125V . Unda de tensiune reflectat˘ a dup˘ a intervalul de timp T /2 ajunge la Poarta1 la a c˘ arei intrare se aplic˘ a tensiunea v1 (3T /2) = 3/4V + 3/8V = 9/8V = 1, 125V , iar dup˘ a ˆınc˘ a un interval de T /2 atinge punctul de reflexie de la ie¸sirea port¸ii de comand˘ a unde coeficientul de reflexie este kr = (Z0 /3 − Z0 )/(Z0 /3 + Z0 ) = −1/2. Tensiunea reflectat˘ a ˆın acel punct este vr = (−1/2) × 3/8V = −3/16V ; tensiunea rezultat˘ a

CAPITOLUL 1. PORT ¸ I LOGICE

155

v0 (2T ) se compune din tensiunea existent˘ a 3/4V , din tensiunea incident˘ a 3/8V ¸si din tensiunea reflectat˘ a, deci v0 (2T ) = (3/4 + 3/8 − 3/16)V = 15/16V = 0, 93V . Urmeaz˘ a a doua parcurgere spre cap˘ atul terminus al traseului de c˘ atre semnalul reflectat vr = −3/16V cˆ and se obt¸in la Poarta1: v1 (5T /2) = (9/8 − 3/16)V = 15/16V = 0, 93V ¸si la Poarta2: v2 (3T ) = (9/8 − 3/16 − 3/32)V = 27/32V = 0, 84V ; ˆın punctul terminus 9/8V este tensiunea existent˘ a, −3/16V este tensiunea incident˘ a iar 1/2(−3/16)V = −3/32V este tensiunea reflectat˘ a. Se ˆıncepe a doua parcurgere ˆınapoi ˆınspre ˆınceputul traseului de c˘ atre semnalul reflectat v r = −3/32V ; se obt¸in la Poarta1: v1 (7T /2) = (15/16 − 3/32)V = 27/32V = 0, 84V , la poarta generatoare v0 (4T ) = (15/16 − 3/32 + 3/64)V = 57/64V = 0, 89V . ˆIn punctul de ˆınceput, de la poarta generatoare, se produce acum un semnal reflectat egal cu v r = (−1/2) · (−3/32)V = +3/64V . La urm˘ atoarea parcurgere ˆınspre cap˘ atul terminus se obt¸in la Poarta1: v1 (9T /2) = (27/32 + 3/64)V = 57/64V = 0, 89V ¸si la Poarta2: v 2 (5T ) = (27/32 + 3/64 + 3/128)V = 117/128V = 0, 91V ¸si un semnal reflectat v r = 3/128V . ˆIn final, se ajunge ˆın regimul stat¸ionar cˆ and tensiunea aplicat˘ a la cap˘ atul linei de transmisiuni v2 (∞) = (V /(Z0 /3 + Z0 + 3Z0 )) × (Z0 + 3Z0 ) = 0, 92V . Se observ˘ a din diagramele din Figura 1.74 c˘ a tensiunile v 1 , v2 , intr˘ arile port¸ilor comandate, pot avea valori mai mari decˆ at V . Cˆ and la intrarea liniei de transmisiune se aplic˘ a un salt de la 1 logic la 0 logic pot ap˘ area la intrarea port¸ilor comandate tensiuni (negative) sub nivelul masei. Protect¸ia ˆımpotriva acestor supratensiuni la intrarea port¸ilor se face prin diode de desc˘ arcare ca ˆın Figura 1.22-c ¸si Figura 1.70-a. ˆIn plus, ˆın intervalele scurte cˆ and diodele de pe intrare conduc realizeaz˘ a o impedant¸a˘ de intrare la mas˘ a de valoare foarte mic˘ a, deci un coeficient de reflexie care tinde spre −1, ceea ce duce la atenuarea regimului tranzistoriu. Eliminarea reflexiilor pe liniile de transmisie se poate realiza ˆın dou˘ a modalit˘ a¸ti. Prima modalitate const˘ a ˆın conectarea la cap˘ atul terminus a unui circuit terminator (Th´ evenin) format din rezistent¸ele R1 ¸si R2 ca ˆın Figura 1.75-a. (Teorema Th´ evenin: O ret¸ea liniar˘ a ¸si activ˘ a, cu dou˘ a borne de ie¸sire A ¸si B ¸si f˘ ar˘ a cuplaje inductive cu exteriorul poate fi substituit˘ a cu un generator ideal de tensiune V T hev ˆınseriat cu o rezistent¸a˘ RT hev : VT hev este egal˘ a cu valoarea tensiunii la bornele ret¸elei la mers ˆın gol VT hev = VAB0 , iar RT hev = VT hev /IABsc . IABsc este curentul generat de ret¸ea cˆ and bornele A ¸si B sunt scurtcircuitate.) Schema echivalent˘ a Thevenin este   deVCC senat˘ a ˆın Figura 1.75-b. Rezult˘ a pentru tensiunea echivalent˘ a V T hev = R1 +R2 R2 , iar Isc = VCC /R1 deci RT hev = VT hev /Isc = (R1 · R2 )/(R1 + R2 ) adic˘ a cele dou˘ a ramuri ˆın paralel. ˆIn alegerea valorilor de rezistent˘ a ale terminatorului se ¸tine seama de urm˘ atoarele [Wakerly 0 00]: - Valoarea rezistet¸ei RT hev trebuie s˘ a fie cˆ at mai aproape de Z0 ; - Valoarea tensiunii VT hev trebuie aleas˘ a ˆıncˆ at s˘ a optimizeze curentul absorbit ¸si generat de poarta care comand˘ a linia de transmisie. Pentru port¸ile simetrice pe ie¸sire, care au valori egale pentru curentul absorbit ¸si generat (cazul port¸ilor CMOS dar nu ¸si cele CMOS compatibile TTL), se recomand˘ a V T hev = (VOL + VOH )/2. Pentru port¸ile asimetrice pe ie¸sire la care I OL > IOH (port¸ile TTL ¸si CMOS compatibile TTL), se recomand˘ a VT hev > (VOL + VOH )/2, prin aceasta se ajut˘ a poarta (cˆ and ie¸sirea sa este ˆın H) printr-o generare suplimentar˘ a de curent de c˘ atre terminator pe linia comandat˘ a de poart˘ a, dar cu costul cre¸sterii curentului pe care trebuie s˘ a-l absoarb˘ a poarta de pe linie ˆın starea L;

156

1.6. REJECT ¸ IA ZGOMOTELOR

V CC R1

Poarta generatoare

Linie de transmisie

V Thev

R2

a)

Zo − R i

Ri

+ −

b)

Porti receptoare

Poarta generatoare +

Terminator Thevenin R Thev

Linie de transmisie

− Ri Porti receptoare c) V CC

d)

V CC

R1

R1

R2

R2

R

R

e)

Figura 1.75 Modalit˘ a¸ti de adaptare a liniilor: a) adaptarea unei linii de magistral˘ a prin conectarea la cap˘ at a unui terminator Thevenin; b) schema echivalent˘ aa terminatorului; c) adaptarea ie¸sirii unei port¸i (la linia de magistral˘ a) prin ˆınserierea unei rezistent¸e de valoare Z0 − Ri ; d,e) variante de adaptare a conexiunilor dintre dou˘ a port¸i.

- Cˆ and linia de transmisie este o linie de magistral˘ a tip TSL va trebuie ca, atunci cˆ and magistrala nu este coamandat˘ a de c˘ atre nici un emit¸a˘tor, tensiunea V T hev a terminatorului s˘ a fixeze un potent¸ial pe linie care s˘ a fie ˆın intervalele de tensiuni de ie¸sire garantate (¸si nu ˆın intervalul de tensiuni interzise). Dac˘ a tensiunea fixat˘ a pe linia de magistral˘ a este aproape de tensiunea de pragul de comutat¸ie VT (Definit¸ia 1.14 ) a port¸ilor receptoare, atunci pot s˘ a apar˘ a oscilat¸ii pe linie sau curent¸ii la intr˘ arile port¸ilor receptoare s˘ a creasc˘ a cu mult peste valorile normale. (Mai recent, (port¸ile) buffere de magistrale au deja integrat pe ie¸sire un circuit activ de ment¸inere – bus holder, Figura 1.46-e – a nivelului pe linia de magistral˘ a pentru intervalele cˆ and magistrala este ˆın HZ.) Valori uzuale pentru rezistent¸ele terminatorului sunt cele standard ˆın plaja 150, 220, 270, 330, 390, 470Ω. O pereche, aproape standard, pentru aplicat¸ii TTL este R1 = 220Ω, R2 = 330Ω pentru care se obt¸ine RT hev = 132Ω ¸si VT hev = 3V , iar poarta care comand˘ a linia trebuie s˘ a absoarb˘ a ˆın starea L un curent egal cu (3V /132Ω) =

CAPITOLUL 1. PORT ¸ I LOGICE

157

22, 7mA ¸si nu trebuie s˘ a genereze curent ˆın starea H deoarece tensiunea H este ment¸inut˘ a de terminator. Dezavantajul principal al terminatoarelor Th´evenin este consumul permanent de putere; uneori se utilizeaz˘ a ca terminator un circuit asimetric ˆın care exist˘ a numai R1 iar R2 = ∞. A doua modalitate de eliminare a reflexiilor const˘ a ˆın ˆınserierea unei rezistent¸e, ˆın linia de transmisie imediat ˆın apropierea port¸ii care comand˘ a linia, de valoare R = Z0 −Ri , Figura 1.75-c. Pentru generatorul de tensiune al port¸ii, ˆın schema echivalent˘ a, apare o ˆınc˘ arcare de 2Z0 (adic˘ a Ri + Z0 − Ri + Z0 = 2Z0 ). Aceast˘ a modalitate este eficient˘ a pentru port¸ile la care Ri rezistent¸a de ie¸sire ˆın stare H ¸si rezistent¸a de ie¸sire ˆın stare L sunt de valori apropiate (cazul port¸ilor CMOS), iar port¸ile comandate sunt toate grupate spre cap˘ atul terminus al liniei de transmisie. Pentru impedant¸a caracteristic˘ a ˆın intervalul Z0 = 50 ÷ 150Ω se recomand˘ a Ri = 15 ÷ 40Ω. Pentru port¸ile TTL(LS) rezistent¸ele de ie¸sire sunt: ˆın jur de 30Ω ˆın stare L ¸si ˆın jur de 300Ω ˆın stare H, iar cele de intrare ˆın jur de 100Ω pentru V in ≤ 1, 5V ¸si 10KΩ pentru Vin > 1, 5V . Circuitele CMOS prezint˘ a o impedant¸a˘ foarte mare pe intrare care pentru o linie de transmisiuni este echivalent cu o terminare ˆın gol. Din dispersia acestor valori se poate constata c˘ a este foarte greu a se realiza o adaptare pentru toate conexiunile dintre dou˘ a port¸i. La circuitele actuale (complexe) care funct¸ioneaz˘ a la frecvent¸e ridicate (CPLD, FPGA, memorii, microprocesoare, vezi capitolul 4) exist˘ a posibilitatea de a ajusta impedant¸a de ie¸sire a unui driver care comand˘ a o linie ¸si la fel impedant¸a de intrare la un circuit receptor care recept¸ioneaz˘ a semnalul de la o linie. Aceast˘ a ajustare se face electronic, ˆın funct¸ie de valoarea impedant¸ei caracteristice Z 0 , se introduc sau se scot rezistent¸e fixe ˆıncˆ at rezistent¸a echivalent˘ a rezultat˘ a s˘ a coincid˘ a cu Z 0 . Fizic, introducerea sau scoaterea de rezistent¸e se realizeaz˘ a prin ˆınserierea cu fiecare rezistent¸a˘ fix˘ a a unui tranzistor care se comand˘ a respectiv ˆın conduct¸ie sau ˆın blocare. Se poate ca ¸si pentru conexiunile dintre port¸i s˘ a se adopte modalit˘ a¸tile de adaptare utilizate pentru liniile de magistral˘ a ca ˆın Figura 1.75-d, 1.75-e, dar de cele mai multe ori se fac conexiuni ˆıntre port¸i f˘ ar˘ a a se face o astfel de adaptare. Pentru astfel de situat¸ii de neadaptare a conexiunilor dintre port¸i se recomand˘ a ca pe durata fronturilor de tranzit¸ie ale semnalelor de comand˘ a s˘ a se asigure ca linia de conexiune, de lungime l, s˘ a fie parcurs˘ a de cel put¸in 5 ori. Se consider˘ a c˘ a dup˘ a cinci parcurgeri (5T ) ,, regimul tranzitoriu se stinge; ¸si ˆın acest fel rezult˘ a “crestat variat¸ia de semnal doar ˆın intervalul tranzitoriu, Figura 1.74, nu ¸si pe durata de regim static. Conform acestei recomand˘ ari, considerˆ and vp = 20cm/ns pentru cinci parcurgeri pe durata frontului de c˘ adere τHL (uzual τHL < τLH ), rezult˘ a lungimea maxim˘ a lmax ≤ (vp · τHL )/5 a conexiunii neadaptate ˆıntre dou˘ a port¸i, dar pentru care se asigur˘ a o funct¸ionare corect˘ a. Aplicˆ and aceast˘ a recomandare rezult˘ a urm˘ atoarele valori maxime pentru trasee: ECL, τHL ≈ 2ns, lmax = 8cm; TTL-S, τHL ≈ 3 ÷ 4ns, lmax = 12 ÷ 16cm; TTL, τHL = 5 ÷ 7ns, lmax = 20 ÷ 30cm. Se estimeaz˘ a c˘ a ˆın viitor ¸si ˆın interiorul unui sistem digital, similar ca ˆın telecomunicat¸ii, ˆıntre circuitele integrate chiar ¸si ˆın interiorul circuitelor integrate, interconectarea va fi realizat˘ a prin trase pentru semnal optic. Avantajul fizic al semnalului optic fat¸a˘ de cel electric este imunitatea la perturbat¸ii electromagnetice ¸si eliminarea constantelor de timp datorit˘ a ˆınc˘ arc˘ arii capacitive. Estim˘ arile zic c˘ a, fat¸a˘ de 2002, va fi curent˘ a comunicat¸ia optic˘ a ˆıntre cipuri ˆın 5-10 ani, iar cea ˆın interiorul cipului cam ˆın jur de 15 ani.

158

1.6. REJECT ¸ IA ZGOMOTELOR

1.6.2.3

Zgomotul datorat cuplajului electromagnetic (diafonia)

Diafonia (cross-talk), adic˘ a induct¸ia semnalului dintr-un traseu ˆın altul vecin pe durata fronturilor, este o consecint¸a˘ a cuplajului inductiv ¸si capacitiv dintre trasee. Evident, cu cˆ at frecvent¸a semnalului printr-un traseu este mai ridicat˘ a cu atˆ at tensiunea indus˘ a ˆın traseele vecine poate fi de valoare mai mare. Definit¸ia 1.19 Nivelul de diafonie, D, este raportul dintre tensiunea (parazit˘ a) indus˘ a ˆıntr-un traseu (perturbat) ¸si tensiunea care o genereaz˘ a (perturbatoare). D=

Vperturbat˘a Vperturbatoare



Se consider˘ a, ˆın Figura 1.76, dou˘ a trasee unul compus din Poarta1 ce comand˘ a, pe o linie cu impedant¸a caracteristic˘ a Z0 , intrarea Port¸ii2 ¸si al doilea traseu compus din Poarta3 ce comand˘ a Poarta4 pe o linie cu impedant¸a caracteristic˘ a Z 0 ; ˆıntre cele dou˘ a trasee exist˘ a o impedant¸a˘ de cuplaj Z c . Cuplajul electromagnetic realizat prin impedant¸a de cuplaj Zc apare ca o rezultant˘ a a cuplajelor formate prin capacit˘ a¸tile distribuite Cm ¸si cuplajului prin inductivit˘ a¸tile distribuite L. Pentru analiza cuplajului electromagnetic al celor dou˘ a trasee se impune ca impedant¸a de ie¸sire a port¸ilor de comand˘ a Zout s˘ a ˆındeplineasc˘ a condit¸ia Zout  Z0 (poarta este un generator ideal de tensiune). Atunci, cu aceast˘ a condit¸ie, tensiunea indus˘ a V I2 ˆın linia 1-2, ce se aplic˘ a la Poarta2, de c˘ atre tensiunea din linia 3-4, V O3 , generat˘ a la ie¸sirea port¸ii 3 va fi exprimat˘ a prin relat¸ia: VI2 =

VO3 VI2 1 →D= = 1 + Zc /Z0 VO3 1 + Zc /Z0

(1.111)

Calitativ, relat¸ia 1.111, sugereaz˘ a ce modalit˘ a¸ti pot duce la atenuarea diafoniei:

CL

Zo

1 Poarta 1 C m Poarta 3 Zo

3 CL V O3

CL L M

CL L

Cm

L

M

Cm

CL

CL L

L

L CL

Zo

Cm M Linii paralele Zc (cuplate L L electromagnetic) Zo

V I2 L

2 Poarta 4

M L

ZI

4

Poarta 2

CL

Figura 1.76 Explicativ˘ a pentru procesul de generare a diafoniei

ZI

CAPITOLUL 1. PORT ¸ I LOGICE

159

• M˘ arirea impedant¸ei de cuplaj Zc prin ˆındep˘ artarea traseelor (distant¸a uzual˘ a ˆıntre traseele de circuit imprimat este de 0, 2÷0, 4mm), sau mic¸sorarea lungimii port¸iunilor de paralelism ˆıntre trasee sau ambele simultan; • Mic¸sorarea impedant¸ei caracterisitice Z 0 prin intercalarea unei trase de mas˘ a ˆıntre trasele de circuit cuplate, sau utilizarea unui plan de mas˘ a; • Utilizarea unor materiale care prezint˘ a un coeficient de permeabilitate magnetic˘ a µr care se diminueaz˘ a odat˘ a cu cre¸sterea frecvent¸ei semnalului, deci se reduce cuplajul inductiv (polietilene utilizate pentru realizarea cablurilor plate); • Mic¸sorarea spectrului de frecvent¸a˘ al semnalelor prin reducerea pantei fronturilor de comutat¸ie. Aceasta se poate obt¸ine prin conectarea la ie¸sirea port¸ilor a unor condensatoare de ordinul zeci ÷ sute pF . Modalitatea aceasta este referit˘ a ca reducerea lui di/dt, care intervine ˆın relat¸ia tensiunii induse V = −L di/dt. Cre¸sterea frecvent¸ei semnalelor ˆın sistemele digitale (la nivelul anului 2004 s-a ajuns la frecvent¸a de ceas pentru microprocesoare ˆın jur de 3GHz, perioada fiind de 333ps) creaz˘ a dificult˘ a¸ti ˆın realizarea magistralelor; o magistral˘ a de 64 de bit¸i are 64 de trasee care merg ˆın paralel pe lungimi destul de mari. Pentru astfel de aplicat¸ii exist˘ a circuite de comand˘ a (drivere de magistral˘ a) care transmit pe magistral˘ a doar fronturile semnalelor digitale dar cu o pant˘ a di/dt ≈ 1; teoretic, un front al unui semnal digital (ideal) este di/dt → ±∞. Structura de driver de magistral˘ a, din Figura 1.77-a, este de fapt un driver CMOS TSL, Figura 1.46-d, a c˘ arei tensiune de ie¸sire la linia de magistral˘ a, cˆ and este ˆın stare HZ, este fixat˘ a la nivelul median VDD /2 prin divizorul echilibrat format cu valori de impedant¸a˘ egale cu 2Z0 . Un semnal digital x(t) ¸si semnalul negat dar ˆıntˆ arziat cu 3τp , x(t − 3τp ), obt¸inut prin ˆınserierea a trei inversoare, aplicate la intrarea unei port¸i NAND va genera la ie¸sire un impuls negativ de l˘ a¸time 3τ p , dar numai pe fronturile pozitive ale semnalului x(t). Similar, acelea¸si semnale aplicate la intrarea unei port¸i NOR va genera la ie¸sire un impuls pozitiv de l˘ a¸time 3τ p dar numai pe fronturile negative ale semnalului x(t), Figura 1.77-b. Pe frontul pozitiv al semnalului de intrare x(t) tranzistorul pMOS intr˘ a ˆın conduct¸ie iar tensiunea de ie¸sire v O cre¸ste liniar de la VDD /2 la VDD /2+V∆ iar cˆ and tranzistorul se blocheaz˘ a scade liniar de la V DD /2+V∆ la VDD /2. Similar, pe frontul negativ al semnalului x(t) va conduce tranzistorul nMOS iar tensiunea de ie¸sire va avea variat¸ia liniar˘ a de la V DD /2 la VDD /2 − V∆ , iar la blocarea tranzistorului, de la VDD /2 − V∆ la VDD /2. Semnalul vO (t) cu variat¸ii liniare cu panta ˆın jur de unitate, aplicat pe o linie de magistral˘ a, va induce ˆın liniile vecine tensiuni de valoare mult mai mic˘ a decˆ at un semnal cu fronturi foarte abrupte. La recept¸ie un circuit trebuie s˘ a sesizeze sensul frontului semnalului x(t) ¸si s˘ a refac˘ a amplitudinea ¸si durata acestui semnal, adic˘ a o deplasare de la V DD /2 fie la VDD fie la VSS . Exemplul 1.31 a) Dac˘a liniile de transmisiune sunt realizate din conductori de cupru cu φ = 1mm, a¸sezat¸i la o distant¸a ˘ mai mic˘ a de 1mm unul fat¸a ˘ de cel˘ alalt ¸si la o distant˘ a mai mare de 20mm fat¸a ˘ de orice conductor de mas˘ a impedant¸ele vor avea valorile Z0 = 200Ω, Zc = 80Ω rezult˘ a un nivel de diafonie D1 = 0, 71. Acest raport zgomot semnal este inacceptabil ˆıntrucˆ at nici un circuit standard nu are o margine de zgomot mai mare decˆ at o treime din valoarea saltului logic de tensiune.

160

1.6. REJECT ¸ IA ZGOMOTELOR 3τ p

V DD vB

x(t)

x(t− 3 τ p ) vA

2Zo Linie de vO magistrala Zo 2Zo

a) x(t)

3τ p

x(t− 3 τ p ) vB

vA tf

tr

vO + V∆

+ V∆

V DD /2

−V∆ t

b)

Figura 1.77 Driver de magistral˘ a cu di/dt redus: a) structur˘ a circuit; b) explicativ˘ a prin diagrame de semnal pentru obt¸inerea pe linia de magistral˘ a a unui semnal numai cu panta egal˘ a cu ±1. b) Dac˘ a ˆın exemplul a) se introduce un plan de mas˘ a la distant¸a de 1mm de fiecare conductor se obt¸in valorile Z5 0Ω, Zc = 125Ω iar nivelul de diafonie este D2 = 0, 28. Valoarea 0.28 pentru diafonie este destul de mare, se apropie prea mult de valoarea maxim˘ a de 30 % a marginii de zgomot ˆın curent continuu de la port¸ile CMOS. c) Dac˘ a atˆ at linia emit¸a ˘toare cˆ at ¸si cea receptoare se realizeaz˘ a din cablul torsodat impedan-´tele au valorile Z0 = 80Ω, Zc = 400Ω ¸si diafonia este D3 = 0, 16. Acest raport zgomot/semnal este satisf˘ ac˘ ator pentru toate circuitele TTL ¸si TTLS.

1.6.2.4

Zgomotul datorit˘ a curent¸ilor de alimentare

Curentul absorbit de o poart˘ a de la sursa de alimentare, ˆın timp, nu are o valoare constant˘ a. ˆIn oscilograma formei de variat¸ie a curentului de alimentare apar evident vˆ arfuri cu amplitudinea destul de mare (spikes, glitches) ˆın momentele de comutat¸ie H − L ¸si L − H ale port¸ii, Figura 1.78. Aceste vˆ arfuri de curent din perioadele tranzitorii sunt cauze generatoare de zgomot ˆın dou˘ a modalit˘ a¸ti: 1- prin induct¸ie pot produce tensiuni parazite ˆın circuitele vecine; 2- mic¸soreaz˘ a tensiunea de alimentare a port¸ii cu valoarea c˘ aderii de tensiune provocat˘ a pe impedant¸a traseului de alimentare

161

CAPITOLUL 1. PORT ¸ I LOGICE

(mai ales pe componenta inductiv˘ a a acestui traseu). La valoarea total˘ a a curentului absorbit de o poart˘ a contribuie trei componente una de regim stat¸ionar ¸si dou˘ a de regim tranzitoriu. 1. Curent¸ii absorbit¸i ˆın regim stat¸ionar (de curent continuu). Valorile curent¸ilor printr-o poart˘ a ˆın starea H, ICCH , ¸si ˆın starea L, ICCL , nu sunt egali, deci pe circuitul de alimentare, ˆıntre cele dou˘ a st˘ ari, poarta provoac˘ a variat¸iile de curent ∆I = ICCL − ICCH care prin c˘ aderile de tensiune de pe inductivit˘ a¸tile parazite L ale traseului ¸si ale pinilor circuitului mic¸soreaz˘ a tensiunea de alimentare V CC cu valoarea ∆V : ∆I [V ] (1.112) ∆V = L · ∆T Remediu pentru aceste variat¸ii de tensiune este un condensator de desc˘ arcare C d conectat chiar pe terminalele VCC /VDD ¸si mas˘ a ale port¸ii, condensator care consti,, tuie un “rezervor de energie ¸si care va livra pentru poart˘ a necesarul de curent ∆I ˆın momentele cˆ and tensiunea de alimentare scade. Impunˆ and o anumit˘ a c˘ adere de tensiune ∆V , cˆ and este necesar un curent suplimentar ∆I ˆıntr-un interval de timp ∆T , valoarea minim˘ a a condensatorului Cd se determin˘ a cu relat¸ia: vO

τ LH

τ HL

V OH

V OL

t

iC I CCL I CCH

t

V CC /V DD t

Figura 1.78 Vˆ arfurile de curent de alimentare la tranzit¸iile H − L ¸si H − L produc variat¸ii ˆın tensiunea de alimentare

Cd =

∆I [F ] ∆V /∆T

(1.113)

De exemplu, pentru circuitul TTL-LS 7400 (patru port¸i NAND) consumul total al celor patru port¸i cˆ and sunt alimentate la VCC = 5V este de ICCL = 2, 4mA ¸si ICCH = 0, 8mA. Dac˘ a presupunem c˘ a toate port¸ile sunt comandate simultan la aceea¸si frecvent¸a de 1M Hz, pentru ca tensiunea de alimentare a circuitului s˘ a nu varieze cu mai mult de 5% (∆V = 5%VCC = 0, 25V ), este necesar˘ a o capacitate de desc˘ arcare Cd = (2, 4mA − 0, 8mA)/(0, 25V /0, 5 · 1µs) = 3, 2nF .

162

1.6. REJECT ¸ IA ZGOMOTELOR

2. Curent¸ii de ˆınc˘ arcare ¸si desc˘ arcare a capacit˘ a¸tilor ˆın momentele de comuta¸tie. Ace¸sti curent¸i determin˘ a peste 90% din puterea disipat˘ a pe o poart˘ a CMOS, dar sunt destul de redu¸si pentru tehnologia bipolar˘ a. Curentul de ˆınc˘ arcare a sarcinii, la comutarea L − H, ¸si curentul de desc˘ arcare a sarcinii, la comutarea H − L sunt egali numai cˆ and Wp = 2Wn ( pentru µn = 2µp ). De exemplu, pentru circuitul 74HCT00 (patru port¸i NAND) curentul de ˆınc˘ arcare ∆ILH ¸si curentul de desc˘ arcare ∆IHL al circuitului, cˆ and port¸ile sunt comandate simultan pentru un salt logic de 3, 6V cu o vitez˘ a de cre¸stere de 0, 25V /ns ¸si de 0, 4V /ns pentru descre¸stere, se pot determina (cu o aproximat¸ie destul de bun˘ a pentru aplicat¸iile practice) cu relat¸ia 1.112 ∆ILH = 4 × 50pF × 0, 25 · 109 V /s = 5mA ∆IHL = 4 × 50pF × 0, 4 · 109 V /s = 8mA iar timpii de cre¸stere ∆tLH ¸si descre¸stere ∆tHL rezult˘ a ∆tLH = 3, 6V /(0, 25V /ns) = 14, 4ns ∆tLH = 3, 6V /(0, 4V /ns) = 9ns 3. Curent¸ii de scurtcircuit. Ace¸sti curent¸i care apar pe traseele dintre VDD /VCC ¸si mas˘ a ˆın momentele de comutat¸ie, atˆ at ˆın tehnologia CMOS cˆ at ¸si bipolar˘ a, prin durata lor scurt˘ a pot constitui surse de zgomot. Variat¸iile de curent datorit˘ a regimului tranzitoriu, punctul 2 ¸si 3, pot ajunge la valori mai mari decˆ at 10mA/ns care pe o inductivite de 0, 1µH(valori tipice pentru traseele de circuit imprimat sunt 0, 01 ÷ 0, 02µH/cm), conform relat¸iei 1.112 vor produce c˘ aderi de tensiune ∆V = 0, 1µH × 10mA/ns = 1V . Efectul acestor variat¸ii de curent este acela¸si ca ¸si cel produs de al variat¸iilor curentului de alimentare cu deosebirea c˘ a de data aceasta spectrul de frecvent¸e este mult mai ˆınalt. Atenuarea zgomotelor generate de curent¸ii de alimentare se poate realiza prin conectarea pe pinii de alimentare al fiec˘ arui circuit integrat a unui condensator ceramic de ordinul 10÷100nF (pentru reject¸ia frecvent¸elor ˆınalte) ¸si a unui condensator de decuplare cu tantal de 0, 33µF (pentru frecvent¸e joase) la cˆ ate un grup de 3–4 circuite integrate. De fapt, ˆın aceea¸si manier˘ a, dar de valori mai mari, se face decuplarea circuitului de alimentare la intrarea pe placa de circuit imprimat. Totu¸si, numai decuplarea de la intrarea pl˘ acii de circuit imprimat nu este suficient˘ a deoarece inductivit˘ a¸tile parazite ale traseelor, de la intrare pˆ an˘ a la circuit, ˆımpiedic˘ a livrarea rapid˘ a de curent spre circuite ¸si atunci aceast˘ a decuplare local˘ a se repet˘ a ¸si ˆın apropierea circuitului. Exemplul 1.32 S˘a se calculeze c˘aderea de tensiune produs˘a pe o inductivitate L = 2nH (de exemplu inductivitatea firului care conecteaz˘ a zona de pad la pinul circuitului) de c˘ atre curentul de desc˘ arcare al sarcinii capacitive CL = 100pF de la ie¸sirea unui buffer CMOS conectat la pad. Se consider˘ a sarcina ˆınc˘ arcat˘ a la VDD = 5V iar τHL = 5ns. Solut¸ie. ˆIn Figura 1.79 este trasat˘ a variat¸ia real˘ a a curentului de desc˘ arcare cu linie continu˘ a, iar cu linie ˆıntrerupt˘ a se estimeaz˘ a o variat¸ie liniar˘ a. Pentru acest caz relat¸ia 1.113 se scrie sub forma td = CL · VDD Idmax · 2

163

CAPITOLUL 1. PORT ¸ I LOGICE

¸si de asemenea, din estimarea de variat¸ie liniar˘ a pentru curentul id , se poate scrie relat¸ia de variat¸ie a curentului   did 2Idmax Id ≥ max = dtd max τHL /2 τHL

id I dmax

td = 0

t d = τ HL / 2

rezult˘ a relat¸ia   4CL VDD did ≥ 2 dtd max τHL

td

t d = τ HL

Introducˆ and valorile numerice se obt¸ine

Figura 1.79 Explicativ˘ a pentru Exemplul 1.32



did dtd



max



4 × 100 × 10−12 × 5 (5 × 10−9 )2

= 80mA/ns ∆V = L



did dtd



max

≥ 160mV

Dac˘ a poarta devine mai rapid˘ a de dou˘ a ori τHL = 2, 5ns c˘ aderea de tensiune se m˘ are¸ste de patru ori 4 × 160mV = 0, 64V .

PROBLEME P1.1 Utilizˆ and axiomele ¸si teoremele algebrei Booleene, s˘ a se demonstreze analitic urm˘ atoarele identit˘ a¸ti ¸si apoi s˘ a se deduc˘ a tabelul de adev˘ ar al expresiei respective: a) B + AC = (A + B + C)(A + B + C)(A + B + C); b) AD + CD + AB = A CD + AB C + ABC + ACD; c) D(A + +C + D)(A + B + C + D) = (D + AC + AC)(A C + BD + AC). P1.2 S˘ a se demonstreze urm˘ atoarele identit˘ a¸ti ¸si apoi s˘ a se deduc˘ a tabelul de adev˘ ar al expresiei respective: a) AB + (A + B)C = AB + (A ⊕ B)C; b) A ⊕ B = B ⊕ A = A ⊕ B a XOR); A ⊕ 0 = A; A ⊕ A = 1; c) A ⊕ 1 = A (inversorul comandat realizat cu o poart˘ A ⊕ A = 0; d) A ⊕ B = AB + A B; e) A ⊕ B = A ⊕ B = A ⊕ B; f) ABC + A B + ABCD = ABC + A B + D; h) ABC(BD + CDE) + AC = A(C + BDE); g) ABC + AB C + A B C + ABC + ABC = BC + AB + B C. P1.3 S˘ a dezvolte urm˘ atoarele expresii (utilizˆ and teoremele lui De Morgan): a) AB(C + D); b) AB(CD + EF ); c) (A + B + C + D) + ABCD;

164

1.6. REJECT ¸ IA ZGOMOTELOR

d) (A + B + C + D) (AB CD); e) AB(CD + EF )(AB + CD) f) (ABC) (EF G) + (HIJ) (KLM ); g) (A + BC + CD) + BC h) (A + B) (C + D) (E + F ) (G + H). P1.4 Folosind port¸ile setului complet XOR, AN D s˘ a se implementeze operatorii: NOT, AND, OR, NAND, NOR, XNOR. Se vor utiliza simbolurile ANSI/IEEE. P1.5 Care port¸i din Figura urm˘ atoare (a, b, c, d) nu funct¸ioneaz˘ a corect? Oscilogramele semnalelor de pe intr˘ ari ¸si de pe ie¸siri sunt prezentate in aceea¸si figur˘ a. A B y

A B y

A B

y

A B y

y a) A B c)

A B y

y

b) y y

A B

A B y

y d)

P1.6 S˘ a se implementeze operatorul sum˘ a modulo doi (XOR) pentru dou˘ a variabile numai cu port¸i N AN D sau numai cu port¸i N OR cu dou˘ a intr˘ ari. P1.7 S˘ a se construiasc˘ a tabelele de adev˘ ar ¸si reprezent˘ arile simbolice pentru implementarea operatorului sum˘ a logic˘ a de dou˘ a variabile (OR2) considerˆ and toate variantele de activare ale semnalelor de intrare ¸si de ie¸sire. P1.8 S˘ a se explice cum se procedeaz˘ a cu intr˘ arile neutilizate ale unei port¸i logice astfel ˆıncˆ at acestea s˘ a nu duc˘ a la o funct¸ionare incorect˘ a a port¸ii. P1.9 Pentru port¸ile TTL, impedant¸ele de ie¸sire sunt ˆın jur de 30 Ω ˆın starea L ¸si ˆın jur de 300Ω ˆın starea H. Impedant¸a caracteristic˘ a a traseelor de circuit pe placa de sticlotextolit are valori cuprinse ˆıntre Z 0 = 50 ÷ 150Ω. ˆIn scopul de a se evita reflexiile pe liniile de conectare ˆıntre port¸i,pentru realizarea condit¸iei Z 0 = Zr (impedant¸a pe care se realizeaz˘ a reflexia), se m˘ are¸ste artificial impedant¸a de ie¸sire a port¸ii care comand˘ a linia prin inserarea, la ie¸sirea acesteia, a unei rezistent¸e R. S˘ a se determine valoarea maxima a rezistent¸ei R. P1.10 S˘ a se comande o diod˘ a electroluminiscent˘ a (LED) cu o poart˘ a 74HC MOS ¸si 74LS TTL. Parametrii de catalog ai acestor port¸i sunt dat¸i ˆın tabelul de la P1.12. Punctul de funct¸ionare al LED-ului ˆın starea de luminiscent¸a are coordonatele I D = 8mA, UD = 1, 6V . P1.11 S˘ a se calculeze valorile rezistent¸elor R a ¸si Rb ale circuitului din figura (a) astfel ca, atunci cˆ and ambele comutatoare sunt deschise, pe intr˘ arile A ¸si B s˘ a fie ,, ,, asigurate nivelele logice “0 ¸si “1 . Care este puterea disipat˘ a de aceste rezistent¸e cˆ and comutatoarele sunt deschise ¸si ˆınchise? Valorile de catalog ale parametrilor port¸ii sunt date ˆın tabelul de la P1.12.

165

CAPITOLUL 1. PORT ¸ I LOGICE

V CC Ra 74LSTTL

A

A

B

C

D

B

V CC

Rb

a)

b)

P1.12 S˘ a se determine dac˘ a o poart˘ a 74HCMOS poate comanda patru port¸i 74LS TTL ¸si dac˘ a o poart˘ a 74LS TTL poate comanda patru port¸i 74HC MOS. Valorile tipice de catalog ale parametrilor port¸ilor logice sunt date ˆın tabelul urm˘ ator: VIH(min) Tip 74HCMOS 3,5 V 74LSTTL 2V

VIL(max) VOH(min) VOL(max) I IH(max) I IL(max) I OH(max) I OL(max) 1V 4,9 V 0,1 V 1 µΑ −1 µΑ 40 µΑ 4 mA 0,8 V 2,7 V 0,4 V 20 µΑ −400 µΑ −400 µΑ 8 mA

P1.13 Pentru port¸ile inversor ale circuitului b) (desenat la P1.11) timpii de propagare sunt: τLH = 6ns(min)/10ns(max), τHL = 4ns(min)/6ns(max), τr = τf = 1ns. Presupunˆ and valorile minime pentru timpii de propagare,s˘ a se determine timpul total de propagare prin circuit pentru comanda intr˘ arii: 0 → 1, 1 → 0. Considerˆ and c˘ a fiecare inversor are timpul de propagare situat oriunde ˆıntre valoarea minim˘ a ¸si cea maxim˘ a, s˘ a se schit¸eze formele de und˘ a ˆın punctele B,C ¸si D cˆ and semnalul pe intrarea A are tranzit¸iile: 0 → 1, 1 → 0. P1.14 Pentru circuitul din figura de mai jos (a) se consider˘ a, pentru toate port¸ile, τPHL = τPLH = τp . S˘ a se determine expresiile logice pentru variabilele notate ˆın figur˘ a. Discut¸ie. T ¸ inˆ and cont de timpii de propagare, s˘ a se descrie prin forme de und˘ a valorile variabilelor logice pe durata regimurilor tranzitorii. Discut¸ie. A

_

C

C B

_

A

A _

B A

A

D

B

_

A

A _

B

A a)

b)

P1.15 Pentru circuitele din figura b) (de la P1.14), s˘ a se determine formele de und˘ a pentru variabila B cˆ and variabila A are o variat¸ie sub forma de semnal dreptunghiular de perioad˘ a T = 10τp cu coeficientul de umplere 50%. Se consider˘ a τ p = τPHL = τPLH , pentru toate port¸ile circuitelor. S˘ a se interpreteze formele de und˘ a pentru variabila

166

1.6. REJECT ¸ IA ZGOMOTELOR

B, similar cu interpretarea de la problema 1.13. P1.16 Pentru comanda port¸ii NAND 74HC00 de la ie¸sirea unei port¸i NAND cu colectorul ˆın gol, 74LS01, se utilizeaz˘ a interfat¸area din figura (a) de mai jos. S˘ a se calculeze valoarea rezistent¸ei de pull-up R p astfel ˆıncˆ at s˘ a se obt¸in˘ a: a) un consum minim de putere pe Rp ; b) un timp de tranzit¸ie minim la intrarea port¸ii CMOS;

V CC Rp "1" V1

74HC00

74LS01

Cp

I

R1

VI

2K VA

A R2

VO

10K

a)

b)

P1.17 S˘ a se determine caracteristica de transfer V 0 = f (V1 ) pentru circuitul din figura b) (de la P1.16) de mai sus realizat cu port¸i inversoare CMOS, avˆ and: VT = 2, 5V (tensiune de prag de comutat¸ie), VOHmin = 4, 9V, VOLmax = 0, 1V . S˘ a se deseneze formele de und˘ a la ie¸sire cˆ and VI are o variat¸ie triunghiular˘ a cu VImax = 4V . P1.18 logic˘ a:

S˘ a se deseneze structura ret¸elei de port¸i care realizeaz˘ a urm˘ atoarea funct¸ie F = (ABC + D)EF + GH(I + J + K)

P1.19 S˘ a se deseneze structura ret¸elelor care realizeaz˘ a urm˘ atoarele funct¸ii logice: a) F = (AB + C)[(D + E)F + G]; b) F = (AB + C)AB + BC; c) F = AB(C D + CD) + AB(C D + CD) + AB C D; d) F = (A B + AB)(C D + CD); e) F = AB(C + DEF ) + CE(A + B + F ). P1.20 Pentru ret¸eaua de comutat¸ie din figur˘ a s˘ a se deduc˘ a funct¸ia logic˘ a F pe care o realizeaz˘ a. A

I1 G1

B G2

C

G3 D I2

G4

G5

G6

G7

F=?

167

CAPITOLUL 1. PORT ¸ I LOGICE

P1.21 Pentru ret¸elele de comutat¸ie din figurile urm˘ atoare s˘ a se deduc˘ a funct¸iile logice realizate. A B C E F

F

C

D E

F G A B

B

G

a)

B

F

C b)

P1.22 Structura circuitului de comand˘ a realizat cu contacte pentru aprinderea ¸si stingerea unui bec din oricare din cele trei puncte A,B ¸si C este reprezentat˘ a ˆın figura (a)de la P1.23. Implementat¸i acela¸si circuit de comand˘ a cu port¸i logice. P1.23 S˘ a se determine funct¸ia de comutat¸ie F pentru structura de ret¸ea din figura de mai jos (b). S˘ a se simplifice expresia funct¸iei F ¸si s˘ a se realizeze o implementare cu port¸i logice. A

B

_ A

_ B _ B

_ A

C

A _ A

x

_ C

B

B

A

D

A

B

a)

D _ D

_ B

y

D

b)

P1.24 Circuitului din figura (b) al˘ aturat˘ a i se aplic˘ a semnalele de intrare A,B,C ¸si D avˆ and formele de und˘ a ˆın figura (a). S˘ a se determine formele de und˘ a ˆın punctele x1 , x2 , x3 , x4 ¸si y. Apoi, pentru acest circuit combinat¸ional s˘ a se deduc˘ a expresia logic˘ a a ie¸sirii y ¸si, cu ajutorul acesteia, s˘ a se deduc˘ a forma de und˘ a a semnalului y pentru variat¸ia intr˘ arilor. A B

A B

C

C D

x1

x3 y x2

D a)

b)

x4

168

1.6. REJECT ¸ IA ZGOMOTELOR

P1.25 Pentru circuitul logic combinat¸ional din figura (b), la aplicarea formelor de und˘ a la intrare, desenate al˘ aturat ˆın figura (a), se obt¸ine forma de und˘ a y la ie¸sire. Aceast˘ a ie¸sire y este incorect˘ a datorit˘ a unei port¸i defecte din structura circuitului. (O poart˘ a defect˘ a are ie¸sirea fie permanent ˆın starea H fie permanent ˆın starea L, indiferent de valoarea logic˘ a a intr˘ arilor). S˘ a se localizeze poarta defect˘ a ¸si s˘ a se determine defectul acesteia (ie¸sire permanent H sau permanent L). A

A B G1

B C

G2

C

D

G4

D

E y

G3

E

a)

y

b)

P1.26 Pentru circuitul din figura (b) sunt redate al˘ aturat formele de und˘ a pe intr˘ ari. Sunt accesibile pentru oscilografiere numai ie¸sirea ¸si punctul de test PT. Este corect˘ a forma de und˘ a PT? Dac˘ a nu, care este defectul? A B

A B

C D

PT

C D

E

E F

F PT a)

b)

P1.27 Pentru circuitele din figurile urm˘ atoare a),b) ¸si c) s˘ a se determine expresia logic˘ a realizat˘ a pe ie¸sirea y. Considerˆ and c˘ a toate bufferele open colector pe ie¸sire au IOLmax = 40mA, VOLmax = 0, 25V , IOHmax = 400µA s˘ a se determine valoarea rezistent¸elor R dac˘ a funct¸ia y reprezint˘ a o ˆınc˘ arcare de 10 intr˘ ari 74LS00 (vezi tabelul de la P1.12). Se admite pentru ∆VCC = 0, 1VCC iar MH =ML = 0, 4V . P1.28 Folosind datele de catalog, date ˆın tabelul de la problema P1.12, pentru poarta 74HC00 (NAND2) s˘ a se determine dac˘ a poate comanda pe ie¸sire urm˘ atoarele sarcini rezistive: a) 120Ω conectat˘ a la VDD ; b) 270Ω conectat˘ a la VDD ¸si 330Ω conectat˘ a la mas˘ a; c) 1KΩ conectat˘ a la mas˘ a; d) 150Ω conectat˘ a la VDD ¸si 150Ω conectat˘ a la mas˘ a; e) 100Ω conectat˘ a la VDD ; f) 75Ω conectat˘ a la VDD ¸si 150Ω conectat˘ a la mas˘ a;

169

CAPITOLUL 1. PORT ¸ I LOGICE

VCC R

y

*

C

*

D

*

A B C

*

R

R

*

B

+5V

+5V

+5V

A

VCC

VCC

y

*

D E

*

F G b)

a)

A B

*

C D

*

E F

*

G H

*

y

c)

g) 75Ω conectat˘ a la VDD ; h) 270Ω conectat˘ a la VDD ¸si 150Ω conectat˘ a la mas˘ a. P1.29 Pentru poarta 74HC00, utilizˆ and datele din tabelul de la problema P1.12, s˘ a se estimeze rezistent¸a de ie¸sire ˆın stare H ¸si ˆın stare L. P1.30 Pentru decizia “pentru ie¸sirea unei port¸i cu colectorul ˆın gol sau cu drenul ,, ˆın gol se alege o rezistent¸a˘ de valoare mai mare sau mai mica aducet¸i argumente pro ¸si contra. P1.31 Un buffer cu drenul ˆın gol, VOLmax = 0, 37V , IOLmax = 12mA, comand˘ a un LED de semnalizare pentru care se fixeaz˘ a punctul de funct¸ionare V LED = 1, 6V , ILED = 10mA. S˘ a se determine valoarea rezistent¸ei ˆınseriate cu LED-ul cˆ and V DD = 5V . P1.32 Care rezistor disip˘ a mai mult˘ a putere cel care conecteaz˘ a o intrare neutilizat˘ a la VCC a unei port¸i NAND TTL-LS sau cel care conecteaz˘ a o intrare neutilizat˘ a la mas˘ a a unei port¸i NOR TTL-LS? (Utilizat¸i datele din tabelul de la problema P1.12) P1.33 Ce se ˆıntˆ ampl˘ a dac˘ a se ˆıncearc˘ a s˘ a se comande, direct f˘ ar˘ a rezistent¸a˘ adit¸ional˘ a, un releu alimentat la +12V printr-o poart˘ a normal˘ a TTL? P1.34 Circuitul din figura (a) utilizeaz˘ a port¸i 74LS01 cu colectorul ˆın gol pentru care datele de catalog corespund cu cele din tabelul de la P1.12 de la seria LS cu diferent¸a c˘ a IOHmax este 100µA.

Q÷ø ø÷ òñQòQñ ïQòñ ïð óQóô

ùúQ ùúù üûü úùúù úQ úûQQ ù ûQ ý û +5V

+5V

W X Y Z

74LS01 *

*

74LS01

a)

R2

R1

* 74LS01

õö

F

P Q R S T U V

b)

D1 1

2

RI 3

x

4

y

5

z

D2

170

1.6. REJECT ¸ IA ZGOMOTELOR

a) S˘ a se deduc˘ a analitic ¸si s˘ a se verifice prin metoda tabelului de adev˘ ar expresia funct¸iei F. b) Considerˆ and MH = 0, 7 care este valoarea maxim˘ a admis˘ a pentru R 1 ? c) Dac˘ a semnalul F comand˘ a dou˘ a inversoare 74S04 (datele corespund seriei S din Tabelul 1.9) s˘ a se determine valoarea maxim˘ a ¸si minim˘ a pentru R 2 cˆ and MH = 0, 7V, ML = 0V . P1.35 La o linie de magistral˘ a sunt conectate n module.Fiecare modul este compus dintr-o poart˘ a receptoare 74LS04 (parametrii acestui inversor sunt ˆın Tabelul 1.9 la seria LS) ¸si un buffer, TSL 74LS125, emit¸a˘tor pe magistral˘ a. Bufferul TSL ˆın starea HZ absoarbe sau genereaz˘ a un curent ±20µA iar ˆın starea normal˘ a cu ie¸sirea L absoarbe un curent IOLmax = 24mA ¸si cu ie¸sirea ˆın H genereaz˘ a un curent IOHmax = 2, 6mA. Cˆ ate module se pot conecta la magistral˘ a? P1.36 Se descoper˘ a o deficient¸a˘ la circuitul din figura (b) de la P1.34. Proiectantul remediaz˘ a aceast˘ a deficient¸a˘ prin introducerea diodelor D1 ¸si D2 pe traseele desenate punctat. Descriet¸i modificarea logic˘ a ¸si a marginii de zgomot, prin aceast˘ a introducere, asupra circuitului. Toate port¸ile sunt 74LS00 (NAND2). P1.37 S˘ a se deseneze structura circuitelor CMOS care realizeaz˘ a funct¸iile F 1 = A + BC, F2 = A(B + C). P1.38 S˘ a se deseneze structura circuitului CMOS care implementeaz˘ a funct¸ia F = (A1 + A2 + A3 )(B1 + B2 )C. P1.39 Pentru funct¸ia logic˘ a F = A + B + CD: a) S˘ a se deseneze structura de circuit CMOS; b) S˘ a se deduc˘ a drumul eulerian ¸si apoi s˘ a se deseneze layoutul simplificat. P1.40 Pentru circuitul de coincident¸a˘: a) S˘ a se deseneze structura de circuit CMOS; b) S˘ a se deduc˘ a drumul eulerian ¸si apoi s˘ a se deseneze layoutul simplificat. P1.41 Se consider˘ a circuitele din figura (a)¸si (b) care au un efort electric H=6. a) Care este efortul total pentru fiecare circuit? b) Care dintre ele este mai rapid? c) S˘ a se calculeze dimensiunile x ¸si y de poart˘ a astfel ˆıncˆ at pentru circuitul respectiv s˘ a se obt¸in˘ a ˆıntˆ arzierea cea mai mic˘ a. g=4/3 p=2

g=1 p=1

g=1 p=1 C

x

C

6C

a)

g=5/3 p=2 y

C

6C

b)

P1.42 Un traseu logic este proiectat pe trei etaje; pe fiecare dintre ele este repartizat un efort F1 = 10, F2 = 9, F3 = 7. a) Poate fi aceast˘ a proiectare optimizat˘ a? Dac˘ a da ˆın ce mod? b) La prezenta proiectare ce ˆımbun˘ at˘ a¸tiri se pot aduce? P1.43 Se consider˘ a un traseu logic pe opt niveluri/etaje, pe fiecare nivel efortul electric este egal cu hi = 3. Cea mai complex˘ a poart˘ a care poate fi ˆıntr-un nivel, din

CAPITOLUL 1. PORT ¸ I LOGICE

171

acest traseu, este NAND4. S˘ a se estimeze care este intervalul de timp cel mai mic dup˘ a care semnalul logic, aplicat la intrarea traseului, poate fi modificat. P1.44 La structura de NAND8 din Figura 2.29-c ad˘ augat¸i, dup˘ a ultimul inversor, ˆınc˘ a dou˘ a inversoare. Pentru cele trei structuri din Figura 2.29 ¸si cea obt¸inut˘ a ˆın acest mod trasat¸i, pe acela¸si grafic, dependent¸a, ˆıntˆ arzierea D funct¸ie de variat¸ia efortului electric H ˆın intervalul H = 12 ÷ 200. Care este concluzia din analiza acestor dependent¸e? P1.45 Care dintre port¸ile CMOS, NANDn, NORn, pentru acela¸si efort electric, este mai rapid˘ a? Argumentat¸i afirmat¸ia. P1.46 O linie de magistral˘ a cu impedant¸a caracteristic˘ a Z 0 = 100Ω este comandat˘ a de ie¸sirea unui buffer din L (0, 2V ) ˆın H (2, 7V ) pe durata ∆t = 3ns. S˘ a se determine valoarea capacit˘ a¸tii de decuplare CB conectat˘ a ˆıntre linia de alimentare VCC ¸si mas˘ a astfel ˆıncˆ at acest salt s˘ a nu provoace o variat¸ie maxim˘ a a tensiunii de alimentare ∆VCC > 0, 1V . P1.47 Un driver TSL, caracterizat prin IOLmax = 24mA, VOLmax = 0, 4V comand˘ a o linie de magistral˘ a cu impedant¸a caracteristica Z 0 = 150Ω. Receptorii de la linia de magistral˘ a sunt port¸i de tip trigger Schmitt cu pragurile de comutat¸ie V p− = 0, 9V , at ˆın starea L cˆ at ¸si ˆın starea H sunt neglijabili. Vp+ = 1, 7V iar curent¸ii absorbit¸i atˆ Tensiunea VCC poate varia ˆın limitele ±10%. a) S˘ a se dimensioneze rezistent¸ele pentru terminatorul Thevenin al liniei; b) S˘ a se calculeze marginile de zgomot garantate M H ¸si ML . P1.48 Pentru o poart˘ a logic˘ a TTL trigger Schmitt neinversor cu pragurile de a se calculeze marginile basculare ˆın intervalele Vp− = (0, 6−0, 9)V , Vp+ = (1, 7−2)V s˘ de zgomot MH ¸si ML . P1.49 Pentru cap˘ atul unei linii de magistral˘ a, cu impedant¸a caracteristic˘ a Z 0 , s˘ a se dimensioneze un terminator Thevenin care s˘ a nu produc˘ a reflexii ale semnalului. Pentru perioadele cˆ and linia nu este comandat˘ a de nici un driver potent¸ialul liniei s˘ a fie stabilit de terminator fie la VOH = 3, 4V , fie la VOL = 0, 25V (VCC = 5V ).

Capitolul 2

CIRCUITE LOGICE COMBINAT ¸ IONALE n

Multitudinea funct¸iilor logice de n variabile, 2 2 , ar atrage dupa sine, dac˘ a nu se face o selectare, realizarea a tot atˆ atea circuite. Selectarea funct¸iilor candidat pentru implementare, sub form˘ a de circuit, se face ˆın funct¸ie de eficient¸a ¸si frecvent¸a ˆın aplicat¸ii dar ¸si dup˘ a realizabilitatea circuitului. De exemplu, dup˘ a cum s-a vazut ˆın capitolul anterior, chiar ¸si pentru dou˘ a variabile, n = 2, din cele 16 funct¸ii posibile sunt implementate doar port¸ile uzuale (AND, OR, NAND, NOR ¸si XOR). ˆIn aceast˘ a abordare ¸si pentru funct¸iile mai complexe, de natur˘ a logic˘ a sau aritmetic˘ a, de mai put¸ine sau de mai multe intr˘ ari, doar unele dintre ele au corespondentul fizic, sub form˘ a de circuit; ¸si astfel de circuite sunt, de facto standard ¸si utilizate ca ¸si componente ˆın implementarea altor funct¸ii/sisteme. Prezentarea, sinteza ¸si implementarea unora dintre acesta circuite constituie continutul acestui capitol de circuite numite combinat¸ionale. Dar de ce combinat¸ionale? Pentru c˘ a valoarea funct¸iei, existent˘ a la ie¸sire doar atˆ ata timp cˆ at exist˘ a anumite valori pentru intr˘ ari, depinde exclusiv de combinat¸ia valorilor de intrare, altfel spus, de configurat¸ia valorilor de intrare.

2.1

CIRCUITUL LOGIC COMBINAT ¸ IONAL

Un sistem este caracterizat prin natura semnalelor de intrare, a celor de ie¸sire, prin clasele de funct¸ii intrare-ie¸sire (transfer) ¸si prin natura prelucr˘ arilor ce au loc in structura sa interna. Aceast˘ a caracterizare general˘ a a unui sistem particularizat˘ a pentru un Circuit Logic Combinational, CLC, poate fi exprimat˘ a formal prin tripletul: CLC = (X, Y, F )

(2.1)

ˆın care: X – reprezint˘ a mult¸imea de configurat¸ii binare aplicate pe intrare sau mult¸imea cuvintelor de intrare X = {X0 , X1 , ..., Xk , ..., X2n−1 }. Fiecare cuvant de intrare Xk este un element al mult¸imii {0, 1}n (vezi Definit¸ia 1.3) ¸si este de forma: 173

174

2.1. CIRCUITUL LOGIC COMBINAT ¸ IONAL

Xk = xn−1 xn−2 ...xi ...x1 x0 , i = 0, 1, ..., (n − 1); xi este valoarea binar˘ a a variabilei (semnalului) aplicat˘ a pe intrarea a i-a a circuitului combinat¸ional, Figura 2.1-a. Mult¸imea cuvintelor de intrare X este complet definit˘ a dac˘ a cuprinde toate configurat¸iile binare formate cu cele n variabile de intrare, adic˘ a 2n n configurat¸ii; cardinalul mult¸imii este |X| = 2 . De exemplu, pentru un CLC cu patru intr˘ ari mult¸imea X este complet definit˘ a dac˘ a pe intr˘ arile x 3 , x2 , x1 , x0 nu este restrict¸ionat˘ a aplicarea nici uneia din cele 16 combinat¸ii posibile de intrare, {0000, 0001, ..., 1110, 1111}. Y – reprezint˘ a mult¸imea de configurat¸ii binare obt¸inute la ie¸sire sau mult¸imea cuvintelor de ie¸sire Y = {Y1 , Y2 , ..., Yl , ..., Yq }. Yl este un element al mult¸imii {0, 1}m ¸si este de forma Yl = ym−1 ym−2 ...yj ...y0 , j = 0, 1, 2, ...(m − 1); yj este valoarea (semnalul) binar˘ a obt¸inut˘ a pe ie¸sirea j a circuitului combinat¸ional. Mult¸imea cuvintelor de iesire Y este, in general, incomplet definit˘ a, deoarece la ie¸sire nu se genereaza toate cuvintele binare de m bit¸i, adic˘ a q ≤ 2 m . De exemplu, pentru un CLC cu n intr˘ ari ¸si 3 ie¸siri, mult¸imea Y a cuvintelor de ie¸sire poate s˘ a nu fie complet definit˘ a deoarece cuvˆ antul de ie¸sire, y 2 y1 y0 , nu va lua toate cele 23 combinat¸ii posibile {000, 001, ..., 1111} atunci cˆ and cuvˆ antul de intrare va parcurge toate cele 2n configurat¸ii de intrare. F – este funct¸ia de transfer (intrare-ie¸sire) care, pentru un CLC cu n intrari si m iesiri (Definitiei 1.4), define¸ste aplicat¸ia {0, 1} n → {0, 1}m . Funct¸ia de transfer a unui CLC cu n intr˘ ari asociaz˘ a fiec˘ arei configurat¸ii binare de intrare X = {0, 1} n un cuvˆ ant Y din mult¸imea configurat¸iilor de ie¸sire Y ⊆ {0, 1} m , adic˘ a selecteaz˘ a perechi din submult¸imea produsului cartezian {0, 1} n × {0, 1}m . Conform celor enunt¸ate, pentru CLC, o reprezentare sub forma de schem˘ a bloc este cea din Figura 2.1. Circuitul Logic Combinat¸ional cu o singur˘ a ie¸sire, m = 1, realizeaz˘ a aplicat¸ia f : {0, 1}n → {0, 1}, lungimea cuvˆ antului generat la ie¸sire are lungimea de 1 bit (Figura 2.1-b). ˆIn general, vom studia circuie logice combinat¸ionale cu o singur˘ a ie¸sire, cele cu ie¸siri multiple (m 6= 1) pot fi privite ca fiind compuse din m circuite cu o singur˘ a ie¸sire. Numarul de curcuite combinat¸ionale distincte, de n intrari ¸si cu o n singura ie¸sire, este egal cu num˘ arul tuturor funct¸iilor logice de n variabile, adic˘ a 22 (vezi sect¸iunea 1.1.3). Definirea unui CLC cu n intrari si m ie¸siri, ca un set de perechi intrare-ie¸sire din produsul cartezian {0, 1}n ×{0, 1}m , poate fi realizat˘ a printr-o funct¸ie de transfer care are o exprimare /definit¸ie simpl˘ a sau complex˘ a. Atributul de complex sau de simplu pentru un circuit decurge din modalitatea complex˘ a sau simpl˘ a prin care se descrie structurarea sau funct¸ionarea sa. Exemplul 2.1 Pentru urm˘atoarele trei seturi de perechi intrare-ie¸sire s˘a se exprime funct¸iile de transfer CLC1 = CLC2 = CLC3 =

{(00, 0), (01, 1), (10, 1), (11, 0)} {(000, 0), (001, 1), (010, 1), (011, 0), (100, 1), (101, 0), (110, 0), (111, 1)} {(00, 010), (01, 110), (10, 010), (11, 001)}

Solut¸ie. Primul circuit CLC1 , cu 2 intr˘ ari, n = 2, ¸si o ie¸sire, m = 1, realizeaz˘ a funct¸ia SAU EXCLUSIV de dou˘ a variabile y = x1 ⊕ x0 .

175

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

Al doilea circuit CLC2 , cu trei intr˘ ari, n = 3, ¸si o ie¸sire, m = 1, realizeaz˘ a functia SAU EXCLUSIV de trei variabile y = x2 ⊕ x1 ⊕ x0 . Al treilea circuit CLC3 , cu dou˘ a intr˘ ari, n = 2, ¸si trei ie¸siri, m = 3 (y2 , y1 , y0 ), nu admite o exprimare simpl˘ a, printr-o funct¸ie logic˘ a elementar˘ a, ca cele dou˘ a anterioare. Pentru aceasta putem s˘ a avem urm˘ atoarea exprimare: y2 = 1 numai daca (x1 = 0) SI (x0 = 1) y1 = 1 numai daca (x1 = 0) SAU (x0 = 0) y0 = 1 numai daca (x1 = 1) SI (x0 = 1) Din acest exemplu putem spune c˘ a CLC1 este un circuit simplu deoarece definirea sa a necesitat o descriere simpl˘ a (funct¸ia sum˘ a modulo 2, x1 ⊕ x0 ). CLC2 cu toate c˘ a are trei intr˘ ari poate fi exprimat, la fel, printr-o definit¸ie compact˘ a: suma modulo 2 de trei variabile, care rezult˘ a prin recurent¸a ˘ din sum˘ a modulo 2 de dou˘ a variabile x2 ⊕ (x1 ⊕ x0 ). Se poate concluziona c˘ a un CLC, chiar cu un num˘ ar mare de intr˘ ari, r˘ amˆ ane tot un circuit simplu dac˘ a poare fi exprimat, pornind de la un circuit simplu, extins prin recurent¸a ˘ pentru un n mare ceea ce ˆın cazul analizat ar fi xn ⊕ (xn−1 ⊕ (... ⊕ (x2 ⊕ (x1 ⊕ x0 ))...)). Cel de-al treile circuit, CLC3 , la care definit¸ia nu a putut fi compactat˘ a nu mai este un circuit simplu ci un circuit complex.

xn−1 xn−2 X

ym−1 ym−2

CIRCUIT LOGIC

xi

yj

COMBINATIONAL (CLC)

x1 x0

cu iesiri multiple

xn−1 xn−2 Y X

xi

COMBINATIONAL (CLC)

x1 x0

y1 y0

a)

Nr

CIRCUIT LOGIC

y

cu o singura iesire

b) x n−1 x n−2

Intrari xi

x0

x1

y0

y1

yj

Iesiri

ym−1

0

0

0

0

0

0

d00

d10

dj0

d(m−1)0

1

0

0

0

0

1

d01

d11

dj1

d(m−1)1

2

0

0

0

1

0

d02

d12

dj2

d(m−1)2

2n−2

1

1

1

1

0

d 02n−2 d 12n−2

d j2n−2

d (m−1)(2n−2)

2n−1

1

1

1

1

1

d 02n−1 d 12n−1

d j2n−1

d (m−1)(2n−1)

c)

y 22n−1

m functii

Figura 2.1 Simbol de reprezentare pentru CLC cu n intr˘ ari: a) cu ie¸siri multiple; b) cu o singur˘ a ie¸sire; c) tabel de adev˘ ar pentru un CLC cu ie¸siri multiple (m). Definit¸ia 2.1

Complexitatea unui circuit cu n intr˘ ari, notat˘ a cu C(n),

176

2.2. REPREZENTAREA CLC

este o m˘ arime asociat˘ a dimensiunii definit¸iei/descrierii acelui circuit. 

Limitarea asimptotic˘ a a cre¸sterii unei funct¸ii f , de c˘ atre o alta funct¸ie g, poate fi exprimat˘ a prin notat¸ia O (citit˘ a de ordinul) in felul urm˘ ator: f (n) ∈ O(g(n)) [Greenlaw 0 98]. Definit¸ia 2.2 Funct¸ia f este de ordinul lui g, notat f (n) ∈ O(g(n)), dac˘ a ¸si numai dac˘ a exist˘ a o constant˘ a c > 0 ¸si un n0 ∈ N astfel incˆ at f (n) ≤ c · g(n) pentru toate valorile lui n ≥ n0 . 

De exemplu, pentru funct¸ia polinomial˘ a f = 5 · n 4 + 17 · n − 10, cˆ and n devine 4 foarte mare, este limitat˘ a superior de c · n deci, se poate spune ca f este de ordinul O(n4 ), adic˘ a (5 · n4 + 17 · n − 10) ∈ O(n4 ). Aplicˆ and notat¸ia de limitare superioar˘ a pentru funct¸ia complexitate C(n), a unui CLC cu n intr˘ ari, se poate spune c˘ a circuitul este simplu cˆ and C(n) ∈ O(1), adic˘ a dimensiunea definit¸iei pentru n de valoare mare este limitat˘ a de o constant˘ a O(1). ˆIn schimb, nu se mai poate afirma la fel cˆ and C(n) ∈ O(n), dac˘ a n este de ordinul 106 cˆ and circuitul este greu, dac˘ a nu imposibil, de exprimat, deci circuitul este complex. Evident, pentru implement˘ ari, se vor selecta circuite simple ¸si nu circuite complexe care implic˘ a efort si costuri foarte ridicate sau chiar dep˘ a¸sesc posibilitat¸ile tehnologice. Observat¸ie important˘ a! ˆIn relat¸ia 2.1 de definire a circuitului logic combinat¸ional nu este implicat timpul; aceasta ˆınseamna c˘ a la un CLC transferul configurat¸iei de intrare X ˆın obt¸inerea celei de ie¸sire Y se face instantaneu. Acest transfer poate fi doar teoretic instatntaneu, pe cˆ and la un sistem real timpul de transfer este egal cu timpul de propagare intrare-ie¸sire prin lant¸ul de port¸i ce compun CLC. Neincluderea timpului nu are nici o consecint¸a in regim static, formalismul algebrei Booleene poate determina corect semnalul de ie¸sire ˆın funct¸ie de semnalele de intrare. Dar, uneori, ˆın intervalele tranzitorii, cˆ and configurat¸ia de intrare se modific˘ a, formalismul booleean aplicat pe lant¸ul port¸ilor de la intrare spre ie¸sire va calcula valori de ie¸sire care difer˘ a de cele reale obt¸inute la ie¸sire; valorile de ie¸sire reale nu mai corespund regimului (static) de aplicare a axiomei de existent¸a˘ a complementului x · x ¯ = 0 ¸si x + x ¯ = 1 ci ar corespunde situat¸iei anormale de x · x ¯ = 1 ¸si x + x ¯ = 0! Aceste situat¸ii, care pot ap˘ area pe durata regimurilor tranzitorii, sunt referite cu termenul de hazard static ¸si vor fi studiate in sect¸iunea 2.3.1. Neincluderea variabilei timp poate fi considerat˘ a ca o lacun˘ a a formalismului booleean; exst˘ a ˆıncercari de a elabora un formalism logic care s˘ a includ˘ a ¸si variabila timp. Al doilea aspect care trebuie notat in relat¸ia 2.1 este faptul c˘ a nu exist˘ a o react¸ie, adic˘ a transferul este unidirect¸ional, de la intrare spre ie¸sire, m˘ arimile de ie¸sire nu modific˘ a in nici un fel intrarea ˆın sistem. Clasa de circuite secvent¸iale, capitolul 3, va include ¸si aceste dou˘ a aspecte adic˘ a: timpul ¸si existent¸a react¸iei.

2.2

REPREZENTAREA CIRCUITELOR LOGICE COMBINAT ¸ IONALE

Reprezentarea/descrierea unui CLC este un instrument absolut necesar pentru procesele de: proiectare (sintez˘ a), de testare ¸si de documentare. Modalitatea de descriere, prin complexitatea pe care o implic˘ a, trebuie aleas˘ a adecvat pentru realizarea

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

177

eficient˘ a a acestor procese. Se pot distinge urm˘ atoarele modalitat¸i de reprezentare: tabelul de adev˘ ar, funct¸ia analitic˘ a, diagrama de decizie binar˘ a, exprimare prin limbaj natural.

2.2.1

Tabelul de adev˘ ar

Not¸iunea de tabel de adev˘ ar a fost introdus˘ a in sect¸iunea 1.14 prin Definit¸ia 1.12 iar exemple de tabele de adev˘ ar au fost expuse in Figura 1.1 si 1.2 ¸si Tabelele 1.3 ¸si 1.6. ˆIn continuare se vor prezenta aspecte practice ˆın realizarea ¸si utilizarea tabelelor de adev˘ ar. ˆIn general, ˆın procesul de sintez˘ a al uni CLC se porne¸ste de la realizarea tabelului de adev˘ ar pe baza cerint¸elor de funct¸ionare impuse sistemului respectiv. Astfel, se consider˘ a toate configurat¸iile valorilor variabilelor de intrare (ˆın num˘ ar de 2n ), care vor constitui liniile de intrare ale tabelului. Apoi, pentru fiecare configurat¸ie de intrare, i (i = 0, 1, ..., (2n−1 )), se va ˆınscrie ˆın coloana de ie¸sire yj a tabelului valoarea corespunz˘ atoare a funct¸iei, adic˘ a valoarea coeficientului funct¸iei d ji , Figura 2.1-c. Coficientul dji este egal cu valoarea funct¸iei yj , j = 0, 1, ..., (m − 1), pentru configurat¸ia a i-a a variabilelor de intrare. Tabelul de adev˘ ar din figur˘ a corespunde unui CLC cu n intr˘ ari ¸si m ie¸siri. Mult¸imea cuvintelor de ie¸sire Y s-a specificat anterior, ˆın general, este o mult¸ime incomplet˘ a deoarece num˘ arul de cuvinte distincte de m bit¸i obt¸inut la ie¸sire (un cuvˆ ant fiind format din bit¸ii de pe cele m coloane ale ie¸sirii care corespund la o configurat¸ie de intrare) este mai mic decˆ at num˘ arul total de cuvinte formate cu m bit¸i, adic˘ a 2m. Fiecare coloan˘ a din tabelul de adev˘ ar cont¸ine un num˘ ar de 2 n valori binare, ceea ce n ˆınseamn˘ a c˘ a ar putea fi un num˘ ar de 22 coloane cu valori distincte, deci un num˘ ar n de 22 funct¸ii de n variabile. Succesiunea configurat¸iilor de valori binare aplicate pe intrarea unui CLC se consider˘ a c˘ a sunt exprimate ˆın cod binar natural, adic˘ a chiar num˘ ararea ˆın sistemul de numerat¸ie in baza doi. Fiecare bit din cuvˆ antul de cod binar natural are ponderea 2 i unde i este pozit¸ia bitului ˆın cuvˆ antul binar, ponderile cresc de la dreapta spre stˆ anga, prima pozit¸ie din dreapta are ponderea zero (2 0 ) (6|10 = 110|2 ; 6 = 1·22 +1·21 +0·20 ). Codul binar natural este un cod aritmetic (adic˘ a, poate fi utilizat in operat¸iile aritmetice). Definit¸ia 2.3 Distant¸a Humming ˆıntre dou˘ a cuvinte de cod, de aceea¸si lungime, este dat˘ a de numarul bit¸ilor diferit¸i care apar ˆıntre acelea¸si pozit¸ii ale celor dou˘ a cuvinte de cod. 

Uneori succesiunea configurat¸iilor de valori binare ale variabilelor de intrare sunt considerate in cod Gray. Codul Gray are proprietatea de adiacent¸a˘, adic˘ a distant¸a Humming (distant¸a de cod) intre oricare dou˘ a cuvinte consecutive este egal˘ a cu 1. La trecerea de la un cuvˆ ant la urm˘ atorul, fie in sens cresc˘ ator, fie ˆın sens descresc˘ ator, se modific˘ a ˆın cuvˆ antul de cod doar un singur bit (000,001,011,010,110,111,101,100). Acest cod nu este aritmetic! Datorit˘ a propriet˘ a¸tii de adiacent¸a˘ codificarea Gray este util˘ a ˆın notarea la diagramele Veitch-Karnaugh ¸si ˆın implementarea circuitelor care impun ca ˆın funct¸ionare, la trecerea dintre dou˘ a cuvinte (st˘ ari) consecutive, s˘ a se produc˘ a cu o singur˘ a comutare. Conversia din cod binar natural ˆın cod Gray se realizeaz˘ a ˆın felul urm˘ ator, Figura 2.2-a:

178

2.2. REPREZENTAREA CLC

1. cel mai semnificativ bit al cuvˆ antului de cod Gray este identic cu cel mai semnificativ bit din cuvˆ antul de cod binar natural; 2. parcurgˆ and cuvˆ antul de cod binar natural, de la stˆ anga la dreapta, prin sumarea fiec˘ arei perechi de bit¸i adiacent¸i se obt¸ine bitul urm˘ ator (ˆın sensul de la stˆ anga la dreapta) din cuvˆ antul de cod Gray (bitul de transfer rezultat ˆın urma sum˘ arii se neglijeaz˘ a). Binar 1 Natural

Gray a)

1

1 +

0 +

0

0 +

1

0 +

0

1 +

0

1 +

1

0 Gray 1

0

1

0

0

1

0

1

1

0

0

0

1

1

0

+ 0

Binar

1 Natural 1 b)

Figura 2.2 Modalitatea grafic˘ a de descriere a conversiei: a) din cod binar natural ˆın cod Gray ; b) din cod Gray ˆın cod binar natural. Conversia din cod Gray in cod binar natural se realizeaz˘ a in felul urm˘ ator, Figura 2.2-b: 1. cel mai semnficatv bit din cuvˆ antul de cod binar natural este identic cu cel din cuvˆ antul Gray; 2. parcurgˆ and cuvˆ antul in cod Gray, de la stˆ anga la dreapta, se obt¸ine bitul cuvˆ antului binar natural de indice i (bitul cel mai put¸in semnificativ avˆ and indicele i = 0) prin sumarea bitului (i + 1) din cuvˆ antul binar natural cu bitul de indice i din cuvˆ antul Gray (bitul de transfer rezultat ˆın urma sum˘ arii se neglijeaz˘ a). Foarte utilizate sunt codific˘ arile zecimal binare, BCD (Binary Coded Decimal), pentru cifrele zecimale (0,1,2...,8,9). Deoarece sunt 10 cifre zecimale de codificat cuvˆ antul binar de cod trebuie sa aib˘ a o lungime de patru bit¸i, deci din cele 16 cuvinte binare de patru bit¸i sunt alese doar 10,iar 6 dintre aceste nu sunt utilizate. Se pune ˆıntrebarea cˆ ate posibilitat¸i distincte de codificare (coduri zecimal-binare), BCD, se pot realiza? Num˘ arul grupelor diferite de cˆ ate 10 cuvinte de 4 bit¸i, din totalul de 16 cuvinte de 4 bit¸i, care se pot forma se calculeaz˘ a cu formula combinarilor C 16 10 = 16! ¸i prin care cele 10 cifre zecimale sunt asignate 10!·(16−10)! . Apoi, vor fi 10! modalitat grupelor de cˆ ate 10 cuvinte de 4 bit¸i, deci ˆın total numarul de coduri zecimal codificat 10 binar este C16 · 10! = 29.059.430.400. Evident, din acest numar mare de coduri BCD, se utilizeaz˘ a foarte put¸ine ¸si fiecare dintre acestea are un nume. Varianta de cod prin care cifrelor zecimale (0,1,2,3,4,5,6,7,8,9) li se asigneaz˘ a cuvintele binare chiar ˆın ordinea corespunz˘ atoare de la num˘ ararea in binar natural (0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001) este denumit˘ a uzual BCD (incorect! cˆ and de fapt toate variantele de codificare zecimal-binar sunt coduri BCD). Corect, eventual, ar trebui s˘ a fie denumirea acestui cod NBCD (Natural Binary Coded Decimal), dar deoarece abreviat¸ia de BCD a intrat ˆın exprimarea uzual˘ a, cu regret o vom accepta ˆın continuare. De

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

179

asemenea, chiar cˆ and se refer˘ a la primele zece cuvinte din binar natural se face uneori confuzia spunˆ and coduri BCD (datorit˘ a identit˘ a¸tii cuvintelor). Un alt cod, zecimal codificat binar, este cel denumit EXCESS3 care se obt¸ine din cuvintele de cod BCD la care se adauga cifra 3 exprimat˘ a in binar natural, adic˘ a 0011; de exemplu, pentru cifra zecimal˘ a 2 codul binar obt¸int este 0010 + 0011 = 0101, iar pentru cifra 5 codul este 0101 + 0011 = 1000. Avantajele utiliz˘ arii reprezentarii ˆın EXCESS3 sunt: • ˆıntr-o locat¸ie de memorie se poate face distinct¸ia dac˘ a in acea locat¸ie nu s-a ˆınscris nimic (ceea ce corespunde st˘ arii utilizate 0000), sau s-a inscris cifra 0 (adica 0000 + 0011 = 0011) • complementul unei cifre zecimale fat¸a de 9 se obt¸ine in EXCESS3 prin complementarea bit cu bit a cuvˆ antului de cod ceea ce duce la o simplitate in implementare. De exemplu, complementul lui 7 (0111 + 0011 = 1010) fat¸a˘ de 9 este 2 (0101) care se obt¸ine prin complementarea lui 1010 (=7) fat¸a˘ de, 1 adic˘ a 0101. Cu aceste not¸iuni sumare despre codurile zecimal-codificat-binar putem sa construim tabelele de adev˘ ar pentru 2 circuite combinat¸ionale: un convertor de cod BCD - Gray ¸si un convertor de cod BCD - EXCESS3. Fiecare dintre aceste convertoare este un CLC cu 4 intr˘ ari A, B, C, D ¸si cu 4 ie¸siri: E3 , E2 , E1 , E0 pentru convertorul BCD - EXCESS3, Figura 2.3-b ¸si G3 , G2 , G1 , G0 pentru convertorul BCD - Gray, Figura 2.3-c. Tabelele de adev˘ ar pentru aceste dou˘ a converotaare, Figura 2.3-a, au pe intr˘ ari numai primele 10 combinat¸ii din NBCD, restul de 6 combinat¸ii (1010, 1011, 1100, 1101, 1110, 1111) nu se aplic˘ a niciodat˘ a deoarece nu apart¸in codului BCD. In coloanele celor 6 funct¸ii (E3 , E2 , E1 , E0 ¸si G3 , G2 , G1 , G0 ) se ˆınscriu valorile coeficient¸ilor obt¸inut¸i conform regulilor de conversie ale celor dou˘ a circuite codificatoare. Pentru cele 6 configurat¸ii de intrare excluse se consider˘ a valorile coeficient¸ilor funct¸iilor (ie¸sirile) ca fiind indiferente (notate prin —), adic˘ a se poate asigna fie valoarea 0 fie valoarea 1 deoarece oricum configurat¸iile respective nu apar niciodat˘ a pe intrare. Valori indiferente pentru coeficient¸ii unei funct¸ii pot fi trecute in tabelul de adev˘ ar ˆın dou˘ a situat¸ii: fie cˆ and anumite configurat¸ii de valori ale variabilelor de intrare nu se aplic˘ a niciodat˘ a la intrarile CLC, fie cˆ and se aplic˘ a configurat¸ii pe intr˘ ari dar utilizarea ie¸sirilor corespunz˘ atoare nu este semnificativ˘ a pentru ansamblul din care face parte circuitul. Cˆ and num˘ arul de variabile de intrare ale unui CLC cre¸ste peste 4, tabelul de adev˘ ar se manipuleaza destul de greu din cauza num˘ arului liniilor componente din tabel care cre¸ste exponent¸ial cu numarul variabilelor. Dar, exist˘ a o modalitate prin care se poate mic¸sora num˘ arul liniilor dintr-un tabel, astfel aducˆ andu-l la un instrument mai u¸sor de manipulat. Pentru circuitul CLC cu tabelul de adev˘ ar din Figura 2.4-a, conform relat¸iei 1.12, se poate scrie forma normal˘ a disjunctiv˘ a a funct¸iei f (sintez˘ a pe baz˘ a de 1) ¯ CD ¯ + ABC ¯ ¯ + ABCD ¯ ¯ C¯ D ¯ + ABC ¯ D ¯ + ABC D ¯ f = AB D + AB (2.2) ¯ C¯ D ¯ cˆ Pentru combinat¸ia de intrare AB and funct¸ia nu este definit˘ a s-a considerat pentru coeficientul funct¸iei valoarea 1, deci acest termen canonic a fost introdus in relat¸ia 2.2.

180

2.2. REPREZENTAREA CLC

0 1 2 3 4 5 6 7 8 9

A 0 0 0 0 0 0 0 0 1 1

B 0 0 0 0 1 1 1 1 0 0

C 0 0 1 1 0 0 1 1 0 0

10 11 12 13 14 15

1 1 1 1 1 1

0 0 1 1 1 1

1 1 0 0 1 1

D 0 1 0 1 0 1 0 1 0 1 linii 0 1 0 1 0 1

E 3 E2 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 nedefinite — — — — — — — — — — — —

E 1 E 0 G3 1 1 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 ale funct¸iilor — — — — — — — — — — — — — — — — — —

G2 0 0 0 0 1 1 1 1 1 1

G1 0 0 1 1 1 1 0 0 0 0

G0 0 1 1 0 0 1 1 0 0 1

— — — — — —

— — — — — —

— — — — — —

a) A B C D b)

CONVERTOR BCD−EXCESS3

E3 E2 E1 E0

A B C D

CONVERTOR BCD−GRAY

G3 G2 G1 G0

c)

Figura 2.3 Conversia BCD—Gray ¸si BCD—EXCESS3: a) tabelele de adev˘ ar; b,c) reprezentarea sub form˘ a de schem˘ a bloc a convertoarelor. Coloana de intrare a variabilei D poate fi eliminat˘ a din tabelul de adev˘ ar prin introducerea acestei variabile in expresiile coeficient¸ilor funct¸iilor. Astfel se exprim˘ a acesti coeficient¸i prin intermediul variabilei D. Aceast˘ a modalitate este referit˘ a ca exprimare prin coeficient¸ii cu variabile reziduu. In acest caz, D este variabila reziduu. Valorile coeficient¸ilor cu variabila D reziduu se pot determina prin urm˘ atorul rat¸ionament efectuat pe coloanele D si f din tabelul de adev˘ ar • la configurat¸ia ABC = 000 pentru D, fie 1, fie 0, coeficient¸ii funct¸iei au valoarea 0, funct¸ia este independent˘ a de D, deci f = 0. • la configurat¸ia ABC = 001 pentru D, fie 1, fie 0, coeficient¸ii funct¸iei au valoarea 0, funct¸ia este independent˘ a de D, deci f = 0. • la configurat¸ia ABC = 101 pentru D = 0 ¸si D = 1, coeficient¸ii funct¸iei au valoarile respectiv 0 si 1, deci f = D.

181

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 a)

B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

f 0 0 0 0 0 1 1 1 — 0 1 0 0 0 1 0

=⇒

A

B

C

f

0

0

0

0

0

0

1

0

0

1

0

D

0

1

1

1

1

0

0

D

1

0

1

D

1

1

0

0

1

1

1

D

b)

A

B

f

0

0

0

0

1

C+D

1

0

D

1

1

CD

=⇒

c)

Figura 2.4 Pentru tabelul de adev˘ ar cu 16 configurat¸ii de intrare (a), prin introducerea variabilei reziduu D, se obt¸ine un tabel cu 8 linii (b) ¸si prin introducerea variabilelor reziduu C,D se obt¸ine un tabel cu 4 linii (c). • la configurat¸ia ABC = 011 pentru D, fie 1, fie 0, coeficient¸ii funct¸iei au valoarea 1, funct¸ia este independent˘ a de D, deci f = 1. • la configurat¸ia ABC = 100, pentru D = 0 ¸si D = 1, coeficient¸ii funct¸iei au ¯ (s-a considerat valoarea 1 pentru semnul de valorile respectiv 1 ¸si 0, deci f = D indiferent). • la configurat¸ia ABC = 101, pentru D = 0 ¸si D = 1, coeficient¸ii funct¸iei au ¯ valorile respectiv 1 ¸si 0, deci f = D. • la configurat¸ia ABC = 110 pentru D fie 0, fie 1, coeficeint¸iii funct¸iei au valoarea 0, funct¸ia este independent˘ a de D, deci f =0. • la configurat¸ia ABC = 111, pentru D = 0 ¸si D = 1, coeficient¸ii funct¸iei au ¯ valorile respectiv 1 ¸si 0, deci f = D. Tabelul de adev˘ ar obt¸inut doar cu 3 variabile A, B, C, cu variabila D reziduu introdus˘ a in coeficient¸ii funct¸iei, este reprezentat ˆın Figura 2.4-b. Expresia normal disjunctiv˘ a a funct¸iei este: ¯ C¯ + (1) · ABC ¯ ¯ · AB ¯ C¯ + (D) ¯ · ABC ¯ + (D) ¯ · ABC f = (D) · AB + (D) ¯ care devine identic˘ a cu cea din relat¸ia 2.2 dac˘ a al doilea termen produs ABC · 1 se ex¯ ¯ ¯ ¯ ¯ pandeaz˘ a ABC(D+ D) = ABCD+ ABC D. Coeficient¸ii reziduu (care cont¸in varaibila reziduu), pentru evident¸iere, sunt ˆıncadrat¸i ˆın parantez˘ a ˆın exprimarea funct¸iei.

182

2.2. REPREZENTAREA CLC

Se poate continua procesul de reducere a num˘ arului de linii de la 8 la 4 prin efectuarea unui rat¸ionament similar, cu cel pentru reducerea de la 16 la 8 linii, asupra coloanei variabilei C ¸si a coloanei coeficient¸ilor funct¸iei obt¸inˆ andu-se tabelul de adev˘ ar din Figura 2.4-c. De data aceasta, coeficient¸ii funct¸iei sunt exprimat¸i ˆın funct¸ie de 2 variabile reziduu C ¸si D. Expresia disjunctiv˘ a a funct¸iei este: ¯ + (D) ¯ · AB · +(C D) ¯ · AB f = (C + D) · AB Dac˘ a ˆın aceasta expresie se introduc ˆın termenii produs de 3 variabile ¸si variabila care lipse¸ste, prin relat¸iile 1 = C + C, 1 = D + D se obt¸ine forma din relat¸ia 2.2. Exemplul 2.2 S˘a se descrie sub form˘a de tabel de adev˘ar funct¸ionarea unui CLC care pentru oricare cuvˆ ant de 4 bit¸i aplicat pe intrare genereaz˘ a la ie¸sire num˘ arul binar care exprim˘ a num˘ arul de bit¸i 1 prezent¸i ˆın cuvˆ antul de intrare (num˘ arul de bit¸i 1 va fi exprimat in binar natural). z x3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

IN T RARI

x2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

}| x1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

x0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

{

z y2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

IESIRI

}| y1 0 0 0 1 0 1 1 1 0 1 1 1 1 1 1 0

{ y0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0

Figura 2.5 Tabelul de adev˘ ar pentru exemplul 2.2 Solut¸ie. Cuvintele aplicate pe intrare sunt toate cele 16 configurat¸ii de 4 bit¸i iar cuvintele de ie¸sire pot fi doar numerele 0, 1, 2, 3 ¸si 4 exprimate ˆın binar natural, deci circuitul trebuie s˘ a aib˘ a 4 intr˘ ari ¸si 3 ie¸siri. Tabelul de adev˘ ar este dat in Figura 2.5.

2.2.2

Reprezentarea analitic˘ a

Reprezentarea analitic˘ a, sub forma unei funct¸ii logice (Definit¸iile 1.8 ¸si 1.9) este forma de descriere cea mai potrivit˘ a pentru un CLC, mai ales dac˘ a aceast˘ a form˘ a se reduce la o expresie compact˘ a atˆ at pentru cazul cˆ and num˘ arul de intrai n are valori mici

183

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

cˆ at ¸si cˆ and are valori foarte mari. Expresia funct¸iei ramˆ ane compact˘ a pentru un CLC chiar ¸si pentru n de valoare ridicat˘ a, dac˘ a poate exista o exprimarea recurent˘ a a funct¸iei; ceea ce se reflect˘ a ˆın implementare printr-o structurare iterativ˘ a, adic˘ ao replicabilitate a unei structuri elementare (celul˘ a). Pentru CLC care nu realizeaz˘ a funct¸ii uzuale, cu exprim˘ ari cunoscute, expresia funct¸iei logice se obt¸ine din tabelul de adev˘ ar ˆıntˆ ai sub forma canonic˘ a normal˘ a disjunctiv˘ a/conjunctiv˘ a, relat¸iile 1.10, 1.11, sau sub forma normal˘ a disjunctiv˘ a/conjunctiv˘ a, relat¸ile 1.12 ¸si 1.13 (sintez˘ a pe baz˘ a de 1-uri respectiv pe baz˘ a de 0-uri) ¸si apoi prin reduceri succesive se poate obt¸ine o form˘ a redus˘ a, care nu totdeauna este forma minim˘ a. Frecvent, forma canonic˘ a normal˘ a disjunctiv˘ a este transpus˘ a intr-o exprimare recursiv˘ a ceea ce poate duce ca un CLC cu num˘ ar mare de intr˘ ari s˘ a poat˘ a fi structurat repetitiv cu un acela¸si tip de circuit dar care are un num˘ ar de intr˘ ari mult mai mic. Modalitatea de exprimare recursiv˘ a va fi prezentat˘ a in continuare. Formele canonice normal disjunctive pentru funct¸iile de una, dou˘ a ¸si trei variabile sunt:

fi 3 = = =

fi 1

¯ 0 + d i1 x 0 ; = d i0 x

fi 2

= d i0 x ¯1 x ¯ 0 + d i1 x ¯ 1 x 0 + d i2 x 1 x ¯ 0 + d i3 x 1 x 0 = = (di0 x ¯0 + di1 x0 )¯ x1 + (di2 x ¯0 + di3 x0 )x1 = = fi 1 x ¯1 + fi 1∗ x1 ; i = 0, 1..., 15

i = 0, 1, 2, 3. (2.3)

d i0 x ¯2 x ¯1 x ¯ 0 + d i1 x ¯2 x ¯ 1 x 0 + d i2 x ¯ 2 x1 x ¯ 0 + d i3 x ¯ 2 x1 x0 + ¯ 0 + d i7 x 2 x 1 x 0 = ¯ 1 x 0 + d i6 x 2 x 1 x ¯1 x ¯ 0 + d i5 x 2 x +di4 x2 x ¯1 x ¯0 + x2 + (di4 x ¯1 x ¯0 + di1 x1 x0 + di2 x1 x0 + di3 x1 x0 )¯ (di0 x ¯0 + di7 x1 x0 )x2 = +di5 x1 x0 + di6 x1 x fi 2 x ¯2 + fi 2∗ x2 ; i = 0, 1, 2..., 255.

(2.4)

iar pentru n variabile se obt¸ine: fi n = fi n−1 x ¯n−1 + fi (n−1)∗ xn−1 ,

n

unde i ∈ [0, 22 )

(2.5)

Se observ˘ a c˘ a o funct¸ie de n variabile, fi n , se exprim˘ a ca o funct¸ie de o singur˘ a variabil˘ a xn−1 ai c˘ arei coeficient¸i sunt 2 funct¸ii reziduu f i n−1 , fi (n−1)∗ de celelalte n − 1 variabile (xn−2 , xn−3 , ..., x2 , x1 , x0 ). La fel, funct¸ia de n − 1 variabile fi n−1 se exprim˘ a ca o funct¸ie de o singur˘ a variabil˘ a x n−2 ai c˘ arei coeficient¸i sunt 2 funct¸ii reziduu de celelalte n − 2 variabile ¸s.a.m.d. pˆ ana la funct¸ia de o singur˘ a variabil˘ a fi1, care este o sum˘ a de dou˘ a produse. Toate funct¸iile, indiferent de num˘ arul variabilelor, pot fi exprimate ca o funct¸ie de o singur˘ a variabil˘ a, celelelte variabile sunt introduse ˆın cei doi coeficient¸i ca funct¸ii reziduu. Structura de circuit (modulul) care modeleaz˘ a fiecare funct¸ie fi k , k = 1, 2..., n este reprezentat˘ a ˆın Figura 2.6-a. Pornind de la funct¸ia fi n , modelat˘ a cu acest modul, la care se introduce succesiv, pentru funct¸iile reziduu, acela¸si tip de modul pˆ ana la funct¸ia de o singur˘ a variabil˘ a se obt¸ine un circuit cu structur˘ a de arbore binar, num˘ arul nivelurilor de module este egal cu n. Intr˘ arile ˆın primul nivel, pe port¸ile AND, sunt perechi formate din variabilele x 0 , x0 ¸si coeficient¸ii funct¸iei dij care genereaz˘ a produsele: di0 x0 , di1 x0 , di2 x0 , di3 x0 , ..., di2n −2 x0 , di2n −1 x0 . Coeficient¸ii dij j = 0, 1..., (2n − 1) sunt valorile din tabelul de adev˘ ar al funct¸iei f i n . Deoarece modulele din primul nivel calculeaz˘ a expresii banale de forma d ij x0 +

184

2.2. REPREZENTAREA CLC

di(j+1) x0 , care pot avea numai valorile: 0, x0 , x0 , 1, aceste module pot fi eliminate ¸si ˆınlocuite cu una din aceste valori, care nu trebuie calculate, deoarece exist˘ a ˆın sistem. Aceast˘ a analiz˘ a poate fi continuat˘ a ¸si la nivelurile urm˘ atoare de module pˆ ana la nivelul n, iar modulele care calculeaz˘ a expresii banale sunt ˆınlocuite. ˆIn general, prin elimin˘ arile de module, se obt¸ine un circuit de dimensiune mult mai mic˘ a decˆ at arborele binar init¸ial.

fk−1 _i xk f(k−1)* i xk a)

fki

fk−1 _i xk f(k−1)* i xk

fki

b)

Figura 2.6 Modulul pentru implementarea recurent˘ a a unei funct¸ii: a) cu structur˘ a AND-OR; b) structur˘ a NAND - NAND ,, O astfel de structur˘ a arborescent˘ a este o “platform˘ a pentru implementarea ori,, 2n c˘ arei funct¸ii de n variabile din cele 2 funct¸ii posibile. Particularizarea “platformei pentru implementarea unei anumite funct¸ii f i n se realizeaz˘ a prin aplicarea pe fiecare poart˘ a AND, din primul nivel, a cˆ ate unei valori a coeficient¸ilor d ij ˆın ordinea ˆın care ace¸stia sunt ˆın tabelul de adev˘ ar al funct¸iei respective. Structurarea arborelui, pentru implementarea recurent˘ a a funct¸iei, sub form˘ a de cascad˘ a AND - OR - AND - OR - ... este adecvat˘ a pentru o conversie numai cu port¸i a ceast˘ a structur˘ a NAND (di0 x + di1 x = di0 x · di1 x), ca ˆın Figura 2.6-b. Prin faptul c˘ poate fi realizat˘ a cu acela¸si tip de poart˘ a cu dou˘ a intr˘ ari este recomandat˘ a pentru implement˘ arile pe arii de port¸i logice (sect¸iunea 4.3). Exemplul 2.3 Pentru celula sumator complet cu tabelul de adevar 1.6 s˘a se modeleze funct¸ia sum˘ a si pe un circuit cu structur˘ a de arbore. Solut¸ie. Pe port¸ile AND din primul nivel, Figura 2.7, se aplic˘ a prima variabil˘ a C i−1 , alari ˆın ordinea ternˆ and negata Ci−1 ¸si nenegata Ci−1 , iar coeficient¸ii funct¸iei si se aplica pe intr˘ ˆın care sunt ˆın tabelul 1.6. Toate aceste pot¸i AND calculeaz˘ a valori banale, 0,Ci−1 , Ci−1 care exist˘ a ˆın sistem, deci port¸ile AND din primul nivel pot fi eliminate, la fel ¸si port¸ile OR pot fi eliminate, rezult˘ a c˘ a primul nivel poate lipsi. Pe nivelul 2 de module se aplic˘ a ie¸sirile de la primul nivel ¸si alternativ variabila Bi ¸si Bi ; pe acest nivel nu se mai pot elimina port¸i. Pe nivelul 3 se aplic˘ a expresiile calculate pe nivelul 2 ¸si alternˆ and variabilele A i a o modelare numai pe dou˘ a niveluri de module. Analizˆ and expresiile calcu¸si Ai . Rezult˘ late dup˘ a fiecare nivel rezult˘ a pentru celula sumator complet expresia cunoscut˘ a a sum˘ a si = Ai ⊕ Bi ⊕ Ci−1 . Aceast˘ a structur˘ a arborescent˘ a poate implementa oricare funct¸ie de 3 variabile, particularizarea pentru o anumit˘ a funct¸ie se face prin modificarea coeficient¸ilor pe intr˘ arile din primul nivel (care se cite¸ste din tabelul de adev˘ ar al funct¸iei).

De asemenea, forma canonic˘ a normal˘ a disjunctiv˘ a a funct¸iei de n variabile poate fi transcris˘ a ˆıntr-o reprezentare de funct¸ie numai de 2 variabile x 1 , x0 , restul de n − 2 variabile se introduc ˆın coeficient¸i sub forma unor funct¸ii reziduu. Astfel, pentru

185

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

Ci−1 Ci−1 Ci−1 Ci−1 Ci−1 Ci−1 Ci−1 Ci−1

0

0

1

Ci−1

1

Ci−1

0

0

1

Ci−1

0

0

0

0

1

Ci−1

Ci−1 Bi

Ci−1+Bi Ai

Ci−1 Bi

Ai +Bi +Ci−1

Ci−1 Bi

Ci−1+Bi Ai

Ci−1 Bi Bi

Ci−1

Ai

Figura 2.7 Implementarea funct¸iei suma si , ¸si a unei celule sumator complet, pe o structur˘ a arborescent˘ a. funct¸ia fi 3 , relat¸ia 2.4, se obt¸ine urm˘ atoarea form˘ a: fi 3

x 1 x0 + ¯2 + di5 x2 )¯ x1 x ¯0 + (di1 x ¯2 + di4 x2 )¯ = (di0 x ¯2 + di7 x2 )x1 x0 ¯0 + (di3 x ¯2 + di6 x2 )x1 x +(di2 x

(2.6)

iar pentru o funct¸ie fi n rezult˘ a: fi n

= fk n−2 · x ¯1 x ¯0 + fl n−2 · x ¯1 x0 + fp n−2 · x1 x ¯0 + fq n−2 · x1 x0 n n−2 iar i ∈ [0, 22 ) ¸si k, l, p, q ∈ [0, 22 )

Pentru un CLC cu 4 intr˘ ari A, B, C, D, avˆ and tabelul de adev˘ ar din Figura 2.4-a, se poate obt¸ine o exprimare ca o funct¸ie de numai 3 variabile A, B, C cu variabila D introdus˘ a ˆın coeficient¸ii funct¸iei, Figura 2.4-b, sau ca o funct¸ie numai cu dou˘ a variabile A, B, celelalte dou˘ a variabile, C, D sunt introduse ca variabile reziduu ˆın coeficient¸ii funct¸iei, Figura 2.4-c. ˆIn cazul general, oricare funct¸ie fi n poate fi exprimat˘ a ca o funct¸ie numai de j variabile xj−1 , xj−2 , ..., x1 , x0 , restul variabilelor xn−1 , xn−2 , ..., xn−1−j (variabile reziduu) fiind incluse in coeficient¸ii funct¸iei. fi n

= fk n−j · xj−1 xj−2 ...x1 x0 + ... + fq n−j · x ¯j−1 x ¯j−2 ...¯ x1 x ¯0 2n 2(n−j) iar i ∈ [0, 2 ), k, ..., q ∈ [0, 2 )

(2.7)

ˆIn concluzie, o funct¸ie fi n poate fi exprimat˘ a ca o funct¸ie de n, n−1, n−2, ..., 3, 2, 1 variabile dac˘ a respectiv un num˘ ar de 0, 1, 2, ..., n−3, n−2, n−1 variabile sunt introduse ca variabile reziduu ˆın expresiile coeficient¸ilor.

186

2.2. REPREZENTAREA CLC

Exprimarea funct¸iilor cu variabile reziduu poate determina implement˘ ari mai simple. Intuitiv, dar nu totdeauna, o funct¸ie cu mai put¸ine variabile necesit˘ a o implementare mai put¸in costisitoare. Acceptˆ and aceast˘ a afirmat¸ie, se aduce funct¸ia la un num˘ ar cˆ at mai mic de variabile ¸si implementarea va fi mai ieftin˘ a dac˘ a ¸si coeficient¸ii de variabile reziduu se reduc la valori banale sau se calculeaz˘ a cu circuite simple.

2.2.3

Diagrama Veitch - Karnaugh

Diagrama Veitch - Karnaugh (V-K) este o alt˘ a modalitate de a descrie un CLC. Diagrama Veitch - Karnaugh, ca modalitate grafic˘ a de descriere, nu este prea uzual˘ a dar, ˆın schimb, utilzarea diagramei V-K pentru minimizarea unui CLC, pornind de la tabelul de adev˘ ar sau de la funct¸ia logic˘ a, este un instrument de lucru uzual ˆın proiectare sau analiz˘ a. Acest instrument grafic pentru un CLC cu n intr˘ ari ¸si o singur˘ a ie¸sire, este o diagram˘ a dreptunghiular˘ a sau p˘ atrat˘ a care cont¸ine 2 n c˘ asut¸e elementare pe care sunt mapate, fie cele 2n valori ale coeficient¸ilor funct¸iei din tabelul de adev˘ ar, fie cei 2n temeni canonici Pi sau Si ai funct¸iei (relat¸iile 1.10 ¸si 1.11). Modul ,, cum se scrie “coordonata unei c˘ asut¸e elementare determin˘ a cele 2 variante: diagrama Veitch ¸si diagrama Karnaugh. ˆIntr-o nuant¸a de tratare didactic˘ a, fiecare din cele 2 diagrame sunt prezentate separat, atˆ at pentru exprimarea funct¸iei sub forma canonic˘ a normal˘ a disjunctiv˘ a (termenii produs P ), cˆ at ¸si pentru forma canonic˘ a normal˘ a conjunctiv˘ a (termeni suma S), pentru n = 2, 3, 4, 6, Figura 2.7. ˆIn varianta Veitch, coordonata unei c˘ asut¸e elementare este exprimat˘ a prin variabilele funct¸iei ¸si aceste variabile sunt notate pe marginile diagramei, iar in acea c˘ asut¸a se introduce valoarea lui Pi sau Si (indicele i este num˘ arul zecimal a c˘ arui reprezentare ˆın binar natural rezult˘ a din codul format de variabilele coordonate ale casut¸ei). ˆIn varianta Karnaugh, coordonata unei c˘ asut¸e elementare este exprimat˘ a prin valorile variabilelor (conform codific˘ arii mintermilor sau maxtermilor, 1.1.4) ¸si aceste valori ale variabilelor sunt notate pe marginile diagramei; ˆın acea c˘ asut¸a se introduce coeficientul di din tabelul de adev˘ ar corespunz˘ ator pentru configurat¸ia valorilor de intrare (care constituie coordonatele c˘ asut¸ei). Ambele variante reprezint˘ a acela¸si CLC, la varianta Veitch se ajunge mai u¸sor pornind de la forma canonic˘ aa funct¸iei iar la varianta Karnaugh se ajunge mai u¸sor de la tabelul de adev˘ ar. De fapt, ˆın practic˘ a, notat¸iile de la varianta Veitch ¸si de la varianta Karnaugh se mixeaz˘ a rezultˆ and diagrama referit˘ a ca Veitch - Karnaugh, la care este redundant¸a de informat¸ie, adic˘ a sunt prezente at˘ at variabilele cˆ at ¸si valorile variabilelor. ˆIn figurile 2.8-a ¸si 2.8-b pentru n = 2, n = 3 sunt reprezentate separat diagramele Veitch ¸si Karnaugh ¸si pentru fiecare dintre ele s-a figurat atˆ at forma canonic˘ a normal˘ a disjunctiv˘ a (P ), cˆ at ¸si forma canonic˘ a normal˘ a conjunctiv˘ a (S). Dar, in Figura 2.8-c, pentru n = 4, la cele 2 diagrame notarea (variabilele ¸si valorile) este intermixat˘ a atˆ at pentru forma canonic˘ a normal˘ a disjunctiv˘ a cˆ at ¸si pentru forma canonic˘ a normal˘ a conjunctiv˘ a (adic˘ a, pe marginile diagramelor sunt notate atˆ at variabilele, cˆ at ¸si valorile acestor variabile). Diagramele pentru n = 5 se obt¸in prin al˘ aturarea de dou˘ a diagrame de n = 4 iar pentru n = 6 din al˘ aturarea a patru diagrame de n = 4 sau dou˘ a diagrame de n = 5. Dar pentru a p˘ astra adiacent¸a la alaturare a dou˘ a diagrame de n = 4 trebuie p˘ astrat˘ a num˘ ararea in cod Gray adic˘ a, 000, 001, 011, 010, 110, 111, 101, 100. ˆIn oricare din diagrame, pentru cele 2n c˘ asut¸e elementare, fiecare variabil˘ a intr˘ a

187

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

n=2 VEITCH

X1

P0

P1

P2

P3

1 d2

X0

d1 d3

S0

S1

X0 0 X1 d 0 0

S2

S3

1 d2

S

X1

KARNAUGH X0 0 1 X1 0 d0 d1

X0

P

n=3 VEITCH P0

P1

P3

P2

X 1X 0 X 2 00 0 d0

P4

P5

P7

P6

X0

X2

d3

X1

X2

a)

01 P2

01 P 4

P5

P7

P6

d6

01 d1

11 d3

01 d2

d5

d7

d6

S4

S5

S7

S6

1 d4

11 P 12 P 13 P 15

P 14

01 P 8

P 10

X0

c)

d7

S2

X1

P 11

d5

S3

S

X 1X 0

11 P3

P9

1 d4

S1

X0

n=4

01 P1

X3

01 d2

X1

X 1X 0 X 3X 2 00 00 P 0 (V−K)

11 d3

S0

b) P

01 d1

X 1X 0 00 X2 0 d0

1

KARNAUGH

X 3X 2

01 S1

11 S3

01 S2

S4

S5

S7

S6

11 S12

S13

S15

S14

S8

S9

S11

S10

01

X2 X3

X1

00 00 S0

01

X2

n=6

X2

X0

X1 X1 X 2X 1X 0 X 5X 4X 3 000 001 011 010 110 111 101 100

X4

X4 X5

d)

000 P 0

P1

P3

P2

001 P 8

P9

P 11

011 P 24 P 25

P5

P4

P 10 P 14 P 15

P 13

P 12

P 27

P 26 P 30 P 31

P 29

P 28

010 P 16 P 17

P 19

P 18 P 22

110 P 48 P 49

P 51

P 50 P 54 P 55

P 53 P 52

111 P 56 P 57

P 59

P 58 P 62 P 63

P 61

P 60

101 P 40 P 41

P 43

P 42 P 46 P 47

P 45

P 44

100 P 32 P 33

P 35

P 34

P 37 P 36

X0

P6

P7

X3

P 23 P 21 P 20

P 38 P 39

X3

X0

Figura 2.8 Diagramele Veitch ¸si Karnaugh: a,b) forma P ¸si forma S pentru n = 2 ¸si n = 3; c) diagrama V-K forma S ¸si P pentru n = 4; d) diagrama V-K forma P pentru n = 6.

188

2.2. REPREZENTAREA CLC

negat˘ a ˆın coordonatele a 2n /2 c˘ asut¸e ¸si nenegat˘ a ˆın restul de 2n /2 c˘ asut¸e. Trecerea de la o diagram˘ a pentru forma P la o diagram˘ a pentru forma S se realizeaz˘ a prin substituirea ˆın coordonate a variabilei nenegat˘ a cu variabila negat˘ a, x → x, iar a asut¸ei se substituie termenii P i → Si . celor negate cu nenegate x → x ¸si ˆın interiorul c˘ Trecerea de la forma S la cea P este, la fel, o negare a variabilelor coordonate ale casut¸elor iar ˆın c˘ asut¸e se substituie termenii S i → Pi . ˆIn fiecare diagram˘ a V-K dou˘ a c˘ asut¸e vecine sunt adiacente, adic˘ a distant¸a Humming este egal˘ a cu 1. Adiacent¸a rezult˘ a in urma faptului c˘ a notarea, pe marginea diagramelor, a coordonatelor c˘ asut¸elor se face prin num˘ arare ˆın cod Gray. Adiacent¸a˘ exist˘ a ˆıntre c˘ asut¸ele elementare de pe fiecare dou˘ a linii al˘ aturate sau de pe fiecare dou˘ a coloane al˘ aturate, adiacent¸a se extinde ¸si intre cele dou˘ a linii extreme sau ˆıntre cele 2 colane extreme (de exemplu, in Figura 2.8 - c ˆıntre coloanele 00 cu 01 sau ˆıntre liniile 00 cu 01). Nu sunt adiacente dou˘ a c˘ asut¸e care sunt situate ˆın dinagonal˘ a una fat¸a˘ de pe alta. Datorit˘ a adiacent¸ei, cˆ and se trece de la scrierea coordonatei unei c˘ asut¸e elementare la scrierea coordonatei a dou˘ a c˘ asut¸e elementare, adic˘ a luate ˆımpreun˘ a (2 1 ), din coordonata rezultat˘ a va lipsi variabila care ˆı¸si modific˘ a valoarea ˆıntre cele dou˘ a c˘ asut¸e vecine (deoarece x + x ¯ = 1 ¸si x · x ¯ = 0). De exemplu, in Figura 2.8-c pentru forma P , cˆ and se scrie coordonata pentru c˘ asut¸ele adiacente P 5 ¸si P7 luate ˆımpreun˘ a x ¯ 3 x2 x ¯ 1 x0 + x ¯ 3 x2 x1 x0 = x ¯3 x2 x0 (¯ x 1 + x1 ) = x ¯ 3 x2 x0 coordonata rezultat˘ a are o variabil˘ a mai put¸in, deoarece a disp˘ arut variabila x 1 care are valoarea diferit˘ a ˆın cele dou˘ a coduri 0101 ¸si 0111 (x 1 schimb˘ a valoarea la trecerea dintre P5 ¸si P7 ). ˆIn aceea¸si figur˘ a, pentru forma S cˆ and se scrie coordonata pentru c˘ asut¸ele adicente S5 ¸si S7 luate ˆımpreun˘ a (x3 + x ¯ 2 + x1 + x ¯0 )(x3 + x ¯2 + x ¯1 + x ¯0 ) = (x3 + x ¯2 + x ¯0 ) dispare variabila x1 . Dac˘ a se consider˘ a o suprafat¸a˘ care grupeaz˘ a patru c˘ asut¸e adiacente (2 2 ) ˆın coordonata comun˘ a rezultant˘ a se vor elimina dou˘ a variabile; pentru un grup de opt c˘ asut¸e adiacente (23 ) se vor elimina trei variabile, iar pentru un grup de 2 n c˘ asut¸e adiacente se vor elimina n variabile. Aceast˘ a modalitate grafic˘ a, de indentificare de suprafet¸e ce grupeaz˘ a c˘ asut¸e adiacente, ˆın fond, este o grupare de termeni canonici, dar ˆın varianta grafic˘ a operat¸ia de reducere a termenilor canonici este mai simpl˘ a ¸si mai put¸in supus˘ a erorii decˆ at atunci cˆ and se lucreaz˘ a cu formele analitice normale conjunctive, FNC, sau normale disjunctive, FND, ale funct¸iilor. ˆIn diagrama Veitch - Karnaugh se introduc ˆın fiecare c˘ asut¸a elementar˘ a valorile coeficient¸ilor din tabelul de adev˘ ar al funct¸iei. Cˆ and se face sinteza funct¸iilor pe baza FND se consider˘ a tot¸i mintermii care au valoarea 1 iar pentru sinteza pe baza de FNC se consider˘ a tot¸i maxtermii care au valoarea 0. Rezult˘ a c˘ a in diagrama V-K de tip P sau S trebuie luate respectiv toate c˘ asut¸ele elementare care au valoarea unu sau toate cele care au valoarea zero ¸si aceasta se face identificˆ and suprafet¸e care cuprind c˘ asut¸ele adiacente grupate in numar de puteri ale lui doi. Evident, se caut˘ a a se forma suprafet¸e care s˘ a cuprind˘ a un num˘ ar, de puteri ale lui doi, de c˘ asut¸e adiacente cˆ at mai mare. Vom referi coordonata unei suprafet¸e de c˘ asut¸e adiacente

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

189

grupate cu termenul de Implicant Prim, IP. ˆIn aceast˘ a operat¸ie de identificare de suprafet¸e maxime poate apare o suprafat¸a ce acoper˘ a o grupare de c˘ asut¸e adiacente, dar fiecare din aceste c˘ asut¸e elementare ale grup˘ arii mai este acoperit˘ a cel put¸in de ˆınc˘ a o alt˘ a suprafat¸a; o astfel de suprafat¸a corespunde unui IP neesent¸ial. Dar poate exist˘ a o suprafat¸a care acoper˘ a o grupare de c˘ asut¸e adiacente dar dintre aceste c˘ asut¸e elementare exist˘ a cel put¸in o c˘ asut¸a care nu mai este acoperit˘ a ¸si de c˘ atre o alt˘ a suprafat¸a˘; o astfel de suprafat¸a corespunde unui IP esent¸ial. Pentru exprimarea funct¸iei ˆın forma redus˘ a trebuie luate ˆın considerare suprafet¸e maxime astfel ˆıncˆ at s˘ a fie acoperite toate c˘ asut¸ele elementare cu valoarea 1 pentru forma redus˘ a disjunctiv˘ a (sum˘ a de produse), respectiv s˘ a fie acoperite toate c˘ asut¸ele elementare cu valoarea 0 pentru forma redus˘ a conjunctiv˘ a (produs de sume). Definit¸ia 2.4 Forma redus˘ a a unei sume de produse este minim˘ a atunci cˆ and nu exist˘ a o alt˘ a form˘ a redus˘ a a funct¸iei cu mai put¸ini termeni produs sau oricare alt˘ a form˘ a cu acela¸si num˘ ar de termeni produs are cel put¸in acela¸si num˘ ar de variabile. 

Dup˘ a cum s-a ar˘ atat ˆın sect¸iunea 1.5 forma redus˘ a ca sum˘ a de produse se implementeaz˘ a simplu pe o structur˘ a AND-OR, iar forma redus˘ a ca produs de sume pe o structur˘ a OR-AND. Rezult˘ a, implicit, pentru implementare, c˘ a forma minim˘ a va duce la un num˘ ar minim de port¸i pe primul nivel (de AND) ¸si de intr˘ ari pe port¸ile din nivelul doi (OR) ¸si, evident, in cadrul acesta la cel mai mic num˘ ar de intr˘ ari (variabile) pe primul nivel. La fel se poate da o definit¸ie pentru forma minim˘ a a unui produs de sume. Pentru exprimarea funct¸iei ˆın form˘ a redus˘ a se selecteaz˘ a: 1. obligatoriu tot¸i IP esent¸iali; 2. un num˘ ar cˆ at mai mic de IP neesent¸iali, dar care s˘ a acopere toate c˘ asut¸ele elementare ˆınscrise cu unu ce nu au fost acoperite de c˘ atre IP esent¸iali Exemplul 2.4 Pentru funct¸ia F dat˘a sub forma FND, F =

15 X (0, 2, 6, 9, 11, 13, 14, 15) 0

sau sub forma FNC F =

15 Y

(1, 3, 4, 5, 7, 8, 10, 12)

0

s˘ a se realizeze minimizarea cu diagrama V-K. Solut¸ie. Din expresia funct¸iei dat˘ a sub forma listelor anterioare se completeaz˘ a cu unu diagrama V-K pentru sinteza ca sum˘ a de produse, Figura 2.9-a ¸si se completeaz˘ a cu 0 diagrama V-K pentru sinteza ca produs de sume, Figura 2.9-b. Se consider˘ a suprafet¸e de c˘ asut¸e adiacente, grupate cˆ ate dou˘ a sau patru ¸si rezult˘ a pentru forma sum˘ a de produse doi IP esent¸iali (a = x3 x0 , b = x ¯3 x ¯2 x ¯0 ) ¸si trei IP neesent¸iali (c = x3 x2 x1 , d = x2 x1 x ¯0 , e = x ¯ 3 x1 x ¯0 ), iar pentru forma produse de sume doi IP esent¸iali (a = (x3 + x ¯0 ), b = (¯ x3 + x2 + x0 )) ¸si trei IP neesent¸iali (c = (x3 + x ¯2 + x1 ), d = (¯ x3 + x1 + x0 ), e = (¯ x2 + x1 + x0 )). Acoperirea complet˘ a pentru prima sum˘ a de produse trebuie sa cont¸ina cei doi IP esent¸iali a ¸si b iar dintre cei neesent¸iali un num˘ ar cˆ at mai mic, dar care s˘ a acopere restul de c˘ asut¸e ˆın care este

190

2.2. REPREZENTAREA CLC

15

15

F= Σ (0,2,6,9,11,13,14,15) 0 b X1 X 1X 0 X 3X 2 00 01 11 10 00

1

1 1

01 1

11

X 3X 2

1

00 00

e

e

X2

1

01

0

11

0

10

0

01

11

0

0

0

0

10

X2

X3

X3 1

10 a

a)

F= Π (1,3,4,5,7,8,10,12) 0 c a X1 X 1X 0

1 X0

IP esentiali: a=X 3X 0; b=X 3X 2X 0 IP neesentiali: c=X 3X 2X 1 d=X 2X 1X 0 e=X 3X 1X 0

d c

d

0 X0

b

IP esentiali: a=(X 3+X 0); b=(X 3+X 2+X 0)

b)

IP neesentiali: c=(X 3+X 2+X 1) d=(X 3+X 1+X 0) e=(X 2+X 1+X 0)

Figura 2.9 Exemplu de minimizare: a) pe baz˘ a de 1 pentru funct¸ia F = 15 15 Q P (0, 2, 6, 9, 11, 13, 14, 15); b) pe baz˘ a de 0 pentru funct¸ia F = (1, 3, 4, 5, 7, 8, 10, 12). 0

0

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

191

ˆınscris˘ a valoarea 1. Se obt¸in formulele de acoperire a + b + d sau a + b + c + e. Evident, prima form˘ a este forma minim˘ a f = x 3 x0 + x ¯3 x ¯2 x ¯ 0 + x 2 x1 x ¯0 ˆIn acela¸si mod se obt¸ine forma redus˘ a pentru produs de sume: f = (x3 + x ¯0 )(¯ x3 + x2 + x0 )(¯ x2 + x1 + x0 )

Forma minim˘ a a unei funct¸ii f ca produs de sume se obt¸ine prin acoperirea tuturor c˘ asut¸elor elementare din diagrama V-K care au valorile 0. Dar se poate obt¸ine aceea¸si form˘ a minim˘ a ¸si printr-o sintez˘ a de suma de produse a funct¸iei complementare f¯. Dac˘ a funct¸ia f are valori 1 ˆın anumite c˘ asut¸e elementare evident c˘ a funct¸ia negat˘ a f¯ are valori 1 in restul de c˘ asut¸e elementare ale diagramei V-K, adic˘ a tocmai ˆın c˘ asut¸ele ˆın care funct¸ia f are valori 0, ¸si care pot fi utilizate pentru sinteza ca produs de sume. Deci, obt¸inˆ and forma redus˘ a ca sum˘ a de produse a funct¸iei complementare f¯ ¸si negˆ and aceast˘ a expresie rezult˘ a forma redus˘ a ca produs de sume a funct¸iei f . ˆIn acest mod se obt¸ine forma minim˘ a a produsului de sume a lui f numai cˆ and forma redus˘ a a lui f¯ a ˆ fost cea minim˘ a (¸si aceasta depinde de cum s-au selectat IP neesent¸iali). In Exemplul 2.4 , Figura 2.9-b, o form˘ a redus˘ a ca sum˘ a de produse a lui f¯ poate fi: f¯ = x ¯ 3 x0 + x 3 x ¯2 x ¯ 0 + x2 x ¯1 x ¯0 iar prin negare ¸si aplicare teoremei De Morgan se obt¸ine chiar forma minim˘ a a produsului de sume: f = (x3 + x ¯0 )(¯ x3 + x2 + x0 )(¯ x 2 + x1 + x0 ) obt¸inut˘ a prin sinteza pe baz˘ a de zero-uri. Calculul formei reduse pentru f¯, ca sum˘ a de produse, este util˘ a pentru c˘ a unele dispozitive programabile (PLA) prezint˘ a pe ie¸sire posibilitatea de a nega, printr-o poart˘ a XOR, funct¸ia calculat˘ a, deci generarea formei produs de sume. Dac˘ a se poate implementa u¸sor atˆ at forma produs de sume, cˆ at ¸si forma sum˘ a de produse se pune intrebarea care dintre cele dou˘ a forme reduse obt¸inute (nu totdeauna minime!) se alege? se va alege forma care are num˘ arul minim de termeni. 2.2.3.1

Minimizarea funct¸iilor incomplet definite

Exista situat¸ii ˆın care funct¸ionarea unui CLC prin valoarea logic˘ a generat˘ a pe ie¸sire nu modific˘ a cu nimic comportamentul util al circuitului. Valoarea logic˘ a pe ie¸sire se poate modifica fie ˆın 1 fie ˆın 0 dar aceste valori sunt indiferente (do not care) pentru utilitatea circuitului, de aceea ie¸sirea respectiv˘ a se noteaz˘ a in tabelul de adev˘ ar sau ,, ˆın diagrama V-K cu simbolul “- . Astfel de situat¸ii apar cˆ and anumite configurat¸ii de intrare, restrict¸ionate prin condit¸iile de funct¸ionare, nu se aplic˘ a niciodat˘ a pe intr˘ ari, sau cˆ and pentru anumite configurat¸ii de intrare funct¸ionarea sistemului nu consider˘ a valorile logice de pe ie¸siri. Simbolurilor indiferente din diagramele V- K, prin includerea lor ˆın grupuri de c˘ asut¸e elementare adiacente, pot aduce la expresii mult mai simple pentru IP esent¸iali sau neesent¸iali. Dupa caz, acestor simboluri li se

192

2.2. REPREZENTAREA CLC

pot atribui valoarea 1, pentru sinteza ca sum˘ a de produse, respectiv 0, pentru sinteza ca produs de sume, astfel ˆıncˆ at suprafet¸ele care acoper˘ a c˘ asut¸e adiacente sa devin˘ a cˆ at mai mari. Exemplul 2.5 Pentru convertorul BCD - EXCESS3, din Figura 2.3 s˘a se deduc˘a formulele minime pentru ie¸sirile E3 , E2 , E1 , E0 . Solut¸ie. Din tabelul de adev˘ ar din Figura 2.3 se obt¸in sub form˘ a de list˘ a valorile ie¸sirilor: E3 =

15 X

(5, 6, 7, 8, 9) + d(10, 11, 12, 13, 14, 15)

0

E2 =

15 X

(1, 2, 3, 4, 9) + d(10, 11, 12, 13, 14, 15)

0

E1 =

15 X

(0, 3, 4, 7, 8) + d(10, 11, 12, 13, 14, 15)

0

E0 =

15 X

(0, 2, 4, 6, 8) + d(10, 11, 12, 13, 14, 15)

0

E3

15

Σ (1,2,3,4,9)+d(10,11,12,13,14,15)

0

AB

CD

0

C 00

01

11

E2

15

Σ (5,6,7,8,9)+d(10,11,12,13,14,15)

AB

10

00

CD

C 00

00 1

01

1

1

01

01

11

10

1

1

1

1

B

B

11

11

A

A 10

1

1

1

10 D

A

D

BD

BC

15

Σ (0,2,4,6,8)+d(10,11,12,13,14,15) 0

0

AB

C 00

01

11

00

1

1

01

1

1

E0

15

Σ (0,3,4,7,8)+d(10,11,12,13,14,15) CD

BC

BD

BCD

E1

AB

10

CD

C 00

01

11

10

00

1

1

01

1

1

B

B

11

11

A

A 10

1

10 D

CD

1 D

CD

D

Figura 2.10 Minimizarea funt¸iilor incomplet definite. Exemplificare pentru sinteza convertorului BCD-EXCESS3, Exemplul 2.5.

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

193

Pe intr˘ arile circuitului se aplic˘ a numai codurile BCD, combinat¸iile binare pentru numerele 10,11,12,13,14,15 nu se aplic˘ a niciodat˘ a, deci ie¸sirile corespunz˘ atoare se noteaz˘ a cu indiferent ˆın diagramele V-K din Figura 2.10. Pentru sintez˘ a ca sume de produse, pentru ie¸sirile ,, E3 , E2 , E1 , E0 , c˘ asut¸elor notate cu “- , ce intr˘ a ˆın grupuri de adiacent¸a ˘ selectate, li se atribuie valoarea logic˘ a 1. Se obt¸in astfel urm˘ atoarele forme minime: E3 E2 E1 E0

2.2.3.2

= A + BD + BC ¯D ¯ + BD ¯ + BC ¯ = BC ¯D ¯ + CD =C ¯ =D

Minimizare pe diagrame V-K cu variabile reziduu

Tabelul de adev˘ ar, cˆ and num˘ arul de variablie este mare, poate fi redus la o form˘ a cu mai put¸ine linii dac˘ a unele din variabilele funct¸iei sunt introduse ˆın coeficient¸ii funct¸iei ca variabile reziduu, aceast˘ a modalitate de reducere a fost exemplificat˘ a in Figura 2.4. Similar, ¸si diagrama V-K poate fi redus˘ a de la 2 n c˘ asut¸e la 2n−1 c˘ asut¸e cˆ and se introduce una din variabile ˆın coeficient¸ii din interiorul c˘ asut¸elor, respectiv la 2n−2 c˘ asut¸e cˆ and se introduc dou˘ a variabile reziduu ¸si a¸sa mai departe. Pentru o funct¸ie de dou˘ a variabile, fi2 , sau de trei variabile, fi3 , formulele analitice cu o variabil˘ a reziduu introdus˘ a ˆın coeficient¸ii funct¸iei sunt cele date de relat¸iile 2.3 respectiv 2.4. Se observ˘ a c˘ a expresia unui coeficient reziduu, ˆın funct¸ie de variabila reziduu x, este de forma di x ¯ + dj x. Ca structur˘ a diagrama V-K, ˆın raport cu o variabil˘ a care se introduce ca variabil˘ a reziduu x, cuprinde 2 n−1 c˘ asut¸e care au ˆın coordonat˘ a variabila x ¯ ¸si 2n−1 c˘ asut¸e care au ˆın coordonat˘ a variabila x. C˘ asut¸ele elementare care cuprind ˆın coordonat˘ a viitoarea variabil˘ a reziduu x se spar˘ a ˆın dou˘ a p˘ art¸i egale dac˘ a se traseaz˘ a o linie prin mijlocul zonei corespunz˘ atoarea variabilei x din diagrama V-K. ˆIn ambele p˘ art¸i ale liniei mediane se grupeaz˘ a cˆ ate dou˘ a c˘ asut¸e elementare, una care are ˆın coordonat˘ ax ¯ ¸si coeficientul di ¸si una care are ˆın coordonat˘ a x ¸si coeficientul d j . Se efectueaz˘ a calculul di x ¯+dj x care va fi noul coeficient al c˘ asut¸ei elementare ˆın diagrama V-K rezultat˘ a, iar coordonata acestei c˘ asut¸e rezultate este tocmai coordonata comun˘ a a celor dou˘ a c˘ asut¸e elementare din care a provenit. Acest nou coeficient poate avea doar una din valorile 0, 1, x, x ¯. Aceast˘ a modalitate de reducere este prezentat˘ a ˆın Figura 2.11-a pentru o funct¸ie de trei variabile cˆ and se elimin˘ a variabila x 1 , iar in Figura 2.11-b pentru o funct¸ie de patru variabile cˆ and se elimin˘ a variabila x 0 . Pentru fiecare din aceste cazuri se ha¸sureaz˘ a zona variabilei reziduu, respectiv se duce linia median˘ a prin aceast˘ a zon˘ a ¸si se grupeaz˘ a o c˘ asut¸a din zona ha¸surat˘ a (x) cu una din zona neha¸surat˘ a (¯ x). De exemplu, pentru n = 3, prin gruparea c˘ asut¸ei ha¸surate cu coeficientul d 3 cu cea neha¸surat˘ a cu coeficientul d1 se obt¸ine coeficientul d3 x+d1 x care se va ˆınscrie ˆın noua c˘ asut¸a de coordonate x2 x0 (coordonata comun˘ a a celor dou˘ a c˘ asut¸e luate ˆımpreun˘ a). Iar ˆın diagrama V-K de patru variabile (x3 , x2 , x1 , x0 ) produsul d6 x ¯0 + d7 x0 care va fi ˆın diagrama de trei variabile (x3 , x2 , x1 ) coeficientul c˘ asut¸ei de cordonate x ¯ 3 x2 x1 . Diagrama cu variabile reziduu poate fi o form˘ a mai compact˘ a ¸si, uneori, cu astfel de diagrame se obt¸ine mai u¸sor forma minim˘ a. Deducerea formei reduse dintr-o diagram˘ a care cuprinde coeficient¸i cu variabile reziduu se face ˆın urm˘ atorii pa¸si:

194

2.2. REPREZENTAREA CLC

x0

ÿþ ÿþ þÿ ÿþ ÿþ ÿþ ÿþ ÿþ ÿþ ÿþ ÿþ ÿþ þÿ þÿ þÿ

x 1x 0 x 3x 2

ÿþ

x1 x 1x 0

x2

x2

ÿþ

x0 d0

d1

d4

d5

d3

d2

d7

d6

x1

ÿþ

d4

þÿ

x3

x1 x0 x2

x2 a)

d12 d8

d1

d3

d5

d7

d13

d15

d9

d11

x0

x0 d0x 1 + d2x 1

d1x 1 + d3x 1

d4x 1 + d6x 1

d5x 1 + d7x 1

x 2x 1 x3

x3 b)



x0

d0

ÿþ

                    

 

d14





d2



d6



x2

d10

x1

x1 d0x 0 + d1x 0

d2x 0 + d3x 0

d6x 0 + d7x 0

d4x 0 + d5x 0

d8x 0 + d9x 0

d10x 0 + d11x 0

d14x 0 + d15x 0

d12x 0 + d13x 0 x2

Figura 2.11 Exemplificare de introducere a unei variabile reziduu: a) pentru o diagram˘ a V-K de trei variabile; b) pentru o diagram˘ a V-K de patru variabile. Pasul 1. In toate c˘ asut¸ele elementare ˆın care coeficientul cont¸ine variabile reziduu se substituie acesta cu zero ¸si apoi se face extragerea funct¸iei dup˘ a regula normal˘ a prin gruparea suprafet¸elor de 1-uri. Pasul 2. In toate c˘ asut¸ele ˆın care coeficientul este 1 se substituie acesta cu indiferent ¸si apoi se face extragerea dup˘ a gruparea suprafet¸elor care cuprind coeficient¸ii care au aceea¸si expresie de variabile reziduu. Pasul 3. Forma redus˘ a a funct¸iei se obt¸ine prin sumarea logic˘ a a expresiei obt¸inut˘ a la Pasul 1 cu cea obt¸inut˘ a la Pasul 2. Dar nu totdeauna forma redus˘ a obt¸inut˘ a la la Pasul 3 este cea minim˘ a. Pentru a obt¸ine forma minm˘ a se recomand˘ a: 1. Folosind axiomele ¸si teoremele algebrei logice, Tabelul 1.2, s˘ a se transforme un coeficient compus din termeni produs, care cont¸ine variabile reziduu, ˆıncˆ at s˘ a se obt¸in˘ a un num˘ ar cˆ at mai mic de termeni produs diferit¸i. 2. Dac˘ a ˆıntr-o c˘ asut¸a˘ exist˘ a un coeficient compus dintr-o sum˘ a de termeni produs, care cont¸in variabile reziduu, atunci aceast˘ a c˘ asut¸a˘ se include, conform pasului 2 enunt¸at anterior, in fiecare din suprafet¸ele care acoper˘ a unul dintre termenii produs din aceast˘ a sum˘ a.

195

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

Exemplul 2.6 Pentru ie¸sirea E3 a convertorului BCD - EXCESS3, cu tabelul de adev˘ ar dat ˆın Figura 2.3, s˘ a se deduc˘ a expresia minim˘ a utillizˆ and diagramele V-K pentru 4,3 ¸si 2 variabile. CD AB 00 00 01 A a)

d)

11 10

C 01

11

10

0

0

0

0

            0

1

1

1

            1

D C CD B 00 01 11 10

1



CD B 00

 

B A



0

A

B 1

A

b)

B

           

C

01

11

A

A

1

1



10

 

A



D

A

A

A

0 0

0

0

0

B 1 A

1

1

1

B 1 0

1

1

1

e)

1 A

1 D+A 1

C B 0 0 0 1

0

1 0 1 BC

+

B +

1

A

A

D+DA 1

C CD 00 01 11 10 0 A

A

1 A

A

A

+

D C B 0 0 1

A

A

B 1 A A

C B 0 0 A 1

0

c)

BD+BC C B 0 0 A

C

D

1

C CD 00 01 11 10

0 A

B

1

D BD

Figura 2.12 Pentru ie¸sirea E3 a unui convertor BCD-EXCESS3 s-a dedus expresia minim˘ a: a) utilizˆ and diagrama V-K de patru variabile; b,d) diagrama V-K de trei variabile (B,C,D); c,e) diagrama V-K de dou˘ a variablie (B,C). Solut¸ie. Din prezentarea funct¸iei E3 ˆıntr-o diagram˘ a V-K de patru variabile, Figura 2.12-a, ¸si prin considerarea valorii 1 ˆın c˘ asut¸ele cu indiferent, se obt¸ine forma minim˘ a E3 = A + BD + BC (expresie obt¸inut˘ a ¸si ˆın Exemplul 2.5 ). Introducˆ and variabila A ca variabil˘ a reziduu se obt¸ine diagrama de trei variabile (B,C,D) din Figura 2.12-d. Aplicˆ and, Figura 2.12-b, cei trei pa¸si pentru obt¸inerea formei minime, dintr-o diagram˘ a cu variabil˘ a reziduu, se obt¸ine expresia minim˘ a pentru E3 , identic˘ a cu cea anterioar˘ a. Introducˆ and ¸si variabila D ca variabil˘ a reziduu se obt¸ine diagrama V-K de dou˘ a variabile (B,C) din Figura 2.12-c. Aplicˆ and cei trei pa¸si pentru minimizare, dintr-o diagram˘ a cu coeficient¸i reziduu, se obt¸ine forma redus˘ a E3 = BC + AB + BD + ABD, care difer˘ a de forma minim˘ a obt¸inut˘ a cu cele dou˘ a diagrame anterioare. Pentru a obt¸ine forma minim˘ a trebuie f˘ acute asupra coeficient¸ilor din diagrama din Figura 2.12-c urm˘ atoarele transform˘ ari: ¯ aplicˆ Expresia coeficientului D + DA, and teorema de absorbt¸ie invers˘ a, devine D + A ceea ce a, face ca ˆın loc de 3 termeni produs (A, D, DA), inclu¸si ˆın coeficient¸ii reziduu din diagram˘ s˘ a fie doar doi: A si D, Figura 2.12-e. Apoi, aplicˆ and pa¸sii pentru extragerea formei reduse,

196

2.2. REPREZENTAREA CLC

primul pentru valorile de 1 iar al doilea pas separat pentru fiecare din cei doi termeni reziduu A si D, se obt¸ine E3 = BC + A + BD care este forma minim˘ a.

Uneori, prin extragerea formei reduse, dintr-o diagram˘ a V-K care cont¸ine variabile reziduu, nu se ajunge la forma minim˘ a din cauza folosirii redundante a unor c˘ asut¸e cu valoarea 1. Poate exista situat¸ia ˆın care o c˘ asut¸a˘ elementar˘ a cu valoarea 1 ˆın Pasul 1, care va avea valoarea indiferent˘ a ˆın Pasul 2, s˘ a fie inclus˘ a ˆın suprafat¸a unui termen produs care cont¸ine o variabil˘ a reziduu (x) ¸si de asemenea s˘ a fie inclus˘ a ¸si ˆın suprafat¸a unui alt termen produs care cont¸ine aceea¸si variabil˘ a reziduu doar negat˘ a (x). Un astfel de 1 se nume¸ste dublu acoperit. Forma minim˘ a se obt¸ine doar cˆ and c˘ asut¸a cu un 1 dublu acoperit se consider˘ a 0 ˆın Pasul 1 de extragere (cˆ and se consider˘ a suprafet¸ele de 1-uri). Exemplul 2.7 Pentru CLC cu tabelul de adev˘ar din Figura 2.4 s˘a se realizeze diagramele V-K de 4,3,2 variabile ¸si s˘ a se extrag˘ a expresia minm˘ a. Solut¸ie. Diagrama V-K pentru patru variabile (A, B, C, D) este reprezentat˘ a ˆın Figura 2.13-a; s-a considerat valoarea coeficientului funct¸iei egal˘ a cu 1 pentru configurat¸ia de intrare a diagram˘ a expresia minim˘ a AB D+ABD+BCD. indiferent˘ a AB C D. Se extrage din aceast˘ Introducˆ and variabila D ca variabil˘ a reziduu se obt¸ine diagrama V-K de trei variabile ¯ (A, B, C), Figura 2.13-b. Din aceast˘ a diagram˘ a rezult˘ a urm˘ atoarea form˘ a redus˘ a: ABC + ¯ ¯ ¯ ¯ AB D + BC D + ABD care difer˘ a de forma minim˘ a extras˘ a din diagrama de patru variabile. ˆIn aceast˘ ¯ a form˘ a redus˘ a apare ˆın plus termenul ABC care corespunde tocmai suprafet¸ei de 1. La o inspect¸ie mai atent˘ a, Figura 2.13-d, se observ˘ a c˘ a 1 din diagram˘ a este un 1 dublu acoperit. ˆIn Pasul 2, ˆın c˘ asut¸a respectiv˘ a se consider˘ a indiferent, aceasta este acoperit˘ a atˆ at ¯ deci termenul ABC ¯ de suprafat¸a lui D cˆ at ¸si de suprafat¸a lui D, trebuie eliminat din forma redus˘ a obt¸inˆ andu-se astfel forma mimim˘ a. Diagrama V-K de dou˘ a variabile (A, B), Figura 2.13-c, se obt¸ine din diagrama de trei variabile cu coeficient¸i reziduu prin introducerea ¸si a variabilei C ca variabil˘ a reziduu. Forma redus˘ a obt¸inut˘ a din aceast˘ a diagram˘ a este (Pasul 1 nu se aplic˘ a deoarece nu exist˘ a suprafet¸e ¯D ¯ + ABC ¯ ¯ ¯ care difer˘ de 1) AB + ABD + ABC D a de expresia minim˘ a. Prin aplicarea teoremei ¯ + D, deci ˆın loc de patru termeni produs de absorbt¸ie invers˘ a termenul C + D devine C D ¯ CD ¯ ˆın coeficient¸ii reziduu vor fi doar trei: D, D, ¯ C D. ¯ Aplicˆ C, D, D, and doar Pasul 2 de extragere, deoarece nu exist˘ a c˘ asut¸e cu coeficient 1, Figura 2.13 - e, se obt¸ine forma minim˘ a ¯D ¯ + ABD ¯ ¯ AB + BC D.

2.2.3.3

Minimizarea prin diagrame V-K a circuitelor cu ie¸siri multiple

S-a ar˘ atat c˘ a un CLC cu m ie¸siri, Figura 2.1, poate fi considerat ca find compus din m circuite cu o singur˘ a ie¸sire. P˘ astrˆ and acest mod de abordare, ¸si pentru minimizarea circuitului cu m ie¸siri, procesul de minimizare se reduce la extragerea separat˘ a a fiec˘ areia din cele m ie¸siri pe cˆ ate o diagram˘ a V-K; ¸si, s-ar putea ca rezultatul s˘ a fie cel optim, dar numai cˆ and cele m funct¸ii de ie¸sire nu au ˆın component¸a lor termeni produs comuni. Pentru a identifica eventualii termeni produs comuni, la unele din ie¸sirile circuitului, se impune ca procesul de reducere al funct¸iei FNC s˘ a se fac˘ a corelat. Pentru identificarea termenilor produs comuni ˆın cele m funct¸ii de ie¸sire f 0 , f1 , ... fm−1 se procedeaz˘ a ˆın felul urm˘ ator: 1. Se realizeaz˘ a diagramama V-K a funct¸iei produs logic ˆıntre toate cele m funct¸ii

197

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

CD AB 00

A

00

0

01

0

11

0

10

1

a)

                    

11

0

0

1

1

0

0

0

0

B

D

BC A 00 01 11 10 0 0 0 1 D A 1 D D D 0



d)

 



10

 



1

1



D

01

11

10

0 0

0

1

D

A 1 D

D

D

0

B D



1

B

BC A 00

0

1

BC A 00 01 11 10 0 0 0 1 0 1

0

0

0

0

C+D CD

B 0 1 A 0 0 CD+D 1



D

CD

1

0

0

C+D

A 1

D

CD

c)

BC A 00 01 11 10 0 0 0 0 + 1 D D D 0

  

ABC 1

C

B

B

0

A

C

b)

C B 0 A 0 0

e)

C

01

BC A 00 01 11 10 0 0 0 D + 1 0 0 0 0

ABD+BCD B 0 A 0 0



1

ABD

1 D

D ABD+ABD

+

B 0 A 0 0 1

1 CD CD

BCD

Figura 2.13 Exemplu de minimizare a unei funct¸ii de patru variabile (A,B,C,D): a) pe o diagram˘ a V-K de patru variabile; b,d) pe o diagram˘ a V-K de trei variabile (A,B,C); c,e) pe o diagram˘ a V-K de dou˘ a variabile (A,B); init¸iale f0 ∩ f1 ∩ f2 ∩ ... ∩ fm−1 (practic se obt¸ine printr-o intersect¸ie ˆıntre toate diagramele V-K ale celor m funct¸ii). Se realizeaz˘ a diagramele V-K ale funct¸iilor produs ˆıntre cˆ ate m − 1 din cele m funct¸ii, apoi se realizeaz˘ a diagramele V-K ale funct¸iilor produs ˆıntre cˆ ate m − 2 din cele m funct¸ii ¸s.a.m.d. pˆ ana la realizarea diagramelor V-K ale funct¸iilor produs ˆıntre cˆ ate 2 funct¸ii. Num˘ arul total de astfel de funct¸ii (diagrame V- K) produs este egal cu 2 m ∗ (m − 1) la care se adaug˘ a ˆınc˘ a m diagrame ale funct¸iilor init¸iale (pentru m = 8 rezult˘ a 255 de diagrame!). Evident, aceast˘ a metod˘ a neautomatizat˘ a este practicabil˘ a doar la circuite cu cel mult 4 ie¸siri. 2. ˆIn diagrama V-K produs logic de m funct¸ii se identific˘ a dac˘ a exist˘ a implicant¸ii primi comuni pentru toate funct¸iile init¸iale. Ace¸sti implicant¸i primi identificat¸i sunt eliminat¸i din toate diagramele (V-K) produs de m − 1 funct¸ii ¸si apoi din toate diagramele (V-K) produs pˆ ana la diagramele produs de dou˘ a funct¸ii. Pentru ace¸sti implicant¸i primi identificat¸i se figureaz˘ a suprafet¸ele de acoperire ˆın toate cele m diagrame V-K ale funct¸iilor init¸iale. Se reia acela¸si proces de identificare a implicant¸ilor primi comuni pe diagramele V-K produs logic de m − 1

198

2.2. REPREZENTAREA CLC

funct¸ii pˆ ana la figurarea suprafet¸elor respective de acoperire ˆın diagramele V-K ale funct¸iilor init¸iale. Procesul de identificare de implicant¸i primi comuni se contimu˘ a pˆ ana la diagramele V-K produs logic de dou˘ a funct¸ii. 3. Din cele m diagrame V-K ale funct¸iilor init¸iale se extrag formele reduse ale funct¸iilor, dup˘ a procedeul normal, ˆıncercˆ and a se selecta cˆ at mai multe dintre suprafet¸ele care figureaz˘ a ˆımplicant¸i primi comuni (identificat¸i conform procedurii de la punctul 2). Circuitul cu ie¸siri multiple, rezultat printr-o minimizare corelat˘ a, ˆın general, utilizeaz˘ a un num˘ ar de termeni produs diferit¸i mai mic decˆ at num˘ arul total de termeni produs diferit¸i obt¸inut printr-o minimizare separat˘ a (necorelat˘ a) pentru fiecare funct¸ie ˆın parte, deci un num˘ ar mai mic de port¸i pentru implementare. Totu¸si, alegerea final˘ a pentru implementare nu este impus˘ a numai de acest rezultat ci trebuie luate ˆın considerare ¸si: tipul de poart˘ a logic˘ a, factorii de ˆınc˘ arcare la intrare ¸si ie¸sire ¸si disponibilitatea semnalelor in sistem. Metoda minimiz˘ arii corelat˘ a este indicat˘ a pentru sinteza circuitelor care se implementeaz˘ a cu port¸i logice discrete, pe circuitele arii de port¸i logice ¸si pe circuite logice programabile unde economisirea doar ¸si a unei port¸i, la o replicare mare, determin˘ a o economisire substant¸ial˘ a. Exemplul 2.8 Pentru urm˘atoarele trei funct¸ii F0 (A, B, C, D) =

15 X (2, 4, 6, 7, 9, 11, 12, 15) 0

F1 (A, B, C, D) =

15 X (4, 6, 7, 10, 14, 15) 0

15 X (3, 7, 8, 10, 12, 14, 15) F2 (A, B, C, D) = 0

s˘ a se realizeze o minimizare corelat˘ a. Solut¸ie. Extragerea necorelat˘ a a fiec˘ arei funct¸ii este realizat˘ a pe diagramele V-K din Figura 2.14-a ¸si se obt¸in urm˘ atoarele expresii minime: ¯ ¯ D(3) ¯ ¯ D(4) ¯ F0 = ABD(1) + BCD(2) + B C + AC ¯ ¯ D(7) ¯ F1 = BC(5) + AC D(6) + AB ¯ ¯ D(9) ¯ F2 = AD(8) + BCD(2) + BC cu un num˘ ar de 9 termeni produs diferit¸i din totalul de 10 (BCD este utilizat atˆ at de F0 cˆ at ¸si de F2 ). ˆIn continuare se va proceda pentru extragerea corelat˘ a. Diagrama V-K a funct¸iei produs logic F0 ∩ F1 ∩ F2 este reprezentat˘ a ˆın Figura 2.14-b iar a funct¸iilor produs logic F0 ∩ F1 , F0 ∩ F2 , F1 ∩ F2 ˆın Figura 2.14-c. Singurul implicant prim comun, BCD din diagrama V-K a funct¸iei produs logic F0 ∩ F1 ∩ F2 , neconsiderat ˆın produsele logice de dou˘ a funct¸i, este figurat (ha¸surat spre dreapta) ˆın diagramele V-K ale funct¸iilor F0 , F1 , F2 din Figura 2.14-d. Apoi, din diagramele funct¸iilor produs logic de dou˘ a funct¸ii: pentru ¯ D ¯ care se figureaz˘ F0 ∩ F1 se identific˘ a implicantul prim comun AB a (ha¸sura spre stˆ anga) ¯ D ¯ prin suprefet¸e pe F0 ¸si F1 ; pentru F0 ∩ F2 se identific˘ a implicantul prim commun A¯BC care se figureaz˘ a (printr-un cerculet¸ ha¸surat spre dreapta) prin suprafet¸e pe F0 ¸si F2 ; pentru ¯ care se figureaz˘ F1 ∩ F2 se identific˘ a implicantul prim comun AC D a prin suprafet¸e pe F1 ¸si F2 .

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

199

In continuare, de pe diagrama V-K a fiec˘ arei funct¸ii init¸iale, se extrage forma redus˘ a dup˘ a procedeul obi¸snuit c˘ autˆ and ca, ˆın acoperirea c˘ asut¸elor elementare cu valoarea 1, s˘ a fie inclu¸si ˆın primul rˆ and implicant¸i primi esent¸iali ¸si implicant¸i primi comuni identificat¸i. Rezult˘ a expresiile: ¯ ¯ D(3) ¯ ¯ D(4) ¯ ¯ D(5) ¯ F0 = ABD(1) + BCD(2) + AB + A¯BC + BC ¯ D(3) ¯ ¯ F1 = BCD(2) + AB + AC D(6) ¯ D(7) ¯ ¯ ¯BC ¯ D(4) ¯ F2 = BCD(2) + AC + AC D(6) +A Prin minimizarea corelat˘ a s-au obt¸inut un num˘ ar de 7 termeni produs diferit¸i dintr-un total de 12 termeni produs utilizat¸i, deci 5 sunt utilizat¸i de cel put¸in dou˘ a funct¸ii.

Obt¸inerea unei forme reduse, eventual minim˘ a, pentru o funct¸ie prin operat¸ii analitice, paragraful 1.15, sau utilizˆ and diagrama V-K pot constitui metode practicabile doar pentru funct¸ii de cˆ ateva variabile. Pentru funct¸ii ce dep˘ a¸sesc cˆ ateva variabile sunt utilizate alte metode. Oricare ar fi aceste metode, ˆın fond, procesul de reducere parcurge dou˘ a etape: (1) identificarea tuturor implicant¸ilor primi ai funct¸iei ¸si (2) apoi selectarea unui set minimal de implicant¸i primi care s˘ a acopere funct¸ia. Aceste etape pot fi realizate fie prin metode tabelare, de exemplu metoda Quine-McCluskey, fie prin abord˘ ari algoritmice, ˆın termeni de structuri de date ¸si funct¸ii de limbaj de nivel ˆınalt [Wakerly 0 2001]. Evident, aceste abord˘ ari au ca finalitate un program de minimizare inclus intr-un mediu de proiectare, de exemplu programul Espress II ,, sau varianta mai avansat˘ a Espress - MV. Includerea unui algoritm “exact ˆıntr-un program de minimizare pentru o funct¸ie cu zeci de variabile ¸si sute de termeni produs poate necesita un timp de calcul inacceptabil. Foarte frecvent o abordare euristic˘ a, ˆın locul unui algoritm exact, poate genera o expresie minim˘ a sau aproape minim˘ a dar cu o reducere a timpului de calcul cu peste un ordin de m˘ arime.

2.2.4

Diagrama de decizie binar˘ a, BDD

Informat¸ia cont¸inut˘ a ˆıntr-un tabel de adev˘ ar, Figura 2.15-a, poate fi reprezentat˘ a ¸si printr-un graf sub forma unui arbore binar, arbore de decizie binar, BDT (Binary Decision Tree). Un arbore de decizie binar este un graf orientat, aciclic, care prezint˘ a o r˘ ad˘ acin˘ a ¸si dou˘ a tipuri de noduri: teminale ¸si neterminale. Fiecare nod x este referit/etichetat prin variabila var(x) ¸si are arce direct¸ionate spre doi succesori: • Low(x), care corespunde tranzit¸iei cˆ and variabilei x i se asigneaz˘ a valoarea 0 • High(x), care corespunde tranzit¸iei cˆ and variabilei x i se asigneaz˘ a valoarea 1 Fiecare nod terminal (frunz˘ a) x este caracterizat prin valoarea (x) care poate fi 0 sau 1. Pentru o anumit˘ a asignare a valorilor variabilelor unei funct¸ii (o configurat¸ie de intrare), parcurgˆ and graful, de la r˘ ad˘ acin˘ a pe traseul indicat de valorile respective ale variabilelor, se atinge un nod terminal a c˘ arui valoare este tocmai valoarea funct¸iei corespunz˘ atoare respectivei asign˘ arii a variabilelor. ˆIn Figura 2.15-b este reprezentat BDT pentru funct¸ia cu tabelul de adev˘ ar din Figura 2.15-a. BDT nu reflect˘ a o reprezentare concis˘ a a unei funct¸ii booleene; ˆın fond, un BDT nu este altceva decˆ at o form˘ a grafic˘ a a tabelului de adev˘ ar, care prezint˘ a mult˘ a redundant¸a˘. De exemplu, pentru arborele obt¸inut exist˘ a numai 3 subarbori diferit¸i cu r˘ ad˘ acina de etichet˘ a y0,

200

2.2. REPREZENTAREA CLC

C CD 00 01 11 10 1 00

AB

A

01 1

1

11 1

1 1

10

AB

1

1

B A

1

2

3

C CD 00 01 11 10 1 00

AB

00 01 1

1

1

11

1

1

B A

1

10

D F 0=ABD+BCD+BCD+ACD a)

C CD 00 01 11 10

D F 1=BC+ACD+ABD

4

5

6

7

F0

F1

F2

'& '& '& '&

1

F0

 

01

1

11 1

1

1

10 1

B

1

D F 2=AD+BCD+BCD 8

2

9

1

b)

./ ./

F0

F1

10 10 10

1

1

F2

1

F1

F2

1

 

1

1

1

 

1

1

c) F1 C CD AB 00 01 11 10 01 1

)   () 54 54

11 1

1

00

A

10

23

( 1

1 1

D

F2 C CD AB 00 01 11 10 00

1 1

B A

89 +* *+ 76 67 +* +* ! ! ! ! 1

1

11

1

1

10

D

1

1

F3 C CD AB 00 01 11 10 00

01 1

1

01

B A

11 1 10 1

, , %$ $% , -, " " - #" "# # #

1

1 1

1

B

1

D

F 0=ABD+BCD+ABD+ABCD+BCD F 1=BCD+ABD+ACD F 2=BCD+ACD+ACD+ABCD 1 2 3 4 5 2 3 6 2 7 6 4 d)

Figura 2.14 Minimizarea corelat˘ a a 3 funct¸ii: a) minimizarea necorelat˘ a; b,c) diagramele V-K pentru produsele de cˆ ate 3 ¸si 2 funct¸ii; d) extragerea corelat˘ a a expresiilor reduse ale funct¸iilor.

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

201

din totalul de 8 subarbori cu r˘ ad˘ acina ˆın y0 . Se poate obt¸ine o form˘ a mult mai concis˘ a de reprezentare a funct¸iei, denumit˘ a Diagram˘ a de Decizie Binar˘ a, BDD (Binary Decision Diagram), dac˘ a din BDT se elimin˘ a redundant¸a. Obt¸inerea unui BDD, prin eliminarea redundant¸ei, apare ˆın urma aplic˘ arii repetate (pˆ ana cˆ and nu mai pot fi aplicate) a urm˘ atoarelor trei proceduri: 1. Eliminarea nodurilor terminale duplicate. Dintre toate nodurile terminale (frunze) duplicate se ret¸ine doar unul, iar spre acesta se redirecteaz˘ a toate arcele care erau directate spre frunzele eliminate. Prin aceast˘ a procedur˘ a se obt¸ine graful din Figura 2.15-c care are numai 2 noduri terminale ˆın loc de 16. 2. Eliminarea nodurilor neterminale duplicate. Dac˘ a pentru nodurile neterminale x ¸si y exist˘ a var(x) = var(y) ¸si low(x) = low(y), high(x) = high(y), atunci unul din noduri este eliminat iar arcele directate spre nodul eliminat sunt redirectate spre nodul p˘ astrat. Inspectˆ and graful din Figura 2.15-c se constat˘ a c˘ a din cele 8 noduri y 0 doar 3 sunt diferite, deci acesta se poate transforma ˆın graful din Figura 2.15-d. 3. Eliminare testelor redundante. Dac˘ a nodul neterminal x prezint˘ a low(x) = high(x) atunci se elimin˘ a nodul iar arcele directate spre acesta se redirecteaz˘ a spre low(x). Aplicˆ and aceast˘ a procedur˘ a pentru eliminarea celor dou˘ a noduri y 0 , din mijloc, de la Figura 2.15-d se transfer˘ a testul de redundant¸a˘ asupra nodurilor x 0 din mijloc (acestea vor avea low(x0 ) = high(x0 )). Apoi, aplicˆ and din nou aceast˘ a procedur˘ a sunt eliminate nodurile mediane x0 rezultˆ and graful din Figura 2.15-e. Se observ˘ a c˘ a nu mai exist˘ a nici o posibilitate de transformare, nici una din aceste proceduri nu se mai poate aplica. Definit¸ia 2.5 Diagrama de decizie binar˘ a este redus˘ a, RBDD (Reduced BDD), cˆ and nu se mai poate realiza nici o transformare prin aplicarea celor trei proceduri de reducere. 

O diagram˘ a de decizie binar˘ a este referit˘ a ca ordonat˘ a, OBDD (Ordered BDD) dac˘ a, pe oricare traseu parcurs de la r˘ ad˘ acin˘ a la frunze, fiecare variabil˘ a este ˆıntˆ alnit˘ a cel mult odat˘ a ¸si totdeauna variablilele sunt parcurse ˆın aceea¸si ordine. Nu este necesar ca toate variabilele s˘ a fie ˆıntˆ alnite pe fiecare traseu. Pentru funct¸ia din tabelul de adev˘ ar din Figura 2.15-a, care este a unui CLC comparator pentru cuvinte de doi bit¸i x1 , x0 ¸si y1 , y0 , f (x1 , x0 , y1 , y0 ) = (x1 = y1 ) ∩ (x0 = y0 ), implicit s-a considerat urm˘ atoarea ordine x1 < y1 < x0 < y0 ¸si a rezultat un OBDD cu 8 noduri. La un CLC conparator pentru cuvinte de n bit¸i p˘ astrˆ and aceea¸si ordine xn−1 < yn−1 < xn−2 < yn−2 < ... < x1 < y1 < x0 < y0 rezult˘ a un num˘ ar de (3n + 2) noduri. Dar dac˘ a ordinea se stabile¸ste x n−1 < xn−2 < ... < x1 < x0 < yn−1 < yn−2 < ... < y1 < y0 atunci rezult˘ a un OBDD cu (3 ∗ 2n − 1) noduri. Pentru o astfel de ordonare, x1 < x0 < y1 < y0 , (n = 2), BDD este reprezentat ˆın Figura 2.15 - f, num˘ arul de noduri fiind 3 ∗ 2 2 − 1 = 11. Num˘ arul de noduri pentru un OBDD cu n variabile de intrare, ˆın funct¸ie de ordonarea aleas˘ a, se situeaz˘ a ˆıntre limita inferioar˘ a, o dependent¸a˘ liniar˘ a de n, ¸si limita cea mai dezavantajoas˘ a, o

202

2.2. REPREZENTAREA CLC

x 1 y1 x 0 y0 f 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1

x1

y1

y1

x0

y0

a)

x0

y0

y0

x0

y0

y0

y0

y0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

1

0

0

1

0

0

0

0

0

0

0

0

1

0

0

1

b) 0

y1 x0

y1 x0

0

x0

y0 y0 y0 y0 1 0

c)

y0

0

x1

0

x0

x0

y0 y0 y0 y0 0 1

d)

x0

0

y1 0 y2

0

0

1

y1

1

1

y0

x0

y1 0 1

0

y1

0

0

y 0 2 1 1

0

e)

1 0

1

y0

x0

1

1

y0

0

0

1 1

x0

0

1 0

0

1 0

1

x0

0

x1 1

0

y1

0

0

0

1

x0 1

1

1

y0 1

0

1

1

f)

0

y1

x1

y1

1

x1 1 1

y1

0

x0 1 y0 1 1

1

y0

0

0

Figura 2.15 Diagrama de decizie binar˘ a, BDD, pentru un circuit comparator de 2 bit¸i: a) tabelul de adev˘ ar; b) arborele de decizie binar˘ a, BDT; c,d,e) etapele de trecere de la BDT la diagrama de decizie binar˘ a BDD, ˆın forma canonic˘ a; f) BDD form˘ a canonic˘ a pentru ordonarea variabilelor x 1 < x0 < y1 < y0 .

203

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

dependent¸a exponent¸ial˘ a de n. Multe funct¸ii logice uzuale au totu¸si o form˘ a compact˘ a de reprezentare. G˘ asirea ordon˘ arii optime, care s˘ a duc˘ a la un num˘ ar minim de noduri ˆın OBDD, este o problem˘ a NP complet˘ a. Abord˘ arile euristice pentru g˘ asirea ordon˘ arii optime sunt, de multe ori, cu succes. ˆIn acest sens, de abordare euristic˘ a, observat¸ia c˘ a variabilele legate/asociate s˘ a fie strˆ ans apropiate ¸si ˆın ordonare duce la o ordonare optim˘ a sau cvasioptim˘ a. Definit¸ia 2.6 BDD este sub form˘ a canonic˘ a dac˘ a este redus˘ a ¸si ordonat˘ a.  Pentru o funct¸ie logic˘ a cu ordonare fixat˘ a, forma redus˘ a de OBDD este cea canonic˘ a ¸si aceast˘ a form˘ a este unic˘ a. Diagrama de decizie binar˘ a considerat˘ a ca un suport abstract al unei funct¸ii booleene introduce posibilitatea ca operat¸iile efectuate cu funct¸iile booleene s˘ a fie implementate sub forma unor algoritmi grafici asupra unor OBDD [Bryant 0 92] cu aplicat¸ii ˆın sistemele digitale, logic˘ a matematic˘ a, inteligent¸a˘ artificial˘ a. ˆIn sistemele digitale OBDD poate fi utilizat ca un instrument ˆın proiectare, verificare ¸si testare.

2.2.5

Modalit˘ a¸ti neformale de reprezentare

Pentru aplicat¸ii concrete, de multe ori, definirea unui CLC prin una din metodele formale expuse anterior este foarte greoaie ¸si ineficient˘ a. Astfel de aplicat¸ii apar de exemplu, cˆ and circuitul are un num˘ ar foarte mare de intr˘ ari sau circuitul are o structur˘ a repetitiv˘ a. Dac˘ a CLC prezint˘ a mai mult de 5,6 variabile, maipularea funct¸iei sub form˘ a analitic˘ a, diagram˘ a V-K sau tabel de adev˘ ar devine nepractic˘ a, ˆın astfel de cazuri doar utilizarea unui program de analiz˘ a ¸si sintez˘ a dintr-un mediu de programare poate fi solut¸ia.

Ci i

C0 0

Intrari I i , Ci se calculeaza Oi , Ci+1 i=i+1 DA

a)

i τpHL , ˆın consecint¸a˘, la transferul prin fiecare poart˘ a neinversoare l˘ a¸timea inpulsului se ˆıngusteaz˘ a cu duarata ∆ = τ pLH − τpHL , pe cˆ and la transferul printr-un lant¸ de port¸i inversoare, l˘ a¸timea impulsului se reface dup˘ a fiecare 2 niveluri logice. Adˆ ancimea D(n) a unui circuit reflect˘ a timpul de propagare care este egal cu durata de propagare printr-o poart˘ a, τp , ˆınmult¸it cu num˘ arul n de niveluri logice, deci determin˘ a performant¸a, frecvent¸a de lucru a circuitului f = 1/n · τ p . ˆIn acest sens, rezult˘ a c˘ a implement˘ arile pe dou˘ a niveluri sunt cele recomandate deoarece determin˘ a un timp minim de propagare, 2τp , prin circuit. Totu¸si, acest˘ a recomandare trebuie analizat˘ a critic ˆın funct¸ie de tehnologia de implementare. Pentru realizarea CLC pe suport de circuit imprimat ¸si port¸i logice discrete implementarea funct¸iei pe dou˘ a niveluri logice este optim˘ a. Este corect˘ a aceast˘ a afirmat¸ie mai ales cˆ and port¸ile sunt ˆın tehnologie bipolar˘ a, la care timpii de propagare sunt mai put¸in sensibili la valoarea de ˆınc˘ arcare (fan-out). Nu aceea¸si valabilitate o are aceast˘ a afirmat¸ie pentru implement˘ arile integrate ˆın tehnologie CMOS. ˆIn tehnologie CMOS, cˆ and ˆıntˆ arzierea pe poart˘ a este pronunt¸at afectat˘ a de ˆınc˘ arcarea port¸ii, implementarea pe dou˘ a niveluri logice s-ar putea s˘ a nu fie cea optim˘ a ˆ de pentru opt¸inerea unui circuit de vitez˘ a ridicat˘ a. Alegerea num˘ arului optim N niveluri logice pe un anumit traseu ˆın funct¸ie de ˆınc˘ arcarea traseului este prezentat˘ a ˆın sect¸iunea 1.5.6.2, Tabelul 1.15. Obt¸inerea unei expresii pentru o implementare multinivel, dintr-o form˘ a redus˘ a dinsjunctiv˘ a, se realizeaz˘ a prin utilizarea axiomei distributivit˘ a¸tii. De exemplu, expresia ACD + AB + BC, implementabil˘ a pe dou˘ a niveluri AND-OR ca ˆın Figura 2.21-a, prin factorizarea variabilei A va fi implementabil˘ a pe patru niveluri: dou˘ a port¸i AND pe primul nivel, o poart˘ a OR pe nivelul doi, o poart˘ a AND pe nivelul trei ¸si o poart˘ a OR pe nivelul patru. Dar aceast˘ a structur˘ a poate fi transformat˘ a pentru o implementare, tot pe patru niveluri, numai cu port¸i NAND ca ˆın Figura 2.21-b. Formele de scriere care exprim˘ a aceste implement˘ ari sunt: ACD + AB + BC = A(CD + B) + BC = ((CD · B)A)(BC) Prin scalare, (Tabelul 1.11) timpul de propagare pe poart˘ a se mic¸soreaz˘ a dar datorit˘ a faptului c˘ a la acelea¸si dimensiuni ale cipului majoritatea traseelor de comunicat¸ie/ interconectare r˘ amˆ an la acelea¸si lungimi, acestea determin˘ a ca o serie de alt¸i parametrii ai circuitului (c˘ aderea de tensiune, densitatea de curent, rezistent¸ele de contact, timpul de propagare pe linie) s˘ a fie afectat¸i de degrad˘ ari (vezi sect¸iunea 4.5). ˆIn plus, diminuarea puterii disipate pe poart˘ a determin˘ a o abilitate mic¸sorat˘ a a port¸ii pentru comanda capacit˘ a¸tii liinilor. ˆIn asemenea circumstant¸e, cˆ and scalarea are influent¸a˘ mult mai mare asupra timpilor de propagare prin port¸i decˆ at asupra timpilor de propagare prin conexiuni, ˆıntˆ arzierea medie pe nivel logic este mai puternic determinat˘ a de interconexiuni decˆ at de port¸i, ˆın consecint¸a˘, un num˘ ar redus de port¸i ˆınseriate nu determin˘ a automat ¸si performant˘ a de vitez˘ a ridicat˘ a pentru circuit.

212

2.3. REALIZAREA CIRCUITELOR COMBINAT ¸ IONALE

A C D B A B C a)

C D B A B C b)

a b

Figura 2.21 Implementarea expresiei ACD + AB + BC pe dou˘ a niveluri logice (a) ¸si pe patru niveluri logice (b). Un CLC cu n intr˘ ari, pe lˆ ang˘ a adˆ ancimea D(n), mai trebuie caracterizat ¸si prin efortul structural necesar pentru realizarea sa, adic˘ a prin dimensiunea sa, notat˘ a cu S(n). Dar, acest efort trebuie exprimat printr-un num˘ ar ce reflect˘ a ¸si este specific unei tehnologii de implementare. De exemplu, pentru realizare pe plac˘ a de sticlotextolit cu circuite integrate discrete, acel num˘ ar ar putea fi: num˘ arul de puncte de wrapping ori de lipit, num˘ arul de circuite integrate sau num˘ arul tuturor intr˘ arilor ˆın circuitele integrate. Dac˘ a se realizeaz˘ a integrat, acel num˘ ar ar putea fi: num˘ arul total de port¸i, num˘ arul tuturor intr˘ arilor ˆın port¸ile circuitului sau suprafat¸a de siliciu consumat˘ a. Definit¸ia 2.8 Dimensiunea S(n), asociat˘ a unui circuit cu n intr˘ ari, se exprim˘ a prin num˘ arul de intr˘ ari al tuturor circuitelor integrate din care se configureaz˘ a acel circuit. ˆIn general, S(n) se exprim˘ a ca ordin de m˘ arime.  Conform acestei definit¸ii, toate circuitele cu patru intr˘ ari (n = 4) pe dou˘ a niveluri din Figura 2.20 au S(4) = 6 iar cele pe trei niveluri au S(n) = 7, iar circuitele din Figura 2.12 au S(n) = 1 + 2 + (n − 2) · 4 = 4 · n − 5 ∈ O(n) Semnal˘ am corelat¸ia care se poate face ˆıntre dimensiunea S(n), dat˘ a prin Definit¸ia 2.8 ¸si efortul logic exprimat prin Definit¸iile 1.16, 1.17 ¸si 1.18. Conform Definit¸iei 2.8 , o poart˘ a cu cˆ at are mai multe intr˘ ari, cu atˆ at dimensiunea sa este mai mare ¸si, la fel, un CLC cu cˆ at este compus din mai multe port¸i, ¸si acestea au dimensiunea mai mare, cu atˆ at dimensiunea rezultat˘ a va fi mai mare. Similar, o poart˘ a logic˘ a CMOS cu cˆ at are mai multe intr˘ ari, are un efort logic g(n) mai mare, relat¸iile de calcul din Tabelul 1.13 exprim˘ a clar aceast˘ a dependent¸a˘. De asemenea, cu cˆ at un traseu ˆın tehnologie CMOS este realizat din mai multe niveluri, ¸si fiecare nivel are efortul logic mai mare, cu atˆ at ¸si efortul logic G al traseului este mai ridicat. Deci, pentru implement˘ arile CMOS s-ar purtea utiliza efortul logic ca o m˘ asur˘ a a dimensiunii circuitului. ˆIntre cele dou˘ a m˘ arimi S(n) ¸si D(n), care caracterizeaz˘ a un CLC, exist˘ a o interdependent¸a˘, vizibil˘ a ¸si intuit˘ a de oricare proiectant, dar care nu este exact definit˘ a. Practic, se constat˘ a c˘ a dac˘ a se caut˘ a pentru CLC o variant˘ a de implementare mai rapid˘ a, deci cu un D(n) mai mic, se constat˘ a c˘ a este necesar s˘ a se m˘ areasc˘ a dimensiunea S(n). ˆIn [Stefan 0 00] se propune o formalizare a acestei interdepentent¸e: fie varianta1 a a unui circuit cu n intr˘ ari care realizeaz˘ a funct¸ia f caracterizat˘ a prin S 1 (n) ¸si D1 (n). Dac˘ a varianta2 a acestui circuit este caracterizat˘ a prin D 2 (n) < D1 (n) atunci, relat¸ia ˆıntre produsele S(n) · D(n), ale celor dou˘ a variante, este corect˘ a S2 (n) · D2 (n) > S1 (n) · D1 (n)

(2.9)

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

213

adic˘ a, m˘ arirea performant¸ei circuitului (mic¸sorarea adˆ ancimii) cu un anumit factor (de performat¸a˘) implic˘ a cre¸sterea dimensiunii circuitului de mai multe ori decˆ at valoarea acestui factor de preformat¸a˘ (vitez˘ a). Pentru compararea variantelor de realizare a unui CLC trebuie s˘ a existe un parametru sintetic, acesta poate fi exprimat prin raportul cost/performant¸˘ a (care exprim˘ a cˆ at costa unitatea de performant¸a˘). Costul este determinat de dimensiunea S(n) exprimat˘ a nu neap˘ arat ˆın funct¸ie de num˘ arul de terminale, ca ˆın Definit¸ia 2.8 , ci de oricare caracteristic˘ a ce poate determina dimensiunea. ˆIn plus, pe lˆ ang˘ a S(n), costul este determinat ¸si de complexitate C(n), definit¸ia 2.1 . Un circuit chiar de dimensiune mare dar simplu (structur˘ a ordonat˘ a, repetitiv) poate fi realizat la un cost rezonabil, nu la fel se poate afirma despre costul unui circuit de dimensiune ridicat˘ a ¸si complex (structur˘ a ˆıntˆ ampl˘ atoare - random logic). Un alt aspect urm˘ arit ˆın realizarea unui CLC este de ordin calitativ, adic˘ a o funct¸ionare corect˘ a, ceea ce implic˘ a eliminarea situat¸iilor de hazard. De asemenea, uneori, se impune ca circuitul s˘ a fie reconfigurabil, adic˘ a adaptabil prin modificarea structur˘ arii pentru mai multe aplicat¸ii sau pentru aceea¸si aplicat¸ie dar ˆın diferite variante. Reconfigurabilitatea a devenit un concept curent ˆın sistemele digitale actuale.

2.3.1

Hazardul static

Analiza circuitelor combinat¸ionale s-a efectuat pˆ ana acum consider˘ and regimul static (intr˘ arile ¸si ie¸sirile nu au variat¸ii ˆın timp), pentru aceasta se presupune c˘ a din momentul de modificare a valorilor variabilelor de intrare a trecut deja un timp mult mai lung decˆ at timpul de propagare prin circuit (regimul tranzitoriu), deci ie¸sirea este stabilizat˘ a. ˆIn regim static, valoarea logic˘ a a ie¸sirii se calculeaz˘ a corect cu funct¸ia logic˘ a a circuitului. Dar, ce se ˆıntˆ ampl˘ a ˆın intervalele tranzitorii, pe intervalele de timp cˆ and semnalele sunt ˆın propagare de la intrare la ie¸sire? La aplicarea unei configurat¸ii pe intrare, de multe ori, valoarea logic˘ a real˘ a (obt¸inut˘ a la ie¸sire pe durata regimului tranzitoriu) nu este identic˘ a cu valoarea logic˘ a la ie¸sire calculat˘ a cu funct¸ia logic˘ a a circuitului; valoarea logic˘ a la ie¸sire devine egal˘ a cu cea calculat˘ a numai dup˘ a consumarea regimului tranzitoriu. Aceste situat¸ii cˆ and CLC, care trebuie s˘ a aib˘ a un ,, comportament controlabil, prezint˘ a o funct¸ionare “hazardat˘ a (necontrolat˘ a) fat˘ a de analiza ˆın regim static sunt referite cu termenul de hazard static. Fizic, hazardul static se manifest˘ a prin aparit¸ia ˆın semnalul de ie¸sire a unor impulsuri parazite (glitch-uri) fie cu nivel logic H fie cu nivel liogic L. Posibilitatea de producere a glitch-urilor pe durata regimurilor tranzitorii apare ca o consecint¸a˘ a dou˘ a cauze: 1) comutarea asincron˘ a a valorilor variabilelor de intrare (hazardul datorat asincronismul la intrare); 2) existent¸a pentru o variabil˘ a de intrare a dou˘ a trasee de propagare cu ˆıntˆ arzieri diferite (hazardul de propagare). 1) Hazardul datorit˘ a asincronismului la intrare. Trecerea de la o valoare logic˘ a a ie¸sirii la o alt˘ a valoare logic˘ a este cauzat˘ a de modificarea (comutarea) configurat¸iei cuvˆ antului de intrare. Implicit, s-a considerat, pˆ an˘ a acum, c˘ a aceast˘ a comutare a tuturor variabilelor de intrare de la o anumit˘ a configurat¸ie la o alta se face ˆın acela¸si moment de timp, se realizeaz˘ a o comutare sincron˘ a. ˆIn realitate, cˆ and se trece de la o configurat¸ie a variabilelor de intrare la o alta exist˘ a un decalaj ˆıntre momentele de comutare ale diferitelor variabile, poate numai ˆıntˆ ampl˘ ator exist˘ a o

214

2.3. REALIZAREA CIRCUITELOR COMBINAT ¸ IONALE

comutare sincron˘ a. De fapt, acest asincronism face ca ˆıntre configurat¸ia de intrare prezent˘ a ¸si configurat¸ia de intrare urm˘ atoare s˘ a se interpun˘ a, pe durata regimului tranzitoriu, una sau mai multe configurat¸ii de intrare care produc glitch-uri ˆın semnalul de ie¸sire. Comutare sincrona

A

A B B

< : @A >?

A·B A·B A+B A+B A+B A+B

Comutare asincrona

ED ED ED ED ED tL

tH

CB CB CB CB CB tL

tH

GF GF GF GF GF

A

t L< tH

t H< t L

t

B

tL

tH

t

A·B

t

A+B

t

t

A+B

t

t

tH

t H< t L

t L< tH tH

tL tL tH

tL

t

t

t

Figura 2.22 Explicativ˘ a pentru aparit¸ia hazardului datorit˘ a asincronismului la intr˘ arile port¸ilor AND,OR ¸si XOR Aparit¸ia hazardului datorit˘ a asincronismului intr˘ arilor este exemplificat ˆın Figura 2.22 pentru port¸ile AND,OR,XOR cu dou˘ a intr˘ ari. Considerˆ and o comutare spre valori opuse ale intr˘ arilor A, B s-a desenat variat¸ia semnalului de ie¸sire atˆ at pentru comutare sincron˘ a cˆ at ¸si pentru comutare asincron˘ a. La comutare asincron˘ a, cˆ and tranzit¸ia negativ˘ a precede pe cea pozitiv˘ a, t L < tH ,, sau cˆ and tranzit¸ia pozitiv˘ a precede pe cea negativ˘ a, tH < tL , semnalul de ie¸sire din poart˘ a poate fi ˆınc˘ arcat cu glitch-uri (hazard). Acest semnal de ie¸sire, dac˘ a va fi utilizat ca semnal de intrare pentru un circuit urm˘ ator, va produce o funct¸ionare eronat˘ a. Se poate evita hazardul de nesincronizare dac˘ a se impune ca ˆın configurat¸ia de intrare nciodat˘ a s˘ a nu comute mai mult de o singur˘ a variabil˘ a sau ˆınainte de aplicarea configurat¸iei pe intr˘ arile circuitului aceasta s˘ a fie sincronizat˘ a (vezi Figura 3.46). 2) Hazardul de propagare. Dac˘ a la o poart˘ a din interiorul circuitului, sau din nivelul de ie¸sire al circuitului, semnalele aplicate la intrarea circuitului ajung pe trasee diferite, care implic˘ a ˆıntˆ arzieri diferite, atunci la ie¸sirea acelei port¸i poate apare hazard. De fapt, la poarta generatoare de hazard semnalele se aplic˘ a la intervale de timp diferite ceea ce, de fapt, reduce hazardul de propagare tot la un hazard de asincronism, numai c˘ a de data aceasta asincronismul nu este la intr˘ arile circuitului ci la intr˘ arile unei port¸i din circuit, adic˘ a ˆın interiorul circuitului. De exemplu, la circuitul pe patru niveluri din Figura 2.21-b pˆ an˘ a la intrarea port¸ii NAND de pe ultimul nivel variabilele parcurg: A -un nivel logic, B -pe un traseu dou˘ a niveluri logice ¸si pe alt traseu un nivel logic, C -trei niveluri logice, C¯ un nivel logic, D trei niveluri logice. Rezult˘ a c˘ a chiar dac˘ a configurat¸ia de intrare se aplic˘ a sincron, la intrarea ultimei port¸i, cele dou˘ a semnale A ¸si B vor avea o variat¸ie hazardat˘ a determinat˘ a de timpii de propagare ai port¸ilor de pe traseele parcurse. Calculul exact al ˆıntˆ arzierilor pe fiecare traseu ˆıntˆ ampin˘ a dificult˘ a¸ti deoarece ca dat˘ a de catalog este

215

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

dat doar timpul de propagare maxim nu ¸si cel minim, care, ˆın general, un este identic la toate port¸ile (depinde de dispersia tehnologic˘ a) ¸si este funct¸ie ¸si de inc˘ arcarea pe ie¸sirea port¸ii. Dar chiar ¸si la implement˘ arile pe dou˘ a niveluri se poate genera hazard de propagare ˆın cazurile cˆ and unele variabile negate sunt generate ˆın interiorul circuitului (de fapt negarea ˆın interiorul circuitului introduce pentru unele semnale al treilea nivel de propagare). ˆIn aceste cazuri rezut˘ a c˘ a implement˘ arile de tipul AND-OR, NANDNAND produc hazard static 1, adic˘ a pe durata regimuluii tranzitoriu, chiar cˆ and doar o singur˘ a variabil˘ a de intrare comut˘ a, ˆın semnalul de ie¸sire care ar trebui s˘ a fie 1 apare un glitch 0; de asemenea, implement˘ arile de tipul OR-AND, NOR-NOR produc hazard static 0, adic˘ a pe durata regimului tranzitoriu ˆın semnalul de ie¸sire care ar trebui s˘ a fie 0 apare un glitch 1. Teorema

2.1

Dac˘ a expresia unei funct¸ii poate fi adus˘ a la forma f (xn−1 , xn−2 , ..., xi , ..., x1 , x0 ) = xi + x ¯i

atunci, ˆıntr-un circuit implementat cu port¸i logice, se va genera hazard static 1 la comutarea variabilei de intrare xi din 1 ˆın 0 (pentru valori precizate ale celorlalte variabile de intrare).

1 0

B=1

a)

1 0 1 0 1 0 b)

HI

A

f 2=AB+AC AB

1

τp

A 3

2

c)

AB=A·1

F(A,B,C)=A+A

01

11

1

1 1

1

BC (adaugat) A B=1

τp

00

10

A+A

1 0

AC=A·1=A

AC

0

AC

C=1

BC

1

C=1 d)

AB

AB

τp 2

τp

1

AC

4

3 BC (adaugat)

Figura 2.23 Analiza aparit¸iei hazardului static 1 pentru funct¸ia f2 = AB + AC: a) structura circuitului; b,c) analiza aparit¸iei hazardului pe diagrama de semnale respectiv pe diagrama V-K; d) modificarea circuitului (linie ˆıntrerupt˘ a) pentru eliminarea hazardului. Se va exemplifica aparit¸ia hazardului pe urm˘ atoarele dou˘ a funct¸ii: f 1 = AB + ABC, f2 = AB + AC. Funct¸ia f1 nu poate fi adus˘ a pentru nici o combinat¸ie de

216

2.3. REALIZAREA CIRCUITELOR COMBINAT ¸ IONALE

valori ale variabilelor B ¸si C la forma A + A¯ ¸si la fel nu poate fi adus˘ a la forma ¯ + B pentru nici o combinat¸ie de valori date variabilelor A ¸si C. A doua funct¸ie B poate fi adus˘ a la forma f2 = A + A¯ dac˘ a B = C = 1. Rezult˘ a c˘ a circuitul, Figura 2.23-a, care implementeaz˘ a funct¸ia f2 , prezint˘ a hazard static 1; generarea hazardului se poate analiza cu ajutorul diagramelor de semnal din Figura 2.23-b. Variat¸ia variabilei A, de la 1 la 0, ajunge la intrarea port¸ii 3 pe primul traseu prin semnalul ¯ produs logic AB de la poarta 1 ¸si pe al doilea traseu prin semnalul produs logic AC de la poarta 2 (dar cu o ˆıntˆ arziere τp ), deci un asincronism la intrarea port¸ii 3. De asemenea, analiza aparit¸iei hazardului static 1 se poate face ¸si pe diagrama V-K din Figura 2.23-c. Funct¸ia are valoarea logic˘ a 1 la ie¸sire cˆ and configurat¸ia variabilelor de intrare corespunde unui implicant prim, IP, implicant cee a fost selectat pentru expri,, marea funct¸iei. Mai plastic exprimat, “punctul de funct¸ionare al funct¸iei se afl˘ a ˆın interiorul suprafet¸ei unui implicant prim cˆ and la intrarea circuitului se aplic˘ a valorile coordonatelor acelui implicant. Dac˘ a prin comutarea unei singure variabile “punctul ,, de functionare r˘ amˆ ane ˆın interiorul suprafet¸ei acelui implicant prim nu se genereaz˘ a ,, hazard (ie¸sirea fiind asigurat˘ a ˆın valoare 1), dar dac˘ a “punctul de funct¸ionare trece ˆın interiorul asuprafet¸ei unui alt implicant prim, se genereaz˘ a hazard static 1 (ie¸sirea, pe durata trecerii ˆıntre cele dou˘ a suprafet¸e/inplicant¸i nu mai este asigurat˘ a ˆın 1, devine 0). ˆIn diagrama V-K a funct¸iei f2 la comutarea lui A de la 1 la 0 se trece din suprafat¸a implicantului prim AB (pentru care ie¸sirea este ˆın 1) ˆın suprafat¸a implicantului prim AC (pentru care ie¸sirea este ˆın 1). Pentru ca prin aceast˘ a comutare “punctul de ,, funct¸ionare s˘ a r˘ amˆ an˘ a totu¸si ˆın interiorul unei suprafet¸e de 1 (care s˘ a asigure ie¸sirea ,, la valoarea 1) se introduce ˆınc˘ a o suprafat¸a˘ ˆın diagrama V-K (o suprafat¸a˘ “punte ˆıntre suprafet¸ele celor doi implicant¸i primi) care corespunde implicantului prim BC. ˆIn consecint¸a˘, ˆın structura circuiitului, Figura 2.23-d, trebuie ad˘ augat˘ a poarta 4 care genereaz˘ a produsul BC (partea de circuit desenat˘ a punctat). Fizic, introducerea implicantului prim neesent¸ial BC elimin˘ a hazardul deoarece asigur˘ a ie¸sirea funct¸iei ˆın 1 pe durata de propagare, τp , a semnaluilui A prin poarta inversoare cˆ and la ie¸sire ar fi A + A¯ = 0. Ca regul˘ a general˘ a, se poate enunt¸a: nu apare hazard la comutarea unei variabile ,, dac˘ a “punctul de funct¸ionare r˘ amˆ ane ˆın interiorul aceleia¸si suprafet¸e de 1, dar dac˘ a se trece intr-o alt˘ a suprafat¸a˘ de 1, se va produce hazard static 1. Pentru eliminarea hazardului este necesar˘ a introducerea unui produs ˆın structura circuitului a c˘ arui ,, coordonat˘ a determin˘ a o suprafat¸a˘ “punte (implicant prim cu valoarea 1) pe diagrama ,, V-K, ˆın interiorul c˘ areia s˘ a r˘ amˆ na˘ “punctul de funct¸ionare la comutarea variabilei. ¯ Funct¸ia (A+B)(A+C), care este forma dual˘ a a funct¸iei analizate anterior, pentru ¯ va genera hazard static 0, adic˘ valorile C = 0, B = 0 se reduce la produsul A · A, a va produce un glitch 1 pe ie¸sire cˆ and variabila de intrare A va comuta de la 0 la 1. Pentru eliminarea acestui glitch este necesar a se introduce ˆın implementarea circuitului a termenului sum˘ a (suplimentar) B + C, care va asigura valoarea 0 pe ie¸sirea funct¸iei atunci cˆ and A comut˘ a de la 0 la 1. ,, ˆIn exprim˘ arile anterioare, de multe ori, ˆın loc de sintagma “forma minim˘ a a funct¸iei s-a utilizat forma redus˘ a. Aceasta pentru c˘ a chiar dac˘ a prin sintez˘ a se obt¸ine o form˘ a minim˘ a, prin implementare, pentru eliminarea hazardului, se introduc implicant¸i neesent¸iali ¸si ˆın final se ajunge la o form˘ a redus˘ a. Circuitul din Figura 2.23d demonstreaz˘ a aceasta, pentru eliminarea hazardului static, formei minime AB +AC i se adaug˘ a termenul BC, deci implementarea este a unei forme reduse.

217

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

A

A

t

A I1 τp τp τp

A·A A+A A+A

A·A

τp

τp

t

A+A

t

A+A

t t

Figura 2.24 Circuite cu port¸i AND,OR,XOR pentru detectarea de fronturi. Producerea asincronismului la intararea unei port¸i prin aplicarea unei variabile ¸si a aceleia¸si variabile negate (prin intermediul unui inversor) poate fi utilizat˘ a pentru detectarea de fronturi, Figura 2.24. La aceste circuite dac˘ a se consider˘ a punctele de intrare ˆın poart˘ a ˆın pozit¸ia figurat˘ a de linia ˆıntrerupt˘ a notat˘ a cu I 1 se observ˘ a un asincronism la intrarea port¸ii; variat¸ia pe intrarea A¯ apare totdeauna ˆıntˆ arziat˘ a cu timpul τp de propagare prin inversor ˆın raport cu variabila pe intrarea A. Poarta AND genereaz˘ a un impuls pozitiv cu durata τp pentru un front pozitiv, poarta OR genereaz˘ a un impuls negativ pentru un front negativ iar poarta XOR genereaz˘ a un impuls negativ pentru oricare tip de front. La ie¸sirea unui CLC poate ap˘ area pentru o comutare a unei variabile de intrare de la 1 la 0 ¸si urm˘ atoarea comutare hazardat˘ a 1 → 0 → 1 → 0 (trei schimb˘ ari ale valorii ie¸sirii) respectiv pentru o comutare de la 0 la 1 pot ap˘ area urm˘ atoarele trei schimb˘ ari ale ie¸sirii: 0 → 1 → 0 → 1, acest comportament este referit ca hazard dinamic. Hazardul dinamic este cauzat de existent¸a ˆın circuit a trei sau mai multe trasee diferite pentru o variabil˘ a de intrare, fiecare traseu avˆ and un alt timp de propagare. Astfel de structuri rezult˘ a ˆın urma factoriz˘ arii expresiilor sum˘ a de produse, Figura 2.21-b, sau cˆ and exist˘ a trasee lungi de interconectare ˆıntre port¸i de vitez˘ a ridicat˘ a. Hazardul dinamic poate fi evitat dac˘ a se realizeaz˘ a implement˘ ari numai pe dou˘ a niveluri logice, adic˘ a aducerea expresiei de implementat la o form˘ a FD. Not¸iunile prezentate pˆ an˘ a acum ˆın acest capitol ˆımpreun˘ a cu cele de structurarea port¸ilor, expus˘ a ˆın capitolul 1, constituie un suport pentru realizarea unui CLC pornind de la formularea funct¸ion˘ arii cerute/impuse pˆ an˘ a la implementarea ˆıntr-o anumit˘ a tehnologie. Dar, parcurgerea tuturor etapelor, de fiecare dat˘ a cˆ and se realizeaz˘ a un sistem, apare ca o abordare nerecomandat˘ a atˆ at din punct de vedere al efortului cˆ at ¸si al timpului consumat, deci in final al costului. ˆIn acest sens, este reco,, mandabil ca pentru realizarea unui sistem s˘ a se utilizeze componente “prefabricate . ˆIn cadrul circuitelor combinat¸ionale pentru anumite funct¸ii logice, aritmetice sau de comunicat¸ie foarte des utilizate, exist˘ a deja circuite care modeleaz˘ a acele funct¸ii realizate ˆıntr-o anumit˘ a tehnologie, integrate pe scar˘ a mic˘ a SSI (Small Scale Integration),

218

2.4. CLC PENTRU FUNCT ¸ II LOGICE

pe scar˘ a medie MSI (Medium Scale Integration) sau chiar integrate pe scar˘ a mare LSI (Large Scale Integration) . ˆIn stadiul actual, cˆ and este necesar˘ a realizarea unei astfel de funct¸ii uzuale, nu se mai implementeaz˘ a circuitul, ci se alege un circuit obtenabil comercial pentru care este necesar˘ a cunoa¸sterea datelor electrice de catalog ¸si a variantelor de funct¸ie logic˘ a. Pentru un sistem mai complex, funct¸ia acestuia se caut˘ a a fi sintetizat˘ a din funct¸ii uzuale pentru care exist˘ a deja circuite implementate, deci realizarea sistemului se reduce la selectarea potrivit˘ a de componente integrate deja existente ¸si conectarea lor corespunzator. Funct¸iile uzuale care au un suport circuistic combinat¸ional sunt de tip: logic, aritmetic ¸si de comunicat¸ie. ˆIn continuare, ˆın acest capitol, se vor prezenta unele circuite combinat¸ionale, de facto standard, care realizeaz˘ a astfel de funct¸ii.

2.4

CIRCUITE COMBINAT ¸ IONALE PENTRU FUNCT ¸ II LOGICE

Forma redus˘ a, sau cea minim˘ a, a funct¸iei unui circuit combinat¸ional este fie o sum˘ a de produse, fie un produs de sume. Aceste forme pot fi implementate pe organiz˘ ari cu dou˘ a niveluri de AND-OR (NAND-NAND) sau OR-AND (NOR-NOR). ˆIn consecint¸a˘, este normal ca pentru implementarea unei funct¸ii reduse, sau minime, s˘ a se apeleze la acele structuri, pe dou˘ a nivele, deja realizate. Pentru toate circuitele combinat¸ionale prezentate ˆın continuare se va urm˘ ari m˘ asura ˆın care acestea pot fi un suport pentru implementarea de funct¸ii logice pe dou˘ a niveluri.

2.4.1

Codificatorul

Funct¸ia de codificare const˘ a ˆıntr-o translatare de limbaj. Particularizˆ and aceast˘ a foarte general˘ a definit¸ie, o codificare ˆın binar const˘ a ˆıntr-o aplicat¸ie de pe o mult¸ime cu n elemente disjuncte ˆıntr-o mult¸ime de cuvinte binare cu lungime de m bit¸i; m = dlog2 ne bit¸i, 2m ≥ n (simbolul d e denot˘ a cel mai mic num˘ ar intreg egal sau mai mare decˆ at num˘ arul din interiorul simbolului). Deci, circuitul codificator, CDC, este caracterizat de n intr˘ ari ¸si m ie¸siri, notat simbolic cu CDCn:m. Aplicat¸ia realizat˘ a de circuitul codificator este injectiv˘ a, adic˘ a fiec˘ arei intr˘ ari active, din cele n, ˆıi corespunde doar un singur cuvˆ ant de ie¸sire cu lungimea de m bit¸i. Pentru exemplificare se va prezenta sinteza unui codificator din zecimal (DEC) ˆın cod BCD, cu schema bloc reprezentat˘ a ˆın Figura 2.25-a. Circuitul are 10 intr˘ ari (I0 , I1 , I2 , ..., I9 ) corespunz˘ atoare celor zece cifre zecimale ¸si genereaz˘ a un cuvˆ ant de ie¸sire pe 4 bit¸i (24 > 10). La aplicarea pe intrare a cifrei zecimale i, prin activarea intr˘ arii Ii , la ie¸sire se genereaz˘ a codul BCD al cifrei i. Detaliat, funct¸ionarea codifcatorului DEC/BCD este descris˘ a prin tabelul de adev˘ ar din Figura 2.25-b. Se poate deduce expresia logic˘ a a ie¸sirii O3 ˆın felul urm˘ ator: O3 are valoarea logic˘ a 1 numai cˆ and la intrare se aplic˘ a cifra 8 sau cifra 9, adic˘ a este activat˘ a intrarea I 8 SAU I9 , deci O3 = I 8 + I 9 Rat¸ionˆ and ˆın acela¸si mod se deduc ecuat¸iile logice ¸si pentru ceilalt¸i trei bit¸i ai

219

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

cuvˆ antului de ie¸sire: O2 = I 4 + I 5 + I 6 + I 7 O1 = I 2 + I 3 + I 6 + I 7 O0 = I 1 + I 3 + I 5 + I 7 + I 9

I0

DEC

I1 I2 I3 I4 I5 I6 I7 I8 I9

a)

Intrarea activata (cifra zecimala)

I0 O0 y0 I1 O1 y1 I2 BCD I 3 O2 y2 I4 O3 y3 I5 I6 I7 I8 I9

("0") ("1") ("2") ("3") ("4") ("5") ("6") ("7") ("8") ("9")

Cod BCD O3 O2 O1O0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1

"0"

I0

"1"

I1

"2"

I2

"3"

I3

"4"

I4

"5" "6" "7" "8" "9"

I5 I6 I7 I8 I9

JK LM

DEC/BCD O0 y0

NO PQ ]\ RS TU VW

20 O1 y1 21

XYZ[ ^_ `a

O2 y2 22 O3 y3 23

b) CV

c)

Figura 2.25 Sinteza circuitului codificator zecimal - binar, DEC/BCD : a) schema bloc; b) tabelul de adev˘ ar; c) structura circuitului. Structura circuitului codificator, implementat pe baza acestor ecuat¸ii, este reprezentat˘ a ˆın Figura 2.25-c ¸si se compune din patru port¸i OR cu 2,4 ¸si 5 intr˘ ari. ˆIn cazul general de codificare a n elemente, prin activare ˆın 1 logic, pe cuvinte binare cu lungimea de m bit¸i circuitul codificator const˘ a ˆın m port¸i OR cu maximum n intr˘ ari, iar cˆ and intr˘ arile Ii L sunt active ˆın 0 logic codificatorul este structurat din m port¸i NAND cu maxim n intr˘ ari. Observat¸ia important˘ a care rezult˘ a din aceast˘ a implementare este: Codificatorul este implementat pe un nivel OR sau operat¸ia de codificarea este o funct¸ie logic˘ a OR. Analizˆ and implementarea CDC apar dou˘ a deficient¸e. Prima, la ie¸sire nu se poate face distinct¸ie ˆıntre cazul cˆ and cuvˆ antul de cod pe ie¸sire are valoarea O 3 O2 O1 O0 = 0000, datorit˘ a faptului c˘ a nu s-a activat nici o intrare, sau cazul cˆ and s-a activat intrarea I0 . Se poate face distinct¸ia ˆıntre cele dou˘ a cazuri dac˘ a se genereaz˘ a un semnal de ie¸sire CV care semnalizeaz˘ a cod valid CV = 1, respectiv cod invalid CV = 0. Citirea unui cod invalid CV = 0 apare numai atunci cˆ and nu este activat˘ a nici o intrare ¸si este citit un cod corect cˆ and una din intr˘ ari I i este activat˘ a, deci rezult˘ a ecuat¸ia logic˘ a CV = (I0 + I1 + ... + I8 + I9 ), care este implementat˘ a ˆın Figura 2.25-c prin traseele cu linii punctate ¸si o poart˘ a OR.

220

2.4. CLC PENTRU FUNCT ¸ II LOGICE

A doua deficient¸a˘ const˘ a ˆın faptul c˘ a CDC funct¸ioneaz˘ a corect numai cˆ and o singur˘ a intrare este activat˘ a, de exemplu la activarea simultan˘ a a intr˘ arilor I 3 ¸si I4 cuvˆ antul de cod generat este 0111 (incorect!), care ar corespunde aplic˘ arii cifrei 7 dar intrarea I7 nu a fost activat˘ a ci doar I3 ¸si I4 . Ca circuit codificator DEC/BCD, obtenabil comercial, exist˘ a circuitul integrat 74xx147.

2.4.2

Codificatorul prioritar, CDCP

A doua deficient¸a˘ a circuitului codificator se poate elimina prin introducerea unei priorit˘ a¸ti ˆın generarea codului. La o codificare cu prioritate, fiec˘ arei intr˘ ari I i i se aloc˘ a o anumit˘ a prioritate ˆın intervalul de la cea mai mic˘ a pˆ an˘ a la cea mai ridicat˘ a prioritate. Astfel, la activarea simultan˘ a a mai multor intr˘ ari codificatorul prioritar va genera numai codul intr˘ arii activate care are prioritatea cea mai ridicat˘ a. Pentru exemplificare se va considera un codificator prioritar cu opt intr˘ ari I 0 , I1 , ..., I7 care genereaz˘ a pe cele trei ie¸siri O2 , O1 , O0 cuvˆ antul de cod de trei bit¸i y2 y1 y0 ˆın binar natural, Figura 2.26-a. Pentru acest codificator CDCP8 : 3 alocarea priorit˘ a¸tii pe intr˘ ari este de la I0 spre I7 ; intrarea I0 are prioritatea ce mai mic˘ a iar I7 cea mai ridicat˘ a. CDCP 8:3 x7 x6 x5 x4 x3 x2 x1 x0

I7 I6 I5 I4 I3 I2 I1 I0

E_L

E

a)

O2 (2 2)

y2

O1 (2 1)

y1

O0 (2 0)

y0

D7 D5 D6 D3 D4 D1 D2 D0

Magistrala de date

y2

IRQ

y1

CV

y0

O2 O1 O0 CDCP 8:3 I7 I6 I5 I4 I3 I2 I1 I0 E

CV

µp

c)

x1

CDCP 21:1 I1

x0

I0

E_L

E

O0 Y 0

CV

P 7P 6P 5P 4P 3P 2P 1P 0 Periferice

b)

Figura 2.26 Codificatorul prioritar, CDCP: a) schema bloc pentru CDCP2 3 :3; b) structura codificatorului prioritar elementar CDCP2 1 :1; c) sistem de intreruperi vectorizate implementat pe baz˘ a de CDCP8:3 (la un sistem pe baz˘ a de microprocesor). Pentru urm˘ atorul cuvˆ ant X = x7 x6 x5 x4 x3 x2 x1 x0 = 00010111, aplicat pe intr˘ arile corespunz˘ atoare, cuvˆ antul de cod generat este Y = y 2 y1 y0 = 100 ceea ce corespunde activ˘ arii intr˘ arii I4 , celelalte intr˘ ari activate I2 = 1, I1 = 1 ¸si I0 = 1 nu afecteaz˘ a cuvˆ antul de ie¸sire deoarece au prioritate mai mic˘ a decˆ at intrarea I 4 . Iar, pentru cuvˆ amtul de cod generat pe ie¸sire Y = y2 y1 y0 = 101, care corespunde activ˘ arii intr˘ arii I5 = 1, configurat¸ia cuvˆ antului de intrare este de forma x 7 x6 x5 x4 x3 x2 x1 x0 = 001xxxxx, ceea ce ˆınseamn˘ a c˘ a intr˘ arile de la I 0 la I4 , care au prioritate mai mic˘ a decˆ at I5 , pot fi activate sau nu (indiferente). Pentru codificatorul prioritar, ˆıntre cuvˆ antul X aplicat pe intrare ¸si cel generat pe ie¸sirea Y , interpretate ca numere ˆıntregi ˆın binar natural, se poate scrie urm˘ atoarea relat¸ie:

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

Y = blog2 Xc

221

(2.10)

Codificatorul calculeaz˘ a la ie¸sire un num˘ ar ˆıntreg Y care este partea ˆıntreag˘ a blog2 Xc a logaritmului ˆın baza doi a num˘ arului X aplicat pe intrare. Deci, circuitul codificator prioritar realizeaz˘ a ¸si o funct¸ie aritmetic˘ a. ˆIn continuare se va realiza sinteza logic˘ a a circuitului CDCP2 3 :3. Sinteza circuitului, pornind de la tabelul de adev˘ ar, se poate realiza doar cu un program de calcul deoarece trebuie definite trei funct¸ii O2 , O1 , O0 fiecare de opt intr˘ ari I7 , ..., Ii , ..., I1 , I0 (ar necesita trei tabele de adev˘ ar cu 256 linii!). Sinteza poate fi mult u¸surat˘ a dac˘ a se utilizeaz˘ a observat¸ia: un cuvˆ ant binar la ie¸sire, y 2 y1 y0 |2 = i|10 , este generat de toate cuvintele de intrare X care au bit¸ii egali cu 0 ˆın pozit¸iile superioare lui i, bitul egal cu 1 ˆın pozit¸ia i ¸si bit¸i de valoare indiferent˘ a ˆın pozit¸iile inferioare lui i. ˆIn spiritul acestei observat¸ii se pot introduce urm˘ atoarele variabile intermediare H i (care definesc expresia logic˘ a pentru care intrarea Ii , 0 ≤ i ≤ 7, ˆı¸si genereaz˘ a codul pe ie¸sire): H7 H6 H5 . . H0

= I7 = I6 · I¯7 = I5 · I¯6 · I¯7 = I0 · I¯1 · I¯2 · I¯3 · I¯4 · I¯5 · I¯6 · I¯7

Cu aceste variabile intermediare sinteza codificatorului prioritar se realizeaz˘ a similar ca cea a codificatorului din sect¸iunea 2.4.1. Din tabelul cuvintelor de cod (num˘ arul lor fiind limitat de data aceasta la opt), pentru fiecare intrare, Figura 2.25-b, se deduc expresiile pentru O2 , O1 ¸si O0 sub forma unor sume logice ˆın felul urm˘ ator: O2 = H 4 + H 5 + H 6 + H 7 O1 = H 2 + H 3 + H 6 + H 7 O0 = H 1 + H 3 + H 6 + H 7 CV = I1 + I2 + I3 + I4 + I5 + I6 + I7 La grupul funct¸iilor O2 , O1 , O0 s-a ad˘ augat ¸si semnalul de cod valid la ie¸sire, CV , dedus la sinteza codificatorului. Pentru ca circuitul CDCP2 3 : 3 s˘ a fie flexibil ˆın aplicat¸ii mai trebuie ˆınzestrat cu un semnal de validare funct¸ionare circuit, E L (Ena, circuitul va genera semnale numai cˆ and este able, activ ˆın L, E = E L). Adic˘ validat de c˘ atre semnalul E L = 0. Aceasta implic˘ a pentru semnalele O 2 , O1 , O0 ¸si CV ca generarea lor s˘ a fie condit¸ionat˘ a de activarea lui E L = 0. Din relat¸iile anterioare, prin substitut¸iile corespunz˘ atoare, se obt¸in urm˘ atoarele relat¸ii logice pentru structurarea circuitului CDCP23 :3: O2 = E(I7 + I6 + I5 + I4 ) O1 = E(I7 + I6 + I3 I¯4 I¯5 + I2 I¯4 I¯5 ) O0 = E(I7 + I5 I¯6 + I3 I¯4 I¯6 + I1 I¯2 I¯4 I¯6 ) CV = E(I0 + I1 + I2 + I3 + I4 + I5 + I6 + I7 )

(2.11)

Aplicat¸ii CDCP2n :n sunt numeroase, majoritatea lor se bazeaz˘ a pe funct¸ia sa aritmetic˘ a, relat¸ia 2.10, adic˘ a se determin˘ a dintr-o mult¸ime de elemente active pe acela c˘ aruia i s-a alocat prioritate maxim˘ a.

222

2.4. CLC PENTRU FUNCT ¸ II LOGICE

O astfel de aplicat¸ie pentru CDCP este implementarea ˆıntreruperilor vectorizate la un microprocesor, µP , Figura 2.26-b. Principial, succesiunea ˆın realizarea ˆıntreruperilor vectorizate este urm˘ atoarea: • cˆ and un periferic Pi (i = 0, 1, ..., 7) necesit˘ a serviciul µP activeaz˘ a intrarea I i ; • codificatorul prioritar CDCP8:3 va genera pe ie¸sire (legat˘ a la magistrala de date) codul zecimal-binar al intr˘ arii Ii ¸si va activa semnalul de cerere de ˆıntrerupere (IRQ – Interrupt ReQuest) al µP , IRQ = CV ; • µP sesizˆ and, prin IRQ, o cerere de ˆıntrerupere de la un periferic va citi de pe ,, magistrala de date codul (“vectorul ) perifericului respectiv; • cu ajutorul vectorului transmis µP , acesta va calcula adresa din memorie unde se afl˘ a subrutina care va rezolva problema perifericului solicitant. Se ruleaz˘ a subrutina; • dup˘ a servirea perifericului se trece la servirea altui periferic dac˘ a semnalul IRQ este activat. ˆIntr-un sistem de calcul pentru o funct¸ionare economic˘ a, ¸si eventual ˆın timp real, fiec˘ arui periferic i se acord˘ a o anumit˘ a prioritate ˆın raport cu celelalte. ˆIn aceast˘ a aplicat¸ie, printr-o implementare pe baza de CDCP8:3, fiec˘ arui periferic P i i se fixeaz˘ a prioritatea prin modul ˆın care este conectat la una dintre cele opt intr˘ ari I 0 , I1 , ..., I7 (se consider˘ a c˘ a prioritatea cea mai mare o are I 7 iar cea mai mic˘ a o are I0 ). Dac˘ a simultan IRQ este activat de perifericele P2 , P3 ¸si P6 numai vectorul 101 va fi ˆınscris pe magistrala de date corespunz˘ ator perifericului P 6 , deci acesta va fi servit. Dup˘ a servirea perifericului P6 vor fi servite ˆın ordine perifericele P3 ¸si P2 dac˘ a acestea ment¸in activate I3 respectiv I2 (IRQ=1). Uneori, ˆın aplicat¸ii sunt necesare codificatoare prioritare cu mai mult decˆ at opt intr˘ ari, pentru care nu exist˘ a circuite de tip MSI obtenabile. Dac˘ a, de exemplu, sunt necesare 16 intr˘ ari (x0 , x1 , ..., x7 , x8 , ..., x15 ) se va structura un CDCP24 :4 prin ˆınserierea a dou˘ a circuite CDCP23 :3 ca ˆın Figura 2.27. La primul CDCP23 :3 se repartizeaz˘ a intr˘ arile x0 , x2 , ..., x7 , codificabile prin cuvintele de ie¸sire y3 y2 y1 y0 =0000, 0001, ...,0111, iar la al doilea CDCP23 :3 se repartizeaz˘ a intr˘ arile x8 , x9 , ..., x15 , codificabile prin cuvintele de la ie¸sire y3 y2 y1 y0 =1000, 1001, ...,1111. Din analiza cuvintelor de cod se constat˘ a c˘ a bitul y3 are valoarea 1 totdeauna cˆ and cel put¸in o intrare din intervalul x8 ÷ x15 este activat˘ a ¸si are valoarea 0 cˆ and nici una dintre intr˘ arile din acest interval nu este activat˘ a. Deoarece fiecare dintre codificatoare produce numai trei bit¸i de cod O2 , O1 , O0 bitul al patrulea din cod, y3 , va fi determinat de activarea a cel put¸in unei intr˘ ari din intervalu x8 ÷ x15 , deci poate fi calculat prin semnalul CV de la al doilea codificator, y3 = CV2 . Ceilalt¸i trei bit¸i de cod y3 , y2 , y1 sunt generat¸i fie pe ie¸sirile O2 , O1 , O0 ale primului codificator, cˆ and se activeaz˘ a intr˘ ari din intervalul x0 ÷ x7 , fie pe ie¸sirile O2 , O1 , O0 ale celui de-al doilea codificator, cˆ and se activeaz˘ a intr˘ ari din intervalul x8 − x15 , deci rezult˘ a c˘ a se obt¸ine cuvˆ antul de ie¸sire printr-un SAU ˆıntre cuvintele corespunz˘ atoare celor dou˘ a codificatoare. Se observ˘ a c˘ a o activare ˆın intervalul x8 ÷ x15 , a semnalului CV = 1 (legat la intrarea de validare a primului codificator care este activ˘ a ˆın zero, E L=0) va devalida pe primul codificator CV = E L = 1, acesta va fi validat numai cˆ and nu este activat˘ a nici o intrare din intervalul x8 ÷ x15 , CV = E L = 0.

223

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

x 7 x 6 x 5 x 4 x 3 x 2 x 1x 0

x 15x 14x 13x 12x 11x 10x 9x 8

E

I7 I6 I5 I4 I3 I2 I1 I0 CV CDCP 23:3 O2 O1 O0

y3

y2

E_L

E

y1

I7 I6 I5 I4 I3 I2 I1 I0 CV CDCP 23:3 O2 O1 O0

y0

Figura 2.27 Structurarea unui codificator prioritar cu 16 intr˘ ari ca o extensie serie de la un codificator prioritar cu 8 intr˘ ari. Extensia la un codificator cu 32 de intr˘ ari, adic˘ a un CDCP2 5 :5, se poate obt¸ine 4 printr-o ˆınseriere a dou˘ a CDCP2 :4, fiecare cu o structurare ca cea din Figura 2.27. Pentru o extensie care nu este o dublare a num˘ arului de intr˘ ari, de exemplu, la o extensie de la 16 intr˘ ari la 24 intr˘ ari se ˆınseriaz˘ a un un CDCP2 3 :3 cu un CDCP24 :4. Deoarece bitul al cincelea y4 , din cuvˆ antul de cod de ie¸sire y4 y3 y2 y1 y0 , are valoarea 1 numai cˆ and exist˘ a o activare ˆın intervalul de intr˘ ari x 16 ÷ x23 , ˆın rest are valoarea 0 numai, acest bit se obt¸ine din semnalul CV de la CDCD 2 3 :3. De asemenea, bitul y3 are valoarea 0 pe intervalul x15 ÷ x23 ˆın rest se calculeaz˘ a ca ˆın Figura 2.27. Cu aceste observat¸ii se poate structura u¸sor codificatorul prioritar cu 24 intr˘ ari. Ecuat¸iile logice pentru cel mai simplu CDCP21 :1, cu dou˘ a intr˘ ari I0 , I1 ¸si ie¸sirea O0 , referit codificator prioritar elementar, CDCPE, se obt¸in din relat¸iile 2.11 prin particularizarea I2 = I3 = I4 = I5 = I6 = I7 = 0 O0 = E · I i CV = E(I0 + I1 )

(2.12)

cu structurarea din Figura 2.26-b. Pornind de la CDCP21 :1, prin dublarea repetat˘ a a num˘ arului intr˘ arilor ¸si corespunz˘ ator cre¸sterii cu un bit a cuvˆ antului de ie¸sire, se pot defini ¸si, respectiv, structura recursiv codificatoarele CDCP22 :2, CDCP23 :3, CDCP24 :4,..., CDCP2n :n. Se va nota pentru codificatorul CDCP2n :n, cu 2n intr˘ ari ¸si un cuvˆ ant de cod de n bit¸i, dimensiunea respectiv adˆ ancimea prin S(n) ¸si D(n). Structurarea recursiv˘ a pornind de la CDCPE se poate face prin extensie paralel˘ a. ˆIn [Stefan 0 00]se demonstreaz˘ a c˘ a pentru extensia paralel˘ a caracteristicile obt¸inute sunt S(n) ∈ 2 n ¸si D(n) ∈ O(2n ), adic˘ a o dimensiune care depinde linar de num˘ arul de intr˘ ari (2 n ), accepatbil pentru implementare, ¸si o adˆ ancime tot liniar˘ a ˆın funct¸ie de num˘ arul de intr˘ ari, deci performant¸a de vitez˘ a sc˘ azut˘ a pentru n ridicat. Iar pentru structurarea serie, a unui CDCP2 n :n porinind de la CDCPE, caracteristicile sunt S(n) ∈ 2 n ¸si D(n) ∈ O(n), de data aceast˘ a rezult˘ a ¸si pentru performant¸a de vitez˘ a o m˘ arime acceptabil˘ a. Obtenabil comercial exist˘ a codificatorul cu 8 c˘ ai de intrare cu ie¸sirea ˆın cod binar natural, 74xx148, a c˘ arui structur˘ a ¸si funct¸ionare pot fi reg˘ asite ˆın codificatorul generic prezentat ˆın Figura 2.26.

224

2.4. CLC PENTRU FUNCT ¸ II LOGICE

2.4.3

Decodificatorul, DCD

Funct¸ia de decodificare este o aplicat¸ie de pe o mult¸ime de 2 n cuvinte binare ˆıntr-o mult¸ime de 2n elemente distincte, prin decodificare fiec˘ arui cuvˆ ant binar cu lungimea le n bit¸i i se asigneaz˘ a un element distinct. Deci, funct¸ia de decodificare apare ca aplicat¸ia invers˘ a celei de codificare (ce asigneaz˘ a unui element dintr-o mult¸ime de 2 n elemente distincte un cuvˆ ant de cod). Circuitul care modeleaz˘ a funct¸ia de decodificare este notat prin DCDn:2n deoarece prezint˘ a n intr˘ ari (un cuvˆ ant de intrare cu lungimea de n bit¸i) ¸si 2n ie¸siri (distincte). Ca exemplificare se va prezenta circuitul decodifcator pentru cuvinte cu lungime de 2 bit¸i, DCD2:4. Tabelul de adev˘ ar al circuitului DCD2:4 este prezentat ˆın Figura 2.28-a. Pe lˆ anga cuvˆ antul de intrare x1 x0 , circuitului i se aplic˘ a ¸si o un semnal de validare E L (E = E L) astfel c˘ a funct¸ionarea circuitului, obt¸inerea unei ie¸siri active din cele patru O3 , O2 , O1 ¸si O0 , este posiblil˘ a numai cˆ and ¸si semnalul de validare este activ E L = 0. Fiec˘ arui cuvˆ ant de intrare x 1 x0 din cele patru (00,01,10,11) ˆıi corespunde o ie¸sire activ˘ a (respectiv: O 0 = 1, O1 = 0, O2 = 1, O3 = 1), deci funct¸ionarea circuitului apare ca o identificare de cod. Din tabelul de adev˘ ar pentru fiecare ie¸sire se obt¸ine expresia logic˘ a de forma O 0 = E · I¯1 I¯0 ; O0 = E · I¯1 I0 ; a ca o ie¸sire Oi devine activ˘ a cˆ and pe intrare O0 = E · I1 I¯0 ; O0 = E · I1 I0 . Se observ˘ se aplic˘ a mintermul Pi , i = 0, 1, 2, 3. Se poate generaliza, un circuit decodificator DCDn:2n va genera ie¸sirea Oi activ˘ a atunci cˆ and pe intrare se aplic˘ a mintermul Pi , i = 0, 1, 2, ..., 2n − 1. Decodificatorul 2:4 este reprezentat ca schem˘ a bloc ˆın Figura 2.28-b, iar ca structur˘ a ˆın Figura 2.28-c. E_L I 1

1 0 0 0 0

a)

x 0 0 1 1

I 0 O3 O2 O1 O0 x 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 1 0 0 0

DCD 2:4 y3 O3 x1 I1 y O2 2 x0 y I0 O1 1 E_L y O0 0 E

b)

DCD 2:4 O3

x1 I 1

y3

DCD 1:2 x0 I

0

O2 y2

x0 I 0

E_L

E

O1

y1 E_L

O0

y0

I0

O1

y1

O0

y0

O1 O0

c)

d)

DCDE

Figura 2.28 Decodificatorul DCD2:4: a) tabelul de adev˘ ar; b) reprezentare, schem˘ a bloc; c) structur˘ a compus˘ a din decodificatoare elementare ¸si port¸i AND; c) structurarea decodificatorului elementar, DCD1:2. Structura decodificatorului elementar DCDE (DCD1:2), cu o singur˘ a intrare ¸si dou˘ a ie¸siri, se poate deduce pornind de la DCD2:4, prin eliminarea intr˘ arii I 1 , fie din structura circuitului, fie din tabelul de adev˘ ar (¸si ˆın acest ultim caz efectuˆ and sinteza). ˆIn structura obt¸inut˘ a pentru DCDE, Figura 2.28-d, dac˘ a se elimin˘ a semnalul

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

225

de validare E L nu mai sunt necesare cele dou˘ a port¸i AND, circuitul decodificator elementar se reduce la cele trei port¸i inversor. Pentru intrarea I 0 = 0 ie¸sirea activ˘ a, O0 = 1 se obt¸ine printr-un buffer inversor, iar pentru, I 0 = 1, ie¸sirea activ˘ a O1 = 1 se obt¸ine prin ˆınserierea a dou˘ a port¸i buffer inversor; aceasta este de fapt o structur˘ a de circuit furc˘ a 2 − 1, Figura 1.67. Se adopt˘ a un circuit furc˘ a pentru ca ˆıntˆ arzierile celor dou˘ a ie¸siri O1 ¸si O0 s˘ a fie egale (poate fi necesar un circuit furc˘ a (n − 1) − n ˆın funct¸ie de efortului electric H). Din punct de vedere logic DCDE se reduce doar la un singur inversor, dar cu o astfel de structurare O 1 se obt¸ine nebufferat, O1 = I0 , iar O0 se obt¸ine bufferat prin inversor, O0 = I0 . Aceast˘ a variant˘ a de structurare se evit˘ a ˆın practic˘ a deoarece pentru I0 = 1, ie¸sirea este conectat˘ a direct la intrare ¸si, ˆın plus, semnalele pe cele dou˘ a ie¸siri au timp de propagare diferit¸i. Pentru DCDE (furc˘ a 2-1) adˆ ancimea ¸si dimensiunea au respectiv valorile D(1) = 2, S(1) = 3. Pornind acum invers de la DCDE spre DCD2:4, se observ˘ a c˘ a DCD2:4 se structureaz˘ a din dou˘ a decodificatoare elementare ¸si patru port¸i AND3. Un DCD3:8 s-ar structura din 3 DCDE ¸si opt port¸i AND4. Extinzˆ and la DCDn:2 n structurarea ar fi n din nxDCDE ¸si 2 port¸i AND(n+1). Neluˆ and ˆın considerare intrarea de validare E (care nu reduce din generalizare, dar port¸ile AND vor avea o intrare mai put¸in) pentru DCDn:2n se obt¸in caracteristicile de adˆ ancime D(n) DCD ¸si dimensiune S(n)DCD : D(n)DCD = D(n)AN D + DDCDE = 1 + 2 = 3 ∈ O(1)

(2.13)

S(n)DCD = 2n · S(n)AN D + n · SDCDE = 2n · n + n · 3 ∈ O(n · 2n ) Aceast˘ a structurare (ca o extensie pornind de la DCDE) pentru DCDn:2 n , care poate fi referit cu adˆ ancime constant˘ a, prezint˘ a o foarte bun˘ a caracteristic˘ a de vitez˘ a dar o dimensiune ∈ O(n · 2n ) ce poate ridica unele probleme la implementare. De fapt, valorile calculate prin relat¸iile 2.13 trebuie luate ca valori minimale. Aceste valori minimale pot fi utilizate pentru evalu˘ arile implement˘ arilor ˆın tehnologia bipolar˘ a ¸si cˆ and n nu are valori prea ridicate, este cazul circuitelor docodificatoare realizate ca circuite integrate MSI sau circuite discrete, cu n cel mult 4 sau 5. Pentru implement˘ ari tip VLSI, este cazul memoriilor de capacitate ridicat˘ a cˆ and n ≥ 30, ˆın tehnologia CMOS (pentru care timpii de propagare depind puternic de ˆınc˘ arcare) structurarea decodificatorului se va modifica fat¸a˘ de structura cu adˆ ancimea constant˘ a prezentat˘ a ˆın Figura 2.28-c. ˆIn primul rˆ and DCDE va fi un circuit furc˘ a cu un num˘ ar de niveluri logice (Tabelul 1.16) ˆın funct¸ie de efortul electric. ˆIn al doilea rˆ and o poart˘ a AND cu n intr˘ ari, de exemplu cˆ and n = 32, pe un singur nivel logic este tehnologic foarte dificil de realizat, deci poarta se structureaz˘ a sub form˘ a de arbore din port¸i AND, care au un num˘ ar mai mic de intr˘ ari, rezultˆ and un arbore cu mai multe niveluri de AND. Dac˘ a, de exemplu, poarta AND se structureaz˘ a logic sub form˘ a de arbore din port¸i AND2 atunci se obt¸in log2 n niveluri de AND2 iar adˆ ancimea DCD2:n ar fi D(n) = DDCDE + log2 n. Dar, de fapt, adˆ ancimea arborelui de port¸i AND rezut˘ a ˆın funct¸ie de efortul F (Tabelul 1.15) al traseului prin arborele de port¸i AND care substituie poarta ANDn. Exemplul 2.12 Pentru cele trei structuri de poart˘a AND (notate cu varianta a, b ¸si c) reprezentate ˆın Figura 2.29 s˘ a se estimeze care este cea mai rapid˘ a. Se consider˘ a c˘ a la fiecare structur˘ a capacitatea de intrare Cin este de 4 unit˘ a¸ti; estimarea se va face pentru dou˘ a valori ale efortului electric H = 1 ¸si H = 12. Apoi structura mai rapid˘ a s˘ a se dimensioneze.

226

2.4. CLC PENTRU FUNCT ¸ II LOGICE

g=10/3 p=8

g=5/3 p=2

g=2 p=4

g=1 p=1

a) g=4/3 p=2

g=5/3 p=2

b)

g=4/3 p=2

g=1 p=1

c)

Figura 2.29 Trei variante de structurarea unei port¸i AND cu opt intr˘ ari. Solut¸ie. Se calculeaz˘ a efortul logic total ca produs dintre efortul logic de pe fiecare nivel (valorile se obt¸in din Tabelul 1.13) pentru fiecare dintre cele trei variante ¸si se obt¸ine: Ga = 10/3 · 1 = 3, 33; Gb = 2 · 5/3 = 3, 33; Gc = 4/3 · 4/3 · 4/3 · 1 = 2.96. Analizˆ and numai dup˘ a efortul logic ar rezulta c˘ a varianta c ar fi cea mai rapid˘ a, dar ˆıntˆ arzierea depinde de efortul total, F = GBH, ¸si nu numai de efortul logic. Aplicˆ and relat¸ia 1.102, pentru calculul ˆıntˆ arzierii minime D pe un traseu, rezult˘ a: varianta a : varianta b : varianta c :

ˆ = 2(2, 33 · H)1/2 + 9 D ˆ D = 2(2, 33 · H)1/2 + 6 ˆ = 4(2, 96 · H)1/4 + 7 D

ˆın care introducˆ and cele dou˘ a valori pentru H = 1 ¸si pentru H = 12. Se obt¸in valorile:

Varianta a b c

N F 1/N 3,65 3,65 5,25

P 9,0 6,0 7,0

H=1 ˆ = N F 1/N + P D 12,65 9,65 12,25

N F 1/N 12,64 12,64 9,77

P 9,0 6,0 7,0

H=12 ˆ = N F 1/N + P D 21,64 18,64 16,77

Deci pentru efortul electric H = 1 (Cin = 4, C0 = H · Cin = 4) varianta b are ˆıntˆ arzierea cea mai mic˘ a, iar pentru H = 12 (Cin = 4, C0 = 12 · 4 = 48) varianta c are ˆıntˆ arzierea cea mai mic˘ a. Dimensionarea variantei c (H=12) : fˆ = F 1/4 = (2, 96 · 12)1/4 = 2, 44. Pornind de la ultima poart˘ a (inversor) care are C0 = 12 · 4 = 48 unit˘ a¸ti, rezult˘ a sarcina pentru nivelul al treilea (NAND2), Cin4 = 48 · 1/2, 44 = 19, 66. Sarcina pentru nivelul al doilea (NOR2) este Cin3 = (19, 66 · 4/3)/2, 44 = 10, 73, iar sarcina pentru primul nivel (NAND2) Cin2 =

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

227

(10, 73 · 5/3)/2, 44 = 7, 33. ˆIn final, ca verificare, se poate calcula capacitatea de intrare Cin = (7, 3 · 4/3)/2, 44 = 4. Dimensionarea variantei b (H=1) : fˆ = F 1/2 = (3, 33 · 1)1/2 = 1, 83. Pornind de la ultima poart˘ a NAND2 care are sarcina C0 = H · Cin = 1 · 4 = 4 rezult˘ a capacitatea de sarcin˘ a pentru primul nivel (NAND4), Cin2 = (4 · 5/3)/1, 83 = 3, 64 valoare care este mai mic˘ a decˆ at capacitatea de intrare la primul nivel Cin = 4. Aceast˘ a valoare subunitar˘ a pentru h1 = 3, 64/4 = 0, 91 apare datorit˘ a faptului c˘ a s-a egalizat efortul pe fiecare nivel, iar nivelul unu are o poart˘ a care prezint˘ a un efort logic g1 = 2, rezut˘ a c˘ a h1 g1 = 0, 91 · 2 = 1, 82. Valorile capacit˘ a¸tilor de intrare Ci , calculate pentru fiecare nivel, se vor repartiza pe dimensiunile port¸ilor tranzistoarelor de intrare.

Din analiza structurii unui decodificator rezult˘ a: decodificatorul este structurat pe un nivel AND, sau decodificarea este o funct¸ie logic˘ a AND (identificare de cod/mintermi). Un DCDn:2n genereaz˘ a intern, ¸si sunt disponibili la ie¸sire, tot¸i cei 2n mintermi de n variabile. ˆIn consecint¸a˘, un DCDn : 2n poate fi utilizat pentru implementarea unei funct¸ii logice cu n variabile, dat˘ a sub forma FND (sum˘ a de termeni canonici produs), deoarece genereaz˘ a tot¸i termenii canonici produs de n variabile, iar nivelul OR al implement˘ arii se adaug˘ a din exterior (o poart˘ a OR care colecteaz˘ a termenii canonici care au valoarea 1). O form˘ a disjuntiv˘ a FD, pentru implementare trebuie ˆıntˆ ai extins˘ a la o form˘ a FND (sum˘ a de termeni canonici) deoarece la ie¸sirea decodificatorului oricum sunt disponibili tot¸i termenii cononici produs. Circuitele decodificator, pe lˆ ang˘ a suportul de nivel AND ˆın implementarea func¸tiilor logice, poate modela ¸si o funct¸ie aritmetic˘ a. Dac˘ a cuvˆ antul de intrare X, cu lungimea de n bit¸i ¸si cuvˆ antul generat pe ie¸sire Y , cu lungimea de 2 n bit¸i, sunt interpretate ca numere ˆıntregi, exprimate ˆın binar natural, atunci ˆıntre aceste dou˘ a numere exist˘ a relat¸ia: Y = 2X (2.14) adic˘ a, decodificatorul genereaz˘ a la ie¸sire un num˘ ar care este egal cu doi la o putere egal˘ a cu num˘ arul aplicat la intrare. Deoarece funct¸ia de exponent¸iere 2.14 este inversa funct¸iei de logaritmare 2.10 — se confirm˘ a afirmat¸ia de la ˆınceputul acestui paragraf, aceea c˘ a: decodificarea ¸si codificarea sunt fiecare funct¸ia invers˘ a a celeilalte (codifcarea este un nivel OR, iar decodificarea este un nivel AND). Identificarea de cod efectuat˘ a de decodificator se realizeaz˘ a pe un nivel AND. De exemplu, poarta AND care implementeaz˘ a produsul logic x 3 x ¯2 x ¯1 x0 este un identificator pentru codul 1001 deoarece numai pentru acest cuvˆ ant genereaz˘ a 1 pe ie¸sire. Pentru implement˘ ari se recomad˘ a, vezi sect¸iunea 2.3, operatorii negat¸i, deci o poart˘ a NAND ˆın loc de AND ceea ce ˆınseamn˘ a c˘ a ie¸sirile decodificatorului sunt active ˆın 0 ¸si nu ˆın 1 (Oi L). Dar ca identificator de cod poate fi utilizat˘ a ¸si poarta NOR, care genereaz˘ a la ie¸sire 1 numai cˆ and intr˘ arile sunt 0, deci fat¸a˘ de identificatorul de cod pe baza AND/NAND la cel pe baz˘ a de NOR intr˘ arile sunt active ˆın 0 ¸si nu ˆın 1 (I i L). O organizare de decodificator, ca identificator de cod pe baz˘ a de NOR, este cea cunoscut˘ a sub numele de decodificator Lyon-Schediwy [Sutherland 0 99]. La acest decodificator toate ie¸sirile sunt ˆın L ˆın afar˘ a de una, cea activ˘ a, care este ˆın H. O poart˘ a NOR CMOS realizeaz˘ a cu u¸surint¸a˘ ie¸sirea L (prin tranzistoarele nMOS conectate ˆın paralel din ramura ˆınspre VSS ), dar sunt dificult˘ a¸ti s˘ a genereze la ie¸sire un nivel H prin toate tranzistoarele pMOS ˆınseriate din ramura conectat˘ a la V DD . Deoarece la

228

2.4. CLC PENTRU FUNCT ¸ II LOGICE

V DD 4w 4w 2w

2w 2w

2w

w

w

w

x0

x1

w

1

1

x2

1

1

1

1

1

1

1

O1

O2

O3

1

1

1

x2 O0

w

1

1

x1

w

w

1

1

x0

w

1

1

1

1

1

1

1

1

O4

O5

O6

O7

Figura 2.30 Decodificator 3:8 tip Lyon-Schedwy (identificator de cod pe baz˘ a de port¸i NOR).

acest codificator tot timpul numai o ie¸sire este ˆın starea H, (deci toate celelalte ret¸ele de tip pMOS ale port¸ilor NOR nu conduc) este posibil ca unele din tranzistoarele de tip pMOS s˘ a intre ˆın structura mai multor port¸i NOR, prin aceasta se reduce num˘ arul de tranzistoare. ˆIn figura 2.30 este structurat, ˆın acest sens, un DCD3:8 care este compus din opt identificatoare de cod, opt port¸i NOR. Mai mult, pentru a asigura efort logic egal pentru cele trei semnale de intrare x 2 , x1 ¸si x0 (negate ¸si nenegate) l˘ a¸timea tranzistoarelor de canal nMOS este unitate iar l˘ a¸timea celor cu canal pMOS este mai mare de W (l˘ a¸timea de canal) ori ˆınmult¸it cu puterile lui 2. Cu o astfel de structurare ¸si cu tranzistoarele dimensionate ˆın acest mod, decodificatorul Lyone-Schediwy are performant¸e de timp mult mai bune decˆ at organizarea de codificator ca ˆın Figura 2.28-c la care, de fapt, ˆıntr-o implementare poarta AND4 nu este un singur nivel ci este substituit˘ a printr-un arbore cu dou˘ a sau trei niveluri (Exemplul 2.12).

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

229

Exemplul 2.13 Celula sumator complet, a c˘arei funct¸ionare este dat˘a ˆın tabelul 1.6, s˘ a se implementeze pe un circuit DCD3:8. Solut¸ie. Din Tabelul 1.6 prin sintez˘ a pe baz˘ a de 1, forma FCD, rezult˘ a: si =

7 X (1, 2, 4, 7),

Ci =

0

7 X (3, 5, 6, 7) 0

sau expresiile complementare: s¯i =

7 X (0, 3, 5, 6), 0

C¯i =

7 X (0, 1, 2, 4) 0

Pentru implementare cu un DCD3:8, care genereaz˘ a tot¸i cei opt mintermi de trei variabile, va fi necesar doar s˘ a se adauge ˆın exterior nivelul de OR care colecteaz˘ a termenii ce au valoarea 1. Se va face implementarea atˆ at pentru cazul cˆ and ie¸sirile decodificatorului sunt active ˆın H cˆ at ¸si ˆın L. ˆIn aceste sens se vor transforma potrivit expresiile pentru si ¸si Ci . 1.

Implementare pe baz˘ a de DCD3:8 cu ie¸sirile active ˆın H a) Expresiile si ¸si Ci se scriu: si = P 1 + P 2 + P 4 + P 7 ;

Ci = P 3 + P 5 + P 6 + P 7

Implementarea se reduce la colectarea mintermilor respectivi printr-o poart˘ a OR4, ad˘ augat˘ a ˆın exterior, ca ˆın Figura 2.31-a. b) Uneori funct¸ia negat˘ a se sintetizeaz˘ a prin mai put¸ini minterimi (nu este cazul pentru celula sumator complet) ceea ce poate constitui un avantaj, mic¸sorarea dimensiuni ¯i se scriu port¸ii ad˘ augate ˆın exterior. Expresiile pentru s¯i ¸si C s¯i = P0 + P3 + P5 + P6 → s¯i = P0 + P3 + P5 + P6 ¯i = P0 + P1 + P2 + P4 ¯i = P0 + P1 + P2 + P4 → C C pentru care corespunde implementarea din Figura 2.31-b. Colectarea mintermilor corespunz˘ atori se face printr-o poart˘ a NOR4 ad˘ augat˘ a ˆın exterior. 2.

Implementarea pe baz˘ a de DCD 3 : 8 cu ie¸sirile active ˆın L a) Expresile si ¸si Ci devin: s¯i = P1 + P2 + P4 + P7 = P¯1 · P¯2 · P¯4 · P¯7 ¯i = P3 + P5 + P6 + P7 = P¯3 · P¯5 · P¯6 · P¯7 C Colectarea ˆın exterior a mintermilor corespunz˘ atori se face printr-o poart˘ a NAND4, Figura 2.31-c. ¯i se scriu sub forma: b) Expresiile negate pentru s¯i ¸si C s¯i = P0 + P3 + P5 + P6 → s¯i = P0 + P3 + P5 + P6 = P¯0 · P¯3 · P¯5 · P¯6 ¯i = P0 + P1 + P2 + P4 = P¯0 · P¯1 · P¯2 · P¯4 C¯i = P0 + P1 + P2 + P4 → C De data aceasta colectarea ˆın exterior a mintermilor se face printr-o poart˘ a AND4, Figura 2.31-d.

230

2.4. CLC PENTRU FUNCT ¸ II LOGICE DCD 3:8

xi

22

yi

21

C i−1

20

O7 O6 O5 O4 O3 O2 O1 O0

DCD 3:8

Ci

22

yi

21

C i−1

20

si

a)

Ci

si

b) DCD 3:8

xi

22

yi

21

C i−1

20

c)

xi

O7 O6 O5 O4 O3 O2 O1 O0

O7 O6 O5 O4 O3 O2 O1 O0

DCD 3:8

Ci

xi

22

yi

21

C i−1

20

si

O7 O6 O5 O4 O3 O2 O1 O0

Ci

si

d)

Figura 2.31 Implementarea celulei sumator complet pe un DCD3:8: a,b) pe decodificator cu ie¸siri active ˆın H; c,d) pe decodificator cu ie¸siri active ˆın L.

Anterior s-a structurat DCDn:2n cu adˆ ancimea constant˘ a (D(n) = 3), ˆın mod inductiv, pornind de la DCDE ¸si port¸i AND ad˘ augˆ and succesiv cˆ ate un bit la cuvˆ antul de intrare ¸si s-au obt¸inut caracteristicile de adˆ ancime ¸si dimensiune exprimate prin relat¸iile 2.13. Se poate face o structurare ¸si definire a DCDn:2 n , pornind ˆın sens invers, divizˆ andu-l ˆıntˆ ai ˆın dou˘ a DCDn/2:2 n/2 iar ie¸sirile acestor decodificatoare sunt intr˘ arile pe liniile ¸si coloanele unei matrice format˘ a din 2 n/2 · 2n/2 port¸i AND2, Figura 2.32. Cuvˆ antul de intrare xn−1 xn−2 ...xn/2 xn/2−1 ...x1 x0 se separ˘ a ˆın dou˘ a semicuvinte, semicuvˆ antul xn−1 xn−2 ... xn/2 va genera o ie¸sire activ˘ a pe liniile matricei iar semicuvˆ antul xn/2−1 ...x1 x0 va genera o ie¸sire activ˘ a pe coloanele matricii, ˆın consecint¸a˘ poarta AND2 de la intersect¸ia liniei ¸si coloanei active va avea ie¸sirea 1, restul de 2n − 1 port¸i vor avea ie¸sirea ˆın zero. Aceast˘ a modalitate de decodificare matriceal˘ a (decodificare bidimensional˘ a) se aplic˘ a ¸si la decodificatoarele rezultate; fiecare din cele dou˘ a decodificatoare DCDn/2:2 n/2 , unul pentru linii iar altul pentru coloane, se structureaz˘ a la rˆ andul s˘ au prin divizarea ˆın dou˘ a decodificatoare DCDn/4 : 2n/4 unul pentru linii, altul pentru coloane ¸si 2 n/2 port¸i AND2. Se continu˘ a aceast˘ a divizare cu doi, a fiec˘ arui decodificator, pˆ an˘ a cˆ and se ajunge la ultimul nivel de structurare compus din dou˘ a DCDE care comand˘ a o matrice de 4 port¸i AND2. Carecteristicile ¸si definit¸ia multiplexorului DCDn : 2 n structurat recursiv sunt date ˆın [S¸tefan 0 00]. Definit¸ia 2.9 Un DCDn : 2n se structureaz˘ a prin divizare ˆın dou˘ a DCDn/2:2 n/2 n/2 n/2 ¸si o matrice de port¸i AND2, de dimensiunea 2 · 2 , ale c˘ aror intr˘ ari sunt toate

231

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

O0

x0 x1

I1

x n/2−1

DCD n/2:2n/2

I0

O1

y0

y1

y

y 2n/2 +1

2n/2

y

I n/2−1 O2n/2 −1 y O0

n/2

I0 n

2n/2 −1

n/2

x n/2

2n−1

O1 O2n/2 −1 DCD n/2:2n/2 I1 I n/2−1 x n/2+1

x n−1

Figura 2.32 Explicativ˘ a pentru definirea recursiv˘ a a unui DCDn:2n (decodificare bidimensional˘ a). perechile de ie¸siri din cele dou˘ a decodificatoare. Cele dou˘ a DCDn/2:2 n/2 de asemenea se structureaz˘ a prin divizare ˆın acela¸si mod. Procesul de divizare recursiv˘ a se opre¸ste cˆ and se ajunge la DCDE.  Dimensiunea definit¸iei pentru DCDn:2n este constant˘ a ¸si independent˘ a de valoarea lui n deci conform definit¸iei 2.1 decodificatorul nu este un circuit complex ci unul simplu, deci realizabil. Dar pentru a declara realizabilitatea circuitului trebuie luat˘ a ˆın considerare ¸si dimensiunea sa. Cu valorile pentru decodificatorul elementar DDCD (1) = 2, SDCD (1) = 3 ¸si ¸tinˆ and cont c˘ a prin Definit¸ia 2.9 dup˘ a fiecare divizare se genereaz˘ a dou˘ a DCDn/2 : 2n/2 ¸si 2n port¸i AND2 se poate calcula dimensiunea SDCD (n) ¸si adˆ ancimea DDCD (n) ˆın felul urm˘ ator: SDCD (n) = 2 · SDCD (n/2) + 2n · 2 = = 2 · [2 · SDCD (n/4) + 2n/2 · 2] + 2n · 2 = ... ∈ O(2n ) DDCD (n) = DDCD (n/2) + DAN D (2) = [DDCD (n/4) + 1] + 1 = ... ∈ O(log n) Comparˆ and caracteristicile acestei structuri (compus˘ a numai din DCD(1) ¸si AND2) cu cele alestructurii de adˆ ancime constant˘ a (compus˘ a numai din DCD(1) ¸si ANDn) se constat˘ a c˘ a dimensiunea a sc˘ azut de la O(n · 2 n ) la O(2n ) iar adˆ ancimea a crescut de la O(1) la O(log n) deci, teoretic, aceast˘ a structurare este mai u¸sor realizabil˘ a ˆın schimb asigur˘ a performant¸e de vitez˘ a mai sc˘ azute (Degradarea performant¸ei de vitez˘ a cu mai mult decˆ at s-a mic¸sorat dimensiunea corespunde corel˘ arii dintre S(n) ¸si D(n), relat¸ia 2.9). Dar, ˆın practic˘ a, pentru implement˘ arile de tip VLSI un DCD cu adˆ ancimea constant˘ a, ca ˆın Figura 2.28-c, nu poate fi realizat, port¸ile ANDn se structureaz˘ a cu port¸i mai simple sub form˘ a de arbore. De asemenea, ¸si la structurarea prin

232

2.4. CLC PENTRU FUNCT ¸ II LOGICE

diviz˘ ari port¸ile AND2 formeaz˘ a un arbore. Solut¸ia de mediere ar fi structurare prin divizare a DCD(n), dar dup˘ a prima sau a dou˘ a divizare DCD(n/2) sau DCD(n/4) s˘ a fie un decodificator de tip Lyon-Schedwy. Decodificatoarele eficiente din punct de vedere al timpului de propagare sunt necesare pentru adresarea memoriilor ¸si pentru selectarea registrelor din b˘ ancile de registre ale microprocesoarelor. Structurile de decodificator pentru aceste aplicat¸ii ajung s˘ a aib˘ a o valoare de efort total de valori ridicate (vezi Exemplul 1.30). Dar aspectele care trebuie luate ˆın considerare la proiectarea decodificatoarelor pentru astfel de aplicat¸ii sunt numeroase iar minimizarea efortului logic, pentru a obt¸ine ¸si o viteza, nu este exclusiv. De exemplu, considerat¸iile de layout sunt importante deoarece adesea decodificatorul trebuie s˘ a se ˆıncadreze ˆın suprafat¸a repartizata pentru memorie, suprafat¸a sa poate fi limitat˘ a, deci iat˘ a o constrˆ angere. De asemenea limitarea puterii disipate, poate fi o alt˘ a constrˆ agere important˘ a, de obicei un decodificator rapid poate necesita o putere disipat˘ a ridicat˘ a sau prea multe tranzistoare. ˆIn realizarea de sisteme pe placa cu circuite discrete pentru decodficatoarele DCDn:2n , cu n intr˘ ari ¸si 2n ie¸siri, referite ¸si cu termenul decodificator/multiplexor, (vezi sect¸iunea 2.4.5) exist˘ a urm˘ atoarele circuite MSI: 74xx138 - DCD3:8; 74xx139 2× DCD2:4; 74xx154 - DCD4:16. Alte circuite decodificatoare pot s˘ a nu aib˘ a definite toate cele 2n cuvinte de n bit¸i pe intrare sau pot s˘ a nu utilizeze toate cele 2 n ie¸siri cum este cazul urm˘ atoarelor circuite integrate: 74xx42 - Decodificator din BCD ˆın zecimal; 74xx47 ¸si 74xx49 - Decodificatoare din BCD pentru elemente de afi¸saj cu 7 segmente (vezi Exemplul 2.14 ). 2.4.3.1

Convertorul de cod

Convertorul de cod este un circuit combinat¸ional care pentru un cuvˆ ant de n bit¸i aplicat la intrare genereaz˘ a un cuvˆ ant de m bit¸i la ie¸sire, deci circuitul realizeaz˘ a o aplicat¸ie (mapare) ˆıntre o mult¸ime a cuvintelor de intrare cu valori ˆın mult¸imea cuvintelor de ie¸sire. Definirea ˆın acest mod a circuitului convertor de cod corespunde cu definit¸ia dat˘ a ˆın sect¸iunea 2.1 circuitului combinat¸ional cu ie¸siri multiple ¸si este reprezentat ca schema bloc in Figura 2.1-a. Rezult˘ a c˘ a oricare CLC cu ie¸siri multiple este, ˆın fond, un convertor de cod (transcodor).

n

Decodificator Iesiri=2 n=Intrari n:2n doar cate una (Nivel AND) singura activa

Codificator (Nivel OR)

m

n

Convertor de cod (AND−OR)

m

Figura 2.33 Organizarea de principiu pentru un convertor de cod. Structura unui convertor de cod const˘ a dintr-o ˆınseriere decodificator-codificator, adic˘ a dou˘ a nivele logice AND-OR, Figura 2.33. Codul de intrare de n bit¸i este aplicat nivelului de decodificare AND rezultˆ and o singur˘ a ie¸sire activ˘ a din cele 2 n . Aceast˘ a ie¸sire activat˘ a este aplicat˘ a ca o intrare pentru nivelul de codificare OR care genereaz˘ a un cuvˆ ant de m bit¸i pe ie¸sire. De fapt, ˆınserierea decodificator-codificator formeaz˘ a un circuit cu cele dou˘ a niveluri logice necesare pentru modelarea oric˘ arei funct¸ii logice sub form˘ a de sum˘ a de produse (AND-OR).

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

2.4.4

233

Multiplexorul

Circuitul multiplexor realizeaz˘ a ˆın primul rˆ and o funct¸ie de comunicat¸ie prin selectarea oric˘ arei linii de intrare Ii , dintr-un num˘ ar de 2n linii (I2n −1 , I2n −2 , ..., Ii , ...I1 , I0 ) ¸si conectarea acesteia la o singur˘ a ie¸sire, de unde, uneori, este referit ca circuit selector. Funct¸ia de comunicat¸ie — selectarea — realizat˘ a cu circuit multiplexor este similar˘ a cu cea realizat˘ a de c˘ atre un selector rotativ mecanic, Figura 2.34-a. Selectorul rotativ mecanic conecteaz˘ a la ie¸sire, ˆın funct¸ie de pozit¸ia contactului rotativ, una dintre liniile de intrare. La circuitul multiplexor, cu 2 n intr˘ ari de date ¸si o ie¸sire, reprezentat ca schema bloc ˆın Figura 2.34-b (notat prin MUX2 n :1), selectarea liniei de intrare de date Ii , pentru conectarea acesteia la ie¸sirea O, se face prin aplicarea pe intr˘ arile de selectare a indexului i exprimat ca num˘ ar ˆın binar natural (cuvˆ ant de selectare). Evident, pentru a putea selecta toate intr˘ arile num˘ arul cuvintelor de selectare (Sn−1 Sn−2 ...Si ...S1 S0 ) distincte trebuie s˘ a fie mai mare sau egal˘ a cu num˘ arul total al intr˘ arilor. ˆIn general, circuitul MUX2n :1 pe lˆ ang˘ a cele 2n intr˘ ari de date ¸si un cuvˆ ant de selectare, cu lungimea minim˘ a de n bit¸i, mai prezint˘ a ¸si o intrare de validare E (ˆın general activ˘ a ˆın stare L, E = E L). Particularizˆ and MUX2n :1 la n = 2 se obt¸ine multiplexorul cu patru c˘ ai de intrare (I3 , I2 , I1 , I0 ), selectabile cu un cuvˆ ant de doi bit¸i S1 , S0 , cu schema bloc ¸si tabelul de adev˘ ar prezentate ˆın Figura 2.34-c ¸si 2.34-d. Din tabelul de adev˘ ar a MUX4:1 se deduce urm˘ atoarea funct¸ie logic˘ a y = E Ld3 x1 x0 + E Ld2 x1 x0 + E Ld1 x1 x0 + E Ld0 x1 x0

(2.15)

¸si este similar˘ a cu cea exprimat˘ a de relat¸ia 1.82 sau 1.83. Aceast˘ a expresie este forma canonic˘ a normal˘ a disjunctiv˘ a pentru oricare dintre cele 16 funct¸ii de dou˘ a variabile. Structura circuitului MUX4:1 este cea din Figura 2.34-e. ˆIn aceast˘ a structur˘ a se distinge clar un circuit decodificator 2:4, ca cel din Figura 2.28-c, ale c˘ arui intr˘ ari x 1 , x0 sunt bit¸ii cuvˆ antului de selectare iar cele patru ie¸siri din port¸ile AND sunt colectate dintr-un nivel OR. Se poate interpreta c˘ a cele patru port¸i AND ale decodificatorului, prin intr˘ arile de selectare ¸si cea de validare E, selecteaz˘ a care din cele patru intr˘ ari de date (d3 , d2 , d1 , d0 ) este conectat˘ a la ie¸sire prin nivelul ad˘ augat OR. Un circuit DCD care este un nivel de AND, ce genereaz˘ a tot¸i mintermii canonici de n variabile, poate modela funct¸ii logice prin colectarea ˆın exterior prin port¸i OR a termenilor canonici care au valoarea 1 pentru funct¸ia respectiv˘ a (vezi Exemplul 2.13). Circuitul multiplexor, care este pe lˆ ang˘ a nivelul de AND ¸si un nivel de OR (intern), colecteaz˘ a ˆın interior tot¸i mintermii canonici de cele n variabile de selectare, deci poate modela oricare funct¸ie de n variabile rezultˆ and astfel ca un circuit logic universal. Valoarea 0 sau 1 a unui termen canonic P i ˆın exprimarea funct¸iei se fixeaz˘ a prin valoarea coeficientului di aplicat pe intrarea de date Ii . Din structura MUX4:1, prin eliminarea intr˘ arii de selectare x 1 , se obt¸ine MUX2:1 cu un singur bit de selectare x0 ¸si dou˘ a intr˘ ari de date I1 , I0 , care este referit ca multiplexorul elementar MUXE, Figura 2.34-f. Dac˘ a se consider˘ a intrarea de validare permanent activ˘ a (E L = 0) se constat˘ a c˘ a structura de MUXE este identic˘ a cu cea a celulei pentru implementarea recurent˘ a, sub form˘ a de arbore, a oric˘ arei funct¸ii logice dezvoltat˘ a recurent, Figura 2.6-a. Pornind de la structurarea MUX2:1 ¸si MUX4:1 se poate extinde structurarea la un MUX2n :1, care se compune dintrun DCDn:2n cu adˆ ancime constant˘ a, similar ca structur˘ a cu cel din Figura 2.28-c,

234

2.4. CLC PENTRU FUNCT ¸ II LOGICE

d0 d1 d 2n−2 d 2n−1

Selectare

a)

b)

1

x1 x0 y 0

d1 I 1

0 0 0 d0

d2

0 0 1 d1

d3 I 3

0 1 0 d2

O

E S1 S0 E_L

E_L Selectare

c)

X1 X0

MUX 4:1

d0 I 0 E_L

O

E Sn−1 S0

Enable (E)

I 2n−1

I 2n−2 I 2n−1

I0 I1 I2 I3

d0 d1 d2 d3

Mux 2 n:1

O I 2n−2

I0 I1

MUX 4:1

I0 I1

O y

I2

MUX 2:1

d0 I 0

y O

d1 I 1 DCDE

0 1 1 d3

S0

d)

S1 e)

E_L x 1

S0 x0

E_L x 0

f)

Figura 2.34 Multiplexorul, MUX: a) selectorul rotativ mecanic - analogul mecanic al multiplexorului; b) simbol de reprezentare pentru MUX2 n :1; c,d,e) schema bloc, tabelul de adev˘ ar ¸si structura circuitului MUX4:1; f) structura multiplexorului elementar, MUX2:1. ¸si o poart˘ a OR cu 2n intr˘ ari. DCDn:2n din cadrul MUX2n :1 se compune din n decodificatoare elementare DCDE ¸si 2n port¸i AND cu n + 1 intr˘ ari (n intr˘ ari de la cuvˆ antul de selectare, E ¸si o intrare de date d i ). Pentru structurarea ˆın acest mod a MUX2n : 1, referit˘ a multiplexor cu adˆ anacime constant˘ a, se pot calcula caracteristicile de dimensiune SM U X(n) ¸si adˆ ancime: SM U X(n) =

n · SDCDE + 2n · SAN D(n+1) + 1 · SOR(2n ) = n · 3 + 2n · (n + 1) + 1 · 2n ∈ O(n · 2n )

Adˆ ancimea are dou˘ a valori, prima pentru transferul pe traseul cuvˆ ant de selectareie¸sire care este de patru niveluri logice ¸si a doua pe traseul de intrare de date I i la ie¸sire care este de dou˘ a niveluri logice. Aceast˘ a diferent¸a˘ trebuie luat˘ a ˆın considerare la comanda multiplexorului dac˘ a semnalele pe intr˘ arile de date ¸si pe intr˘ arile de selectare nu se aplic˘ a simultan, atunci este recomandat ca cele de selectare s˘ a fie primele aplicate deoarece parcurg patru niveluri fat¸a˘ de dou˘ a pentru cele de date. De fapt, aceste caracteristici de dimensiune ¸si adˆ ancime sunt, teoretic, valori minime asimptotice. Practic, pentru n de valoare ridicat˘ a este dificil de realizat port¸i AND(n+1) ¸si OR2 n

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

235

pe un singur nivel logic; ˆın plus, mai ales ˆın tehnologia CMOS timpul de propagare depinde pregnant de ˆınc˘ arcare (vezi sect¸iunea 1.5.6). Definit¸ia 2.10 Un MUX 2n :1, selectat prin cuvˆ antul xn−1 xn−2 ...x1 x0 , se structureaz˘ a dintr-un MUXE selectat cu xn−1 ¸si are ca intr˘ ari de date ie¸sirile de la dou˘ a MUX2n−1 :1 selectate prin cuvˆ antul xn−2 ...x1 x0 . Apoi, asupra celor dou˘ a multiplexoare MUX2n−1 :1 se aplic˘ a acela¸si procedeu de structurare. Procedeul recursiv se opre¸ste cˆ and se ajunge la MUX-uri selectate prin x 0 .  Prin structurarea unui MUX2n :1, conforma Definit¸iei 2.10 , se obt¸ine o ret¸ea arborescent˘ a de (2n − 1)MUX2:1 avˆ and n niveluri, Figura 2.35-a. Structura aceasta de ret¸ea este identic˘ a cu structura arborescent˘ a pentru implementarea unei funct¸ii canonice normale disjunctive dezvoltate recurent din Figura 2.7. Cele 2 n intr˘ ari de ,, date ale MUX2n :1 sunt intr˘ arile ˆın multiplexoarele elementare “frunze iar ie¸sire este ,, ie¸sirea multiplexorului elementar “r˘ ad˘ acin˘ a ; se observ˘ a c˘ a transferul este pe trasee de la frunze ˆınspre r˘ ad˘ acin˘ a. Pe fiecare traseu se parcurge acela¸si num˘ ar de MUXE. Aceast˘ a structur˘ a recursiv˘ a a unui MUX2n :1 are urm˘ atoarele caracteristici de dimensiune ¸si adˆ ancime: DM U X(n) ∈ O(n), SM U X(n) ∈ O(2n ). Implementarea logic˘ a a multiplexoarelor ˆın circuitele VLSI apare foarte simpl˘ a cˆ and se utilizeaz˘ a elemente de trecere nMOS, port¸i de transmisie CMOS. Pornind de la funct¸ia sa de transmisie, multiplexorul, poate fi conceput din 2 n ramuri de transmisie care au un cap˘ at comun (ie¸sirea) iar la cel˘ alalt cap˘ at al fiec˘ arei ramuri se aplic˘ a data corespunz˘ atoare di care trebuie transmis˘ a. Fiecare ramur˘ a este compus˘ a din n elemente de trecere ˆınseriate (circuit AND) care va fi deschis˘ a doar pentru o singur˘ a configurat¸ie a bit¸ilor din cuvˆ antul de intrare x n−1 xn−2 ...x1 x0 . ˆIn acest mod de implementare, un multiplexor elementar este compus numai din dou˘ a ramuri pe care exist˘ a cˆ ate un element de trecere, unul dintre acestea este comandat de x 0 iar cel˘ alalt de x ¯0 , semnalele de comand˘ a fiind generate de un DCDE. O astfel de structur˘ a de MUX4:1 implementat˘ a cu port¸i de transmisie este prezentat˘ a ˆın Figura 1.53-c. ˆIn structura din aceast˘ a figur˘ a exist˘ a redundant¸a˘, ultimele a pe ramura lui di2 , au un terminal comun dou˘ a port¸i, una pe ramura lui di0 ¸si cealalt˘ ¯ deci pot fi substituite printr-o singur˘ (ie¸sirea) ¸si sunt comandate cu acela¸si semnal B, a poart˘ a (cele dou˘ a ramuri se unesc ˆınainte de aceast˘ a poart˘ a ¸si ˆımpreun˘ a prin aceast˘ a ajung la terminalul comun). Aceea¸si simplificare se poate face ¸si cu port¸ile comandate de B de pe liniile di1 ¸si di3 . Va rezulta o ret¸ea arborescent˘ a cu dou˘ a MUXE ¯ ˆIn Figura 2.35-b este selectate de A, A¯ urmate de un alt MUXE selectat de B, B. prezentat˘ a structurarea unui MUX8:1, sub form˘ a de ret¸ea arborescent˘ a din MUXE, realizat˘ a cu tranzistoare de trecere nMOS. Se observ˘ a c˘ a acest circuit se obt¸ine prin maparea 1:1, cu MUXE cu tranzistoare de trecere, a structurii recurente MUX2 n :1, din Figura 2.35-a, prin particularizarea pentru n = 3. Implement˘ arile sub form˘ a de ret¸ea arborescent˘ a sunt recomandate ˆın sistemele integrate de performant¸a˘ ridicat˘ a ¸si de putere redus˘ a. Totu¸si, pentru n de valoare ridicat˘ a timpul de propagare pe traseele de la frunze la r˘ ad˘ acin˘ a devine foarte mare. ˆIn lungul lungul unui traseu cu n tranzistoare de trecere ˆıntˆ arzierea este egal˘ a cu n 2 RC, unde RC este ˆıntˆ arzierea dat˘ a de ret¸eaua echivalent˘ a a tranzistorului de trecere. ˆIn Definit¸ia 2.10 structurarea prin recurent¸a˘ s-a specificat cu un pas egal cu unu, adic˘ a pentru cˆ ate un bit al cuvˆ antului de selectare rezultˆ and ˆın fiecare nivel numai MUXE. Dar se poate face structurarea pe grupuri de bit¸i din cuvˆ antul de selectare, de exemplu, dac˘ a se iau grupuri de cˆ ate doi sau trei bit¸i rezult˘ a pentru nivelurile

236

2.4. CLC PENTRU FUNCT ¸ II LOGICE

d0 d1 d2 d3

I0

MUXE

I1

I0

MUXE

I1

I0

I0

MUXE

MUXE

I1

I1

I0

MUXE

I1

I0

MUXE

I1

I0

d 2n−4 d 2n−3 d2n−2 d 2n−1 a)

MUXE

I1

I0

I0

MUXE

MUXE

I1

I1

I0

MUXE

I1

I0

MUXE

I1

x0

x n−3

x n−2

x n−1

d0 d1 d2 d3

O

d4 d5 d6 d7

MUXE

x0

b) 1xCI 12 conectari

O

x1 2xCI 28 conectari

x2 2xCI 23 conectari

O

O

2xCI 18 conectari

O

c)

Figura 2.35 Structurarea arborescent˘ a a unui multiplexor conform Definit¸iei 2.10: a) MUX2n :1 structurat din 2n MUX2:1; b) MUX8:1 realizat cu tranzistoare de trecere; c) variante de structurare a MUX8:1 pe baz˘ a de MUX4:1 ¸si MUX2:1

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

237

respective din ret¸eaua arborescent˘ a MUX22 :1, MUX23 :1 ˆın loc de MUXE. Varianta aceasta de structurare arat˘ a posibilitatea de obt¸inere a multiplexoarelor de capacitate mare din circuite multiplexoare de capacitate inferioar˘ a, de exemplu pe baza celor mai utilizate ˆın practic˘ a MUX4:1 sau MUX8:1. ˆIn Figura 2.35-c sunt prezentate variante de compunere a unui MUX8:1 din altele de capacit˘ a¸ti mai mici (4:1 ¸si 2:1). Care variant˘ a este mai bun˘ a? Pentru a r˘ aspunde la aceast˘ a ˆıntrebare trebuie introdus un criteriu de evaluare. Acest criteriu de evaluare ia ˆın considerare num˘ arul de circuite integrate utilizate, CI (exist˘ a 4× MUX2:1/cip; 2× MUX4:1/cip;1× MUX8:1/cip;) ¸si costul( care poate fi proport¸ional cu num˘ arul de terminale/conect˘ ari). Num˘ arul de terminale poate determina costul deoarece fiecare terminal trebuie lipit sau este un punct de wrapare. Din cele patru variante de structurare ale MUX8:1/cip apare c˘ a pentru criteriul ales cea mai bun˘ a variant˘ a este un singur MUX8:1/cip ¸si cea mai slab˘ a printr-o ret¸ea numai de MUX2:1. Dar s˘ a nu ne gr˘ abim, vom vedea c˘ a ˆın unele implement˘ ari realizarea unui multiplexor de capacitate mai mare din circuite de capacitate 2:1 poate fi cea mai avantajoas˘ a, vezi Exemplul 2.17. Pentru implement˘ arile de sisteme exist˘ a urm˘ atoarele multiplexoare sub form˘ a de circuite integrate MSI: 74xx150 74xx151 74xx153 74xx157 2.4.4.1

− − − −

1× 1× 2× 4×

MUX16:1 MUX8:1 MUX4:1, iar 74xx253 - 2 × MUX4:1 are ie¸sirea TSL MUX2:1, iar 74xx257 - 2 × MUX2:1 are ie¸sirea TSL

Aplicat¸ii cu circuite multiplexoare

Circuitul multiplexor poate modela o funct¸ie de comunicat¸ie, (a) selectare de date ¸si o funct¸ie canonic˘ a normal˘ a disjunctiv˘ a, (b) implementare de funct¸ii logice. Aplicat¸iile cu circuite multiplexoare se reduc la realizarea acestor dou˘ a tipuri de funct¸ii. a). Selectarea datelor. Circuitul MUX2n :1 poate fi utilizat pentru conversia paralel-serie a unui cuvˆ ant de 2n bit¸i. Bit¸ii cuvˆ antului de serializat se aplic˘ a pe intr˘ arile de date I2n −1 , I2n −2 , ..., Ii , ..., I1 , I0 , iar prin configurat¸ia cuvˆ antului de selectare xn−1 xn−2 ...x1 x0 un bit de pe o anumit˘ a intrare de date este aplicat la ie¸sire. Evident, serializarea bit¸ilor cuvˆ antului de date se poate realizare ˆın oricare secvent¸a˘ dorit˘ a. Dac˘ a este necesar˘ a serializarea succesiv˘ a ˆıncepˆ nd cu I 0 pˆ ana la I2n −1 atunci secvent¸ele configurat¸iilor cuvˆ antului de selectare sunt ˆın ordinea de cre¸stere a numerelor naturale, care se pot obt¸ine de la un num˘ ar˘ ator modulo 2 n , iar pentru aceast˘ a n serializare sunt necesare 2 tacte de clock. Uneori ˆın arhitectura unui sistem apare un desen ca cel din Figura 2.36-a care simbolizeaz˘ a transferul unor cuvinte cu lungimea de k bit¸i de la sursele P 2n −1 , P2n −2 , ..., Pi , ..., P1 , P0 (porturi surs˘ a) ˆıntr-un singur loc de destint¸ie (care poate fi un port, o magistral˘ a etc.). Acest transfer poate fi inplementat cu k multiplexoare 2 n :1 puse ˆın paralel, toate fiind comandate de acela¸si cuvˆ ant de selectare, Figura 2.36-b. Bit¸ii cuvˆ antului de la portul Pi se aplic˘ a, cˆ ate unul, numai la intrarea de date I i de la fiecare dintre cele k multiplexoare, deci un port este legat la toate intr˘ arile de date cu acela¸si num˘ ar de la cele k multiplexoare. La aplicarea unui cuvˆ ant de selectare i tot¸ii bit¸ii de pe intr˘ arile de date Ii ale celor k multiplexoare sunt transferat¸i la ie¸sirile acestora, deci cuvˆ antul cu lungimea de k bit¸i din portul P i este transferat ˆın portul

238

2.4. CLC PENTRU FUNCT ¸ II LOGICE MUX

0 2n:11 1

2n porturi de intrare (k−biti)

2n−1 MUX

0 2n:1k−1 1 P0

k

P1 k

MUX

P0

k P 2n−1

0 n k 2 :1 1

P1

2n−1

P 2n−1

k a)

x n−1

b)

Cuvantul de selectare comun pentru toate cele k x MUX 2 n:1

x0

Ramura TSL, inversor

V DD S 2n−1 S 2n−1 d 2n−1

linie de magistrala

Port de iesire (k−biti)

S1

S0

S1

S0

d1

d0

c)

Figura 2.36 Selectarea secvent¸ial˘ a a datalor: a) reprezentare simbolic˘ a a unui punct de selectare a datelor dintr-un sistem; b) selectarea unui port de intrare, dintrun num˘ ar de 2n porturi cu lungimea de k bit¸i, ¸si conectarea la un port de ie¸sire prin intermediul unui grup de k×MUX2n :1; c) structur˘ a ˆın tehnologie CMOS de MUX2n :1 cu ie¸sirea TSL pentru comanda unei linii de magistral˘ a.

de ie¸sire Pentru implement˘ arile VLSI cˆ and se lucreaz˘ a cu lungimi de cuvˆ and de 32, 64 bit¸i, deci tot atˆ atea multiplexoare puse ˆın paralel, ˆınc˘ arcarea electric˘ a a semnalelor se selectare este foarte mare ceea ce implic˘ a o bufferare, vezi Exemplul 1.28. Pentru implement˘ arile ˆın tehnologie CMOS o structur˘ a recomandat˘ a de multiplexor inversor cu 2n c˘ ai este prezentat˘ a ˆın Figura 2.36-c, care se compune din ramuri inversor TSL, Figura 1.46-c, toate conectate la o linie de magistral˘ a. Pentru semnale de selectare ale ramurii i, Si S¯i = 01 (generate de un decodificator), atˆ at ramura n cˆ at ¸si ramura p ale inversorului CMOS sunt blocate, deci ie¸sirea la linia de magistral˘ a este ˆın starea HZ, iar pentru Si S¯i = 10 ramura este ˆın funct¸ionare normal˘ a de inversor, data de intrare este transferat˘ a negat la magistral˘ a, d i . Efortul logic total al multiplexorului este 2n (4 + 4 · γ)/(1 + γ) = 4 · 2n , cu efortul logic pe o intrare de date (2 + 2 · γ)/(1 + γ) = 2; aceea¸si valoare 2 este ¸si pentru o preche (S i S¯i ) de semnale de

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

239

selectare. Rezult˘ a c˘ a efortul logic pe o intrare este constant ¸si nu depinde de num˘ arul de intr˘ ari, ceea ce ar sugera c˘ a se pot realiza multiplexoare rapide cu oricˆ ate linii de intrare. Totu¸si, cˆ and lungimea k a cuvintelor selectate este de valoare ridicat˘ a a un efort ridicat (k· MUX2n :1), desi perechile de semnale de selectare Si S¯i necesit˘ aceasta nu are un efect de marirea ˆıntˆ arzierii pentru transferul datei d i . Cˆ and se iau ˆın considerare ¸si capacit˘ a¸tile parazite se constat˘ a c˘ a aceast˘ a structur˘ a nu este rapid˘ a pentru un num˘ ar de intr˘ ari (ramuri inversor) ori cˆ at de mare, ˆın general se limiteaz˘ a la structura cu cel mult patru ramuri. Exemplul 2.14 S˘a se structureze un sistem pentru afi¸sarea a dou˘a cifre zecimale a c˘ aror cod BCD este ˆınscris ˆın dou˘ a porturi A, B. Se vor utiliza elemente afi¸soare cu 7 segmente cu catodul comun. Solut¸ie.Pentru iluminarea unei cifre trebuie conectate simultan la tensiunea +V tot¸i anozii LED-urilor (segmentelor) care configureaz˘ a caracterul iar catodul la mas˘ a, Figura 2.37. Conectarea simultan˘ a a segmentelor luminoase este realizat˘ a prin ie¸sirile (a, b, c, d, e, f, g), active ˆın H, ale unui convertor de cod BCD-7 segmente 7449. Deoarece se utilizeaz˘ a un singur decodificator 7449 pentru ambele elemente afi¸soare este necesar ca informat¸ia s˘ a fie aplicat˘ a alternativ cu o frecvent¸a ˘ de minim 30Hz (T≥3,33ms) pentru ca, prin inert¸ia ochiului, cifra s˘ a apar˘ a afi¸sat˘ a continuu. Pentru aplicarea alternativ˘ a, cu frecvent˘ a de 30Hz a cont¸inutului celor dou˘ a porturi surs˘ a A ¸si B pe intr˘ arile convertorului BCD-7 segmente, Tabelul 2.2, sect¸iunea 2.4.7, se utilizeaz˘ a 4×MUX2:1 ca selector de date (circuitul 74157). Conectarea la mas˘ a a catodului comun din fiecare dintre cele dou˘ a afi¸soare A ¸si B se realizeaz˘ a printr-un DCD2 : 4 (1/2 74139) cu ie¸sirile active ˆın L ¸si comandat sincron cu ie¸sirea cuvintelor A ¸si B prin multiplexor. Sincronizarea este realizat˘ a cu semnalul de ceas CLK, care se aplic˘ a pe intrarea I0 a decodificatorului ¸si pe intrarea comun˘ a de selectarea G1 a grupului de patru multiplexoare. Pe palierul pozitiv, CLK=1, se afi¸seaz˘ a cuvˆ antul din portul A iar pe palierul CLK=0 se afi¸seaz˘ a cuvˆ antul din portul B.

b). Implementarea funct¸iilor logice. Circuitul multiplexor MUX2 n :1, prin structura sa, produce pe nivelul de AND (decodificator) tot¸i termenii cononici produs de variabilele de selectare, fiecare minterm Pi fiind ˆınmult¸it cu coeficientul di respectiv, iar prin nivelul interior de OR ˆınsumeaz˘ a toate produsele obt¸inute, deci poate modela orice funct¸ie de n variabile sub forma sa canonic˘ a normal˘ a disjunctiv˘ a, relat¸ia n 1.10. Un MUX2n :1 apare ca suport pentru implementarea tuturor celor 2 2 funct¸ii de n variabile, particularizarea pentru o anumit˘ a funct¸ie f jn se face prin aplicarea n pe intrarea de date a setului de 2 coeficient¸i ai funct¸iei, deci multiplexorul este un circuit universal pentru implementarea oric˘ arei funct¸ii! Implementarea funct¸iei rezult˘ a ca o mapare direct˘ a a coeficient¸ilor funct¸iei citit¸i din tabelul de adev˘ ar sau diagrama V-K pe intr˘ arile de date corespunz˘ atoare ale multiplexorului. Implementarea funct¸iei pe multiplexor nu necesit˘ a minimizarea acesteia, dimpotriv˘ a, dac˘ a o funct¸ie este dat˘ a ˆın form˘ a redus˘ a/minim˘ a va trebui expandat˘ a pˆ ana la obt¸inerea formei normale disjunctiv˘ a din care rezult˘ a care intr˘ ari de date ale multiplexorului sunt 1 ¸si care sunt 0 (adic˘ a valorile coeficient¸ilor funct¸iei). Pentru implementarea celor 16 funct¸ii de dou˘ a variabile x 1 , x0 coeficient¸ii funct¸iei fi2 se citesc din Figura 1.2-a, fie din relat¸ia 1.82 (linia a i-a din matricea coeficient¸ilor) care se aplic˘ a unui MUX4:1, Figura 2.38. Din totalul de 16 MUX4:1, care modeleaz˘ a cele 16 funct¸ii, ¸sase pot fi eliminate deoarece funct¸iile pe care le modeleaz˘ a se reduc

240

2.4. CLC PENTRU FUNCT ¸ II LOGICE 4xMUX 2:1

A0 A1 A2

G1 B0 B1 B2

1 0 1 0

DCD BCD / 7segmente

Z

1

Y

2

X

a b c d e f g

4 W 8 7449

1 0

A3 1 0 B3 Port E A Port 74157 B Palier "1" selecteaza port A T

CLK

+V

Afisor A

a b c d e f g

Afisor B

a f

a b

f

g

T 2). Ca o consecint¸a˘ a acestei observat¸ii se deduce c˘ a pentru implementarea unei funct¸ii logice, pe baz˘ a de 1, sub form˘ a FCD (sum˘ a de mintermi) este necesar a se genera put¸ini mintermi din num˘ arul total de 2n ai funct¸iei. De asemenea, dac˘ a funct¸ia are multe valori 1 ¸si put¸ine valori 0, se poate face sinteza funct¸iei negate f¯ prin sumarea mintermilor pentru (put¸inele) configurat¸ii la care funct¸ia are valoarea 0 ¸si apoi prin negarea lui f¯ se obt¸ine funct¸ia, deci tot un num˘ ar mic de mintermi ce trebuie generat¸i ˆın raport cu num˘ arul total de mintermi 2n . Dar la o implementare pe un ROM sunt generat¸i tot¸i cei 2n mintermi indiferent dac˘ a sunt utilizat¸i ˆın sinteza funct¸iei sau nu; pentru un num˘ ar mare de variabile de intrare costul gener˘ arii mintermilor neutilizat¸i devine destul de ridicat. ˆIn concluzie, pentru implementarea aplicat¸iilor aritmetice (LUT-uri, programe de calculator) circuitul ROM este o solut¸ie recomandat˘ a dar pentru implementarea aplicat¸iilor logice, mai ales pentru n ridicat, ROM-ul nu este recomandat. Vom vedea c˘ a pentru implementarea funct¸iilor logice, cu n ridicat ¸si num˘ ar redus de mintermi necesari, este recomandat circuitul PLA.

2.4.6.1

Realizarea circuitelor ¸si modulelor ROM

Adresarea bidimensional˘ a. Pentru o memorie ROM de capacitate 2 n × m bit¸i, cu n bit¸i de adrese ¸si m bit¸i de date pe ie¸sire, Figura 2.47-a, se poate calcula dimensiunea SROM (n,m) . Considerˆ and fiecare linie de bit ca o poart˘ a OR cu 2 n intr˘ ari

256

2.4. CLC PENTRU FUNCT ¸ II LOGICE

¸si pentru fiecare buffer de ie¸sire TSL trei terminale rezult˘ a: SROM (n,m)

= SDCD(n) + m · SOR(2n ) + m · SBuf f er = n · 2n + m · 2n + m · 3 ∈ O((n + m) · 2n )

O astfel de dimensiune pentru n de valoare ridicat˘ a genereaz˘ a dificult˘ a¸ti la implementarea ROM. ˆIn general, n > m, iar m = 2k are valori uzuale de 1,4, sau 8. Dificult˘ a¸tile de implementare sunt datorit˘ a num˘ arului mare de ie¸siri de la DCDn:2 n ¸si valorii relativ mic˘ a a lui m. De exemplu, pentru circuitul 27C040 ROM cu capacitatea 4M (512K × 8 = 1019 × 23 = 222 bit¸i) ar rezulta un decodificator cu (512 × 1024) ie¸siri, ceea ce ar fi foarte greu de realizat, iar dimensiunile matricei ar fi 2 19 × 8, ori ,, aceast˘ a suprafat¸a˘ “filiform˘ a ar fi cu totul neconvenabil˘ a pe aria de Si. Se recomand˘ a ca suprafet¸ele ocupate pe aria de Si s˘ a fie p˘ atratice (sau dreptunghiulare) din motive tehnologice ¸si de ˆımpachetare (conexiuni ¸si pini). Aceste dou˘ a dificult˘ a¸ti, num˘ arul mare de ie¸siri ale DCD n : 2n cˆ at ¸si suprafat¸a filiform˘ a a matricei, pot fi dep˘ a¸site prin modul de adresarea bidimensional˘ a. La adresarea bidimensional˘ a, exprimat˘ a prin Definit¸ia 2.9 , cuvˆ antul de adres˘ a An−1 An−2 ...A1 A0 se ˆımparte ˆın dou˘ a subcuvinte de adres˘ a cu lungimea n 2 bit¸i alalt cu lungimea de n1 bit¸i (An1 −1 An1 −2 ...A1 A0 ), ˆın (An−1 An−2 ...An1 An1 ) ¸si cel˘ general n1 ¸si n2 au valori apropiate sau chiar egale, n = n1 + n2 . ˆIn felul acesta se realizeaz˘ a dou˘ a decodificatoare, unul DCDn 2 :2n2 pentru decodificarea liniilor matricei and un num˘ ar de ie¸siri ¸si cel˘ alalt DCDn1 :2n1 pentru decodificarea coloanelor, fiecare avˆ mult mai mic decˆ at decodificatorul init¸ial DCDn:2 n ; 2n1 1 la 2n2 /m · 2n1 ≈ 1. Prin trecerea de la o matrice ,, “filiform˘ a la una p˘ atratic˘ a, capacitatea memoriei, 2 n+k bit¸i, nu se modific˘ a, se pot calcula valorile pentru n1 ¸si n2 cu urm˘ atoarele relat¸ii: n2 = (n + k)/2, n1 + k = (n + k)/2; m = 2k . Recalculˆ and dimensiunea SROM (n,m) pentru adresarea bidimensional˘ a rezult˘ a: SROM (n,m) = SDCD(n2 ) + m · 2n1 · SOR(2n2 ) + SDCD(n1 ) +m · SBuf f er (2.16) = n 2 · 2 n2 + m · 2 n1 · 2 n2 + n 1 · 2 n1 + m · 3 ∈ O(m · 2n ) Valoarea dimensiunii proport¸ional˘ a cu capacitatea memoriei (m · 2 n ) nu mai poate fi mic¸sorat˘ a! ˆIn aceast˘ a variant˘ a de adresare bidimensional˘ a decodificatorul de linii, prin subcuvˆ antul de adres˘ a de n2 bit¸i, va activa cˆ ate o linie pe care exist˘ a m cuvinte de cˆ ate a selecteze ¸si s˘ a aplice la ie¸sire 2n2 bit¸i, iar decodificatorul de pe coloane va trebui s˘ cˆ ate un bit din fiecare din cele m cuvinte ale liniei activate. Aceast˘ a selectare se realizeaz˘ a cu un grup de m×MUX2n1 :1, subcuvˆ antul de adres˘ a An1 −1 An1 −2 ...A1 A0 se aplic˘ a pe intr˘ arile de selectare ale tuturor celor m multiplexoare. Practic, pentru un subcuvˆ ant de adres˘ a aplicat la grupul de multiplexoare se extrag bit¸ii din aceea¸si pozit¸ie ale celor m cuvinte. Logic, memoria r˘ amˆ ane o structurare de matrice cu 2 n linii ¸si m coloane. Pentru circuitul 27C040 folosit anterior, printr-o decodificare bidimensional˘ a la care dac˘ a se alege n1 = 11 ¸si n2 = 8 se obt¸ine o structurare cu un decodificator pentru linii cu 211 = 2048 ie¸siri, pe fiecare linie sunt 2048 bit¸i, iar pentru selectarea

257

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

A n−1 A n−2

Matrice programabila

DCD n2:2 An

1

n2

2

(Nivel de OR) n n 2 2 x m 2 1 biti

n2

Power On

Power On

mx2 A n −1 1 A n −2

n1

Power On n

m x MUX 2 1:1

1

A0 CS_L OE_L a) 32K x 8biti A 14 A 13 A 12 A 11 A 10 A9 A8 A7 A6

DCD 9:512

512

b)

D0

29x6429x6429x6429x6429x6429x6429x6429x64 biti biti biti biti biti biti biti biti

64 A5 A4 A3 A2 A1 A0

Dm−1 Dm−2

64

64

64

64

64

64

64

MUX MUX MUX MUX MUX MUX MUX MUX 64:1 64:1 64:1 64:1 64:1 64:1 64:1 64:1

D7

D6

D5

D4

D3

D2

D1

D0

Figura 2.49 Decodificarea bidimensiona˘ a a circuitului ROM: a) organizarea general˘ a, de principiu, cu un DCDn2 :2n2 pentru activarea liniilor ¸si cu un grup de arii anterioare m×MUX2n1 :1 pentru selectarea coloanelor; b) particularizarea structur˘ pentru o memorie ROM cu organizarea logic˘ a de 32K × 8 bit¸i.

258

2.4. CLC PENTRU FUNCT ¸ II LOGICE

cuvˆ antului de ie¸sire de 8 bit¸i sunt necesare 8×MUX2 8 :1; dimensiunea matricei este p˘ atratic˘ a 211 /8 × 28 = 1. ˆIn organizarea de principiu, pentru decodificarea bidimensional˘ a a unui circuit ROM, pe lˆ ang˘ a validarea bufferelor de ie¸sire TSL, prin conjunct¸ia dintre semnalele Chip Select ¸si Output Enable, exist˘ a ¸si o comand˘ a pentru cele trei componente: decodificatoare, matrice ¸si multiplexoarele pe ie¸sire, pentru trecerea ˆın regimul de a¸steptare (standby). Regimul de a¸steptare se obt¸ine prin neactivarea semnalului CS L, aplicat ¸si ca semnal de conectare la sursa de alimentare Power On, care va deconecta alimentarea componentelor respective. Deci cˆ and circuitul ROM nu este selectat, automat, consumul s˘ au de putere se reduce, prin trecerea ˆın regim de a¸steptare, pˆ an˘ a la 10% din cel ˆın regimul normal. ˆIn Figura 2.49-b este prezentat˘ a, ca o exemplificare, o posibil˘ a structurare de decodificare bidimensional˘ a a unui circuit ROM cu organizarea logic˘ a de 32K · 8 bit¸i. Decodificatorul cu 15 intr˘ ari ¸si (32 · 1024) ie¸siri este substituit cu un DCD9:2 9 la care se aplic˘ a subcuvˆ antul A14 ÷ A6 ¸si 8×MUX64:1 (toate selectate de acela¸si subcuvˆ ant A5 ÷A0 ). ˆIn acest fel, matricea programabil˘ a (nivelul OR) de la raportul dimensiunilor 215 /23 = 212 este scalat˘ a la raportul 29 /(8 · 26 = 1 deci a devenit p˘ atratic˘ a; pe fiecare linie, init¸ial cont¸inˆ and un cuvˆ ant de date de 8 bit¸i, au fost plasate dup˘ a scalare 8 cuvinte de date fiecare de cˆ ate 64 bit¸i. Tipuri de circuite ROM. Personalizarea unui circuit ROM pentru o anumit˘ a aplicat¸ie este realizat˘ a prin informat¸ia care se ˆınscrie pe nivelul SAU — matricea programabil˘ a. Aceast˘ a informat¸ie, valorile bit¸ilor ˆın fiecare nod al matricei, este elaborat˘ a de c˘ atre utilizator dar ˆınscrierea/programarea ˆın noduri se face ˆın diferite modalit˘ a¸ti, fie de c˘ atre produc˘ atorul circuitului, fie de c˘ atre utilizator. ˆIn funct¸ie de modalitatea fizic˘ a de programare exist˘ a mai multe tipuri de circuite ROM. 1. ROM programat prin mascare. Informat¸ia pentru aplicat¸ie, elaborat˘ a de proiectant, este trimis˘ a la turn˘ atoria de siliciu. Fabricantul, pe baza acestei informat¸ii, genereaz˘ a una sau dou˘ a m˘ a¸sti ¸si termin˘ a fazele de fabricat¸ie ale circuitului ROM, adic˘ a se ˆınscrie 1 sau 0 ˆın nodurile matricei. Fizic, aceast˘ a ˆınscriere prin mascare se reduce la prezent¸a sau absent¸a ˆın fiecare nod a unei conexiuni, ˆıntre linia de cuvˆ ant ¸si lina/coloana de bit. Evident, odat˘ a faza de programare ˆıncheiat˘ a, prezent¸a unei erori ˆın programarea nodurilor duce la rebutarea circuitului. Datorit˘ a costului ridicat de fabricat¸ie ¸si imposibilitatea corect˘ arii unei erori, realizarea aplicat¸iilor cu ROM programat prin mascare este indicat˘ a pentru generarea de funct¸ii standard, cum ar fi tabele de conversie foarte uzuale (LUT), funct¸ii specifice generate de c˘ atre utilizator ¸si cˆ and este nevoie de o product¸ie de serie mare (produse auto, de larg consum etc.). 2. ROM programabil, PROM (Programmable Read Only Memory). Acest tip de circuit ROM a ap˘ arut ca un r˘ aspuns la nevoia utlilizatorului de a nu mai fi legat de turn˘ atoria de siliciu ¸si de timpul lung necesar realiz˘ arii aplicat¸iei. Fabricantul produce circuitul care este deja ˆınscris ˆın toate nodurile sale fie cu bitul 1, fie cu bitul 0, depinde cum este organizat ROM-ul. Fizic, aceasta ˆınseamn˘ a c˘ a ˆın fiecare nod exist˘ a un fuzibil ˆıntre linia de cuvˆ ant ¸si lina de bit sau un tranzistor conectat cu drenul la linia de bit iar poarta este comandat˘ a de linia de cuvˆ ant, ca ˆın Figura 2.50-a ¸si a c˘ arei surs˘ a/emitor este legat la mas˘ a printr-un fuzibil. ˆIntr-un nod realizat cu tranzistor, al c˘ arui fuzibil ˆınseriat ˆın surs˘ a nu este ars, atunci cˆ and linia de cuvˆ ant care comand˘ a poarta este ˆın stare activ˘ a (se genereaz˘ a mintermul respectiv) va fort¸a la potent¸ialul masei tensiunea pe linia de bit, respectiv linia de bit va fi un 1 logic atunci

259

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

cˆ and mintermul respectiv are valoarea logic˘ a 0. Rezult˘ a c˘ a o linie de bit realizeaz˘ a ˆın logic˘ a pozitiv˘ a funct¸ia NOR de tot¸i mintermii ale c˘ aror tranzistoare conectate la acea linie nu au fuzibilul ars, iar dup˘ a bufferul inversor de ie¸sire se obt¸ine funct¸ia OR. Programarea PROM-ului este efectuat˘ a de c˘ atre utilizator cu ajutorul unui programator, prin care fuzibilul este ars numai ˆın acele noduri ˆın care informat¸ia init¸ial˘ a ˆınscris˘ a prin fabricat¸ie trebuie schimbat˘ a ˆın bitul complementar. Practic, se selecteaz˘ a nodul prin linia de cuvˆ ant ¸si lina de bit corespunz˘ atoare ¸si apoi, pe linia de bit se aplic˘ a un impuls de tensiune de valoare ridicat˘ a (10-30V) care fort¸eaz˘ a un curent prin fuzibil ce duce la arderea acestuia. Inconvenientele care pot s˘ a apar˘ a la aceste dispozitive o singur˘ a dat˘ a programabil˘ a, OTP (One Time Programmable) au fost prezentate la sfˆ ar¸situl sect¸iunii 1.2. De¸si PROM-ul elimin˘ a dependent¸a de turn˘ atoria de siliciu, totu¸si dezavantajul rebut˘ arii circuitului ˆın cazul unei erori de programare nu este eliminat, acest dezavantaj este eliminat de urm˘ atoarele tipuri de ROM reprogramabile. 3. ROM reprogramabil, EPROM (Eraseble Programmable ROM). Facilitatea de ¸stergere a cont¸inutului unui circuit ROM ¸si apoi reprogramarea se bazeaz˘ a pe funct¸ionarea tranzistorului cu poart˘ a flotant˘ a a c˘ arei structur˘ a este prezentat˘ a ˆın Figura 2.50-b.

ll lmlm mlml cb bc ll cb gf lmml bc gf mllm fg bc cb cb cb

nn nno n noo d d d d d h ihkj ihkj d ihkj pqqpqpqp dee qppqpqpq dee dee dee Poarta de control

Linie de cuvant

n+

Metal

~10nm

n+

n+

+V CC SiO2

R

Linie de cuvant

Substrat p Poarta flotanta

Linie de bit

Tranzistor de acces

b)

Linie de cuvant

Linie de bit

Fuzibil

Tranzistor programabil Poarta de control

Iesire data

a)

Iesire data

Figura 2.50 Structurarea de noduri pentru circuite ROM: a) nod de ROM programabil; b) nod de EEPROM. Tranzistorul cu poart˘ a flotant˘ a, fat¸a˘ de un nMOS normal, are dou˘ a port¸i suprapuse, poarta flotant˘ a ¸si poarta de control, separate printr-un strat de SiO 2 . Poarta flotant˘ a, spre deosebire de cea de control, nu are ˆın exterior un terminal de acces ¸si este izolat˘ a ˆın masa de SiO2 care o ˆınconjoar˘ a, iar stratul de SiO2 ˆıntre aceast˘ a poart˘ a ¸si substrat este foarte subt¸ire, cel mult 10nm. ˆIn anumite condit¸ii, de tensiuni aplicate pe terminalele tranzistorului, electronii cu energie ridicat˘ a din canal ,, (“hot electron ) pot str˘ abate stratul foarte subt¸iere de SiO2 pˆ ana la poarta flotant˘ a, iar aceasta, fiind izolat˘ a, r˘ amˆ ane ˆınc˘ arcat˘ a permanent cu sarcina negativ˘ a captat˘ a (permanent ˆınseamn˘ a cel put¸in 10 ani chiar ¸si la temperatura de 125 grade Celsius). Aceast˘ a sarcin˘ a negativ˘ a permanent˘ a de pe poarta flotant˘ a cre¸ste tensiunea de prag Vpn a tranzistorului nMOS la aproximativ 7V, ceea ce practic ˆınseamn˘ a c˘ a acesta

260

2.4. CLC PENTRU FUNCT ¸ II LOGICE

este blocat pentru toate tensiunile normale ale circuitului (5 ÷ 6)V. Procesul poate fi reversiblil, prin aplicarea unui fascicol de radiat¸ie ultraviolet˘ a care anuleaz˘ a sarcina negativ˘ a acumulat˘ a pe poarta flotant˘ a, deci tranzistorul devine iar˘ a¸si comandabil cu tensiunile normale ale circuitului. Structurarea unui nod pentru un circuit EPROM este similar˘ a cu cea a unui nod dintr-un circuit PROM descris˘ a anterior — un tranzistor care conecteaz˘ a linia de bit la mas˘ a printr-un fuzibil. Numai c˘ a, la EPROM, tranzistorul de acces care leag˘ a la mas˘ a linia de bit are ˆın surs˘ a ˆınseriat un tranzistor cu poart˘ a flotant˘ a ˆın loc de fuzibil. Programarea nodului, adic˘ a blocarea tranzistorului cu poarta flotant˘ a prin colectarea unei sarcini negative pe poarta flotant˘ a, se face ˆın felul urm˘ ator: se activeaz˘ a linia de cuvˆ ant (poarta tranzistorului de acces); se aplic˘ a prin linia de bit (¸si tranzistorul de acces) pe drenul tranzistorului cu poarta flotant˘ a o tensiune ˆın jur de 12 volt¸i; se aplic˘ a un impuls de tensiune de 13 ÷ 14 volt¸i pe poarta de control care ajut˘ a la colectarea sarcinii negative (electroni) pe poarta flotant˘ a. Rezult˘ a c˘ a tranzistorul cu poarta flotant˘ a, pentru care tensiunea de prag Vpn a devenit ridicat˘ a, ˆıntrerupe conectarea la mas˘ a ˆın acel nod al liniei de bit chiar dac˘ a tranzistorul de access corespunz˘ ator este comandat. S ¸ tergerea nodului se face prin expunerea circuitului, timp de 2030 de minute, ˆın radiat¸ii ultraviolete. Circuitele EPROM au pe partea superioar˘ a o fereastr˘ a, transparent˘ a la radiat¸ii ultraviolete, realizat˘ a din cuartz. Dezavantajul acestui mod de ¸stergere apare prin faptul c˘ a circuitul EPROM trebuie scos din soclul s˘ au de pe placa de circuit inprimat iar ¸stergerea sa este total˘ a, adic˘ a se ¸sterg toate nodurile, nu numai nodul care ar urma s˘ a fie reprogramat. Exist˘ a urm˘ atoarele circuite EPROM tip Intel obtenabile comercial: 2716-16K(2Kx8bit¸i); 2764-64K(8Kx8bit¸i); 27256-256K(32Kx8bit¸i); 27C010-1M(128Kx8bit¸i); 27C210-1M(64Kx16bit¸i); 27C040-4M(512Kx8bit¸i);

2732-32K(4Kx8bit¸i); 27128-128K(16Kx8bit¸i); 27512-512K(64Kx8bit¸i); 27C020-2M(256Kx8bit¸i); 7C220-2M(128Kx16bit¸i); 27C240-4M(256Kx16bit¸i);

4. Memoria ROM cu ¸stergere pe cale electirc˘ a EEPROM, E2 PROM (Electricaly Erasable Programmmable ROM). Acest tip de ROM elimin˘ a dezavantajele de la EPROM ¸si anume, circuitul nu mai trebuie scos din soclu pentru ¸stergere pentru c˘ a acesta operat¸ie se face pe cale electric˘ a. Practic, ¸stergerea se face ca ¸si ˆınscrierea prin aplicarea unei tensiuni pe poarta de control, dar de data aceasta, o tensiune de polaritate inversat˘ a, care elimin˘ a spre substrat sarcina negativ˘ a acumulat˘ a pe poarta flotant˘ a. S¸tergerea se face nu pe bit ci pe blocuri care pot ajunge pˆ an˘ a la 64Kbytes (de exemplu, la o memorie de 1Mbyte sau mai mare). O variant˘ a de EEPROM este memoria flash. Frecvent, memoriile Flash se produc sub form˘ a de cartele astfel ˆıncˆ at s˘ a fie utilizate ˆın aparatura portabil˘ a cum ar fi: camerele digitale, telefoane mobile, ˆımbr˘ ac˘ amintea electronic˘ a, transferul informat¸iei ˆıntre dou˘ a calculatoare (simularea unei diskete). ˆIn viitor, memoria Flash poate substitui harddisk-ul oferind un timp de acces ˆın jur de 100ns, fat¸a˘ de 6÷10 ms la harddisku-rile actuale. Obstacolul care exist˘ a, actual, la memoriile flash const˘ a ˆın num˘ arul limitat de ¸stergeri/ˆınscrieri, nu cu mult peste 10.000 ori ¸si capacitatea de stocare care a ajuns doar la sute de Mbytes (fat¸a˘ de 120 de Gbytes la harddisk-uri uzuale acum).

261

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

Tabelul 2.1 Tipuri de circuite ROM Tipul

Tehnologia

ROM cu mascare ROM cu mascare

NMOS, CMOS Bipolar

PROM EPROM EEPROM

Timp de acces τAA 10-200ns

Timp de ˆınscriere > 2 − 3 s˘ apt.

2 − 3 s˘ apt.

Bipolar

B3 sau A3 = B3 ¸si A2 > B2 sau A3 = B3 ¸si A2 = B2 ¸si A1 > B1 sau A3 = B3 ¸si A2 = B2 ¸si A1 = B1 ¸si A0 > B0 ceea ce duce la urm˘ atoarea expresie logic˘ a Fs = fs3 + fe3 · fs2 + fe3 · fe2 · fs1 + fe3 · fe2 · fe1 · fs0 • relat¸ia de inferioritate Fi , A < B, se deduce printr-un rat¸ionament asem˘ an˘ ator ¸si are forma Fi = fi3 + fe3 · fi2 + fe3 · fe2 · fi1 + fe3 · fe2 · fe1 · fi0

A B

Comp. de 1 bit

A 0 0 1 1

fi fe fs

B 0 1 0 1

fe fs 1 0 0 0 0 1 1 0

fi 0 1 0 0

A B

a) A3 A2 A1 A0

AB f e 2 fs 1 0 fe f e3 f e2 f e1 s0 Fi

Fe A=B

s

Fe

s Fs

0

FSS

b) +5V s Fe s Fi s Fs

A 7A 6A 5A 4

B7 B6 B5 B4

C1

74xx85

fe A=B fs A>B

2

2

Fe f e3 fe 2 fe Fs f 1 e0 A>B s Fe

B3 B2 B1 B0

fs f e3 fs 3

fi A S 0CDD/D (n) · D 0CDD/S (n)

300

2.5. CLC PENTRU FUNCT ¸ II NUMERICE

Aceast˘ a relat¸ie admite aceea¸si interpretare, care s-a dat la analiza relat¸iei 2.8 ˆın ceea ce prive¸ste corelarea ˆıntre adˆ ancime ¸si dimensiune cˆ and se caut˘ a un circuit de vitez˘ a mai ridicat˘ a (sporul de vitez˘ a este mai mic decˆ at cre¸sterea ˆın dimensiune ˆın circuistic˘ a). Similar, se poate structura ¸si un circuit rotitor din niveluri succesive de multiplexoare, fiecare nivel urm˘ ator realizˆ and rotat¸ii cresc˘ atoare dup˘ a puterile lui doi, caracteristicile de adˆ ancime ¸si dimensiunea sunt acelea¸si cu cele deduse anterior. P 4−Rotatie dreapta (S2S1S0=100) P 3−Rotatie stanga (S2S1S0=111) P 2−Deplasare logica stanga (S2S1S0=010) P 1−Deplasare aritmetica dreapta (S2S1S0=001) P 0−Deplasare logica dreapta (S2S1S0=000) x2 x3 MUX 6 x3 x3 0 8:1 x1

x0

x3

x2

x1

x0

x2

x1

x0

x2

x1

x0

x2

x1

x0

x3

x3

x3

0

x2

0

x1

0

x0

0

MUX 5 8:1

0

MUX 4 8:1

x3

MUX 3 8:1

x2

MUX 2 8:1

x1

MUX 1 8:1

x0

MUX 0 8:1 S2 S1 S0

Matricea de comutatie 4x4

y3

y2

y1

y0

0

1 2 3 DCD 2:4 D1 D0

Figura 2.72 Structurarea unui circuit shifter de 4 bit¸i pe baza unei matrice de comutat¸ie 4 × 4 ¸si a unui sistem de selectare secvent¸ial˘ a 7×MUX8:1 Circuitul general care poate implementa cele mai multe proces˘ ari asupra unui ¸sir de bit¸i (deplasare logic˘ a dreapta/stˆ anga, rotat¸ie stˆ anga/dreapta, deplasarea aritmetic˘ a stˆ anga/dreapta, inversarea ordinii, amestecare, extragere de bit¸i etc.) este matricea de comutat¸ie, Figura 2.71-b. ˆIn fiecare nod ij al unei matrice de comutat¸ie n×n exist˘ a un element de comutat¸ie care conecteaz˘ a coloana i la linia j, deci fiecare coloan˘ a i (linia de intrare xi ) poate fi conectat˘ a la oricare linie de ie¸sire y j . Ca element de comutat¸ie poate fi utilizat˘ a poarta CMOS de transmisie sau un tranzistor de trecere (uzual nMOS). Dezavantajul principal pentru o astfel de matrice de comutat¸ie este

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

301

num˘ arul mare, n2 , de conexiuni individuale de comand˘ a care trebuie aplicate la elementele de comutat¸ie din cele n2 noduri (un cuvˆ ant de control cu lungimea de n2 bit¸i). ˆIn cazurile particulare, cˆ and se implementeaz˘ a pe matricea de comutat¸ie doar un singur tip de procesare (o singur˘ a operat¸ie), num˘ arul de comenzi individuale se restrˆ ange. Pentru o matrice 32×32 utilizat˘ a, de exemplu, doar pentru rotire stˆ anga vor fi necesare numai 32 de comenzi individuale corespunz˘ atoare distant¸elor de deplasare cu 0, 1, 2, ..., 30, 31 pozit¸ii. Pentru o rotire stˆ anga cu D pozit¸ii vor fi comandate elementele de comutat¸ie din n noduri astfel alese ˆıncˆ at un bit de pe coloana i s˘ a fie mapat pe linia j = i + D; rezult˘ a c˘ a pentru toate tranzistoarele din nodurile i, i + D, i = 0, 1, ..., 31 port¸ile vor fi cablate ˆımpreun˘ a ¸si comandate cu semnalul obt¸inut la ie¸sirea unui decodificator cˆ and pe intrarea acestuia se aplic˘ a mum˘ arul D (D = 0, 1, ..., 30, 31) ˆın binar. Restrˆ angerea doar la un singur tip de operat¸ie pe matricea de comutat¸ie reduce num˘ arul de comenzi la n, dar semnalul cablat pentru fiecare dintre aceste comenzi trebuie s˘ a asigure un fan-out egal cu n. Totu¸si, exist˘ a posibilitatea ca pe o matrice de comutat¸ie, de¸si cablat˘ a doar pentru o anumit˘ a operat¸ie, s˘ a poat˘ a fi realizate ¸si alte operat¸ii prin modificare deja ˆın exterior a cuvˆ antului care se aplic˘ a la intrare, ca ˆın Figura 2.72, un astfel de circuit este referit ca shifter (Barrel Shifter). Acest circuit shifter cont¸ine o matrice de comutat¸ie compus˘ a din 4 × 4 port¸i CMOS de transmisie care este cablat˘ a doar pentru realizarea deplas˘ arilor dreapta cu 0, 1, 2, 3 pozit¸ii, prin valorile cuvˆ antului de control al deplas˘ arii, D1 D0 , egale respectiv cu: 00, 01, 10, 11 (aplicate la intrarea unui DCD2:4). Dar, la intrarea matricei se aplic˘ a pentru fiecare tip de operat¸ie, realizat˘ a de shitfter, un cuvˆ ant obt¸inut deja prin modificarea cuvˆ antului de intrare x 3 x2 x1 x0 . Fiecare cuvˆ ant, modificat ¸si ˆınscris ˆın unul din porturile P 0 , P1 , P2 , P3 , P4 , printr-un sistem de selectare compus din 7×MUX8:1, este selectat prin cuvˆ antul S 2 S1 S0 ¸si aplicat la intrarea matricei de comutat¸ie. Deci, cuvintele de control S 2 S1 S0 ¸si D1 D0 determin˘ a, primul, tipul de operat¸ie, iar al doilea, num˘ arul de pozit¸ii de deplasare. Acest shifter poate realiza urm˘ atoarele operat¸ii: deplasare logic˘ a dreapta/ stˆ anga, rotat¸ie dreapta/stˆ anga ¸si deplasare aritmetic˘ a dreapta. Deoarece la fiecare MUX8:1 mai exist˘ a trei intr˘ ari de date neutilizate se mai pot selecta ˆınc˘ a trei porturi (nedesenate ˆın figur˘ a) ˆın care se poate introduce cuvˆ antul x 3 x2 x1 x0 modificat pentru implementarea a ˆınc˘ a trei operat¸ii.

2.5.5

Unitatea Aritmetic˘ a ¸si Logic˘ a, ALU

2.5.5.1

Calea de date

Sistemele digitale de calcul, atˆ at din punct de vedere al proiect˘ arii ¸si realiz˘ arii lor cˆ at ¸si din punct de vedere al trat˘ arii didactice, pot fi organizate/compuse din dou˘ a p˘ art¸i, denumite foarte general, calea de date ¸si calea de control (vezi Figura 3.14). ˆIn calea de date se realizeaz˘ a operat¸ii de tip logic sau aritmetic asupra cuvintelor binare (operanzi), iar calea de control selecteaz˘ a operat¸ia care se efectueaz˘ a ˆın calea de date ¸si pentru operat¸ia selectat˘ a se comand˘ a etapele de realizare. Organizarea unei posibile c˘ ai de date este prezentat˘ a ˆın Figura 2.73-a. Aceast˘ a cale de date cont¸ine, pentru realizarea conexiunilor ˆın vederea transferurilor, trei magistrale, dou˘ a pentru operanzii surs˘ a A, B ¸si una pentru operandul rezultat R. Operanzii surs˘ a ¸si operandul rezultat (destinat¸ie) sunt stocat¸i ˆıntr-un bloc de registre (echiva-

302

2.5. CLC PENTRU FUNCT ¸ II NUMERICE

lentul fizic al not¸iunii de port). Selectarea unui port (operand) pentru ˆınscrierea cont¸inutului s˘ au pe o magistral˘ a surs˘ a se realizeaz˘ a cu un cuvˆ ant de selectare S A sau SB aplicat unui grup de multiplexoare, care compun un bloc de selectare a datelor cu o structur˘ a ca ˆın Figura 2.36-b. ˆIn aceast˘ a cale de date fiecare bloc de selectare este compus din n×MUX16:1, deoarece se consider˘ a c˘ a blocul de registre cont¸ine 16 porturi cu lungimea de n bit¸i, iar selectarea acestora se realizeaz˘ a prin cuvintele de selectare de patru bit¸i SA = SA3 SA2 SA1 SA0 , SB = SB3 SB2 SB1 SB0 . ˆInscrierea operandului rezultat, de pe magistrala rezultat R, ˆıntr-un port destinat¸ie se realizeaz˘ a prin intermediul unui bloc secvent¸ial de distribut¸ie selectat prin cuvˆ antul de selectare SD = SD3 SD2 SD1 SD0 (ˆın acest caz blocul de distribut¸ie este constituit din n×DMUX1:16). ˆIntr-o cale de date este absolut necesar˘ a o unitate logico-aritmetic˘ a, ALU (Arithmetic Logic Unit) ¸si, uneori, aceasta este inseriat˘ a cu un circuit de deplasare (barrel shifter). Unitatea logico-aritmetic˘ a efectueaz˘ a o operat¸ie asupra celor doi operanzi A, B aplicat¸i, prin cele dou˘ a magistrale surs˘ a, la intr˘ arile sale ¸si genereaz˘ a operandul rezultat O care, ˆınainte de a fi aplicat pe magistrala rezultat R, poate fi modificat ˆın circuitul de deplasare prin: deplas˘ ari aritmetice/logice, stˆ anga dreapta, rotiri, extrageri de bit¸i sau gupuri de bit¸i. Valoarea de deplasare ˆın shifter este prescris˘ a prin cuvˆ antul de control D care ˆın acest caz are 5 bit¸i D 4 , D3 , D2 , D1 , D0 , deoarece se consider˘ a lungimea de cuvˆ ant procesat este egal˘ a cu n = 32. n

Magistrala sursa B Magistrala sursa A n

n SA

n × MUX 16 : 1

n × MUX 16 : 1

SB

n

n Bloc de registre (16 porturi) (P 1,P 2,...,P 14,P 15)

SD

b)

n CR EQ Z P OV SG

F2 Unitatea Aritmetica si Logica

F1

(ALU)

F0

Selectare sursa A

O

Fanioane

n

Circuit de deplasare (Barrel shifter)

1:16

n

Bn−1 B0

A n−1 A 0

n × DMUX

a) Cod operatie

B A

R

Magistrala rezultat R Selectare destinatie D

D1 D0

D

n

n Selectare sursa B

D4

Valoare deplasare

s/d=1, stanga s/d=0, dreapta sf/r=1, shiftare sf/r=0, rotire

F 2 F 1 F 0 SA SA SA SA SB SB SB SB SD SD SD SD D4 D3 D2D1 D0 s/d sf/r 3 2 1 3 2 1 0 3 2 1 0 0

Figura 2.73 Calea de date: a) organizare posibil˘ a a unei c˘ ai de date cu trei magistrale; b) formatul binar al cuvˆ antului de comand˘ a a unei operat¸ii ˆın calea de date (instruct¸iune ˆın cod ma¸sin˘ a).

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

303

Proiectarea unei ALU porne¸ste de la nivelul arhitectural al acesteia, adic˘ a de ,, ,, la ceea ce “vede un utilizator/programator. Se “vede interfat¸area/conectarea cu celelalte elemente din calea de date prin intr˘ ari ¸si ie¸siri. Intr˘ ari la calea de date sunt cele dou˘ a cuvinte de pe magistrala A ¸si B ¸si bit¸ii de control pentru operat¸ia de efectuat. Num˘ arul operat¸iilor pe care le poate realiza o unitate logico-aritmetic˘ a este de la cˆ ateva pˆ an˘ a la zeci; ˆın organizarea din figur˘ a se pot realiza doar opt operat¸ii deoarece cuvˆ antul de control are numai 3 bit¸i F 2 , F1 , F0 . Ie¸sirile din ALU sunt: cuvˆ antul rezultat O cu lungimea de n bit¸i ¸si semnalele indicatorii de condit¸ii (care ˆınscriu anumite fanioane/flag-uri, bit¸ii de condit¸ii). Indicatorii de condit¸ii specific˘ a anumite relat¸ii ˆıntre cei doi operanzi sau anumite caracteristici valorice ale operandului rezultat. Se poate introduce un indicator pentru oricare condit¸ie dac˘ a este necesar˘ a a fi utilizat˘ a ˆın evaluarea corectitudinii operat¸iei efectuate sau pentru condit¸ionarea operat¸iilor urm˘ atoare. Ca exemplificare, enumer˘ am ¸sase din bit¸ii de condit¸ii cei mai des utilizat¸i: CARRY(CR) este bitul care indic˘ a dep˘ a¸sirea de capacitate la reprezentarea numerelor ˆıntregi pozitive. ˆIntr-un sistem de calcul exist˘ a o lungime maxim˘ a n a unui cuvˆ ant cu care se poate opera. Pentru o lungime mai mare nu exist˘ a suportul fizic de a fi reprezentat˘ a. Rezult˘ a c˘ a se poate opera numai cu numere care pot fi reprezentate cu cei n bit¸i. O operat¸ie sau un num˘ ar care necesit˘ a mai mult decˆ at n bit¸i genereaz˘ a o dep˘ a¸sire de capacitate. Bitul CR are valoarea transportului urm˘ ator Cn−1 din cuvˆ antul de ie¸sire, adic˘ a de la rangul n − 1 la rangul n, de la pozit¸ia n la n + 1 (care nu exist˘ a). EQUAL(EQ) este bitul care indic˘ a identitatea celor dou˘ a cuvinte A ¸si B. Valoarea sa se genereaz˘ a prin port¸i NXOR, Ai ⊕ Bi , asupra fiec˘ arei pereche de bit¸i care apoi se colecteaz˘ a ˆıntr-o poart˘ a AND. ZERO(Z) este bitul care indic˘ a faptul c˘ a rezultatul operat¸iei este un cuvˆ ant compus din n zerouri. Valoarea sa se genereaz˘ a prin colectarea tuturor bit¸ilor cuvˆ antului rezultat ˆıntr-o poart˘ a OR. PARITY(P) este bitul care indic˘ a paritatea sau imparitatea cuvˆ antului rezultat dac˘ a este interpretat ca num˘ ar. Valoarea sa este identic˘ a cu valoarea bitului de rang zero al cuvˆ antului O. OVERFLOW(OV) este bitul de dep˘ a¸sire de capacitate la reprezentare numerelor cu semn. ˆIn reprezentarea numerelor cu semn (ˆın complement fat¸a˘ de 1, ˆın complement fat¸a˘ de 2, ˆın m˘ arime ¸si semn) bitul de semn (bitul cu indice n − 1) are valoarea 1 pentru un num˘ ar negativ ¸si valoarea 0 pentru un num˘ ar pozitiv. Dep˘ a¸sirea de capacitate, Cn−2 , apare ca un transport de la bitul cel mai semnificativ al num˘ arului (bitul cu indicele n − 2) la bitul de semn ¸si dac˘ a bitul de semn indic˘ a o operat¸ie eronat˘ a (de exemplu adunarea a dou˘ a numere pozitive genereaz˘ a un num˘ ar negativ). Un algoritm simplu, care determin˘ a existent¸a dep˘ a¸sirii la numere cu semn reprezentate ˆın complement fat¸a˘ de doi, este: neidentitatea dintre valoarea transportului C n−2 de la On−2 la On−1 ¸si valoarea transportului Cn−1 generat de la bitul de semn On−1 (Cn−1 6= Cn−2 ). ˆIn consecint¸a˘, valoarea sa se calculeaz˘ a simplu printr-o poart˘ a XOR, OV = Cn−1 ⊕ Cn−2 .

304

2.5. CLC PENTRU FUNCT ¸ II NUMERICE

SIGN(SG) este bitul care indic˘ a semnul cuvˆ antului rezultat, O, cˆ and este interpretat ca num˘ ar cu semn, SG ≡ On−1 . Se fixeaz˘ a pentru ALU din figur˘ a codurile de selectare ¸si mnemonicile operat¸iilor corespunz˘ atoare ˆın felul urm˘ ator: • F2 F1 F0 = 000, AND (produsul logic); Oi = Ai · Bi , i = 0, 1, ..., n − 1 • F2 F1 F0 = 001, OR (sum˘ a logic˘ a); Oi = Ai + Bi , i = 0, 1, ..., n − 1 • F2 F1 F0 = 010, TFM (trecere f˘ ar˘ a modific˘ ari); O = A • F2 F1 F0 = 011, DCR (decrementare); O = A − 1 • F2 F1 F0 = 100, XOR (sum˘ a modulo 2); Oi = Ai ⊕ Bi , i = 0, 1, ..., n − 1 • F2 F1 F0 = 101, ADD (adunare modulo 2n , operanzii sunt numere ˆıntregi); O = A + B • F2 F1 F0 = 110, SUB (sc˘ adere modulo 2n , operanzii sunt numere ˆıntregi); O = A − B • F2 F1 F0 = 111, INC (incrementare); O = A + 1 Operanzii surs˘ a sunt referit¸i prin num˘ arul de port din care se citesc ¸si sunt select˘ a¸ti prin cuvintele SA ¸si SB , iar operandul rezultat este referit prin num˘ arul portului destinat¸ie ˆın care se ˆınscrie, selectabil prin cuvˆ antul S D (cele 16 porturi sunt notate cu P1 , P1 , ..., P14 , P15 ). Comanda c˘ aii de date pentru realizarea unie operat¸ii este descris˘ a de o instruct¸iune care are urm˘ atoarea form˘ a (ˆın limbaj de asamblare): MNEMONIC OPERATIE PD , PS1 , PS2

; PD ← (PS1 OPERATIE PS2 )

cu urm˘ atoarea semantica: asupra operanzilor surs˘ a din porturile surs˘ a P S1 ¸si PS2 se efectueaz˘ a operat¸ia OPERATIE iar rezultatul se ˆınscrie ˆın portul destinat¸ie P D . De exemplu, pentru efectuarea operat¸iei de adunare ˆıntre operanzii din porturile P 13 ¸si P7 , iar operandul rezultat s˘ a fie ˆınscris ˆın portul P 5 , se scrie urm˘ atoarea instruct¸iune ˆın limbaj de asamblare: ADD

P5 , P13 , P7

(2.27)

Instruct¸iunea din limbaj de asamblare este convertit˘ a (asamblat˘ a), folosind codurile operat¸iilor ¸si codurile cuvintelor de selectare din calea de date, ˆıntr-un cuvˆ ant binar care comanda efectuarea operat¸iei respective ˆın calea de date. Formatul acestui cuvˆ ant reprezentat ˆın Figura 2.73-b este compus din urm˘ atoarele 7 subcˆ ampuri: 1. codul operat¸iei F2 F1 F0 2. codul portului surs˘ a A: SA3 SA2 SA1 SA0 3. codul portului surs˘ a B: SB3 SB2 SB1 SB0 4. codul portului destinat¸ie D : SD3 SD2 SD1 SD0

305

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

5. valoarea deplas˘ arii D3 D2 D1 D0 ¯ deplasarea stˆ 6. s/d, anga s = 1, deplasarea drepata d¯ = 0 7. sf /¯ r, shiftare sf = 1, rotat¸ie r¯ = 0. Pentru instruct¸iunea anterioar˘ a (ADD P5 , P13 , P7 ),introducˆ and ˆın fiecare cˆ amp codul corespunz˘ ator, rezult˘ a urm˘ atorul cuvˆ ant binar de comand˘ a (instruct¸iune ˆın limbaj/cod ma¸sin˘ a), scris cu spat¸ii ˆıntre subcˆ ampuri: 101

1101

0111

0101

0000

0

0

Acest cuvˆ ant de comand˘ a, prin bit¸ii s˘ ai — fiecare subcˆ amp de bit¸i aplicat pentru comand˘ a la elementul corespunz˘ ator din calea de date — realizeaz˘ a ˆın calea de date procesarea cont¸inut˘ a ˆın instruct¸iunea (dat˘ a ˆın limbaj de asamblare) din relat¸ia 2.27. 2.5.5.2

Organizarea ¸si implementarea unei unit˘ a¸ti aritmetic˘ a ¸si logic˘ a

Dup˘ a definirea arhitecturii ALU, ˆın contextul unei c˘ ai de date, se trece la stabilirea organiz˘ arii interne a acesteia, adic˘ a la alegerea acelor p˘ art¸i componente care pot realiza toate funct¸iile definite prin arhitectur˘ a. Exist˘ a diferite p˘ art¸i componente/blocuri care pot realiza aceea¸si funct¸ie, ceea ce ˆınseamn˘ a c˘ a pot fi mai multe variante de realizare intern˘ a, deci pentru aceea¸si arhitectur˘ a pot exista mai multe organiz˘ ari. Elaborarea unei organiz˘ ari, care s˘ a asigure suport pentru toate operat¸iile efectuate de ALU poate fi gˆ andit˘ a ˆın dou˘ a variante. ˆIn prima variant˘ a se concepe ALU ca o asamblare de blocuri/circuite specializate, Figura 2.74-a. Fiecare bloc realizeaz˘ a o operat¸ie din repertoriul ALU asupra cuvintelor de intrare. Blocul circuitelor aritmetice, n×CA, realizeaz˘ a operat¸iile de adunare, sc˘ adere, incrementare/decrementare primind deja calculate, pentru fiecare pereche de bit¸i Ai ¸si Bi , valorile pentru sum˘ a modulo de la blocul n×XOR ¸si valorile transporturilor anticipate Ci−1 de la circuitul de generare a transporturilor anticipate, CGTA. Transporturile anticipate sunt calculate pe baza semnalelor intermediare de generare gi ¸si propagare produse pi de blocurile n×AND ¸si n×OR, care asigur˘ a ¸si operat¸iile logice corespunz˘ atoare ˆın ALU. Aceste blocuri specializate opereaz˘ a simultan dar numai ie¸sirea unuia este selectat˘ a, prin blocul de multiplexoare n×MUX8:1, la ie¸sirea ALU, prin aplicare codului operat¸iei pe intrarea de selectare F2 , F1 , F0 . Valorile bit¸ilor de condit¸ii se determin˘ a u¸sor, din bit¸ii cuvˆ antului de ie¸sire, conform definit¸iilor date mai sus. De fapt, aceast˘ a organizare poate fi asimilat˘ a ca un bloc de selectare secvent¸ial˘ a a datelor pe baz˘ a de multiplexoare, Figura 2.36-b. Dimensiunea unei ALU organizat˘ a ˆın aceast˘ a modalitate apare ca o sum˘ a a dimensiunilor blocurilor specializate ¸si a blocului multiplexor de selectare, ultimul avˆ and ponderea cea mai ridicat˘ a ˆın valoarea dimensiunii. ˆIn a dou˘ a variant˘ a se concepe ALU ca o punere ˆın paralel a n unit˘ a¸ti logicoaritmetice elementare, ALUE. Fiecare ALUE constituie o felie (slice) din ALU care realizeaz˘ a toate operat¸iile din repertoriul ALU, dar numai pentru cuvinte de 1 bit. Printr-o optimizare a celulei ALUE, cu aceast˘ a organizare, se poate obt¸ine o dimensiune mai redus˘ a decˆ at la prima variant˘ a de organizare. La ambele variante de ALU, deoarece se compun din blocuri cu adˆ ancime constant˘ a, performant¸ele de vitez˘ a pot fi ˆımbun˘ at˘ a¸tite prin modul de realizare al blocurilor CGTA. Se va prezenta ˆın continuare structuri de ALUE.

306

2.5. CLC PENTRU FUNCT ¸ II NUMERICE

A B

n n

n

n

n

n × OR 32

n

n

n × AND pi

32

F2 F1 F0

n

n

n × XOR

gi

n

n × CA

32

F1 F0

C i−1

CGTA

n × MUX 8:1 O

B A F2 F1 F0

n

CR Z OV EQ P SG

a) n

n

A n−1

Bn−1 Bn−2 A n−2

A1

ALU

ALU n−1 ALU n−2

B1

A0

B0

ALU 1 ALU 0

gi pi

CGTA

Ci

O n b)

CR

EQ

Z

P

OV

SG

Figura 2.74 Variante de organizare a unei ALU: a) organizare ca o asamblare de blocuri/circuite specializate ˆıntr-o structur˘ a de selectare secvent¸ial˘ a de date pe baz˘ a de multiplexor; b) organizare din n “felii“ de unit˘ a¸ti logico-aritmetice de un bit conectate ˆın paralel.

2.5.5.3

Structurarea unei ALU elementare

Funct¸iile unei unit˘ a¸ti logico-aritmetice elementare, ALUE pot fi realizate cu ajutorul a diferite structuri de circuite. Este ales un anumit circuit de ALUE ˆın funct¸ie de performant¸ele dorite sau modalitatea de implementare. Implementarea se poate face ˆın oricare variant˘ a expus˘ a ˆın acest capitol (cu port¸i logice, DCD + port¸i logice, multiplexoare, ROM, PLA; cu componente discrete sau integrate). Exist˘ a o multitu,, dine de “trasee ˆın realizarea unui sistem digital. Pentru funct¸iile pe care trebue s˘ a le realizeze un sistem se poate defini o anumit˘ a arhitectur˘ a. Aceast˘ a arhitectur˘ a poate fi sust¸inut˘ a de mai multe organiz˘ arii ¸si la rˆ andul ei, o organizare poate fi implementat˘ a prin mai multe structuri de circuite. Ca exemplificare, pentru organizarea ALU, compus˘ a din ALUE, se vor prezenta dou˘ a modalit˘ a¸ti de structurare pentru celula de logico-aritmetic˘ a: ca un circuit logic combinat¸ional implementat prin port¸i logice ¸si ca un circuit realizat pe un ROM sub forma unui tabel, LUT. O celul˘ a de unitate logico-aritmetic˘ a poate fi gˆ andit˘ a ca o scalare la lungimea de cuvˆ ant de 1 bit a unei organiz˘ ari ALU de n bit¸i, de exemplu, pornind de la varianta de organizare din Figura 2.74-a. ˆIn acest sens, o variant˘ a de circuit ALUE este cea din Figura 2.75-a care poate fi privit˘ a ca o structur˘ a de selectare secvent¸ial˘ a a datelor pe baz˘ a de multiplexor, vezi Figura 2.36-b, dar din porturi de un bit. Operat¸iile realizate, dar la nivel de un bit, sunt acelea¸si ca cele definite ˆın sect¸iunea anterioar˘ a (Figura 2.74-a) ¸si, de asemenea, sunt utilizate acelea¸si coduri pentru cuvˆ antul F 2 F1 F0 de

307

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

Adresa Continut F 2 F 1 F 0 A i Bi C i−1 Oi C i 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

XOR

ADD b)

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1

Bi "1" F2

0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1

F1 F0

00 01 10 11 MUX 4 : 1

C i−1 pi gi

TFM 010 000

001

100 011 101 110 111

MUX 8 : 1

A n−1 3

A n−2

Bn−1 1

1

3

LUT n−1 64 × 2 bit

C n−1

c)

Bn−2 1

A1

1

C n−2

On−2

C2

n

A0

1

B0

3 1

LUT 1 64 × 2 bit

C1

O1

1

3 0

F2 F1 F0

LUT 0 64 × 2 bit O0

O

n n

B A n−1 3

B1

3 1

LUT n−2 64 × 2 bit

On−1

F2 F1 F0

Oi

a)

n n

A B

A

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Ai

Bn−1 1

1

A n−2 3

Bn−2 1

A1

1

3 1

B1

A0 3

1

B0 F 2 F1 F0 3 1 1 CGTA

C n−2 LUT n−1 64 × 1 bit On−1 d)

C0

C n−3 LUT n−2 64 × 1 bit On−2

LUT 1 64 × 1 bit O1

O

0 LUT 0 64 × 1 bit O0

n

Figura 2.75 Structuri de unit˘ a¸ti logico-aritmetice elementare ALUE: a) ALUE structurat˘ a ca un circuit de selectare de date pe baz˘ a de multiplexor; b) tabelul de adev˘ ar pentru operat¸iile XOR ¸si ADD implementate ˆın LUT; c) ALU structurat˘ a pe baz˘ a de LUT-uri cu transport progresiv; d) ¸si cu transport anticipat.

308

2.5. CLC PENTRU FUNCT ¸ II NUMERICE

selectare la ie¸sirea MUX8:1 a unei operat¸ii logice sau aritmetice. Pentru operat¸iile de produs logic, sum˘ a logic˘ a ¸si sum˘ a modulo 2 sunt introduse ˆın circuit respectiv port¸ile AND, OR ¸si XOR, selectate respectiv prin codurile 000,001 ¸si 100. Codul de selectare 010 las˘ a cuvˆ antul A s˘ a treac˘ a nemodificat, TFM. Pentru aplicat¸iile aritmetice care utilizeaz˘ a ¸si transportul anterior Ci−1 (DCR - 010, ADD - 101, SUB - 110, INC 111) este introdus˘ a o a dou˘ a poart˘ a XOR. Cu un al doilea multiplexor 4 : 1, selectat ¯i , 0 potrivit tot cu bit¸ii F1 , F0 , se genereaz˘ a pentru bitul Bi urm˘ atoarele valori: Bi , B ¸si 1. Incrementarea, INC, se realizeaz˘ a ca o sumare cu unu A + B + C −1 = A + 0 + 1, deci pentru Bi se genereaz˘ a valoarea 0 prin inversorul comandat XOR cˆ and F 2 = 1. Pentru decrementare, DCR, valorile lui Bi ¸si C−1 trebuie s˘ a fie inversate fat¸a˘ de incrementare deci se genereaz˘ a pe inversorul comandat B i = 1 cˆ and F2 = 0. Port¸ile AND ¸si OR genereaz˘ a ¸si variabilele intermediare g i ¸si pi care se aplic˘ a circuitului de generare a transportului anticipat, CGTA, neinclus ˆın acest desen. Ponderea ˆın dimensiunea ALUE este determinat˘ a de partea de selectare, adic˘ a de multiplexoare. Pentru implementarea ALUE sub forma unui LUT ˆınscris ˆıntr-un ROM se porne¸ste de la tabelul de adev˘ ar a fiec˘ arei operat¸ii ce trebuie realizat˘ a. Variabilele tabelului sunt intr˘ arile ˆın ALUE adic˘ a intr˘ arile de selectare F 2 , F1 , F0 , perechea de bit¸i Ai , Bi ¸si transportul anterior Ci−1 , toate acestea formeaz˘ a un cuvˆ ant de 6 bit¸i care va fi utilizat ca un cuvˆ ant de adresare la circuitul ROM pe care se implementeaz˘ a LUT i (fiecare LUT va avea 64 de adrese). Bit¸ii ˆınscri¸si la o locat¸ie din ROM sunt cei doi bit¸i de ie¸sire din ALUEi : Ci ¸si Oi , care acum sunt generat¸i din LUTi . ˆIn Figura 2.75-b este prezentat tabelul de adev˘ ar numai pentru implementarea operatorilor AND ¸si XOR. ,, Implementarea unei ALU cu “felii , constˆ and din LUT-uri ˆınscrise ˆın circuite ROM cu capacitatea de 64 × 2, bit¸i este reperezentat˘ a ˆın Figura 2.75-c. Structurarea ALU este cu transport progresiv, bitul de transport C i citit din LUTi se aplic˘ a la LUTi+1 , deci un timp de calcul ˆın O(n). Se poate reduce acest timp de calcul pe ALU ˆın O(1) dac˘ a se structureaz˘ a ca ˆın Figura 2.75-d. Transportul urm˘ ator C i nu se mai cite¸ste din ROMi (capacitatea ROM-ului pentru un LUT se reduce la 64 × 1bit) ci se genereaz˘ a de catre un CGTA pe baza tuturor perechilor de bit¸i A i ¸si Bi . Ca unitate logico-aritmetic˘ a de patru bit¸i poate fi utilizat ¸si circuitul MSI 74xx181 reprezentat ˆın Figura 2.76-b, iar operat¸iile realizate sunt date ˆın tabelul din Figura 2.76-a. Prin cuvˆ antul de cod F3 F2 F1 F0 se poate selecta una din cele 16 operat¸ii aritmetice asupra celor doi operanzi A = A3 A2 A1 A0 ¸si B = B3 B2 B1 B0 cˆ and valoarea semnalului de control este M = 0, respectiv se poate selecta una din cele 16 operat¸ii logice cˆ and M = 1. ˆIn expresiile funct¸iilor din acest tabel produsul logic ¸si suma logic˘ a sunt notate prin simbolurile · ¸si + iar pentru adunare ¸si sc˘ adere sunt folosite cuvintele plus ¸si minus. Operat¸iile logice (M = 1) sunt realizate numai ˆıntre perechile Ai ¸si Bi (i = 0, 1, 2, 3), nu exist˘ a semnal de transport de intrare C −1 = 0, de asemenea nu exist˘ a transporturi ˆıntre ranguri. ˆIn schimb ˆın operat¸iile aritmetice (M = 0) pe lˆ ang˘ a perechile Ai ¸si Bi trebuie considerat transportul de intrare C−1 ¸si transporturile ˆıntre ranguri. Structura intern˘ a a circuitului 74xx181 este realizat˘ a pentru transport anticipat. Atent¸ion˘ am faptul c˘ a semnalele de intrare A 3 L ÷ A0 L, B3 L ÷ B0 L ¸si cele de a se ie¸sire O3 L − 0 L sunt active ˆın starea L. Se poate ca la circuitul 74xx181 s˘ considere aceste semnale active ˆın starea H dar atunci expresiile funct¸iilor date ˆın tabelul anterior se modific˘ a in felul urm˘ ator. Ca circuit logic, M = 1, la aplicarea

309

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

Intrari de selectare F3 F2 F1 F0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1

Functii Aritmetice ( M=0 ) Logice ( M=1 ) θ =A minus 1 plus C −1 θ =A θ =A ·B minus 1 plus C−1 θ =A+B θ =A·B minus 1 plus C−1 θ =A+B θ =1111 plus C −1 θ =1111 θ =A plus (A+B) plus C −1 θ =A·B θ =A·B plus (A+B) plus C −1 θ =B θ =A minus B minus 1 plus C−1 θ =A+B θ =A+B plus C −1 θ =A+B θ =A plus (A+B) plus C −1 θ =A·B θ =A+B θ =A plus B plus C −1 θ =A·B plus (A+B) plus C −1 θ =B θ =A+B plus C −1 θ =A+B θ =A plus A plus C −1 θ =0000 θ =A·B plus A plus C −1 θ =A·B θ =A·B θ =A·B plus A plus C −1 θ =A plus C in θ =A

a)

6 5 4 3 8 7 2 1 23 22 21 20 19 b) 18

F0 F1 G F2 P F3 M C −1 A=B A0 B0 74x181 O0 A1 O1 B1 O2 A2 O3 B2 A3 C out B3

13 3 4 1 2 14 15 5 c) 6

C −1 G G0 P0 P G1 P 1 74x182 G2 C1 P2 C2 G3 C3 P3

A 15 A 14 A 13 A 12 B15 B14 B13 B12

A 11 A 10 A 9 A 8 B11 B10 B9 B8

A7 A6 A5 A4 B7 B6 B5 B4

74xx181 ALU 3

74xx181 ALU 2

74xx181 ALU 1

d)

G

P

G3

P3

G

P

C −1

G C3

P

G2 P 2

C −1

G C2

P

G1 P 1

O11−8

14 9 10 11 13 16 10 7 12 11 9

A3 A2 A1 A0 B3 B2 B1 B0 C in 74xx181 ALU 0

C −1

G C1

P

C −1

G0 P 0 C −1

74xx182 O15−12

17 15

O7−4

O3−0

Figura 2.76 Realizarea unit˘ a¸tilor logico-aritmetice pe baz˘ a de circuite standard: a) tabelul de adev˘ ar ¸si ( b) reprezentarea circuitului unitate logic˘ a-aritmetic˘ a de patru bit¸i 74xx181; c) reprezentare circuitului pentru calculul transportului anticipat, 74xx182; d) structurarea unei ALU de 16 bit¸i prin punere ˆın paralel a 4 circuite 74xx181 iar calculul transportului anticipat se realizeaz˘ a ˆın exterior cu circuitul 74xx182.

310

2.5. CLC PENTRU FUNCT ¸ II NUMERICE

unui cod de selectare F3 F2 F1 F0 se obt¸ine o funct¸ie logic˘ a dual˘ a (relat¸ia 1.2) celei care este indicat˘ a ˆın tabel pentru acel cod de selectare. ˆIn schimb, ca circuit aritmetic, M = 0, la aplicarea unui cod de selectare se obt¸ine o funct¸ie aritmetic˘ a, dar aceasta este diferit˘ a fat¸a˘ de cea dat˘ a ˆın tabel pentru acel cod de selectare (este necesar a se cunoa¸ste documentat¸ia tehnic˘ a a circuitului). Exist˘ a ¸si dou˘ a ie¸siri G L ¸si P L care exprim˘ a o generare ¸si o propagare peste toate cele patru ranguri ale circuitului 74xx181 ¸si care se calculeaz˘ a conform relat¸iilor 2.25 ¸si 2.26 astfel: G L = (g3 + p3 g2 + p3 p2 g1 + p3 p2 p1 g0 ) P L = p 3 p2 p1 p0

(2.28)

Aceste dou˘ a ie¸siri permit extensia, ˆın implementarea de ALU, pentru cuvinte multiplu de patru bit¸i prin utilizarea de circuite 74xx181. Considerˆ and fiecare circuit 74xx181 numai ca o pereche de bit¸i, pentru care sunt determinate valorile variabilelor intermediare G ¸si P , se pot calcula cu aceste variabile intermediare valorile de transport anticipat pe un grup de circuite. De exemplu, pentru un grup de patru circuite ALU (ALU0 ,ALU1 ,ALU2 ,ALU3 ) de patru bit¸i fiecare, pe baza perechilor de variabile intermediare de la fiecare circuit (G0 , P0 ),(G1 , P1 ),(G2 , P2 ),(G3 , P3 ) precum ¸si a transportului de intrare C−1 , se pot calcula valorile de transport anticipat C 0 , C1 , C2 respectiv la intr˘ arile de la ALU1 ,ALU2 ¸si ALU3 . Pe baza relat¸iilor 2.25 ¸si 2.26 pentru C0 , C1 ¸si C2 se obt¸in expresiile: C0 = G0 + P0 C−1 C1 = G1 + P1 G0 + P1 P0 C−1 C2 = G2 + P2 G1 + P2 P1 G0 + P2 P1 P0 C−1 Circuitul MSI 74xx182, reprezentat ˆın Figura 2.76-c, calculeaz˘ a transporturile anticipate C0 , C1 , C2 pentru un grup de patru unit˘ a¸ti ALU. Acest circuit mai genereaz˘ a ¸si o pereche (G, P ) de variabile intermediare pe un grup de patru unit˘ a¸ti ALU, aceast˘ a pereche fiind necesar˘ a pentru calculul transportului anticipat ˆın exteriorul unui grup de patru circuite MSI 74xx182. O exemplificare de realizare a unei unit˘ a¸ti logico-aritmetice de 16 bit¸i pe baza a 4 circuite ALU de 4 bit¸i (74xx181) este prezentat˘ a ˆın Figura 2.76-d. Circuitul pentru calculul transportului anticipat 74xx182 calculeaz˘ a pe baza perechilor (G, P ) de la fiecare unitate logico-aritmetic˘ a (74xx181) valorile de transport anticipat pentru ALU3 , ALU2 ¸si ALU1 . Dar, unitatea logico-aritmetic˘ a se poate extinde de la 16 bit¸i la 64 de bit¸i, iar aceast˘ a structurare poate fi gˆ andit˘ a ca fiind format˘ a din 4 grupuri de cˆ ate 16 bit¸i. ˆIn exteriorul acestor patru grupuri de cˆ ate 16 bit¸i se realizeaz˘ a, cu un circuit 74xx182, o cale pentru calculul transporturilor anticipate, necesare grupurilor ce cont¸in rangurile de bit¸i 31 − 16, 47 − 32, 63 − 48, pe baza perechilor G, P de grup generate de cele 4 circuite 74xx181 precum ¸si a transportului init¸ial C −1 . Deci, la aceast˘ a ALU de 64 de bit¸i exist˘ a ˆın exteriorul unui grup de patru circuite ALU, de patru bit¸i, o cale realizat˘ a cu un 74xx182 pentru calculul anticipat al transportului pe grup. Apoi, ˆın exteriorul acestor patru circuite 74xx182 exist˘ a ˆınc˘ a o cale pe un alt 74xx182 pentru calculul anticipat al transporturilor ˆıntre grupuri. ˆIn total 16 circuite ALU 74xx181 ¸si 5 circuite pentru calculul transportului anticipat 74xx182.

311

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

2.6

PROBLEME

P2.1 Pentru un cuvˆ ant de n bit¸i, xn−1 xn−2 . . . x1 x0 , s˘ a se implementeze funct¸ia paritate f (=1 pentru un num˘ ar impar de bit¸i 1, =0 pentru un num˘ ar par de bit¸i 1 ˆın cuvˆ ant) cu port¸i XOR2. ˆIn ce condit¸ii acelea¸si structuri de circuit, ˆın care se face substitut¸ia XOR2 → N XOR2 calculeaz˘ a aceea¸si funct¸ie? P2.2 Pentru circuitele din figur˘ a s˘ a se deduc˘ a expresiile f 1 , f2 ,f3 si f4 , apoi s˘ a se construiasc˘ a tabelele de adev˘ ar. A B

f1

C D

a)

P2.3

A B f2 C

A B C D

b)

B D

f3 c)

A B C D

f4 d)

S˘ a se demonstreze echivalent¸ele grafice din figur˘ a.

P2.4 S˘ a se complementeze ¸si s˘ a se aduc˘ a la forma minim˘ a expresiile logice urm˘ atoare: a) f = [(AB)A] · [(AB)B], funct¸ia A ⊕ B exprimat˘ a prin operatorul NAND; b) f = (A + B + C)(AB + CD) + BCD; c) f = (ABC + BCD) + (ACD + B C D + BCD). P2.5 S˘ a se minimizeze urmatoarele funct¸ii utilizˆ and diagrame V-K: P7 a) f1 (A, B, C) = 0 (0, 2, 3, 4, 5, 7); b) f2 (A, B, C, D) =

P15

c) f3 (A, B, C, D, E) =

0

(0, 1, 4, 5, 9, 11, 13, 15);

P31 0

(0, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20, 24, 28).

Pentru punctele a) si b), s˘ a se exprime forma minim˘ a atˆ at ca sum˘ a de produse cˆ at si ca produs de sume. P2.6 S˘ a se minimizeze urm˘ atoarele funct¸ii utilizˆ Pa7nd diagrame V-K: a)F = ABC + AB C + ABC; b)F (A, B, C) = 0 (1, 3, 5, 6, 7); c)F (A, B, C, D) = ABC + AD + BCD; P15 d)F (A, B, C, D) = 0 (1, 3, 4, 5, 6, 9, 11, 12, 13, 14); P31 e)F (A, B, C, D, E) = 0 (0, 2, 8, 10, 16, 18, 24, 26); f )F (A, B, C, D) = A B CD + ABCD + ABCD + AB CD;

312

2.6. PROBLEME

Q15 g)F (A, B, C, D) = 0 (2, 3, 4, 6, 7, 10, 11, 12); Q31 h)F (A, B, C, D, E) = 0 (0, 2, 4, 6, 8, 9, 10, 11, 12, 14, 16, 17, 18, 19, 24, 25, 26, 27) P2.7 S˘ a se identifice atoarele expresii: P15 implicant¸ii primi esent¸iali pentru urm˘ a) f (A, B, C, D) = 0 (1, 5, 7, 8, 9, 10, 11, 13, 15); P31 b) f (A, B, C, D, E) = 0 (5, 7, 9, 12, 13, 14, 15, 20, 21, 22, 23, 25, 29, 31). P2.8 Utilizˆ and diagrama a se arate c˘ a funct¸ia: P15 V-K, s˘ f1 (A, B, C, D) = 0 (0, 2, 5, 7, 8, 10, 13, 15) P15 este negata funct¸iei: f2 (A, B, C, D) = 0 (1, 3, 4, 6, 9, 11, 12, 14), Q15 ¸si este identic˘ a cu funct¸ia: f3 (A, B, C, D) = 0 (1, 3, 4, 6, 9, 11, 12, 14) P2.9 S˘ a se minimizeze atoarele funct ¸ii utilizˆ and diagrame V-K: P P15 urm˘ 15 a) f (A, B, C, D) = 0 (2, 3, 4, 5, 13, 15) + 0 d(8, 9, 10, 11); P15 P15 b) f (A, B, C, D) = 0 (1, 5, 7, 9, 13, 15) + 0 d(8, 10, 11, 14); P15 P15 c) f (A, B, C, D) = 0 (0, 2, 4, 8, 10, 14) + 0 d(5, 6, 7, 12); P31 d) f (A, B, C, D, E) = 0 (1, 3, 4, 6, 9, 11, 12, 14, 17, 19, 20, 22, 25, 27, 28, 30)+ P31 + 0 d(8, 10, 24, 26); P2.10 Se consider˘ a funct¸ia: P15 P 15 f (A, B, C, D) = 0 (3, 6, 11, 14, 15) + 0 d(2, 5, 12, 13) S˘ a se exprime ca o funct¸ie de trei variabile ¸si ca o funct¸ie de dou˘ a variabile: a) utilizˆ and tabelul de adev˘ ar al funct¸iei; b) utilizˆ and diagrama V-K. P2.11 Pentru funct¸iile reprezentate ˆın diagramele V-K din figur˘ a s˘ a se scrie forma minim˘ a. B f1

B f2

B f3

B f4 a)

A 0

C

1

0

0

C

1

0

1

A 0

1

0

0

d

1

d

C

A 0

1

0

0

C

1

1

0

A 0 0

C

1

1

1

d

f5

C f6

C f7

C f8

AB 00

01

11

10

0

d

D

1

d

1

0

d

d

1

AB CD

f9

AB 00

01

11

10

0

1

0

E

d

1

d

1

1

AB 00

01

11

10

0

0

1

d

d

1

D

0

1

1

AB 00

01

11

0

DE 1

1

DE d

10

00

01

11

10

00

0

0

d

E

01

E

E

d

E

11

E

1

d

0

10

0

1

d

1

AB CD

f 10

00

01

11

10

00

F

0

0

d

01

0

0

0

F

11

0

0

1

1

10

d

0

d

1

F

P2.12 S˘ a se introduc˘ a variabile reziduu ˆın expresia coeficient¸ilor funct¸iilor de la problema P2.6, astfel ˆıncˆ at ˆın fiecare funct¸ie s˘ a fie numai dou˘ a variabile. Reducet¸i num˘ arul de variabile atˆ at folosind tabelul de adev˘ ar cˆ at si diagrama V-K. Pentru

313

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

funct¸iile de dou˘ a variabile rezultate din diagramele V-K s˘ a se scrie forma minim˘ a. Pentru aceste forme minime s˘ a se compare rezultatele cu cele obt¸inute la problema P2.6. P2.13 S˘ a se realizeze sinteza unui circuit convertor de cod din codul zecimal codificat binar BCD 2-4-2-1 ˆın codul de afi¸sare pe matrice cu ¸sapte segmente. Matricea de ¸sapte segmente este TIL-312. Toate cele ¸sapte LED-uri au anodul alimentat comun de la +5V. Un segment este luminat cˆ and pe catodul s˘ au este comandat potent¸ialul logic ,, “0 . P2.14 Funct¸ionarea a dou˘ a motoare M1 ¸si M2 este comandat˘ a de trei ˆıntrerup˘ atoare: S1 , S2 ¸si S3 . Motorul M2 funct¸ioneaz˘ a tot timpul cˆ at cele trei ˆıntrerup˘ atoare sunt ˆınchise. Motorul M1 funct¸ioneaz˘ a dac˘ a fie S2 , fie S1 (dar nu ¸si simultan) sunt ˆınchise iar S3 este deschis.S˘ a se realizeze circuitul logic combinat¸ional care implementeaz˘ a aceast˘ a comand˘ a. P2.15 S˘ a se analizeze, utilizˆ and diagramele de timp ale semnalelor ¸si diagramele V-K, dac˘ a circuitul din figura (a) poate genera hazard static 1. ˆIn cazul aparit¸iei hazardului, s˘ a se propun˘ a solut¸ia de eliminare. A B

G1

G3

G2 G4

A AB

G5

C f

f

C

B

a)

b)

P2.16 S˘ a se implementeze funct¸ia: f (A, B, C, D) = Π 15 0 (1, 3, 4, 5, 7, 10, 11, 12, 14, 15) sub form˘ a OR-AND f˘ ar˘ a a produce hazard static. P2.17 S˘ a se explice de ce circuitele care implementeaz˘ a mintermi pot produce hazard static 1 iar cele care implementeaz˘ a maxtermi pot produce hazard static 0. P2.18 S˘ a se pun˘ a ˆın evident¸a˘ hazardul static pentru fiecare din urm˘ atoarele funct¸ii ¸si s˘ a se determine unPcircuit care elimin˘ a hazardul ¸si ˆındepline¸ste aceea¸si funct¸ie logic˘ a: 15 a) f (A, B, C, D) = 0 (5, 7, 8, 9, 10, 11, 13, 15); P15 b) f (A, B, C, D) = 0 (5, 7, 13, 15); P15 c) f (A, B, C, D) = 0 (0, 2, 4, 6, 12, 13, 14, 15); d) f (A, B, C, D) = (A + B + D)(A + C + D)(A + B + C); e) f (A, B, C, D) = (A + B + D)(A + B + C + D)(A + C)(B + C); f) f (A, B, C, D) = B C D + ABC + BC. P2.19 S˘ a se determine dac˘ a circuitul din figura (b), de la P2.15, produce hazard static. ˆIn caz afirmativ, s˘ a se modifice structura astfel ˆıncˆ at s˘ a fie eliminat hazardul. P7 P2.20 Pentru funct¸ia f (x2 , x1 , x0 ) = 0 (3, 5, 7) s˘ a se deduc˘ a diagrama de decizie binar˘ a redus˘ a (ROBDD). P2.21 Urm˘ atoarea funct¸ie s˘ a se implementeze cu un num˘ ar minim de port¸i NAND. f = ABD + ACD + BCD + ABC

314

2.6. PROBLEME

P2.22 S˘ a se realizeze o poart˘ a DAR care are patru intr˘ ari ¸si dou˘ a ie¸siri cu simbolul grafic din figura al˘ aturat˘ a. Funct¸ia realizat˘ a trebuie s˘ a fie adev˘ arat˘ a cˆ and ˆın statuarea valorilor variabilelor de intrare din primul A 1 f1 grup A1 , B1 sau din al doilea grup A2 , B2 se aplic˘ a sensul B1 conjunct¸iei DAR. Privind simetria simbolului grafic funct¸ia re- A 2 f2 alizat˘ a trebuie s˘ a fie simetric˘ a ˆın raport cu variabilele A si B B 2 din fiecare grup; de asemenea trebuie s˘ a fie simetrice cele dou˘ a grupuri. Apoi, cu aceast˘ a DAR s˘ a se implementeze funct¸ia P15a poart˘ a DAR plus o poart˘ a OR cu f (A1 , B1 , A2 , B2 ) = 0 (3, 7, 11, 12, 13, 14) cu o poart˘ dou˘ a intr˘ ari. P2.23 Utilizˆ and numai 4 port¸i NAND cu 8 intr˘ ari s˘ a se implementeze un codificator 16:4. Care sunt nivelurile active de semnal pentru intr˘ ari ¸si pentru ie¸siri? P2.24 Pe baza circuitului codificator prioritar cu 8 intr˘ ari 74XX148, , s˘ a se structureze un codificator prioritar cu 16 intr˘ ari. P2.25 S˘ a se implementeze un CLC la intrarea c˘ aruia se aplic˘ a un cuvˆ ant M de opt bit¸i ¸si un cuvˆ ant N de trei bit¸i. Ie¸sirea f a circuitului va fi activ˘ a cˆ and M este multiplu de 2N . P2.26 S˘ a se implementeze un CLC la intrarea c˘ aruia se aplic˘ a un cuvˆ ant M de 16 bit¸i ¸si un cuvˆ ant N de 2 bit¸i. Ie¸sirea f a circuitului va fi activ˘ a cˆ and M este un N multiplu de 22 . P2.27 ˆIntr-un cuvˆ ant de un byte X = x7 x6 x5 x4 x3 x2 x1 x0 s˘ a se determine cˆ and exist˘ a doar un singur bit cu valoarea zero. P2.28 S˘ a se proiecteze un CLC cu opt intr˘ ari Ii L ¸si opt ie¸siri Oi L , i = 0, 1 . . . 7. Circuitul genereaz˘ a numai ie¸sirea Oi L = 0 ˆın care i este pozit¸ia celui mai semnificativ bit activat din cuvˆ antul de opt bit¸i aplicat pe intrare. P2.29 S˘ a se realizeze un CLC prin intermediul c˘ aruia 8 periferice sunt legate la un microprocesor (µP ). La activarea unuia sau a mai multor periferice acest circuit va genera c˘ atre µP o cerere de ˆıntrerupere IRQ L ¸si codul perifericului activat cu nivelul cel mai ridicat de prioritate; nivelul de prioritate cre¸ste de la 0 la 7. Except¸ie de la aceast˘ a regul˘ a este numai ˆın cazul ˆın care sunt activate simultan mai multe periferice printre care sunt activate ¸si perifericele 7 ¸si 2, ˆın acest caz se genereaz˘ a catre µP codul perifericului 2. P2.30 Utilizˆ and circuitul 74XX138, DCD3:8, s˘ a se realizeze o structur˘ a de DCD5:32. P2.31 DCD3:8, P2.32 P2.33 [0, 7] P2.34

x

Urm˘ atoarele funct¸ii: Y1 = 2x ¸si Y2 = 22 s˘ a fie implementate pe circuite x fiind un num˘ ar binar ˆın intervalul [000,111]. S˘ a se implementeze operat¸ia: y = 2x1 + 2x2 , x1 , x2 ∈ [0, 7], x1 6= x2 S˘ a se realizeze un CLC care implementeaz˘ a funct¸ia y = 2 (x1 +x2 ) , x1 , x2 ∈

Utilizˆ and circuitul 74LS138, decodificator 3:8, s˘ a se implementeze funct¸ia: P f (A, B, C, D) = (0, 1, 3, 5, 7) P2.35 Utilizˆ and circuite 74LS138, decodificator 3:8 ,s˘ a se implementeze urm˘ atoarele funct¸ii: P P a) f1 (A, B, C) = (0, Q 2, 5, 7); b) f3 (A, B, C, D) = (0, Q3, 5, 6, 9, 10, 11, 12, 13); c) f2 (A, B, C, D) = (2, 3, 4, 7); d) f4 (A, B, C, D) = (2, 3, 6, 7, 8, 9, 13, 14, 15).

315

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

P2.36 Implementat¸i o celul˘ a sumator complet cu ajutorul unui circuit decodificator 74LS138. P2.37 S˘ a se implementeze cu circuite 74LS138, DCD3:8, circuitul logic combina¸tional cu ie¸siri multiple definit de funct¸iile: f1 = P 0 + P 3 + P 5 + P 7 f2 = P1 + P2 + P4 + P5 + P8 + P11 + P12 + P14 + P15 f3 = P3 + P4 + P6 + P12 + P14 + P15 f4 = P1 + P2 + P5 + P6 + P7 + P8 + P9 + P15 P2.38 Se pot implementa urm˘ atoarele funct¸ii doar cu dou˘ a circuite integrate? f1 = A B C + ABC , f2 = A BC + ABC , f3 = ABC + ABC , f4 = AB C + ABC P2.39 Un circuit 74XX138 DCD3:8 este comandat pe int˘ arile A,B,C cu semnalele de ie¸sire de la un num˘ ar˘ ator asincron modulo 8. S˘ a se analizeze momentele cˆ and pe ie¸sirile circuitului pot apare glitch-uri. P2.40 La celula sumator complet, implementat˘ a ˆın problema P2.36, se aplic˘ a pe cele trei intr˘ ari A,B,C, ˆın locul semnalelor A i , Bi ¸si Ci−1 semnalele de ie¸sire de la un num˘ ar asincron modulo 8. S˘ a se determine la care comutarea dintre st˘ arile num˘ ar˘ atorului asincron ie¸sirile si ¸si Ci−1 ale celulei se pot genera glitch-uri. P2.41 Numai cu dou˘ a circuite 74XX138, DCD3:8, s˘ a se realizeze un DCD4:16. P2.42 S˘ a se determine funct¸iile implementate pe urm˘ atoarele circuite. B C A B C

DCD2:4 O0 I1 O1 I0 O2 E O3 DCD2:4 O0 I1 O1 I0 O2 E O3 a)

MUX2:1

f1 A

f2

B

MUX2:1

0 1

0 1

0

0

f3

C MUX2:1

C

C b)

0 1

0

f4

B

P2.43 S˘ a se organizeze un MUX32:1 pe baza circuitelor: 74XX151 MUX8:1; 74XX153 MUX4:1; 74XX139 DCD2:4. Toate aceste circuite au o intrare de validare G activ˘ a ˆın starea low; circuitul 74XX151 genereaz˘ a atˆ at ie¸sirea negat˘ a cˆ at ¸si nenegat˘ a. P2.44 S˘ a se realizeze o selectare de date de la patru porturi P 3 , P2 , P1 ¸si P0 , fiecare de patru bit¸i, la o magistral˘ a. P2.45 ˆIn figur˘ a este schit¸at˘ a posibilitatea de sumare a unui operand cu lungimea de k bit¸i de la unul din porturile PA1,PA2,PA3,PA4 cu un alt operand de aceea¸si lungime de la unul din porturile PB1,PB2,PB3,PB4 iar rezultatul este distribuit la unul din porturile destinat¸ie PD1,PD2,PD3,PD4. S˘ a se structureze cele dou˘ a circuite de selectare de pe intrare ¸si circuitul de distribut¸ie de pe ie¸sire. S˘ a se scrie cuvintele de selectare SA , BB , SD pentru urm˘ atoarele transferuri: PA1+PB1→PD1 ¸si PA2+PB4→PD3. P7 P2.46 Pentru funct¸ia logic˘ a, f (A, B, C) = 0 (0, 1, 3, 6, 7) s˘ a se realizeze o implementare:

316

2.6. PROBLEME PA1 PA2 PA3 PA4 SA

k

k

k

PB1 PB2 PB3 PB4

k

k

k

k

k

k

S0

k

SUMATOR k+1

S0 k+1 PD1

k+1 PD2

k+1 PD3

k+1 PD4

a) numai cu MUX 2:1; b) numai cu MUX 8:1; c) cu MUX 2:1 ¸si MUX 4:1. Considerˆ and ca o m˘ asur˘ a a dimensiunii num˘ arul de terminale (2 n + n + 1) ale unui n MUX 2 : 1, s˘ a se determine dimensiunea pentru fiecare dintre aceste implement˘ ari. P2.47 S˘ a se implementeze funct¸iile: P P f1 (A, B, C, D) = P(0, 1, 3, 4, 7, 8, 10, 11, 15), f2 (A, B, C, D) = (3, 4, 5, 6, 13, 14, 15), f3 (A, B, C, D) = (0, 1, 4, 5, 6, 9, 12, 14) ˆın urm˘ atoarele variante: a) numai cu MUX 2:1; b) numai cu MUX 4:1; c) numai cu MUX 16:1; d) cu MUX 2:1 ¸si MUX 4:1 sau MUX 8:1. S˘ a se aprecieze dimensiunea implement˘ arii prin num˘ arul de circuite utilizate ¸si num˘ arul de terminale. P P P2.48 Fie funct¸ia f (A, B, C, D) = (3, 6, 11, 14, 15) + d(2, 5, 12, 13). S˘ a se implementeze cu circuitul 74LS151, MUX 8:1. P2.49 Implementat¸i cu circuite 74LS151, MUX 8:1 celula sumator complet. Prin introducerea unei variabile reziduu, s˘ a se realizeze o implementare ¸si cu circuitul 74LS153, MUX4:1. P2.50 Fie funct¸ia f (A, B, C, D, E) = ABE + A BDE + ABCE + ACDE. S˘ a se implementeze cu un circuit 74LS151, MUX8:1. P2.51 Utilizˆ and circuitul a se implementeze funct¸ia: P 74LS151 MUX8:1, s˘ f (A, B, C, D, E) = (3, 6, 7, 10, 11, 19, 22, 26, 27, 30, 31) Se va folosi intrarea de validare pentru una din variabilele reziduu. P2.52 S˘ a se implementeze funct¸ia: f (A, B, C, D, E) = ABE + A BDE + ABCE + ACDE (prezentat˘ a ¸si ˆın problema P2.50), utilizˆ and circuitele 74LS138 DCD3:8 ¸si 74LS153 MUX4:1. P2.53 S˘ a se implementeze P funct¸ia: f (A, B, C, D, E) = (3, 6, 7, 10, 11, 19, 22, 26, 27, 30, 31) utilizˆ and circuitul 74LS138 DCD3:8 ¸si circuitul 74LS153 MUX4:1. S˘ a se compare structura obt¸inut˘ a cu implementarea problemei P2.51. P2.54 S˘ a se implementeze ˆın ROM un convertor din codul binar 7 segmente ˆın BCD. P2.55 Pentru problema P2.27 s˘ a se conceap˘ a o implementare pe circuit ROM. P2.56 S˘ a se implementeze pe un circuit ROM calculul p˘ atratului numerelor cuprinse

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

317

ˆın intervalul [0,7]. P2.57 Un sistem cu microprocesor cu o magistral˘ a de adresare de 10 bit¸i are alocat pentru cele patru periferice ale sale #0, #1, #2, #3 urm˘ atoarele adrese: 3C0H, 3C1H, 3C2H ¸si 3C3H. S˘ a se realizeze variante de circuite de decodificare pentru aceste adrese. P2.58 Un sistem cu microprocesor cu o magistral˘ a de adresare de 16 bit¸i are alocat pentru cele patru periferice ale sale #0,#1,#2 ¸si #3 urm˘ atoarele adrese: ED0CH, ED0DH, ED0EH ¸si ED0FH. S˘ a se realizeze o variant˘ a de decodificare complet˘ a pentru periferice utilizˆ and un circuit 74LS138, un circuit comparator 74LS682 ¸si port¸i. P2.59 a) S˘ a se conceap˘ a un modul de memorie ROM de capacitate 8K × 16 bit¸i utilizˆ and circuitele EPROM 2716. ˆIntr-un spat¸iu de adresare de 64k (A15 ÷ A0 ) acest modul va acoperi intervalul de adrese 64k÷ 56k. Circuitul EPROM2716 prezint˘ a dou˘ a semnale de control unul este selectare circuit CE L/PRM (Chip Enable/ Programare) iar cel˘ alalt este validare ie¸sire OE L (Output Enable - comanda ie¸sirii din TSL ˆın stare normal˘ a); pentru obt¸inerea datelor pe ie¸sire trebuie activate ambele semnale simultan. b) Utilizˆ and circuite EPROM 2708, 1K × 8 bit¸i, (prezint˘ a un singur semnal CS L (Chip Enable/ Output Enable)) ¸si circuite decdificator 74XX138, 74XX139, s˘ a se structureze urm˘ atoarele module de memorie: 1K × 16 bit¸i, 8K × 8 bit¸i, 8K × 16 bit¸i. Fiecare din aceste module are asignat un interval de adresare ˆıncepˆ and cu adresa 0000H; se consider˘ a un spat¸iu de adresare de 64K (A 15 ÷ A0 ). P2.60 Pe un circuitPROM cu organizarea 64 × 1 bit s˘ a se implementeze funct¸ia: f (F, E, D, C, B, A) = (0, 1, 2, 3, 4, 5, 6, 9, 11, 12, 13, 15, 16, 19, 21, 25, 26, 28, 29, 30, 31, 33, 34, 36, 37, 39, 41, 44, 45, 46, 49, 51, 53, 55, 57, 59, 60, 61, 62) P2.61 S˘ a se implementeze urm˘ atoarele funct¸ii pe o structur˘ a de ROM cu capacitatea 64 × 1: f1 (F, E, D, C, B, A) = F D B + F DBA + F ED CBA; f2 (F, E, D, C, B, A) = F EDA + F ECA + F ED CB + F EDCBA; f3 (F, E, D, C, B, A) = F E D B + F E DCA; f4 (F, E, D, C, B, A) = F EDA + F EDCB + F EDCB; P2.62 S˘ a se implementeze pe o memorie ROM de capacitate 32×8 bit¸i urm˘ atoarele convertoare de cod: a) convertor din cod 2-4-2-1 la matrice cu ¸sapte segmente (vezi P2.13 ¸si P2.65); b) convertor din BCD ˆın cod EXCESS3 (codul EXCESS3 se obt¸ine din codul BCD la care se adun˘ a cuvˆ antul 0011| 2 = 3|10 ). S˘ a se calculeze gradul de utilizare al memoriei, exprimat prin raportul dintre num˘ arul de bit¸i ˆınscri¸si ¸si capacitatea memoriei. P2.63 Utilizˆ and circuite ROM de capacitate 256 × 8 bit¸i, ˆın care sunt ˆınscrise toate ˆınmult¸irile ˆıntre numerele binare de patru bit¸i, precum ¸si circuite sumatoare de lungimi corespunz˘ atoare, s˘ a se structureze un multiplicator simultan pentru cuvinte de un byte. P2.64 S˘ a se implementeze pe structuri PLA ¸si PAL (cu patru termeni produs cablat¸i pe fiecare poart˘ a OR) un convertor din BCD ˆın cod Gray. P2.65 S˘ a se implementeze pe o structur˘ a PLA generic un convertor din codul 2421 ˆın codul pentru o matrice cu ¸sapte segmente. Codul 2421 este: 0 → 0000; 1 → 0001; 2 → 1000; 3 → 1001; 4 → 1010; 5 → 1011; 6 → 1100; 7 → 1101; 8 → 1110; 9 → 1111;, iar configurarea cifrelor zecimale din LED-uri se consider˘ a ca ˆın Figura 2.37. P2.66 S˘ a se implemeteze pe o structur˘ a de circuit PLA generic un comparator digital pentru dou˘ a cuvinte A ¸si B cu lungimea de 4 bit¸i. Circuitul genereaz˘ a la ie¸sire:

318

2.6. PROBLEME

A = B, A > B ¸si A < B. Nu se primesc semnale pentru relat¸iile de ordonare de la un modul comparator de rang superior. P2.67 S˘ a se realizeze circuite pentru identitatea a dou˘ a cuvinte. P2.68 Utilizˆ and circuitul comparator digital de patru bit¸i 74XX85 s˘ a se implementeze structuri care s˘ a realizeze urm˘ atoarele operat¸ii: a) Pentru dou˘ a cuvinte A ¸si B ie¸sirea fs s˘ a fie adev˘ arat˘ a cˆ and AB ie¸sirea fi s˘ a fie adev˘ arat˘ a. b) Pentru dou˘ a cuvinte A ¸si B s˘ a se realizeze urm˘ atoarele relat¸ii de ordonare: egal(=), mai mic(), mai mare sau egal(≥), diferit(6=). P2.69 De la ie¸sirile de pondere 23 , 22 , 21 , 20 ale unui num˘ ar˘ ator sincron ˆın cod binar natural modulo 16 se obt¸ine cuvˆ antul A = A3 A2 A1 A0 , iar de la ie¸sirile complementare se obt¸ine cuvˆ antul ˆın complement fat¸a de 1, A = A 3 A2 A1 A0 . Cuvintele A ¸si A se aplic˘ a pe intr˘ arile unui circuit comparator de patru bit¸i 74XX85. S˘ a se deseneze formele de und˘ a la cele trei ie¸siri ale circuitului (A > B, A = B, A < B) cˆ and num˘ ar˘ atorul parcurge toate cele 16 st˘ ari (0 ÷ 15). P2.70 Utilizˆ and circuitul comparator de patru bit¸i 74XX85 ¸si port¸i s˘ a se realizeze o structur˘ a care genereaz˘ a urm˘ atoarele relat¸ii de ordine: A ≥ N ; M ≤ A; M ≤ A ≤ N ; A < M ; A > N ude M ¸si N sunt dou˘ a constante cuprinse ˆın intervalul [0, 2 n − 1], n=4 P2.71 Utilizˆ and trei circuite comparator digital de patru bit¸i 74XX85 ¸si port¸i s˘ a se realizeze o structur˘ a care pentru trei variabile A, B, C activeaz˘ a (ˆın stare 1) una din cele trei ie¸siri fA , fB , fC ˆın funct¸ie de relat¸ia adev˘ arat˘ a din urm˘ atoarele trei: fA = 1 dac˘ a B < A > C fB = 1 dac˘ a A < B > C fC = 1 dac˘ aAB P2.72 Utilizˆ and circuitul 74XX283, sumator cu transport anticipat pentru cuvinte de patru bit¸i, s˘ a se realizeze diferite variante de sumatoare de trei bit¸i ¸si de doi bit¸i. P2.73 S˘ a se realizeze sinteza unei celule semisumator pentru sumare ˆın sistemul de numerat¸ie ˆın baz˘ a trei. Implementarea se va face cu port¸i NAND. P2.74 S˘ a se structureze o celul˘ a sumator modulo trei, apoi cu aceasta s˘ a se organizeze un sumator cu transport anticipat modulo 3 8 . P2.75 S˘ a se structureze o celul˘ a sumator pentru adunarea ˆın cod BCD. P2.76 Utilizˆ and circuite 74LS181, unitate logico-aritmetic˘ a de patru bit¸i ¸si circuite 74LS182, unitate pentru calculul transportului anticipat pe patru ranguri, s˘ a se organizeze o unitate logico-aritmetic˘ a pentru cuvinte de 64 de bit¸i. P P2.77 S˘ a se realizeze un circuit, format numai din celule sumator complet (3, 2), care s˘ a calculeze num˘ arul (exprimat ˆın binar natural, NBCD) de bit¸i care au valoarea 1 ˆıntr-un cuvˆ ant de 7 bit¸i, apoi s˘ a se extind˘ a pentru un cuvˆ ant de un byte. P P2.78 Utilizˆ and celule sumator complet (3, 2) s˘ a se realizeze un modul care incrementeaz˘ a un cuvˆ ant de trei bit¸i, la fel, un modul, pentru decrementare. P2.79 Pentru un sumator de ¸sase bit¸i realizat ˆın varianta de sumator cu propagarea transportului , SPT, ¸si ˆın varianta cu transport anticipat, STA, s˘ a se determine: 1. expresiile pentru C5 ; 3. timpul minim de sumare, TP . 2. num˘ arul de port¸i pentru implementarea lui C 5 ; P Se va considera organizarea de celul˘ a (3, 2) din Figura 2.60-b, iar C−1 = 0. P2.80 Realizat¸i un circuit pentru sumarea a trei cuvinte de doi bit¸i. P2.81 Realizat¸i un circuit pentru multiplicarea a dou˘ a cuvinte, unul de doi bit¸i X = x1 x0 iar cel˘ alalt de trei bit¸i Y = y2 y1 y0 utilizˆ and fie numai module sumator pentru cuvinte de doi bit¸i ¸si port¸i AND2 fie numai module sumator pentru cuvinte

CAPITOLUL 2. CIRCUITE LOGICE COMBINAT ¸ IONALE

319

de trei bit¸i ¸si port¸i AND2. P2.82 S˘ a se structureze o Unitate Aritmetico - Logic˘ a Elementar˘ a, ALUE, care s˘ a realizeze urm˘ atoarele operat¸ii:1) trece B i ; 2) Ai > Bi ; 3) Ai + Bi + Ci−1 ; 4) Ai − Bi − Ci−1 . P2.83 Utilizˆ and o (celul˘ a) ALUE (structurat˘ a la P2.82) s˘ a se organizeze o ALU de patru bit¸i. P2.84 S˘ a se structureze o ALUE care s˘ a realizeze urm˘ atoarele opt operat¸ii: 1) ˆınscrie zero (¸stergere); 2) (B − A); 3) (A − B); 4) (A + B); 5) A ⊕ B; 6) (A ∪ B); 7) (A ∩ B); 8) ˆınscrie 1 (set).

Capitolul 3

CIRCUITE LOGICE SECVENT ¸ IALE, CLS Circuitul Logic Combinat¸ional, CLC, exprimat formal prin tripletul(X,Y,F), determin˘ a pentru o configurat¸ie binar˘ a de intrare de n bit¸i, definit˘ a pe mult¸imea X = {0, 1}n , o configurat¸ie de ie¸sire de m bit¸i, apart¸inˆ and mult¸imii Y ⊆ {0, 1} m , adic˘ a realizeaz˘ a aplicat¸ia F : X → Y . ˆIn funct¸ionarea unui CLC, cel put¸in teoretic, nu se ia ˆın considerare variabila timp, transferul intrare-ie¸sire fiind instantaneu; ˆın suportul formal utilizat, algebra Booleean˘ a, nu exist˘ a variabila timp. Aceast˘ a lacun˘ a a suportului formal se pl˘ ate¸ste, uneori, sub forma gener˘ arii de hazard la unele implement˘ ari ale CLC-ului, cˆ and pe durata timpului de transfer(neinstantaneu) valorile obt¸inute la ie¸sirea circuitului apar ca o violare a postulatului de existent¸a complea, la un CLC transferul este unidirect¸ional, mentarului: x + x = 0 ¸si xx = 1!. Totodat˘ nu exist˘ a ¸si un transfer de la ie¸sire c˘ atre intrare, adic˘ a o react¸ie. ˆIntr-o abordare foarte general˘ a un Circuit Logic Secvent¸ial, CLS, se poate considera ca o extensie a unui CLC cu o conexiune de react¸ie ¸si ˆın funct¸ionarea sa, implicit, se consider˘ a ¸si variabila timp(propagarea neinstantanee). Se poate lua ¸si reciproca, adic˘ a un CLS numai cu transfer unidirect¸ional ¸si instantaneu este un CLC. Aceast˘ a abordare de definire, implicit, determin˘ a ¸si o structurare general˘ a a unui CLS pornind de la un CLC. Secvent¸ialitatea implic˘ a evenimente/st˘ ari care se succed ˆın timp unul dup˘ a altul. ˆIn funct¸ie de modul cum este marcat˘ a aceast˘ a tranzit¸ie, de la un eveniment/stare la urm˘ atorul, circuitele/sistemele pot fi asincrone sau sincrone. Pentru cele asincrone, aceast˘ a tranzit¸ie/evolut¸ie, este determinat˘ a de ˆıns˘ a¸si structura circuitului/sistemului prin timpul s˘ au propriu de propagare(constanta de timp), pe cˆ and la cele sincrone tranzit¸ia este marcat˘ a din exterior prin timpul, perioada/frecvent¸a unui semnal de ceas/clock.

3.1

CIRCUITE LOGICE SECVENT ¸ IALE ASINCRONE

Structura general˘ a a unui CLS asincron este reprezentat˘ a ˆın Figura 3.1, referit˘ a 321

3.1. CIRCUITE LOGICE SECVENT ¸ IALE ASINCRONE

322

uneori ca structur˘ a Huffman, care poate fi considerat˘ a c˘ a rezult˘ a pornind de la un CLC c˘ aruia i s-au ata¸sat c˘ ai de react¸ie prin intermediul elementelor de ˆıntˆ arziere, notate cu ∆0 , ∆1 , . . ., ∆k−1 . Variabilele de intrare(principale) sunt: xn−1 (t), . . . x1 (t), x0 (t) iar m˘ arimile de ie¸sire sunt: ym−1 (t), . . . , y1 (t), y0 (t), similar ca la un CLC cu n intr˘ ari m ie¸siri. O configurat¸ie a variabilelor de intrare principale este un vector de intrare Xi , i = 0, 1, 2, . . . , (2n − 1), ace¸sti vectori formeaz˘ a mult¸imea intr˘ arilor, notat˘ a cu X. De asemenea, configurat¸iile m˘ arimilor de ie¸sire formeaz˘ a mult¸imea ie¸sirilor, notat˘ a cu Y . Asupra celor dou˘ a mult¸imi X ¸si Y , sunt corecte acelea¸si considerat¸ii care s-au expus la CLC(vezi relat¸ia 2.1). ˆIn plus, CLC-ul mai produce la momentul t ˆınc˘ a alte k variabile de ie¸sire w k−1 (t), . . . , w1 (t), w0 (t) care prin leg˘ aturi de react¸ie ¸si prin intermediul elementelor de ˆıntˆ arziere ∆ i , i = 0, 1, . . . , (k − 1), se aplic˘ a pe intrare ca variabile de intrare secundare la momentul t + ∆i , zk−1 (t + ∆k−1 ), . . . , z1 (t + ∆1 ), z0 (t + ∆0 ). Considerˆ and c˘ a ˆıntˆ arzierile ∆i , introduse de elementele de ˆıntˆ arziere sunt toate egale cu ∆, se pot scrie urm˘ atoarele relat¸ii pentru cele k intr˘ ari secundare zi , i = 0, 1, 2, . . . , (k − 1) : zk−1 (t + ∆) = wk−1 (t), . . . , z1 (t + ∆) = w1 (t), z0 (t + ∆) = w0 (t). Rezult˘ a c˘ a circuitul combinat¸ional din structura CLS-ului este un circuit cu (n + k) intr˘ ari ¸si (m + k) ie¸siri. x 0 (t ) Intrari x principale 1 (t ) X

Intrari secundare Z

xn-1(t ) z 0 (t ) z 1 (t )

y0 y1

CLC cu: (n+k)intrari Y(t)=f(x(t),z(t)) Q =g(x(t),z(t))

zk-1(t )

CLC2

Y(t)

Y(t)= f(x(t),q(t))

m

CLC1

Q (t)

X(t) n

ym

(m+k)iesiri

+

Y

w0 (t ) w1(t )

+

Q (t)= g(x(t),q(t))

wk-1(t )

+

k

zk-1(t )= wk(t-∆); zk-1(t+∆)= wk-1(t ) ∆k-1

a)

z 1 (t ) = w0 (t-∆); z 1(t+∆)= w1(t ) ∆1 z 0 (t ) = w0 (t-∆) ; z 0 (t+∆) = w0 (t ) ∆0 Starea prezenta q(t)

Starea urmatoare q+ (t)

q(t)=q+ (t-∆ )

q(t+∆)=q+ (t)

Q(t) k



SA b)

Figura 3.1 Circuitul logic secvent¸ial, CLS: a) structurare de principiu pentru un CLS asincron(Huffman); b) structurare cu separarea funct¸iei de transfer intrareie¸sire, de cea de tranzit¸ie a st˘ arilor. Pentru ˆıntˆ arzierile ∆i nu trebuie s˘ a se ˆınt¸eleag˘ a ¸si s˘ a se considere cˆ ate un element fizic de ˆıntˆ arziere introdus special pe cˆ ate o linie de react¸ie. ˆIn implement˘ arile normale ale unui CLS asincron leg˘ atura de react¸ie se realizeaz˘ a printr-o conectare direct˘ a de

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

323

la ie¸sire la intrarea secundar˘ a, deci ie¸sirea w i devine instantaneu intrarea zi (evident dac˘ a timpul de propagare pe leg˘ atura de react¸ie respectiv˘ a este zero). ˆIn schimb, propagarea de semnal ˆın structura CLC-ului, de la intr˘ arile principale x i ¸si intr˘ arile secundare zi ˆınspre ie¸sirile wi , se realizeaz˘ a pe trasee cu anumite adˆ ancimi (niveluri logice), deci exist˘ a intˆ arzieri care trebuie luate ˆın considerare; de exemplu o ˆıntˆ arziere de 5 ÷ 10ns pe fiecare nivel logic. Dar, ˆın explicat¸ia anterioar˘ a, pentru fiecare din semnalele wi , i = 0, 1, . . . , (k − 1) s-a considerat c˘ a exist˘ a cˆ ate o ˆıntˆ arziere ∆ i . ˆIntr-o abordare didactic˘ a, analiza unui CLS asincron se poate simplifica dac˘ a se consider˘ a c˘ a ˆıntˆ arzierile de propagare din interiorul CLC-ului sunt zero dar, ˆın compensat¸ie, pe fiecare linie de react¸ie ˆıntre wi spre zi se introduce ˆıntˆ arzierea ∆i aferent˘ a ie¸sirii wi din CLC. Simplificarea poate merge ¸si mai departe prin supozit¸ia facut˘ a anterior, c˘ a toate aceste ˆıntˆ arzieri ∆i , introduse pe leg˘ aturile de react¸ie, sunt egale cu ∆. ˆIn acest mod de abordare didactic la CLS transferul intrare-ie¸sire este instantaneu prin CLC, ˆın schimb variabilele wi devin variabile de intrare secundar˘ a, zi , numai dup˘ a intervalul de timp ∆. Configurat¸ia intr˘ arilor secundare sau cuvˆ antul format cu valorile binare ale celor k variabile secundare la momentul t,zk−1 (t) . . . , z1 (t), z0 (t) define¸ste o m˘ arime intern˘ a proprie circuitului secvent¸ial denumit˘ a starea prezent˘ a a circuitului, notat˘ a cu q(t). Cuvˆ antul format din valorile de ie¸sire wk−1 (t) . . . w1 (t), w0 (t) formeaz˘ a starea urm˘ atoare notat˘ a cu q+ (t). ˆIn raport cu intr˘ arile principale ¸si ie¸sirile circuitului, care sunt m˘ arimi vizibile ˆın exterior(la borne), starea q(t) este o m˘ arime intern˘ a proprie circuitului, neaccesibil˘ a la bornele circuitului. Datorit˘ a introducerii elementelor de ˆıntˆ arziere pe linile de react¸ie apar evidente urm˘ atoarele relat¸ii ˆıntre starea prezent˘ a ¸si starea urm˘ atoare: q(t) = q + (t − ∆); q(t + ∆) = q + (t) (3.1)

Adic˘ a starea prezent˘ a q(t) este identic˘ a cu starea urm˘ atoare q + (t − ∆), care a fost ˆın urm˘ a la momentul (t−∆), sau starea prezent˘ a q(t+∆), care va fi la momentul (t+∆), este egal˘ a cu starea urm˘ atoare q + (t) din momentul t (starea urm˘ atoare devine stare prezent˘ a dup˘ a ˆıntˆ arzierea ∆). Deoarece starea prezent˘ a q(t) este aceea¸si cu starea urm˘ atoare q + (t − ∆), care a fost ˆın urm˘ a la momentul (t−∆) ¸si care a fost calculat˘ a ˆın funct¸ie de st˘ arile anterioare, ˆınseamn˘ a c˘ a ˆın funct¸ionarea circuitului, prin intr˘ arile de react¸ie, intervine ¸si evolut¸ia ,, anterioar˘ a a circuitului, adic˘ a influent¸eaz˘ a ¸si “istoria . Apare clar faptul c˘ a la un CLS, ˆın raport cu un CLC, ie¸sirile sunt dependente nu numai de intr˘ arile prezente ci ¸si de intr˘ arile anterioare care au determinat succesiunea st˘ arilor anterioare ¸si care se reg˘ asesc ˆın valoarea st˘ arii prezente. Partea combinat¸ional˘ a a CLS pe baza unei configurat¸ii de intrare X(t) ¸si a st˘ arii prezente q(t) calculeaz˘ a valorile configurat¸iei de ie¸sire Y (t) precum ¸si starea urm˘ atoare q + (t). Aceste dou˘ a transferuri, spre cele dou˘ a tipuri de m˘ arimi de ie¸sire, sunt evident¸iate ˆın Figura 3.1-b prin reprezentarea separat˘ a a celor dou˘ a part¸i combinationale CLC2 ¸si CLC1. Pentru o formalizare a exprim˘ arii funct¸ion˘ arii unui CLS se introduc urm˘ atoarele notat¸ii: Mult¸imea Q = {qp , . . . , q2 , q1 , q0 } este mult¸imea st˘ arilor circuitului; pot exista maximum p = 2k st˘ ari exprimate printr-un cuvˆ ant cu lungimea de k bit¸i de forma zk−1 . . . zl . . . z1 z0 zl ∈ {0, 1}. S¸i mult¸imea Q, ca ¸si mult¸imea Y , este incomplet definit˘ a |Q| ≤ 2k ; mult¸imea st˘ arilor realizate de circuit este definit˘ a pe mult¸imea nevid˘ a a p˘ art¸ilor lui Q, adic˘ a pe P ∗ (Q)

324

3.1. CIRCUITE LOGICE SECVENT ¸ IALE ASINCRONE

Funct¸ia de transfer f intrare-ie¸sire a CLS-ului exprim˘ a procesul de modificare a ie¸sirilor ˆın dependent¸a de cuvˆ antul de intrare ¸si de cuvˆ antul st˘ arii prezente prin relat¸ii de forma: y0 (t) = f0 (xn−1 (t), . . . , x1 (t), x0 (t); zk−1 (t), . . . , z1 (t), z0 (t)) y1 (t) = f1 (xn−1 (t), . . . , x1 (t), x0 (t); zk−1 (t), . . . , z1 (t), z0 (t)) ................................................................. ym−1 (t) = fm−1 (xn−1 (t), . . . , x1 (t), x0 (t); zk−1 (t), . . . , z1 (t), z0 (t)) f :X ×Q→Y

(3.2)

Funct¸ia de tranzit¸ie a st˘ arilor g exprim˘ a determinarea st˘ arii urm˘ atoare; adic˘ a pe baza st˘ arii prezente ¸si a cuvˆ antului de intrare se calculeaz˘ a starea urm˘ atoare q + (t) prin relat¸ii de forma: w0 (t) = g0 (xn−1 (t), . . . , x1 (t), x0 (t); zk−1 (t), . . . , z1 (t), z0 (t)) w1 (t) = g1 (xn−1 (t), . . . , x1 (t), x0 (t); zk−1 (t), . . . , z1 (t), z0 (t)) ................................................................ wk−1 (t) = gk−1 (xn−1 (t), . . . , x1 (t), x0 (t); zk−1 (t), . . . , z1 (t), z0 (t)) g :X ×Q→Q

(3.3)

Fiec˘ arui element din produsul cartezian X × Q poate s˘ a-i corespund˘ a mai multe elemente din mult¸imile Y sau Q. Deoarece ie¸sirile circuitului sunt definite pe p˘ art¸i ale mult¸imii de ie¸sire P ∗ (Y ) ¸si la fel st˘ arile sunt definite pe p˘ art¸i ale mult¸imii st˘ arilor P ∗ (Q) relat¸iile 3.2 ¸si 3.3 trebuie scrise sub forma: f : X × Q → P ∗ (Y ) g : X × Q → P ∗ (Q)

(3.4)

totu¸si, uneori, pentru u¸surint¸a scrierii se utilizeaz˘ a formele anterioare. Aplicat¸iile anterioare (3.2 ¸si 3.3) corespund cu cele din relatiile 3.4 cˆ and oricare element din P ∗ (Y ) ¸si P ∗ (Q) are cardinalul 1(cont¸ine un singur element). Cu notat¸iile introduse un CLS poate fi exprimat ca un cvintuplu: CLS = (X, Y, Q, f, g)

(3.5)

,, Dac˘ a mult¸imea st˘ arilor este mult¸imea vid˘ a Q ≡ ∅ (circuitul nu are “istorie ) atunci: g : X × ∅ → ∅ nu exist˘ a funct¸ie de tranzit¸ie a st˘ arilor iar, f : X × ∅ → Y se reduce la f : X → Y , deci se obt¸ine: CLS|Q≡∅ → CLC = (X, Y, f ) Rezult˘ a c˘ a un CLS la care mult¸imea st˘ arilor este mult¸imea vid˘ a se reduce la un CLC (ie¸sirile sunt funct¸ie doar de vectorul de intrare X ¸si nu exist˘ a react¸ie). Se poate concluziona c˘ a elementul care face trecerea de la combinat¸ional la secvent¸ial este conexiunea de react¸ie; ¸si invers, desfacerea react¸iei la un circuit secvent¸ial ˆıl transform˘ a ˆın circuit combinat¸ional. La un CLS, pe baza produsului cartezian ˆıntre cuvˆ antul X(t) aplicat pe intrare ¸si al st˘ arii prezente Q(t), circuitul combinat¸ional calculeaz˘ a cuvˆ antul ie¸sirii Y (t), relat¸ia

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

325

3.2, ¸si la fel, calculeaz˘ a starea urm˘ atoare Q + (t), relat¸ia 3.3. Dup˘ a ˆıntˆ arzierea ∆ cauzat˘ a de transferul pe liniile de react¸ie, starea urm˘ atoare Q + (t) devine noua stare prezent˘ a ˆın momentul (t + ∆), Q(t + ∆) = Q+ (t). S˘ a presupunem c˘ a la intrarea principal˘ a se aplic˘ a cuvˆ antul X 1 (t) ¸si starea prezent˘ a a circuitului este q1 (t) = zk−1 (t) . . . z1 (t)z0 (t). Pe baza produsului cartezian X1 (t) × q1 (t), pe circuitul combinat¸ional, se calculeaz˘ a cuvˆ antul de ie¸sire Y 1 (t) precum ¸si cuvˆ antul st˘ arii urm˘ atoare q1+ (t) = wk−1 (t) . . . w1 (t)w0 (t), iar dup˘ a ˆıntˆ arzierea ∆, de propagare pe liniile de react¸ie, starea urm˘ atoare devine starea prezent˘ a q 2 (t + ∆) = q1+ (t). Consider˘ am nemodificat cuvˆ antul de intrare X 1 (t + ∆) (= X1 (t)) din nou pe baza produsului cartezian X1 (t + ∆) × q2 (t + ∆) se calculeaz˘ a ie¸sirea Y2 (t + ∆) ¸si cuvˆ antul st˘ arii urm˘ atoare q2+ (t + ∆) care dup˘ a ˆıntˆ arzierea ∆ devine starea prezent˘ a a c˘ a acest proces q3 (t + 2∆) = q2+ (t + ∆) ¸si a¸sa mai departe!. Dar, aceasta ˆınseamn˘ de evoluit¸ie din stare ˆın stare (traseu), pentru acela¸si cuvˆ ant aplicat pe intrare, este infinit, adic˘ a circuitul nu se stabilizeaz˘ a ˆıntr-o anumit˘ a stare, denumit˘ a stare stabil˘ a. Condit¸ia ca o stare a circuitului s˘ a fie stabil˘ a se reduce la identitatea cuvˆ antului st˘ arii prezente q(t) cu cel al st˘ arii urm˘ atoare q + (t), calculat˘ a pe baza produsului cartezian X(t) × q(t), adic˘ a wi (t) = zi (t) pentru toate valorile i = 0, 1, 2, . . . , (k − 1). Pentru o anumit˘ a intrare aplicat˘ a cˆ and cuvˆ antul a ajuns ˆıntr-o stare stabil˘ a, adic˘ a nu se mai modific˘ a ˆın timp, circuitul poate fi considerat c˘ a evolueaz˘ a permanent din aceea¸si stare tot cu aceea¸si stare. Uneori variabilele w i (t) ale st˘ arii urm˘ atoare calculate sunt referite ca variabile de excitat¸ie, deoarece prin intermediul acestora circuitul este trecut ˆıntr-o alt˘ a stare. Exemplul 3.1 Pentru circuitul din Figura 3.2 s˘a se analizeze st˘arile stabile. Solut¸ie. Circuitul prezint˘ a o singur˘ a intrare x, o singur˘ a ie¸sire y, doi bit¸i pentru starea prezent˘ a, z1 , z0 , exprimat˘ a prin cuvˆ antul z = z1 z0 , ¸si doi bit¸i pentru starea urm˘ atoare calculat˘ a, w1 , w0 , (funct¸ii de excitat¸ie), exprimat˘ a prin cuvˆ antul w = w1 w0 . ˆIntˆ arzierile de propagare pe traseele port¸ilor logice ¸si pe conexiunea de react¸ie s-au concentrat ˆın dou˘ a valori de timp de ˆıntˆ arziere, ∆1 , ∆0 care s-au introdus pe liniile de react¸ie. Timpul de propagare pe o poart˘ a poate fi specificat ca fiind, de exemplu, ˆın intervalul 5 ÷ 10ns, deci chiar pentru trasee cu topologie identic˘ a, pentru calculul funct¸iilor de excitat¸ie w1 , w0 , timpii de ˆıntˆ arziere sunt ˆın general diferit¸i, ∆1 6= ∆0 . Din structura circuitului se deduc funct¸iile de excitat¸ie (tranzit¸ia circuitului), w1 , w0 ¸si funct¸ia de transfer intrare-ie¸sire y w 1 = x + z 1 z0 w 0 = x + z 1 z0 y = z 1 z0 + z 1 z0 Cu aceste relat¸ii pentru cele patru st˘ ari posibile ale circuitului, z1 z0 = 00, 01, 11, 10 ¸si cele dou˘ a valori ale variabilei de intrare x = 0, 1 se calculeaz˘ a valorile pentru w1 , w0 , care sunt prezentate ˆın primele dou˘ a tabele din Figura 3.2-b. ˆIn ultimul tabel din aceast˘ a figur˘ a, obt¸inut din cele dou˘ a tabele anterioare, sunt figurate pentru fiecare pereche a produsului cartezian, z1 z0 × x, format ˆıntre starea prezent˘ a ¸si intrarea aplicat˘ a, valorile calculate ale st˘ arii urm˘ atoare ¸si a ie¸sirii, w1 , w0 ; y. Cuvintele de cod ale st˘ arilor prezente sunt notate ˆın partea stˆ ang˘ a a tabelului, la ˆınceputul fiec˘ arei linii, iar valorile aplicate intr˘ arii sunt figurate la cap˘ atul superior al fiec˘ arei coloane din tabel. Din acest tabel, referit ca tabelul de evolut¸ie al st˘ arilor, se poate deduce de exemplu c˘ a: pentru starea prezent˘ a z 1 z0 = 11 ¸si intrarea aplicat˘ a x = 0 se calculeaz˘ a starea urm˘ atoare w1 w0 = 00 ¸si ie¸sirea y = 0, (00/0),

3.1. CIRCUITE LOGICE SECVENT ¸ IALE ASINCRONE

326

x

. . .

.. z0

a) x z

z1 1 z0 1

w

t0

0

w0

1 0

t0+ ∆

t

1

0

1

1

t

0 Stare : S

1 I

1 S

t

z1 1 z0 1 w1 1 w0 1

0 0 0 0

y 1

0 Stare : S

t0

1 0

1

01 0

1

01 1

1

01 01 /1 11/1

11 0

1

11 0

1

11 00/0

1

10 10 /1 11/1

1

t0+ ∆0 t0+ ∆1

w0

t0

t x

t

t

1 1

t t I

S

w1 w0/y

t0+ ∆

x 0 z1z0 00 00

11

01 01

11

1

1

1

z1z0 00

00

11

w1w0 00

11

11

11 00

11

S

I

S

10 10

11

00

00

11

Stare :

x 1 z

w

z1 1 z0 1 w1 1 w0 1 y 1

Stare :

0 0

t0

1 0

t0+ ∆0

1 1

t

t0+ ∆1

t

0

0

0

t

0

1

1

t t

0 0 S

t

0 I

I

S

t t0 t0+ ∆0 t0+ ∆1 x 0 1 1 1

x z1z0 0 00 00

1 11

11

z1z0 00 00 01 11

01 01

11

w1w0 00 11 11 11

11 00

11

10 10

11

x z1z0 0 00 00

1 11

01 01

z1z0 00 00 01

11

w1w0 00 11 11

11

11 00

11

Stare : S I I 00 00 01

S 11

10 10

11

d)

11 /0

0

t

0 I

10 0

w1

t

0

t0 t0+ ∆0 t0+ ∆1 t x 0 1 1 1

x 0 1 z1z0 00 00 /0 11/0

t

1

t

0

1 1

b)

1

w0 1

x 1 z1z0 0 1 00 0

10 1

0

w1 1

x 1 z

0

x0 z1z0 0 00 0

0

w

c)

1

w1

w1

∆1

y=z1z0+z1z0

w0=x+z1z0

w0

∆0

z1

w1=x+z1z0

y

Stare : S I I 00 00 10

S 11

e)

Figura 3.2 Analiza st˘ arilor stabile pentru un circuit CLS asincron: a) structur˘ a circuit; b) tabelul de evolut¸ie al st˘ arilor; c) analiza traseului obt¸inut 00 → 00 → 11 pentru cazul ∆1 = ∆2 = ∆; d) analiza traseului obt¸inut 00 →

00 → 01 → 11 pentru cazul ∆0 < ∆1 ; e) analiza traseului obt¸inut 00 → 00 → 10 → 11 pentru cazul ∆1 < ∆0 .

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

327

iar pentru aceea¸si stare prezent˘ a 11 dar cu intrarea aplicat˘ a x = 1, se calculeaz˘ a starea urm˘ atoare 11 ¸si y = 0, (11/0). Condit¸ia de stabilitate pentru o stare, w1 (t)w0 (t) ≡ z1 (t)z0 (t) impune ca pe fiecare linie din tabelul de evolut¸ie al st˘ arilor, corespunz˘ atoare unei st˘ ari prezente, s˘ a existe cel put¸in o stare urm˘ atoare calculat˘ a cu un cod identic cu cel al st˘ arii prezente. De exemplu, pe prima linie, corespunz˘ atoare st˘ arii prezente z1 z0 = 00, se genereaza 00/0 pentru x = 0 ¸si se genereaz˘ a 11/0 pentru x = 1, deci starea urm˘ atoare calculat˘ a w1 w0 = 00 este o stare stabil˘ a(circuitul r˘ amˆ ane tot ˆın starea prezent˘ a 00, respect˘ a condit¸ia 00 = 00); dar ˆın schimb starea urm˘ atoare calculat˘ a w1 w0 = 11 nu este o stare stabil˘ a, pentru starea prezent˘ a z1 z0 = 00, deoarece 11 6= 00 (circuitul nu r˘ amˆ ane ˆın starea prezent˘ a). St˘ arile urm˘ atoare calculate care sunt stabile, se evident¸iaz˘ a ˆın tabelul de evolut¸ie al st˘ arilor prin ˆıncercuire. Pe aceea¸si linie a tabelului pot exista mai multe st˘ ari stabile(ˆıncercuite), de exemplu la un tabel care are 2n coloane, acesta corespunde unui circuit cu n intr˘ ari principale, deci aceleia¸si st˘ ari prezente i se pot aplica 2n configurat¸ii de intrare. Tabelul de evolut¸ie al st˘ arilor este referit ca tabelul primitiv de evolut¸ie al st˘ arilor dac˘ a pe fiecare linie a sa exist˘ a doar o singur˘ a stare stabil˘ a (incercuit˘ a), cum este cazul acestui tabel analizat. De asemenea, cuvˆ antul care reprezint˘ a produsul cartezian Q × X este referit ca starea total˘ a a circuitului. O stare total˘ a este stabil˘ a dac˘ a la intersect¸ia corespunz˘ atoare a st˘ arii prezente ¸si a intr˘ arii aplicate, ˆın tabelul de evolut¸ie al st˘ arilor, este o stare urm˘ atoare calculat˘ a notat˘ a ˆıncercuit ¸si respectiv, este o stare total˘ a instabil˘ a pentru o stare urm˘ atoare calculat˘ a notat˘ a neˆıncercuit. Pentru acest circuit, din tabelul de evolut¸ie, rezult˘ a c˘ a exist˘ a patru st˘ ari totale stabile z1 z0 x = 000, 010, 111, 100 ¸si patru st˘ ari totale instabile 001, 011, 110, 101. La un circuit secvent¸ial asincron, avˆ and o stare prezent˘ a stabil˘ a prin aplicarea unui cuvˆ ant de intrare, evolut¸ia poate fi: tot ˆın aceea¸si stare stabil˘ a, ˆıntr-o alt˘ a stare stabil˘ a, ˆın una dintre mai multele st˘ ari stabile posibile (curs˘ a critic˘ a) sau o ciclare ˆıntre mai multe st˘ ari instabile (oscilator). Pentru circuitul din figur˘ a se vor analiza trei cazuri posibile de evolut¸ie a st˘ arilor cˆ and se afla ˆın starea total˘ a stabil˘ a z1 z0 x = 000 ¸si intrarea se modific˘ a de la 0 la 1. Pentru fiecare caz evolut¸ia st˘ arilor va fi reprezentat˘ a simultan prin trei modalit˘ a¸ti: diagrama de evolut¸ie ˆın timp a semnalelor, tabelul de evolut¸ie ˆın timp al st˘ arilor ¸si tabelul de evolut¸ie al st˘ arilor(notat¸iile S ¸si I indic˘ a pentru starea prezent˘ a atins˘ a c˘ a: este stabil˘ a, respectiv instabil˘ a). 1. ∆1 = ∆0 = ∆ Figura 3.2-c. (Propagarea semnalelor pe ambele conexiuni de react¸ie se realizeaz˘ a ˆın acela¸si timp ∆, iar propagarea pe partea combinat¸ional˘ a se face instantaneu, timp zero). Pentru z1 (t0 )z0 (t0 ) = 00 ¸si x(t0 ) = 1 se calculeaz˘ a, pe baza relat¸iilor anterioare, starea urm˘ atoare w1 (t0 )w0 (t0 ) = 11. Deci circuitul trece din starea stabil˘ a 00 ˆın starea instabil˘ a 00, z1 (t0 )z0 (t0 ) = 00 6= w1 (t0 )w0 (t0 ) = 11, ¸si r˘ amˆ ane ˆın aceast˘ a stare instabil˘ a pe durata ∆ dup˘ a care trece ˆın noua stare prezent˘ a de la momentul t0 +∆, z1 (t0 +∆)z0 (t0 +∆) = 11. ˆIn noua stare prezent˘ a se calculeaz˘ a starea urm˘ atoare care este w1 (t0 +∆)w0 (t0 +∆) = 11 ¸si pentru care este ˆındeplinita condit¸ia z1 (t0 +∆)z0 (t0 +∆) = 11 = w1 (t0 +∆)w0 (t0 +∆) = 11, ane ˆın aceast˘ a stare. Evolut¸ia deci noua stare prezent˘ a este o stare stabil˘ a, 11 , circuitul ramˆ a fost starea stabil˘ a 00 , starea instabil˘ a 00 ¸si apoi ˆın starea stabil˘ a 11 . 2. ∆0 < ∆1 , Figura 3.2-d. Aceast˘ a relat¸ie arat˘ a c˘ a bitul w0 al st˘ arii urm˘ atoare calculate se propag˘ a ˆın bitul z0 al st˘ arii prezente mai repede decˆ at bitul w1 ˆın z1 . ˆIn momentul t0 cˆ and x se modific˘ a din 0 ˆın 1 se trece din starea prezent˘ a stabil˘ a 00 ˆın starea instabil˘ a 00, z1 (t0 )z0 (t0 ) = 00 6= w1 (t0 )w0 (t0 ) = 11. Dup˘ a durata ∆0 noua stare prezent˘ a este z1 (t0 + ∆0 )z0 (t0 + ∆1 ) = 01 care pentru x = 1 genereaz˘ a w1 (t0 + ∆o )w0 (t0 + ∆0 ) = 11 6= 01, deci ¸si aceast˘ a stare prezent˘ a 01 este instabil˘ a. ˆIn momentul t0 + ∆1 ¸si bitul w1 se propag˘ a ˆın z1 iar noua stare prezent˘ a este z1 (t0 + ∆1 )z0 (t0 + ∆1 ) = 11 pentru x = 1 calculˆ and bit¸ii

328

3.1. CIRCUITE LOGICE SECVENT ¸ IALE ASINCRONE

st˘ arii urm˘ atoare rezult˘ a w1 (to + ∆1 )w0 (t + ∆1 ) = 11, deci starea prezent˘ a 11 este o stare a 00(la momentul t0 ), stabil˘ a. Evolut¸ia a fost starea stabil˘ a 00 , trecerea ˆın starea instabil˘ trecerea ˆın starea instabil˘ a 10(la momentul t0 + ∆0 ) ¸si ˆın final trecerea ˆın starea stabil˘ a 11 (la momentul t0 + ∆1 ). 3. ∆1 < ∆0, Figura 3.2-e. De data aceasta bitul w1 al st˘ arii urm˘ atoare calculate se propag˘ a ˆın bitul z1 al st˘ arii prezente ˆınaintea propag˘ arii bitului w0 ˆın z0 . Analiza evolut¸iei st˘ arilor se realizeaz˘ a similar ca la punctul 2 ¸si rezult˘ a o succesiune 00 → 00 → 10 → 11 . ˆIn concluzie acest circuit din starea total˘ a 000 poate trece ˆın starea total˘ a 001(ˆın funct¸ie

de valorile ˆıntˆ arzierilor ∆1 ¸si ∆0 ) prin una din urm˘ atoarele trei succesiuni:

00 → 00→

11 sau 00 → 00→ 01→ 11 sau 00 → 00→ 10→ 11 . Cursa pentru un circuit este

necritic˘ a dac˘ a pornind dintr-o stare, pe oricare traseu, se ajunge ˆın final ˆın aceea¸si stare total˘ a stabil˘ a, cum este ˆın cazul analizat. ˆIn opozit¸ie, un circuit prezint˘ a o curs˘ a critic˘ a dac˘ a din aceea¸si stare total˘ a init¸ial˘ a se ajunge ˆın st˘ ari totale stabile diferite ˆın funct¸ie de traseul urmat. Condit¸ia de curs˘ a critic˘ a pentru un circuit asincron poate aparea cˆ and dou˘ a sau mai multe din variabilele binare de stare zi ˆı¸si schimb˘ a valoarea la o modificare ˆın cuvˆ antul de intrare X(t). ˆIn consecint¸a ˘, printr-o judicioas˘ a codificare a st˘ arilor circuitului, ˆın tabelul de evolut¸ie al st˘ arilor, se poate realiza un circuit f˘ ar˘ a curse critice. La un circuit f˘ ar˘ a curse critice trebuie ca pe traseul de evolut¸ie al st˘ arilor ˆın fiecare moment de trecere de la o stare instabil˘ a la o alt˘ a stare instabil˘ a, s˘ a se modifice doar un singur bit ˆın cuvˆ antul st˘ arii calculate. Poate exista ¸si cazul cˆ and evolut¸ia st˘ arilor este pe un traseu ciclic format numai pe st˘ ari instabile ceea ce determin˘ a o funct¸ionare de oscilator pentru circuit. Dar s˘ a analiz˘ am un astfel de regim ˆın Exemplul 3.2. Analiza ¸si sinteza circuitelor secvent¸iale asincrone este destul de dificil˘ a dac˘ a nu se introduc anumite restrict¸ii. ˆIn acest sens, ˆın primul rˆ and se admite c˘ a ˆın configurat¸ia de intrare X(t) la un moment dat se modific˘ a doar un singur bit. S ¸ i ˆın al doilea rˆ and, se consider˘ a c˘ a o modificare a semnalului de intrare nu are loc pˆ an˘ a cˆ and circuitul nu a ajuns ˆıntr-o stare stabil˘ a. Un circuit secvent¸ial asincron care respect˘ a aceste dou˘ a restrict¸ii este referit ca circuit ce funct¸ioneaz˘ a ˆın mod fundamental.

Exemplul 3.2 S˘a se analizeze funct¸ionarea circuitelor secvent¸iale asincrone realizate numai cu inversoare ˆınseriate. Solut¸ie. Se disting dou˘ a structuri cu num˘ ar impar ¸si num˘ ar par de inversoare ˆınseriate. a) ˆIn Figura 3.3-a este prezentat un circuit secvent¸ial asincron realizat printr-o leg˘ atur˘ a de react¸ie la o poart˘ a NAND2. Pentru intrarea x = 1 poarta NAND2 are o funct¸ionare de inversor w = z. Din tabelul de evolut¸ie al st˘ arilor, Figura 3.3-b, se observ˘ a c˘ a pentru coloana x = 1 nu exist˘ a nici o stare stabil˘ a. Pentru starea prezent˘ a z = 0 ¸si intrarea x = 1 se calculeaz˘ a starea urm˘ atoare w = 1 care genereaz˘ a o tranzit¸ie, w → z = 1, pe linia a doua a tabelului, unde pentru starea prezent˘ a z = 1 ¸si intrarea x = 1 se calculeaz˘ a starea urm˘ atoare w = 0 care genereaz˘ a o tranzit¸ie, w → z = 0, pe linia ˆıntˆ aia a tabelului, unde pentru starea prezent˘ a z = 0 ¸si intrarea x = 1 se calculeaz˘ a starea urm˘ atoare w = 1 care genereaz˘ a o tranzit¸ie w → z = 1 pe linia a doua a tabelului ¸si procesul se repet˘ a, adic˘ a trece ˆıncontinuu ˆıntre st˘ arile instable z = 0 ¸si z = 1. Pe baza schemei echivalente, ca CLS asincron Huffman, din Figura 3.3-a, se pot reprezenta semnalele z ¸si w,Figura 3.3-c, considerˆ and inversorul cu timp de transfer zero iar timpii s˘ ai de propagare τpHL ¸si τpLH sunt introdu¸si ca ˆıntˆ arzieri pe leg˘ atura de react¸ie. Pentru x = 0 modific˘ arile st˘ arii prezente z nu se transmit prin poarta

329

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

x z

CLC w

pt x=1

z

τpHL τpLH

a) x

c)

x 0 0 1 1

w b)

z 0 1 0 1

xz =w 1 1 1 0

x

z 0 0 1 1 1

1

1 1 0

t

w 1 z

1

τpHL

τpLH

τpHL

τpLH

τpHL

τpLH

T= τphl + τplh

Figura 3.3 CLS asincron realizat prin ˆınserierea unui num˘ ar impar de inversoare: a) structur˘ a realizat˘ a pe baza unei singure port¸i NAND2; b) tabelul de evolut¸ie al st˘ arilor; c) variat¸ia ˆın timp a semnalelor generate. NAND2, w este permanent 1, dar pentru x = 1 starea prezent˘ a z se transmite prin poart˘ a ar). Pentru starea prezent˘ a z = 1 ¸si cu valoarea complementat˘ a, w = z (vezi tabelul de adev˘ x = 1 se calculeaz˘ a instantaneu starea urm˘ atoare w = 0 care devine stare prezent˘ a z = 0, dup˘ a ˆıntˆ arzierea τpHL , pe baza c˘ aruia se calculeaz˘ a noua stare urm˘ atoare w = 1 care devine stare prezent˘ a z = 1 dup˘ a ˆıntˆ arzierea τpLH ¸si procesul se repet˘ a. Deci circuitul are funct¸ionare de generator de semnal dreptunghiular cu perioada T = τpHL + τpLH . Functia de generator de semnal dreptunghiular o are orice CLS asincron la care partea combinat¸ional˘ a este o ˆınseriere a unui num˘ ar impar n de inversoare, perioada semnalului generat fiind T = n(τpHL + τpLH ) vezi Exemplul 1.17.

x0 x1 z a)

pt x1x0=11

CLC z

w

b)

x1x0 z 00 01 11 10

x τpHL, τpLH

τpLH, τpHL

1 1 0 0 1

c)

0 1 0 1 1

Figura 3.4 CLS asincron realizat prin ˆınserierea unui num˘ ar par de inversoare: a) structur˘ a realizat˘ a pe baza a dou˘ a port¸i NAND2; b) structur˘ a echivalent˘ a ca CLS Huffman; c) tabelul de evolut¸ie al st˘ arilor. b) ˆIn Figura 3.4-a este prezent˘ a o structur˘ a de CLS asincron realizat prin ˆınserarea a dou˘ a port¸i NAND2, iar pentru cuvˆ antul de intrare x1 x0 = 11 fiecare poart˘ a este echivalent˘ a cu un arei valori sunt inversor, Figura 3.4-b. Funct¸ia de tranzit¸ie este w = zx1 · x0 = zx1 + x0 ale c˘ trecute ˆın tabelul de evolut¸ie al st˘ arilor din Figura 3.4-c. Pentru coloana x1 x0 = 11 se observ˘ a c˘ a atˆ at starea z = 0 cˆ at ¸si starea z = 1 sunt stabile, adic˘ a starea urm˘ atoare calculat˘ a w este identic˘ a cu starea prezent˘ a ¸si se tranfer˘ a ˆın stare prezent˘ a dup˘ a ˆıntˆ arzierea ∆ = τpHL + τpLH . Din acest tabel se observ˘ a c˘ a pentru toate combinat¸iile de intrare x1 x0 = 00, 01, 11, 10 exist˘ a st˘ ari stabile pentru circuit(o discut¸ie necesit˘ a cazul cˆ and x1 x0 = 00, vezi sect¸iunea 3.3.1).

330

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

Se poate generaliza aceast˘ a afirmat¸ie, un CLS asincron compus prin ˆınserierea unui num˘ ar par de inversoare are pentru fiecare cuvˆ ant de intrare cel put¸in o stare stabil˘ a.

3.2

CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

,, La un circuit logic secvent¸ial asincron variabila timp “curge continuu, exist˘ a incontinuu transfer de la ie¸sire spre intrare, pe calea de react¸ie, deci o evolut¸ie dintr-o stare ˆın alta(chiar ¸si cˆ and este ˆıntr-o stare total˘ a stabil˘ a se poate considera c˘ a circuitul evolueaz˘ a incontinuu din acea stare tot ˆın acea stare). Spre deosebire de circuitul ,, asincron, la un circuit logic secvent¸ial sincron variabila timp are o “curgere discret˘ a, trecerea/tranzit¸ia dintr-o stare ˆın urm˘ atoarea se face numai ˆın momentele bine definite de c˘ atre semnalul de ceas/clock. Semnalul de ceas (clock) este un semnal dreptunghiular periodic care comut˘ a ˆıntre L ¸si H ¸si invers cu un coeficient de umplere ≤ 50%, Figura 3.5, simbolizat ˆın circuite prin abreviat¸ia CLK. Comutarea repetat˘ a ˆıntre L ¸si H este utilizat˘ a pentru a marca timpul, unitatea de timp fiind perioada T a acestui semnal; un moment pe scara timpului se marcheaz˘ a doar printr-un multiplu de perioad˘ a de clock: . . . , iT, (i + 1)T, (i + 2)T, . . .. Ceasul ˆın circuitele sincrone poate act¸iona pentru marcarea timpului prin unul din palierele sale, referit ca palier activ. De exemplu, marcarea timpului pe palierul activ H este reprezentat˘ a ˆın Figura 3.5-a, iar marcarea timpului cu frontul activ cresc˘ ator/ anterior/ pozitiv sau cu frontul activ descresc˘ ator/posterior/negativ este reprezentat˘ a respectiv ˆın Figura 3.5-b ¸si 3.5-c. Marcarea pe palier(=interval) se face ˆıntr-un mod mai grosier, pe cˆ and marcarea pe front este un mod foarte precis.

τSU CLK

CLK iT

a)

CLK iT

(i+1)T b)

(i+1)T

CLK iT

c)

(i+1)T d)

τΗ

iT ∆

Figura 3.5 Semnale de ceas pentru sincronizare pe: a) pe palier; b,c) pe frontul pozitiv/crec˘ ator respectiv negativ/descresc˘ ator; d) fereastra de decizie ∆ = τ SU + τH axat˘ a pe frontul de sincronizare, pe durata c˘ aruia semnalul de sincronizat nu trebuie s˘ a ˆı¸si modifice valoare.

3.2.1

Sincronizarea semnalelor asincrone

ˆInainte de prezentarea CLS sincrone se va analiza modul ˆın care un semnal este sincronizat. Prin sincronizarea unui semnal se ˆınt¸elege aducerea acelui semnal ˆın ,, “acela¸si timp cu semnalul de ceas. Aceasta ˆınseamn˘ a c˘ a semnalul asincron este citit/e¸santionat ¸si ˆınscris ˆıntr-un element de memorare numai ˆın momentele discrete dictate de semnalul de ceas. Dar care va fi valoarea citit˘ a pentru un semnal asincron

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

331

cˆ and sincronizarea se face pe palier? dificil de spus deoarece semnalul fiind cu variat¸ia ,, ,, asincron˘ a poate s˘ a ˆı¸si modifice valoarea ˆıntre “0 ¸si “1 de nenum˘ arate ori pe durata palierului impulsului de ceas; ˆın aceast˘ a situat¸ie ˆın elementul de memorare se va ˆınscrie valoarea pe care o are semnalul asincron pe frontul de sfˆ arsit al palierului activ. Evident c˘ a, pentru a face o citire corect˘ a trebuie s˘ a se impun˘ a ca semnalul s˘ a nu se modifice pe durata palierului. La e¸santionarea pe front, consideˆ and c˘ a panta acestuia este infint˘ a(durata frontului τf = 0), condit¸ia de a se ment¸ine nemodificat semnalul asincron doar ˆıntr-un singur punct este mai usor de ˆındeplinit. Dar ¸si la sincronizarea pe front se impune ca semnalul asincron s˘ a nu ˆı¸si modifice valoarea pe un interval de timp de prestabilire τSU (set-up) ˆınainte de front ¸si apoi pe ˆınc˘ a un interval de timp de ment¸inere τH (hold) dup˘ a front, relat¸ia 3.23; deci nici o modificare pe l˘ a¸timea unei ferestre(de decizie) cu l˘ a¸timea ∆ = τSU + τH axat˘ a pe frontul semnalului de ceas, Figura 3.5-d. Aceast˘ a restrict¸ie de nemodificare pe intervalul ∆ este impus˘ a de c˘ atre funct¸ionarea elementului fizic – bistabilul – care realizeaz˘ a citirea ¸si memorarea semnalului asincron. Bistabilul(a se vedea Figura 3.5-d) la o modificare a semnalului asincron(de sincronizat) ˆın intervalul ∆, poate memora fie valoarea logic˘ a 1, fie valoarea logic˘ a 0, deci nu se poate controla valoarea care se ˆınscrie(funct¸ionare nedeterminist˘ a). Teoretic, aceste restrict¸ii de nemodificare ˆın momentul e¸santion˘ arii duc la afirmat¸ia c˘ a un semnal asincron (fiind asincron poate s˘ a se modifice oricˆ and) nu poate fi sincronizat corect. Din analiza cazurilor urm˘ atoare se va vedea cˆ and aceast˘ a concluzie este corect˘ a ¸si cˆ and nu. Se consider˘ a cazul cˆ and trei semnale asincrone A = 0, B = 0, C = 1 sunt e¸santionate simultan dar numai semnalul C ˆı¸si modific˘ a valoarea de la 1 la 0 ˆın fereastra de decizie ∆, centrat˘ a pe frontul pozitiv de ceas de la momentul iT, Figura 3.6-a. Dup˘ a frontul pozitiv de sincronizare se memoreaz˘ a fie cuvˆ antul ABC = 001 fie cuvˆ antul ABC = 000, dar ambele cuvinte sunt corecte deoarece oricare dintre acestea sunt generate de c˘ atre sursa cuvˆ antulului ABC. Dac˘ a la frontul iT se obt¸ine cuvˆ antul ABC = 001 la urm˘ atorul front de sincronizare (i + 1)T , considerˆ and c˘ a semnalul C ˆı¸si p˘ astreaz˘ a nemodificat˘ a noua valoare 0, se memoreaz˘ a valoarea corect˘ a, adic˘ a ABC = 000. Deci necitirea corect˘ a la momentul iT poate fi privit˘ a ca o ˆıntˆ arziere a sincroniz˘ arii cu un tact a cuvˆ antului ABC = 000. Cazul cˆ and pentru cele trei semnale asincrone, ˆın fereastra de decizie de pe frontul pozitiv al semnalului de ceas de la momentul iT, se modific˘ a dou˘ a dintre semnale, C de la 1 la 0 ¸si B de la 0 la 1, este reprezentat ˆın Figura 3.6-b. Dup˘ a frontul pozitiv de sincronizare se pot memora unul din urm˘ atoarele patru cuvinte ABC = 001, 010, 000, 011, iar dup˘ a al (i+1)T front de sincronizare, dac˘ a nu mai apar modific˘ ari, cu ˆıntˆ arziere de un tact se obt¸ine cuvˆ antul corect ABC = 010. Deci ˆın intervalul dintre iT ¸si (i+1)T, datorit˘ a indeciziei semnalului citit, pot ap˘ area ¸si cuvintele ABC = 000 ¸si ABC = 011 care sunt incorecte deoarece sursa nu a generat aceste cuvinte ci doar cuvintele 001 ¸si 010. Deci la modificarea a doi sau mai mult¸i bit¸i, sincronizarea nu poate fi sigur˘ a. ˆIn concluzie pentru sincronizarea corect˘ a a unui grup(cuvˆ ant) de semnale asincrone este necesar˘ a respectarea restrict¸iei ca la un moment dat s˘ a se modifice doar un singur semnal. Cazul particular cˆ and aceste semnale se obt¸in ca un cuvˆ ant de la un CLC cu ie¸siri multiple, posibil ˆınc˘ arcate cu hazard, pentru o sincronizare corect˘ a este necesar s˘ a se a¸stepte pˆ an˘ a se consum˘ a timpul de propagare pentru producerea acestor semnale. Dac˘ a pentru un grup de semnale cˆ and sunt sincronizate se consider˘ a fiecare

332

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

A 1 0 1 B 0 1 C 0

t t

τSU τ

t

τSU τ

H

H

CLK a)

A=0 B=0 C=1

iT ∆

corect A1 0 1 B 0 1 C 0

(i+1)T

A=0 A=0 B=0 sau B=0 C=0 C=1



corect

corect

t t t

τSU τ

τSU τ

H

H

b)

A=0 B=0 C=0

CLK A=0 B=0 C=1

iT ∆

A=0 A=0 A=0 A=0 B=0 sau B=1 sau B=0 sau B=1 C=1 C=0 C=1 C=0 corect

corect

incorect

incorect

(i+1)T ∆

A=0 B=1 C=0 corect

Figura 3.6 Sincronizarea(memorarea) semnalelor asincrone: a) ˆınscrierea corect˘ a a unui cuvˆ ant cˆ and se modific˘ a doar un singur bit; b) posibilitatea de ˆınscriere incorect˘ a cˆ and se modific˘ a mai mult de un singur bit ˆın fereastra de decizie ∆. semnal cu semnificat¸ie individual˘ a, deci nu o semnificat¸ie ˆın grup/ˆın cuvˆ ant, atunci sincronizarea fiec˘ aruia ˆın parte este corect˘ a ˆın oricare moment de timp. Pe cˆ and la un grup de semnale asincrone care se constituie ˆıntr-un cuvˆ ant de cod, codul exprimat de acel cuvˆ ant depinde de valoarea tuturor semnalelor din acel cuvˆ ant ¸si nu doar de unul singur, sincronizarea corect˘ a este imposibil˘ a.

3.2.2

Automate finite: structur˘ a, definit¸ii, clasific˘ ari

Structura de principiu a unui CLS sincron se obt¸ine din cea a unui CLS asincron, Figura 3.1, ˆın care elementele de ˆıntˆ arziere ∆ i sunt substituite cu elemente de memorare/(registru de stare) ca ˆın Figura 3.7-a (Registrul de stare este un circuit registru prezentat ˆın sect¸iunea 3.5. Registrul este un circuit de memorare ˆın care se poate ˆınscrie un cuvˆ ant binar numai la aplicarea unui semnal de ˆınc˘ arcare/ˆınscriere, momentan consider˘ am c˘ a semnalul de ˆınc˘ arcare este semnalul de ceas. Dup˘ a ˆınscriere, cuvˆ antul este permanent generat la ie¸sirea registrului ¸si poate fi utilizat ca intrare la alte circuite.) Bit¸ii wi calculat¸i ai funct¸iei de excitat¸ie, cuvˆ antul st˘ arii urm˘ atoare, vor fi ˆınscri¸si ˆın registrul de stare numai ˆın momentele de aplicare ale fronturilor active(pozitive)

333

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

X(iT)

CLC

Z(iT)

Y(iT)=f(X(iT),Z(iT))

Y(iT)

W(iT)=g(X(iT),Z(iT))

Q(iT)

Y(iT)

CLC

+

Q (iT)

Y(i+1)T:=Y(iT)

Registru

+

Q((i+1)T):=Q (iT)

+

Q((i+1)T):=Q (iT)

Registru de stare CLK

CLK

a)

c) T

T q(i−1)T

iT

(i+1)T

Timp de stare,q(iT) Perioada tranzitorie

Perioada stabila W(iT)=g[x(iT),Z(iT)]

Timp de stare,q((i+1)T)

Perioada tranzitorie

Y(iT)=f[x(iT),Z(iT)]

(i+2)T q((i+2)T)

Perioada stabila W((i+1)T)=g[X(i+1)T,Z(i+1)T] W((i+1)T)=f[X(i+1)T,Z(i+1)T]

b) x(iT)

w(iT)

y(iT)

x((i+1)T)

w((i+1)T) y((i+1)T)

x((i+2)T)

Z(iT):=W((i−1)T)

Z((i+1)T):=W(iT)

Z((i+2)T):=W((i+1)T)

Y(iT):=Y((i−1)T)

Y((i+1)T):=Y(iT)

Y((i+2)T):=Y((i+1)T)

Figura 3.7 Circuitul secvent¸ial sincron: a) structur˘ a de principiu; b) succesiunea ˆın timp a operat¸iilor de transfer f ¸si de tranzit¸ie g; c) structura de principiu pentru CLS sincron cu ie¸sirea ˆınˆ arziat˘ a. din semnalul de ceas . . . , (i − 1)T, iT, (i + 1)T, . . .. Odata ˆınscri¸si bit¸ii st˘ arii urm˘ atoare ˆın momentul iT , ˆın registrul de stare, ace¸stia vor devenii bit¸ii st˘ arii prezente Z(iT ). Pe baza st˘ arii prezente Z(iT ) ¸si intr˘ arii X(iT ) (se consider˘ a c˘ a intrarea este sincronizat˘ a cu acela¸si semnal de ceas ca ¸si bit¸ii st˘ arii prezente) se va calcula transferul intrare ie¸sire ¸si funct¸ia de excitat¸ie pentru starea urm˘ atoare, Y (iT ) = f [X(iT ), Z(iT )] W (iT ) = g[X(iT ), Z(iT )]

(3.6)

La urm˘ atorul impuls de ceas (i + 1)T , bit¸ii calculat¸i W (iT ) ai st˘ arii urm˘ atoare q + (iT ) sunt ˆınscri¸si ˆın registrul de stare ¸si devin bit¸ii Z((i+1)T ) ai st˘ arii prezente q((i+1)T ). Din nou, pe baza st˘ arii prezente q((i+1)T ) ¸si a intr˘ arii X((i+1)T ) se calculeaz˘ a dup˘ a relat¸iile 3.6, ie¸sirea Y ((i + 1)T ) ¸si bit¸ii funct¸iei de excitat¸ie W ((i + 1)T ) care ˆınscri¸si ˆın registrul de stare, la momentul (i + 2)T , devin bit¸ii Z((i + 2)T ) ai st˘ arii prezente q((i + 2)T ). Se observ˘ a c˘ a asignarea st˘ arii urm˘ atoare calculate Q + (iT ), reprezentat˘ a

334

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

prin bit¸ii funct¸iei de excitat¸ie W (iT ), ˆın stare prezent˘ a Q((i + 1)T ) se face numai ˆın momentul (i + 1)T prin ˆınscrierea ˆın registrul de stare Q((i + 1)T ) := Q + (iT ). Numai ˆın momentul aplic˘ arii frontului activ al semnalului de ceas, pentru ˆınscrierea ˆın registrul de stare, se poate considera c˘ a bucla este ˆınchis˘ a ˆın restul intrevalului de timp, pˆ an˘ a la aplicarea urm˘ atorului front activ al impulsului de ceas, bucla este deschis˘ a. Deci, nu exist˘ a un transfer continuu a st˘ arii urm˘ atoare calculat˘ a Q+ ˆ ˆın stare prezent˘ a Q pe leg˘ atura de react¸ie ca la CLS asincron. In intervalul de timp dintre dou˘ a fronturi active ale semnalului de ceas, circuitul poate fi privit ca un circuit combinat¸ional, care pe baza cuvintelor de intrare X(iT ) ¸si Z(iT ) calculeaz˘ a ie¸sirile Y (iT ) ¸si W (iT ). Inexistent¸a unui transfer continuu pe conexiunea de react¸ie, cu except¸ia momentelor aplic˘ arii fronturilor active ale semnalelor de ceas, ˆıi confer˘ a CLS-ului asincron o funct¸ionare de circuit deschis care totdeauna este stabil, adic˘ a trece dintr-o stare stabil˘ a ˆın alt˘ a stare stabil˘ a. Transferurile ˆıntre dou˘ a impulsuri succesive de ceas, pe partea combinat¸ional˘ aa circuitului secvent¸ial sincron sunt prezentate ˆın Figura 3.7-b. Din momentul aplic˘ arii impulsului de ceas iT se calculeaz˘ a, pe partea combinat¸ional˘ a, W (iT ) ¸si Y (iT ), dar bit¸ii acestor configurat¸ii calculate pot fi afectat¸i de hazard datorit˘ a parcurgerii unui num˘ ar diferit de niveluri logice, deci citirea lor trebuie facut˘ a numai dup˘ a consumarea regimului tranzitoriu. Asignarea st˘ arii prezente Q((i+1)T ) := Q + (iT ) ¸si citirea ie¸sirii Y (iT ) sunt corecte numai ˆın perioada de regim stabilizat. Aplicarea urm˘ atorului impuls de ceas nu trebuie s˘ a fie mai devreme de consumarea regimului tranzitoriu, deci frecvent¸a maxim˘ a a semnalului de ceas cu care se poate comanda CLS-ul se determin˘ a cu relat¸ia: fmax =

1 Tmin

=

1 τpmaxCLC + τpBQ + τSU Q

(3.7)

ˆın care: τpmaxCLC - timpul de propagare maxim pe circuitul combinat¸ional(care determin˘ a durata regimului tranzitoriu, afectat de hazard). τpBQ - timpul de propagare pe registrul(bistabilul) de stare. τSUQ - timpul de prestabilire (figura 3.5-d). Bit¸ii calculat¸i w i ai st˘ arii urm˘ atoare ¸si aplicat¸i pe intrarea registrului de stare trebuie s˘ a nu se modifice cu cel put¸in τSU ˆınainte de aplicarea frontului activ de ceas. De foarte multe ori, la fel ca ¸si bit¸ii calculat¸i W (iT ) ai st˘ arii urm˘ atoare ¸si bit¸ii calculat¸i Y (iT ) ai cuvˆ antului de ie¸sire ˆınainte de a fi disponibili la ie¸sire sunt memorat¸i (ˆınscri¸si ˆıntr-un registru de ie¸sire), Figura 3.7-c. Deci, bit¸ii Y (iT ) calculat¸i pentru impulsul de ceas iT vor fi disponibili la ie¸sire la urm˘ atorul impuls de ceas (i + 1)T numai dup˘ a ce au fost ˆınscri¸si ˆın registru, Y ((i+1)T ) := Y (iT ). Un astfel de CLS este referit cu ˆıntˆ arziere ˆın contrast cu cel f˘ ar˘ a registru care este referit CLS imediat. La un CLS sincron imediat ie¸sirea depinde de starea curent˘ a. Modificarea intr˘ arii se simte la ie¸sire pe durata st˘ arii prezente. Ie¸sirea poate fi afectat˘ a de hazard, deci trebuie citit˘ a doar dup˘ a consumarea regimului tranzitoriu. CLS sincron cu ˆıntˆ arziere are ie¸sirea dependent˘ a de starea anterioar˘ a(corespunz˘ atoare ciclului anterior de ceas). Deoarece se presupune c˘ a bit¸ii de ie¸sire au fost ˆınscri¸si ˆın registrul de ie¸sire dup˘ a

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

335

consumarea regimului tranzitoriu, ie¸sirea ˆıntˆ arziat˘ a nu este afectat˘ a de hazard. Deci ,, la un circuit cu ˆıntˆ arziere o modificare a intr˘ arii X(iT ) se va “simt¸ii la ie¸sire numai dup˘ a frontul activ de ceas (i + 1)T , adic˘ a cu o ˆıntˆ arziere de un tact. Structura de CLS sincron care cont¸ine ˆın bucla de react¸ie un circuit de memorare/registru, care la rˆ andul s˘ au constituie un CLS, este referit˘ a prin termenul de automat (finit) sau cu abreviat¸ia FSM (Finite State Machine). ˆIn continuare se vor prezenta succint doar acele definit¸ii ¸si clasific˘ ari ale automatelor [Creang˘ a 0 73][S¸tefan 0 00] [Maican 0 99] care vor fi utilizate ˆın aceast˘ a lucrare. Definit¸ia unui automat finit A este similar˘ a cu cea data prin relat¸ia 3.5 pentru un CLS asincron cu deosebirea c˘ a timpul nu mai este o variabil˘ a continu˘ a ci discret˘ a, multiplu de perioada semnalului de ceas, iT , adic˘ a variabilele circuitului sunt e¸santionate dar pe fronturile active A = (X, Y, Q, f, g)

(3.8)

Definit¸ia 3.1 Dac˘ a pentru oricare configurat¸ie de intrare ¸si de stare prezent˘ a, funct¸iile de transfer, f , ¸si de tranzit¸ie, g, au cardinalul unitate(cont¸ine un singur element), atunci automatul este determinist, altfel este nedeterminist  ∀q ∈ Q, ∀x ∈ X, |f (q, x)| = 1, |g(q, x)| = 1

(3.9)

La un automat determinist din starea prezent˘ a ¸si pentru intrarea aplicat˘ a se cunoa¸ste exact ie¸sirea precum ¸si starea pentru tactul urm˘ ator, pe cˆ and la unul nedeterminist, starea urm˘ atoare ¸si ie¸sirea sunt cunoscute doar ca elemente care apart¸in P ∗ (Q), respectiv P ∗ (Y ) (vezi relat¸ia 3.4).

Definit¸ia 3.2 Un automat A este finit dac˘ a cele trei mult¸imi X, Y ¸si Q sunt finite.  Este necesar a se evident¸ia faptul c˘ a un automat cu un num˘ ar finit de st˘ ari poate prelucra ¸siruri infinite aplicate pe intrare, definite pe mult¸imea finit˘ a X, ¸si poate genera la ie¸sire ¸siruri infinite, definite pe mult¸imea finit˘ a Y. Definit¸ia 3.3 Un automat A autonom, sau orologiu, este un automat la care mult¸imea finit˘ a a intr˘ arilor are cardinalul unitate |X| = 1  Pentru automatul autonom, mult¸imea configurat¸iilor de intrare este permanent aceea¸si ceea ce d˘ a automatului o comportare independent˘ a de exterior, vezi Exemplul 3.2. Automatul genereaz˘ a variat¸ii la ie¸sire f˘ ar˘ a s˘ a se modifice configurat¸ia de intrare. Definit¸ia 3.4 O evolut¸ie/traiectorie a automatului A este un ¸sir de st˘ ari ˆınl˘ ant¸uite q0 → q1 → . . . → qi → qi+1 → . . ., iar starea q0 este starea init¸ial˘ a a evolut¸iei. O evolut¸ie cu proprietatea: ∀qi ∈ Q, ∃Xi ∈ X, qi+1 ∈ g(qi , Xi )

(3.10)

este o evolut¸ie admisibil˘ a  Definit¸ia 3.5 Totalitatea st˘ arilor din care poate porni automatul este mult¸imea st˘ arilor init¸iale Q0 , Q0 ⊂ Q  ˆIn funct¸ie de cardinalul mult¸imii Q0 automatele pot fi:

336

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

- automat cu o singur˘ a stare init¸ial˘ a Q0 ∈ Q, |Q0 | = 1 - automat cu mai multe st˘ ari init¸iale Q0 ∈ Q, |Q0 | > 1 - automat neinit¸ial(toate st˘ arile pot fi init¸iale), Q 0 = Q ˆIntr-o stare init¸ial˘ a nu se ajunge printr-o evolut¸ie generat˘ a de configurat¸ii din mult¸imea semnalelor de intrare X ci printr-o alt˘ a comand˘ a exterioar˘ a, de exemplu printr-o comand˘ a de init¸ializare/reset sau prin conectarea la tensiune se genereaz˘ a starea init¸ial˘ a. Definit¸ia 3.6 O stare a automatului este considerat˘ a inaccesibil˘ a dac˘ a oricare traiectorie ˆın spat¸iul st˘ arilor ce porne¸ste din st˘ ari init¸iale nu o cont¸ine.  Evident, se poate vorbi de st˘ ari inaccesibile numai ˆın cazul automatelor init¸iale |Q0 | ≥ 1. De exemplu, dac˘ a pentru un automat cu trei bit¸i de stare z 2 z1 z0 pot exista opt st˘ ari q0 , q1 , q2 , q3 , q4 , q5 , q6 , q7 , q8 , dar sunt definite numai cinci st˘ ari, q0 ÷ q4 , ˆın funct¸ionarea automatului atunci cele trei st˘ ari, q 5 , q6 , ¸si q7 sunt inaccesibile. Definit¸ia 3.7 Dou˘ a st˘ ari qi ¸si qj sunt echivalente qi ∼ qj dac˘ a pentru oricare configurat¸ie de intrare aplicat˘ a X se genereaz˘ a acelea¸si ie¸siri, iar st˘ arile urm˘ atoare qi+1 = g(qi , X), qj+1 = g(qj , X) sunt identice sau echivalente. f (qi , X) = f (qj , X); g(qi , X) ∼ g(qj , X)

(3.11)



ˆIn etapa de definire a funct¸ion˘ arii unui automat se poate introduce informat¸ie redundant˘ a care duce la un num˘ ar total de st˘ ari mai mare decˆ at num˘ arul de st˘ ari care poate descrie funct¸ionarea automatului. Dac˘ a un grup de st˘ ari se demonstreaz˘ a c˘ a sunt echivalente, toate st˘ arile acelui grup sunt substituite printr-o singur˘ a stare, astfel reducˆ andu-se num˘ arul total de st˘ ari ale automatului. Definit¸ia 3.8

Un semiautomat, SA, este definit prin tripletul: SA = (X, Q, g)



(3.12)

Prin not¸iunea de semiautomat se identific˘ a ˆın cadrul unui automat numai acea parte care este responsabil˘ a pentru generarea st˘ arii interne. Structural, semiautomatul se obt¸ine prin eliminarea din structura automatului a part¸ii care calculeaz˘ a funct¸ia de transfer, f . Pentru cele patru organiz˘ ari de automate reprezentate ˆın Figura 3.8 sunt delimitate structurile care formeaz˘ a semiautomatul, SA. Semiautomatul este format din partea de circuit combinat¸ional, CLC1, care calculeaz˘ a funct¸ia g ¸si registrul din calea de react¸ie. Unui semiautomat i se pot ata¸sa diferite p˘ art¸i combinat¸ionale, CLC2, pentru diferite funct¸ii f , deci pe baza unui semiautomat se pot realiza mai multe automate. Dar ¸si unui automat i se pot asocia diferite semiautomate. ˆIn proiectarea unui automat se porne¸ste de la definirea funct¸ion˘ arii automatului adic˘ a de la descrierea funct¸iei de transfer intrare-ie¸sire. Deoarece transferul intrare,, ie¸sire este dat, proiectantului ˆıi r˘ amˆ ane “spat¸iu de manevr˘ a doar ˆın proiectarea ¸si optimizarea semiautomatului. ˆIn funct¸ie de modul cum se calculeaz˘ a funct¸ia de transfer f a automatului, exist˘ a dou˘ a tipuri de automate:Mealy ¸si Moore.

337

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS X(iT)

X(iT)

Y(iT)

CLC 2 f

CLC 2 f

SA Q(iT)

SA +

Q (iT)

CLC 1 g

Registru 1

Q(iT)

CLC 1 g

CLK

CLK a)

Q(iT)

+

Q (iT)

Y((i+1)T):=Y(iT)

Registru 2

Registru 1

+

Q(iT):=Q ((i−1)T)

+

Q(iT):=Q ((i−1)T)

X(iT)

Y(iT)

b) SA +

CLC 1 Q (iT) g

Reg 1

X(iT) CLC 2 Y((i+1)T) Q(iT) f

CLK

SA CLC 1 g

+

Q (iT)

Reg 1

CLC 2 f

Reg 2

CLK +

+

Q(iT):=Q ((i−1)T)

Q(iT):=Q ((i−1)T) Y((i+1)T):=f(Q(iT)) c)

Y((i+2)T):=f(Q(iT))

d)

Figura 3.8 Variante de automate Mealy ¸si Moore structurate pe baza unui semiautomat, SA: a,b) structurare fundamental˘ a pentru automatele Mealy imediat ¸si Mealy cu ˆıntˆ arziere; c,d) structurare fundamental˘ a pentru automatele Moore imediat ¸si Moore cu ˆıntˆ arziere. Definit¸ia 3.9

Un automat Mealy este definit prin cvintuplu A=(X,Y,Q,f,g)

cu: f : X× Q → Y g : X× Q → Q

(3.13)



La automatul Mealy parte combinat¸ional˘ a calculeaz˘ a atˆ at funct¸ia de transfer f cˆ at ¸si cea de tranzit¸ie g pe baza produsului cartezian X × Q. Definit¸ia 3.10

Un automat Moore este definit prin cvintuplu A(X,Y,Q,f,g)

cu: f :Q→Y g : X× Q → Q 

(3.14)

La automatul Moore funct¸ia de tranzit¸ie g se calculeaz˘ a la fel ca la automatul Mealy, pe baza produsului cartezian X× Q, pe cˆ and funct¸ia de transfer f este calculat˘ a doar pe baza st˘ arii prezente Q. Ie¸sirea automatului Moore este dependent˘ a de intrare doar prin intermediul tranzit¸iilor realizate ˆın spat¸iul st˘ arilor. Fiecare din aceste dou˘ a tipuri de automate poate fi realizat cu funct¸ionare imediat˘ a sau ˆıntˆ arziat˘ a, Figura 3.8. Automatul Mealy imediat, Figura 3.8-a. Se observ˘ a c˘ a structura acestui automat se obt¸ine prin completarea semiautomatului SA cu CLC2 care calculeaz˘ a ie¸sirea

338

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

Y (iT ) pe baza produsului cartezian dintre starea prezent˘ a ¸si intrarea prezent˘ a Y (iT ) = f (X(iT ), q(iT )) Ie¸sirea Y (iT ) citit˘ a ˆınainte de consumarea perioadei de regim tranzitoriu va fi afectat˘ a de hazard. Mai mult, dac˘ a intrarea nu este sincronizat˘ a,cum am considerat, ci se modific˘ a asincron oricˆ and ˆın intervalul iT ¸si (i + 1)T , aceste modific˘ ari se simt ˆın ie¸sire. Automatul Mealy cu ˆınˆ arziere, Figura 3.8-b. Completarea SA se face atˆ at cu circuitul CLC2 pentru calculul funct¸iei de transfer, f , cˆ at ¸si cu un registru, Reg2, pentru memorarea ie¸sirii Y (iT ). Introducerea unui registru va face ca modific˘ arile provocate ˆın ie¸sirea Y (iT ) pe intervalul iT − (i + 1)T , datorate regimului tranzitoriu, de la o intrare sincronizat˘ a, sau datorate variat¸iilor intr˘ arii, de la o intrare asincron˘ a, sa nu mai poata ajunge la ie¸sire. Valoarea ie¸sirii este asignat˘ a, doar ˆın momentele de aplicare a frontului activ de ceas la Reg2, cu valoarea calculat˘ a pe baza intr˘ arii ¸si st˘ arii anterioare Y ((i + 1)T ) := f (X(iT ), q(iT )) deci ie¸sirea reflect˘ a intrarea cu o ˆıntˆ arziere de un tact. Automatul Moore imediat, Figura 3.8-c. Deoarece la acest automat ie¸sirea se calculeaz˘ a ca funct¸ie numai de stare prezent˘ a, relat¸ia 3.14, la SA se adaug˘ a circuitul CLC2 care are ca intr˘ ari doar starea prezent˘ a. Deoarece ˆın starea prezent˘ a se reflect˘ a intrarea anterioar˘ a ¸si nu cea prezent˘ a, ie¸sirea este ˆıntˆ arziat˘ a cu un tact fat¸a˘ de intrare(la fel ca la automatul Mealy cu ˆıntˆ arziere). Deci pentru intrarea prezent˘ a se obt¸ine ie¸sirea numai peste un tact. Y ((i + 1)T ) := f (q((i + 1)T )) = f (g(X(iT ), q(iT ))) De¸si se obt¸ine o izolare a ie¸sirii fat¸a˘ de intrare, nu exist˘ a doar CLC2 intre intrare ¸si ie¸sire, totu¸si automatul Moore imediat poate genera hazard pe ie¸sire. Hazardul este generat de faptul c˘ a circuitul CLC2 poate avea de la intrarea(ie¸sirea Reg1) pˆ an˘ a la ie¸sirea sa un num˘ ar diferit de niveluri logice pentru fiecare traseu de transfer. Foarte frecvent, la acest tip de automat se elimin˘ a circuitul CLC2, ie¸sirea fiind identic˘ a cu starea Y ≡Q

(3.15)

ceea ce elimin˘ a hazardul combinat¸ional din ie¸sire. Comportamental, un automat Moore imediat poate fi echivalent cu un automat Mealy cu ˆıntˆ arziere deoarece la ambele ie¸sirea calculat˘ a pe baza st˘ arii prezente ¸si a intr˘ arii prezente va fi asignat˘ a la ie¸sire dar pe urm˘ atorul front activ de ceas. Automatul Moore cu ˆıntˆ arziere, Figura 3.8-d. Pentru a se elimina posibilitatea de hazard pe ie¸sire de la automatul Moore imediat se adaug˘ a pe ie¸sire un registru, Reg2, obt¸inˆ andu-se automatul Moore cu ˆıntˆ arziere. La ˆıntˆ arzierea ie¸sirii fat¸a˘ de intrare cu un tact de la Moore imediat, de data aceasta se mai introduce ,, ˆınc˘ a o ˆıntˆ arziere de un tact, deci automatul Moore cu ˆıntˆ arziere “simte o intrare transferat˘ a la ie¸sire cu o ˆıntˆ arziere de doua tacturi. Y ((i + 2)T ) := f (q((i + 1)T )) = f (g(X(iT ), q(iT )))

339

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

O Clasificare Neclasic˘ a a Circuitelor Digitale. Clasificarea clasic˘ a a circuitelor digitale ˆın dou˘ a mare clase: circuite logice combinat¸ionale, CLC ¸si circuite ,, logice secvent¸iale CLS este foarte “ˆınc˘ ap˘ atoare , prezentˆ and o puternic˘ a lips˘ a de nuant¸are. ˆIn fiecare din cele dou˘ a clase sunt cuprinse atˆ at circuite cu o definit¸ie simpl˘ a cˆ at ¸si circuite cu o definit¸ie complex˘ a, atˆ at circuite nestructurate cˆ at ¸si circuite puternic structurate. Mai mult, dac˘ a pentru circuitele combinat¸ionale se poate face o mapare direct˘ a ˆıntre ce vrem s˘ a facem (funct¸ie) ¸si cum vrem s˘ a facem (structur˘ a), la circuitele secvent¸iale aceast˘ a mapare structur˘ a–funct¸ie nu totdeauna este biunivoc˘ a. O tendint¸a de structurare a circuitelor a existat permanent ˆın concept¸ia inginereasc˘ a, atˆ at pentru a realiza un suport de cuprindere ¸si ˆınt¸elegere dar ¸si pentru modalit˘ a¸tile de implementare dictate de tehnologie. ˆIn evolut¸ia sistemelor ˆın natur˘ a dar ¸si ˆın abordarea mental˘ a a acestora este evident saltul care apare la trecerea de la sistemul deschis la sistemul ˆınchis(cu react¸ie), adic˘ a introducerea conexiunii de react¸ie. Un sistem cu react¸ie ˆın raport cu cel deschis(f˘ ar˘ a react¸ie) poate c˘ ap˘ ata o anumit˘ a autonomie fat¸˘ a de intrare, o anumit˘ a adaptabilitate. ˆIn funct¸ie de modul cum se structureaz˘ a sistemul, bazˆ andu-se pe react¸ie/react¸ii, acesta poate deveni chiar complet autonom fat¸a˘ de intrare(vezi Definit¸ia 3.3 ), iar spectrul funct¸iilor realizate poate fi extins. Bazat pe not¸iunea de react¸ie, ˆın extensiile structurate, profesorul Gh.S¸tefan [S¸tefan 0 91] a postulat o abordare de clasificare pentru sistemele digitale care este redat˘ a ˆın continuare.

x1 S1

x1

y1 S2 a)

y2

x

x x2

S1

y2 y

y2 x4

S3 c)

y1

xr

S2

y1 x3

S2

y1 b)

S1

x

S

S4 y

y2

sr d)

y

Figura 3.9 Procedee pentru structurarea sistemelor digitale: a) extensia serie; b) extensia paralel; c) extensia serie-paralel; d) extensia prin ˆınchiderea unei bucle de react¸ie. 1. Extensia sistemelor digitale se face prin urm˘ atoarele procedee: a - extensia serie, Figura 3.9-a b - extensia paralel, Figura 3.9-b c - estensia serie-paralel, Figura 3.9-c d - extensia prin introducerea unei bucle de react¸ie, Figura 3.9-d 2. Sistemul de ordinul zero, SO − 0, este circuitul combinat¸ional, deoarece nu are nici o bucl˘ a de react¸ie. Ordinul unui sistem poate fi de la 0 la n, respectiv notat

340

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

prin(SO − 0, SO − n) corespunz˘ ator num˘ arului de la 0 la n al buclelor de react¸ie care se includ una ˆın alta. 3. Extensiile de tip a, b, c, ale unor sisteme ce au un ordin egal cu n, genereaz˘ a tot un sistem de ordin n. 4. Extensia de tip d, (printr-o conexiune de react¸ie) ˆıntr-o ret¸ea de sisteme ce cont¸in cel put¸in un sistem de ordin n, genereaz˘ a un sitem de ordin n + 1. De exemplu, ˆın aceast˘ a sect¸iune s-a introdus not¸iunea de automat care se ˆıncadreaz˘ a ˆın SO − 2 deoarece cuprinde registrul de stare, care are o react¸ie ˆın structura sa, deci este un SO − 1, peste care se ˆınchide ˆınc˘ a o bucl˘ a(cea care transform˘ a starea urm˘ atoare calculat˘ a ˆın stare prezent˘ a), deci dou˘ a bucle de react¸ie. Utilizˆ and aceast˘ a abordare de clasificare, implicit, se ˆınt¸elege c˘ a sistemele de ordin superior au o mai evident˘ a sl˘ abire a corespondent¸ei biunivoce, structur˘ a-funct¸ie, ˆın raport cu cele de ordin mai redus, pentru c˘ a includ mai multe conexiuni de react¸ie. ˆIn aceast˘ a lucrare se utilizeaz˘ a totu¸si, clasificarea clasic˘ a de circuite combinat¸ionale ¸si circuite secvent¸iale, dar ˆın cadrul circuitelor secvent¸iale pentru fiecare grup de circuite se va indica ¸si ordinul ˆın care se ˆıncadreaz˘ a conform postul˘ arii anterioare.

3.2.3

Modalit˘ a¸ti de reprezentare ale automatelor

ˆIn capitolul doi, dup˘ a definirea CLS, s-au prezentat modalit˘ a¸ti de reprezentare ale funct¸iei de transfer intrare-ie¸sire, sectiunea 2.2. S¸i ˆın acest capitol, dup˘ a fundamentarea structur˘ arii ¸si funct¸ion˘ arii unui CLS, se vor prezenta modalit˘ a¸ti de reprezentare ale celor dou˘ a funct¸ii f ¸si g. De data aceasta sunt mai numeroase modalit˘ a¸tile de reprezentare, dintre acestea vor fi expuse doar: Graficul de tranzit¸ie al st˘ arilor, Tabelul de tranzit¸ie al st˘ arilor, Diagrama de variat¸ie ˆın timp a semnalelor, Organigrama ASM . Evident c˘ a se va alege acea modalitate de reprezentare care duce la o m˘ asur˘ aa complexit˘ a¸tii cˆ at mai simpl˘ a. Complexitatea, dup˘ a cum s-a ar˘ atat ˆın Definit¸ia 2.1, poate fi apreciat˘ a printr-o m˘ arime asociat˘ a dimensiunii definit¸iei. O variant˘ a de estimare a complexit˘ a¸tii unui CLS ar fi prin num˘ arul total de bit¸i ˆın produsul cartezian X × Q. Pentru un automat cu n intr˘ ari principale, k intr˘ ari secundare ¸si m ie¸siri se estimeaz˘ a o masur˘ a a complexit˘ a¸tii aparente CA A (n, k) ∈ O((n + k)2n+k ); 2n+k combinat¸ii(cuvinte) de intrare, fiecare cuvˆ ant cu lungimea de (n + k) bit¸i), deci o valoare foarte ridicat˘ a. S-ar putea estima complexitatea ¸si numai dup˘ a num˘ arul de ie¸siri CAA (m) ∈ O(m). Din aceste dou˘ a exprim˘ ari rezult˘ a, evident, c˘ a un automat este cu atˆ at mai simplu de definit cu cˆ at produsul X × Q este de dimensiune mai mic˘ a. Dar aceast˘ a complexitate aparent˘ a trebuie interpretat˘ a ca limit˘ a superioar˘ a deoarece complexitatea real˘ a poate fi mult mai mic˘ a. Complexitatea real˘ a poate fi mult mai mic˘ a pentru c˘ a ˆın funct¸ionarea automatului se poate identifica o anumit˘ a ordine a ascuns˘ a, anumite regularit˘ a¸ti ˆın structurare ceea ce ˆın final determin˘ a o simplificare ˆın definit¸ie. Oricum, ˆın implementarea unui automat se prefer˘ a o cre¸stere a dimensiunii ˆın contul unei sc˘ aderi a complexit˘ a¸tii. Un sistem de complexitate sc˘ azut˘ a ¸si dimensiune ridicat˘ a poate fi implementat, pe cˆ and implementarea unui sistem de complexitate foarte ridicat˘ a, fie ¸si de dimensiune sc˘ azut˘ a, poate fi greu implementabil.

341

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

3.2.3.1

Graful de tranzit¸ie al st˘ arilor

Pentru un CLS sincron graful de tranzit¸ie al st˘ arilor (diagrama de tranzit¸ie a st˘ arilor) este o reprezentare grafic˘ a a funct¸iei de tranzit¸ie a st˘ arilor, g, ¸si a funct¸iei de transfer intrare-ie¸sire, f , pentru toate configurat¸iile de intrare X. ˆIn acest graf fiec˘ arui nod (cerculet¸) ˆıi este asignat˘ a o stare, iar fiecare arc orientat ˆıntre cele dou˘ a noduri reprezint˘ a tranzit¸ia ˆıntre cele dou˘ a st˘ ari. Pentru un automat Mealy pe un arc de tranzit¸ie se noteaz˘ a expresia logic˘ a a variabilelor de intrare(expresia logic˘ aa tranzit¸iei) sau configurat¸ia valorilor variabilelor de intrare pentru care aceast˘ a expresie este adevarat˘ a, care va provoca tranzit¸ia respectiv˘ a, precum ¸si valoarea configurat¸iei de ie¸sire Y generat˘ a de aceast˘ a tranzit¸ie. Evident, tranzit¸ia st˘ arilor pe acel arc se realizeaz˘ a numai cˆ and expresia logic˘ a a tranzit¸iei scris˘ a pe acel arc este adevarat˘ a. Pentru un automat Moore, deoarece ie¸sirile sunt funct¸ii doar de starea prezent˘ a, f : Q → Y , pe arce nu sunt trecute configurat¸iile de ie¸sire Y generate de tranzit¸iile respective, configurat¸ia de ie¸sire este ˆınscris˘ a ˆın cerculet¸ul st˘ arii prezente din care se genereaz˘ a ie¸sirea respectiv˘ a, iar pe arce se ˆınscrie doar expresia logic˘ a a tranzit¸iei sau configurat¸ia valorilor variabilelor de intrare pentru care expresia logic˘ a a tranzit¸iei este adevarat˘ a.

q0

x1 x0 0

q1

x1 x 0 q 0 y=1

x1x0 1 x1x 0 0 x1x 0 0

a) q4

q2

x1 x 0

q1 y=1

x1 x 0 x1 x 0

q 2 y=1

b) q3

q 4 y=0

q 3 y=0

Figura 3.10 Graful de tranzit¸ie al st˘ arilor: a) segment de graf pentru automat de tip Mealy; b) segment de graf pentru automat de tip Moore. La un automat, cu dou˘ a intr˘ ari x1 x0 ¸si o ie¸sire y, tranzit¸ia din starea q0 ˆın una din urm˘ atoarele patru st˘ ari posibile q1 , q2 , q3 , q4 , graful de tranzit¸ie este reprezentat ˆın Figura 3.10-a, pentru o funct¸ionare de tip Mealy ¸si ˆın Figura 3.10-b, pentru o funct¸ionare de tip Moore. La graful de tip Mealy ˆın noduri sunt ˆınscrise numai st˘ arile, iar pe fiecare arc este trecut˘ a expresia logic˘ a a tranzit¸iei/valoarea configurat¸iei de ie¸sire; la graful de tip Moore ˆın noduri, pe lˆ ang˘ a stare este ˆınscris˘ a ¸si configurat¸ia de ie¸sire, iar pe fiecare arc este trecut˘ a doar expresia logic˘ a a tranzit¸iei. Dac˘ a la impulsul de ceas iT automatul ajunge ˆın starea q 0 la cel de tip Moore se genereaz˘ a ie¸sirea y = 1, iar la cel de tip Mealy ˆın aceast˘ a stare q 0 se genereaz˘ a y = 1 numai dac˘ a configurat¸ia de intrare este 01(xx0 = 1) pentru celelalte trei configurat¸ii (00,10,11) se genereaz˘ a y = 0. La urm˘ atorul impuls de ceas (i + 1)T se trece ˆın starea urm˘ atoare pentru care expresia logic˘ a a variabilelor de intrare este adev˘ arat˘ a, de exemplu pentru 10(x1 x0 = 1) se trece ˆın starea q3 (unde y = 0 pentru automatul Moore, valoarea

342

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

pentru y la automatul Mealy nu este precizat˘ a deoarece din aceast˘ a stare, ˆın acest caz, nu mai este figurat nici un arc de tranzit¸ie la o alt˘ a stare). Exemplul 3.3 Un automat cu dou˘a intr˘ari x1 , x0 ¸si o singur˘a ie¸sire y, genereaz˘a ie¸sirea egal˘ a cu 1 numai cˆ and din sirul de succesiuni aplicate pe intrare se identific˘ a secvent˘ a 00, 00, 11, 10. Pentru acest automat s˘ a se deseneze graful de tranzit¸ie al st˘ arilor atˆ at pentru o funct¸ionare de tip Mealy cˆ at ¸si pentru o funct¸ionare de tip Moore. Solut¸ie. ˆIn general, pentru aceste automate de recunoa¸stere, care pot fi considerate chei electronice, ˆın elaborarea grafului de tranzit¸ie se urm˘ are¸ste realizarea unei succesiuni de st˘ ari care corespund aplic˘ arii pe intrare tocmai a succesiunii c˘ autate. Se porne¸ste dintr-o stare q0 , considerat˘ a starea init¸ial˘ a. 00/0 01/0 10/0

00/0

q0

00/0

q1

01/0, 10/0, 11/0

11/0

10/1,01/0,11/0

a)

x1x 0 /0

x1x 0 /0 q1

c)

x1x 0 /0

00

00

00

q0 /0

q3

10

q4 /1

,1 11 10 11

q2

(x1x 0 + x1x 0 )/0 x1x 0 /1 , x 0 /0

0,

01

b)

x1x 0 /0

x1x 0 /0

q0 x 1+ x 0

01

q3

00/0

10/0,01/0

x 1+ x 0 /0

11/0

q2

11

00

q1 /0 01, 11, 10

q2 /0

q3 /0

00

10, 01 01, 11

Figura 3.11 Grafuri de tranzit¸ie pentru automatul care identific˘ a succesiunea 00 00 11 10: a) pentru un model Mealy cu marcarea pe arce a configurat¸iilor de intrare ¸si ie¸sire; b) pentru un model Mealy dar cu ˆınscrierea pe arce a expresiei logice a funct¸iei de tranzit¸ie; c) pentru un model Moore. Pentru varianta de automat Mealy numai configurat¸ia x1 x0 = 00 corespunde ˆınceputului identific˘ arii succesiunii impuse, deci pentru aceasta se realizeaz˘ a o tranzit¸ie ˆın starea q 1 , generˆ andu-se ie¸sirea y = 0 iar pentru celelalte trei configurat¸ii pe intrare posibile se ramˆ ane tot ˆın q0 ¸si y = 0, Figura 3.11-a. La fel, ˆın q1 numai configurat¸ia x1 x0 = 00 produce tranzit¸ia ˆın q2 ¸si genereaz˘ a y = 0, celelalte trei configurat¸ii produc tranzit¸ia ˆın q0 de unde se poate ˆıncepe de la cap˘ at identificarea succesiunii impuse. ˆIn q2 intrarea potrivit˘ a este x1 x0 = 11

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

343

care determin˘ a tranzit¸ia ˆın q3 ¸si genereaz˘ a y = 0; intrarea x1 x0 = 00 poate fi considerat˘ a ca o a doua combinat¸ie de 00 din succesiunea impus˘ a, dup˘ a cea care a produs tranzit¸ia dintre q1 ¸si q2 , deci determin˘ a o tranzit¸ie tot ˆın q2 . Celelalte doua configurat¸ii 10 ¸si 01 nu se potrivesc succesiunii impuse, deci provoac˘ a o tranzit¸ie ˆın q0 pentru o reluare a identific˘ arii de la ˆınceput. ˆIn starea q3 configurat¸ia de intrare potrivit˘ a este 10 care ˆıncheie identificarea cu succes a succesiunii impuse ¸si care realizeaz˘ a o tranzit¸ie ˆın q1 , pentru o eventual˘ a nou˘ a identificare, ¸si se genereaz˘ a y = 1. Dac˘ a ˆın q3 configurat¸ia aplicat˘ a este 00 aceasta este considerat˘ a ca prima configurat¸ie din succesiunea impus˘ a deci salt ˆın q1 ¸si continuarea identific˘ arii. Configurat¸iile 01 ¸si 11 aplicate ˆın q3 nu se potrivesc succesiunii impuse, deci salt ˆın q0 cu y = 0 pentru, eventual, o nou˘ a identificare. Acela¸si graf de tranzit¸ie al st˘ arilor este prezentat ˆın Figura 3.11-b, dar de data aceasta pe arce, ˆın locul configurat¸iilor valorilor de intrare, sunt ˆınscrise expresiile logice ale variabilelor de intrare care determin˘ a tranzit¸iile respective. Graful de tranzit¸ie al st˘ arilor pentru automat ˆın varianta Moore, Figura 3.11-c, se construie¸ste exact, ca ¸si pentru varianta Mealy, pˆ an˘ a ˆın starea q3 . Din starea q3 la aplicarea configurat¸iei 10, care ˆıncheie cu succes identificarea succesiunii impuse, este necesar˘ a o tranzit¸ie ˆın starea q4 ˆın care se genereaz˘ a ie¸sirea y = 1(ie¸sire dependent˘ a doar de stare). Din starea q4 pentru configurat¸ia 00 se realizeaz˘ a o tranzit¸ie ˆın q1 (aceast˘ a configurat¸ie 00 este considerat˘ a ca fiind prima din succesiunea impus˘ a, deci se reia procesul de identificare), iar pentru 11, 10, 01 salt ˆın q0 de unde se poate relua de la ˆınceput procesul de cautare.

Construct¸ia unui graf de tranzit¸ie al st˘ arilor trebuie s˘ a fie f˘ ar˘ a ambiguit˘ a¸ti, ceea ce impune pentru expresiile de tranzit¸ie ˆınscrise pe arcele care pornesc dintr-o stare s˘ a fie mutual exclusive ¸si toate incluse. Tranzit¸iile sunt mutual exclusive dac˘ a, dintr-o stare, pentru aceea¸si configurat¸ie a valorilor de intrare nu exist˘ a simultan transferuri la dou˘ a s-au mai multe st˘ ari(exist˘ a transfer pe un arc numai atunci cˆ and expresia respectiv˘ a de transfer are valoarea 1). Se poate verifica dac˘ a dintr-o stare nu exist˘ a transferuri simultane, efectuˆ and produsul logic ˆıntre expresiile de transfer de pe cˆ ate dou˘ a arce de transfer care pornesc din starea respectiv˘ a, aceste produse trebuie s˘ a aib˘ a totdeauna valoarea zero pentru oricare configurat¸ie a valorilor variabilelor de intrare. Pentru n arce care pornesc dintr-o stare num˘ arul total de perechi pentru care se face produsul expresiilor de transfer este egal cu n(n − 1)/2. Configurat¸iile valorilor de intrare testate, pentru care produsul logic al expresiilor de transfer de pe dou˘ a arce are valoarea 1, sunt referite ca fiind dublu acoperite (de dou˘ a transferuri). Tranzit¸iile sunt toate incluse dac˘ a suma logic˘ a a expresiilor de pe arcele care pornesc dintr-o stare este totdeauna egal˘ a cu 1 pentru oricare configurat¸ie a valorilor variabilelor de intrare testate; configurat¸iile de valori ale variabilelor de intrare testate pentru care aceast˘ a sum˘ a logic˘ a este egal˘ a cu zero sunt referite prin configurat¸ii neacoperite. Cu ajutorul unei diagrame V-K, de toate variabilele care se testeaz˘ a ˆın starea respectiv˘ a, se pot determina configurat¸iile neacoperite precum ¸si configurat¸iile dublu acoperite. Pentru aceea¸si funct¸ionare o implementare sub form˘ a de automat Moore necesit˘ a mai multe st˘ ari decˆ at implementarea sub form˘ a de automat Mealy, ceea ce s-a v˘ azut ¸si din Exemplul 3.3. ˆIn general, modelul Mealy este uzual pentru circuitele secvent¸iale sincrone, iar modelul Moore pentru circuitele asincrone. Graful de tranzit¸ie al st˘ arilor/ie¸sirilor este un instrument portrivit pentru verificarea funct¸ion˘ arii automatului.

344

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

3.2.3.2

Tabelul de tranzit¸ie al st˘ arilor

Informat¸ia cont¸inut˘ a ˆın graful de tranzit¸ie al st˘ arilor/ie¸sirilor poate fi transpus˘ a ˆıntr-o form˘ a mult mai practic˘ a pentru sinteza automatului – tabelul de tranzit¸ie al st˘ arilor(¸si ie¸sirilor). ˆIn tabelul de tranzit¸ie al st˘ arilor exist˘ a atˆ atea linii cˆ ate st˘ ari destincte prezint˘ a automatul ¸si atˆ atea coloane cˆ ate cuvinte diferite se pot aplica la intrare. Un element al tabelului tranzit¸iilor, aflat la intersect¸ia unei linii cu o coloan˘ a, va reprezenta starea urm˘ atoare/ie¸sirea a automatului obt¸inut˘ a la tranzit¸ia din starea prezent˘ a corespunz˘ atoare acelei linii prin aplicarea la intrare a cuvˆ antului de pe acea coloan˘ a. Uneori, elementele tabelului cuprind numai starea urm˘ atoare, pentru ie¸siri se ˆıntocme¸ste un tabel de aceea¸si form˘ a ale c˘ arui elemente sunt ie¸sirile corespunz˘ atoare – denumit tabelul ie¸sirilor. Tabelul ie¸sirilor pentru automatul Moore se reduce doar la o singur˘ a coloan˘ a, avˆ and atˆ atea elemente cˆ ate st˘ ari distincte exist˘ a(ie¸sirile sunt funct¸ii numai de starea prezent˘ a). Tabelul de tranzit¸ie al st˘ arilor, care este o reprezentare abstract˘ a a automatului, permite o comparare sistematic˘ a a st˘ arilor pentru identificarea perechilor de st˘ ari echivalente(vezi Definit¸ia 3.7 ) Exemplul 3.4 Pentru automatul reprezentat ˆın cele dou˘a modele Mealy ¸si Moore, ˆın Figura 3.11, s˘ a se construiasc˘ a tabelele de tranzit¸ie ale st˘ arilor/ie¸sirilor

Modelul Mealy Starea urmatoare Starea prezenta

a)

Modelul Moore Starea urmatoare

Iesirea y

Intrari x1 x0

Intrari x1 x0

Starea prezenta

00 01 11 10 00 01 11 10

Intrari x1 x0

Iesire y

00 01 11 10

q0

q1 q0 q0 q0

0

0

0

0

q0

q1 q0 q0 q0

0

q1

q2 q0 q0 q0

0

0

0

0

q1

q2 q0 q0 q0

0

q2

q2 q0 q3 q0

0

0

0

0

q2

q2 q0 q3 q0

0

q3

q1 q0 q0 q0

1

q3

q1 q0 q0 q4

0

q4

q1 q0 q0 q0

1

0

0

0

b)

Figura 3.12 Tabelele de tranzit¸ie/ie¸sire pentru modelul Mealy(a) ¸si Moore(b) ale automatului cu grafurile de tranzit¸ie din figura 3.11. Solut¸ie. Tabelul de tranzit¸ie pentru modelul Moore, Figura 3.12-a, prezint˘ a patru linii corespunz˘ atoare celor patru st˘ ari q0 , q1 , q2 , q3 ¸si patru coloane cˆ ate una pentru fiecare cuvˆ ant de intrare 00, 01, 11, 10; la fel se construie¸ste ¸si tabelul ie¸sirilor. Pentru modelul Moore, Figura 3.12-b, tabelul st˘ arilor va avea cinci linii, deoarece exist˘ a o stare ˆın plus fat¸a de modelul Mealy, ˆın schimb tabelul ie¸sirilor se reduce la o singur˘ a coloan˘ a.

345

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

3.2.3.3

Diagrame de variat¸ie ˆın timp ale semnalelor

Uneori funct¸ionarea automatului poate fi descris˘ a prin variat¸ia ˆın timp a semnalelor de intrare, de stare ¸si de ie¸sire. De¸si sugestiv˘ a, pentru dinamica automatului, ,, aceast˘ a modalitate devine foarte “stufoas˘ a cˆ and num˘ arul acestor semnale este mare. Diagrama de semnale este protrivit˘ a ˆın general la automatele generatoare care depind minimal de intrare sau chiar de loc(funct¸ionare autonom˘ a). Pornind de la diagrama de semnale, ˆın care se identific˘ a st˘ arile automatului, se poate deduce tabelul de tranzit¸ie al st˘ arilor/ie¸sirilor ¸si apoi se poate construi graful de tranzit¸ie. Exemplul 3.5 Pentru automatul a c˘arui funct¸ionare este prezentat˘a prin variat¸ia ˆın timp a semnalelor din Figura 3.13-a, s˘ a se deduc˘ a graful de tranzit¸ie al st˘ arilor/ie¸sirilor.

CLK

1

2

3

4

5

7

6

8

9

x z1

0

0

1

0

1

0

0

0

1

z2

1

1

1

1

1

0

0

1

1

y a) Starea prezenta 00 01 11 10

b)

0 01/0 01/0 01/0

x

1 00/0 11/1 00/0

00 01 11 10

q0 q1 q2 q3

1/0

0/0

q0 1/0

q2 c)

q1 0/0

0/0 1/1

q3

Figura 3.13 Descrierea funct¸ion˘ arii automatului prin diagrame de variat¸ie ˆın timp ale semnalelor(a): b) tabelul de tranzit¸ie dedus din diagramele de semnal; c) graful de tranzit¸ie al st˘ arilor/ie¸sirilor. Solut¸ie. Automatul prezint˘ a o singura intrare asincron˘ a x, o ie¸sire y ¸si dou˘ a intr˘ ari de stare, z1 , z0 , care pot realiza urm˘ atoarele patru cuvinte de stare:00, 01, 11, 10. Din diagrama de semnale la fiecare front activ de ceas pentru valoarea intr˘ arii ¸si a cuvˆ antului de stare prezent˘ a se poate deduce valoarea cuvˆ antului st˘ arii urm˘ atoare precum ¸si valoare ie¸sirii; deci pe baza acestor informat¸ii se poate completa tabelul de tranzit¸ie al st˘ arilor/ie¸sirilor din Figura 3.13-b. Considerˆ and pentru fiecare din cele patru valori de cuvˆ ant cˆ ate o stare 00 → q0 , 01 → q1 , 11 → q2 , 10 → q3 se obt¸ine graful de tranzit¸ie al st˘ arilor/ie¸sirilor din Figura 3.13-c. Se observ˘ a c˘ a starea q3 este indiferent˘ a, automatul nu va realiza niciodat˘ a, la o funct¸ionare normal˘ a, starea q3

3.2.3.4

Organigrama ASM ,, Pentru “st˘ apˆ anirea sistemelor digitale atˆ at din punct de vedere al descrierii (complexit˘ a¸tii) cˆ at ¸si din punct de vedere al implment˘ arii(dimensiunii) foarte frecvent se

346

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

,, apeleaz˘ a la segregarea acestuia(“divide et impera ). ˆIn acest sens structurile digitale pentru procesare fluxurilor de date sunt separate ˆıntr-o cale de date ¸si o cale de control, Figura 3.14. Calea de date opereaz˘ a asupra datelor, pentru a realiza o anumit˘ a procesare conform unui algoritm, ¸si este compus˘ a din elemente combinat¸ionale ¸si secvent¸iale: sumatoare, decodificatoare, multiplexoare, num˘ aratoare, registre, etc, vezi sect¸iunea 2.5.5.1. Calea de control controleaz˘ a secvent¸ialitatea algoritmului de procesare realizat ˆın calea de date. Structurat ˆıntr-o astfel de manier˘ a circuitul digital mai este referit ¸si ca ma¸sina cu st˘ ari algoritmice, ASM(Algorithmic State Machine), denumire corect˘ a deoarece implementeaz˘ a ˆın hardware un algoritm de procesare date. Fluxurile de date sunt aplicate la intrarea ˆın calea de date, unde supuse anumitor secvent¸e de procesare corespunz˘ atoare unui algoritm, ¸si se genereaz˘ a la ie¸sire datele procesate. Calea de control pe baza unor comenzi aplicate din exterior ¸si a unor condit¸ii citite din calea de date, genereaz˘ a semnale de control care dirijeaz˘ a secvent¸ele de procesare din calea de date. Calea de control are o structur˘ a de automat finit.

Calea de control Semnale de control in calea de date Date de iesire

Comenzi exterioare

Semnale de conditii din calea de date Calea de date

Date de intrare

Figura 3.14 Structurarea unui sistem digital ˆıntr-o cale de date ¸si o cale de control. Descrierea f˘ ar˘ a ambiguitate a funct¸ion˘ arii unui ASM printr-un graf de tranzit¸ie al st˘ arilor/ie¸sirilor poate deveni destul de greoaie ¸si cu dificult˘ a¸ti. Pentru evitarea acestor dificult˘ a¸ti s-a preluat, cu unele modific˘ ari pentru descrierea masinilor hardware algoritmice, ASM , modalitatea de descriere a algoritmilor utilizat˘ a ˆın dezvoltarea de soft, adic˘ a organigrama(flow chart). Astfel s-a obt¸inut o organigram˘ a pentru descrierile hardware referita prin organigrama ASM . Simbolurile grafice utilizate ˆın construct¸ia unei organigrame ASM sunt urm˘ atoarele trei: 1. Dreptunghiul, Figura 3.15-a, repreznt˘ a o stare a automatului. Prezint˘ a o singur˘ a intrare, o singur˘ a ie¸sire, ˆın partea stˆ ang˘ a se plaseaz˘ a ˆıncercuit numele st˘ arii, ˆın colt¸ul dreapta sus codul st˘ arii (un cuvˆ ant binar), iar ˆın interior se ˆınscriu ie¸sirile care devin active cˆ and automatul este ˆın aceast˘ a stare. Deoarece ie¸sirea ˆınscris˘ a devine activ˘ a totdeauna cˆ and automatul este ˆın starea respectiv˘ a, indiferent de valoarea intr˘ arilor, aceast˘ a ie¸sire corespunde unei ie¸siri de tip Moore intr-un graf de tranzit¸ii(ie¸sire necondit¸ionat˘ a) 2. Rombul, Figura 3.15-b, reprezint˘ a elementul de decizie binar. ˆIn interiorul s˘ au se ˆınscrie variabila de intrare/expresii de variabile de intrare care se testeaz˘ a. 3. Dreptunghiul rotunjit, Figura 3.15-c, este simbolul pentru ie¸sire condit¸ionat˘ a, corespunde unei ie¸siri de tip Mealy intr-un graf de tranzit¸ii. Intrarea ˆıntr-un

347

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

dreptunghi rotunjit este intotdeauna ie¸sirea de la un element de decizie ˆın care se testeaz˘ a condit¸ia ˆındeplinit˘ a de anumite variabile de intrare pentru care ie¸sirea ˆınscris˘ a ˆın dreptunghiul rotunjit este ˆındeplinit˘ a. Ie¸sirea acestui simbol poate fi aplicat˘ a la un alt romb sau la o stare urm˘ atoare. Calea de intrare in stare

.

O singura cale de intare

Codul starii

Numele starii

a)

A

Lista iesirilor generale de stare (Moore) A (Adevarat)

Bloc de stare A

Calea de iesire din stare

1 I−1

R I A

Timp de stare

F x1

y1 =

F (Fals)

CLK iT

TCLK

1 F

A x2

b)

A

Conditia (Expresie Booleana) Cale de intrare (de la iesirea unui simbol de decizie

c)

Lista iesirilor conditionate (Mealy)

F I=0?

d)

L1

L2

L4

L3

la starea

la starea

B

C

L1 L2 L3 L4 L5

x1I x1x2I x1I x1x2I x1x2

trazitie de la trazitie de la trazitie de la trazitie de la trazitie de la

(L+1)T

L5

la starea D A A A A A

la la la la la

B B C C D

Figura 3.15 Elemente componente ale unei organigrame ASM: a) simbolul pentru stare; b) simbolul pentru decizie; c) simbolul pentru ie¸sire condit¸ionat˘ a; d) structur˘ a pentru un bloc de stare. Aceste elemente pot fi combinate impreun˘ a pentru a forma celula de baz˘ a a unei organigrame ASM -numit˘ a blocul de stare, Figura 3.15-d. La un bloc de stare este obligatoriu prezent¸a unei st˘ ari(dreptunghi), poate exista ¸si o ret¸ea de simboluri de decizie ¸si de simboluri de ie¸sire condit¸ionat˘ a. ˆIntr-un bloc de stare exist˘ a doar o singur˘ a cale de intrare, dar pot exista mai multe c˘ ai de tranzit¸ie ˆınspre alte blocuri de stare. Diferent¸a principal˘ a ˆıntre un bloc de stare ¸si o organigram˘ a pentru un program este modul cum se interpreteaz˘ a timpul; la o organigram˘ a operat¸iile sunt realizate succesiv ˆın timp, una dup˘ a alta, pe cˆ and ˆıntr-un bloc de stare, care este o unitate dintro organigram˘ a ASM , toate operat¸iile se realizeaz˘ a ˆın acela¸si timp, concurent. De

348

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

exemplu, dac˘ a acest bloc de stare este interpretat ca o organigram˘ a de program(flow andu-se ˆınscrierea valorii 1 ˆın registrul R ¸si chart), ˆınˆ ai se intr˘ a ˆın starea A , efectuˆ variabila de contor I se decrementez˘ a, apoi se realizeaz˘ a operat¸ia de testare a intr˘ arii x1 . Dac˘ a x1 este adev˘ arat˘ a se trece la activarea ie¸sirii y 1 , dup˘ a care se testeaz˘ a valoarea variabilei de contor I(valoare care a fost decrementat˘ a ˆın starea A ) ¸si ˆın funct¸ie de valoarea de adev˘ ar sau fals al acesteia, se realizeaz˘ a o trecere respectiv la a x1 are valoarea de fals se trece la testarea lui x2 ¸si st˘ arile B sau C . Iar dac˘ ˆın funct¸ie de valoarea de adev˘ ar sau fals se realizeaz˘ a trecerea la starea D sau se testeaz˘ a variabila de contor dup˘ a care se ajunge ˆın B sau C .

A

A

Bloc de stare A

0

Bloc de stare A x0

1

0

x1

0

x0

1

y1

1

y1 b)

a) L1 L2 L3 B

0 L1 L2

L4 C

x1

B

1 L3 L4

C

L1 =x0

L3 =x1

L1 =x0 x1

L3=x0x1

L2 =x0

L4 =x1

L2 =x0x1

L4=x0x1

Figura 3.16 Exemplu de organigrame ASM(incorect˘ a) cu validarea simultan˘ a a dou˘ a cai de tranzit¸ie L1 ¸si L3 sau L2 ¸si L4 (a); form˘ a de organigram˘ a corectat˘ a(b) ˆIntr-o organigram˘ a ASM , timpul are o curgere discret˘ a, realizˆ andu-se o trecere ˆın salturi de la un bloc de stare la un alt bloc de stare, trecere marcat˘ a de impulsurile de ceas. De exemplu, pe frontul pozitiv al impulsului de ceas iT se intr˘ a ˆın blocul de stare A reprezentat de starea A . Operat¸iile efectuate ˆın paralel ˆın blocul de stare sunt: se ˆınscrie registrul R cu valoarea 1; se decrementeaz˘ a contorul I ¸si se poate ˆınscrie condit¸ionat ie¸sirea y1 ¸si tot ˆın paralel se testeaz˘ a intr˘ arile x1 , x2 ¸si I obt¸inˆ andu-se ˆın funct¸ie de acestea ca una din cele cinci c˘ ai de tranzit¸ie L 1 ÷ L5 s˘ a aib˘ a valoarea 1 pentru expresia funct¸iei de tranzit¸ie. Atent¸ie! ˆın elementul de decizie pentru contorul I nu se testeaz˘ a valoarea variabilei de contor I care s-a obt¸inut ˆın urma decrement˘ arii ˆın starea A , ci se testeaz˘ a valoarea lui I cu care a intrat ˆın blocul

349

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

de stare; de fapt cele dou˘ a operat¸ii, cea de decrementare din starea A , I ← I − 1, ¸si cea de testare din simbolul de romb, I = 0?, se realizeaz˘ a ˆın paralel ¸si nu succesiv. Aceast˘ a valoare decrementat˘ a a contorului se va utiliza ˆın blocurile urm˘ atoare sau cˆ and se revine ˆın blocul de stare A , dac˘ a ˆıntre timp aceasta nu a mai fost modificat˘ a ˆın st˘ arile care le-a mai parcurs. Mai sugestiv, am putea privi c˘ a pe frontul pozitiv al impulsului de ceas iT se intr˘ a ˆın blocul de stare A, iar pe frontul pozitiv urm˘ ator al impulsului (i + 1)T se realizeaz˘ a simultan toate operat¸iile ˆınscrise ˆın blocul de stare A ¸si se trece prin una din caile de tranzit¸ie, la una din starile urm˘ atoare B C D .

Pentru realizarea unei organigrame ASM corecte, f˘ ar˘ a ambiguit˘ a¸ti, se impun anumite restrict¸ii: 1. ˆIntr-un bloc de stare, prin ret¸eaua de elemente de decizie, pentru o configurat¸ie a valorilor variabilelor de intrare testat˘ a, trebuie s˘ a fie validat˘ a doar o singur˘ a cale de tranzit¸ie(restrict¸ie similar˘ a cu evitarea dublei acoperiri de la graful de tranzit¸ii). De exemplu, ˆın Figura 3.16-a pentru configurat¸ia x 1 x0 = 00 exist˘ ao a tranzit¸ie s-a realizat pe calea de transfer tranzit¸ie din A ˆın B , dar aceast˘ L1 sau L3 ? imposibil de spus. Sau, fie configurat¸ia x1 x0 = 11 care va valida at ¸si la starea simultan c˘ aile de tranzit¸ie L2 ¸si L4 cu trecere atˆ at la starea B cˆ C. Solut¸ia, pentru eliminarea ambiguit˘ a¸tilor este rearanjarea elementelor de decizie prin ˆınserierea lor ca ˆın Figura 3.16-b

A

A 1

1

x1

x0

x0

x0x1

0

0 0

x1

x0

B A

A

B ; L1=x0x0=0 a)

1

1 L1

x0

B A

x0+x1

0 L1

L1

B ;L1=x0x1x0=0 b)

B A

B ;L1=x0x1(x0+x1)=0 c)

Figura 3.17 Exemple de organigrame ASM (incorecte) care testeaz˘ a pe aceea¸si cale de transfer L1 o variabil˘ a atˆ at pentru valoarea fals˘ a cˆ at ¸si a o constant˘ a: pentru valoarea adev˘ arat˘ a(x0 x0 = 0; x1 x1 = 0), deci testeaz˘ 2. Evitarea conect˘ arii simbolurilor de decizie, ˆıntr-o ret¸ea a unui bloc de baz˘ a, care s˘ a determine condit¸ii logice imposibile pentru o cale de tranzit¸ie. Prin testarea unei variabile ˆın mai multe simboluri de decizie care toate concur˘ a la validarea unei c˘ ai de tranzit¸ie, se poate ajunge ca acea variabil˘ a sa fie testat˘ a atˆ at pentru

350

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

valoare fals˘ a cˆ at ¸si pentru valoare adev˘ arat˘ a x 0 x0 = 0, de exemplu calea de tranzit¸ie L1 din Figura 3.17. Totu¸si este perfect posibil ca aceea¸si variabil˘ a s˘ a fie testat˘ a ˆın mai multe simboluri de decizie, dar printr-o structurare potrivit˘ a s˘ a nu fie testat˘ a de dou˘ a ori pe aceea¸si cale de tranzit¸ie. 3. Orice cale de tranzit¸ie ˆın aceea¸si stare(bucl˘ a) trebuie s˘ a includ˘ a simbolul de stare. O bucl˘ a de tranzit¸ie este necesar˘ a cˆ and automatul trebuie s˘ a r˘ amˆ an˘ a ˆın aceea¸si stare un num˘ ar de tacturi pˆ an˘ a cˆ and este ˆındeplinit˘ a condit¸ia de test. O bucl˘ a aferent˘ a unui bloc de stare trebuie s˘ a ias˘ a ¸si s˘ a reintre ˆın acel bloc numai pe cale normal˘ a ca ˆın Figura 3.18-b.

A Bloc de stare A

1

x

A Bloc de stare A

0

1

x

0

B

B a)

b)

Figura 3.18 Bloc de stare ˆın care o bucl˘ a este realizat˘ a incorect(a), aceea¸si bucl˘ a realizat˘ a corect(b) Organigram ASM se obt¸ine dintr-o ret¸ea de blocuri de stare, num˘ arul blocurilor de stare fiind egal cu num˘ arul de st˘ ari |Q| ale automatului. O astfel de organigram˘ a descrie nu numai funct¸ionarea secvent¸ial˘ a a automatului dar exprim˘ a ¸si funct¸iile logice pentru sinteza acestuia. De exemplu blocul j corespunz˘ ator st˘ arii q j a automatului descrie: starea prezent˘ a qj ; ie¸sirile necondit¸ionate(Mealy) din acea stare, f j (qj ); ie¸sirile condit¸ionate fj∗ (qj , Xj ) de tip Moore, tranzit¸iile spre st˘ arile urm˘ atoare g j (Xj , qj ) ˆın care Xj sunt cuvintele de intrare care se testeaz˘ a ˆın blocul j. Luˆ and toate aceste componente pentru toate cele |Q| blocuri de stare ale automatului se obt¸ine organigrama ASM . g(X, Q) =

|Q| X

gj (Xj , qj )

j=1

f (X, Q) =

|Q| X

[fj∗ (Xj , qj ) + f (qj )]

(3.16)

j=1

Organigramele ASM , spre deosebire de grafurile de tranzit¸ie care se construiesc separat pentru automatul de tip Mealy sau pentru automatul de tip Moore, pot reprezenta simultan atˆ at ie¸siri condit¸ionate cˆ at ¸si ie¸siri dependente(numai de stare) deci pot ˆımbina funct¸ionarea celor dou˘ a tipuri de automate.(Evident un graf de tranzit¸ie de tip Mealy poate fi convertit ˆıntr-un graf de tranzit¸ie de tip Moore ¸si invers).

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

351

Exemplul 3.6 Pentru un automat de vˆanzare a sticlelor de suc s˘a se conceap˘a organigrama ASM ¸si s˘ a se deduc˘ a tabelul de tranzit¸ie al st˘ arilor/ie¸sirilor. Funct¸ionarea automatului de vˆ anzare a sticlelor cu valoarea de 10 unit˘ a¸ti, care poate fi acoperit˘ a din monede de dou˘ a unit˘ a¸ti (2U), de cinci unit˘ a¸ti(5U) ¸si de zece unit˘ a¸ti (10U), este urm˘ atoarea: cˆ and este ˆın FUNCT ¸ IUNE trebuie s˘ a semnalizeze aceasta printr-un semnal FUN (un LED), cˆ and este ˆın curs de introducere monede, un semnal URM va indica dac˘ a este necesar˘ a ˘ ˘ Cˆ URMATOAREA MONEDA. and monedele introduse totalizeaz˘ a 10 unit˘ a¸ti se comand˘ a ˘ ELS, iar dac˘ ELIBERARE STICLA, a suma monedelor nu totalizeaz˘ a 10U, atunci se comand˘ a RETURNARE MONEDE, RTM. Solut¸ie. ˆIn conceperea organigramei se urm˘ are¸sc variantele de a realiza 10 unit˘ a¸ti din 10, 5 sau 2 unit˘ a¸ti. Rezult˘ a un num˘ ar de ¸sapte st˘ ari q0 ÷ q6 , Figura 3.19. Ar fi rezultat ¸si starea a opta, q7 , dac˘ a comanda ELS nu s-ar fi generat ca o ie¸sire condit¸ionat˘ a ci ca o ie¸sire de starea q7 (Moore). ˆIn opozit¸ie, s-ar fi putu reduce num˘ arul de st˘ ari de la ¸sapte la ¸sase dac˘ a comanda RTM din starea q6 ar fi fost generat˘ a ca o ie¸sire condit¸ionat˘ a (Mealy) ¸si nu ca o ie¸sire dependent˘ a de starea q6 . Dispozitivul de detectare a introducerii monedelor genereaz˘ a patru semnale de intrare pentru organigrama ASM : un semnal M pentru detectarea prezent¸ei monedei(M = A); trei semnale corespunz˘ atoare valorii monedelor detectate (10U, 5U ¸si 2U). Aceste semnale sunt semnale impuls care trebuie s˘ a fie sincrone cu semnalul de ceas al automatului. Atˆ at timp cˆ at nu este introdus˘ a nici o moned˘ a (M=F) automatul a¸steapt˘ a (bucleaz˘ a) ˆın starea q0 . Tabelul de tranzit¸ie al st˘ arilor se deduce din analiza organigramei. Acest tabel apare mai simplu decˆ at cel definit ˆın sect¸iunea 3.2.3.2, deoarece intr˘ arile sunt mutual exclusive (nu se pot introduce simultan dou˘ a monede). Tabelul, Figura 3.19-b, apare mult mai intuitiv deoarece pentru fiecare bloc de stare(notate cu B0 , B1 →, B6 ) se evident¸iaz˘ a ¸si c˘ aile de tranzit¸ie din acea stare, sunt ˆın total 15 notate cu L1 , L2 → L15

Uneori reducerea complexit˘ a¸tii unui ASM , precum ¸si o structurare pentru o implementare mai u¸soar˘ a a unui automat de dimensiuni mari, se obt¸ine prin descompunerea ˆın mai multe ASM -uri componente ¸si conectarea acestora ˆıntr-o anumit˘ a modalitate pentru a compune automatul init¸ial. Fiecare din automatele componente sunt proiectate separat ¸si apoi interconenctate astfel ie¸sirile unui automat vor fi utilizate ca intr˘ ari la un alt automat ¸si viceversa. Aceste interconect˘ ari se reduc la conexiui serie sau paralel ale automatelor. Un exemplu de conectare serie a dou˘ a automate este schit¸at ˆın Figura 3.20-a. Ma¸sina (automatul)A va fi starea A1 testˆ and repetat, la fiecare impuls de ceas, ar˘ asi aceast˘ a stare, parcurgˆ and restul st˘ arilor din organvariabila CALL B ¸si va p˘ and ie¸sirea CALL A din igrama ASM pˆ an˘ a ˆın starea AN , numai ˆın momentul cˆ starea B1 a ma¸sinii B devine activ˘ a. De asemenea, ma¸sina B ˆın starea B1 va testa repetat variabila CALL A ¸si va p˘ ar˘ asi aceast˘ a stare, parcurgˆ and restul st˘ arilor din organigrama ASM a sa, numai ˆın momentul ˆın care ma¸sina A ˆın starea AN va activa ie¸sirea CALL B care se aplic˘ a ˆın starea B1 a ma¸sinii B, ca variabil˘ a testat˘ a. Apoi, ma¸sina A ajunge iar˘ a¸si ˆın starea A1 unde a¸steapt˘ a activarea ie¸sirii CALL A

352

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

ELS A L13 F 2U q5

URM A L11 2U

q4

URM A L9 2U

q3 a)

q6 L14

q0

RTM

L0 F A

F

L12

L10

L3

URM

q2 L8

A L1

L 5U A 2 F q URM 1 F 2U A L 5 F 5U

L6 F

ELS

M

10U F

L7

b)

FUN

ELS A L4

URM F

2U A

Intrari Starea Blocul de stare Starea si calea de prezenta urmatoare FUN URM ELS RTM tranzitie M 2U 5U 10U q0 q0 B0,L0 0 0 0 1 q0 q0 B0,L1 A 0 1 0 A 1 q0 q1 B0,L2 A 0 0 1 A 0 q0 q1 B0,L5 A A 0 0 1 0 q6 q0 B0,L6 A F 0 0 0 0 q0 q1 B1,L4 1 0 0 A 1 q1 q6 B1,L3 0 0 0 F 1 q3 q2 B2,L7 A 0 0 0 1 q6 q2 B2,L3 F 0 0 0 1 q3 q4 B3,L9 A 0 0 0 1 q3 q6 B3,L10 F 0 0 0 1 q5 q4 B4,L11 A 0 0 0 1 q4 q6 B4,L12 F 0 0 0 1 q0 q5 B5,L13 A 0 1 0 1 q5 q6 B5,L14 F 0 0 0 1 q0 q6 B6,L15 0 1 0 0

Figura 3.19 Explicativ˘ a pentru Exemplul 3.6: a) descrierea funct¸ion˘ arii automatului prin organigram˘ a ASM;b) tabelul de tranzit¸ie al st˘ arilor (neasignate) ¸si al ie¸sirilor.

353

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Automat A

Automat B

Automat A A1

B1

A1

0

CALL_A

CALL_B

1

0

Organigrama ASM a automatului B

B1

0 CALL_A

1

Organigrama ASM a automatului A

AN

CALL_B

CALL_A

Automat B CALL_A

CALL_B

0

1

1

Organigrama ASM a automatului B

Organigrama ASM a automatului A

CALL_B

a) Figura 3.20 Interconectarea automatelor: b) interconectare de tip paralel.

b) a) interconectare de tip serie;

realizat˘ a ˆın starea B1 la care se ajunge numai dup˘ a parcurgerea celorlalte st˘ ari din organigrama ASM a ma¸sinii B. Deci se execut˘ a alternativ algoritmii implementat¸i de fiecare ma¸sin˘ a. Pentru interconectarea serial˘ a se poate extinde organizarea la mai multe ma¸sini, considerˆ and una din ele ca ma¸sina principal˘ a care va apela mai multe ma¸sini pe parcursul execut˘ arii algoritmului sau. La fiecare apelare a ma¸sinii principale c˘ atre o alt˘ a ma¸sin˘ a (apelat˘ a), ma¸sina principal˘ a va intra ˆıntr-o bucl˘ a de a¸steptare pe o stare ¸si nu va p˘ ar˘ asi aceast˘ a bucla, pˆ an˘ a cˆ and ma¸sina apelat˘ a nu va returna c˘ atre ma¸sina principal˘ a confirmarea realiz˘ arii segmentului de algoritm ˆıncredint¸at. O astfel de funct¸ionare este realizat˘ a de organizarea din Figura 3.21 cu particularizarea c˘ a a ma¸sina principal˘ a A apeleaz˘ a din st˘ arile A1 , AR ¸si AS repetat numai o singur˘ a). Se recunoa¸ste aici ma¸sin˘ a, C pentru realizarea aceluia¸si subalgoritm(subrutin˘ acela¸si procedeu de apelare repetat˘ a ˆın software a unei subrutine de c˘ atre un program principal. Se poate extinde organizarea la cazul cˆ and o ma¸sin˘ a apeleaz˘ a o alt˘ a ma¸sin˘ a care la rˆ andul s˘ au apeleaz˘ a o alta s.a.m.d; evident fiecare ma¸sin˘ a apelant˘ a intr˘ a ˆın bucl˘ a de a¸steptare pˆ an˘ a cˆ and prime¸ste confirmarea, de realizarea segmentului de algoritmi ˆıncredint¸at, de la ma¸sina apelat˘ a. Se recunoa¸ste mecanismul de apelare, ˆın software, de subrutine imbricate. Conectarea ˆın paralel a dou˘ a ASM -uri realizeaz˘ a execut¸ia ˆın paralel a celor doi algoritmi. Cea mai simpl˘ a organizare corespunde cazului cˆ and cele dou˘ a ma¸sini sunt init¸iate ˆımpreun˘ a pentru procesare, Figura 3.20-b. Cˆ and ma¸sina A porne¸ste procesarea din starea init¸ial˘ a A1 simultan valideaz˘ a p˘ ar˘ asirea st˘ arii init¸iale ¸si pe ma¸sina

354

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

A1

CALL_C

0

C1

CALL_A

1

CALL_C

0

1 AR

CALL_C

CALL_A

Organigrama AMS a automatului C (Subrutina)

0

1 AS

CALL_C CALL_A

Organigrama AMS a automatului A

0

CALL_A

CM

1

Figura 3.21 Interconectarea de tip serie a dou˘ a automate pentru apelarea repetat˘ a a automatului C: B care la rˆ andul s˘ au prin CALL A valideaz˘ a p˘ ar˘ asirea st˘ arii init¸iale A1 . Dup˘ a parcurgerea ˆın paralel a celorlalte st˘ ari din fiecare organigram˘ a ma¸sina care revine prima ˆın starea init¸ial˘ a nu poate porni la reexecutarea algoritmului s˘ au pˆ ana cˆ and ¸si cealalt˘ a ma¸sin˘ a nu revine ˆın starea init¸ial˘ a. De¸si din cele expuse, intreconectarea automatelor din punct de vedere logic apare relativ u¸sor de organizat dar, pentru ca ¸si din punct de vedere funct¸ional s˘ a fie corect, trebuie analizat˘ a foarte atent implementarea. Interconectarea ridic˘ a probleme de implementare chiar cˆ and cele dou˘ a automate sunt sincronizate cu acela¸si semnal de ceas, deci timpii de stare, sunt identici, Figura 3.15-d. Exist˘ a probleme ˆın cazul ˆın care semnalele de ceas ale celor dou˘ a automate sunt unul multiplu fat¸a˘ de cel˘ alalt sau, mai dificil, sunt complet asincrone. ˆIn acest caz semnalele de ie¸sire al unui automat se aplic˘ a la celalalt automat ca semnale de intrare asincrone sau se sincronizeaz˘ a ˆınainte de aplicare, vezi sect¸iunea 3.2.1. Oricum, semnalele cu variat¸ie asincron˘ a nu pot fi citite corect cˆ and sunt considerate c˘ a formeaz˘ a un cuvˆ ant de cod ci numai cˆ and sunt considerate cu semnificat¸ie independent˘ a fiecare semnal. 3.2.3.5

Limbaje de transfer ˆıntre registre, RTL

Not¸iunea de registru a fost introdus˘ a ˆın sect¸iunea 3.2.2 ca registru de stare. Pˆ an˘ a la prezentarea sa ˆın sect¸iunea 3.5, specific˘ am c˘ a un registru este un circuit pentru

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

355

memorarea informat¸iei sub form˘ a de cuvˆ ant, deci primele dou˘ a operat¸ii care se pot realiza cu un registru este cea de ˆınscriere ˆın registru ¸si cea de citire din registru. ˆIn prezent˘ arile din capitolul 2 toate proces˘ arile pe un circuit combinat¸ional implicau prezent¸a unui registru la intrare, din care se citea informat¸ia aplicat˘ a CLC, ¸si un registru la ie¸sire ˆın care se ˆınscriau, dac˘ a era necesar, cuvˆ antul rezultat din procesare. Alte operat¸ii ˆın afar˘ a de ˆınscriere(load) ¸si citire, registrul mai permite operat¸ii de ¸stergere(clear), incrementare, deplasare(shift) stˆ anga dreapta(echivalent respectiv cu multiplicare sau ˆımp˘ art¸ire cu puteri ale lui doi). Registrul ˆımpreun˘ a cu diferite circuite combinat¸ionale sau cu circuite secvent¸iale, formeaz˘ a baza circuistic˘ a pentru procesarea paralel˘ a sau secvent¸ial˘ a. De fapt, aceast˘ a circuistic˘ a este ceea ce se poate g˘ asi ˆıntr-o cale de date. Formalismul cu ajutorul c˘ aruia se descriu operat¸iile ¸si transform˘ arile ˆıntre registrele dintr-o cale de date(¸si nu numai) este referit prin limbaj de transfer ˆıntre registre, RTL (Register Transfer Language). Instruct¸iunea R2 ← R 1 are urm˘ atoarea semantic˘ a: cont¸inutul registrului R 1 este transferat(copiat) ¸si ˆın registrul destinat¸ie R2 (cont¸inutul surs˘ a R1 nu se modific˘ a); s˘ ageata reprezint˘ a transferul ¸si direct¸ia acestuia. De exemplu, ˆın Figura 3.15-d ˆın starea A, automatul comand˘ a ˆınscrierea valorii 1 ˆın registrul R ¸si decrementarea registrului care cont¸ine variabila contor I. Normal c˘ a o operat¸ie, ˆıntr-o cale de date, este realizat˘ a cˆ and este ˆındeplinit˘ a o condit¸ie logic˘ a C, ceea ce se exprim˘ a printr-o primitiv˘ a de tipul if-then, de exemplu If (C = 1)then(R2 ← R1 ) Evident c˘ a acest transfer R2 ← R1 , condit¸ionat de C = 1, se realizeaz˘ a numai sincronizat de semnalul de ceas prin frontul activ, deci condit¸ionarea ¸si de c˘ atre semnalul de ceas este implicit˘ a. Dar se pot exprima ¸si transferuri care se realizeaz˘ a ˆın paralel ˆıntre mai multe registre, ca de exemplu If (C = 1)then(R2 ← R1 , R4 ← R3 ) Alte exemple de instruct¸iuni de tip RTL pot fi: R1 ← R1 + R2 ; se sumeaz˘ a cont¸inutul registrelor R1 , R2 , iar rezultatul se ˆınscrie ˆın R1 R3 ← R3 + 1; cont¸inutul registrului R3 se incrementeaz˘ a R4  R4 ; cont¸inutul registrului R4 este deplasat spre stˆ anga cu o pozit¸ie R5 ← 0; este ¸sters cont¸inutul registrului R5 Simbolurile, notat¸iile ¸si sintaxa unui limbaj RTL nu sunt standardizate, ceea ce ˆıi ofer˘ a o dezvoltare ad-hoc ¸si o u¸surint¸a˘ ˆın utilizare. Totu¸si, aceste simboluri, notat¸ii ¸si sintaxa descrierilor de tip RTL sunt standardizate ˆın cadrul unor limbaje de descriere hardware HDL (Hardware Description Language) cum ar fi VHDL sau VERILOG (prezentate ˆın volumul 2 al acestei lucr˘ ari).

356

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

Organigrama ASM a fost introdus˘ a pentru descrierea algoritmilor implementabili ˆıntr-un sistem hardware, care ˆın general, cont¸ine o cale de date ¸si o cale de control, Figura 3.14. Calea de date are ˆın component¸a sa registre, multiplexoare, decodificatoare, sumatoare iar calea de control este ˆın fond un automat finit ale c˘ arui ie¸siri sunt semnalele de control ˆın calea de date. Ca o alternativ˘ a la descrierea prin organigrama ASM este cea prin care calea de control este descris˘ a printr-un graf de tranzit¸ie al st˘ arilor, iar calea de date descris˘ a prin limbaj RTL. Informat¸ia pentru trecerea la graful de tranzit¸ie al st˘ arilor este luat˘ a din organigrama ASM astfel: numele st˘ arilor (din cerculet¸e) corespund cu cele de lˆ ang˘ a dreptunghiurile de starea ale ASM -ului arcele de transfer dintre st˘ ari sunt c˘ aile de tranzit¸ie din ASM expresiile de tranzit¸ie de pe arce sunt expresiile de pe c˘ aile (sau din romburile) de tranzit¸ie ale ASM -ului Iar informat¸ia, referitoare la operat¸iile care se efectueaz˘ a ˆın calea de date, exprimat˘ a RTL, pentru fiecare stare, se obt¸ine din ie¸sirile de stare (Moore) ¸si din ie¸sirile condit¸ionale(Mealy) ale blocului de stare corespunz˘ atoare. Exemplul 3.7 Pentru automatul prezentat ˆın Exemplul 3.6, Figura 3.19 s˘a se realizeze o descriere prin graf de tranzit¸ie pentru calea de control ¸si prin limbaj RTL pentru calea de date.

.

M 5U=A

M=F

5U=A 2U=A

q0

.

1 q6

2U=F q2

q0: FUN 1 if( M 10A=A ) then ELS

5U=F 2U=F

M 2U=A

2U=F

.

q1

q5

2U=F 2U=F

q3

a)

q2: URM

1

q3: URM

1

q4: URM

1

1 q5: URM if( 2U=A ) then ELS

2U=A 2U=A

1 q1: URM if( 5U=A ) then ELS

q4

q6: RTM

1

1

1

1

b)

Figura 3.22 Alternativ˘ a la descrierea prin organigram˘ a ASM a automatului din figura 3.19-a: a) printr-un graf de tranzit¸ie al st˘ arilor pentru calea de control; b) prin limbaj RTL pentru calea de date.

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

357

Solut¸ie. Aplicˆ and organigramei ASM din Figura 3.19-a regulile prezentate mai sus se obt¸ine graful de tranzit¸ie al st˘ arilor, Figura 3.22-a ¸si descrierea ˆın limbaj RTL, Figura 3.22-b. Pentru fiecare din cele ¸sapte st˘ ari q0 ÷ q6 , ˆın limbaj RT L, sunt specificate comenziile aplicate ˆın calea de date obt¸inute ca semnale de ie¸sire de la calea de control ale automatului(calea de control).

ˆIn afara modalit˘ a¸tiilor prezentate de reprezentare a automatelor mai putem aminti: limbaj natural, ret¸ea Petri, HDL. Reprezentarea prin limbaj natural este util˘ a cˆ and automatul prezint˘ a un num˘ ar foarte mare de st˘ ari, de exemplu un automat num˘ ar˘ ator modul 16 care prezint˘ a 216 = 64536 st˘ ari. Ret¸eaua Petri este tot o structur˘ a de graf orientat dar nu urm˘ are¸ste o succesiune de st˘ ari ci o succesiune de evenimente [Lewin 0 92], recomandat˘ a mai mult pentru descrierea circuitelor/(proceselor) secvent¸iale asincrone decˆ at a celor sincrone. Foarte utilizat˘ a ret¸eaua Petri este pentru sistemele comandate la care sunt active simultan mai multe st˘ ari. Limbajele de descriere hardware, HDL (VHDL, Verilog) au devenit modalit˘ a¸ti de descriere aproape exclusive ˆın procesul de proiectare ˆın electronica digital˘ a.

3.2.4

Reducerea num˘ arului de st˘ ari

Proiectantul ˆın etapa de construire a grafului de tranzit¸ie al st˘ arilor/ie¸sirilor, concentrˆ andu-se asupra restrict¸iilor de funct¸ionarea ale automatului, poate realiza un model (graf) ce cont¸ine st˘ ari redundante. Aceasta ˆınseamn˘ a c˘ a vor rezulta ˆın tabelul de tranzit¸ie mai multe st˘ ari decˆ at cele necesare interpret˘ arii funct¸ion˘ arii. Mai multe st˘ ari ˆın implementare influent¸eaz˘ a ˆın mod direct dimensiunea, deci costul implement˘ arii, viteza de funct¸ionare ¸si complexitatea automatului. ˆIn procesul de proiectare, etapa de eliminare a st˘ arilor redundante este referit˘ a prin reducerea st˘ arilor. Efectiv reducerea st˘ arilor ˆınseamn˘ a identificarea st˘ arilor echivalente ¸si apoi un num˘ ar de st˘ ari g˘ asite ca echivalente sunt substituite, ˆın funct¸ionarea automatului, cu o singur˘ a stare. Rezult˘ a c˘ a ˆın tabelul de tranzit¸ie al st˘ arilor/ie¸sirilor toate liniile care corespund unor st˘ ari echivalente se vor substitui cu o singur˘ a linie rezultant˘ a. Not¸iunea de stare echivalent˘ a este introdus˘ a prin Definit¸ia 3.7 . Ad˘ aug˘ am acum trei propriet˘ a¸ti ale st˘ arilor echivalente: 1. Simetria: dac˘ a qi ∼ qj atunci ¸si qj ∼ qi 2. Reflexivitatea: qj ∼ qj pentru oricare stare 3. Tranzitivitatea: dac˘ a qi ∼ qj ¸si qj ∼ qk atunci qi ∼ qk Exist˘ a algoritmi, atˆ at utilizabili sub o form˘ a analitic˘ a cˆ at ¸si sub o form˘ a grafic˘ a, prin care se identific˘ a st˘ arile echivalente ¸si apoi sunt eliminate [Yarbrough 0 97] [Mano 0 97] [Lewin 0 92]. Actual, fiecare platform˘ a de proiectare automat˘ a ˆın electronic˘ a cont¸ine astfel de algoritmi sub forma unor programe interactive. ˆIn continuare se va prezenta o metod˘ a grafic˘ a de reducere a st˘ arilor echivalente referit˘ a prin mapa implicant¸ilor [Yarbrough 0 97]. Se consider˘ a un automat cu ¸sase st˘ ari: A, B, C, D, E, F, a c˘ arui funct¸ionare este descris˘ a prin tabelul de tranzit¸ie al st˘ arilor/ie¸sirilor prezentat ˆın Figura 3.23-a. O map˘ a a implicant¸ilor care compar˘ a, pentru echivalent¸a˘, fiecare stare cu fiecare stare este o diagram˘ a, Figura 3.23-b, ce are pe orizontal˘ a notate toate st˘ arile mai put¸in ultima,

358

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

Starea Starea urmatoare/iesire x prezenta 1 0 A E/0 D/1 B F/0 D/0 C E/0 B/1 D F/0 B/0 E C/0 F/1 F B/0 C/0

a) B C

C

B,D

C,E D,F

A

C,E B,F B,F C,D B

B,D B,D

D

B,D

F b)

d)

D ~B=q1, E=q2, F=q 3 Starea Starea urmatoare/iesire x=1 prezenta x=0 q0 q2/0 q1/1 q3/0 q1 q1/0 q2 q0/0 q3/1 q3 q0 /0 q1/0

B

D E

A=q 0, B=q 1, C ~ A=q 0

C

E B,F B,C D

C,E D,F

F E

c)

A

C,E B,F B,F C,D B

C

B,F B,C D

E

Figura 3.23 Etapele reducerii num˘ arului de st˘ ari prin metoda grafic˘ a a mapei implicant¸iilor: a) tabelul de tranzit¸ie a st˘ arilor/ie¸sirilor automatului; b) mapa implicant¸iilor dedus˘ a din tabelul de tranzit¸ie; c) mapa implicant¸iilor dup˘ a validarea condit¸iilor de echivalent¸a˘; d) tabelul de tranzit¸ie al st˘ arilor/ie¸sirilor pentru automatul echivalent(redus). ˆın cazul nostru A, B, C, D, E, iar pe vertical˘ a toate st˘ arile mai put¸in prima, ˆın cazul nostru B, C, D, E, F . ˆIn c˘ asut¸a de coordonate care corespunde intersect¸iei celor dou˘ a st˘ ari care se compar˘ a, una de pe orizontal˘ a ¸si una de pe vertical˘ a, se ˆınscriu condit¸iile (st˘ arile) necesare pentru echivalent¸a celor dou˘ a st˘ ari. Aceste condit¸ii necesare pentru echivalent¸a˘ se deduc din tabelul de tranzit¸ie al st˘ arilor/ie¸sirilor, comparˆ and fiecare stare cu fiecare, pentru toate configurat¸iile de valori ale cuvˆ antului de intrare ce determin˘ a cele dou˘ a st˘ ari. Verificarea condit¸iilor necesare pentru ca o pereche de st˘ ari s˘ a fie echivalent˘ a se realizeaz˘ a prin urm˘ atorii pa¸si: 1. Se elimin˘ a (se diagonalizeaz˘ a) din mapa implicant¸iilor acele c˘ asut¸e ale c˘ aror perechi de st˘ ari coordonate au ˆın tabelul de tranzit¸ie al st˘ arilor/ie¸sirilor ie¸siri diferite pentru aceea¸si valoare a cuvˆ antului de intrare(vezi Definit¸ia 3.7). De exemplu, nu pot fi echivalente perechiile A cu B, A cu D ¸si A cu F , deoarece au ie¸siri diferite, deci c˘ asut¸ele corespunz˘ atoare intersect¸iei acestor perechi se diagonalizeaz˘ a. 2. Pentru perechile de st˘ ari prezente la care s-a verificat c˘ a au ie¸siri identice,

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

359

dup˘ a inspectarea tabelului, se ˆınscrie ˆın c˘ asut¸ele corespunz˘ atoare din mapa implicant¸ilor care perechi de st˘ ari urm˘ atoare ar trebui s˘ a fie echivalente pentru ca perechea de st˘ ari prezente comparate s˘ a fie echivalent˘ a. De exemplu, pentru prima coloan˘ a din map˘ a pentru ca A ∼ C necesit˘ a echivalent¸a ˆıntre B ¸si D, iar A ∼ E necesit˘ a C ∼ E ¸si D ∼ F ; pe coloana a doua B ∼ D necesit˘ a B ∼ D, B ∼ F necesit˘ a B ∼ F ¸si C ∼ D; pe coloana a treia C ∼ E necesit˘ a C ∼ E ¸si B ∼ F ; iar pe coloana a patra D ∼ F necesit˘ a B ∼ F ¸si B ∼ C.

Pentru ca A ∼ E necesit˘ a C ∼ E ¸si D ∼ F . Privind ˆın mapa implicant¸iilor pentru echivalent¸a perechii D, F este necesar˘ a B ∼ F ¸si B ∼ C, iar pentru echivalent¸a perechii C ∼ E este necesar˘ a C ∼ E ¸si B ∼ C. S˘ a vedem dac˘ a din c˘ asut¸ele mapei rezult˘ a c˘ a sunt ˆındeplinite simultan aceste patru echivalent¸e. Pentru ca B ∼ F este necesar ca B ∼ F ¸si C ∼ D, dar din c˘ asut¸a de coordonate C ¸si D rezult˘ a c˘ a st˘ arile C ¸si D nu sunt echivalente. ˆIn concluzie , st˘ arile A ¸si E nu sunt echivalente ¸si c˘ asut¸a de coordonate A ¸si E de pe prima coloan˘ a se diagonalizeaz˘ a. Se aplic˘ a aceast˘ a analiz˘ a ¸si pentru celelalte coloane/linii ¸si se constat˘ a c˘ a ˆın afar˘ a de c˘ asut¸a de coordonate B,D, toate celelalte se diagonalizeaz˘ a, rezultˆ and mapa implicant¸iilor din Figura 3.23-c. Rezult˘ a c˘ a sunt echivalente st˘ arile A cu C ¸si st˘ arile B cu D. 3. Pentru fiecare pereche de st˘ ari echivalente se p˘ astreaz˘ a doar una din st˘ ari, eventual se redenumesc st˘ arile (A = q0 , B = q1 , C ∼ A = q0 , D ∼ B = q1 , E = q2 , F = q3 ) ¸si se construie¸ste tabelul simplificat al tranzit¸iei st˘ arilor/ie¸sirilor, Figura 3.23-d. Deci automatul init¸ial cu ¸sase st˘ ari poat fi substituit ˆın func¸tionare cu un alt automat(echivalent) care are numai patru st˘ ari. Exemplul 3.8 Pentru automatul Mealy cu graful de tranzit¸ie al st˘arilor/ie¸sirilor din Figura 3.24-a s˘ a se elimine st˘ arile redundante ¸si apoi s˘ a se redeseneze graful de tranzit¸ie Solut¸ie. Din graful de tranzit¸ie al st˘ arilor/ie¸sirilor se obt¸ine tabelul de tranzit¸ie al st˘ arilor/ie¸sirilor din Figura 3.24-e, iar din tabelul de tranzit¸ie se deduce: 1. Nu sunt echivalente urm˘ atoarele perechi de st˘ ari:A cu B, A cu C, B cu D, B cu E, C cu D ¸si C cu E 2. St˘ arile: A ∼ D numai dac˘ a sunt echivalente B cu C ¸si D cu C ¸si A cu B A ∼ E numai dac˘ a sunt echivalente A cu E ¸si B cu C

B ∼ C numai dac˘ a sunt echivalente B cu C ¸si A cu E

D ∼ E numai dac˘ a sunt echivalente C cu D ¸si B cu E ¸si A cu C 3. Se constat˘ a c˘ a: A 6= D deoarece A 6= B ¸si D 6= C D 6= E deoarece A 6= C, B 6= E ¸si C 6= D A∼E rezultat˘ a

A ∼ E numai dac˘ a B ∼ C, iar B ∼ C numai dac˘ a A ∼ E. Rezult˘ a c˘ a ¸si B ∼ C(simetrie dac˘ a qj ∼ qi atunci qi ∼ qj ). Mapa implicant¸iilor

este cea din Figura 3.24-f. 4. Se redenumesc st˘ arile ˆın felul urm˘ ator: A = q0 , B = q1 , C ∼ A = q0 ;

360

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE 10/0

10/0 11/1

B 10/1

00/0 01/0

A

00/0 ,11/1 00/0 10/0

01/0 01/0 11/1 10/1 00/0

D

E

11/1 01/0 00/0

11/1

C 00/0 01/0 11/1

00/0,10/0 10/1

01/0,11/1

q2 01/1

b)

a) Starea prezenta A B C D E

c)

A=q 0, B=q 1 , C~B=q 1, D=q 2 , E~A=q 0

Starea urmatoare/iesire x1x0 00

01

11

10

B/0 E/0 A/0 C/0 C/0

C/0 C/0 B/0 D/0 C/0

B/0 B/1 C/1 A/1 C/1

A/0 D/1 D/1 B/0 F/0

Starea prezenta

d)

B

q0 q1 q2

Starea urmatoare/iesire x1x0 01 10 00 11 q1/0 q1/0 q1/1 q0/0 q0/0 q1/0 q1/1 q2/1 q1/0 q2/0 q0/1 q1/0

B B,C A,E

C

e)

11/1

00/0

q1

10/0

01/0

q0

D

B,C D,C A,B

E

A,E B,C A

C,D B,E A,C B

B,C A,E

C

C

D

f)

D

B,C D,C A,B

E

A,E B,C A

C,D B,E A,C B

C

D

Figura 3.24 Explicativ˘ a pentru reducerea st˘ arilor redundante ale automatului din Exemplul 3.8

3.24-d.

D = q2 , E ∼ A = q0 pentru care rezult˘ a tabelul de tranzit¸ie din Figura Funct¸ionarea automatului echivalent(redus) este descris˘ a prin graful de tranzit¸ie al st˘ arilor/ie¸sirilor din Figura 3.24-b.

ˆIn sinteza circuitelor combinat¸ionale se ˆıntˆ alnesc cazuri cˆ and funct¸ia de transfer este incomplet specificat˘ a, ceea ce ˆın tabelul de adev˘ ar se indic˘ a prin semnul indiferent (don0 t care). Cazuri similare se ˆıntˆ alnesc ¸si la circuitele secvent¸iale cˆ and fie funct¸ia de transfer, f , fie funct¸ia de tranzit¸ie, g, nu sunt complet specificate ceea ce se reflect˘ a prin indicarea semnului indiferent respectiv pentru anumite valori ale ie¸sirii sau anumite st˘ ari urm˘ atoare. Cˆ and anumite st˘ ari nu sunt specificate automatul nu este predictibil. Este indicat s˘ a se evite asemenea cazuri fie prin alegerea numai acelor

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

361

configurat¸ii de intrare care conduc automatul numai prin st˘ ari deja specificate sau, fie s˘ a se specifice st˘ arile nespecificate dac˘ a prin aceasta nu se contravine rezultatului dorit. Odat˘ a specificate st˘ arile, care init¸ial erau nespecificate, automatul nu mai este incomplet specificat. ˆIn procesul de reducere al num˘ arului de st˘ ari, specificarea ie¸sirilor nespecificate poate fi f˘ acut˘ a f˘ ar˘ a a se produce nici un impact asupra secvent¸ei st˘ arilor automatului final. Este indicat ca ie¸sirile nespecificate s˘ a fie l˘ asate nespecificat ˆın tabelul de tranzit¸ie al st˘ arilor/ie¸sirilor cˆ at se poate de mult ˆın procesul de reducere, deoarece prezent¸a semnului indiferent duce la o mai mare flexibilitate ˆın compararea st˘ arilor din tabelul de tranzit¸ie. ˆIn validarea echivalent¸ei a dou˘ a st˘ ari, trebuie ca ie¸sirile s˘ a fie identice pentru oricare configurat¸ie de intrare. Cˆ and se compar˘ a dou˘ a st˘ ari ale c˘ aror ie¸siri sunt incomplet specificate ˆın locul not¸iunii de echivalent¸a˘ se utilizeaz˘ a not¸iunea de st˘ ari compatibile. Dou˘ a st˘ ari qi ¸si qj sunt st˘ ari compatibile dac˘ a, pentru oricare secvent¸a de configurat¸ii aplicate pe intrare, se obt¸ine o aceea¸si secvent¸a˘ a ie¸sirii cˆ and ie¸sirile nespecificate vor fi specificate, indiferent dac˘ a st˘ arile q i , qj sunt st˘ ari init¸iale sau nu. Pentru automatele incomplet specificate exist˘ a algoritmi(grafici sau analitici) de reducere a num˘ arului de st˘ ari [Yarbrough 0 97][Lewin 0 92].

3.2.5

Asignarea st˘ arilor

Dup˘ a operat¸ia de reducere a st˘ arilor echivalente ¸si modificarea corespunz˘ atoare a grafului de tranzit¸ie al st˘ arilor/organigrama ASM ¸si a tabelului de tranzit¸ie al st˘ arilor se asigneaz˘ a st˘ arile. Procesul de asignare al st˘ arilor (codificarea st˘ arilor) unui automat cu s st˘ ari const˘ a ˆın alocarea pentru fiecare simbol de stare q 0 , q1 , . . . , qs−1 a cˆ ate unui cuvˆ ant de cod cu lungimea de minimum k bit¸i. Valoarea lui k rezult˘ a din relat¸ia 2k−1 ≤ s < 2k

(3.17)

deci k = dlog2 se

X

CLC2 f

n

CLC1 g k

Y m W k

Registru SA CLK Figura 3.25 Separarea semiautomatului SA ˆın structura unui automat: Prin asignarea st˘ arilor, automatul definit simbolic este transformat ˆıntr-un automat cu o structur˘ a specificat˘ a ¸si funct¸iile de transfer, f , ¸si de tranzit¸ie, g, sunt fixate.

362

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

,, De fapt, “se personalizeaz˘ a un semiautomat pentru automatul respectiv, Definit¸ia 3.8 . ˆIn Figura 3.25 este reprezentat˘ a o structur˘ a generic˘ a de automat a c˘ arui structur˘ a este separat˘ a ˆın partea combinat¸ional˘ a, CLC2, pentru calculul funct¸iei de transfer, ¸si semiautomat, SA. Semiautomatul este compus din circuitul combinat¸ional CLC1, pentru calculul funct¸iilor de excitat¸ie W , iar ˆın jurul acestuia este ˆınchis˘ a bucla printrun registru(element de memorie). Prin asignare fiecare stare prezent˘ a ¸si fiecare stare urm˘ atoare sunt exprimate respectiv prin cuvintele Z ¸si W cu lungimea de k bit¸i(din mult¸imea de 2k cuvinte). ˆIn proiectarea automatului se porne¸ste de la descrierea transferului intrare/ie¸sire, deci este fixat˘ a funct¸ionarea prin corespondent¸a˘ ˆıntre vectorii X ¸si Y de la bornele automatului. Proiectantului, pentru o funct¸ionare dat˘ a a unui automat, ˆıi r˘ amˆ ane sarcina de a optimiza realizarea funct¸iilor f ¸si g, ceea ce se reduce la alegerea semiautomatului cel mai potrivit din mult¸imea de semiautomate posibile. Ori, aceast˘ a alegere este determinat˘ a/fixat˘ a prin procesul de codificare al st˘ arilor. Important¸a alegerii semiautomatului cel mai potrivit este evident˘ a pentru un automat, deoarece aceast˘ a alegere determin˘ a direct dimensiunea ¸si complexitatea automatului. Deoarece automatele ˆın general nu pot fi definite recursiv, deci dimensiunea definit¸iei poate fi ridicat˘ a, rezult˘ a, ˆın consecint¸a˘, circuite complexe. Un automat complex avˆ and ¸si o dimensiune ridicat˘ a va fi mai greu de realizat; este de preferat de realizat un automat de complexitate redus˘ a chiar dac˘ a dimensiunea(circuistica) este ridicat˘ a. Rezult˘ a necesar˘ a cunoa¸sterea posibilit˘ a¸tilor de alegere a cuvintelor de cod din mult¸imea de 2 k cuvinte, care de fapt este spat¸iul st˘ arilor exprimat prin cuvinte de cod. Codificarea st˘ arilor este cea mai important˘ a etap˘ a ˆın proiectarea unui automat. Tabelul 3.1 Posibilit˘ a¸ti de codificare pentru un automat cu patru st˘ ari Starea q0 q1 q2 q3

Starea q0 q1 q2 q3

C1

C2

C3

C6

C7

C8

z 1z 0

z 1z 0

C4 z 1z 0

C5

z 1z 0

z 1z 0

z 1z 0

z 1z 0

z 1z 0

00

00

00

00

00

00

01

01

01

01

10

10

11

11

10

10

11

01

11

01

10

11

10

11

01

10

C9 z 1z 0

C10 z 1z 0

C11 z 1z 0

C12 z 1z 0

01 11

01

01

01

10

11

00

00

11

00

10

00

10

11

01

00

11

00

10

11

10

C18

C13

C14

z 1z 0

z 1z 0

C15 z 1z 0

C16 z 1z 0

C17 z 1z 0

z 1z 0

C19 z 1z 0

C20 z 1z 0

C21 z 1z 0

C22 z 1z 0

C23 z 1z 0

C24 z 1z 0

10

10

10

10

10

10

11

11

11

11

11

11

11

11

00

00

01

01

00

00

01

01

10

10

00 01

01

11

01

11

00

01

10

00

10

00

01

00

01

11

00

11

10

01

10

00

01

00

Pentru un automat cu s st˘ ari din mult¸imea de 2k cuvinte, cu lungimea de k bit¸i, k se pot forma un num˘ ar de 2 !/(2k − s)!s! grupuri distincte, fiecare grup cont¸inˆ and s cuvinte. Apoi, prin maparea celor s st˘ ari ale automatului pe un grup cu s cuvinte rezult˘ a un num˘ ar de s! asign˘ ari(codific˘ ari) diferite. Deci num˘ arul total de codific˘ ari, Nc , va fi: NC =

2k ! (2k − s)!

(3.18)

363

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

De exemplu, pentru un automat cu patru st˘ ari q0 , q1 , q2 ¸si q3 (codificabile pe un cuvˆ ant de doi bit¸i k = dlog2 4e = 2) rezult˘ a NC = 22 !/(22 − 4)! = 24 posibilit˘ a¸ti de asignare, c1 ÷ c24 , reprezentate ˆın Tabelul 3.1. Dar din cele 24 de asign˘ ari posibile unele sunt echivalente. Dou˘ a asign˘ ari ale st˘ arilor sunt echivalente dac˘ a pentru cele dou˘ a implement˘ ari ale automatului funct¸iile f ¸si g au acelea¸si m˘ arimi de dimensiune ¸si complexitate. Se obt¸in dou˘ a asign˘ ari echivalente ˆın urm˘ atoarele dou˘ a cazuri: 1. cˆ and codul unei asign˘ ari se obt¸ine prin complementarea codului celeilalte. De exemplu, sunt echivalente urm˘ atoarele perechi de asign˘ ari (c 1 , c24 ), (c2 , c23 ), (c3 , c22 ),. . .,(c12 , c13 ); 2. cˆ and codul unei asign˘ ari se obt¸ine din codul altei asign˘ ari prin interschimbarea coloanelor z1 ¸si z0 . Dac˘ a ˆın asignarea c1 se schimb˘ a valorile bit¸ilor ˆıntre z1 ¸si z0 se obt¸ine asignarea c3 , la fel c2 ¸si c4 s.a.m.d Num˘ arul total de asign˘ ari neechivalente, Ncne , pentru un automat cu s st˘ ari ¸si cuvˆ ant de lungime de k bit¸i se calculeaz˘ a cu urm˘ atoarea relat¸ie Ncne =

(2k − 1)! (2k − s)!s!

(3.19)

Valoarea lui Ncne cre¸ste dramatic ˆın funct¸ie de num˘ arul de st˘ ari s ale automatului, cˆ ateva din aceste valori sunt date ˆın Tabelul 3.2. Tabelul 3.2 Valori pentru num˘ arul asign˘ arilor neechivalente, Ncne Tabelul 3.2 Valori pentru numarul asignarilor neechivalente, Ncne s 2 3 4 5 6 7

k 1 2 2 3 3 3

Ncne 1 3 3 140 420 840

s 8 9 10 16 20

k 3 4 4 4 5

Ncne 840 10,81x 106 75,67x 106 56,48x 109 143,14x 1021

ˆIn proiectarea unui automat efortul de alegere a celui mai bun semiautomat, care determin˘ a o dimensiune minim˘ a pentru circuitele combinat¸ionale, CLC1 ¸si CLC2, precum ¸si o minimizare a complexit˘ a¸tii, este evitat din cauza num˘ arului mare de asign˘ ari posibile ˆın spat¸iul st˘ arilor care ar trebui analizate. Pentru s ≤ 4 se pot elabora ¸si analiza toate solut¸iile de semiautomat ¸si apoi se alege varianta care duce la un minim pentru dimensiune ¸si complexitate. Pentru cazul cˆ and n ≥ 4 se caut˘ a doar g˘ asirea solut¸iei care determin˘ a un semiautomat ce se aproprie suficient de mult de cel mai bun, am putea spune semiautomatul cel mai potrivit. ˆIn acest sens exist˘ a ˆın literatur˘ a indicate anumite reguli care aplicate ˆın procesul de asignare al st˘ arilor pot duce spre o solut¸ie aproape de cea optim˘ a. Variabilelor de excitat¸ie w, care determin˘ a starea urm˘ atoare, se calculeaz˘ a ˆın blocul combinat¸ional CLC1, iar m˘ arimile de ie¸sire y sunt calculate ˆın blocul combinat¸ional CLC2; ˆın calculul acestor dou˘ a marimi intervine starea prezent˘ a. ˆIn sinteza

364

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

celor dou˘ a blocuri combinat¸ionale se obt¸in forme cu atˆ at mai simple cu cˆ at ˆın diagramele V-K se identific˘ a suprafet¸e(implicant¸i primi esent¸iali, IPE) cˆ at mai mari. Ori, pentru a obt¸ine suprafet¸e cˆ at mai extinse este indicat ca asignarea st˘ arilor s˘ a se efectueze astfel incˆ at codurile st˘ arilor s˘ a aib˘ a ˆıntre ele distant¸a unitara ¸si prin aceasta la maparea pe o diagrama V-K vor corespunde c˘ asut¸e adiacente. Pe aceast˘ a observat¸ie se bazeaz˘ a unele reguli care pot duce la obt¸inerea de structuri simple pentru cele dou˘ a blocuri combinat¸ionale. Un procedeu simplu de asignare a st˘ arilor care are o probabilitate destul de ridicat˘ a pentru a duce la o solut¸ie apropiat˘ a de cea optim˘ a se bazeaz˘ a pe conceptul de locusul st˘ arilor. Locusul st˘ arilor este num˘ arul de modific˘ ari ale bit¸ilor din cuvˆ antul de stare cˆ and pentru un automat se parcurg toate c˘ aile de tranzit¸ie. Se va alege acea codificare a st˘ arilor care s˘ a realizeze o valoare cˆ at mai mic˘ a pentru locusul st˘ arilor. Valoarea minim˘ a s-ar obt¸ine cˆ and codurile ˆıntre dou˘ a st˘ ari succesive pe oricare linie de tranzit¸ie, ˆın afar˘ a de buclele la aceea¸si stare, ar diferi doar printr-un singur bit. Aceast˘ a modalitate de codificare, prin care codul unei st˘ ari difer˘ a doar printr-un singur bit fat¸a˘ de codurile st˘ arilor urm˘ atoare, ˆınspre care exist˘ a o cale de tranzit¸ie, este referit˘ a ca o codificare cu variat¸ie minim˘ a. Codificarea cu variat¸ie minim˘ a, pe lˆ ang˘ a faptul c˘ a pot duce duce la suprafet¸e mai mai ˆıntr-o diagram˘ a V-K, prin realizarea unei singure comutat¸ii ˆın cuvˆ antul de stare la trecerea de la o stare la alta, m˘ are¸ste sigurant¸a ˆın funct¸ionare a automatului, mai ales la cele asincrone. Un segment de organigram˘ a ASM avˆ and o codificare cu variat¸ie minim˘ a este prezentat ˆın Figura 3.26-a. La o tranzit¸ie din starea q 0 , c˘ areia i s-a asignat codul 0000, pe oricare cale de tranzit¸ie ˆınspre st˘ arile q 1 , q2 , q3 , q4 ˆın cuvˆ antul de cod se modific˘ a doar un singur bit. Dac˘ a se noteaz˘ a cu nz 3 , nz2 , nz1 , nz0 , valorile bit¸ilor din cuvˆ antul de stare urm˘ atoare, acestea se pot exprima prin relat¸ia logic˘ a ce define¸ste calea de tranzit¸ie respectiv˘ a. nz3 = x1 x0 nz1 = x1 x0

nz2 = x1 x0 nz0 = x1 x0

Codificarea cu diferent¸a numai de un singur bit, ˆıntre dou˘ a st˘ ari succesive, nu este totdeauna posibil˘ a. De exemplu, ˆın organigrama ASM din Figura 3.26-b, care cont¸ine pe o bucl˘ a trei st˘ ari q0 , q1 ¸si q2 acestea nu pot fi toate codificate cu distant¸e de cod egale cu unu. Dac˘ a q1 difer˘ a de q0 cu un singur bit iar fat¸a˘ de q2 tot cu un singur bit, atunci q2 difer˘ a de q0 prin cel put¸in doi bit¸i. Aceste relat¸ii ˆıntre cuvintele de cod asignate st˘ arilor se pot observa ¸si modifica mult mai u¸sor dac˘ a se construie¸ste o diagram˘ a de tip V-K ˆın care se mapeaz˘ a st˘ arile. ˆIntr-o astfel de diagram˘ a, dou˘ a st˘ ari succesive care au distant¸a de cod egal˘ a cu unu, sunt plasate ˆın c˘ asut¸e adiacente. Din diagrama V-K corespunz˘ atoare automatului din Figura 3.26-b rezult˘ a c˘ a totdeauna, pentru oricare variant˘ a de asignare cu 2 bit¸i ˆıntre cele trei st˘ ari q 0 , q1 ¸si q2 de pe bucl˘ a, exist˘ a o trecere(pe diagonal˘ a) ˆıntre dou˘ a c˘ asut¸e neadiacente. Uneori, pentru realizarea unei codific˘ ari cu distant¸a de cod unu ˆıntre oricare dou˘ a st˘ ari succesive este necesar˘ a introducerea unei st˘ ari suplimentare, dar aceast˘ a suplimentare de st˘ ari pe ˆıntreaga organigram˘ a ASM ar putea duce la cre¸sterea num˘ arului de bit¸i ˆın cuvˆ antul de cod. Prin introducerea st˘ arii suplimentare q 4 , Figura 3.26-c, cuvˆ antul de cod va fi de trei bit¸i dar codurile succesive asignate st˘ arilor q 0 , q1 , q2 ¸si q4 de pe bucl˘ a sunt la distant¸a unitar˘ a, ceea ce se obt¸ine din plasarea st˘ arilor pe diagrama V-K ˆın pozit¸ii adiacente, (aceast˘ a plasare nu este unic˘ a). Aceast˘ a rezolvare pentru codificarea cu

365

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Bloc de stare

z3 z2 z1 z0 0 0 0 0

q0

z1 z0 0 0

q0

q0

010

01 0 1

x0

x1

0

q1

1 0

x0

q1

1

110 q2 y=1 q3

q2 y=1 q4

q1

0001

q2

0010

q3

a)

0100

q4

1000

z2 z1 z0 0 0 0

z0

0 q 0 0

1 q1

1 q2

q3

z1

b)

z2

z1z0

001 q3

100 y=1

0

00 01 q0

1

q4

11 q3

10 q1 q2

c)

Figura 3.26 Codificare cu variat¸ie minim˘ a: a) segment de organigram˘ a ASM codificat cu variat¸ie minim˘ a; c) codificare cu variat¸ie minim˘ a prin introducerea unei st˘ ari suplimentare fat¸a˘ de organigrama(b). variat¸ie minim˘ a implic˘ a definirea ¸si a unei ie¸siri ˆın starea suplimentar˘ a. Ie¸sirea dependent˘ a de starea suplimentar˘ a poate fi repetarea ie¸sirii y din starea anterioar˘ a sau nici o ie¸sire NO-OPERATION dac˘ a funct¸ionarea automatului permite. Generarea ie¸sirii, y = 1, ¸si ˆın starea suplimentar˘ a apare la ie¸sirea automatului ca o consumare de doi timpi de stare(tacte) ˆın starea q2 . Pentru un automat valoarea locusului st˘ arilor nu poate fi mai mic˘ a decˆ at num˘ arul s de st˘ ari. O valoare minim˘ a egal˘ a cu s pentru locusul st˘ arilor se poate obt¸ine doar la un automat la care exist˘ a s tranzit¸ii necondit¸ionate ˆıntre st˘ arile succesive ¸si codificarea st˘ arilor este cu variat¸ie minim˘ a, de exemplu un num˘ ar˘ ator ˆın cod Gray, uzual valoarea minim˘ a a locusului st˘ arilor este mai mare decˆ at s. Exemplul 3.9 Pentru automatul din Figura 3.27-a s˘a se calculeze locusul st˘arilor, apoi s˘ a se reasigneze st˘ arile astfel ˆıncˆ at s˘ a se obt¸in˘ a valoarea minim˘ a pentru locusul st˘ arilor. Solut¸ie. Pentru codurile st˘ arilor ˆınscrise pe organigram˘ a se calculeaz˘ a locusul st˘ arilor, Figura 3.27-b, rezultˆ and o valoare egal˘ a cu 10. Din plasarea st˘ arilor pe o diagram˘ a V-K se vede c˘ a st˘ arile nu au coduri adiacente. Replasˆ and st˘ arile pe diagrama V-K, Figura 3.27-c, se face o codificare cu variat¸ie minim˘ a(cuvintele binare notate ˆın paranteze pe organigram˘ a) pentru care locusul obt¸ine valoarea 7. ˆIn aceast˘ a diagram˘ a V-K pe s˘ aget¸ile care reprezint˘ a c˘ aile de tranzit¸ie dintre st˘ ari s-a indicat ¸si distant¸a de cod respectiv˘ a, dac˘ a aceast˘ a distant¸a este mai mare decˆ at unitatea. Pe bucla format˘ a din st˘ arile q1 , q3 , q4 nu se poate realiza o codificare cu variat¸ie minim˘ a. Asignarea codului 011 pentru q4 ar duce la o distant¸a ˘ de cod unitar˘ a fat¸a ˘ de q1 dar ar m˘ ari distant¸a de cod la doi fat¸a ˘ de q3 , locusul st˘ arilor ar fi tot 7. Se pot ˆıncerca ¸si alte plas˘ ari ˆın mapa st˘ arilor. Solut¸ia ar fi introducerea unei st˘ ari suplimentare

366

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

z2 z1 z0 0 0 0 (000) q0

010(010)

011(100) q2

q1

111(110) q3

a)

101(111) q4

z2

z1z0 0

00

q0

1 tranzitia q 0 tranzitia q 0 tranzitia q 1 tranzitia q 2 tranzitia q 3 tranzitia q 4

01

11

10

2

q2

q1

q4

3

q3

2

q1=000 010 modifica 1 bit q2=000 011 modifica 2 biti q3=010 111 modifica 2 biti q3=011 111 modifica 1 bit q4=111 101 modifica 1 bit q1=101 010 modifica 3 biti Total=10 biti modificati b)

z2

z1z0

00

0

q0

1

q2

000 000 010 100 110 111

01

11

10 q1

2 q4

q3

010 modifica 1 bit 100 modifica 1 bit 110 modifica 1 bit 110 modifica 1 bit 111 modifica 1 bit 010 modifica 2 biti Total=7 biti modificati c)

Figura 3.27 Exemplu de plasare a st˘ arilor pe diagrama V-K(b) pentru a minimiza valoarea locusului st˘ arilor(c) la o organigram˘ a dat˘ a(a).

pe aceast˘ a bucla.

Exemplul 3.10 Pentru automatul cu tabelul de tranzit¸ie al st˘arilor/ie¸sirilor din Figura 3.28-a s˘ a se deduc˘ a expresia semnalelor de excitat¸ie. Solut¸ie. Deoarece se deduc doar expresiile funct¸iilor de excitat¸ie se vor neglija valorile ie¸sirilor, deci problema exprimat˘ a pentru automat se restrˆ ange numai la sinteza semiautomatului. Se propun dou˘ a variante de semiautomat. ˆIn Varianta I, Figura 3.28-b, cele ¸sase st˘ ari q0 ÷ q5 sunt mapate pe diagrama V-K astfel ˆıncˆ at s˘ a se realizeze ˆıntr-o m˘ asur˘ a cˆ at mai mare variat¸ie minim˘ a, adic˘ a plasare ˆın c˘ asut¸e adiacente. ˆIn afar˘ a de tranzit¸iile q3 la q5 ¸si q5 la q1 , care au distant¸a de cod egal˘ a cu 2, toate celelalte tranzit¸ii au distant¸a de cod unitar˘ a, rezult˘ a o valoare egal˘ a cu 12 pentru locusul st˘ arilor. (ˆIncercat¸i o alt˘ a plasare care ar duce la o valoare mai mic˘ a). Utilizˆ and aceast˘ a asignare rezult˘ a tabelul de tranzit¸ie al st˘ arilor din Figura 3.28-c, ˆın care s-au ˆınscris valorile obt¸inute pentru bit¸ii st˘ arii prezente z2 , z1 , z0 ¸si bit¸ii semnalelor de excitat¸ie w2 , w1 , w0 . Acest

367

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

starea Starea urmat/iesire prez. x=0 x=1 q0 q0/0 q1/0

z1

z1z2 0 1

q2

q3

q4

q2

q3/0

q5/1

Locusul starilor = 12 Varianta II z1z0 00 01 11 10 z

q3

q4/0

q5/0

0

q1/0

2

q3/0

2

1

q1/1

z1z0

q5

b)

00 x

01 1

11

10

0 1

x

x

x

1

01 0

11

10

0

00 0

1

0

x

x

x

00 0

01 0

11

10

0 1

x

1

x

z1z0

z1z2

x

q4

q0

a)

z2

2

q1

q2/1

q1/1

Starea prez. z2z1z0 q0 000 q1 100 q2 101 q3 111 q4 110 q5 001

2

q0/1

q5

z2

10

q1

q4

z2

Varianta I 01 11 q5

00 q0

q3

2 3

2

q1

2

q2 Locusul starilor = 15

Intrare x 0 1 0 1 0 1 0 1 0 1 0 1

W2

W1

W0

e)

Starea urmatoare x=0 x=1 w2 w1 w0 w2 w1 w0 q0 0 0 0 q1 1 0 0 q0 0 0 0 q2 1 0 1 q3 1 1 1 q5 0 0 1 q4 1 1 0 q5 0 0 1 q1 1 0 0 q3 1 1 1 q5 1 0 0 q1 1 0 0

c)

Starea prezenta z2 z1 z0 0

0

0

0

0

0

1

0

1

1

1

1

1

1

0

0

0

1

0 1 0 1 1 0 1 0 1 1 1 1

Starea urmatoare w1 w0 0 0 x 0 0 0 0 0 0 x 0 x 0 1 1 1 x x 1 0 1 1 0 x x x 0 1 0 0 1 x x 1 1 0 0 1 0 0 0 0

w2

d)

Figura 3.28 Exempificarea etapelor pentru sinteza expresilor de excitat¸ie: a) tabelul de tranzit¸ie al st˘ arilor/ie¸sirilor; b) variante st˘ arilor pe diagrama V-K; c,d) explicitarea tabelului de tranzit¸ie prin codurilor asigurate; e)diagramele V-k pentru determinarea expresiilor excitat¸ie w2 , w1 ¸si w0 .

semnalelor de mapare a introducerea funct¸iilor de

tabel poate fi transformat ˆın tabelul din Figura 3.28-d ˆın care valorile bit¸ilor de excitat¸ie au fost explicitate ˆın funct¸ie de bit¸ii st˘ arii prezente ¸si de valorile variabilei de intrare testat˘ a. Prin aceast˘ a explicitare, din acest tabel, se poate realiza sinteza expresiilor pentru w 2 , w1 , w0 ca funct¸ii de patru variabile: z2 , z1 , z0 ¸si x. Sinteza se poate simplifica prin introducerea lui x ca variabil˘ a reziduu ˆın valorile pentru w2 , w1 , w0 (notat¸iile dup˘ a acolade), rezultˆ and diagramele de trei variabile z2 , z1 , z0 reprezentate ˆın Figura 3.28-e. Expresiile pentru semnalele de excitat¸ie sunt: w2

=

z 2 z0 + z 1 z0 + z 0 x + z 0 x

w1

=

z 2 z0 x + z 1 z0 x

w0

=

z 2 z1 z0 + z 2 x

Pentru o implementare cu port¸i discrete, introducˆ and ca m˘ asur˘ a a dimensiunii num˘ arul S de intr˘ ari utilizate, rezult˘ a respectiv valorile 11, 7 ¸si 6, deci dimensiunea implement˘ arii Variantei I este SV arI = 24

368

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

ˆIn Varianta II plasarea st˘ arilor pe diagrama V-K s-a f˘ acut f˘ ar˘ a a c˘ auta obt¸inerea unei variat¸ii minime. S-au obt¸inut urm˘ atoarele expresii pentru semnalele de excitat¸ie. w2

=

z 1 x + z 2 z0 x

w1

=

z 2 z1 z0 + z 2 z0 + z 2 x

w0

=

z 2 z1 z0 x + z 1 z0 x + z 2 z1 x + z 2 z0 x

care realizeaz˘ a respectiv dimensiunile 6, 9 ¸si 16, iar pe ˆıntregul semiautomat SV arII = 31.

Codificarea cu dependent¸˘ a redus˘ a. Selectarea codurilor, luˆ and criteriu locusul st˘ arilor, are ˆın vedere doar modificarea valorilor variabilelor de stare ¸si efectul lor asupra funct¸iilor de excitat¸ie(valorile variabilelor st˘ arii urm˘ atoare). Dar, valorile variabilelor st˘ arii urm˘ atoare sunt dependente ¸si de valorile variabilelor de intrare testate ˆın simbolurile de decizie dintr-o organigram˘ a ASM . Modalitatea de asignare a st˘ arilor prin care s˘ a se ia ˆın considerare ¸si contribut¸ia intr˘ arilor ˆın funct¸iile de excitat¸ie este referit˘ a prin codificare cu dependent¸a˘ redus˘ a(de variabilele de intrare). Codificarea cu dependent¸a redus˘ a presupune ca st˘ arile urm˘ atoare ce se obt¸in prin tranzit¸ia din aceea¸si stare, ˆın urma test˘ arii unor variabile de intrare, s˘ a difere ˆıntre ele printr-un singur bit. Aceasta ˆınseamn˘ a ca expresia celor dou˘ a st˘ ari, care se obt¸in ˆın urma test˘ arii unei singure variabile x0 , s˘ a se exprime cˆ at mai simplu ˆın funct¸ie de aceasta variabil˘ a adic˘ a, s˘ a fie de forma, de exemplu, z 4 z3 x0 z1 z0 . Cele dou˘ a st˘ ari urm˘ atoare sunt z4 z3 0z1 z0 ¸si z4 z3 1z1 z0 . Dar dac˘ a ˆın acela¸si bloc de stare se testeaz˘ a ¸si a doua variabil˘ a de intrare x1 ¸si cuvintele care se obt¸in ˆın urma acestei test˘ ari trebuie s˘ a fie diferite tot printr-un singur bit, de exemplu z 4 x1 z2 z1 z0 , adic˘ a z4 0z2 z1 z0 ¸si z4 1z2 z1 z0 . ˆIncercarea de a codifica cu dependent¸a redus˘ a simultan dup˘ a dou˘ a variabile testate x1 , x0 nu este posibil˘ a. De exemplu, expresia z4 x1 x0 z1 z0 pentru st˘ arile urm˘ atoare poate genera urm˘ atoarele patru cuvinte z4 00z1 z0 , z4 01z1 z0 , z4 10z1 z0 ¸si z4 11z1 z0 care nu difer˘ a ˆıntre ele numai printr-un singur bit. Deci codificarea cu dependent¸a redus˘ a poate fi realizat˘ a doar ˆın funct¸ie numai de o variabil˘ a testat˘ a. Exemplul 3.11 Pentru automatul cu tabelul de tranzit¸ie al st˘arilor/ie¸sirilor din Figura 3.28-a s˘ a se realizeze o codificare cu dependent˘ a redus˘ a. Solut¸ie. Pentru a fi mai explicit˘ a aceast˘ a codificare din tabelul de tranzit¸ie al st˘ arilor s-a desenat organigrama ASM , Figura 3.29-a. ˆIn aceast˘ a organigram˘ a dup˘ a fiecare element de decizie s-a notat expresia codului pentru urm˘ atoarele dou˘ a st˘ ari ˆın funct¸ie de valoarea variabilei testate x. De exemplu, ˆın blocul de stare q1 expresia codurilor st˘ arilor urm˘ atoare este 00x ceea ce impune pentru valoarea lui x = 0 codul urm˘ ator s˘ a fie 000(q0 ), iar pentru x = 1 codul urm˘ ator s˘ a fie 001(q2 ), ˆıntre aceste dou˘ a coduri distant¸a de cod ste unitar˘ a. Pentru aceast˘ a codificare cu dependent¸a ˘ redus˘ a se obt¸ine tabelul de tranzit¸ie al st˘ arilor din Figura 3.29-b. Urmˆ and aceea¸si succesiune ˆın sintez˘ a ca la Exemplul 3.10 rezult˘ a expresiile pentru semnalele de excitat¸ie w2

=

z0 + z1 + z2 x

w1

=

z 2 z0 + z 1 z0 x

w0

=

z 2 z1 z0 + z 2 x

pentru care dimensiunea implement˘ arii cu port¸i discrete, considerˆ and criteriu num˘ arul de intr˘ ari, este S = 18. Se observ˘ a c˘ a ˆın expresiile semnalelor de excitat¸ie w2 , w1 ¸si w0 , variabila de intrare x intervine doar o singur˘ a dat˘ a(dependent¸a ˘ redus˘ a).

369

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

000 q0

0 x00

x 1

Starea prezenta z2 z1 z0

100

q0 0 0 0 q0 0 0 0 q1 1 0 1

q1

0 00x q2

0 101 q3

x

q5

1

x

q1 1 0 0 q0 0 0 0 q2 0 0 1

1 001 x 1 1x1

Starea urmatoare x=0 x=1 w2 w1 w0 w2 w1 w0

q2 0 0 1 q3 1 0 1 q5 1 1 1 q3 1 0 1 q4 1 1 0 q5 1 1 1 111

q4 1 1 0 q1 1 0 0 q3 1 0 1 q5 1 1 1 q1 1 0 0 q1 1 0 0

11x

0

110 q4

0

x

1

a)

b)

10x Figura 3.29 Codificare cu dependent¸a redus˘ a: a) organigrama ASM cu indicarea codurilor st˘ arilor ˆın funct¸ie de variabila de intrare testat˘ a, x; b) tabelul de tranzit¸ie al st˘ arilor. ,, Codificarea de tip unic-activ (“one-hot ). La codificarea de tip unic-activ cuvˆ antul de cod nu mai are lungimea de dlog2 se ci are lungimea de s bit¸i, adic˘ a atˆ a¸tia bit¸i ˆın cuvˆ antul de cod cˆ ate st˘ ari are automatul. O astfel de codificare pentru automatul cu ¸sase st˘ ari, din Exemplele 3.10 ¸si 3.11, este cea prezentat˘ a ˆın coloana a doua a Tabelului 3.3 ¸si care folose¸ste doar ¸sase cuvinte de cod din cele 2 6 cuvinte ,, de cod posibile, fiecare cuvˆ ant de cod avˆ and un singur bit egal cu unu(“unu-activ ). La prima vedere am fi tentat¸i s˘ a reject˘ am acest tip de asignare din cauza cre¸sterii dimensiunii registrului din calea de react¸ie. Acest registru, pentru un automat cu s st˘ ari, va avea s celule de memorare(bistabile) ¸si nu dlog 2 se celule ca la asign˘ arile prezentate pˆ an˘ a acum. Dar, la o anliz˘ a mai atent˘ a, v˘ azˆ and avantajele asignarea de tip unic-activ este preferat˘ a ˆın raport cu alte asign˘ ari mai ales la implement˘ arile integrate. Avantajul principal pentru asignarea one-hot conast˘ a ˆın simplitatea expresiilor celor s funct¸ii de excitat¸ie. Acest˘ a simplitate duce ˆın general la o reducere a dimensiunii circuitului combinat¸ional CLC1, Figura 3.25, care poate compensa ˆıntr-o

370

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

Tabelul 3.3 Modalit˘ a¸ti de asignare a st˘ arilor Numele

Asignare prin : Codul unic−activ

Codul unic−activ

starii

Codul cu initializare

z5 z4 z3 z2 z1 z0 z4 z3 z2 z1 z0 z3 z2 z1 z0 q0

0

0

0

0

0

1

0 0 0

0

0 0 0

0

0

q1

0

0

0

0

1

0

0 0 0

0

1 1 0

0

1

q2

0

0

0

1

0

0

0 0 0

1

0 1 0

1

0

q3

0

0

1

0

0

0

0 0 1

0

0 1 0

1

1

q4

0

1

0

0

0

0

0 1 0

0

0 1 1

0

0

q5

1

0

0

0

0

0

1 0 0

0

0 1 1

0

1

oarecare m˘ asur˘ a cre¸sterea dimensiunii p˘ art¸ii ordonate corespunz˘ atoare registrului. Pe un circuit integrat este de preferat cre¸sterea, intr-o oarecare m˘ asur˘ a, a dimensiunii p˘ art¸ii ordonate (registru) ˆın schimbul sc˘ aderii dimensiunii p˘ art¸ii neordonate (CLC). ˆIn plus, prin sc˘ aderea dimensiunii p˘ art¸ii combinat¸ionale, viteza de r˘ aspuns a automatului cre¸ste. De asemenea, acest˘ a simpitate duce la o sintez˘ a mult mai u¸soar˘ a ¸si, ˆın depanarea circuitului, necesit˘ a un timp mult mai redus. Pentru asignarea one-hot, din Tabelul 3.3, aplicat˘ a automatului cu tabelul de tranzit¸ie al st˘ arilor din Figura 3.28-a se obt¸in urm˘ atoarele expresii pentru semnalele de excitat¸ie. w5 = z 2 z 3 x

w2 = z 1 x

w4 = z 3 x

w1 = z 5 + z 4 x + z 2 z0 x

w3 = z 2 x + z 4 x

w0 = z 1 z2 z0 x

Exist˘ a o practic˘ a, destul de frecvent˘ a, ˆın proiectarea automatelor ca s˘ a se intro,, duc˘ a ¸si o stare de a¸steptare “idle care se codific˘ a printr-un cuvˆ ant numai de zero-uri sau mai rar numai din unu-uri. Codificarea numai prin zero-uri este practic˘ a deoarece printr-un semnal de RESET-are se poate ˆınscrie acest cuvˆ ant ˆın registrul de stare ¸si ,, automatul este adus ˆın starea de a¸steptare. ˆIn aceast˘ a stare de init¸ializare/“idle , q0 din organigrama din Figura 3.29, se ajunge fie prin init¸ializare, la punerea sub tensiune, sau fie prin resetare cˆ and automatul nu mai are nimic de efectuat. Introducˆ and aceast˘ a starea de init¸ializare pentru asignarea de tip one-hot se obt¸ine asignarea de tip one-hot modificat cu o reprezentare ca cea din coloana a treia a Tabelului 3.3. Funct¸iile de excitat¸ie, ˆın num˘ ar de (s − 1), ale automatului descris ˆın Figura 3.29-a, prin aplicarea asigur˘ arii one-hot modificat au urm˘ atoarele expresii w4 = (z1 z2 x)

w1 = z0 x

w3 = z 2 x

w0 = z 4 + z 3 x + z 4 z3 z2 z1 z0 x

w2 = z 1 x + z 3 x Al treilea termen din expresia lui w0 indic˘ a faptul c˘ a automatul este adus ˆın starea q0 (= 00 000) cˆ and nici una din celelalte st˘ ari nu este activ˘ a.

371

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Un exemplu de init¸ializare q0 (= 0 000) pentru o codificare obi¸snuit˘ a este prezentat ˆın coloana a patra din Tabelul 3.3. Toate st˘ arile, ˆın afar˘ a de cea de init¸ializare, au ˆın codul lor bitul cel mai semnificativ z3 egal cu 1, deci acest bit prin valoarea 1 indic˘ a faptul c˘ a automatul nu este ˆın starea de init¸ializare. ˆIn acest exemplu pentru ceilalt¸i trei bit¸i de stare z2 z1 z0 se folose¸ste ˆın codificarea st˘ arilor o num˘ arare ˆın binar natural 000, 001, 010 etc. Pentru toate modalit˘ a¸tiile de asignare a st˘ arilor prezente, ˆın general, num˘ arul de coduri utilizate (valide) s este mai mic decˆ at num˘ arul total de cuvinte de cod posibile. Diferent¸a ˆıntre aceste dou˘ a numere este num˘ arul de coduri neutilizate (ilegale). Dar ce influent¸a˘ negativ˘ a pot avea codurile neutilizate? Datorit˘ a unor funct¸ion˘ ari defectuoase ale circuitului, unor gre¸seli de proiectare, modificarea nea¸steptat˘ a a unei intr˘ ari(asincrone) sau la punerea sub tensiune, automatul poate intra ˆıntr-o stare ilegal˘ a. Odata intrat ˆıntr-o stare ilegal˘ a pot exista dou˘ a scenarii. Primul, funct¸ie dac˘ a starea ilegal˘ a a fost sau nu cuprins˘ a ˆın procesul de minimizare ¸si dac˘ a a fost ce valoare a primit ˆın diagrama V-K, dup˘ a cˆ ateva tacturi de clock se poate ajunge intr-o stare legal˘ a ¸si mai departe o funct¸ionare corect˘ a a automatului. Al doilea, ¸si cel mai dezastruos, dintr-o stare ilegal˘ a se poate trece ˆın alte st˘ ari ilegale, inchizˆ andu-se un ,, ciclu ˆıntre acestea iar din aceast˘ a funct¸ionare “ilegal˘ a se poate iesi numai printr-o oprire ¸si o repornire, dac˘ a nu se ajunge din nou tot ˆın funct¸ionare ilegal˘ a. ˆIn tratarea st˘ arilor ilegale, notate prin simbolul indiferent (don 0 t care) ˆın diagramele V-K din Figura 3.28-b ¸si c, pot exista dou˘ a abord˘ ari.

000

011

010

001

100

101

110

111

a) 111

100

010

000

101

110

b) 001

011

Figura 3.30 Variante de abordare a proiect˘ arii automatului ˆın raport cu considerarea st˘ arilor ilegale a) proiectare pentru cost minim; b) proiectare cu risc minim. Prima abordare a - costului minim - consider˘ a c˘ a automatul nu va intra niciodat˘ a intr-o stare ilegal˘ a. Prin urmare, ˆın procesul de sinteza pe diagramele V-K termenii canonici indiferent¸i sunt inclu¸si cu valoarea potrivit˘ a ˆımpreun˘ a cu alt¸i termeni canonici adiacent¸i astfel ˆıncˆ at s˘ a rezulte implicant¸i primi esent¸iali de suprafat¸a˘ cˆ at mai mare, ˆın consecint¸a˘ cost minim de implementare. A doua abordare - riscul minim - evit˘ a cantonarea automatului ˆıntr-o stare

372

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

ilegal˘ a. Aceast˘ a funct¸ionare se poate realiza prin proiectarea automatului astfel ˆıncˆ at din fiecare stare ilegal˘ a s˘ a existe o tranzit¸ie ˆıntr-o stare legal˘ a, ˆın general spre starea de init¸ializare (de cod 00 . . . 00). De exemplu, automatul din Figura 3.30-a utilizeaz˘ a numai patru din cele opt cuvinte de cod, celelalte patru cuvinte de cod constituie st˘ ari ilegale ale automatului. O proiectare cu risc minim va considera graful de tranzit¸ie al st˘ arilor din Figura 3.30-b ˆın care din st˘ arile ilegale 001, 011, 100 ¸si 111 exist˘ a tranzit¸ii spre starea de init¸ializare 000. 3.2.5.1

Intr˘ ari ¸si ie¸siri asincrone

La un automat sincron variat¸iile variabilelor de intrare au loc doar ˆın momentul aplic˘ arii impulsului de ceas, sunt sincrone (sunt e¸santionate/testate) cu semnalul de ceas. Aceste variat¸ii ˆımpreun˘ a cu cele ale st˘ arii prezente produc starea urm˘ atoare ¸si ie¸sirile. Atˆ at ie¸sirile cˆ at ¸si starea urm˘ atoare vor fi corecte dac˘ a se citesc, respectiv se ˆınscriu ˆın registrul de stare ¸si de ie¸sire, numai ˆın perioada regimului stabilizat, adic˘ a dup˘ a consumarea regimului tranzitoriu, vezi Figura 3.7-b. Chiar ¸si la un automat Mealy imediat se obt¸in ie¸siri corecte dac˘ a sunt citite (utilizate) dup˘ a consumarea regimului tranzitoriu. Nu la fel se ˆıntˆ ampl˘ a cˆ and intr˘ arile sunt asincrone. Semnalele asincrone de intrare nu mai au variat¸ii sincrone cu ceasul automatului, aceste semnale se pot modifica oricˆ and ˆın raport cu frontul activ de sincronizare al ceasului. Semnalele asincrone pe intrare pot proveni de la un alt sistem digital care este comandat cu un ceas diferit sau sunt culese din exterior de la traductori ai unor sisteme mecanice, termice, biologice etc. Variat¸ia semnalelor asincrone va produce modific˘ ari ˆın ie¸sirile de tip imediat (Mealy) care pot fi ˆınc˘ arcate de hazard dac˘ a sunt citite ˆınainte de consumarea regimului tranzitoriu. ˆIn schimb, variat¸ia semnalelor asincrone de intrare nu va produce o funct¸ionare incorect˘ a a automatului, prin ie¸siri ˆınc˘ arcate de hazard ¸si cuvinte de stare urm˘ atoare eronate, dac˘ a ˆınscrierea (memorarea) ˆın registrul de ie¸sire ¸si ˆın registrul de stare se face numai dup˘ a consumarea regimului tranzitoriu. S-a ar˘ atat ˆın sect¸iunea 3.2.1, Figura 3.6, c˘ a ˆınscrierea ˆıntr-un registru, la momentul iT al aplic˘ arii impulsului de ceas, al unui semnal care variaz˘ a ˆın intevalul interzis ∆ (iT − τSU , iT + τH ), nu poate fi o operat¸ie determinist˘ a. Dac˘ a ˆın acest interval semnalul are o variat¸ie de la 0 la 1 sau de la 1 la 0 ˆın registru nu se poate ¸sti exact dac˘ a valoarea ˆınscris˘ a este 0 sau 1. Aceast˘ a comportare nedeterminist˘ a se datoreaz˘ a funct¸ion˘ arii celulelor (bistabile) din care este construit registrul, explicat¸iile vor fi date ˆın sect¸iunea 3.3.1. ˆIn consecint¸a˘, daca variat¸ia semnalului asincron de intrare produce modific˘ ari ale ie¸sirii ¸si ale cuvˆ antului de stare urm˘ atoare chiar ˆın intervalul ∆ atunci ie¸sirea ˆınscris˘ a ˆın registrul de ie¸sire poate fi eronat˘ a iar codul ˆınscris ˆın registrul de stare poate fi unul ilegal sau poate fi unul care nu mai corespunde unei tranzit¸ii normale. Deci, iat˘ a cum o intrare asincron˘ a, prin efectele sale, poate produce o funct¸ionare incorect˘ aa unui automat. Efectele variat¸iei variabilei asincrone ˆın intervalul interzis ∆ nu pot fi eliminate dar pot fi atenuate printr-o asignare corespunz˘ atoare a st˘ arilor. Pentru segmentul de organigram˘ a din Figura 3.31-a, ˆın care se testeaz˘ a ¸si variabila asincron˘ a x∗0 (asincronismul unei intr˘ ari se noteaz˘ a, ˆın general, cu un asterisc), asignarea s-a realizat cu variat¸ie minim˘ a astfel ˆıncˆ at locusul st˘ arilor pentru acest segment are valoarea 3. Expresia cuvˆ antului de cod pentru st˘ arile q 2 , q3 ¸si q4 , ˆın funct¸ie de variabilele testate, x1 sincron˘ a ¸si x∗0 asincron˘ a, este ((x1 x∗0 ) (x1 x∗0 )x1 )

373

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Bloc de stare q0

z2 z1 z0 0 0 0

q0

0 x*0 0 1 L4 ((x1x*0)(x1x*0)x1) 100 010

L3 001 q3

q2

Starea prezenta

Intrari

a)

x1

x*0

0 0 0

0 1

q4

simbol q0 q0 q0

cod

simbolnz2

0 0 0 0 0 0 0 0 0

q4 q3 q2

L3

L2

q2

q3

Intrari

cod nz0

n z1

x1

x*0

0 1 0 1 0 0 0 0 0

0 0 0

0 1

b)

simbol q0 q0 q0

Bloc de stare q 1 q2

L4 011

q4

Starea prezenta cod

z2 z1 z0 0 0 0 0 0 0 0 0 0

Starea urmatoare simbolnz2 q4 q3 q2

cod nz0

n z1

0 1 1 1 1 1 0 0 1

Bloc de stare q0

q0

x*2 q1

0

x*0 0 1 ((x1x*0)(x1)1) 111

001

Bloc de stare q0

q0

x1

1

Starea urmatoare

z2 z1 z0

z2 z1 z0 0 0 0

q0

x1

1 L2

Bloc de stare q0

x*2 q1

x1 x*0

Bloc de stare q5

q3

q4

c)

q2

x1 q5

x*0 q3

q4

Figura 3.31 Analiza ambiguit˘ a¸tii aspra ˆınscrierii cuvˆ antului de stare urm˘ atoare generat˘ a de testarea unei variabile de intrare asincrona: a) printr-o codificare cu variat¸ie minim˘ a; b) printr-o codificare cu dependent¸a redus˘ a; c) introducerea unui bloc de stare suplimentar pentru eliminarea test˘ arii simultane a dou˘ a variabile asincrone. am cazul cˆ and x1 = 0, adic˘ a adic˘ a: nz2 = x1 x∗0 , nz1 = x1 x∗0 , nz0 = x1 . Consider˘ o tranzit¸ie din q0 ˆın q3 sau q4 , iar cuvˆ antul de cod al acestor dou˘ a st˘ ari se reduce a presupunem c˘ a ˆın intervalul ∆ la x∗ x∗0 1, deci nz2 = x∗0 , nz1 = x∗0 ¸si nz3 = 1. S˘ centrat pe frontul impulsului de ceas din momentul (i + 1)T , care marcheaz˘ a trecerea din blocul de stare q0 ˆın unul din blocurile de stare q3 sau q4 , variabila asincron˘ a x∗0 variaz˘ a de la valoarea 0 la valoarea 1. Conform celor prezentate anterior, ˆın fiecare din cele dou˘ a celule (z2 , z1 ) ale registrului de stare, pentru bit¸ii cuvˆ antului de stare nz 2 ¸si nz1 , se poate ˆınscrie fie 0, fie 1 neavˆ and un control determinist asupra acestui proces, ˆın consecint¸a˘ pot fi urm˘ atoarele patru cuvinte ˆınscrise pentru starea urm˘ atoare: 000, 010, 100 ¸si 110. 1. Pentru cuvˆ antul 100 ˆınscris ˆın registrul de stare: s-a realizat o comutat¸ie corect˘ a atˆ at ˆın celula z2 = 1 (nz2 = x∗0 = 1) cˆ at ¸si ˆın celula z1 = 0 (nz1 = x∗0 ), deci o a q3 . tranzit¸ie corect˘ a (L3 = x1 x∗0 = 0 · 1 = 1) ˆıntr-o stare legal˘

374

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

2. Pentru cuvˆ antul 010 ˆınscris ˆın registrul de stare: s-a realizat o comutat¸ie incorect˘ a atˆ at ˆın celula z2 = 0 (nz2 = x∗0 = 1) cˆ at ¸si ˆın celula z1 = 1 (nz1 = x∗0 = 0), deci o tranzit¸ie incorect˘ a ˆın starea q 4 (legal˘ a), pe o linie de tranzit¸ie dar care nu a fost activat˘ a (L4 = x1 · x∗0 = 0 · 1 = 0). 3. Pentru cuvˆ antul 000 ˆınscris ˆın registrul de stare: s-a realizat o comutat¸ie incorect˘ a ˆın celula z2 = 0 dar o comutat¸ie corect˘ a ˆın celula z1 (nz1 = x∗0 = 0), deci o tranzit¸ie incorect˘ a ˆın starea q0 , care este o stare legal˘ a a automatului dar pentru care nu exist˘ a nici o linie de tranzit¸ie, din L 0 ˆın L0 . 4. Pentru cuvˆ antul 110 ˆınscris ˆın registrul de stare: s-a realizat o comutat¸ie corect˘ a ˆın celula z2 = 1 dar o comutat¸ie incorect˘ a ˆın celula z1 = 1 (nz1 = x∗0 = 0), deci o tranzit¸ie incorect˘ a ˆıntr-o stare care nici nu este legal˘ a pentru automat. ˆIn concluzie, o codificare cu variat¸ie minim˘ a nu poate atenua efectele produse de modificarea unei variabile asincrone ˆın intervalul ∆ centrat pe un front al semnalului de ceas. Codificarea st˘ arilor cu dependent¸a˘ redus˘ a fat¸a˘ de o intrare asicron˘ a poate atenua influent¸a pe care o are aceasta asupra comutat¸iei st˘ arii automatului. ˆIn Figura 3.31-b s-a realizat segmentul de organigram˘ a ASM , analizat anterior, dar de data aceasta printr-o codificare cu dependent¸a redus˘ a fat¸a˘ de variabila asicron˘ a x ∗0 . Evident, nu se poate realiza simultan o codificare cu dependent¸a˘ redus˘ a dup˘ a dou˘ a variabile testate, adic˘ a atˆ at dup˘ a x1 cˆ at ¸si dup˘ a x∗0 (vezi sect¸iunea 3.25). Pentru x1 = 0 rezult˘ a tranzit¸iile la st˘ arile q3 ¸si q4 ale c˘ aror cuvinte de cod se pot exprima prin expresia (x1 x∗0 )(x1 )(1) = x∗0 11, deci numai un singur bit nz2 = x∗0 este dependent de valoarea variabilei asincrone testate. Considerˆ and ca anterior, variat¸ia variabilei x ∗0 de la 0 la 1, rezult˘ a c˘ a pot fi ˆınscrise ˆın registrul de stare urm˘ atoarele dou˘ a cuvinte de cod 011 ¸si 111. Cˆ and se ˆınscrie 111 este o tranzit¸ie la starea q 3 pe o cale de tranzit¸ie corect˘ a (L3 ), iar cˆ and se ˆınscrie 011 este o tranzit¸ie la q 4 pe o cale de tranzit¸ie incorect˘ a, L4 (dar nu ca ˆın cazul codific˘ arii cu variat¸ie minim˘ a cˆ and ap˘ areau c˘ ai de tranzit¸ie inexistente sau chiar st˘ ari ilegale). Evident, tranzit¸ia la q 4 este incorect˘ a dar care are consecint¸e atenuante. Dac˘ a tranzit¸ia a fost gre¸sit˘ a la q 4 ¸si dac˘ a pˆ an˘ a la urm˘ atorul impuls de clock (i+2)T intrarea x∗0 revine la valoarea 0, se consider˘ a c˘ a a fost un spike ˆın aceast˘ a intrare, tranzit¸ia a fost corect˘ a (neglijˆ and spike-ul). Dar dac˘ a variabila x ∗0 se ment¸ine la valoarea 1 acum se testeaz˘ a aceast˘ a valoare ˆın blocul de stare al lui q 4 deci evenimentul pe intrare a fost sesizat cu o ˆıntˆ arziere de un tact. Uneori, se poate realiza achizit¸ia semnalelor de intrare ˆıncˆ at acestea s˘ a nu se modifice la intervale de timp mai scurte decˆ at dou˘ a perioade ale impulsului de ceas. Dar dac˘ a ˆıntr-un bloc de stare se testeaz˘ a dou˘ a sau mai multe variabile asincrone cum se pot atenua efectele modific˘ arii simultane a acestor variabile asupra ambiguit˘ a¸tii care poate ap˘ area la ˆınscrierea cuvˆ antului de stare urm˘ atoare? Pentru aceste cazuri, deoarece nu se poate realiza o codificare cu dependent¸a˘ redus˘ a simultan dup˘ a dou˘ a sau mai multe variabile de intrare testate ˆın acela¸si bloc de stare, solut¸ia este introducerea de st˘ ari suplimentare ¸si testarea ˆıntr-un bloc de stare doar a unei singure variabile asincrone. ˆIn Figura 3.31-c se testeaz˘ a ˆın blocul de stare q 0 dou˘ a variabile de intrare asincrone x∗2 ¸si x∗0 . Prin introducerea st˘ arii suplimentare q5 se transfer˘ a ator lui q5 . Trebuie analtestarea variabilei asincrone x∗0 ˆın blocul de stare corespunz˘ izat ce ie¸sire se va genera ˆın blocul de stare q 5 pentru ca s˘ a nu se modifice funct¸ionarea

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

375

automatului(de dorit s˘ a se genereze aceea¸si ie¸sire ca ¸si ˆın blocul de stare q 0 ). Apare a doua ˆıntrebare referitoare la existent¸a mai multor variabile asincrone testate, prin secvent¸ializarea lor ˆın blocuri de stare succesive nu este pierdut˘ a semnificat¸ia lor? R˘ aspunsul este negativ deoarece variabilele asincrone nu sunt percepute ˆın automat, prin testare, ca formˆ and un cuvˆ ant de cod ci numai ca semnale cu interpretare independent˘ a (f˘ ar˘ a o corelare intre ele). Codificarea cu dependent¸a˘ redus˘ a, pentru evitarea ambiguit˘ a¸tii tranzit¸iei st˘ arilor, ˆın procesul de sintez˘ a a automatului se va reflecta ˆıntr-o anumit˘ a structur˘ a obt¸inut˘ a pentru circuitul combinat¸ional CLC1, Figura 3.25, care calculeaz˘ a funct¸iile de excitat¸ie. Dar aspecte de funct¸ionare incorect˘ a pot apare nu numai pentru calculul st˘ arii urm˘ atoare ci ¸si pentru calculul ie¸sirilor care se realizeaz˘ a cu partea combinat¸ional˘ a notat˘ a prin CLC2 pe Figura 3.25. Pentru un automat Mealy imediat, Figura 3.25, 3.8-a, chiar ¸si cˆ and intr˘ arile sunt sincrone, se obt¸in aproape totdeauna ie¸siri care sunt ˆınc˘ arcate cu hazard. La ie¸sirea circuitului CLC2, realizat pe dou˘ a niveluri logice, nu se produc semnale ˆınc˘ arcate cu hazard numai dac˘ a ˆın configurat¸ia de intrare se modific˘ a cel mult un bit. Dar configurat¸ia de intrare este definit˘ a pe produsul cartezian X × Q ceea ce ˆınseamn˘ a c˘ a, uzual, se modific˘ a doi bit¸i unul pe intrare ¸si unul ˆın cuvˆ antul de stare. Dac˘ a exist˘ a ¸si intrare de tip asincron variat¸iile acesteia se transmit direct ˆın ie¸siri ce pot fi ˆınc˘ arcate cu hazard pe durata tranzitorie. Funct¸ionarea incorect˘ a a automatului Mealy imediat poate fi evitat˘ a dac˘ a acesta este transformat ˆıntr-un automat Mealy cu ˆıntˆ arziere, Figura 3.8-b. Deoarece la automatul Mealy cu ˆıntˆ arziere ie¸sirile sunt disponibile (dup˘ a ˆınscrierea ˆın registrul de ie¸sire R2 cˆ and s-a consumat regimul tranzitoriu) numai la urmatorul impuls de clock; trebuie ¸tinut cont c˘ a efectul unei intr˘ ari se manifest˘ a la ie¸sire cu o ˆıntˆ arziere de un tact. Dar dac˘ a exist˘ a o intrare asincron˘ a aspectul de ambiguitate discutat anterior,la ˆınscrierea bit¸ilor ˆın registrul de stare, apare ¸si aici la ˆınscrierea(memorarea) ie¸sirilor ˆın registrul de ie¸sire R 2 . Aceast˘ a ambiguitate apare atunci cˆ and intrarea asincron˘ a are o modificare ˆın intervalul interzis al impulsului de ceas aplicat registrului de ie¸sire R2 . ˆIn concluzie pentru un automat Mealy cu ˆıntˆ arziere ¸si cu cel put¸in o intrare asincron˘ a nu sunt garantate semnale de ie¸sire corecte. Ambiguitatea pe ie¸sire la un Mealy cu ˆıntˆ arziere, determinat˘ a de intr˘ ari asincrone, poate fi eliminat˘ a dac˘ a automatul este transformat ˆıntr-un automat Moore imediat echivalent. Automatul Moore imediat, Figura 3.8-c, genereaz˘ a, la fel ca ¸si Mealy cu ˆıntˆ arziere, ie¸siri care sunt dependente de intrarea aplicat˘ a ˆın tactul anterior. Intr˘ arile asincrone la automatul Mealy imediat nu genereaz˘ a ambiguitate pe ie¸siri deoarece acestea nu sunt cuplate direct cu intr˘ arile, modificarea intr˘ arilor se transmite la ie¸sire prin intermediul st˘ arii automatului. Dar automatul Moore imediat poate genera ie¸siri ˆınc˘ arcate cu hazard. Hazardul se datoreaz˘ a circuitului combinat¸ional CLC2 de pe ie¸sire, ce produce hazard atunci cˆ and ˆın configurat¸ia sa de intrare, care este cuvˆ antul de stare prezenta, se modific˘ a mai mult de un bit. Se poate elimina hazardul din ie¸sire prin dou˘ a modalit˘ a¸ti de implementare. Prima, se elimin˘ a circuitul CLC2, adic˘ a ie¸sirile sunt identice cu starea Y ≡ Q (caz uzual la circuitele num˘ ar˘ ator). A doua modalitate const˘ a ˆın transformarea automatului Moore imediat ˆıntr-un automat Moore cu ˆıntˆ arziere, Figura 3.8-d. Dar la automatul Moore cu ˆıntˆ arziere efectul modific˘ arii intr˘ arii se manifest˘ a la ie¸sire cu o ˆıntˆ arziere de dou˘ a tacturi.

376

3.2.6

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

Proiectarea automatelor sincrone

Definirea unui automat cu s st˘ ari necesit˘ a descrierea funct¸ion˘ arii automatului ˆın raport cu fiecare din aceste st˘ ari, deci, evident, complexitatea automatului C automat dimensiunea definit¸iei - are ordinul de m˘ arime C automat ∈ O(s). Pentru un automat cu s st˘ ari cea mai mic˘ a valoare a num˘ arului de intr˘ ari secundare este egal˘ a k = dlog 2 se. Pentru n intr˘ ari principale dimensiunea circuitelor CLC1 ¸si CLC2, din Figura 3.25, depinde de num˘ arul total de intr˘ ari n + k. Neglijˆ and num˘ arul de intr˘ ari principale, (n = 0), ˆın cazul general dimensiunea circuitelor combinat¸ionale ale automatului sunt proport¸ionale cu 2k (dar s = 2k ) deci Cautomat ∈ (2k ). ˆIn concluzie, rezult˘ a c˘ a pentru un automat complexitatea sa este ˆın acela¸si ordin de m˘ arime cu dimensiunea circuitului combinat¸ional asociat. Aceast˘ a concluzie sugereaz˘ a faptul c˘ a proiectarea unui automat de complexitate redus˘ a implic˘ a realizarea unei structuri reduse de circuit combinat¸ional. Reducerea dimensiunii p˘ art¸ii combinat¸ionale a unui automat, ce face parte dintrun sistem digital, direct¸ioneaz˘ a proiectarea spre divizarea ˆıntr-o cale de date ¸si o cale de control (automat de control). Dar chiar ¸si prin aceast˘ a reducere poate rezulta pentru un automat de control, sau pentru automatele funct¸ionale - care implementeaz˘ a diferite funct¸ii, de o complexitate destul de ridicat˘ a. Solut¸ia pentru reducerea acestei complexit˘ a¸ti este partajarea ˆın mai multe automate de complexitate mai redus˘ a ¸si apoi interconectarea acestora, Figura 3.20 ¸si 3.21 ˆIn proiectarea unui automat sincron se parcurg urm˘ atoarele etape: 1. Descrierea funct¸ion˘ arii automatului. Aceast˘ a descriere poate fi a unui automat complex dar care prin partajare duce la mai multe automate fiecare definit apoi separat sau poate fi descrierea unui automat autonom. Descrierea poate fi direct sub forma unei organigrame ASM , a unui graf de tranzit¸ie al st˘ arilor/ie¸sirilor sau se transpune sub una din aceste forme dintr-o descriere verbal˘ a. 2. Construirea tabelului de tranzit¸ie al st˘ arilor/ie¸sirilor ¸si reducerea st˘ arilor redundante. 3. Codificarea st˘ arilor ¸si construirea tabelului de tranzit¸ie asignat pentru st˘ ari ¸si ie¸siri. 4. Sinteza funct¸iilor de excitat¸ie (starea urm˘ atoare) ¸si a ie¸sirilor. 5. Implementarea, ˆıntr-o anumit˘ a tehnologie, ¸si apoi testarea. 6. Elaborarea documentat¸iei. Operat¸iile cuprinse ˆın aceste etape au fost prezentate ˆın sect¸iunile anterioare acum vor fi reluate ˆın cadrul unui exemplu: Exemplul 3.12 S˘a se realizeze sinteza automatului sincron descris prin organigrama ASM din Figura 3.32-a. Solut¸ie. Automatul prezint˘ a trei intr˘ ari x2 , x1 , x0 ¸si cinci ie¸siri y1 , y2 L , y4 ie¸siri imediate condit¸ionate(de tip Mealy) ¸si y3 , y5 ie¸siri imediate dependente de stare(de tip Moore). Codul celor cinci stari q0 ÷ q5 rezult˘ a prin plasarea acestora pe o diagrama V-K, Figura 3.32-b. Se descompune diagrama ASM ˆın 6 blocuri de stare B0 ÷ B5 ˆın care se identific˘ a 11 c˘ ai de tranzit¸ie L1 ÷ L11 . ˆIn Figura 3.32-c se calculeaz˘ a valoarea locusului st˘ arilor, care este

377

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

y1

q0

F

z2 z1 z0 0 0 0

x2

b)

F x 2

q1

A

A x 0 F 110 y5

q3

y4

q4

F x 1 A y1

y4,y5 q5

100 y3,y2_L x2

a)

x2x1x0 x0 x0 z2z1z0 000 001 011 010 110 111 101 100

010 B1 B1 B1 B1 B1 B1 B1 B1 110 B3 B3 B3 B3 B3 B3 B3 B3 z2 z0

111 100 B5 B5 B5 B5 B5 B5 B5 B5 d)

x1

x1

q2

L7

q4 L5 L8

10 L2 q1

q3

q5

L4

L9

Cod stare

q0 q1 q2

0 bit 1 bit 1 bit

x2x1 x2 x2x1

z2z1z0

B1,L4 :q1 B1,L5 :q1

q3 q4

1 bit 1 bit

x0 x0

z2z1z0

B2,L6 :q2 B2,L7 :q2

q0 q4

1 bit 1 bit

x2 x2

z2z1z0

B3,L8 :q3 B3,L9 :q3

q4 q5

2 biti 1 bit

x1 x1

z2z1z0

B4,L10 :q4 B4,L11 :q5

q0 q0

2 biti 1 bit 12 biti

c)

z2z1z0 z2z1z0

x2 x2x1x0 x0 x0 z2z1z0 000 001 011 010 110 111 101 100 000 L1 L1 L3 L3 L2 L2 L2 L2 001 L6 L6 L6 L6 L7 L7 L7 L7

z0

011 L10 L10 L10 L10 L10 L10 L10 L10

z1 z1 z2

101

L3

11

B0,L1 :q0 B0,L2 :q0 B0,L3 :q0

001 B2 B2 B2 B2 B2 B2 B2 B2 011 B4 B4 B4 B4 B4 B4 B4 B4

01

Biti Bloc,Cale,Tranzitie modificati Tranzitie

000 B0 B0 B0 B0 B0 B0 B0 B0 z0

00

L11 q0 L10

1 y2_L 010

y1,y3

z1z0 0

A

F x 1 A 001 q2

z2

010 L4

L5 L5 L4 L4 L5 L5 L4

110 L8 L8 L9 L9 L9 L 9 L8 L8 z0

111

z1 z1

101 100 L11 L11 L11 L11 L11 L11 L11 L11

e)

x1

x1

Figura 3.32 Exemplu de extragere dintr-o organigrama ASM (a) a blocurilor de stare, a c˘ ailor de tranzit¸ie cu expresiile logice corespunz˘ atoare (c) ¸si plasarea st˘ arilor pe o diagram˘ a V-K (b) pentru obt¸inerea unui minim pentru locusul st˘ arilor. Contribut¸ia blocurilor de stare (d) ¸si a c˘ ailor de tranzit¸ie (e) la descrierea automatului.

378

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

egal˘ a cu 12, ¸si pentru fiecare cale de tranzit¸ie ¸si pentru fiecare stare este prezentat˘ a expresia logic˘ a. Apoi, pentru o sistematizare ¸si explicitare a procesului de sintez˘ a ˆın Figura 3.32-d ¸si Figura 3.32-c sunt prezentate respectiv contribut¸iile blocurilor ¸si c˘ ailor de tranzit¸ie la descrierea automatului. Tabelul de tranzit¸ie al st˘ arilor/ie¸sirilor (de tip Mealy) cu 6 st˘ ari ¸si 3 intr˘ ari ar cuprinde 6 · 23 = 48 de elemente. Dar pentru c˘ a nu exist˘ a tranzit¸ii ˆıntre st˘ ari pentru toate configurat¸iile de intrare posibile, tabelul de tranzit¸ie (complet) se va substitui cu o forma simplificat˘ a de tabel care cuprinde 11 linii, cˆ ate una pentru fiecare cale de tranzit¸ie, ¸si dou˘ a coloane (una pentru starea prezent˘ a ¸si alta pentru starea urm˘ atoare, similar se va realiza un tabel ¸si pentru ie¸siri). Tabelele se vor construi sub form˘ a simbolic˘ a ¸si apoi sub form˘ a asignat˘ a. Tabelul de tranzit¸ie al st˘ arilor sub form˘ a simbolica ¸si asignat˘ a este prezentat ˆın Figura 3.33-a. Pentru ie¸siri se disting dou˘ a tabele unul pentru ie¸siri dependente numai de stare (de tip Moore) ¸si unul pentru ie¸siri condit¸ionate (de tip Mealy). Tabelul pentru ie¸sirile de tip Moore y3 , y5 , Figura 3.33-b, cuprinde doar st˘ arile ¸si valorile corespunz˘ atoare ale ie¸sirilor. ˆIn schimb, tabelul pentru ie¸sirile de tip Mealy, Figura 3.33-c, este construit, ca ¸si cel al st˘ arilor, pentru toate c˘ aile de tranzit¸ie ¸si st˘ arile respective. Dar ie¸sirile condit¸ionate y1 , y2 L , y1 , figurate ˆın simbolurile de ie¸siri condit¸ionate, sunt prezente ¸si ˆın simbolurile de a ˆıntr-o stare, poate stare: y1 ˆın q0 ¸si q2 , y2 L ˆın q5 ¸si y4 ˆın q4 . O ie¸sire de tip Moore, figurat˘ fi convertit˘ a formal ˆıntr-o ie¸sire condit¸ionat˘ a dac˘ a acea ie¸sire este introdus˘ a pe fiecare cale de tranzit¸ie care porne¸ste din acea stare. Procedˆ and ˆın acest fel ie¸sirile y1 , y2 L ¸si y4 vor fi tratate ca fiind active pe toate c˘ aile de tranzit¸ie care pornesc respectiv din blocurile de stare B0 , B2 , B5 ¸si B4 , ˆın consecint¸a ˘ se introduc ˆın tabel pe toate aceste c˘ ai. Deci, pentru sintez˘ a, aceste ie¸siri nu mai sunt reprezentate ¸si de tip Mealy ¸si de tip Moore, ci numai de tip Mealy. Concentrˆ and ˆın acela¸si tabel atˆ at tranzit¸ia st˘ arilor cˆ at ¸si ie¸sirile condit¸ionate ¸si de stare se obt¸ine forma reprezentat˘ a ˆın Figura 3.34. Utilizˆ and valorile din acest tabel, transcrise pe diagrama V-K, se pot deduce expresiile pentru ie¸siri ¸si pentru funct¸iile de excitat¸ie (bit¸ii st˘ arii urmatoare). Pentru ie¸sirile dependente de stare y3 ¸si y5 expresiile logice se obt¸in dintr-un tabel V-K, cu opt c˘ asut¸e, de variabile z2 , z1 ¸si z0 . y3 = z1 (z2 + z0 ) y5 = z1 (z2 + z0 ) Funct¸iile de excitat¸ie w2 , w1 , w0 ¸si ie¸sirile condit¸ionate y4 , y2 L , y1 sunt dependente de ¸sase variabile, x2 , x1 , x0 , z2 , z1 , z0 deci se obt¸in din tabele V-K cu 64 c˘ asut¸e. Deoarece acestea au fost explicitate doar ˆın funct¸ie de 11 c˘ ai de tranzit¸ie expresiile lor se pot deduce mai u¸sor ca sum˘ a logic˘ a numai de acele c˘ ai pentru care au valoarea 1, iar pentru minimizare se utilizeaz˘ a diagrama V-K din Figura 3.32-e unde s-au mapat deja contribut¸iile fiec˘ arei c˘ ai de tranzit¸ie. Se obt¸in urm˘ atoarele expresii: w 2 = L 4 + L 9 = z 2 z1 z0 x 0 + z 2 z1 x 1 w 1 = L 2 + L 4 + L 5 + L 7 + L 8 = z 2 z1 x 2 + z 2 z1 z0 + z 2 z1 x 1 w 0 = L 3 + L 6 + L 7 + L 8 = z 2 z1 z0 x 2 x 1 + z 2 z1 z0 + z 2 z1 x 1 y4 = L5 + L7 + L10 = z2 z1 x0 + z1 z0 x2 + z1 z0 y2 L = L1 + L3 + L4 + L5 + L6 + L7 + L8 + L9 + L11 = L2 + L10 = z2 z1 z0 x2 + z1 z0 y 1 = L 1 + L 2 + L 3 + L 6 + L 7 + L 9 = z 2 z1 + z 2 z1 x 1 ˆIn acela¸si mod se pot deduce ¸si expresiile pentru y3 ¸si y5 y3 = L6 + L7 + L11 = z1 z0 + z2 z1 = z1 (z2 + z0 ) y5 = L8 + L9 + L1 0 = z2 z1 + z1 z0 = z1 (z2 + z0 )

379

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS Reprezentare simbolica Intrari x2

x1

F A F

F

x0

A F A

F A F A

Reprezentare asignata

Bloc Starea cale de Prezenta Urmat. tranzitie q0 q0 q0 q1 q1 q2 q2 q3 q3 q4 q5

q0 q1 q2 q3 q3 q0 q4 q4 q5 q0 q0

B0,L1 B0,L2 B0,L3 B1,L4 B1,L5 B2,L6 B2,L7 B3,L8 B3,L9 B4,L10 B5,L11

x2

Intrari x1 x0

z2

0

0 1 0

0 0 0 0 0 0 0 1 1 0 1

1 0 1

0 1 0 1

Starea prezenta z1 z0 0 0 0 1 1 0 0 1 1 1 0

0 0 0 0 0 1 1 0 0 1 0

Starea urmatoare w2 w1 w0 0 0 0 1 0 0 0 0 1 0 0

0 1 0 1 1 0 1 1 0 0 0

0 0 1 0 1 0 1 1 0 0 0

a) Iesiri de stare (Moore) Reprezentare simbolica Stare prezenta q0 q1 q2 q3 q4 q5

b)

y3

A

y5

A A

A

Reprezentare asignata

Bloc

z2

Starea prezenta z1 z0 0 0 1 0 1 0

0 1 0 1 1 0

0 0 0 1 0 1

B0 B1 B2 B3 B4 B5

Iesiri y3

y5

0 0 1 0 0 1

0 0 0 1 1 0

Iesiri conditionate (Mealy) Reprezentare simbolica x2 F A F

Reprezentare asignata

Intareri Starea Iesiri x1 x0 prezenta y4 y2−1 y1 F A F A

F A F A

q0 q0 q0 q1 q1 q2 q2 q3 q3 q4 q5

A

A A A

A A A

A

A A

Bloc de stare tranz. B0,L1 B0,L2 B0,L3 B1,L4 B1,L5 B2,L6 B2,L7 B3,L8 B3,L9 B4,L10 B5,L11

x2 0 1 0

Intrari Starea prezenta Iesiri x1 x0 z2 z1 z0 y4 y2−1 y1 0 1 0 1

0 1 0 1

0 0 0 0 0 0 0 1 1 0 1

0 0 0 1 1 0 0 1 1 1 0

0 0 0 0 0 1 1 0 0 1 0

0 0 0 1 0 1 0 0 0 1 0

1 0 1 1 1 1 1 1 1 1 0

1 1 1 0 0 1 1 0 1 0 0

c)

Figura 3.33 Tabelele de tranzit¸ie ˆın reprezentare simbolic˘ a ¸si asignat˘ a pentru st˘ ari (a) pentru ie¸sirile dependente doar de stare (b) ¸si pentru ie¸sirile condit¸ionate (c)

380

3.2. CIRCUITE LOGICE SECVENT ¸ IALE SINCRONE

calea Intrari Starea Starea prezenta urmatoare de tranz. x2 x1 x0 simbolz2 z1 z0 simbolw2 w1 w0 L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11

0 1 0

0 1 0 1

0 1 0 1

q0 q0 q0 q1 q1 q2 q2 q3 q3 q4 q5

0 0 0 0 0 0 0 1 1 0 1

0 0 0 1 1 0 0 1 1 1 0

0 0 0 0 0 1 1 0 0 1 0

q0 q1 q2 q3 q4 q0 q4 q4 q5 q0 q0

0 0 0 1 0 0 0 0 1 0 0

0 1 0 1 1 0 1 1 0 0 0

0 0 1 0 1 0 1 1 0 0 0

Iesiri conditionate dependente de stare y3 y5 y4 y2−1 y1 0 0 0 0 0 1 1 0 0 0 1

0 0 0 0 0 0 0 1 1 1 0

0 0 0 0 1 0 1 0 0 1 0

1 0 1 1 1 1 1 1 1 0 1

1 1 1 0 0 1 1 0 1 0 0

Figura 3.34 Tabelul combinat pentru st˘ ari, ie¸siri dependente de stare ¸si ie¸siri condit¸ionate. Aceste expresii pot fi implementate prin oricare din variantele de realizare a unui circuit logic combinat¸ional: port¸i logice, DMUX+nivel exterior de SAU ad˘ augat, MUX, circuite ROM sau circuite PLA. Organizarea automatului, ˆın care s-au separat circuitele pentru: calculul funct¸iei de tranzit¸ie CLC1, pentru calculul ie¸sirilor de tip Mealy CLC2 ¸si pentru calculul ie¸sirilor de tip Moore, este prezentat˘ a ˆın Figura 3.35-a. Expresiile obt¸inute anterior prin minimizare necesit˘ a ˆın total realizarea a 16 produse logice distincte de dou˘ a pˆ an˘ a la cinci variabile, dar numai trei produse logice din cele 19 sunt utilizabile de dou˘ a ori (z2 z1 x1 , z2 z1 x1 ¸si z1 z0 ). Implementarea automatului pe o matrice PLA, reprezentat˘ a generic ˆın Figura 3.35-b, poate fi realizat˘ a, mai simplu, f˘ ar˘ a minimizarea expresiilor logice. ˆIn aceast˘ a implementare fiecare poart˘ a AND realizeaz˘ a un termen produs logic dintre expresia logic˘ a a unei c˘ ai de tranzit¸ie ¸si expresia logic˘ a a cuvˆ antului de cod al st˘ arii din care porne¸ste calea de tranzit¸ie respectiv˘ a, Figura 3.32-c. De exemplu, ˆın blocul de stare B2 expresia c˘ aii de tranzit¸ie L7 este x iar expresia cuvˆ antului de stare este z2 z1 z0 , deci pe coloana notat˘ a cu L7 din matricea programabil˘ a AND a circuitului PLA se programeaz˘ a produsul logic xz2 z1 z0 . Procedˆ and ˆın acest mod, f˘ ar˘ a a mai fi necesar˘ a minimizarea expresiilor, pentru c˘ aile de tranzit¸ie L 1 ÷ L11 sunt necesare 11 port¸i AND din circuitul PLA fat¸a ˘ de 16 port¸i AND cˆ and pentru sintez˘ a s-a utilizat minimizarea expresiilor pe diagrame V-K. Dar, atˆ at ie¸sirile de tip Mealy (y 1 , y2 L ¸si y4 ) cˆ at ¸si cele de tip Moore (y3 ¸si y5 ) fiind imediate sufer˘ a de inconvenientul acestor automate cu ie¸siri imediate adic˘ a, sunt afectate de hazard. Hazardul se produce cˆ and cel put¸in dou˘ a variabile de intrare ˆın CLC2 sau ˆın CLC3 se modific˘ a. De exemplu, pe calea de tranzit¸ie L10 , cˆ and starea comut˘ a de la 011 la 000, dac˘ a prin celula de registru de stare z1 comutat¸ia de la 1 la 0 se propag˘ a mai repede decˆ at comutat¸ia de la 1 la 0 prin celula z0 atunci pe ie¸sirea y3 , prin termenul z1 z0 , se genereaz˘ a un glitch 1. Solut¸ia pentru eliminarea hazardului pe ie¸siri este cea general˘ a - ie¸sirile s˘ a fie convertite din ie¸siri imediate ˆın ie¸siri ˆıntˆ arziate prin introducerea de registre pe ie¸sire.

Prezentarea pˆ an˘ a acum a automatelor a fost lipsit˘ a de explicat¸iile necesare realiz˘ arii registrelor de stare ¸si de ie¸sire precum ¸si a celulelor acestora. Acestea vor fi

381

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

y3 CLC3

. ... . . .. .... ..

x2 x1 x0

. .. .

CLK

x0

.. .. .

L1

x1 z0 z1 z2

y1 y4 w2 w1

CLC1 z2

L2

.. .. .

L3

L4

.. . .

L5

. .. .

.. . .. . . . . . .. . z2 z1 z0

b)

y2_L

CLC2

w2

Registru

z1 z0

a)

x2

y5

. . .. . .. .

L6

. . .. . . .. ..

L7

. .. .

L8

Registru

L9

. .. .

L10 L11

.. . . .. . ... .. .

.. . . .

y3 y5 y1 y2_L y4 w0 w1 w2

w2 w1 w0

CLK

Figura 3.35 Explicativ˘ a pentru Exemplul 3.12 a) structurarea pe subcircuite a automatului; b) implementarea(f˘ ar˘ a minimizare) a automatului

382

3.3. CIRCUITE BASCULANTE

clarificate ˆın cadrul sect¸iunilor urm˘ atoare de bistabile ¸si de registre. S¸i ˆın capitolul de CLS, similar ca ˆın capitolul de CLC, s-a pornit cu prezentarea not¸iunilor fundamentale de organizare ¸si funct¸ionare a circuitului logic secvent¸ial, s-au expus modalit˘ a¸ti de exprimare pentru funct¸ia de tranzit¸ie g ¸si de transfer f , trecˆ and apoi la descrierea unei metode prin care se poate face sinteza unui circuit logic secvent¸ial (automat)). Evident, cu aceste cuno¸stin¸se ¸si instrumente se poate proiecta un CLS. Dar, a¸sa cum s-a afirmat, dac˘ a sistemul este de complexitate ridicat˘ a acesta se va partaja ˆın automate de complexitate mai redus˘ a. ˆIn general, se caut˘ a s˘ a rezulte prin partajare automate componente de larg˘ a utilitate care sunt ni¸ste circuite, de facto, standard. Aceste circuite de facto standard exist˘ a deja implementate ¸si obtenabile comercial, sarcina proiectantului reducˆ andu-se la a selecta circuitul ¸si a-i folosi optim toate facilit˘ a¸tile ˆın sistem mai complex ˆın care ˆıl introduce. ˆIn continuare, ˆın subcapitolele care urmeaz˘ a, se vor prezenta unele din aceste circuite secvent¸iale cu aplicabilitate foarte extins˘ a ˆın sistemele digitale.

3.3

CIRCUITE BASCULANTE

Structurarea cea mai simpl˘ a pentru un circuit secvent¸ial asincron din Figura 3.1 se obt¸ine cˆ and partea combinat¸ional˘ a se reduce doar la un singur inversor. Un astfel de circuit, care a fost descris ˆın Figura 3.3-a din Exemplul 3.2, nu prezint˘ a nici o stare stabil˘ a, deci este un oscilator. Acest circuit va prezenta dou˘ a st˘ ari stabile dac˘ a partea combinat¸ional˘ a va fi compus˘ a din dou˘ a inversoare (sau un num˘ ar par de inversoare) ˆınseriate, Figura 3.4-b, din acela¸si exemplu. Dar, acest circuit cu dou˘ a inversoare poate fi privit ca un circuit cu un singur inversor a c˘ arui react¸ie se realizeaz˘ a prin cel˘ alalt inversor, deci fiecare inversor are o react¸ie - ie¸sirea este adus˘ a la intrare - prin cel˘ alalt inversor. Circuitul astfel rezultat, cu dou˘ a react¸ii - cˆ ate una pentru fiecare inversor, constituie celula pe care se bazeaz˘ a ˆıntreaga clas˘ a de cicuite basculante. Se pot diferent¸ia aceste circuite basculante ˆın funct¸ie de modul de realizare, ˆın curent continuu sau ˆın curent alternativ, a celor dou˘ a conexiuni de react¸ie. Conform acestei diferent¸ieri rezult˘ a urm˘ atoarele tipuri de cicuite basculante: 1. Circuitele basculante bistabile, care reduse la celula de baz˘ a, prezint˘ a pentru cele dou˘ a conexiuni de react¸ie leg˘ aturi galvanice simetrice. Acestea sunt circuitele latch ¸si circuitele basculante bistabile (triggere) care realizeaz˘ a suportul fizic pentru funct¸ia de memorare a unui bit. Exist˘ a ¸si o variant˘ a ˆın care cele dou˘ a leg˘ aturi galvanice de react¸ie nu mai sunt simetrice, aceast˘ a variant˘ a cunoscut˘ a sub denumirea de trigger Schmitt ¸si a c˘ arei utilizare este de circuit discrimitator de nivel(releu de amplitudine). 2. Circuitul basculant monostabil, care prezint˘ a o conexiune de react¸ie ˆın curent continuu iar cealalt˘ a ˆın curent alternativ (conexiune prin condensator). Aceast˘ a neidentitate a celor dou˘ a conexiuni de react¸ie determin˘ a ca cicuitul s˘ a aib˘ a o stare stabil˘ a (monostabil) iar cealalt˘ a stare instabil˘ a. Utilitatea monostabilului este aplicat¸ii de generare de intervale de timp(releu de timp). 3. Circuitul basculant astabil, care prezint˘ a ambele conexiuni de react¸ie ˆın curent alternativ (conexiuni prin condensator). Cele dou˘ a conexiuni fiind active

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

383

doar la variat¸ii ˆıi imprim˘ a cicuitului o funct¸ionare de oscilator, deci nici o stare stabil˘ a (astabil). Prezent¸a cuvˆ antului basculant ˆın denumirea acestor circuite semnific˘ a faptul c˘ a trecerea ˆıntre cele dou˘ a st˘ ari se face prin basculare. Comutarea ie¸sirii la un CLC se poate produce la modificarea valorii unei variabile de intrare, iar ie¸sirea calculat˘ a este ment¸inut˘ a la nivelul logic respectiv doar atˆ at timp cˆ at este aplicat˘ a valoarea variabilei de intrare. Bascularea este tot un proces de comutare a ie¸sirii, init¸iat˘ a de o modificare a valorii unei variabile de intrare, dar ie¸sirea este ment¸inut˘ a la nivelul logic respectiv chiar dac˘ a dup˘ a un interval de timp nu mai r˘ amˆ ane aplicat˘ a valoarea variabilei de intrare. Rezult˘ a c˘ a bascularea este o comutat¸ie care trebuie doar init¸iat˘ a, dup˘ a care se autocomand˘ a, acest efect de automent¸inere este o consecint¸a˘ a react¸iei (pozitive) din structura circuitului. Un efect similar apare la comanda dispozitivului tiristor, unde este suficient˘ a amorsarea pentru ca apoi printr-o react¸ie pozitiv˘ a, ˆın interiorul dispozitivului, s˘ a se ment¸in˘ a starea de conduct¸ie. De¸si din punct de vedere fenomenologic exist˘ a deosebire ˆıntre comutat¸ie ¸si basculare ˆın exprimarea curent˘ a la circuitele basculante este foarte uzual s˘ a se substituie exprimarea corect˘ a – circuitul basculeaz˘ a – cu exprimarea uzual˘ a – circuitul comut˘ a.

3.3.1

Circuitul latch

Circuitul secvent¸ial asincron din Figura 3.36-a, identic cu cel din Figura 3.4-b de la Exemplul 3.2, unde s-a demonstrat c˘ a prezint˘ a dou˘ a st˘ ari stabile, poate fi redesenat sub o form˘ a mult mai uzual˘ a, pentru analiz˘ a, ca ˆın Figura 3.36-b. ˆIn aceast˘ a form˘ a se scot ˆın evident¸a˘ conexiunile de react¸ie realizate ˆıncruci¸sat, de la ie¸sirea inversorului 1 la intrarea inversorului 2, Vin2 = V01 , ¸si de la ie¸sirea inversorului 2 la intrarea inversorului 1, Vin1 = V02 . O implementare a acestei organiz˘ ari poate fi cu inversoare CMOS ca ˆın Figura 3.36-c (unde prin linie ˆıntrerupt˘ a s-au identificat cele dou˘ a inversoare). Considerˆ and caracteristica static˘ a de transfer V 0 = f (Vin ) a unui inversor, cu reprezentarea din Figura 1.14-b, prin conectarea ˆıncruci¸sat˘ a a acestuia cu un al doilea inversor identic, pentru semnalul de intrare V in1 , se obt¸ine Vin1 = V02 = f (Vin2 ) = f (V01 ) = f (f (Vin1 )). Aceasta ˆınseamn˘ a c˘ a semnalul de intrare V in1 dup˘ a o inversare (1800 ) pe primul inversor, V01 = f (Vin1 ), ¸si dup˘ a ˆınc˘ a o inversare (1800 ) pe al doilea inversor, V02 = f (V01 ), se aplic˘ a ˆın faz˘ a peste Vin1 , ˆınt˘ arindu-l. La fel se poate deduce Vin2 = f (f (Vin2 )). Deoarece ˆıntre ie¸sirile celor dou˘ a inversoare exist˘ a un decalaj de 180 0 a semnalelor evident c˘ a ie¸sirea unui inversor este ˆın nivelul H ¸si se noteaz˘ a prin Q, iar ie¸sirea celuilalt inversor va fi ˆın nivelul L ¸si se noteaz˘ a prin Q, Q N sau Q L. La conectarea tensiunii de alimentare, printr-un fenomen de concurs, deoarece practic cele dou˘ a inversoare nu pot avea timpi de propagare identici, una din ie¸siri va fi fort¸at˘ a ˆın H iar cealalt˘ a ˆın L. Punctul de funct¸ionare al circuitului se obt¸ine la intersect¸ia caracteristicilor statice de transfer ale celor dou˘ a inversoare. Cele dou˘ a caracteristici statice sunt trasate ˆın Figura 3.36-d ˆın care pentru inversorul 1 pe abscis˘ a este fixat˘ a Vin1 iar pe ordonat˘ a V01 , iar pentru inversorul 2, deoarece Vin2 = V01 ¸si V02 = Vin1 , tensiunea de ie¸sire V02 este fixat˘ a pe abscis˘ a ¸si Vin2 pe ordonat˘ a. Se observ˘ a c˘ a se obt¸in trei puncte de funct¸ionare, dou˘ a puncte stabile S 1 , S2 ¸si un punct instabil M . Punctele S1 ¸si S2 , ˆın unul din acestea ajungˆ and prin concurs la conectarea tensiunii, sunt puncte stabile pentru c˘ a ˆın fiecare din acestea amplificarea total˘ a A = A 1 · A2

384

3.3. CIRCUITE BASCULANTE

Vin1

1

Vo1 Q

Vin2

2

Q

1

a) Vin1

Vin2

1

Vo1

QN

Q

T4

T2 Vin1 QN V o1

.

.

V

.

2

QN

Vo1= Vin2 S1

M

T3

1

V02 d)

c)

Inscriere S (set)

Stergere R (reset)

Q

Iesire

inactiv

inactiv

FM

FM

activ

inactiv

1

0

inactiv

activ

0

1

activ

activ

A=0 (stabil) A>>1 (metastabil)

.Vin202 Q

T1

2

b)

f)

V DD

V02

A=0 (stabil) 2 S2

Q Vin1=Vo2

QN

S1

ND e)

Q=0 "0" QN=1

S2 Q=1 "1" QN=0

Figura 3.36 Celula elementar˘ a pentru circuitele bistabile: a,b) circuitul dublu inversor cu conexiuni de react¸ie ˆıncruci¸sate; c) implementare cu inversoare CMOS; d) determinarea punctelor de funct¸ionare prin intersect¸ia caracteristicilor statice(S1 , S2 -stabile, M-instabil); e) analogie mecanic˘ a pentru punctele de funct¸ionare stabile; f) tabelul caracteristic pentru comanda celulei elementare.

pe bucla format˘ a din cele dou˘ a amplificatoare inversoare este nul˘ a deoarece A = dV01 /dVin1 = 0, A2 = dV01 /dVin2 = 0. Unul din puncte, prin convent¸ie, poate fi ,, ,, considerat c˘ a reprezint˘ a starea “1 a circuitului Q = 1, QN = 0 iar cel˘ alalt starea “0 a circuitului Q = 0, QN = 1. Al treilea punct de intersect¸ie M , care apare ˆın zona liniar˘ a a caracteristicilor statice, zon˘ a interzis˘ a pentru funct¸ionarea ˆın digital, vezi Figura 1.14-a, este denumit punct de metastabilitate ¸si are valorile pentru coordonatele V in ¸si V0 situate ˆın afara nivelurilor logice H ¸si L, deci este f˘ ar˘ a utilitate ˆın aplicat¸iile digitale. Teoretic, circuitul poate sta un timp indefinit ˆın punctul M dar, practic, dup˘ a un anumit timp, determinat de variat¸ii de tensiune ˆıntˆ ampl˘ atoare, iese din M deplasˆ andu-se spre S 1 sau S2 . ˆIn zona punctului M coeficientul de amplificare total pe bucl˘ a are o valoare mare deoarece atˆ at A1  1 cˆ at ¸si A2  1; de exemplu, pentru circuitul din Figura 3.36-c toate patru tranzistoare sunt ˆın regim de conduct¸ie determinˆ and o pant˘ a foarte abrupt˘ a pentru caracteristica static˘ a a fiec˘ arui amplificator inversor. Dac˘ a circuitul se afl˘ a ˆın punctul de metastabilitate ¸si ˆıntˆ ampl˘ ator apare un mic zgomot care mic¸soreaz˘ a valoarea lui Vin1 , aceast˘ a variat¸ie ∆Vin1 propagat˘ a succesiv ˆın bucla ˆıncruci¸sat˘ a prin

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

385

∆V01 , ∆Vin2 ¸si ∆V02 , pentru c˘ a bucla are o amplificare mare, ajunge s˘ a produc˘ a o variat¸ie important˘ a asupra lui Vin1 ˆın sensul ˆın care a produs-o zgomotul init¸ial. Apoi, din nou, variat¸ia propagat˘ a succesiv prin bucl˘ a va duce la o ¸si mai pronunt¸at˘ a sc˘ adere a lui Vin , ¸si tot a¸sa repetat ˆın bucl˘ a pˆ an˘ a cˆ and V in1 scade la nivelul L iar punctul de funct¸ionare ajunge ˆın S1 . Aceast˘ a deplasare din M spre S1 este figurat˘ a prin traseul ˆın zig-zag ˆıntre caracteristica inversorului 1 ¸si a inversorului 2. O analogie mecanic˘ a pentru cele trei puncte de funct¸ionare ale cicuitului este reprezentat˘ a ˆın Figura 3.36-e. Bila (punctul de funct¸ionare al cicuitului!) poate stat¸iona pe un plan orizontal ˆın pozit¸iile S 1 sau S2 (puncte stabile) ˆıntre care exist˘ a ,, un “deal pe al c˘ arui vˆ arf bila se poate sprijini doar ˆıntr-un singur punct (punctul de metastabilitate). Cˆ and bila se afl˘ a ˆın vˆ arf foarte u¸sor oricare “adiere de vˆ ant va ,, sufla bila fie ˆınspre S1 sau S2 . Cˆ and bila se afl˘ a ˆın S1 sau S2 cu o fort¸a˘ (semnal) puternic˘ a se poate trece peste deal ˆın pozit¸ia opus˘ a S 2 sau S1 . Critic˘ a apare situat¸ia (de nedeterminare, ND) cˆ and bila se afl˘ a ˆın S1 sau S2 iar o fort¸a˘ de valoare mai redus˘ a aplicat˘ a asupra ei poate s˘ a o deplaseze ˆınspre vˆ arful dealului, de unde revine ˆın pozit¸ia init¸ial˘ a sau reu¸se¸ste s˘ a o deplaseze chiar pˆ an˘ a ˆın vˆ arf unde stat¸ioneaz˘ a ¸si de unde dup˘ a un timp nedefinit poate reveni ˆın pozit¸ia stabil˘ a init¸ial˘ a sau poate trece ˆın cealalt˘ a pozit¸e stabil˘ a. Starea de metastabilitate poate apare la aplicarea tensiunii de alimentare sau la o comand˘ a de trecere ˆıntre cele dou˘ a pozit¸ii stabile, de la 1 la 0 sau de la 0 la 1 logic, dar semnalul de comand˘ a este insuficient (nu are amplitudinea necesar˘ a sau are amplitudinea necesar˘ a dar durata de aplicare este prea scurt˘ a). Starea de metastabilitate (punctul de funct¸ionare ˆın M) trebuie evitat˘ a ˆın circuitele digitale deoarece genereaz˘ a niveluri de tensiune ˆın afara celor de 1 logic sau 0 logic ¸si, ˆın plus, din starea de metastabilitate nu se poate determina ˆın care stare urm˘ atoare trece circuitul ˆın cea de 0 sau ˆın cea de 1 logic. Circuitul format din cele dou˘ a inversoare cu conexiuni ˆıncruci¸sate, care este celula de baz˘ a pentru circuitele basculante, ˆın structura prezentat˘ a pˆ an˘ a acum, nu poate fi comandat (se fixeaz˘ a ˆıntr-o stare la conectarea tensiunii). Pentru a fi comandat trebuie s˘ a i se adauge intr˘ ari de comanda. Intr˘ arile de comand˘ a sunt: 1 - intrarea de ˆınscriere, notat˘ a cu S (Set), care prin activare va ˆınscrie ie¸sirea ˆın starea logic˘ a 1, Q = 1, Q N = 0, 2 - intrarea de ¸stergere, notat˘ a cu R (Reset), care prin activare va ˆınscrie ie¸sirea ˆın starea logic˘ a 0, Q = 0, QN = 1. Evident, cu cele dou˘ a intr˘ ari se pot realiza patru comenzi de intrare, Figura 3.36-f: 1. Nu se activeaz˘ a nici una din intr˘ ari, S=inactiv, R=inactiv ceea ce corespunde unei comenzi de tipul nici o operat¸ie NOP (No OPeration) adic˘ a ie¸sirea circuitului r˘ amˆ ane f˘ ar˘ a modific˘ ari, FM; 2. Se activeaz˘ a doar ˆınscrierea S=activ, R=inactiv, ie¸sirea se ˆınscrie ˆın starea logic˘ a 1, Q = 1, QN = 0; 3. Se activeaz˘ a doar ¸stergerea S=inactiv, R=activ, ie¸sirea se ˆınscrie ˆın starea logica 0, Q = 0, QN = 1; 4. Se activeaz˘ a simultan atˆ at ˆınscrierea S=activ, cˆ at ¸si ¸stergerea R=activ. Aceasta este o comand˘ a absurd˘ a! deoarece i se cere circuitului s˘ a treac˘ a simultan atˆ at ˆın starea 1 (Q = 1, QN = 0) cˆ at ¸si ˆın starea 0 (Q = 0, QN = 1), starea circuitului

386

3.3. CIRCUITE BASCULANTE

este nedeterminat˘ a , ND. Aceast˘ a comand˘ a de ˆınscriere ¸si ¸stergere simultan˘ a este evitat˘ a ˆın circuitele digitale. Conform clasific˘ arii circuitelor pe baza buclelor de react¸ie incluse una ˆın alta, prezentate ˆın sect¸iunea 3.3, circuitul latch care cont¸ine o singur˘ a bucl˘ a de react¸ie este un circuit de ordinul 1, SO-1. 3.3.1.1

Latch-ul SR

La circuitul latch din Figura 3.36-b se pot ad˘ auga cele dou˘ a intr˘ ari de date S (ˆınscriere) ¸si R (¸stergere) dac˘ a inversoarele sunt realizate cu port¸i NOR, Figura 3.37-a, sau cu port¸i NAND, Figura 3.38-a. Pentru structura obt¸inut˘ a, latch SR, la activarea (se consider˘ a convent¸ia de logic˘ a pozitiv˘ a) unei intr˘ ari S sau R se obt¸ine ie¸sirea in stare H dar nu la poarta NOR la care s-a aplicat intrarea activat˘ a ci la cealalt˘ a poart˘ a NOR (ie¸sirea unei port¸i NOR este totdeauna L atunci cˆ and una sau mai multe intr˘ ari sunt H). Dac˘ a intrarea de ˆınscriere devine activ˘ a, S = 1, ¸si intrarea de ¸stergere este ment¸inut˘ a inactiv˘ a, R = 0, dup˘ a timpul de propagare τ p ie¸sirea port¸ii NOR1 comut˘ a ˆın starea L, QN = 0, care aplicat˘ a prin leg˘ atura de react¸ie pe intrarea port¸ii NOR 2 va comuta, dup˘ a timpul de propagare τp , ie¸sirea port¸ii NOR2 ˆın starea H, Q = 1. Dup˘ a un interval de timp 2·τp , ˆın sprijinul semnalului de ˆınscriere S = 1 aplicat pe una din intr˘ arile port¸ii NOR1 , vine pe cealalt˘ a intrare a potii NOR1 un semnal de react¸ie Q = 1 de la ie¸sirea port¸ii NOR2 , deci semnalul de ˆınscriere poate fi dezactivat, S = 0, deoarece starea logic˘ a 1 (Q = 1, QN = 0) este ment¸inut˘ a ˆın continuare de c˘ atre semnalul de react¸ie Q = 1. Dac˘ a semnalul de ˆınscriere S = 1 nu respect˘ a aceast˘ a condit¸ie critic˘ a de timp, ca durata sa s˘ a fie T W ≥ 2 · τp , se poate ca latch-ul s˘ a nu se ˆınscrie ˆın starea logic˘ a 1 sau, mai r˘ au, s˘ a intre ˆın starea de metastabilitate unde, teoretic, poate sta indefinit, dar practic dup˘ a un interval de timp se ˆındreapt˘ a fie spre starea logic˘ a 1 (Q = 1, QN = 0), fie spre starea logic˘ a 0 (Q = 0, QN = 1). Intrarea ˆın metastabilitate se poate genera ¸si ˆın cazul ˆın care semnalul aplicat pe intrare nu are o amplitudine suficient˘ a, deci se situeaz˘ a ˆın intervalul interzis ˆıntre 1 si 0 logic. Dac˘ a ulterior se activeaz˘ a din nou intrarea de ˆınscriere, S = 1, odat˘ a sau de mai multe ori consecutiv, latch-ul r˘ amˆ ane ˆınscris ˆın aceea¸si stare logic˘ a 1, deci numai primul impuls dintr-o succesiune de ˆınscriere are efectul de ˆınscriere. Acest mod de funct¸ionare este similar cu cel de operare al unui z˘ avor (latch in limba englez˘ a), care se ˆınchide la prima ˆımpingere a sa. Pentru deschiderea (¸stergerea) z˘ avorului este necesar˘ a o ˆımpingere ˆın sens contrar dar tot numai odat˘ a. Similar, se pot descrie secvent¸ele de propagare prin port¸ile NOR la ˆınscrierea latch-ului ˆın starea logic˘ a 0 cˆ and pe intr˘ arile de date se aplic˘ a S = 0, R = 1. Tabelul caracteristic al latch-ului SR, Figura 3.37-b, care exprim˘ a ie¸sirea ˆın funct¸ie de cele patru cuvinte aplicate pe intr˘ arile de date, se obt¸ine din tabelul din Figura 3.36-f adaptat pentru o convent¸ie de logic˘ a pozitiv˘ a (activ = H, inactiv = L). Din acest tabel caracteristic se poate deduce tabelul de excitat¸ie, Figura 3.37-c. Tabelul de excitat¸ie, care este ˆın fond tabelul de evolut¸ie al st˘ arilor, vezi Figura 3.2-b, prescrie pentru oricare comutat¸ie impus˘ a latch-ului ˆıntre dou˘ a st˘ ari care trebuie s˘ a fie cuvˆ antul SR aplicat pe intr˘ arile de date. Liniile tabelului de excitat¸ie se deduc din analiza liniilor din tabelul caracteristic ˆın felul urm˘ ator: 1. Comutat¸ia din Q = 0 ˆın starea urm˘ atoare Q+ = 0 se realizeaz˘ a pentru SR = 00 din linia ˆıntˆ aia a tabelului caracteristic (f˘ ar˘ a modificare, FM) sau pentru

387

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS S

R 1

2

QN

Tw>2τ p

a) t1

S 0

Q

QN

0

Q

QN (FM)

0

Q

0 0

1 1/0

b) t2

Q

R

t3

S

0

0

1

0

1

0

1

0

1/0 (ND) t4

c) t5

1

Q+

R

Q 0 SR 00 0

1

0 0

1

01 0

0

1

0

11

0

1

10 1

t6

t7

d)

1

1

e)

t8

t9

S R

Q QN

S R

Q Q t 10

S R Q QN

f)

ND

Figura 3.37 Analiza latch-ului SR: a) structur˘ a de latch realizat cu port¸i NOR; b,c,d) tabelul caracteristic, tabelul de excitat¸ie ¸si diagrama VK pentru latch-ul SR; e) simboluri de reprezentare pentru latch-ul SR; f) explicarea funct¸ion˘ arii cu ajutorul diagramelor de timp. SR = 01 din linia a treia (din starea logic˘ a 0 se aplic˘ a comanda de ˆınscriere tot ˆın starea logic˘ a 0), deci cuvˆ antul necesar aplicat pe intr˘ arile de date trebuie s˘ a fie SR = 0−. 2. Pentru comutat¸ia din Q = 0 ˆın Q+ = 1 corespunde numai linia a treia din tabelul caracteristic, deci SR = 10. 3. Pentru comutat¸ia din Q = 1 ˆın Q+ = 0 corespunde numai linia a doua din tabelul caracteristic, deci SR = 10. 4. Comutat¸ia din Q = 1 ˆın starea urm˘ atoare Q+ = 1 se realizeaz˘ a pentru SR = 00 (f˘ ar˘ a modificare, FM) sau pentru SR = 10 din linia a doua (din starea logic˘ a 1), deci cuvˆ antul aplicat pe intr˘ arile de date trebuie s˘ a fie SR = −0. Tabelul de excitat¸ie se poate transpune ˆıntr-o diagram˘ a de tipul V-K, Figura 3.37-d. Din aceast˘ a diagram˘ a se poate deduce ecuat¸ia logic˘ a a latch-ului SR, care are expresia Q+ = S + RQ

(3.20)

Aceast˘ a ecuat¸ie se poate deduce direct ¸si din structura latch-ului SR din Figura 3.37-a scriind relat¸ia pentru poarta NOR 1 ˆın felul urm˘ ator Q+ N = S + R + QN + care devine Q = S + RQ deoarece QN = Q. Funct¸ionarea unui latch poate fi descris˘ a ¸si prin diagrame de semnale ca ˆın Figura 3.37-f; s˘ aget¸ile leag˘ a fiecare modificare pe intr˘ arile de date cu efectele (comutat¸iile) pe care le produce pe ie¸siri. De exemplu, pentru modificarea intr˘ arilor de date din momentele t1 , t2 , t3 , t4 latch-ul se ˆınscrie respectiv ˆın st˘ arile 1, 0, 1 ¸si 0. La momentul t5 , atˆ at timp cˆ at SR = 11, ie¸sirile vor fi QN = 0 ¸si Q = 0, la fel se intˆ ampl˘ a ˆın

388

3.3. CIRCUITE BASCULANTE

momentul t7 ¸si ˆın momentul t9 . Diferent¸a ˆıntre t5 , t7 ¸si t9 apare prin faptul c˘ a la primele dou˘ a intr˘ arile S ¸si R nu sunt dezactivate simultan, deci latch-ul trece ˆıntr-o stare logic˘ a, pe cˆ and la t9 intr˘ arile SR din 11 sunt dezactivate simultan t 10 ˆın 00 ceea ce provoac˘ a intrarea ˆın starea de metastabilitate, iar din aceast˘ a stare dup˘ a un interval de timp latch-ul poate ajunge fie ˆın 0 fie ˆın 1. Cuvˆ antul de intrare de date SR = 11 determin˘ a ca ambele ie¸siri s˘ a fie ˆın 0 ¸si se spune c˘ a aceast˘ a comand˘ a produce o stare de nedeterminare (ND, linia a patra ˆın tabelul caracteristic), pentru c˘ a la dezactivarea simultan˘ a a intr˘ arilor de date (cˆ and ie¸sirile Q, Q N au valori ˆıntre 0 ¸si 1 logic)¸si dup˘ a consumarea intervalului de metastabilitate, se va trece fie ˆın starea Q = 0, QN = 1, fie ˆın starea Q = 1,QN = 0 f˘ ar˘ a a exista un control asupra acestei tranzit¸ii. Exemplul 3.13 Folosind circuitul latch s˘a se formeze semnalul de la un comutator pentru a fi aplicat la intrarea unui sistem digital. Solut¸ie. La ˆınchiderea unui contact, lamela acestuia, datorit˘ a elasticit˘ a¸tii, poate produce cˆ ateva oscilat¸ii ˆınainte de a se opri pe pozit¸ia comandat˘ a. Astfel c˘ a semnalul cules care s˘ a sesizeze pozit¸ia ˆınchis a contactului, ˆınainte de a ajunge la valoarea stabilizat˘ a, este sub forma unor impulsuri ˆıntre o valoare V a tensiunii ¸si o valoare zero. ˆIn Figura 3.38-c tensiunea culeas˘ a VO ˆınainte de a ajunge la valoarea zero, corespunz˘ atoare contactului ˆınchis pe pozit¸ia 2, are oscilat¸ii ca cele reprezentate ˆın diagrama de semnale. Un sistem digital la care se aplic˘ a un astfel de semnal ar sesiza ˆınchiderea contactului de mai multe ori. Se poate obt¸ine un semnal doar cu o singur˘ a comutat¸ie (la ˆınchiderea pe pozit¸ia 2) dac˘ a se utilizeaz˘ a un latch, deoarece acesta are proprietatea: este activat doar de prima activare dintr-un ¸sir aplicat pe o intrare. _ S

_ R

Q

a)

_ S sau S_L _ R sau R_L

QN

S R

Q

_ R

Q

QN

1

1

Q

QN (FM)

0

1

1

0

1

1/0

2

QN

_ S

1

b)

V

c)

R

VO V VO

t

1

comutare 1

2

V

2

R1

R2 VO

1/0 (ND)

d)

1

Q S R

S

Q

R

QN

"1" "0"

t 1

2

2

1

Figura 3.38 Explicativ˘ a pentru Exemplul 3.13: a,b) structur˘ a ¸si tabelul caracteristic pentru un latch cu intr˘ arile active ˆın L (latch S R); c) oscilat¸iile ˆın semnalul obt¸inut la ˆınchiderea unui contact (datorit˘ a vibrat¸iilor lamelei contactului); d) circuit, a¸tirea“ unui semnal obt¸inut la ˆınchiderea/deschiderea cu un latch S R, pentru “cur˘ unui contact. O structur˘ a de latch cu port¸i NAND este cea din Figura 3.38-a care se activeaz˘ a pe intr˘ arile de date prin semnale ˆın stare L, de unde denumirea de latch S R. Tabelul carac-

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

389

teristic al latch-ului S R, Figura 3.38-b, se obt¸ine din tabelul caracteristic din Figura 3.36-f aplicˆ and convent¸ia de logic˘ a negativ˘ a (activ=L , inactiv=H). Aplicˆ and semnalul cules VO , de pe comutator, la intrarea unui latch S R, ca ˆın Figura ,, 3.38-d, se obt¸ine un semnal “curat ca cel din diagrama de semnale al˘ aturat˘ a. La ˆınchidere, din pozit¸ia 1 ˆın pozit¸ia 2, latch-ul fiind comandat pe ˆınscriere S = 0, ie¸sirea sa comut˘ a ˆın Q = 1, QN = 0, iar la deschidere din pozit¸ia 1 ˆın 2, latch-ul este comandat pe ¸stergere R = 0, ie¸sirea comut˘ a in Q = 0, QN = 1.

ˆIn sistemele digitale, pentru o procesare controlat˘ a, este necesar s˘ a existe un control asupra felului/modului proces˘ arii (cum?), momentul proces˘ arii(cˆ and?) ¸si ˆın care punct (adres˘ a) s˘ a fie procesat˘ a (unde?). Aceste trei act¸iuni, exprimate sintetic prin tripla interogat¸ie unde? cˆ and? ¸si cum?, apar ca o prim˘ a deficient¸a˘ a latch-ului S R sau SR deoarece nu le poate realiza. ˆIn plus latch-ul mai prezint˘ a starea de nedeterminare (ND) cˆ and sunt activate simultan cele dou˘ a intr˘ ari de date. Latch-ul cu ceas. La circuitul latch cuvˆ antul aplicat pe intr˘ arile de date determin˘ a care va fi starea ˆın care comut˘ a (cum?), dar acela¸si cuvˆ ant aplicat determin˘ a ¸si momentul cˆ and comut˘ a (cˆ and?). Pentru a separa cele dou˘ a act¸iuni este necesar ca latch-ul s˘ a fie ˆınzestrat cu intrare distinct˘ a de cum? fat¸a˘ de cˆ and?. Pentru modul de comutare se p˘ astreaz˘ a intr˘ arile de date S, R sau S,R, iar pentru prescrierea momentului comutat¸ie se introduce o intrare pe care se aplic˘ a un semnal de ceas. Accesul cuvˆ antului de date la intr˘ arile de date ale latch-ului se va face prin port¸i care sunt validate de semnalul de ceas, deci modificarea st˘ arii circuitului va fi posibil˘ a doar ˆın momentele marcate de ceas (pe palier sau pe front). Ecuat¸ia logic˘ a a latch-ului SR cu ceas, similar˘ a cu relat¸ia 3.15, are expresia: Q(t + 1) = S + RQ(t)

(3.21)

ˆIn relat¸ia 3.20 starea urm˘ atoare a fost notat˘ a prin Q + , dar ˆın relat¸ia 3.21 a fost substituit˘ a prin Q(t+1) ca s˘ a indice faptul c˘ a starea urm˘ atoare se ˆınscrie, pornind de la starea prezent˘ a Q(t), doar la validarea urm˘ atoare (t + 1) prin semnalul de ceas. ˆIn Figura 3.39 este prezentat un latch SR cu ceas ce se obt¸ine din latch-ul din Figura 3.37-a c˘ aruia i s-au aplicat cele dou˘ a port¸i AND pe intrare, care valideaz˘ a accesul datelor pe intr˘ arile S ¸si R doar pe durata T W a palierului pozitiv al ceasului. La fel, structura latch-ului cu ceas ˆın tehnologie CMOS, Figura 3.39-b, se obt¸ine din cea cu dou˘ a inversoare din Figura 3.36-b (delimitat˘ a prin linie ˆıntrerupt˘ a ˆın Figura 3.39-b), la care s-a ad˘ augat ˆın ret¸eaua de tip n un tranzistor pentru intrarea S ˆınseriat cu un tranzistor pentru validarea de ceas, CLK, precum ¸si tranzistoarele complementare din ret¸eaua de tip p. Tabelul caracteristic ¸si tabelul de excitat¸ie, Figura 3.39-c ¸si d, pot fi considerate acelea¸si ca cele din Figura 3.37-c ¸si d; diferent¸a˘ existˆ and ˆın tabelul caracteristic, care prin linia a cincea exprim˘ a faptul c˘ a dac˘ a semnalul CLK nu este activ, nu se prime¸ste nici o comand˘ a pe intr˘ arile de date, deci latch-ul este nevalidat. Decuplarea ˆıntre cˆ and ¸si cum se realizeaz˘ a numai ˆın cazul cˆ and cuvˆ antul de date este aplicat pe intr˘ arile de date ¸si numai dup˘ a ce aceste date sunt stabilizate se aplic˘ a un semnal de ceas care valideaz˘ a transferul prin cele dou˘ a port¸i ad˘ augate la intrare. Pe durata TW a palierului activ de ceas oricare modificare pe intr˘ arile de date S,R este resimt¸it˘ a ˆın ie¸sirile Q ¸si QN ale latch-ului ceea ce se refer˘ a prin: latch-ul este transparent pe durata palierului activ al ceasului. Deci, realizarea decupl˘ arii

390

3.3. CIRCUITE BASCULANTE TW

V DD

CLK

S 3

CLK

CLK

R 4

T4

T2

QN 1

2

QN

Q R

S Q

T1

CLK

a)

T3

CLK

b)

d)

TW1 S

t1

t2

TW2 t3

c)

t4

t5

t6

1 1 1 1 0

S R Q QN 0 0 1 1

Q(t) 0 0 1 1

0 1 0 1

Q Q N(FM) 0 1 1 0 1/0 1/0 (ND) Q Q N(FM)

S 0 1 0 TW3 t7

R 0 1 0

S Q CLK R Q S Q CLK R QN

f) Q(t+1) 0 1 0 1

t8

R CLK Q QN

e)

ND

Figura 3.39 Latch-ul SR cu ceas: a) organizarea unui latch SR cu ceas ¸si implementarea sa (b) ˆın tehnologie CMOS; c,d) tabelul de tranzit¸ie ¸si tabelul de excitat¸ie; e) exemplu de diagrame de semnal; f) simboluri de reprezentare.

presupune c˘ a este ˆındeplinit˘ a condit¸ia prin care cuvˆ antul de date este aplicat ¸si stabilizat pe intr˘ arile de date ˆın momentul aparit¸iei palierului activ de ceas ¸si aceste date r˘ amˆ an nemodificate pe toat˘ a durata palierului. Funct¸ionarea latch-ului cu ceas poate fi prezentat˘ a intuitiv prin diagrama de semnale ca ˆın Figura 3.39-e. Pe durata palierelor active ale ceasului T W1 , TW2 , TW3 latch-ul este transparent, modific˘ arile de pe intr˘ arile de date se propag˘ a spre ie¸sire, ie¸sirea este cuplat˘ a cu intrarea, iar pe durata de neactivare a ceasului modific˘ arile pe intrare (ˆın momentele t4 , t5 , t6 ) nu produc nici o schimbare pe ie¸sire. ˆIn momentul t7 ambele intr˘ ari sunt activate S = R = 1 care comut˘ a ie¸sirile in Q N = 0, Q = 0, deoarece ceasul este activ, dar ˆın momentul t8 , cˆ and ceasul devine inactiv, latch-ul intr˘ a ˆın metastabilitate, iar dup˘ a un timp (cˆ at?) se indreapt˘ a fie spre starea logic˘ a 1 fie spre starea logic˘ a 0. ,, ,, Deci, latch-ul cu ceas (latch-ul sincron) poate separa act¸iunea “cˆ and de “cum , dac˘ a datele pe intrare r˘ amˆ an stabile pe o durat˘ a T W1 dar nu elimin˘ a interdict¸ia de a nu fi activate simultan semnalele S ¸si R. Obtenabil ca circuit integrat discret este a. circuitul 74LS279 care cont¸ine 4 latch-uri S R pe capsul˘

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

3.3.1.2

391

Latch-ul D

ˆIn tabelul caracteristic al latch-ului SR sau S R, Figura 3.39-c, dac˘ a se elimin˘ a linia ˆıntˆ aia ¸si a patra se obt¸ine tabelul caracteristic din Figura 3.40-c care exprim˘ a funct¸ionarea latch-ului de tip D. Fizic, eliminarea celor dou˘ a cuvinte de intrare, ambele intr˘ ari neactivate ¸si ambele intr˘ ari activate, se poate realiza prin conectarea celor dou˘ a intr˘ ari prin intermediul unui inversor ca ˆın Figura 3.40-a, adic˘ a totdeauna R = S. Latch-ul rezultat, referit latch-ul D, avˆ and o singur˘ a intrare de date, notat˘ a cu D, nu mai prezint˘ a restrict¸ia, de la latch-ul SR, de a nu se activa simultan cele dou˘ a intr˘ ari de date. Ca structurare latch-ul D se poate obt¸ine din circuitul din Figura 3.39-a prin conectarea unui inversor pe intrarea R. Variante de latch D foarte des utilizate ˆın tehnologia unipolar˘ a sunt cele din Figura 3.40-b bazate pe circuite dinamice (Figura 1.54) ¸si port¸i de transmisie. Bucla ˆıntre inversoarele 1 ¸si 2 se ˆınchide prin poarta de transmisie PT2, iar introducerea (ˆınscrierea) intr˘ arii D ˆın bucl˘ a se face prin poarta de transmisie PT1; cele dou˘ a port¸i de transmisie sunt comandate ˆın opozit¸ie prin semnalul de ceas. Pe palierul activ de ceas, CLK=1, PT1 este dechis˘ a, PT2 este blocat˘ a iar capacitatea (parazit˘ a) de pe intrarea amplificatorului inversor 1 se ˆıncarc˘ a ajungˆ and la valoarea tensiunii existent˘ a pe intrarea D. Pe durata palierului inactiv de ceas, CLK=0, PT1 este blocat˘ a, PT2 este deschis˘ a realizˆ andu-se ˆınchiderea buclei ˆıntre inversoarele 1 ¸si 2 ceea ce permite ˆıncontinuu ˆınc˘ arcarea/ment¸inerea capacit˘ a¸tii parazite la valoarea de tensiune la care a fost ˆınc˘ arcat˘ a. Tabelul de excitat¸ie din Figura 3.40-d, dedus din tabelul caracteristic, arat˘ a c˘ a totdeauna ie¸sirea Q devine egal˘ a cu intrarea D la aplicarea frontului activ de ceas, deci ecuat¸ia care exprim˘ a funct¸ionarea este Q(t + 1) = D

(3.22)

Conform acestei relat¸ii rezult˘ a c˘ a latch-ul D poate stoca/memora data aplicat˘ a pe intrare, de unde ¸si denumirea de latch D (de la Data). Dar pe durata palierului activ de ceas latch-ul D are o funct¸ionare transparent˘ a, oricare modificare pe intrare se propag˘ a la ie¸sire, nu exist˘ a o decuplare a ie¸sirii de intrare. Aceast˘ a transparent¸a˘ a latch-ului D se poate urm˘ ari pe diagrama de semnale din Figura 3.40-e pe intervalele and frontul activ de ceas valideaz˘ a cele dou˘ a port¸i AND de pe TW1 , TW2 ¸si TW3 , cˆ intrare, ˆın schimb modific˘ arile intr˘ arii D ˆın momentele t 1 , t4 , t5 ¸si t8 nu produc nici o comutat¸ie a ie¸sirii deoarece sunt ˆın palierul inactiv de ceas. ˆIntr-un sistem, funct¸ionarea corect˘ a a unui latch D impune respectarea unor parametrii de timp. Timpii de propagare, dat¸i ˆın cataloagele produc˘ atorilor, sunt definit¸i pe diagramele de timp din Figura 3.40-f [Wakerly 0 00]; abreviat¸iile DQ indic˘ a propagarea de la intrarea de date la ie¸sire, iar CQ propagarea de la intrarea de ceas la ie¸sire. De exemplu, pentru circuitul integrat 74LS75, 4× latch D/capsul˘ a, se dau urm˘ atoarele valori: τPLH(DQ) = 11ns (tipic), 19ns (maxim); τPHL(DQ) =9ns (tipic), 17ns (maxim); τPLH(CQ) =10ns (tipic), 18ns (maxim); τPHL(CQ) =10ns (tipic), 18ns (maxim). Modificarea semnalului de intrare D, pe durata palierului activ de ceas, produce doar o comutat¸ie corespunz˘ atoare a ie¸sirii, pe cˆ and o modificare pe intrarea D care coincide cu durata fronturilor semnalului de ceas introduce latch-ul ˆın metastabilitate, de exemplu la sfˆ ar¸situl intervalului de transparent¸a˘ T W3 . Pentru a evita metastabilitatea se impune ca intrarea de date s˘ a fie ment¸inut˘ a stabil˘ a pe intervalul τ SU ˆınainte

392

3.3. CIRCUITE BASCULANTE TW D

PT1

D

CLK

1

CLK S

QN PT2

R 3

QN

QN

PT2

QN

PT2

CLK =0

b)

2

Q

t2

d)

TW2

TW1 t1

g)

1

PT1

Q

t3

t4

t5

t6

D

c)

Q

t7

Q

CLK Q

− Q QN

2

2

a)

D

0

1

CLK =1 1

2

Q

PT1

4

D CLK D Q QN 1 0 0 1 1 1 1 0

Q

CLK QN

Q(t)

D

0 0

0 1

0 1

1

0

0

1

1

1

Q(t+1)

TW3 t8

t9

CLK Q

e)

T W1

D CLK

ws wsws wxswxwx xs

us usvs vsuu vvuu τ SU

ys rts ysts yzstrtr yzyz zs r ys

T W2

τH

τ SU

T W3

τH

τ SU

τH

Q

f)

ND

τ pHL(DQ) τ pHL(DQ) τ pHL(DQ)

τ pHL(CQ)

Figura 3.40 Latch-ul D: a) organizarea unui latch D ¸si implementarea sa (b) ˆın tehnologie CMOS cu celule dinamice ¸si port¸i de transmisie; c,d) tabelul de tranzit¸ie ¸si tabelul de excitat¸ie; e) exemplu de diagrame de semnal; f) definirea timpilor de propagare; g) simboluri de reprezentare.

de frontul semnalului de ceas.

393

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Exemplul 3.14 Latch-ul Early. Acest tip de latch, pe lˆang˘a funct¸ia existent˘a la latch-ul D, de a memora bitul aplicat pe intrarea D, poate realiza ¸si o a doua funct¸ie, cea de procesare pe dou˘ a niveluri logice (AND-OR). ˆIn consecint¸a ˘, timpul de propagare necesar realiz˘ arii celor dou˘ a funct¸ii este egal numai cu timpul de propagare pe dou˘ a niveluri logice. Structura latch-ului Early este cea desenat˘ a ˆın Figura 3.41-a. Informat¸ia de un bit aplicat˘ a pe intrarea D, pe palierul CLK=1, se obt¸ine pe ie¸sirea Q dup˘ a ce s-a propagat prin port¸ile 3 ¸si 1. Apoi, prin leg˘ atura de la Q la poarta 4 se realizeaz˘ a react¸ia, adic˘ a ˆınt˘ arirea

{|{}

D

3

CLK 4

~|~

€|€|€€

1

CLK CLK Q

CLK D

CLK

a) C i−1

Bi

Š|ˆ||† Š‹ ˆ‰ †‡ Œ|Œ ƒ|‚ ƒ‚ “’|‘|Ž|“’ ‘ Ž …|„ …„ ™˜|—–|•”|™˜ —– •” |œ ›|š œ ›š

Ai

CLK A Bi i C i−1 C i−1 C i−1

Bi Bi

3

2

Ai

Ai

1

CLK

b)

CLK

3

CLK

Bi CLK

4 C i−1 5 C i−1

6

7

1

ª|ª« ¡|  |žŸ  ¡ Ÿž ¤|£|¢ ¤¥ £¢ ¨|¦|¨© ¦§ Ai

Ai

Bi

si

2

3

4

5

6

8

Q

1

Ci

7

9 8 10

CLK

CLK

c)

2 2

d)

Figura 3.41 Latch-ul Early: a) structur˘ a de principiu; b) structur˘ a la care s-a eliminat poarta de ment¸inere pentru evitarea hazardului (prin comanda cu semnale de ceas defazate); c,d) calculul ¸si memorarea funct¸iilor (s i ) ¸si (Ci ) pentru un sumator cu transport progresiv pe o structur˘ a de tip latch Early. comenzii aplicate pe intrarea de date, ie¸sirea Q fiind ment¸inut˘ a ˆın continuare atˆ at prin poarta 3 cˆ at ¸si prin poarta 4. La dezactivarea semnalului CLK ¸si activarea palierului pentru semnalul CLK=1 conexiunea de la ie¸sirea port¸ii 1 se ˆınchide prin poarta 2, deci ment¸inerea react¸iei se face ˆın continuare prin polaritatea (invers˘ a) a semnalului de ceas. Pentru a nu apare discontinuitate (hazard) ˆın ment¸inerea valorii de ie¸sire Q la schimbarea semnalului de

394

3.3. CIRCUITE BASCULANTE

ceas, adic˘ a la comutarea ment¸inerii de la poarta 3 la poarta 2, a fost introdus˘ a poarta (de ment¸inere) 4. Structuri de calcul ¸si memorare pentru expresiile 2.17 ale sumei si ¸si transferului urm˘ ator Ci , la un sumator cu transportul anticipat, sunt prezentate ˆın Figurile 3.41-c ¸si 3.41-d. Aceste structuri sunt extensii ale structurii de latch Early obt¸inute prin repartizarea a cˆ ate unei perechi de port¸i, notate cu 3 ¸si 4 ˆın Figura 3.41-a, pentru fiecare termen produs din relat¸iile 2.17. Dac˘ a implementarea acestor relat¸ii se face pe un circuit combinat¸ional pe dou˘ a niveluri logice (AND-OR) urmat de un latch D (considerat c˘ a are propagarea 2τp rezult˘ ao propagare total˘ a egal˘ a cu 4τp . Pentru implementarea cu latch Early propagarea total˘ a fiind ,, numai de 2τp ; propagarea pe latch fiind “ascuns˘ a ˆın propagarea p˘ art¸ii combinat¸ionale. Avantajul implement˘ arii de tipul AND-OR plus memorare pe latch Early poate fi ˆınsot¸it˘ a, cum este cazul sumatorului, ¸si de urm˘ atoarele dezavantaje: semnalele de date ¸si de clock trebuie s˘ a aib˘ a fan-out ridicat; poarta OR trebuie s˘ a suporte un fan-in mare, iar num˘ arul de port¸i AND poate fi de asemenea ridicat. Se pot diminua aceste dezavantaje dac˘ a port¸ile de ment¸inere (7,8,9,10 ˆın Figura 3.41-c ¸si 6,7,8 ˆın Figura 3.41-d) sunt eliminate. Dar dup˘ a aceast˘ a eliminare de port¸i, pentru a asigura o funct¸ionare f˘ ar˘ a hazard a circuitului la comutat¸ia CLK→0 ¸si CLK →1, este necesar un defazaj ˆıntre palierele active ale semnalului a devin˘ a activ cu ∆t ˆınainte ca CLK s˘ a fie dezactivat, de ceas. Va trebui ca CLK →1 s˘ ceea ce se poate obt¸ine prin dou˘ a buffere inversor pe intr˘ ari pentru semnalul de ceas, Figura 3.41-b.

Latch-ul D, cu restrict¸ia impus˘ a de a ment¸ine nemodificat˘ a data de intrare pe ,, ,, durata palierului activ de ceas, poate separa act¸iunea “cˆ and de “cˆ and , de asemenea elimin˘ a posibilitatea activ˘ arii simultane a dou˘ a intr˘ ari dar, totu¸si, pˆ an˘ a acum ,, ,, nu prezint˘ a ¸si facilitatea de act¸iune “unde . Evident, introducerea act¸iunii “unde presupune existent¸a unui cuvˆ ant (de adres˘ a) care, pentru o configurat¸ie particular˘ a, s˘ a selecteze (deci un decodificator) un anumit punct (locat¸ie) dintre mai multe unde exist˘ a stocat˘ a informat¸ia (deci mai multe latch-uri D). O structur˘ a care realizeaz˘ a aceast˘ a funct¸ionare, referit˘ a prin latch adresabil, este reprezentat˘ a ˆın Figura 3.42. "1" An−1 A0

I

DMUX Om−1

Om−2

O0

OE

CLK

D D CLK Q

D CLK Q

Om−1

Om−2

D CLK Q O0

Figura 3.42 Organizarea de principiu pentru latch-ul adresabil. Structura de latch adresabil se obt¸ine printr-o conectare ˆın paralel de m latchuri D, avˆ and toate ˆın comun aceea¸si intrare de date D. Selectarea pentru ˆınscriere a datei, aplicat˘ a pe intrarea D, ˆın unul din cele m latch-uri D se face prin activarea semnalului de ceas care se obt¸ine ca o ie¸sire din cele 2 n (m = 2n ) ale DMUX 1:2n . La DMUX pe intrarea de validare a ie¸sirii OE se aplic˘ a semnalul de ceas CLK, iar pe

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

395

intr˘ arile de selectare se aplic˘ a un cuvˆ ant de adres˘ a A n−1 An−2 , ..., A0 . Ie¸sirea fiec˘ arui latch D, pentru citire, este disponibil˘ a permanent f˘ ar˘ a selectare. ˆInscrierea ˆıntr-un anumit latch (adres˘ a), pentru o funct¸ionare corect˘ a, trebuie s˘ a respecte anumite relat¸ii temporale. Pentru latch-uri, se aplic˘ a ˆıntˆ ai semnalul pe intrarea D, care trebuie s˘ a fie stabil pe palierul activ al semnalului aplicat pe o intrare CLK. Pentru DMUX ˆıntˆ ai se aplic˘ a cuvˆ antul de selectare ¸si numai dup˘ a stabilizarea acestui, pentru a evita hazardul pe ie¸siri, se activeaz˘ a semnalul de ceas CLK (=OE). Structura de latch adresabil la care se adaug˘ a selectarea (unde) ¸si pe ie¸sire (pentru citire) se transform˘ a ˆın structura celulei de baz˘ a pentru implementarea unei locat¸ii de memorie.

3.3.2

Circuite Basculante Bistabile (Triggere)

Pentru eliminarea deficient¸elor prezentate de structura de latch elementar (nedi,, ,, ,, ferent¸ierea ˆıntre act¸iunile “cˆ and ¸si “cum , inexistent¸a adres˘ arii “unde ¸si restrict¸ia activ˘ arii simultane a comenzii de ˆınscriere ¸si de citire) s-au realizat diferite tipuri de latch-uri cu ceas. Totu¸si, aceste latch-uri cu ceas mai prezint˘ a un inconvenient: transparent¸a – ie¸sirea este cuplat˘ a cu intrarea (pe durata palierului activ de ceas). Circuitele care realizeaz˘ a o izolare a ie¸sirii de intrare sunt referite prin termenul de bistabile/triggere (flip-flop). 3.3.2.1

Principiul master-slave

Principiul Master-Slave (M-S) exprim˘ a o modalitate de structurare a oric˘ arui tip de circuit basculant. Aceast˘ a modalitate de structurare const˘ a ˆın ˆınserierea a dou˘ a latch-uri cu ceas, fiecare fiind transparent pe palierul H al semnalului de ceas. Consider˘ am un bistabil SR structurat M-S, ca ˆın Figura 3.43-a, din dou˘ a latch-uri SR, primul - master - comand˘ a pe cel de al doilea - slave. Datele SR ale bistabilului se aplic˘ a pe intr˘ arile de date ale latch-ului master, ale c˘ arui ie¸siri Q M , QM L se aplic˘ a pe intr˘ arile SR ale latch-ului slave, iar ie¸sirile bistabilului Q, Q N sunt cele ale latch-ului slave. Cele dou˘ a latch-uri sunt validate, pentru transferul datelor de la intrare spre ie¸sire, pe paliere defazate cu 180 ale semnalului de ceas, latch-ul master este comandat pe palierul CLK=1 iar, apoi, latch-ul slave pe palierul CLK = 1 (datorit˘ a inversorului pe semnalul de ceas). Pe durata palierului pozitiv, CLK=1, latch-ul master fiind transparent datele de intrare (sau orice modificare a acestora) sunt transferate la ie¸sire,QM , QM L, dar latch-ul slave este blocat. ˆIn schimb, pe durata palierului negativ, CLK = 1, latch-ul master este blocat iar latch-ul slave devine transparent ¸si transfer˘ a datele de la ie¸sirile masterului Q M , QM L, care sunt intr˘ ari la slave, spre ie¸sirile bistabilului, Q, Q N . De fapt, latch-ul slave are ca date de intrare datele de la ie¸sirea latch-ului master ˆın momentul comut˘ arii semnalului de ceas de la 1 la 0, deci bistabilul apare ca fiind comandat de c˘ atre frontul posterior. Bistabilul are izolat˘ a ie¸sirea de intrare, deoarece permanent unul din latch-uri este blocat, iar bascularea apare ca fiind efectuat˘ a ˆın momentul frontului negativ de ceas. Evident, ca bistabilul s˘ a-¸si modifice ie¸sirea conform datelor aplicate pe intr˘ arile SR acestea trebuie s˘ a r˘ amˆ an˘ a stabile pe toat˘ a durata de transparent¸a˘ a latch-ului master, CLK=1, pˆ an˘ a ˆın momentul aparit¸iei frontului posterior care va determina transferul ˆın slave. Aceast˘ a ˆıntˆ arziere, din momentul aplic˘ arii datelor pˆ an˘ a ˆın momentul bas-

396

3.3. CIRCUITE BASCULANTE

cul˘ arii ie¸sirii, este specificat˘ a ˆın simbolul de reprezentare al structurilor master-slave, Figura 3.43-d, prin simbolul e aplicat pe ie¸sirile Q ¸si Q N . ∆ CLK M A S T E R

S

S

R

CLK

QM

CLK

R

QM_L

τf

b)

CLK PRESET

CLEAR

S

S L A V E

0 0 1 1 Q

a) t1

t2

QN

1 1 0 0

t4

t5

t6

S R T W1

T W2

QN QN (FM) 0 1 1 0 1/0 1/0 (ND) Q QN (FM)

T W3

t7

τf

τH

PRESET

R CLK Q Q 0

c) t3

τ SU

S

Q

CLK R

Q

d)

CLEAR

t8

t9

T W4

T W5

CLK QM QM_L Q QN

e) ND

Figura 3.43 Principiul master slave: a) organizarea de tip master-slave; b) reprezentarea intervalelor de timp pentru o tranzit¸ie corect˘ a a bistabilelor comandate pe front (ˆın cazul acesta pe frontul posterior); c,d) tabelul de tranzit¸ie ¸si simbolul de reprezentare pentru un bistabil SR master-slave; e) diagrame de semnal ubt¸inute ˆın funct¸ionarea unui bistabil SR master-slave. Transparent¸a latch-ului master pe durata palierului pozitiv de ceas este un dezavantaj deoarece un glitch, posibil s˘ a apar˘ a ˆın sistemele digitale, poate modifica datele aplicate pe intr˘ ari, ˆınscrie o valoare eronat˘ a ˆın latch-ul master ¸si care, apoi, la aparit¸ia frontului posterior se transfer˘ a ˆın latch-ul slave spre ie¸sirea bistabilului. Din punct de vedere logic bistabilul SR master-slave este identic cu latch-ul SR cu ceas, ceea ce rezult˘ a ¸si din identitatea tabelelor caracteristice din Figurile 3.43-c ¸si 3.39-c, au acela¸si tabel de excitat¸ie, Figura 3.39-d, deci aceea¸si ecuat¸ie logic˘ a, relat¸ia 3.20. Funct¸ionarea bistabilului SR este descris˘ a ¸si ˆın diagrama de semnale din Figura 3.43-e. ˆIn intervalele de transparent¸a˘ ale masterului T W1 , TW2 , TW3 , TW4 ¸si TW5 , cˆ and ceasul este activ, aparit¸ia unui impuls pe una sau ambele intr˘ ari de date

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

397

poate modifica starea latch-ului master, stare deja fixat˘ a de configurat¸ia de date (care exista la ˆınceputul intervalului respectiv de transparent¸a˘). De exemplu, ˆın momentul t1 latch-ul master este comutat din 0 ˆın 1, ˆın t3 din 1 ˆın 0 ¸si ˆın t5 din 1 ˆın 0 iar schimb˘ arile configurat¸iei de date din momentele t 2 , t4 ¸si t6 sunt ignorate de latch-ul master deoarece nu este activat de ceas. Se observ˘ a c˘ a modificarea st˘ arii latch-ului slave poate apare doar pe frontul posterior al semnalului de ceas. ˆIn momentul t8 , pe frontul posterior al semnalului de ceas TW4 , deoarece QM QM L = 11 (SR = 11), ambele latch-uri intr˘ a ˆın metastabilitate, iar din aceast˘ a stare poate ie¸si dup˘ a un anumit timp ˆınscriindu-se fie ˆın starea 1 fie ˆın starea 0. Latch-ul master va fi ˆınscris determinist, ¸si scos din starea de metastabilitate, dac˘ a ˆınc˘ a nu s-a consumat aceast˘ a stare, ˆın momentul t9 cˆ and este ˆınscris prin SR=01 ˆın starea 0, iar latch-ul slave poate fi ˆınscris determinist ˆın starea 0 pe frontul posterior al palierului T W5 . Rezult˘ a, din explicat¸iile anterioare, c˘ a starea de metastabilitate la un latch apare cˆ and ambele sale ie¸siri sunt ˆın 1 la dezactivarea semnalului de ceas. Dar, metastabilitate poate apare ¸si cˆ and intr˘ arile de date se modific˘ a pe durata frontului de ˆınscriere/(activare) a semnalului de ceas, Figura 3.43-b (se consider˘ a frontul posterior cˆ and se ˆınscriu datele ˆın latch-ul slave). Ca durat˘ a a frontului de ˆınscriere se consider˘ a un interval ∆ compus din urm˘ atoarele trei subintervale: • τSU -timpul de prestabilire (Set-Up), care este intervalul de timp dinainte de ˆınceperea tranzit¸iei active (frontului) a ceasului ˆın care intr˘ arile de date trebuie s˘ a fie stabile; • τf -durata frontului activ de ceas; • τH -timpul de ment¸inere (Hold), care este intervalul de timp dup˘ a tranzit¸ia frontului activ ˆın care intr˘ arile de date trebuie s˘ a mai fie ˆınc˘ a ment¸inute stabile. Deci intervalul ∆, denumit fereastr˘ a de decizie, axat pe frontul activ de tranzit¸ie are durata ∆ = τSU + τf + τH (3.23) Este referit prin fereastr˘ a de decizie deoarece ˆın acest interval ∆ bistabilul testeaz˘ a datele aplicate pe intrare ¸si decide care va fi starea la ie¸sire. Pentru circuitele TTL valori uzuale sunt: τSU =(5 ÷ 20)ns, τH =(5 ÷ 0)ns; la circuitele mai rapide ace¸sti parametri tind spre valori care se situeaz˘ a ˆınspre limitele inferioare ale intervalelor. La implementarea unui crcuit, ˆıntr-o anumit˘ a tehnologie, se recomand˘ a ca perioada T a semnalului de ceas s˘ a fie fat¸a˘ de timpul de propagare τp pe o poart˘ a ˆın relat¸ia T ≥ (40 ÷ 50)τp . L˘ a¸timea ferestrei de decizie, ˆın raport cu durata unui palier activ de ceas este foarte unic˘ a, deci se poate considera c˘ a tranzit¸ia pe frontul semnalului de ceas a bistabilelor se realizeaz˘ a punctual (ˆıntr-un moment de timp). La toate circuitele bistabile, a c˘ aror structur˘ a se bazeaz˘ a pe celule latch, pentru o funct¸ionare corect˘ a trebuie respectat˘ a aceast˘ a condit¸ie de nemodificare a datelor ˆın intervalul ∆, axat pe frontul activ al semnalului de ceas. Circuitele basculante pentru ˆınscriere, pe lˆ ang˘ a intr˘ arile de date validate (sincronizate) cu semnalul de ceas, ˆın general, mai prezint˘ a ˆınc˘ a dou˘ a intr˘ ari asincrone, de regul˘ a active ˆın stare low, notate prin P RESET (ˆınscriere ˆın starea Q = 1, QN = 0) ¸si CLEAR (ˆınscriere ˆın starea Q = 0, QN = 1). Aceste intr˘ ari asincrone se aplic˘ a, Figura 3.43-a, la bistabil pe celula latch care genereaz˘ a starea bistabilului Q,

398

3.3. CIRCUITE BASCULANTE

QN ; avˆ and acces direct, f˘ ar˘ a validare prin semnal de ceas, la fixarea st˘ arii bistabilului, rezult˘ a c˘ a intr˘ arile asincrone realizeaz˘ a o comand˘ a prioritar˘ a ˆın raport cu intr˘ arile de date. De¸si organizarea de tip master-slave a bistabilelor realizeaz˘ a o izolare a ie¸sirii de intrare faptul c˘ a datele de intrare trebuie s˘ a fie ment¸inute constante pe durata palierului activ de ceas apare ca o restrict¸ie destul de sup˘ ar˘ atoare ˆın anumite aplicat¸ii. Solut¸ia ar fi: scurtarea acestui palier doar la un impuls care s˘ a apar˘ a fie pentru frontul pozitiv fie pentru frontul negativ al semnalului de ceas. Astfel se obt¸in bistabile cu comutat¸ie pe front. Generarea unui impuls pe unul din fronturile semnalului de ceas se bazeaz˘ a pe producerea intent¸ionat˘ a a hazardului de propagare, Figura 2.24. PRESET

S

CLK

CLK

Q

S CLK

R

S R

CLK

R

CLK

PRESET

S CLK

Q

CLK

CLK

R

CLK

CLK

b)

QN CLEAR

CLEAR

a)

Q

c)

d)

Figura 3.44 Bistabile cu comutat¸ia pe front: a,c) circuite pentru generarea de impulsuri pentru comutat¸ia bistabilelor pe frontul pozitiv, respectiv negativ; b,d) simbolurile de reprezentare ale bistabilelor SR cu comutat¸ie pe frontul pozitiv, respectiv negativ. ˆIn Figurile 3.44-a ¸si 3.44-b sunt prezentate dou˘ a circuite care produc impulsuri, cu l˘ a¸timea τp egal˘ a cu timpul de propagare printr-un inversor, respectiv pe frontul pozitiv sau negativ. Un astfel de impuls de ceas, care s˘ a comande comutat¸ia bistabilului, trebuie s˘ a aib˘ a durata egal˘ a sau mai mare cu timpul de tranzit¸ie ˆın bistabil a semnalelor de date spre ie¸sire. Pentru semnalele de date restrict¸ia de nemodificare se reduce doar la intervalul de τSU ˆınainte de front ¸si τH dup˘ a front, adic˘ a pe intervalul ∆, ceea ce este cu mult mai redus decˆ at l˘ a¸timea unui palier a semnalului de ceas. Comanda unui bistabil pe frontul pozitiv se simbolizeaz˘ a prin semnul , ca ˆın Figura 3.44-b iar pentru frontul negativ prin semnul ca ˆın Figura 3.44-d. Cele mai utilizate bistabile, mai ales pentru implement˘ ari sub form˘ a de circuite integrate discrete, sunt cele cu comutat¸ie pe front. Bistabilele cu comutat¸ie pe front rezolv˘ a cu acuratet¸ea ,, ,, unui front problema decupl˘ arii act¸iunii “cum de “cˆ and . 3.3.2.2

Bistabilul D

Acest tip de bistabil, similar din punct de vedere logic latch-ului D, se poate obt¸ine dintr-un bistabil SR, c˘ aruia i se fort¸eaz˘ a datele de intrare s˘ a ˆındeplineasc˘ a relat¸ia R = S, prin utilizarea unui inversor pe intr˘ ari. ˆIn Figura 3.45-a este prezentat˘ a modalitatea de transformare a unui bistabil SR master-slave ˆıntr-un bistabil de tip cu comutat¸ie pe frontul negativ (transferul din latch-ul master ˆın latch-ul slave se

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

399

realizeaz˘ a la sfˆ ar¸situl palierului activ de ceas CLK=1). Se poate realiza un bistabil D cu comutat¸ie pe frontul pozitiv dac˘ a se utilizeaz˘ a ˆınc˘ a un inversor pe intrare, obt¸inˆ andu-se deschiderea master-ului pe palierul negativ al ceasului iar al slave-ului pe palierul pozitiv. Evident c˘ a indiferent de tipul frontului semnalul aplicat pe intrarea D trebuie s˘ a respecte restrict¸iile de nemodificare pe durata intervalelor τ SU ¸si τH , iar ˆınscrierea se face conform datei e¸santionate ˆın momentul frontului. O structur˘ a de bistabil D cu comutat¸ie pe frontul negativ, realizat˘ a prin ˆınserierea a dou˘ a celule CMOS dinamice, este reprezentat˘ a ˆın Figura 3.45-b. Celula latch master este validat˘ a pe palierul pozitiv de ceas, iar celula latch slave este validat˘ a pe palierul negativ de ceas. Cˆ and CLK=1, poarta de transmisie PT1 este dechis˘ a iar PT2 ˆınchis˘ a, ie¸sirea QM urm˘ are¸ste intrarea D iar intrarea ˆın celula slave nu este validat˘ a deoarece poarta de transmisie PT3 este ˆınchis˘ a (doar PT4 deschis˘ a pentru a ment¸ine valoarea ie¸sirii Q ˆınscris˘ a anterior).ˆIn momentul frontului negativ, cˆ and semnalul de ceas devine CLK=1, poarta PT1 este ˆınchis˘ a iar PT2 deschis˘ a, celula master este devalidat˘ a , ˆın schimb celula latch slave devine transparent˘ a, poarta de transmisie PT3 se deschide iar PT4 se ˆınchide, ¸si ˆınspre ie¸sirea Q se transmite valoarea logic˘ a Q M memorat˘ a ˆın momentul frontului negativ. Succesiunea aceasta de transfer se repet˘ a ˆın urm˘ atoarea perioad˘ a a semnalului de ceas; port¸ile PT1 ¸si PT4 sunt dechise simultan cˆ and CLK=1, iar ˆın opozit¸ie, cˆ and CLK = 1, sunt comandate simultan PT2 ¸si PT3. Tabelul caracteristic al bistabilului D, Figura 3.45-c, este similar cu cel al latchului D, Figura 3.40-c cu deosebirea c˘ a la primul tranzit¸ia este pe front iar la al doilea pe palier. Ca tabel de excitat¸ie pentru bistabilul D se poate utiliza cel de la latch-ul D, Figura 3.40-d la fel ¸si ecuat¸ia logic˘ a a bistabilului D este cea exprimat˘ a prin relat¸ia 3.22. Diferent¸a ˆın funct¸ionare ˆıntre latch-ul D ¸si bistabilul D se poate evident¸ia din analiza diagramelor de semnal din Figura 3.45-d. Se observ˘ a c˘ a pe intervalele CLK = 1 (TW1 , TW2 , TW3 , TW4 ) latch-ul fiind transparent ie¸sirea Q urm˘ are¸ste variat¸iile intr˘ arii D ceea ce nu se ˆıntˆ ampla cu ie¸sirea Q a bistabilului, acesta va memora numai valorile lui D din momentele fronturilor negative; deci bistabilul poate elimina transferul spre ie¸sirea sa a semnalelor de zgomot. Dac˘ a perioada semnalului de ceas este cu mult mai mic˘ a decˆ at cele mai mici intervale ˆıntre variat¸iile semnalului aplicat pe intrare atunci ie¸sirea Q a bistabilului poate fi identic˘ a cu intrarea D, dar cu o ˆıntˆ arziere de propagare fat¸a˘ de aplicarea frontului de tranzit¸ie activ. Un tip de bistabil D, foarte uzual ˆın aplicat¸ii, este cel cu validarea (semnalului de ceas), prezentat ˆın Figura 3.45-e. Se compune dintr-un bistabil D cu MUX2:1 pe intrarea D, iar selectarea multiplexorului se realizeaz˘ a cu semnalul de validare, E. La intrarea de date 0 a multiplexorului se aplic˘ a ie¸sirea Q a bistabilului D iar pe intrarea 1 se aplic˘ a data de intrare la bistabilul D cu validare. Pentru semnalul de validare inactiv, E=0, pe fiecare front pozitiv de ceas se reˆınscrie ˆın bistabilul D valoarea Q (bistabilul r˘ amˆ ane ˆın aceia¸si stare); bistabilul cu validare apare ca un bistabil D la care semnalul de ceas nu este validat (nu se aplic˘ a ). Pentru semnalul de validare activ, E=1, data de intrare se ˆınscrie, prin MUX2:1, ˆın bistabilul D. ˆIn aplicat¸ii acest tip de bistabil ˆınscrie condit¸ionat data ˆın funct¸ie de un alt semnal care se aplic˘ a pe intrarea de validare. O alt˘ a variant˘ a de bistabil D cu validare, dar cu facilit˘ a¸ti extinse, este prezentat˘ a ˆın Figura 3.72-c. Aplicat¸iile bistabilului D sunt: memorarea unui bit aplicat pe intrare, conform relat¸iei Q(t + 1) = D, la fel ca latch-ul D; sincronizarea semnalelor asincrone ˆınainte ,, de a fi aplicate unui sistem sincron (“aducerea ˆın acela¸si timp cu ceasul sistemului

400

3.3. CIRCUITE BASCULANTE

sincron). Atˆ at pentru memorarea unui bit cˆ at ¸si pentru sincronizarea unui semnal asincron nu apar probleme dac˘ a semnalul aplicat pe intrarea D nu are modific˘ ari ˆın fereastra de decizie ∆. Dac˘ a semnalul aplicat pe intrarea D este o dat˘ a deja sincronizat˘ a (nu se modific˘ a ˆın interiorul ferestrei de decizie), deci respect˘ a timpii de prestabilire τSU ¸si de ment¸inere τH , atunci aceast˘ a dat˘ a este transferat˘ a la ie¸sire, cu ˆınˆ arzierea de propagare τpD fat¸a˘ de frontul activ, ¸si va fi valoarea ie¸sirii bistabilului pe urm˘ atoarea perioad˘ a de ceas; ˆın Figura 3.46-a este prezentat acest mod de funct¸ionare. Probleme apar cˆ and semnalul aplicat pe intrarea D este un semnal asincron care ˆı¸si modific˘ a valoarea ˆın interiorul ferestrei de decizie (modificarea valorii unui semnal asincron poate avea loc oricˆ and), Figura 3.46-b. E¸santionarea unui semnal asincron D, care variaz˘ a pe durata ferestri de decizie (se modific˘ a ˆın D), poate crea dou˘ a situat¸ii de evitat ˆın funct¸ionarea bistabilului D: CLK

D

D

CLK

CLK S

CLK

QM_L

1

D

Q

QN

0

0

1

1

1

0

0

X

Q

QN (FM)

1

X

Q

QN (FM)

MASTER

PT2 CLK

CLK R

QM

SR M−S Q

PT1

2

PT3

Q

CLK

CLK

CLK

c)

Q

PT4 CLEAR

CLK Q

D Q

PRESET

3

b)

a)

SLAVE

MUX2:1 4

D

QN

e)

CLK E

0 1

D Q

Q

CLK

Intervale in care latch−ul D este transparent D CLK

TW1

TW2

TW3

TW4

Q(latch) Q(bistabil)

d) Figura 3.45 Bistabilul D: a) transformarea unui bistabil SR master-slave ˆıntr-un bistabil D cu comutat¸ie pe frontul negativ; b) structur˘ a de bistabil D ˆın tehnologie CMOS cu celule dinamice; c) tabelul caracteristic; d) comparat¸ia formelor de semnal obt¸inute la ie¸sirile unui latch D ¸si un bistabil D ¸si un bistabil D pentru acela¸si semnal aplicat pe intrare.

401

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

1. Ie¸sirea bistabilului, dup˘ a timpul de propagare τ pD , se ˆınscrie nedeterminist, fie cu valoarea D aplicat˘ a pe intrare, fie cu valoarea complementar˘ a D. Dac˘ a se a, iar dac˘ a se ˆınscrie cu valoarea ˆınscrie cu valoarea D sincronizarea a fost reu¸sit˘ D se poate considera c˘ a e¸santionarea s-a realizat put¸in ˆınainte de modificare, cˆ and semnalul aplicat pe intrare ˆıntr-adev˘ ar avea valoarea D. La urm˘ atoarea e¸santionare (urm˘ atorul front activ de clock), dac˘ a semnalul asincron nu ˆı¸si mai modific˘ a valoarea, ˆın bistabil se ˆınscrie valoarea corect˘ a, adic˘ a D; pentru sistemul care utilizeaz˘ a semnalul sincronizat apare c˘ a semnalul a fost e¸santionat (sincronizat) cu ˆıntˆ arzierea de o perioad˘ a de ceas. 2. Bistabilul, dup˘ a timpul de propagare τpD , oscileaz˘ a sau intr˘ a ˆın metastabilitate, la ie¸sire se genereaz˘ a un semnal ˆıntre 0 ¸si 1 logic, deoarece funct¸ionarea (latch-ului de baz˘ a al bistabilului) este ˆın regim liniar. Iar dac˘ a ie¸sirea acestui bistabil se aplic˘ a pe intrarea altor bistabile/port¸i unele din acestea pot sesiza intrarea pe nivel logic 1 iar altele pe nivel logic 0 sau unele bistabile pot intra ˆın metastabilitate. Dup˘ a un timp, τm - timp de metastabilitate - care are o determinare probabilistic˘ a [Wakerly 0 00], bistabilul iese din starea de metastabilitate ˆınscriindu-se, nedeterminist, fie ˆın valoarea logic˘ a 1, fie 0, Figura 3.46-b. Scoaterea bistabilului din metastabilitate se obt¸ine prin dou˘ a mobilit˘ a¸ti. Prima, se fort¸eaz˘ a ˆıntr-o stare valid˘ a prin aplicarea unei intr˘ ari care respect˘ a parametrii de τSU ¸si τH . A doua, dup˘ a τm (care are o durat˘ a?!) starea de metastabilitate se consum˘ a.

TCLK

i+1 D

CLK

i+2

TCLK

TCLK

TCLK

CLK

τ SU τ H

D

τ pD

Q Q(t)

D

τ pD Q(t+1)

Q(t+2)

a)

τ SU τ H τ pD

τm

Q(t+2) metastabilitate

sincronizator

sincronizator

c)

τ SU τ H τ pD

Q(t)

TCLK

D

b)

INTSINCR INTASINCR D Q (Intrare D1 asincrona) QN CLK CLK

i+2

TCLK

D

D

τ SU τ H

i+1

Sistem sincron

MET INTASINCR INTSINCR Q D Q D (Intrare D2 D1 asincrona) QN QN CLK CLK CLK

Sistem sincron

d)

Figura 3.46 Utilizarea bistabilului D pentru sincronizarea datelor. Tranzit¸ia datelor prin bistabil cˆ and este ˆındeplinit˘ a condit¸ia de nemodificare ˆın fereastra de decizie (a) cˆ and nu este respectat˘ a condit¸ia de nemodificare; c) structur˘ a de sincronizator cu un bistabil D (d) cu dou˘ a bistabile ˆınseriate.

402

3.3. CIRCUITE BASCULANTE

Un circuit pentru obt¸inerea unei intr˘ ari sincrone, INTSINCR, aplicate apoi la un sistem sincron, prin e¸santionarea unui semnal asincron, INTASINCR, este prezentat ˆın Figura 3.46-c. Elementul sincronizator este un bistabil D care produce o sincronizare corect˘ a ˆın afar˘ a de cazul ˆın care semnalul INTASINCR ˆı¸si modific˘ a valoarea ˆın fereastra de decizie. Cˆ and INTASINCR se modific˘ a ˆın fereastra de decizie variat¸ia semnalului de ie¸sire obt¸inut, INTSINCR, poate fi ˆıncadrat˘ a ˆın una din cele dou˘ a situat¸ii de evitat, ˆın funct¸ionare ale bistabilului D, descrise anterior (aplicarea unei intr˘ ari nedefinite, fie 1, fie 0, la sistemul sincron sau o sincronizare ratat˘ a – adic˘ a aplicarea unei valori situate ˆıntre 0 ¸si 1 logic). Evitarea acestor funct¸ion˘ ari incorecte poate fi realizat˘ a de c˘ atre varianta de sincronizator cu dou˘ a bistabile D 1 , D2 ˆınseriate ca ˆın Figura 3.46-d. Semnalul INTSINCR va fi generat corect de bistabilul D 2 dac˘ a ˆın fereastra lui de decizie semnalul MET, produs de bistabilul D 1 , nu are modific˘ ari. Chiar ¸si cˆ and semnalul MET, produs de D1 , este nedeterminist, fie 1, fie 0, acesta devine stabil dup˘ a τpD , deci urm˘ atorul front de ceas ˆıl g˘ ase¸ste stabilizat pe intrarea bistabilului D2 . Dar dac˘ a semnalul MET este produs de starea de metastabilitate a lui D1 , ¸si aceast˘ a stare nu s-a consumat pˆ an˘ a la aparit¸ia noului front de ceas , τm > τCLK , atunci ¸si D2 intr˘ a ˆın metastabilitate. Relat¸ia de temporizare care s˘ a impun˘ a ca D2 s˘ a nu intre ˆın metastabilitate, deci ca aceast˘ a variant˘ a de sincronizator s˘ a nu produc˘ a sincroniz˘ ari ratate, are expresia τ m ≤ TCLK − τSU . Din aceast˘ a relat¸ie se deduc dou˘ a modalit˘ a¸ti de a evita sincroniz˘ ari ratate: 1- m˘ arirea perioadei T CLK a semnalului de e¸santionare (ˆın general, semnalul asincron are o frecvent¸a˘ de modificare mult mai mic˘ a decˆ at frecvent¸a de ceas); 2- mic¸sorarea timpului de prestabilire τ SU (ˆın general, circuitele moderne, mai rapide, realizeaz˘ a valori mai mici, chiar sub 5 ns). ˆIn concluzie, exist˘ a posibilitatea de a realiza o sincronizare aproape sigur˘ a pe timpul de funct¸ionare al unui echipament. Structuri de sincronizatoare care s˘ a realizeze pentru timpul mediu ˆıntre dou˘ a (eventuale) sincroniz˘ ari ratate, MTBF (Mean Time Between Synchronizer Failures), valori ce dep˘ a¸sesc timpul de viat¸a˘ de funct¸ionare al unui echipament pot fi g˘ asite ˆın [Wakerly 0 00]. 3.3.2.3

Bistabilul JK

Toate circuitele prezentate pˆ an˘ a acum, prin completarea structurii latch-ului din sect¸iunea 3.3.1, au avut ca finalitate eliminarea unora din deficient¸ele latch-ului. Totu¸si, a r˘ amas nesolut¸ionat˘ a comanda contradictorie de activare simultan˘ a a ˆınscrierii ¸si ¸stergerii. Aceasta comand˘ a a fost eliminat˘ a, dar nu solut¸ionat˘ a, la latch-ul D ¸si bistabilul D prin comasarea acestei comenzi cu cea de neactivare simultan˘ a a intr˘ arilor (No-OPeration), dar circuitul s-a redus la o singur˘ a intrare de date. Solut¸ionarea se poate obt¸ine prin realizarea unui automat cu dou˘ a intr˘ ari J-ˆınscriere ¸si K-¸stergere, Figura 3.47-a, avˆ and ca element de memorare, fie un latch cu ceas, fie un bistabil, care pe lˆ ang˘ a comenzile normale (ˆınscriere J