prof. ferrari claudio. in una stazione di lavaggio chimico lo stato del liquido utilizzato è...
TRANSCRIPT
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.
Truth TableL P T Y 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1
Prof. Ferrari Claudio
TPTLPLY
U2A
74LS08
1
23
U2B
74LS08
4
56
P
U3A
74LS32
1
23
T
Y
L
U1A
74LS04
1 2
U2C
74LS08
9
108
U3B
74LS32
4
56
1 1 U1 74LS042 1 U2 74LS083 1 U3 74LS32
Prof. Ferrari Claudio
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.
Prof. Ferrari Claudio
Svantaggi:apprendimento di un linguaggio di progettazionenecessità di disporre di potenti elaboratori elettronicicosti (inizialmente) più elevati rispetto a soluzioni tradizionali
Vantaggi: riprogrammabilità e non volatilitàriduzione dell'area occupata sullo stampatopiù affidabilità rispetto alle logiche tradizionaliridotto time-to-marketpossibilità di rimpiazzare le antiquate logiche tradizionali TTL/CMOSottimizzazione nella gestione dei magazzini componenti
FPD/PLD (Field Programmable Device/Programmable Logic Device): qualsiasi circuito integrato configurabile dall’utente per implementare hardware digitale
Prof. Ferrari Claudio
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)
Alcune definizioni . . .
Prof. Ferrari Claudio
FPGA (Field Programmable Gate Array): FPD con struttura molto versatile caratterizzati da un elevato livello di integrazione
Ancora definizioni . . .
CPLD (Complex PLD): tanti SPLD interconnessi mediante una matrice
Il mercato dei produttori di PLD (2008)
Prof. Ferrari Claudio
34%
30%
12%
12%
7% 2% 1% 1%1% Xilinx
Altera
Actel
Lattice
Agere
Quicklogic
Cypress
Philips
Altri
<= PLA (Programmable Logic Array)
PAL (Programmable Array Logic) =>
Prof. Ferrari Claudio
Architetture SPLD
Prof. Ferrari Claudio
PAL16L8 PAL16R8
Prof. Ferrari Claudio
Un CPLD è un dispositivo contenente più blocchi di tipo SPLD
Prof. Ferrari Claudio
Cos’è un CPLD
riuniti in un singolo chip
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-di-prodotti”
• 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
Prof. Ferrari Claudio
Programmazione di tipo HDL (Hardware Description Language)
• ABEL• AHDL• VHDL (IEEE 1076-2008)• Verilog (IEEE 1364-2001) - SystemVerilog 1800-2005
Applicativo grafico schematico
Programmazione strutturata
• SystemC
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
Prof. Ferrari Claudio
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.
VHDL: svantaggi
Differenti qualità di sintesi
L’efficacia della sintesi può variare a seconda delle impostazioni fissate per il processo di sintetizzazione
Prof. Ferrari Claudio
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 implementazioniEssendo 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
TPTLPLY
Descrizione strutturale
Descrizione dataflow
Prof. Ferrari Claudio
TPTLPLY
Descrizione comportamentale
Prof. Ferrari Claudio
TPTLPLY
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
Design entry
Behavioral
simulation
Synthesis
Implementation
Post-fit
simulation
Download
Design
library
Design
constraints
Prof. Ferrari Claudio
Flusso di progetto per PLD
Prof. Ferrari Claudio
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 “post-fit”
VHDL permette di descrivere test-bench, ovvero sequenze di ingresso che servono per testare la funzionalità del dispositivo sotto esame
Simulazione
per poi passare a verificare la corrispondenza delle uscite alle specifiche assegnate, per mezzo di tools grafici
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
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
Cos’è un FPGA
Prof. Ferrari Claudio
CLB a grana grossa Xilinx
CLB a grana fine
Actel
Prof. Ferrari Claudio
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.
Cos’è un PSoC
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
IP analogiche disponibili
Prof. Ferrari Claudio
Filters2 pole low-pass2 pole band-passModulatorsPeak detectors
AmplifiersProgrammable gain Instrumentation InvertingComparatorsHysteresisZero-crossing
ADC Delta-Sigma 12 to 20 bitSAR ADC (12 bits)Interlocking DACTrans Impedance AmplifierDigital Filter Block (DFB)
ADCsDelta-Sigma 6 to 14 bit Incremental 6 to 14 bit
DACs6, 8, and 9 bit6 and 8 bit multiplying
CapSense touch sensingV-to-I converter
ed inoltre, nei PSoc 3 e 5
IP digitali disponibili
Prof. Ferrari Claudio
Pseudo-Random Source (PRS)
Timers/Counters8, 16, and 24 bit
Pulse-Width Modulators (PWM)8, 16, and 24 bit8 and 16 bit dead band generators
Cyclic Redundancy Check (CRC)
Communications interfacesI2C master, slave, and multi-masterSPI master and slaveTx, Rx, and full-duplex UARTFull-speed USB 2.0
Primitives like AND, OR, XOR, LUT, etc.Quadrature encoder for motor controlCommunications Interfaces: CAN, I2S
ed inoltre, nei PSoc 3 e 5
RTOS Keil® RTX51Tiny™ Micrium® μc/OS-II™ Segger® embOS
e solamente nei PSoc 3 e 5
Communications interfaceWireless radio control
LIN busOptical cable conversion
Dual Tone Multi-Frequency (DTMF) dialerUSB 2.0
OtherMagnetic cord read/write
Mechanical buttons or other inputsLCD display/drive control
LED drive
Environmental sensingPressureHumidityCurrentAirflow
AccelerationTilt
Pyroelectric Infrared (PIR)Light
VoltageTemperature
InductiveGas
Liquid level
Fan/Motor ControlAC motorDC motor
FanFuel pump
Instrument gauges
Touch SensingCapSense capacitive sensing (buttons, sliders)
TouchscreensTrackpads
Proximity sensing
Power ControlBattery chargingVoltage & current
System powerAC power metering
Lighting
un PSoC mette a disposizione risorse per l’interfacciamento diretto a:
Prof. Ferrari Claudio
Inoltre . . .
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
PSoC DESIGNER™ – Software per PSoC 1 – Chip level
Prof. Ferrari Claudio
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
Table lookup: funzione che permette di assegnare all’uscita un valore per ciascuna combinazione possibile sugli ingressi
State machine: modello comportamentale costituito da stati, transizioni e azioni
Literal code: funzione che consente di scrivere codice in linguaggio C
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
Status encoder: funzione che genera l’uscita corrispondente alla combinazione di uno o più ingressi
Setpoint region: funzione che suddivide il range del segnale di ingresso in n zonePriority encoder:
funzione che genera l’uscita corrispondente all’ingresso prioritario
Loop delay: funzione che permette di confrontare il valore corrente con quello precedente
Prof. Ferrari Claudio
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
PSoC EXPRESS™: strumenti per la simulazione
Prof. Ferrari Claudio
Prof. Ferrari Claudio
Truth TableL P T Y 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1
Prof. Ferrari Claudio
La simulazione
L’implementazione
STARTER KITS : FirstTouch sistemi per valutare i PSoC in applicazioni quali:
• capacitive sense, • light sense, • wireless, • mixed-signal
Prof. Ferrari Claudio
Sistemi di sviluppo
EVALUATION AND DEVELOPMENT KITSKit 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