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 JK=10, ¸stergere JK=01, No-OPeration JK=00) s˘ a aib˘ a ¸si comanda JK=11 pentru care s˘ a basculeze ˆın starea opus˘ a. Funct¸ionarea acestui automat - bistabilul JK - este redat˘ a ˆın tabelul caracteristic din Figura 3.47-b. Se obt¸ine tabelul de excitat¸ie, Figura 3.47-c, sau forma concentrat˘ a, Figura 3.47-d, dac˘ a ˆın tabelul caracteristic se analizeaz˘ a pentru fiecare din cele patru tranzit¸ii posibile, ˆıntre cele dou˘ a st˘ ari, care din linii asigur˘ a tranzit¸ia respectiv˘ a. De exemplu, tranzit¸ia ˆıntre st˘ arile Q(t) = 1 ¸si Q(t+1) = 0 poate fi realizat˘ a de linia treia, JK=01, sau linia a patra, JK=11, adic˘ a JK=−1. Mapˆ and acest tabel de excitat¸ie

403

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

J K

CLC1

Q(t+1)

LATCH

Q(t)

CLK

a) K

CLK

3

QN

0

0

Q

QN (FM)

0

0

0

0

1

0

1

0

1

1

1

0

1

0

1

1

0

1

1

Q

QN

1

0

1

1

CLC1 S

1

QN

h)

Q

JK 00 Q(t) 0 0

4

01

11

10

0

1

1

0

0

Q

R=KQ JK 00 Q(t) 0

latch 1 0

g)

01

1

Q(t+1)

c)

S=JQ

R

2

K

K

b) J

Q(t) J

J

11

10

0

0

1

0

0

A

1

A

JK A A

d)

Q(t) S

R

Q(t+1)

0

0

0

1

0

1

1

0

1

0

0

1

1

Tranzitie

0

f)

JK 00 Q(t) 0 0 1 1

01

11

10

0

1

1

0

0

1

Q(t+1) =JQ(t) +KQ(t)

e)

Figura 3.47 Etapele sintezei structurii de bistabil JK: Pornind de la structura de automat (a) cu tabelul caracteristic (b) ¸si tabelul de excitat¸ie (c,d) se obt¸ine tabelul de tranzit¸ie al st˘ arilor sub forma unei diagrame V-K (e). Folosind tabelul de excitat¸ie and al latch-ului SR(f) se obt¸in funct¸iile de excitat¸ie S = JQ(t) ¸si R = KQ (g) rezultˆ structura de tip JK (h). ˆıntr-o diagram˘ a V-K, avˆ and intr˘ arile Q(t) ¸si JK, Figura 3.47-e, se deduce ecuat¸ia logic˘ a pentru funct¸ionarea bistabilului JK. Q(t + 1) = J · Q(t) + K · Q(t)

(3.24)

Alegˆ and pentru elementul de memorare al automatului JK un latch SR cu ceas este necesar a se determina ecuat¸ia logic˘ a pentru CLC1 care genereaz˘ a semnalele S ¸si R. Diagramele V-K pentru sinteza funct¸iilor de excitat¸ie S, R, Figura 3.47-g, se obt¸ine prin conversia diagramei V-K a bistabilului JK utilizˆ and tabelul de excitat¸ie al latch-ului SR, Figura 3.47-f. De exemplu, cˆ and bistabilul JK este ˆın starea Q(t) = 0 ¸si se aplic˘ a JK=00 bistabilul comut˘ a ˆın starea Q(t + 1) = 0, c˘ asut¸a de coordonate Q(t)JK = 000. Dar pentru c˘ a aceast˘ a tranzit¸ie (0→ 0) este realizat˘ a de c˘ atre latch-ul SR se observ˘ a, din tabelul de excitat¸ie al acestuia, c˘ a valorile aplicate pe intr˘ arile sale trebuie s˘ a fie S = 0, R = −, valori care se introduc ˆın cele dou˘ a c˘ asut¸e de coordonate Q(t) JK=000 ale diagramelor V-K din Figura 3.47-g. Iar cˆ and bistabilul comut˘ a din Q(t) = 1 ˆın Q(t + 1) = 0, c˘ asut¸a de coordonate Q(t) JK=111, valorile aplicate pe intr˘ arile latch-ului trebuie s˘ a fie S = 0 ¸si R = 1, valori care se introduc respectiv ˆın c˘ asut¸ele de coordonate Q(t) JK=111 ale diagramelor V-K pentru funct¸iile S ¸si R. Rezult˘ a cele dou˘ a funct¸ii de excitat¸ie S = J · Q(t) ¸si R = KQ(t) cu implementarea

404

3.3. CIRCUITE BASCULANTE

din Figura 3.47-h. Structura de bistabil JK obt¸inut˘ a, corect˘ a din punct de vedere logic, nu este practic funct¸ional˘ a cˆ and palierul activ al semnalului de ceas are durata mai mare decˆ at timpul de propagare prin latch. De exemplu, dac˘ a bistabilul este ˆın starea logic˘ a 0 (Q = 0, QN = 1) ¸si pe intr˘ arile de date se aplic˘ a JK = 11 poarta 3 va genera un semnal S = 1 care va ˆınscrie bistabilul ˆın starea 1 (Q = 1, Q N = 0), iar dac˘ a se ment¸ine JK = 11 se va deschide acum poarta 4 ce va genera un semnal R = 1 care va ˆınscrie bistabilul ˆın starea 0 ¸s.a.m.d, dac˘ a se ment¸ine JK = 11. Perioada de oscilat¸ie este egal˘ a cu dublul timpului de propagare printr-o poart˘ a AND de pe intrare plus timpul de propagare prin latch-ul SR. De fapt, cˆ and durata palierului activ de ceas este mai mare decˆ at timpul de propagare ˆın automat, acesta are o funct¸ionare de automat asincron (transparent¸a˘), care pentru JK = 11 nu ˆındepline¸ste niciodat˘ a condit¸ia de stabilitate, starea prezent˘ a s˘ a fie identic˘ a cu starea viitoare calculat˘ a, deci automatul este cu oscilator. Eliminarea posibilit˘ a¸tii de intrare ˆın oscilat¸ie a bistabilului JK, din Figura 3.47-h, cˆ and JK=11, se poate realiza prin izolarea intr˘ arii de ie¸sire adic˘ a substituind latch-ul SR cu o structur˘ a de bistabil SR master-slave, Figura 3.48-a, obt¸inˆ andu-se bistabilul JK master-slave cu simbolul de reprezentare din Figura 3.48-c ¸si tabelul caracteristic din Figura 3.48-b. Dar ¸si acest tip de bistabil este afectat de ceea ce se nume¸ste captarea de (zgomote) 1 sau 0 datorit˘ a transparent¸ei latch-ului master pe palierul activ de ceas. De exemplu, dac˘ a bistabilul este ˆın starea 1 (Q = 1, QN = 0) iar pe intr˘ arile de date se aplic˘ a JK=00 atunci ˆın momentul aparit¸iei palierului activ de ceas latch-ul master se ˆınscrie ˆın QM = 1 ¸si QM L = 0 deci bistabilul va r˘ amˆ ane tot ˆın starea 1. Dar dac˘ a pe durata palierului activ de ceas pe intrarea K apare un glitch, posibil ˆın sistemele digitale, acesta va ˆınscrie (K · Q = 1) latch-ul master ˆın 0, Q M = 0 ¸si QM L = 1, care se transfer˘ a apoi la ie¸sire ca stare 0 a bistabilului chiar dac˘ a pe intrare a disp˘ arut zgomotul ¸si se revine la JK=00 (captare zero). Similar se ˆıntˆ ampl˘ a dac˘ a bistabilul este ˆın starea 0 (Q = 0, QN = 1), intrarea este JK=00 ¸si pe intrarea J apare un glitch, va rezulta (J · QN = 1) la ie¸sire starea 0 (Q = 1, QN = 1) chiar dac˘ a zgomotul a disp˘ arut ¸si se revine la JK=00 (captare 1). Se obt¸ine un bistabil JK, f˘ ar˘ a posibilitatea capt˘ arii de 1 sau 0, dac˘ a structura de bistabil master-slave este substituit˘ a cu un bistabil D cu comutat¸ie pe front, Figura 3.48-d al c˘ arui simbol de reprezentare este desenat ˆın Figura 3.48-f, iar tabelul caracteristic este descris ˆın Figura 3.48-e. Un exemplu de diagrame de semnal pentru bistabilul JK cu comutat¸ie pe frontul pozitiv este dat ˆın Figura 3.48-g; variat¸ia de semnale pe intr˘ ari trebuie s˘ a respecte condit¸ia de nemodificare pe intervalele τ SU ¸si τH ˆın jurul frontului de comutat¸ie. Dintr-un bistabil JK se poate obt¸ine simplu un bistabil D prin comasarea liniilor unu ¸si patru, Figura 3.48-e, ˆın una singur˘ a prin utilizarea unui inversor pe intrare. Un bistabil JK, avˆ and dou˘ a bucle de react¸ie suprapuse, este un sistem de ordinul doi SO-2 pe cˆ and un bistabil D este un sistem de ordinul unu SO-1. Utilizarea unui bistabil JK pentru modelarea funct¸ion˘ arii unui bistabil D ar ˆınsemna irosirea autonomiei unui SO-2 fat¸a˘ de un SO-1; realizarea unui bistabil D dintr-un bistabil JK este o solut¸ie numai cˆ and nu exist˘ a un bistabil D.

405

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS PRESET

S QM CLK R QM

J K

CLK

Q S CLK R QN

CLK

CLEAR

a)

J

K

Q

QN

0

0

Q

QN (FM)

0

1

0

1

J

1 _ Q

0 _ QM

CLK

Q

QN (FM)

1

0

1

1

0

b)

D

K

Q

QN

0

0

Q

QN (FM)

0

1

0

1

1

0

1

0

K

CLK

1

1

CLK

d)

Q QN

Q

K

QN

CLEAR

c)

CLK J J

PRESET

Q

QN

0

Q

QN (FM)

1

Q

QN (FM)

e)

PRESET

J

Q CLK

K

QN

CLEAR

f)

J K CLK Q

g) Figura 3.48 Bistabilul JK: Structura (a) tabelul caracteristic (b) ¸si simbolul de reprezentare (c) pentru un bistabil JK master-slave; structura (d), tabelul caracteristic (e) simbolul de reprezentare (f) ¸si diagrame de semnal (g) pentru un bistabil JK cu comutat¸ie pe front pozitiv. 3.3.2.4

Bistabilul T

Conectˆ and ˆımpreun˘ a cele dou˘ a intr˘ ari JK, nu printr-un inversor ca pentru modelarea funct¸ion˘ arii bistabilului D, ci direct se obt¸ine bistabilul de tip T. ˆIn practic˘ a funct¸ionarea unui bistabil T totdeauna este modelat˘ a pe un bistabil JK, sau pe celelalte tipuri, deoarece nu exist˘ a un circuit integrat discret care s˘ a cont¸in˘ a bistabile T. Prin conectarea ˆımpreun˘ a a intr˘ arilor tabelul caracteristic din Figura 3.48-e devine tabelul caracteristic al bistabilului T reprezentat ˆın Figura 3.49-b. Din acesta, notˆ and J=K=T, se obt¸ine tabelul de excitat¸ie, Figura 3.49-c, ¸si tabelul de tranzit¸ie al st˘ arilor reprezentat prin diagrama V-K din Figura 3.49-d din care rezult˘ a ecuat¸ia de funct¸ionarea bistabilului T: Q(t + 1) = T · Q(t) + t · Q(t) = T ⊕ Q(t)

(3.25)

406

3.3. CIRCUITE BASCULANTE

iar pentru T = 1 aceasta devine: Q(t + 1) = Q(t) T

J

CLK

K

J

K

Q

QN

0

0

1

1

Q _ Q

QN (FM) _ QN

0

Q

QN (FM)

1

Q

QN (FM)

CLK

T

Q

T CLK

CLK

a)

CLK

Q

Q QN

b)

(3.26) Q(t) T Q(t+1) T 0 1 Q(t) 0 0 0 1 0 0 0 1 1 0 1 1 1 1 0 _ _ 1 0 1 Q(t+1)= TQ(t) +TQ(t)

c)

d)

CLK

T=1

e)

Q

Figura 3.49 Bistabilul T: a) modalitatea de a obt¸ine un bistabil T dintr-un bistabil JK (J=k); b) tabelul caracteristic; c,d) tabelul de excitat¸ie; e) diagrame de semnal (semnalul Q are perioada dubl˘ a fat¸a˘ de semnalul de ceas). Relat¸ia 3.26 arat˘ a c˘ a la ment¸inerea intr˘ arii la valoarea T=1, bistabilul T la fiecare impuls de ceas comut˘ a/(basculeaz˘ a) ˆın starea opus˘ a de unde ¸si denumirea de bascul˘ a (toggle). Aceast˘ a simpl˘ a comportare de bascul˘ a are dou˘ a aplicat¸ii foarte frecvent utilizate ˆın sistemele digitale: 1. Num˘ ar˘ ator modulo 2. Deoarece tot la al doilea front (impuls de ceas) aplicat pe intrare bistabilul revine ˆın aceea¸si stare (QQ N → Q QN → QQN → Q QN . . .) ceea ce este echivalent cu identificarea claselor de resturi modulo 2, ˆ0 ¸si ˆ1, din num˘ arul de impulsuri aplicat pe intrare, deci un num˘ ar˘ ator ˆın baz˘ a 2. ˆInseriind dou˘ a bistabile T starea acestora, Q 1 Q0 , revine ˆın aceia¸si valoare dup˘ a patru impulsuri de ceas, adic˘ a identific˘ a clasele de resturi modulo 4: 00 = ˆ0, 01 = ˆ1, 10 = ˆ 2, 11 = ˆ 3 pentru c˘ a 4 modulo 4 = 0 = ˆ0. Se poate deduce c˘ a un num˘ ar˘ ator modulo 2n se obt¸ine din ˆınserierea a n circuite bistabile T. 2. Divizor de frecvent¸˘ a. Pentru c˘ a la fiecare front ˆın acela¸si sens al semnalului de ceas, adic˘ a la un interval de o perioad˘ a TCLK , bistabilul basculeaz˘ a alternativ de la 1 → 0, 0 → 1, 1 → 0 . . . rezult˘ a c˘ a perioada semnalului Q este dubl˘ a ˆın raport cu perioada semnalului de ceas TQ = 2TCLK . ˆIn plus, pentru c˘ a Q comut˘ a doar la fronturile ˆın acela¸si sens ale ceasului nu depinde de factorul de umplere al semnalului de ceas. ˆIn Figura 3.49-e factorul de umplere al semnalului de ceas este sub 50% pe cˆ and frontul de umplere al semnalului generat pe Q este de 50% (exist˘ a o mic˘ a abatere fat¸a˘ de aceast˘ a valoare cu diferent¸a ˆıntre timpii de propagare τpHL ¸si τpLH ). ˆIn concluzie, semnalul obt¸inut pe Q este cu un factor de umplere 50% ¸si are frecvent¸a jum˘ atate din cea a semnalului de ceas.

407

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Tabelul 3.4 Descrierea sintetic˘ a a bistabilelor SR, D, JK ¸si T Tipul de bistabil

Tabelul Caracteristic CLK S R

SR

Q

QN

0 0 Q QN(FM)

0 0

0 1 0

1

0 1 0 1

1 0 1

0

1 0 1 0

1 1 1/0 1/0(ND)

D

1

0

D

Q

QN

0

0

1

1

1

0

0

Q

QN(FM)

1

Q

QN(FM)

Q(t)

D

Q(t+1)

0

0

0

0

1

1

1

0

0

K

Q

QN

0 0 Q QN(FM) 0 1 0 1 0 1

JK

1 1

_ Q

1 0

_ QN

1

1

1 K Q(t+1)

0 0 0 1 1 0 1 1

0 1 0 1

Tranzitia JK 0 A A− _ 1 A −A

1

Q QN(FM) Q(t+1)=JQ(t)+KQ(t) Q

0 0 Q _

QN QN _

1 1 Q QN T

Q(t) J

Q QN(FM)

K

_

Q(t)

T

0 0 1 1

0 1 1 0

Q(t+1)

0

Q QN(FM)

1

Q QN(FM) Q(t+1)=T + J= K=T

01

0 1 0 1 Q(t)

pt T=1; Q(t+1)=Q(t)

Simboluri de reprezentare si exemple de circuite obtenabile comercial PRESET

Q=0 QN=1

0− 10 −0

Q=1 QN=0

S

S

Q

0 1

R

CLEAR

CLEAR

D

CLK

1

CLK

PRESET D

Q

Q

QN CLK

Q

CLEAR

CLEAR

PRESET

0−

J CLK

1−

CLK

PRESET J

Q

Q

QN CLK

Q

CLEAR

CLEAR

−1

Q=1 QN=0

74xx76;74xx112;74xx109 PRESET

Q=0 QN=1

0 T

Q=1 QN=0

Q

74xx74;74xx174;74xx374

Q=0 QN=1

1

Q

CLK QN R

PRESET

Q=0 QN=1

−0

PRESET

74xx71

Q=1 QN=0

0

CLK J

tranzitie

0

Q(t+1)=D(t) CLK J

Graful de

0 1

_ Q QN(FM) Q(t+1)= S + R Q(t)

0 CLK

Tabelul de excitare si ecuatia de functionare Q(t) S R Q(t+1)

Q

CLK

1

QN

1

CLEAR

408

3.3. CIRCUITE BASCULANTE

ˆIn Tabelul 3.4 sunt sintetizate informat¸iile principale despre cele patru tipuri de circuite basculante prezentate. Exemplul 3.15 Deoarece bistabilul T nu exista sub form˘a de circuit integrat independent s˘ a se modeleze funct¸ionarea sa cu circuite bistabile de tip SR, JK ¸si D. Q(t) T

S

R

0

0

1

0

0

1

1

0

1

0

0

1

T

Q(t) 0 1

0

J

a)

0

Q(t) 0 1

0 0

0 0

1

1

1

1

1

1 1 T

0

Q(t) 0

1

1

1 1

T

Q(t) 0 1 J=K=T

1

1

b)

2. Conversia SR 0

1

0

1

T

CLK

S

0

1

T=1 CLK

D

Q CLK QN

Q

T=1 CLK

S

Q

R QN

c) 3. Conversia JK

0

D Q CLK QN

T

R QN

0

T CLK

0

_ _ D=QT+QT=Q + T

0

_ S=Q(t) T

R= Q(t) T T

D

0 0

0

K

1. Conversia D T T 1 Q(t+1) Q(t) 0 1 0 0 0

T CLK

T +VCC

J

K QN

1

J

Q

CLK

Q

K QN

d)

Figura 3.50 Conversia bistabilelor: a) tabelul de excitat¸ie pentru conversia SR, JK ¸si D ˆın T; b) conversia D → T ; c) conversia RS → T ; d) conversia JK → T . Solut¸ie. Rezolvarea acestei probleme este similar˘ a cu cea pentru sinteza bistabilului JK prin modelarea funct¸ion˘ arii pe un automat pe baz˘ a de bistabil SR, Figura 3.47. Concret, trebuie realizate sinteze de automate pe baz˘ a de bistabile SR, JK ¸si D care modeleaz˘ a funct¸ionarea bistabilului T. Funct¸ionarea bistabilului T este descris˘ a prin tabelul s˘ au de excitat¸ie redat ˆın coloanele 1, 2 ¸si 8 din Figura 3.50-a. Coloanele 3-4, 5-6 ¸si 7 sunt valorile respectiv pentru intr˘ arile SR, JK ¸si D, ale bistabilelor SR, JK ¸si D, care produc aceea¸si comutat¸ie ˆıntre Q(t) ¸si Q(t + 1) ca cea realizat˘ a de bistabilul T; aceste valori se citesc pentru fiecare bistabil din tabelele de excitat¸ie prezentate ˆın Tabelul 3.4. Apoi, se face sinteza funct¸ie de excitat¸ie pentru fiecare din intr˘ arile S, R, J, K ¸si D pe o diagram˘ a V-K avˆ and ca variabile de intrare pe Q(t) ¸si T. 1. Conversia D→T, Figura 3.50-b. Rezult˘ a funct¸ia de excitat¸ie pe intrarea D de forma D = Q(t) · T + Q(t) · T = Q(t) ⊕ T , care este identic˘ a cu cea din relat¸ia 3.25, iar pentru T = 1 (bascul˘ a) se obt¸ine relat¸ia D = Q(t). Este evident, c˘ a pentru funct¸ionarea bistabilului D ca bascul˘ a pe intrarea acestuia trebuie aplicat˘ a valoarea de pe ie¸sire dar negat˘ a, ceea ce se poate realiza printr-o react¸ie fie de pe Q, printr-un element inversor comandat(XOR), fie direct de pe QN .

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

409

2. Conversia SR→T, Figura 3.50-c. Pentru funct¸iile de excitat¸ie rezult˘ a expresiile S = Q(t)T ; R = Q(t)T , iar pentru T = 1 se obt¸ine S = QN (t) ¸si R = Q(t). Structurile de circuit obt¸inute conform acestor relat¸ii pot fi considerate ¸si ca fiind particulariz˘ ari ale structurii de bistabil JK cu J=K=T, din Figura 3.47-h. 3. Conversia JK→T, Figura 3.50-d. Funct¸iile de excitat¸ie sunt J = K = T , adic˘ a intr˘ arile bistabilului JK sunt conectate ˆımpreun˘ a generˆ and astfel intrarea bistabilului T. De fapt, aceast˘ a metod˘ a de conversie a stat la baza structurii bistabilului T, Figura 3.49. Utilizˆ and un procedeu ca cel folosit mai sus, pentru obt¸inerea bistabilului T, se poate obt¸ine oricare tip de bistabil prin modelarea funct¸ion˘ arii acestuia pe celelalte tipuri de bistabile.

3.3.3

Aplicat¸ii la automate

ˆIn prezentarea funct¸ion˘ arii ¸si structurii unui automat, Figura 3.7, s-a ar˘ atat c˘ a pe calea de react¸ie starea urm˘ atoare Q(t + 1) devine stare prezent˘ a prin memorarea sa ˆıntr-un element de memorare (registru). Acest element, de memorare, este un circuit basculant bistabil fie de tip latch fie de tip bistabil. Dac˘ a este de tip latch atunci automatul, pe durata de transparent¸a˘ a latch-ului, are o comportare de tip asincron pentru c˘ a react¸ia este continu˘ a pe aceast¸a durat˘ a. Iar dac˘ a este de tip bistabil atunci automatul este sincron pentru c˘ a react¸ia este ˆıntrerupt˘ a, aceasta se ˆınchide numai pe frontul de basculare a bistabilului cˆ and starea urm˘ atoare se ˆınscrie ca stare prezent˘ a. Tipul de bistabil determin˘ a puternic doar structura semiautomatului deoarece partea combinat¸ional˘ a a acestuia, CLC1, Figura 3.8, trebuie s˘ a calculeze funct¸iile de excitat¸ie specifice tipului de bistabil utilizat. ˆIn continuare se vor prezenta exemple de automate implementate cu diferite tipuri de bistabile. Exemplul 3.16 Pentru automatul, a c˘arui sintez˘a s-a prezentat ˆın Exemplul 3.12 s˘ a se realizeze implementarea semiautomatului cu cu bistabile D, JK ¸si SR Solut¸ie. ˆIn implementarea din Figura 3.35 nu s-a specificat ce tip de element de memorie utilizeaz˘ a ˆın bucla de react¸ie, acum aceast˘ a reprezentare generic˘ a de memorie va fi substituit˘ a cu bistabile D, bistabile JK sau bistabile SR. Din tabelul din Figura 3.34 s-a p˘ astrat numai partea corespunz˘ atoare tranzit¸iei st˘ arilor, f˘ ar˘ a ie¸siri, ¸si s-a completat cu valorile funct¸iilor de excitat¸ie pentru definirea semiautomatului implementabil cu bistabile D, JK ¸si SR ˆın Figura 3.51-a. Valoarea funct¸iei de excitat¸ie, pentru fiecare intrare a celor trei bistabile, se obt¸ine prin citirea acesteia din tabelul de excitat¸ie al bistabilului respectiv, Tabelul 3.4, luˆ and ˆın considerare pe toate c˘ aile de tranzit¸ie, comutat¸iile ˆıntre bitul zi (starea prezent˘ a) ¸si wDi,i=0,1,2 (starea urm˘ atoare). De exemplu, pentru calea de tranzit¸ie L5 se realizeaz˘ a tranzit¸ia de la starea prezent˘ a z2 z1 z0 =010 (q1 ) la starea urm˘ atoare wD1 wD2 wD3 = 011 (q4 ), adic˘ a printr-o comutat¸ie a bit¸ilor de stare ˆın felul urm˘ ator z2 = 0 → wD2 = 0, z1 = 1 → wD2 = 1 ¸si z0 = 0 → wD3 = 1, deci atunci la o implementare cu bistabile JK, se obt¸in, din tabelul de excitat¸ie al acestui bistabil, respectiv urm˘ atoarele valori ale bit¸ilor funct¸iilor de excitat¸ie: wJ2 wK2 = 0−; wJ1 wK1 = −0; wJ0 wK0 = 1−. Pentru implementarea elementului de memorare cu bistabil de tip D, valoarea funct¸iei de excitat¸ie este identic˘ a cu valoarea bitului st˘ arii urm˘ atoare a bistabilului, conform relat¸iei 3.22, de aceea ˆın tabel bit¸ii st˘ arii urm˘ atoare a automatului sunt notat¸i cu wD2 , wD1 , wD0 . Expresiile funct¸iilor de excitat¸ie pentru bistabilul D, determinate ˆın Exemplul 3.12, sunt:

410

3.3. CIRCUITE BASCULANTE

Cale Intrari de tranz L1 L2 L3 L4 L5 L6 L7 L8

L9 L 10

Starea urmatoare (functie de excitatie pt bistabil D) Q(t+1)

Starea prezenta Q(t)

Functiile de excitatie pentru intrarile J K ale bistabilelor

wD 2 wD 0 wJ2 wK 2 wJ1 wK 1 wJ0 wK 0 wS 2 wR 2 wS 1 wR 1 wS 0 wR 0 x 2 x1 x 0 Simb z 0 z 1 z 2 Simb wD 1 q0 0 0 0 q0 0 0 0 0 0 0 0 _x x 0 0 0 0 2 1 q0 0 0 0 q1 0 1 0 0 0 1 0 _ 0 0 1 x2 0 0 0 1 0 x x x q0 0 0 0 q2 0 0 1 0 0 2 1 0 1 2 1 0 0 0 1 0 1 _ 0 0 x 0 0 0 q1 0 1 0 q3 1 1 0 1 _ x x x 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 q1 0 1 0 q4 0 1 1 0 0 q q2 0 0 1 0 0 0 0 0 0 1 0 1 1_ 0 0 x2 0 0 0 _x q2 0 0 1 q4 0 1 1 0 0 1 x2 0 0 1 0 x2 0 2 q3 1 1 0 q4 0 1 1 1 _ 1 _ 0 0_ 1 _ 0 0 1 _ 0 x x 0 x q3 1 1 0 q5 1 0 0 0 x1 1 1 x1 0 1 0 1 0 0 1 x1 0 1 0

q4 0 1 1 q0 0 0 0 0 q5 1 0 0 q0 0 0 0 1 0 z 1z 0 z 1z 0 00 01 00 01 11 10 z2 z2 _ x0 0 0 0 x2 x2 0 0

1

L 11

a)

_ _ wJ 2= x 0z 1z 0 z 1z 0 00 01 11 z 2

10

_ wJ 1= x 2z 2 z 1z 0 00 01 11 z

10

1

0

1 10

0 _ x1

1

z 1z 0 00 01 z2

11

0

0

0

1

0

0

_ _ _ wS = x 0z 2z 1z 0 z 1z 0 2 00 01 11 z 2

0 1

1

_ _ wR 2= z 1+x 1z 2

x1

1

_ _ wK 2= z 1+ x 1= z 1x 1

b)

0

2

0 1

0

11

1

c)

Functiile de excitatie pentru intrarile S R ale bistabilelor

1 0

1 0 1 0 0 0 0 0 1 z 1z 0 00 01 11 10 z2 _ x0 0 x 2x 1 _ x1 1 0 _ __ _ _ wJ 0= x 2 x 1z2z1+x 0z2z1+x 1z2z1 z 1z 0 00 01 11 10 z2 _ x2 1 0 1

wK 1= z 0+ x 1z 2

10 _ x0

z 1z 0 00 01 z2 0 x2 x2

0 10 0 _ x1

1

11 0

0

0

__ wS = x 2z 2 z 1 z 1z 0 1 00 01 11 z 2

0 1

0

10

0

1

_ wR 1= z 2z 1 + x 1z 2

0

__ wK 0= z 1+ x 2z 2

z 1z 0 00 01 z2 _ 0 x2x1 0 1

11 0

0

10 x0 _ x1

_ _ _ _ _ _ _ wS 0 = x 2 x 1z 2z 1z 0 + x 0x 2z 1z 0 +x 1z 2z 1

10 0 _ x1

z 1z 0 00 z2 0 1

0

01 _ x2

11

10

1

0

_ wR 0= z 2z 1+ x 2z 0

0

Figura 3.51 Explicativ˘ a pentru Exemplul 3.13: a) tabelul cu valorile funct¸iilor de excitat¸ie; b,c) diagramele V-K pentru sinteza funct¸iilor de excitat¸ie la bistabilele JK ¸si SR.

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

411

wD2 = x0 z 2 z1 z 0 + x1 z2 z1 wD1 = x1 z 2 z 1 + z 2 z1 z 0 + x1 z2 z1

(3.27-a)

wD0 = x2 x1 z 2 z 1 z 0 + z 2 z 1 z0 + x1 z2 z1 Din tabelul completat cu valorile funct¸iilor de excitat¸ie se pot deduce expresiile logice ale acestora dar pentru sintez˘ a vor fi necesare diagrame V-K de ¸sase variabile de intrare: x2 , x1 , x0 , z2 , z1 , z0 . Se poate reduce dimensiunea acestor diagrame la diagrame de numai trei variabile z2 , z1 , z0 prin introducerea unei variabile de intrare ca variabil˘ a reziduu (un exemplu cum se introduce doar o singur˘ a variabil˘ a reziduu este x2 x1 wJ0 prezentat ˆın Figura 3.28-d). ˆIn starea q0 , testˆ andu-se 0 0 0  dou˘ a intr˘ ari, modalitatea cum se introduc simultan 1 0 0 ⇒ wJ0 = x2 x1 aceste dou˘ a variabile reziduu ˆın coeficientul funct¸iei 1 1 0 wJ0 se prezint˘ a ˆın continuare. Prima linie ¸si a patra 0 1 1 din tabelul al˘ aturat exist˘ a definite din tabelul din Figura 3.51-a adic˘ a x2 = 0, x1 = 0 iar wJ0 = 0; x2 = 0, x1 = 1 iar wJ0 = 1. Pentru liniile doi ¸si trei se extinde linia a doua din tabelul din Figura 3.51-a, x2 = 1, x1 = − iar wJ0 = 0, la urm˘ atoarele dou˘ a: x2 = 1, x1 = 0 iar wJ0 = 0 ¸si x2 = 1 x1 = 1 iar wJ0 = 0. Expresia funct¸iei de excitat¸ie wJ0 = x2 x1 s-a dedus din analiza tabelului al˘ aturat. Se obt¸in urm˘ atoarele expresii pentru funct¸iile de excitat¸ie, Figura 3.51-b ¸si 3.51-c:

wJ2 = x0 z1 z 0 wK2 = z1 x1

wS2 = x0 z 2 z1 z 0 wR2 = z 1 + x1 z2

Bistabilul JK wJ1 = x2 z 2 wJ0 = x2 x1 z 2 z 1 + x0 z 0 z1 + x1 z2 z1 wK1 = z0 + x1 z2 wK0 = z1 + x2 z 2

(3.27-b)

Bistabilul SR wS1 = x2 z 2 z 1 wS0 = x2 x1 z 2 z 1 z 0 + x0 z 2 z1 z 0 + x1 z2 z1 (3.27-c) wR1 = z2 z1 + x1 z2 wR0 = z2 z1 + x2 z0

Implementarea p˘ art¸ii combinat¸ionale, conform relat¸iilor 3.27-b ¸si 3.27-c, se poate face prin oricare modalitate de implementare de circuit combinat¸ional (port¸i logice, DMUX+port¸i logice, MUX, ROM sau PLA).

ˆIn implementarea automatelor se pune ˆıntrebarea pentru realizarea elementelor de memorare, din bucla de react¸ie, care din cele trei tipuri de bistabile (D, JK ¸si SR) este indicat a se utiliza (nu s-a considerat ¸si bistabilul T deoarece acesta se obt¸ine simplu dintr-un JK). R˘ aspunsul este mai nuant¸at. Bistabilul D necesit˘ a pentru fiecare bit de stare z i doar o singur˘ a funct¸ie de excitat¸ie aplicat˘ a pe intrarea D. Bistabilele JK ¸si SR necesit˘ a pentru fiecare bit de stare zi dou˘ a funct¸ii de excitat¸ie pe intrare respectiv wJ i ,wKi pentru bistabilul JK ¸si wSi ,wRi pentru bistabilul SR. ˆIn schimb comenzile aplicate pe intr˘ arile bistabilelor a JK ¸si SR sunt vag formulate, de forma JK = A−, JK = −A, ˆın raport cu o comand˘ exact prescris˘ a ce se aplic˘ a la bistabilul D, vezi Tabelul 3.4. Aceast˘ a ambiguitate ˆın comand˘ a determin˘ a valori don0 t care ˆın diagramele V-K de sintez˘ a, deci funct¸iile de excitat¸ie pentru bistabilul JK sunt cele mai simple apoi cele pentru bistabilul SR ˆın

412

3.3. CIRCUITE BASCULANTE

raport cu funct¸ia de excitat¸ie pentru bistabilul D. Se poate constata validitatea acestei afirmat¸ii prin analiza funct¸iilor de excitat¸ie obt¸inute ˆın exemplul anterior relat¸iile 3.27-a,b ¸si c. Pe un circuit integrat discret, ˆın general, sunt incluse mai multe bistabile de tip D decˆ at bistabile JK, dar cu un bistabil JK se poate modela u¸sor un D sau un T, ˆın general are ¸si intr˘ ari asincrone, deci este mai versatil ˆın aplicat¸ii. ˆIn concluzie, pentru implement˘ arile cu circuite integrate discrete pentru sisteme simple bistabilul de tip D este preferat bistabilului JK, pe cˆ and la sisteme mai complexe bistabilul JK prin versatilitatea sa este de preferat.ˆIn schimb, ˆın structurile integrate sunt utilizate aproape ˆın exclusivitate bistabilele de tip D (completate cu multplexoare pe intrare). Proiectarea ¸si implementarea unui circuit automat pot fi mult simplificate, ˆın unele cazuri, prin utilizarea circuitelor multiplexoare. ˆIn primul rˆ and o astfel de simplificare apare ˆın cazul ˆın care fiecare bloc de stare al automatului se testeaz˘ a doar o singur˘ a variabil˘ a de intrare, caz ˆın care acea variabil˘ a poate fi introdus˘ a ca variabil˘ a reziduu. Simplificarea poate apare chiar ¸si cˆ and se testeaz˘ a mai multe intr˘ ari ˆın unele blocuri de stare, dar expresiile coeficient¸ilor funct¸iei pot fi calculate cu operatori simpli (AND,OR...) de variabilele reziduu. Sau, organigrama ASM a funct¸iei, ˆın blocurile unde se testeaz˘ a mai mult de o variabil˘ a, se poate aduce, prin introducerea de st˘ ari noi ˆıntre testarea a dou˘ a variabile, Figura 3.52-c, numai la blocuri ˆın care se testeaz˘ a doar o singur˘ a variabil˘ a. Aceast˘ a simplificare este sust¸inut˘ a mai departe, in implementarea semiautomatului, dac˘ a se alege ca element de memorare ˆın bucl˘ a bistabilul de tip D. ˆIn al doilea rˆ and, simplificarea poate apare prin mic¸sorarea num˘ arului de intr˘ ari aplicate p˘ art¸ii combinat¸ionale prin utilizarea de circuite multiplexoare. Dac˘ a ˆın fiecare bloc de stare din cele n intr˘ ari se testeaz˘ a doar un num˘ ar q intr˘ ari, atunci aceste intr˘ ari pot fi selectate prin q circuite multiplexoare. Conectˆ and intr˘ arile ˆın automat corespunz˘ ator pe intr˘ arile de date ale multiplexoarelor ¸si aplicˆ and cuvˆ antul codului de stare pe intr˘ arile de selectare ale multiplexoarelor, atunci se obt¸in pentru partea combinat¸ional˘ a doar q intr˘ ari ˆın fiecare moment. Aceast˘ a modalitate este foarte indicat˘ a la realizarea p˘ art¸ii combinat¸ionale pe circuit ROM. Deoarece capacitatea circuitului ROM depinde exponent¸ial de num˘ arul de intr˘ ari, chiar ¸si reducerea unei singure intr˘ ari la automat va determina o ˆınjum˘ at˘ a¸tire a capacit˘ a¸tii circuitului ROM. Exemplul 3.17 Pentru automatul din Exemplul 3.12 s˘a se structureze partea de semiautomat numai cu multiplexoare ¸si bistabile de tip D. Solut¸ie. Tabelul de tranzit¸ie al st˘ arilor din Figura 3.51-a este ref˘ acut ˆın Figura 3.52 dar de aceast˘ a dat˘ a valorile funct¸iilor de excitat¸ie ale bistabilelor wD2 , wD1 , wD0 cont¸in intr˘ arile x2 , x1 , x0 ca variabile reziduu. Aceste funct¸ii de excitat¸ie sunt implementate pe MUX8:1 care au ca variabile de selectare bit¸ii cuvˆ antului de stare z2 z1 z0 , Figura 3.52-b. Aceea¸si implementare pe multiplexoare se poate realiza pornind de la relat¸iile 3.27-a care se extind la forme canonice ˆın funct¸ie de cele trei variabile z2 , z1 , z0 . Implementarea cu multiplexoare ¸si bistabile D apare ca o variant˘ a atractiv˘ a de automat deoarece se realizeaz˘ a f˘ ar˘ a efort de sintez˘ a deosebit ¸si cu un cost relativ sc˘ azut .

Exemplul 3.18 Automatul din Exemplul 3.12 s˘a se implementeze cu bistabile D ¸si circuite ROM. Solut¸ie. Pentru automatul propus, tabelul de tranzit¸ie al st˘ arilor ¸si al ie¸sirilor, din

413

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Calea Intrari de tranz

L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11

a)

Starea urmatoare Q(t+1) Starea prezenta (Functiile de excitatie pentru bistabilii D

0 0 1 0 1

0 0 0 0 0 1 0 0 0 1 0 0 1 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

Bloc de stare

000

0 0 0 0_ 0 0 1 0 x 2 1 x2x1 0 1 _ 1 0 1 1 x0 0 x0 1 0 0 0 0 1 x2 1 x2 0 0 1 _ 1 _ 1 x1 0 x1 0 x1 0 0 0 0 0 0

qi xi

_ x0

x1

001 010 011

MUX

100 8:1 101 110 111

S 2 S 1S 0

b)

Separare prin introducerea unei noi stari qj

_ x1

_ x2 x1 x 2 x0

000 001 010 011

MUX

100 8:1 101 110

_ x1

111 S 2 S 1S 0

z0 z1

qj xj

c)

x2 x2 "1"

z2

Q QN Q QN Q QN

000 001 010 011

MUX

100 8:1 101 110 111

S 2 S 1S 0

D0

D

wD

0

wD

1

wD

2

CLK D1

D

CLK D2

D

CLK

CLK

Figura 3.52 Explicativ˘ a pentru Exemplul 3.17: a) tabelul de tranzit¸ie al st˘ arilor cu intr˘ arile automatului introduse ca variabile reziduu; b) implementarea cu bistabile D ¸si mutiplexoare; c) eliminarea test˘ arii a dou˘ a variabile ˆıntr-un bloc de stare prin introducerea unei noi st˘ ari. Figura 3.34, este o form˘ a simplificat˘ a deoarece cont¸ine numai tranzit¸iile pe cele 11 c˘ ai de tranzit¸ie (L1 , L2 , . . . , L11 ) din tabelul de cu 64 tranzit¸ii posibile. Automatul codificat cu trei bit¸i z2 , z1 , z0 poate realiza ˆın fiecare din cele opt st˘ ari cˆ ate opt tranzit¸ii care corespund combinat¸iilor de variabile de intrare x2 , x1 , x0 testate. Informat¸ia privind efectul produs de o tranzit¸ie necesit˘ a cˆ ate o locat¸ie, rezult˘ a c˘ a este necesar˘ a o memorie cu 8 × 8 = 64 adrese, cuvˆ antul de adresare fiind format din trei variabile de stare ¸si trei de intrare, z2 z1 z0 x2 x1 x0 . Component¸a cuvˆ antului de 1 byte dintr-o locat¸ie este: D7 = wD2 ; D6 = wD1 ; D5 = wD0 ; D4 = y3 ; D3 = y5 ; D2 = y4 ; D2 = y2 L; D0 = y1 . Pentru maparea pe memorie a tabelului de tranzit¸ie al st˘ arilor ¸si ie¸sirilor acesta trebuie completat la toate cele 64 de adrese (000000 ÷ 111111) prin extinderea atˆ at pentru simbolurile indiferente ale subcuvˆ antului x2 x1 x0 cˆ at ¸si pentru codurile neutilizate pentru ale st˘ arilor 101 ¸si 111. Rezultatul extinderii este prezentat ˆın Figura 3.53-a, unde cont¸inutul fiec˘ arei locat¸ii este exprimat ˆın hexazecimal ¸si pentru detaliere s-a specificat la fiecare locat¸ie corespondent¸a la starea ¸si calea de tranzit¸ie. Capacitatea circuitului ROM este de 64 × 1 byte iar structura automatului este prezentat˘ a ˆın Figura 3.53-b.ˆIn general, pentru un automat cu k variabile de stare, n variabile de intrare ¸si m bit¸i de ie¸sire capacitatea necesar˘ a este 2k+n × (k + m) bit¸i. Modalitatea de mic¸sorare a capacit˘ a¸tii circuitului ROM utilizat ˆın implementarea automatului este, ca ¸si ˆın abordarea clasic˘ a aplicat˘ a la oricare memorie, fie de mic¸sorare a num˘ arului de intr˘ ari, fie de reducere a num˘ arului de bit¸i de ie¸sire, evident c˘ a prima variant˘ a este mult mai eficient˘ a deoarece are o contribut¸ie exponent¸ial˘ a. Reducerea num˘ arului de

414

3.3. CIRCUITE BASCULANTE

z2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

a) x2

Adresa z1 z0 x 2 x 1 x 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0

x 2x1x0 z2z1z 0

x1 x0 z0 z1 z2

000 03 13 C2 0C 12 __

Bloc de Continut Bloc de Continut Adresa stare locatie z z z x x x stare locatie z (HEX) 2 1 0 2 1 0 (HEX) 2 q0 L1 0 3 0 1 0 1 0 1 q1 L5 6 6 1 q0 L1 0 3 0 1 0 1 1 0 q1 L4 C 2 1

q0 q0 q0 q0 q0 q0 q2 q2 q2 q2 q2 q2 q2 q2 q1 q1 q1 q1 q1

L3 L3 L2 L2 L2 L2 L6 L6 L6 L6 L7 L7 L7 L7 L4 L5 L4 L5 L4

ROM

001 010 03 23 13 13 66 C2 0C 0C 12 12 __ __

2 2 4 4 4 4 1 1 1 1 7 7 7 7 C 6 C 6 C

3 3 1 1 1 1 3 3 3 3 7 7 7 7 2 6 2 6 2

0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0

(64x8 biti)

011 100 23 41 13 77 66 C2 0C 0C 12 12 __ __

0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1

101 110 41 41 77 77 66 C2 0C 0C 12 12 __ __

1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0

1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0

111 41 77 66 0C 12 __

000 001 010 011 100 101 110 6A 6A 8B 8B 6A 6A 8B 8B 111 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ D7 D6 D5 D4 D3 D2 D1 D0

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

q1 q4 q4 q4 q4 q4 q4 q4 q4 q5 q5 q5 q5 q5 q5 q5 q5

x2 x2 x0 x1 x1

CLK wD 2 wD 1 wD 0

Q

D

CLK D CLK D CLK Q QN Q QN Q QN

b)

L5 6 L10 0 L10 0 L10 0 L10 0 L10 0 L10 0 L10 0 L10 0 L11 1 L11 1 L11 1 L11 1 L11 1 L11 1 L11 1 L11 1

y3

y

5

y4 y2_L

y1

6 C C C C C C C C 2 2 2 2 2 2 2 2

000 001 010 011MUX 100 8:1

101 110 111 S2 S1 S0

Q Q

Adresa z1 z0 x 2 x 1 x 0 0 1 0 1 0 0 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 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Bloc de Continut stare locatie (HEX)

q3 q3 q3 q3 q3 q3 q3 q3

L8 L8 L9 L9 L8 L8 L9 L9

ROM 16 x 8 biti 1 z2 z1 z0 P 0

P

z2 z1 z0

Q Q

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

A 1 C 0 1 0 6

3 3 2 C 2 3 A

c)

wD 1

wD 0

4 7 6 0 1 2 8

A A B B A A B B

1 7 6 C 2 3 B

D7 D6 D5 D4 D3 D2D1 D0

y1 y2_L

Q

CLK D CLK D CLK D

CLK wD 2

6 6 8 8 6 6 8 8

y4 y3 y

5

Figura 3.53 Explicativ˘ a pentru Exemplul 3.18: a) tabelul de tranzit¸ie al st˘ arilor ¸si al ie¸sirilor extins pentru maparea ˆıntr-un circuit ROM de capacitate 64 × 8 bit¸i; b) structurarea automatului pe un circuit ROM ¸si bistabile D; c) structurarea aceluia¸si automat cˆ and se testeaz˘ a doar o singur˘ a intrare ˆın fiecare bloc de stare.

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

415

intr˘ ari se poate aplica cu succes la automatele care testeaz˘ a ˆın fiecare stare doar o singur˘ a intrare din cele n, deci cuvˆ antul de adresare rezult˘ a cu lungimea de (k + 1) bit¸i, capacitatea circuitului ROM rezult˘ a de 2k+1 × (k + m) bit¸i, se obt¸ine o reducere de 2n−1 ori. Pentru automatul din acest exemplu nu putem (ˆınc˘ a!) aplica aceast˘ a modalitate deoarece ˆın starea q0 (000) se testeaz˘ a simultan atˆ at x2 cˆ at ¸si x1 . Automatul poate fi redus la un automat care testeaz˘ a ˆın fiecare stare doar o singur˘ a intrare dac˘ a se aplic˘ a procedeul prezentat ˆın Figura 3.52-c, adic˘ a introducerea unei st˘ ari noi q6 ˆıntre punctele de testare ale variabilelor de intrare x2 ¸si x1 din blocul de stare q0 . Rezult˘ a astfel: 1-ˆın blocul de stare q0 (000) tranzit¸ia q0 → q6 pe calea L1 = x2 ¸si tranzit¸ia q0 → q1 pe calea L2 = x2 ; 2-ˆın blocul de stare q6 (101) tranzit¸ia q6 → q0 pe cale L12 = x1 ¸si tranzit¸ia q6 → q2 pe calea L3 = x1 . Ie¸sirile ˆın starea q6 sunt identice cu cele din starea q0 , ceea ce apare pentru funct¸ionarea automatului, cˆ and x2 =0, ca o stat¸ionare de doua tacte ˆın q0 . Tabelul automatului din Figura 3.34 se modific˘ a prin introducerea st˘ arii q6 ¸si a noilor c˘ ai de tranzit¸ie L1 , L12 ¸si L3 (ceea ce trebuie introdus ¸si ˆın forma expandat˘ a din Figura 3.53-a). Pentru automatul modificat structurarea este cea din Figura 3.53-c. ˆIn fiecare bloc de stare prin cuvˆ antul de cod al st˘ arii z2 z1 z0 , aplicat pe intr˘ arile de selectare al MUX8:1, se selecteaz˘ a doar valoarea variabilei de intrare testate, notat˘ a cu P , deci cuvˆ antul de adresare este z2 z1 z0 P . La adresa z2 z1 z0 0 este stocat˘ a informat¸ia din blocul respectiv de stare cˆ and tranzit¸ia are loc dup˘ a calea P = 0, iar la adresa z2 z1 z0 1 este stocat˘ a informat¸ia dup˘ a calea de tranzit¸ie P = 1. Aceast˘ a structurare se poate extinde ¸si pentru cazul cˆ and sunt testate simultan dou˘ a intr˘ ari ˆıntr-un bloc de stare, ˆın cazul general capacitatea memoriei fiind de 2k+2 ×(k+m) bit¸i. Pentru aceast˘ a implementare pe intrare sunt necesare dou˘ a multiplexoare care ˆın fiecare bloc de stare, prin cuvˆ antul de cod z2 z1 z0 , selecteaz˘ a cele dou˘ a variabile testate notate cu P1 ¸si P0 , iar cuvˆ antul de adresare la memorie are forma z2 z1 z0 P2 P1 . Fiecare stare necesit˘ a patru locat¸ii(/adrese) pentru stocarea informat¸iilor corespunz˘ atoare cele patru c˘ ai de tranzit¸ie P1 P0 = 00, 01, 10 ¸si 11. Bitul de adresare P , identic cu valoarea variabilei de intrare testate ˆıntr-un bloc de stare ¸si utilizat pentru selectarea a uneia din cele dou˘ a adrese corespunz˘ atoare celor dou˘ a c˘ ai de tranzit¸ie, poate fi utilizat pentru selectare nu ca un bit de adresare ci ca un bit de validare asupra cuvˆ antului citit din locat¸ia de adres˘ a z2 z1 z0 . ˆIn aceast˘ a variant˘ a cˆ ampul cuvˆ antului stocat la o adres˘ a are lungimea dubl˘ a, deoarece cuprinde atˆ at semicuvˆ antul cu informat¸ie pentru P = 0 cˆ at ¸si semicuvˆ antul cu informat¸ie pentru P = 1, plus ˆınc˘ a un subcuvˆ ant care cont¸ine valorile intr˘ arilor x2 x1 x0 . Notˆ and [z2 z1 z0 ] cont¸inutul unei locat¸ii de adres˘ a z 2 z1 z0 atunci din tabelul memoriei de la Figura 3.53-c se poate obt¸ine cont¸inuturile locat¸iilor de la aceast˘ a variant˘ a prin urm˘ atoarea concatenare x2 x1 x0 [z2 z1 z0 0][z2 z1 z0 1]. Una din intr˘ ari din acest subcuvˆ ant, pentru un bloc de stare z2 z1 z0 , va selecta prin valoarea sa, din cuvˆ antul stocat la adresa z2 z1 z0 , fie semicuvˆ antul pentru P = 0, fie semicuvˆ antul pentru P = 1. Implementarea automatului conform acestei variante de utilizare a bitului variabilei testate este prezentat˘ a ˆın Figura 3.54. Pentru fiecare bloc de stare z2 z1 z0 , ˆın subcuvˆ antul x2 x1 x0 , intrarea care se testeaz˘ a are valoarea 1. De exemplu, dac˘ a ˆın blocul de stare z2 z1 z0 = 001, cˆ and se tasteaz˘ a x2 (= 1) ¸si dac˘ a ˆıntr-adev˘ ar intrarea x2 are valoarea 1 atunci prin poarta P2 se aplic˘ a la grupul 8×MUX 2:1 selectarea P = 1, iar pe ie¸sire rezult˘ a semicuvˆ antul 01110111 (77H), altfel rezult˘ a semicuvˆ antul pentru P = 0, adic˘ a 00010011 (13H). ˆIn cazul general, cˆ and se testeaz˘ a doar o singur˘ a intrare ˆın fiecare bloc de stare, capacitatea memoriei este 2k × (n + 2k + 2m). Aceast˘ a modalitate de implementare se poate extinde ¸si la cazul cˆ and se testeaz˘ a dou˘ a intr˘ ari ˆın fiecare bloc de stare. De aceast˘ a dat˘ a cuvˆ antul din fiecare locat¸ie cuprinde patru subcuvinte, corespunz˘ atoare celor patru tranzit¸ii posibile, plus ˆınc˘ a dou˘ a subcuvinte de variabilele x2 x1 x0 fiecare indicˆ and una din cele dou˘ a variabile care se testeaz˘ a. Evident, se genereaz˘ a doi bit¸i de selectare P1 ¸si P0 prin a c˘ aror combinat¸ii 00, 01, 10 ¸si 11 se selecteaz˘ a una din intr˘ arile grupului de 8×MUX 4:1. Capacitatea necesar˘ a a circuitului ROM este

416

3.3. CIRCUITE BASCULANTE

ROM (8 x 19)biti

CLK CLK D CLK D CLK D

x2 x1 x0

P2

Q Q Q Q Q Q

P1

z2 z1 z0 z2 z1 z0

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

P=0

P=1

WD 2 WD 0 WD 1 y y y y y x2 x1 x0 3 5 4 2_L 1

1 1 0 0 0 0 0

0 0 0 0 0 1 1

0 0 1 0 0 0 0

1 0 1 0 0 0 0

0 0 1 0 0 0 1

1 0 0 0 0 0 1

0 1 0 0 1 0 0

0 0 0 1 0 0 1

0 0 0 1 0 0 0

1 1 1 0 1 1 1

WD 2 WD 0 WD 1 y

1 1 0 0 0 1 0

0 0 0 0 0 0 1

1 1 1 0 0 0 0

0 1 1 0 0 1 0

3

0 1 0 0 1 0 0

y5 y4 y2_L y1

0 0 0 1 0 0 0

0 1 1 1 0 0 0

0 1 1 0 1 1 1

1 1 0 0 0 1 1

P0

P

0 1 MUX 2:1

0 1 MUX 2:1

0 1 MUX 2:1

0 1 MUX 2:1

0 1 MUX 2:1

0 1 MUX 2:1

y3

y5

y4

0 1 MUX 2:1

y2_L

0 1 MUX 2:1

y1

Figura 3.54 Explicativ˘ a pentru Exemplul 3.18. Utilizarea valorii variabilei testate ˆıntr-un bloc de stare pentru selectarea subcˆ ampurilor cuvˆ antului stocat la o adres˘ a z 2 z1 z0 . 2k × (2n + 4k + 4m).

Pentru o funct¸ionare corect˘ a a automatului prin relat¸ia 3.7 se poate calcula perioada minim˘ a a semnalului de ceas. ˆIn cazul cˆ and automatul are cel put¸in o variabil˘ a de intrare sincron˘ a trebuie luat ˆın considerare ¸si timpul de transfer al acestei variabile din momentul aplic˘ arii impulsului de ceas la bistabilul de intrare (de sincronizare). Acest timp de transfer este compus din: τ pBI – timpul de propagare prin bistabilul de sincronizare de intrare plus τ pmaxCLK -timpul maxim de propagare prin ret¸eaua combinat¸ional˘ a, plus τSUQ -timpul de prestabilire la bistabilul de stare. Deoarece se comand˘ a cu acela¸si semnal de ceas atˆ at bistabilele din registrul de sincronizare de pe intrare cˆ at ¸si cele din registrul de stare perioada minim˘ a trebuie s˘ a respecte relat¸ia: TCLKmin ≥ max {(τpmaxCLK + τpBQ + τSUQ ), (τpmaxCLK + τpBI + τSUQ )}

(3.28)

Sinteza automatelor prezentate pˆ an˘ a acum a urmat, mai mult sau mai put¸in, o succesiune de faze descrise ˆın sect¸iunea 3.2.6, ultima faz˘ a fiind elaborarea documentat¸iei. ˆIn practic˘ a, sunt frecvente cazurile cˆ and pentru un automat nu exist˘ a documentat¸ie ¸si astfel, s-ar putea, s˘ a nu se ˆınt¸eleag˘ a funct¸ionarea sa. Funct¸ionarea automatului

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

417

este descris˘ a clar printr-o diagram˘ a de tranzit¸ie a st˘ arilor sau un graf de tranzit¸ie/organigram˘ a ASM. Solut¸ia? pornind de la structura automatului(schema electric˘ a) ¸si parcurgˆ and ˆın sens invers succesiunea procesului de sintez˘ a, se ajunge la tabelul de tranzit¸ie al st˘ arilor ¸si graful de tranzit¸ie al st˘ arilor. Acest proces, invers al sintezei, este analiza automatului. Etapele care se parcurg ˆın procesul de analiz˘ a, pornind de la schema electric˘ a a automatului sunt: 1. Identificarea structurii automatului. Aceasta ˆınseamn˘ a segregarea p˘ art¸ii combinat¸ionale de cea de memorare (bistabilele din bucla de react¸ie ¸si identificarea acestora – sunt cazuri cˆ and sunt utilizate mai multe tipuri de bistabile). Uneori, de mare folos este redresarea schemei sub forma clasic˘ a de automat ca ˆın Figura 3.7 sau 3.8. Se identific˘ a intr˘ arile principale, ie¸sirile, variabilele de stare (intr˘ arile secundare), variabilele funct¸ii de excitat¸ie ¸si, dac˘ a este necesar, alegerea unor denumiri/simboluri pentru acestea. 2. Din analiza p˘ art¸ii combinat¸ionale se deduc ecuat¸iile logice ale ie¸sirilor funct¸iilor de excitat¸ie, ˆın funct¸ie de cele n variabile de intrare ¸si k variabile de stare. 3. Construirea tabelului de tranzit¸ie al st˘ arilor ¸si al ie¸sirilor. Pentru toate combinatiile ˆıntre cele 2k st˘ ari prezente ¸si 2n cuvinte de intrare se determin˘ a st˘ arile urm˘ atoare prin utilizarea relat¸iilor deduse pentru funct¸iile de excitat¸ie ¸si tabelele caracteristice (vezi Tabelul 3.4) ale tipurilor de bistabile folosite. St˘ arile urm˘ atoare se pot calcula ¸si prin: introducerea expresiilor funct¸iilor de excitat¸ie ˆın ecuat¸iile de funct¸ionare ale bistabilelor folosite; introducˆ and ˆın expresiile rezultate toate combinat¸iile de 2k st˘ ari prezente ¸si 2n cuvinte de intrare, obt¸inˆ andu-se astfel valorile bit¸ilor st˘ arilor urm˘ atoare. 4. Construirea grafului de tranzit¸ie al st˘ arilor/organigrama ASM. Asigurˆ and simboluri literale pentru fiecare cod de stare, din tabelul de tranzit¸ie al st˘ arilor ¸si ie¸sirilor, se poate desena graful de tranzit¸ie. Eventual, dac˘ a nu sunt multe variabile, se poate trasa diagrama de variat¸ie ˆın timp a semnalelor. Exemplul 3.19 Pentru automatul cu schema electric˘a din figura 3.55-a s˘a se deduc˘a graful de tranzit¸ie al st˘ arilor. Solut¸ie: Analiza acestui automat se va face marcˆ and etapele specificate anterior. 1. Structura automatului poate fi redesenat˘ a ca ˆın Figura 3.55-b. Se observ˘ a c˘ a ie¸sirile sunt de fapt tocmai bit¸ii de stare z1 , z0 , deci este un automat Moore. 2. Funct¸iile de excitat¸ie au expresiile: wJ1 = z0 , wK1 = xz0 wJ0 = x, wK0 = xz1 + xz1 = x ⊕ z1 3. Tabelul de tranzit¸ie al st˘ arilor, Figura 3.55-c. Se determin˘ a starea urm˘ atoare z1 (t + 1)z0 (t + 1) pentru fiecare din cele opt combinat¸ii ale intr˘ arii x ¸si st˘ arii prezente z1 z0 . ˆIn tabel s-au introdus ¸si valorile intr˘ arilor wJ1 , wK1 , wJ0 , wK0 ale celor dou˘ a bistabile JK (coloanele 4,5,6,7), valori calculate cu ajutorul relat¸iilor funct¸iilor de excitat¸ie pentru toate cele opt combinat¸ii de intrare. Valorile din coloanele 4,5,6 ¸si 7 nu fac parte din tabel dar s-au introdus pentru o mai u¸soar˘ a determinare a st˘ arii urm˘ atoare din starea prezent˘ a. Utilizˆ and tabelul caracteristic al bistabilului JK, vezi Tabelul 3.4, pentru fiecare configurat¸ie de intrare xz1 z0 se deduc valorile bit¸ilor st˘ arii urm˘ atoare z1 (t + 1)z0 (t + 1). Expresiile bit¸ilor st˘ arii urm˘ atoare se pot obt¸ine ¸si prin introducerea funct¸iilor de excitat¸ie

418

3.3. CIRCUITE BASCULANTE

J

x

CLK K

Q

A z1

x

J

CLK

Q

x

B

K

a)

b)

CLK

1

1

0 q3

q0 0

0 q1

Starea Starea prezenta urmat. x 0 1 q0 q1 q0 q 1 q 3 q2

0 q2

1

d)

q2 q3 q2 1

q3 q1 q3 00 10

_ x

q0 ; 01 q2 ; 11

q1 q3

c)

Q QN

z0

Q QN

J

CLK

Q1

K J

CLK

Q0

K

wJ 1 wK 1 wJ

0

wK

0

CLK

Intr. Starea Intrari bistabile Starea urmat. prezenta x z 1 z 0 wJ1 wK 1 wJ0 wK 0 z 1 (t+1) z 0 (t+1) 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0

Figura 3.55 Explicativ˘ a la Exemplul 3.19: a) schema electric˘ a a automatului; b) schema electric˘ a redesenat˘ a ˆın structura clasic˘ a de automat; c) tabelul de tranzit¸ie al st˘ arilor; d) graful de tranzit¸ie al st˘ arilor. deduse anterior ˆın relat¸ia 3.27 de funct¸ionare a bistabilului JK: z1 (t + 1)

=

z2 (t + 1)

=

= =

w1 J1 · z 1 (t) + wK1 · z1 (t) = z0 · z 1 (t) + (x + z 0 (t))z1 (t) = z 1 z0 + xz1 + z1 z 0

wJ0 · z 0 (t) + wK0 · z0 (t) = x · z 0 (t) + (x ⊕ z1 (t)) · z0 (t) = x0 z 0 + x z 1 z0 + xz1 z0

ˆIn ultima form˘ a s-a scris z ˆın loc de z(t). Valorile din coloanele 8 ¸si 9 din tabelul de tranzit¸ie al st˘ arilor se pot calcula ¸si cu aceste relat¸ii pentru toate configurat¸iile xz 1 z0 . 4. Asignˆ and codurile de stare ˆın felul urm˘ ator: 00 → q0 , 01 → q1 , 10 → q2 , 11 → q3 se obt¸ine graful de tranzit¸ie al st˘ arilor, Figura 3.55-d.

3.3.4

Circuitul basculant bistabil asimetric (Triggerul Schmitt)

Circuitul asincron obt¸inut prin leg˘ aturi simetrice ˆıncruci¸sate ˆıntre dou˘ a inversoare,

419

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

A

II

VO

VI

R1 I1

I’1

VOH I’2

1 I 2

R2

VI d)

− +

a

VOL Q

a)

RS

1

Vp −

Vp +

T4 Vy

R1

B

T3

VI

Vx

VO

T2

VOH

Vz

T1

VI

VI

RE 1K

c)

T2 IE

4K A

T6

R2 2,6K

VCC

V DD =+5V

R2

I R 1 CT 2 3,3K

VO

b

b)

VO

V ref

I CT

D 2

QN

VCC =5 V

c

VO

C

VDD

D

T5

130 T6

D4 D3 D2 D1

T4

T5 T1

T2

VO T3

T1 VOL

e)

Vp−

Vp+

VI

f)

g)

Figura 3.56 Triggerul Schmitt: a,b) structura de principiu ¸si caracteristica static˘ a de transfer, neinversoare; c) structur˘ a realizat˘ a cu tranzistoare bipolare; d,e) structura ¸si caracteristica de transfer pentru un trigger Schmitt realizat cu amplificator operat¸ional; f) structur˘ a ˆın tehnologie CMOS; g) structur˘ a de poarta NAND4 trigger Schmitt ˆın tehnologie TTL.

Figura 3.36-a ¸si b, prezint˘ a ˆın caracteristica static˘ a de transfer, Figura 3.36-c, dou˘ a st˘ ari stabile; circuitul acesta fiind celula elementar˘ a pentru toate circuitele(basculante) bistabile. Dar dac˘ a leg˘ aturile de conectare ˆıntre cele dou˘ a inversoare nu mai sunt simetrice din punct de vedere al conductant¸ei, una incluzˆ and o rezistent¸a˘ R 2 , se obt¸ine un circuit, Figura 3.56-a, referit ca trigger Schmitt care prezint˘ a o caracteristic˘ a static˘ a de transfer similar˘ a cu cea a unui releu cu histerezis, Figura 3.56-b. Considerˆ and o variat¸ie a tensiunii de intrare la triggerul Schmitt, V I , de la valoarea 0V pˆ an˘ a la tensiunea de alimentare ¸si apoi ˆın sens invers la valoarea 0V , tensiunea de ie¸sire VO (Q) va bascula de la valoarea VOL la VOH , cˆ and VI = Vp+ , ¸si de la VOH la a valori(praguri) de basculare, Vp+ ¸si Vp− nefiind egale, VOL , cˆ and VI = Vp− ; cele dou˘ acestea fiind dep˘ artate cu l˘ a¸timea de histerezis ∆ = V p+ − Vp− . Pentru determinarea valorilor caracteristicii de releu cu histerezis se va utiliza not¸iunea de prag logic de comutat¸ie al unei port¸i VT (pragul logic de comutat¸ie al unei port¸i define¸ste acel punct pe caracteristica static˘ a de transfer unde tensiunea de intrare este egal˘ a cu cea

420

3.3. CIRCUITE BASCULANTE

de ie¸sire VT = VI = VO ; ˆın acest punct, practic, curentul de intrare ˆın poarta este II = 0). Ecuat¸ia de curent¸i ˆın punctul A se reduce la egalitatea I 1 = I2 care este ˆındeplinit˘ a doar cˆ and tensiunea de intrare ˆın inversor este V T . La cre¸sterea tensiunii de intrare VI cˆ and aceasta devine egal˘ a cu Vp+ , tensiunea ˆın punctul A are valoarea VT , iar ie¸sirea basculeaz˘ a de la VOL la VOH se pot scrie relat¸iile:

I1 =

V + − VT VI − V A = P R1 R1

I2 =

VA − V O VT − VOL = R2 R2

iar din egalitatea curent¸ilor se obt¸ine expresia R1 R1 ) − VOL R2 R2

Vp+ = VT (1 +

(3.29-a)

Similar, la descre¸sterea tensiunii VI , cˆ and aceasta devine egal˘ a cu Vp− , tensiunea ˆın punctul A are valoarea VT , iar ie¸sirea basculeaz˘ a de la VOH la VOL , rezult˘ a relat¸iile: I1 0 =

VT − V p− VA − V I = R1 R1

I2 0 =

VO − V A VOH − VT = R2 R2

iar din egalitatea curent¸ilor se obt¸ine expresia Vp− = VT (1 +

R1 R1 ) − VOH R2 R2

(3.29-b)

Expresia l˘ a¸timii histerezisului fiind ∆ = V p+ − V p− =

R1 (VOH − VOL ) R2

(3.30)

Pentru o poart˘ a inversor 74LS04 cu VOL = 0, 2V ; VOH = 3, 6V ; VT = 1, 7V ¸si alegˆ and raportul R1 /R2 =0,37 se obt¸in: Vp− = 1V , Vp+ = 2V ¸si ∆ = 1V . O structur˘ a de trigger Schmitt cu tranzistoare, care are o caracteristic˘ a static˘ a de transfer de aceea¸si form˘ a cu cea din Figura 3.56-b este prezentat˘ a ˆın Figura 3.56-c [Toac¸se 0 96]. Cele dou˘ a inversoare sunt realizate cu cele dou˘ a tranzistoare T 1 ¸si T2 , existˆ and figurat˘ a doar o singur˘ a leg˘ atur˘ a de react¸ie din colectorul lui T 1 ˆın baza lui T2 . React¸ia de la amplificatorul cu T2 la amplificatorul cu T1 apare ca un efect al c˘ aderii de tensiune produs˘ a de ICT 2 pe rezistent¸a comun˘ a din emitor RE ¸si care se aplic˘ a la intrarea tranzistorului T1 , VI = VBE + IE RE , IE = ICT 1 + TCT 1 (rezistent¸a RE simuleaz˘ a un generator de curent constant ˆın emitoare, deci I E ≈ const.). Cˆ and VI = 0, T1 blocat, T2 ˆın saturat¸ie VO = VOL . La cre¸sterea lui VI ≥ VBET1 on + IE RE , tranzistorul T1 intr˘ a ˆın conduct¸ie ¸si prin mic¸sorarea tensiunii pe colectorul s˘ au comand˘ a, prin leg˘ atura de react¸ie, ˆınspre blocare tranzistorul T 2 , adic˘ a mic¸sorarea curentului ICT 2 . Dar pentru c˘ a IE ≈ const., curentul ICT 1 va cre¸ste ¸si va provoca o mai pronunt¸at˘ a sc˘ adere a tensiunii ˆın colector deci o comand˘ a ˆın continuare de blocare pe baza lui T2 (iat˘ a efectul de react¸ie pozitiv˘ a prin RE !). La o valoare a tensiunii de a, T1 conduce ˆın saturat¸ie, tensiunea de ie¸sire a basculat intrare VI =Vp+ , T2 se blocheaz˘ de la VOL la VOH . Invers, apare ca efect react¸ia pozitiv˘ a la sc˘ aderea tensiunii de intrare, iar cˆ and ajunge la VI = Vp− apare bascularea de la VOH la VOL . Cu valorile

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

421

de rezistent¸e din figur˘ a ¸si VBE(on) = 0, 7V , VBE(sat) = 0, 8V , VCE(sat) = 0, 1V se obt¸in: Vp+ = 2, 5V , Vp− = 1, 6V , ∆ = 0, 9V . O idee practic˘ a pentru realizarea unui trigger Schmitt pe baza unui amplificator operat¸ional este prezentat˘ a ˆın Figura 3.56-d, cu o caracteristic˘ a inversoare, Figura 3.56-e. React¸ia pozitiv˘ a se obt¸ine de pe divizorul R 1 , R2 ˆıntre VO ¸si Vref , iar VI se aplic˘ a pe intrarea inversoare (aplicˆ and react¸ia ˆınspre intrarea inversoare iar V I pe intrarea neinversoare se obt¸ine o caracteristic˘ a static˘ a de tip releu neinversoare). De pe divizorul rezistiv R1 R2 se obt¸in relat¸iile: R1 (VOH − Vref ) R1 + R 2 R1 (VOL − Vref ) = Vref + R1 + R 2 R1 ∆= (VOH − VOL ) R1 + R 2

Vp+ = Vref + Vp−

(3.31)

Cu aceste relat¸ii, ˆın caracteristica inversoare s˘ a existe acelea¸si valori ca la caractera istica neinversoare prezentat˘ a anterior Vp+ = 2V , Vp− = 1V , ∆ = 1V , se calculeaz˘ Vref = 1, 335V ¸si R1 /R2 = 0, 416. O structur˘ a de trigger Schmitt ˆın tehnologie CMOS este prezentat˘ a ˆın Figura 3.56-f care realizeaz˘ a o caracteristic˘ a static˘ a de releu cu histerezis, inversoare ca ˆın Figura 3.56-e. Cˆ and VI = 0 tranzistoarele T3 ¸si T4 sunt ˆın conduct¸ie dar conduc un curent neglijabil deoarece T1 ¸si T2 sunt blocate (Se consider˘ a tensiunile de prag ale tranzistoarelor Vpn = +1, 0V , Vpp = −1, 0V ), T6 este blocat, T5 este ˆın saturat¸ie, Vy = Vx ≈ 5V iar Vz = VDD − VT 5 = 3, 5V . Cˆ and VI la Vpn = 1, 0V , T1 intr˘ a ˆın conduct¸ie ¸si ˆımpreun˘ a cu T5 formeaz˘ a un amplificator, existˆ and tendint¸a de sc˘ adere a tensiunii Vz , dar T2 este blocat. Crescˆ and VI = Vp+ , tensiunea VGS,T2 ≥ Vpn , ¸si ˆın succesiune: T2 intr˘ a ˆın conduct¸ie, Vx = Vz = 0V , T5 intr˘ a ˆın blocare, T3 intr˘ a ˆın blocare atr˘ agˆ and dup˘ a sine intrarea ˆın conduct¸ie a lui T 6 , tensiunea de ie¸sire comut˘ a de la VDD la 0V. Pornind, cu VI = 5V , ˆınapoi T4 , T3 sunt blocate iar T6 este ˆın conduct¸ie. ˆIntˆ ai intr˘ a ˆın conduct¸ie T4 apoi T3 iar T6 se blocheaz˘ a, ˆın ret¸eaua n, T1 , T2 se blocheaz˘ a ¸si T5 va conduce deci s-a realizat la Vp− comutat¸ia tensiunii VO de la 0V la VDD . Structura din Figura 3.56-g prezint˘ a o poart˘ a NAND4 trigger Schmitt. Triggerul Schmitt este format cu un amplificator pe tranzistoarele T 1 , T5 iar cel˘ alalt amplificator pe T2 , similar ca ˆın Figura 3.56-c, ¸si este plasat ˆın structura port¸ii ˆıntre circuitul SI de intrare, compus din diodele D1 − D4 , ¸si circuitul defazor T2 care comand˘ a circuitul de ie¸sire T3 , T4 . Circuitul trigger Schmitt, prezentˆ and o caracteristic˘ a static˘ a de releu cu histerezis, care comut˘ a rapid datorit˘ a react¸iei pozitive (basculare) poate fi utilizat ca discrimiatoarele nator de nivel (prin cele dou˘ a praguri Vp+ , Vp− ), este recomandat pentru urm˘ tipuri de aplicat¸ii: 1. Obt¸inerea unei comutat¸ii rapide a ie¸sirii pentru variat¸ii lente pe intrare (formarea semnalelor cu front necorespunz˘ ator, discretizarea semnalelor analogice ˆın semnale binare etc.). 2. Reducerea (eliminare) efectelor zgomotului asupra semnalului util (prin prezen¸ta histerezis-ului).

422

3.3. CIRCUITE BASCULANTE

Exemplul 3.20 Cu o poart˘a 74HC132 (NAND2 cu trigger Schmitt pe intrare) s˘a se realizeze un oscilator cu frevent¸a de 10Hz utilizˆ and un condensator C = 0, 47F , Figura 3.57-a. Solut¸ie. Poarta 74HC132 avˆ and o caracteristic˘ a de tip releu cu histerezis inversor printro conectare a ie¸sirii la intrare rezult˘ a o structur˘ a de oscilator cu perioada de oscilat¸ie T = 2τ p , τp fiind timpul de propagare prin poart˘ a. Pentru m˘ arirea perioadei oscilat¸iilor react¸ia este realizat˘ a printr-o ret¸ea RC integratoare. ˆIntr-o astfel de ret¸ea, variat¸ia ˆın timp a tensiunii pe condensator vC (t), pornind de la tensiunea init¸ial˘ a v(0) iar pe intrare se aplic˘ a o treapt˘ a de tensiune V = v(∞), este exprimat˘ a prin relat¸ia : −t

vC (t) = v(∞) − [v(∞) − v(0)]e RC

(3.32)

ˆIn momentul t = 0, cˆ and tensiunea pe condensator scade la valoarea de prag Vp− , tensiunea de ie¸sire, vO , va comuta de la VOL = 0V la VOH = VDD . Acest salt al tensiunii de ie¸sire aplicat pe intrarea ret¸elei integrative va determina cre¸sterea tensiunii pe condensator, care ˆın momentul t = T1 atinge valoarea de prag basculare Vp+ vC (T1 ) = Vp+ = VDD − (VDD − Vp− )e R

vC

C VOL

Vo

V p+

VDD

V p−

Vp −

Vp +

→ T1 = RC

Vi

vO

VDD − Vp− VDD − Vp+

vO

VDD

74HC132 VOH

−T1 RC

vC

0V

t

t=0

T1

a)

T1+T2

2T1+T2

b)

Figura 3.57 Circuit oscilator obt¸inut pe baza unei port¸i (7HC132) inversor trigger Schmitt

Deoarece ˆın momentul T1 tensiunea de ie¸sire comut˘ a de la VOH = VDD la VOL = 0V tensiunea pe condensator ˆıncepe s˘ a scad˘ a pˆ an˘ a ˆın momentul t = T1 + T2 cˆ and se atinge valoarea de prag de basculare Vp− vC (T1 + T2 ) = Vp− = 0 − (0 − Vp+ )e

−T2 RC

→ T2 = −RC · ln

V p− V p+

rezult˘ a perioada oscilat¸iei T = T1 + T2 = RC · ln

Vp+ (VDD − Vp− ) · Vp− (VDD − Vp+ )

Cu valorile Vp+ (tipic) = 2, 38V , Vp− (tipic) = 1, 68V , C = 0, 47F , T = 0, 1s se obt¸ine R=

1 0, 47 · 10−6 · ln 2,38(4,5−1,67) 1,67(4,5−2,38)

= 330kΩ

423

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Pe intervalul de variat¸ie de temperatur˘ a −40◦ C ÷ +80◦ C, Vp+ (max) poate cre¸ste pˆ an˘ a la 3, 15V iar Vp− min poate sc˘ adea la 0, 9V . Cu aceste valori extreme ¸si R = 330KΩ ¸si C = 0, 47µF introduse ˆın relat¸ia anterioar˘ a se obt¸ine pentru frecvent¸a generat˘ a valoarea de 2, 9Hz!

3.3.5

Circuitul basculant monostabil

Pornind, de asemenea, de la celula de baz˘ a, Figura 3.36-b, se obt¸ine structura de principiu a circuitului basculant monostabil – monostabilul – dac˘ a una din leg˘ aturile de react¸ie r˘ amˆ ane galvanic˘ a iar cealalt˘ a se realizeaz˘ a capacitiv, Figura 3.58-a. Aceasta ˆınseamn˘ a c˘ a se transmite (prin condensatorul C x ) de la ie¸sirea port¸ii 1 la intrarea port¸ii 2 numai variat¸ii, ˆın regim static transferul (pentru componenta continu˘ a) este ˆıntrerupt. Funct¸ionarea de principiu a monostabilului este urm˘ atoarea. Circuitul se p˘ astreaz˘ a ˆıntr-o stare stabil˘ a, Q = 0 QN = 1, un timp indefinit, dac˘ a nu se aplic˘ a un impuls din exterior. La aplicarea unui impuls, din exterior, monostabilul basculeaz˘ a ˆın starea opus˘ a, Q = 1 QN = 0, care este ment¸inut˘ a de o react¸ie pozitiv˘ a a celor dou˘ a leg˘ aturi ˆıncruci¸sate. Dar aceast˘ a react¸ie pozitiv˘ a exist˘ a doar ˆın intervalul de timp τw , care corespunde duratei regimului tranzitoriu prin condensatorul C x , dup˘ a care se ˆıntrerupe, iar monostabilul revine ˆın starea Q = 0 Q N = 1. Durata regimului tranzitoriu este funct¸ie de constanta de timp a leg˘ aturii de react¸ie ˆın care este introdus condensatorul. Modificˆ and aceast˘ a constant˘ a de timp apare, evident, posibilitatea ca acest circuit s˘ a poat˘ a genera/marca intervalele de timp controlabile (releu de timp). T T

V DD

QN

Rx

Cx

x vx

2

1 QN

Q

b)

a)

τw

τw

τw

Q Impulsuri ignorate la triggerare

Rx

Cx CX

T

c)

Q

T

d)Q

τw

τw

Retriggerare

RX QN

e)

τw

τw

τw

Figura 3.58 Circuitul basculant monostabil (Monostabilul): a,b,c) structur˘ a, diagrame de semnal ¸si simbol de reprezentare; d) diagrama de semnale pentru comand˘ a normal˘ a; e) diagrama de semnale pentru comanda cu retriggerare.

424

3.3. CIRCUITE BASCULANTE

Monostabilul din figur˘ a este realizat cu port¸i NOR CMOS. Reamintim caracteristicile port¸ilor CMOS: salt de tensiune ˆıntre 0 ¸si V DD ; curent de intrare neglijabil, prag de basculare VT = VDD /2 (dar dac˘ a diodele de protect¸ie de pe intrare se polarizeaz˘ a ˆın sens direct funct¸ionarea port¸ii se modific˘ a). ˆIn starea stabil˘ a a monostabilului ie¸sirea port¸ii 1 este ˆın VO1 = VDD , ie¸sirea port¸ii 2 este ˆın VO2 = 0V , intrarea port¸ii 2 este vx = VDD , deci tensiunea pe condensator vCx (t = 0) = 0V . La aplicarea unui impuls pozitiv de comand˘ a T pe intrarea port¸ii 1 ie¸sirea acesteia comut˘ a ˆın V O1 = 0V ,care transmis˘ a prin condensatorul Cx determin˘ a tensiunea ˆın punctul x vx = 0V , ie¸sirea port¸ii 2 comut˘ a ˆın VDD , iar aceast˘ a tensiune de ie¸sire aplicat˘ a pe intrarea port¸ii 1 face ca s˘ a nu mai fie necesar˘ a prezent¸a impulsului T (react¸ia pozitiv˘ a s-a realizat). ˆIn continuare, printr-un curent de la VDD , prin rezistent¸a Rx ¸si ie¸sirea port¸ii 1, condensatorul Cx se ˆıncarc˘ a (constanta de timp fiind Rx Cx ) iar tensiunea vCx va cre¸ste de la vCx (t = 0) = 0V ˆınspre vCx (t = 0) = VDD . Dar, dup˘ a un interval de timp τw , tensiunea pe condensator atinge valoarea de prag de comutat¸ie V T a port¸ii 2, ie¸sirea acestei port¸i comut˘ a ˆın V02 = 0V , iar aceast˘ a tensiune aplicat˘ a la intrarea port¸ii 1 comand˘ a ie¸sirea acesteia ˆın starea VO1 = VDD . Tensiunea pe condensator devine zero, VO1 − vx = VDD − VDD = 0, transferul prin condensator se ˆıntrerupe, deci starea QN = 0, Q = 1 s-a terminat; variat¸iile de tensiune sunt prezentate ˆın Figura 3.58-b. Un monostabil comandat din exterior cu un impuls negativ se obt¸ine printr-o structur˘ a cu port¸i NAND. Calculul intervalului τ w , de existent¸a˘ a st˘ arii instabile, se realizeaz˘ a pornind de la expresia variat¸iei tensiunii pe condensator, relat¸ia(3.32), ˆın care se introduce valoarea de prag de comutat¸ie V T ¸si se obt¸ine τw

VT = VDD − (VDD − 0)e Rx Cx → τw = Rx Cx · ln iar pentru VT =

VDD 2

VDD VDD − VT

rezult˘ a τw = 0, 69Rx Cx

(3.33)

Modul de comand˘ a normal˘ a a unui monostabil este reprezentat prin diagrama de semnale din Figura 3.58-d (de exemplu circuitul 74LS121 care poate genera intervale de timp ˆıntre 30ns ¸si 28s). Dar, exist˘ a ¸si monostabile cu facilitatea de retriggerare (74LS122). Funct¸ionarea cu retriggerare, Figura 3.58-e, realizeaz˘ a printr-un nou impuls T de comand˘ a aplicat pe intrare o nou˘ a declan¸sare a unei st˘ ari Q N = 0 Q = 1, deci ˆınceperea unui nou interval de timp τw , chiar dac˘ a anterior a fost comandat un interval τw ¸si acesta ˆınc˘ a nu s-a consumat. ˆIn general, la circuitele monostabile semnalul de comand˘ a T se obt¸ine din conjunct¸ia mai multor semnale de intrare, cum este la circuitul 74LS121, unde concur˘ a trei a intr˘ ari A1 , A2 ¸si B conform relat¸iei T = A1 · A2 · B. Valoarea T = 1 se realizeaz˘ at pentru fronturi pozitive pentru combinat¸iile BA1 A2 = 100, 101 ¸si 110, deci atˆ and o flexibilitate a ale lui B cˆ at ¸si pentru fronturi negative ale lui A 1 ¸si A2 , rezultˆ comenzii monostabilului atˆ at cu impulsuri pozitive cˆ at ¸si negative. Se poate realiza, de exemplu, ˆıntˆ arzierea cu decalaj τw variabil a unei succesiuni de impulsuri prin ˆınserierea a dou˘ a monostabile; primul, dimensionat prin R x Cx , s˘ a produc˘ a ˆıntˆ arzierea variabil˘ a τw , iar al doilea s˘ a reproduc˘ a l˘ a¸timea impulsurilor aplicate la primul. Marcarea intervalelor de timp, precum ¸si reproductibilitatea lor nu pot avea o precizie foarte ridicat˘ a cu ajutorul monostabilului. Aceasta se explic˘ a prin faptul c˘ a determinarea momentului ˆın timp rezult˘ a ˆın punctul de intersect¸ie ˆıntre o

425

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

dreapt˘ a orizontal˘ a care reprezint˘ a o tensiune de prag prescris˘ a V T ¸si o curb˘ a cu o variat¸ie exponent¸ial˘ a (variat¸ia tensiunii de pe un condensator, v C (t)). Mai ales cˆ and t ≥ 3T (T = RC constanta de timp), tensiunea pe condensator se orizontalizeaz˘ a iar intersect¸ia ˆıntre vC (t) ¸si VT devine foarte put¸in precis˘ a. Precizia intersect¸iei poate fi ˆımbun˘ at˘ a¸tit˘ a dac˘ a ˆınc˘ arcarea/desc˘ arcarea condensatorului se face sub curent constant; ˆın acest caz variat¸ia tensiunii pe condensator are o variat¸ie liniar˘ a v C (t) = kt. Aceast˘ a modalitate de marcare a timpului prin ˆınc˘ arcarea/desc˘ arcarea unui condensator este specific˘ a ˆın electronica analogic˘ a. ˆIn electronica digital˘ a intervale de timp se obt¸in prin contorizarea unui num˘ ar prescris de impulsuri dintr-o succesiune de frecvent¸a˘ constant˘ a.

3.3.6

Circuitul basculant astabil

La fel, ca la monostabil, ¸si circuitul basculant astabil (uneori referit ca multivibrator) se obt¸ine din structura celulei de baz˘ a, Figura 3.36-b, dar prin realizarea capacitiv˘ a a ambelor leg˘ aturi de react¸ie, deci se propag˘ a ˆıntre cele dou˘ a inversoare numai regimurile tranzitorii, Figura 3.59-a. Transmit¸aˆndu-se ˆıntre port¸ile inversor numai regimurile tranzitorii circuitul este caracterizat numai de dou˘ a st˘ ari instabile. Dup˘ a cum la monostabil durata st˘ arii instabile, pe un inversor, este determinat˘ a de valoarea constantei de timp a circuitulu Rx Cx , la fel ¸si la astabil durata unei st˘ ari instabile este deteminat˘ a de constanta de timp a circuitului RC de la intrarea inversorului respectiv. Perioada semnalului dreptunghiular generat este suma duratei celor dou˘ a st˘ ari instabile. ˆIn cazul cˆ and cele dou˘ a constante de timp sunt egale, R1 C1 = R2 C2 , factorul de umplere al semnalului generat este de 50%. Pentru analiza comutat¸iei alternative ˆıntre cele dou˘ a port¸i vezi problema P3.50. R1

V CC

R2 1

1/4 1

74S300 1

2

2

330Ω C2 C1

a)

QN

Q

120pF

b)

3

1/4

100pF C2 X−TAL

4

74S300 2

5

6

1/4 13 12

74LS00 3

+5V VO

11

330Ω

4MHz

Figura 3.59 Circuitul basculant astabil (Astabilul): a) structur˘ a de principiu; b) structur˘ a de astabil avˆ and frecvent¸a (4M Hz) stabilizat˘ a cu cuart¸. Avantajul simplit˘ a¸tii acestei structuri de astabil, realizat cu port¸i logice, este diminuat de lipsa de stabilitate a frecvent¸ei semnalului generat(cauze: praguri diferite de deschidere pentru port¸i, variat¸ia temperaturii, variat¸ia tensiunii, ˆımb˘ atrˆ anirea componentelor). Circuitele astabile care genereaz˘ a o frecvent¸a˘ precis˘ a, ¸si o ment¸in ˆın timp cu o abatere insignifiant˘ a, se realizeaz˘ a cu cristale de cuart¸. Un cristal de cuart¸, introdus pe una din conexiunile de react¸ie, substituind unul din condensatoare, are rolul ,, unui circuit acordat ¸si care va “pilota frecvent¸a de oscilat¸ie pe frecvent¸a sa proprie de rezonant¸a˘. ˆIn Figura 3.59-a este prezentat un astfel de oscilator, utilizˆ and trei port¸i NAND ale unui circuit 74LS00, cu un cristal de cuart¸ (X-TAL) avˆ and frecvent¸a

426

3.3. CIRCUITE BASCULANTE

proprie de rezonant¸a˘ de 4M Hz. Rezistent¸ele de 330Ω ˆın paralel cu port¸ile 1 ¸si 2 contribuie la o liniarizare a caracteristicilor de transfer ale acestora. Cristalul de cuart¸ (SiO2 ) este un piezoelectric, are proprietatea de a polariza sarcini electrice pe suprafet¸ele sale cˆ and este tensionat mecanic (comprimat, torsional, ˆıntins). Dar exist˘ a ¸si efectul invers de piezoelectricitate – la aplicarea unei diferent¸e de potent¸ial ˆıntre suprafet¸ele sale (t˘ aiat sub form˘ a de dreptunghi, p˘ atrat sau cerc cu grosimi ˆın jur de 1mm) se produce o tensionare mecanic˘ a. Aplicarea unei diferent¸e de potent¸ial alternative, cu o anumit˘ a fercvent¸a˘, va determina vibrat¸ia mecanic˘ a a cristalului; modul de vibrat¸ie depinde de forma geometric˘ a sub care este t˘ aiat cristalul. Cˆ and este introdus ˆıntr-un circuit electric cu o tensiune variabil˘ a, ˆın cazul nostru pe o conexiune de react¸ie, va vibra cu frecvent¸a tensiunii electrice aplicate pe fet¸ele sale. Din punct de vedere electric cristalul de cuart¸ are o schem˘ a echivalent˘ a de circuit RLC ˆın paralel cu o capacitate C0 (aceast˘ a capacitate fiind cea introdus˘ a de electrozii lipit¸i pe suprafet¸ele sale). Cˆ and este comandat cu o frecvent¸a˘ mult diferit˘ a de frecvent¸a de rezonant¸a˘ cristal de cuart¸ poate fi echivalat cu o simpl˘ a capacitate C0 , dar cˆ and frecvent¸a este cea de rezonant¸a˘ circuitul echivalent al cristalului este o capacitate ˆın paralel cu o rezistent¸a˘. Reactant¸a cristalului se aproprie de zero la punctul de rezonant¸a˘ serie, iar ˆıntr-o conexiune de react¸ie a circuitului astabil va pilota frecvent¸a acestuia pe frecvent¸a de rezonant¸a˘ (valori uzuale pentru rezonant¸a 1KHz ÷ 40M Hz, determinat˘ a de modul de t˘ aiere, form˘ a ¸si grosime ale cristalului). Frecvent¸ele de pilotare a cristalului variaz˘ a, relativ put¸in, cu temperatura ¸si cu timpul (ˆımb˘ atrˆ anirea). Oricare sistem sincron necesit˘ a un generator de semnal de ceas ¸si frecvent se impune ca acest semnal s˘ a aib˘ a o abatere cˆ at mai mic˘ a a frecvent¸ei ceea ce se poate realiza cu oscilatoare cu cuart¸. Abaterea de frecvent¸a˘ poate fi mai mic˘ a decˆ at 2, 5 · 10 −6 , ◦ pentru o variat¸ie a temperaturii ˆın intervalul 0 ÷ 50 C, utilizˆ and un cristal de cuart¸ ermetic inclus ˆıntr-o capsul˘ a, referit oscilator RTXO (Room Temperature Crystal Oscillator). Cu oscilatoarele la care cuart¸ul este inclus ˆımpreun˘ a cu circuite de compensare pentru variat¸ia temperaturii, ˆıntr-un pachet monolitic, referite ca oscilatoare TXCO (Temperature Compensated Oscillator) se obt¸in pentru variat¸ii ale temperaturii ˆın intervalul 0 ÷ 50◦ C abateri ale frecvent¸ei mai mici decˆ at 5 · 10 −7 . Exist˘ a variante constructive de astabile care pot funct¸iona ˆın regim de sincronizare declan¸sat˘ a sau ˆın regim de comand˘ a. ˆIn varianta de astabil sincronizat, la fiecare impuls de comand˘ a aplicat din exterior se porne¸ste astabilul care genereaz˘ a semnale dreptunghiulare cu o faz˘ a fixat˘ a. Varianta de astabil comandat genereaz˘ a semnale dreptunghiulare atˆ at timp cˆ at pe intrarea astabilului se aplic˘ a un semnal de comand˘ a exterior de nivel H sau L (ˆın Figura 3.59-b pinul de intrare 13 al port¸ii 3 se conecteaz˘ a la +5V sau la 0V ). Exemplul 3.21 S˘a se modeleze funct¸ionarea de trigger Schmitt, monostabil ¸si astabil cu circuitul de temporizare 555. Solut¸ie. Circuitul 555 (¸si 556) este un circuit integrat ˆın familiile TTL ¸si CMOS, care prin conectarea ˆın exterior a dou˘ a sau trei componente poate avea funct¸ionarea circuitelor trigger Schmitt, astabil ¸si monostabil. ˆIn structura sa, Figura 3.60, cont¸ine: dou˘ a comparatoare, COMP1 ¸si COMP2, a c˘ aror ie¸siri comand˘ a respectiv intr˘ arile SR ale unui latch, un tranzistor de desc˘ arcare TD, un etaj final de ie¸sire ¸si un divizor intern de la tensiunea V CC , VCC = 4, 5 ÷ 16V , prin care sunt fixate valorile de referint¸a ˘ Vr1 ¸si Vr2 ale comparatoarelor. Rezistent¸ele divizorului fiind egale rezult˘ a Vr2 = VCC /3 ¸si Vr1 = 2VCC /3.

427

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

V+

VI

V CC

555 R COMP1 PS + Vr1 _ RQ N C R COMP2 PJ Vr2 + S Q _

VO Etaj final de iesire inversor

TD

VO

D

V p−= =0,33V CC

V p+ = =0,66V CC

Vcc

555 COMP1 PS + Vr1 _ RQ N C R COMP2 PJ Vr2 + S Q _ R

vI (V T )

VI

a) V+

Cx

V OL

D

R

Rx

V OH

Etaj final de iesire inversor

vI

VO

VOL TD

τw

VOH

D

τw

vo

V r2

R

vc

0V

x

b) R xA R xB Cx

V+ PS C

R

Vcc 555

COMP1 + Vr1 _ RQ N R

PJ Vr2 R

COMP2 + S Q _

Etaj final de iesire inversor

TD

VO

V OL vCx

D

T

V OH

V r1

vo

τ w1

vc

τ w2

x

V r2 0V

c) Figura 3.60 Circuitul 555: a) modelarea funct¸ion˘ arii de trigger Schmitt; b) modelarea funct¸ion˘ arii de monostabil; c) modelarea funct¸ion˘ arii de astabil.

˘ ATOR ˘ 3.4. CIRCUITE NUMAR

428

1. Modelarea funct¸ion˘ arii de trigger Schmitt, Figura 3.60-a. Tensiunea de intrare VI se aplic˘ a pe cele dou˘ a intr˘ ari (conectate ˆımpreun˘ a), PS- pragul de sus ¸si PI- pragul de jos. Pentru VI = 0, intr˘ arile SR = 10, QN = 0 iar ie¸sirea VO = VOH . La cre¸stere, cˆ and tensiunea VI ajunge la valoarea Vr2 = 0, 66VCC = Vp+ , SR = 01, QN = 1 iar VO comut˘ a de la VOH la VOL . La sc˘ adere, cˆ and tensiunea VI ajunge la Vr2 = 0, 33VCC = Vp− , SR = 10, QN = 0 iar VO comut˘ a de la VOL la VOH . Valoarea pragurilor Vp+ ¸si Vp− pot fi modificate printr-o rezistent¸a ˘ extern˘ a Rx conectat˘ a ˆıntre VCC ¸si terminalul C. 2. Modelarea funct¸ion˘ arii de monostabil, Figura 3.60-b. ˆIn starea stabil˘ a vI = VOH , SR = 00, QN = 1, vO = VOL , tranzistorul TD conduce iar tensiunea vCx , pe condensatorul exterior, este zero. La aplicarea impulsului de comand˘ a V T = 0, SR = 10, a creasc˘ a ˆınspre VCC . Cˆ and vCx , QN = 0, VO = VOH iar TD se blocheaz˘ a permit¸a ˆnd ca vCx s˘ dup˘ a intervalul de timp τw , atinge valoarea Vr2 = 0, 66VCC , SR = 01, QN = 1, vO comut˘ a de la VOH la VOL , TD intr˘ a ˆın conduct¸ie iar Cx este scurtcircuitat la mas˘ a. Valoarea lui τw se obt¸ine prin aplicarea relat¸iei 3.32 pentru regimul de ˆınc˘ arcare al condensatorului Cx −τw

Vr2 = vCx (τw ) = VCC − [VCC − 0]e Rx Cx VCC τw = Rx Cx · ln = 1, 1Rx Cx VCC − 32 VCC

(3.34)

3. Modelarea funct¸ion˘ arii de astabil, Figura 3.60-c. Se consider˘ a t = 0 cˆ and SR = 10, QN = 0, VO = VOH , TD se blocheaz˘ a permit¸a ˆnd condensatorului Cx s˘ a se ˆıncarce a intervalul de timp τw1 , prin rezistent¸ele RXA + RXB ˆınspre tensiunea VCC . Cˆ and vCx , dup˘ atinge valoarea Vr1 = 0, 66VCC , SR = 01, QN = 1, vO va comuta de la VOH la VOL , TD intr˘ a ˆın conduct¸ie iar Cx este desc˘ arcat la mas˘ a prin rezistent¸a RXB . Procesul de desc˘ arcare, cu constanta de timp Cx RXB , continu˘ a pe durata τw2 iar vCx atinge valoarea Vr1 = 0, 33VCC . ˆIn acel moment SR = 10, QN = 0, vO va comuta de la VOL la VOH , TD se blocheaz˘ a reconfigurˆ and circuitul RXA + RXB de reˆınc˘ arcare al condensatorului Cx ; ˆın continuare cele dou˘ a regimuri de ˆınc˘ arcare/desc˘ arcare se succed generˆ andu-se un semnal dreptunghiular cu perioada T = τw1 + τw2 . Valorile pentru τw1 ¸si τw2 se obt¸in aplicˆ and relat¸ia 3.32. τw1 = Cx (RXA + RXB ) · ln 23 ( V

VCC 2 CC − 3 VCC

) = 0, 69Cx (RXA + RXB )

CC = 0, 69Cx RXA τw2 = Cx RXA · ln 23 VVCC /3

T = τw1 + τw2 = 0, 69(RXA + 2RXB )Cx

iar coeficientul de umplere D are expresia D=

3.4

τw 1 RXB =1− τw 1 + τ w 2 RXA + 2RXB

˘ ATOR ˘ CIRCUITE NUMAR

ˆImpart¸irea unui num˘ ar natural N la num˘ arul natural C este definit˘ a de relat¸ia N = p · C + r,

0≤r ≤C −1

(3.35)

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

429

Deoarece ˆın urma ˆımp˘ art¸irii pot rezulta doar un num˘ ar C de resturi distincte se poate afirma c˘ a oricare num˘ ar natural N poate fi inclus doar ˆıntr-o clas˘ a de resturi rmoduloC ˙ , adic˘ a n o N ≡ rmodulo ˙ C, cu r˙ = ˆ0, ˆ1, ˆ1, . . . , Cd − 2, Cd −1 (3.36) unde clasele de resturi sunt:

ˆ 0 = {0, C, 2C, . . . , jC, . . . , | j ∈ N } ˆ 1 = {1, C + 1, 2C + 1, . . . , jC + 1, . . . , | j ∈ N } ˆ 2 = {2, C + 2, 2C + 2, . . . , jC + 2, . . . , | j ∈ N } .. . Cd − 1 = {C − 1, 2C − 1, 3C − 1, . . . , jC − 1, . . . , | j ∈ N }

Aflarea num˘ arului de elemente ale unei mult¸imi (cardinalul nult¸imii) se poate realiza cu ajutorul circuitelor num˘ ar˘ ator modulo C (se obt¸ine num˘ arul exprimat ˆın baz˘ a C). Un circuit num˘ ar˘ ator modulo C este un automat a c˘ arui funct¸ionare este descris˘ a de un graf de tranzit¸ii, ciclice, care cont¸in un num˘ ar C de st˘ ari distincte; din fiecare stare exist˘ a doar o singur˘ a tranzit¸ie necondit¸ionat˘ a spre starea urm˘ atoare, deci ˆın starea qi se va reveni dup˘ a ce se vor parcurge toate celelalte C − 1 st˘ ari, Figura 3.61. Tranzit¸ia fiind necondit¸ionat˘ a se realizeaz˘ a numai la aplicarea impulsului de ceas. De fapt, circuitul num˘ ar˘ ator/(num˘ ar˘ atorul) determin˘ a num˘ arul de impulsuri de ceas care au fost aplicate (sau num˘ arul de elemente ale unei mult¸imi, fiec˘ arui element ˆıi corespunde un impuls de ceas). Se poate face o mapare unu-la-unu ˆıntre mult¸imea claselor de resturi r˙ ¸si mult¸imea st˘ arilor Q; uzual, clasele de resturi ˆın ordine cresc˘ atoare se mapeaz˘ a pe st˘ arile automatului ˆın ordinea de parcurgere a acestora (pornind de la una q 0 , considerat˘ a ca init¸ial˘ a, ˆın felul urm˘ ator: ˆ 0 → q0 , ˆ 1 → q1 , ... ,Cd − 1 → qC−1 ). Realizˆ and aceast˘ a mapare num˘ ar˘ atorul modulo C poate fi privit ca un identificator al claselor de resturi modulo C. De exemplu, pentru un num˘ ar˘ ator modulo 10 toate numerele urm˘ atoare (de impulsuri de ceas aplicate): 3, 13, 23, 33, . . . , 103, . . . ,1003, . . . , j · 10 + 3, . . . , care apart¸in clasei de resturi 3modulo10 (ˆ3), aduc automatul ˆın starea q3 . Iar, de exemplu, pentru un num˘ ar˘ ator modulo 7 toate numerele urm˘ atoare: 2, 9, 16, . . . , 51, . . . , j · 7 + 2, . . . care apart¸in clasei de resturi 2 modulo 7, aduc automatul ˆın starea q2 . Revenind tot dupa C impulsuri de ceas ˆın aceea¸si stare circuitul num˘ ar˘ a ˆın baza C. Dar pentru aceast˘ a num˘ arare ˆın baza C se poate obt¸ine o anumit˘ a codificare prin modul de asignare al bitilor zk−1 , . . . , z1 , z0 ai fiec˘ arei st˘ ari qj , din cele C. Num˘ arul minim k al bit¸ilor de cod, egal cu num˘ arul celulelor de memorare (bistabile) ale automatului, conform relat¸iei 3.17, este dlog 2 Ce. Pentru exemplul anterior, de num˘ ar˘ ator modulo 10, se poate adapta o num˘ arare in baz˘ a 10 sub codul BCD (8-42-1) sau ˆın cod Gray sau un cod Excess 3 etc. Deci circuitul urm˘ ator poate asigura num˘ ararea ˆıntr-o anumit˘ a baza C si sub o anumit˘ a codificare. Circuitul num˘ ar˘ ator poate fi implementat cu un automat de tip Moore imediat la care ie¸sirea este identic˘ a cu starea, relat¸ia 3.15, (Q ≡ Y ); codul st˘ arii este num˘ arul exprimat ˆıntr-o anumit˘ a codificare. Foarte frecvent, automatul num˘ ar˘ ator mai este

˘ ATOR ˘ 3.4. CIRCUITE NUMAR

430 Multimea claselor de resturi modulo C

Automat cu tranzitie neconditionata, ciclica,

Multimea Q a starilor automatului

intre cele C stari

z k−1

C=1 0^ ^1 ^ 2

q0

^0

q

q1

C−1 C−1

CO

^1

qC−2 ^r

C−1

z 1z 0

q0

1/0 1/0 1/0

q1

1/0 1/0 1/0

q2 q2

C−2

Numarare inversa C−2

Codificarea starilor automatului

^2

qi

1/0 1/0 1/0

qC−2

1/0 1/0 1/0

qC−1

1/0 1/0 1/0

Numarare directa

qi

^i

Figura 3.61 Circuitul num˘ ar˘ ator: Num˘ ar˘ atorul modulo C poate fi privit ca un automat de identificare a claselor de resturi modulo C iar codificarea num˘ ar˘ arii rezult˘ a prin modul de asigurare a celorlalte C st˘ ari. ˆınzestrat cu ˆınc˘ a un bit de ie¸sire, CO = {0, 1}, care este semnalul de dep˘ a¸sire a capacit˘ a¸tii de num˘ arare (transportul urm˘ ator) ce devine activ doar cˆ and se ajunge ˆın ultima stare qC−1 dup˘ a care, prin tranzit¸ia ˆın starea init¸iala q 0 , se reˆıncepe ciclul tranzit¸iilor, deci relat¸ia de transfer a automatului este f : Q → Q×CO. De asemenea, se introduce ¸si un semnal de intrare CI = {0, 1} - transportul anterior deci relat¸ia de tranzit¸ie a st˘ arilor este g : Q × CI → Q. Semnalul CI poate fi interpretat ¸si ca un semnal de validare/enable (EN) care pentru valoarea 1 determin˘ a trecerea num˘ ar˘ atorului ˆın starea urm˘ atoare, qi+1 , la aplicarea fiec˘ arui impuls de ceas, iar pentru valoarea 0 r˘ amˆ anerea ˆın aceea¸si stare, q i . ˆInzestrat cu cele dou˘ a semnale, CI– transportul anterior ¸si CO– transportul urm˘ ator, num˘ ar˘ atorul ne aminte¸ste de circuitul sumator. Evident, se poate substitui circuitul num˘ ar˘ ator cu un sumator, la care pe o intrare se aplica permanent cuvˆ antul 1 iar pe cealalt˘ a intrare suma obt¸inut˘ a anterior, deci la aplicarea fiec˘ arui impuls de ceas se adun˘ a unu la num˘ arul anterior (Orice num˘ ar se obtine din num˘ arul anterior plus 1). Cele dou˘ a semnale introduc facilitatea de a obt¸ine un circuit num˘ ar˘ ator modul C (care nu este num˘ ar prim) prin ˆınserierea de circuite num˘ ar˘ ator a c˘ aror modulo sunt divizori ai lui C conform relat¸iei: C = C 1 C2 . . . C K

(3.37)

Graful ciclic de tranzit¸ie al st˘ arilor poate fi parcurs ˆın unul din cele dou˘ a sensuri rezultˆ and, ˆın consecint¸a˘, pentru circuitul num˘ ar˘ ator o funct¸ionare de num˘ arare direct˘ a sau num˘ arare invers˘ a; sau dac˘ a se introduce pentru circuitul num˘ ar˘ ator o intrare I, pentru care valoarea I = 0 determin˘ a num˘ ararea direct˘ a iar pentru I = 1

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

431

determin˘ a num˘ ararea invers˘ a, se obt¸ine un num˘ ar˘ ator reversibil. Existent¸a la un circuit num˘ ar˘ ator modulo C, pe ie¸sire, pe lˆ ang˘ a cuvˆ antul de cod al st˘ arii prezente - pentru num˘ arare - ¸si a semnalului CO - pentru dep˘ a¸sirea capacitat¸ii - determin˘ a dou˘ a moduri de funct¸ionare/(utilizare) distincte. Prima funct¸ionare, cea de num˘ arare ˆıntr-o baz˘ a modulo C sub un anumit cod, cˆ and este considerat˘ a succesiunea cuvintelor de cod a st˘ arilor parcurse. Cea de-a doua funct¸ionare, cˆ and se consider˘ a doar semnalul de dep˘ a¸sire CO produs dup˘ a C impulsuri de ceas aplicate, este cea de divizare cu C. Din punct de vedere al implement˘ arii unui circuit num˘ ar˘ ator, ˆın funct¸ie de aplicarea impulsului de ceas care determin˘ a trecerea din starea q i in starea qi+1 , acesta poate fi de tip asincron sau de tip sincron.

3.4.1

Num˘ ar˘ atoare asincrone

Pentru num˘ ar˘ atorul care va fi analizat ˆın aceast˘ a sect¸iune, denumirea de asincron reflect˘ a faptul c˘ a ˆın funct¸ionarea sa celulele de memorare (bistabilele) nu comut˘ a toate sincron cu semnalul de ceas, aceasta datorit˘ a structur˘ arii num˘ ar˘ atorului ca o ˆınseriere de bistabile de tip T. ˆIn sect¸iunea 3.3.2.4 s-a ar˘ atat ca bistabilul T ˆın regim de bascul˘ a (T = 1) comut˘ a la fiecare impuls de ceas, rezultˆ and un semnal de ie¸sire Q cu perioada dubl˘ a fat˘ a de cea a semnalului de ceas, Figura 3.49-e deci o divizare cu doi (21 ). Dac˘ a semnalul de ie¸sire Q se aplic˘ a unui urm˘ ator bistabil T (ca semnal de ceas), tot ˆın regim de bascul˘ a, T = 1, dup˘ a aceasta se obt¸ine o divizare cu 4 (2 2 ), iar dac˘ a se continu˘ a cu un al treilea bistabil T ˆınseriat se obt¸ine un semnal divizat cu 8 (23 ) ˆın raport cu semnalul ˆınit¸ial de ceas. Generalizˆ and, prin ˆınserierea a n bistabile T se obt¸ine o divizare cu 2n , deci un num˘ ar˘ ator modulo 2n ; o astfel de structurare de num˘ ar˘ ator modulo 23 este prezentat˘ a in Figura 3.62-b. Dar care din ie¸sirile Q sau QN ale celulei bistabil de rang i se aplic˘ a pe intrarea de ceas a celulei T de rang i + 1? R˘ aspunsul rezult˘ a simplu din analiza succesiunii de num˘ arare, ˆın cod binar natural, din Figura 3.62-a. Bitul de rang 20 (z0 ) din cuvˆ antul de cod binar natural al num˘ arului schimb˘ a ˆın valoarea opus˘ a la fiecare impuls de ceas. Pentru num˘ ararea ˆın sens direct, bitul de rang 21 (z1 ) schimb˘ a ˆın starea opus˘ a numai cˆ and bitul z 0 schimb˘ a din 1 ˆın 0; de asemenea bitul de rang 22 (z2 ) schimb˘ a ˆın starea opus˘ a numai cˆ and bitul z 1 comut˘ a din 1 ˆın 0, ˆın tabelul succesiunii de num˘ arare aceste comutat¸ii sunt indicate prin s˘ aget¸i. ˆIn concluzie, celula de bistabil T de rang i este comutat˘ a ˆın starea opus˘ a de c˘ atre celula de rang i − 1 numai cˆ and aceasta comut˘ a de 1 la 0. Deoarece ˆın structura aleas˘ a de num˘ ar˘ ator s-au considerat celulele bistabile T comandate pe frontul negativ al semnalului de ceas, rezult˘ a c˘ a pentru intrarea CLK a celulei de rang i se aplica ie¸sirea Q a celulei de rang i-1 care produce front negativ la comutat¸ia lui z i−1 de la 1 la 0. Dac˘ a celulele bistabile erau comandate pe frontul pozitiv de ceas atunci pe intrarea CLK a celulei de rang i s-ar fi aplicat semnalul Q N de la celula de rang i − 1, deoarece numai acest semnal produce un front pozitiv cˆ and aceast˘ a celul˘ a comut˘ a de la 1 la 0. Diagrama de semnale pentru acest num˘ ar˘ ator modulo 8, cˆ and parcurge toate cele 8 st˘ ari, este prezentat˘ a ˆın Figura 3.62-c. Pornind din starea z 2 z1 z0 = 000 la aplicarea primului impuls de ceas, pe frontul negativ, ˆın num˘ ar˘ ator se ˆınscrie starea 001, dup˘ a al doilea impuls se ˆınscrie 010 ¸si prima celul˘ a revine ˆın z 0 = 1, dar frontul negativ

432

˘ ATOR ˘ 3.4. CIRCUITE NUMAR

de la ie¸sirea acesteia comand˘ a celula a dou˘ a ˆın z 1 = 1. La al patrulea front negativ exist˘ a un transfer de la celula 20 la celula de rang 21 , care comut˘ a pe z1 ˆın 0, ¸si la fel exist˘ a un transfer de la celula 21 la celula 22 care comut˘ a pe z2 ˆın 1, deci num˘ arul este 100. Dup˘ a al ¸saptelea impuls num˘ arul ˆınscris este 111, s-a atins capacitatea maxim˘ a, iar la al optulea impuls de ceas toate fronturile pe intr˘ arile de ceas sunt negative, la fiecare celul˘ a se genereaz˘ a un transfer c˘ atre celula urm˘ atoare, cel de la celula de rang 22 nu este utilizat pentru o celul˘ a urm˘ atoare, num˘ ar˘ atorul revine ˆın starea init¸ial˘ a ˆ0 = 8 modulo 8. ˆIn diagrama de semnale prezentat˘ a s-a considerat c˘ a timpul de propagare, τ pCQ (τpHL(CQ) = τpLH(CQ) = τpCQ ) pe un bistabil T, de la intrarea de ceas la ie¸sire, are valoarea de zero. ˆIn Figura 3.62-d s-a redesenat diagrama de semnale, cu comutat¸iile ˆıntˆ arziate ale celulelor datorate propag˘ arilor τ pCQ pentru primele patru semnale de ceas. Se observ˘ a c˘ a la al doilea impuls de ceas comutat¸ia ie¸sirii z 1 apare cu o ˆıntˆ arziere de 2τpCQ , iar la al patrulea impuls de ceas comutat¸ia ie¸sirii z 2 apare o ˆıntˆ arziere de 3τpCQ ; deci celulele vor comuta asincron cu semnalul de ceas, de unde ¸si denumirea de num˘ ar˘ ator asincron. Evident, la un num˘ ar˘ ator asincron cu n celule ˆıntˆ arziere maxim˘ a datorat˘ a propag˘ arii prin cele n celule este n × τ pCQ . Rezult˘ a c˘ a valoarea frecvent¸ei de ceas nu poate cre¸ste peste 1/(nτ pCQ ). Avantajului simplit˘ a¸tii structurii num˘ ar˘ atorului asincron i se opune limitarea frecvent¸ei de comand˘ a a ceasului, f CLK ≤ 1/(nτpCQ ). Pentru num˘ ar˘ atorul asincron modulo 2n dimensiunea S(n) ¸si adˆ ancimea D(n) sunt ˆın O(n). Asincronismul ˆın comutat¸ia celulelor genereaz˘ a st˘ ari false la tranzitia unora dintre dou˘ a st˘ ari consecutive. De exmplu, la tranzit¸ia din starea 1|10 = 001 ˆın starea 2|10 = 010 se genereaz˘ a pe durata τpCQ starea fals˘ a 000, iar la tranzit¸ia din starea 3|10 = 011 ˆın starea 4|10 = 100 se genereaz˘ a urm˘ atoarele dou˘ a st˘ ari false: 010 si 000. Utilizarea ie¸sirilor num˘ ar˘ atorului z 2 , z1 , z0 ca intr˘ ari la un circuit combinat¸ional genereaz˘ a hazard, utilizarea lor este posibil˘ a numai dup˘ a consumarea regimului tranzitoriu(> nτpCQ ). O solut¸ie de pentru evitarea hazardului const˘ a ˆın strobarea aplic˘ arii ie¸sirilor num˘ ar˘ atorului, adic˘ a circuitul care are ca intr˘ ari cuvˆ antul z2 z1 z0 este validat cu un semnal (de strob) ˆıntˆ arziat fat¸a˘ de frontul negativ al semnalului de ceas de la num˘ ar˘ ator (cum ar fi, de exmplu, palierul pozitiv al semnalului ceas). Structura de num˘ ar˘ ator asincron cu num˘ arare direct˘ a poate fi transformat˘ a u¸sor ˆıntr-o structur˘ a de num˘ ar˘ ator cu num˘ arare invers˘ a prin aplicarea pe intrarea de ceas a celulei de rang i a semnalului corespunz˘ ator (Q sau Q N ) de la ie¸sirea celulei de rang i − 1. Din tabelul succesiunii de num˘ arare invers˘ a, din Figura 3.62-a, rezult˘ a c˘ a celula de rang 20 comut˘ a la fiecare impuls de ceas, celula de rang 2 1 va comuta numai cˆ and celula 20 comut˘ a din 0 ˆın 1, iar celula de rang 22 comuta numai cˆ and celula 21 comut˘ a din 0 ˆın 1, adic˘ a tocmai invers ca la num˘ ararea direct˘ a. Deci, pentru celulele cu comutare pe front pozitiv, se culege semnalul de pe iesirea Q a celulei anterioare, iar pentru comutat¸ia pe front negativ se culege de pe ie¸sirea Q N a celulei anterioare, Figura 3.62-e. O structur˘ a de num˘ ar˘ ator comandat pentru num˘ ararea direct˘ a sau num˘ arare invers˘ a se obt¸ine prin introducerea unor selectoare ˆıntre dou˘ a celule de num˘ arare succesive care va alege ie¸sirea potrivit˘ a de la celula anterioar˘ a ¸si o aplic˘ a pe intrarea de ceas a celulei urm˘ atoare. Un astfel de selector este fie un MUX2:1, fie o poart˘ a XOR. Un num˘ ar˘ ator asincron modulo 2n poate fi modificat pentru o funct¸ionare ca num˘ ar˘ ator modulo C, unde C < 2n . O astfel de modificare se obt¸ine prin eliminarea unui

433

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Numar de ampl

z 2 22

Numarare in sens: Direct

z2 z1 z0

Invers z2 z1

z0

0

0

0

0

0

0

0

1

0

0

1

1

1

1

2

0

1

0

1

1

0

3

0

1

1

1

0

1

4

1

0

0

1

0

0

5

1

0

1

0

1

1

6

1

1

0

0

1

0

7

1

1

1

0

0

1

8

0

0

0

0

0

0

z1 2 1

CLK QN K CLEAR

QN K CLEAR

"1"

Q Q J 0

1

CLK

QN K CLEAR

CLEAR

b) 1

CLK z0

2

3

0

1

z1

0

z2

0 τ PLH(CQ)

1

00

0

1

1

10

0

0 τ PHL(CQ)

0 τ PHL(CQ)

00

1 τ PHL(CQ)

0

τ PLH(CQ)

4

0

τ PLH(CQ)

τ PLH(CQ)

1

2

3

4

5

6

7

8

1 0

0

1

0

0

1 0

0

1

1 1

0

z1

1

1

0

z2

0

0

0

0

1

1

1

0

CLK Front pozitiv

J

"1"

CLK

J

2i Q

CLK

QN

K

2 i+1 Front negativ

Numarare reversibila

Numarare directa 2i+1

"1"

CLK

2i Q

CLK

23

z 2 22 Q Q3

D

CLK QN CLEAR

Q

0 1

D

CLEAR COUNT

K

"1" − invers "0" − direct

2 i+1

Q

J K

"0" − direct "1" − invers z 0 20

D Q Q1 CLK QN CLEAR

CLK QN CLEAR

J

CLK

QN CLK

z 1 21 Q Q2

2 i+1

QN

Q

"0" − direct "1" − invers

e) z3

0 1

Numarare inversa

QN

"1" − invers "0" − direct

QN

K

_ R

J

EN

d)

CLK z0

_ S

Q Q

2

a)

c)

J

Q Q

z0 2 0

CLK Q Q0

i "1" 2 Q

QN i "1" 2 Q

QN

z 3z 2z 1z 0=1010

D

CLK QN CLEAR

CLK COUNT

_ S

CLEAR

f) Figura 3.62 Num˘ ar˘ atorul asincron: a) tabelul succesiunii de num˘ arare direct˘ a ¸si invers˘ a, modulo 8; b,c) structura ¸si diagrama de semnale pentru un num˘ ar˘ ator modulo 8; d) evident¸ierea timpilor de propagare ¸si a st˘ arilor false introduse; e) conexiunile pentru obt¸inerea semnalului de ceas la o celul˘ a de rang i + 1; f) num˘ ar˘ ator modulo 10 obt¸inut prin modificarea unui num˘ ar˘ ator modulo 2 4 .

434

˘ ATOR ˘ 3.4. CIRCUITE NUMAR

num˘ ar(2n − C) st˘ ari din graful de tranzit¸ie al st˘ arilor. Un decodificator identific˘ a ˆın cuvˆ antul de cod al num˘ ar˘ atorului cˆ and se realizeaz˘ a starea C ¸si atunci se fort¸eaz˘ a, prin intr˘ arile asincrone de stergere CLEAR a celulelor, ˆınscrierea ˆın starea init¸ial˘ a 000...00. ˆIn Figura 3.62-f se exemplific˘ a modificarea unui num˘ ar˘ ator modulo 16, realizat cu bistabilele D care modeleaz˘ a o funct¸ionare de bistabili T, ˆıntr-un num˘ ar˘ ator modulo 10, z3 z2 z1 z0 = 1010; circuitul decodificator este o poart˘ a NAND2 care identific˘ a starea 1010, z3 = z1 = 1, se genereaz˘ a un semnal de resetare, activ ˆın zero, care fort¸eaz˘ a ˆınscrierea ˆın 0 a celulelor bistabile Q3 , Q2 , Q1 (se ¸sterge ¸si Q2 deoarece stergerea lui Q1 produce la ie¸sirea Q o comutat¸ie de la 1 la 0 care ar ˆınscrie pe Q 2 ˆın 1). Bucla de fort¸are a st˘ arii 000 este transparent˘ a, adic˘ a oricare ˆınscriere ˆın zero a unuia din bitii z3 sau z1 , aplicat¸i la intrarea port¸ii NAND2, ar produce la ie¸sirea acesteia o anulare a semnalului de resetare, CLEAR devine 1. Scurtarea duratei de activare a semnalului de resetare, CLEAR = 0, duce la neˆınscrierea ˆın starea 0 a unora din cele trei bistabile (Q3 , Q2 , Q1 ). Presupunem: τpNAN2 = 9nS, τpRESET(tipic) = 25nS pentru bistabilul Q3 si τpRESET(maxim) = 40ns pentru bistabilul Q1 . Cu aceste date a o ˆıntˆ arziere τ = 9ns + 25ns = din momentul activ˘ arii semnalului CLEAR = 0, dup˘ 34ns < 40ns, datorit˘ a faptului c˘ a z3 a fost ˆınscris ˆın zero, poarta NAND2 anuleaz˘ a semnalul de resetare (CLEAR=1) ˆınainte ca ¸si Q 1 s˘ a fi fost ˆınscris ˆın 0, deci cuvˆ antul fort¸at ˆın num˘ ar˘ ator nu este 0000 ci 0010. Transparent¸a buclei este eliminat˘ a prin introducerea unui latch S R ¸si prin aceasta (chiar dac˘ a unul din semnalele de ie¸sire z1 sau z3 devine mai devreme zero) se lunge¸ste durata de activare a semnalului de an˘ a cˆ and la intrarea latch-ului apare R=0 (adica ˆın momentul resetare (CLEAR=0) pˆ aparit¸iei urm˘ atorului front pozitiv de ceas CLK cˆ and semnalul COU N T = R devine activ, COU N T = CLK). Dar ¸si cu eliminarea transparent¸ei buclei de fort¸are acesta structur˘ a de num˘ ar˘ ator modulo 10, obt¸inut din unul modulo 16, mai prezint˘ a totu¸si o funct¸ionare defectuoas˘ a datorit˘ a fort¸a˘rii ˆınscrierii unei st˘ ari (prin utilizarea intr˘ arilor asincrone CLEAR). La al zecelea impuls de ceas cˆ and num˘ ar˘ atorul a ajuns ˆın starea z 3 z2 z1 z0 = 1010, si prin detectarea acestei st˘ ari, se fort¸eaz˘ a ˆınscrierea st˘ arii z 3 z2 z1 z0 = 0000. La urm˘ atorul impuls de ceas are loc tranzit¸ia ˆın z 3 z2 z1 z0 = 0001 dup˘ a care pe urm˘ atoarele nou˘ a impulsuri se ajunge nou ˆın z 3 z2 z1 z0 = 1010. Rezult˘ a c˘ a, pe durata celui de al zecelea impuls de tact, num˘ ar˘ atorul a avut pentru scurt timp starea z3 z2 z1 z0 = 1010 ¸si apoi, pˆ an˘ a la urm˘ atorul impuls de ceas, starea z 3 z2 z1 z0 = 0000, deci ˆın total 11 st˘ ari pentru 10 tacte. Aceasta ˆınseamn˘ a c˘ a num˘ ar˘ atorul modulo 10 obt¸inut poate fi utilizat pentru funct¸ia de num˘ arare numai dac˘ a starea detectat˘ a de decodificator (1010), de scurt˘ a durat˘ a, nu influent¸eaz˘ a succesiunea codurilor de ie¸sire. ˆIn schimb acest num˘ ar˘ ator modificat poate fi utilizat ca divizor modulo 10 dac˘ a ˆın starea 1010 se genereaz˘ a un impuls de dep˘ a¸sire CO (obt¸inut printr-o poart˘ a AND2 cu intr˘ arile z3 si z1 ). Trebuie evident¸iat faptul c˘ a la un num˘ ar˘ ator asincron momentul de comutare precum ¸si modul cum comut˘ a sunt determinate de frontul impulsului de ceas deci ,, ,, nu este decuplat˘ a act¸iunea “cum de act¸iunea “cˆ and , situat¸ie ˆıntˆ alnit˘ a la latch-uri. ,, Pentru “cum decizia este dat˘ a de comutat¸ia bistabilului anterior ¸si nu de starea bistabililor anteriori. Pentru aplicat¸ii de frecvent˘ a joas˘ a, cˆ and st˘ arile false introduse nu sunt un dezavantaj (sau pot fi u¸sor eliminate prin strobare), datorit˘ a simplit˘ a¸tii sale circuitele num˘ ar˘ ator asincron pot fi utilizate. Num˘ ar˘ atoare asincrone, comercial obtenabile, sub forma de circuite integrate

435

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

(74X) sunt: 1 - binare pe patru celule : 74XX/69/93/177/197/293/393 2 - decadice :74XX/68/90/176/196/290/390/490

3.4.2

Num˘ ar˘ atoare sincrone

La un num˘ ar˘ ator asincron toate celulele bistabil comut˘ a simultan cu frontul activ al semnalului de ceas. Pentru sinteza num˘ ar˘ atorului modulo 2 n asincron, ˆın cod binar natural (8-4-2-1), la care doar prima celul˘ a comut˘ a sincron cu ceasul iar fiecare alt˘ a celul˘ a prime¸ste semnalul pe intrarea de ceas tot la a doua comutat¸ie dar de la celula anterioar˘ a, s-a utilizat o ˆınseriere de celule bistabile T; acest bistabil avˆ and particularitatea ˆın funct¸ionare c˘ a este un num˘ ar˘ ator modulo 2 1 (ˆ0=2 modulo 2). ˆIn schimb, sinteza unui num˘ ar˘ ator modulo C sincron, ˆın orice cod ¸si nu numai ˆın numai ˆın cod binar, trebuie f˘ acut˘ a ca a unui automat pornind de la graful/tabelul de tranzit¸ie al st˘ arilor. Sinteza ca automat a num˘ ar˘ atorului sincron, pentru ˆınceput, se va face considerˆ and un num˘ ar˘ ator modulo 2n ˆın cod binar natural (pentru c˘ a din acesta se poate obt¸ine usor un alt num˘ ar˘ ator modulo C, C< 2 n ). Funct¸iile de excitat¸ie wi ale automatului num˘ ar˘ ator, notate ˆın acest caz cu T i pentru c˘ a implementarea se va face cu bistabile T, se deduc din succesiunea st˘ arilor, asignate ˆın cod binar natural, prezentate ˆın Figura 3.62-a (pentru modulo 8). Expresiile funct¸iilor Ti se deduc foarte simplu pe baza observat¸iei: fiecare bit z i , i 6= 0, din cuvˆ antul st˘ arii urm˘ atoare, va comuta fat¸a˘ de valoarea din starea prezent˘ a numai cˆ and ˆın starea prezent˘ a tot¸i bit¸ii anteriori lui z i au valoarea 1; bitul z0 comut˘ a la fiecare impuls de ceas. Deci celula de rang i va comuta la aplicarea impulsului de ceas dac˘ a funct¸ia sa de excitat¸ie Ti are valoarea 1, valoare care se calculeaz˘ a ˆın funct¸ie de starea tuturor celulelor anterioare. Introducˆ and ¸si semnalul de transport anterior CI, considerat ca o intrare de validare EN, se obt¸in expresiile pentru funct¸iile de excitat¸ie. T0 T1 T2 T3

= EN = EN · z0 = EN · z0 · z1 = EN · z0 · z1 · z2 .. .

(a)

Tn−2 = EN · z0 · z1 · z2 . . . zn−4 · zn−3 Tn−1 = EN · z0 · z1 · z2 . . . zn−4 · zn−3 · zn−2

T0 T1 T2 T3

= EN = T0 · z 0 = T1 · z 1 = T2 · z 2 .. .

(b)

(3.38)

Tn−2 = Tn−3 · zn−3 Tn−1 = Tn−2 · zn−2

Dac˘ a se calculeaz˘ a ¸si funct¸ia de excitat¸ie T n care este de fapt transferul CO (dep˘ a¸sirea de capacitate cˆ and num˘ ar˘ atorul este plin cu 111....11) se adaug˘ a ¸si expresia CO = Tn = EN · z0 · z1 · z2 · ... · zn−3 · zn−2 · zn−1 CO = Tn = Tn−1 · zn−1

(a) (b)

(3.39)

Expresiile anterioare, obt¸inute recursiv, care calculeaz˘ a prefixe (expresiile cu indicele mai mic decˆ at i pot fi considerate prefixe ˆın procesul de calcul pentru expresia cu indicele i) pot fi implementate fie cu n port¸i AND avˆ and de la 2 pˆ an˘ a la n + 1 intr˘ ari (relat¸ia 3.38-a) fie cu n port¸i AND2 (relat¸ia 3.38-b). Aceste dou˘ a implement˘ ari (extreme) ale circuitului combinat¸ional pentru automatul num˘ ar˘ ator corespund celor

˘ ATOR ˘ 3.4. CIRCUITE NUMAR

436

z n−1

2n−1 Q

J Qn−1

z n−2 Tn−1

CLK QN K

2n−2 Q

z1 J Qn−2

21 Q

Tn−2

CLK QN K

20

z0 Q1

J

Q

T1

Q0

J

T0

CLK QN K

CLK QN K

CLK

1

EN

2 n−2 n−1

CO

n CLC

a) z n−1 CO

n

Tn−1

Tn−2

z n−2

n−1

T2

n−2

T1

z1

2

T0

z0 1

CLC

EN

b) z6

z5

z4

z3

z2

z1

z0 EN

CLC

c)

T7

T6

T5

T4

T3

T2

T1

T0

Figura 3.63 Automatul num˘ ar˘ ator sincron ˆın codul binar natural: a) organizarea num˘ ar˘ atorului sincron paralel; b) structura ret¸elei CLC pentru num˘ ar˘ atorul sincron serie; c) structur˘ a arborescent˘ a binar˘ a a ret¸elei combinat¸ionale pentru num˘ ar˘ atorul sincron (n=8)

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

437

dou˘ a tipuri de num˘ ar˘ atoare: num˘ ar˘ atorul sincron paralel, Figura 3.63-a, num˘ ar˘ atorul sincron serie Figura 3.63-b. Aceste dou˘ a implement˘ ari, de¸si au produsul dimensiuneadˆ ancime ˆın acela¸si ordin, O(n2 ), reflect˘ a regula c˘ a mic¸sorarea dimensiunii la varianta serie duce la sc˘ aderea performant¸ei de vitez˘ a, iar la mic¸sorarea adˆ ancimii duce la cre¸sterea dimensiunii (varianta paralel˘ a) vezi relatia 2.9. Pentru num˘ ar˘ atorul sincron paralel (NSP), din momentul aplic˘ arii impulsului de ceas pˆ an˘ a la urm˘ atorul, timpul minim necesar, T CLK minim, este egal cu τpCQ — timpul de propagare printr-o celul˘ a T, plus timpul τ pAND -timpul de propagare printr-o poart˘ a AND, la care se adaug˘ a timpul de stabilizare al bistabilului τ SU , ceea ce se poate exprima prin relat¸ia general˘ a TCLKmin = τN SP (n) = τpCQ + τpAND + τSU ∈ O(1)

(3.40)

Dimensiunea acestui tip de num˘ ar˘ ator, SN SP (n), se calculeaz˘ a din dimensiunea ret¸elei de memorare realizat˘ a din bistabilele T, S T , plus dimensiunea ret¸elei combinat¸ionale (paralel˘ a) SRCP (n) compus˘ a din n port¸i cu dou˘ a pˆ an˘ a la (n+1) intr˘ ari. SN SP (n) = n · ST + n · SRCP (n + 1) ∈ O(n2 ) Aceste evalu˘ ari teoretice ale automatului num˘ ar˘ ator trebuie considerate doar ca limite, deoarece ˆın practic˘ a implementarea acestui num˘ ar˘ ator, mai ales pentru n de valoare mare, este greu de realizat (ultima poart˘ a AND prezint˘ a n+1 intr˘ ari). ˆIn consecint¸a˘, implementarea port¸ilor AND cu multe intr˘ ari, utilizˆ and axioma de asociativitate, se vor compune din mai multe port¸i cu un num˘ ar de intr˘ ari mai redus ¸si plasate pe mai multe niveluri, deci nu va fi un singur nivel de propagare τ pNAND ci mai multe. De asemenea ¸si τpCQ se m˘ are¸ste, mai ales la bistabilele din rangurile inferioare, a c˘ aror ˆınc˘ arcare la ie¸sire cre¸ste cu n. Totu¸si, organizarea de num˘ ar˘ ator sincron paralel pentru valori mici ale lui n este recomandat˘ a, sunt uzuale num˘ ar˘ atoarele cu n=4. Prin utilizarea expresiilor 3.38-b se obt¸ine num˘ ar˘ atorul sincron serie, NSS, pentru care ˆın Figura 3.63-b este prezentat˘ a numai organizarea ret¸elei combinat¸ionale. Pentru aceast˘ a organizare, ˆın raport cu cea paralel˘ a, perioada minim˘ a a semnalului de ceas, TCLKmin , se m˘ are¸ste cu timpul de propagare prin ˆınc˘ a (n-2) port¸i AND2; ˆıntr-adev˘ ar funct¸ia de excitat¸ie Ti a bistabilului i este calculat numai dup˘ a ce a fost calculat˘ a Ti−1 ceea ce se exprim˘ a prin relat¸ia TCLKmin = τN SS (n) = τpCQ + (n − 1)τpAND + τSU ∈ O(n)

(3.41)

iar dimensiunea SN SS (n) = n · ST + n · SAN D2 ∈ Q(n) Relat¸ia 3.41 arat˘ a c˘ a performant¸ele de vitez˘ a ale num˘ ar˘ atorului sincron serie nu sunt mult ˆımbun˘ at˘ a¸tite ˆın raport cu num˘ ar˘ atorul asincron la care (T CLKmin ≥ nτCQ ) Aceast˘ a structurare serie ¸si paralel˘ a este similar˘ a cu cea a sumatorului serie cu transport progresiv (sect¸iunea 2.5.2.1) ¸si cea a sumatorului cu transport anticipat (sect¸iunea 2.5.2.2); la fel, ca la sumatoare, se pot face organiz˘ ari ale CLC pentru calculul funct¸iilor de excitat¸ie Ti prin mixarea part¸ial˘ a a celor dou˘ a extreme. De exmplu se poate realiza calculul paralel pentru cˆ ate m celule bistabile, iar apoi calculul ˆın serie ˆıntre cele n/m grupe.

˘ ATOR ˘ 3.4. CIRCUITE NUMAR

438

Se pot calcula funct¸iile de excitat¸ie Ti , utilizˆ and o funct¸ie logic˘ a AND2, f (x0 , x1 ) = x0 ·x1 , sub forma unui arbore binar luˆ and numai perechi din variabilele EN, z 0 , z1 , z2 ,...,zn−2 , zn−1 . Aplicˆ and aceast˘ a modalitate de calcul pentru relat¸iile 3.38-a cˆ and n = 8 se obt¸ine T0 T1 T2 T3 T4 T5 T6 T7

= f (EN, EN ) = EN = f (z0 , EN ) = f (f (z1 , z0 ), EN ) = f (f (z2 , z1 ), f (z0 , EN )) = f (f (f (z3 , z2 ), f (z1 , z0 )), EN ) = f (f (f (z4 , z3 ), f (z2 , z1 )), f (z0 , EN )) = f (f (f (z5 , z4 ), f (z3 , z2 )), f (f (z1 , z0 ), EN )) = f (f (f (z6 , z5 ), f (z4 , z3 )), f (f (z2 , z1 ), f (z0 , EN )))

(3.42)

Organizarea sub form˘ a de arbore (NSA), numai cu port¸i AND2, conform relat¸iilor 3.42, este prezentat˘ a ˆın Figura 3.63-c. Perioada de ceas minim˘ a pentru cazul general este TCLKmin = τN SA (n) = τpCQ + τpAND2 · log2 n + τSU ∈ O(log n)

(3.43)

iar dimensiunea se calculeaz˘ a cu relat¸ia SN SA (n) = n · ST + n · log2 n ∈ O(n · log n) Pentru un num˘ ar˘ ator sincron modulo 2n , ˆın cod binar natural, cu num˘ arare invers˘ a sinteza se realizeaz˘ a similar. Se porne¸ste pentru deducerea funct¸iilor de excitat¸ie de la succesiunea st˘ arilor asignate parcurse ˆın sens invers din Figura 3.62-a. Se observ˘ a c˘ a fiecare bit zi , i 6= 0, din cuvˆ antul st˘ arii urm˘ atoare, va comuta fat¸a˘ de valoarea din starea prezent˘ a numai cˆ and ˆın starea prezent˘ a tot¸i bit¸ii anteriori au valoarea 0; bitul z0 comut˘ a la fiecare impuls de ceas. Deci fat¸a˘ de num˘ ararea ˆın sens direct, cˆ and se utilizeaz˘ a ie¸sirile Q de la celulele anterioare, la num˘ ararea ˆın sens invers se utilizeaz˘ a ie¸sirile QN ale celulelor anterioare. Pentru implementarea num˘ ar˘ atorului invers se utilizeaz˘ a relat¸iile 3.38 ¸si 3.39 ˆın care se face substitut¸ia Q i → QN i . Semnalul de dep˘ a¸sire de capacitate/transport CO, care ˆın acest caz are semnificat¸ia de ˆımprumut, se genereaz˘ a cˆ and num˘ ar˘ atorul ajunge la cuvˆ antul compus din n zerouri ¸si nu cˆ and num˘ ar˘ atorul ajunge la cuvˆ antul de n unu-uri ca la num˘ ararea direct˘ a. Un num˘ ar˘ ator sincron reversibil trebuie s˘ a calculeze funct¸iile de excitat¸ie cu semnalele Qi , pentru num˘ arare direct˘ a, ¸si cu semnalele Q N i pentru num˘ arare invers˘ a. Selectarea celor dou˘ a semnale de la ie¸sirea unei celule bistabil se realizeaz˘ a, similar ca ˆın Figura 3.62-e, fie un MUX2:1, fie cu o poart˘ a XOR comandate cu un semnal de ar˘ ator direct, pentru S = 1 S = Direct/Invers (D/I, up/down); pentru S = 0 num˘ num˘ ar˘ ator invers. ˆIn general, num˘ ar˘ atoarele existente sub form˘ a de circuite integrate discrete sunt module num˘ ar˘ ator sincron compuse din patru celule bistabil (modulo 2 4 ); iar pentru capacit˘ a¸ti de num˘ arare mai mari se ˆınseriaz˘ a astfel de module, Figura 3.64-a. Pentru ˆınseriere, semnalul de dep˘ a¸sire de capacitate CO de la un modul se conecteaz˘ a ca semnal de transport anterior CI la modulul urm˘ ator, iar semnalul de ceas se aplic˘ a simultan la toate modulele. ˆIn momentul cˆ and ˆıntr-un modul se ajunge la capacitatea maxim˘ a 1111 se genereaz˘ a CO=1, deci urm˘ atorul modul va fi incrementat la

439

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS z 11 CO 11

CO

z 10

z9 CI CLK

NS3

a) Nr de imp de ceas

z8

CO11 z 11 z 10 z 9

z8

z7 CO 7

CO

CO 7

z6

z5

z4

CI CLK

NS2

z7

z6

z5

z4

z3 CO 3

CO 3

CO

z2

z1

z0

CI CLK

NS1

C −1="1" EN CLK

z3

z2

z1

z0

EN= C −1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

15

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

16

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

1

255 256

0 0

0 0

0 0

0 0

0 1

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 1

257

0

0

0

0

1

0

0

0

0

0

0

0

0

0

1

1

4095 4096

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 0

1 1

4097

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

b) Figura 3.64 Extensia capacit˘ a¸tii de num˘ arare : a) organizare pentru modulo 212 prin ˆınserierea a trei circuite num˘ ar˘ ator modulo 2 4 ; b) secvent¸a˘ de cuvinte din procesul de num˘ arare modulo 212 ˆın cod binar natural.

urm˘ atorul impuls de ceas. Cˆ ateva cuvinte din cont¸inutul unui num˘ ar˘ ator modulo 2 12 , organizat prin ˆınserierea a trei modulele fiecare de cˆ ate patru bit¸i, din secvent¸a de num˘ arare sunt prezentate ˆın tabelul din Figura 3.64-b. Dac˘ a pentru aceast˘ a ˆınseriere se folosesc module NSP perioada minim˘ a a semnalului de ceas conform relat¸iei (3.40), este TN SP (12) = τpCQ + 3 · τpAND + τSU iar dac˘ a se folosesc module NSS, conform relat¸iei 3.41 perioada minm˘ a este TN SS (12) = τpCQ + (4 + 4 + 3)τpAND + τSU 3.4.2.1

Num˘ ar˘ atoare presetabile

La num˘ ar˘ atoarele sincrone presetabile se poate realiza ca, la un anumit impuls de ceas, tranzit¸ia s˘ a se efectueze ˆıntr-o stare urm˘ atoare, q p prescris˘ a din exterior. Codul st˘ arii urm˘ atoare, starea de ˆınceput a ciclului q p , validat prin act¸iunea semnalului de control de ˆınc˘ arcare LOAD (ˆın general activ ˆın L) este ˆınscris ˆın celulele bistabil de stare ale automatului num˘ ar˘ ator. Dar, ˆınscrierea (fort¸area) unei st˘ ari urm˘ atoare q p din exterior ˆınseamn˘ a c˘ a ˆın graful de tranzit¸ii ciclic, Figura 3.61, nu se mai parcurg toate cele C st˘ ari, deci num˘ ar˘ atorul devine un num˘ ar˘ ator modulo C 1 ; C1 este egal cu num˘ arul de st˘ ari parcurse, pe graful de tranzit¸ie al st˘ arilor, ˆıntre starea final˘ a qf (din care se realizeaz˘ a fort¸area tranzit¸iei ˆın starea prescris˘ a q p ) ¸si starea de ˆınceput a

˘ ATOR ˘ 3.4. CIRCUITE NUMAR

440

Operatia efectuata de numarator

celula n−a a numaratorului

Semnale de control ENABLE

LOAD

Stergere

De la logica celulelor anterioare ale numaratorului

CLEAR

activ

(resetare) Incarcare

activ

(setare) activ

inactiv

inactiv

Fara modificare

inactiv

inactiv

inactiv

CLEAR P2

LOAD

Celula n−a a numaratorului

CLEAR

P4 P6

D

Dn

Operatia efectuata in celula n

P3

MUX 2:1

QN

CLK

P1

A

CLK

P1

c)

De la logica celulelor anterioare ale numaratorului

Q

CLEAR

a)

LOAD

PRESET D

inactiv

Numarare

PRESET

Q

Stergere (resetare)

Semnale de control CLEAR LOAD 0

Q=0

P5 QN

CLOCK

Inscriere (setare)

1

0

Q=D n

Numarare

1

1

Q=A

LOAD CLEAR

P2

b)

Dn

Figura 3.65 Modalitat¸i de ˆınscriere a num˘ ar˘ atoarelor sincrone: a) ˆınscriere asincron˘ a; b) circuistica ¸si tabelul semnalelor de control pentru ˆınscrierea sincron˘ a; c) semnalele pentru controlul operat¸iilor pe un num˘ ar˘ ator.

ciclului qp . Rezult˘ a c˘ a un num˘ ar˘ ator modulo 2n , la care se implementeaz˘ a circuitul de presetare, poate fi transformat ˆıntr-un num˘ ar˘ ator modulo C 1 , 2 ≤ C1 ≤ 2n -1. Circuitul de presetare trebuie s˘ a cont¸in˘ a: un identificator (decodificator) al codului st˘ arii finale qf , intr˘ ari externe pe care se aplic˘ a bit¸ii de cod ai st˘ arii q p , ce urmeaz˘ a a fi ˆınscris˘ a, ¸si semnalulul de ˆınc˘ arcare, LOAD. Un decodficator al codului st˘ arii q f se poate realiza u¸sor cu port¸i logice ˆın exterior, ˆın general sub forma unei conjunct¸ii compuse cu bit¸ii care au valoarea 1 ˆın codul st˘ arii q f . Dar, un astfel de decodificator poate fi eliminat dac˘ a se alege ca starea final˘ a, q C−1 , ˆın care se genereaz˘ a semnalul de dep˘ a¸sire a capacit˘ a¸tii, CO, iar ca semnalul LOAD se va utiliza tocmai acest semnal de dep˘ a¸sire de capacitate. Foarte frecvent, mai exist˘ a ˆınc˘ a un semnal de ¸stergere, CLEAR (ˆın general activ ˆın L), care realizeaz˘ a ˆınscrierea ˆın starea q i = 00. . . 00. Fort¸area codului st˘ arii urm˘ atoare ˆın bistabilele de stare ale automatului num˘ ar˘ ator se poate realiza, ˆın raport cu semnalul de ceas, sincron sau asincron.

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

441

Modalitatea de ˆınscriere asincron˘ a, Figura 3.65-b, utilizeaz˘ a intr˘ arile asincrone PRESET ¸si CLEAR (Figura 3.43-a) ale latch-ului din structura bistabilului. Cele dou˘ a port¸i P1 , P2 sunt validate numai la activarea semnalului de ˆınc˘ arcare, LOAD = 0. Dac˘ a bitul Dn , aplicat din exterior, are valoarea 1 rezult˘ a PRESET, CLEAR = 0, 1, deci Q = 1, QN = 0, iar dac˘ a Dn are valoarea 0 rezult˘ a PRESET, CLEAR = 1, 0, deci Q = 0, QN = 1. Poarta XOR din aceast˘ a structur˘ a are numai rolul de a transforma bistabilul D ˆın bistabilul T, Figura 3.50-b. ˆInscrierea asincron˘ a ˆıntru-un num˘ ar˘ ator prezint˘ a dou˘ a inconveniente: 1. Bucl˘ a transparent˘ a pentru generarea semnalului de ˆınc˘ arcare. Prin utilizarea semnalului obt¸inut de la decodificatorul st˘ arii q f si aplicarea acestuia ca semnal de ˆınc˘ arcare LOAD in jurul num˘ ar˘ atorului se ˆınchide o bucl˘ a transparent˘ a care poate determina, eventual, ˆınscrierea unei st˘ ari eronate, eventualitate analizat˘ a ˆın Figura 3.62-f. Se poate evita aceast˘ a eventualitate prin introducerea unui latch, deci eliminarea transparent¸ei buclei. 2. Starea prescris˘ a din exterior, qp trebuie s˘ a fie totdeauna cea anterioar˘ a st˘ arii de ˆınceput a ciclului. La aplicarea impulsului de ceas care determin˘ a tranzit¸ia ˆın starea final˘ a qf pe ie¸sirile num˘ ar˘ atorului apare codul st˘ arii finale (pentru care decodificatorul genereaz˘ a pe o durat˘ a scurt˘ a de timp semnalul de ˆınc˘ arcare asincron˘ a) ¸si apoi codul st˘ arii fort¸ate qp-1 la num˘ ararea direct˘ a sau qp+1 , la num˘ ararea invers˘ a; deci pe perioada acestui impuls de ceas ie¸sirile indic˘ a dou˘ a st˘ ari q f , pentru o durat˘ a scurt˘ a de timp, ¸si qp-1 sau qp+1 . Numai la urm˘ atorul impuls de ceas se trece ˆın starea de ˆınceput a ciclului qp ¸si se continu˘ a tranzit¸iile pˆ an˘ a ˆın qf . Pentru ˆınscrierea sincron˘ a, deoarece celulele bistabil sunt ˆınscrise de c˘ atre datele ce se aplic˘ a pe intr˘ arile de date cˆ and se aplica frontul activ de ceas, nu apar inconvenientele de la ˆınscrierea asincron˘ a. ˆIn Figura 3.65-b este prezentat˘ a circuistica si tabelul cu semnalele de control pentru o ˆınscriere sincron˘ a. Poarta XOR are numai rolul de a realiza bucla ce transform˘ a bistabilul D ˆın T; bucla se ˆınchide de la ie¸sirea Q ˆınspre intrare cˆ and poarta P3 este validat˘ a cu semnalul LOAD, CLEAR = 1, 1. Celula are pe intrarea de date o structur˘ a de MUX2:1 (neconsiderˆ andu-se poarta XOR). Pe o intrare a multiplexorului, poarta P4 , se aplic˘ a semnalul (funct¸ia de excitat¸ie) A, obt¸inut de la circuitul combinat¸ional al num˘ ar˘ atorului, ¸si care este data ce determin˘ a starea celulei, Q = A, pe frontul activ urm˘ ator de ceas, dac˘ a port¸ile P 3 ¸si P4 sunt validate a prin valoarea 1 de la ie¸sirea port¸ii P1 (cˆ and LOAD, CLEAR = 1, 1). Pe cealalt˘ intrare, poarta P5 , se aplic˘ a Dn care este ˆınscris˘ a ˆın celul˘ a, Q = Dn , la urm˘ atorul impuls de ceas dac˘ a valoarea generat˘ a de poarta P 2 este 1 (LOAD, CLEAR = 0, 1, adic˘ a operat¸ia de ˆınscriere). Pentru operat¸ia de ¸stergere (LOAD, CLEAR = −, 0) ie¸sirea ˆın 0 a port¸ii P2 va fort¸a ˆın celul˘ a Q = 0, la aparit¸ia urm˘ atorului impuls de ceas, indiferent de valoarea de prescriere Dn . ˆIn general, semnalele de control pentru un num˘ ar˘ ator presetabil sunt: de ˆınc˘ arcare — LOAD, de ¸stergere — CLEAR ¸si de validare — ENABLE (uneori compus din conjunct¸ia a dou˘ a semnale). Din tabelul din Figura 3.65-a rezult˘ a c˘ a operat¸ia de ¸stergere, CLEAR-activ, se realizeaz˘ a indiferent de valorile celorlalte semnale de control, deci CLEAR are prioritate maxim˘ a. Activarea semnalului LOAD ˆıncarc˘ a din exterior celulele num˘ ar˘ atorului chiar dac˘ a acesta nu este validat, pentru operat¸ia de num˘ arare, prin activarea semnalului ENABLE. Dac˘ a toate cele trei semnale de con,, trol nu sunt activate num˘ ar˘ atorul este inhibat/“ˆınghet¸at ˆıntr-o anumit˘ a stare, nu se produce nici o modificare la aplicarea semnalelor de ceas. Toate semnalele de control

442

˘ ATOR ˘ 3.4. CIRCUITE NUMAR

sincrone trebuie s˘ a respecte ˆın rapot cu frontul activ al semnalului de ceas restrict¸iile impuse de timpul de stabilizare τSU ¸si timpul de ment¸inere, τH . Semnalele de control pentru circuitele num˘ ar˘ atoare sincrone uzuale, existente sub form˘ a de circuite integrate MSI, sunt prezentate ˆın Figura 3.66-a. Pentru num˘ ar˘ atorul sincron 74xx163, 4bit¸i, cod binar natural, unul dintre cele mai uzuale num˘ ar˘ atoare, prin diagramele de semnal din Figura 3.66-b, se prezint˘ a modurile de operare prin activarea semnalelor de control. Pe frontul pozitiv al impulsului de ceas notat cu 1, deoarece comanda de ¸stergere este activ˘ a,CLEAR = 0, cont¸inutul num˘ ar˘ atorului devine Q3 Q2 Q1 Q0 = 0000, iar pe frontul celui de al doilea impuls de ceas, deoarece comanda de ˆınscriere este activ˘ a, LOAD = 0, cuvˆ antul aplicat din exterior pe intr˘ ari D3 D2 D1 D0 = 1100 devine cont¸inutul num˘ ar˘ atorului Q3 Q2 Q1 Q0 = 1100 = 12|10 . Imediat dup˘ a al doilea impuls de ceas, prin activarea semnalului ENABLE = ENP · ENT = 1, se valideaz˘ a regimul de num˘ arare. Pentru validarea regimului de num˘ arare se conjug˘ a cele dou˘ a semnale de validare ENT (ENable Trickle) ¸si ENP (ENable Parallel). Diferent¸a ˆıntre aceste dou˘ a semnale const˘ a prin efectul lor; ambele valideaz˘ a operat¸ia de numarare dar ENT mai valideaz˘ a ¸si transportul urm˘ ator al num˘ ar˘ atorului, notat aici cu prin RCO (Ripple Carry Out), ca o funct¸ie AND cu semnalul CO, de num˘ ar˘ ator plin, adic˘ a RCO = CO · ENT. La al cincelea semnal de ceas cont¸inutul num˘ ar˘ atorului se umple Q3 Q2 Q1 Q0 = 1111 ¸si se genereaz˘ a RCO, semnal care utilizat ca o comand˘ a de ˆınscriere poate, pe urm˘ atorul impuls de ceas, fort¸a cont¸inutul num˘ ar˘ atorului ˆın starea qp = Q3 Q2 Q1 Q0 = D3 D2 D1 D0 . Regimul de num˘ arare continu˘ a pˆ an˘ a dup˘ a al optulea impuls de ceas cˆ and num˘ ar˘ atorul este devalidat, ENP · ENT = 0, ˆın continuare fiind ˆın regim de inhibare (f˘ ar˘ a modific˘ ari). Divizoare de frecvent¸˘ a. Deoarece un num˘ ar˘ ator modulo 2 n genereaz˘ a prin CO (RCO) un semnal cu frecvent¸a impulsurilor de ceas divizat˘ a cu 2 n atunci oricare num˘ ar˘ ator modulo C1 , 2≤C1 ≤2n − 1, este un divizor cu C1 a frecvent¸ei de ceas. Iar, dup˘ a cum se ¸stie, un num˘ ar˘ ator modulo C1 se obt¸ine dintr-un num˘ ar˘ ator presetabil modulo 2n din care se elimin˘ a (2n − C1 ), st˘ ari, deci tot la C1 impulsuri de ceas se genereaz˘ a un impuls ˆın exterior, impuls ce este utilizat si pentru a fort¸a ˆınscrierea st˘ arii de ˆınceput qp a ciclului ˆın automatul num˘ ar˘ ator. Inconvenientul unui semnal obt¸inut de la un num˘ ar˘ ator modulo C este o valoare mult sub 50% a coeficientului de umplere. Mai mult, dac˘ a C 6= 2 n atunci ¸si semnalele generate la ie¸sirile Qn−1 ,Qn−2 ,. . . ,Q1 ,Q0 ale celulelor bistabil nu mai sunt simetrice pe durata ciclului de C impulsuri de ceas. Solut¸ii de circuite care genereaz˘ a semnale simetrice dup˘ a fiecare celul˘ a bistabil ¸si pentru un C6=2 n se g˘ asesc ˆın [Oberman 0 78]. Pentru a obt¸ine semnale cu frecvent¸a fCLK /C, dar cu coeficient de exemplu 50%, se poate utiliza urm˘ atoare modalitate: se aplic˘ a o frecvent¸a˘ 2f CLK la num˘ ar˘ atorul modulo C iar ie¸sirea acestuia se divide printr-un bistabil T (T=1) care genereaz˘ ao frecvent¸a˘ (2fCLK /C):2. Exemplul 3.22 Utilizˆand circuitele num˘ar˘ator sincron presetabil 74xx163 ¸si 74xx161 s˘ a se realizeze num˘ ar˘ atoare modulo 12. Caracteristicile de control pentru aceste num˘ ar˘ atoare sunt date ˆın Figura 3.66-a. Solut¸ie. Implementarea cu 74xx163. 1. Figura 3.67-a, starea final˘ a este Q3 Q2 Q1 Q0 = 1111 detectat˘ a prin semnalul RCO, semnal care genereaz˘ a semnalul de ˆınc˘ arcare sincron LOAD = RCO. Starea de ˆınceput

443

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Codul circuitului 74760/160 74162/163 4518/20 74190/191 74168/169 74668/669 74568/569 4510/16 74192/193 74876

Tip de numarator Comutare Resetare Inscriere activa in activa in Alte caracteristici (modulo, cod) (front) (CLEAR) (LOAD) BCD/4 biti, binar L, asincron L, sincron BCD/4 biti, binar L, asincron L, sincron Dual BCD/4 biti, binar sau H, asincron BCD/4 biti, binar L, asincron Reversibil, o singura intrare ceas BCD/4 biti, binar L, sincron Reversibil, o singura intrare ceas BCD/4 biti, binar L, sincron Varianta de ’168/169 imbunatatita BCD/4 biti, binar L,sinc/asinc L, sincron Ca si ’668/669 dar cu iesiri TSL BCD/4 biti, binar H, asincron H, asincron Reversibil, o singura intrare ceas BCD/4 biti, binar L, asincron H, asincron Reversibil, doua intrari de ceas sau L, asincron L, sincron 74869 are CLEAR sincron 8biti, reversibil

a) CLEAR− stergere continut(sincron) LOAD− incarcare continut (sincron) ENP, ENT − validare functionare Q3 , Q2, Q1, Q0 − iesire (de pondere), starea numaratorului D3, D2, D1, D0 − intrari pentru bitii cuvantului incarcat din exterior RCO − semnalizare stare Q3Q2Q1Q0=1111

CLEAR D3 D2 D1 D0 LOAD ENP 74 XX 163 RCO ENT CLK

Q3 Q2 Q1 Q0

b) CLEAR LOAD D0

Date prescrise D1 pe D2 intrari D3

CLK

1

2

3

4

5

6

7

8

9

10

11

ENP ENT Q0

Date generate Q1 pe Q 2 iesiri Q3

RCO

0

0

1

0

1

0

1

0

0

0

0

1

1

0

0

1

0

1

1

1

1

0

0

0

0

1

1

1

0

0

0

12

13

14

0

1

0 0

c)

Clear Load (resetare) (setare)

15

Numarare

2

Fara modificare (inhibare)

Figura 3.66 Num˘ ar˘ atoare sincron˘ a sub form˘ a de circuite MSI: a) caracteristicile num˘ ar˘ atoarelor uzuale; b) diagrama de semnale pentru num˘ ar˘ atorul 74xx163

˘ ATOR ˘ 3.4. CIRCUITE NUMAR

444

a ciclului 0100 = 4|10 se ˆınscrie la impulsul urm˘ ator dup˘ a cel care a comandat tranzit¸ia ˆın starea final˘ a, fRCO = 1/12 · fCLK . Num˘ ararea nu este ˆın cod binar natural, este, de fapt, un cod exces 4. 2. Figura 3.67-b, starea final˘ a este Q3 Q2 Q1 Q0 = 1011 = 11|10 , detectat˘ a de o poart˘ a NAND3, care genereaz˘ a semnalul CLEAR = 0. S ¸ tergerea este sincron˘ a cu semnalul de ceas, adic˘ a fort¸area st˘ arii de ˆınceput de ciclu Q3 Q2 Q1 Q0 = 0000 se ˆınscrie la impulsul urm˘ ator dup˘ a cel care a comandat tranzit¸ia ˆın starea final˘ a. Activarea semnalului CLEAR = 0 are frecvent¸a 1/12 · fCLK . Num˘ ararea este ˆın cod binar natural.

Implementarea cu 74xx161, care are ˆınc˘ arcare sincron˘ a dar ¸stergere asincron˘ a. Un num˘ ar˘ ator divizor modulo 12 se obt¸ine prin conexiuni similare ca ˆın Figura 3.67-a. Pentru un num˘ ar˘ ator ˆın cod binar natural, exist˘ a urm˘ atoarele 2 variante:

1. Figura 3.67-c, starea final˘ a 1100 = 12|10 se detecteaz˘ a cu o poart˘ a NAND2 care prin LOAD (sincron ), CLEAR (sincron) Q3Q2Q1Q0 RCO

0 1 0 0 "1"

"1" f CLK

CLEAR LOAD ENP

D3 D2 D1 D0 74xx163

ENT

RCO

CLK

Q3 Q2 Q1 Q0

a)

0100 0101 0110 0111 1000 1001 LOAD=0 1010 CLK 1011 12 1100 f CLK/12 1101 1110 1 1111

Q3Q2Q1Q0

"1" "1" f CLK

D3 D2 D1 D0

CLEAR LOAD ENP ENT

74xx163 RCO

CLK

Q3 Q2 Q1 Q0

1

CLEAR

0

1

b)

1

0000 0001 0010 0011 0100 0101 CLEAR =0 0110 CLK 0111 12 1000 1001 1010 1011

LOAD (sincron), CLEAR (asincron) Q3Q2Q1Q0

0 0 0 0 "1" "1" f CLK

CLEAR QN Q

c)

CLEAR LOAD ENP

D3 D2 D1 D0 74xx161

ENT CLK

RCO Q3 Q2 Q1 Q0

_ R

1 _ S

1

0 0

0000 0001 0010 0011 0100 0101 0110 CLEAR =0 CLK 0111 1000 12 1001 1010 1011 1100

Q3Q2Q1Q0

0 0 0 0 "1"

"1" f CLK

CLEAR LOAD ENP

D3 D2 D1 D0 74xx161

ENT CLK

RCO

LOAD=0

Q3 Q2 Q1 Q0

CLK

12 CLEAR

1 0

1

1

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011

d)

Figura 3.67 Num˘ ar˘ atoare modulo 12: a) num˘ ar˘ ator divizor modulo 12; b,c,d) num˘ ar˘ atoare modulo 12 ˆın cod binar natural

445

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

semnalul S, de scurt˘ a durat˘ a, ˆınscrie num˘ ar˘ atorul ˆın starea 0000. Deci pe perioada TCLK a impulsului care a comandat tranzit¸ia ˆın starea final˘ a exist˘ a dou˘ a stari, adica 1111 ¸si 0000; pentru ca ˆın aceast˘ a perioad˘ a starea a doua s˘ a fie 0000, ¸si nu o stare cu un alt cod, bucla ce se ˆınchide la intrarea asincron˘ a CLEAR este transformat˘ a ˆın bucl˘ a netransparent˘ a prin introducerea unui latch S R. La urm˘ atorul impuls de ceas se trece ˆın starea init¸ial˘ a 0001. Semnalul CLEAR = QN = 0 are frecvent¸a 1/12fCLK . 2. Figura 3.67-b, structura ¸si funct¸ionarea se face prin utilizarea intr˘ arii sincrone LOAD, similar ca ˆın Figura 3.67-b (unde se utilizeaz˘ a intrarea sincron˘ a CLEAR). Cu fiecare din aceste dou˘ a circuite se mai pot realiza multe variante de num˘ atoare modulo 12, dar nu cu num˘ arare ˆın cod binar natural, ˆın funct¸ie de alegerea st˘ arii finale; oricare din cele 16 st˘ ari poate fi fixat˘ a starea final˘ a.

Uneori este necesar ca pe baza unui num˘ ar˘ ator modulo C frecvent¸a f CLK s˘ a fie divizat˘ a cu un coeficient fract¸ionar C/k, 1 ≤ k ≤ C. Se poate structura un divizor C/k ¸stiind c˘ a valoarea oric˘ arui num˘ ar k exprimat ˆın binar se obt¸ine ca o sum˘ a ponderat˘ a a puterilor lui doi cu bit¸ii din cuvˆ antul binar ...b i ..b2 b1 b0 (k = · · · + bi 2i + · · · + b2 22 + b1 21 + b0 20 ). Dar, la un num˘ ar˘ ator modulo 2n , dup˘ a fiecare celul˘ a de rangul i, 0 ≤ i ≤ n − 1, se pot obtine impulsuri de ceas divizate cu 2 i+1 . Nu r˘ amˆ ane decˆ at s˘ a se genereze aceste impulsuri ¸si, apoi, s˘ a se selecteze acestea de la fiecare celul˘ a a num˘ ar˘ atorului conform valorilor (ponderilor) bitilor din cuvˆ antul de cod binar al num˘ arului k. Aceste ponderi apar evidente dac˘ a se consider˘ a c˘ a frecvent¸a rezultat˘ a fCLK : C/k se obt¸ine ca un produs k/C · fCLK ; astfel de circuite care realizeaz˘ a aceast˘ a relat¸ie sunt referite ca multiplicatoare cu coeficient binar. Exemplul 3.23 S˘a se structureze un circuit pentru multiplicarea fCLK cu coeficientul 5/16. Solut¸ie. Num˘ arul 5 exprimat ˆın binar cu patru biti este b3 b2 b1 b0 = 0101 iar exprimat ca parte a lui 16|10 = 10000 devine fract¸ia 0, b3 b2 b1 b0 = 0, 0101(5|16 = 0 · 2−1 + 1 · 2−2 + 0 · 2−3 + 1 · 2−4 ). ˆIn circuitul multiplicator cu coeficientul binar 0,0101 frecvent¸ele divizate prin puterile lui 2, obt¸inute dup˘ a celulele unui num˘ ar˘ ator modulo 24 , se pondereaz˘ a ˆın felul urm˘ ator: b3 · 2−1 · fCLK ;

b2 · 2−2 · fCLK ;

b1 · 2−3 · fCLK ;

b0 · 2−4 · fCLK .

Utilizˆ and un num˘ ar˘ ator sincron, paralel, modulo 16, Figura 3.68-a, se realizeaz˘ a cu port¸i AND, ˆın exteriorul acestuia, circuitele care genereaz˘ a frecvent¸e de ceas divizate dup˘ a puterile lui doi. Pe aceste port¸i AND se introduc coeficient¸ii binari b3 , b2 , b1 , b0 care pondereaz˘ a subfrecvent¸ele respective. Funct¸iile implementate pe fiecare poart˘ a AND sunt AN D4 : b0 · Q3 Q2 Q1 Q0 · fCLK AN D3 : b1 · Q2 Q1 Q0 · fCLK

AN D2 : b2 · Q1 Q0 · fCLK AN D1 : b3 · Q0 · fCLK

Apoi trenurile de impulsuri obt¸inute la ie¸sirile acestor port¸i AND sunt sumate printr-o poart˘ a OR. Port¸ile AND1 ¸si AND3 care sunt ponderate cu biti cu valoarea zero (b3 = 0, b1 = 0) au aport nul ˆın succesiunea impulsurilor de ie¸sire. Se obt¸ine astfel, Figura 3.68-b, 5 impulsuri pe ie¸sire pentru 16 impulsuri de ceas aplicate la intrarea num˘ ar˘ atorului deci o multiplicare cu 5/16. Succesiunea de 5 impulsuri nu este uniform˘ a, distant¸a ˆıntre impulsuri este de patru iar uneori de dou˘ a tacte de ceas. O distribut¸ie mult mai uniform˘ a se obt¸ine cˆ and se utilizeaz˘ a ie¸sirea de transport de la un circuit acumulator (vezi Figura 3.74-c). Pe lˆ ang˘ a ie¸sirea O n

˘ ATOR ˘ 3.4. CIRCUITE NUMAR

446 23

22

21

20 EN

RCO J Q Numarator sincron CLK paralel modulo16 Q K

AND 4

Q

AND 3

J

AND 2 b1 2−3 fCLK

J

Q

CLK Q K

CLK Q K

CLK Q K

b0 2−4 fCLK

On

J

Q

AND 1 b2 2−2f CLK

f CLK b3 =0 b 2 =1 b1 =0 b0 =1

b3 2−1f CLK On−1

a) CLK

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Q0 Q1 Q2 Q3 2−1 f CLK

1 2−2 f CLK

3

5

2

2−3 f CLK

7

9

11 10

6

15 (b 3=0)

13 14

(b 1=0)

12

4

2−4 f CLK

(b 0=1)

8

0 2−1 f CLK +1 2 −2 f CLK +0 2 −3 f CLK +1 2 −4 f CLK

On

b)

2

6

8

10

9 7 4 5/16 f CLK produs de un circuit acumulator

(b 2=1)

14 13

16

Figura 3.68 Multiplicatorul cu coeficient binar: a) organizarea circuitului; b) diagrama de semnale generate pentru multiplicarea 5/16 · f CLK .

exist˘ a ¸si o intrare On−1 pentru ca multiplicatorul cu coeficient binar s˘ a poat˘ a fi ˆınseriat cu alte circuite de acela¸si tip (pentru a cre¸ste valoarea modulo).

Automate pe baz˘ a de num˘ ar˘ ator Num˘ ar˘ atorul sincron ˆınsu¸si este un automat de tip Moore, bit¸ii de ie¸sire sunt identici cu bit¸ii de stare, Y ≡ Q (dac˘ a nu se consider˘ a ¸si ie¸sirea CO); deci automatul este identic cu semiautomatul s˘ au. Num˘ ar˘ atoarele presetabile sunt automate particularizate prin modul de asignare a st˘ arilor: codificarea este ˆın cod binar natural pˆ an˘ a la codul num˘ arului 2 n − 1 sau pˆ an˘ a la 9 (la cele BCD). Ideea simplificatoare, ˆın realizarea unui automat, sugereaz˘ a ca asignarea st˘ arilor cu tranzit¸ii succesive ale automatului s˘ a se fac˘ a ˆın codul binar natural, iar atunci pentru implementarea semiautomatului corespunz˘ ator automatului s˘ a fie utilizat un circuit integrat num˘ ar˘ ator presetabil. Pentru cazurile cˆ and ˆın

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

447

graful de tranzit¸ie a automatului exist˘ a tranzit¸ie ˆıntr-o stare cu un cod care nu este ˆın ordinea de num˘ arare (dup˘ a un bloc de decizie cˆ and sunt dou˘ a c˘ ai de tranzit¸ie) acel cod trebuie fort¸at prin num˘ ar˘ atorul presetabil. Pentru o tranzit¸ie ˆın afara or,, dinii de num˘ arare, num˘ ar˘ atorului trebuie s˘ a i se “livreze dou˘ a informat¸ii: codul st˘ arii urm˘ atoare ce trebuie ˆınscris precum ¸si semnalul de comand˘ a al ˆınc˘ arc˘ arii. ˆIn consecint¸a˘, pe baza produsului cartezian intrare-stare, X(t)×Q(t), trebuie implementate dou˘ a circuite combinat¸ionale, din care unul calculeaz˘ a codul st˘ arii urm˘ atoare, iar cel˘ alalt determin˘ a activarea semnalului de ˆınc˘ arcare, care vor ˆınchide dou˘ a bucle ˆın jurul num˘ ar˘ atorului presetabil, Figura 3.69. x(t)

LOAD

CLC2

CLC1 q+(t) Dn−1 D0 LOAD CLEAR Numarator prestabil ENABLE Qn−1 Q0

CLK

q(t)

Figura 3.69 Organizarea de principiu a unui semiautomat pe baz˘ a de num˘ ar˘ ator presetabil.

Prima bucl˘ a, ˆınchis˘ a prin CLC2, determin˘ a valoarea pe intrarea LOAD pentru comanda de ˆınscriere. Recomandat pentru implementarea CLC2 este circuitul multiplexor pentru c˘ a trebuie s˘ a genereze o singur˘ a ie¸sire (LOAD = 0 pentru ˆınscriere, LOAD = 1 pentru ordinea natural˘ a de num˘ arare) pe baza codului st˘ arii ˆın care se afl˘ a semiautomatul, iar bit¸ii cuvˆ antului de cod ai st˘ arii prezente q(t) se folosesc ca biti de selectie pentru multiplexor. ˆIn plus intr˘ arilor multiplexorului, care prin selectare devin semnalul LOAD, pot s˘ a li se atribuie ˆın afar˘ a de constantele 1 sau 0 ¸si valorile unei variabile de intrare. Determinarea valorii semnalului LOAD, ˆın funct¸ie rezultatul test˘ arii unei variabile ˆıntr-un bloc de decizie, se realizeaz˘ a prin conectarea variabilei testate ˆıntr-o anumit˘ a stare pe intrarea multiplexorului selectat˘ a de cuvˆ antul de cod al acestei stare. A doua bucl˘ a, inclus˘ a prin CLC1, calculeaz˘ a bit¸ii de cod w n−1 , wn−2 , ..., w1 , w0 ai st˘ arii urm˘ atoare, ˆın cazul cˆ and nu este starea urm˘ atoare q + (t) ˆın ordinea normal˘ a de num˘ arare. Pentru CLC1 recomandarea este o implementare cu port¸i. Justificarea acestei recomand˘ ari se bazeaz˘ a pe faptul c˘ a prin asignarea aleas˘ a, pentru st˘ arile semiautomatului, majoritatea tranzit¸iilor se efectueaz˘ a ˆıntre st˘ ari care au coduri succesive ˆın ordinea normal˘ a de num˘ arare, deci exist˘ a put¸ine tranzit¸ii ˆıntre coduri care

˘ ATOR ˘ 3.4. CIRCUITE NUMAR

448

stric˘ a aceast˘ a ordine normal˘ a. ˆIn consecint¸a˘, pentru multe cuvinte de cod ale st˘ arii prezente q(t) bit¸ii st˘ arii urm˘ atoare q + (t), calculat¸i pe CLC1, sunt indiferent¸i pentru prescrierea num˘ ar˘ atorului. Existent¸a multor combinat¸ii de intrare pentru care ie¸sirile de la CLC1 sunt indiferente duce la o minimizare puternic˘ a, deci la o implementare simpl˘ a cu port¸i. Exemplul 3.24 Pentru semiautomatul descris prin organigrama ASM ¸si asignarea fixat˘ a, din Figura 3.70, s˘ a se realizeze o implementare. Solut¸ie. Se observ˘ a c˘ a pentru aceast˘ a variant˘ a (Varianta1) de asignare a st˘ arilor, cˆ and variabilele de intrare au valorile x1 = 1, x2 = 0, x3 = 1, se parcurg ciclic st˘ arile q2 → q3 → q4 → q5 → q6 → q0 → q1 → q2 → ..., iar codurile parcurse sunt ˆın ordinea de num˘ arare ˆın binar natural de la 000 pˆ an˘ a la 110; exist˘ a un salt ˆın cuvˆ antul de cod de la 110 la 000 pentru calea de tranzit¸ie L2 (q1 → q2 ). Mai exist˘ a ˆınc˘ a trei c˘ ai de tranzit¸ie L4 , L7 ¸si L9 cˆ and iar˘ a¸si tranzit¸iile nu sunt ˆın ordinea normal˘ a de num˘ arare. Deoarece din cele 10 c˘ ai de tranzit¸ie pentru 6 dintre acestea se parcurg coduri succesive de num˘ arare ˆın binar se va utiliza pentru implementare circuitul num˘ ar˘ ator 74xx163/161. Tabelul de tranzit¸ie al st˘ arilor, Figura 3.70-b, cont¸ine informat¸ia pentru sinteza celor dou˘ a bucle ale semiautomatului. Deoarece sunt numai 7 st˘ ari intrarea D3 a num˘ ar˘ atorului este permanent ˆın 0. ˆIn coloana semnalului de ˆınc˘ arcare LOAD se introduce valoarea 0(activ) numai atunci cˆ and codul st˘ arii urm˘ atoare w2 , w1 , w1 nu se obt¸ine din codul st˘ arii prezente z2 z1 z0 plus 1, ˆın rest LOAD=1(inactiv). Pentru sinteza semnalului LOAD intr˘ arile x3 , x2 , x1 se introduc ca variabile reziduu. Bucla pentru ˆınc˘ arcarea num˘ ar˘ atorului este implementat˘ a pe un MUX8:1. Pentru sinteza circuitului combinat¸ional din bucla ce calculeaz˘ a bit¸ii D2 , D1 , D0 valorile acestor bit¸i sunt identice cu cele ale bit¸ilor st˘ arii urm˘ atoare D2 = w2 , D1 = w1 , D0 = w0 cˆ and semnalul de ˆınc˘ arcare este activ, LOAD = 0, ¸si cu valori indiferent cˆ and LOAD = 1. ˆIn expresiile bit¸ilor D2 , D1 ¸si D0 se pot introduce intr˘ arile x3 , x2 , x1 ca variabile reziduu rezultˆ and o sintez˘ a ˆın funct¸ie numai de variabilele de stare z2 , z1 , z0 . Dar aceste variabile reziduu pot fi substituite cu una din valorile logice 0 sau 1 deoarece, la fiecare testare a unei variabile reziduu, numai una din cele dou˘ a tranzit¸ii posibile determin˘ a ˆınc˘ arcarea num˘ ar˘ atorului, pentru cealalt˘ a valoare este indiferent (LOAD = 1). De exemplu, din starea prezent˘ a q5 (011) se efectueaz˘ a tranzit¸ia fie la q5 , cˆ and x2 =1, fie la q6 (100), cˆ and x2 =0, dar ultima tranzit¸ie este indiferent˘ a pentru ˆınc˘ arcarea num˘ ar˘ atorului (LOAD=1). Rezult˘ a c˘ a ˆın c˘ asut¸a de coordonate z2 z1 z0 =011(q5 ) din diagramele V-K ale funct¸iilor D2 , D1 , D0 totdeauna se introduc respectiv valorile 0,1,1, Figura 3.70-d (nu exist˘ a dou˘ a valori diferite Di care s˘ a fie determinate de cele dou˘ a valori ale lui x2 ). Din aceste diagrame V-K se deduc expresiile logice (pentru Varianta1): D2 = z 2 z 1 = z 1 + z 2 ;

D1 = z 2 ;

D 0 = z 2 z1 + z 2 z1 = z 2 ⊕ z 1

iar structura rezultat˘ a de semiautomat este cea din Figura 3.70-c. Se mai propun ˆınc˘ a dou˘ a variante de asignare a st˘ arilor semiautomatului, ca ˆın coloanele denumite Varianta2 ¸si Varianta3 din tabelul ASM, pentru a face o comparat¸ie cu implementarea dup˘ a Varianta1. Pentru Varianta2 ¸si 3 nu se mai face sinteza buclei pentru deterand se utilizeaz˘ a un circuit minarea comenzii LOAD deoarece o optimizare nu poate apare cˆ standard(MUX8:1). ˆIn schimb, pentru bucla ce calculeaz˘ a codul st˘ arii urm˘ atoare, pentru a c˘ arei sintez˘ a conteaz˘ a num˘ arul de st˘ ari indiferente din diagrama V-K, este normal a se determina care asignare este mai potrivit˘ a. Urmˆ and aceea¸si procedur˘ a de sintez˘ a, ca ¸si la Varianta1, se obt¸in V arianta2 : V arianta3 :

D2 = z 1 z 0 = (z1 + z0 ); D2 = z1 (z 2 + x1 );

D1 = z0 ; D1 = z2 + z0 ;

D0 = 0 D0 = z 1 + x 3 z 2

449

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Varianta1 de asignare Calea de tranz

Starea prezenta

Intrari

x 3 x 2 x 1 Simb z 2 z 1

q0 L1 q1 L2 q2 L3 1 q3 L4 L5 0 q3 q4 L6 L7 q5 1 q5 0 L8 q6 L9 0 L10 1 q6

b)

q0

L10

q1 q2 q3

L1 L2 L3

L4 L 5 q4

1

0

a)

1 0 0 1 1 0 1 1 0 0

q1 q2 q3 q1 q4 q5 q5 q6 q3 q0

1 0 0 1 0 0 0 1 0 1

1 0 0 1 1 1 1 0 0 0

0 0 1 0 0 1 1 0 1 1

1 0 1 0 1 1 0 1 0 1

0 0 0 x1

1 1 0

_ 0 1 1 x2 x3

0 0 1

110

x1

000

x2 x3

000 001 010 011 100

MUX 8:1 y

D1

CLEAR

74xx163 100

Q3 Q2 Q1 Q0

z2 z1 z0 1

c)

ENP ENT CLK

0

0

__ D2 = z 2z 1

1 1

0

"1" "1"

q(t)

1 0

00 01 11 10

1

CLK

0 1 1 1 1 0 0 0 0 0

z 1z 0

q+(t) LOAD

D0

1 1 0 0 1 0 0 1 0 0

00 01 11 10

0

z2 w2 w 1 w 0

1 0 1 0 1 0 0 0 1 1

Starea prezenta urmatoare z 2 z 1 z 0 w2 w1 w0

Varianta1 z 1z 0

110 111 S 2 S 1 S 0

D3 D2

1 0 0 0 0 1 1 1 0 1

0 0 1 0 0 1 0 0 1 1

101

011

x3

1 0 0 1 1 1 0 0 0 0

1

010

x2

1 0 0 0 0 0 1 1 1 1

z2

x1

Varianta3

Starea prezenta urmatoare z 2 z 1 z 0 w2 w1 w0

101

001

L6

L7 L 8 q6 L9

0 1 0 0 0 1 1 1 0 0

+5V

0

q5

1 1 0 0 0 0 0 0 1 1

Varianta2

Starea Intrari urmatoare numarator LOAD z 0 Simb w2 w1 w0 D2 D1 D0

0

_ D1 = z 2

00 01 11 10

0 1

0

0 _ _ D0 = z 2z 1+ z 2z 1

1

d)

1

z2

1 0 1 0 0 0 1 1 0 0

1 1 1 1 0 0 0 0 1 0

0 0 1 0 0 0 0 1 1 1

0 1 0 0 0 1 1 0 0 1

Varianta3 z 1z 0

00 01 11 10

0

1 _ x1 _ _ D2 = z 1(z 2+ x1) 0

1

z 1z 0

z2

0

z 1z 0

z2

1 0 0 1 1 0 0 0 1 1

00 01 11 10

1

z2

0

0

1

_ _ D1 = z 2z 0

0

z 1z 0

00 01 11 10

1

0 1

x3

0 _ _ D0 = z 1+ x 3z 2

e)

Figura 3.70 Exemplu de semiautomat implementat pe baza num˘ ar˘ atorului 74xx163: a) organigrama ASM; b) tabelul combinat ASM; c) structura semiautomatului pentru Varianta1 de codificare; b,c) sinteza buclei pentru calculul st˘ arii urm˘ atoare corespunz˘ ator Varianta1 ¸si Varianta3 de codificare.

˘ ATOR ˘ 3.4. CIRCUITE NUMAR

450

Se poate observa c˘ a Varianta2, ˆın raport cu celelalte dou˘ a, realizeaz˘ a o implementare mai simpl˘ a pentru bucla ce calculeaz˘ a starea urm˘ atoare (utilizeaz˘ a o singur˘ a poart˘ a NOR2). Varianta3 este cea mai put¸in simpl˘ a, deoarece ˆın expresiile care calculeaz˘ a starea urm˘ atoare intervin ¸si variabilele de intrare; nici una din tranzit¸iile controlate de x1 ¸si x3 nu sunt spre st˘ ari ale c˘ aror coduri s˘ a se obt¸in˘ a prin num˘ arare.

3.4.2.2

Num˘ ar˘ atoare ˆın cod arbitrar

Un circuit num˘ ar˘ ator modulo C este un automat Moore cu un graf ciclic, deci poate fi privit ca un identificator de clase de resturi modulo C. Asignarea st˘ arilor se face, ˆın general, ˆın cod binar natural — datorit˘ a faptului c˘ a ˆın procesarea digital˘ a ˆın calculator numerele sunt reprezentate ˆın sistemul de numerat¸ie binar — rezultˆ and num˘ ar˘ atorul binar sau ˆın cod BCD-datorit˘ a faptului c˘ a ˆın exteriorul calculatorului numerele sunt reprezentate ˆın sistemul de numerat¸ie zecimal — rezultˆ and num˘ ar˘ atorul BCD. Dar, asignarea st˘ arilor automatului num˘ ar˘ ator, Figura 3.61, se poate realiza ˆın oricare cod, rezultˆ and num˘ ar˘ atorul ˆın cod oarecare. Sinteza unui num˘ ar˘ ator ˆın cod oarecare nu difer˘ a cu nimic de sinteza unui automat. ˆIn anumite aplicat¸ii(evitarea aparit¸iei glitch-ului prin decodificare, utilizarea direct˘ a f˘ ar˘ a decodificator, o anumit˘ a secvent¸a˘ parcurs˘ a) se justific˘ a alegerea unui anumit cod. Exemplul 3.25 S˘a se realizeze, pe trei celule bistabil JK, un num˘ar˘ator ˆın cod Gray. Solut¸ie. Codurile progresive au proprietatea c˘ a la trecerea ˆıntre dou˘ a cuvinte de cod succesive se va schimba doar un singur bit. Pentru cele 16 cuvinte pe patru bit¸i se pot forma un num˘ ar de 55 de coduri progresive distincte, dintre acestea cel mai utilizat este codul binar reflectat(ˆın raport cu o linie dus˘ a dup˘ a 2i cuvinte de cod, cuvintele de cod de (i + 1) bit¸i de dup˘ a linie sunt imaginea ˆın oglind˘ a a cuvintelor de cod de (i + 1) bit¸i dinainte de linie) este codul Gray. Pornind de la tabelul de tranzit¸ie al st˘ arilor codificate ˆın cod Gray, Figura 3.71-a, se deduc diagramele de V-K pentru bit¸ii st˘ arii urm˘ atoare w2 , w1 , w0 , apoi acestea pe baza tabelului de excitat¸ie al bistabilului JK, Tabelul 3.4, se convertesc ˆın diagramele V-K, Figura 3.71-b,c ¸si d ale funct¸iilor de excitat¸ie JQ2 , KQ2 ; JQ1 , KQ1 ; JQ0 , KQ0 avˆ and urm˘ atoarele expresii logice cu implementarea din Figura 3.71-e: JQ0 = z1 z0 KQ0 = z1 z0

JQ1 = z2 z0 KQ1 = z2 z0

JQ0 = z2 z1 + z2 z1 KQ0 = z2 z1 + z2 z1

Sinteza num˘ ar˘ atoarelor ˆın alte coduri de num˘ arare se face ˆın aceea¸si modalitate.

Dar exist˘ a ¸si o alt˘ a abordare a unui num˘ ar˘ ator modulo C ˆıntr-un cod oarecare, prin utilizarea unui num˘ ar˘ ator modulo C ˆıntr-un cod uzual (realizat cu un circuit num˘ ar˘ ator presetabil) c˘ aruia i se ata¸seaz˘ a un circuit de ie¸sire, CLC2 din Figura 3.8-c, care realizeaz˘ a funct¸ia de convertor din codul uzual folosit ˆın codul oarecare. ˆIn Figura 3.71-f este structurat˘ a un num˘ ar˘ ator ˆın cod Gray pe baza unui num˘ ar˘ ator modulo 256, ˆın cod binar natural, plus o memorie ROM care cont¸ine tabelul de conversie binar-Gray. Aceast˘ a abordare, ˆın raport cu cea anterioar˘ a, are o vitez˘ a de num˘ arare mai redus˘ a, dar ˆın schimb, prezint˘ a o mai mare flexibilitate, poate fi implementat un num˘ ar˘ ator ˆın orice cod numai prin schimbarea tabelului de conversie din ROM.

451

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Starea prezenta urmatoare z2 z1 z0 w 2 w 1 w 0 0 0 0 0 1 1 1 1

0 0 1 1 1 1 0 0

0 1 1 0 0 1 1 0

0 0 0 1 1 1 1 0

0 1 1 1 1 0 0 0

1 1 0 0 1 1 0 0

a) z 1z 0 z2 00

w2 01

11

10

z2

z1

Q

J

Q

Q2 CLK QN K

z0

J

Q

Q1 CLK QN K

J

Q0 CLK QN K CLK

e) z 1z 0 z2 00

w1 01

11

10

z 1z 0 z2 00

w0 01

11

10

0

0

0

0

1

0

0

1

1

1

0

1

1

0

0

1

0

1

1

1

1

0

0

0

1

1

0

0

1

1

01

JQ 2 11

10

01

JQ1 11

10

01

JQ0 11

10

0

0

1

z 1z 0 z2 00 0

0

z 1z 0 z2 00

1 z 1z 0 z2 00

01

KQ2 11

10

1

1

0

0

0

0

1

0

1

0

1

0

0

1

0

1

z 1z 0 z2 00

0 0

KQ1 11

10

0

0

0

1

1

0

b)

CLK

f)

z 1z 0 z2 00

01

z 1z 0 z2 00

01

KQ 0 11

0

0

1

1

1

0

c) Q7 Q 6 Q 5 Q 4 in cod Q 3 binar natural Q 2 Q 1 Q0

Numarator modulo 256

10

d) A7 D7 D6 A6 D5 A5 D4 A 4 ROM A 3256 X 8biti D3 A2 D2 A1 D1 D0 A0

Cuvant in cod Gray

Figura 3.71 Num˘ ar˘ ator ˆın cod Gray: a,b,c,d,e) fazele ˆın procesul de sintez˘ a, pornind de la tabelul de tranzit¸ie al st˘ arilor pˆ an˘ a la structura de circuit num˘ ar˘ ator; f) structurarea pe baz˘ a de circuit num˘ ar˘ ator binar modulo 256 plus convertor binarGray ˆınscris ˆın memorie ROM.

452

3.5

3.5. CIRCUITE REGISTRU

CIRCUITE REGISTRU

La nivel de bit suportul fizic pentru stocare/memorare, sincronizare, cuplare ¸si izolare este circuitul bistabil. La nivel de cuvˆ ant, definit ca o succesiune de n bit¸i, suportul fizic pentru funct¸iile de: stocare/memorare, cuplare,sincronizare ¸si izolare/separare este un circuit compus din n circuite bistabil referit ca circuit registru sau, uzual, registru. Odat˘ a ˆınscris˘ a informat¸ia de un bit ˆıntr-un bistabil aceasta este disponibil˘ a a fi citit˘ a; la fel ¸si la un registru, cuvˆ antul ˆınscris poate fi citit ˆın continuare. ˆIntr-o exprimare proprie sistemelor de procesare a informat¸iei, unde informat¸ia este ˆımpachetat˘ a sub form˘ a de cuvinte, un registru este referit prin termenul general de port. ˆIn aceast˘ a exprimare intr˘ arile de date, prin care se ˆınscrie o informat¸ie/cuvˆ ant ˆıntr-un registru, constituie un port de intrare, iar ie¸sirile de date din registru constituie un port de ie¸sire. ˆIn funct¸ie de modul cum se realizeaz˘ a conexiunile pentru extensia de la circuitul bistabil la organizarea de circuit registru exist˘ a: registru paralel, registru serie ¸si combinat¸ii ˆıntre acestea serie-paralel ¸si paralel-serie. Dar, pentru toate tipurile de registru, exist˘ a un parametru comun lungimea registrului, adic˘ a num˘ arul de celule bistabil care ˆıl compun. Circuitul registru, ca suport fizic pentru funct¸iile enumerate mai sus, constituie o component˘ a fundamental˘ a ˆın arhitectura ¸si implementarea sistemelor digitale. Registrul este un circuit simplu, ca definit¸ie, ¸si cu o dimensiune de ordinul O(n). Dar fiind, ˆın fond, o structurare ordonat˘ a de circuite bistabil, ˆın consecint¸a˘, supus unei regularit˘ a¸ti de layout, rezult˘ a c˘ a implementarea sa nu ridic˘ a dificult˘ a¸ti. ˆIn sect¸iunile urm˘ atoare se vor prezenta tipurile de circuite registru evident¸iind logica structur˘ arii acestora, precum ¸si unele aplicat¸ii care au un grad ridicat de generalitate.

3.5.1

Registru paralel

Registrul paralel are o structurare simpl˘ a obt¸inut˘ a doar prin considerarea ˆın paralel a n celule bistabil, uzual de tip D; ˆın afar˘ a de semnalul de ceas comun pentru toate celulele poate s˘ a nu existe nici o alt˘ a conexiune ˆıntre celulele bistabil, Figura 3.72-a. Cuvˆ antul pentru ˆınscriere/(ˆınc˘ arcare) se aplic˘ a pe intr˘ arile de date Dn−1 , Dn−2 , ..., D1 , D0 — portul pe intrare — ¸si odat˘ a ˆınc˘ arcat, prin aplicarea semnalului de ceas, cuvˆ antul este accesibil permanent pe ie¸siri Q n−1 , Qn−2 , ..., Q1 , Q0 — portul de ie¸sire — dac˘ a aceste ie¸siri nu sunt de tip TSL. ˆIn general, registrul poate genera atˆ at variabile negate, QN , cˆ at ¸si cele nenegate, Q. Aceasta explic˘ a de ce la implementarea unei funct¸ii FNC sau FND, pe un circuit combinat¸ional, se consider˘ a numai dou˘ a niveluri logice ¸si nu trei de¸si sunt utilizate atˆ at variabile negate cˆ at ¸si nenegate. Al treilea nivel pentru negarea unor variabile, situate la intrarea ˆın circuit, nu este necesar deoarece atˆ at variabilele negate cˆ at ¸si cele nenegate sunt obtenabile de la registrul ˆın care s-a stocat cuvˆ atul de intrare. Pentru a spori flexibilitatea ˆın utilizare, a structur˘ arii simple prezentate anterior, registrului i se adaug˘ a anumite semnale de control, specificate pe schema bloc de registru reprezentat˘ a ˆın Figura 3.72-b. ˆIn primul rˆ and, un registru trebuie s˘ a prezinte obligatoriu un semnal de ˆınc˘ arcare, LOAD (LD), care ˆın general este semanlul de ceas, activ pe front (sau pe palier dac˘ a registrul este realizat cu latch-uri). Uneori, pentru ˆınscriere, ˆın conjuct¸ie cu semnalul LOAD, mai trebuie activat ¸si un semnal de

453

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Dn−1

Date de intrare D1

Date de intrare

D0 CLK

CLK QN

D D n−1 Q

CLK QN

Qn−1

a)

D D1 Q

CLK QN

Q1

Incarcare LD

(LOAD)

D D0 Q

Stergere

Q0

b)

Date de iesire 2Dn−1 1Dn−1

2D0

DIN

EN

CLEAR DOUT OE

Validare intrare Validare iesire

Date de iesire

1D0

(Selectare intrare) S1 = 0 0 1 1 S0 = 0 1 0 1 D = Qi 1Di 2Di0Di

i 0 < i < n−1

MUX4:1

Q

CLK QN

LOAD (CLK) D

Q0

Q

CLEAR

QN

D

CLEAR

CLK

MUX4:1

CLEAR

(Stergere) OE

(Validare iesire)

c) 0D n−1 /Qn−1

0D0 /Q0

Figura 3.72 Registrul paralel: a) structur˘ a (cu n celule statice); b) reprezentare simbolic˘ a; structur˘ a de registru cu n celule ˆın care se evident¸iaz˘ a modul de aplicare a semnalelor de control.

validare, ENable. Pentru facilitatea de ¸stergere a cont¸inutului registrului, ˆın afar˘ a de ˆınscrierea cu zero, poate exista un semnal de ¸stergere, CLEAR, care de fapt este o activare comun˘ a a tuturor intr˘ arilor asincrone CLEAR ale celulelor bistabil. De asemenea, pentru a se putea realiza conectarea mai multor registre, la liniile acelea¸si magistrale, ie¸sirile acestora sunt de tip TSL, deci trebuie s˘ a existe o validare a ie¸sirii OE (Output Enable). Toate aceste semnale de control, deoarece se aplic˘ a la n celule, trebuie bufferate la intrarea ˆın circuitul registru (pentru ca semnalele ˆın exterior sunt fie comandate doar ca o singur˘ a unitate de sarcin˘ a de ˆınc˘ arcare). ˆIn Figura 3.71-c pe structura unui registru paralel de n bit¸i sunt ad˘ augate semanlele de control. Semnalul de ˆınc˘ arcare, LOAD, este semnalul de ceas, iar semnalul de ¸stergere este semnalul asincron CLEAR. Activarea semnalului validare ie¸sire, OE = 0, va comanda trecerea bufferului de ie¸sire TSL din starea de ˆınalt˘ a impedant¸a˘ ˆın starea normal˘ a de funct¸ionare, deci ie¸sirea (la magistral˘ a) este cuvˆ antul ˆınscris ˆın registru Qn−1 , Qn−2 , ..., Qi , ..., Q1 , Q0 . Cˆ and OE = 1, bufferul TSL nu este activat, la ie¸sirea registrului la magistral˘ a

454

3.5. CIRCUITE REGISTRU

este cuvˆ antul existent pe magistral˘ a ODn−1 ODn−2 . . . ODi . . . OD1 OD0 . Intrarea de date D a fiec˘ arei celule bistabil Di , 0 ≤ i ≤ n − 1, este conectat˘ a, printr-un MUX4:1, ˆın funct¸ie de cuvˆ antul de selectare EN=S1 S2 la una din urm˘ atoarele patru surse de date: 1. pentru EN = 00, Di = Qi , la fiecare impuls de ceas bistabilul se reˆıncarc˘ a cu valoarea deja ˆınscris˘ a; 2. pentru EN = 01, Di = 1Di , la fiecare impuls de ceas bistabilul se ˆıncarc˘ a cu valoarea 1Di de la sursa 1; 3. pentru EN = 10, Di = 2Di la fiecare impuls de ceas bistabilul se ˆıncarc˘ a cu valoarea 2Di de la sursa 2; 4. pentru EN = 11 ¸si OE = 1 Di = 0Di , la fiecare impuls de ceas bistabilul se ˆıncarc˘ a cu valoarea ODi existent˘ a la ie¸sirea pe magistral˘ a. Evident, c˘ a prin relat¸ia S1 · S2 · OE = 0 bufferul TSL este ˆın starea de ˆınalt˘ a impedant¸a˘, deci ie¸sirea Q a bistabilului nu se aplic˘ a la ie¸sire pe magistral˘ a; ˆIn tehnologie MOS ¸si CMOS, uzual, registrele se realizeaz˘ a cu celule dinamice; astfel se obt¸ine consum redus de putere ¸si densitate de integrare m˘ arit˘ a. Structuri dinamice de latch D ¸si bistabil D sunt prezentate respectiv ˆın Figurile 3.40-b ¸si 3.45-b. Magistrala operand 1

n

Magistrala operand 2

n PORT 1

n

nxMUX 2 2k −1 2k −2

PORT 2

k :1

S 1 0

Banca de 2 k registre 2k−1

CLK D

2k−2

CLK

k

D

DCD Selectare k:2 k registru 1

CLK D

0

CLK D

LOAD (Incarcare registru)

n

Registrul 2

k

−1

Registrul 2

k

−2

n

nxMUX 2 k −1 2k −1 2k −2

S 1 0

READ1

k

(citire Port 1) READ2

k

(citire Port 2)

Registrul 1 Registrul 0

n biti

Magistrala rezultat

n

Figura 3.73 Organizarea unei b˘ anci de 2k registre cu lungime de cuvˆ ant de n bit¸i, dublu port pe ie¸sire (cu evident¸ierea decodific˘ arii pe intrare, pentru ˆınscriere, ¸si select˘ arii pe ie¸sire, pentru citire)

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

455

Pentru m˘ arirea capacit˘ a¸tii de stocare, la mai mult de un cuvˆ ant, un num˘ ar 2 k k registre sunt grupate formˆ and o banc˘ a de registre; fiecare din cele 2 registre putˆ and fi selectat atˆ at pentru ˆınscriere cˆ at ¸si pentru citire. ˆIn Figura 3.73 este structurat˘ a o banc˘ a de 2k registre, fiecare dintre registre avˆ and lungimea de n bit¸i, capacitatea total˘ a total˘ a este (2k · n). Cuvˆ antul de n bit¸i de pe magistrala rezultat se va ˆınscrie ˆın acel registru pentru care semnalul de ceas devine activ, semnal format prin conjunct¸ia ˆıntre semnalul de ˆınc˘ arcare LOAD ¸si ie¸sirea de la DCDk:2k , selectat˘ a prin cuvˆ antul Selectare registru. Banca de registre este dublu port pentru a putea fi citite simultan dou˘ a registre, adic˘ a pe fiecare din cele dou˘ a magistrale 1 ¸si 2 se aplic˘ a cont¸inutul unui registru. Un grup de n×MUX2k :1, prin care este selectat unul din cele 2k registre ca port de ie¸sire (conectare la magistral˘ a), are organizarea similar˘ a ca ˆın Figura 2.36 (acolo este o notat¸ie inversat˘ a, un grup de 2n registre fiecare cu lungimea de k bit¸i).Aceast˘ a detaliere, a modului de operare asupra unei b˘ anci de registre, completeaz˘ a descrierea c˘ aii de date prezentat˘ a ˆın Figura 2.73.

3.5.2

Circuitul acumulator

Se obt¸ine o structur˘ a hibrid˘ a printr-o jonct¸ionare a celulelor bistabil ale unui P registru paralel cu lungimea de n bit¸i cu celulele sumator complet (3, 2) ale unui sumator modulo 2n cu transport succesiv, Figura 3.74-a. Pe celula sumator complet cu ponderea 2i , 0 ≤ i ≤ n − 1, a sumatorului se va suma: bitul xi al cuvˆ antului X = xn−1 xn−2 . . . xi . . . x1 x0 , aplicat din exterior; bitul Qi ˆınscris ˆın celula i a registrului ¸si bitul de transport Ci−1 , de la celula sumator complet anterioar˘ a. Aceast˘ a celul˘ a sumator complet, de pondere 2i , va genera bitul sum˘ a si = Ci−1 ⊕ Qi ⊕ xi ¸si bitul transport urm˘ ator Ci = Qi ·xi +Qi ·Ci−1 +xi ·Ci−1 , care se aplic˘ a la celula sumator complet de rang i + 1, ca bit de transport anterior; iar la aplicarea urm˘ atorului impuls de ceas (t+1) bitul sum˘ a calculat si (t) se ˆınscrie ˆın celula i a registrului, deci Qi (t + 1) = si (t). Extinzˆ and la lungimea de n bit¸i, la impusul de ceas (t+1) ˆın registru se ˆınscrie suma aritmetic˘ a modulo 2 rezultat˘ a ˆıntre: cont¸inutul anterior din registru, Q(t) = Q( n − 1)(t)Qn−2 (t)...Qi (t), ..., Q1 (t)Q0 (t); cuvˆ atul aplicat din exterior, X(t) = xn−1 (t)xn−2 (t), ..., xi (t), ..., x1 (t)x0 (t) ¸si transporturile anterioare Cn−2 (t), Cn−3 (t), ..., Ci−1 (t), ..., C1 (t), C0 (t), C−1 (t). ˆIn cazul ˆın care valoarea init¸ial˘ a a cuvˆ antului ˆın registru este zero Q(0) = 0, transportul anterior C−1 = 0, iar cuvˆ antul extern X este constant ˆın timp, ˆın registru rezult˘ a o sumare repetat˘ a a cuvˆ antului extern, dup˘ a k impulsuri de tact se obt¸ine valoarea kX modulo 2n . Apare evident faptul c˘ a circuitul acumulator este P un automat, la care partea combinat¸ional˘ a este format˘ a din celule sumator (3, 2), de aceea, uneori, cuvˆ antul de ie¸sire va fi notat ca un cuvˆ an de stare cu z 3 z2 z1 z0 . Bazat pe aceast˘ a funct¸ionare, de sumare repetat˘ a modulo2 n , circuitul acumulator poate fi utilizat pentru modelarea funct¸ion˘ arii num˘ ar˘ atorului sincron modulo2 n direct sau invers ˆın oricare cod. De exemplu, pentru acumulatorul cu trei celule, n=3, pornind din starea init¸ial˘ a Q(0) = Q2 Q1 Q0 = 000 ¸si C−1 = 0, cu un cuvˆ ant aplicat din exterior X = 001, se obt¸ine o succesiune de num˘ arare ˆın sens direct, coloana a doua din Figura 3.74-c, corespunz˘ atoare num˘ ar˘ atorului sincron modulo 8 ˆın cod binar natural. Modificarea funct¸ion˘ arii de num˘ ar˘ ator sincron modulo 8, ˆın sens invers, ˆın cod binar natural, se obt¸ine pornind din starea init¸ial˘ a Q(0) = 0 cu X = x 2 x1 x0 = 111

456

3.5. CIRCUITE REGISTRU

z3

z2

z1 Q D CLK QN

Q D CLK QN

Q D CLK QN

Q D CLK QN

CLEAR

CLEAR

CLEAR

z0 z3

a)

Σ(3,2)

Σ(3,2)

Σ(3,2)

Σ(3,2)

x3

x2

x1

x0

Nr de Starea initiala Starea initiala Nr impuls z 2z 1z 0=000 z 2z 1z 0=000 de x 2x 1x 0=001 x 2x 1x 0=111 imp. de de ceas C−1=0 C +1=0 ceas 1 2 3 4 5 6 7 8

C O =1

000 + 001 001 001+ 001 010 010+ 001 011 011+ 001 100 100+ 001 101 101+ 001 110 110+ 001 111 111+ 001 000

f=f CLK 1/8

c)

Numarator direct modulo8

C O =1 C O =1 C O =1 C O =1 C O =1 C O =1 C O =1

000+ 111 111 111+ 111 110 110+ 111 101 101+ 111 100 110+ 111 011 011+ 111 010 010+ 111 001 001+ 111 000

f=f CLK 7/8

Numarator invers modulo8

2 3 4

C O =1

5 6 7 8

C O =1

z0 CLK

Q3

CO

x3

C−1

Q2 x2

Q1 x1

Q0

C −1

x0

b)

Starea initiala z 3z 2z 1z 0=0000 x 3x 2x 1x 0=0101 c−1=0

1

z1

RESET

CLEAR

CLK

Cn

z2

0000+ 0101 0101 0101+ 0101 1010 1010+ 0101 1111 1111+ (5+5+5+5) 0101 modulo16=4 0100 0100+ 0101 1001 1001+ 0101 1110 1110+ (4+5+5+5) 0101 modulo16=3 0011 0011+ 0101 1000

9 10

C O =1

11 12 13

C O =1

14 15 16

C O =1

1000+ 0101 1101 1101+ (3+5+5+5) 0101 modulo16=2 0010 0010+ 0101 0111 0111+ 0101 1100 1100+ (2+5+5+5) 0101 modulo16=1 0001 0001+ 0101 0110 0110+ 0101 1011 1011+ (1+5+5+5) 0101 modulo16=0 0000

f=f ClK 5/16

Numarator divizor cu coeficient fractionar

Figura 3.74 Circuitul acumulator: a) structur˘ a de acumulator cu patru celule; b) reprezentare simbolic˘ a; c) analiza a trei exemple de num˘ ar˘ ator modelate pe baz˘ a de acumulator.

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

457

¸si C−1 = 0, coloana a treia din figura 3.74-c. Pentru modelarea unor num˘ ar˘ atoare ˆın alte coduri de num˘ arare este necesar, uneori, s˘ a se ata¸seze ˆın exterior un decodificator, realizat cu port¸i logice, pentru decodificarea unui anumit cuvˆ ant de cod din registru ¸si, eventual, s˘ a se modifice valoarea cuvˆ antului X aplicat din exterior(vezi problemele P3.73 ¸si P3.74). Pe un acumulator se poate modela orice proces care poate fi exprimat prin operat¸ii de: adunare, sc˘ adere, deplasare stˆ anga/dreapta sau ˆınc˘ arcare (fort¸are a unui cuvˆ ant exterior). De fapt, acumulatorul este un circuit de calcul pentru prefixe sum˘ a modulo 2 n cu o funct¸ie generic˘ a f = (X + X)modulo2n ; de exemplu pentru n = 3 se pot scrie relat¸iile f0 f1 f2 f3

= (0 + 0) modulo 8 = 0 = (f0 + X) modulo 8 = X modulo 8 = (f1 + X) modulo 8 = 2X modulo 8 = (f2 + X) modulo 8 = 3X modulo 8 .. .

f7 = (f6 + X) modulo 8 = 7X modulo 8 f8 = (f7 + X) modulo 8 = 8X modulo 8 = f0 = 0 sau relat¸ia generalizat˘ a pentru acumulator cu n celule se scrie n

(

2 X

X) modulo 2n = 0

(3.44)

1

Relat¸ia 3.44 arat˘ a c˘ a circuitul acumulator funct¸ioneaz˘ a ca un num˘ ar˘ ator de Xtuple pe un interval/(perioad˘ a) de 2n impulsuri de ceas. Altfel spus, pornind din starea init¸ial˘ a Q(0) = 0 ¸si C−1 , pentru cuvˆ antul X aplicat din exterior, acumulatorul va genera (se va umple) semnalul de transport urm˘ ator C O de un num˘ ar X ori pentru 2n impulsuri de ceas aplicate. ˆIn Figura 3.74-c, coloanele 5 ¸si 7, este realizat cazul unui acumulator cu n=4, pentru X = 5; se observ˘ a c˘ a se genereaz˘ a de cinci ori semnalul CO = 1 pe durata a 16 impulsuri de ceas, deci o multiplicare cu 5/16 a frecvent¸ei de ceas (Aceste impulsuri sunt reprezentate, comparativ cu cele generate de un multiplicator cu coeficient binar, ˆın Figura 3.68-b; se observ˘ a c˘ a distribut¸ia lor ˆın timp este mai uniform˘ a decˆ at cea obt¸inut˘ a de la un multiplicator binar). Cu circuitul acumulator se pot realiza multiplicatoare cu un coeficient fract¸ionar X/C unde numitorul poate fi diferit de puteri ale lui doi C 6= 2 n [Oberman 0 78]). Pe baza acumulatorului se pot realiza circuite care calculeaz˘ a, ˆın timp real, valorile unor funct¸ii (ridicarea la o putere, r˘ adacin˘ a p˘ atrat˘ a, log 2 , funct¸ii trigonometrice de num˘ arul de impulsuri NCLK ). Aceste valori sunt disponibile imediat ce se prime¸ste impulsul de intrare. Exemplul 3.26 S˘a se realizeze o structur˘a de circuit pe baz˘a de acumulatoare care 2 . s˘ a calculeze p˘ atratul num˘ arului de impulsuri aplicate, NCLK 2 Solut¸ie. Notˆ and cu Sn =NCLK ¸si Sn+1 =(NCLK + 1)2 se deduce relat¸ia recurent˘ a Sn+1 = (NCLK + 1)2 = Sn + 2NCLK + 1 Dac˘ a se cunoa¸ste deja valoarea p˘ atratul Sn , prin adunarea la aceast˘ a valoare a dublului num˘ ar de impulsuri aplicate, 2NCLK , plus 1, atunci la aplicarea urm˘ atorului impuls de ceas

458

3.5. CIRCUITE REGISTRU

se genereaz˘ a valoarea Sn+1 . Structurarea pe baz˘ a de acumulatoare care realizeaz˘ a acest calcul este prezentat˘ a ˆın Figura 3.75-a. Acumulatorul Acc Q2 opereaz˘ a ca un sumator de acumulare cu C−1 = 1 deci un num˘ ar˘ ator ˆın cod biar natural pentru num˘ arul impulsurilor aplicate, NCLK . N2CLK

Acc Q1

z3

z2

z1

Q C O 13

Q12

Q11

z0 Q10 CLK

C−1

1

a)

Acc Q2

Q C O 23 0

N CLK =0 z3 z2 z1 z0 Q13Q12Q11Q10

b) 2

N CLK

0 0 0 0

Q23Q22Q21Q20 0 0 0 0

Q22

Q21

0

0

N CLK =1 z3 z2 z1 z0 Q13Q12Q11Q10 0

0 0 1

Q23Q22Q21Q20 0 0 0 1

Q20 CLK

C−1

NCLK

1

0

N CLK =2 z3 z2 z1 z0 Q13Q12Q11Q10 0 1

0

0 0

Q23Q22Q21Q20 0 0 1 0

N CLK =3 z3 z2 z1 z0 Q13Q12Q11Q10 1 0 0 1 Q23Q22Q21Q20 0 0 1 1

1

N CLK =4 z3 z2 z1 z0 Q13Q12Q11Q10 0 0 0 0 Q23Q22Q21Q20 0 1 0 0

2 Figura 3.75 Calculul p˘ atratului num˘ arului de impulsuri recept¸ionate N CLK : a) structur˘ a de circuit pe baz˘ a de acumulatoare; b) modificarea cont¸inuturilor acumulatoarelor pentru aplicarea succesiv˘ a a patru impulsuri de intrare, N CLK = 4.

Acc Q1 , pe ale c˘ arui intr˘ ari se aplic˘ a dublul num˘ arului de impulsuri deja recept¸ionate 2NCLK (ˆınmult¸irea cu 2 se obt¸ine prin deplasarea cu un rang spre stˆ anga a celulelor lui Acc Q2 fat¸a ˘ de Acc Q1 ) plus 1 (este transportul anterior, C−1 = 1) la aplicarea urm˘ atorului impuls prin sumare a 2NCLK + 1 la Sn (deja existent˘ a ˆın Acc Q1 ) va genera la ie¸sire codul binar z3 z2 z1 z0 pentru valoarea lui (NCLK + 1)2 . Analiza modific˘ arii cont¸inuturilor pentru 4 impulsuri aplicate succesiv ˆın cele dou˘ a acumulatoare este prezentat˘ a ˆın Figura 3.75-b; pentru valori care necesit˘ a o exprimare pe mai mult de patru bit¸i se extinde num˘ arul de celule pe acumulatoare.

3.5.3

Structura pipeline

Structura pipeline (conduct˘ a) este un suport hardware pentru a reduce timpul de procesare pe un CLC. Procesarea clasic˘ a a unui flux de date pe un CLC presupune o organizare ca cea prezentat˘ a ˆın Figura 3.76. Un e¸santion de date este ˆınscris, prin activarea semnalului de ceas, ˆın registrul de intrare R 1 ¸si aplicat pe intr˘ arile CLC, apoi la urm˘ atorul semnal de ceas, datele procesate ˆın CLC sunt stocate ˆın registrul de ie¸sire R2 . Perioada minim˘ a TCLK trebuie s˘ a fie mai mare decˆ at suma timpilor: τpR -timpul de propagare prin registrul de intrare (care este de fapt τ pCQ ), τpCLC -timpul de propagare prin CLC, τSU -timpul de stabilizare de la intrarea registrului de ie¸sire. TCLK(min) ≥ τpR + τpCLK + τSU

(3.45)

459

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Deoarece timpii de ˆıntˆ arziere cauzat¸i de registre (valori tipice τ pR ≈ 15 ÷ 30 ns, τSU ≈ 5 ÷ 15 ns) mai pot fi redu¸si doar de ˆımbun˘ at˘ a¸tiri tehnologice, apare evident faptul c˘ a m˘ arirea ratei de procesare a fluxului de date se poate realiza numai printro mic¸sorare a propag˘ arii τpCLC (care depinde de complexitatea ret¸elei CLC, pentru calcule de tip aritmetic τCLC poate avea valori ˆın intervalul 150 ÷ 300 ns). Uneori, funct¸ia de procesare pe CLC poate fi privit˘ a ca fiind compus˘ a dintr-o succesiune de n subfunct¸ii, fiecare subfunct¸ie putˆ and fi implementat˘ a respectiv pe cˆ ate un circuit independent CLC1 , CLC2 , ..., CLCn cu timpii de propagare τpCLC1 , τpCLC2 , ..., τpCLCn . Conform acestei abord˘ ari, se poate structura o ˆınseriere a acestor n circuite CLC i , interfat¸ate prin cˆ ate un registru (registru pipe), pentru a aplica datele de intrare respectiv pentru a stoca datele de ie¸sire — aceasta fiind structurarea de tip pipeline avˆ and n etape de procesare, Figura 3.76-b. x0 x1

R1

x k−1

CLC

y0 y1

R2

CLK

yp−1

CLK

a)

CLK

CLK

b)

τPR

c)

CLK

d)

CLK

τ PCLC

CLC i+1

CLK

OP i+2

CLC i+2

Rn

CLC i

m

OP i+1

R i+2

CLK

R i+1

CLK

m

OP i

R i+3

x k−1

Ri

x0 x1

R1

m

CLK

CLK

y0 y1 yp−1

τ SU

φ1 φ2

Figura 3.76 Organizarea de tip pipeline: a) structurarea pentru o procesare de tip non-pipe (clasic˘ a); b) structura unui pipe cu n etape de procesare; semnale de ceas pentru sincronizarea ˆın pipe (c) cu o singur˘ a faz˘ a (pe front) ¸si (d) cu dou˘ a faze Φ1 ¸si Φ2 (pe palier) ˆInscriind un set de date, xk−1 , xk−2 , ..., x1 , x0 , ˆın primul registru pipe, R1 , pe frontul activ al semnalului de ceas, acestea vor fi apoi procesate ¸si stocate succesiv ˆın toate celelate (n − 1) etape din pipe, iar dup˘ a (n − 1) tacte se obt¸in datele de ie¸sire, yp−1 , yp−2 , ..., y1 , y0 . Dac˘ a fluxul de date aplicat pe intrare este continuu, dup˘ a intervalul de timp n tacte de ceas latent˘ a ˆın pipe (timpul de umplere al conductei), la fiecare urm˘ ator tact se obt¸ine un set de date prelucrate la ie¸sire. Perioada minim˘ a a impulsului de tact se calculeaz˘ a tot cu relat¸ia 3.45 dar, de data aceasta, se consider˘ a timpul de propagare maxim (care corespunde subfunct¸iei cu timpul cel mai lung de procesare).

460

3.5. CIRCUITE REGISTRU

τCLK(min) ≥

τpR + max{τpCLC1 , τpCLC2 , ..., τpCLCn } + τSU < τpR + τpCLC + τSU

(3.46)

¸si ˆın ipoteza c˘ a toate registrele pipe sunt identice, deci au acelea¸si valori pentru τ SU ¸si τpR . ˆIn raport cu procesarea clasic˘ a (non-pipe) la procesarea de tip pipeline se obt¸ine o cre¸stere de vitez˘ a egal˘ a cu raportul timpilor calculat¸i dup˘ a relat¸iile 3.46 ¸si 3.47, dar aceast˘ a cre¸stere de vitez˘ a se obt¸ine numai dup˘ a ce primul set de date a ie¸sit din ultima etap˘ a iar fluxul de date la intrarea ˆın prim˘ a etap˘ a este continuu. Dac˘ a fluxul de date nu este continuu, cu ˆıntreruperi frecvente, deci la fiecare reumplere a pipe-ului se consum˘ a un timp egal cu latent¸a˘ ˆın pipe, atunci se poate ajunge la un timp mediu de procesare mai mare decˆ at la procesarea non-pipe! Relat¸ia de timp 3.46, ˆıntre perioada tactului de ceas ¸si timpii dintr-o etap˘ a a pipeului, este explicitat˘ a grafic ˆın Figura 3.76-c, cˆ and semnalul de ceas este activ pe frontul pozitiv. Cˆ and registrele pipe sunt realizate din latch-uri D comanda se efectueaz˘ a pe palier cu dou˘ a semnale Φ1 ¸si Φ2 , defazate ¸si nesuprapuse, Figura 3.76-d; iar datele ˆın pipe curg, alternativ, din etape cu num˘ ar impar ˆın etape cu num˘ ar par, comandate alternativ de cele dou˘ a faze Φ1 ¸si Φ2 . O uniformizare a implement˘ arii unei implement˘ ari de tip pipe se poate obt¸ine dac˘ a, ˆın fiecare etap˘ a, pentru CLC-ul este utilizat˘ a o aceea¸si structur˘ a programabil˘ a care se programeaz˘ a pentru operat¸ia specific˘ a OPi cerut˘ a ˆın etapa i de procesare printr-un cuvˆ ant de control cu m bit¸i. Un astfel de CLC programabil poate fi un MUX2 m :1, m programat s˘ a genereze una din cele 22 funct¸ii de m variabile. ˆIntr-o etap˘ a din pipe se poate sc˘ adea timpul de propagare pˆ ana la patru niveluri logice, un AND-OR pe CLC ¸si ˆınc˘ a dou˘ a niveluri dac˘ a registrul pipe este un registru latch. Totu¸si, exist˘ ao variant˘ a prin care timpul se poate reduce chiar pˆ an˘ a la dou˘ a niveluri de propagare, care acoper˘ a atˆ at propagarea cˆ at ¸si memorarea, dac˘ a se utilizeaz˘ a latch-uri Early, Figura 3.41. Organizarea de tip pipeline este modul comun pentru structurarea c˘ aii de date a microprocesoarelor actuale. Execut¸ia unei instruct¸iuni (ciclul de execut¸ie ) se descompune ˆın n subcicluri, deci calea de date se granuleaz˘ a ˆın n etape succesive de procesare. Dac˘ a se reu¸se¸ste alimentarea continu˘ a cu instruct¸iuni ˆın calea de date atunci viteza de procesare a microprocesorului cre¸ste (teoretic!) de n ori fat¸a˘ de un procesor o cu cale de date non-pipe.

3.5.4

Registrul de deplasare

Registrul de deplasare, la fel ca ¸si registrul paralel, este o structur˘ a simpl˘ a ce se obt¸ine prin ˆınserierea de celule bistabil, uzual de tip D, de unde ¸si denumirea de registru de deplasare serie sau, mai frecvent, registru serial. ˆIn Figura 3.77-a este prezentat˘ a organizarea unui registru, prin ˆınserierea a patru celule bistabil D, precum ¸si funct¸ionarea sa la aplicarea pe intrarea serie a cuvˆ antului X = 1011. Considerˆ and init¸ial cont¸inutul registrului Q 4 Q3 Q2 Q1 = 0000 la primul impuls de ceas, pe front pozitiv, bitul cel mai semnificativ, MSB, este introdus ˆın celula Q1 , deci cont¸inutul registrului serial este Q 4 Q3 Q2 Q1 = 0001. La al doilea impuls de ceas, cont¸inutul din prima celul˘ a, Q 1 = 1, este transferat ˆın celula a doua, deci Q2 = 1, iar ˆın prima celul˘ a se ˆınscrie valoarea bitului urm˘ ator dup˘ a MSB, deci

461

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

0 Q

Q4 y(t) Iesire serie

Q

3

Q 1

2

Q D

Q D

Q D

Q D

CLK

CLK

CLK

CLK

QN

QN

QN

CLEAR

CLEAR

0

0

(1011)

0

0

0

0

1

(011)

0

0

0

1

0

(11)

0

0

1

0

1

(1)

0

1

0

1

1

(0000)

1

0

1

1

0

(0000)

x(t) Intrare serie

QN

CLEAR

0

CLEAR

CLK

RESET

a)

Q4

Q3

Q2

Q1

VDD T12

O1

V0 Iesire serie

T11

T13 C04

T9

O2

T10 C03

Cin

4

celula 4

T8

celula 3

Cin3

T6

O1

T5

T7 C02

T3

O2

T4 C01

Cin

2

celula 2

O1

x(t)

T2

T1 Cin

intrare serie

1

celula 1

b) n

D

y

Qn

n−1

D

Q

n−1

3

D

Q3

2

D

Q2

1

D

Q1

x

c)

Figura 3.77 Registru de deplasare: a) structurarea ¸si funct¸ionarea unui registru de deplasare cu patru celule (n = 4); b) registru de deplasare, n = 4, pe baz˘ a de inversoare dinamice cu raport; c) simbol pentru registru de deplasare compus din n celule (ca ret¸ea digital˘ a de ˆıntˆ arziere)

462

3.5. CIRCUITE REGISTRU

Q1 = 0, rezultˆ and cont¸inutul registrului Q4 Q3 Q2 Q1 = 0010. La al patrulea impuls de ceas ˆıntreg cuvˆ antul 1011 a fost deja introdus ˆın registru iar cont¸inutul acestuia este Q4 Q3 Q2 Q1 = 1011; valoarea MSB este disponibil˘ a la ie¸sirea serie. ˆIncepˆ and cu al cincilea impuls de ceas, transferul serial celul˘ a dup˘ a celul˘ a se continu˘ a, bitul din celula Q4 se pierde, fiind ˆınscris cu bitul care a fost ˆın celula Q 3 , la fel si ˆın celula Q1 , se ˆınscrie valoarea Q1 = 0, deoarece cuvˆ antul X = 1011 aplicat pe intrare a fost deja introdus. Pe tactele de ceas 4, 5, 6, 7 pe ie¸sirea serie se obt¸ine cuvˆ antul Y care este identic cu cuvˆ antul X aplicat pe intrarea serie pe tactele 1, 2, 3, 4, deci dup˘ a un interval de patru tacte, la al optulea tact cont¸inutul registrului va fi din nou Q4 Q3 Q2 Q1 = 0000. Pe un registru serial de n celule transferul unui bit, aplicat pe intrare ¸si pˆ an˘ a la iesire, se face pe durata a n perioade de ceas, iar transferul pˆ an˘ a la o iesire intermediar˘ a i, 1 ≤ i < n, necesita i perioade de ceas. Formal, transferul prin registrul serial poate fi exprimat ˆın felul urm˘ ator:  Qi (t + T ) = Qi−1 (t) × CLK ⇒ Qi (t + iT ) = x(t) (3.47) Q1 (t + T ) = x(t) · CLK unde x(t) este valoarea bitului, din cuvˆ antul X, aplicat pe intrarea serie la momentul t. Fizic, transferul corect prin registrul serial, pe durata unui tact, bitul de la celula Qi la celula Qi+1 , poate fi realizat numai dac˘ a timpul de ment¸inere de la celula urm˘ atoare, Qi+1 , este mai mic decˆ at timpul de propagare pe celula anterioar˘ a, Q i , τH(Qi+1 ) < τpCQ(Qi) . Dac˘ a aceast˘ a condit¸ie nu este ˆındeplinit˘ a ˆınseamn˘ a c˘ a semnalul pe intrarea de date al celulei Qi+1 , care este semnalul de ie¸sire de la celula anterioar˘ a, se modific˘ a ˆın fereasta de decizie ∆ (relat¸ia 3.23, Figura 3.46 a ¸si b). La bistabile este ˆındeplinit˘ a relat¸ia τH < τpCQ deci, dac˘ a registrul serial se realizeaz˘ a cu acela¸si tip de registre, atunci este realizat˘ a condit¸ia anterioar˘ a de transfer corect. Dac˘ a celulele registrului serial sunt latch-uri, care sunt transparente pe durata palierului activ de ceas, atunci un bit este transferat continuu ˆınspre ie¸sire din celul˘ a ˆın celul˘ a cˆ at timp se ment¸ine activ palierul semnalului de ceas. Pentru implement˘ arile integrate, mai ales pentru num˘ ar de celule de valoare ridicat˘ a, sunt recomandate structurile de registre serie pe baz˘ a de celule dinamice.Toate astfel de registre dinamice se comand˘ a prin dou˘ a semanle de ceas Φ 1 , Φ2 , Figura 3.76-d, nesuprapuse ¸si aplicate alternativ. ˆIn Figura 3.77-b este prezentat un registru serie cu patru celule, fiecare celul˘ a fiind un invers dinamic cu tranzistoare nMOS. Pentru mic¸sorarea puterii disipate tranzistoarele de sarcin˘ a, T 3 , T6 , T9 si T12 , sunt ˆın conduct¸ie numai pe durata palierului Φ2 . Pe durata palierului activ Φ1 , valoarea tensiunii de intrare, corespunz˘ atoare bitului x(t) aplicat pe intrarea serie, este transferat˘ a, prin tranzistorul de trecere T1 , condensatorului Cin1 , de pe intrarea primei celule 1. Valoarea tensiunii pe Cin1 , dup˘ a anularea semnalului Φ1 , nu trebuie s˘ a ias˘ a din intervalul ∆VH (ori ∆VL ) pˆ an˘ a la activarea semnalului Φ2 . La activarea lui Φ2 , tranzistorul T3 intr˘ a ˆın conduct¸ie, condensatorul C01 de pe iesirea primului inversor se ˆıncarc˘ a la tensiunea corespunz˘ atoare care, prin tranzistorul de trecere T 4 , comandat ˆın conduct¸ie tot de Φ2 , este transferat˘ a ca tensiune de ˆınc˘ arcare ¸si pe condensatorul Cin2 de pe intrarea celulei a doua. Cˆ and semnalul Φ 1 devine din nou activ tensiunea de pe C02 , corespunz˘ atoare tensinii de pe Cin2 , este transferat˘ a pe condensatorul Cin3 de la intrarea celulei a treia ¸si de asemenea, tensiunea corespunz˘ atoare urm˘ atorului bit de pe intrarea x(t + T ) este transferat˘ a condensatorului C in1 , de la intrarea primei

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

463

celule. Sunt comandate succesiv: ˆıntˆ ai toate celulele cu num˘ ar impar cu faza Φ 1 , apoi toate celulele cu num˘ ar par cu faza Φ2 . Registrul serie dinamic prezentat mai este referit ¸si ca registru serie dinamic cu raport. Termenul de raport specific˘ a faptul c˘ a ˆın layout-ul inversorului trebuie realizat˘ a o anumit˘ a valoare a raportului ˆıntre coeficientul W/L al tranzistorului inversor ¸si coeficientul W/L al tranzistorului de sarcin˘ a. Numai realizˆ and un anumit raport tensiunea de ie¸sire V0L a etajului inversor, de pe condensatorul C0 , care se transfer˘ a prin tranzistorul de trecere ca tensiune de intrare la inversorul urm˘ ator, poate ˆınc˘ arca Cin la o valoare ˆın intervalul ∆VL ; tensiunea corespunz˘ atoare pe intrarea inversorului este ˆın intervalul ∆VH . Se pot realiza celule de inversor dinamic ¸si far˘ a raport. La un inversor far˘ a raport un semnal de ceas comand˘ a tranzistorul de sarcin˘ a ¸si simultan tranzistorul de trecere care ˆıncarc˘ a capacitatea de pe propria intrare, ¸si nu tranzistorul de trecere care ˆıncarc˘ a intrarea inversorului urm˘ ator cum este la structura cu raport; ˆıncercat¸i s˘ a desenat¸i aceast˘ a structurare. O structur˘ a de registru serial CMOS dinamic , se poate obt¸ine simplu prin ˆınserierea de celule ca cea prezentat˘ a ˆın Figura 1.54-b; trebuie ca cele dou˘ a port¸i de transmisie corespunz˘ atoare la dou˘ a inversoare succesive s˘ a fie comandate una cu Φ 1 /Φ2 iar cealalt˘ a cu Φ2 /Φ1 . Registrul serie, ˆın funct¸ionarea corect˘ a, poate realiza ˆıntˆ arzieri controlate, de multiplii ai perioadei semnalului de ceas, ˆıntre semnalul aplicat pe intrarea serie ¸si momentul obt¸inerii acestuia la ie¸sirile diferitelor celule componente, deci poate fi considerat echivalentul, ˆın digital, al liniei de ˆıntˆ arziere analogic˘ a cu ˆıntˆ arzieri multiple. Daca se exprim˘ a operat¸ia de ˆıntˆ arziere cu o perioad˘ a de ceas, a unui bit b printr-o celul˘ a a registrului, cu simbolul (operatorul) Db, iar operat¸ia de deplasare a bitului b prin i celule ale registrului cu D i b (o aplicare de i ori a operatorului D(D(D. . .D(b)). . .)) = D i b) se poate considera o reprezentare generic˘ a pentru un registru serie cea din Figura 3.77-c. Bitul b aplicat pe intrare devine ie¸sirea Q i dup˘ a i operat¸ii de ˆıntˆ arziere: Qi = D i b, 1 ≤ i ≤ n, D 0 b = Ib = b

(3.48)

unde I este operatorul unitar (identic). Pentru un cuvˆ ant X cu lungimea de n bit¸i X = bn bn−1 . . .b2 b1 introdus bit dup˘ a bit, ˆıncepˆ and cu cel mai semnificativ, bn , prin aplicarea succesiv˘ a a unui num˘ ar de n tacte, ˆıntr-un registru de deplasare cu n celule, conform relat¸iei 3.47 se poate adopta o exprimare polinomial˘ a (dup˘ a puterile lui D) X = bn Dn + bn−1 Dn−1 + . . . + b2 D2 + b1 D1

(3.49)

cont¸inutul celulelor bistabil fiind: Qn = bn , Qn−1 = bn−1 ,. . . , Q2 = b2 si Q1 = b1 . Deoarece tactul de ceas se aplic˘ a sincron la toate celulele, analiza cont¸inutului registrului, valorile Qi , se consider˘ a numai pe durata dintre fronturile active de ceas ,, (interval numit uneori “dit ). ,, Registru, intuitiv, poate fi considerat ca o “lup˘ a sub care intr˘ a ¸sirul X ˆın devenire spre ¸sirul Y . ˆIn aceat˘ a abordare, registrul de deplasare serie poate fi utilizat pentru o implementare alternativ˘ a a automatelor de identificare a anumitor secvent¸e. Exemplul 3.27 Automatul cu graful de tranzit¸ie din Exemplul 3.3 s˘a se implementeze pe baz˘ a de registre de deplasare. ,, Solut¸ie. Cˆ and ˆın ¸sirurile de bit¸i de intrare x1 , x0 , intrate sub “lupa a dou˘ a registre de deplasare, se identific˘ a secvent¸a de perechi 00, 00, 11, 10 ¸si se genereaz˘ a ie¸sirea y = 1.

464

3.5. CIRCUITE REGISTRU 0

Q D CLK

0

Q D CLK

QN

0

Q CLK

QN

1

QN

0

Q QN

D

Q D CLK

1

Q D CLK

QN

1

Q QN

D

x1

QN

0

Q

D

QN

x0

CLK

y

Figura 3.78 Modalitate alternativ˘ a, pe baz˘ a de registru de deplasare, pentru un automat de identificare de secvet¸e.

Implementarea corespunz˘ atoare este cea din Figura 3.78; dou˘ a registre serie de patru celule, unul pentru ¸sirul intr˘ ari x1 , altul pentru ¸sirul intr˘ ari x2 , iar ie¸sirile lor se compar˘ a ,, permanent pe o ret¸ea de port¸i AND. ˆIn raport cu implementarea “clasic˘ a de automat, unde este necesar un registru de stare cu trei celule plus partea de CLC, aceast˘ a implementare necesit˘ a mai mult˘ a circuistic˘ a dar, ˆın schimb, se elimin˘ a efortul de sintez˘ a pentru automat, structurarea fiind intuitiv˘ a ¸si imediat˘ a.

Registru inel. Structura de registru inel se obt¸ine dintr-un registru de deplasare la care ie¸sirea serie se conecteaz˘ a la intrarea serie, deci se ˆınchide o bucl˘ a de react¸ie ˆın jurul registrului de deplasare. La un registru inel cuvˆ antul init¸ial, nu este pierdut prin deplasarea sa ci, este recirculat ˆın interiorul inelului. Exprimarea formal˘ a a transferului ciclic se obt¸ine, prin adaptarea relat¸iilor (3.47) la existent¸a react¸iei, ˆın felul urm˘ ator: Qi (t + T ) = Qi−1 (t) · CLK,

Q1 (t + T ) = Qn (t) · CLK.

(3.50)

O structur˘ a de registru inel, compus din patru celule bistabil D, este prezentat˘ a ˆın Figura 3.79-a. ˆIn general, ˆıntr-un registru inel se fort¸eaz˘ a init¸ial, prin intr˘ arile asincrone CLEAR ¸si PRESET ale celulelor, un cuvˆ ant care are numai bitul cel mai put¸in semnificativ egal cu 1, restul bit¸ilor sunt zerouri. Prin deplasarea acestui cuvˆ ant bitul cu valoarea 1 va ocupa toate cele n pozit¸ii din registru, iar dup˘ a n impulsuri de tact bitul cu valoarea 1 ajunge ˆın pozit¸ia init¸ial˘ a. Aceast˘ a deplasare liniar˘ a poate fi asociat˘ a cu funct¸ionarea unui num˘ ar˘ ator modulo n, dup˘ a n impulsuri se ajunge la acela¸si cont¸inut ˆın inel, de unde ¸si denumirea, uneori, de num˘ ar˘ ator ˆın inel. Pentru registrul inel cu patru celule succesiunea de cuvinte din inel este: 0001, 0010, 0100, 1000, 0001,. . .. Registrul inel este de fapt un automat Moore, starea urm˘ atoare se calculeaz˘ a din starea prezent˘ a cu ajutorul relat¸iilor (3.50) care de fapt sunt funct¸iile de excitat¸ie (pentru uniformitate, ˆın tratare ca automat, cuvˆ antul de stare este notat ¸si prin z4 z3 z2 z1 .

465

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

z3

z4

z2

z1 CLK

PRESET

Q

PRESET

Q

Q 4D

PRESET

D

Q

Q3

Q

Q1D

Q CLK

Q CLK

Q CLK

Q CLK

CLEAR

CLEAR

CLEAR

CLEAR

CLK

(Initializare)

z4

z3

Q

Q4

Q

Q

J

CLK

K

J

Q3

Q

CLEAR

z1

z2

CLK

K

CLEAR

Q Q

Q2

Q

J

CLK

K

Q

CLEAR

4

5

6

7

8

9

F 2,(z 2)

F 4,(z 4)

b)

Q1

J

Q1

CLK

CLK

K

F1

Q2

Q2 Q3

Q1 Q2

F5 Q 2 Q3

d)

CLEAR

F2 Q 3 Q4

F3 Q1

F6

F7

Q3 Q4

F4

Q4 Q4

F8

Q1

RESET

c) Impuls de ceas

z4

z3

z2

z1

0 1 2 3

0 0

0 0

0 1

0 0

4 5 6

1 1 1

0 1 1

0 0 1

1 1

1 1 0

7 8

1

0

0

0 0

0

0 0 1

9 10 11

e)

3

F 3,(z 3) RESET

a)

2

F 1,(z 1)

PRESET

D

Q2

1

0 0

0 0 1

1

1

CLK

1

2

3

4

5

6

7

8

9

10

F1 F2

1 1

F3

1 0 0 0 0 1

F4

1

F8

F5 F6 F7

1

f)

Figura 3.79 Registrul inel: a) structur˘ a de registru inel cu patru celule (n = 4); b) diagrama semnalelor de faze generate de un registru inel cu n = 4; c) structur˘ a de num˘ ar˘ ator Johnson cu n = 4 ¸si succesiunea normal˘ a a cuvintelor ˆın procesul de num˘ arare (e); d) decodificatorul de faze pentru un num˘ ar˘ ator Johnson cu n = 4 ¸si diagrama corespunz˘ atoare pentru semnalele de faz˘ a (f).

466

3.5. CIRCUITE REGISTRU

Nu se recomand˘ a utilizarea unui num˘ ar˘ ator ˆın inel ˆın raport cu un num˘ ar˘ ator clasic ˆın cod binar, deoarece primul necesit˘ a n celule bistabil pe cˆ and al doilea numai log 2 n celule bistabil. Totu¸si, num˘ ar˘ atorul inel poate fi utilizat pentru producerea dintr-o secvent¸a˘ de n impulsuri de ceas a unui num˘ ar de n semnale defazate ¸si nesuprapuse fiecare cu frecvent¸a 1/n, adic˘ a pentru realizarea unui generator de faze. Registrul inel prin modul s˘ au de funct¸ionare este un generator de faze, fiecare bit z i , 1 ≤ i ≤ n, al cuvˆ antului de stare este o faz˘ a Fi ; ˆın Figura 3.79-b sunt prezentate fazele generate de un registru inel cu n = 4. Uneori, ˆın registrul inel este recirculat un compact de m 1-uri ˆın interiorul cuvˆ antului de n bit¸i. Pentru aceast˘ a funct¸ionare se pot genera cele n faze printr-un sistem de port¸i AND cu dou˘ a intr˘ ari; poarta care genereaz˘ ao faz˘ a la un moment dat are o intrare conectat˘ a la celula care indic˘ a primul bit 1 din compact, iar cealalt˘ a intrare la celula care indic˘ a ultimul bit din compact. Uzual, un generator de n faze se structureaz˘ a dintr-un num˘ ar˘ ator modulo n care comand˘ a un decodificator cu dlog2 ne intr˘ ari ¸si n ie¸siri; ie¸sirea i a decodificatorului fiind faza Fi . Dar, deoarece ie¸sirile num˘ ar˘ atorului nu comut˘ a simultan, chiar ¸si la un num˘ ar˘ ator sincron!, iar decodificatorul poate introduce hazard, ˆın ie¸sirile decodificatorului/(faze) se produc glitch-uri. Pentru eliminarea glitch-urilor ie¸sirile decodificatorului sunt introduse intr-un registru, comandat pe ˆınc˘ arcare cu un semnal complementat fat¸a˘ de semnalul de ceas care este aplicat num˘ ar˘ atorului, deci semnalele ,, de faz˘ a de la ie¸sirea registrului sunt “curate dar ¸si generate cu ˆıntˆ arziere fat¸a˘ de num˘ arul corespunz˘ ator din num˘ ar˘ ator. Evident c˘ a, ˆın raport cu aceast˘ a structurare de generator de faze, simplitatea generatorului de faze cu registru inel este preferat˘ a. Num˘ ar˘ atorul ˆın inel, analizat ca automat, utilizeaz˘ a din cele 2 n st˘ ari posibile doar n st˘ ari, restul de (2n − n) st˘ ari sunt ilegale pentru funct¸ionarea sa. Dac˘ a automatul ajunge accidental, de exemplu, la aplicarea tensiunii sau datorit˘ a zgomotului, intr-o stare ilegal˘ a poate r˘ amˆ ane un timp indefinit ˆın starea respectiv˘ a, sau se realizeaz˘ a un ciclu ˆıntre st˘ ari ilegale pe care le parcurge, la fel, indefinit. De exemplu, pentru un num˘ ar˘ ator ˆın inel cu patru celule (n = 4), modulo 4, care are numai 4 st˘ ari normale, la funct¸ionarea normal˘ a se parcurge ciclul compus din urm˘ atoarea succesiune de cuvinte de stare: 0001, 0010, 0100, 1000, 0001, . . . .ˆIntre restul de (24 − 4 = 12) st˘ ari ilegale, cˆ and una din acestea apare accidental ˆın num˘ ar˘ atorul ˆın inel, se poate stabili unul din urm˘ atoarele 5 cicluri (care reprezint˘ a o funct¸ionare anormal˘ a): 1. 0000, 0000, 0000, 0000, . . . 2. 0101, 1010, 0101, 1010, . . . 3. 0011, 0110, 1100, 1001, 0011, 0110, . . . 4. 0111, 1110, 1101, 1011, 0111, 1110, . . . 5. 1111, 1111, 1111, 1111, . . . Pentru eliminarea funct¸ion˘ arii anormale se utilizeaz˘ a, ˆın sintez˘ a, abordarea de risc minim, Figura 3.30-b, adic˘ a din oricare stare ilegal˘ a se dirijeaz˘ a tranzit¸ii, ˆıntr-un num˘ ar finit de tacte, spre o stare legal˘ a. Practic, num˘ ar˘ atorul ˆın inel cu n = 4 se realizeaz˘ a cu un circuit de autocorect¸ie care este o poart˘ a NOR cu trei intr˘ ari; la intr˘ arile port¸ii NOR se aplic˘ a bit¸ii z3 , z2 , z1 ai cuvˆ antului de stare iar ie¸sirea port¸ii

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

467

se introduce, ca semnal de react¸ie, la prima celul˘ a. Deci react¸ia nu se mai realizeaz˘ a ca ˆın ecuat¸ia (3.50) ci prin ecuat¸ia Q1 (t + T ) = (Q3 (t) + Q2 (t) + Q1 (t)) × CLK

(3.51)

De exemplu, dac˘ a ˆın num˘ ar˘ ator apare accidental cuvˆ antul de stare 1011, pe urm˘ atoarele dou˘ a tacte, deoarece Q1 este produs permanent de poarta NOR, st˘ arile vor fi 0110, 1100, iar la al treilea tact se ˆınscrie starea normal˘ a 1000,deci intr˘ a ˆın ciclul de funct¸ionare normal˘ a (vezi problema P3.78). ˆIn general, un num˘ ar˘ ator ˆın inel modulo n cu autocorect¸ie utilizeaz˘ a o poart˘ a NOR cu (n − 1) intr˘ ari, iar corectarea se realizeaz˘ a ˆın maximum (n − 1) tacte. Num˘ ar˘ atorul Johnson (sau Moebius). Acest tip de num˘ ar˘ ator este tot un registru inel cu particularitatea c˘ a react¸ia de la celula Q n la celula Q1 se complementeaz˘ a, adic˘ a se culege de pe QN . O structur˘ a de num˘ ar˘ ator Johnson cu patru celule, pe baz˘ a de bistabile JK, este prezentat˘ a ˆın Figura 3.79-c. Funct¸iile de excitat¸e pentru toate celulele r˘ amˆ an acela¸si ca ¸si la registrul inel, wJ i = Qi−1 , wKi = QN (i−1) , ˆın afar˘ a de prima celul˘ a unde prin react¸ia inversat˘ a se introduce un defazaj de 180 ◦ , wJ1 = QN n , wK1 = Qn ; de fapt, ¸si la implementarea cu bistabile JK celulele au o funct¸ionare de bistabil D, deoarece intr˘ arile fiec˘ arei celule sunt comandate ˆın opozit¸ie (de la Q ¸si QN ale celulei anterioare). Spre deosebire de un registru inel cu n celule, care genereaz˘ a ˆın ciclul s˘ au n cuvinte de stare, num˘ ar˘ arorul Johnson cu n celule poate avea 2n st˘ ari. Denumirea ¸si de num˘ ar˘ ator Moebius este datorit˘ a aseman˘ arii care se face cu bucla Moebius. Aceast˘ a bucl˘ a se poate confect¸iona dintr-o band˘ a de hˆ artie care, ˆınainte de a se uni (¸si lipi) cele dou˘ a capete, se r˘ asuce¸ste o dat˘ a (ˆıncercat¸i). Pornind cu un creion, dintr-un punct al buclei Moebius, drumul parcurs pˆ an˘ a se ajunge ˆın acela¸si punct este dublu fat¸a˘ de lungimea benzii deoarece se parcurg ambele fet¸e intr-un traseu continuu. Pentru num˘ ar˘ atorul Johnson, cu n = 4, din figur˘ a prin activarea semnalului RESET = 0 cuvˆ antul ˆınscris va fi z4 z3 z2 z1 = 0000. La primul impuls de ceas ˆın celula Q1 se ˆınscrie 1 deoarece, prin react¸ia inversat˘ a, intr˘ arile de date au valorile wJ1 = QN 4 = 1 ¸si wK1 = Q4 = 0. Se continu˘ a ˆınscrierea ˆın Q1 , a valorii 1 ¸si pe urm˘ atoarele trei impulsuri de ceas, cˆ and se ajunge ˆın num˘ ar˘ ator la starea z4 z3 z2 z1 = 1111, deci Q4 este ˆınscris ˆın starea 1. La al cincilea impuls de ceas ˆın Q1 se ˆınscrie valoarea 0, deoarece wJ1 = QN 4 = 0 ¸si wK1 = Q4 = 1, ¸si se continu˘ a ˆınscrierea ˆın 0 ˆın aceast˘ a celul˘ a ¸si pentru impulsurile 6, 7, 8 cˆ and se ajunge ca celula Q4 s˘ a comute din nou ˆın 0, cont¸inutul num˘ ar˘ atorului este z 4 z3 z2 z1 = 0000, deci ciclul ˆın num˘ ar˘ ator se reia, urm˘ atoarele patru impulsuri vor ˆınscrie iar˘ a¸si Q 1 ˆın starea 1; aceast˘ a funct¸ionare este sintetizat˘ a ˆın tabelul din Figura 3.79-e. Ciclul de num˘ arare este 2 × 4 = 8. Cel mai simplu num˘ ar˘ ator Johnson este cel cu n = 1, care se obt¸ine printr-o react¸ie inversat˘ a ˆın jurul unui element de ˆıntˆ arziere, bistabil D, adic˘ a bistabilul de tip T, Figura 3.50-b. Impulsurile de ceas aplicate sunt divizate cu doi, deci un ciclu de num˘ arare egal cu 2. Dar se pune ˆıntrebarea: nu se pot realiza num˘ ar˘ atoare Johnson modulo un num˘ ar impar? R˘ aspunsul este afirmativ. Se pot realiza ¸si pentru modulo (2n − 1) dac˘ a prin sinteza, ca automat, se elimin˘ a una din st˘ ari, ˆın general starea al c˘ arui cod este format numai din 1 (vezi problema 3.75). Aplicatia cea mai eficient˘ a pentru num˘ ar˘ atorul Johnson este, ca ¸si a num˘ atorului ˆın inel, cea de generator de faze. Dar spre deosebire de num˘ ar˘ atorul ˆın inel, unde

468

3.5. CIRCUITE REGISTRU

fazele sunt direct cele n ie¸siri din celulele bistabil, la num˘ ar˘ atorul Johnson cele 2n faze se genereaz˘ a prin n port¸i AND cu dou˘ a intr˘ ari; ˆın Figura 3.79-d sunt indicate conexiunile la intrarea port¸ilor AND2 pentru n = 4, iar ˆın figura 3.79-f diagrama de semnale pentru fazele generate. Ca automat, num˘ ar˘ atorul Johnson utilizeaz˘ a ˆın ciclul s˘ au normal de funct¸ionare numai 2n st˘ ari din totalul de 2n ; deci un num˘ ar de (2n − 2n) st˘ ari ilegale/anormale. Abordˆ and din punct de vedere al riscului minim, Figura 3.30-b, trebuie realizat un circuit de autocorectare care va fort¸a,din oricare stare ilegal˘ a dup˘ a un num˘ ar de maximum (n−1) tacte, ˆınscrierea st˘ arii legale 00 . . . 01. St˘ arile normale de funct¸ionare sunt numai cele cuprinse in urm˘ atorul ciclu: 00 . . . 00, 00 . . . 01, 00 . . . 11, . . . , 01 . . . 11, 11 . . . 11, 11 . . . 10, 11 . . . 00, . . . , 10 . . . 00, 00 . . . 00, 00 . . . 01, . . . . Oricare cuvˆ ant de stare anormal˘ a, ˆın care poate ajunge accidental num˘ ar˘ atorul, poate fi scris numai sub forma × . . . × 10 × . . . ×, care dup˘ a maximum(n − 2) tacte de ceas va fi deplasat ˆın num˘ ar˘ ator ˆın pozit¸ia 10 × . . . ×, iar dup˘ a ˆınc˘ a n tacte (prin react¸ia inversat˘ a) ˆın ,, pozit¸ia 0 × . . . × 0. ˆIn aceast˘ a pozit¸ie cuvˆ antul de stare, prin “amprenta lui, cu dou˘ a zerouri extreme, pe zn ¸si z1 , poate fi detectat printr-o poart˘ a NOR, (Qn + Q1 = 1), iar la urm˘ atorul tact ie¸sirea port¸ii NOR, care este 1, fort¸eaz˘ a ˆın num˘ ar˘ atorul Johnson ˆınscrierea cuvˆ antului (normal) 00 . . . 01 (vezi problema 3.79).

3.5.5

Registrul serie-paralel

Cu n bistabile D se poate realiza un registru serie sau se poate realiza un registru paralel, dar se poate realiza un registru care s˘ a aib˘ a funct¸iunile amˆ andurora? R˘ aspunsul este afirmativ, chiar mai mult, ca registru serie , deplasarea poate fi bidirect¸ional˘ a, stˆ anga/ dreapta, ¸si nu numai unidirect¸ional˘ a. Pentu a implementa toate aceste funct¸iuni ˆıntr-un singur circuit, referit ca registru serie-paralel, celula bistabil trebuie inzestrat˘ a cu un comutator selectabil (multiplexor) pe intrarea de date pentru a se putea programa conexiunile necesare ˆın funct¸ie de programarea funct¸iunii dorite. O astfel de celul˘ a din pozit¸ia i-a a registrului, cu un MUX4:1 pe intrarea de date, a fost prezentat˘ a ˆın Figura 3.72-c, cele patru surse de date fiind: dou˘ a surse (independente) 2Di , 1Di , de ˆınc˘ arcare paralel˘ a; o surs˘ a, 0Di , de ˆınc˘ arcare de pe magistrala de ie¸sire ¸si o surs˘ a, Qi , pentru ˆınc˘ arcarea cu propria-i dat˘ a a celulei. ˆIn organizarea de registru serie-paralel, cu partu celule, din Figura 3.80-a fiecare celul˘ a este ˆınzestrat˘ a cu un MUX4:1. (Notat¸iile sunt cele corespunz˘ atoare circuitului registru univerasl 74xx194 care va fi utilizat ˆın problemele ata¸sate acestui capitol). Cele patru intr˘ ari, selectate cu semnalele S 1 S0 , sunt: − (S1 S0 = 00) pentru ment¸inerea nemodificat˘ a a cont¸inutului registrului, fiecare celul˘ a se reˆıncarc˘ a la aplicatea impulsului de ceas cu propria dat˘ a: wA wB wC wD = Q A Q B Q C Q D (wA wB wC wD este notat¸ia de la automate corespunz˘ atoare st˘ arii urm˘ atoare); − (S1 S0 = 01) pentru deplasare cont¸inutului registrului cu o pozit¸ie spre dreapta, fiecare celul˘ a se ˆıncarc˘ a, la aplicarea impulsului de ceas, cu cont¸inutul celulei vecine din stˆ anga ˆın felul urm˘ ator: wB = QA , wC = QB , wD = QC , iar wA = RIN . Intrarea RIN este intrarea serie pentru deplasare spre dreapta, la aceasta se aplic˘ a cˆ ate un bit la fiecare impuls de ceas; aceast˘ a intrare poate fi

469

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

conectat˘ a la ie¸sirea serie a unui circuit registru similar, situat ˆın stˆ anga, atunci cˆ and se lucreaz˘ a cu cuvinte multiplu de patru. Ie¸sirea serie, pentru deplasarea spre dreapta, este QD ; − (S1 S0 = 10) pentru deplasarea cont¸inutului registrului cu o pozit¸ie spre stˆ anga, fiecare celul˘ a se ˆıncarc˘ a, la aplicarea impulsului de ceas, cu cont¸inutul celulei vecine din dreapta ˆın felul urm˘ ator: wA = QB , wB = QC , wC = QD , wD = LIN . Intrarea serie pentru deplasarea stˆ anga este LIN iar ie¸sirea serie este Q A ; − (S1 S0 = 11) pentru ˆınc˘ arcarea fiec˘ arei celule cu o dat˘ a independent˘ a ˆın felul urm˘ ator: wA = A, wB = B, wC = C, wD = D, registrul se ˆıncarc˘ a (paralel) la aplicarea impulsului de ceas, cu cuvˆ antul de patru bit¸i ABCD de la o surs˘ a independent˘ a. ˆIn tabelul din Figura 3.80-b este sintetizat˘ a funct¸ionarea registrului serie-paralel care corespunde circuitului 74xx194 iar simbolul de reprezentare pentru acest circuit este dat ˆın Figura 3.80-c. QB

QA Q

QC

D

Q

CLK

QD

D

Q

CLK

Q CLEAR

D

Q

CLK

Q CLEAR

D CLK

Q CLEAR

Q CLEAR CLK

MUX 4:1 11 10 01 00

MUX 4:1 11 10 01 00

MUX 4:1 11 10 01 00

MUX 4:1 11 10 01 00

RIN

a)

A

Functia Fara modificare Depl. dreapta Depl. stanga Incarcare

b)

C

B Selectare multiplexor

S1 0 0 1 1

Starea urmatoare

S 0 wA wB 0 QA QB 1 RIN QA 0 QB Q C 1

D

A

B

wC wD Q C QD QB Q C QD LIN C

RESET

S1 So

LIN

QA QB Q C QD

74XX194 CLK

CLR S 1

S 0 RIN

A B C D

LIN

D

c)

Figura 3.80 Regitrul serie-paralel: a) structurarea pentru un circuit cu patru celule; b),c) modul de funct¸ionare ¸si simbolul de reprezentare pentru circuitul 74xx194, registru universal cu patru celule. Pentru un registru operat¸ia de deplasare (shiftare), stˆ anga/dreapta cu o pozit¸ie, a unui cuvˆ ant pe un registru de deplasare necesit˘ a un tact, deci pentru n pozit¸ii n tacte; dimensiunea circuitului fiind ˆın O(n), iar adˆ ancimea ˆın O(1), cu produsul dimensiune adˆ ancime ˆın O(n). Aceea¸si operat¸ie de deplasare, cu oricare num˘ ar i pozit¸ii, 1 ≤ i ≤ n, se poate realiza pe un circuit combinat¸ional de deplasare (vezi

470

3.5. CIRCUITE REGISTRU

2.5.4) ˆıntr-un singur tact; acest circuit combinat¸ional avˆ and adˆ ancimea ˆın O(log n) iar dimensiunea ˆın O(n log n) rezutˆ and un produs dimensiune-adˆ ancime ˆın O(n log 2 n). ˆInc˘ a o dat˘ a apare, evident, compromisul ce trebuie f˘ acut ˆıntre adˆ ancime ¸si dimensiune ˆın alegerea unei solut¸ii (relat¸ia 2.9). ˆIn calea de date a microprocesoarelor, Figura 2.73, unde shiftarea trebuie realizat˘ a pe un singur tact, indiferent de num˘ arul de pozit¸ii (≤ n), se include pe lˆ ang˘ a unitatea aritmetico-logic˘ a ¸si un circuit de deplasare combinat¸ional, referit prin termenul de barrel shifter. La un registru serie-paralel cuvˆ antul de intrare, cu lungimea de n bit¸i, poate fi prezentat pentru ˆınc˘ arcare fie ˆın format serie, fie ˆın format paralel. Aplicat cuvˆ antul de intare, cˆ ate un bit la fiecare celul˘ a bistabil, pentru ˆınc˘ arcarea paralel˘ a este necesar un singur tact de ceas, pe cˆ and la ˆınc˘ arcarea serie se aplic˘ a fie la intarea RIN (deplasare dreapta) fie la LIN (deplasare stˆ anga) cˆ ate un bit al cuvˆ antului pentru fiecare tact de ceas, deci un num˘ ar de n tacte. De asemenea, pentru ie¸sirea paralel˘ a cuvˆ antul, cu lungimea de n bit¸i, cont¸inut ˆın registru poate fi accesat permanent (dac˘ a ie¸sirea nu este de tip TSL), dar la ie¸sirea serie se obt¸ine cˆ ate un bit la fiecare tact de ceas, deci cuvˆ antul se obt¸ine ˆıntr-un num˘ ar de n tacte. Combinˆ and cele patru operat¸ii (intrare serial˘ a, intrare paralel˘ a, ie¸sire paralel˘ a ¸si ie¸sire serial˘ a) disponibile pe un circuit registru serie-paralel universal apare posibilitatea utiliz˘ arii registrului ca suport pentru urm˘ atoarele patru operat¸ii de conversie/transfer: paralel-paralel, serie-serie, paralel-serie, serie-paralel, Figura 3.81. Prin schimbarea modurilor de selectare, pe durata de funct¸ionare, se pot succeda atˆ at pe intrare cˆ at ¸si pe ie¸sire prezentarea serie cu cea paralel˘ a ¸si invers. Conversiile serie-paralel ¸si paralel-serie sunt operat¸ii fundamentale ˆın implementarea transmisiilor la distant¸a˘ pe un singur fir; la emisie cuvintele, printr-o conversie paralel-serie, sunt serializate, transmise pe un singur fir, iar la recept¸ie, printr-o conversie serie-paralel, sunt deserilizate.

CLK

LOAD

Intrare date

n

1

1

n

CLK

LOAD

Intrare date

1

n

Iesire date

Iesire date

Iesire date

CLK

LOAD

Intrare date

n

Iesire date CLK

LOAD

Intrare date

1

Figura 3.81 Registrul serie-paralel utilizat pentru funct¸iunile de: a) transfer paralel-paralel; b) transfer serie-serie; c) conversie paralel-serie; d-conversie serieparalel. Se poate realiza un circuit din k registre serie, fiecare cu lungimea de n bit¸i, cu deplasare stˆ anga-dreapta (reversibil), iar deplas˘ arile (nr. de pozit¸ii, sens) se fac sincron ˆın toate aceste registre. ˆIntr-un astfel de circuit pot fi stocate n cuvinte fiecare cu lungimea de k bit¸i, deci poate fi privit ca o memorie de capacitate (n × k) bit¸i. Se pot realiza, pe aceast˘ a structurare, dou˘ a tipuri (speciale) de memorie: 1. Memoria FIFO (First-In-First-Out). Pe fiecare impuls de tact se ˆınscrie ˆın celulele bistabile de intrare (20 ) un cuvˆ ant cu lungimea de k bit¸i ¸si este deplasat stˆ anga cu o pozit¸ie. Dup˘ a n tacte s-au ˆınscris ˆın registre n cuvinte ¸si pe tactele n+1, n+2, n+3, . . . . se obt¸in la ie¸sire (celulele bistabile de pondere 2 n−1 ) cuvintele ˆın ordinea ˆın care au fost ˆınscrise (primul ˆınscris primul citit!)

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

471

2. Memoria LIFO (Last-In-First-Out). Pentru ˆınscriere se procedeaz˘ a ca ¸si la memoria FIFO (deplasare stˆ anga) dar de data aceasta citirea nu se mai face pe celulele de ie¸sire ci pe celulele bistabile de intrare (cu ponderea 2 0 ), la care de fapt s-a introdus cuvˆ antul. Pentru citirea cuvintelor ˆınscrise ˆın memorie LIFO comanda de citire produce o deplasare dreapta, deci la celulele bistabil de intrare se obt¸ine ultimul cuvˆ ant introdus (ultimul ˆınscris primul citit!). Exemplul 3.28 ˆIn sistemele de calcul, ˆın general, procesarea ¸si transferul informat¸iei, reprezentat˘ a sub form˘ a de cuvˆ ant, se realizeaz˘ a simultan asupra tuturor bit¸ilor cuvˆ antului respectiv - aceasta este procesarea paralel˘ a. ˆIn unele situat¸ii, procesarea sau transferul paralel este ˆınlocuit cu variantele seriale, adic˘ a succesiv bit dup˘ a bit pentru cuvˆ antul respectiv. Un caz tipic, ˆın acest sens, este transmisia la distant¸a pentru care se procedeaz˘ a ˆın modul urm˘ ator: la partea de emisie, unde informat¸ia ce trebuie transmis˘ a este sub forma unui cuvˆ ant, acesta este serializat, prin intermediul unui registru paralel-serie ¸si transmis bit cu bit pe un singur fir, iar la recept¸ie cuvˆ antul este convertit din nou la forma de cuvˆ ant, prin intermediul unui registru serie-paralel. ˆIn continuare se va prezenta, ca structurare de principiu, conversia serie-paralel din punctul de recept¸ie, cea paralel-serie dintr-un punct de ,, emisie poate fi privit˘ a ¸si realizat˘ a ca o “imagine ˆın oglind˘ a . Pentru transferul serial asincron pe o linie se utilizeaz˘ a urm˘ atorul protocol, care este standardizat. Cuvintele, sub form˘ a de byte, se transmit pe linie, bit dup˘ a bit ˆıncepˆ and cu D0 , LSB, ¸si terminˆ and cu D7 , MSB; cˆ and nu este transmisie pe linie nivelul de tensiune prezent este H. Transmisia unui cuvˆ ant de un byte ˆıncepe printr-o tranzit¸ie H → L a tensiunii de pe linie, Figura 3.82-a. Pentru receptor tranzit¸ia H → L sesizat˘ a constituie informat¸ia c˘ a ˆıncepe transmisia unui byte (poate fi ¸si un zgomot), iar dac˘ a nivelul L al liniei se p˘ astreaz˘ a un timp T (durat˘ a de timp ˆın secunde alocat˘ a aplic˘ arii unui bit al cuvˆ antului) se ,, consider˘ a c˘ a acesta a fost bitul de “atent¸ionare (¸si nu a fost un zgomot care, ˆın general, are o durat˘ a mai scurt˘ a) referit ca bitul de start, aplicat obligatoriu la ˆınceputul transmisiei fiec˘ arui byte. Apoi, se transmit cei opt bit¸i ai cuvˆ antului, fiecare fiind aplicat pe linie o durat˘ a T , ˆıncepˆ and cu D0 ¸si terminˆ and cu D7 . Valoarea fiec˘ arui bit recept¸ionat, pentru a mic¸sora cˆ at mai mult erorile de transmisie, este testat˘ a la mijlocul intervalului de timp T , alocat bitului respectiv; ˆın consecint¸a ˘ bitul D0 este testat dup˘ a un interval 3/2T de la sezizarea unei tranzit¸ii H → L (¸si dac˘ a nivelul L s-a p˘ astrat un interval T , bitul de start). Dup˘ a cele (8 + 1) intervale T se mai introduc unul sau dou˘ a intervale T , ˆın care linia este comandat˘ a ˆın nivelul H, ce se constituie ˆın unul sau doi bit¸i se stop. Bitul sau bit¸ii de stop sunt introdu¸si pentru a preg˘ ati o transmisie corect˘ a a urm˘ atorului cuvˆ ant, care poate porni imediat sau oricˆ and. Deci, pentru transmisia asincron˘ a a unui cuvˆ ant de un byte, se transmit 8 bit¸i de date, un bit de start ¸si unul sau doi bit¸i de stop, de unde referirea ca tip de transmisie 8/10 sau 8/11. Viteza de transmisie pe linie se m˘ asoar˘ a ˆın baud (rata ˆın Baud, se cite¸ste bauzi) ¸si este definit˘ a ca inversul duratei T a celui mai scurt element din codul cuvˆ antului transmis pe linie. Unele din frecvent¸ele (standard) inferioare sunt: 19200, 9600, 4800, 2400, 600, 300, 150, 110,75. De exemplu, pentru cuvinte ˆın format 8/11, la o rat˘ a (frecvent¸a) de 110 baud, se transmit 8 cuvinte adic˘ a numai 80 bit¸i de informat¸ie (¸si nu 110); iar la o rat˘ a de 2400 baud, durata T este de 416 32 µs. Realizarea transmisiei asincrone impune ca rata baud s˘ a aib˘ a aceea¸si valoare la emisie ¸si la recept¸ie. Termenul asincron, din acest protocol, semnific˘ a faptul c˘ a transmisia/(aparit¸ia) unui cuvˆ ant ˆın linie poate fi ˆın oricare moment de timp. ˆIn Figura 3.82-b este structurat un bloc de recept¸ie asincron conform protocolului expus anterior. La aparit¸ia pe linie a unei tranzit¸ii H → L bistabilul de control este ˆınscris ˆın starea Q = 1 care comand˘ a declan¸sarea astabilului sincronizat, cu o ˆıntˆ arziere de 32 T . Semnalul generat de astabil, cu frecvent¸a 1/T , este utilizat ca semnal de ceas, pe frontul pozitiv,

472

3.5. CIRCUITE REGISTRU

Stop bit 1

Bitul de start

D1

D0

D2

D3

D4

D5

D6

Stop bit 2

Bitul de start

D7

Timpul de transmisie 1 caracter (8 biti+1 bit de stop+2 biti de stop)

a) Linie Intrare date "1" serie

D

Bistabil de control

J CLK

Q

Astabil sincronizat

Monostabil

CLK

Registru serie, 8 biti

CLEAR

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

RCO

1

Numarator modulo 8

LOAD

.

1

(RCO CLK)

Q

CLK

Registru paralel, 8 biti

D7 D6 D5 D4 D3 D2 D1 D0

CLEAR

b)

D1

CLK

EN

K CLEAR

D0

Urmatorul caracter

Iesire date−paralel Stop bit 1

Bitii cuvantului de intrare−serie Bistabil de control

Stop bit 2

Q CLK

Date intrate in registrul serie

.

Q7

D7 =0

Q6

D 6 =1

Q5

D 5 =0

Q4

D 4 =1

Q3

D 3 =1

Q2

D 2 =0

Q1

D 1 =0

Q0

D 0 =1

¬s¬­

(RCO CLK)

c)

CLEAR Transmisie paralela

uP

UART

Transmisie serie

1

CLK

Registru receptie date

Periferic

Conversie serie−paralel

Intrare

Conversie paralel−serie

Iesire date serie

date serie

Buffer

1

f)

Bitii cuvantului de iesire (paralel)

d)

Registru transmisie date CLK

Figura 3.82 Transmisia serial˘ a asincron˘ a: a) protocolul tip 8/10 sau 8/11 de transmisie asincron˘ a; b) structurarea unui bloc de recept¸ie asincron˘ a; c) diagrama semnalelor pentru procesul de conversie serie-paralel; d) structurarea, de principiu, a unui circuit UART ¸si (e) utilizarea sa ca interfat¸a˘ ˆıntr-un sistem pe baz˘ a de microprocesor.

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

473

pentru ˆınc˘ arcarea serial˘ a ˆın registrul serie de 8 bit¸i a cuvˆ antului recept¸ionat de pe linie ¸si pentru num˘ ar˘ atorul modulo 8. Dup˘ a opt tacte de ceas registrul serie este plin cu byte-ul recept¸ionat iar num˘ ar˘ atorul generez˘ a semnalul RCO. Prin poarta 1, pe durata T /2 al celui de al optulea impuls de ceas, este generat semnalul (RCO · CLK) care comand˘ a: 1 - ˆınc˘ arcarea cont¸inutului registrului serie Q7 , Q6 , . . . , Q1 , Q0 ˆın registrul paralel de 8 bit¸i, deci la ie¸sirea acestuia se obt¸ine, ˆın paralel, cuvˆ antul D7 , D6 , . . . , D1 , D0 transmis serial pe linie; 2 - monostabilul care generez˘ a un impuls CLEAR ce constituie semnalul de reset pentru bistabilul de control (Q = 0 deci astabilul este blocat) ¸si pentru num˘ ar˘ atorul modulo 8. Blocul de recept¸ie este preg˘ atit pentru recept¸ia urm˘ atorului cuvˆ ant pe linie care poate apare oricˆ and dup˘ a consumarea unuia sau a doi bit¸i de stop. Diagramele semnalelor pentru procesul de recept¸ie ¸si conversie serie-paralel sunt prezentate ˆın Figura 3.82-c. Circuitul UART (Universal Asynchronous Receiver Transmitter), Figura 3.82-d, obtenabil comercial, include atˆ at partea de recept¸ie cˆ at ¸si partea de emisie. Partea de recept¸ie, cu o structur˘ a similar˘ a cu cea prezentat˘ a anterior, recept¸ioneaz˘ a serie, converte¸ste ˆın paralel ¸si printr-un registru buffer depune datele pe o magistral˘ a paralel˘ a. Partea de emisie, printr-un buffer, preia datele de pe o magistral˘ a paralel˘ a ¸si dup˘ a o convesie paralel-serie transmite serial datele pe linie. Un astfel de circiut totdeauna interfat¸eaz˘ a, ˆıntr-un sistem pe baz˘ a de microprocesor, conectarea unui periferic ce are intrarea ¸si ie¸sirea serie, Figura 3.82-e

3.5.6

Circuite liniare cu registre de deplasare

Un sistem, definit ca o aplicat¸ie f de pe mult¸imea intr˘ arilor X pe mult¸imea ie¸sirilor Y , Y = f (X), este referit ca fiind liniar dac˘ a i se poate aplica principiul superpozit¸iei (1. r˘ aspunsul la dou˘ a sau mai multe intr˘ ari este egal cu suma r˘ aspunsurilor la fiecare intrare ˆın parte: dac˘ a y1 = f (x1 ), y2 = f (x2 ) atunci y1 + y2 = f (x1 + x2 )); 2. p˘ astreaz˘ a factorul de scalare al intr˘ arilor (pentru a · x → af (x)). Pe mult¸imea binar˘ a elementele liniare sunt: elementul de ˆıntˆ arziere (celula bistabil D) ¸si operatorul XOR (NXOR); nu sunt liniari operatorii OR ¸si AND. Deci sistemele digitale realizate cu celule D (registre de deplasare) ¸si port¸i XOR sunt referite ca sisteme liniare. Pentru sistemele (secvent¸iale) liniare, utilizˆ and adunarea modulo 2 ¸si nu adunarea logic˘ a, cˆ and mult¸imea de definit¸ie este 0,1, aritmetica cu care se opereaz˘ a este pe cˆ ampul Galois GF (2); se pot concepe astfel de sisteme pe oricare cˆ amp Galois GF (q), vezi sect¸iunea 1.1.2. Operat¸iile pe GF (2) sunt identice cu cele din aritmetica numerelor reale cu deosebire de adunare (care este modulo 2). Pe GF (2) oricare element, pentru adunare, este identic cu inversul s˘ au A = −A, deci sc˘ aderea este identic˘ a cu adunarea (A ⊕ A = 0, A ⊕ 0 = A, A ⊕ 1 = −A). Amintim relat¸ia: dac˘ a A ⊕ B = C atunci A = C ⊕ B (pentru c˘ a A ⊕ B ⊕ B = C ⊕ B → A = C ⊕ B), B = A ⊕ C ¸si A ⊕ B ⊕ C = 0. Pentru analiza funct¸ion˘ arii circuitelor realizate cu port¸i logice XOR ¸si celule de ˆıntˆ arziere cu bistabile D se vor utiliza (pentru comparat¸ie) patru circuite; Figura 3.83: dou˘ a compuse numai din din cˆ ate o poatr˘ a XOR ¸si o celul˘ a D, dar unul din ele cu react¸ie; dou˘ a circuite mai complexe realizate din cinci celule bistabil D ¸si patru port¸i XOR, dar unul, de asemenea, cu react¸ie. Se consider˘ a c˘ a toate celulele bistabil comut˘ a sincron pe frontul semnalului de ceas. Dup˘ a aplicarea frontului activ de ceas, pe durata perioadei de ceas T , ie¸sirea oric˘ arui circuit se calculeaz˘ a ca o sum˘ a modulo

474

3.5. CIRCUITE REGISTRU

DX

Xi = 0 0 0 1 0 0 0 0 CLK= 0 1 2

Y=X + DX

X

a)

CLK= 0 1 2

Yi1 = 0 0 0 1 1 0 0 0

H 1 (D) = Y(D) =I + D

000 1 1 1 1 1

X t=

Yt1= 0 0 0 1 0 0 0 0

X(D)

Xi = 0 0 0 1 0 0 0 0

DY

CLK= 0 1 2

X=Y+ DY Y(D) X(D)

H 2 (D)

b)

=

X

H 3 (D) Y(D) X(D)

CLK= 0 1 2

Yi2 = 0 0 0 1 1 1 1 1

Yt2= 0 0 0 1 0 1 0 1 0

Xi = 0 0 0 1 1 1 1 1

Xt =

CLK= 0 1 2

Y

Y=X DX

000 1 1 1 1 1

I I+D

DX D2X D3X D4X D5X

D2X

Xt =

D3X

D4X

CLK= 0 1 2

Yi3 = 0 0 1 1 1 1 0 0

D5X

X=

2 3 4 5 = I+D +D +D +D +D

000 1 1 1 1 1

Yt3 = 0 0 0 1 0 1 0 0 11

00 1 0 1 00 1 1 0 0 0 0 0 0 0 0 0 CLK= 1 2

Y 3= 0 0 11 0 0 1 1 0 1 0 1 1 1 0 0 0 0

c) DY D2Y D3Y D4Y D5Y H 4 (D) =

X

Y

Y(D) X(D)

=

I 2 3 4 5 I+D +D +D +D +D

Y=X+ DY+ D2Y+D3Y+D4Y+D5Y

X i= 0 0 0 1 0 0 0 CLK= 1 2 3

Yi4 = 0 Xt =

30 31 32

0 0 11 0 0 1 0 0 1 1 1 1 1 0 111

0 0 0 1 0 1 0 11 0 1 0 0 0 0 0 11 0 0 1 0

1 ciclu de 31 tacte

000 1 1 1 CLK= 1 2

Xt4= d)

se repeta

000 1 0 0 0

30 31 32

111 0 1 0 1 0 0

0 11111 0 0 1 1 0 11 0 0 0 0 0 1 0 0 0 1 1 ciclu de 31 tacte

se repeta

Figura 3.83 Secvent¸ele de r˘ aspuns Yi ¸si Yt pentru semnalele de intrare impuls unitar Xi ¸si treapt˘ a unitar˘ a Xt aplicate la: a),c) circuite secvent¸iale liniare far˘ a react¸ie; b),d) circuite secvent¸iale liniare cu react¸ie.

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

475

2 ˆıntre valoarea bitului existent pe intrare ¸si cu anumite valori anterioare ale bit¸ilor din succesiunea X aplicat˘ a pe intrare, sau cu valorile anumitor bit¸i din succesiunea Y obt¸inut˘ a la ie¸sire, valori care au fost stocate ˆın celule de memorare D. Rezult˘ a ,, c˘ a ie¸sirea depinde, pe lˆ ang˘ a intrarea prezent˘ a, ¸si de “istoria funct¸ion˘ arii circuitului. Apare o similitudine, ˆın funct¸ionare, cu un automat sincron(care la fel depinde de ,, “istoria sa), de unde pentru denumirea acestor circuite liniare s-a ajuns la sintagma circuite secvent¸iale liniare. Semnalele utilizate ˆın testarea acestor circuite, prin care se pot evident¸ia anumite particularit˘ a¸ti de structurare ale circuitului respectiv, sunt semnalul impuls unitar ¸si semnalul treapt˘ a unitar˘ a. Pentru sistemele digitale, semnalul impuls unitar este format din 1 precedat ¸si urmat de un ¸sir infinit de zero-uri, X i = . . . 0001000 . . ., iar semnalul treapt˘ a unitar˘ a este format dintr-un ¸sir infinit de 1 precedat de un ¸sir infinit de zero-uri Xt = . . . 000111 . . .. Pentru circuitul simplu din Figura 3.83-a, compus dintr-o poart˘ a XOR ¸si o celul˘ a D se poate deduce simplu modul de calcul al bitului de ie¸sire Y 1 = X ⊕ DX. Rezult˘ a c˘ a fiecare bit de ie¸sire, dup˘ a aplicarea frontului activ de ceas (tactului) pe durata perioadei de ceas, TCLK , se calculeaz˘ a prin sum˘ a modulo 2 ˆıntre valoarea bitului prezent pe intrare X ¸si bitul anterior de intrare DX (stocat ˆın celula D), deci Y = X(I ⊕ D); I - este operatorul unitar, D 0 = I, relat¸ia 3.48. R˘ aspunsurile Yi1 ¸si Yt1 , la aplicarea semnalelor impuls unitar Xi ¸si treapt˘ a unitar˘ a Yt , sunt prezentate ˆın aceea¸si figur˘ a. Circuitul din Figura 3.83-b, cu acelea¸si componente ca ¸si cel din Figura 3.83-a, dar pentru elementul de ˆıntˆ arziere fluxul de transfer este de la ie¸sire la intrare, realizeaz˘ a o react¸ie, deci se memoreaz˘ a ie¸sirea, DY . Din structura circuitului se deduce Y = X ⊕ DY , care se transform˘ a ˆın Y ⊕ DY = X, deci X = Y (I ⊕ D). Fiecare bit de ie¸sire, pe durata unei perioade de ceas, TCLK , se calculeaz˘ a prin sum˘ a modulo 2 ˆıntre valoarea bitului prezent pe intrare X ¸si a bitului de ie¸sire DY , care a fost ˆın perioada anterioar˘ a a semnalului de ceas (ˆınainte de aplicarea tactului). R˘ aspunsurile Y i2 ¸si Yt2 , la aplicarea semnalelor impuls unitar Xi ¸si treapt˘ a unitar˘ a Xt , sunt prezentate ˆın aceea¸si figur˘ a. R˘ aspunsul la un semnal treapt˘ a Y t2 este un semnal cu variat¸ie dreptunghiular˘ a cu perioada 2TCLK (de fapt acest circuit nu este altceva decˆ at o transformare a bistbilului D ˆın bistabil T, Figura 3.50-b, care divizeaz˘ a cu doi frecvent¸a semnalului de ceas cˆ and T = 1). Analizˆ and circuitul din Figura 3.83-c se poate deduce u¸sor relat¸ia pentru semnalul de ie¸sire, Y = X ⊕ DX ⊕ D 2 X ⊕ D 3 x ⊕ D 5 X = X(I ⊕ D ⊕ D 2 ⊕ D 3 ⊕ D 5 ). Bitul de ie¸sire, pe durata unei perioade de ceas TCLK , se calculeaz˘ a prin sum˘ a modulo 2 ˆıntre valoarea bitului aplicat pe intrare ¸si valorile bit¸ilor anteriori (aplicat¸i cu unu, dou˘ a, trei ¸si cinci tacte ˆınainte) din ¸sirul de intrare, valori memorate sub forma DX, D 2 X, D3 X ¸si D 5 X. Dup˘ a aceast˘ a regul˘ a sunt calculate r˘ aspunsurile la semnal impuls Y i3 ¸si la semnal treapt˘ a Yt3 , prezentate ˆın aceea¸si figur˘ a. La circuitul din Figura 3.83-d, din modul de realizare a conexiunilor se deduce expresia pentru calculul semnalului de ie¸sire Y = X ⊕ DY ⊕ D 2 Y ⊕ D 3 Y ⊕ D 5 Y → Y ⊕ Y ⊕ X = Y ⊕ X ⊕ X ⊕ DY ⊕ D 2 Y ⊕ D 3 Y ⊕ D 5 Y → X = Y (I ⊕ D ⊕ D 2 ⊕ D3 ⊕ D 5 ). Pentru fiecare bit din ¸sirul de intrare, valoarea bitului de ie¸sire se obt¸ine prin sumare modulo 2 ˆıntre valoarea bitului aplicat pe intrare ¸si valorile bit¸ilor de ie¸sire anteriori DY , D 2 Y , D 3 Y ¸si D 5 Y . Spre deosebire de circuitul anterior, unde ˆın registru de deplasare sunt introdu¸si bit¸ii ¸sirului de intrare, aici ˆın registrul de

476

3.5. CIRCUITE REGISTRU

deplasare sunt introdu¸si bit¸ii ¸sirului de ie¸sire. Aplicˆ and regula de calcul a circuitului, pe aceea¸si figur˘ a, sunt prezentate ¸sirurile Y i4 ¸si Yt4 care sunt r˘ aspunsurile la semnalul impuls unitar ¸si semnalul treapt˘ a unitar˘ a. Ambele r˘ aspunsuri sunt ¸siruri periodice de impulsuri, perioad˘ a ce se ˆıntinde pe durata a 31 impulsuri de tact. Pentru Y i4 se observ˘ a c˘ a impulsul unitar de pornire nu se mai aplic˘ a (la al 31-lea tact de ceas), deci poate fi considerat ca un ciruit cu funct¸ionare autonom˘ a, cu un ciclu de 31 tacte, pentru amorsare este necesar doar un singur impuls. Circuitele cu funct¸ionare autonom˘ a sunt utilizate mai mult pentru succesiunea de cuvinte generate ˆın paralel, la ie¸sirile bistabilelor care formeaz˘ a registrul de deplasare, decˆ at pentru generarea succesiunii serie de bit¸i la ie¸sire. Utilizˆ and principiul superpozit¸iei, succesiunea de bit¸i de la ie¸sire, pentru oricare succesiune de bit¸i aplicat˘ a la intrare, se poate obt¸ine pe baza r˘ aspunsului la semnalul impuls unitar. Se va exemplifica pentru circuitul din Figura 3.83-c. Deoarece un semnal treapt˘ a unitar˘ a, Xt , se poate compune printr-o sumare infinit˘ a de semnale impuls unitar, Xi , defazat unul de altul cu TCLK , rezult˘ a r˘ aspunsul la semnal treapt˘ a prin sumare modulo 2 a r˘ aspunsurilor de semnal impuls ˆın felul urm˘ ator: . . . 00010000 . . . . . . 00010000 . . . . . . 00010000 . . . . . . 00010000 . . . ··············· Xt = . . . 1111 . . . . . . . . .

. . . 00011110100 . . . . . . 00011110100 . . . . . . 00011110100 . . . . . . 00011110100 . . . ·················· Xt3 = . . . 101001111 . . .

Invers, deoarece un semnal impuls Xi poate fi compus prin sum˘ a modulo 2 ˆıntre dou˘ a semnale Xt defazate cu TCLK , semnalul Xi3 se obt¸ine prin sumarea modulo 2 ˆıntre dou˘ a semnale Yt3 (ˆıncercat¸i!). ˆIn Figura 3.83-c este prezentat r˘ aspunsul circuitului ¸si pentru urm˘ atoarea succesiune de intrare compus˘ a din ¸sapte bit¸i X = . . . 0001010011000 . . .. Compunˆ and aceast˘ a succesiune din semnale impuls unitar defazate corespunz˘ ator se obt¸ine:   . . . 00010000 . . .          . . . 0000010000 . . .  . . . 0000000010000 . . . ⇒ Y3 = ⊕ X=⊕     . . . 00000000010000 . . .       . . . 00010100110000 . . .

. . . 0001111010000 . . . . . . 000001111010000 . . . . . . 000000001111010000 . . . . . . 0000000001111010000 . . . . . . 0001100110101110000 . . .

Aceast˘ a operare, ˆın timp, asupra bit¸ilor de intrare ¸si asupra bit¸ilor de intrare/ie¸sire anteriori, stocat¸i ˆın celulele bistabil, este destul de laborioas˘ a ¸si supus˘ a la erori, mai ales dac˘ a sunt multe celule de memorare. Se poate evita aceast˘ a operare, printro algebrizare a calculelor, dac˘ a ¸si ¸sirurile de bit¸i de intrare ¸si cele de ie¸sire sunt reprezentate ca polinoame dup˘ a puterile variabilei D. De exemplu, pentru secvent¸a de 7 bit¸i, utilizat˘ a anterior, X = . . . 0001010011000 . . . se face reprezentarea X(D) = I ⊕ D2 ⊕ D 5 ⊕ D 6 . Bitul bi din pozit¸ia i a secvent¸ei de intrare este reprezentat ˆın polinom prin termenul bi Di (pentru bi = 0 → 0 · D i = 0 ¸si pentru bi = 1 → 1 · D i = D i ); primul bit care se aplic˘ a circuitului, ce corespunde cu MSB, are pozit¸ia zero ¸si are totdeauna valoarea 1, deci 1·D 0 = I. Pentru secvent¸ele de impuls unitar Xi ¸si treapt˘ a

477

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

unitar˘ a Xt se obt¸in urm˘ atoarele reprezent˘ ari polinomiale: Xi (D) = Xt (D) =

1 · D0 = I I ⊕ D ⊕ D2 ⊕ D3 ⊕ D4 ⊕ D5 ⊕ D6 ⊕ . . .

(3.52)

Raportul ˆıntre polinomul secvent¸ei de ie¸sire Y (D) ¸si al polinomului secvent¸ei de intrare X(D) define¸ste funct¸ia de transfer a circuitului, H(D): H(D) =

Y (D) X(D)

(3.53)

Funct¸ia de transfer pentru un circuit se deduce din analiza conexiunilor (structurarea) ˆıntre registrul de deplasare ¸si port¸ile XOR. De exemplu, pentru circuitele f˘ ar˘ a react¸ie din Figura 3.83 se deduc H3 (D) = I ⊕ D ⊕ D 2 ⊕ D 3 ⊕ D 5

H1 (D) = (I ⊕ D) iar pentru circuitele cu react¸ie H2 (D) = I/I ⊕ D

H4 (D) = I/(I ⊕ D ⊕ D 2 ⊕ D 3 ⊕ D 5 )

Cunoscˆ and polinomul secvent¸ei de intrare X(D) ¸si funct¸ia de transfer a circuitului H(D) cu relat¸ia 3.53 se poate calcula polinomul secvent¸ei de ie¸sire Y (D), care este o mapare a bit¸ilor 1 din secvent¸a de ie¸sire. Prin acest mod de calcul se va exemplifica ˆın continuare determinarea (¸si ˆın acela¸si timp verificarea) secvent¸elor de ie¸sire pentru semnalele de intrare prezentate ˆın Figura 3.83-c. 1.

R˘ aspunsul la treapt˘ a unitar˘ a, Xt (D). Yt3 (D) = H3 (D) · Xt (D) = H3 (D) · (I ⊕ D ⊕ D 2 ⊕ D 3 ⊕ D 4 ⊕ . . .) = = I · H3 (D) ⊕ D · H3 (D) ⊕ D 2 · H3 (D) ⊕ D 3 · H3 (D) ⊕ . . . = = H3 (D) ⊕ D · H3 (D)(I ⊕ D ⊕ D 2 ⊕ D 3 ⊕ . . .) = H3 (D) ⊕ D · Yt3 

Yt3 (D) ⊕ D · Yt3 (D) =

H3 (D) ⊕ D · Yt3 (D) ⊕ D · Yt3 (D) =  = H3 (D) → Yt3 (I ⊕ D) = H3 (D)

Yt3 (D) = H3 (D)/(I ⊕ D) = (I ⊕ D ⊕ D 2 ⊕ D 3 ⊕ D 5 )/(I ⊕ D) = = I ⊕ D 2 ⊕ D 5 ⊕ D 6 ⊕ D 7 ⊕ . . . deci 0001010011 . . .

2.

(I ⊕ D ⊕ D 2 ⊕ D 3 ⊕ D 5 ) ⊕ (D 6 ⊕ D 6 ) ⊕ (D 7 ⊕ D 7 ) ⊕ (D 8 ⊕ D 8 ) =  = (I ⊕ D) ⊕ (I ⊕ D)D 2 ⊕ (I ⊕ D)D 5 ⊕ (I ⊕ D)D 6 ⊕ (I ⊕ D)D 7 ⊕ . . . R˘ aspunsul la impuls unitar, Xi (D).

Yi3 (D) = H3 (D)·Xi (D) = H3 (D) = I⊕D⊕D 2 ⊕D 3 ⊕D 5 deci Yi3 = 11110100 . . .

478 3.

3.5. CIRCUITE REGISTRU

R˘ aspunsul la secvent¸a X = . . . 0001010011000 . . . Y3 (D) = H3 (D) · X(D) = (I ⊕ D ⊕ D 2 ⊕ D 3 ⊕ D 5 ) · (I ⊕ D 2 ⊕ D 5 ⊕ D 6 ) = I ⊕ D ⊕ D 4 ⊕ D 5 ⊕ D 7 ⊕ D 9 ⊕ D 10 ⊕ D 11

deci Y3 = 110011010111000 . . . Similar, se pot calcula r˘ aspunsurile la semnal treapt˘ a ¸si semnal impuls pentru circuitul cu react¸ie cu funct¸ia de transfer H 4 (D). Dificultatea, de data aceasta, const˘ a ˆın faptul c˘ a pentru Yi4 (D) ¸si Yt4 (D) rezult˘ a polinoame a c˘ aror puteri ajung la D 31 . Dar mai simplu, aceste dou˘ a polinoame pot fi obt¸inute, invers, dac˘ a ¸sirul de bit¸i, ˆın timp, pentru Yi4 ¸si Yt4 din Figura 3.83-d este mapat direct ˆın forma polinomial˘ a (se consider˘ a numai puterile pentru care exist˘ a impuls ˆın r˘ aspunsul ˆın timp, 0D i = 0,1D i = D i ). La realizarea unui singur circuit din mai multe circuite componente cu funct¸iile de transfer H1 (D), H2 (D), . . . Hk (D), pentru determinarea funct¸iei de transfer rezultante H(D), se utilizeaz˘ a algebra funct¸iilor de transfer. Pentru circuitul obt¸inut, prin ˆınserierea de circuite componente, funct¸iile de transfer se ˆınmult¸esc H(D) = H1 (D) · H2 (D) . . . Hk (D); prin conectare ˆın paralel de circuite componente funct¸iile de transfer se sumeaz˘ a modulo 2 H(D) = H1 (D) ⊕ H2 (D) ⊕ . . . ⊕ Hk (D), iar pentru serie paralel sau paralel serie se combin˘ a ˆınmult¸irea cu sumarea. Din analiza circuitelor liniare cu registre de deplasare rezult˘ a c˘ a acestea pot fi utilizate ca filtre binare - o succesiune de bit¸i aplicat˘ a pe intrare este modificat˘ a ˆıntro alt˘ a succesiune de bit¸i de ie¸sire ˆın funct¸ie de funct¸ia de transfer a circuitului. Dar, abordarea poate fi ¸si de sintez˘ a, impunˆ andu-se transformarea unei anumite secvent¸e de intrare X(D) ˆıntr-o anumit˘ a secvent¸a˘ de ie¸sire Y (D) se determin˘ a funct¸ia de transfer H(D) - apoi, din funct¸ia de transfer se deduce structura circuitului c˘ autat. Pentru circuitul cu funct¸ia de transfer H(D) = I ⊕ D ⊕ D 3 s˘ a se determine secvent¸a de intrare nul˘ a. Solut¸ie. Secvent¸a de intrare nul˘ a X0 (D) este acel ¸sir de bit¸i aplicat pe intrare care produce pe ie¸sire secvent¸a Y (D) = . . . 0000 . . . , deci respect˘ a relat¸ia

Exemplul 3.29

X0 (D)·H(D) = X0 (D)⊕DX0 (D)⊕D 3 X0 (D) = 0



X0 (D) = DX0 (D)⊕D 3 X0 (D)

Expresia obt¸inut˘ a pentru X0 (D) arat˘ a c˘ a fiecare bit care trebuie s˘ a se aplice pe intrare se calculeaz˘ a ca sum˘ a modulo 2 ˆıntre bit¸ii registrului de deplasare din celulele D ¸si D 3 . Dar pornind din repaus cu acest filtru, adic˘ a toate celulele pline cu 0, rezult˘ a c˘ a adev˘ arata secvent¸a ˘ nul˘ a este un ¸sir de zero-uri (dar care nu va putea scoate filtrul din repaus). Pentru a scoate filtrul din repaus se accept˘ a ca secvent¸a de intrare nul˘ a s˘ a aib˘ a primul bit 1, care genereaz˘ a ¸si ˆın ie¸sire primul bit 1, ceea ce violeaz˘ a ¸sirul de zero-uri pe ie¸sire pentru primul bit. Dar procedˆ and ˆın acest mod secvent¸a nul˘ a de ie¸sire este considerat˘ a ca fiind r˘ aspunsul unitar Y (D) = I, deci relat¸ia anterioar˘ a se rescrie. I = X0 (D) · H(D) = X0 (D) ⊕ D · X0 (D) ⊕ D 3 · X0 (D) X0 (D) = I/(I ⊕ D ⊕ D 3 ) = 1 ⊕ D ⊕ D 2 ⊕ D4 ⊕ D7 ⊕ D8 ⊕ . . .

rezult˘ a secvent¸ele:

X0 = Y = Xi =

. . . . . . . 000..1110100..1110100..1110100.. . . . . . . . . . . 000..1000000..0000000..0000000.. . . .

(3.54)

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

479

Aplicat¸ii ˆın transmisia codurilor ciclice. Oricare CLC cu ie¸siri multiple poate fi privit ca un transcodor, Figura 2.33, conversia ˆıntr-un alt cod efectuˆ andu-se ˆın paralel. Pentru codurile ciclice, ai c˘ aror bit¸i se transmit serial, codificarea ¸si decodificarea se realizeaz˘ a prin trecerea ¸sirului de bit¸i prin circuite secvent¸iale liniare. Codurile ciclice, care apart¸in unei clase generale a codurilor algebrice detectoare de erori, prezint˘ a distinctiv faptul c˘ a: dac˘ a vectorul (b n−1 bn−2 . . . b3 b2 b1 b0 ) reprezint˘ a un cuvˆ ant al codului atunci ¸si combinat¸ia (b 0 bn−1 bn−2 . . . b3 , b2 b1 ) obt¸inut˘ a prin deplasarea ciclic˘ a a bit¸ilor, apart¸ine de asemenea codului. ˆIn principiu, pentru transmisia codurilor ciclice (secvent¸a X(D)) acestea sunt aplicate la emisie ˆıntr-un circuit secvent¸ial cu funct¸ia de transfer H(D) ce genereaz˘ a secvent¸a de ie¸sire Y (D). Ceea ce de fapt este o ˆınmult¸ire modulo 2 a polinomului de intrare X(D) (codul de transmis) cu polinomul circuitului (funct¸ia de transfer). Este posibil ca pe canalul de transmisie s˘ a fie injectat un zgomot, N , la recept¸ie ajungˆ and secvent¸a X 0 (D) = Y 0 (D) + N . Recept¸ia se face printr-un circuit cu o funct¸ie de transfer de forma 1/H(D) obt¸inˆ andu-se la ie¸sire secvent¸a: Y 0 (D) =

1 1 1 (Y (D) + N ) = (X(D)H(D) + N ) = X(D) + ·N H(D) H(D) H(D)

De data aceasta se realizeaz˘ a o ˆımp˘ art¸ire cu acela¸si polinom cu care s-a ˆınmult¸it le emisie; la o transmisie corect˘ a restul ˆımp˘ art¸irii trebuie s˘ a fie nul. Dac˘ a cuvˆ antul de cod nu este modificat de zgomot (N = 0) atunci Y 0 (D) = 1 X(D). Dac˘ a N 6= 0 atunci analiza termenului H(D) · N , la recept¸ie, va indica transmisia ˆınc˘ arcat˘ a cu zgomot a cuvˆ antului X(D); dar chiar mai mult, se poate indica pozit¸ia din cuvˆ ant a bitului/bit¸ilor modificat/modificat¸i precum ¸si corectarea pentru obt¸inerea cuvˆ antului (init¸ial) corect [Vl˘ adut¸iu 0 89]. ˆIn Figura 3.84, un cuvˆ ant de patru bit¸i, 1110, din cele 16 posibile, este transmis printr-o pereche de filtre liniare cu funct¸ii inverse. La emisie, cuvˆ antul este extins la o lungime de cod de 7 bit¸i, 1110 000, ad˘ augˆ and pe ultimele trei pozit¸ii trei bit¸i 000, referit¸i ca bit¸i de control. Se obt¸ine la ie¸sire din filtrul de la emisie, care are funct¸ia de transfer H(D) = I ⊕ D 2 ⊕ D3 , urm˘ atorul ¸sir 1100010. ˆIn linia de transmisie, un zgomot injecteaz˘ a ˆın pozit¸ia a patra din dreapta un bit 1, deci la intrarea filtrului de recept¸ie, cu funct¸ia 1/H(D), se aplic˘ a ¸sirul X 0 = 1101010. Se obt¸ine ¸sirul de ie¸sire Y 0 = 1111 001 ˆın care ultimii trei bit¸i de control difer˘ a de 000, ceea ce indic˘ a faptul c˘ a transmisia s-a realizat cu eroare (pe baza cuvˆ antului de control 001 se poate detecta ¸si corecta eroarea).)

Exemplul 3.30

Circuite liniare cu registre de deplasare cu react¸ie, autonome. Aceste circuite dup˘ a cum reiese ¸si din aceast˘ a denumire (lung˘ a!) sunt de fapt filtre binare cu react¸ie, prezentate anterior, dar la care este eliminat˘ a intrarea, referite ˆın literatur˘ a ca circuite de deplasare cu react¸ie, LFSR (autonomous Linear-Feedback Shift-Register). Neexistˆ and intrare, circuitul dup˘ a amorsare continu˘ a s˘ a genereze un semnal periodic, prin aplicarea impulsurilor de ceas, ceea ce poate fi analogul discret al unui oscilator. De exemplu, la circuitul cu react¸ie din Figura 3.83-d r˘ aspunsul Y i4 la un semnal impuls unitar este o secvent¸a˘ cu o perioad˘ a de 31 de tacte. De asemenea, la circuitul cu funct¸ia de transfer H(D) = I ⊕ D 2 ⊕ D 3 din Exemplul 3.29 aplicˆ and pe intrare secvent¸a nul˘ a se obt¸ine pe ie¸sire secvent¸a care este semnalul impuls unitar X i ; dar

480

3.5. CIRCUITE REGISTRU

D3

H(D)=I D2 D

D3

D2

N

Y

X 1110 000

X

D

D2

D3

Y

0 1 1 1 0 0 0 0

0 0 1 1 1 0 0 0

0 0 0 1 1 1 0 0

0 0 0 0 1 1 1 0

0 1 1 0 0 0 1 0

D3

I I

D2

D2 D3 D

0001000

Y’

X’

1100010

Emisie

a)

H(D)=

Canal de transmisie

1101010

X 0 0 0 1 0 0 0

0 1 1 0 1 0 1 0

1111 001

Receptie

D3

D2

D

Y

0 0 0 0 1 1 1 1

0 0 0 1 1 1 1 0

0 0 1 1 1 1 0 0

0 1 1 1 1 0 0 1

b) Figura 3.84 Transmisie cu detectare ¸si corectare de eroare: a) structur˘ a de circuit pe baz˘ a de filtre secvent¸iale liniare cu funct¸ii de transfer inverse; b) tabele cu modificarea cont¸inuturilor filtrelor de la emisie ¸si de la recept¸ie.

dac˘ a acest circuit este realizat cu react¸ie, cu funct¸ia de transfer 1/H(D) care are structura circuitului receptor din Figura 3.84-a, atunci aplicˆ andu-i pe intrare (pentru amorsare) secvent¸a impuls unitar se obt¸ine pe ie¸sire un semnal periodic care este secvent¸a nul˘ a (invers, ˆın raport cu relat¸ia 3.53).

Xi = Y0 =

. . . . . . 000..1000000..0000000.. . . . . . . . . . 000..1110100..1110100.. . . .

La aceste dou˘ a circuite cu react¸ie se constat˘ a c˘ a fiind ˆın starea zero, toate celulele pline cu 0, dac˘ a se aplica˘ a numai o singur˘ a dat˘ a impulsul unitar, vor genera permanent o secvent¸a˘ periodic˘ a, chiar dac˘ a intrarea este zero, deci au autonomie fat¸a˘ de intrare. Structura de principiu pentru un circuit de deplasare cu react¸ie ca n celule este prezentat˘ a ˆın Figura 3.85-a. La sumatoarele modulo 2 intr˘ arile sunt ie¸sirile din celulele registrului de deplasare multiplicate cu coeficient¸ii a i , i = 1, 2, . . . , n − 1, ai ∈ {0,1}. (De fapt ace¸sti coeficient¸i indic˘ a dac˘ a ie¸sirea celulei i a registrului este conectat˘ a ˆın sumarea modulo 2, ai = 1, sau dac˘ a nu este conectat˘ a, ai = 0; ie¸sirea din ultima celul˘ a totdeauna este conectat˘ a, an = 1). Un astfel de circuit cu react¸ie este un automat deci, pentru analiza sa, este mai potrivit˘ a abordarea din punct de vedere al tranzit¸iei st˘ arilor ¸si nu descriind ¸sirul bit¸ilor de ie¸sire Y . ˆIn Figura 3.83-d , de exemplu, ¸sirul Yi4 introdus ˆın registrul de deplasare va realiza urm˘ atoarele tranzit¸ii

481

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

ale st˘ arilor (D 5 Y = z5 , D 4 Y = z4 , D 3 Y = z3 , D 2 Y = z2 , DY = z1 ): z5 z4 z3 z2 z1

=

0 → 1 → 3 → 6 → 12 → 25 → 18 → 4 → 9



19 → 7 → 15 → 31 → 30 → 29 → 27 → 25



14 → 28 → 24 → 17 → 2 → 5 → 10 → 21



11 → 22 → 13 → 26 → 20 → 9 → 16 → 1 → . . .

(cifrele ˆıncercuite reprezint˘ a num˘ arul ˆın zecimal al echivalentului binar dat de codul st˘ arii z5 z4 z3 z2 z1 ). Particularizˆ and structura de principiu la n=4, funct¸ia de transfer a st˘ arilor se exprim˘ a ˆın felul urm˘ ator: w4 w3 w2

= = =

z3 z2 z1

w1

=

a4 z4 ⊕ a3 z3 ⊕ a2 z2 ⊕ a1 z1 = Y

(3.55)

Primele trei ecuat¸ii descriu deplas˘ arile (stˆ anga) din registru iar ultima react¸ia liniar˘ a prin ret¸eaua de port¸i sum˘ a modulo 2. Ecuat¸ia pentru calculul semnalului de react¸ie Y , care se aplic˘ a la intrarea primului bistabil D al registrului, este: a4 D4 Y ⊕a3 D3 Y ⊕a2 D2 Y ⊕a1 DY = Y → a4 D4 Y ⊕a3 D3 Y ⊕a2 D2 Y ⊕a1 DY ⊕Y = 0 a4 D4 Y ⊕ a3 D3 Y ⊕ a2 D2 Y ⊕ a1 DY ⊕ Y = 0 → a4 D4 ⊕ a3 D3 ⊕ a2 D2 ⊕ a1 D ⊕ I = 0 iar particularizˆ and a4 = 1, a3 = 0, a2 = 0, a1 = 1, ¸si pentru obi¸snuint¸a˘ ¸si generalitate adoptˆ and notat¸ia ˆın X (= Y ), se obt¸ine polinomul caracteristic: I ⊕ X ⊕ X4

(3.56)

care corespunde circuitului din figura 3.85-b. Ordonarea (direct˘ a) a termenilor unui polinom de ordinul n pe cele n celule ale registrului de deplasare se face printr-o mapare direct˘ a ˆın sensul de cre¸stere a exponentului puterii ¸si a cre¸sterii num˘ arului de tacte de ˆıntˆ arziere pe registru. Termenul polinomului X k , 1 ≤ k < n ˆıi corespunde ˆın registru celula care realizeaz˘ a o ˆıntˆ arziere a intr˘ arii cu k tacte (D k ), iar termenilor n X ¸si 1, care sunt totdeauna prezent¸i ˆın ret¸eaua de rect¸ie a circuitului, le corespunde ˆın registru respectiv ultima celul˘ a (D n ) ¸si intrarea primei celule (D 0 = 1). Pentru polinomul caracteristic din relat¸ia 3.56, ˆıntr-o ordonare direct˘ a, ˆın ret¸eaua sumatoare modulo 2, din exteriorul registrului, sunt conectate ie¸sirile celulei a patra (X 4 ) ¸si celulei a ˆıntˆ aia (X) ¸si rezultatul aplicat la intarea primei celule (D 0 ); structurarea rezultat˘ a este referit˘ a ca circuit secvent¸ial liniar cu react¸ie cu sumatoare exterioare. Pentru acela¸si polinom caracteristic (3.56) exist˘ a ¸si structurarea cu sumatoare incluse, prezentat˘ a ˆın Figura 3.85-c, ˆın care se conecteaz˘ a celulele bistabil ale registrului la ret¸eaua de sumatoare modulo 2 dup˘ a aceea¸si regul˘ a expus˘ a anterior. Sub desenul corespunz˘ ator fiec˘ arei din cele dou˘ a structur˘ ari, cu sumator exterior ¸si sumator inclus, este ata¸sat ¸si tabelul de tranzit¸ie al st˘ arilor (cu calculul bit¸ilor fiec˘ arei st˘ ari).

482

3.5. CIRCUITE REGISTRU

z n−2

z n−1

zn Dn

n−1

D

D

z1

z2 2

D3

n−2

D

D a2

a3

a n−3

an−2

a n−1

z3

z n−3

a1

Y a) z4

z3

X4

X3

z2

z1

X2

Q D

Q D

Q D

Q D

CLK

CLK

CLK

CLK

Q D

Q D

CLK

CLK

z1

X3

X4

I

CLK

z2

z3

z4

X

CLK

X2

X

Q D

Q D

I

CLK

CLK

Y

Y Starea

z 4 z 3z 2 z 1

X 4,(D 4) X3, (D 3) X2,(D 2) X , (D)

0 0 0 1 1 1 1 0 1 0 1 1 0 0 1 0

1 3 7 15 14 13 10 5 11 6 12 9 2 4 8 0

0 0 1 1 1 1 0 1 0 1 1 0 0 1 0 0

0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 0

Starea

Y

z 4 z 3z 2 z 1

1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 0

1 2 4 8 3 6 12 11 5 10 7 14 15 13 9 0

0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0

0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0

1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0

0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0

Y 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0

c)

b) z4 I

CLK

X 4,(D 4) X3, (D 3) X2,(D 2) X , (D)

z3

X

z2

X2

z1

X3

Q D

Q D

Q D

Q D

CLK

CLK

CLK

CLK

z3 X4

y

z1

z2

X3 X 4

X

X2

Q D

Q D

Q D

Q D

CLK

CLK

CLK

CLK

CLK

y d)

e)

Figura 3.85 Circuitul secvent¸ial liniar cu react¸ie: a) structurare general˘ a, de principiu, pentru un (circuit bazat pe) registru de deplasare cu n celule; structura de circuit ¸si tabelul de tranzit¸ie al st˘ arilor pentru polinomul I ⊕ X ⊕ X 4 , ˆın ordonare direct˘ a cu sumator extern (b) ¸si cu sumator intern (c); structur˘ a de circuit pentru polinomul I ⊕ X ⊕ X 4 , ˆın ordonare invers˘ a (sau polinomul inversat X 4 ⊕ X 3 ⊕ I ¸si ordonare direct˘ a), cu sumator extern (d) ¸si cu sumator intern (e)(Liniile desenate ˆıntrerupt corespund introducerii ˆın ciclu normal ¸si a st˘ arii z 4 z3 z2 z1 = 0000).

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

483

Din analiza celor dou˘ a tabele de tranzit¸ie ale st˘ arilor rezult˘ a c˘ a se genereaz˘ a cicluri succesive ce cˆ ate 15 st˘ ari, (2n − 1), starea z4 z3 z2 z1 = 0000 nu este inclus˘ a ˆın ciclu. Succesiunea st˘ arilor ˆın cadrul ciclului are un caracter semi-aleatoriu, prin urmare circuitul poate fi considerat ca un generator de zgomot alb sub forma de scvent¸e binare pseudo-aleatoare. Pentru cazul general, de registru cu n celule, secvent¸a binar˘ a pseudo-aleatoare generat˘ a are un ciclu de (2n − 1) st˘ ari. Ciclu maxim de (2n − 1) st˘ ari se genereaz˘ a numai atunci cˆ and polinomul caractristic al circuitului este primitiv, adic˘ a este un polinom ireductibil (prim, nu are divizori ¸si exponentul puterii este de valoare maxim˘ a pentru acel circuit). ˆIn literatur˘ a [Green 0 85] sunt date polinoamele primitive pˆ an˘ a la gradul n = 100; ˆın continuare sunt date aceste polinoame primitive pˆ an˘ a la gradul n = 13: I I I I

⊕ X ⊕ X2 ⊕ X ⊕ X3 ⊕ X ⊕ X4 ⊕ X2 ⊕ X5

I I I I

⊕ X ⊕ X6 ⊕ X ⊕ X7 ⊕ X ⊕ X5 ⊕ X6 ⊕ X8 ⊕ X4 ⊕ X9

I I I I

⊕ X 3 ⊕ X 10 ⊕ X 2 ⊕ X 11 ⊕ X 3 ⊕ X 4 ⊕ X 7 ⊕ X 12 ⊕ X ⊕ X 3 ⊕ X 4 ⊕ X 13

Dac˘ a polinomul nu este primitiv (admite divizori) circuitul corespunz˘ ator va avea un num˘ ar de cicluri egal cu divizorul cel mai mare al lui (2 n − 1), fiecare din aceste cicluri avˆ and o secvent¸a˘ cu lungimea maxim˘ a < 2 n −1; aceste cicluri fiind independente, odat˘ a circuitul intrat ˆıntr-unul din aceste cicluri nu ˆıl mai p˘ ar˘ ase¸ste decˆ at numai prin resetare. Se demonstreaz˘ a c˘ a dac˘ a polinomul caracteristic este primitiv atunci ¸si polinomul inversat este primitiv; dac˘ a ˆın polinomul caracteristic se substituie X → 1/X se obt¸ine polinomul inversat. Ordonarea (direct˘ a) a polinomului caracteristic pe registru de deplasare se face ˆın felul urm˘ ator: I(D 0 ) la intrarea primei celule; X la ie¸sirea lui (D); X 2 la ie¸sirea lui (D 2 ); . . . ;X k la (D k ); . . . ; X n−1 la (D n−1 ); X n la (D n ). ˆIn opozit¸ie, ordonarea (invers˘ a) a polinomului inversat pe registrul de deplasare se face ˆın felul urm˘ ator: X n la intrarea primei celule (D 0 ); X n−1 la ie¸sirea lui (D); X n−2 la (D 2 ); X n−3 la (D 3 ); . . . ; X k la (D n−k ); . . . ; X la (D n−1 ); I la ie¸sirea lui D n . Corespunz˘ ator polinomului caracteristic dat prin relat¸ia (3.56), polinomul inversat X 4 ⊕ X 3 ⊕ I, ordonat direct pe un registru de deplasare cu patru celule, produce o structurare de circuit secvent¸ial cu react¸ie cu sumatoare exterioare ca ˆın Figura 3.85-d ¸si produce ¸si o alt˘ a structurare cu sumatoare incluse ca ˆın Figura 3.85-e. Rezult˘ a c˘ a pentru un polinom primitiv exist˘ a patru structur˘ ari: dou˘ a cu sumatoare exterioare, una corespunde polinomului direct, X 4 ⊕X ⊕I, Figura 3.85-b, iar cealalt˘ a corespunde polinomului inversat X 4 ⊕ X 3 ⊕ I, Figura 3.85-d; dou˘ a cu sumatoare incluse, una corespunz˘ atoare polinomului direct, Figura 3.85-c, iar cealalt˘ a polinomului inversat, Figura 3.85-e. De¸si toate cele patru structur˘ ari provin din acela¸si polinom primitiv, fiecare din ele genereaz˘ a propria secvent¸a˘ cu lungimea maxim˘ a de 15 tacte (ˆın general 2n −1 tacte). Uzual, nu se mai calculeaz˘ a polinomul inversat iar pentru implementarea sa se utilizeaz˘ a tot polinomul direct dar se consider˘ a ordonarea inversat˘ a. Circuitul secvent¸ial liniar cu reat¸ie cu ciclul de lungimea maxim˘ a (2 n − 1) nu cuprinde starea zero, toate celulele pline cu zero, deoarece prin ret¸eaua sumatoare modulo 2 de react¸ie s-ar produce tot zero; ˆın registru se injecteaz˘ a zero, deci circuitul r˘ amˆ ane ˆın starea zero, ˆınchizˆ andu-se un ciclu permanent ˆın jurul st˘ arii zero (nu poate fi amorsat). Pentru evitarea bloc˘ arii, accidentale, ˆın starea zero, la punerea circuitului

484

3.5. CIRCUITE REGISTRU

sub tensiune trebuie prev˘ azut˘ a setarea automat˘ a a unei celule ˆın starea unu. (O astfel de solut¸ie const˘ a ˆıntr-un circuit de integrare RC a c˘ arei intrare este tensiunea de alimentare a registrului (VDD , VCC ) iar ie¸sirea acestui circuit se conecteaz˘ a la intrarea asincron˘ a PRESET a celulei ˆın care se va ˆınscrie 1 ¸si la intrarea asincron˘ a CLEAR a tuturor celorlalte celule care se vor ˆınscrie ˆın zero.) Se poate extinde ciclul circuitului secvent¸ial liniar cu react¸ie la 2 n dac˘ a se introduce ca stare normal˘ a ¸si starea zero. Pentru aceast˘ a extensie, intrarea unei port¸i XOR, din ret¸eaua de react¸ie, se obt¸ine ca ie¸sire de la o poart˘ a NOR cu n−1 intr˘ ari, aceste intr˘ ari sunt colectate de la ie¸sirile tuturor celulelor registrului de deplasare mai put¸in ultima (D n ). Dac˘ a circuitul este ˆın starea zero, zn zn−1 . . . z1 z0 = 00 . . . 00, ie¸sirea port¸ii NOR genereaz˘ a un 1 prin care ret¸eaua de react¸ie cu XOR, la urm˘ atorul impuls de ceas, va injecta 1 ˆın prima celul˘ a ¸si/sau ˆıntr-o alt˘ a celul˘ a a registrului de deplasare (cˆ and sumatoarele sunt incluse). Dac˘ a circuitul este ˆın starea z n zn−1 . . . z1 z0 = 10 . . . 00 ie¸sirea 1 a port¸ii NOR, plus D n = 1, prin ret¸eaua de react¸ie va injecta 0 ˆın registrul de deplasare, deci urm˘ atoarea stare este zn zn−1 . . . z1 z0 = 00 . . . 00. Se obt¸ine atˆ at extensia la 2n st˘ ari cˆ at ¸si amorsarea din starea zero. Pentru structurile din Figura 3.85-d ¸si 3.85-e sunt desenate punctat conexiunile pentru aceste circuite de extensie. Aplicat¸iile circuitelor secvent¸iale liniare cu react¸i sunt numeroase: - generator de secvent¸e binare pseudo-aleatoare pentru generare de stimuli ˆın testarea circuitelor; - circuite de codificare ¸si decodificare pentru detectarea ¸si corectarea erorilor, tehnica comunicat¸iilor; - num˘ ar˘ atoare modulo 2n − 1 sau 2n (pot fi considerate num˘ ar˘ atoare ˆın cod arbitrar, 3.4.2.2). Consum˘ a cea mai put¸in˘ a suprafat¸a˘ decˆ at oricare alt num˘ ar˘ ator cu except¸ia celui asincron, dar acesta nefiind sincron ridic˘ a problema la interfat¸are. Este mai rapid decˆ at oricare num˘ ar˘ ator cu except¸ia num˘ ar˘ atorului Johnson, dar acesta este numai modulo 2n. (Pentru structurarea cu sumatoare incluse perioada de ceas minim˘ a este egal˘ a cu propagarea printr-o celul˘ a D plus o poart˘ a XOR.)

3.5.7

Distribut¸ia ¸si aplicarea semnalului de ceas

ˆIntr-un sistem digital sincron semnalul de ceas (tactul) este utilizat pentru a introduce o referint¸a˘ de timp fat¸a˘ de care se raporteaz˘ a realizarea unei funct¸ii ˆın sistem. Deoarece acest˘ a referint¸a˘ este vital˘ a, pentru funct¸ionare sistemului sincron, trebuie acordat˘ a o deosebit˘ a atent¸ie parametrilor semnalului de ceas ¸si a ret¸elei de distribut¸ie, care este suportul fizic pentru aplicarea semanalului de ceas. Semnalul de ceas, uzual, este considerat ca un semnal de control, dar este un semnal de control cu caracteristici ¸si atribute speciale. Semnalele de ceas, tipic, asigur˘ a comanda unor sarcini mari, se propag˘ a pe cele mai lungi trasee, opereaz˘ a la frecvent¸ele cele mai ridicate ˆın raport cu oricare semnal de control sau de date din sistem. Deoarece semnalele de date sunt furnizate pe baza referint¸ei de timp, forma de variat¸ie ˆın timp a semnalelor de ceas ,, ,, trebuie s˘ a fie “curat˘ a . Ori, p˘ astrarea formei “curate produs˘ a de generatorul de ceas, pˆ an˘ a la punctele de aplicare, este puternic influent¸at˘ a ¸si ˆıntˆ arziat˘ a de c˘ atre ret¸eaua de distribut¸ie. Proiectarea ret¸elei de distribut¸ie a semnalelor de ceas determin˘ a ˆın mod esent¸ial performant¸ele sistemului digital mai ales la sistemele de vitez˘ a ridicat˘ a.

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

485

ˆIn concluzie, semnalul de ceas are o contribut¸ie major˘ a ˆın obt¸inerea performant¸elor ¸si funct¸ion˘ arii corecte pentru sistemele digitale sincrone. ˆIn oricare sistem digital, cu procesare de tip clasic sau ˆın pipeline, circuitele combinationale sunt interfat¸ate pe intrare ¸si pe ie¸sire cu elemente de memorare (latch-uri, bistabile, registre). Transferul din interfat¸a de intrare, prin partea combinat¸ional˘ a, ˆın interfat¸a de ie¸sire se realizeaz˘ a ˆıntre dou˘ a tacte ale semnalului de ceas, a c˘ arui perioad˘ a minim˘ a, TCLKmin , se calculeaz˘ a cu relat¸ia 3.45. Structurarea clasic˘ a, Figura 3.76-a, pe baza c˘ areia s-a dedus acest˘ a relat¸ie este reluat˘ a ¸si ˆın figura 3.86-a. De data acesta s-au introdus ˆın relat¸ia pentru calculul timpului de propagare date, τ pD , ˆıntre cele dou˘ a interfet¸e ¸si timpul de propagare pe interconexiuni τ pInt , obt¸inˆ andu-se relat¸ia: τpD TCLKmin

= ≥

τpCQ + τpCLC + τSU + τpInt τpCQ + τpCLC + τSU + τpInt

(3.57)

Evident, τpInt la circuitele realizate cu componente discrete poate fi neglijat dar pentru sistemele integrate de mare vitez˘ a unde prin procesul de scalare, permanent, dimensiunile sunt multiplicate cu 1/s (s > 1, factorul de scalare, vezi Tabelul 1.11), aceast˘ a component˘ a a timpului de propagare devine din ce ˆın ce mai put¸in de neglijat. Timpii de propagare, dependent¸i de dispozitiv: τ pCQ , τSU , τpCLC , se mic¸soreaz˘ a prin scalarea dimensiunilor dar nu se mic¸soreaz˘ a ¸si τ pInt . Mic¸sorarea dimensiunilor traseelor de interconectare duce la mic¸sorarea sect¸iunilor, la cre¸sterea rezistent¸ei, deci nu la o mic¸sorare a timpului de propagare τpInt , ˆın plus apar capacit˘ a¸ti parazite (distribuite) ¸si efectul de electromigrat¸ie (vezi sect¸iunea 1.5.1). Mai ales, pentru traseele din ret¸eaua de distribut¸ie a semnalului de ceas, scalarea se aplic˘ a cu foarte mare prudent¸a˘, ori se p˘ astreaz˘ a acelea¸si dimensiuni (vezi sect¸iunea 4.5). ˆIn structura din Figura 3.86 se consider˘ a c˘ a exist˘ a sincronizare/(suprapunere) ˆıntre momentele de aplicare a semnalelor de ceas la cele dou˘ a registre, t CLKi = tCLKj . ˆIn prctic˘ a, cele dou˘ a momente nu se suprapun tCLKi 6= tCLKj ; acest˘ a nesincronizare are dou˘ a componente: defazajul ¸si fluctuat¸ia fronturilor semnalelor de ceas. Cauzele care duc la un defazaj de ceas (la ˆıntˆ arzieri diferite) sunt reprezentate ˆın Figura 3.86-b. De exemplu, cele dou˘ a momente de aplicare ale semnalelor de ceas la bistabilele consecutive Di , Dj , din lant¸ul de bistabile, pot s˘ a nu se suprapun˘ a, tCLKi ≤ tCLKj deoarece din motiv de ˆınc˘ arcare cele dou˘ a semanle se obt¸in de la dou˘ a ramuri diferite ale ret¸elei de distribut¸ie a semnalului de ceas, iar pe cele dou˘ a ramuri ˆıntˆ arzierile nu sunt egale. Dac˘ a se noteaz˘ a cu t timpul la generatorul de ceas general, GCLK (un generator PLL, Phase Lock Loop), iar ˆıntˆ arzierile de propagare prin ret¸eaua de distribut¸ie, ale celor dou˘ a semnale de ceas, pˆ an˘ a la D i ¸si Dj respectiv cu τi ¸si τj rezult˘ a momentele ˆın timp tCLKi = t + τi ¸si tCLKj = t + τj . Definit¸ia 3.11 Defazajul de ceas τdf (clock skew), ˆıntre dou˘ a registre/bistabile i, j, consecutive ˆın sensul de propagare a datelor pentru procesare, este diferent¸a ˆın timp ˆıntre momentul aplic˘ arii semnalului activ de ceas la registrul/bistabilul j ¸si momentul aplic˘ arii semnalului activ de ceas la registrul/bistabilul i  τdf = tCLKj − tCLCi = τj − τi

(3.58)

De notat faptul c˘ a defazajul de ceas este relevant numai ˆıntre dou˘ a registre/bistabile consecutive, deci ˆıntre care exist˘ a un transfer de date.

486

3.5. CIRCUITE REGISTRU

τ

Intrare date

Registru

Retea combinationala

Registru

Ri

(CLC)

Rj

Iesire date

t CLKj

t CLKi CLK

CLK

Iesire date

Intrare date τpCQ

τpInt

τpInt

τpCLC

a)

τSU

τ pD

4

Sursa de alimentare

D Q

D

Q

D Q

CLK

CLK

D Q

Di

7 Temperatura

CLK

CLK

t CLKi

5 PLL

2 Amplificatoare (buffere) semnal de ceas

1

Generator semnal de ceas

3 Interconexiuni

6 Sarcina capacitiva D Q

D Q

D Q

D Q

CLK

CLK

CLK

Dj CLK

t CLKj

5 Cuplaje capacitive

b)

6 Sarcina capacitiva

TCLK CLK

c)

−τ

fl

+ τfl

Figura 3.86 Nesincronizarea semnalelor de ceas ˆıntre dou˘ a registre/bistabile consecutive dintr-o cale de propagare a datelor: a) structur˘ a de principiu a unei etape ˆın propagarea datelor cu evident¸ierea timpilor (componente) de propagare; b) reprezentarea cauzelor, ˆıntr-o ret¸ea de distribut¸ie a semnalelor de ceas, care pot determina defazaj de ceas ¸si fluctuat¸ia fronturilor; c) explicativ˘ a pentru aparit¸ia efectului de fluctuat¸ie al fronturilor (clock jitter).

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

487

Cauzele care pot duce ca ˆıntˆ arzierile de propagare τ j ¸si τi s˘ a nu fie egale sunt: - Bufferele (amplificatoarele) de semnal 2 din ret¸eaua de distribut¸ie. Aceste amplificatoare sunt o cauz˘ a principal˘ a pentru τ df 6= 0. Datorit˘ a dispersiei din procesul de fabricat¸ie bufferele rezult˘ a cu variat¸ii pentru valorile timpilor de propagare (care se p˘ astreaz˘ a chiar daca sunt incluse ˆın ret¸ele echilibrate ¸si cu ˆınc˘ arc˘ ari identice). - Interconexiunile 3 din ret¸eaua de distribut¸ie a ceasului. Pentru fiecare interconexiune intervine lungimea ¸si rezistivitatea traseului, constanta ¸si grosimea dielectricilor, rezistent¸ele de contact ¸si ale g˘ aurilor de p˘ atrundere (vias) ˆıntre straturile metalizate, capacit˘ a¸tile parazite. - Variat¸ia valorii tensinii de alimentare 4 (vezi Figura 1.78). a ca stratul metalizat pentru ret¸eaua de - Cuplajele capacitive 5 . Se recomand˘ distribut¸ie a semnalului de ceas s˘ a fie ˆıntre straturile metalizate pentru V DD ¸si VSS (surs˘ a ¸si mas˘ a). - Sarcini de comand˘ a 6 diferite pentru cele dou˘ a semnale de ceas. a ˆın timp - Variat¸ia temperaturii 7 . Defazajul de ceas are o valoare constant˘ dac˘ a temperatura mediului nu se modifica pronunt¸at. A doua component˘ a care contribuie la nesincronizare este efectul de fluctuat¸ie (ˆın aparit¸ie) al fronturilor semnalelor semnalelor de ceas (clock jitter). Ca o consecint¸a˘ a acestui efect fronturile consecutive apar cˆ and la intervale de timp mai mari decˆ at TCLK , cˆ and la intervale mai mici decˆ at TCLK , Figura 3.86-c. Dac˘ a se noteaz˘ a pentru semnalul de ceas cu perioada T CLK abaterile de aparit¸ie (fluctuat¸iile) ale fronturilor semnalelor de ceas, fat¸a˘ de momentul corect de aparit¸ie al frontului, cu −τfl ¸si +τfl atunci perioada real˘ a a semnalului de ceas poate avea valori ˆın intervalul [TCLK − 2τfl , TCLK + 2τfl . Cauzele acestor fluctuat¸ii sunt: generatorul de ceas 1 ;

a 7 ¸si ˆınc˘ arcarea capacitiv˘ a 6 ¸si cuplajele capacitive 5 ; variat¸iile de temperatur˘ ˆın tensiunea de alimentare 4 . ˆIn funct¸ionarea real˘ a a sistemelor semnalul de ceas aplicat la dou˘ a registre/bistabile consecutive poate fi afectat simultan atˆ at de defazaj cˆ at ¸si de fluctuat¸ia fronturilor. Defazajul este o variat¸ie spat¸ial˘ a reflectat˘ a ˆın momentele de aplicare a semanlelor de ceas ¸si nu se modific˘ a de la perioad˘ a la perioad˘ a pe cˆ and fluctuat¸ia fronturilor, se poate modifica de la ciclu la ciclu, este un efect pasager. Transferul sincron al datelor de la registrul R i la registrul urm˘ ator Rj trebuie asigurat atˆ at pentru valoarea maxim˘ a a timpului de propagare al datelor τ pDmax cˆ at ¸si pentru timpul de propagare minim τpDmin ˆın condit¸iile ˆın care intervin factorii de nesincronizare τdf ¸si τfl . Valoarea τpDmax determin˘ a TCLKmin , adic˘ a frecvent¸a maxim˘ a a semnalului de ceas, deci performant¸a de vitez˘ a. Valoarea τ pDmin determin˘ a transferul corectat al datelor ˆın registrul Rj , deci funct¸ionarea corect˘ a a sistemului. Dac˘ a timpul de propagare minim, de la registrul Ri la Rj , este mai mc decˆ at timpul de ment¸inere τH al registrului Rj , τpDmin < τH , adic˘ a datele ˆınscrise ˆın registrul Ri ajung la registrul

488

3.5. CIRCUITE REGISTRU

Rj ˆınainte ca datele anterioare aplic˘ arii frontului activ de ceas s˘ a fi fost ˆınscrise ˆın registrul Rj , ˆın registrul Rj se ˆınscriu datele de la registrul Ri ; deci pe un singur tact datele parcurg dou˘ a etape ˆın calea de transfer (ˆınscriere ˆın registrul R i ¸si propagare la registrul Rj precum ¸si ˆınscriere ˆın registrul Rj pentru c˘ a timpul de ment¸inere τH de la registrul Rj nu s-a consumat). Pentru a evalua modul cum se poate asigura atˆ at performant¸a cˆ at ¸si funct¸onarea corect˘ a a sistemului sincron se vor analiza tipurile de defazaj de ceas. Defazajul de ceas pozitiv, τdf > 0. O valoare pozitiv˘ a pentru τdf , conform relat¸iei 3.53, apare cˆ and frontul activ de ceas la registrul R j se aplic˘ a cu un interval de timp τdf dup˘ a aplicare aceluia¸si front activ de ceas la registrul R i , tCLKi < tCLKj . Practic, o astfel de situat¸ie ˆın aplicarea semnalelor de ceas poate apare cˆ and sensul de aplicare al semnalelor de ceas coincide cu sensul de deplasare al datelor ¸si ˆıntre registrele consecutive Ri ¸si Rj , pe traseul de ceas, apare o ˆıntˆ arziere τdf , Figura 3.87-a. ˆIn prezent¸a defazajului τdf pozitiv, pentru ˆıntˆ arzierea minim˘ a ˆın propagarea datelor τpDmin , ˆınscrierea corect˘ a in registrul Rj este asigurat˘ a numai cˆ and se respect˘ a relat¸ia τdf + τH ≤ τpDmin , adic˘ a: τH ≤ τpDmin − τdf = τpCQ + τpCLC + τpInt − τdf

(3.59)

Aceast˘ a relat¸ie cˆ and defazajul devine semnificativ, prin difernt¸a τ pDmin − τdf de valoare mic˘ a, poate impune pentru timpul de ment¸inere τ H s˘ a aib˘ a o valoare mai mic˘ a decˆ at valoarea minim˘ a prescris˘ a unui bistabil D pentru o funct¸inare corect˘ a (evitarea metastabilit˘ a¸tii, Figura 3.46). Deci cre¸sterea defazajului poate determina ca funct¸ionarea s˘ a ajung˘ a la limita critic˘ a pentru care valoarea prescris˘ a pentru τ H s˘ a fie τH ≤ τpDmin − τdf , deci o ˆınscriere incorect˘ a a bistabilului R j . Inegalitatea exprimat˘ a de relat¸ia 3.59 poate ajunge la limita critic˘ a pentru circuitele care cascadeaz˘ a bistabile, cum sunt structurile de registre de deplasare sau de num˘ ar˘ atoare; la aceste circuite τpCLC = 0 (ˆın general), τpInt → 0 (prin geometria de proiectare), deci se poate ajunge la τH ≤ τpCQ − τdf . Un registru sau un num˘ ar˘ ator care funct¸ioneaz˘ a la limita acestei inegalit˘ a¸ti poate avea o funct¸ionare corect˘ a la testare dar, ˆın utilizare, datorit˘ a variat¸iilor de mediu (temperatur˘ a, tensiune), poate inversa inegalitatea. Pentru o funct¸ionare sigur˘ a a acestor tipuri de circuite se recomand˘ a o comand˘ a cu un defazaj de ceas negativ. ˆIn prezent¸a defazajului τdf pozitiv de valoare mult mai mic˘ a decˆ at τpD pericolul ˆınscrierii eronate nu poate apare dar, ˆın schimb, la o valoare mare a timpului de propagare a datelor aceasta trebuie corelat˘ a cu perioada minim˘ a impus˘ a pentru semnalul de ceas. Din diagrama de semnale din figur˘ a rezult˘ a c˘ a durata perioadei de ceas plus timpul de defazaj, TCLK + τdf , nu poate fi mai mic˘ a dacˆ at timpul de propagare a datelor plus timpul de stabilizare al registrului R j , TCLK + τdf ≥ τpD + τSU = τpDmax . Din aceast˘ a relat¸ie rezult˘ a valoarea minim˘ a a prioadei de ceas: TCLKmin ≥ τpDmax − τdf = τpCQ + τpCLC + τpInt + τSU − τdf

(3.60)

De notat faptul c˘ a, fat¸a˘ de cazul de inexistent¸a˘ a defazajului, τ df = 0, cˆ and comanda se face cu o perioad˘ a minim˘ a dat˘ a de relat¸ia 3.57, ˆın prezent¸a defazajului de ceas pozitiv, prin relat¸ia 3.60, comanda se poate realiza cu o perioad˘ a de ceas mai mic˘ a, deci o frecvent¸a˘ mai ridicat˘ a (un efect benefic al defazajului pozitiv! , vezi Exemplul 3.31).

489

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Registru

Registru Intrare date

Ri

1

Rj

CLC

t CLKj

t CLKi

a)

2

Registru

Ri

tCLK

i

1

CLK

τ df

CLK

2’

t CLKi t CLKj

Rj i

τH

2

j

τ dp

3

1’

CLK

Intarziere

4

2’

TCLK + τ df TCLK

CLK

CLK

t CLK

τH

τ df 0

Rk

7

tCLK 3 1,5

4

t CLK k

j

3

Rm

Etapa

τdf =0 τ pD

max

τdf =0

τ df =0 tCLK

i

Ri

Rj

2+4+0=6

3

Rj

Rk

7+2+0=9

1,5

fmax

111,1 MHz

tCLK j τ df

τpD

max

τ df =0

1,5 −1,5 4+2−(−1,5)=7,5 3

1,5

7+2−1,5=7,5 133,3 MHz

c) Figura 3.87 Defazajul de ceas: a) defazajul de ceas pozitiv (poate fi generat de structuri la care coincide sensul fluxului de date cu cel de aplicare al semnalelor de ceas); b) defazajul de ceas negativ (cele dou˘ a sensuri sunt opuse); c) exempificare de utilizare a defazajului pozitiv pentru m˘ arimea frecvent¸ei se sincronizare ˆıntr-o cale de date.

490

3.5. CIRCUITE REGISTRU

Defazajul de ceas negativ, τdf < 0. Defazajul negativ de ceas apare cˆ and frontul activ se aplic˘ a ˆıntˆ ai la Rj ¸si apoi la Ri , adic˘ a tCLKj < tCLKi . O astfel de comand˘ a poate apare cˆ and sensul de aplicare al semnalelor de ceas este opus sensului de deplasare al datelor ¸si ˆıntre registrele consecutive R i ¸si Rj , pe traseul de ceas, apare ˆıntˆ arzierea τdf , Figura 3.87-b . Relat¸iile pentru valoarea critic˘ a a timpului de stabilizare τH ¸si a perioadei minime de ceas TCLKmin , se deduc prin acela¸si rat¸ionament ca ¸si pentru τdf > 0, sunt respectiv ( 3.59) ¸si ( 3.60) cu diferent¸a c˘ a pentru calcul se introduce o valoare negativ˘ a pentru defazaj. Se observ˘ a c˘ a defazajul negativ, ˆın raport cu cel pozitiv, este mai put¸in restrictiv pentru timpul de ment¸inere τH (poate avea valori mai mari care asigur˘ a o ˆınscriere corect˘ a a datelor), dar, ˆın schimb, m˘ are¸ste valoarea pentru TCLKmin (ceea ce poate fi o limitare ˆın sistemele de vitez˘ a rdicat˘ a). ˆIn concluzie, cre¸sterea defazajului pozitiv are ca efect mic¸sorarea perioadei minime de ceas aplicabile dar poate duce la o degradare a ˆınscrierii corecte (funct¸ion˘ arii sigure), pe cˆ and cr¸sterea defazajului negativ, ˆın valoare absolut˘ a, are ca efect m˘ arirea perioadei minime de ceas aplicabile dar cu o ˆınbun˘ at˘ a¸tire pentru ˆınscrierea corect˘ a. Dar ˆıntr-o cale de transfer de date fiecare registru/bistabil R j , ˆın afar˘ a de primul ¸si ultimul, realizeaz˘ a o etap˘ a cu urm˘ atorul R k ¸si o alt˘ a etap˘ a cu cel anterior Ri (i < j < k). Considerˆ and defazaj zero ˆın cele dou˘ a etape, la m˘ arirea/mic¸sorarea timpului de aplicare a semnalului de ceas tCLKj la registrul Rj se va genera un defazaj negativ/pozitiv ˆın etapa Rj → Rk ¸si un defazaj pozitiv/negativ ˆın etapa Ri → Rj , deci efectele care apar, prin aceasta, asupra perioadei de ceas aplicabile ¸si asupra funct¸ion˘ arii sigure vor fi ˆın sensuri opuse ˆın cele dou˘ a etape. Rezult˘ a c˘ a modificarea timpului tCLKj , f˘ ar˘ a modificarea timpilor tCLKi ¸si tCLKk , poate modifica, ˆın sens contrar, valoarea minim˘ a, TCLKmin , aplicabil˘ a ˆın cele dou˘ a etape vecine Ri → Rj ¸si Rj → Rk . Aceast˘ a concluzie poate fi utilizat˘ a pentru o metod˘ a de optimizare global˘ a ,, a unei c˘ ai de date printr-o optimizare/modificare local˘ a (“deskewing data pulses , ,, “cycle stealing ); metod˘ a aplicabil˘ a cˆ and ˆın calea de date exist˘ a diferent¸e mari ˆıntre valorile timpilor de propagare τpD din dou˘ a etape consecutive, dar s˘ a concretiz˘ am printr-un exemplu. Exemplul 3.31 ˆIn Figura 3.87-c este prezentat un segment dintr-o cale de date, cu cele trei registre Ri , Rj , Rk , cu specificarea timpilor de propagare maxim˘ a din fiecare etap˘ a din calea de date, prin ovale orizontale ¸si prin ovale verticale, ˆıntˆ arzierile (considerate egale) de pe fiecare traseu de aplicare a semnalelor de ceas. Frecvent¸a maxim˘ a de ceas, cu care se poate sincroniza aceast˘ a cale de date (considerˆ and c˘ a registrele sunt identice, cu τpCQ = 2ns), este impus˘ a de etapa cu propagarea maxim˘ a, adic˘ a etapa Rj → Rk unde τpDmax = 7ns + 2ns = 9ns, deci fmax = 1/9ns = 111.1M Hz. Dac˘ a numai timpul de aplicare al semnalului de ceas tCLKj , la registrul Rj , este mic¸sorat de la 3ns la 1.5ns, prin ajustarea ˆıntˆ arzierii de pe traseul respectiv, apare, conform relat¸iei 3.58, un defazaj pozitiv pentru etapa Rj → Rk , 3ns − 1.5ns = 1.5ns, ¸si un defazaj negativ pentru etapa Ri → Rj , 1.5ns − 3ns = −1.5ns. Aceasta ˆınseamn˘ a, conform relat¸iei 3.60, c˘ a perioada minim˘ a de ceas aplicabil˘ a ˆın etapa Rj → Rk poate fi mic¸sorat˘ a, 2ns+7ns−1.5ns = 7.5ns, iar ˆın etapa Ri → Rj trebuie s˘ a fie m˘ arit˘ a, 2ns + 4ns − (−1.5ns) = 7.5ns, deci se ajunge la o egalitate ˆıntre perioadele de ceas minime aplicabile ˆın cele dou˘ a etape vecine; rezult˘ a o frecvent¸a ˘ maxim˘ a de comand˘ a fmax = 133.3M HZ (o cre¸stere cu 19.98%). Prin mic¸sorarea timpului tCLKj de la 3ns la 1.5ns nu se afecteaz˘ a ˆınscrierea corect˘ a a datelor ˆın registrul Rk ; ˆın etapa Rj → Rk defazajul este pozitiv dar valoarea acestuia este mult mai mic˘ a decˆ at timpul maxim de propagare (τdf = 1.5ns < 9ns = τpDmax ), deci nu devine critic˘ a

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

491

valoarea impus˘ a pentru τH , vezi relat¸ia 3.59. Aceast˘ a modalitate de modificare local˘ a ˆıntr-o cale de date, dar cu efect de optimizare global˘ a deoarece cre¸ste frecvent¸a maxim˘ a pentru GCLK, depinde de posibilitatea de modificare ˆın circut a ˆıntˆ arzierii pentru a obt¸ine un τdf ajustabil ¸si evident, de variat¸iile de mediu (temperatur˘ a ¸si tensiune).

Ret¸eaua de distribut¸ie a semnalelor de ceas. Mult¸imea de trasee de la sursa de ceas general, GCLK, pˆ an˘ a la punctele de aplicare a semnalelor de ceas pentru sincronizare formeaz˘ a ret¸eaua de distribit¸ie. Performant¸ele care se urm˘ aresc, pentru o ret¸ea, ¸si care sunt fundamentale pentru funct¸ionarea corect˘ a a circuitului sunt: timpul de propagare (ˆıntˆ arzierea introdus˘ a) de la GCLK pˆ an˘ a la punctele de aplicare, adic˘ a sincronizarea; defazajul de ceas ¸si puterea disipat˘ a. Exist˘ a dou˘ a modalit˘ a¸ti, de structurare a unei ret¸ele: de arbore bufferat ¸si de arbore simetric. Ret¸eaua de distribut¸ie sub form˘ a de arbore bufferat are, prin analogie o structur˘ a de arbore, un traseu principal pornind din sursa de GCLK (r˘ ad˘ acin˘ a) care ,, apoi se ramific˘ a pentru fiecare registru, acestea fiind “frunzele , Figura 3.88-a. Pe acest traseu de la r˘ ad˘ acin˘ a la frunze se introduc buffere care au rolul de amplificare ¸si de izolare. Num˘ arul de buffere ˆınseriate depinde de sarcina capacitiv˘ a total˘ a (interconexiuni ¸si punctele de sincronizare) ce trebuie comandat˘ a. Ie¸sirea buferului trebuie s˘ a genereze un curent suficient de ˆınc˘ arcare ¸si desc˘ arcare al capacit˘ a¸tilor ˆıntr-un timp scurt pentru ca semnalele de ceas s˘ a prezinte fronturi abrupte necesare procesului de sincronizare; acest˘ a cerint¸a˘ impune ca bufferul s˘ a aib˘ a o funct¸ionare de generator de curent, rezistent¸a sa de ie¸sire s˘ a fie mult mai mare decˆ at rezistent¸a conexiunilor ret¸elei comandate (restrict¸ie ce poate fi ˆındeplinit˘ a relativ u¸sor dac˘ a ret¸eua de distribut¸ie este realizat˘ a ˆın strat metalizat). Dar bufferele sunt ¸si principala surs˘ a de introducere de defazaj deoarece caracteristicile elementelor active din ret¸ea (buffere) variaz˘ a mult mai pronunt¸at ˆın raport cu caracteristicile elementelor pasive (interconexiuni) atˆ at datorit˘ a procesului de fabricat¸ie cˆ at ¸si datorit˘ a mediului. Uneori pentru a mic¸sora rezistent¸a interconexinilor, ¸si a uniformiza disipat¸ia de putere pe toat˘ a suprafat¸a de integrare, ret¸eaua de distribut¸ie este realizat˘ a sub forma unei plase de trasee pe o suprafat¸a˘ cˆ at mai mare, ˆın figur˘ a este prezentat˘ a, ca medalion, o structurare de principiu pentru o plas˘ a. Pentru reducerea controlat˘ a a puterii disipate ˆın ret¸eaua de distribut¸ie sunt introduse port¸i care, comandate cu un semnal de condit¸ionare, pot s˘ a elimine alimentarea cu un semnal de ceas a anumitor zone locale pentru anumite intervale de timp. A doua structur˘ a de ret¸ea de distribut¸ie pentru semnalele de ceas poate fi considerat˘ a tot un arbore dar sub form˘ a de arbore simetric, echilibrat, avˆ and forma de H sau X, Figura 3.88-b; evident fiecare vˆ arf H sau X se poate continua cu un alt H sau X ¸si acesta s˘ a se continue cu un alt H sau X ¸s.a.m.d. Bifurcarea traseelor, din cel anterior, duce ¸si la ˆınjum˘ at˘ a¸tirea l˘ a¸timii acestor trasee pentru ca ˆın propagarea semnalelor s˘ a se evite reflexia ˆın punctele de bifurcat¸ie. Aceast˘ a structurare realizeaz˘ a ca atingerea oric˘ arei frunze s˘ a se fac˘ a prin trasee de aceea¸si lungime ¸si sect¸iune, obt¸inˆ andu-se ˆıntˆ arzieri egale fat¸a˘ de GCLK, deci, teoretic, un defazaj de ceas nul. ˆIn raport cu arborele bufferat, arborele simetric H trebuie s˘ a comande o capacitate mai mare deoarece traseele necesare sunt mai lungi. ˆIn plus, arborele H este mai put¸in potrivit pentru VLSI care au un layout mai put¸in simetric. Combinat¸ia ˆıntre cele dou˘ a tipuri de structuri pare a fi compromisul indicat: o ret¸ea H, pentru distribut¸ia

492

3.5. CIRCUITE REGISTRU

Conditionare ceas local

Ceas local aplicat conditionat

Sursa externa ceas

D Q

Plasa trasee distributie generala GCLK

PLL

Ceasul general (GCLK)

Ceas local neconditionat

D Q

D Q

D Q

Plasa partiala distrib. ceas

Ceas local neconditionat DQ

a) Ceas local aplicat conditionat

D Q

D Q

GCLK Conditionare ceas local DRIVER

DRIVER

DRIVER

DRIVER

DRIVER

DRIVER

DRIVER

DRIVER

DRIVER

GCLK

DRIVER

DRIVER

DRIVER

GCLK

D R I V E R

D R I V E R

GCLK

DRIVER

DRIVER

GCLK

DRIVER

DRIVER

DRIVER

DRIVER

Conditia de aplicare semnal de ceas

Ceas aplicat conditionat

CLK

b)

Figura 3.88 Modalit˘ a¸ti de structurare a ret¸elei de distribut¸ie pentru semnalul de ceas: a) sub forma unei ret¸ele de arbore bufferat; b) sub forma unei ret¸ele de arbore simetric H.

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

493

global˘ a de semnal de ceas, continuat˘ a din vˆ arfuri cu ret¸ele bufferate pentru distribut¸ia local˘ a. ˆIn circuitele VLSI actuale ret¸eaua de distribut¸ie a semnalului de ceas ajunge s˘ a comande zeci de mii de registre, deci a unei sarcini capacitive ce se apropie de 100cm! ˆIntr-o ret¸ea de distribut¸ie de ceas fiecare tranzit¸ie schimb˘ a starea ˆın fiecare nod capacitiv, spre deosebire de o ret¸ea combinat¸ional˘ a unde activitatea de comutat¸ie a elementelor este determinat˘ a de funct¸ia logic˘ a. Combinat¸ia de sarcin˘ a capacitiv˘ a mare, CL , ¸si frecvent¸a ridicat˘ a determin˘ a o valoare ridicat˘ a pentru componenta di2 namic˘ a a puterii disipate, VDD · CL · f ; la unele procesoare actuale mai mult de 30% din puterea consumat˘ a se reg˘ ase¸ste ˆın puterea disipat˘ a ˆın ret¸eaua de distribut¸ie a ceasului. Solut¸iile pentru reducerea componentei dinamice a puterii disipate sunt: 1 - mic¸sorarea tensiunii de alimentare (implement˘ ari la 12 VDD numai pentru alimentarea ret¸elei de ceas, prin aceasta degradarea performant¸ei de vitez˘ a este nesemnificativ˘ a); 2 - mic¸sorarea capacit˘ a¸tii echivalente totale, printr-o proiectare adecvat˘ a, (3 - mic¸sorarea frecvent¸ei se exclude deoarece viteza este o cerint¸a˘ a majorit˘ a¸tii circuitelor VLSI). De asemenea, pentru nealimentarea temporar˘ a local˘ a, exist˘ a port¸i care comand˘ a condit¸ionat aplicarea semnalului de ceas (vezi medalionul de la Figura 3.88-b). Pentru circuitele VLSI actuale, care lucreaz˘ a la frecvent¸e de peste 1GHz, realizarea distribut¸iei semnalului de ceas ¸si ment¸inerea puterii disipate ˆın limita de sigurant¸a˘ sunt dou˘ a aspecte ce ridic˘ a dificult˘ a¸ti. La valori f CLK > 1GHz, perioada semnalului de ceas TCLK se mic¸soreaz˘ a pˆ an˘ a la valori care nu dep˘ a¸sesc timpul de propagare, τp poart˘a , prin 10 pot¸i logice, TCLK < 10τp poart˘a , iar m˘ arimea defazajului de ceas trebuie ment¸inut sub 30ps (1ps = 10−12 s) [Friedman 0 01]. Obt¸inerea acestor m˘ arimi reduse de defazaj ridic˘ a dificult˘ a¸ti datorit˘ a faptului c˘ a valorile ˆıntˆ arzierilor semnalului de ceas au variat¸ii greu de controlat. Aceste variat¸ii greu de controlat ale valorilor ˆıntˆ arzierilor se datoreaz˘ a: 1 - procesul de fabricat¸ie nu poate asigura o dispersie care s˘ a duc˘ a la obt¸inerea unor parametri cu abateri foarte strˆ anse; 2 - variat¸iile de mediu (temperatur˘ a, tensiune); 3 - utilizarea ˆın proiectare a unor modele cu o precizie ˆınc˘ a nesatisf˘ ac˘ atoare pentru schemele echivalente de circuit. Pentru frecvent¸e peste (1 ÷ 2)GHz ¸si efectul de linie de transmisie trebuie luat ˆın considerare, deci pe lˆ ang˘ a caracterul RC al sarcinii apare ¸si componenta de inductivitate L rezultˆ and caracteristici de tip RLC. Caracterul RLC ˆın funct¸ionare modific˘ a puternic ˆıntˆ arzierea semnalului ¸si puterea disipat˘ a (uneori aceasta poate chiar s˘ a descreasc˘ a). Pentru frecvent¸e peste 1GHz structurarea ret¸elei de distribut¸ie a semnalelor de ceas cuprinde, ˆın succesiune, urm˘ atoarele trei componente: 1 - global, o ret¸ea pentru distribut¸ia semnalului GCLK, la care se conecteaz˘ a; 2 - regional, o serie de circuite de compensare a defazajului (deskew circuits), fiecare dintre acestea comand˘ a, printr-o ret¸ea arbore echilibrat; 3 - local, o multitudine de buffere ce alimenteaz˘ a punctele de sincronizare de la registre. ˆIn plus, ˆın paralel cu ret¸eua global˘ a, GCLK, mai exist˘ a (separat) ˆınc˘ a o ret¸ea care distribuie un semnal GCLK etalon, dar ˆınc˘ arcarea acestei ret¸ele este mult mai mic˘ a decˆ at cea a ret¸elei globale. Ret¸eaua global˘ a, GCLK, structurat˘ a ca un arbore H, distribuie semnalul de ceas de la PLL pˆ an˘ a la circuitele regionale de compensare a defazajului. Pentru a minimiza efectele de cuplare capacitiv˘ a ¸si inductiv˘ a ˆıntre liniile adiacente de semnal ¸si traseele ret¸elei GCLK, acestea, din urm˘ a, sunt complet ecranate prin plasarea ˆıntre linii de mas˘ a ¸si de alimentare VDD . Componenta de compensare a defazajului care se bazeaz˘ a,

494

3.5. CIRCUITE REGISTRU

ˆın principal pe un sistem de reglare const˘ a din (1) un detector de faz˘ a, dintre semnalul GCLK etalon ¸si un semnal de react¸ie cules local. Semnalul diferent¸a˘ de faz˘ a comand˘ a digital o linie de ˆıntˆ arziere analogic˘ a a c˘ arei ie¸sire se aplic˘ a la (2) un buffer ce produce un semnal de ceas f˘ ar˘ a ˆıntˆ arziere ¸si care se aplic˘ a la o (3) - ret¸ea arbore echilibrat ce alimenteaz˘ a bufferele locale. De la un buffer local se distribuie semnale de sincronizare printr-o ret¸ea de port¸i comandate condit¸ionat (deci se poate reduce puterea disipat˘ a prin nealimentare temporar˘ a). Toate sistemele electronice, fundamental, sunt de natur˘ a asincrone, totu¸si printr-o precis˘ a inserare a unei relat¸ii de temporizare local˘ a ˆın realizarea funct¸iilor ¸si utilizarea elementelor de memorare un sistem asincron poate fi adaptat s˘ a aib˘ a o funct¸ionare sincron˘ a. Atˆ ata timp cˆ at relat¸ia de temporizare local˘ a este ˆındeplinit˘ a (sincronizarea), modul de abordare sincron poate fi aplicat, implementarea de sisteme, controlabile ˆın funct¸ionare, este posibil˘ a. Oricum, sistemele sincrone vor fi ˆınc˘ a mult timp modul comun de implementare pˆ an˘ a vor ceda locul implement˘ arilor asincrone(care, ˆın principiu, pot obt¸ine viteze de procesare mai ridicate). Exemplul 3.32 Pentru circuitul din Figura 3.89-a, ˆın raport cu sensul de transfer prin poarta C ˆın etapa D1 D2 , semnalul de ceas se aplic˘ a: a - ˆın acela¸si sens; b - ˆın sens opus. Pentru aceste dou˘ a variante de aplicare a semnalului de ceas s˘ a se calculeze lungimea maxim˘ a a conductorului (lD1 D2 ¸si lD2 D1 ) care asigur˘ a un transfer de date corect ˆıntre bistabile precum ¸si frecvent¸a maxim˘ a a semnalului de ceas. Parametrii de timp pentru circuitele utilizate sunt dat¸i ˆın Figura 3.89-b. Pentru viteza de propagare a semnalului se consider˘ a valoare vp = 20cm/ns. 7400 A "1"

7474

74LS02 B "0" l=0

D

D1

Q

CLK

7474

7400 C "1"

lD D

1 2

lD2D1

D

D2

Q

CLK l=0

Circuit

t pHL [ns]

t pHL [ns]

Min Tipic Max Min Tipic Max

7400

11

22

7

74LS02

10

20

10

14

25

7474*

10

10

15 20

20 40

∗τ SU=20 [ns] , τ H =5 [ns]

Figura 3.89 Explicativ˘ a pentru exemplul 3.32

Solut¸ie. Valorile maxime ¸si minime ale timpilor de propagare pentru transferul D 1 → D2 prin poarta C sunt: τpD1 D2 (LH)max = τpCQ(LH)max + τpC(HL)max = 25ns + 15ns = 35ns τpD1 D2 (LH)min = τpCQ(LH)min + τpC(HL)min = 10ns + 7ns = 17ns τpD1 D2 (HL)max = τpCQ(HL)max + τpC(LH)max = 40ns + 22ns = 62ns τpD1 D2 (HL)min = τpCQ(HL)min + τpC(LH)min = 10ns + 11ns = 21ns de asemenea pentru transferul D2 → D1 prin port¸ile A ¸si B se calculeaz˘ a: τpD2 D1 (LH)max = τpCQ(LH)max + τpA(HL)max + τpB(LH)max = 25ns + 15ns + 20ns = 60ns τpD2 D1 (LH)min = τpCQ(LH)min + τpA(HL)min + τpB(LH)min = 10ns + 7ns + 10ns = 27ns

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

495

τpD2 D1 (HL)max = τpCQ(HL)max + τpA(LH)max + τpB(HL)max = 40ns + 22ns + 20ns = 82ns τpD2 D1 (HL)min = τpCQ(HL)min + τpA(LH)min τpB(HL)min = 10ns + 11ns + 10ns = 31ns Pentru cele dou˘ a variante a ¸si b aplicˆ and relat¸iile (3.59) ¸si (3.60) se obt¸in respectiv valorile lungimilor maxime ¸si frecvent¸ei maxime. a) tCLKD1 < tCLKD2 → τdfD1 D2 > 0, τdfD2 D1 < 0, |τdfD2 D1 | = τdfD1 D2 τdfD1 D2 max ≤ τpD1 D2 (LH)min − τH = 17ns − 5ns = 12ns; lD1 D2 max ≤ 12ns × 20cm/ns = 2.4m Defazajul negativ τdfD2 D1 = −12ns pentru transferul D2 → D1 nu pericliteaz˘ a ˆınscrierea corect˘ a a datelor ˆın D1 , dimpotriv˘ a ajut˘ a! TCLKD1 D2 min ≤ τpD1 D2 (HL)max + τSU − τdfD1 D2 = 62ns + 20ns − 12ns = 90ns Iar pentru transferul D2 → D1 prin port¸ile A ¸si B se calculeaz˘ a TCLKD2 D1 min ≤ τpD2 D1 (HL)max + τSU − τdfD2 D1 = 82ns + 20ns − (−12ns) = 114ns deci frecvent¸a maxim˘ a fmax ≤ 1/114ns = 87.71M Hz este limitat˘ a de acest transfer.

b) tCLKD2 < tCLKD1 → τdfD2 D1 > 0, τdfD1 D2 < 0, |τdfD1 D2 | = τdfD2 D1 τdfD2 D1 ≤ τpD2 D1 (LH)min − τH = 27ns − 5ns = 22ns; lD2 D1 max ≤ 22ns × 20cm/ns = 4.4m a la ˆınscrierea Defazajul negativ τdfD1 D2 = −22ns, pentru transferul D1 → D2 ajut˘ corect˘ a a datelor ˆın bistabilul D2 . TCLKD2 D1 min ≥ τpD2 D1 (HL)max + τSU − τdfD2 D1 = 82ns + 20ns − 22ns = 80ns Iar pentru tansferul D1 → D2 prin poarta C se calculeaz˘ a TCLKD1 D2 min ≥ τpD2 D1 (HL)max + τSU − τdfD1 D2 = 62ns + 20ns − (−22ns) = 104ns deci frecvent¸a maxim˘ a fmax ≤ 1/104ns = 96.153M Hz este limitat˘ a de acest transfer. Frecvent¸a maxim˘ a, pentru cazul cˆ and bistabilele D1 ¸si D2 se comand˘ a sincron, este fixat˘ a de transferul cel mai lung TCLKmin ≤ τpD2 D1 (HL)max + τSU = 82ns + 20ns = 102ns, fmax ≤ 98.039M Hz.

3.6

MEMORIA CU ACCES ALEATORIU

Circuitul RAM (Random-Access-Memory), ca ¸si circuitul ROM (2.4.6), este un suport pentru stocarea informat¸iei sub form˘ a de cuvinte binare. Spre deosebire de ROM, la RAM, pe lˆ ang˘ a posibilitatea de citire a imformat¸iei, exist˘ a ¸si facilitatea de modificare a informat¸iei, adic˘ a de ˆınscriere. Referirea acestor circuite cu termenul de memorie reflect˘ a o similitudine cu memoria natural˘ a. Totu¸si, procesul de extragere/reg˘ asire a informat¸iei ˆın aceste circuite electronice, ˆın comparat¸ie cu memoria natural˘ a, este destul de diferit. La memoria natural˘ a se reg˘ ase¸ste o informat¸ie pe ,, ,, baza unei mai mici informat¸ii (“un fir ) care are o “conexiune cu informat¸ia c˘ autat˘ a, deci un proces de asociere. ˆIn aceea¸si abordare, putem spune c˘ a ¸si circuitele ROM sau RAM sunt o memorie pentru c˘ a reg˘ asirea unei informat¸ii se face tot printr-o asociere, ,, acest “fir fiind o adres˘ a, a locat¸iei unde a fost stocat˘ a informat¸ia. Dar exist˘ a ¸si circuite electronice la care reg˘ asirea informat¸iei se face prin asociere la aceasta a unei informat¸ii part¸iale, similar memoriei naturale, acestea sunt memoriile de tip asociativ [Stefan 0 00]. Termenul de memorie RAM exprim˘ a faptul c˘ a accesul la oricare locat¸ie (random) se poate face f˘ ar˘ a nici o restrict¸ie de timp indiferent care este adresa locat¸iei accesate; posibilitate care este evident˘ a ¸si la circuitul ROM. Justificarea termenului de random (aleator) este de nuant¸a˘ istoric˘ a. Primele memorii cu citire ¸si ˆınscriere aveau accesul serial, adic˘ a accesul la o locat¸ie nu putea fi realizat decˆ at numai dup˘ a parcurgerea

496

3.6. MEMORIA CU ACCES ALEATORIU

tuturor adreselor locat¸iilor anterioare; un exemplu curent de memorie serial˘ a este caseta magnetic˘ a unde accesul la o anumit˘ a informat¸ie (date, sunet sau imagine) se face prin derularea benzii pˆ an˘ a la pozit¸ia respectiv˘ a. Un alt exemplu de memorie serial˘ a este registrul inel la care ˆınscrierea sau citirea unui bit se face prin recicularea cuvˆ antului ˆın inel pˆ an˘ a cˆ and pozit¸ia din cuvˆ antul respectiv ajunge s˘ a fie transferat˘ a din ultima celul˘ a ˆın prima celul˘ a. La aparit¸ia memoriei cu acces aleator, aceast˘ a caracteristic˘ a de accesare la oricare locat¸ie fiind un salt deosebit din punct de vedere al vitezei de acces, ˆın raport cu memoriile cu acces serial, s-a imprimat ˆın denumire (abreviat¸ia) RAM, care a devenit un termen utilizat ˆın exclusivitate. Denumirea corect˘ a ar fi de memorie RWM (Read/Write Memory). Spre deosebire de circuitul ROM memoria RAM este de tip volatil, adic˘ a la ,, pierderea tensiunii de alimentare informat¸ia stocat˘ a “se volatilizeaz˘ a . Aceast˘ a volatilitate se datoreaz˘ a faptului c˘ a stocarea unui bit are ca suport fizic o stare a unui circuit, stare ce dispare la nealimentarea circuitului, ¸si nu prezent¸a sau absent¸a unui element fizic (fuzibil, diod˘ a, tranzistor) este suportul fizic, cum apare la circuitul ROM. Structurarea de principiu pentru memoria RAM poate fi realizat˘ a printr-o extensie a celei pentru memoria ROM,Figura 2.49-a. La fel ca ¸si la ROM se adopt˘ a, pe suprafat¸a de Si, pentru memoria RAM, o form˘ a p˘ atratic˘ a sau o form˘ a dreptunghiular˘ a apropiat˘ a de un p˘ atrat. De exemplu, pentru o memorie RAM de capacitate 2n × m bit¸i (n bit¸i de adrese ¸si un cuvˆ ant de date de m bit¸i pe I/O), din cuvˆ antul de adresare, An−1 An−2 . . . A1 A0 , subcuvˆ antul de n2 bit¸i, An−1 An−2 . . . An1 +1 An1 , se aplic˘ a decodificatorului DCDn2 : 2n2 pentru activarea liniilor de cuvˆ ant, iar subcuvˆ antul de n1 bit¸i, An1 −1 An1 −2 . . . A1 A0 , se aplic˘ a pentru selectarea coloanelor, n1 + n2 = n, Figura 3.90-a . Valorile care duc la o form˘ a p˘ atratic˘ a se calculeaz˘ a cu relat¸iile n2 = (n + k)/2, n1 + k = (n + k)/2; lungimea cuvˆ antului de date, m, este ˆın general o putere a lui doi, m = 2k . Pe fiecare linie de cuvˆ ant activat˘ a prin una din cele 2 n2 ie¸siri de la DCDn2 : 2n2 n1 exist˘ a m · 2 celule, adic˘ a linii (coloane) de bit, care formeaz˘ a 2 n1 cuvinte, fiecare cuvˆ ant cu lungimea de m bit¸i. La aplicarea subcuvˆ antului de n 1 bit¸i se selecteaz˘ a simultan, din linia activat˘ a de DCD, m linii de bit, selectare care se poate realiza cu un grup de m × M U X2n1 : 1. Deoarece cele m linii de bit (celule) trebuie s˘ a fie atˆ at ˆınscrise cˆ at ¸si citite impune pentru cuvˆ antul de date, D m−1 Dm−2 . . . D1 D0 , s˘ a poat˘ a fi aplicat la terminalele de I/O ˆın ambele sensuri. Acest dublu sens de transfer al datelor pe I/O impune pentru citire selectarea liniilor de bit s˘ a se realizeze cu un grup de m × M U X2n1 : 1; iar pentru ˆınscriere selectarea s˘ a se realizeze cu un grup de m × DM U X1 : 2n1 ; ˆın practic˘ a select˘ arile pentru cele dou˘ a sensuri sunt incluse ˆıntr-un grup de m × (M U X/DM U X). Realizarea acestei duble select˘ ari se bazeaz˘ a pe elemente care pot conduce ˆın ambele sensuri: tranzistoare de trecere sau port¸i de transmisie. Transferul ˆın ambele sensuri, ale grupului m × (M U X/DM U X), poate fi realizat de m × M U X2n1 : 1 cu o structur˘ a arborescent˘ a cu tranzistoare de trecere, Figura 2.35-b. Num˘ arul tranzistoarelor de trecere pe oricare ramur˘ a, ˆın sensul de la I/O la o linie de bit, sau ˆın sens invers, este egal cu n 1 . Aceast˘ a structur˘ a arborescent˘ a de M U X, cˆ and n1 are valoare ridicat˘ a, poate duce la valori mari pentru timpul de transfer al datelor la memorie, deoarece timpul de transfer pe o ramur˘ a ˆıntre linia de bit ¸si I/O este proport¸ional cu rezistent¸a echivalent˘ a a tranzistoarelor pe acea

497

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

MATRICE DE CELULE( 2 n 2 xm2 n 1 ) Linii (coloane) de bit 2n2 −1

A (n−1) A (n−2)

2n2 −2

A R E

de cuvant

1

S

An

1 +1

E

An

1

An

1 −1

0

m2 n1−1 m2n1−2 . . .

..

A0 C O N T R O L

Linii

DCMn 2: 2n2

D

WE_L CS_L OE_L

2

1

0

SELECTARE COLOANE (MUX/DMUX,Amplificatoare se sens, registru de linie,circuistica de inscriere)

WR_L

. .

I/OE_L

.

a) D (m−1)

A n−2

.

RAM n

(2 x m)biti D m−1

WE

b)

D0

.

Linie de cuvant G D

T3

D2

T4

S T C

D1 D0

C1

CS OE

Linie de cuvant

D m−2

A1 A0

D1

DATE DE INTRARE / IESIRE

A n−1

A2

D (m−2)

c)

C2 Linie (/coloana) dubla pentru fiecare bit

Linie / coloana de bit

d)

Figura 3.90 Memoria RAM: a) structurare de principiu cu o adresare bidimensional˘ a (prin linii de cuvˆ ant ¸si linii (coloane) de bit); b) simbol de reprezentare pentru un circuit RAM; c),d) structurare de principiu respectiv pentru o celul˘ a static˘ a ¸si pentru o celul˘ a dinamic˘ a.

498

3.6. MEMORIA CU ACCES ALEATORIU

ramur˘ a. O alt˘ a variant˘ a care realizeaz˘ a valori mai reduse pentru timpul de transfer al datelor utilizeaz˘ a doar cˆ ate un singur tranzistor de trecere pe fiecare traseu care duce ari la cele m · 2n1 linii de bit, iar comanda acestor tranzistoare se obt¸ine ˆın urma aplic˘ subcuvˆ antului An1 −1 An1 −2 . . . A1 A0 la un DCDn1 : 2n1 . Fiecare din cele 2n1 ie¸siri ale DCD va comanda m tranzistoare de trecere, ceea ce poate constitui o ˆınc˘ arcare ridicat˘ a. De asemenea, num˘ arul de tranzistoare necesar pentru selectarea coloanelor de bit este (m + n1 )2n1 ; m2n1 tranzistoare de trecere ¸si n1 2n1 tranzistoare pentru circuitul decodificator. Se pot concepe ¸si variante hibride ˆıntre aceste variante cum ar fi: arbori part¸iali cu un num˘ ar p de tranzistoare, p 0. Tranzistorul T 20 este realizat cu o lungime de canal m˘ arit˘ a pentru a avea o funct¸ionare de generator

501

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

. .

COLOANA / (LINIE) DE BIT, i

.

VDD

T7 LINIE DE CUVANT (j+1)

.

.

LINIE DE CUVANT j

PC Control preincarcare linii de bit : C 1 si C2

.

Celula SRAM − 1 bit

T8 WR_L D i WC1 WC2 Functia T12−blocat 0

.

1

1

0

2

0

0

0

1

VC

..

1

C1 linie de bit

CIRCUITE PENTRU CITIRE

CIRCUITE PENTRU INSCRIERE

a)

T12−conduce T13−blocat VC L 1

VDD

C e1

T13−conduce VC L

T3

T12−blocat

. .. .

T5

T6

V1

V2

1

2

T1

T2

T4

..

T9 De la selectare coloana de bit

.

2

Ce2

Amplificator de sens (diferential cu oglinda de curent) VDD

. . . ... T18

T16

De la selectare citire

De la

selectare citire

T12

De la selectare coloana de bit

1/OE_L T19

T13

.

Di

T17

T20

.

T14 WC1

.

2

T15

T10 T11

T13−blocat VC ,VC H !

C2 linie de bit

Amplificator de sens (cu cuplaj incrucisat)

0

b)

VC

Celula SRAM − 1 bit

.

0

1

.

WR_L

WC2

T21

Figura 3.91 Memoria CMOS-RAM static˘ a: a) structurarea unei coloane dintro matrice RAM. Pe lˆ ang˘ a structura unei celule sunt prezentate circuitele necesare operat¸iilor de ˆınscriere ¸si citire; b) tabelul de adev˘ ar pentru generarea semnalelor, de comand˘ a a liniilor de bit W C1 ¸si W C2 , ˆın efectuarea operat¸iei de ˆınscriere.

502

3.6. MEMORIA CU ACCES ALEATORIU

de curent. Terminalele de substrat ale tranzistoarelor T 16 ¸si T17 sunt conectate la nodul de surs˘ a comun˘ a, ¸si nu la mas˘ a, pentru a se evita variat¸ia tensiunilor de prag ale acestor tranzistoare datorit˘ a polariz˘ arii de substrat. Pentru aceste variat¸ii mici ∆V amplificatorul de sens diferent¸ial realizeaz˘ a un semnal de r˘ aspuns cu un timp de cre¸stere de valoarea τr ' 1ns (vezi Figura 1.15-a). La citirea st˘ arii logice 1, ˆınscris˘ a ˆın celul˘ a (ˆın nodul

1 , V1 = VDD , deci T5

and, conduce, T1 blocat; iar ˆın nodul 2 , V2 = 0V , deci T2 conduce, T6 blocat) analizˆ similar, ca ˆın cazul anterior se genereaz˘ a ∆V = V C1 − VC2 > 0, iar la ie¸sirea driverului TSL se obt¸ine semnalul 1 logic. ˆIn utilizarea memoriei SRAM poate apare cazul cˆ and se cite¸ste o celul˘ a de pe o coloan˘ a, ˆınscris˘ a ˆın 0 deci ∆V < 0, iar citirea urm˘ atoare este de la o celul˘ a tot de pe aceea¸si coloan˘ a, dar ˆınscris˘ a ˆın 1 deci ∆V > 0. Pentru aceste cazuri, pentru a citi corect ¸si rapid, trebuie ˆınc˘ arcate, ˆın intervalul dintre cele dou˘ a citiri, cele dou˘ a capacit˘ a¸ti echivalente Ce1 ¸si Ce2 cu aceea¸si sarcin˘ a deci liniile C1 ¸si C2 aduse la acela¸si potent¸ial. ˆIn acest scop este introdus˘ a posibilitatea de egalizare (/preˆınc˘ arcare), PC, de aducere la acela¸si potent¸ial a liniilor de bit. Operat¸ia de ˆınscriere ˆın celul˘ a. S˘ a consider˘ am, ca ¸si anterior, c˘ a valorile la ie¸sirea latch-ului V1 = 0, V2 = VDD reprezint˘ a 0 logic, iar V1 = VDD ¸si V2 = 0 reprezint˘ a 1 logic. Pentru ˆınscrierea celulei de memorie ˆın starea 1 se aplic˘ a pe linia de bit C1 potent¸ialul VC1 = VDD ¸si pe linia C2 potent¸ialul VC2 = 0V , iar celula init¸ial este ˆın starea zero. La activarea liniei de cuvˆ ant j tranzistoarele T 3 ¸si T4 intr˘ a ˆın a VC1 = VDD , iar conduct¸ie, ˆın nodul 1 ¸si pe poarta tranzistoarelor T2 , T6 se aplic˘ a VC2 = 0V ; prin conexiunile ˆın nodul 2 ¸si pe poarta tranzistoarelor T1 , T5 se aplic˘ care realizeaz˘ a o react¸ie pozitiv˘ a starea inversorului din dreapta, cu T 2 blocat T6 ˆın conduct¸ie, va trece ˆın starea cu T2 ˆın conduct¸ie ¸si T6 blocat, iar inversorul din stˆ anga va trece din starea cu T1 ˆın conduct¸ie ¸si T5 blocat ˆın starea cu T1 blocat ¸si T6 ˆın conduct¸ie ceea ce reprezint˘ a ˆınscrierea st˘ arii 1 ˆın celul˘ a. Dac˘ a celula era ˆın starea 1, aplicarea pe liniile de bit VC1 = VDD , VC2 = 0 nu produce bascularea latch-ului. ˆIn mod similar, dac˘ a pe liniile de bit C1 , C2 se aplic˘ a respectiv VC1 = 0V ¸si VC2 = VDD , iar celula era ˆın stare logic˘ a 1 se va produce bascularea celulei ˆın starea logic˘ a 0, iar dac˘ a era ˆın starea logic˘ a 0 nu se produce nici o modificare. Aplicarea celor dou˘ a tensiuni de niveluri logice diferite pe cele dou˘ a linii de bit se realizeaz˘ a cu circuitele desenate ˆın partea de jos a figurii. Practic, pentru ˆınscrierea ˆın 1, coloana C2 este conectat˘ a la mas˘ a prin tranzistoarele T 13 ¸si T21 , iar pentru ˆınscrierea ˆın 0 coloana C1 este conectat˘ a la mas˘ a prin tranzistoarele T 12 ¸si T21 ; T21 intr˘ a ˆın conduct¸ie cˆ and coloana de bit j este selactat˘ a prin semicuvˆ antul de adres˘ a An1 −1 An1 −2 . . . A1 A0 . Semnalele complementare W C1 ¸si W C2 , care comand˘ a respectiv tranzistoarele T12 ¸si T13 , se obt¸in din valoarea bitului Di , a cuvˆ antului de date, aplicat pe intrare pentru a fi ˆınscris ¸si din semnalul de ˆınscriere ˆın celul˘ a WR L, prin intermediul a dou˘ a port¸i NOR, conform tabelului de adev˘ ar din Figura 3.91-b. Tranzistoarele T12 , T13 ¸si T21 trebuie s˘ a fie dimensionate cu valori ridicate pentru raportul (W/L) pentru ca s˘ a fort¸eze aproape la zero potent¸ialele coloanelor ˆın operat¸ia de ˆınscriere. Semnalele W C1 ¸si W C2 pot fi utlizate pentru comanda ¸si a altor coloane, ˆın cazul nostru de 2n−1 coloane (dar atent¸ie la fan-out care cre¸ste mult!). Parametrii de timp pentru operat¸iile de citire ¸si ˆınscriere ˆın memorie. Pentru efectuarea corect˘ a a operat¸iilor de citire ¸si ˆınscriere semnlele care concur˘ a

503

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

(cuvˆ antul de adres˘ a An−1 ÷ A0 , cuvˆ antul de date Dm−1 ÷ D0 pe I/O ¸si semnalele de control: validare ˆınscriere WE L; selectare circuit CS L; validare ie¸sire OE L, Figura 3.90-b) trebuie s˘ a aib˘ a o anumit˘ a succesiune ˆın timp ¸si sunt restrict¸ionate de anumite valori limit˘ a de timp. Aceste restrict¸ii sunt impuse de ˆınscrierea latch-ului care are o funct¸ionare transparent˘ a. Semnalul intern WR L care ˆınscrie datele ˆın latch, ¸si care determin˘ a durata de transparent¸a a latch-ului, se obt¸ine ca o conjunct¸ie ˆıntre semnalele de intrare, W R L = W E L · CS L, deci acest semnal este activ ˆın L pe o durat˘ a τWP egal˘ a cu intervalul ˆın care ambele semnale de intrare sunt active. Latchul devine transparent la ˆınceputul duratei τ WP , pe frontul H-L, ¸si r˘ amˆ ane ˆın stare de transparent¸a˘ pˆ an˘ a la frontul L-H. Pe durata de transparent¸a˘, τ WP , nu se impune pentru cuvintele de date ¸si de adres˘ a aplicate s˘ a fie stabile, dar este necesar ca acestea s˘ a fie stabile fat¸a˘ de frontul L-H, pe un interval τ SU ˆınainte ¸si τH dup˘ a; aceast˘ a restrict¸ie se va reflecta ˆın definirea parametrilor de timp urm˘ atori [Wakerly 0 00]. Operat¸ia de citire ˆın memorie, Figura 3.92-a (semnalul de ˆınscriere se consider˘ a neactivat, WE L=H) An−1

.. A

0

Adresa stabila

Adresa stabila τ ΑΑ

CS_L WE_L=H OE_L D m−1

.. D

Adresa stabila max( τ ΑΑ,τACS ) τOH

τACS τ ΑΑ

Date valide

0

τoz

τ 0Ε

τoz

Date

τ OE Date valide

valide

a) An−1

.. A

0

CS_L

Ciclu de citire controlat prin WE Adresa stabila τ CSW τ AS

τ WP

τ AH

Ciclu de citire controlat prin CS τ AS

Adresa stabila τ CSW τ WP

τ DH

WE_L

D m−1

.. D

τ DS 0

τ DH

Date valide

τ DS

τ DH

Date valide

b) Figura 3.92 Definirea parametrilor de timp pentru o memorie SRAM: a) pentru operat¸ia de citire (WE L, inactiv); b) pentru operat¸ia de ˆınscriere

- τAA , timpul de acces (fat¸a˘ de aplicarea adresei). Este intervalul de timp din momentul aplic˘ arii la intrare a cuvˆ antului de adres˘ a pˆ an˘ a ˆın momentul cˆ and cuvˆ antul de date citit este valid la pinii I/O (se presupune c˘ a semnalul intern a cˆ and se refer˘ a la o I/OE L a fost deja activat). ˆIn exprimarea profesional˘ memorie, de exemplu de 60ns se ˆınt¸elege τAA .

504

3.6. MEMORIA CU ACCES ALEATORIU

- τACS , timpul de acces de la selectarea circuitului. Este intervalul de timp din momentul aplic˘ arii semnalului CS pˆ an˘ a ˆın momentul cˆ and cuvˆ antul de date citit este valid la pinii I/O (se presupune deja cuvˆ antul de adres˘ a ¸si semnalul OE c˘ a au fost aplicate ¸si sunt stabile). ˆIn general τAA = τACS dar nu ¸si ˆın cazul circuitelor la care neactivarea semnalului CS introduce circuitul ˆın regimul de a¸steptare (standby), Figura 2.49-a. - τOE , timpul de validare a ie¸sirii. Este intervalul din momentul ˆın care ambele semnale OE ¸si CS sunt activate (care genereaz˘ a semnalul intern I/OE) pˆ an˘ a cˆ and driverele de ie¸sire TSL trec ˆın starea de funct¸ionare normal˘ a; τ OE < τACS . - τOZ , timpul de devalidare a ie¸sirii. Acest parametru caracterizeaz˘ a trecerea ˆın regim de HZ a driverelor TSL; este intervalul de timp din momentul dezactiv˘ arii semnalelor OE ¸si CS pˆ an˘ a cˆ and driverele TSL ajung ˆın HZ. - τOH , timpul de ment¸inere a datelor. Specific˘ a intervalul de timp ˆın care cuvˆ ntul citit mai poate r˘ amˆ ane valid la I/O dup˘ a ce cuvˆ antul de adres˘ a, al locat¸iei de unde s-a citit, a fost anulat. Operat¸ia de ˆınscriere ˆın memorie, Figura 3.92-b - τAS , timpul de stabilizare a adresei. Specific˘ a cu cˆ at timp ˆınainte de aplicarea semnalului de ˆınscriere (generat prin conjunct¸ia CS·WE) cuvˆ antul de adres˘ a trebuie s˘ a fie stabil. - τAH , timpul de ment¸inere a adresei. Specific˘ a cˆ at timp dup˘ a aplicarea semnalului de ˆınscriere cuvˆ antul de adres˘ a mai trebuie s˘ a nu se modifice. τ AS ¸si τAH determin˘ a, pentru ˆınscriere, intervalul interzis ∆, centrat pe frontul de ˆınscriere ˆın care bit¸ii cuvˆ antului de adres˘ a nu trebuie s˘ a se modifice. - τDS , timpul de stabilizare a datelor. Specific˘ a cu cˆ at timp ˆınainte de frontul activ a al semnalului de ˆınscriere, WR L, datele aplicate pe teminalele I/O trebuie s˘ fie stabile. - τDH , timpul de ment¸inere a datelor (nemodificate dup˘ a frontul de ˆınscriere). τ DS ¸si τDH , la fel ca ¸si τAS ¸si τAH pentru adrese, determin˘ a pentru date intervalul interzis ∆, centrat pe frontul de ˆınscriere ˆın care bit¸ii cuvˆ antului de date nu trebuie s˘ a se modifice. - τCSW , timpul de stabilizare pentru CS. Specific˘ a cu cˆ at timp ˆınainte de frontul de ˆınscriere semnalul CS trebuie s˘ a fie stabil. - τWP , l˘ a¸timea palierului semnalului de ˆınscriere. Specific˘ a cu cˆ at timp ˆınainte de frontul de ˆınscriere trebuie s˘ a se aplice semnalul WE. De fapt transparent¸a latch-ului, dup˘ a cum s-a spus, este determinat˘ a de durata palierului semnalului WR (generat prin conjunct¸ia CS L · W E L). Considerˆ and c˘ a aceste dou˘ a semnale sunt dezactivate simultan atunci se pot distinge dou˘ a cicluri de ˆınscriere: controlat prin WE sau controlat prin CS, dup˘ a cum WE L este activat ultimul sau CS L este activat ultimul.

505

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Din analiza funct¸ion˘ arii memorie SRAM ¸si din prezentarea parametrilor se observ˘ a c˘ a operat¸iile de ˆınscriere ¸si de citire sunt asincrone (aparit¸ia lor nu este determinat˘ a de un semnal de ceas). De aceast˘ a observat¸ie trebuie ¸tinut cont cˆ and o memorie SRAM este introdus˘ a ˆıntr-un sistem ˆın care exist˘ a alte componente (registre, num˘ ar˘ atoare, ASM) care au o funct¸ionare sincron˘ a.

3.6.2

Memoria RAM dinamic˘ a

Principala caracteristic˘ a ce a impus pentru capacit˘ a¸ti de stocare mari, chiar Gb (1G = 109 ), memoria dinamic˘ a, DRAM, este densitatea ridicat˘ a de integrare ce se poate obt¸ine cu acest tip de memorie de¸si prezint˘ a circuistic˘ a suplimentar˘ a fat¸a˘ de SRAM. Exist˘ a variante de DRAM care se bazeaz˘ a pe celule de memorie compuse dintr-o capacitate de stocare ¸si 1,3 sau 4 tranzistoare, dar, evident, s-a generalizat structura de DRAM care prezint˘ a ˆın fiecare nod al matricei celul˘ a doar un singur tranzistor, notat˘ a prin 1-T DRAM; numai structura bazat˘ a pe aceast˘ a celul˘ a se va prezenta. ˆIntˆ ai se va prezenta modalitatea de realizare a proceselor de ˆınscriere ¸si de citire/regenerare la nivelul unei celule dintr-o matrice de memorie iar, apoi, modul de comand˘ a, al operat¸iilor de ˆınscriere ¸si citire/regenerare la nivel de circuit DRAM, prin aplicarea la pinii circuitului a semnalelor: de control, adres˘ a ¸si date.

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

PC LW255

Decodificare linii

LWO

C

C

. . . C255 . . . LW128

LW127

1 D in

a)

Buffer Date de Intrare

C

C

. . . .

. . . .

C

. . . C254 . . . C

C

C

ampl.latch si ampl. de sens

ampl.latch si ampl. de sens

. .. . .

. . . .

. . . .

.. . . .. . .. .. .. .. .. .. .. C

C

C

C

. . . C1 . . .

. . . C0 . . .

C

ampl.latch . . . . si ampl. de sens . . . .

C

ampl.latch si ampl. de sens

.. ..

VDD / 2

Linie de biti, i Ci

.

Linie de cuvant LW j Ce

semicoloana inferioara

C

VSS

semicoloana superioara

VSS G

Si O2

LW i

. . . . . . . . . Ci

n+ D

VSS . . . .

n+

. . . . S

substrat Polisiliciu (poarta)

Buffer Date de Iesire

1

Polisiliciu (placa condensator)

b)

D0

Selectare coloane

Figura 3.93 Memoria DRAM:a) structurarea de principiu a unei matrice de dimensiune 256 linii × 256 colone; b) structura unei celule de tipul 1-T ¸si layout-ul corespunz˘ ator

Se consider˘ a o matrice de 256 linii de cuvˆ ant (LW 255 , . . . , LW1 , LW0 ) ¸si 256 coloane/ linii de bit (C255 , . . . C1 , C0 ), Figura 3.93-a. ˆIn fiecare nod al matricei

506

3.6. MEMORIA CU ACCES ALEATORIU

(256 × 256), celula const˘ a dintr-un tranzistor nMOS ¸si un condensator C, Figura 3.93-b. Condensatorul de stocare C se realizeaz˘ a ˆıntre zona difuzat˘ a n + din substrat, ca surs˘ a a tranzistorului, ¸si o plac˘ a din polisiliciu realizat˘ a deasupra stratului de SiO 2 , conectat˘ a la mas˘ a (VSS ). ˆIntr-un nod ji al matricei, conectarea condensatorului C la coloana de bit Ci prin intermediul tranzistorului nMOS, se realizeaz˘ a prin activarea (VDD ) a liniei de cuvˆ ant LWj . Prin aceast˘ a conectare sunt puse ˆın paralel dou˘ a capacit˘ a¸ti de valori sensibil diferite: capacitatea C de stocare din nod (valori 30-10fF, 1fF=10−15 F) ¸si capacitatea echivalent˘ a Ce (≥ 300fF) a coloanei. Prin transferul de sarcin˘ a ˆıntre cele dou˘ a condensatoare, cˆ and sunt puse ˆın paralel, deci prin valoarea tensiunii rezultate pe coloana de bit, se pot realiza operat¸iile de ˆınscriere, citire/regenerare. ˆ Inscrierea celulei din nodul ji cu bitul Din aplicat pe intrare se realizeaz˘ a simplu. ˆIntˆ ai, se activeaz˘ a prin semicuvˆ antul superior de adres˘ a aplicat la intrarea decodificatorului de linii, linia de cuvˆ ant LW j , apoi, prin semicuvˆ antul inferior de adres˘ a, aplicat decodificatorului de coloan˘ a, se selecteaz˘ a coloana de bit C i , iar pe acest˘ a coloan˘ a se aplic˘ a valoarea bitului de intrare, D in , deci prin tranzistorul ˆın conduct¸ie T din nodul ji se ˆıncarc˘ a condensatorul cu sarcin˘ a zero (pentru D in =0) sau la potent¸ialul VDD (pentru Din =1). Exist˘ a o paricularitate ˆın structurarea acestei matrice, fiecare coloan˘ a de bit este sect¸ionat˘ a ˆın dou˘ a lungimi egale: semicoloana superioar˘ a, care cuprinde nodurile de intersect¸ii cu liniile de cuvˆ ant LW255 , . . . LW129 , LW128 ¸si semicoloana inferioar˘ a care cuprinde nodurile de intersect¸ie cu liniile de cuvˆ ant LW 127 , . . . LW1 , LW0 . (Aceast˘ a sect¸ionare explic˘ a de ce ˆın Figura 3.93-a num˘ arul liniilor de cuvˆ ant LW j sunt alternate ˆın num˘ arare corespunz˘ ator celor dou˘ a intervale: de la LW 0 ÷ LW127 cu LW128 ÷ LW255 .) Aceast˘ a sect¸ionare a coloanelor apare ¸si pe aria de Si prin realizare a dou˘ a subarii iar ˆın spat¸iul dintre acestea este implementat, corespunz˘ ator fiec˘ arei coloane de bit, cˆ ate un amplificator latch ¸si un amplificator de sens diferent¸ial, Figura 3.94-a. (ˆIn aceast˘ a figur˘ a este desenat doar amplificatorul latch, circuitul complet amplificator latch ¸si amplificator de sens diferent¸ial sunt similare cu cele prezentate ˆın Figura 3.91-a.) Fiecare din cele dou˘ a semicoloane (S – superioar˘ a, I – inferioar˘ a) este caracterizat˘ a de o capacitate electric˘ a echivalent˘ a, C eI ,CeS (CeI = CeS ). ˆIn figur˘ a sunt prezentate pentru fiecare semicoloan˘ a tranzistoarele ¸si condensatoarele din nodurile corespunz˘ atoare, care sunt comandate de semnale de la liniile de cuvˆ ant LWj ; ˆın plus, sunt, pentru fiecare semicoloan˘ a, introduse cˆ ate o celul˘ a martor. Cele dou˘ a celule martor de pe o coloan˘ a sunt, ca structur˘ a, identice cu cea a unei celule din oricare nod dar au un condensator de stocare de valoare C/2, prezint˘ a pentru comand˘ a pe port¸ile tranzistoarelor semnalele CM I ¸si CMS , care nu sunt obt¸inute de la linii de cuvˆ ant, iar potent¸ialele ˆın punctele X ¸si Y pot fi puse la mas˘ a prin intermediul a dou˘ a tranzistoare comandate prin semnalul de preˆınc˘ arcare, PC. Citirea/regenerarea celulei. Aceast˘ a operat¸ie este realizat˘ a, ˆıntr-o succesiune temporal˘ a compus˘ a din trei faze, Figura 3.94-b. Faza 1 - preˆınc˘ arcare. Prin activarea semnalului de preˆınc˘ arcare, PC, capacit˘ a¸tile echivalente CeI ¸si CeS ale semicoloanei superioare ¸si inferioare de bit se ˆıncarc˘ a la tensiuni (de nivel H) egale, iar potent¸ialele ˆın punctele X ¸si Y sunt fixate la mas˘ a, Figura 3.94-c. Este necesar˘ a aceast˘ a egalizare a potent¸ialelor pentru cele dou˘ a semicoloane deoarece dup˘ a o citire, pentru refacerea datei citite, semicoloanele vor fi fort¸ate, ˆın urma comutat¸iei amplificatorului latch, una ˆın nivel H iar cealalt˘ a ˆın nivel L (vezi

507

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

Semicoloana inferioara LW 0

....

C

. .

CMI

LW 127

LW 126

VDD PC C eI

.

C eS

X

C

C

a)

CMS

.

....

Y

C C/2

SC

C/2

Semicoloana superioara LW 128 LW 225 LW 129

PC

PC

Celula martor

Ampl. latch

C

C

Celula martor

Preincarcare, PC Selectare linie LW Selectare celula martor CMI,CMS Selectare coloana SC

Faza1

Faza2

Faza3

b) Semicoloana inferioara LW 127 LW

....

C

C

c)

C eI

Faza3

LW 128

Semicoloana inferioara

....

C/2

PC

PC VDD

C

C

CMS C eI

d)

LW 225

C

Semicoloana superioara LW 129

....

Y SC PC

C/2

C

LW 128

C eS

X C

....

Celula martor

CMI

LW 127

LW 126

LW 129

Y SC

C/2

Semicoloana superioara

C eS

Celula martor

C

CMS

X

Faza 2

LW 0

PC

CMI

126

C

C/2

PC

C

C

LW 225

C

VDD

Faza 3 Semicoloana inferioara LW 0

Faza2

VDD

Faza 1 LW 0

Faza1

LW 126

....

LW 127

C eI

C

C/2

Semicoloana superioara LW 128

C eS

LW 129

....

Y

X C

C

CMS

CMI

SC PC

PC

C/2

C

C

LW 225

C

e)

Figura 3.94 Realizarea ciclului citire/regenerare pe o memorie 1-T DRAM prin succesiunea a trei faze: a) structurarea unei coloane de bit a matricei cu 256 de noduri ˆın dou˘ a semicoloane egale separate printr-un amplificator latch ¸si dou˘ a celule martor; b) succesiunea semnalelor de comand˘ a pentru cele trei faze; c) Faza 1, preˆınc˘ arcarea coloanei de bit ¸si desc˘ arcarea celulelor martor; d) Faza 2, activarea liniei de cuvˆ ant, LW127 (= VDD ), ¸si a celulei martor din semicoloana opus˘ a; e) Faza 3, selectarea coloanei de bit, SCi (= VDD ), citirea celulei ¸si regenerarea celulei din nodul (127, i). (Partea de circuit care nu particip˘ a ˆın faza respectiv˘ a este desenat˘ a cu linie punctat˘ a)

508

3.6. MEMORIA CU ACCES ALEATORIU

dup˘ a Faza 3). (Elementele din figur˘ a care nu sunt implicate ˆın realizarea acestei faze sunt desenate cu linie punctat˘ a). Faza 2 - activarea liniei de cuvˆ ant ¸si comanda celulei martor, Figura 3.94-d. Se presupune c˘ a prin aplicarea semicuvˆ antului superior de adres˘ a la decodificatorul de linii se activeaz˘ a linia de cuvˆ ant LW127 (= VDD ) din semicoloana inferioar˘ a ¸si semnalul CMS (= VDD ) din semicoloana superioar˘ a. Dac˘ a ˆın celula de la intersect¸ia coloanei i cu linia de cuvˆ ant LW127 era ˆınscris 1 logic, atunci potent¸ialul semicoloanei inferioare va cre¸ste put¸in, iar potent¸ialul semicoloanei superioare va sc˘ adea put¸in, pentru c˘ a condensatorul C/2 al celulei martor se va ˆınc˘ arca; deci apare o diferent¸a˘ de potent¸ial ∆V (maximum cˆ ateva sute de mV) ˆıntre cele dou˘ a semicoloane, care se aplic˘ a ˆıntre ie¸sirile amplificatorului latch. Iar dac˘ a ˆın celul˘ a era ˆınscris 0 logic potent¸ialul semicoloanei inferioare va sc˘ adea mai mult decˆ at al semicoloanei superioare, deoarece capacitatea celulei 127 este dubl˘ a fat¸a˘ de capacitatea celulei martor. Evident, prin conectarea celulei la coloana de bit valoarea potent¸ialului pe condensatorul C din nodul accesat se modific˘ a, deci o distrugere a nivelului de bit care era ˆınscris. Faza 3 - selectarea coloanei de bit, Figura 3.94-e. Prin aplicarea semicuvˆ antului inferior de adres˘ a la decodificatorul de coloane, semnalul pentru selectarea coloanei i devine activ, SC (= VDD ), amplificatorul latch basculeaz˘ a fort¸aˆnd pentru semicoloana inferioar˘ a potent¸ialul VDD , deci condensatorul nodului (127, i) se reˆıncarc˘ a cu 1 logic, iar potent¸ialul semicoloanei superioare de bit este fort¸at la mas˘ a. ˆIn consecint¸a˘ data stocat˘ a ˆın nodul (127,i), deteriorat˘ a ca nivel ˆın urma citirii, este regenerat˘ a, rezult˘ a c˘ a operat¸ia realizat˘ a de citire este urmat˘ a automat de regenerare. Totodat˘ a, este comandat amplificatorul de sens diferent¸ial care va genera pe pinii de ie¸sire bitul citit ˆın celula nodului (127, i). ˆIn continuare poate urma un nou ciclu de citire/regenerare, cu trei faze succesive, pentru alt nod. ˆIn Faza 2, a ciclului de citire/regenerare, sarcina pe condensatorul de stocare dintr-o celul˘ a este modificat˘ a dar este ref˘ acut˘ a ˆın Faza 3. Dar sarcina stocat˘ a pentru valoare logic˘ a 1 pe condensatorul C, dintr-o celul˘ a care nu este supus˘ a la un ciclu citire/regenerare, se mic¸soreaz˘ a (datorit˘ a curentului rezidual prin tranzistorul nMOS) ˆıncˆ at dup˘ a un anumit interval de timp nu mai reprezint˘ a nivelul de 1 logic. Deci, dac˘ a nu se efectueaz˘ a un ciclu de citire/regenerare se impune ca fiecare celul˘ a a matricei sa fie supus˘ a unei operat¸ii de regenerare pentru refacere (refreshment) dup˘ a un anumit interval de timp (de ordinul cˆ atorva ms). Ceea ce este, totu¸si, avantajos, ˆın acest proces de refershment, care complic˘ a structura ¸si lucrul cu o memorie DRAM, const˘ a ˆın faptul c˘ a regenerarea nu se face pentru fiecare celul˘ a ˆın parte ci simultan pentru toate celulele din nodurile de pe o linie de cuvˆ ant LW . Pentru matricea anterioar˘ a de 256 linii × 256 coloane, nivelul pentru bitul 1 nu este deteriorat, dac˘ a celula este regenerat˘ a la un interval de 4ms, ceea ce implic˘ a pentru fiecare linie de cuvˆ ant s˘ a fie activat˘ a, LW = VDD , la un interval 4ms : 256 = 15625ns. Dac˘ a timpul de ciclu, pentru operat¸ia de citire/regenerare a unei linii, este de 100ns, rezult˘ a c˘ a timpul consumat de o regenerare ˆın bloc a tuturor celulelor matricei, prin activarea succesiv˘ a a celor 256 linii de cuvˆ ant, este de 256 × 100 = 2.56 × 10 4 ns adic˘ a 0.64% din 4ms; deci 99.36% din timp memoria poate fi folosit˘ a efectiv pentru operat¸iile utile de scriere sau citire. La unele circuite DRAM trebuie aplicate din exterior comenzile pentru regenerare, la altele, avˆ and ˆın interior circuistica necesar˘ a, ˆı¸si autogenereaz˘ a procesul de regenerare; circuistica necesar˘ a const˘ a dintr-un num˘ ar˘ ator care, dup˘ a consumarea unui anumit interval de timp prestabilit, ˆın cazul anterior 4ms, genereaz˘ a

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

509

prin num˘ ararea ˆın sens direct/invers toate adresele liniilor de cuvˆ ant. Modalitatea de realizare a operat¸iilor de ˆınscriere, citire/regenerare, sau regenerare separat˘ a, la nivel de circuit DRAM, prin aplicarea semnalelor din exterior depinde de structurarea circuitului respectiv. O structurare de principiu pentru un circuit DRAM de 64Kbit este prezentat˘ a ˆın Figura 3.95-a. O particularitate ˆın funct¸ionarea unei memorii DRAM, care ˆınfluent¸eaz˘ a structurarea sa, rezult˘ a din timpul necesar pentru accesarea unei linii de cuvˆ ant care este mult mai lung decˆ at timpul necesar pentru accesarea unei coloane de bit. ˆIn consecint¸a˘, se poate accesa o celul˘ a a matricei aplicˆ and ˆıntˆ ai semicuvˆ antul de adresare superior la decodificatorul pentru liniile de cuvˆ ant ¸si numai dup˘ a aceea se aplic˘ a semicuvˆ antul inferior pentru generarea select¸iei de coloan˘ a, deci o adresare ˆın doi pa¸si: ˆıntˆ ai linia (care necesit˘ a un timp de acces mai lung)¸si apoi coloana. Neaplicarea simultan˘ a a celor dou˘ a semicuvinte a determinat ca l˘ a¸timea magistralei de adrese pentru o memorie de capacitate 2n bit¸i s˘ a nu fie de n bit¸i ci de n/2 bit¸i. Aceasta explic˘ a de ce capacit˘ a¸tiile memoriilor DRAM sunt multiplu de patru; la cre¸sterea (semi)cuvˆ antului de adres˘ a cu un bit atˆ at num˘ arul liniilor de cuvˆ ant cˆ at ¸si num˘ arul coloanelor de bit se dubleaz˘ a. Pentru memoria de 256 × 256 bit¸i se aplic˘ a ˆıntˆ ai 8 bit¸i la pinii de adres˘ a, care reprezint˘ a semicuvˆ antul superior de adres˘ a, acest cuvˆ ant este ˆınscris ˆıntr-un registru latch pentru adresa de linie, iar prin intermediul decodificatorului de linii se activeaz˘ a una din cele 256 linii. ˆInscrierea semicuvˆ antului ˆın registru pentru adresa de linie se face pe frontul negativ al semnalului de strob a la pinii de adres˘ a alt¸i 8 bit¸i linii, RAS L (Row Address Strob). Apoi, se aplic˘ care reprezint˘ a semicuvˆ antul inferior de adres˘ a iar acest cuvˆ ant este ˆınscris ˆıntr-un registru pentru adresa de coloan˘ a; prin intermediul decodificatorului se activeaz˘ a o cale din grupul de MUX/DMUX pentru selectarea unei coloane ˆın matricea de celule. ˆInscrierea ˆın registru pentru adresa de coloan˘ a se face pe frontul negativ al semnalului de strob coloane, CAS L (Collumn Address Strob). Pe durata CAS L=0 bufferul de ie¸sire TSL este trecut din HZ ˆın starea de funct¸ionare normal˘ a. Mai exist˘ a ˆınc˘ a dou˘ a semnale de control: unul necesar numai pentru validarea operat¸iei de alalt (nefigurat ˆın aceast˘ a structur˘ a) pentru selectarea circuitˆınscriere WE L iar cel˘ ului CS L. Citirea memoriei, Figura 3.95-a. Semicuvˆ antul superior de adres˘ a, aplicat cu valori stabile pe pinii circuitului, este strobat/ˆınscris ˆın registrul pentru adresa de a linia corespunz˘ atoare din linie pe frontul negativ al semnalului RAS L; se selecteaz˘ matrice iar cont¸inutul acestei linii este ˆınscris ˆıntr-un registru latch de linie. Apoi, dup˘ a ce semicuvˆ antul inferior de adres˘ a aplicat pe pinii circuitului devine stabil acesta este ˆınscris ˆın registrul pentru adresa de coloan˘ a pe frontul negativ al semnalului de strob CAS L. Pe baza acestei adrese de coloan˘ a prin intermediul multiplexoarelor este selectat bitul corespunz˘ ator, din cuvˆ antul ˆınscris temporar ˆın registrul latch de linie, ¸si aplicat pe pinul de ie¸sire DO (bufferul de ie¸sire TSL este ˆın stare normal˘ a de funct¸ionare atˆ at timp cˆ at CAS L este activat). La dezactivarea semnalului RAS L, cont¸inutul din registrul latch de linie este reˆınscris (/regenerare) ˆınapoi ˆın linia de cuvˆ ant care a fost selectat˘ a, deci la sfˆ ar¸situl operat¸iei de citire a unei locat¸ii se realizeaz˘ a regenerarea ˆıntregii linii ˆın care se afl˘ a locat¸ia respectiv˘ a citit˘ a. Operat¸ia numai de regenerare a informat¸iei din ˆıntreaga matrice este similar˘ a cu cea de la citire cu diferent¸a c˘ a nu se mai comand˘ a selectarea coloanei (CAS L nu se activeaz˘ a, se ˆıncarc˘ a linia selectat˘ a ˆın registrul latch de linie ¸si apoi se ˆınscrie

510

3.6. MEMORIA CU ACCES ALEATORIU

Decod.

Registru pentru adresa de linie

..

8

linii

Matrice de celule 1TDRAM

256

8:256

256x256

Logica

A7 A0

de

control

256

control

RAS_L CAS_L WE_L

Adresa de coloana

Registru pentru adresa de coloana

Decod.

Amplificatoere de sens,

coloana

Registru latch de linie Multiplexoare si

8:256 256

8

Demultiplexoare

a) D0

DI

CITIRE

..

.

RAS_L CAS_L

..

τ RAS

Inscriere in reg. adr. de linie. Selectare linie. Inscriere in reg. latch de linie

b) INSCRIERE

..

RAS_L CAS_L

. AO . D0 3

.

.

Adr.de linie valida

τ CAS Date de iesire valide

Se incarca registrul pentru adr. de coloana, se valideaza bufferul de iesire(TSL), bitul selectat se aplica pe pinul de iesire

Adresa de linie valida τ RAS

Adr.coloana valida τciclu

.

τ CAS

Devalidarea bufferului de iesire(TSL)

.

Reinscriere liniei selectate

Adr.de linie valida

.

Date de intrare valide

0

WE_L

c)

.

HZ

AO3 D0 0 WE_L=H

A11 A0

Adr.coloana valida τciclu

Adresa de linie valida

A11 A0

Inscriere in reg. adr. de linie. Selectare linie. Inscriere in reg. latch de linie

Se incarca registrul pentru adresa de coloana, se selecteaza pozitia bitului ce trebuie inscris

Inscriere DI in reg latch de linie

Reinscriere liniei selectate

Figura 3.95 Circuitul de memorie DRAM: a) structurare de principiu pentru o memorie de 64Mb (4096 × 4096 × 4); succesiunea aplic˘ arii cuvˆ antului de adres˘ a, a datelor de ie¸sire/intrare ¸si a semnalelor de control ˆın efectuarea operat¸iilor de citire/regenerare (b) ¸si de ˆınscriere (c).

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

511

ˆınapoi linia cu acela¸si cont¸inut). Se aplic˘ a succesiv toate adresele liniilor de cuvˆ ant, pe frontul negativ al semnalului RAS L cont¸inutul unei linii se ˆınscrie ˆın registrul latch de linie iar la dezactivarea acestui semnal cont¸inutul din registrul latch de linie este ˆınscris ˆınapoi ˆın linia respectiv˘ a; intervalul de timp dup˘ a care o linie trebuie reˆımprosp˘ atat˘ a este de ordinul ms. ˆIn principiu, partea de reˆımprosp˘ atare trebuie s˘ a aib˘ a un circuit timer care s˘ a produc˘ a intervale de timp dup˘ a care trebuie pornit˘ a operat¸ia de reˆımprosp˘ atare (Timer - un circuit num˘ ar˘ ator prestabil, comandat cu o frecvent¸a˘ stabil˘ a) ¸si un num˘ ar˘ ator ce genereaz˘ a succesiv toate adresele de linie. ˆ Inscrierea memoriei. Succesiunea de selectare a locat¸iei din matricea de memorie este similar˘ a ca la operat¸ia de citire, dar semnalul WE L trebuie activat ˆınaintea amˆ ane ˆın starea semnalului CAS L; pe durata RAS L=0 bufferul de ie¸sire TSL va r˘ a ce cont¸inutul liniei selectate a fost ˆınscris HZ chiar dac˘ a CAS L devine activ. Dup˘ ˆın registrul latch de linie (la fel ca la citire), pozit¸ia din acest registru, determinat˘ a de selectare coloan˘ a, este ˆınscris˘ a cu bitul de intrare DI la activarea semnalului de ˆınscriere WE L. La dezactivarea semnalului RAS L se va ˆınscrie ˆın linia de cuvˆ ant cont¸inutul din registrul latch de linie dar cu valoarea bitului DI ˆın pozit¸ia selectat˘ a. Un procedeu prin care se simpific˘ a procesul de reˆımprosp˘ atare a memoriei este cel referit prin CAS ˆınainte de RAS (CAS before RAS). Aplicarea acestui procedeu necesit˘ a existent¸a unui num˘ ar˘ ator ˆın interiorul circuitului de memorie care s˘ a genereze succesiv adresele de linii de cuvˆ at (se elimin˘ a astfel aplicarea din exterior a adreselor de linie). Dup˘ a cum ¸si denumirea procedeului indic˘ a, se aplic˘ a semnalul CAS ˆınaintea semnalului RAS, este reˆımprosp˘ atat˘ a linia de cuvˆ ant selectat˘ a de num˘ ar˘ ator ¸si, apoi, se incrementeaz˘ a num˘ ar˘ atorul. La DRAM, ca ¸si la SRAM, funct¸ionarea nu este dirijat˘ a de ceas, funct¸ionarea este de tip asincron ¸si este fixat˘ a prin fronturile H-L ¸si L-H ale semnalelor de control RAS L ¸si CAS L. Sintetic funct¸ionarea memoriei dinamice se compune din (parametrii de timp din paranteze corespund unei memorii actuate de 4MB): Adresarea liniei de cuvˆ ant (∼ 50ns) · se aplic˘ a adresa de linie ¸si se activeaz˘ a semnalul de strobare RAS L

· ˆıntregul cont¸inut al liniei selectate/citite este ˆınscris ˆın registrul latch de linie · cont¸inutul liniei citite este deteriorat

Adresarea coloanei (∼ 10ns) · se aplic˘ a adresa de coloan˘ a ¸si se activeaz˘ a semnalul de strobare CAS L · pentru coloana selectat˘ a bitul:

- la citire este transferat din registrul latch de linie la ie¸sire, D O - la ˆınscriere este ˆınscris cu valoare DI

Reˆımprosp˘ atare (∼ 30ns) · se ˆınscrie ˆınapoi ˆın linie ˆıntreg cont¸inutul din registrul latch de linie Pentru o memorie dinamic˘ a principalii parametri din catalog sunt (valorile din paranteze corespund pentru o memorie de 4MB):

512

3.6. MEMORIA CU ACCES ALEATORIU

· τRAC , este intervalul de timp minim de la frontul de activare a semnalului RAS L pˆ an˘ a ˆın momentul cˆ and datele sunt valide la ie¸sirea bufferului TSL (60 ns). Viteza unui cip de memorie este specificat˘ a prin aceast˘ a valoare (de acces). · τRC , este intervlul de timp minim din momentul (pornirii) acces˘ arii unei linii de cuvˆ ant pˆ an˘ a ˆın momentul acces˘ arii liniei de cuvˆ ant urm˘ atoare, adic˘ a distant¸a mini-m˘ a, ˆın timp, ˆıntre dou˘ a activ˘ ari ale semnalului RAS L; este un timp de ciclu (110 ns). · τCAC , este intervalul de timp minim din momentul activ˘ arii semnalului se strob an˘ a la obt¸inerea datelor valide la ie¸sierea bufferului TSL (15 ns). CAS L pˆ · τPC , este intervalul de timp minim din momentul (pornirii) acces˘ arii unei coloane pˆ an˘ a ˆın momentul acces˘ arii coloanei urm˘ atoare; este un timp de ciclu (35 ns) Urm˘ atoarele valori reflect˘ a dinamica memoriilor de tip DRAM: cre¸stere de capacitate+60%/an; cost -30%/an; densitatea de integrare 2.5×celule/suprafat¸a˘; cre¸sterea suprafet¸ei waferului de 1.5 ori ˆın 3 ani. Memoria este o component˘ a foarte important˘ a ˆın sistemele de calcul, unde, din ce ˆın ce mai mult, i se impune un volum mare de schimb de date ˆın unitatea de timp. Pentru cre¸sterea volumului schimbului de date se act¸ioneaz˘ a: fie prin m˘ arirea lungimii cuvˆ antului cu care se lucreaz˘ a, fie prin mic¸sorarea latent¸ei memoriei (valorile date anterior ar˘ atau c˘ a timpul minim de acces consecutiv la liniile de cuvˆ ant este τRC = 110ns) sau fie, simultan, prin ambele modalit˘ a¸ti. Exist˘ a diferite modalit˘ a¸ti prin care se obt¸ine o latent˘ a mic¸sorat˘ a pentru memorie, amintim doar dou˘ a: accesarea tip pagin˘ a ¸si accesarea tip cu ie¸sirea de date extins˘ a EDO (Extended Data Out). Acestea de fapt, realizeaz˘ a cˆ at mai multe operat¸ii pe o aceea¸si accesare a unei linii de cuvˆ ant, astfel ˆıncˆ at operat¸iile s˘ a nu mai fie o repetare de tipul CAS, RAS, CAS, RAS . . . . Modul de accesare de tip pagin˘ a, prin adresa de linie, activeaz˘ a o ˆıntreag˘ a pagin˘ a/linie de cuvˆ ant (poate fi pˆ an˘ a la 8096 bit¸i) ¸si apoi prin schimbarea numai a adresei de coloan˘ a, conjugat˘ a cu activarea semnalului CAS, poate accesa oricare celul˘ a cuprins˘ a ˆın acea linie; trecerea la o alt˘ a pagin˘ a impune aplicarea noii adrese de linie ¸si reactivarea semnalului RAS. Succesiunea semnallor de strobare ˆın aplicarea adreselor pentru o operat¸ie ˆın modalitatea de acces tip pagin˘ a este: RAS, CAS, CAS, . . . , CAS; RAS, CAS, CAS, . . . . Modul de accesare tip EDO este de fapt tot o adresare de tip pagin˘ a numai c˘ a, dup˘ a cum ¸si denumirea sugereaz˘ a, se extinde timpul cˆ at datele sunt valide pe ie¸sire. De data aceasta se exclude activarea succesiv˘ a a semnalului CAS pentru fiecare citire, iar starea normal˘ a a bufferului de ie¸sire TSL este comandat˘ a de un semnal de validare a ie¸sirii, OE L. Deci datele, din registrul latch de linie, sunt valide la ie¸sire cˆ at timp an˘ a OE L = 0, pe durata dintre ˆınceputul marcat de activarea semnalului CAS L pˆ la activarea urm˘ atoare a acestui semnal. Pe aceast˘ a durat˘ a sunt generate succesiv adresele de coloan˘ a ale bit¸ilor stocat¸i ˆın registrul latch de linie. Din prezent˘ arile anterioare, atˆ at la memoria static˘ a cˆ at ¸si la cea dinamic˘ a, rezult˘ a c˘ a funct¸ionarea acestor circuite este de tip asincron. Pentru integrarea lor ˆıntr-un ,, sistem sincron este necesar˘ a “aducerii funct¸ion˘ arii ˆın acela¸si timp /(sincronizarea) cu ceasul sistemului. ˆIn modul sincron funct¸ionarea intern˘ a a circuitului de memorie r˘ amˆ ane aceea¸si dar semnalele cu exteriorul (cuvˆ antul de adres˘ a, semnalele de control, datele de intrare) sunt citite/(e¸santionate) pe frontul pozitiv al semnalului de ceas ¸si

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

513

ˆınscrise ˆın registre interne ale circuitului de memorie (aceste circuite registru interne sunt componente ale interfet¸ei de sincronizare); de asemenea datele de ie¸sire sunt generate sincron (pe durata dintre dou˘ a fronturi pozitive consecutive ale semnalului de ceas). Circuitele de memorie SRAM, DRAM ˆınzestrate cu aceste interfet¸e de Sincronizare sunt referite respectiv prin abreviat¸iile SSRAM ¸si SDRAM. 3.6.2.1

Memoria DRAM sincron˘ a, SDRAM

Integrarea unei memorii DRAM, a c˘ arei funct¸ionare de tip asincron este fixat˘ a prin fronturile H-L ¸si L-H ale semnalelor de control RAS L ¸si CAS L, ˆıntr-un sistem sincron, comandat de ceas, necesit˘ a o anumit˘ a circuistic˘ a de interfat¸are. Dar ˆın ultimii ani, aceast˘ a circuistic˘ a de interfat¸are a fost integrat˘ a pe acel¸si cip cu memoria DRAM, iar pentru exterior (pentru utilizator) apare ca un circuit cu funct¸ionare sincron˘ a, pe baza unui semnal de ceas, circutul fiind referit ca memorie dinamic˘ a Sincron˘ a, SDRAM. Pentru prezentarea organiz˘ arii, funct¸ion˘ arii ¸si comenzilor exterioare ale unei memorii dinamice sincrone s-a ales circuitul SDRAM 128Mb (×32) (Micron Technology), care, cu anumite simplific˘ ari, poate fi utilizat ca un circuit generic. Organizarea circuitului de capacitate 128Mb este prezentat˘ a ˆın Figura 3.96-a. Pentru circuitele DRAM de capacitate mare, datorit˘ a dificult˘ a¸tilor de realizare a unei matrice p˘ atratic˘ a de dimensiune ridicat˘ a, matricea este segmentat˘ a ˆın mai multe submatrice, referite prin temenul de banc˘ a sau de plan; aceste b˘ anci funct¸ioneaz˘ a ˆın paralel dar independent una de alta. Organizarea din aceast˘ a figur˘ a, de capacitatea 128Mb (227 =134 217 728 bit¸i), este compus˘ a din patru b˘ anci acoperind un spat¸iu de adresare de 4M adrese; num˘ arul de 33 554 432 (225 ) bit¸i dintr-o banc˘ a are ca suport o matric˘ a cu 4096 linii (A11 ÷ A0 ) ¸si 256 coloane (A7 ÷ A0 ), la fiecare locat¸ie de la intersect¸ia unei linii cu o coloan˘ a fiind un cuvˆ ant de 32 bit¸i. Selectarea uneia din cele patru b˘ anci se realizeaz˘ a cu bit¸ii BA1 ¸si BA0. La nivelul de celul˘ a de stocare ˆıntr-o banc˘ a operat¸iile de citire, scriere, reˆımprosp˘ atare se fac prin succesiunea semnalelor CAS, RAS ¸si bit¸ilor de intrare ¸si ie¸sire, la fel ca la memoria dinamic˘ a prezentat˘ a ˆın sect¸iunea anterioar˘ a, diferent¸a apare ˆın modul cum aceste semnale interne se obt¸in, prin circuistica de interfat¸are, din semnalele externe aplicate la pinii circuitului de memorie sincron˘ a, deoarece acest circuit are o funct¸ionare programat˘ a care este sub controlul semnalului de ceas, CLK. Pe lˆ ang˘ a semnalul de ceas mai exist˘ a un semnal de validare a semnalului de ceas, CKE, deci efectul de sincronizare se realizeaz˘ a numai cˆ and acest semnal este activ, CKE = H. Pe fiecare front pozitiv al semnalului CLK, de frecvent¸a˘ maxim˘ a 166MHz, semnalele externe de control CS L, WE L, RAS L ¸si CAS L sunt ˆınregistrate ˆın blocul de decodificare comenzi, cuvˆ antul de adres˘ a A 11 ÷ A10 ¸si bit¸ii de adresare a b˘ ancilor BA1, BA0 sunt ˆınscri¸si ˆın registrele de adrese, iar cuvˆ antul de date DQ 31 ÷ DQ0 este ˆınscris ˆın registrul de date de intrare DQI (pentru ˆınscriere) sau este generat la ie¸sirea registrului de date de ie¸sire DQO (pentru citire) ¸si, de asemenea, cuvˆ antul masc˘ a DQM3 ÷DQM0 , pentru datele de intrare/ie¸sire este ˆınregistrat. Pentru fiecare byte din cuvˆ antul de date intrare/ie¸sire corespunde un bit ˆın cuvˆ antul de mascare ˆın felul urm˘ ator: DQM0 pentru DQ7 ÷ DQ0 ; DQM1 pentru DQ15 ÷ DQ8 ; DQM2 pentru DQ23 ÷ DQ16 ¸si DQM3 pentru DQ31 ÷ DQ24 . Valoarea H a bitului de mascare DQMi , constituie pentru byte-ul i corespunz˘ ator din cuvˆ antul de date de intrare/ie¸sire o masc˘ a, adic˘ a bufferele de ie¸sire sunt ˆın starea HZ deci nu se obt¸in date

514

3.6. MEMORIA CU ACCES ALEATORIU

CLK CKE CS_L WE_L CAS_L RAS_L

... .. .

Logica de control Numarator pentru reinprospatare

Decodif. comenzi

11

registru de mod

Banca1

Banca3 Banca2 Interfatare 1/0 date

.

Mux adrese 11 de 11 linie

11

Banca0

Banca 0 Latch adresa 4096 de linie si decodif.

Banca 0

4

Matrice de celule (4096x256x32) Amplif. de sens 8192

32

Registru de adrese

A0−A11 BA0 ,BA1

2

2 BA0 ,BA1

Latch/numarator pentru adresa de coloana

Nucleul memoriei

a) Reg de mod

A10 A9 10

9

A8 8

Magistrala de adrese A7 A6 A5 A4 A3 7

6

5

4

3

A2 2

A1 1

8

..

0

M9 0 1

0 1 0 1

Latenta CAS Rezervat 1 2 3 Rezervat

Modul rafala pt. inscriere lungimea de rafala programata fara rafala M8 0

b)

Reg. date de iesire

32

Decodificator coloana

ordine de acces in rafala Succesiv(M3 =0) 0−1

M7 M6−M0 Definite

M3 0 1

0 0 0 1 1 0 1 1 1

4

1

1 2 2 4 4 8 8 Neutilizate pagina 1 intraga neutilizat

8

Tipul de rafala

0 0 1 1 A2 A1

0 1 0 1 A0

0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

Succesiv Intretesut

Modul de operare Operator standard Toate starile rezervate

Intretesut(M 3 =1) 0−1 1−0

A1 A0

Lungime rafala M2 M1 M0 M =0 M =1 3 3 0 0 0 0 1 1

DQ 0− DQ 31

Reg. date de intrare DQT

1−0

M6 M5 M4 0 0 0 0 0 1 0 1 1

256 (x32)

2

Rezervat

DQM 0− −DQM 3

32

lungime adresa coloanei rafala de inceput A0

A0

.

4

DQO

Control 1/0 Logica mascare DOM Latch pt.citire date Drivere pt.inscriere

Logica de control pentru banci

.

c)

..

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

pagina n=A 0 A7 Cn, Cn+1,Cn+2, intreaga Locatii: Cn+3,Cn+4,.... (256) 0 256 ...Cn−1,Cn,...

..

0−1−2−3 1−0−3−2 2−3−0−1 3−2−1−0 0−1−2−3−4−5−6−7 1−0−3−2−5−4−7−6 2−3−0−1−6−7−4−3 3−2−1−0−7−6−5−4 4−5−6−7−0−1−2−3 5−4−7−6−1−0−3−2 6−7−4−5−5−2−3−0−1 7−6−5−4−3−2−1−0 Neimplementat

Figura 3.96 Memoria sincron˘ a DRAM: a) organizare de principiu pentru un SDRAM de capacitate 4M × 32 compus˘ a din patru b˘ anci fiecare de dimensiune 4096 × 256 × 32; b),c) modalitatea de programare, prin cuvˆ antul ˆınscris ˆın registrul de mod, a tipurilor de rafale pentru operat¸iile de ˆınscriere ¸si de citire.

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

515

de ie¸sire iar datele aplicate pentru ˆınscriere nu vor fi stocate ˆın memorie; datele de intrare/ie¸sire vor fi valide pentru ˆınscriere/citire numai cˆ and valoarea testat˘ a a bitului respectiv de masc˘ a, DQMi , este ˆın L. Cˆ and cei patru bit¸i de mascare sunt considerat¸i tot¸i ˆın aceea¸si stare (H sau L), adic˘ a aceea¸si comand˘ a pentru tot¸i cei patru bytes ai cuvˆ antului de date, sunt referit¸i ˆın comun prin notat¸ia DQM. Pentru realizarea unei operat¸ii de preˆınc˘ arcare, citire, ˆınscriere sau reˆımprosp˘ atare comenzile necesare se obt¸in din valorile semnalelor aplicate din exterior pe pinii circuitului, e¸santionate pe frontul pozitiv de ceas, dar aceste valori nu sunt interpretate individual ci interpretate ˆımpreun˘ a sub forma unui cuvˆ ant de control; deci pentru SDRAM exist˘ a un cuvˆ ant de control, extern, format din bit¸ii CS L, WE L, CAS L, RAS L, un cuvˆ ant de adresare format din bit¸ii A11 ÷ A0 ¸si BA1, BA0 ¸si un cuvˆ ant de mascare format din bit¸ii DQM3 ÷ DQM0 . (Toate semnalele aplicate pe pini sunt compatibile LVTTL, VDD = 3.3V , vezi Figura 1.48-c.) Operat¸iile de citire ¸si ˆınscriere sunt pipelinizate, adic˘ a pe fiecare front al impulsului de ceas se genereaz˘ a sau se ˆınscrie cˆ ate un cuvˆ ant de 32 bit¸i. Aceast˘ a pipelinizare este realizat˘ a atˆ at la o accesare aleatorie a locat¸iilor cˆ at ¸si la o accesare de tip rafal˘ a (burst) - accesarea porne¸ste de la o locat¸ie selectat˘ a continuˆ and apoi, f˘ ar˘ a ˆıntrerupere (rafal˘ a), cu un num˘ ar prescris de locat¸ii ˆıntr-o succesiune programat˘ a. Programarea succesiunii, cont¸inut˘ a ˆın cuvˆ antul de mod M 10 ÷ M0 , pentru modul de accesare de tip rafal˘ a se realizeaz˘ a ˆın exterior ¸si se ˆınscrie, prin intermediul cuvˆ antului de adres˘ a A10 ÷ A0 , ˆın registrul de mod, Figura 3.96-b; aceast˘ a programare se p˘ astrez˘ a pˆ an˘ a la o nou˘ a ˆınc˘ arcare cu un cuvˆ ant de mod sau pˆ an˘ a la anularea tensiunii de alimentare. Pipelinizarea cuvintelor de date pentru ˆınscriere sau pentru citire este asigurat˘ a ¸si de existent¸a a patru b˘ anci, selectate cu bit¸ii AB1, AB0, care opereaz˘ a independent ¸si ˆın paralel; de exemplu ˆın timp ce ˆıntr-o banc˘ a se realizeaz˘ a o operat¸ie de ˆınscriere ˆın alta se init¸iaz˘ a o operat¸ie de citire. Pentru o succesiune de tip rafal˘ a a acces˘ arilor, programarea prin cuvˆ antul, M10 − M0 , ˆınscris ˆın registrul de mod, prescrie urm˘ atoarele caracteristici: lungimea rafalei, tipul de rafal˘ a, latent¸a CAS, modul de operare ¸si modul de ˆınscriere. Rafala este efectuat˘ a dup˘ a ce o linie de cuvˆ ant dintr-o banc˘ a a fost activat˘ a ¸si deci se realizeaz˘ a numai prin activarea ˆıntr-o anumit˘ a succesiune a coloanelor(ˆın cadrul unei linii de cuvˆ ant). - Lungimea rafalei determin˘ a, prin subcuvˆ antul M 2 ÷ M0 , num˘ arul maxim de locat¸ii (de coloane) care sunt selectate pentru a fi accesate la o comand˘ a de ˆınscriere sau de citire. Pentru o lungime de 2 (locat¸ii) a rafalei, M 2 M1 M0 = 001, este selectat, de pe linia activat˘ a, blocul de coloane cu lungimea 2, fixat prin cuvˆ antul de adres˘ a A7 ÷ A1 , iar ˆın interiorul acestui bloc citirea sau ˆınscrierea porne¸ste de la coloana cu num˘ arul 0 sau 1, fixat prin valoarea lui A0 ; pentru o lungime a rafalei de opt locat¸ii, M2 M1 M0 = 011, este selectat un bloc cu lungimea de opt coloane fixat prin cuvˆ antul de adres˘ a A7 ÷ A3 iar ˆın interiorul blocului citirea sau ˆınscrierea porne¸ste de la coloana specificat˘ a de subcuvˆ antul A2 A1 A0 . Pentru o lungime de o pagin˘ a se porne¸ste de la coloana de adres˘ a fixat˘ a de cuvˆ antul A 7 ÷ A0 , Figura 3.96-c. Dac˘ a ˆın cadrul blocului sau paginii respective se ajunge la adresa superioar˘ a de coloan˘ a se sare la prima adres˘ a de coloan˘ a dac˘ a nu s-au parcurs toate adresele (fixate prin lungimea programat˘ a a rafalei) din blocul sau pagina respectiv˘ a. Ordinea de parcurgere a adreselor, programat˘ a prin tipul de rafal˘ a, M 3 , poate fi ˆın mod succesiv sau ˆın mod ˆıntret¸esut (ordinea ˆıntret¸esut˘ a nu este permis˘ a la tipul de rafal˘ a pagin˘ a).

516

3.6. MEMORIA CU ACCES ALEATORIU

- Latent¸a CAS, programat˘ a prin M6 M5 M4 , fixeaz˘ a ˆıntˆ arzierea, ˆın num˘ ar de tacturi de ceas, din momentul ˆınregistr˘ arii comenzii (frontul pozitiv al semnalului de ceas) aplicat˘ a la pinii circuitului SDRAM pˆ an˘ a ˆın momentul cˆ and cuvˆ antul citit din memorie este disponibil ca dat˘ a valid˘ a de ie¸sire, DQ 32 ÷ DQ0 ; latent¸a poate avea valorile 1, 2 sau 3 tacturi de ceas. - Modul de operare standard, atˆ at pentru citire cˆ at ¸si pentru ˆınscriere. este fixat prin subcuvˆ antul M8 M7 = 00, alte valori pentru acest subcuvˆ ant fixeaz˘ a moduri de operare pentru testare. - Modul de rafal˘ a pentru ˆınscriere. Cˆ and M9 = 0 atˆ at pentru ˆınscriere cˆ at ¸si pentru citire se efectueaz˘ a rafal˘ a de lungime programat˘ a. Pentru M 9 = 1 se aplic˘ a rafal˘ a de lungime programat˘ a numai pentru citire, ˆınscrierea nu se face ˆın mod rafal˘ a (se ˆınscrie o singur˘ a locat¸ie). Pentru circuitul SDRAM se obt¸ine cu flux continuu (pipeline) de date de intrare (ˆınscriere) sau de ie¸sire (citire), cˆ ate un cuvˆ ant de date, DQ 31 ÷ DQ0 , pe fiecare tact de ceas, indiferent dac˘ a accesarea coloanelor se face ˆın modul rafal˘ a sau aleatoriu; aceast˘ a operare este programat˘ a prin aplicarea din exterior a cuvintelor: de comand˘ a, de adres˘ a ¸si de masc˘ a la pinii circuitului. Pe durata unui tact de ceas circuitul realizeaz˘ a operat¸iile exprimate prin cuvintele aplicate din exterior la pinii circuitului, ˆınregistrate/e¸santionate pe frontul pozitiv al tactului respectiv de ceas. Cont¸inutul acestor cuvinte ¸si succesiunea lor ˆın timp, pentru realizarea anumitor operat¸ii, se efecturaz˘ a ˆın exterior de c˘ atre circuitul controller pentru SDRAM. ˆIn continuare, se vor prezenta, pentru realizarea operat¸iilor pe o memorie sincron˘ a DRAM, cuvintele de control. ˆIn tabelul din Figura 3.97-a sunt sintetizate comenzile pentru un SDRAM de capacitate 4M × 32 bit¸i. - Comanda INHIBARE (NOP). Prin aceast˘ a comand˘ a se elimin˘ a posibilitatea ca circuitul s˘ a mai primeasc˘ a oricare alt˘ a comand˘ a, chiar dac˘ a semnalul de ceas CLK este validat (CKE = H); dar operat¸iile ˆın curs pe care le efectueaz˘ a SDRAM sunt continuate. De fapt prin comanda INHIBARE este deselectat circuitul SDRAM, CS L = H. - Comanda Nici-o-OPerat¸ie, NOP. Pentru SDRAM, care este deja selectat (CS L=0), comanda NOP face ca circuitul s˘ a nu accepte o alt˘ a comand˘ a; operat¸iile ˆın curs sunt continuate (se introduce cˆ and se dore¸ste doar consumarea unui timp). ˘ - Comanda ˆINCARCARE REGISTRUL DE MOD (Load Mod Register). Cont¸inutul cuvˆ antului de mod M10 ÷ M0 , vezi Figura 3.96-b, este ˆınc˘ arcat, din exterior, ˆın registrul de mod prin intermediul cuvˆ antului de adres˘ a A 10 ÷A0 . ˆInc˘ arcarea registrului de mod se poate realiza numai cˆ and toate cele patru b˘ anci nu sunt activate; dup˘ a ˆınc˘ arcare o urm˘ atoare comand˘ a pentru memorie se poate aplica numai dup˘ a intervalul de timp τM RD . - Comanda ACTIVARE. Pentru a realiza o operat¸ie de citire sau ˆınscriere de pe o linie dintr-o banc˘ a aceasta trebuie ˆıntˆ ai deschis˘ a (activat˘ a acea linie), iar aceast˘ a deschidere se realizeaz˘ a prin comanda ACTIVARE. Prin cont¸inutul cuvintelor BA1 BA0 ¸si A11 ÷ A0 , din momentul ˆınregistr˘ arii/e¸santion˘ arii comenzii ACTIVARE, este deschis˘ a una din cele patru b˘ anci (BA1 BA0) ¸si ˆın acea banc˘ a o linie de cuvˆ ant; apoi pot urma operat¸ii de citire ¸si/sau ˆınscriere la locat¸iile de pe linia deschis˘ a. Se impune un interval τRCDmin din momentul ˆınregistr˘ arii comenzii ACTIVARE pˆ an˘ a la comanda unei operat¸ii de citire sau ˆınscriere. De exemplu, dac˘ a τ RCDmin = 20ns iar

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

517

frecvent¸a la care se comand˘ a memoria este fCLK = 125M Hz (TCLK = 8ns) rezult˘ a c˘ a, raportat la frontul de ceas care a ˆınregistrat comanda ACTIVARE, urm˘ atoarea operat¸ie de citire sau ˆınscriere se poate aplica numai la al treilea front pozitiv de ces, dτRCDmin /TCLK e = 3, Figura 3.97-b. Succesiunea cuvintelor de comnad˘ a generate de controllerul de memorie este: T0 - ACTIVARE; T1 - NOP; T2 - NOP; T3 READ/WRITE . . . Urm˘ atoarea comand˘ a ACTIVARE, pentru deschiderea unei alte linii de cuvˆ ant din aceea¸si banc˘ a se poate aplica numai dup˘ a ce linia deschis˘ a anterior a fost ˆınchis˘ a/dezactivat˘ a (prin aplicarea unei operat¸ii de preˆınc˘ arcare); se impune un interval minim de timp τRCminˆıntre dou˘ a comenzi ACTIVARE consecutive. Dar o urm˘ atoare comand˘ a ACTIVARE la o alt˘ a banc˘ a se poate genera chiar cˆ and banca prezent˘ a este deschis ceea ce duce la o reducere/(ascundere) a timpului total de acces la o linie de cuvˆ ant. - Comanda READ. Aceast˘ a comand˘ a este utilizat˘ a pentru init¸ierea unei operat¸ii de citire de tip rafal˘ a ˆıntr-o linie de cuvˆ ant deja activat˘ a. ˆIn momentul ˆınregistr˘ arii comenzii READ se e¸santioneaz˘ a ¸si cuvˆ antul de adres˘ a: bit¸ii BA1, BA0 fixeaz˘ a banca iar bit¸ii A7 ÷ A0 selecteaz˘ a coloana de la care se ˆıncepe citirea; iar bitul A 10 , din cuvˆ antul de adres˘ a, determin˘ a modul de preˆınc˘ arcare: A 10 = H, preˆınc˘ arcarea automat˘ a este selectat˘ a; A10 = L preˆınc˘ arcarea automat˘ a ste devalidat˘ a. Dac˘ a preˆınc˘ arcarea automat˘ a este selectat˘ a atunci linia deja activat˘ a va fi preˆınc˘ arcat˘ a (dezactivat˘ a) la sfˆ ar¸situl efectu˘ arii rafalei de citire, iar dac˘ a preˆınc˘ arcarea automat˘ a este deselectat˘ a atunci linia deja activat˘ a r˘ amˆ ane ˆın continuare activat˘ a ¸si pentru urm˘ atorul acces. Odat˘ a init¸iat˘ a comanda READ rafal˘ a, pornind de la coloana selectat˘ a, se obt¸ine pe ie¸sire, dup˘ a o latent˘ a CAS prescris˘ a (vezi Figura 3.96-b), un flux continuu de date DQout , cˆ ate un cuvˆ ant pe fiecare front pozitiv de ceas, evident dac˘ a, cuvˆ antul de masc˘ a DQM a fost ˆın L. Cuvˆ antul de masc˘ a va trece ie¸sirea memoriei ˆın HZ cu o ˆıntˆ arziere de dou˘ a tacte dup˘ a ce valoarea acestui cuvˆ ant a fost ˆınregistrat˘ a ˆın starea H. Dup˘ a completarea unei citiri ˆın mod rafal˘ a, considerˆ and c˘ a nu a fost init¸iat˘ a o alt˘ a comand˘ a, ie¸sirea va trece ˆın HZ; la o pagin˘ a citit˘ a ˆın mod rafal˘ a dup˘ a citirea ultimei coloane din pagin˘ a (255) se continu˘ a cu prima coloan˘ a pˆ an˘ a se ajunge la coloana din fat¸a primei coloane selectate. Datele unei citiri ˆın rafal˘ a pot fi continuate cu alte date citite de c˘ atre o urm˘ atoare/(nou˘ a) rafal˘ a, iar noua rafal˘ a poate fi aplicat˘ a ˆıncepˆ and de la terminarea datelor rafalei curente sau chiar de la oricare front pozitiv de ceas din interiorul rafalei curente (trunchiere); dar noua comand˘ a READ rafal˘ a trebuie s˘ a fie aplicat˘ a cu un num˘ ar x de tacturi ˆınainte de tactul pe care se vor obt¸ine date valide pe ie¸sire, unde x = (latent¸a CAS) − 1. Deci prin comenzi READ succesive se poate ment¸ine un flux de date continuu pe ie¸sire indiferent dac˘ a aceste comenzi acceseaz˘ a aceea¸si banc˘ a sau b˘ anci diferite. Se poate obt¸ine pe ie¸sire un flux continuu de date citite care pot alterna cu date ˆınscrise dac˘ a se intercaleaz˘ a ¸si comenzi WRITE rafal˘ a (cu condit¸ia s˘ a nu apar˘ a concurent¸a de date la intrare/ie¸sire); dar comanda WRITE trebuie s˘ a fie aplicat˘ a chiar pe frontul pozitiv de ceas pe care se ˆınscriu datele. Operat¸ia de citire sub o rafal˘ a de lungime fix˘ a sau de o pagin˘ a se poate termi˘ na/(trunchia) prin aplicarea la banca respctiv˘ a a comenzii PREˆINCARCARE (PA), aceast˘ a aplicare trebuie efectuat˘ a cu x tacturi ˆınainte de tactul care mai cite¸ste date valide. De exemplu, ˆın Figura 3.97-c s-a aplicat comanda READ rafal˘ a pe T 0 , aici de lungime nespecificat˘ a, din banca 2, ˆıncepˆ and de la coloana n, cu latent¸a CAS = 3,

518

3.6. MEMORIA CU ACCES ALEATORIU

Cuvintele de comanda pentru memoria SDRAM, 1Mb x 32 x 4 banci CUVANTUL DE : Denumirea comenzii comanda Masca ADRESA

READ (Selecteaza o banca si o coloana, porneste operatia READ in rafala ) WRITE (Selecteaza o banca si o coloana, porneste operatia WRITE in rafala ) TERMINARE RAFALA PREINCARCARE (Dezactiveaza linia deschisa din banca/banci ),PA REFRES sau AUTO − REFRES INCARCARE REGISTRU DE MOD

a) Comanda aplicata

b)

H

H

H

L

L

H

H

L

H

L

H

L

H

L

L

L

H

H

L

L

L

H

L

L

L

L

H

L

L

L

L

Banca Linia

L/H

A10=1 Preincarcare automata Date A10=0 Preincarcare active automata devalidata A10=H dezact. bancile A10=H dezact. banca A11A10................A0 M10...............M0

T3 READ sau WRITE

ACTIVE

τRCDmin /TCLK

T0

T1

T2

T3

T4

READ

NOP

NOP

NOP

Preincar.

Comenzi aplicate

Banca 2 col n

d) DQ

T6

NOP

NOP

Latenta CAS=3 T0

T7

τRP

T1

T2

DQ out Col n

T3

Active

Banca Linie

Banca 2 sau toate DQ out Col n+1

DQ out Col n+2

DQ out Col n+3

T4

T5

T6

T7

NOP

Active

DQM Comenzi aplicate Comenzi aplicate

T5

x=2 tacturi

DQ

CLK

BA1,BA0 A11 : A0

Banca AB1,AB0 Date Coloana A7 : A0 valide

CLK Comenzi aplicate

c)

DQ

L/H

T2

T1

T0

CLK

H L

Date

DQM

CS_L RAS_L CAS_L WE_L

Comanda de INHIBARE NICI O OPERATIE (NOP) ACTIVARE (selecteaza o banca si activeaza o linie)

τRP WRITE

NOP

Banca 1 Col n DQ in Col n

DQ in Col n+1

Preincar.

WRITE

WRITE

WRITE

Banca 2 Col p

Banca 3 Col q

Banca 1 Col n+1

DQ in Col p

DQ in Col q

DQ in Col n+2

Banca 1 sau

τWR toate

Banca 0 Linie

Figura 3.97 Comanda memoriei sincrone SDRAM: a) comenzile aplicabile din exterior pentru controlul funct¸ion˘ arii circuitului SDRAM; exemple de diagrame de semnale care ilustreaz˘ a funct¸ionarea memoriei la aplicarea comanzilor de: ACTIVARE (b), READ (c) ¸si WRITE (d).

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

519

iar dup˘ a citirea a patru date consecutive (de la coloanele n, n + 1, n + 2, n + 3) ˘ se termin˘ a rafala prin aplicarea comenzii PREˆINCARCARE; succesiunea de comenzi generat˘ a de controller este: T0 - READ; T1 - NOP; T2 - NOP; T3 - NOP; T4 ˘ PREˆINCARCARE; T5 - NOP; T6 - NOP. De notat c˘ a timpul de prescriere x pentru ˘ comanda PREˆINCARCARE apare ca fiind ascuns deoarece simultan se fac ¸si citirile de ˘ date succesive. Dup˘ a comanda PREˆINCARCARE o urm˘ atoare comand˘ a la aceea¸si banc˘ a nu se poate aplica decˆ at numai dup˘ a un inteval prescris de timp τ RP . De asemenea, trunchierea/terminarea unei rafale de o anumit˘ a lungime sau de o pagin˘ a ˘ (cu condit¸ia s˘ se poate realiza ¸si cu o comand˘ a TERMINARE RAFALA a nu fi fost prescris˘ a autopreˆınc˘ arcarea, A10 = H), care trebuie aplicat˘ a cu x tacturi ˆınainte de ultimul tact care genereaz˘ a date valide. - Comanda WRITE. ˆInregistrarea comanzii WRITE init¸iaz˘ a un acces pentru o ˆınscriere rafal˘ a la o coloan˘ a de adres˘ a A7 ÷ A0 ˆıntr-o banc˘ a fixat˘ a prin BA1, BA0 ˆın care a fost deja activat˘ a o linie de cuvˆ ant; dac˘ a A 10 = H se realizeaz˘ a o preˆınc˘ arcare automat˘ a la terminatea rafalei. Primul cuvˆ ant de date de intrare DQ int se ˆınscrie ˆın coloana de adres˘ a A7 ÷ A0 pe primul front pozitiv de ceas, cˆ and se ˆınregistreaz˘ a comanda WRITE, apoi, cˆ ate un cuvˆ ant de intrare pe fiecare din fronturile pozitive de ceas urm˘ atoare pˆ an˘ a la completarea lungimii rafalei sau paginii (pentru mod pagin˘ a); la terminare, dac˘ a nu mai exist˘ a alt˘ a comand˘ a, intrarea DQ va trece ˆın HZ ¸si va ignora oricare dat˘ a aplicat˘ a. O comand˘ a WRITE poate fi urmat˘ a de o alt˘ a comand˘ a WRITE pe oricare front pozitiv urm˘ ator, ˆın consecint¸a˘ se poate ˆınscrie un flux continuu de date ˆın aceea¸si banc˘ a sau ˆın b˘ anci diferite. Fluxul de date pentru o comand˘ a WRITE poate fi trunchiat/(terminat) printr-o ˘ comand˘ a READ sau PREˆINCARCARE. De exemplu, ˆın Figura 3.97-d se realizeaz˘ a o ˆınscriere rafal˘ a, cu lungimea 2, ˆın banca 1 ˆıncepˆ and cu coloana n, apoi trei ˆınscrieri consecutive: prima ˆın banca 2, ˆıncepˆ and de la coloana p, a dou˘ a ˆın banca 3, ˆıncepˆ and cu coloana q iar a treia tot ˆın banca 1, ˆıncepˆ and cu coloana n + 2. ˆIn banca 2 nu se ˆınscriu ˆın rafal˘ a dou˘ a coloane deoarece este trunchiat˘ a de comand˘ a WRITE pentru banca 3, dar nici ˆın banca 3 nu se ˆınscriu dou˘ a coloane ˆın rafal˘ a deoarece este trunchiat˘ a de comanda WRITE pentru banca 1. Dar ¸si ˆın banca 1 se ˆınscrie tot numai o coloan˘ a (col n + 2) deoarece este trunchiat˘ a prin aplicarea comenzii ˘ PREˆINCARCARE (dat˘ a pentru banca 1 sau pentru toate). ˆIn aplicarea comenzii ˘ PREˆINCARCARE trebuie respectat intervalul de timp τW R ˆıncepˆ and de la frontul pozitiv al ultimei date care se dore¸ste a fi ˆınscris˘ a (ˆın acest caz T 4 ); num˘ arul de tacturi pentru acest interval rezult˘ a ˆın funct¸ie de frecvent¸a de ceas cu care se comand˘ a memoria (in general τW R se acoper˘ a prin 1-2 tacturi de ˆıntˆ arziere pˆ an˘ a la aplicarea ˘ comenzii PREˆINCARCARE). Semnalul DQM trebuie pus ˆın H imediat dup˘ a ultima ˘ dat˘ a ˆınscris˘ a pˆ an˘ a la aplicarea comenzii PREˆINCARCARE pentru a masca ˆın con˘ tinuare intrarea datelor de ˆınscriere. (ˆIn cazul cˆ and PREˆINCARCARE se aplic˘ a la teminarea lungimii rafalei, DQM nu se pune ˆın H, dar intervalul τ W R trebuie respectat ˘ ¸si ˆın acest caz.) Dup˘ a comanda PREˆINCARCARE aplicarea comenzii ACTIVARE nu se poate aplica decˆ at numai dup˘ a intervalul τ RP . ˘ - Comanda PREˆINCARCARE este utilizat˘ a pentru dezactivarea unei linii activate ˆıntr-o banc˘ a sau a liniilor activate ˆın toate b˘ ancile. Dac˘ a ˆın momentul ˆınregistr˘ arii ˘ comenzii PREˆINCARCARE bitul A10 , din cuvˆ antul de adres˘ a, este H atunci toate b˘ ancile sunt preˆınc˘ arcate, iar dac˘ a A10 este ˆın L atunci numai banca al c˘ arui num˘ ar este dat prin cuvˆ antul BA1BA0 va fi preˆınc˘ arcat˘ a. Odat˘ a preˆınc˘ arcat˘ a o banc˘ a/b˘ an-

520

3.6. MEMORIA CU ACCES ALEATORIU

cile este ˆın continuare ˆın stare inactiv˘ a, deci ˆınainte de a aplica o comand˘ a READ sau WRITE banca respectiv˘ a trebuie s˘ a fie activat˘ a (prin comanda ACTIVARE); dup˘ a ˘ comanda PREˆINCARCARE urm˘ atoarea comand˘ a (ACTIVARE) nu poate fi aplicat˘ a ˆınainte de τRP . Preˆınc˘ arcarea automat˘ a realizeaz˘ a, la fel, o preˆınc˘ arcare a unei b˘ anci dar nu este ˘ init¸iat˘ a prin aplicarea cuvˆ antului de comand˘ a PREˆINCARECARE. Preˆınc˘ arcarea automat˘ a este prescris˘ a odat˘ a cu comenzile WRITE sau READ dac˘ a bitul A 10 = H, iar operat¸ia de preˆınc˘ arcare se efectueaz˘ a (automat) la terminarea lungimii de rafal˘ a, cu except¸ia lungimii de rafal˘ a pagin˘ a cˆ and preˆınc˘ arcarea nu se execut˘ a la terminarea parcurgerii paginii. Exemplul 3.33 S˘a se proiecteze un controller pentru o memorie dinamic˘a sincron˘a, SDRAM CNTRL, avˆ and urm˘ atoarele date impuse: · Memorie SDRAM (Micron Technology),128Mb (1M b×32×4 b˘ anci),MT48LC4M32B2. · 1 client (µP): apeleaz˘ a scriere ¸si citire, operat¸ii sincronizate cu SDRAM CNTRL (4M × 32 bit¸i). · Gestiunea automat˘ a a reˆımprosp˘ at˘ arii memoriei. · Frecvent¸a de lucru: 100 MHz (TCLK = 10ns).

· Rafal˘ a secvent¸ial˘ a cu lungimea 4, latent˘ a CAS = 2 tacte. · Adres˘ a multiplu de 4.

Port

CLK RESET RQ ACK RW ADR CLIENT[21:0] DQO[31:0] DQI [31:0] CS CKE BA[1:0] ADR[11:0] RAS CAS WE DQM[3:0] DQ[31:0]

Descriere semnal CLK, semnal de ceas comun pentru: client, SDRAM CNTRL, SDRAM. RESET L, semnal de resetare (repornire) Interfat¸area cu clientul RQ, semnalul de acces (generat de client) ACK, semnalul de confirmare (generat de SDRAM CNTRL) R/W L, semnalul pentru operat¸iile de citire/scriere (generat de client) A21 ÷ A0 , cuvˆ ant de adres˘ a generat de client (banc˘ a+linie+coloan˘ a) DQ31 ÷ DQ0 , cuvˆ ant de date citite din SDRAM DQ31 ÷ DQ0 , cuvˆ ant de date pentru ˆınscrierea ˆın SDRAM Interfat¸area cu SDRAM CS L, semnal selectare SDRAM CKE, semnal validare ceas (se consider˘ a permanent ˆın H) BA1BA0, cuvˆ ant selectare b˘ anci A11 ÷ A0 , cuvˆ ant adres˘ a selectare linie; A7 ÷ A0 , cuvˆ ant adres˘ a selectare coloan˘ a RAS L, semnal strobare adres˘ a linie (A11 ÷ A0 ) CAS L, cuvˆ ant strobare adres˘ a colon˘ a (A7 ÷ A0 ) WE L, semnal validare ˆınscriere date DQM3 ÷ DQM0 , cuvˆ ant pentru mascare date (pe byte) DQ31 ÷ DQ0 , cuvˆ ant de date bidirect¸ionale

Solut¸ie. Modul de interfat¸are, cu specificarea semnalelor (direct¸ie, activare, lungime de cuvˆ ant) ˆıntre client (µP) ¸si SDRAM prin intermediul controllerului este prezentat sub form˘ a de schem˘ a bloc ˆın Figura 3.98-a. De asemenea, este prezentat˘ a interdependent¸a ˆıntre semnalele cerere acces, RQ (de la clent) ¸si confirmare, ACK (de la controller), ˆın realizarea

521

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

protocolului pentru operat¸ia de citire ¸si de ˆınscriere, Figura 3.98-b. Cuvˆ antul adres˘ a pentru o locat¸ie ˆın memorie, generat de client, este segmentat ˆın subcuvintele pentru adres˘ a banc˘ a, linie ¸si coloane, de c˘ atre controller ¸si transmis ˆın aceast˘ a forma la SDRAM, Figura 3.98-c. Controllerul va fi implementat sub forma unui automat (ASM). Organigrama ASM, Figura 3.99-a se compune din trei p˘ art¸i: ˆınitializarea memoriei, reˆımprosp˘ atarea memoriei ¸si operat¸iile de memorie (activare, citire, ˆınscriere ¸si preˆınc˘ arcare). La conectarea tensiunii sau activarea, RESET L = 0, circuitul de memorie trebuie init¸ializat ¸si aceasta const˘ a din: ˘ o comand˘ a de PREˆINCARCARE (PA), dou˘ a comenzii de AUTOREFRESH (AR1, AR2) ¸si ˘ o comand˘ a de programare (ˆINCARCARE REGISTRU MOD, LMR). CLK RESET_L CLK

RQ AKN R/W−L

CLIENT (µp)

A21 −A0 32

1 1 1

CLK

RQ ACK R/W

RESET

CS_L RAS_L

CS RAS

SDRAM_CNTRL A11

DQ in

CAS_L

CAS WE

ADR.CLIENT

WE_L

DQ out

CS_L RAS_L CAS_L WE_L DQM

12

A0

A11

2

BA1 BA0 32

1 1 1 1 4

CLK

H CLKE

A0

BA1 BA0 SDRAM ( MT48LC4M32B2 )

DQ

DQ

a) Protocol Client _ SDRAM_CNTRL

CLK RQ

ADR_ CLIENT R/W−L DQ out DQ in

¸ ¼ ÀÂÄ È Ì Ô Ø ÜÞàâ

ÏÏ Ô Ø Ü Þ à â ä µ¯ µµ¶ ¸¸· ﺹ Ư ¼ À Â Ä È Ì ¯ µ Ú Ü Þ Ø  ä Ú æ Ü  è Þ ê à  ì â ä æ ò è ô ê ö ì ø î ú ð ò ô  ö  ø   ú ü þ   ® ± ® ± · ¹ » ½ ¿ Å » Ç ½ É ¿ Ë Á Í Ã Å Ñ Ç Ó É Õ Ë × Í Ù ×Ø× ÚÙÚÙ ÛÜÛ ÝÞÝ àßß áâá ãäã ¼ À Â Ä È Ì Û   ß Ù Û ç Ý ß ë á ã å ç  ó é ë  ÷ í ï  û ñ ó õ ÷  ù û ý ÿ    ¯ ² ² ¯ º ¯ ¾ ¾ ¯ Ê ¯ Î Æ ¯ Ò Ê ¯ Ö Î ¯ Ú ÐÏÐ ÛÛ ÒÑÒÑ ÔÓÓ ß¯ ÖÕÖÕ á¯ ° ° µ ¯··¯ µ  ¶¶ ·· ï ±°®²¯ » ¹º¯ ¿ ½¾¯ » » ÇǾ½¾½ ʯ ÅƯ ¿ ¿ ËË!ÁÁ ί Éʯ Ã$# à ÆÅÆÅ Ò¯ Íί Ó'  Ó) ÊÉÊÉ Ö¯ Ç( ÑÒ¯ ×+ "! ×- ÎÍÎÍ$# Ú¯ Ë, ÕÖ¯ á/ &% 1 (' *) 5,+ ¯ ß0 ÙÚ¯ ¯ Û;ÚÛÚ>= ÜÜ?ßÞßÞBA = çæçæLKÝÜÝÜ@? èèMßÞßÞBA ëêëêPOáàáàFE ììQãâãâHG ääIååJ çæçæLK óòóòXWéèéèNM ôôY ëêëêPO ÷ö÷ö\[íìíìRQ øø] ïîïîTS ûúûú`_ñðñðVU óòóòXW õôõôZY e ÷ö÷ö\[ hgøø]ùù^  ûi úûú`_ lkýüýüba ÿþÿþdc fe hg ji lk ²¯ ²³ ±°®²± ´³´³ º  ¯ ¾  ¯ º  ¹º¹ Ư rÕÕÔqrnmqm Ö×poÖo ³   ± ¹ » ½ ¿ ¯ Ã Å É Í Ñ Ç Õ Ë Ù Û Ñ Ó ¯ ß Õ ¯ á ×.-.- ÚÙ0/0/ Û2121 Ý4343 66ß55 á8787 :9: Ð Ò Ö 7

     

        !  #   '  )  + ! # / % 1 ' )  5 + 7 nnm ppo è æ ê î ò ð ô ö ü þ ;>=>= ?? BABA ; DCDCII>=>= LKLK@?@? MMBABA POPOFEFE QQHGHG IIJJ LKLK XWXWNMNM YY POPO \[\[RQRQ ]] TSTS `_`_VUVU XWXW ZYZY ee\[\[ hghg]]^^ ii`_`_ lkbaba dcdc fefe hghg jiji lk Í 

   

       $    (   , " $  0 & ( * , ]

ŸžŸž «ª«ª¡ ¡   ¥¤¥¤ ­¬­¬££¢¢ ! §¦§¦ #$³²³²©¨©¨ «ª«ª ' ¯®¯® )¶¶ ­¬­¬ + %&µ´µ´ 1ÀÀ '(¹¸¹¸ *··)¶¶ 5 +,»º»º 7ÈÈ-.½¼½¼ /0ÿ¾Ã¿¾ 12ÁÀÁÀ 34ÅÄÅÄ 6ÇÇ5ÆÆ 78ÉÈÉÈ 9ÑÐÑÐ (¹ ,» "±±!°° -¼¼ #$³²³² / 0à ÎÌ ÎÎ _ ÌËÊÍ b^  ^_ ÌbËÊÍÌËÊÌ ededdÏÎÏÎÎ h ^h_^^ gfgff]\] k `ja`` ccbbb ededd r jk hrihh qpqppgfgff t jtkjj wvwvvmlmll x nxonn srsrr qpqpp  t~tt €€€ wvwvv ƒ ~ x‚yxx ††† }|}|| … ‚ƒ z„{zz ˆˆˆ ~~~ €€€ Œ „… ‚Œƒ‚‚ ‘‘‡†‡†† Ž „Ž…„„ “’“’’‰‰ˆˆˆ ” Š”‹ŠŠ —–—––ŒŒŒ ‘‘ ™ Ž˜ŽŽ  ˜™ œœœ “’“’’ Ÿ ”ž•””  žŸ     —–—–– ¥ š¤›šš  ¤¥ ¢¢¢ ™˜™˜˜   œœœ  ®¨ž ª   ¨ °®¤ ¬¢  ¸°¦ ²¨ ª ¹ º¸® ¶ ¬ » º° ¼ ² ¿¾Ã ƾ´ À ¸ ¶  Í _ a i k o u y { ƒ … ‹  • › Ê Ì ^  b  h j  r  t  x ~ ‚ „  Œ  Ž  ” ˜ ž ¤  ¨  ®  ° ¸ º ¾   Æ Ë u  ¿ Ué¯é¯ì¯ëëWVTUVT íí YXX èçèç æåæå êéêé ìëë ø¯÷÷îíîí ûû òñòñ ú¯ùùðïðï ôóôó öõöõ ø÷÷ üûüû úùù þýþý  ÿÿ     

      %$$ ""  '&& ((  +**! %$$ #"" 00'&& 322)(( 44+** 988/.. 66-,, 001 322 ?>>544 BB 988 A@@766 DD ;:: GFF=> CBB NNA@@ QPPDDE R ¿µ ¹ · Æ»º Ƚ¼ ÿ¾ ÁÀ ÅÄ ÇÆ ÉÈ GRFGFGF [ZZ[MLIHMLIHMLIH KJKJKJ ONONON QPQPQP SRSRSR [ZZ[ Í_Í eÏ _ g\\ ka c e i qg k wm o s q u w ƒy } …{   ƒ ‘‡ … “‰ ‹ — ‘ ™ “ Ÿ• — ¥› ™  Ÿ «¡ ¥ ­£ § ³© « ¹¯ ­ »± ³ à ì鯯 Wì¯ëWV í YYX ç å é ììë ø¯ø¯÷í û ñ ú¯ú¯ùï ó õ øø÷ û úúù ý ÿ      

     %%$ "  ''& (  ++*!! %%$ ##" 0''& 332))( 4++* 998//. 6--, 011 332 ??>554 B 998 AA@776 D ;;: GGF==< ??> CCB NAA@ QQPDEE R

ÓÕÔÒÓÔÒ ×

Citire

Inscriere

Adr[21:]

Adr[21:]

1

2

3

4

1

2

3

4

AKN b)

ADR_CLIENT 21 20 19 18 17 16 15 14 13 12 11 10 9 BA1 BA2 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 Select . banca

Adresa linie de cuvant ( pagina )

8 A0

7 A7

6 A6

5 A5

4 A4

3 A3

2 A2

1 A1

0 A1

Adresa coloana

c)

Figura 3.98 Explicativ˘ a pentru exemplul 3.33: a) schema bloc a interfat¸a˘rii CLIENT-SDRAM CNTRL ¸si SDRAM CNTRL-SDRAM; b) semnalele de protocol ampurile penCLIENT-SDRAM CNTRL pentru operat¸ia de citire ¸si ˆınscriere; c) subcˆ tru adres˘ a banc˘ a, linie ¸si coloan˘ a ˆın cuvˆ antul de adres˘ a generat de client. ˆIn starea 0 de init¸ializare, Init st, automatul va stat¸iona 17 tacte de ceas pe durata c˘ arora, cu anumite determin˘ ari de temporizare (prescrise de fabricant), se genereaz˘ a comenzile PA, AR1, AR2 ¸si LMR; pe baza acestor comenzi controllerul va calcula semnalele care and pe se aplic˘ a la SDRAM. Automatul r˘ amˆ ane ˆın starea 0 pe durata a 17 tacte de ceas cˆ

522

3.6. MEMORIA CU ACCES ALEATORIU

000H PREINCARCARE(PA) AUTOREFRESH(AR1,AR2) INCARCARE REGISTRU MOD(LMR)

0 Initializare

Init_st

0

ShReg(17) 1

001H

1 nop_st

NOP 1 002H

2 arf_st

1

6 oper_st 7

0

arf_term

ACTIVARE 010H NOP

Idle_act_st

NOP

020H WRITE / READ 040H NOP

Idle_1_st 8

080H 100H NOP

Idle_3_st 0 200H

NOP

Idle_wr_st

11 pr_st

a)

rwCrt

RQ LMR arf_term wr_eft

1

400H PREINCARCARE

CLK rf_rq CLC Registru pentru de calculul stare Starea Starea urmatoare prezenta starii urmatoare 11 11

Operatii

NOP

Idle_2_st 9

10

0 008H

act_st 5

004H 3

RQ

4

AUTOREFRESH

Refresh Idle_arf_st

0

rf_rq

Logica pentru calculul semnalelor de iesire

Registru de sincro− nizare

CS_L RAS_L

WE_L ACK

11

la SDRAM

CAS_L

la client

DQIe la ASM

b)

PA LMR AR1,AR2 rwCrt

(Fig 3.101)

Figura 3.99 Explicativ˘ a pentru exemplul 3.33: a) organigrama ASM pentru funct¸ionarea SDRAM CNTRL; b) structurarea contrlollerului ca un automat Moore cu ˆıntˆ arziere.

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

523

baza unui registru de deplasare de init¸ializare, initShReg, se genereaz˘ a cele patru comanzi. La RESET L = 0 se ˆınscrie 1 ˆın prima celul˘ a a registrului ShReg(0) = 1. Prin deplasarea ˘ valorii 1 din celul˘ a ˆın celul˘ a rezult˘ a: o comand˘ a de PREINCARCARE, ShReg(1) = 1 = P A; dou˘ a comenzi de AUTOREFRESH, ShReg(3) = 1 = AR1 ¸si ShReg(10) = 1 = AR2; o comand˘ a pentru ˆınc˘ arcarea registrului de mod ShReg(17) = 1 = LM R (cˆ and se trece la stare urm˘ atoare). Refresh-ul memoriei trebuie f˘ acut la fiecare 64 ms, ceea ce ˆınseamn˘ a c˘ a la o repartizare uniform˘ a a reˆımprosp˘ at˘ arii celor 4096 linii ale matricei, intervalul ˆın timp ˆıntre reˆımprosp˘ atarea a dou˘ a linii este τref = 64ms/4096 = 16µs, iar raportat acest interval la frecvent¸a de ceas de 100 MHz (TCLK = 10ns) rezult˘ a c˘ a dup˘ a un num˘ ar de 16µs/10ns = 1600 perioade de ceas trebuie dat˘ a o comand˘ a de AUTOREFRESH (se consider˘ a acoperitor 1500 perioade). Semnalul cerere refresh, rf rq, este produs de un num˘ ar˘ ator cu prescriere (rfCounter), cu num˘ arare ˆın sens invers, CU/CD = 0, ca ˆın Figura 3.100-c, al c˘ arui semnal RCO comand˘ a un latch SR (iar num˘ ar˘ atorul ˆıncepe un nou ciclu de 1500 de tacte). Ie¸sirea Q a latchand ului SR este semnalul rf rq de cerere pentru aplicarea comenzii AUTOREFRESH; cˆ rf rq=1 se trece ˆın starea 2 a automatului. La generarea comenzii AUTOREFRESH, ˆın starea 2 , arf st, latchul SR este resetat ¸si, ˆın acela¸si timp, se ˆınscrie valoarea 1 ˆın pozit¸ia rdr(0) a registrului durat˘ a reˆımprosp˘ atare, rdr, cu lungimea de 7 bit¸i. Se intr˘ a ˆın bucla atare, pˆ an˘ a la de a¸steptare din starea 3 , Idle arf st, pe durata procesului de reˆımprosp˘ atare pentru o linie de cuvˆ ant, activarea semnalului arf term; durata procesului de reˆımprosp˘ fixat˘ a la ¸sapte tacturi de ceas, este realizat˘ a prin parcurgerea registrului de deplasare stˆ anga, rdr (registru durat˘ a refresh), pˆ an˘ a la celula a ¸saptea cˆ and rdr(6)=1=arf term, Figura 3.100-d. In partea de operat¸ii a diagramei ASM se intr˘ a cˆ and nu exist˘ a o cerere de reˆımprosp˘ atare, a cererea de acces de la client, RQ = 1. Prima operat¸ie, care trebuie rf rq = 0, ¸si este activat˘ efectuat˘ a dup˘ a o reˆımprosp˘ atare sau dup˘ a o preˆınc˘ arcare, este cea de activare, ceea ce se realizeaz˘ a ˆın starea 4 , act st, prin comanda ACTIVARE. La linia de cuvˆ ant activat˘ a o a numai urm˘ atoare comand˘ a READ/WRITE, generat˘ a ˆın starea 6 , oper st, poate fi aplicat˘ dup˘ a intervalul de timp τRCD ; starea 5 , Idle act st, care genereaz˘ a comanda NOP este introdus˘ a tocmai pentru acoperirea ˆıntˆ arzierii τRCD . Pe tacturile corespunz˘ atoare st˘ arilor 6 , 7 , 8 , 9 se realizeaz˘ a rafala cu lungimea de patru tacturi pentru operat¸ia de ˆınscriere sau citire aplicat˘ a ˆın starea 6 . O rafal˘ a cu lungime fix˘ a, pentru citire sau ˆınscriere, poate fi urmat˘ a, sau trunchiat˘ a/ ˘ a (dac˘ a ˆıntrerupt˘ a printr-o comand˘ a PREˆINCARCARE (starea 11 , pr st), la aceea¸si banc˘ ˘ nu a fost prescris˘ a AUTO-PREˆINCARCARE, A10 = 1). Dar, dac˘ a se efectueaz˘ a o rafal˘ a ˘ de ˆınscriere atunci comanda PREˆINCARCARE nu se poate genera decˆ at numai dup˘ a consumarea intervalului de timp τW R , vezi Figura 3.97-d, de la aplicarea pe intrarea de date a memoriei a ultimului cuvˆ ant de date care se dore¸ste a fi ˆınscris. ˆIn consecint¸a ˘, la terminarea rafalei de patru date se testeaz˘ a dac˘ a operat¸ia curent˘ a a fost de ˆınscriere, rwCrt = 0, ¸si ˆın caz afirmativ se intr˘ a ˆın starea 10 , Idle wr st care asigur˘ a acoperirea intervalului τW R . Dup˘ a aplicarea operat¸iei de preˆınc˘ arcare, starea

11 , aplicarea unei noi comenzi ACTI-

VARE, pentru selectarea unei alte linii de cuvˆ ant, se poate aplica numai dup˘ a consumarea intevalului de timp τRP (vezi Figura 3.97-c) ceea ce se realizeaz˘ a prin comanda NOP din a ca ie¸sirea unui latch SR comandat starea 1 , nop st. Variabila de testat rwCrt se genereaz˘ prin conjunct¸ia RQ · R, W L. Tabelul de tranzit¸ie al st˘ arilor ¸si al ie¸sirilor (comenzilor), corespunz˘ ator organigramei ASM, este prezentat in Figura 3.100-a; rezult˘ a c˘ a automatul este de tip Moore (comenzile

524

Starea prezenta

Starea urmatoare

z 10 z 9 .........z 1 z 0 nr

0

Denumire

0

w10 w 9 .........w 1w0

Cod

nr

Init_st

000 H

PREINCARCARE(PA) AUTOREFRESH(AR1,AR2)

1

nop_st

001 H

LOAD MOD REG( LMR )

0 001 H 4 2 002 H 3

nop_st

000 H

act_st

008 H

arf_st

002 H

Idle_arf_st

004 H

Idle_arf_st nop_st Idle_act_st

004 H

1 0

0

1

1 0 1

1

nop_st

2

arf_st

3 Idle_arf_st 004 H 1 008 H 5 act_st Idle_act_st 010 H 6 020 H 7 oper_st

3 4 5 6 7 8 0 1

Idle_1_st Idle_2_st

9

Idle_3_st

Idle_wr_st 200 H 11 400 H 1 pr_st

a)17

pr_st nop_st

400 H 010 H

Idle_1_st Idle_2_st

11

L L H L L L L H L L L L

NOP

L H H H

AUTO_REFRESH

L L L H

NOP

L H H H

ACTIVARE

L L H H

NOP READ/WRITE

L H H H L H L

NOP

L H H H

NOP

L H H H

NOP

L H H H

NOP

L H H H

PREINCARCARE

L L H L

*

* w r _eft 16

15

14

13

12

11

10

9

8

7

6

5

4

3

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

ShReg(17)

ShReg(10)

LMR

b)

Idle_3_st Idle_wr_st pr_st

001 H 010 H 020 H 040 H 080 H 100 H 200 H 400 H

oper_st

040 H 8 080 H 9 10 100 H

10 11

Comenzi

Cod

0

000 H

Init_st

Denumire

CS_L RAS_L CAS_L WE_L

ShReg(17) rf_rg arf_tm RQ wr_eft

3.6. MEMORIA CU ACCES ALEATORIU

ShReg(3)

AR2

2

1

0

0

0

1

CLK

REGISTRU DE INITIALIZARE

(iniShReg)

ShReg(1)

AR1

PA

Inscriere ShReg(0)=1 la RESET_L=0

PerRefresh (implicit 1500) 11

RESET_L CLK

Registru durata reimprospatere, rdr

CU/CD

CLEAR

rfCounter CLK

RCO

RESET_L

LD

1 S

arf_St

c)

Q

(la ASM)

RESET_L

5

4

3

2

1

0

0

0

0

0

0

0

1

CLK

rdr(6)

rf_rq

R CLEAR

6

d)

arf_term (la ASM)

Inscriere 1 prin arf_st (de la ASM)

Figura 3.100 Explicativ˘ a pentru Exemplul 3.33: a) tabelul de tranzit¸ie al st˘ arilor ¸si tabelul ie¸sirilor (comenzilor) pentru SDRAM CNTRL; b) generarea comenzilor ˆın starea de init¸ializare pe baza unui registru de deplasare, ShReg; c) structura generatorului pentru intervalele de timp de reˆımprosp˘ atare la o linie de cuvˆ ant; d) structura circuitului pentru generarea duratei procesului de reˆımprosp˘ atare la o linie de cuvˆ ant.

525

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

ADR_CLIENT[21:0]

22

2 [21:20]

D Q CLK

20 12 [19:8]

E

RQ

E

0 0 Cablat 4

12

7

colCrt[7:0] oper_st 12

rowCrt[11:0] act_st

CLK

12 12 12

Cablat

0_0_00_010_0_010

12

ADR[11:0]

12

AR1 AR2 PA pr_st

Q

12

CLK

0100_0000_0000

D

Q

12

LMR

R,W_L

D CLK

12

E CLK

BA1,BA2

SDRAM_CNTRL

CLK 0 0

Q

colCrt[7:0] (coloana curenta)

D Q CLK

1

D

oper_st rowCrt[11:0] (linia curenta)

D Q

[7:0]

2 act_st

E

CLK

8

BA[0:1]

CS_L

Logica pentru calculul semnalelor de iesire si ASM−ul (fig 3.99−b)

CLK rwCrt (read/write Curent)

Reg de sincro− nizare CLK

RAS_L CAS_L WE_L

CLK aper_St Idle_1_St Idle_2_St Idle_3_St

0 ACK

Intarziere ACK (4 tacturi)

MUX 2:1 1

Q D

Q D

Q D

Q D

CLK

CLK

CLK

CLK

CLK Q CLK

DQI[31:0]

32

D CLK

DQO[31:0]

32

32

Q

DQI e

D CLK 32

DQIO[31:0]

CLK

D CLK

Figura 3.101 Explicativ˘ a pentru Exemplul 3.33. Circuistica controllerului pentru generarea semnalelor exterioare (nu s-a figurat pentru semnalele CS L, RAS L, CAS L ¸si WE L).

526

3.6. MEMORIA CU ACCES ALEATORIU

depind numai de st˘ ari), care se implementeaz˘ a cu ˆıntˆ arziere (pe un registru de sincronizare) pentru ca s˘ a se obt¸in˘ a semnale sincronizate pentru SDRAM, Figura 3.99-b. Codificarea ,, st˘ arilor automatului se alege de tipul “one-hot pentru a obt¸ine o structur˘ a simpl˘ a de automat (11 bistabile D); cuvintele de cod pentru fiecare stare sunt notate ˆın tabel ¸si pe organigram˘ a ˆın hexazecimal. Din tabelul de tranzit¸ie al st˘ arilor, pe baza celor cinci semnale de intrare (unul generat de client, RQ, iar celelalte generate de controller), a st˘ arilor prezente, z10 z10 . . . z1 z0 , ¸si a st˘ arilor urm˘ atoare, w11 w10 . . . w1 w0 , se poate realiza sinteza circuitului combinat¸ional al semiautomatului pentru calculul st˘ arii urm˘ atoare. ˆIn tabelul ie¸sirilor pentru fiecare comand˘ a, realizat˘ a ˆıntr-o stare a automatului, pe baza informat¸iilor de catalog din Figura 3.97-a, s-au completat valorile corespunz˘ atoare ale semnalelor generate de automat: CS L, RAS L, CAS L, WE L, ACK, DQ L. Sinteza expresiilor logice pentru aceste semnale ˆın funct¸ie de cuvintele de stare nu ridic˘ a probleme, ˆın starea 6 trebuie f˘ acut˘ a sinteza ¸si ˆın funct¸ie de wr eft (pentru a distinge ˆıntre comenzile WRITE ¸si READ) iar ˆın starea 0 pentru cele trei tipuri de comenzi: PA, AR ¸si LMR; aceste semnale de condit¸ionare sunt introduse ˆın blocul combinat¸ional de dup˘ a registrul de stare, Figura 3.99-b. Generarea semnalului de confirmare acceptare (ACK = 1) cerere client (RQ = 1) corea, adic˘ a automatul este spunde situat¸iei cˆ and cererea respectiv˘ a pentru R,W L este executat˘ a printr-o poart˘ a OR4, Figura ˆın una din st˘ arile 6 , 7 , 8 sau 9 ceea de se realizeaz˘ 3.101. Dar, semnalul ACK pentru cazul cˆ and operat¸ia cerut˘ a a fost READ trebuie ˆıntˆ arziat cu patru tacturi, patru bistabile ˆınseriate (2 tacturi pentru compensarea latent¸ei CAS, 1 tact pentru latet¸a bistabilului D de pe ie¸sirea DQO ¸si un tact pentru compensarea latent¸ei semnalului RQ introdus printr-un bistabil D). Alegerea ˆıntre ACK pentru READ sau WRITE se face cu un MUX2:1 a c˘ arui selectare se obt¸ine prin semnalul compus RQ · R, W L = 1 a pe intrarea de Enable).. (R, W L se aplic˘ Cuvˆ antul de 12 bit¸i, transmis pe portul ADR[11:0] al memoriei, vezi Figura 3.96-a, este calculat de controller ˆın patru variante 1. ca un cuvˆ ant de adres˘ a linie, ˆın starea act st, ¸si este identic cu bit¸i ADR CLIENT[19:8], vezi Figura 3.98-c; 2. ca un cuvˆ ant de adres˘ a coloan˘ a, ˆın starea oper st, ¸si este identic cu bit¸ii a cei patru bit¸i superiori cu cuvˆ antul cabADR CLIENT[7:0] la care se completeaz˘ lat 0000; 3. ca un cuvˆ ant de programare pentru registrul de mod, ˆın starea Init st, LMR=1, ¸si se obt¸ine ca un cuvˆ ant cablat, 0 0 00 010 0 010, vezi Figura 3.96-b; ˘ 4. ca un cuvˆ ant pentru comanda PREˆINCARCARE, ˆın starea pr st sau Init st, ¸si se arcarea tuturor b˘ ancilor. obt¸ine ca un cuvˆ ant cablat, 0100 0000 0000, A11 = 1 preˆınc˘ Datele de la client DQI[31 : 0], separate de datele ˆınspre client DQO[31 : 0], sunt multiplexate pentru o singur˘ a magistral˘ a bidirect¸ional˘ a ˆıntre controller ¸si memorie. Multiplexarea se face ˆın controller prin intermediul unui buffer TSL comandat ˆın stare normal˘ a de funct¸ionare (ˆınscrierea DQI ˆın memorie) prin semnalul DQe dac˘ a operat¸ia curent˘ a este de ˆınscriere (Modelul VERILOG al acestui controller este prezentat ˆın capitolul 5 din volumul II al acestei lucr˘ ari).

3.6.3

Circuite actuale pentru memoriile de date

Memoria RAM de capacitate mare este utilizat˘ a ˆın primul rˆ and ˆın scopul de a stoca date pentru procesare (funct¸ie aritmetic˘ a) ¸si nu atˆ at pentru a implementa funct¸ii

527

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

logice. Dar la aplicat¸ii cu cantit˘ a¸ti mari de date se impune, implicit, ¸si o modalitate de citire ¸si scriere a unei cantit˘ a¸ti mari de date (/cuvinte) ˆın unitatea de timp; o prim˘ a astfel de modalitate a fost citirea ¸si ˆınscrierea sub form˘ a de rafal˘ a. Exist˘ a multe modalit˘ a¸ti de cre¸stere a debitului de date pentru lucrul cu memoria, cˆ ateva din acestea, care sunt de baz˘ a, se vor prezenta ˆın continuare. Accesarea dubl˘ a pe perioada de ceas, DDR (Double Data Rate). La memoria SDRAM accesarea, fie pentru READ, fie pentru WRITE, se realizeaz˘ a (e¸santioneaz˘ a/ ˆınregistreaz˘ a) la un singur cuvˆ ant de date pe o perioad˘ a de ceas (pe frontul pozitiv); dar la memoriile de tip DDR SDRAM pe durata unei perioade de ceas sunt accesate dou˘ a cuvinte (pe magistral˘ a) care pot fi trimise (ˆınscrise ˆın memorie) sau primite (citite din memorie), adic˘ a un cuvˆ ant pe frontul pozitiv ¸si un cuvˆ ant pe forntul negativ al semnalului de ceas. De fapt, se transmit circuitului DDR SDRAM dou˘ a semnale de ceas CLK ¸si negatul acestuia CLK (ˆın opozit¸ie cu 180 ◦ ), Figura 3.102; ˆın exteriorul memoriei, pe magistral˘ a, un cuvˆ ant apare pentru CLK iar urm˘ atorul pentru CLK, deci dac˘ a se comand˘ a cu frecvent¸le de ceas 100, 133, 166, 290 MHz rata de date este de 200, 266, 333, 400 . . . Mcuvinte/s. Frontul pozitiv pentru DDR SDRAM se consider˘ a cˆ and pentru CLK exist˘ a tranzit¸ie L-H, indicat ˆın figur˘ a printr-o s˘ ageat˘ a, iar pentru CLK cˆ and exist˘ a tranzit¸ia H-L. CLK CLK Comenzi aplicate

0

1

2

3

4

READ

5

6

7

8

WRITE

DQS

Data

Data 1

Data 2

Data 3

Data 4

Data 1

Data 2

Data 3

Data 4

Figura 3.102 Semnalele specifice pentru memoria cu rata dubl˘ a de accesare DDR SDRAM. Sincronizarea datelor (strobarea) pentru ˆınscriere sau citire se face cu semnalul DQS.

Pentru a se trece de la o structurare de memorie SDRAM, Figura 3.96, la o structurare de memorie DDR SDRAM se modific˘ a doar partea de interfat¸are I/O date (ˆıncadrat˘ a printr-o linie punctat˘ a ˆın figur˘ a) cealalt˘ a parte (nucleul memoriei) r˘ amˆ ane nemodificat˘ a. La organizarea de tip DDR SDRAM, pentru o comand˘ a READ/WRITE, pe o perioad˘ a de ceas se acceseaz˘ a un cuvˆ ant de 2n bit¸i la nucleul memoriei, dar ˆınspre/de la pinii I/O sunt dou˘ a cuvinte de n bit¸i (cˆ ate unul pe fiecare semiperioad˘ a de ceas). Pentru un transfer sigur al datelor de la surs˘ a la recept¸ie, la o rat˘ a dubl˘ a pe linia magistral˘ a, la DDR SDRAM sunt introduse semnale (de strob) de sincronizare a datelor, DQS. Un semnal DQS este generat de controller (propagat c˘ atre memorii) pentru a se realiza ˆınscrierea corect˘ a ˆın memorie a datelor, DQ in , iar un altul DQout (propagat c˘ atre controller) este generat de c˘ atre memorie pentru a asigura recept¸ia corect˘ a (ˆın timp) la controller a datelor citite din memorie. Strobarea datelor citite (la controller) se face pe frontul semnalului DQS, iar la ˆınscriere (ˆın memorie) se face pe mijlocul palierului semnalului DQS (cˆ and nu exist˘ a transfer pe magistral˘ a,

528

3.6. MEMORIA CU ACCES ALEATORIU

linia pentru semnalul DQS este ˆın starea HZ, reprezentat˘ a la nivelul median ˆıntre H ¸si L). Circuitele DDR ˆın raport cu cele SDRAM, deoarece au mai multe funct¸iuni care trebuie programate, prezint˘ a un al doile registru de mod, EMR (Extended Mode Register) care se programeaz˘ a ˆıntr-o modalitate similar˘ a cu primul registru de mod. DDR2 SDRAM este o variant˘ a ˆımbun˘ at˘ a¸tit˘ a a DDR ˆın tendint¸a de cre¸stere a ratei de transfer pe magistral˘ a la valori de 400, 533 cu posibilitate pˆ an˘ a la 667 sau chiar 800 M cuvinte/s. Aceast˘ a cre¸stere a ratei fluxului de date se poate obt¸ine doar printr-o adaptare a liniei de conexiune ˆıntre controller ¸si cipul DDR2 SDRAM, ˆın scopul ˆımbun˘ at˘ a¸tiri semnalelor de date, DQ, de strobare, DQS, de mascare, DQM atˆ at pentru ˆınscriere cˆ at ¸si pentru citire. Adaptarea la intrarea pe circuitul DDR2, Figura 3.103-a, se face printr-un divizor 2Z0 la VDD ¸si 2Z0 la VSS (terminator Thevenin, vezi Figura 1.75-b), a c˘ arui rezistent¸a˘ echivalent˘ a este egal˘ a cu impedant¸a caracteristic˘ a a liniei Z0 . Printr-un pin suplimentar ODT (On-Die Termination) pe cipul DDR2 se aplic˘ a un semnal de la controller care, pe baza (¸si a program˘ arii) registrului de mod extins, EMR, poate realiza comanda, prin comutatoarele SW 1 ¸si SW2 , de conectarea sau deconectarea terminatorului Thevenin (sunt dou˘ a divizoare cu dou˘ a valori de rezistent¸e, 2Z01 , 2Z02 pentru a realiza adaptarea la dou˘ a valori de impedant¸e caracteristice Z01 ¸si Z02 ). Pentru operat¸ia de citire cˆ and datele se transmit de la memorie la controller, Figura 3.103-b, este prezentat˘ a adaptarea ˆın controller atˆ at pentru cazul cˆ and exist˘ a un singur modul de memorie activ (din care se cite¸ste) cˆ at ¸si pentru cazul cˆ and sunt dou˘ a module de memorie conectate. Cˆ and sunt dou˘ a module de memorie conectate, adaptarea se realizeaz˘ a ¸si la al doilea modul de memorie (din care nu se cite¸ste, este ˆın a¸steptare). Adaptarea pe ie¸sirea driverului pentru datele DQ out de pe modulul de memorie (activ), const˘ a ˆın egalizarea ˆımpedant¸ei de ie¸sire ˆın starea H cu cea din starea L la valoarea de 18 ± 1.5Ω. ˆIn acest scop ˆın interiorul controllerului, pe o rezistent¸a˘ etalon, se m˘ asoar˘ a c˘ aderea de tensiune atˆ at pentru ie¸sirea ˆın starea H cˆ at ¸si pentru ie¸sirea ˆın starea L a driverului de ie¸sire din memorie. Pe baza acestor dou˘ a tensiunii m˘ asurate controllerul genereaz˘ a o succesiune de comenzi WRITE prin care se ajusteaz˘ a, pentru egalizare, la driverul de ie¸sire de la memorie, ret¸eaua de rezistent¸e de ie¸sire din starea H cu ret¸eaua de rezistant¸e de ie¸sire ˆın starea L. ˆIn Figura 3.103-c este prezentat˘ a adaptarea pentru ˆınscrierea ˆın memorie atˆ at pentru un singur modul cˆ at ¸si pentru dou˘ a module de memorie conectate. Responsabilitatea gener˘ arii succesiunii de comenzi pe pinul ODT de la DDR2 SDRAM revine controllerului. QDR SRAM. Modalitatea QDR aplicabil˘ a la memoriile statice RAM este o extensie a modalit˘ a¸tii DDR ˆın sensul c˘ a, pe lˆ ang˘ a accesarea cu o rat˘ a dubl˘ a pe perioada de ceas, de data aceasta memoria este accesat˘ a DDR la dou˘ a porturi (memorie dublu port); deci ˆın raport cu o memorie SRAM pe magistral˘ a se obt¸ine un flux de date cu o rat˘ a qvadrupl˘ a, de unde ¸si denumirea QDR (Quad Data Rate). Memoria QDR SRAM, a c˘ arei structurare de principiu este prezentat˘ a ˆın Figura 3.104-a, prezint˘ a dou˘ a porturi cu funct¸ionare independent˘ a, unul de intrare (ˆınscriere) ¸si unul de ie¸sire (citire), fiecare din acestea fiind accesate de dou˘ a ori pe perioada de ceas (CLK, CLK). ˘ pentru ˆınscriere sau citire sunt Porturile fiind accesate simultan, cuvintele ADRES A multiplexate pe magistrala de adresare, memoria apare ca realizˆ and un flux de date ˆın acela¸si sens. Memoria QDR SRAM a fost realizat˘ a pentru aplicat¸iile unde succesiunea ˆıntre

529

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

DDR2 SDRAM READ

Driver VDD SW1

DQ out DRAM DQ pin

DQ in 2Z01 2Z0

WRITE

SW2 2Z0

2

2Z0

1

SW1

RThevenin = 2

=

SW2

2Z0 2Z0 2Z0+2Z 0

= Z0

VSS ODT pin

Logica de control

a)

Modul DDR2 SDRAM activ VDD

Modul DDR2 SDRAM activ READ

300Ω

WRITE

Controler

300Ω

Controler

150Ω

VSS

DQ pin

DQ pin

pin 150Ω

Ω Modul DDR2 SDRAM activ

Modul DDR2 SDRAM in asteptare VDD

Modul DDR2 SDRAM activ VDD

150Ω 150Ω

Controler

VSS

300Ω

DQ pin pin

300Ω

Controler

DQ pin

Modul DDR2 SDRAM in asteptare VDD

300Ω

150Ω

300Ω VSS

VSS

DQ pin

150Ω

DQ pin

pin

b)

c)

Figura 3.103 Memoria cu rat˘ a dubl˘ a de accesare DDR2 SDRAM: a) structura (doar a ) circuitului pentru adaptarea intr˘ arilor pe cipul de memorie; exemplificare de adaptare ˆıntre controller ¸si memorie pentru operat¸ia de citire (b) ¸si pentru operat¸ia de ˆınscriere (c)

530

3.6. MEMORIA CU ACCES ALEATORIU

operat¸iile de citire, RD, ¸si cele de ˆınscriere, WR, este foarte strˆ ans˘ a ˆın timp, de exemplu alternant¸ele RD-WR-RD-WR-. . . , RD-RD-WR-RD-RD-WR-. . . , RD-WR-WRRD-WR-WR-. . . ; adic˘ a acele aplicat¸ii la care raportul mediu ˆıntre numerele acestor dou˘ a operat¸ii efectuate nu dep˘ a¸se¸ste valoarea doi sau trei. Aplicat¸iile unde valoarea acestui raport mediu este mai mare de trei, deci un ¸sir continuu de date de ˆınscriere sau de citire, sunt bine acoperite de c˘ atre o memorie DDR. Memoria QDR SRAM, Figura 3.104-b, permite dou˘ a tipuri de implementare: cu lungime de rafal˘ a 2 ¸si cu lungime de rafal˘ a 4, iar pentru fiecare din acestea, ˆın funct¸ionare trebuie considerate dou˘ a aspecte, accesarea adresei pe magistrala de adrese ¸si plasarea (captarea) datelor pentru ˆınscriere. Memoria QDR SRAM cu lungimea de rafal˘ a 2 poate sust¸ine indefinit o succesiune de comenzi externe READ (2 cuvinte DQin ), WRITE (2 cuvinte DQout ) ˆın fiecare ciclu de ceas; intern, prima jum˘ atate a perioadei de ceas realizeaz˘ a funct¸ia READ iar ˆın a doua jum˘ atate funct¸ia WRITE. Evident, pe magistrala de adrese se aplic˘ a succesiv adresa pentru citire urmat˘ a de cea da ˆınscriere; frontul pozitiv al semnalului CLK ˆınregistreaz˘ a adresa de citire ˆın portul de ie¸sire (PC) iar frontul pozitiv al semnalului CLK ˆınregistraz˘ a adresa de ˆınscriere ˆın portul de intrare (PI). Memoria QDR SRAM cu lungimea de rafal˘ a 4 poate sust¸ine indefinit numai pentru o alternant¸a˘ de comenzi externe READ (4 cuvinte DQ out ), WRITE (4 cuvinte DQin ) pe durata de cˆ ate dou˘ a cicluri de ceas, la fel ca ¸si memoria cu lungimea de rafal˘ a 2, dar intern utilizeaz˘ a ciclurile diferit fat¸a˘ de organizarea cu lungime de rafal˘ a 2. Memoria SRAM utilizeaz˘ a un ciclu de ceas pentru realizarea intern˘ a a comenzii READ apoi pe urm˘ atoarele dou˘ a cicluri de ceas rezult˘ a la ie¸sirea portului de citire patru cuvinte DQout . Pe urm˘ atorul ciclu de ceas, dup˘ a cel ocupat de realizarea comenzii READ, o comand˘ a WRITE poate fi init¸iat˘ a care determin˘ a ˆınscrierea ˆın portul de intrare a patru cuvinte date, DQin . Rezult˘ a c˘ a succesiunea celor dou˘ a comenzi implic˘ a numai aplicarea unei adrese pe ciclu; frontul pozitiv al semanlului CLK ˆınregistreaz˘ a adresa de citire iar urm˘ atorul front pozitiv, al semanlului CLK, este disponibil pentru ˆınregistrarea adresei de ˆınscriere. Dac˘ a nu este aplicat˘ a o comand˘ a WRITE pe urm˘ atorul front pozitiv al semnalului de cesa CLK atunci pe acest front nu poate fi init¸iat nici un alt ciclu RD-WR; rafala cu lungimea 4 nu poate fi stopat˘ a mai devreme, aceasta trebuie s˘ a se termine. Pentru sistemele care permit lucrul cu rafale de lungime 4 (¸si nu numai lucrul cu rafale cu lungime 2) se recomand˘ a primul tip de organizare de QDR (lungime 4) pentru c˘ a: 1 - adresele pentru comenzile de READ ¸si WRITE sunt prezentate de c˘ atre controller doar cˆ ate una pe un ciclu de ceas; 2 - la aceea¸si vitez˘ a realizabil˘ a pe siliciu se poate comanda cu o frecvent¸a˘ de ceas mai ridicat˘ a. Referitor la plasarea datei de ˆınscriere, DQ in , exist˘ a o mic˘ a diferent¸a ˆın funct¸ionarea memoriei QDR cu rafal˘ a de lungime 2 ¸si rafal˘ a de lungime 4, ceea ce se poate observa din diagrama de semnale din figur˘ a. Pentru rafala de lungime 2 captarea datelor de ˆınscriere DQin1 se realizeaz˘ a imediat ce semnalul de ˆınscriere devine activ, atorul front pozitiv al WR L=0, ¸si pe frontul pozitiv al semnalului CLK, iar pe urm˘ antul DQin2 ¸si interior este executat˘ a operat¸ia de semnalului CLK este captat cuvˆ ˆınscriere. Pentru rafala de lungime 4 captarea datelor de ˆınscriere DQ in1 se realizeaz˘ a cu un ciclu de ceas ˆıntˆ aziere dup˘ a activarea semnalului de ˆınscriere, WR L=0; deci la urm˘ atorul front pozitiv CLK este captat DQin1 , la urm˘ atorul front pozitiv CLK este captat DQin2 , urmeaz˘ a apoi captarea pentru DQin3 , DQin4 , respectiv pe fronturile

531

CAPITOLUL 3. CIRCUITE LOGICE SECVENT ¸ IALE, CLS

ADRESA

17

17

17

Portul Adresa de inscriere (PI) 36

1

WR_L 2 BW0,BW1 18 DQ in

CLK,CLK Vrec ZQ

2

CLC,CLC

36

DQ out

18

Data

Data 2

2

17 ADRESA 1 RD_L

Portul de citire (PC)

Adresa

Matricea memoriei (256k x 36)

2

Controlul logic FLUX DE DATE INTR−UN SINGUR SENS

a) CLK CLK WR_L Lungime RD_L de rafala 2 ADRESA A DQ in

DQin

B

B

C

DQin B+1

DQin

D

D

E

DQin D+1

DQin

F

DQout A

DQ out

F DQout A+1

F+1

G DQin

DQin

DQout C

H

J

I

DQin H+1

H DQout C+1

DQout E

DQout E+1

DQout G

WR_L RD_L Lungime de A rafala ADRESA 4 DQ in

B

C

DQin

A

A+1

DQin

E

D

DQin

A+2

DQin A+3

DQin

DQout B

DQ out

C

C+1

DQout B+1

DQin DQin DQout B+2

C+2

C+3

DQout B+3

DQin DQout D

CLC

b)

CLC

READ WRITE ADRESA DQ

Controler Reintoercere semnale de ceas

c)

CLK,CLK CLC,CLC

τ1

in

CQ CQ

SRAM 1 CLK CLK

CLC CLC

. .

DQ

τ2

out

READ WRITE ADRESA DQ in

SRAM CLK CLK

CQ CQ

2 CLC CLC

DQ out

. .

τ 1 k0 .  Definit¸ia 4.2 Controlabilitatea ie¸sirilor este complet˘ a pentru un sistem dac˘ a din oricare moment de timp k0 T exist˘ a o succesiune de vectori de intrare X(kT ), k = k0 , k1 , ..., kN −1 dup˘ a care ie¸sirea atinge valoarea Y (kN ), ˆıntr-un num˘ ar finit de tacte kN ≥ k 0 .  Definit¸ia 4.3 Un sistem este total controlabil dac˘ a este complet controlabil pentru stare ¸si ie¸sire pentru oricare kN ≥ k0 .  Dual˘ a not¸iunii de controlabilitate este not¸iunea de observabilitate.

Definit¸ia 4.4 Un sistem este complet observabil dac˘ a oricare stare q(k 0 T ) din momentul de timp k0 T , poate fi determinat˘ a prin cunoa¸stera setului de vectori

CAPITOLUL 4. SUPORTUL CIRCUISTIC PENTRU APLICAT ¸ II

595

de intrare X(kT ) ¸si observarea ie¸sirii Y (kT ), k 0 ≤ k < kN , ˆıntr-un num˘ ar (kN ) finit de tacte. S ¸ i este total observabil dac˘ a este complet observabil pentru oricare k 0 ¸si oricare kN > k0 .  ,, Un circuit combinat¸ional “trece testul dac˘ a ie¸sirea sa este corect˘ a pentru tot¸i cei 2n vectori de test aplicat¸i pe intrare. Un circuit logic secvent¸ial, care are 2 k st˘ ari, necesit˘ a, teoretic, aplicarea a cˆ ate 2n vectori de test pe intrare pentru fiecare stare, deci ˆın total 2n+k teste (toate elementele produsul cartezian X × Q); ceea ce uneori duce la un consum de timp/calcul inacceptabil. Se poate reduce timpul te testare, prin eliminarea unui num˘ ar de teste, dac˘ a se exploateaz˘ a anumite particularit˘ a¸ti ale circuitului. Practic, pentru testare se utilizeaz˘ a punctele de intrare ¸si ie¸sire din circuit ¸si eventual puncte interne de test, la un sistem realizat pe o plac˘ a de circuit imprimat sau la un circuit implementat cu componente discrete. La circuitele integrate punctele de test se reduc ˆın exclusivitate la pini. Pentru circuitele VLSI, cu sute de terminale ¸si aplicare prin tehnologie de lipire pe suprafat¸˘ a, SMT (Surface Mount Technology), cu circuite pe ambele p˘ art¸i ale pl˘ acii de circuit imprimat, accesul la tot¸i pinii necesari pentru procesul de testare devine o problem˘ a. Pentru a elimina aceast˘ a problem˘ a ¸si a u¸sura controlabilitatea ¸si observabilitatea, pe care se bazeaz˘ a procesul de testare, circuitele VLSI actuale sunt proiectate cu un suport pentru testabilitate, DFT (Designed for Testability). Un circuit cu suport DFT necesit˘ a put¸ini pini speciali, maxim cinci, dar cu tot acest num˘ ar redus de pini accesibili se pot accesa o mult¸ime de puncte din interior care nu au ie¸sirea direct˘ a la un pin I/O. ˆIn acest sens, ˆın continuare, se va prezenta ˆın ce const˘ a o proiectare pentru testabilitate ¸si apoi, standardul care descrie DFT pentru circuitele integrate. Pentru un automat, implementat ca un circuit integrat autonom, exist˘ a acces doar la pinii s˘ ai care sunt intr˘ arile principale, IP, ¸si ie¸sirile principale, OP, bit¸ii cuvˆ antului de stare zn−1 , zn−2 , ..., z1 z0 nu sunt accesibili, starea este o m˘ arime intern˘ a a automatului. Se pot explora (scana) ¸si bit¸ii st˘ arii interne dac˘ a se realizeaz˘ a, ˆın acest sens, un traseu de explorare (scan path) ˆın interiorul automatului la registrul de stare, Figura 4.23-a. Acest traseu este format din celulele registrului de stare c˘ arora li se modific˘ a put¸in structura ˆın scopul obt¸inerii a celor patru facilit˘ a¸ti ale unui registru general: conversie serie-serie, serie-paralel, paralel-serie, si paralel-paralel, Figura 3.81. Structurarea, de principiu al unui astfel de registru scan este prezentat˘ a ˆın Figura 4.23-b. O celul˘ a scan este, ˆın fond, un bistabil D, similar cu cel din Figura 3.80-a, care ˆın funct¸ie de semnalul de selectare TMS (Test Mode Selection) poate multiplexa intrarea D, fie ˆıntr-o intrare paralel˘ a, fie ˆıntr-o intrare serie TDI (Test Data In) de la celula scan anterioar˘ a; pentru regimul normal, TMS = 0, celula scan se ˆıncarc˘ a paralel, iar pentru regimul de testare, TMS = 1, celula se ˆıncarc˘ a serie. Un grup de celule scan pot forma fie un registru paralel, cu ˆınc˘ arcare pe semnalul de ceas CLK al sistemului, fie un registru serie, cu deplasare pe semnalul de ceas de testare TCLK; sunt necesare dou˘ a semnale de ceas deoarece un registru de deplasare necesit˘ a o frecvent¸a˘ mai mic˘ a TT CLK > TCLK . Aceast˘ a celul˘ a de registru este completat˘ a pe ie¸sire cu un latch, astfel ˆıncˆ at ˆın registru s˘ a poat˘ a fi ment¸inut la ie¸sire un cuvˆ ant (paralel) ˆın timp ce alt cuvˆ ant, sau chiar cuvˆ antul stocat ˆın latch-urile pentru ie¸sirea paralel˘ a a registrului, este deplasat ˆın registru, pe semnalul de ceas TCLK, dinspre intrarea TDI spre ie¸sirea de date serie, TDO (Test Data Output). Traseul scan, pentru automatul cu un cuvˆ ant de stare de trei bit¸i z 2 z1 z0 , din Figura

596

4.7. PROIECTAREA PENTRU TESTABILITATE

Intrari principale

Iesiri principale

IP

OP w0

Celula scan

z0 CLC

w1

z1 w2

z2

a)

TCLK,TMS TDI

2

TDO

utsuts usus

Celula scan

CLC 4

}t|}t| }|}|

2 celule scan

TMS

Canale de rutare

Iesiri paralele

latch−uri

3 celule scan

CLC 2

Celula scan

Registrul de stare

1

t~t~ t~t~ t~t~ ~~

Pad

CLC 6

CLC 1

xtxtyxyx

TDI

vtvtvwvw

CLC 3

{tz{tz {tz{tz {z{z

TDO

3 celule CLC 5 scan

c) Celula scan

1

Iesire paralela

latch TMS TDI TCLK

N−1

N−2

CLK b)

1

0

TDO

1

CLC 1

Iesire serie

1

Intrare paralela

2 1 TMS, TCLK

Intrari paralele

CLK TDO

0

5

IP

TDI Intrare serie

CLC 2 + CLC 3

6

4

CLC 4 + CLC 5

1

CLC 6

OP

3 7

d)

TCLK TMS

2

1

2 TDI Celule scan

Figura 4.22 Metoda traseului scan pentru testare: a) transformarea registrului de stare al unui automat ˆıntr-un traseu scan; b) structura de principiu a unui traseu scan cu figurarea semnalelor de control; c) exemplificarea unei posibile pozit¸ion˘ ari a punctelor de test pe un layout; d) detalierea traseului scan pentru circuitul de la figura (c).

CAPITOLUL 4. SUPORTUL CIRCUISTIC PENTRU APLICAT ¸ II

597

4.23-a, este format din trei celule scan, interconectarea de tip serie dintre celule este desenat˘ a cu linie ˆıngro¸sat˘ a. ˆIn fiecare moment se poate citi starea automatului: se trece ˆın modul test, TMS = 1, ¸si prin aplicarea a trei tacturi ale semnalului TCLK se obt¸ine serie, pe ie¸sirea TDO, valoarea cuvˆ antului de stare z 2 z1 z0 (observabilitate). De asemenea, in fiecare moment se poate injecta o stare ˆın felul urm˘ ator: se trece ˆın modul de test TMS = 1, cuvˆ antul de stare z2 z1 z0 se aplic˘ a la intrarea serial˘ a TDI pe durata a trei impulsuri de ceas (controlabilitate). La o proiectare pentru testabilitate o celul˘ a sau grupuri de celule scan vor fi plasate ˆın interiorul circuitului integrat, ˆın punctele de testare, ca ˆın Figura 4.23-c. Metoda traseului scan se bazeaz˘ a pe faptul c˘ a orice circuit digital poate fi privit ca fiind format din blocuri de circuite combinat¸ionale interconectate prin elemente de stocare (latchuri, bistabile), Figura 3.76-a. Dac˘ a aceste elemente de stocare sunt de tipul celul˘ a scan, prin proiectare se poate realiza ca toate s˘ a fie celule scan, atunci cˆ and circuitul este trecut ˆın regim de test, TMS = 1, poate s˘ a formeze un registru de deplasare. ˆIn aceast˘ a abordare, pentru circuitul cu layoutul de principiu din Figura 4.23-c, ˆın Figura 4.23-d este prezentat traseul scan compus din registrul de deplasare cu opt celule scan. Semnalele din cele opt puncte de test pot fi citite serie la ie¸sirea TDO, pe durata a opt semnale de ceas TCLK, sau ˆın fiecare punct de test poate fi ˆınscris˘ ao valoare logic˘ a prin aplicarea pe intarea serie TDI, a cuvˆ antului format din opt valori binare, pe durata a opt semnale de tact. Proiectarea circuitelor VLSI pentru testabilitate poate utiliza standardul IEEE 1149. (Boundary-Scan Test) elaborat ˆın 1990 ¸si apoi completat cu fiecare variant˘ a lansat˘ a. Recent a fost introdus standardul IEEE 1532 pentru dispozitivele care pot fi configurabile/programabile ˆın sistem, standard ce este compatibil cu 1149. Arhitectura suportului standardului IEEE 1149.1 pus˘ a la dispozit¸ia proiectantului pentru DFT este prezentat˘ a (simplificat) ˆın Figura 4.23-a. Fiecare pin I/O al circuitului in,, tegrat este “inzestrat ˆın interior cu o celul˘ a scan, acestea sunt unite ˆıntr-un registru scan (boundary register); acest registru scan controleaz˘ a ¸si observ˘ a activitatea la pinii I/O ai circuitului. Circuitului integrat, pe lˆ ang˘ a pinii proprii I/O mai trebuie s˘ a i se adauge patru pini pentru semnalele TCLK, TDI, TDO, TMS; optional este ¸si al cincelea pin pentru un semnal de resetare, TRST L. Cuvintele serie introduse pe intrarea TDI pot fi cuvinte dat˘ a care cont¸in date ce se ˆıncarc˘ a serie ˆın registrul scan sau pot fi cuvinte intstruct¸iune care se ˆıncarc˘ a serie ˆın registrul de instruct¸iuni (care are o structurare ca ¸si registrul scan). Exist˘ a un automat (ASM cu 16 st˘ ari) care, ˆın funct¸ie de valoarea semnalului TMS aplicat din exterior, genereaz˘ a ˆın fiecare stare semnale pentru procesul de decodificare a instruct¸iunii care a fost ˆınc˘ arcat˘ a ˆın registrul de instruct¸iuni. ˆIn funct¸ie de cuvˆ antul specific al instruct¸iunii ¸si de starea prezent˘ a a automatului, pe durata fiec˘ arui semnal TCLK, se genereaz˘ a semnalele de control (TMS 0 ,TMS1 , . . . , TMSN −2 , TMSN −1 ), care prin aplicare la registrul scan fixeaz˘ a modul de funct¸ionare a fiec˘ arei componente; deci fiecare celul˘ a scan poate s˘ a ˆı¸si modifice funct¸ionarea de la tact la tact ˆın funct¸ie de instruct¸iunea primit˘ a ˆın registrul de instruct¸iuni. De fapt, aceast˘ a aducere succesiv˘ a a instruct¸iunilor ˆın registrul de instruct¸iuni, decodificarea ¸si execut¸ia instruct¸iunii (generˆ and comenzi la registrul scan) constituie o funct¸ionare de procesor, iar suportul circuistic introdus de standard nu este altceva decˆ at un procesor rudimentar/simplificat. Testarea circuitului integrat, generarea semnalelor TCLK, a ˆın exterior pe un TMS, TDI, TRST L ¸si colectarea semnalului TDO, se realizeaz˘

598

4.7. PROIECTAREA PENTRU TESTABILITATE pini I/O TCLK

TDI

Traseul (registru) scan

N−1

Registru de instructiuni

Automat (cu 14 stari)

D E C O D I F I C A T O R

TMS N−2

Semnale

TMS N−1 pentru

TMS i controlul

modului de functionare al celulelor TMS 1 din traseul TMS 0 scan Decodificarea instructiunilor

ASM

Traseul (registru) scan

N−2

celula scan

N−4

Circuitele sistemului integrat

Bypas registru

0

1

TMS TRST_L TDO a) Pin de intrare

N−3

Celula scan

2

3

pini I/O

Circuitele sistemului integrat

De la TDI

la TDO Registru scan

Circuitele sistemului integrat b)

Pin I/O (bidirectional)

Pin de iesire (TSL)

Pin de iesire

Figura 4.23 Suportul pentru DFT oferit prin standardul IEEE 1149 (Boundary scan): a) arhitectura circuisticii suplimentare introdus˘ a ca suport DFT ˆıntr-un circuit integrat; b) adaptarea celulelor din registrul scan ˆın funct¸ie de modul de utilizare al unui pin.

calculator – echipament de testare (tester). Programul de testare const˘ a ˆın secvent¸e de cuvinte intruct¸iuni ¸si secvent¸e de cuvinte dat˘ a care se introduc serial, prin pinul TDI, ˆın suportul hardware (registrul de instruct¸iuni, registrul scan) inculs ˆın circuitul integrat. Pentru dezvoltarea programelor de testare, pe echipamentul exterior de testare, exist˘ a limbaje specializate ˆın acest sens, BSDL (Boundary-Scan Decription Language). Un alt element necesar ˆın suportul circuistic implementat pe circuitul integrat este registrul de scurtare (bypas). Acest registru, compus dintr-o singur˘ a celul˘ a scan cˆ and este selectat, reduce (prin conectarea intr˘ arii TDI la ie¸sirea TDO) la un singur tact num˘ arul de tacturi de deplasare ˆıntre TDI ¸si TDO.

CAPITOLUL 4. SUPORTUL CIRCUISTIC PENTRU APLICAT ¸ II

599

Monitorizarea unui pin al circuitului printr-o celul˘ a scan se adapteaz˘ a ˆın funct¸ie de modul de utilizare al pinului I/O, Figura 4.23-b. Pentru un pin utilizat numai pentru intrare semnalul cules de la acesta se aplic˘ a la celula scan ata¸sat˘ a ca intrare paralel˘ a iar ie¸sirea paralel˘ a (de la latch) se aplic˘ a la circuitele sistemului integrat. Iar pentru un pin utilizat numai pentru ie¸sire sensul de aplicare al semnalelor se inverseaz˘ a. Pentru un pin de ie¸sire tip TSL sunt necesare dou˘ a celule scan, iar pentru un pin cu transfer bidirect¸ional sunt necesare trei celule (structuri mai complexe pot include aceste funct¸ion˘ ari ˆıntr-o singur˘ a celul˘ a scan). La circuitele CPLD, FPGA care prezint˘ a pe perimetru exterior blocuri I/O configurabile, ˆın care exist˘ a celule de stocare, aceste celule de stocare pot fi proiectate astfel ˆıncˆ at s˘ a permit˘ a ¸si o configurare de celul˘ a scan ce poate fi inclus˘ a intr-un (boundary) registru scan.

4.8

COMBINAT ¸ IONAL SAU SECVENT ¸ IAL?

Cu suportul circuistic prezentat, ˆın acest capitol, pot fi implementate atˆ at circuite combinat¸ionale cˆ at ¸si circuite secvent¸iale. O funct¸ie logic˘ a, aritmetic˘ a sau de comunicat¸ie poate fi implementat˘ a pe un circuit combinat¸ional sau pe un circuit secvent¸ial; ˆıntre cele dou˘ a modalit˘ a¸ti se poate realiza o conversie ˆın ambele sensuri, atˆ at de la combinat¸ional la secventˆıal cˆ at ¸si de la secvent¸ial la combinat¸ional. Dar pentru decizia combinat¸ional/secvent¸ial proiectantul trebuie s˘ a aib˘ a un criteriu; ˆın aceast˘ a sect¸iune se va explica ce ar putea fi considerat un astfel de criteriu. Pentru aceasta, ˆıntre cei trei parametrii ai unui circuit implementabil: dimensiunea, S(n), adˆ ancimea, D(n), ¸si complexitatea C(n), s˘ a analiz˘ am, pentru ˆınceput, care este balansul ˆıntre primii doi parametrii S(n) ↔ D(n). Teorema 4.1 (lui Spira [Spira0 71]). Un circuit arbore degenerat, de dimensiune ¸si adˆ ancime constante, D(n) ∈ O(n) ¸si S(n) ∈ O(n), poate fi transformat ˆıntr-un circuit echivalent avˆ and adˆ ancimea ˆın O(log n) ¸si dimensiunea ˆın O(n α ) cu α ∈ (1). Pentru demonstrarea teoremei se va considera arborele degenerat prezentat ˆın Figura 4.24-a ˆın care fiecare CLCi , i = 1, 2, . . . , n, este un circuit combinat¸ional cu dou˘ a intr˘ ari, o ie¸sire ¸si aceea¸si structur˘ a, iar num˘ arul n este o putere a lui 2; aceast˘ a restrict¸ionare nu reduce generalitatea teoremei (fiecare circuit CLC i ar putea fi diferit, prezentˆ and k intr˘ ari ¸si m ie¸siri, de exemplu). Succesiunea demonstrat¸iei reflect˘ a ¸si modalitatea practic˘ a de transformare a circuitului. Arborele degenerat se sect¸ioneaz˘ a ˆın doi subarbori primul cu n/2 circuite,CLC 1 ÷ CLCn/2 , ¸si cel de al doilea tot cu n/2 circuite, CLCn/2+1 ÷ CLCn . Ie¸sirea primului subarbore se aplic˘ a pe intrarea de selectare a unui MUX2:1 (MUXE), iar pe intr˘ arile de date ale multiplexorului se aplic˘ a cˆ ate o copie a celui de al doilea subarbore. Una dintre intr˘ arile celui de al doilea subarbore (din structura nesect¸ionat˘ a) este ie¸sirea yn/2 care poate avea, indiferent de valorile aplicate variabilelor de intrare x0 , x1 , . . . , xn/2 , de la primul subarbore, fie valoarea 0, fie valoarea 1. Pentru ca funct¸ionarea circuitului s˘ a nu se modifice, prin aceast˘ a sect¸ionare, se aplic˘ a la intr˘ arile corespunz˘ atoare lui yn/2 de la cele dou˘ a copii ale celui de-al doilea subarbore, la una valoarea 0 iar la cealalt˘ a valoarea 1. Evident c˘ a, atunci cˆ and primul subarbore genereaz˘ a la ie¸sirea sa valoarea 0 (yn/2 = 0) se va selecta la ie¸sirea multiplexorului copia celui de al doilea subarbore care are pe intrare valoarea 0, respectiv se va

600

4.8. COMBINAT ¸ IONAL SAU SECVENT ¸ IAL?

x0 x1

y1

x2

1

CLC1 y1

CLC2 y2

€ ‚ƒ „…

x2

1

y2

xn/2 1

yn/2

Ÿ   Ÿ

y(n/2+1)

1

¡ ¢ £ ¡ †‡ ˆ‰ ¢Š‹ £ ¢¤£ ¤ ¤

xn/2 1

n/2 circuite

a)

•“•– “” ——˜

y(n−1)

1

™›™š ›œ ž

y(n−1)

xn

1

0

1

y(n−1)

y(n/2+1)

1

yn/2

CLCn 1

MUX 2:1 yn

xn

1

xn

1

1

CLC(n/2+1)

y(n/2+1)

CLC(n/2+1)

CLCn

CLCn/2

x(n/2+1)

1

ŒŒŽ ‘ ‘’

y(n/2−1)

CLCn/2

"1" x(n/2−1)

CLC(n/2+1)

CLC2

1

y(n/2−1) n/2 circuite

"0" x(n/2−1)

x0 x1

CLC1

1

1

CLCn

yn

1

b)

Figura 4.24 Conversia unui circuit de la adˆ ancimea ˆın O(n) ˆıntr-un circuit cu adˆ ancime ˆın O(log n) prin aplicarea teoremei lui Spira: a) circuitul init¸ial cu D(n) ∈ O(n); b) circuitul obt¸inut, cu adˆ ancime ˆınjum˘ at˘ a¸tit˘ a, dupa prima sect¸ionare (procesul de ˆınjum˘ at˘ a¸tire a adˆ ancimii poate continua).

selecta copia celui de al doilea subarbore care are pe intrare valoarea 1 cˆ and y n/2 = 1. Adˆ ancimea circuitului rezultat s-a ˆınjum˘ at˘ a¸tit iar dimensiunea a crescut cu jum˘ atate din cea a arborelui de intrare plus un MUXE. Celor trei subarbori rezultat¸i dup˘ a prima sect¸ionare (i = 1) li se poate aplica fiec˘ aruia, similar o nou˘ a sect¸ionare (i = 2) pe la jum˘ atatea circuitelor CLC componente obt¸inˆ andu-se din nou aproximativ o ˆınjum˘ at˘ a¸tirea adˆ acimii circuitului rezultat; num˘ arul de sect¸ion˘ ari posibile succesive este i = log 2 n, deci o adˆ ancime D(n) ∈ O(log n). De fiecare dat˘ a cˆ and se aplic˘ a o sect¸ionare num˘ arul de circuite CLC i se multiplic˘ a cu 1,5 ¸si se adug˘ a un num˘ ar de 3i circuite MUXE, ˆın consecint¸a˘ dimensi2 unea circuitului ram˘ ane ˆın O(n ). Pentru cazul cˆ and CLCi sunt cu ie¸siri multiple, de exemplu un num˘ ar de m ie¸siri, multiplexarea se realizeaz˘ a cu m× MUX2m :1. Dup˘ a prima sect¸ionare cele m ie¸siri ale CLCn/2 se aplic˘ a la cele m intr˘ ari de selectare de la fiecare dintre cele m multiplexoare 2m : 1. Pentru copia subarborelui al doilea, ale c˘ arui ie¸siri sunt aplicate la intr˘ arile de date de ordin i, 0 ≤ i ≤ 2m − 1, de la cele m multiplexoare, la intrarea sa se aplic˘ a cuvˆ antul care este codul binar natural al num˘ arului i.

601

CAPITOLUL 4. SUPORTUL CIRCUISTIC PENTRU APLICAT ¸ II

Exemplul 4.5 [Stefan 0 00] Circuitul detector de paritate din Figura 4.25-a s˘a i se aplice teorema lui Spira.

x0 x1

x0 x1

"1" x2

"0" x2

1

1

2

2

x2 2

x3 S

3 a)

y

x3

x0 x1

x2 x3

«¬ ©ª

(2,3)

1

S

1

x2 x3

x2 x3

1

(2,3)

(2,3)

x3

3

3

1

0 MUX 2:1 y

b)

x0 x1

S c)

x0 x1

x2 x3

1

(2,3)

(2,3) S

0 MUX 2:1

§¨

0 MUX 2:1 y

x0 x1

¥¦

1

1

x2 x3

0 XOR

y y

d)

e)

MUX 2:1 y

f)

Figura 4.25 Exemplu de aplicare a teoremei lui Spira pentru conversia unui structuri serie de generator de paritate pentru un circuit de patru bit¸i ˆıntr-o structur˘ a paralel˘ a (pe baza de XOR2) Solut¸ie: Arborele degenerat format din 3 port¸i XOR este sect¸ionat dup˘ a prima poart˘ a; primul subarbore format din poarta XOR, notat˘ a cu 1, se aplic˘ a la intrarea de selectare S a multiplexorului 2:1, iar cele dou˘ a copii ale celui de-al doilea subarbore, format din port¸ile XOR notate cu 2 ¸si 3, se aplic˘ a la intr˘ arile de date 0,1 ale multiplexorului, Figura 4.25b. Copia celui de-al doilea subarbore care are pe intrare valoarea 1 se transform˘ a ˆıntr-o singur˘ a poart˘ a NXOR, notat˘ a cu (2,3) pentru c˘ a 1 ⊕ x2 → x2 ⊕ x3 = x2 ⊕ x3 , iar copia care are pe intrare valoarea 0 se transform˘ a ˆıntr-o singur˘ a poart˘ a XOR, notat˘ a cu (2,3) pentru c˘ a: 0 ⊕ x2 → x2 ⊕ x3 , Figura 4.25-c ¸si d. Operatorul de inversare de la NXOR ˆımpreun˘ a cu structrura MUX2:1, Figura 4.25-e, formeaz˘ a o structur˘ a de XOR, obt¸inˆ andu-se ˆın final, Figura 4.25-f; structur˘ a paralel˘ a de detector de paritate pentru cuvinte de patru bit¸i (vezi Figura 2.19-c ¸si d). Suger˘ am, ca exercit¸iu, aplicarea teoremei lui Spira pentru conversia arborilor degenerat¸i format¸i din: 1 – ¸sapte port¸i XOR (detector de paritate pentru cuvinte

602

4.8. COMBINAT ¸ IONAL SAU SECVENT ¸ IAL?

de un byte, Figura 2.19-b); 2 – ˆınserierea a ¸sapte port¸i AND2; 3 – ˆınserierea a ¸sapte port¸i OR2.

,, ,, Teorema lui Spira ne arat˘ a c˘ a la conversia “serialului ˆın “paralel scade timpul ,, (adˆ ancimea) dar cre¸ste dimensiunea. Dar cum se manifest˘ a acest “balans cˆ and se trece de la secvent¸ial la combinat¸ional ¸si invers ? La un circuit combinat¸ional timpul de procesare T (n) se va considera proport¸ional cu adˆ ancimea D(n). Un bloc de stare ˆıntr-o organigram˘ a ASM ˆın care se comut˘ a ˆın aceea¸si stare de n ori, adic˘ a se parcurge repetitiv o bucla de n ori, cum este prezentat ˆın Figura 2.16-a poate fi modelat printr-o ˆınseriere de n celule identice obt¸inˆ andu-se un circuit combinat¸ional, Figura 2.16-c. q(t0)

x(t0)

X

Y

CLC2

x(t1)

(f:X Q Y)

CLC1

Q+

Registru

CLC2

CLC1 q(t2)

CLC2

CLC2

CLC1 q(ti+1)

y(t1)

y(ti)

q(tn−1)

x(tn) CLC1

a)

y(t0)

q(ti)

x(ti)

(g:X Q Q)

Q

CLC1 q(t1)

CLC2

y(tn)

b)

Figura 4.26 Conversia unui automat Mealy (a) ˆıntr-un circuit combinat¸ional (b) cu S(n) ∈ O(n) ¸si D(n) ∈ O(n). Conversia invers˘ a este posibil˘ a dac˘ a se poate structura CLC1 ¸si CLC2 conform ret¸elei din (b). S˘ a consider˘ am cazul general, Figura 4.26-a, al unui automat Mealy care calculeaz˘ a funct¸ia de transfer f : (X × Q) → Y pe circuitul combinat¸ional CLC 2 ¸si funct¸ia de tranzit¸ie g : (X × Q) → Q pe cicruitul combinat¸ional CLC 1 . Aplicˆ and la intrare, sincron cu ceasul, o succesiune de valori ale semnalului de intrare x(t 0 ), x(t1 ), . . . , x(ti ), . . . , x(tn ) automatul va parcurge o traiectorie compus˘ a respectiv din st˘ arile q(t 0 ), q(t1 ),. . . , q(ti ), . . . , q(tn ) generˆ and ie¸sirile y(t0 ), y(t1 ), . . . , y(ti ), . . . , y(tn ); cu x(ti ) ∈ X, q(ti ) ∈ Q ¸si y(ti ) ∈ Y . Acest automat rezolv˘ a problema prelucr˘ arii ¸sirului de

CAPITOLUL 4. SUPORTUL CIRCUISTIC PENTRU APLICAT ¸ II

603

intrare x(ti ) ˆıntr-un timp O(n) pe un circuit CLC2 de dimensiune DCLC2 = O(1), iar pentru generarea st˘ arii urm˘ atoare (semiautomat) pe circuitul CLC 1 de dimensiune DCLC1 = O(1) tot ˆıntr-un timp O(1). Dar aceea¸si prelucrare a ¸sirului de intrare x(ti ), i = 0, 1, . . . , n se poate realiza prin ˆınserierea de n ori a p˘ art¸ii combinat¸ionale a automatului (CLC1 + CLC2 ) ca ˆın Figura 4.26-b. La primul circuit combinat¸ional se aplic˘ a x(t0 ) ¸si starea init¸ial˘ a q(t0 ), se genereaz˘ a ie¸sirea y(t0 ) ¸si starea viitoare q(t1 ), la al doilea circuit combinat¸ional se aplc˘ a x(t 1 ) ¸si starea q(t1 ), se genereaz˘ a ie¸sirea y(t1 ) ¸si starea urm˘ atoare q(t2 ). Astfel, din aproape ˆın aproape la aplicarea valorilor intr˘ arii x(ti ) ¸si a st˘ arii q(ti ) se calculeaz˘ a ie¸sirea y(ti ), deci circuitul combinat¸ional pentru ¸sirul de valori de intrare aplicat la succesiv, genereaz˘ a pe ie¸siri aceea¸si succesiune pe care o realizeaz˘ a ¸si circuitul secvent¸ial de la care am pornit. La circuitul combinat¸ional ,, obt¸inut prin “desf˘ a¸surarea p˘ art¸ii combinat¸ionale a automatului, care se compune prin ˆınserierea de n ori a circuitului combinat¸ional respectiv, atˆ at adˆ ancimea D(n) cˆ at ¸si dimensiunea S(n) sunt ˆın O(n). ,, Circuitul combinat¸ional obt¸inut prin “desfa¸surarea p˘ art¸ii combinat¸ionale a automatului, prin aplicarea teoremei lui Spira, poate fi convertit ˆıntr-un circuit combinat¸ional cu dimensiunea D(n) ∈ O(nα ) ¸si adˆ acimea D(n) ∈ O(log n). Prin conversia automatului, cu o adˆ acime a p˘ art¸ii combinat¸ionale ˆın O(1) ¸si un timp de procesare ˆın O(n), deci un produs S(n) × T (n) = O(n), ˆıntr-un circuit combinat¸ional, echivalent din punct de vedere al prelucr˘ arii, se obt¸ine o dimensiune ˆın O(n α ) ¸si o adˆ ancime ˆın O(log n), deci ˆın cel mai bun caz un produs S(n) × T (n) = O(n · log n). Conversia invers˘ a, de obt¸inere a unui circuit secvent¸ial dintr-un circuit combinat¸ional, este posibil˘ a dac˘ a se poate structura partea combinat¸ional˘ a a automatului conform ret¸elei din Figura 4.26-b. Pentru proiectant criteriul de decizie ˆın alegerea combinat¸ional sau secvent¸ial poate fi produsul adˆ ancime × dimensiune, D(n) × S(n), al circuitului, care este proport¸ional cu produsul dintre timpul de procesare ¸si dimensiune, T (n) × S(n). Costul unui circuit, ˆın general, este proport¸ional cu dimensiunea S(n), (vezi sect¸iunea 2.3 ¸si 4.1), iar performant¸a (ˆın general viteza de procesare) este invers proport¸ional˘ a cu T (n), deci produsul T (n)×S(n) poate fi considerat ca fiind raportul cost/performant¸a˘. Produsul T (n) × S(n) poate fi utilizat ca un criteriu ˆın decizia secvent¸ial/combinat¸ional, varianta de circuit care asigur˘ a o valoare mai mic˘ a pentru acest produs poate fi selectat˘ a deoarece realizeaz˘ a un cost mai mic pentru unitatea de performat¸a˘. Balansul dintre S(n) ¸si D(n) este exprimat de relat¸ia 2.9 care arat˘ a c˘ a m˘ arirea performant¸ei (vitezei) de un num˘ ar de ori va determina cre¸sterea costului cu un mai mare num˘ ar! ˆIn Tabelul 4.2 sunt colectate caracteristicile de circuit D(n), T (n) pentru circuite sumator ¸si circuite multiplicator ˆın variante combinat¸ionale ¸si secvent¸iale. Circuitul multiplicator secvent¸ial (pozit¸ia 5 din tabel) nu a fost prezentat ˆın aceast˘ a carte; acest circuit utilizeaz˘ a algoritmul clasic de ˆınmult¸ire. Se adun˘ a succesiv produsele part¸iale obt¸inute prin ˆınmult¸irea deˆınmult¸itorului cu cˆ ate o cifr˘ a a ˆınmult¸itorului, dar fiecare produs part¸ial ˆınainte de adunare se deplaseaz˘ a cu un rang spre stˆ anga. Inspectˆ and tabelul se constat˘ a c˘ a produsul S(n) × T (n) (raportul pret¸/performant¸a˘) este mai bun la variantele cu implementare secvent¸ial˘ a decˆ at la variantele cu implementare combinat¸ional˘ a atˆ at pentru sumatoare cˆ at ¸si pentru multiplicatoare. ˆIn concluzie, apare c˘ a din punct de vedere al raportului pret¸/performant¸a˘ sunt mai avantajoase ,, circuitele mai lente! Un circuit ˆın acest sens care “ˆıncetine¸ste timpul de procesare dar ˆın schimb cre¸ste utilizarea componentei combinat¸ionale ¸si care poate fi suport

604

4.8. COMBINAT ¸ IONAL SAU SECVENT ¸ IAL?

Tabelul 4.2 Valori ale produsului S(n) × T (n) pentru variante de circuite implementate combinat¸ional ¸si secvent¸ial

1 2 3 4 5

TIPUL DE CIRCUIT Sumator cu transport progresiv, STP (sect¸iunea 2.5.2.1) Sumator cu transport anticipat, STA (sect¸iunea 2.5.2.1) Sumator serial cu transport succesiv (secvent¸ial) (problema P3.44 ¸si P3.76) Multiplicator matriceal (sect¸iunea 2.5.3.1) Multiplicator secvent¸ial

S(n) × T (n)

S(n)

T (n)

O(n)

O(n)

O(n2 )

O(n3 )

O(1)

O(n3 )

O(1)

O(n)

O(n)

O(n2 )

O(n)

O(n3 )

O(1)

O(n)

O(n)

de implementare atˆ at pentru combinat¸ional cˆ at ¸si pentru secvent¸ial, este FPGA-ul utilizat cu timp multiplexat. Circuitul FPGA cu timp multiplexat, TM-FPGA. Modalit˘ a¸tile de organizare ale unui circuit FPGA sunt prezentate ˆın Figura 4.10 ¸si dintre acestea varianta ,, de organizare de tip matriceal este reluat˘ a ˆın Figura 4.27-a. ˆIn “spatele fiec˘ arui punct programabil (din CLB-uri sau resurele de interconectare) exist˘ a cˆ ate o celul˘ a memorie (latch), a c˘ arei valoare ˆınscris˘ a determin˘ a programarea punctului respectiv; totalitatea acestor celule de memorie constituie memoria de reconfigurare a circuitului FPGA, aceast˘ a memorie va fi referit˘ a ca plan de memorie de reconfigurare sau context. Un circuit TM-FPGA prezint˘ a distribuit, ˆın fiecare dintre punctele de programare nu o singur˘ a celul˘ a de memorie (latch) ci un num˘ ar de k celule de memorie de reconfigurare care, toate, la nivelul ˆıntregii suprafet¸e a circuitului, pot fi privite c˘ a formeaz˘ a k plane de memorie de configurare (k contexte), Figura 4.27-c. La un moment dat al funct¸ion˘ arii circutului doar cont¸inutul unui singur plan — contextul curent — comand˘ a punctele de programabilitate. Schimbarea unui plan de memorie cu un altul, adic˘ a modificarea funct¸iei realizat˘ a de c˘ atre FPGA (prin act¸iunea unui alt context), se poate realzia ˆıntr-un interval de timp mai mic de 25ns. Oricare dintre cele k plane de memorie de configurare poate fi ˆınc˘ arcat, din exterior, ˆın timp ce FPGA-ul funct¸ioneaz˘ a sub programarea (sub informat¸ia) din unul din planele de memorie (contextul curent). Organizarea planelor de memorie de reconfigurare este prezentat˘ a ˆın Figura 4.27-d. Cont¸inutul unui plan de configurare i, i ≤ i ≤ k, se aplic˘ a la liniile de bit (sub forma unui cuvˆ ant foarte lung > 10 5 bit¸i) ¸si acest cont¸inut se va ˆınscrie ˆın celulele de memorie M ale planului ˆın momentul cˆ and se activeaz˘ a semnalul de selectare, Wi . Citirea unui plan de memorie ¸si transformarea acestuia ˆın context curent se face prin activarea liniei de cuvˆ ant respective, W i ; prin tranzistoarele de trecere, comandate prin activarea liniei Wi , cont¸inutul celulelor de memorie se aplic˘ a la liniile de bit, iar pe frontul activ al semnalului de ceas, CLK, se ˆınscrie ˆın latch-urile D care fixeaz˘ a noul context. O alt˘ a modificare a unui circuit FPGA, pentru a fi transformat ˆıntr-un circuit

605

CAPITOLUL 4. SUPORTUL CIRCUISTIC PENTRU APLICAT ¸ II

CLB

CLB

CLB

CLB

CLB

CLB

CLB

CLB

Trasee pentru interconectare

µ

CLB CLB

CLB

CLB

CLB

CLB

CLB

Iesire memorata O1

registru

CLB

De la CLB Matrice pentru interconexiuni

CLB

a)

b)

ãä åæåç èæèé

la CLB−uri si resursele de interconectare

CLB−uri si resursele

Contextul curent

de interconectare

QM Q

QM Q

D

D

CLK

Configuratie SRAM (Context 1)

ö÷øùúû

Context 2

W1 Selectare Context 1

ÝÞßàáâ

W2 Selectare Context 2

Wk Selectare Context k

M

½¾

M

ÍÎ

M

¿À

M

M

­®

¯°

M

ÏÐ

³´

ðæðñ òæêë òó ôæìí îæôõ îï

±² ¸· »¼ ¹º ÃÄ Á ÇÈ ËÌ ÉÊ ÓÔ

ÑÒ ×Ø ÛÜ ÙÚ

QM Q D M

µ¶

M

ÅÆ

M

ÕÖ

linii de bit

Context k c)

O2 Iesire directa

d)

Configuratie/Date de la memoria externa/utilizator

Figura 4.27 Circuitul FPGA cu timp multiplexat TM-FPGA: a) organizarea matriceal˘ a a unui circuit FPGA ¸si extensia acesteia la un TM-FPGA (b) prin ad˘ augarea pe ie¸sirea fiec˘ arui CLB a unui microregistru; c) reprezentarea intuitiv˘ a a planelor de memorie de reconfigurare (contexte); d) structurarea circuitelor din component¸a planelor de reconfigurare.

606

4.8. COMBINAT ¸ IONAL SAU SECVENT ¸ IAL?

TM-FPGA, este introducerea microregistrelor. La ie¸sirea fiec˘ arui CLB se ata¸seaz˘ a un num˘ ar de k celule bistabile (microregistru) egal cu num˘ arul de plane de memorie de configurare, Figura 4.27-b. ˆIn urma funct¸ion˘ arii unui CLB, fiind configurat cu un context, valoarea logic˘ a generat˘ a se poate obt¸ine direct la ie¸sire, ie¸sirea notat˘ a cu O2 , sau se ˆınscrie ˆın una dintre celulele bistabil ale microregistrului. Microregistrul memoreaz˘ a valorile ie¸sirilor unui CLB (atˆ at cele combinat¸ionale cˆ at ¸si cele secvent¸iale) pentru a fi p˘ astrate dup˘ a ce contextul FPGA-ului a fost schimbat. ˆInscrierea ie¸sirilor CLB-ului ˆın microregistre poate fi validat˘ a prin acela¸si semnal de ceas care se aplic˘ a ¸si CLB-urilor. O valoare de ie¸sire dintr-un CLB, memorat˘ a ˆın microregistru poate fi aplicat˘ a (evident printr-o rutare prin interconexiunile programabile) la intrarea aceluia¸si CLB sau la un altul, pentru contextul urm˘ aror sau pentru un context ulterior. Rezult˘ a c˘ a microregistrul este suportul prin care se pot comunica semnale generate de FPGA ˆıntre dou˘ a contexte consecutive (comunicare adiacent˘ a) sau ˆıntre dou˘ a contexte separate de mai multe tacturi de ceas (comunicare direct˘ a). Implementarea unui circuit pe FPGA poate fi distribuita pe cˆ ateva CLB-uri, pe un ˆıntreg circuit FPGA sau chiar pe cˆ ateva circuite FPGA, aceasta depinzˆ and de dimensiunea circuitului de implementat. O astfel de utilizare se reduce la o abordare spat¸ial˘ a a FPGA-ului pentru c˘ a nu se consider˘ a aspectul temporal al utiliz˘ arii resurselor implicate (LUT-uri, matrice de conectare, trasee de interconectare, elemente de memorare). O abordare temporal˘ a a FPGA-ului consider˘ a o reutilizare ˆın timp ale acestor resurse, adic˘ a cu ce frecvent¸a˘ maxim˘ a, f max , aceste resurse pot fi reutilizate (ˆın timp), dar asigurˆ and o funct¸ionare corect˘ a a funct¸iei implementat˘ a. Frecvent¸a maxim˘ a de reutilizare depinde de timpul minim de propagare, τ pmin , prin lant¸ul de resurse implicate ˆın implementarea funct¸iei, f max ≤ 1/τpmin . Utilizarea unui FPGA ˆın regim de timp multiplexat se bazeaz˘ a tocmai pe aceast˘ a reutilizare a resurselor (schimbarea contextului) cu o frecvent¸a˘ de pˆ an˘ a la f max ; deci TM-FPGA utilizeaz˘ a atˆ at abordarea spat¸ial˘ a cˆ at ¸si cea temporal˘ a ¸si ˆın acest fel utilizarea resurselor cre¸ste pˆ an˘ a la capacitatea maxim˘ a (pentru circuitul implementat scade D(n) dar cre¸ste T (n)). Dificultatea care se ridic˘ a, la utilizarea unui circuit TM-FPGA, este g˘ asirea partaj˘ arii/distribuirii optime a funct¸iei de implementat, fie ˆın abordarea combinat¸ional˘ a fie ˆın cea secvent¸ial˘ a, pe resursele utilizabile repetat (prin schimbarea contextelor). Pentru o implementare ca circuit combinat¸ional funct¸ia de realizat se partajeaz˘ a ˆın subfunct¸ii (subcircuite), fiecare subcircuit trebuie s˘ a fie implementat pe resursele existente ale FPGA-ului care sunt comandate de c˘ atre un context; prin comutarea contextelor, al c˘ aror num˘ ar este egal cu num˘ arul de subfunct¸ii ce proceseaz˘ a funct¸ia respectiv˘ a. De exemplu, ˆın Figura 4.28-a este prezentat˘ a o funct¸ie sub forma unui grafic aciclic orientat compus din ¸sase noduri (A, B, C, D, E, F ) la care se aplic˘ a la intrare variabilele x3 , x2 , x1 , x0 ¸si genereaz˘ a ie¸sirea y. Se poate partaja ˆın patru subcircuite (1,2,3,4), nodurile (de procesare) din fiecare subcircuit se repartizeaz˘ a pe resursele circuitului TM-FPGA ¸si sunt controlate printr-un context. Modul cum cele patru contexte, ˆın succesiunea 1,2,3,4, sunt repartizate celor patru subfunct¸ii este reprezentat pe organizarea din Figura 4.28-b; schimbarea contextelor corespunde liniilor vericale trasate ˆıntrerupt. Comunicarea adiacent˘ a de semnale se realizeaz˘ a la schimbarea contextelor prin intermediul microregistrului. Pentru comunicarea direct˘ a de semnale, ˆıntre contexte neadiacente, semnalele sunt memorate ˆın celule buffer (care

607

CAPITOLUL 4. SUPORTUL CIRCUISTIC PENTRU APLICAT ¸ II

Subcircuit 1 x0 x1

Subcircuit 2

E

Subcircuit 3

Subcircuit 4

F G

x2 x3 a) Context 1 x0 x1

E

A

B

D

y

C

X

Context 2

Context 3

Context 4

F

Context 1 x0 x1

G x2

D

Context 2

E

y

Context 3

Context 4

F G

D

y

x2 A

B

C

A

x3

x3

b)

c)

B

C

Figura 4.28 Partajarea grafului unei funct¸ii pentru implementarea pe un TM-FPGA: a) graful aciclic direct¸ionat al funct¸iei ¸si partajarea ˆın subfunct¸ii/subcircuite; maparea subcircuitelor pe contexte cu trei celule buffer (b) pentru comunicarea direct˘ a de semnale; cu dou˘ a celule buffer (c).

sunt celuleale microregistrului). De exemplu, pentru comunicarea ˆıntre nodurile A, E, din contextul 1, cu nodul G din contextul 3 semnalele care se transmit sunt p˘ astrate ˆın cele dou˘ a celule buffer pe durata contextului 2 (celulele buffer sunt figurate prin dreptunghiuri desenate cu linie ˆıntrerupt˘ a), iar pentru comunicarea semnalului ˆıntre nodul F din contextul 2 cu nodul D din contextul 4 este introdus˘ a celula buffer din contextul 3, deci ˆın total 3 celule buffer. Printr-o alt˘ a repartizare a subfunct¸iilor pe contexte se obt¸ine organizarea din Figura 4.28-c, care a redus num˘ arul de celule buffer la doi. Num˘ arul de celule buffer (care sunt celule ale microregistrelor) pe implementare poate constitui un criteriu de optimizare. Pentru implementarea ca circuit secvent¸ial partajarea este, ˆıntr-o prim˘ a abordare, aproape direct˘ a care rezult˘ a din analiza grafului de tranzit¸ie al st˘ arilor/ie¸sirilor sau organigrama ASM. ˆIntr-o organigram˘ a ASM pentru fiecare perioad˘ a de ceas corespunde (se activeaz˘ a) doar un bloc de stare, Figura 3.15-d, deci fiec˘ arui bloc de stare ˆıi va corespunde ˆın implementare un context (mapare unu-la-unu ˆıntre blocuri de stare ¸si contexte); num˘ arul contextelor fiind egal cu num˘ arul st˘ arilor din organigrama ASM (aceast˘ a abordare simpl˘ a poate fi util˘ a doar atunci cˆ and numarul st˘ arilor este

4.9. COMPARAT ¸ IE ˆ INTRE DIFERITELE ˘ ¸ I DE PROGRAMARE MODALITAT

608

mai mic decˆ at num˘ arul contextelor din TM-FPGA). La trecerea dintr-o stare ˆıntr-o stare urm˘ atoarea se comut˘ a pe contextul st˘ arii urm˘ atoare, mai mult, se poate utiliza chiar codul st˘ arii urm˘ atoare, calculat la sfˆ ar¸situl st˘ arii prezente, pentru selectarea contextului urm˘ ator. Comunicarea informat¸iei ˆıntre dou˘ a st˘ ari (codul st˘ arii urm˘ atoare care devine stare prezent˘ a) se realizeaz˘ a prin intermediul microregistrelor. Aceast˘ a partajare simpl˘ a apare datorit˘ a faptului c˘ a funct¸ionarea unui automat se bazeaz˘ a pe calculul st˘ arii urm˘ atoare care apoi se aplic˘ a la intrare ca stare prezent˘ a, ceea ce corespunde cu operarea ˆın timp multiplexat la FPGA. Exist˘ a ¸si alte modalit˘ a¸ti de partajare, a unui circuit secvent¸ial, care nu sunt restrict¸ionate de aceast˘ a mapare unu-la-unu [Chang 0 99].

4.9

COMPARAT ¸ IE ˆINTRE DIFERITELE ˘ ¸ I DE PROGRAMARE MODALITAT

Progresele permanente ˆın tehnologiile circuitelor integrate, evident¸iate prin legea lui Moore, a determinat ˆın consencint¸a˘ ¸si obt¸inerea de performant¸e la limita tehnologic˘ a, evident, aceste performant¸e trebuind s˘ a justifice costul ridicat al noilor tehnologii (Legea lui Gordon Moore(1965): “num˘ arul de tranzistoare integrate pe unitatea de suprafat¸˘ a ˆıntr-un circuit integrat se dubleaz˘ a ˆın ,, fiecare an ; ˆın ultimii ani aceast˘ a cre¸stere exponent¸ial˘ a, dup˘ a puterile lui doi, s-a diminuat ajungˆ and la dubl˘ ari la intervale de 1,5 ani sau chiar mai mari). O evolut¸ie a principalelor dimensiuni specifice tehnologiei CMOS este dat˘ a ˆın tabelul din Figura 4.29-a. Evolut¸ia unor dimensiuni ˆın tehnologia CMOS Anul Caracteristica a)

1999 0,14 14 800

Lungimea de canal [µm]  Num˘ ar de tranzistoare milioane cm2 Suprafat¸a cipului [mm2 ] Capatibilitate de implementare/

b)

realizare

2001 0,12 16 850

2003 0,10 24 900

logie

rata

asigu

ehno prin t

2006 0,07 40 1000

2009 0,05 64 1100

2012 0,03 100 1300

Diferenta productivitatii de proiectare

ici EDA)

ceruta prin proiectar e(tehn

ani

Figura 4.29 Evolut¸ii: a) a unor dimensiuni specifice tehnologiei de integrare CMOS; b) a capabilit˘ a¸tilor de implementare ¸si proiectare pentru aplicat¸ii De asemenea, evolut¸ia de pˆ an˘ a acum a circuitelor integrate a ar˘ atat c˘ a posibilit˘ a¸tile de implementare disponibile ˆıntr-o nou˘ a tehnologie care acum se dezvolt˘ a vor dep˘ a¸si

609

CAPITOLUL 4. SUPORTUL CIRCUISTIC PENTRU APLICAT ¸ II

cerint¸ele de implementare derminate de abord˘ arile prin proiectare (prin tehnicile EDA); aceast˘ a asert¸iune referit˘ a prin –diferent¸a productivit˘ a¸tii de proiectare– este redat˘ a ˆın Figura 4.29-b. ˆIn aceast˘ a figur˘ a este dat˘ a evolut¸ia ˆın timp atˆ at a capabilit˘ a¸tii de implementare asigurat˘ a de tehnologie cˆ at ¸si a capabilit˘ a¸tilor de realizare cerute de c˘ atre proiectare/realizare. ˆIn tehnologia CMOS, odat˘ a cu coborˆ area caracteristicii de proces sub 100nm, devine din ce ˆın ce mai scump˘ a ¸si num˘ arul de defecte cre¸ste. Cre¸sterea num˘ arului de defecte apare din ce ˆın ce mai pregnant, pe lˆ ang˘ a defectele de fabricat¸ie/de proces, prin defecte de tip parametric (zgomot, ˆıntˆ arziere etc.). Cre¸sterea costului se datoreaz˘ a pe lˆ ang˘ a realizarea unui coeficient de recolt˘ a sc˘ azut (procentul de circuite funct¸ionale obt¸inute din totalul de circuite intrate ˆın fabricat¸ie) ¸si datorit˘ a cre¸sterii costului de proiectare (timp de proiectare, instrumente EDA mai costisitoare). Fort¸at de aceste considerente ˆın realizarea de circuite suport pentru aplicat¸ii a ap˘ arut conceputul de structuri regulate. Aceste structuri creaz˘ a circuite cu o anumit˘ a regularitate, pe partea logic˘ a ¸si pe partea de interconectare, ˆıntˆ alnit˘ a la circuitele standard, dar, ˆın plus, ofer˘ a ¸si unele facilit˘ a¸ti de ASIC, ˆın consecint¸a˘ rezultˆ and un tip de ASIC cu pret¸ sc˘ azut (vezi VPGA). Circuistica suport ˆın abordarea aplicat¸iilor este destul de extins˘ a, de la circuitele logice discrete pˆ an˘ a la circuitele de tip full-custom. O structurare a acestei circuistici suport este prezentat˘ a ˆın Figura 4.30-a. ˆIn sect¸iunea 4.1 s-a specificat c˘ a prin ASIC se ˆınt¸elege un circuit dedicat la a c˘ arui finalizare, pe lˆ ang˘ a turn˘ atoria de siliciu, intervine ¸si beneficiarul prin proiectare semicustom. ˆIn structurarea din aceast˘ a figur˘ a not¸iunea de ASIC acoper˘ a toate circuitele (full-custom, semicustom ¸si circuitele PLD (field programmed)) care realizeaz˘ a o aplicat¸ie specific˘ a/dedicat˘ a; ˆın literatur˘ a aria de acoperire a not¸iunii de ASIC este destul de larg˘ a. Un criteriu prin care s˘ a se decid˘ a care mod de proiectare este optim pentru o Suport circuite pentru aplicatii

Circuite logice standard

PLD

SPLD

ASIC

Arii de porti logice

CPLD

Celule standard

Full−custom

FPGA

Figura 4.30 Reprezentarea suportului circuistic (tehnologia) pentru abord˘ arile de proiectare ale sistemelor logice.

4.9. COMPARAT ¸ IE ˆ INTRE DIFERITELE ˘ ¸ I DE PROGRAMARE MODALITAT

610

aplicat¸ie este dificil de exprimat, ˆın general decizia se ia ˆın funct¸ie de un set de caracteristici asigurate de o anumit˘ a proiectare. ˆIn acest sens ˆın Tabelul 4.3 se prezint˘ a un set de caracteristici pentru fiecare dintre modurile de proiectare expus ˆın acest capitol (abordarea cu circuite logice discrete a fost prezentat˘ a ˆın sect¸iunea 2.3). De asemeanea, aceste caracteristici nu au fost date prin valori absolute ci prin valori relative; este mai important˘ a, ˆın prima etap˘ a de selectare a tehnologiei de implementare, o cunoa¸stere a ordon˘ arii relative a acestor caracteristici pentru fiecare tehnologie de implementare urmˆ and apoi, dup˘ a selectare, s˘ a se determine dac˘ a valorile absolute satisfac. Tabelul 4.3 Caracteristici ale diferitelor tipuri de proiectare Caracteristici Dimensiunea celulei Tipul de celul˘ a Plasamentul celulelor Interconexiunile Num˘ ar de ma¸sti Aria

Tehnologia(Tipul de circuit) Componente Circuit Arie de Celule CPLD FPGA discrete full-custom port¸i standard fix˘ a variabil˘ a fix˘ a fix˘ a fix˘ a (ˆın˘ alt¸imea) circuite variabil˘ a fix˘ a variabil˘ a programabil˘a programabil˘a diferite variabil variabile foarte mare

variabil

fix

variabile variabile toate m˘ a¸stile m˘ a¸stile de rutare redus˘ a moderat (compact)

pe linii

fix

fix

variabile programabile programabile toate 0 0 m˘ a¸stile moderat moderat mare (redus˘ a)

Densitate medie ridicat˘ a medie medie sc˘ azut˘ a sc˘ azut˘ a (port¸i/chip) U¸surint¸a ˘ de foarte bun˘ a bun˘ a sc˘ azut˘ a redus˘ a redus˘ a bun˘ a (programabilitate) (reconfigurabil) Gradul de foarte experient¸a ˘ al sc˘ azut mediu mediu sc˘ azut sc˘ azut ridicat proiectantului Timpul de zile/ luni/ s˘ apt˘ amˆ ani/s˘ apt˘ amˆ ani/ ore/ ore proiectare s˘ apt˘ amˆ ani (an) luni luni zile Investit¸ia sc˘ azut˘ a/ mare medie medie sc˘ azut˘ a sc˘ azut˘ a init¸ial˘ a medie Performant¸a foarte sc˘ azut˘ a/ medie bun˘ a bun˘ a sc˘ azut˘ a (viteza) bun˘ a (medie) Recomandat mici/ foarte mici mari mari mari mici pentru serii medii (prototipuri) Cost/ foarte mic/ ridicat/ mediu mic ridicat unitate∗ mic (mediu) (mediu) ∗ Depinde pronunt¸at de volumul de product¸ie (costul relativ indicat corespunde pentru valori de serie specificate ˆın rˆ andul anterior)

Capitolul 5

Bibliografie [Bryant 0 92] Bryant E. Randy: ”Symbolic Boolean Manipulation with Ordered Binary-Decision Diagram”. ACM Computing Surveys, Vol. 24, No. 3, september 1992. [Cocan 0 01] Cocan Moise, Pop Bogdana: Bazele Matematice ale Sistemelor de Calcul. Editura Albastr˘ a, Cluj, 2001. [Cˆ arstea 2000] Cˆ arstea Horia, Construct¸ia ¸si tehnologia Echipamentelor Electronice. Editura Politehnic˘ a Timi¸soara, 2000. [Creang˘ a 0 73] Creang˘ a I., Reischer C., Simonovici D.: Introducere Algebric˘ a ˆın Informatic˘ a. Teoria Automatelor. Editura Junimea, Ia¸si, 1973. [Chang 0 99] Douglas Chang, Marek-Sadowska Malgorzata: ”Partitioning Sequetinal Circuit on Dynamically Reconfigurable FPGAs” in Transactions on Computers, vol. 48, No. 6, june 1999. [Chen 0 03] Chen Eai-Kai (editor), Logic Design. CRC Press, 2003. [Chinnery 0 02] Chinnery David, Keutzer Kurt: Closing the Gap Between ASIC & Custom. Kluwer Academic Publishers, Boston, 2002. [Floyd 0 90] Floyd Thomas, Digital Fundamentals. Fourth Edition, Merryl Publishing Company, Torronto, 1990. [Friedman 0 01] Friedman G., Eby: ”Clock Distribution Networks in Synchronous Digital Integrated Circuits”, in Proceedings of the IEEE, Vol. 89, No. 5, pp. 665-690, May 2001. [Green 0 85] Green David: Modern Logic Design. Addison-Westley Publishing Company, 1985. [Greenlaw 0 98] Greenlaw Raymond, Hoover H. James: Fundamentals of the Theory of Computation-Principles and Practice. Morgan Kaufmann Publishers Inc., San Francisco, 1998. 611

612 [Gont¸eanu 0 96] Gont¸eanu Aurel, B˘ ab˘ ait¸a˘ Mircea: Structuri Logice Programabile. Aplicat¸ii. Editura de Vest, Timi¸soara, 1996. [Hennesy 0 98] Hennesy L.I., Petterson, A. D.: Computer Organisation and Design - The Hardware/Software Interface. 1998, Morgan Kaufmann Publishers Inc., San Fransico, California. [Kang 0 96] Kang S., Lebleblici Y., CMOS Digital Integrated Circuits: Analysis and Design. The McGraw-Hill Company Inc., 1996. [Lerouge 0 04] Lerouge Christoph: ”L0 International Technology Roadmap for Semiconductors” in Sciences Physiques-Nanoscience, Microelectronique, Materiaux, Jullet 2004, No. 12. [Lewin 0 92] Lewin D., Protheore D.: Design of Logic Systems. Champmann&Hall Publishing, London, 1982. [Matei 0 93] Matei S., N˘ asl˘ au P.: Elemente de Logic˘ a Matematic˘ a ¸si Algebre Boolene. Universitatea Tehnic˘ a Timi¸soara, 1993. [Mead 0 80] Mead C., Conway L., Introduction to VLSI Systems. Reading, MA, Addison-Wessley Publishing Company, 1980. [Maican 0 99] Maican Sanda: Circuite Integrate Digitale. Editura PRIMTECH, Bucure¸sti, 1999. [Mano 0 02] Mano, Morris: Digital Design. Prentice Hall International, London, 2002. [Mure¸san 0 02] Mure¸san T., Gont¸ean A., B˘ ab˘ ait¸a˘ M., Demian P.: Circuite Integrate Numerice - Aplicat¸ii ¸si Proiectare. Editura de Vest, Timi¸soara, 2002. [Nicula 0 00] Nicula Dan: Proiectarea Sistemelor Digitale Implementate cu Dispozitive Programabile. Editura Tehnic˘ a, Bucure¸sti, 2000. [Omandi 0 94] Omandi R. Amos: Computer Arithmetic Systems - Algorithms, Architecture and Implementation. Prentice Hall International (UK) Publishing, 1994. [Oberman 0 78] Oberman R. M.: Num˘ ar˘ atoare Electronice. Editura Tehnic˘ a, Bucure¸sti, 1978. [Petterson 0 96] Petterson A. D., Hennesy L. I.: Computer Architecture - A Quantitative Approach. 1996, Morgan Kaufmann Publishers Inc., San Francisco, California. [Parker 0 98] Parker P. Kenneth: The Boundary - Scan Handbook. Kluwer Academic Publishers, 1998, London. [Sange 0 02] Sandige Richard: Digital Design Essentials. Prentice Hall, 2002. [Smith 0 97] Smith M. I. S.: Application Specific Integrated Circuits. 1997, AddisonWesley Publishing Company.

CAPITOLUL 5. Bibliografie

613

[Spira 0 71] Spira P. M.: ”On Time Hardware Complexity Tradeoff for Boolean Functions”, in Proceedings of Fourth Hawaii International Symposium on System Science, pp. 525-527, 1971. [Sutherland 0 99] Sutherland I., Sproull B., Harris D.: Logical Effort. Morgan Kaufmann Publishers, 1999. [S ¸ tefan 0 91] S¸tefan Gheorghe: Funct¸ii ¸si Structur˘ a ˆın Sistemele Digitale. Editura Academiei Romˆ ane, Bucure¸sti, 1991. [S ¸ tefan 0 93] S¸tefan Gheorghe: Circuite Integrate Digitale. Editura DENIX, Bucure¸sti, 1993. [S ¸ tefan 0 97] S¸tefan Gheorghe: Circuit Complexity, Recursion, Grammars and Information. Universitatea Transilvania din Bra¸sov, Bra¸sov, 1997. [S ¸ tefan 0 00] S¸tefan Gheorghe: Circuite ¸si Sisteme Digitale. Editura Tehnic˘ a, Bucure¸sti, 2000. [S ¸ tefan 0 92] S¸tefan Gheorghe, Bistriceanu V.: Circuite Integrate Digitale. Probleme. Proiectare. Editura Didactic˘ a ¸si Pedagogic˘ a, Bucure¸sti, 1992. [Toac¸se 0 96] Toac¸se G., Nicula D.: Electronic˘ a Digital˘ a. Editura Teora, Bucure¸sti, 1996. [Vl˘ adut¸iu 0 89] Vl˘ adut¸iu Mircea, Cri¸san Marius: Tehnica Test˘ arii Echipamentelor Automate de Prelucrarea Datelor. Editura Facla, Timi¸soara, 1989. [Wakerly 0 01] Wakerly John: Digital Design - Principle and Practice. Third Edition, 2001, Prentice Hall. [Weste 0 01] Weste N. H. E., Eshraghian K.: Principle of CMOS VLSI Design. Second Edition, 1993, Addison-Westley Publishing Company. [Yarbrough 0 97] Yarbrough, John: Digital Logic - Application and Design. West Publishing Company, Minniapolis, 1997.

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF