sistemecu circuiteintegrate digitale - bel.utcluj.ro · circuite secventiale cu spld cpld...

24
Sisteme cu Circuite Integrate Digitale Arii logice programabile. Structuri PLA, PAL, CPLD si FPGA Prof. dr. ing. Sorin Hintea Departamentul Bazele Electronicii

Upload: others

Post on 09-Oct-2019

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Sisteme cu Circuite Integrate Digitale

Arii logice programabile. Structuri PLA, PAL, CPLD si FPGA

Prof. dr. ing. Sorin Hintea

Departamentul Bazele Electronicii

Page 2: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Obiective

Sisteme cu circuite integrate digitale – Arii logice programabile 2

Cunoasterea si familiarizarea cu circuitele logice programabile

Familiarizarea cu diferite clase de circuite logice programabile

PAL

PLA

Circuite secventiale cu SPLD

CPLD

Cunoasterea tehnicilor de programare a PLA

Familiarizarea cu FPGA

Page 3: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Cuprins

Sisteme cu circuite integrate digitale – Arii logice programabile 3

Dispozitive logice programabile

Definitii

Clasificare

Tehnici de programare

Simple Programmable Logic Devices

Conexiunea programabila

PLA

PAL

Circuite secventiale cu SPLD

CPLD

FPGA

Page 4: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Dispozitive Logice Programabile - definitii

Sisteme cu circuite integrate digitale – Arii logice programabile 4

Dispozitive logice programabile ( Programmable Logic Devices – PLD) – circuite

logice ale caror structura interna poate fi configurata de catre utilizator folosind metode

electrice ( de exemplu fisiere de configurare – “soft hardware”)

Configuratia circuitului – interconexiunile dintre componente pentru care circuitul

realizeaza functia dorita

elementul cheie a PLD – Conexiunea programabila

Motivatia: functionalitate versatila intr-un singur circuit integrat

Aplicatii:

reutilizarea circuitului (hardware reuse)

prototipare rapida

Page 5: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Sisteme cu circuite integrate digitale – Arii logice programabile 5

Dispozitive Logice Programabile – clasificare

Programmable

Logic

Factory programmable

devices

Field programmable

devices

memorie

ROM

MPGA

mask

programmable

gate array

SPLD

simple

programmable

logic device

CPLD

complex

programmable

logic device

FPGA

field

programmable

gate array

memorie

PROM

PLA

programmable

logic array

PAL

programmable

array logic

GAL

generic array

logic

Page 6: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Dispozitive Logice Programabile – tehnici de programare

Sisteme cu circuite integrate digitale – Arii logice programabile 6

Conexiune programabila - existenta unei conexiuni fizice intre 2 trasee este

stabilita electric de catre utilizator printr-un bit de configurare “c”

conexiune fizica

c

comutator

MOS

reprezentarea

clasica

reprezentarea

uzuala in PLD

Page 7: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Tehnici de programare - circuite programabile ireversibil

Sisteme cu circuite integrate digitale – Arii logice programabile 7

Circuite programabile ireversibil – programarea se realizeaza prin arderea unui

fuzibil sau antifuzibil plasat in punctul de conexiune

Fuzibil → material cu rezistivitate mica (scurt circuit), care se arde la trecerea unui

curent de valoare mare (in general are rol de protectie la supracurent)

prin arderea fuzibilului se realizeaza o intrerupere intre doua cai metalice

Antifuzibil → material dielectric care sub influenta unei tensiuni mari isi schimba

definitiv starea din rezistivitate mare (intrerupere) in rezistivitate mica (scurt circuit)

prin arderea antifuzibilului se realizeaza o conexiune intre doua cai metalice

metal

metal

antifuzibil

(dielectric)

Page 8: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Tehnici de programare - circuite reprogramabile

Sisteme cu circuite integrate digitale – Arii logice programabile 8

Circuite reprogramabile: alternativa la programarea cu fuzibil sau antifuzibil

pentru a permite stergerea configuratiei:

folosesc memorii nevolatile de tip EPROM sau EEPROM

EPROM – configuratia este stearsa neselectiv, prin iradiere cu raze ultraviolete

printr-o fereastra de quarz

EEPROM – configuratia este stearsa selectiv pe cale electrica, sub influenta

unui camp vertical puternic

solutia EEPROM este mai ieftina

Page 9: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Tehnici de programare

Sisteme cu circuite integrate digitale – Arii logice programabile 9

Circuite configurabile in mod dinamic – bitul de configurare a comutatorului

MOS sau a portii de transmisie este citit dintr-o memorie SRAM (bistabil)

Informatia de configurare poate fi obtinuta dintr-o memorie ROM externa sau

din fisierul de programare descarcat de pe un calculator

In-System configuration – reconfigurarea este permisa in timpul operarii

Page 10: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Sisteme cu circuite integrate digitale – Arii logice programabile 10

Simple Programmable Logic Devices (SPLD)

Circuite programabile cu n intrari si m iesiri

implementeaza m functii de n variabile

Contin o arie SI si o arie SAU – logica pe 2 nivele

PLA – ariile SI si SAU ambele programabile

