Prof.univ.dr.ing. Oniga Ștefan
SISTEME CU CIRCUITE INTEGRATE
DIGITALE (EA II)
ELECTRONICA DIGITALA (CAL I)
Arii logice programabile de tip FPGA
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°)
– 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/
Principalii producatori de circuite FPGA
Altera
XILINX FPGA
Familiile Xilinx FPGA Performanță ridicată
Virtex (1998)
50K-1M kapu, 0.22µm
Virtex-E/EM (1999)
50K-4M kapu, 0.18µm
Virtex-II (1999)
40K-8M kapu, 0.15µm
Virtex-II Pro/X (2002)
50K-10M kapu, 0.13µm
Virtex-4 (2004) [LX, FX, SX]
50K-10M kapu, 90nm
Virtex-5 (2006) [LX, LXT, SXT]
65nm
Virtex-5 FXT, TXT (2008)
65nm
Virtex-6 LXT, SXT (2009)
40nm
Spartan-II (2000) 15K-200K kapu, 0.22µm
Spartan-IIE (2001) 50K-600K kapu, 0.18µm
• Spartan-3 (2003) 50K-5M kapu, 90nm
Spartan-3E (2005) 100K-1.6M kapu, 90nm
Spartan-3AN (2006) 50K-1.4M kapu, 90nm
Spartan-3A - DSP (2006) 1.8M-3.4M kapu, 90nm
Spartan-6 LX, LXT (2009) 45nm
27
Cost scăzut
…
Virtex-7 (2011)
28nm
Artix-7 (2011)
28nm
Zynq-7000 SoC (2012)
2 8 n m
Kintex-7 (2011)
2 8 n m
• 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, XilinxMicroBlaze, 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, MicroSemiSmartfusion-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
9
SLICE
Slice”M”: M, ca element de memorie:
• A.) LUT-4: Logică de 4 variabile• B.) RAM16: Distributed RAM –
din registre 16x1-bit,
• C.) SRL16: Shift Register 16x1-bit
Slice”L”: L, ca circuit logic:
• -.) Doar LUT-4!
• D.) MUX dedicat
• E.) Logică de Carry
1 CLB = 4 slice (Spartan-3E) = 2-2 SLICEM-SLICEL
2
0
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ă
4
LUTFF
Carry
+
MUX
L
U
T
I
N
Carry IN
Carry OUT
MUX IN
Comb. OUT
FF OUT
Blocurile de multiplicare dedicate
• 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™
18 x 18Multiplier
Output (36 bits)
Data_A (18 bits)
Data_B (18 bits)
4 x 4 cu semn
8 x 8 cu semn
12 x 12 cu semn
18 x 18 cu semn
Evită consumul de LUT-uri pentru implementarea înmulțirilor și cresc performanțele
Blocurile IOB
• Calea de intrare
– Doi regiștrii DDR
• Calea de ieșire
– Doi regiștrii DDR
– Doi regiștrii DDR cu 3 stări
• Semnale de clock și clock
enable separate pentru I și O
• Semnalele de Set și reset sunt
comune
Reg
Reg
DDR MUX
3-state
OCK1
OCK2
Reg
Reg
DDR MUX
Output
OCK1
OCK2
PAD
Reg
Reg
Input
ICK1
ICK2
IOB
Conectează circuitele din FPGA la componentele externe
Standarde de I/E
• 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!
Pinii de I/E FPGA pot fi configurați pentru a suporta multe tipuri de standarde
Spartan-6 FPGA
Block RAM
DSP48
CMT
BUFG
BUFIO
I/OMemory Controller
MGT
PCIe Endpoint
CLB
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
memorie/SRL
– Are o varietate mare de multiplexoare și carry chain
• SLICEL: Numai pentru operații logice și
aritmetice
– LUT poate fi utilizat pentru logică (nu și pentru
memorie)
– Varietate mare de multiplexoare și carry chain
• SLICEX: Numai logică
– LUT poate fi utilizat pentru logică (nu și pentru
memorie)
– Fără varietate mare de multiplexoare și carry chain
SLICEX
SLICEM
SLICEX
SLICEL
or
Slice-urile logice Spartan-6
▪ LUT6
▪ 8 Regiștri
▪ Carry Logic
▪ Varietate mare de Multiplexoare
▪ Logică RAM / SRL distribuită
SliceM (25%) SliceL (25%) SliceX (50%)
▪ LUT6
▪ 8 Regiștri
▪ Carry Logic
▪ Varietate mare de Multiplexoare
▪ LUT6
▪ Optimizat pentru logică
▪ 8 Regiștri
Mix de Slice-uri pentru balanța optimă între Cost, Consum de putere și
Performanță
Basic Architecture 30
Virtex-6 Base Platform 31
Evoluția familiei Virtex®
Delivering Balanced Performance, Power, and Cost
Virtex
Virtex-E
Virtex-II
Virtex-II Pro
Virtex-
4
Virtex-5
1st Generation 2nd Generation 3rd Generation 4th
Generation
5th Generation 6th Generation
220-nm
180-nm
150-nm
40-nm
65-nm
90-nm
130-nm
Virtex-6
Basic Architecture 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 XT FPGAVirtex-7 FPGA Virtex-7 HT FPGA
• Densitatea logică ridicată
• Conectivitate serială ridicată
• Densitatea logică ridicată
• Conectivitate serială de viteză
foarte mare (Ultra High-Speed)
• Densitatea logică ridicată
• Conectivitate serială ridicată
• DSP îmbunătățit
Logic
Block RAM
DSP
Parallel I/O
Serial I/O
Xilinx Announces the World's Largest FPGA
Featuring 9 Million System Logic Cells
34
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 440FPGA.
Top Related