Le FPGA sono circuiti integrati contenenti molte celle logiche, ciascuna delle quali puo’ comunicare con le altre tramite una fittissima rete di connessioni.

Slides:



Advertisements
Presentazioni simili
Cos'è una memoria? MEMORIA
Advertisements

PROGRAMMARE IN PASCAL (le basi)
Corso di Informatica Applicata - by Scardino Giuseppe Il PC MULTIMEDIALE Un PC con laggiunta di qualche optionalUn PC con laggiunta di qualche optional.
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
Circuiti sequenziali Capitolo 5.
Sviluppo di un’interfaccia Camera Link - FPGA
Circuiti logici dedicati
Presente e futuro dellelettronica digitale in ambito spaziale Frascati 16/2/05 Dip. Scienze fisiche Università Federico II di Napoli INFN sez. Napoli stefano.
Memorie.
1 III Modulo dei dispositivi elettronici del Laboratorio di Fisica.
Algoritmi e Strutture Dati Valutazione del tempo di esecuzione degli algoritmi.
Presentazione Proposte di Tesi
-1- CdSez prev /7/03 Un caso ideale: K l Unici per theoretical cleanliness u Contributi long range assenti u Correzioni QCD ben calcolabili u H eff.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
SOTTOPROGRAMMA Un sottoprogramma lo si usa spesso per suddividere degli algoritmi molto complessi Una delle regole molto importanti è il rettangolo che.
La macchina di von Neumann
L’Architettura del Sistema di Elaborazione
www-lia.deis.unibo.it/materiale/retilogiche
Architettura dell’elaboratore
FlipFlop D Asincrono Il FlipFlop D è una rete sequenziale asincrona che si comporta da memoria. E' caratterizzato, nella versione più semplice, da 2 ingressi.
VHDL come strumento di progetto di circuiti digitali Antonio Deledda Corso di Elettronica dei Sistemi Digitali LS AA
VHDL come strumento di progetto di circuiti digitali
Il MIO COMPUTER.
PRESENTAZIONE di RICCARDO
STRUTTURA GENERALE DI UN ELABORATORE
L' ARCHITETTURA DI VON NEUMANN
Il computer: struttura fisica e struttura logica
ELETTRONICA DIGITALE (2^ Parte) (8)
Ottimizzazione del tempo morto
La RAM, insieme al microprocessore, è uno degli elementi più importanti all’interno di un elaboratore. Essa rappresenta un’area in cui il computer è in.
ELETTRONICA DIGITALE (II PARTE) (1)
VHDL per FPGA Courtesy of S. Mattoccia.
Sistemi Elettronici Programmabili: La Memoria Principale 6-1 Sistemi Elettronici Programmabili La memoria principale.
Algebra di Boole.
Reti Logiche A Lezione xx.x Dispositivi Programmabili
Oggi è il due marzo LO SCOPO: Usiamo il passato prossimo. FATE ADESSO: Tirate fuori il compito.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Memorie a Semiconduttore
INFORMATICA = INFOrmazione + autoMATICA L’informazione una delle risorse strategiche più importanti della società moderna Capacità di gestire l’informazione.
Luglio 2004Generalità Hardware1 Luglio Generalità Hardware2 MACCHINA DI VON NEUMAN (1947) BUS Processore Elaborazione Controllo Memoria Ingresso.
Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili.
Corsi di Laurea in Biotecnologie
SOTTOSISTEMA DI MEMORIA
BOOTS OF SPANISH LEATHER – Written by Bob Dylan, performed by Nanci Griffith.
Tecnologie Implementative
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
Dispositivi e sistemi logici
Clocking Il segnale di Clock definisce quando i segnali possono essere letti e quando possono essere scritti Fronte di discesa (negativo) Falling edge.
LATCH. Circuiti Sequenziali I circuiti sequenziali sono circuiti in cui lo stato di uscita del sistema dipende non soltanto dallo stato di ingresso presente.
Informatica Generale Marzia Buscemi
Sistemi Elettronici Programmabili3-1 FPGA Sistemi Elettronici Programmabili.
SUMMARY Time domain and frequency domain RIEPILOGO Dominio del tempo e della frequenza RIEPILOGO Dominio del tempo e della frequenza.
Prof. ing. Paolo Bidello AA 2005/2006 Laboratorio Informatico Promemoria degli argomenti Intervento #5.
Conversione Analogico/Digitale Le grandezze fisiche che vogliamo misurare variano con continuità in un dato intervallo ed in funzione del tempo: sono descrivibili.
RIEPILOGO Transistor JFET
Istituto Comprensivo di Livigno BENVENUTI. Clemente Silvestri FONDAMENTI DI INFORMATICA.
SUMMARY A/D converters RIEPILOGO Convertitori A/D RIEPILOGO Convertitori A/D.
Componenti hardware PC: I componenti si possono dividere in quattro gruppi: 1. DISPOSITIVI DI INPUT/ OUTPUT (I/O); 2. MEMORIA ELETTROMAGNETICA NON VOLATILE.
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
Il modello di Von Neumann
Conosciamo…il computer
Stato lavori Superpix1 e ApselVI Fabio e Filippo 1 “... siam mica qui a rubar le noccioline a CHIP e CIOP!”
Laboratorio di Architettura Degli Elaboratori1 Macchine a stati finiti – un automa di Mealy generale con 1 bit d’ingresso, 1 di uscita e 2 di stato.
Introduzione ai Microcontrollori Una prima definizione I microcontrollori sono utilizzati per gestire segnali in ingresso (input utente o da sensori),
Laboratorio di Architettura Degli Elaboratori1 PSPICE – simulazione di circuiti combinatorii Decodificatore e Multiplexer.
IL PACCHETTO ORCAD Strumenti CAD-CAM per il progetto di circuiti elettronici.
Calliope-Louisa Sotiropoulou I NTRODUZIONE ALLA T ECNOLOGIA D ELL ’FPGA F IELD P ROGRAMMABLE G ATE A RRAYS PISA, 02/03/2016 Marie Curie IAPP Fellow - University.
EFFETTI DELLA RADIAZIONE SUI DISPOSITIVI ELETTRONIC (II)
Transcript della presentazione:

