280 likes | 414 Views
Curs 08 Implementarea fun cţiilor logice în dispozitivele reconfigurabile. Implementarea fun cţiilor logice în dispozitivele CPLD. Semnale de intrare. Arie programabila de porti logice SI (planul logic SI). Bloc alocare a termenilor produs. porţi SAU. Macrocelule. Termeni produs.
E N D
Curs 08Implementarea funcţiilor logice în dispozitivele reconfigurabile
Semnale de intrare Arie programabila de porti logice SI (planul logic SI) Bloc alocare a termenilor produs porţi SAU Macrocelule Termeni produs Functii logice combinationale Functii logice secventiale / combinationale Structura unui bloc logic
+VDD +VDD +VDD R R R termen produs termen produs termen produs Aria programabilă de porţi logice ŞI în tehnologie EPROM intrare intrare intrare
un semnal de intrare intră în componenţa unui termen produs, dacă tranzistorul FAMOS aflat la intersecţia dintre linia care furnizează termenul produs şi coloana la care se aplică semnalul de intrare, este şters (neprogramat) • în termenul produs considerat apare valoarea negatăa semnalului de intrare.
+VDD R +VDD +VDD +VDD R R R Exemplu: F(A,B,C)=ABC+A’BC’+A’B’C+AB’C’ A B C ABC A’BC’ F A’B’C AB’C’
Implementarea funcţiilor logice complexe (de mai mult de 16 termeni produs) la dispozitivul PAL22V10 • macrocelulele învecinate sunt utilizate numai pentru rutarea termenilor produs suplimentari=> irosirea acestora • majorarea timpului de întârziere specific funcţiei logice generate, prin rutarea termenilor produs suplimentari încă o dată prin aria programabilă ŞI • mecanism inflexibil de alocare a termenilor produs
Optimizarea mecanismului de alocare a termenilor produs • unei macrocelule îi este alocat un număr fix şi redus de termeni produs. • unei macrocelule i se poate aloca un număr variabil de termeni produs suplimentari, care sunt cedaţi de alte macrocelule. • o macrocelulătrebuie să fie înzestrată cu posibilitatea de a ceda un număr variabil de termeni produs (nu neapărat pe toţi) şi poate fi utilizată simultan, atât la implementarea unei funcţii logice cât şi la cedarea termenilor produs neutilizaţi. • blocul de alocare a termenilor produs trebuie să ofere posibilitatea ca un termen produs să poată fi distribuit spre oricare macrocelulă a blocului logic. • blocul de alocare a termenilor produs trebuie să ofere posibilitatea ca un termen produs să poată fi partajat de toate macrocelulele blocului logic.
… … … … 0 1 0 1 0 1 0 1 MSTP MSTP MSTP MSTP spre MC de la macrocelula inferioară preset clock termen produs partajat clear spre macrocelula superioară spre MC spre MC MAX9000 Altera expandor paralel 1 • 5TP/MC • Mecanisme de alocare TP: • 1. expandor partajat. • 2. expandor paralel. • un TP partajat poate fi distribuit spre MC şi poate fi partajat de toate MC blocului logic. • un TP paralel este distribuit unui nr. limitat de MC (max.4); este utilizat de o singură MC - nu este partajat • flexibilitate medie: TP cedaţi de MC permit implementarea unei funcţii logice de max. 20 TP • macrocelulele nu sunt irosite pentru rutare 1tEXP Arie programabilă porţi ŞI spre MC 1 2tEXP 1 3tEXP F max 20 tp 0
2 0 1 0 2 1 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 2 0 1 2 0 1 1 0 2 spre macrocelula inferioară XC9500 Xilinx de la macrocelula inferioară tEXP 4 1 0 • 5TP/MC • Macenisme de alocare a TP: • - expandor paralel • + nu “blochează” MC pt. rutarea TP suplimentari • + un TP poate fi distribuit către oricare MC. • un TP nu poate fi • partajat de mai multe • MC 6 3 5 7 0 1 0 1 4 tEXP 1 0 0 1 1 preset 0 1 tEXP ‘1’ 0 1 2 ‘0’ spre macrocelulă 8 2 de la aria programabilă ŞI 9 clear F de max 90 tp sisteme asincrone clock oe de la macrocelula superioară spre macrocelula superioară
Cerinţe proiectare • selectarea tipului funcţiei logice generate: combinaţionale / secvenţiale: MUX + FF. • selectarea polarităţii funcţiei logice generate : inversor programabil (XOR). • selectarea sursei pentru semnalele de iniţializare: semnale de la pini / semnale exprimate în funcţie de variabilele sistemului (termeni produs) MUX . • selectarea sursei semnalului de ceas: semnale de la pini – sisteme sincrone / semnale exprimate în funcţie de variabilele sistemului (termeni produs) – sisteme asincrone MUX .
0 1 0 1 2 0 1 Macrocelula MAX9000 Altera CLEAR CLOCK 2 2 F comb. F secv. 0 1 CIO PR 1 D Q TP F FF 0 TP reg 1 0 1 EN preset compl 2 F/ F’ CL 3 … arie programabilă porţi ŞI MSTP 0 1 clock TP reg. F comb. clear VDD 1 0 4 MACROCELULA semnal reacţie spre aria programabilă ŞI locală
0 1 1 0 1 0 Macrocelula XC9500 Xilinx CLEAR/PRESET CLOCK 3 2 4 1 preset ‘1’ spre celula I/O 0 1 compl 0 1 2 PR ‘0’ … D Q FF BATP clock CL 2 3 clear MACROCELULA spre reţeaua de interconexiuni programabile
Implementarea funcţiilor logice în dispozitivele FPGAStructura Celulelor Logice
ROL: furnizează resursele logice necesare implementării elementelor combinaţionaleşi secvenţiale, blocurilor de calcul aritmetic, blocurilor de memorie de capacitate redusă ale unui sistem digital. • CLASIFICARE: • Celule Logice realizate pe bază de multiplexoare: • ACT Actel; pASIC – QuickLogic. • Celule Logice realizate pe bază de blocuri LUT (look-up table): • XC4000, Spartan, Virtex – Xilinx; FLEX10K, Cyclone, Stratix - Altera.
Celule Logice realizate pe bază de multiplexoare • Teorema lui Shannon: o funcţie logică de n variabile poate fi descompusă în două funcţii logice de n-1 variabile condiţionate de a navariabilă. • F(A, B, C,…) =A’FA’ (B,C,…)+A FA(B,C,…) • FA’ (B,C,…)=F(A,B,C,…)| A=‘0’ • FA(B,C,…)=F(A,B,C,…)| A=‘1’
Exemplu de aplicare a teoremei lui Shannon Forma generală a expresiei: S’×F|S=0+S×F|S=1 MUX2:1 S – semnal de selecţie F|S=0 – data aplicată pe intrarea 0 F|S=1 – data aplicată pe intrarea 1
Multiplexorul - generator de funcţii logice elementul de circuit funcţia generată expresia funcţiei logice A0, A1 – intrările de date 0, respectiv 1; S – semnalul de selecţie
Exemplu de implementare a unei funcţii logice pe Modulul Logic ACT1 Actel A B Model: Indicaţie: se caută 2variabile care apar atât în formă directă cât şi negată în termenii sumei. Nu este necesar ca ambele variabile să apară simultan în toţi termenii sumei, dar este necesar ca aceste variabile să apară sau în variantă directă, sau în variantă negată, în toţi termenii sumei.
Celule logice realizate pe bază de blocuri LUT B A celula LUT S1 S0 00 01 10 11 0 A B F(A,B) 0 0 0 0 1 0 1 0 0 1 1 1 celule memorie SRAM 0 F(A,B) MUX 0 1 exemplu de celulă LUT de 2 biţi nr. celule memorie=2N, N=nr. variabile ale functiei
Structura blocului logic configurabil XC4000 Xilinx Resurse logice utilizate pentru generarea funcţiilor logice combinaţionale
Structura blocului logic configurabil XC4000 Xilinx – generarea funcţiilor logice secvenţiale