Sunteți pe pagina 1din 33

SISTEME CU CIRCUITE INTEGRATE

DIGITALE (EA II)


ELECTRONICA DIGITALA (CAL I)

Arii logice programabile de tip FPGA


Prof.univ.dr.ing. Oniga Ștefan
Field-Programmable Gate Array (FPGA)

– XC3S250E = Xilinx Spartan 3E-250 (~ 250.000 porți logice echivalente)


– BGA (ball grid array)
– Număr terminale: 256
– Viteză (Speed grade): 4C (C – uz comercial: 0-85 C°)
Principalii producatori de circuite FPGA

– Xilinx http://www.xilinx.com
– Altera http://www.altera.com (Intel FPGA)
– Actel http://www.actel.com
– Latice http://www.latticesemi.com/
– QuickLogic http://www.quicklogic.com/
Altera
XILINX FPGA
Familiile Xilinx FPGA
 Performanță ridicată  Cost scăzut
 Virtex (1998)  Spartan-II (2000)
 50K-1M kapu, 0.22µm
15K-200K kapu, 0.22µm

 
 Virtex-E/EM (1999)
  50K-4M kapu, 0.18µm
 Spartan-IIE (2001)
  50K-600K kapu, 0.18µm
 Virtex-II (1999)
  40K-8M kapu, 0.15µm • Spartan-3 (2003)
 50K-5M kapu, 90nm
 Virtex-II Pro/X (2002)
  50K-10M kapu, 0.13µm  Spartan-3E (2005)
 Virtex-4 (2004) [LX, FX, SX]   100K-1.6M kapu, 90nm
 50K-10M kapu, 90nm  Spartan-3AN (2006)
 Virtex-5 (2006) [LX, LXT, SXT]   50K-1.4M kapu, 90nm
 65nm
 Spartan-3A - DSP (2006)
 Virtex-5 FXT, TXT (2008)
  1.8M-3.4M kapu, 90nm
 65nm
 Virtex-6 LXT, SXT (2009)
 Spartan-6 LX, LXT (2009)
 40nm
 …
45nm

Virtex-7 (2011) Artix-7 (2011)


 28nm  28nm
Kintex-7 (2011)
28nm Zynq-7000 SoC (2012)
28nm
27
• Xilinx Virtex-7 2000T ~6.5 miliarde tranzistoare (2012 – 28nm), ~2 milioane celule logice.
• Xilinx Virtex-Ultrascale+ XCVU440 (2015 – 20nm->16nm) FPGA: ~20 milliarde
tranzistoare - ~4.4 milioane celule logice! (~ 50 milioane porți logice echivalente)
Structura generală a unui circuit FPGA

• CLB (LB): Configurable logic block


• IOB: Input/Output block
• PI: Programmable interconect
• DCM: Digital clock manager
Resurse dedicate in FPGA

• BRAM: memorii cu unul sau două porturi de tip Blokk-RAM, (~×100Kbyte


– ~×10Mbyte), capacitatea unui bloc de memorie 18K / 36 Kbites
• MULT sau DSP: multiplicatoare dedicate, sau operații de DSP MAC
(multiplicare - acumulare), (scăderi) și operații logice.
• Procesoare integrate:
– Procesoare configurabile (soft-processor)
• Exemple: Xilinx PicoBlaze, Xilinx MicroBlaze, Altera Nios II, etc.
– Integrate hardware (hard-processor)
• Exemple: IBM PowerPC 405/450 (Xilinx Virtex 2 Pro, Virtex-4 FXT, Virtex-5 FXT), ARM
Cortex- A9 (Xilinx Zynq, respectiv Altera: Cyclone V SoC, Arria V SoC, MicroSemi
Smartfusion-1,-2), etc.
Modalităţi de configurare

a.) SRAM
b.) MUX
c.) Antifuse – cristal amorf de Si polarizat la
20-30V se cristalizează și devine conductor
(OTP). Texas Instruments, Actel, QuickLogic
d.) Floating Gate
e.) EPROM/EEPROM/Flash
XILINX Spartan FPGA
Familia de circuite FPGA Spartan-3

• Opt membrii cu capacității între 50.000 şi cinci milioane de porţii logice