Le FPGA sono circuiti integrati contenenti molte celle logiche, ciascuna delle quali puo’ comunicare con le altre tramite una fittissima rete di connessioni. FPGA (Field Programmable Gate Array) Siamo a circa 200,000 elementi Logici equivalenti e a 1200 pin di I/O LC = Logic block CLB = Configurable logic block Matrice di switch

Piu’ importanti produttori di FPGA: Altera (SRAM based); Xilinx (SRAM based); Actel (flash and antifuse based FPGA). Tre tipi di FPGA attualmente in commercio: basate su antifuse/SRAM/flash memory. SRAM: L’FPGA basata su SRAM. Antitesi a DRAM  indica che non c’e’ bisogno di refresh del dato; deve essere riprogrammata ad ogni power-on (volatile). Necessita di memoria esterna ( EEPROM/flash), ma e’ riprogrammabile per un numero infinito di volte. Locazioni di memoria scritte/lette in qualsiasi ordine 6 transistor CMOS; 4 per immagazzinare Il dato(M1,M2,M3,M4) + 2 transistor per i processi read/write (M5,M6).

Voglio scrivere “1”  (scrivere  WL = 1) BL =1, BL = 0  M6 acceso, Q = 1  M2 spento, M1 acceso  Q = gnd. Quindi M5 spento e M4 acceso  Q = Vdd = 1. Attenzione: M5,M6 dominano sugli altri transistor. Es: Esercizio: lettura di uno stato con Q=0. M3M3 SRAM

L’antifuse/fuse e’ una memoria non volatile, OTP (One Time Reprogrammable), Usata cioe’ per FPGA non riprogrammabili ( = programmabili 1 volta) : Fuse: Le linee sono inizialmente tutte connesse, si procede bruciando “fuse” alcune connessioni, tramite tensioni piu’ alte di quelle di funzionamento. Antifuse: linee tutte disconnesse; la programmazione crea le connessioni. Materiale Inizialmente isolante reso conduttivo tramite tensioni elevate. Si puo’ programmare Una sola volta ( rad. tol). Antifuse (dielettrico) Linea 1 Linea 2 Metallo 2 ossido Metallo 1

La memoria flash e’ simile alla EEPROM vista nella scorsa lezione. Piu’ lenta di una RAM; la cancellazione avviene a blocchi, non a singolo byte. Numero max di riprogrammazione In genere le EEPROM sono cancellabili in piccoli Blocchi ( byte), mentre le flash sono cancellabili a blocchi piu’ grandi. Inventate nel 1984  flash perche’ il sistema di cancellazione ricordava all’inventore (Masuoka) il flash di una macchina fotografica. Possono essere Di tipo NOR (lente, Rand. Access) o NAND ( veloci, non random access, dati letti a blocchi). Funzionano col solito “floating gate”, dove e’ immagazzinata la carica. Default:  “1”. Per metterla a 0, Vgs e Vds Molto alto  alcuni elettroni “saltano” nel FG. Gate a gnd. Vgd invertito  elettroni fanno tunneling nel drain. FLASH

