CIRCUITE LOGICE PROGRAMABILE CPLD - ece.ubm.roece.ubm.ro/ea/cursuri/SCID/SCID3.pdf · 08.01.2013 4...

53
CIRCUITE LOGICE CIRCUITE LOGICE CIRCUITE LOGICE CIRCUITE LOGICE PROGRAMABILE PROGRAMABILE PROGRAMABILE PROGRAMABILE CPLD CPLD CPLD CPLD

Transcript of CIRCUITE LOGICE PROGRAMABILE CPLD - ece.ubm.roece.ubm.ro/ea/cursuri/SCID/SCID3.pdf · 08.01.2013 4...

CIRCUITE LOGICE CIRCUITE LOGICE CIRCUITE LOGICE CIRCUITE LOGICE

PROGRAMABILEPROGRAMABILEPROGRAMABILEPROGRAMABILE

CPLDCPLDCPLDCPLD

08.01.2013 2

CPLD = Complex PLDCPLD = Complex PLDCPLD = Complex PLDCPLD = Complex PLD

CPLD = colecŃie de PLD-uri individuale plasate într-o structur ă de interconectare programabil ă -arhitectură foldback

PLDun nivel de porŃi ŞIblocuri logice (macrocelule)

08.01.2013 3

CPLD CPLD CPLD CPLD ---- seria 9500seria 9500seria 9500seria 9500

Schema bloc CPLD

08.01.2013 4

CPLD CPLD CPLD CPLD ---- seria 9500seria 9500seria 9500seria 9500

Matricea de comutarecuprinde:

toate intrările din blocurile de I/O (intrările utilizator)

toate ieşirile blocurilor funcŃionale (FB)

prin programare, oricare dintre ele poate accesa oricare dintre FB

ieşirile din FB se pot conecta prin SI cablat - se economiseşte timp

CIRCUITE LOGICE CIRCUITE LOGICE CIRCUITE LOGICE CIRCUITE LOGICE

PROGRAMABILEPROGRAMABILEPROGRAMABILEPROGRAMABILE

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

08.01.2013 6

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

CaracteristicifrecvenŃă de la 80 MHznumăr de porŃi logice: peste 180.000reprogramare nelimitatăarhitectură matricială flexibilăcompatibilitate PCImemorie RAM dual port sincronă,

ultrarapidă ieşirile:

funcŃionează la 3,3Vcc sau la 5Vcc pun la dispoziŃie 12mA au control “slew rate”

08.01.2013 7

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

FPGALCA - Logic Cell Array - structură de celule

logice programabileBlocuri I/O - intrări şi ieşiri

08.01.2013 8

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

LCAtehnologie CMOSfuncŃiile interne ale tuturor celulelor -

identicefunc Ńiile configurate prin intermediul unor

celule de memorie SRAM (Static RAM) interconectarea (rutarea) celulelor în LCA

- controlată cu memorie SRAM

08.01.2013 9

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

CLB - Configurable Logic Block - celula logică programabilă din LCA3 generatoare (F, G, H) de func Ńii logice

combina Ńionale - realizate cu memorie SRAM

2 bistabili D , care comută pe front (la unele componente din familie pot fi configuraŃi ca latch-uri)

mai multe căi de multiplexare şi interconectare local ă programabile

13 intr ări şi 4 ieşiri

08.01.2013 10

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

CLB

08.01.2013 11

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

Blocul de intrare/ie şire (I/O)I/O pot fi configurate ca intrări, ieşiri sau

bidirecŃionale - PADbuffere de intrare şi ieşireI/O pot fi directe sau prin registrucontrol “slew rate” la ieşiri (viteza de

trecere de la starea Low la starea High şi invers)

control analog - rezistenŃe pentru legare la 0 sau 1 logic (50 - 100 kΩ)

08.01.2013 12

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

Buffere three-statefiecare CLB are asociată o pereche de

buffere 3-state

comandă semnalele de pe liniile lungi orizontale, de jos şi de sus, la fiecare CLB