PAL – arie SI programabile si arie SAU fixa

memoria PROM – in implementarea logicii combinationale, se echivaleaza cu

un SPLD cu arie SI fixa si arie SAU programabila

arie

SI

arie

SAU

...

...

...

I0

I1

In

O0

O1

Om

n intrari m iesiri

k linii intermediare

Page 11: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Sisteme cu circuite integrate digitale – Arii logice programabile 11

Programmable Logic Array (PLA)

PLA – circuit programabil cu n intrari si m iesiri implementat cu o arie

programabila SI si o arie programabila SAU

Implementeaza “sume de produse”

Exemplu:

5 produse → 5 porti SI

4 sume → 4 porti SAU

f0 = ab’ + a’c

f1 = a’c + b

f2 = ab’ + abc’

f3 = b + ac

Page 12: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Sisteme cu circuite integrate digitale – Arii logice programabile 12

Programmable Array Logic (PAL)

PAL – circuit programabil cu n intrari si m iesiri implementat cu o arie

programabila SI si o arie fixa SAU

Mai ieftin decat PLA deoarece nu necesita programarea ariei SAU

Mai putin versatil decat PLA

Exemplu: sumator complet

Sum = x’y’Cin + x’y’Cin’ + xy’Cin’ + xyCin

Cout = xCin + yCin + xy

Page 13: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Sisteme cu circuite integrate digitale – Arii logice programabile 13

Circuite secventiale cu SPLD

SPLD cu logica pe doua nivele au fost extinse prin adaugarea unor bistabile si

legaturi de reactie – two-level-logic-plus-register

Aplicatii: automate secventiale, automate de stare

Exemplu – automat secvential

Q2 Q1 Q0 D2 D1 D0

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

1 0 0

0 1 0

X X X

0 0 1

1 1 0

X X X

1 1 1

0 1 1

00 01 11 10

0

1

Q2Q1

Q0

1 X 1 1

X

D2

00 01 11 10

0

1

Q2Q1

Q0

X

1

1

1 X

D0

D2 = Q0’

D1 = Q2 + Q1’Q0

D0 = Q1

Page 14: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Sisteme cu circuite integrate digitale – Arii logice programabile 14

Circuite secventiale cu SPLD

D2 = Q0’

D1 = Q2 + Q1’Q0

D0 = Q1

D2 D1 D0

Q2 Q1 Q0

Page 15: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Sisteme cu circuite integrate digitale – Arii logice programabile 15

Complex Programmable Logic Devices (CPLD)

Circuite programabile de complexitate extinsa care pot implementa circuite

combinationale si secventiale cu o complexitate <10K porti

Structura CPLD

blocuri functionale → contine un SPLD la care se conecteaza mai multe

macrocelule

macrocelula → contine un bistabil si multiplexoare

arie de interconexiune

arie SI arie SAU

bistabile si multiplexoare

echivalent SPLDBloc functional

MC1 MC2 MC3 … MCn

arie de

inter-

conectare

Bloc functional

macrocelule

Bloc functional

MC1 MC2 MC3 … MCn

Bloc functional

MC1 MC2 MC3 … MCn

Page 16: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Sisteme cu circuite integrate digitale – Arii logice programabile 16

CPLD – structura

Blocul functional – PLD cu n intrari si m iesiri

Macrocelula – implementata cu un bistabil si 2 multiplexoare

MUX1 –selecteaza intre rezultatul sau complementul functiei logice

implementate in blocul functional

Bistabilul – sincronizeaza iesirea PLD cu un semnal de tact

MUX2 – selecteaza intre iesirea combinationala si iesirea sincrona

I0 In

...

I0

I1

A

Y D

ck

Q

I0

I1

A

Y Ok

Bloc functional

(PLD)

macrocelula

1 2

Selectie

programabila

Page 17: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

CLB CLB

CLB CLB

CLB CLB

CLB

CLB

CLB

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O...

...

...

...

...

I/OI/O I/O I/OI/O

I/OI/O I/O I/OI/O

Field Programmable Gate Array (FPGA)

Sisteme cu circuite integrate digitale – Arii logice programabile 17

FPGA – circuit integrat VLSI reconfigurabil, care contine o arie de blocuri logice

identice si interconexiuni programabile, si poate fi programat sa implementeze o serie

de functii logice cu o complexitate de milioane de porti → soft hardware

BLP – bloc logic

programabil

Resurse de

interconectare

I/O – bloc

programabil de

intrare/iesire

Page 18: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

FPGA – blocuri componente

Sisteme cu circuite integrate digitale – Arii logice programabile 18

BLP – bloc logic programabil → blocuri reconfigurabile dispuse intr-o topologie de

tip matrice, cu 8 – 30 blocuri de-a lungul unei axe, in total pana la 40M porti

I/O – bloc programabil de intrare / iesire → blocuri reconfigurabile dispuse la

periferia circuitului integrat, si realizeaza interfatarea FPGA

Resurse de interconectare → implementeaza interconexiunile programabile dintre

CLB si blocurile I/O: matrice de comutatie, puncte de conexiune programabile,

conexiune intre BLP adiacente

