Prof. Ferrari Claudio In una stazione di lavaggio chimico lo stato del liquido utilizzato è monitorato mediante tre sensori che ne rilevano il livello (L), la pressione (P) e la temperatura (T). Ciascun sensore presenta in uscita un segnale a livello alto quando la grandezza fisica che rileva sorpassa una soglia prefissata. Si vuole progettare una rete in grado di produrre un segnale a livello alto (Y) quando si verifica una qualsiasi delle seguenti condizioni anomale: • temperatura oltre la soglia con livello sotto la soglia; • pressione oltre la soglia con livello sotto la soglia; • pressione, temperatura e livello contemporaneamente oltre la soglia. Prof. Ferrari Claudio Truth Table LPT Y 000 0 001 1 010 1 011 1 100 0 101 0 110 0 111 1 Y L P L T P T U1A L 1 2 U2A 74LS04 1 3 P 2 U3A 74LS08 T 1 3 2 U2B 4 74LS32 6 5 74LS08 U3B 4 U2C 6 9 5 8 10 74LS32 74LS08 1 2 3 Prof. Ferrari Claudio 1 1 1 U1 U2 U3 74LS04 74LS08 74LS32 Y Nei primi anni ’70 fecero la comparsa sul mercato dei dispositivi elettronici digitali che permettevano la realizzazione di funzioni combinatorie e/o sequenziali nello stesso circuito integrato. Vantaggi: riprogrammabilità e non volatilità riduzione dell'area occupata sullo stampato più affidabilità rispetto alle logiche tradizionali ridotto time-to-market possibilità di rimpiazzare le antiquate logiche tradizionali TTL/CMOS ottimizzazione nella gestione dei magazzini componenti Svantaggi: apprendimento di un linguaggio di progettazione necessità di disporre di potenti elaboratori elettronici costi (inizialmente) più elevati rispetto a soluzioni tradizionali Prof. Ferrari Claudio Alcune definizioni . . . FPD/PLD (Field Programmable Device/Programmable Logic Device): qualsiasi circuito integrato configurabile dall’utente per implementare hardware digitale PLA (Programmable Logic Array): il più semplice PLD formato da matrici di porte AND e OR le cui connessioni sono programmabili, al fine di ottenere funzioni logiche rappresentabili come somma di prodotti PAL (Programmable Array Logic): dispositivi con matrice AND programmabile e matrice OR fissa SPLD (Simple PLD): qualsiasi semplice PLD con relative variazioni (ad esempio aggiunta di flip-flop) Prof. Ferrari Claudio Ancora definizioni . . . CPLD (Complex PLD): tanti SPLD interconnessi mediante una matrice FPGA (Field Programmable Gate Array): FPD con struttura molto versatile caratterizzati da un elevato livello di integrazione Prof. Ferrari Claudio Il mercato dei produttori di PLD 7% (2008) Xilinx 2% 1% 1%1% Altera 34% 12% Actel Lattice Agere Quicklogic 12% Cypress Philips 30% Prof. Ferrari Claudio Altri Architetture SPLD <= PLA (Programmable Logic Array) PAL (Programmable Array Logic) => Prof. Ferrari Claudio Prof. Ferrari Claudio PAL16L8 Prof. Ferrari Claudio PAL16R8 Cos’è un CPLD Un CPLD è un dispositivo contenente più blocchi di tipo SPLD riuniti in un singolo chip Prof. Ferrari Claudio Caratteristiche CPLD Principali produttori: Altera, Xilinx Un CPLD può arrivare a contenere qualche decina di SPLD Applicazioni tipiche CPLD: • quando è richiesta alta velocità (ritardi inferiori a 10 nsec) e predicibilità • quando il progetto si presta bene ad una implementazione “somma-diprodotti” • controllori: grafici, LAN, UART, per CACHE Come regola generale i CPLD si utilizzano nelle applicazioni in cui è richiesto un uso esteso di porte AND/OR e non occorrono numerosi flip-flop (presenti in minima quantità) Prof. Ferrari Claudio Diagramma a blocchi del dispositivo Xilinx XC9500 Prof. Ferrari Claudio Prof. Ferrari Claudio La programmazione dei PLD Applicativo grafico schematico Programmazione di tipo HDL (Hardware Description Language) • • • • ABEL AHDL VHDL (IEEE 1076-2008) Verilog (IEEE 1364-2001) - SystemVerilog 1800-2005 Programmazione strutturata • SystemC Prof. Ferrari Claudio Programmazione visuale • LabVIEW • Matlab • Simulink VHDL: vantaggi Potenza e flessibilità VHDL permette di descrivere circuiti complessi con relativa semplicità; consente inoltre di descrivere gli stimoli utilizzati nella simulazione del progetto Portabilità Il VHDL è un linguaggio standard e quindi consente di esportare il codice da un sintetizzatore (e/o un simulatore) all’altro Progettazione indipendente dal dispositivo La portabilità consente di valutare le prestazioni di un progetto su componenti diversi. Prof. Ferrari Claudio VHDL: svantaggi Differenti qualità di sintesi L’efficacia della sintesi può variare a seconda delle impostazioni fissate per il processo di sintetizzazione Difficoltà di controllo dell’implementazione L’utilizzo di costrutti astratti (clausole if, case, when..) non consente di controllare l’implementazione di un progetto a livello di gate Possibile inefficienza delle implementazioni Essendo il risultato dell’implementazione dipendente dalla strategia scelta, occorre conoscere le peculiarità delle tante strategie di norma disponibili Prof. Ferrari Claudio Entity, architecture e design Prof. Ferrari Claudio Y L P L T P T Descrizione strutturale Prof. Ferrari Claudio Y L P L T P T Descrizione dataflow Prof. Ferrari Claudio Y L P L T P T Descrizione comportamentale Prof. Ferrari Claudio Descrizione strutturale Descrizione dataflow Descrizione comportamentale il VHDL consente di utilizzare nella definizione dell’architettura una qualsiasi combinazione dei tre stili e a ciascuna descrizione corrisponderà un’implementazione hardware che opererà parallelamente (o “concorrentemente”) alle altre Prof. Ferrari Claudio Design entry Design constraints Synthesis Behavioral Design simulation library Implementation Post-fit simulation Download Prof. Ferrari Claudio Flusso di progetto per PLD Due fasi fondamentali . . . Sintesi: procedimento software che converte la descrizione comportamentale in una descrizione strutturale, in cui vengono utilizzate esclusivamente porte logiche elementari Prof. Ferrari Claudio Implementazione: procedimento software che converte la descrizione strutturale in una descrizione fisica valida per il dispositivo scelto, generandone il relativo file di programmazione. N PPMAP 1 1* N PPMAP 11 11* N PPMAP 12 12* N PPMAP 13 13* N PPMAP 14 14* N PPMAP 18 18* N PPMAP 19 19* N PPMAP 2 2* N PPMAP 20 20* N PPMAP 22 22* .... L0000000 00000011 00000011 00000011 00000011 00000011* L0000040 00000011 00000011 00000011 00000011 000000* L0000078 000000 000000 000000 000000 000000* L0000108 00000011 00000011 00000011 00000011 00000011* L0000148 10000011 10000011 00000011 00000011 000000* L0000186 000000 000000 000000 000000 000000* L0000216 00000011 00000011 00000011 00000011 00000011* L0000256 00000011 00000011 00000011 00000011 000000* L0000294 000000 000000 000000 000000 000000* .... Prof. Ferrari Claudio Simulazione VHDL permette di descrivere testbench, ovvero sequenze di ingresso che servono per testare la funzionalità del dispositivo sotto esame per poi passare a verificare la corrispondenza delle uscite alle specifiche assegnate, per mezzo di tools grafici Simulazione “post-fit” Prof. Ferrari Claudio Download / debug Il JTAG (Joint Test Action Group) è un protocollo di tipo industriale sviluppato per accedere in modalità seriale a segnali e punti di test di un circuito elettronico durante le procedure di built-in test (o debugging) e programmazione. Principalmente permette di: • eseguire il test delle connessioni tra uno o più dispositivi JTAG e tutto ciò che ad essi è collegato; • programmare/riconfigurare in-circuit; • effettuare il debugging del programma (o dell’architettura) trasferito sul chip conformemente alle specifiche fornite, in base a un modello o a vettori di test. Prof. Ferrari Claudio Attualmente sempre più circuiti integrati contengono un modulo di supervisione e di controllo remoto accessibile tramite l’interfaccia JTAG Prof. Ferrari Claudio Prof. Ferrari Claudio Cos’è un FPGA Un FPGA è un componente integrato al cui interno è replicato fino a migliaia di volte un circuito digitale denominato CLB (Configurable Logic Block), nel quale sono svolte funzioni logiche di base Prof. Ferrari Claudio CLB a grana grossa Xilinx CLB a grana fine Actel Prof. Ferrari Claudio Cos’è un PSoC La sigla PSoC (Programmable System On a Chip) identifica un componente, prodotto di Cypress, che integra un microprocessore e vari moduli sia analogici sia digitali configurabili indipendentemente (così come le relative interconnessioni), al fine di sostituire con un singolo chip più blocchi funzionali. La piattaforma mette a disposizione un vasto insieme di IP (proprietà intellettuali) testate sotto forma di blocchi analogici, digitali e di interfaccia precostruiti . . . Prof. Ferrari Claudio nonchè tre tipologie di processori Prof. Ferrari Claudio Prof. Ferrari Claudio Prof. Ferrari Claudio IP analogiche disponibili ADCs Delta-Sigma 6 to 14 bit Incremental 6 to 14 bit DACs 6, 8, and 9 bit 6 and 8 bit multiplying Filters 2 pole low-pass 2 pole band-pass Modulators Peak detectors CapSense touch sensing V-to-I converter Prof. Ferrari Claudio Amplifiers Programmable gain Instrumentation Inverting Comparators Hysteresis Zero-crossing ed inoltre, nei PSoc 3 e 5 ADC Delta-Sigma 12 to 20 bit SAR ADC (12 bits) Interlocking DAC Trans Impedance Amplifier Digital Filter Block (DFB) IP digitali disponibili Timers/Counters 8, 16, and 24 bit Pulse-Width Modulators (PWM) 8, 16, and 24 bit 8 and 16 bit dead band generators Pseudo-Random Source (PRS) Cyclic Redundancy Check (CRC) Communications interfaces I2C master, slave, and multi-master SPI master and slave Tx, Rx, and full-duplex UART Full-speed USB 2.0 Prof. Ferrari Claudio ed inoltre, nei PSoc 3 e 5 Primitives like AND, OR, XOR, LUT, etc. Quadrature encoder for motor control Communications Interfaces: CAN, I2S e solamente nei PSoc 3 e 5 RTOS Keil® RTX51Tiny™ Micrium® μc/OS-II™ Segger® embOS Inoltre . . . un PSoC mette a disposizione risorse per l’interfacciamento diretto a: Communications Environmental Fan/Motor Power Touch Control Sensing Control sensing interface Other CapSense Wireless capacitive Battery Pressure AC radio motor charging sensing control (buttons, sliders) Magnetic cord read/write Voltage Touchscreens DC Humidity LINmotor &bus current Mechanical buttons or other inputs Optical System cable Current Trackpads Fan power conversion LCD display/drive control Dual Tone Multi-Frequency ACProximity power Fuel Airflow pump metering sensing (DTMF) dialer LED drive Instrument Acceleration USB Lighting 2.0 gauges Tilt Pyroelectric Infrared (PIR) Light Voltage Temperature Inductive Gas Liquid level Prof. Ferrari Claudio PSoC CREATOR™ – Software per PSoC 3 e PSoC 5 Step 1: scelta e configurazione hardware dei dispositivi on-chip da implementare Prof. Ferrari Claudio PSoC CREATOR™ – Software per PSoC 3 e PSoC 5 Step 2: scrittura dell’applicativo in linguaggio C utilizzando istruzioni e compilatori standard Prof. Ferrari Claudio PSoC DESIGNER™ – Software per PSoC 1 – Chip level Prof. Ferrari Claudio PSoC DESIGNER™ – Software per PSoC 1 – System level = PSoC EXPRESS™ Prof. Ferrari Claudio PSoC EXPRESS™: elementi fondamentali per la progettazione PSoC Express mette a disposizione un catalogo di dispositivi, detti drivers, utilizzabili per acquisire/generare segnali. Un driver è associato ad un dispositivo hardware, quale ad esempio un sensore di temperatura. input/output input output interface Prof. Ferrari Claudio PSoC EXPRESS™: elementi fondamentali per la progettazione Gli output drivers sono pilotati mediante transfer functions, che li mettono in relazione con gli input drivers Literal code: funzione Loop delay: che consente funzione di che Status scrivere codice permette in encoder: di funzione che genera linguaggio C confrontare il l’uscita valorecorrispondente corrente con Setpoint region: Table lookup: funzione che di allaquello combinazione precedente funzione che suddivide State machine: modello permette assegnare uno odipiù ingressi il rangeall’uscita del segnale comportamentale costituito un divalore per ingresso in n zone da stati, transizioni e azioni ciascuna combinazione Priority encoder: sugli ingressi funzione possibile che genera l’uscita corrispondente all’ingresso prioritario Prof. Ferrari Claudio PSoC EXPRESS™: strumenti per la simulazione Durante la simulazione, a ciascun elemento viene associato un “widget” che permette di manipolare gli input e di verificare conseguentemente che il progetto funzioni come desiderato Prof. Ferrari Claudio Prof. Ferrari Claudio Truth Table LPT Y 000 0 001 1 010 1 011 1 100 0 101 0 110 0 111 1 Prof. Ferrari Claudio La simulazione L’implementazione Prof. Ferrari Claudio Sistemi di sviluppo STARTER KITS : FirstTouch sistemi per valutare i PSoC in applicazioni quali: • capacitive sense, • light sense, • wireless, • mixed-signal EVALUATION AND DEVELOPMENT KITS Kit che permettono di testare rapidamente i progetti sviluppati; ciascun kit comprende un programmatore MiniProg Prof. Ferrari Claudio FirstTouch Prof. Ferrari Claudio Evaluation and development kit Prof. Ferrari Claudio Prof. Ferrari Claudio