implementează pe liniile lungi: bus-uri(unidirecŃionale sau bidirecŃionale), multiplexoare mari - salvare resurse

rezistenŃe la +Vcc pe aceste linii lungi permit şi funcŃii ŞI cablat

08.01.2013 13

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

Oscilatorul intern OSC4frecvenŃă nominală de 8 MHzfolosit în timpul configurării:

controlează întârzierea la punerea sub tensiune

configurează ştergerea memoriei

CCLK pt. configurare în mod Master

are şi un divizor de frecvenŃă pentru: 500KHz, 16KHZ, 490Hz şi 15Hz

08.01.2013 14

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

Arhitectura de interconectarefire metalice cu puncte de conexiuni

programabilematrice de conectarememorie de interconectare SRAM - fiecare

bit este dedicat controlului unui punct de conectare intern (PIP – ProgrammableInterconnection Point)

blocurile de I/O au un inel de rutare (VersaRing ) în jurul matricei CLB-urilor

08.01.2013 15

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

Tipuri de interconectareGeneral purpose interconnect

interconectarea se face printr-un caroiaj (linii verticale şi orizontale) de linii metalice situate între CLB-uri

linii de lungime mică

liniile se intersectează în matrice de comutare se permit ramificări multiple

08.01.2013 16

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

Tipuri de interconectareLong line interconnect

liniile se întind pe întreaga lungime sau lăŃime a circuitului

nu intră prin matricele de comutare

ideale pentru semnalul de CLK bufferele 3-state de lângă CLB-uri accesează

direct liniile lungi - se formează semnale de magistrală (bus) pt. a multiplexa ieşirile

08.01.2013 17

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

Structura de interconectare

08.01.2013 18

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

Tipuri de interconectare - după lungimea relativă a segmentelor :global (4 linii) - dedicate pt. Clocksingle (8 linii) - între blocuri adiacente -

altfel ⇒ matrice programabilă ⇒ întârzieredouble (4 linii) - între CLB la distanŃă dublă long (3 sau 6 linii) - nu trec prin matrice de

comutarequad (12 linii) doar la unele circuite din familie

octal (8 linii)direct (2 linii) - unidirecŃionale (ieşiri spre

CLB-urile din dreapta şi de jos)

08.01.2013 19

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

Matricea de conectare programabil ă (PMS)pentru liniile orizontale sau verticale,

“single” şi “double”fiecare punct de interconectare este

format din 6 tranzistori care pot fi programa Ńi

fiecare punct permite 6 posibilităŃi de conectare ⇒ diverse variante de legături

08.01.2013 20

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

Matricea de conectare programabil ă

08.01.2013 21

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

Conectare linii “single” şi “double”

08.01.2013 22

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

Conectare intr ări / ie şiri (VersaRing)8 linii duble (în dreptul a 2 CLB şi 4 I/O)4 linii lungi4 linii globale pe stânga şi dreapta

comandate de buffere primare BUFP sau secundare BUFS, aflate în fiecare colŃ al circuitului

în general utilizate pentru Clock

linii pt. decodificatoare

08.01.2013 23

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

Conectare intr ări / ie şiri

08.01.2013 24

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

Alimentarea FPGAdistribuită ca o reŃea

scădere a zgomotelor

izolare a I/O de partea de logică

inele separate de Vcc şi GND pentru driverele de I/O

decuplarea fiecărui pin de Vcc la planul de masă (GND) cu condensatoare de 1µF

08.01.2013 25

FPGA FPGA FPGA FPGA ---- seria 4000seria 4000seria 4000seria 4000

Alimentarea FPGA

CIRCUITE LOGICE CIRCUITE LOGICE CIRCUITE LOGICE CIRCUITE LOGICE

PROGRAMABILEPROGRAMABILEPROGRAMABILEPROGRAMABILE

FPGA FPGA FPGA FPGA ---- seria Spartanseria Spartanseria Spartanseria Spartan

08.01.2013 27

