PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf...

22
Proiectare Logică 2 ============================================= Capitolul 17 Sinteza sistemelor digitale 17.1 Etapele sintezei unui sistem digital Se numește sistem digital (digital system) orice sistem care primește la intrare un set de mărimi cu valori binare ce reprezintă numere (operanzi) sau comenzi utilizate pentru procesare, păstrare și transmisie și oferă la ieșire rezultate reprezentate de asemenea sub formă binară. Din punctul de vedere al utilizatorului, un sistem digital poate fi considerat o cutie neagră adica un sistem la care se cunoaşte doar relaţia dintre intrare şi ieșire dar nu se cunoaşte structura. Un astfel de sistem poate fi reprezentat ca în Fig. 17.1. Fig. 17.1 Detaliind intrările, putem pune în evidență 3 categorii: - Comenzi externe – care pot modifica funcția realizată de sistem la un moment dat. - Operanzi – date ce urmează să fie prelucrate/păstrate/transmise de către sistem. - Informații de stare – reacții de la ieșirile schemei, utilizate pentru a permite schemei controlul asupra propriei funcționări. Aceste trei categorii de intrări sunt reprezentate în Fig. 17.2.

Transcript of PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf...

Page 1: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

Capitolul 17

Sinteza sistemelor digitale

17.1 Etapele sintezei unui sistem digital Se numește sistem digital (digital system) orice sistem care

primește la intrare un set de mărimi cu valori binare ce reprezintă numere (operanzi) sau comenzi utilizate pentru procesare, păstrare și transmisie și oferă la ieșire rezultate reprezentate de asemenea sub formă binară.

Din punctul de vedere al utilizatorului, un sistem digital poate fi considerat o cutie neagră adica un sistem la care se cunoaşte doar relaţia dintre intrare şi ieșire dar nu se cunoaşte structura. Un astfel de sistem poate fi reprezentat ca în Fig. 17.1.

Fig. 17.1

Detaliind intrările, putem pune în evidență 3 categorii: - Comenzi externe – care pot modifica funcția realizată de sistem la un moment dat. - Operanzi – date ce urmează să fie prelucrate/păstrate/transmise

de către sistem. - Informații de stare – reacții de la ieșirile schemei, utilizate

pentru a permite schemei controlul asupra propriei funcționări. Aceste trei categorii de intrări sunt reprezentate în Fig. 17.2.

Page 2: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

operanzi

Comenzi externe

rezultate

SD

Informatii de stare

Fig. 17.2

Din punctul de vedere al proiectantului, putem spune că, exceptȃnd primele etape ale procesului de proiectare, un sistem digital nu mai reprezintă o cutie neagră, ci un sistem cu o structură bine definită.

Vom considera sistem digital orice reuniune de circuite

numerice combinaţionale sau secvenţiale care interacţionează pe baza unui algoritm pentru realizarea unor obiective bine definite.

Această definiție scoate în evidență că funcționarea unui sistem

digital are la bază un algoritm riguros definit. Sinteza directă a unui sistem digital folosind metodele discutate

anterior este foarte dificilă iar în multe situații chiar imposibilă. Din această cauză este necesară descompunerea schemei bloc prin punerea în evidență a unor subsisteme care realizează un număr mic de funcții bine definite precum și a semnalelor care asigură legătura între aceste subsisteme. Acest proces de decompoziție funcțională îl vom numi rafinarea schemei bloc. În cazul general pot exista mai multe etape de rafinare.

Există mai multe posibilități de rafinare a unei scheme bloc, rezultatele depinzȃnd de experiența proiectanților, tehnologiile avute în vedere pentru implementare, restricții legate de viteza de lucru, gabarit, disipare de energie etc.

Un caz particular de decompoziție, foarte util în multe situații, îl reprezintă divizarea blocului inițial în două module, ca în Fig. 17.3.

Page 3: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

Schema de execuție (SE) realizează prelucrarea operanzilor pe baza unui algoritm și poate fi o schemă combinațională sau secvențială.

Schema de comandă și control (SCC) sau controlerul materializează algoritmul de prelucrare a operanzilor. Controlerul este o schemă logică secvențială sincronă.

Fig. 17.3

Există două strategii de abordare a procesului de sinteză. Sinteza top-down presupune ca punct de plecare schema bloc a

