FPGA in ambiente libero Alessio Rugo Farthan srl

Slides:



Advertisements
Presentazioni simili
Cassaforte asincrona SR
Advertisements

Realizzazione di un componente per un sistema dedicato: sviluppo dell’algoritmo di crittografia RC6 a 128 bit Relatore: Prof. Fabrizio Ferrandi Correlatore:
Politecnico di Milano Sviluppo di strumenti per l'analisi e la manipolazione di bitstream per la riconfigurabilità parziale Relatore: Prof. Fabrizio FERRANDI.
Sequential Statements. – Il VHDL simula lo svolgersi in parallelo di varie operazioni – Loggetto fondamentale e il PROCESS – Un PROCESS contiene una serie.
Disegni organizzati gerarchicamente Ciascun elemento del disegno ha: –Uninterfaccia ben definita –Una precisa specifica del comportamento usando o: Una.
Strutture di controllo in C -- Flow Chart --
1 Premessa In questo progetto sono stati implementati tutti gli esercizi di Complementi di esercizi di Reti logiche. Elenco degli esercizi svolti: 1.Registro.
Una rete sequenziale asincrona e' caratterizzata da due segnali di ingresso X1, X2 (i quali non cambiano mai contemporaneamente) e da un segnale di uscita.
D.E.I.S. Universita di Bologna VHDL come strumento CAD allinterno di flussi di progetto per dispositivi Digitali VHDL come strumento CAD allinterno di.
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
MACCHINE A STATI FINITI
STMicroelectronics Proposte di tesi
Progetto di una memoria cache per il processore DLX Andrea Grandi Filippo Malaguti Massimiliano Mattetti Gabriele Morlini Thomas Ricci Progetto di Calcolatori.
ELETTRONICA DIGITALE (II PARTE) (1)
VHDL per FPGA Courtesy of S. Mattoccia.
Tecnologie Implementative
Dispositivi e sistemi logici
Capitolo 10: Realizzazione di Macchine a Stati Finiti Reti Logiche Contemporary Logic Design Randy H. Katz University of California, Berkeley May.
Sistemi Elettronici Programmabili3-1 FPGA Sistemi Elettronici Programmabili.
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.
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
LA MEMORIA CENTRALE. La memoria nella struttura generale del calcolatore MEMORIA CONTROLLO INGRESSO E USCITA ARITMETICA E LOGICA CPU Dispositivi esterni.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
POLITECNICO DI MILANO FACOLTA’ DI INGEGNERIA SEDE DI CREMONA TESI DI DIPLOMA IN INGEGNERIA INFORMATICA RELATOREAUTORI Prof. Vittorio TrecordiDemicheli.
Laboratorio di Architettura Degli Elaboratori1 PSPICE – Circuiti sequenziali.
IL PLC Formazione ed informazione su: C ontrollori L ogici P rogrammabili a cura di: Antonio Minio.
Fondamenti di Informatica A - Massimo Bertozzi LE RAPPRESENTAZIONI CONCATENATE.
Elementi fondamentali dell’ Architettura di di un elaboratore elettronico.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Somme prefisse Lezione n°2.
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
I Circuiti Sequenziali ed i Flip/Flop
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Laboratorio II, modulo Elettronica digitale (cfr.
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Pic16f84 Assembly I/O.
Microcontrollori e microprocessori
7. Strutture di controllo Ing. Simona Colucci
Logica binaria Moreno Marzolla
DIRIGERE L’INNOVAZIONE
IL CONCETTO DI ALGORITMO
Laboratorio II, modulo Elettronica digitale (2a parte) (cfr.
Cammino dei Dati (Datapath)
P. L. C. (Programmable Logic Controller)
Strutture di controllo
Introduzione I microcontrollori.
PROGRAMMAZIONE BASH – ISTRUZIONE IF
Università di Pisa INFN – Sezione di Pisa
La porta video DVI. Differenze tra i vari tipi e miglioramenti introdotti rispetto alla precedente VGA. Leader: Chouay Mohammed Grafico: Vinueza Daniel/Chouay.
analizzatore di protocollo
Corso propedeutico base di informatica
MODULO 1 – Computer essentials
Circuiti integrati Costruzione di circuiti (logici e non) su un substrato di silicio. Non solo la parte attiva ma anche le connessioni tra le porte. Incredibile.
mBlock Un modo semplice e innovativo per programmare Arduino
Classe III A A.s – 2012 Programma di Informatica
Progetto di Tecnologie Web 2014/2015 THERMOWEB
Architettura degli Elaboratori
Programmare.
Circuiti digitali Architettura © Roberto Bisiani, 2000
© 2007 SEI-Società Editrice Internazionale, Apogeo
© 2007 SEI-Società Editrice Internazionale, Apogeo
Circuiti combinatori Laboratorio di Architetture degli Elaboratori I
Processi decisionali e funzioni di controllo
Introduzione a Logisim
Lezione Terza Primi passi di programmazione
Ricerca 01/08/2019 package.
Algoritmi.
ALGORITMO E’ una successione finita di passi che consente di risolvere tutti i problemi di una classe e di determinare il risultato. Caratteristiche: Finito.
Transcript della presentazione:

FPGA in ambiente libero Alessio Rugo Farthan srl

Di cosa parleremo oggi Tecnologia FPGA Programmazione FPGA Strumenti di supporto in ambiente libero Esempi applicativi

Tecnologia FPGA (1/7) Field Programmable Gate Array (matrice di porte logiche programmabile sul campo) Circuiti digitali (ri)programmabili (PLD) Funzionalità programmate via software dall'utente finale

Tecnologia FPGA (2/7) Perchè usare la tecnologia FPGA Riprogrammabilità Analisi/simulazioni software prima di quelle hardware Ciclo di progettazione più veloce rispetto a tecnologie ASIC Costo per prototipazione minore

Tecnologia FPGA (3/7) Applicazioni principali DSP Prototipazione industriale Aerospaziali, Automotive, Biomediche PC Hardware (emulazione)

Tecnologia FPGA (4/7) Come funziona? Composta da matrici di blocchi logici configurabili (CLB) Ogni blocco può implementare una funzione combinatoria complessa o una semplice funzione logica (AND, XOR,...) I blocchi sono interconnessi da canali di routing Reti di pin di I/O

Tecnologia FPGA (5/7) LUT - Unità base Acronimo di LOOK-UP TABLE, una “tabella di associazioni” Associa ad ogni possibile input a xBIT un output a yBIT Le LUT di un FPGA sono a 4/6bit generalmente L'uscita può essere “registrata” o “non registrata” tramite l'elemento di memoria FF-D

Tecnologia FPGA (6/7) Connessioni Le porte delle LUT sono collegate ciascuna ad una diversa pista (routing wires) Queste piste sono a loro volta connesse a degli SWITCH Anche la tabella di routing di questi SWITCH è configurabile LUT

Tecnologia FPGA (7/7) Principali produttori Xilinx Altera Lattice

Programmazione FPGA (1/12) Occorre una descrizione della configurazione hardware → Linguaggi HDL Linguaggi usati –VHDL (Very high-Speed integrated circuit HDL) –Verilog Entrambi sono standard IEEE

Programmazione FPGA (2/12) Differenze: –VHDL ha operatori e tipi di dati più avanzati, ma maggiore complessità d'uso –VHDL ha un approccio maggiormente “algoritmo” –Il VHDL è più flessibile (es: tipi definiti dagli utenti) –VHDL ha maggiori costrutti per l'estendibilità e usabilità (entità gerarchiche, package,...) –Il Verilog ha dei tipi di dato gate-level (wire) –Il Verilog ha curva di apprendimento –più bassa!

Programmazione FPGA (3/12) Gate Level – uso diretto delle celle logiche entity amico is port ( parla_male : in STD_LOGIC; parla_bene : in STD_LOGIC; aiuta : in STD_LOGIC; e_presente : in STD_LOGIC; vero_amico : out STD_LOGIC; ) architecture amico_arch of amico is signal parole, fatti : STD_LOGIC; begin vero_amico <= parole AND fatti; parole <= parla_bene AND (not parla_male); fatti <= aiuta OR e_presente; end amico_arch; OUT vero amico IN parla_bene Parla male aiuta e_presente NON case sensitive

Programmazione FPGA (4/12) PORTA LOGICA AND PORTA LOGICA OR parla_male parla_bene aiuta e_presente parole fatti vero_amico vero_amico <= parole AND fatti; parole <= parla_bene AND (not parla_male); fatti <= aiuta OR e_presente; segnali, non variabili GATE LEVEL CIRCUITO SINTETIZZATO

Programmazione FPGA (5/12) entity amico is port ( parla_male : in STD_LOGIC; parla_bene : in STD_LOGIC; aiuta : in STD_LOGIC; e_presente : in STD_LOGIC; vero_amico : out STD_LOGIC_VECTOR(2 downto 0); ) architecture amico_arch of amico is signal parole, fatti : STD_LOGIC; begin amico_vero <= “11” when (parla_male = '0' AND parla_bene = '1' AND aiuta = '1') else “10” when (parla_male = '0' AND parla_bene = '1' AND aiuta = '0') else “01” when (parla_male = '1' AND parla_bene = '1') else “00”; end amico_arch; RTL Level – componenti “intermedi” comparatori, sommatori, multiplexer,... I1 I2 EN I1

Programmazione FPGA (6/12) entity esempio is port ( clk : in STD_LOGIC; contatore_out : out STD_LOGIC_VECTOR(2 downto 0); ) architecture esempio_arch of esempio is signal contatore : STD_LOGIC_VECTOR(2 downto 0); begin contatore_out <= contatore; ESEMPIO : process(clk) begin if clk'event AND clk = '1' then contatore <= contatore + '1'; end if; end amico_arch; RTL Level – sequential vs concurrent caso sequenziale: le istruzioni sono eseguite nell'ordine stabilito

Programmazione FPGA (7/12) Tipi di dato Diversi tipi di dato disponibili nativamente Librerie di tipi/operazioni standard e non Possibilità di definire i propri USARE STD_LOGIC (interfaccia) Scelta naturale per la codifica di un circuito Evita traduzioni/interpretazioni non volute Ha tutti gli stati che caratterizzano un circuito (1,0,Z,...) Si evitano conversioni durante le simulazioni (connessioni tra moduli con porte diverse)

Programmazione FPGA (8/12) entity esempio is port ( clk : in STD_LOGIC; contatore_out : out STD_LOGIC_VECTOR(2 downto 0) := (others => '0'); valido : out STD_LOGIC; ) architecture esempio_arch of esempio is signal contatore : STD_LOGIC_VECTOR(1 downto 0); begin contatore_out <= contatore; ESEMPIO : process(clk) begin if clk'event AND clk = '1' then contatore <= contatore + '1'; valido <= '0'; if contatore = “00” then valido <= '1'; end if; end amico_arch; Uso del tipo STD_LOGIC(_VECTOR) caso sequenziale: le istruzioni sono eseguite nell'ordine stabilito

Programmazione FPGA (9/12) ESEMPIO : process(clk) variable contatore_svelto : STD_LOGIC_VECTOR(1 downto 0) := (others => '0'); begin if clk'event AND clk = '1' then contatore <= contatore + '1'; contatore_svelto := contatore_svelto + '1'; valido <= '0'; if contatore = “00” OR contatore_svelto = “00” then valido <= '1'; end if; end amico_arch; Non solo “segnali”, anche variabili dichiarate con visibilità interna al processo si aggiornano immediatamente, non alla fine del processo clk valido

Programmazione FPGA (10/12) Somma_e_Moltiplica Architettura modulare Un sistema è composto da vari componenti sinergici, a vari livelli. Tale approccio gerarchico viene preservato Una entity può contenere altre “entity”, che prendono il nome di component Si riporta la loro interfaccia e si “mappano” ingressi ed uscite del modulo a gerarchia inferiore a segnali interni o interfaccia stessa del modulo a gerarchia maggiore Sommatore Moltiplicatore risultato = (a+b)*b a b b sum = a + b risultato

Programmazione FPGA (11/12) MSF (Macchine a stati finiti) La programmazione di realtà più complesse richiede l'implementazione di MSF Esempio: 1) START: resetta i registri 2) STATE1: se dv = '1', invia input corrente al sommatore, asserendo sum_dv = '1'. Passa a STATE2. Se non c'è input (dv='0') passa a STATEN e termina 3) STATE2: quando sum_rdy ='1', campiona l'output e torna allo STATE1

Programmazione FPGA (12/12) Flusso progettazione FPGA NOI SIAMO QUI! Prima: constraints (UCF)

Programmazione FPGA in Ambiente libero (1/4) E' possibile progettare e programmare FPGA in ambiente libero? Si! –ISE versione linux (provato WebPack) –Driver USB/JTAG resi compatibili E' possibile usare strumenti OS per completare il flusso FPGA? –La mia analisi dice di no al momento

Programmazione FPGA in Ambiente libero (2/4) Su cosa si può contare su certezza al momento dal mondo OS? OpenCores: design and publish core designs under a license for hardware modeled on the Lesser General Public License (LGPL) for software –Disponibilità di moduli VHDL (Core) open source di qualunque tipo. –Progetti di software di supporto allo sviluppo. –

Programmazione FPGA in Ambiente libero (3/4) “Open source” per l'Hardware Obiezione: l'hardware non ha costi nulli di distribuzione, deve essere “costruito” Ogni hw è costruito a partire da un progetto IP (Intellectual property): unità riutilizzabile di logica, layout di un progetto chip, etc. Gli IP sono moduli HDL. Le licenze open source per l'hardware non sono ancora consolidate (si opera su “costosi” brevetti). Es: LGPL. Curiosità: Open Source Bank Letture: Jeremy Bennett, CEO, Embecosm

Programmazione FPGA in Ambiente libero (4/4) Per la gestione di un progetto hardware, ISE al momento non ha avversari OS. Anche i tool con gli algoritmi delle diverse fasi del flusso non hanno un alter ego OS di livello Anche se rimarchiamo il fatto che ISE sia un software proprietario, esiste una versione (gratuita) per linux

Programmazione FPGA in Ambiente libero (1/)

Flusso Design FPGA (2)

Programmazione FPGA in Ambiente libero (1/)

Alessio Rugo Farthan srl Domande E Risposte