FPGA FPGA FPGA FPGA ---- SpartanSpartanSpartanSpartan

Familia Spartan în evoluŃie au fost create mai multe variante:

Spartan Spartan-II 2,5V Spartan-IIE 1,8V Spartan-3 Spartan-3E Spartan-3A Spartan-3AN Spartan-6

08.01.2013 28

FPGA FPGA FPGA FPGA ---- SpartanSpartanSpartanSpartan

Caracteristici generale număr de porŃi logice: de la 40.000 la 1.400.000 frecvenŃă: de la 80 MHz la 450 MHz tehnologie de la 0,18 microni la 45nm reprogramare nelimitată compatibilitate PCI versiuni la diverse tensiuni de alimentare LUT (Look-Up Table) - memorie RAM - pt. funcŃiile

combinaŃionale din CLB blocuri separate de memorie control pentru Clock opŃiuni 3-state pt. bus intern

08.01.2013 29

FPGA FPGA FPGA FPGA ---- Spartan 3Spartan 3Spartan 3Spartan 3

Arhitectura

08.01.2013 30

FPGA FPGA FPGA FPGA ---- Spartan 3Spartan 3Spartan 3Spartan 3

CLB 4 slice-uri grupate în perechi de 2 perechea stângă - funcŃii în plus:

memorare date pe 16 biŃi deplasare date în registre de 16 biŃi

08.01.2013 31

FPGA FPGA FPGA FPGA ---- Spartan 3Spartan 3Spartan 3Spartan 3

Slice-uri

08.01.2013 32

FPGA FPGA FPGA FPGA ---- Spartan 3Spartan 3Spartan 3Spartan 3

I/O DDR (Double Data Rate) - sincronizarea

semnalelor pe ambele fronturi ale Clock, crescător şi descrescător

foloseşte bistabilii pereche

08.01.2013 33

FPGA FPGA FPGA FPGA ---- Spartan 3Spartan 3Spartan 3Spartan 3

Multiplicatoare date pe 18 bi Ńi în complement fa Ńă de 2 poziŃionate lângă blocurile de RAM permit cascadarea

08.01.2013 34

FPGA FPGA FPGA FPGA ---- Spartan 3Spartan 3Spartan 3Spartan 3

Digital Clock Manager în general 4 la această familie

3 funcŃii: eliminare Clock-skew (prin defazare zero) multiplicare sau divizare frecvenŃe plecând de la

Clock-ul de intrare

posibilitatea defazării Clock-urilor de ieşire faŃă de cel de intrare

4 componente: DLL (Delay-Locked Loop), DFS (Digital Frequency Synthesizer), PS (Phase Shifter), Status Logic

CIRCUITE LOGICE CIRCUITE LOGICE CIRCUITE LOGICE CIRCUITE LOGICE

PROGRAMABILEPROGRAMABILEPROGRAMABILEPROGRAMABILE

FPGA FPGA FPGA FPGA ---- seria seria seria seria VirtexVirtexVirtexVirtex

08.01.2013 36

FPGA FPGA FPGA FPGA ---- VirtexVirtexVirtexVirtex

Familia Virtex mai multe variante:

Virtex 2,5V Virtex E 1,8V Virtex II Virtex IIPro şi IIProX Virtex 4 Virtex 5 Virtex 6 Virtex 7

08.01.2013 37

FPGA FPGA FPGA FPGA ---- VirtexVirtexVirtexVirtex IIProIIProIIProIIPro

Caracteristici - îmbun ătăŃiri prima familie de FPGA-uri care încorporează:

Multi Gigabit Transceiver (MGT) - RocketIO sau RocketIO X

procesor - IBM PowerPC 405 RISC CPU (405PPC)

tehnologie: 13 µm, 9 nivele, tranzistori de mare viteză de 90 nm

VccIN = 1,5V; VccAUX = 2,5V conectare - Active Interconnect Technology

08.01.2013 38