• Circuitele din această familie sunt realizate în tehnologie 90nm
• Frecvență de lucru de până la 185 MHz
Arhitectura familiei de circuite Spartan-3
Cinci elemente programabile: blocurile logice configurabile (CLB), blocurile de
intrare ieşire (IOB), blocurile de memorie RAM, blocurile de multiplicatoare şi
blocurile DCM.
• Blocurile logice configurabile. Elementele constructive care stau la baza acestora
sunt memoriile RAM bazate pe tabele de adevăr (LUT).
• Blocurile de intrare/ieşire (IOB). Fiecare IOB suportă flux de date bidirecțional
şi poate funcționa în mod tristate. Aceste blocuri suportă nu mai puţin de 26 de
standarde diferite de semnale, incluzând 8 tipuri de semnale diferențiale Dintre
cele mai uzuale tipuri de semnale suportate se pot aminti: LVCMOS, LVTTL, PCI
cu întreaga gamă de tensiuni aferente.
• Blocurile de memorie RAM furnizează un spațiu de stocare de 18 kbiţi, sub
forma unor blocuri de memorie de tip dual-port
• Blocurile de multiplicare acceptă la intrare două numere pe 18 biţi şi calculează
produsul acestora. Rezultatul va fi exprimat pe 36 de biţi.
• Blocurile DCM (Digital Clock Manager) furnizează soluţii digitale de
autocalibrare, distribuire, întârziere, multiplicare, divizare şi deplasarea fazei
pentru semnalul de clock.
Blocurile logice configurabile
• Sunt alcătuite din alte patru blocuri, aşa numite slice-uri. Slice-urile care sunt
grupate în perechi, fiecare pereche formând o coloană şi beneficiind de o linie de
carry independentă.
• Conțin două generatoare de funcţii logice, două elemente de stocare,
multiplexoare, logică de transport (carry) şi porţi logice

• Ambele perechi de slice-uri folosesc


aceste resurse pentru a implementa
funcţii logice, aritmetice şi de a stoca
date ca şi memorii de tip ROM.
• Perechea din stânga mai îndeplineşte
două funcţii suplimentare: stochează
date folosind memoria RAM distribuită
şi implementează registre de deplasare
pe 16 biţi.
Familia de circuite FPGA Xilinx
Blocurile logice configurabile
• Aceste funcţii suplimentare sunt implementate tot cu ajutorul generatoarelor de
funcţii sau aşa numitele tablele de adevăr (Look-up Table).
• Elementele de stocare de tip bistabil D pot fi configurate să lucreze atât pe front
cât şi pe nivel logic. Una din funcţiile lor este de a sincroniza datele cu semnalul
de clock.
• Fiecare slice are câte două multiplexoare, rolul acestora este de combina LUT-urile
între ele pentru a permite implementarea funcţiilor mai complexe.
Slice

 Look-Up Table configurabil:


 LUT-4 intrări (F,G)
 16x1-bit RAM sincron
 16-bit shift register
 Elemente de stocare
 Flip-flop de tip D, sau latch
 Alte circuite logice
 F5MUX multiplexer
 FiMUX multiplexer
 Unitate Aritmetică și logică
 Logică cary dedicată (CYSEL_,
CYMUX_, CY0_)
 Porți AND dedicate (GAND, FAND)

1
SLICE
1 CLB = 4 slice (Spartan-3E) = 2-2 SLICEM-SLICEL

Slice”M”: M, ca element de memorie: Slice”L”: L, ca circuit logic:


• A.) LUT-4: Logică de 4 variabile • -.) Doar LUT-4!
• B.) RAM16: Distributed RAM – • D.) MUX dedicat
din registre 16x1-bit, • E.) Logică de Carry
• C.) SRL16: Shift Register 16x1-bit
2
Look-Up Tables (LUTs)
• LUT4 = Memorie de 16x1 bit, numite și generatoare de funcții (FGs)
– Adresa = combinația variabilelor funcției
– Conținut dat de tabelul de adevăr al funcției
– Generează orice funcție de 4 variabile
• Întârzierea prin LUT este constantă
Carry OUT
Comb. OUT

L
U Carry
T 4 FF OUT
+ FF
LUT
I MUX
N

MUX IN

Carry IN
Blocurile de multiplicare dedicate
Evită consumul de LUT-uri pentru implementarea înmulțirilor și cresc performanțele

• Operații cu numere cu semn în complement față de doi pe 18-biți


• Optimizat pentru implementarea operațiilor de multiplicare și acumulare
• Multiplicatoarele sunt plasate fizic lânga memoriile block SelectRAM™

Data_A
(18 bits)
4 x 4 cu semn
8 x 8 cu semn
18 x 18 Output
Multiplier (36 bits) 12 x 12 cu semn
18 x 18 cu semn
Data_B
(18 bits)
Blocurile IOB
Conectează circuitele din FPGA la componentele externe
• Calea de intrare IOB
– Doi regiștrii DDR Input
Reg DDR MUX
• Calea de ieșire OCK1
Reg
– Doi regiștrii DDR ICK1

– Doi regiștrii DDR cu 3 stări Reg


3-state
OCK2 Reg
• Semnale de clock și clock ICK2

enable separate pentru I și O


• Semnalele de Set și reset sunt Reg DDR MUX
OCK1
comune PAD
Reg
OCK2 Output
Standarde de I/E
Pinii de I/E FPGA pot fi configurați pentru a suporta multe tipuri de standarde

• Permit conexiunea directă la semnale externe de tensiuni și praguri variate

• Standarde de semnale diferențiale suportate


