Corso di laurea in Ingegneria Elettronica Tesi di laurea magistrale Sviluppo di un ambiente di progettazione automatica di circuiti analogici Relatori: Prof. Leonardo M. Reyneri Prof. Dante Del Corso Candidato: Musumeci Domenico Onorio
I sistemi elettronici misti Si definiscono Misti o Ibridi quei sistemi elettronici composti da parti hardware, da parti software e dalle relative interfacce. Il progettista di sistemi Misti deve possedere competenze sia nell’ambito hardware che in quello software. Negli ultimi anni sono stati sviluppati strumenti specifici per aiutare il progettista nella co-progettazione (o co-design) di sistemi misti. 23/10/2019
La co-progettazione di sistemi misti Gli strumenti di ausilio alla co-progettazione sono detti CAD (Computer-Aided Design). Permettono di seguire l’evoluzione del progetto dal suo concepimento fino alla sua implementazione finale. 23/10/2019
CodeSimulink (1) CodeSimulink è uno strumento di co-progettazione hardware/software sviluppato dal Dipartimento di Elettronica del Politecnico di Torino. Utilizza SimulinkTM come interfaccia utente e strumento di simulazione. I blocchi CodeSimulink possono emulare uno stesso sistema sotto l’aspetto software, hardware digitale o hardware analogico. 23/10/2019
CodeSimulink (2) L’ambiente permette di ottenere in simulazione: Un’analisi funzionale del sistema; Un’analisi delle prestazioni (consumi, velocità) del sistema; È inoltre possibile tradurre un diagramma CodeSimulink in una descrizione in linguaggio C o VHDL a seconda dell’implementazione dei blocchi. 23/10/2019
Gli obiettivi della Tesi (1) Il progetto si propone di estendere le capacità di CodeSimulink nell’ambito della progettazione hardware analogica, nello specifico si desidera: Associare ai blocchi CodeSimulink descritti in hardware analogico i corrispondenti circuiti emulati. 23/10/2019
Gli obiettivi della Tesi (2) Determinare degli algoritmi per scegliere i componenti elettronici più adatti a realizzare i circuiti analogici; Realizzare un compilatore che permetta di tradurre un diagramma CodeSimulink in un linguaggio di programmazione compatibile con la descrizione hardware analogica. 23/10/2019
I circuiti analogici equivalenti (1) Per emulare un circuito elettronico nei blocchi CodeSimulink sono stati implementati dei modelli di simulazione che utilizzano determinati parametri inclusi nel blocco. Per risalire al circuito analogico equivalente ad un blocco CodeSimulink bisogna conoscere: La funzione del blocco all’interno del diagramma. Il valore dei parametri di descrizione analogica utilizzati per emulare il circuito reale. 23/10/2019
I circuiti analogici equivalenti (2) Alcuni blocchi CodeSimulink si possono comportare come diversi circuiti analogici al variare dei parametri. Il blocco sim_gain moltiplica un segnale d’ingresso per una valore costante, chiamato gain. È assimilabile ad un circuito di amplificazione, ma: se gain > 1 il blocco è equivalente ad un amplificatore non invertente; se gain < 0 il blocco è equivalente ad un amplificatore invertente; se 0 < gain < 1 il blocco è equivalente ad un partitore di tensione; 23/10/2019
Gli algoritmi di ricerca (1) Per determinare i componenti analogici da utilizzare è necessario conoscere: I parametri di emulazione del circuito analogico che descrivono il comportamento del blocco in simulazione. I parametri analogici che definiscono i componenti, generalmente indicati nei relativi datasheet. Utilizzando le formule specifiche del circuito è possibile confrontare i parametri e selezionare i componenti adatti. 23/10/2019
Gli algoritmi di ricerca (2) I parametri di emulazione analogica vengono estratti dai blocchi CodeSimulink I parametri del componente sono riportati in un database realizzato appositamente Un programma estrae i dati e li elabora con le formule specifiche del circuito Utilizzando degli algoritmi di confronto vengono definite le liste di componenti che permettono di realizzare fisicamente il circuito emulato da CodeSimulink 23/10/2019
Gli algoritmi di ricerca (3) Algoritmo di confronto Dev_Offset < Sim_Offset Parametri di emulazione analogica Lista componenti Formule del circuito Dev_Offset = A x Dev_Vos + R2 x Ibias Parametri dei componenti 23/10/2019
Le interfacce componenti Per visualizzare i componenti ed i parametri analogici scelti si utilizzano delle finestre di dialogo realizzate in codice MATLABTM. Il pulsante Find Comp. avvia la ricerca dei componenti necessari per realizzare fisicamente il circuito. Quelli utilizzabili verranno elencati nei menù a tendina. 23/10/2019
Il pulsante Cheap Il pulsante Cheap include nella lista di componenti utilizzabili solamente quelli di prezzo minimo. 23/10/2019
Il pulsante Help Il pulsante Help visualizza la documentazione per la ricerca dei componenti del blocco (circuito equivalente e descrizione) nel browser di default. 23/10/2019
I compilatori presenti CodeSimulink è in grado di tradurre un diagramma a blocchi in un linguaggio di descrizione appropriato per la tecnologia che lo caratterizza. Per una descrizione software è prevista una traduzione in linguaggio C; Per una descrizione hardware digitale è prevista una traduzione in linguaggio VHDL; 23/10/2019
Il compilatore hardware analogico (1) Il compilatore hardware analogico genera un file circuito (con estensione .cir) simulabile con una qualsiasi versione di SPICE. È necessario che ad ogni blocco CodeSimulink del diagramma sia stato associato il corrispondente circuito analogico e ne siano stati ricavati i componenti. Solo così ogni blocco può essere visto come un sottocircuito (sub-circuit) dal compilatore. 23/10/2019
Il compilatore hardware analogico (2) Il compilatore verifica che tutti i blocchi CodeSimulink siano stati descritti in hardware analogico Viene ricavata la netlist del diagramma a blocchi Viene generato il file circuito (.cir) associando ad ogni blocco il corrispondente sub-circuit di SPICE 23/10/2019
Risultati compilazione analogica Modello CodeSimulink Simulazione SPICE Simulazione MATLABTM Circuito equivalente 23/10/2019
Blocchi CodeSimulink descritti In tabella sono riportati i blocchi CodeSimulink a cui sono stati associati dei circuiti equivalenti. Nome blocco CodeSimulink Circuito/i equivalente/i sim_gain Ampl. non invertente, ampl. invertente, partitore di tensione sim_sum2 Ampl. differenziale, sommatore invertente, sommatore non invertente sim_constant Partitore di tensione (sull’alimentazione) sim_zoh Sample & Hold 23/10/2019
Problemi & Soluzioni (1) Problema: i parametri analogici specifici dei componenti sono presenti all’interno dei datasheet. Soluzione: si sono riportati i principali parametri in un database. Per velocizzare il lavoro, i dati sono stati presi dalle tabelle componenti messe a disposizione delle aziende e non dai datasheet. Problema: non esistono tabelle con i parametri analogici dei di Sample & Hold. Soluzione: si è realizzato una tabella apposita estraendo i dati dai datasheet dei S/H in commercio. 23/10/2019
Problemi & Soluzioni (2) Problema: non esistono modelli SPICE specifici dei Sample & Hold. Soluzione: si è realizzato un modello SPICE del S/H comune per tutti i dispositivi del database. Avendo valenza generale non caratterizza in modo specifico i differenti dispositivi. Problema: inizialmente era prevista una sintesi automatica del circuito equivalente su PCB. Soluzione: il passaggio al file circuito (.cir) è il primo passo svolto in questa direzione, ma sono necessarie ulteriori informazioni sui singoli componenti attualmente non incluse nel database. 23/10/2019
Sviluppi Futuri Descrizione analogica di altri blocchi CodeSimulink. Aggiunta di ulteriori circuiti analogici ai blocchi trattati. Realizzazione di un database attraverso l’estrazione automatica dei dati dalle pagine web. Sintesi automatica di un diagramma CodeSimulink su circuito stampato. 23/10/2019
Conclusioni Con questa tesi si è verificata la fattibilità di realizzare un ambiente che permetta di progettare in modo automatico circuiti analogici. Alcuni dei problemi incontrati durante lo svolgimento della tesi costituiranno un punto di partenza per ulteriori sviluppi di CodeSimulink nell’ambito della progettazione analogica. 23/10/2019
23/10/2019