întregului sistem care va fi rafinată în pași succesivi pȃnă cȃnd subsistemele obținute pot fi sintetizate direct sau există deja circuite sau blocuri ce pot fi utilizate pentru implementare.

Sinteza buttom-up consideră că se cunosc subsistemele implementabile și se pune problema reunirii acestora astfel încȃt să rezulte un circuit cu funcțiile specificate.

În practică cele două metode pot fi utilizate simultan. În continuare va fi prezentată în detaliu abordarea top-down

deoarece este cel mai des utilizată. Principalele etape ale sintezei top-down a unui sistem digital

sunt:

comenzi interne

SCC SE

TACT

comenzi externe

operanzi

rezultate

informatii de stare

Page 4: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

E1. Pornind de la necesităţile formulate de beneficiar se alcătuieşte specificaţia de proiect care conţine în detaliu funcţiile pe care trebuie să le realizeze sistemul, condiţiile concrete de lucru, durata, succesiunea, nivelul de activare, valorile tensiunilor semnalelor la intrare și ieşire. Se generează schema bloc a sistemului. Fiecare semnal trebuie să aibă un nume unic și se precizează obligatoriu logica de activare.

E2. Dacă sistemul iniţial are o complexitate prea mare, trebuie să realizeze foarte multe funcţii relativ independente sau algoritmul de comandă este prea complicat, se trece la punerea în evidenţă a unor subsisteme mai simple printr-un proces de decompoziţie funcţională care asigură pentru fiecare subsistem realizarea uneia sau mai multor funcţii conectate logic în mod natural.

E3. Se pun în evidență și semnalele prin care se interconectează aceste module. Fiecare dintre noile semnale are un nume unic dar în această etapă nu pot fi precizate logica de activare, nivelele de tensiune, putere sau durată.

Procesul de rafinare este în general un proces iterativ ce necesită mai multe etape succesive.

E4. Pentru fiecare subschemă din schema bloc finală se trece la punerea în evidență a schemei de execuție și a schemei de comandă și control.

E5. Folosind datele din cataloage se specifică resursele necesare sintezei fiecarei scheme de execuție.

E6. Se reface schema bloc a dispozitivului sintetizat precizând toate semnalele de interconectare cu nivelul de activare, durata, parametrii electrici.

E7. Se trece la descrierea formală a algoritmului de prelucrare folosind o metodă grafică sau un limbaj de descriere hardware (VHDL, Verilog, etc.).

E8. Se sintetizează schema de comandă prin una dintre metodele cunoscute (vezi paragraful 17.3).

E9. Se analizează funcționarea fiecărui subsistem conform specificațiilor de proiect.

E10. Se simulează funcționarea întregului bloc și în cazul în care se constată erori sau anomalii în funcționare, se reia proiectarea.

E11. Se trece la implementarea prototipului sistemului și la testele finale.

Page 5: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

Observație! În cadrul capitolului va fi abordată numai sinteza

unor blocuri simple ce nu necesită decompoziție funcțională. Accentul va fi pus pe sinteza controlerelor cu ajutorul diagramelor ASM.

17.2 Concepte de bază ale diagramelor ASM Diagramele ASM (Algorithmic State Machine Diagram)

prezintă o metodă grafică de descriere formală a algoritmului de comandă a unui sistem digital.

Elementele de bază ale unei diagrame ASM sunt: 1. Starea – este elementul central al oricărei diagrame ASM. Toate celelalte elemente sunt atașate unei stări. Simbolul este

reprezentat în Fig. 17.4a. Pentru starea inițială se va utiliza același simbol dar se va marca distinct eventualul semnal de inițializare asincronă a schemei Fig. 17.4b.

Fig. 17.4

Fiecare stare are alocată o cuantă de timp definită ca intervalul între două fronturi active ale impulsului de tact (fronturile pe care se realizează schimbarea stării) ca în Fig. 17.5. În felul acesta se poate controla riguros durata unor semnale. În cazul în care un semnal are o durată mai mare, este necesar să fie introduse stări suplimentare, pe durata cărora semnalul va ramâne activat.

Controlul duratei semnalelor la ieșire este o caracteristică foarte importantă a sintezei cu diagrame ASM, neglijată în sinteza clasică.

Page 6: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

Fig 17.5