– LVDS, BLVDS, ULVDS
– LDT
– LVPECL
• Standarde I/O asimetrice suportate
– LVTTL, LVCMOS (3.3V, 2.5V, 1.8V, and 1.5V)
– PCI-X at 133 MHz, PCI (3.3V at 33 MHz and 66 MHz)
– GTL, GTLP
– etc!
Spartan-6 FPGA

CLB
Memory Controller
I/O
CMT MGT
BUFG
BUFIO PCIe Endpoint

Block RAM

DSP48
Spartan-6 Cel mai mic consum
de putere total

• Tehnologie 45 nm
• Consum de putere redus în regim static
• Consum de putere redus în regim dinamic
• Lower IO power
• Două familii: LX și LXT

Basic Architecture 26
Spartan-6 LX / LXT FPGAs

** All memory controller support x16 interface, except in CS225 package where x8 only is supported
CLB-urile din FPGA Spartan-6
• CLB-urile conțin 2 Slice-uri
• Conectate la matricea de
comutare (switch matrix)
pentru conectare la
celelalte resurse ale FPGA
• Lanțul de transport (Carry
chain) conectat vertical
numai prin Slice0
Trei tipuri de slice-uri în
FPGA-urile Spartan-6
• SLICEM: Slice complet
– LUT poate fi utilizat atât pentru logică cât și ca SLICEX
memorie/SRL
– Are o varietate mare de multiplexoare și carry chain SLICEM
• SLICEL: Numai pentru operații logice și
aritmetice
or
– LUT poate fi utilizat pentru logică (nu și pentru
memorie)
– Varietate mare de multiplexoare și carry chain SLICEX
• SLICEX: Numai logică
– LUT poate fi utilizat pentru logică (nu și pentru SLICEL
memorie)
– Fără varietate mare de multiplexoare și carry chain
Slice-urile logice Spartan-6
SliceM (25%) SliceL (25%) SliceX (50%)

▪ LUT6 ▪ LUT6 ▪ LUT6


▪ 8 Regiștri ▪ 8 Regiștri ▪ Optimizat pentru logică
▪ Carry Logic ▪ Carry Logic ▪ 8 Regiștri
▪ Varietate mare de Multiplexoare ▪ Varietate mare de Multiplexoare
▪ Logică RAM / SRL distribuită

Mix de Slice-uri pentru balanța optimă între Cost, Consum de putere și


Performanță
Basic Architecture 30
Evoluția familiei Virtex®

Virtex-6
40-nm
Virtex-5
65-nm
Virtex-
4 90-nm
Virtex-II Pro
130-nm
Virtex-II
150-nm
Virtex-E
180-nm
Virtex
220-nm

1st Generation 2nd Generation 3rd Generation 4th 5th Generation 6th Generation
Generation

Delivering Balanced Performance, Power, and Cost


Basic Architecture 31
Virtex-6 Base Platform 31
Seria 7 de circuite FPGA Xilinx
• Consum minim de putere
• Trei noi dispozitive inovative dpdv. al consumului scăzut, performanță-capacitate și preț-
performanță

Basic Architecture 32
Sub familiile Virtex-7
• Familia Virtex-7 are mai multe sub-familii
– Virtex-7: Logică generală
– Virtex-7XT: Multe blocuri DSP și bloc RAM
– Virtex-7HT: Cea mai mare lățime de bandă pentru transmisia serială
Virtex-7 FPGA Virtex-7 XT FPGA Virtex-7 HT FPGA

Logic
Block RAM
DSP
Parallel I/O
Serial I/O

• Densitatea logică ridicată • Densitatea logică ridicată • Densitatea logică ridicată


• Conectivitate serială ridicată • Conectivitate serială ridicată • Conectivitate serială de viteză
• DSP îmbunătățit foarte mare (Ultra High-Speed)
Xilinx Announces the World's Largest FPGA
Featuring 9 Million System Logic Cells
SAN JOSE, Calif., Aug. 21, 2019 /PRNewswire/ -- Xilinx, Inc. (NASDAQ: XLNX), the leader in
adaptive and intelligent computing, today announced the expansion of its 16 nanometer (nm)
Virtex® UltraScale+™ family to now include the world's largest FPGA — the Virtex UltraScale+
VU19P. With 35 billion transistors, the VU19P provides the highest logic density and I/O count
on a single device ever built, enabling emulation and prototyping of tomorrow's most
advanced ASIC and SoC technologies, as well as test, measurement, compute, networking,
aerospace and defense-related applications.
The VU19P sets a new standard in FPGAs, featuring 9 million
system logic cells, up to 1.5 terabits per-second of DDR4
memory bandwidth and up to 4.5 terabits per-second of
transceiver bandwidth, and over 2,000 user I/Os. It enables
the prototyping and emulation of today's most complex SoCs
as well as the development of emerging, complex algorithms
such as those used for artificial intelligence, machine
learning, video processing and sensor fusion. The VU19P is
1.6X larger than its predecessor and what was previously the
industry's largest FPGA — the 20 nm Virtex UltraScale 440
FPGA.

34

S-ar putea să vă placă și