Elettronica per telecomunicazioni 1 Contenuto dell unità D Interconnessioni interfacciamento statico e dinamico Integrità di segnale analisi di interconnessioni, driver e receiver Diafonia accoppiamenti induttivi e capacitivi, maglie comuni Distribuzione di masse e alimentazioni Dispositivi logiciprogrammabili struttura e funzioni flusso di progetto 2
Lezione D5 Flusso di progetto Stili di progettazione con dispositivi logici programmabili Flusso di progetto Linguaggi di descrizione dell hardware Esempio di design-entry, compilazione, simulazione e download 3 Elettronica per telecomunicazioni 4
Indice della lezione D5 Flusso di progetto Stili di progettazione con dispositivi logici programmabili Flusso di progetto Linguaggi di descrizione dell hardware Esempio di design-entry, compilazione, simulazione e download 5 Stili di progettazione Utilizzo di tool di progettazione Dall idea al download su logica Stili di progettazione comune Gruppo di lavoro Ottimizzazione Portabilità su diverse tecnologie Migrazione e/o ingegnerizzazione Prestazioni dettate dalla tecnologia e non dal progetto Regole base per un buon progetto 6
Stili di progettazione comune Metodi utilizzati a livello di design-entry Grafico Utilizzo di simboli classici Librerie di componenti parametrizzati (LPM) Migrazione da altre tecnologie Testuale Linguaggi di descrizione dell hardware Equation Descrizione algebrica delle funzionalità 7 Portabilità Regole di progetto portabile Livello di descrizione Nel caso del VHDL Comportamentale Strutturale Utilizzo di librerie Customizzate dal produttore Ottimizzate Dedicate però alla tecnologia e alla componentistica che si sta utilizzando nel progetto corrente (pericolo!) 8
Regole base di progetto Regole base per un buon progetto Clock Unico segnale con vari ENABLE dislocati nelle diverse celle Glitch Eventi della durata di pochi ns Evitare che i LATCH vengano pilotati direttamente da logica combinatoria senza rilettura Skew Utilizzo di linee non dedicate per la distribuzione dei segnali di clock 9 Elettronica per telecomunicazioni 10
Indice della lezione D5 Flusso di progetto Stili di progettazione con dispositivi logici programmabili Flusso di progetto Linguaggi di descrizione dell hardware Esempio di design-entry, compilazione, simulazione e download 11 Flusso di progetto Fasi: Design Entry (immissione dati) Simulazione funzionale (verifica) Sintesi (compilazione fase I) Fitting (compilazione fase II) Analisi statica dei ritardi (analisi prestazioni) Simulazione timing (verifica post-compilazione) Download (programmazione del dispositivo) 12
Flusso di progetto DESIGN ENTRY SINTESI SIMULAZIONE NO FUNZIONA? SI PROGRAMMAZIONE FPGA 13 Design Entry Dalle specifiche di progetto alla realizzazione della rete logica Diverse tecnologie disponibili: Grafico Testuale Equation C = A AND B ENTITY decoder IS PORT (num : IN INTEGER RANGE 0 TO 15; a,b,c,d,e,f,g : OUT BIT); END decoder; 14
Simulazione Funzionale Generazione dei vettori di test Verifica della corretta evoluzione del funzionamento Non tiene conto dei ritardi (oppure ha ritardi unitari) Timing Utilizza gli stessi vettori della simulazione funzionale Back-annotation Ritardi dovuti al placement e al routing (possibilità di una simulazione intermedia) 15 Sintesi e fitting Operazioni eseguite durante la compilazione (esempio di MAX+plus II di ALTERA): Verifica sintattica Ottimizzazione Placement & routing Fusemap Creazione base dati Partizionamento Estrazione parametri post-compilazione 16
Analisi dei ritardi Criticalpath 17 Analisi dei ritardi Massima frequenza di funzionamento 18
Floorplanning Ottimizzazione delle prestazioni Customizzazione avanzata di progetto 19 Elettronica per telecomunicazioni 20
Indice della lezione D5 Flusso di progetto Stili di progettazione con dispositivi logici programmabili Flusso di progetto Linguaggi di descrizione dell hardware Esempio di design-entry, compilazione, simulazione e download 21 Linguaggi di descrizione dell hardware Linguaggi in grado di portare ad una simulazione e sintesi di circuiti digitali (ma non solo...) NON SONO linguaggi di programmazione Paralleli vs. Sequenziali Prestazioni legate allo stile di descrizione e alle qualità dei compilatori 22
Linguaggi di descrizione dell hardware VERILOG HDL (1984 Gateway Design Automation) VHDL (1987 US Dept. Of Defense) ABEL (sviluppato dalla Data I/O Corporation e adesso detenuto da Lattice Semiconductor) AHDL (linguaggio proprietario di ALTERA) CUPL (linguaggio proprietario di LogicalDevices, Inc.) Handel C (Celoxica) 23 VHDL Il VHDL è un linguaggio per la sintesi automatica e la simulazione di circuiti digitali VHDL: VHSIC Hardware Description Language VHSIC: Very High Speed Integrated Circuit Standardizzato nel 1993 (IEEE standard 1076-1993) 24
VHDL Simulazione Livello comportamentale (behavioural) Il componente viene descritto con il suo comportamento ingresso-uscita Livello strutturale (RTL o gate) Il componente viene descritto connettendo tra loro piu blocchi VHDL Sintesi logica A partire generalmente dalla descrizione RTL 25 VHDL Vantaggi Unico ambiente per simulazione e sintesi Portabilità: la maggior parte dei CAD di progettazione per FPGA o ASIC accettano il VHDL in ingresso Svantaggi Ottimizzazione della sintesi poco controllabile Perdita di portabilità se si utilizzano celle proprietarie 26
VHDL Il VHDL NON E un linguaggio di programmazione (C, Java, Pascal, etc...) Presenta alcune caratteristiche fondamentali: TIMING: gestione dei tempi di propagazione dei segnali CONCURRENCY: capacità di simulare lo svolgimento di più operazioni contemporanee (programmazione parallela ). 27 VHDL Elementi fondamentali: ENTITY: è l interfaccia esterna del componente ARCHITECTURE: è la descrizione funzionale del componente PACKAGE: insieme di definizioni (tipi, costanti e/o operatori) LIBRARY: insieme di componenti o package 28
VHDL Elementi fondamentali ENTITY ARCHITECTURE ARCHITECTURE maxpld OF casting IS BEGIN IF (op1 > 16) THEN result = 16 ELSE result = 0 END IF; END maxpld; OUTPUT INPUT 29 VHDL ENTITY ARCHITECTURE 1 ARCHITECTURE 2 ARCHITECTURE N 30
VHDL LIBRARY IEEE; USE IEEE.std_logic_1164.all; Inclusione di librerie 31 VHDL LIBRARY IEEE; USE IEEE.std_logic_1164.all; Inclusione di librerie ENTITY seg IS PORT (num : IN INTEGER RANGE 0 TO 15; a,b,c,d,e,f,g : OUT BIT); END seg; Specifiche di interfaccia 32
VHDL LIBRARY IEEE; USE IEEE.std_logic_1164.all; Inclusione di librerie ENTITY decoder IS PORT (num : IN INTEGER RANGE 0 TO 15; a,b,c,d,e,f,g : OUT BIT); END decoder; Specifiche di interfaccia ARCHITECTURE pippo OF decoder IS BEGIN WITH num SELECT a <= '0' WHEN 0 2 3 5 6 7 8 9 10, '1' WHEN 1 4 11 13; WITH num SELECT b <= '0' WHEN 0 1 2 3 4 7 8 9 10, '1' WHEN 5 6 11 12 14 15; WITH num SELECT c <= '0' WHEN 0 1 3 4 5 6 7 8 9 10, '1' WHEN 2 12 14 15; END pippo; Specifiche architetturali 33 VHDL Tipi INTEGER, BIT, BOOLEAN BIT_VECTOR, INTEGER RANGE a TO b STD_LOGIC, STD_LOGIC_VECTOR Tipi definiti dall utente Combinatorio e sequenziale Assegnazione concorrente (operatore <=): valida SEMPRE (logica combinatoria) Logica sequenziale: PROCESS 34
VHDL - ESEMPI Logica combinatoria ENTITY comb IS PORT ( a, b : IN BIT ; c: OUT BIT ); END comb; ARCHITECTURE max OF comb IS BEGIN c <= a AND b; END max; Logica sequenziale ENTITY reg IS PORT ( d, clk : IN BIT ; q: OUT BIT ); END reg; ARCHITECTURE max OF reg IS BEGIN PROCESS BEGIN WAIT UNTIL clk = 1 ; q <= d; END PROCESS END max; 35 Elettronica per telecomunicazioni 36
Indice della lezione D5 Flusso di progetto Stili di progettazione con dispositivi logici programmabili Flusso di progetto Linguaggi di descrizione dell hardware Esempio di design-entry, compilazione, simulazione e download 37 Step di flusso Progetto del sistema semaforico di un incrocio semplice a due vie di accesso. 38
Step di flusso Progetto del sistema semaforico di un incrocio semplice a due vie di accesso. Semaforo1 39 Step di flusso Progetto del sistema semaforico di un incrocio semplice a due vie di accesso. Semaforo1 Semaforo2 40
Step di flusso Progettazione gerarchica clkin Base clkout tempi Counter Decoder R1 G1 V1 R2 G2 V2 reset 41 Step di flusso Progettazione con differenti tecnologie Grafico / Librerie / VHDL Utilizzo di MAX+plus II (ALTERA) https://www.altera.com/support/software/downl oad/sof-download_center.html 42
Step di flusso Schema della BASE TEMPI (divisore di frequenza) 43 Step di flusso Collegamento tramite netname 44
Step di flusso Collegamento tramite netname Simbolo risultante 45 Step di flusso Schema del decoder (in VHDL) 46
Step di flusso...e suo simbolo corrispondente 47 Architettura gerarchica 48
Architettura gerarchica Toplevel Simboli di primo livello Files accessori Primitive 49 Compilazione e simulazione Assegnazione del dispositivo target 50
Compilazione e simulazione Compilazione del progetto 51 Compilazione e simulazione Simulazione del progetto 52
Report finale Statistiche Piedinatura 53 Fase finale Programmazione del dispositivo 54
Sommario lezione D5 Flusso di progetto Stili di progettazione con dispositivi logici programmabili Flusso di progetto Linguaggi di descrizione dell hardware Esempio di design-entry, compilazione, simulazione e download 55 Verifica lezione D5 Cosa si intende per portabilità Quali metodi si possono utilizzare per effettuare una design-entry? In cosa differiscono la simulazione funzionale e quella timing? Cos è il VHDL? Cosa si intende per concurrency in VHDL? Cosa sono la ENTITY e l ARCHITECTURE? 56