2. Blocul ieșirilor necondiționate – conține numele comenzilor generate de controler, a căror activare se realizează pe durata unei stări indiferent de valorile intrărilor de comandă externe. Simbolul este reprezentat în Fig. 17.6a. Fiecare comandă are un nume care conține obligatoriu informații privind logica de activare a semnalului.

3. Blocul ieșirilor condiționate - conține numele comenzilor

generate de controler, a căror activare se realizează pe durata unei stări numai dacă valorile intrărilor de comandă externe îndeplinesc o anumită condiție impusă de algoritmul de comandă. Simbolul este reprezentat în Fig. 17.6b.

Fig. 17.6

4. Blocul de condiție – este simbolul în care se înscrie condiția a cărei realizare determină o anumită tranziție a stărilor și/sau activarea unor ieșiri condiționate. Simbolurile posibile sunt reprezentate în Fig. 17.7. În interiorul simbolului se înscrie numele unui semnal de test, o listă de nume de semnale de test sau o expresie logică. Pe fiecare ramură se notează dacă ramura corespunde realizării sau nerealizării condiției. Există mai multe notații posibile. În cadrul lucrării se vor utiliza valorile T (true) pe ramura corespunzatoare condiției îndeplinite și F (false) pe ramura corespunzătoare condiției neîndeplinite. Este foarte important să se stabilească corect legătura

a) b)

LOAD, SHIFT#

COM1, COM2#

Page 7: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 ============================================= între valoarea semnalului de test și valorile F și T. Dacă în blocul de test se înscrie numele unei variabile, atunci lui T îi corespunde valoarea de activare a semnalului iar lui F valoarea de activare complementată (valoare de inactivare). Dacă în blocul de test este înscrisă o expresie, atunci lui T îi este asociată valoarea logică 1 iar lui F valoarea logică 0.

Fig. 17.7

Observații! O1. Blocul ieșirilor necondiționate se plasează imediat după

simbolul stării, înaintea oricărui bloc de decizie. O2. Ieșirea dintr-un simbol de test trebuie să se facă pe un simbol

de ieșire condiționată sau pe un simbol de stare. Diagrama din Figura 17.8a este greșită. Forma corectă este cea din Fig. 17.8b.

Fig. 17.8

5. Arce - pentru interconectarea elementelor diagramei. Sensul săgeții indică tranziția stării.

Reuniunea tuturor obiectelor atașate unei stări (simbol de stare,

ieșiri, blocuri de test) formează un bloc al unei diagrame ASM.

XY# X,Y#FF TT

TFFT

c)

XF

T a)

F

T a)

START#F

T

A

START#F

T

A

a) b)

Page 8: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

În Fig. 17.9a este prezentată o diagramă ASM completă.

Blocurile aferente celor 3 stări sunt puse în evidență în diagrama din Fig. 17.9b.

Punerea în evidență a tuturor blocurilor dintr-o diagramă ASM este esențială pentru demararea procesului de sinteză a unei scheme de comandă și control.

Observații! O1. Orice ieșire a unui bloc trebuie să se termine pe un simbol

de stare. O2. Toate evenimentele implicate de simbolurile unui bloc

(tranziția stărilor, testarea condițiilor, activarea ieșirilor) trebuie să se desfășoare în cuanta de timp alocată stării.

O3. Dacă într-un bloc apar simboluri de test conectate în cascadă, condițiile sunt legate prin operatorul logic AND.

O4. Dacă într-un bloc apar simboluri de test conectate paralel, condițiile sunt reunite prin operatorul logic OR.

O5. Într-un bloc o ieșire nu poate să apară în același timp ca ieșire necondiționată și ca ieșire condiționată. Fig. 17.9a Fig. 17.9b

A

XF

Y#

T

C1 C2#

CB

C1 C2#

T F

INIT#

A

XF

Y#

T

C1 C2#

CB

C1 C2#

T F

INIT#

Page 9: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

17.3 Utilizarea diagramelor ASM în sinteza schemelor de comandă și control

La ora actuală sinteza cu diagrame ASM utilizează numai

bistabile tip D ceea ce simplifică mult procesul de sinteză cu prețul unei eventuale creșteri a complexității funcțiilor de excitație.

În funcție de nivelul de integrare a circuitelor utilizate pentru implementare, există mai multe metode de sinteză pornind de la diagramele ASM.

