1 / 23

LOGICHE HARDWARE PROGRAMMABILI

LOGICHE HARDWARE PROGRAMMABILI. FPGA based. Componenti Elettronici. A pplication S pecific. ASICs. I ntegrated C ircuit. ASIC s array based. 1. 2. Non è necessariamente programmabile. PLDs. a. b. c. Predefined link. Programmable link. N/A. SPLDs. CPLDs. e. &. l. a. b. c.

Download Presentation

LOGICHE HARDWARE PROGRAMMABILI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LOGICHE HARDWARE PROGRAMMABILI FPGA based

  2. Componenti Elettronici

  3. Application Specific ASICs Integrated Circuit

  4. ASICsarray based 1 2 Non è necessariamente programmabile

  5. PLDs a b c Predefined link Programmable link N/A SPLDs CPLDs e & l a b c b y Predefined link a N/A a & m r r Programmable link m a N/A a R r & g O o !a & !b & !c r a !a b !b c !c l l l Address 0 & P !a & !b & c PROMs PLAs PALs GALs etc. Address 1 & y Programmable AND array a w x y !a & b & !c r r Address 2 & a !a & b & c R Address 3 & O e a & !b & !c l b Address 4 & a a b c m Predefined link a & !b & c m Address 5 & Programmable link a r a & b & !c g Address 6 o & r P & a & b & c Address 7 & y & a a !a b !b c !c r r l l l a & R O & d Predefined AND array e w x y n i f & e d e r & P a !a b !b c !c l l l Programmable w x y AND array Simple PLDs Programmabilità esclusivamente della matrice di interconnessione SPLD - PLA Decoder Encoder SPLD - PAL SPLD - PROM

  6. Programmable Interconnect matrix SPLD-like Input/output pins blocks 100 wires Programmable multiplexer 30 wires Complex PLDs A causa dell'eccessivo consumo di potenza e della bassa velocità non posso garantire il 100% di connettività Altera propose una architettura con connettività incompleta, realizzata in tecnologia CMOS con celle di memoria EPROM.

  7. PLDsv.s. ASICs Circuiti integrati programmabili, versatili e veloci da progettare e realizzare, ma limitati a funzioni relativamente semplici. Circuiti integrati per applicazioni specifiche (ASIC), che permettono di realizzare sistemi di grande complessità, ma richiedono una fase di progetto e realizzazione lunga e costosa, e non sono riconfigurabili.

  8. FPGA v.s. CPLD La struttura base di FPGA e CPLD è simile: una matrice di blocchi logici programmabili collegati da una griglia di interconnessioni, anch'esse programmabili. Le principali differenze sono a livello architetturale e spesso sono abbastanza sfumate: • Complessità: per i CPLD tipicamente varia da 1 Kgate a 100 Kgate, per le FPGA dal 10 Kgate a 10 Mgate • Granularità: nei CPLD si trova un numero ridotto (1  100) di blocchi logici programmabili di tipo PLA e di dimensioni relativamente grandi (alcune decine di ingressi), con un sistema di interconnessioni semplice; nelle FPGA si trova un numero maggiore di blocchi logici (100  100K) di dimensioni ridotte (2  6 ingressi, 1 o 2 registri), con una griglia di interconnessioni molto complessa. • Ritardi: nei CPLD i tempi di propagazione complessivi sono dominati dai blocchi logici e il contributo delle interconnessioni può essere calcolato a priori abbastanza accuratamente; nelle FPGA il contributo delle interconnessioni domina i tempi di propagazione, e dipende fortemente dal piazzamento dei blocchi logici, per cui non può essere stimato accuratamente a priori • Meccanismo di programmazione: nei CPLD più spesso è E2PROM oppure FLASH, nelle FPGA SRAM o antifusibili

  9. FPGA Programmable interconnect Programmable logic blocks Field Programmable Gate Array • componenti proposti per la prima volta da Xilinx del 1984 • realizzati in tecnologia CMOS con memoria di configurazione SRAM • architettura simile ai primi CPLD ma con un numero più elevato di blocchi logici programmabili più semplici, immersi in una griglia di interconnessioni con matrici di commutazione agli incroci

  10. a 3-input b y ? LUT mux c flip-flop q d clock Esempio di blocco logico programmabile • look-up table (LUT) per realizzare una qualsiasi funzione combinatoria a 35 ingressi • possibilità di salvare il risultato in un registro • ingresso ausiliario per combinare più funzioni logiche attraverso un MUX

  11. Required function Truth table Programmed LUT a a b c y SRAM cells & b 1 000 0 0 0 1 r 0 e 001 0 0 1 0 | y x 1 c e 010 0 1 0 1 l p 1 i 011 0 1 1 1 t y l u y = (a & b) | !c 1 100 1 0 0 1 M 0 101 1 0 1 0 1 : 1 8 110 1 1 0 1 1 111 1 1 1 1 a b c Funzionamento di una LUT a SRAM • i segnali di selezione del MUX diventano gli ingressi della funzione • il contenuto delle celle SRAM determina la funzione logica realizzata dalla LUT • riscrivendo il contenuto della SRAM si ottiene una nuova funzione logica

  12. ? Moduli funzionali specifici Le FPGA spesso includono moduli funzionali specifici • sommatori • moltiplicatori • unità MAC • memorie RAM • core di microprocessori • interfaccie di I/O veloci

  13. FPGA e CPLD: progetto La fase di progetto di FPGA/CPLD è in buona parte simile a quella di un ASIC • supportata da un linguaggio HDL e da strumenti CAD per la simulazione e la sintesi • i passi del flusso di progettazione, dal concepimento dell'idea alla derivazione dello schema circuitale a livello logico (rete di porte logiche), sono gli stessi • le differenze riguardano essenzialmente il progetto a livello fisico: un ASIC richiede il piazzamento delle celle di libreria e il loro collegamento tramite connessioni create ad hoc; in un FPGA/CPLD il piazzamento consiste nell'allocazione delle risorse logiche disponibili sul componente e in una opportuna configurazione della griglia di interconnessioni

  14. Unprogrammed device Programmed device (a) Host computer (b) Device programmer FPGA/CPLD: programmazione del componente Il risultato della fase di progetto è un insieme di bit di configurazione (configurationstream), che viene caricato nel componente attraverso un dispositivo di programmazione o semplicemente attraverso terminali dedicati sul componente stesso. I bit di configurazione fissano lo stato (aperto/chiuso) degli interruttori che determinano la funzione svolta dai blocchi programmabili e la topologia delle interconnessioni.

  15. ? Xilinx Spartan-II - Architecture

  16. Xilinx Spartan-II- CLB • Each CLB has two identical Slices. • Slice has two logic cells: • LUT 4 input • Carry logic • Registers CLB

  17. ? Slice Xilinx Spartan-II - Slice

  18. Xilinx Spartan-II- Slice details DFF or Latch

  19. MUXF5 combines 2 LUTs to create: 4×1 multiplexer or any 5-input function (LUT5) or selected functions up to 9 inputs MUXF6 combines 2 slices to create: 8×1 multiplexer or any 6-input function (LUT6) or selected functions up to 19 inputs 0 / 1 0 0 0 a a b b c c d d Xilinx Spartan-II- expansion MUXs

  20. Distributed RAM 1 LUT = 16×1 bit RAM cascade LUT to increment RAM size Xilinx Spartan-II-distributed RAM Each LUT can be configured as a … • 16-bit shift register …

  21. Xilinx Spartan-II-interconnect • Types of interconnect: • Local • General-Purpose • Dedicated • I/O pin

  22. Xilinx Spartan-II-types of interconnect

  23. Xilinx Spartan-II-Details Horizontal on-chip busses Clock distribution

More Related