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
Scarica

L`elettronica allo stato dell`arte: i CPLD e i PSoC