În acest capitol vor fi prezentate cȃteva metode tipice utilizate pentru sinteza cu circuite integrate pe scară mică și medie.

17.3.1 Metoda de sinteză directă Numărul variabilelor de stare și asignarea stărilor se realizează

ca la metoda clasică de sinteză a SLS prezentată în capitolul 15. Ordinea în care apar variabilele de stare și combinația asignată fiecărei stări se reprezintă pe diagramă.

Exemplu: În Fig. 17.10 se prezintǎ diagrama ASM din Fig. 17.9b completatǎ cu valorile variabilelor de stare asignate fiecǎrei stǎri.

Fig. 17.10

A

XF

Y#

T

C1 C2#

CB

C1 C2#

T F

INIT#y1y2

00

01 11

Page 10: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

Sinteza ieșirilor O expresie de condiție pentru o ieșire se generează în cadrul

fiecărui bloc după următoarele reguli: Dacă ieșirea este activată necondiționat în cadrul blocului,

expresia are valoarea 1. Dacă ieșirea este condiționată și este activată după realizarea

unei cascade de condiții, expresia are forma unui produs format din toate variabilele de test sau expresiile din blocurile de decizie, introduse în stare directă dacă pe calea respectivă apar cu 1 sau în stare complementată dacă pe calea respectivă apar cu 0 (produsul obținut trebuie să aibă pe calea analizată valoarea logică 1).

Dacă activarea ieșirii sintetizate se realizează pe mai multe căi, expresia de condiție finală va fi suma logică a expresiilor obținute pe fiecare cale.

Expresia finală a ieșirii se obține prin produsul logic între

codificarea stării și expresia de condiție. Dacă ieșirea se activează în mai multe stări se face suma logică a produselor logice între codificrea stărilor unde se activează ieșirea si expresia de condiție corespunzătoare.

Pentru ieșirile active pe nivel coborât, expresia finală a ieșirii, se complementează. Expresiile ieșirilor din exemplul dat se regăsesc în Fig. 17.11.

Fig. 17.11

Sinteza funcțiilor de excitație Pentru fiecare cale din bloc expresia de condiție se generează

înmulțind logic expresia corespunzătoare căii obținută după regulile prezentate la ieșire cu valoarea variabilei de stare corespunzătoare din starea următoare atinsă pe calea respectivă.

1)Y#(XC1 BA

1)Y#(XC2# CA

2121 )Y#(XC1 yyyy

2121 )Y#(XC2# yyyy

Page 11: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

Expresia de condiție finală se obține ca sumă logică a expresiilor de condiție de pe fiecare cale.

Deci, acolo unde variabila de stare pentru starea următoare, corespunzătoare unei fucții de excitație Di este 1, expresia lui Di se obține prin produsul logic între codificarea stării prezente și expresia de condiție finală.

Determinarea condițiilor în acest caz se poate realiza foarte simplu utilizȃnd tabelul de condiții cu structura din Fig. 17.12.

Fig. 17.12

La fel ca la sinteza SLS, numărul de variabile de stare ne indica numărul de bistabile tip D, pe care le folosim în implementarea mașinii secvențiale.

În cazul exemplului nostru având două variabile de stare y1, y2, avem și două bistabile D ca în Fig. 17.13.

D1, respectiv D2, sunt intrările în bistabile sau funcțiile de excitație.

R R

TACT

INIT#

D DQ Q

CLK CLK

D1 D2y1 y2

Q Qy1 y2

Fig. 17.13

Se completează tabelul de condiții, cu evidențierea codificării stărilor, pentru exemplul dat ca în Fig. 17.14.

S0

SP

...Su1

Suk

SU

... ... ...

Conditia de tranzitie

Page 12: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

Fig. 17.14

Expresiile pentru funcțiile de excitație din exemplu se determină folosind tabelul din Fig. 17.14 și sunt cele din Fig. 17.15.

Fig. 17.15

17.3.2 Metoda sintezei cu diagrame VEM