FPGA FPGA FPGA FPGA ---- VirtexVirtexVirtexVirtex IIProIIProIIProIIPro

Arhitectura

08.01.2013 39

FPGA FPGA FPGA FPGA ---- VirtexVirtexVirtexVirtex IIProIIProIIProIIPro

MGT (Multi Gigabit Transceiver) transceiver RockerIO - 3,125 Gb/s viteza

minimă de transfer serial al datelor pe un canal

transceiver RockerIO X - 6,25 Gb/s conversie paralel - serial şi serial - paralel

08.01.2013 40

FPGA FPGA FPGA FPGA ---- VirtexVirtexVirtexVirtex IIProIIProIIProIIPro

405 PPC (PowerPC RISC CPU) poate executa instrucŃiuni cu frecvenŃa de 1

instrucŃiune / ciclu caracteristici CPU :

implementează User Instruction Set Architecture (UISA) ale PowerPC şi extensii pt. aplicaŃii

32 registre generale de 32 biŃi (GPR) predicŃie statică a ramificaŃiilor majoritatea instrucŃiunilor - 5 stagii pipeline; execuŃie într-

un singur ciclu multiplicatoare / împărŃitoare hardware pt. aritmetică

binară (4 cicluri înmulŃirea, 35 cicluri împărŃirea)

08.01.2013 41

FPGA FPGA FPGA FPGA ---- VirtexVirtexVirtexVirtex IIProIIProIIProIIPro

405 PPC - schema bloc

08.01.2013 42

FPGA FPGA FPGA FPGA ---- VirtexVirtexVirtexVirtex IIProIIProIIProIIPro

405 PPC OCM (On Chip Memory) - controlul

memorării: unităŃi separate de memorie cache pentru

instrucŃiuni (ICU 16 MB) şi date (DCU 16 MB) 64K sau 128K bytes adresabili pentru date,

respectiv instrucŃiuni

interfaŃă de control logic pentru: Clock şi alimentare ciclul PLB (processor local bus) OCM

08.01.2013 43

FPGA FPGA FPGA FPGA ---- VirtexVirtexVirtexVirtex IIProIIProIIProIIPro

405 PPC interfaŃa cu FPGA

PLB - 32 biŃi de adresă; bus de date pe 64 biŃi DCR (Device Control Register) - bus pe 10 biŃi EIC (External Interrupt Controller) - 2 pini activi

pe nivel pentru întreruperi utilizator CPM (Clock/Power Management) - distribuire

Clock şi alimentare Reset - 3 intrări şi 3 ieşiri Debug

08.01.2013 44

FPGA FPGA FPGA FPGA ---- VirtexVirtexVirtexVirtex 4444

Caracteristici 3 familii :

LX - aplicaŃii logice

FX - soluŃii de aplicaŃii integrate (EmbeddedPlatform)

SX - aplicaŃii DSP (Digital Signal Processing)

08.01.2013 45

FPGA FPGA FPGA FPGA ---- VirtexVirtexVirtexVirtex 4444

Caracteristici foloseşte arhitectura ASMBL (Advanced

Silicon Modular Block) - aranjare pe coloane conŃine blocuri:

procesor PowerPC 405 + coprocesor (450 MHz) Tri-Mode Ethernet MAC (Media Access Control)

transceivere: 622Mb/s → 10+ Gb/s slice-uri dedicate DSP CMC (Clock Management Circuitry) - viteză mare

interfeŃe SelectIO Technology

08.01.2013 46

FPGA FPGA FPGA FPGA ---- VirtexVirtexVirtexVirtex 4444

Caracteristici tehnologie: 90 nm CMOS multiplicator de date pe 18 biŃi, cu semn, în

complement faŃă de 2 acumulator (48 biŃi) şi sumator/scăzător blocuri de memorie la 500 MHz logică programabilă opŃională pt. FIFO conectare ierarhică

08.01.2013 47

FPGA FPGA FPGA FPGA ---- VirtexVirtexVirtexVirtex 5555

Caracteristici 5 familii :

