Università di Trieste 2 Maggio 2007 “ Progettazione e realizzazione di moduli a microprocessore ad alte prestazioni ” - Progettare per Produrre : dalla teoria alla pratica speaker: Roberto Zelbi Agenda • Parte I – presentazione della società – sistemi embedded e moduli embedded • Parte II – Concept Product (specifiche di progetto) – Progetto (schema elettrico/meccanico, PCB Mastering) – Prototipazione e Debug – Certificazione (pre-EMC, EMC) • Parte III – Progetto del modulo FLEXY su FPGA – Signal Integrity – Distribuzione dei clock – Sistema di alimentazione e reti di bypass – Placement e disposizione dei segnali 2 Sistema Embedded: definizioni • molte definizioni in letteratura; non c'e' una definizione universalmente riconosciuta • Sistema Embedded è un sistema specializzato, incorporato in un dispositivo fisico in modo tale che possa controllarne le funzioni tramite un apposito programma software dedicato • un Sistema Embedded è tipicamente dotato delle risorse hardware minime indispensabili per espletare le funzioni per cui è preposto 3 Sistema Embedded: la struttura 4 Sistema Embedded: i tipi “General Purpose” (Pentiums II/III/IV, PowerPC, SPARC, Athlon ecc.) • software general purpose (da applicazioni da ufficio a simulazioni di sistemi biologici) • s.o. “pesanti” (Unix, Linux, Windows NT ecc.) • applicazioni: Personal Computer, workstation, servers,... • Assorbimento di corrente(potenza) notevole / necessità di ventole Processori embedded: ARM, x86 (AMD520, Geode), Hitachi SH-3/4, MIPS, PowerPC • singolo programma • s.o. estremamente ridotto, spesso real-time • supporto funzionalita' DSP • applicazioni: telefonia cellulare, elettronica di consumo, controllo industriale ecc. Microcontrollori • il costo ridotto e' l'obiettivo fondamentale • parallelismo ridotto (tipicamente 8 bit) • volumi di produzione enormi • applicazioni: automobili, termostati, telecomandi ecc. 5 Cosa “intendiamo” per sistema embedded • differenze rispetto ad un sistema PC classico: – frequenze di lavoro (potenza di calcolo) tipicamente di molto inferiori – tagli di memoria notevolmente inferiori – dispositivi di I/O spesso molto piu' primitivi o addirittura assenti • molte architetture non x86 profondamente incompatibili tra loro (ARM, PowerPC, MIPS, SH-4 ecc.) – diversa endianness – diverso set di istruzioni – diversa organizzazione della memoria 6 Dualità tra SOM e PC104 • • • • • • • PC104 è standard (SOM no) PC104 include i connettori (SOM no) Su PC104 le espansioni sono a standard Con i SOM controllo i consumi SOM è predisposto per il plug su host Consumo ! Costi 7 Moduli Embedded: perchè • Forniscono una soluzione hardware-software completa per la parte high-tech di un sistema embedded • Permettono di concentrarsi sulle altre problematiche realizzative del dispositivo in cui verranno integrati 8 Moduli Embedded: la struttura 9 Agenda • Parte I – presentazione della società – sistemi embedded e moduli embedded • Parte II – Concept Product (specifiche di progetto) – Progetto (schema elettrico/meccanico, PCB Mastering) – Prototipazione e Debug – Certificazione (pre-EMC, EMC) • Parte III – Progetto del modulo FLEXY su FPGA – Signal Integrity – Distribuzione dei clock – Sistema di alimentazione e reti di bypass – Placement e disposizione dei segnali 10 Processo realizzativo • • • • Concept Product (specifiche di progetto) Progetto (schema elettrico/meccanico, PCB Mastering) Prototipazione e Debug Certificazione (pre-EMC, EMC) 11 Concept Product Specifiche di progetto: Scelte dei componenti • Potenza di calcolo CPU fondamentali: • Risorse di memoria volatile/non volatile • Periferiche integrate (Porte RS-232,USB, ETH, CAN, LCD controller ecc.) • Microprocessore (Architettura, famiglia , casa) • Periferiche AUX on board (RTC, EEPROM, ID dev.) • Range di Temp. (C / I) • Format meccanico (min/max) • Power Supply • Volumi annui di produzione • Memorie FLASH e SDRAM • External Controller (USB, ETH) • Power Supply Unit 12 Da schema elettrico a PCB Schema elettrico + Spec. Mecc. comp + Indicazioni di sbroglio Routing Place Signal integrity HW Engineer PCB Designer 13 Schema elettrico • Electric CAD • Componenti di libreria proprietaria omologati • Inserimento componenti ausiliari a scopo debug primo prototipo, misure generiche, test • Predisposizione soluzioni per EMC • Indicazioni per PCB Routing: Piste critiche, piani GND/VCC e isole GND/VCC 14 Hot nets : Nets critiche • • Clock: alim. uP, uP-RAM, ext. Chip (ETH, USB, LCD ecc.) • Alimentazione uP [10-50 Mhz] • uP-RAM (SCLK) [50-200 Mhz] • Ext chip (ETH CON , USB CON, LCD, ecc) [10-40Mhz] • Res di term. Serie (Rts) 22-68ohm con alternativa 0 ohm obbligatoria (EMC) Segnali di controllo memorie e chip (Unidirezionali) • • • BUS Unidirezionali : • ADDRESS BUS (20-30 traces) • RGB BUS (10-24 traces) BUS Bidirezionali: DATA BUS (32 traces) • • No Rt per BUS se BUS < 100 Mhz , necessarie e di vario tipo se > 400Mhz (DDR) Eventuali piste analogiche • • Rt facoltativa Piste di guardia Bus differenziali: RS485, CAN; ETH, LVDS, DVI (impdenza controllata) 15 PCB Routing Rules e Indicazioni • Clock, segnali di controllo del bus • Piste piu' corte possibili • Percorsi lineari • Unico layers (NO VIAS) • Resistenze di terminazione [Rt] vicine alla sorgente (22-68ohm) • • • • BUS Unidirezionali : Equalizzazione lunghezza piste BUS Bidirezionali: Equalizzazione lunghezza piste [No Rt] Nets analogiche : piste di guardia , layers dedicato ecc. Bus differenziali: impedenza controllata, • Lunghezza minima, percorsi lineari, no incroci, no vias • Indicazioni di portata di corrente max delle piste (VCC ecc.) 16 Piani di GND/VCC e indicazioni di Routing • Isole di massa diverse da GND ma aventi uguale riferimento unite in un solo punto (es AGND unita in un solo punto con GND) • Isole di massa devono stare solamente vicine ai segnali/componenti di propria competenza (AGND limitata alla parte analogica del chip / evitare correnti di ritorno in altre isole di massa) π • Inserimento di filtri (pi-greco) come disacoppiamento tra due masse • Capacita' di bypass dei vari chip piu' vicino possibile ai chip/connettori (piu' piccola la capacita + deve stare vicina ) 17 Flessibilita' di Routing • Connettori con pinout non fissato (Swap) • GPIO signals (Swap) • Logiche CPLD, FPGA: swap di pin (si ha un routing piu’ lineare, tempi minori di sbroglio) • Priorita’ di sbroglio piu’ bassa per i segnali non veloci. 18 Caratteristiche principali di un PCB • Dimensioni (AREA mm2) [$ ] • Spessore [0.8mm-2.0mm] • Numero di layers (2-24) [Ns. Moduli : 4-10 ] [ $ , x2] • Fori(via ) passanti o fori ciechi ($[passante] < $[ciechi] ) • Num di Via ( 500-1500) [$ ] • Dimensioni Vias (300um, 200um, 125um) [se < 100um [ $ ], ES; BGA passo 0.8mm • Larghezza piste (6 mils) [$ ] • Isolamenti Piste (6 mils ) [$ ] • Impedenza controllata [$ ] • Dielettrico ( FR4 ) • • Finitura, dalla meno pregiata in ordine crescente: SnPb (PCB doppiafaccia), HAL, Sn Chimico (BGA), Oro chimico (BGA), Flash gold ecc. [$ ] Contatti in Oro [$ ] 19 Case Study : CPU module DZQ 1 BGA-352-1.3mm 2 BGA-64-1.0mm Conn:70x2x0.6mm Num comp:200 Num Pin: 1500 Layers:8 Num Vias:1000 Tracce: 6 mils Isolamenti: 6mils Spessore: 1.2mm T real. = 80 h 20 DZQ: bottom layout 21 DZQ: Top layer 22 DZQ: Power Plane 23 DZQ: Ground Plane 24 DZQ: drill layout 25 PCB Prototiping Aziende manufatturiere di CS specializzate nella prototipazione • Numero di pezzi minimo: 3-5 • Tempi di fornitura : • 3 gg (2 layers) • 5-6 gg (4 < layers < 10) • Costi: • Attrezzatura digitale: dai 350 euro (4 strati no BGA) - 700 euro (8 layers BGA) • Materiali + lavoro: dipendono fortemente dalle caratteristiche del CS indicativamente da 350 euro ( 8pz, 2 layers) a 700 euro (8pz, 8 layers) Es: DZQ: 8 layers, diel FR4, spessore 1.2mm, dim (50x68mm), 8pz a 69euro/cad -> tot= 552 euro 26 PCB Assembling Assemblaggio SMT/Wave Soldering (max 5pz) • Manuale : solo per schede semplici (anche 6 layers -no BGA,no FINE-PITCH) • Vantaggi: basso costo, velocita (no attrezzatura, no fornitori), • Svantaggi: difficolta’ di saldatura (perdite di tempo durante il debug), bassa qualita’ di saldatura (cortocircuiti, etc) • Macchina: presso un terzista, realizzazione attrezzatura (obbligatorio per i componenti BGA) • Vantaggi: qualita’ di saldatura, primo assaggio del processo produttivo della scheda • Svantaggi: costo elevato, attrezzatura da buttare, tempi lunghi (2-3 weeks) • Note: E’ difficile trovare terzisti attrezzati per prototipazioni complesse (BGA) e allo stesso tempo veloci (5-10g) 27 Debugging Predisposizioni su PCB che aiutano la fase di debugging: • Test point segnali critici, clock e segnali di controllo • Test point sulle varie VCC e GND • Fori di fissaggio • Bus Dati su connettore ausiliario (collegamento e ETH controller etc) interfacciamneto generico a francobollo di debug • Resistenze zero-ohm tra stadi di alimentazione e carichi (Setting tensioni 3V3, 1V8, 2V5, etc, misure di assorbimento) • Connettori dedicati per analizzatore di stati logici • Eventuali logiche programmabili per riservarsi la possibilita’ di modificare al volo il routing dei segnali senza risbrogliare o aggiungere filetti. 28 EMC I nostri moduli non sono dei prodotti finiti, ma sono componenti di un sistema piu’ ampio: non abbiamo l’obbligo di apporre la marcatura CE. Tuttavia i prodotti vengono certificati CE per garantire al cliente di non avere problemi derivanti dal modulo durante le prove EMC. Le prove della direttiva 89/336 : • Emissioni e Immunita’ irradiata (CEI EN55022) • Emissioni e disturbi condotti su porte di alimentaz. e di comunicaz. (CEI EN55024) Sorgenti di disturbo tipiche: Clock uP-SRAM, Ethernet, Clock BUS RGB Le strategie adottate come soluzioni a problemi EMC(oltre a Rt): • Resistenze di terminazione serie (valore opportuno) • Ferriti di filtro con caratteristiche tipiche 600ohm/100Mhz, 300mA sulle alimentazioni • Ferriti sui flat – cable che vanno ai display LCD. 29 EMC 30 EMC 31 Agenda • Parte I – presentazione della società – sistemi embedded e moduli embedded • Parte II – Concept Product (specifiche di progetto) – Progetto (schema elettrico/meccanico, PCB Mastering) – Prototipazione e Debug – Certificazione (pre-EMC, EMC) • Parte III – Progetto del modulo FLEXY su FPGA – Signal Integrity – Distribuzione dei clock – Sistema di alimentazione e reti di bypass – Placement e disposizione dei segnali 32 Introduzione al progetto • Idea base: realizzare un nuovo prodotto caratterizzato da un’elevata configurabilità nella dotazione di periferiche • Scelta operata: utilizzare un FPGA in sostituzione del tradizionale microprocessore 33 Perché usare un FPGA? FPGA IBM PPC405EP 34 Struttura Hardware opzionale PSU 35 Signal Integrity: bus DDR • Specifiche SSTL-2 per terminazione segnali bus • In realtà in fase di progetto si cerca un compromesso tra affidabilità e semplicità 36 Tre soluzioni • Tre evaluation board per Virtex-4, tutte con due componenti di memoria DDR – Evaluation board Avnet terminazioni serie + terminazioni parallelo – Evaluation board Xilinx solo terminazioni parallelo – Evaluation board Memec nessuna terminazione 37 Soluzione realizzata solo terminazioni parallelo • L’integrità dei segnali non è critica per schemi con soli due componenti di memoria • L’adattamento di impedenza sul fronte controller (FPGA) può essere realizzato tramite DCI (Digital Controlled Impedance) • La conferma della bontà della soluzione verrà con le simulazioni di Signal Integrity 38 Distribuzione Clock • I segnali di clock rappresentano una delle principali sorgenti di emissioni elettromagnetiche a causa del loro spettro molto esteso • E’ necessario porre attenzione a: – Lunghezza percorsi linee di clock – Frequenze in gioco • Si cerca di avere una sola sorgente a frequenza il più possibile bassa 39 Clock necessari • FPGA: clock generato esternamente con frequenza tra i 25MHz e i 100MHz, variabile in funzione della specifica implementazione • Ethernet PHY: Si hanno due opzioni – quarzo a 25MHz pilotato da circuiteria interna – clock digitale a 25MHz generato esternamente 40 Sistema di alimentazione • Reference design di Texas Instruments per Virtex-4 (modificato) TPS54310 3V3@3A TPS54310 2V5@3A LP2996 1V25 TPS54610 1V2@6A Voltage Monitors Tensione 3.3V 2.5V 1.2V Assorbimento 1330mA 2650mA 2600mA – 3 regolatori switching per le tre tensioni principali – 1 regolatore lineare per la tensione 1.25V • Il gruppo “Voltage Monitors” genera un reset in caso di cali di tensione 41 Rete di bypass • Lo scopo è fornire un percorso a bassa impedenza verso massa per le alimentazioni, riducendo il disturbo causato dai picchi di assorbimento dei componenti caratteristiche condensatori reali 42 Bypass VCCO(2,5V) per FPGA Impedance VS Frequency 1,00E+06 1,00E+05 1x10u (0805X7R) 2x100n (0805X7R) 5x10n (0603X7R) 10x680p (0603X7R) 10x680p (0603C0G) Power Plane Totale-X7R Totale-C0G 1,00E+03 1,00E+02 1,00E+01 1,00E+00 1,00E-01 1,00E-02 09 E+ 00 1, 08 1, 00 E+ 07 1, 00 E+ 06 E+ 00 1, 05 E+ 00 1, 04 E+ 00 1, 00 E+ 03 1,00E-03 1, Impedance 1,00E+04 Frequency 43 Placement componenti • La disposizione dei componenti sul PCB è fondamentale per ottenere buoni risultati – semplificazione del routing – minimizzazione percorsi dei segnali – riduzione del numero di strati • In Flexy c’è un grado di libertà in più: la dsposizione dei segnali sugli I/O del FPGA 44 Disposizione segnali su FPGA • Raggruppamento per standard elettrici compatibili • Ottimizzazione percorsi interni ed esterni tramite raggruppamento per componente 45 Conclusioni • Progettazione / realizzazione nella fase di Progettazione occorre tener conto di tutte le fasi di Produzione/Test/Debug/EMC realizzare un Prodotto non è banale • Progetti Hi-Tech know-how necessario scelte strategiche • Produrre moduli embedded make or buy ? 46