Numărul variabilelor de stare și asignarea stărilor se realizează ca la metoda clasică de sinteză a SLS prezentată în capitolul 15. Ordinea în care apar variabilele de stare și combinația asignată fiecărei stări se reprezintă pe diagramă. Pentru a simplifica procesul de sinteză, variabilele de stare vor fi considerate întotdeauna variabile externe în diagrama VEM iar semnalele de test vor apare ca variabile incluse în diagrama VEM. În acest caz fiecărei stări și implicit fiecărui bloc al diagramei ASM îi corespunde un pătrat avȃnd drept coordonate tocmai combinația variabilelor de stare asignată stării. Pentru sinteză se va utiliza cȃte o diagramă VEM pentru fiecare ieșire și pentru fiecare funcție de excitație. Sinteza ieșirilor

O expresie de condiție pentru o ieșire se generează în cadrul fiecărui bloc după regulile prezentate la Metoda Directă, din paragraful anterior.

)(XY#D1 21 yy

X)Y#XY#(XD2 2121 yyyy

Page 13: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 ============================================= Pentru ieșirile active pe nivel ridicat, în fiecare dintre pătratele corespunzătoare unei stări se introduc expresiile de condiție care conduc la activarea ieșirii. Pentru ieșirile activate necondiționat, în pătrat se introduce 1.

În patratele corespunzătoare combinațiilor redundante se va plasa "–" cu semnificația de valoare nedeterminată.

Pentru ieșirile active pe nivel coborât, putem considera inițial că ieșirea este activă pe nivel ridicat iar expresia obținută după minimizare se complementează.

Observație! Este posibil ca soluția obținută să nu fie minimă

dacă expresia de test nu a fost simplificată. Pentru a evita această situație, expresiile de test pot fi deduse și prelucrate înainte de a fi utilizate în diagrama VEM.

Sinteza funcțiilor de excitație Expresia de condiție se generează ca la Metoda Directă, din

paragraful anterior. Determinarea condițiilor în acest caz se poate realiza foarte

simplu utilizȃnd tabelul de condiții cu structura din Fig. 17.12. Exemplu: Se folosește pentru metoda cu diagrame VEM tot Fig.

17.10 completatǎ cu valorile variabilelor de stare asignate fiecǎrei stǎri.

Sinteza ieșirilor se realizeazǎ cu diagramele VEM din Fig. 17.16.

Fig. 17.16

XY#

01

-

y1

y20 1

0

1

C1

XY#

01

-

y1

y20 1

0

1

C2#

)Y#(XyyyC1 221 )XY#(yyyC2# 221

Page 14: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

Sinteza funcțiilor de excitație este realizatǎ cu ajutorul diagramelor VEM din Fig. 15.14.

Rezultatele minimizǎrilor sunt:

Fig. 17.17

17.3.3 Metoda sintezei cu multiplexoare

Această metodă de sinteză pentru ieșiri și funcțiile de excitație cu

module de tip multiplexor folosește câte un modul cu un număr de intrări de selecție egal cu numărul de variabile de stare.

Deci, pentru sinteză, variabilele de stare se pun pe selecțiile multiplexorului iar pe intrările de date se trec expresiile de condiție, astfel încât fiecare expresie se folosește pe intrarea care are același indice zecimal egal cu valoarea zecimală a codificării stării prezente.

Expresiile de condiție se determină la fel ca în paragraful anterior, al metodei de sinteză cu diagrame VEM.

Pentru exemplul prezentat anterior implementarea este dată în Fig. 17.17.

XY#

00

-

y1

y20 1

0

1

D1

XY#+XY#

00

-

y1

y20 1

0

1