Resurse globale → memorie EEPROM/RAM/bistabile care stocheaza informatia

de reconfigurare, calea globala de tact, calea globala de reset

BLP BLP

BLP BLP

golbal RESETgolbal CLOCK

Page 19: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

FPGA – blocul logic programabil (BLP)

Sisteme cu circuite integrate digitale – Arii logice programabile 19

Configurable Logic Block (CLB) – denumirea uzuala in literatura Xilinx; Logic

Element (LE), 8-10 LE formeaza Logic Array Block (LAB) – Altera; VersaTile – Actel

Implementarea BLP cu Look-up Table (LUT): Xilinx Spartan/Virtex, Altera Cyclone

II/Apex II, QuickLogic Eclipse/PolarPro, Lattice Semiconductor ECP

LUT4 – memorie de tip EEPROM cu 4 linii de adresa; un LUT cu 4 intrari

implementeaza o functie logica cu 4 variabile

bistabil D – sincronizeaza iesirea LUT cu semnalul de tact global

MUX 2:1 – slecteaza intre iesirea combinationala si iesirea sincronizata cu

semnalul de tact (comanda se citeste din memoria EEPROM/RAM/bistabile)

Page 20: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

FPGA – blocul programabil de intrare / iesire (I/O)

Sisteme cu circuite integrate digitale – Arii logice programabile 20

Padul circuitului integrat e conectat la circuitul programabil de intrare/iesire

Calea de intrare sau iesire e conectata prin buffere programabile

Bistabilele D realizeaza sincronismul datelor cu tactul global, sau reset global

Multiplexorul selecteaza intre iesirea combinationala sau iesirea sincronizata

I/O

pad

D

ck

Q

R

D

ck

Q

R

I0

I1

A

Y

Input circuit

Output circuit

global clock

global reset

input enable

output enable

latched/combinatorial

combinatorial in

latched in

out

buffer

buffer

Page 21: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

FPGA – resurse de interconectare

Sisteme cu circuite integrate digitale – Arii logice programabile 21

interconexiuni generale → matrice de comutatie, punct de conexiune programabil

interconexiuni directe → conexiune intre BLP adiacente

interconexiuni la caile globale → calea globala de semnal, tact si reset

SRAM

Page 22: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

FPGA – aplicatii

Sisteme cu circuite integrate digitale – Arii logice programabile 22

Prototipuri → proiectare si testare rapida a unor concepte noi de sisteme digital,

proof of concept

Produs final in aplicatii de viteza medie → frecventa maxima de operare este de

150-200 MHz. FPGA permite update de software

Sisteme digitale reconfigurabile → sisteme cu functionalitate diferita la momente

diferite de timp, soft hardware

Circuite de interfatare intre module digitale diferite → glue logic

Coprocesor/Accelerator hardware → FPGA poate rula rutine/parti dintr-un algoritm

complex distribuit, avand ca efect cresterea vitezei sistemului digital

Page 23: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

FPGA – avantaje si dezavantaje

Sisteme cu circuite integrate digitale – Arii logice programabile 23

Avantaje FPGA

timp scurt si costuri reduse de dezvoltare a sistemelor digitale

modificare/extindere/corectare usoara a algoritmului

circuit integrat testat, nu pot interveni defecte de fabricatie

Dezavantaje FPGA

fecventa de operare scazuta → comutatoarele din calea de semnal introduc

intarzieri

densitate logica mica → arie mare

consum de putere mare

ciclul scurt de proiectare a sistemelor digitale creste riscul erorilor de

proiectare, datorita testari insufucuente

programarea FPGA cu SRAM necesita inscrierea memoriei la pornire →

necesita memorie PROM/EPROM/EEPROM aditionala

Page 24: Sistemecu CircuiteIntegrate Digitale - bel.utcluj.ro · Circuite secventiale cu SPLD CPLD Cunoasterea tehnicilor de programare a PLA Familiarizarea cu FPGA. Cuprins Sisteme cu circuite

Sisteme cu circuite integrate digitale – Arii logice programabile 24

Bibliografie

Rabaey J.M., Chandrakasan A., Nikolic B. Digital Integrated Circuits. A design perspective.

Prentice Hall, 2003.

Weste N.H.E, Harris D. CMOS VLSI Design. A Circuits and Systems Perspective. Pearson

Addison Wesley, 2005. http://www3.hmc.edu/~harris/cmosvlsi/4e/

C. H. Roth, L.K. John, “Digital System Design using VHDL”, Thompson Learning, New York,

2007.

H. Kaeslin, “Digital Integrated Circuit Design From VLSI Architecture to CMOS Fabrication”,

Cambridge University Press, 2008.

Ercegovac, M., Lang T., Moreno J. Introduction to Digital Systems. John Wiley &Sons Inc,

New-York, 1999

Sorin Hintea, Mihaela Cirlugea, Lelia Festila. Circuite Integrate Digitale. Editura UT Press,

Cluj-Napoca, 2005

Sorin Hintea. Tehnici de proiectare a circuitelor digitale VLSI. Casa Cartii de Stiinta. Cluj-

Napoca, 1998