- Progettare per Produrre : dalla teoria alla pratica - Università di Trieste 4 Maggio 2006 “ Progettazione e realizzazione di moduli a microprocessore ad alte prestazioni ” - Progettare per Produrre : dalla teoria alla pratica -
Agenda Parte I Parte II Parte III 2 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
Chi siamo DAVE S.R.L. via Forniz 2 , 33080 Porcia tel. +39.0434.921215 fax +39.0434.1994030 e-mail: info@dave-tech.it web: www.dave-tech.it fondata nel 1998 3
Servizi e Prodotti Moduli CPU (SOM “System On Module”) Sistemi embedded completi Servizi di Progettazione Porting (Linux, uCLinux, eCos, Windows CE) Drivers Applicazioni 4
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 5
Sistema Embedded: la struttura 6
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. 7
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 8
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 9
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 10
Moduli Embedded: la struttura 11
Moduli Embedded: CPU / tipologie Entry/Small Networking: ARM7TDMI [famiglia B2] Industry Standard: ARM920T [Zefeer] Portable: ARM920T [Parsy] + Xscale [Rocket] Intensive Computation: PowerPC [PPChameleon + Flexy] 12
B2:Entry/Small Networking [ARM7TDMI] 13
PPChameleon: Intensive Computation [PowerPC] 14
Industry Standard:ARM920T [Zefeer] 15
Portable : ARM920T [Parsy] 16
La gamma (periferiche) 17
Agenda Parte I Parte II Parte III 18 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 18
Processo realizzativo Concept Product (specifiche di progetto) Progetto (schema elettrico/meccanico, PCB Mastering) Prototipazione e Debug Certificazione (pre-EMC, EMC) 19
Concept Product Microprocessore (Architettura, famiglia , casa) Specifiche di progetto: Potenza di calcolo CPU Risorse di memoria volatile/non volatile Periferiche integrate (Porte RS-232,USB, ETH, CAN, LCD controller ecc.) Periferiche AUX on board (RTC, EEPROM, ID dev.) Range di Temp. (C / I) Format meccanico (min/max) Power Supply Volumi annui di produzione Scelte dei componenti fondamentali: Microprocessore (Architettura, famiglia , casa) Memorie FLASH e SDRAM External Controller (USB, ETH) Power Supply Unit 20
Da schema elettrico a PCB + Spec. Mecc. comp Indicazioni di sbroglio Routing Place Signal integrity HW Engineer PCB Designer 21
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 22
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) Rt facoltativa 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 Piste di guardia Bus differenziali: RS485, CAN; ETH, LVDS, DVI (impdenza controllata) 23
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.) 24
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 ) 25
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. 26
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 [$ ] 27
Case Study A: DZQ 28 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 28
DZQ: bottom layout 29
DZQ: Top layer 30
DZQ: Power Plane 31
DZQ: Ground Plane 32
DZQ: drill layout 33
Case Study B 34
Case Study B: Bottom layout 35
Case Study B: Grounds Plane Num comp:700 Num Pin: 3050 Layers:6 Num Vias:1563 Tracce: 6 mils Isolamenti: 6mils Spessore: 1.8mm T real. = 150 h 1 mils = 25,4um 36
Case Study B : Top Layer 37
Case Study B : Top layer BLUE: Data Bus GREEN:RGB Signal VIOLET: FPGA program signal 38
Case Study B : Ground Plane (I2) 39
Case Study B : Inner 4 40
Case Study B : Inner3 41
Case Study B : Power Plane (I5) 42
Case Study B : Bottom layer 43
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 44
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) 45
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. 46
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. 89/336 CEI EN 50022, 50024 47
EMC 48
EMC 49
Agenda Parte I Parte II Parte III 50 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 50
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 Il progetto nasce nell’ambito di un’attività di ricerca svolta da DAVE s.r.l. Il lavoro svolto è stato sfruttato come argomento di tesi 51
Perché usare un FPGA? FPGA IBM PPC405EP 52 Scalabilità: medesimo hardware, set di periferiche configurabile Sfruttando il core PowerPC integrato e la logica programmabile è possibile ottenere questo risultato IBM PPC405EP 52
Struttura Hardware Flexy opzionale Memorie DDR CPLD+Flash per configurazione FPGA e immagazzinamento firmware LAN opzionali PSU: da 5V genera tutte le tensioni necessarie PSU 53
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à Memorie DDR: SSTL-2 è lo standard elettrico per i segnali del bus Frequenze fino a 400MHz Flexy monta 2 componenti con frequenze di lavoro previste fino a 333MHz 54
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 Il fatto di avere solo due componenti rende meno critica la SI in quanto avremo quasi sempre una configurazione Point-to-Point, eccetto per le linee dati quando si trasferisce verso le memorie (1 punto a 2 punti) Non esiste “LA” soluzione, ma va valutato ogni caso distintamente: qui vediamo come tre scelte differenti portino comunque ad un sistema funzionante 55
solo terminazioni parallelo 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 Abbiamo realizzato una soluzione che garantisse un buon controllo sulla SI senza appensantire troppo il routing ed il numero di componenti necessari La simulazione di SI eseguita nell’ambito della realizzazione del master fornirà indicazioni su eventuali correzioni da apportare allo schema elettrico 56
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 57
Clock necessari su Flexy 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 Il clock in ingresso al FPGA viene internamente modificato attraverso dei PLL in base alle necessità Alcune specifiche implementazioni nel FPGA richiedono un clock in ingresso di almeno 100MHz, diversamente si uò abbassare la frequanza del clock esterno In base a queste specifiche si è cercata una soluzione che permetta di minimizzare i problemi di emissioni EM 58
implementazione di due alternative Soluzione realizzata implementazione di due alternative si sceglierà in base alle indicazioni dei test EMC Il generatore di clock esterno può essere montato in diversi modelli da 25, 50 o 100MHz (tutti pin-to-pin compatibili) Il FPGA prende il clock così com’è, mentre per i due PHY ci sono due alternative: Clock diviso opportunamente da CPLD già presente (riutilizzo risorse) Quarzi da 25MHz e non montare 0R per evitare propagazione sinusoide 59
Sistema di alimentazione TPS54310 3V3@3A 2V5@3A TPS54610 1V2@6A LP2996 1V25 Voltage Monitors Reference design di Texas Instruments per Virtex-4 (modificato) 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 Gli stadi di alimentazione sono sovradimensionati rispetto alle stime di assorbimento poichè esse dipendono in gran parte dalla logica implementata caso per caso nel FPGA Inoltre in questo modo si ottiene una PSU che non lavora al limite delle sue capacità -> più “fredda” Sempre consigliabile l’utilizzo di voltage monitors per rendere più “robusto” il sistema 2600mA 1.2V 2650mA 2.5V 1330mA 3.3V Assorbimento Tensione 60
caratteristiche condensatori reali 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 I condensatori reali presentano una frequenza di risonanza, alla quale è associata la loro impedenza minima Inoltre con il diminuire del valore di capacità abbiamo un aumento della frequenza di risonanza assieme ad un aumento dell’impedenza minima Esempio: C0G meglio di X7R ma solo valori molto piccoli (alte frequenze) 61
Bypass VCCO(2,5V) per FPGA Il sistema di condensatori prevede quantità sempre maggiori col diminuire del loro valore unitario (-> frequenza di lavoro) Complessivamente si cerca di tenere limpedenza al di sotto di una certa soglia nella banda di frequenze di interesse 62
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 Si cerca una disposizione dei componenti che riduca al massimo la sovrapposizione delle piste e dei gruppi di segnali relativi a diverse interfacce 63
Disposizione segnali su FPGA Raggruppamento per standard elettrici compatibili Ottimizzazione percorsi interni ed esterni tramite raggruppamento per componente Il dispositivo FPGA è diviso in banchi Tutti i pin di un banco devono avere standard elettrici compatibili tra loro: ad esempio stesso livello di tensione Ottimizzazione routing interno -> prestazioni migliori (frequenze massime maggiori); in alcuni casi sono indispensabili per il corretto funzionamento di determinate interfacce (vedi DDR) 64
Ipotesi di Placement VTT island sono le zone riservate alle terminazioni del bus DDR Si è cercato di evitare la sovrapposizione dei segnali Le LAN sono opzionali -> segnali anche sul connettore Zona riservata LAN: solo segnali destinati ai PHY per poter modificare il PCB (modello senza LAN) senza rifare tutto il routing ma solo eliminando le piste non necessarie Grazie all’adozione di una teconologia produttiva a fori ciechi è possibile sovrapporre componenti BGA ai connettori montati sull’altro lato del PCB 65
Conclusioni Progettazione / realizzazione Progetti Hi-Tech 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 ? 66