D2

)(XY#yD1 2 (X)y)XY#Y#(XyD2 22

Page 15: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

Y

S1

S0

I0 I3I2I1y1

y2

C1

0 01XY#

Y

S1

S0

I0 I3I2I1y1

y2

D1

0 0XY#

Y

S1

S0

I0 I3I2I1y1

y2

0 01XY#

Y

S1

S0

I0 I3I2I1y1

y2

D2

0 00X

C2#

0

Fig. 17.17 17.3.4 Metoda sintezei cu memorii Memoriile servesc pentru implementarea funcțiilor de ieșire și de

excitație. Schema de principiu este cea prezentatǎ în capitolul 16. Pentru a simplifica procesele de sintezǎ analizǎ și depanare, variabilele de test se plaseazǎ pe intrǎrile de adresǎ inferioare iar variabilele de stare se plaseazǎ pe intrǎrile de adresǎ superioare. În felul acesta liniile aferente unei stǎri vor fi plasate grupat în tabelul ce reprezintǎ conținutul memoriei. Schema bloc generalǎ este prezentatǎ în Fig. 17.18.

Fig. 17.18

Memorie

Regstare

D1-Dn

Regiesiri

A0-Ak-1Variabile de test

Ak-Ak+n-1

Iesi ri lung i

Iesi ri scurte

y0-yn-1

TACT

Page 16: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

Funcțiile de ieșire și excitație se plaseazǎ convenabil pe ieșirile blocului de memorie. Precizarea conținutului memoriei se face direct din diagrama ASM inspectȃnd pe rȃnd toate cǎile care pleacǎ dintr-o stare. Fiecare linie corespunde unei cǎi. În fiecare celulǎ a liniei se introduce valoarea logicǎ a ieșirilor respectiv funcțiilor de excitație.

Asignarea stǎrilor se face ca la metodele precedente.

Exemplu: Se considerǎ SCC a cǎrei funcționare este descrisǎ prin diagrama ASM din Fig. 17.10. Pentru implementare se vor utiliza bistabile D sau un registru 74194 și o memorie PROM cu organizarea 32x8. Schema bloc este prezentatǎ în Fig. 17.19 iar conținutul memoriei este dat în Fig. 17.20.

Fig. 17.19

A0

A4

A3

A2

A1

CE

O0

O6

O5

O3

O2

O1

O7

O4 O3

D1

D2

C2#NC

NC

NC

NC

x

x

x

x

D0

D3

D2

D1

O2

O0

O1

y1

y2

C1C1*

C2#*

X

Y#

MEM

S0

S1

“1”

TACT

CLK

INIT#

CLR#

SN74194

Page 17: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

Fig. 17.20

17.3.5 Metoda sintezei cu decodificarea completǎ a stǎrilor (One-Hot)

Aceastǎ metodǎ se deosebește fundamental de toate celelalte metode prezentate anterior în sensul cǎ numǎrul variabilelor de stare este identic cu numǎrul stǎrilor. Fiecare stare este materializatǎ printr-un bistabil a cǎrui ieșire reprezintǎ variabila de stare atașatǎ stǎrii. Pentru a ușura înțelegerea funcționǎrii schemei, numele variabilei de stare atașatǎ unei stări va fi chiar numele simbolic al stǎrii.

La un moment dat un singur bistabil va putea fi activ (în starea 1) deoarece schema nu poate fi simultan în douǎ sau mai multe stǎri diferite.

A40

stare O0O1O2O3O4O5O6O7A0A1A2A300001000000

A0 000010001000 000011100100 000000111100 00001100000

B0 000011001000 000011000100 000011001100 000000000010 00000000101

-0 000000000110 000000001110 00000000001

C0 000000001010 000000000110 000000001111 00000000000

-1 000000001001 000000000101 000000001101 00000000000

-1 000000001001 000000000101 000000001101 00000000001

-1 000000001011 000000000111 000000001111 00000000001

-1 000000001011 000000000111 00000000111

y1 C2#C1D2D1Y#Xy2

00001111000011110000111100001111

Page 18: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

Observație! Schema va fi prevazutǎ obligatoriu cu un semnal de inițializare asincronǎ care va aduce bistabilul corespunzǎtor stării inițiale în starea 1 și toate celelalte bistabile în starea 0.

Deși numǎrul mare de bistabile face ca aceasta metodǎ sǎ parǎ neatractivǎ, în cazul implementării cu PLD ea este frecvent utilizatǎ datoritǎ unei proiectǎri mai simple. În multe situații, creșterea numǎrului de bistabile este compensatǎ de scǎderea complexitǎții funcțiilor de excitație. Pentru a simplifica și mai mult procesul de sintezǎ, se utilizeazǎ numai bistabile de tip D.

Pentru sinteza ieșirilor, pentru fiecare bloc se înmulțește logic variabila de stare aferentǎ blocului cu expresia condiției de activare a ieșirii în cadrul blocului. Expresia ieșirii se obține ca sumǎ logicǎ a expresiilor deduse pentru fiecare bloc. Expresia unei ieșiri active pe nivel coborȃt va fi complementatǎ.

Pentru sinteza funcțiilor de excitație se va utiliza tabelul de tranziție invers (Fig. 17.21) în care pentru fiecare stare se precizeazǎ stǎrile din care se poate tranzita în ea și condiția de tranziție.

Expresia pentru o funcție de excitație se va obține ca sumǎ logică între produsul numelui fiecǎrei stǎri care tranziteazǎ în starea analizatǎ cu expresia condiției de tranziție.

Fig. 17.21

Exemplu: Considerȃnd din nou diagrama ASM din Fig. 17.9b, rezultǎ imediat cǎ sunt necesare 3 bistabile tip D conectate ca în Fig. 17.22.

S0

SU

...Sp1

Spm

SP

... ... ...

Conditia de tranzitie

Page 19: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

Fig. 17.22

Analizȃnd diagrama rezultǎ imediat ecuațiile ieșirilor sub forma:

Pentru sinteza funcțiilor de excitație se va utiliza tabelul de

tranziție invers din Fig. 17.23.

Fig. 17.23

Ecuațiile funcțiilor de excitație au forma:

S RR

INIT#

DA DCDBA CB

D DD QQQ

TACT CLK CLKCLK

1B)Y#(XAC1