One limitation of flash memory is that although it can be read or programmed a byte or a word at a time in a random access fashion, it must be erased a "block" at a time. This generally sets all bits in the block to 1. Starting with a freshly erased block, any location within that block can be programmed. However, once a bit has been set to 0, only by erasing the entire block can it be changed back to 1. In other words, flash memory (specifically NOR flash) offers random-access read and programming operations, but cannot offer arbitrary random-access rewrite or erase operations. A location can, however, be rewritten as long as the new value's 0 bits are a superset of the over-written value's. For example, a nibble value may be erased to 1111, then written as Successive writes to that nibble can change it to 1010, then 0010, and finally In practice few algorithms take advantage of this successive write capability and in general the entire block is erased and rewritten at once.

Logic element

Es A=1, B=1  X0r di (1,0)  1 Dunque A+ B = A + 1 = 0 ( sul primo bit) B

FPGA montata su una scheda Come si arriva a questo punto ?

b) rx; Montaggio di una scheda: - Selezione dei chip che fanno al vostro caso sperimentale; - Schematiche; - Master + simulazione; - Produzione PCB; - lamina serigrafica + crema conduttiva; - passaggio in pick & place; - forno con opportuno profilo termico (ROHS); - test di qualita’: a) fotografica (ORBOTEK);

FPGA X- RAY Bisogna connettere oltre 1000 piedini. La mancata connessione di un solo piedino Puo’ compromettere il funzionamento di tutta la scheda. Come si fa a stare tranquilli ?

In realta’ ci sono metodiche molto piu’ approfondite. Scansione alla BGA (ball grid array) in grado di confrontare scale di “grigio” diverse. Usati X rays di energia diversa. Si va alla ricerca di possibili formazione di aria (gas) dentro la “ball”. Un sw ad hoc stima la frazione di volume  se maggiore di un certo limite (es 20%) Saldatura da rifare.

Tecnologie per la programmazione delle FPGA - Volatili : si mette il codice su una memoria RAM in cui si scrive la configurazione; - Non Volatili: si mette il codice su una EEPROM o su una flash memory. Vari nomi di file (.sof,.pof,.rbf) dipende dalla funzione e dalla casa madre. Le 3 principali sono Actel,Altera,Xilinx. Per programmare le Altera si puo’ usare un oggetto chiamata Byte-Blaster. Oppure si puo’ programmare da remoto una EEPROM (flash )tramite il VME. Le memorie flash sono non volatili, veloci ( meno delle RAM). Presentate al Congresso IEEE del 1984 da F. Masuoka. Nel 1988 scatta l’interesse di Intel. Es. La Stratix II EP2S130 ha 37,325,760 bit di configurazione  la memoria Flash Altera EPCS64 con i suoi 67,108,864 bit e’ OK.

Per programmare una FPGA l’utente usa un Hardware description language (VHDL,Verilog) oppure un disegno schematico. NETLIST Compilazione funzionale + Sintesi. Viene generata le NETLIST. Assembler File di configurazione Place in route o Device fitting ( si decide la posizione degli elementi sui PLB) ed assegna Le linee di connessione

ENTITY D_FF is PORT( clock: in std_logic; outp: out std_logic; ); End D_FF; Architecture mine of D_FF signal outp_int : std_logic: = ‘1’; BEGIN process(clock) begin if( clock’event and clock = ’1’) then outp_int <= not (outp_int); end if; end process; outp <= outp_int; end mine;

Q1 Q3 Q5 Q2 Q4 Q6 MRPC 3 MRPC 2 MRPC 1

E’ chiaro che un oggetto del genere si adatta molto bene alle nostre esigenze Di costruire un sistema di trigger. Abbiamo n ingressi e possiamo formare Le combinazioni che vogliamo da VHDL. Esempio Make: process (q1,q2,q3) begin bbb <= q1 & q2 & q3; end process; Make2: process (q4,q5,q6) begin bbb2 <= q4 & q5 & q6; end process; Stud1: process(clk80,sysres2,dltt6sig) begin if (not(sysres2) = '1'or dltt6sig = '1') then trig_std_1 <= '0'; elsif(clk80'event and clk80 = '1') then case bbb is when "111" => trig_std_1<='1'; when others => trig_std_1<='0'; end case; end if; end process; Stud2: process(clk80,sysres2,dltt6sig) begin if (not(sysres2) = '1'or dltt6sig = '1') then trig_std_2 <= '0'; elsif(clk80'event and clk80 = '1') then case bbb2 is when "111" => trig_std_2 <='1'; when others => trig_std_2 <='0'; end case; end if; end process; Final: process(clk80,sysres2,dltt6sig) begin if (not(sysres2) = '1'or dltt6sig = '1') then trig_std <= '0'; elsif(clk80'event and clk80 = '1') then if(trig_std_1 = '1' and trig_std_2 = '1') then trig_std<='1'; else trig_std <= '0'; end if; end process; Spare1 <= trig_std;

Segnale di trigger

Ma funziona sul serio ?  simulazione Adesso non resta che caricare il file sulla FPGA e provarlo in laboratorio….