LX - aplicaŃii logice LXT - aplicaŃii logice cu conectivitate serială de

mare viteză

SXT - aplicaŃii DSP (Digital Signal Processing), plus conectivitate serială

TXT - densitate dublă la conectivitate serială FXT - soluŃii de aplicaŃii integrate (Embedded

Systems) cu conectivitate serială de mare viteză

08.01.2013 48

FPGA FPGA FPGA FPGA ---- VirtexVirtexVirtexVirtex 5555

Caracteristici foloseşte arhitectura ASMBL (Advanced Silicon

Modular Block)

FXT are procesor PowerPC 440 conŃine blocuri:

Tri-Mode Ethernet MAC (Media Access Control)

transceivere: 100Mb/s → 3,73 Gb/s slice-uri dedicate DSP 6 CMT (Clock Management Tiles) - 550 MHz interfeŃe SelectIO Technology

08.01.2013 49

FPGA FPGA FPGA FPGA ---- VirtexVirtexVirtexVirtex 5555

Caracteristici tehnologie: 65 nm CMOS,12 nivele pentru conectare, 1Vcc slice

4 LUT cu 6 intrări 4 bistabile multiplicator 25 x 18 sumator acumulator

blocuri de memorie 36 Kbit RAM/FIFO până la 1.200 I/O conectări dedicate pentru cascadare; conectare pe

diagonale monitorizare circuit

08.01.2013 50

FPGA FPGA FPGA FPGA ---- VirtexVirtexVirtexVirtex 6666

Caracteristici tehnologie: 40 nm CMOS,12 nivele pentru conectare, 1Vcc slice

4 LUT cu 6 intrări opŃiune dual LUT cu 5 intrări folosite ca RAM de 64 biŃi folosite ca registre de deplasare stânga-dreapta pe 32 biŃi

8 bistabile multiplicator 25 x 18 sumator acumulator slice-uri speciale pentru DSP (digital signal processing)

blocuri de memorie 36 Kbit RAM/FIFO până la 1.200 I/O conectări dedicate pentru cascadare; conectare pe

diagonale monitorizare circuit pt. alimentare şi temperatură

08.01.2013 51

FPGA FPGA FPGA FPGA ---- VirtexVirtexVirtexVirtex 7777

Caracteristici tehnologie: 28 nm CMOS, 1Vcc (opŃiune 0,9Vcc) slice

4 LUT cu 6 intrări opŃiune dual LUT cu 5 intrări folosite ca RAM de 64 biŃi folosite ca registre de deplasare stânga-dreapta pe 32 biŃi

8 bistabile multiplicator 25 x 18 sumator acumulator de 48 biŃi slice-uri speciale pentru DSP (digital signal processing)

blocuri de memorie 36 Kbit RAM/FIFO viteză tranceiver – până la 28 Gb/s 2 convertoare analog – digitale de 12 biŃi până la 1.200 I/O conectări dedicate pentru cascadare; conectare pe diagonale monitorizare circuit pt. alimentare şi temperatură

08.01.2013 52

CIRCUITE PROGRAMABILECIRCUITE PROGRAMABILECIRCUITE PROGRAMABILECIRCUITE PROGRAMABILE

Avantaje reduceri substanŃiale la:

dimensiuni consum de putere

creşteri substanŃiale pentru: viteza de operare viteza de reconfigurare

Provocare: dezvoltarea principiilor, uneltelor şi unificarea tehnologiilor actuale

08.01.2013 53

CIRCUITE PROGRAMABILECIRCUITE PROGRAMABILECIRCUITE PROGRAMABILECIRCUITE PROGRAMABILE

Aplica Ńii ştiinŃele naturii: biologie (ADN), fizică, chimie

telecomunicaŃii, wireless, reŃele, video şi DSP arhitecturi software radio

procesarea imaginilor prin arhitecturi reconfigurabile criptare/decriptare

pico sateliŃi operaŃii vectoriale (căutări, sortări, numere

aleatoare)