1C)Y#(XAC2#

X

Y#X

XY#

SU SP Condiţia de tranziţie

A

A

B 1

C 1

B A

C A

CBXADA Y#AXDB AXY#DC

Page 20: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

17.4 Sinteza VHDL a unui controler Pentru exemplificare vom considera controlerul descris cu

diagrama ASM din Fig. 17.10. Pornind de la aceastǎ diagramǎ, programul de sintezǎ va fi realizat în două variante: cu stări codificate binar (Fig. 17.24) și cu stări cu notație simbiolică (Fig. 17.26).

Pentru materializarea stǎrii se vor utiliza semnalele saStare_prezenta și saStare_urmatoare de tip STD_LOGIC_VECTOR(1 downto 0), pentru varianta cu stări codificate și de tip tStare declarat anterior ca un tip cu trei valori A, B, C, pentru varianta cu stări cu notație simbolică.

Prima instrucțiune concurentă (linia 39 în prima variantă, respectiv lina 41 în cea de-a doua variantă) are rolul de a determina starea urmǎtoare saStare_urmatoare în funcție de valorile semnalelor saStare_prezenta, iX și iYN. Fiecare tranziție din diagrama ASM îi corespunde o linie în tabelul din Fig. 17.14 și este prezentată în program printr-o linie de asiganare condiționată din intrucțiune (liniile 39-44, respectiv 41-46). Utilizarea instrucțiunii pentru fiecare caz în parte face ca descrierea sǎ fie naturalǎ ușor de citit și interpretat.

Cea de-a doua instrucțiune concurentă (linia 45-46 în prima variantă, respectiv lina 47-48 în cea de-a doua variantă), are ca obiectiv inițializarea dispozitivului la activarea comenzii iINITN și modificarea stǎrii prezente pe fiecare front pozitiv al impulsului de tact iClk.

Următoarele două instrucțiuni concurente de asignare (liniile 47-50 în prima variantă și respectiv 49-52 în cea de-a doua variantă) au ca rol determinarea valorilor de ieșire oC1 și oC2N în funcție de valorile semnalelor saStare_prezenta, iX și iYN, și care se pot deduce din relațiile din Fig. 17.11.

Programul de sintezǎ în VHDL folosind stări codificate binar este

cel din Fig. 17.24.

Page 21: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

Fig. 17.24 Rezultatul simulǎrii funcționale a schemei sintetizate în prima

variantă este prezentat în Fig. 17.25 și dovedește corectitudinea funcționǎrii.

Fig. 17.25 Programul de sintezǎ în VHDL folosind notația simbolică a

stărilor este cel din Fig. 17.26.

Page 22: PL2 cap17 updated - cs.ucv.rocs.ucv.ro/staff/edumitrascu/PSD/PL2_cap17.pdf · 3urlhfwduh /rjlf rshudq]l &rphq]l h[whuqh 6'uh]xowdwh,qirupdwll gh vwduh )lj 'lq sxqfwxo gh yhghuh do

Proiectare Logică 2 =============================================

Fig. 17.26 Rezultatul simulǎrii funcționale a schemei sintetizate în a doua

variantă este prezentat în Fig. 17.27 și dovedește corectitudinea funcționǎrii.

Fig. 17.27