Transcript Diapositiva 1
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 contemporaneamente oltre la soglia.
livello Truth Table L 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
Y
L
P
L
T
P
T
Prof. Ferrari Claudio
L P T 1 U1A 2 74LS04 1 2 3 1 1 1 1 2 U2A 74LS08 3 4 5 U2B 74LS08 6 9 10 U2C 8 74LS08 U1 U2 U3 1 2 U3A 74LS32 3 74LS04 74LS08 74LS32 4 5 U3B 74LS32 6 Y
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.
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
12% 7% 12%
Il mercato dei produttori di PLD
(2008)
30% 34% Xilinx Altera Actel Lattice Agere Quicklogic Cypress Philips Altri
Prof. Ferrari Claudio
Architetture SPLD
<= PLA (Programmable Logic Array) PAL (Programmable Array Logic) => Prof. Ferrari Claudio
Prof. Ferrari Claudio
Prof. Ferrari Claudio PAL16L8 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-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
Prof. Ferrari Claudio Diagramma a blocchi del dispositivo Xilinx XC9500
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 Programmazione visuale • LabVIEW • Matlab • Simulink
Prof. Ferrari Claudio
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
Prof. Ferrari Claudio Descrizione strutturale
Y
L
P
L
T
P
T
Prof. Ferrari Claudio Descrizione dataflow
Y
L
P
L
T
P
T
Prof. Ferrari Claudio Descrizione comportamentale
Y
L
P
L
T
P
T
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 constraints Design library Design entry Synthesis Behavioral simulation 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
Prof. Ferrari Claudio Simulazione
VHDL permette di descrivere test- bench, esame ovvero sequenze di ingresso che servono per testare la funzionalità del dispositivo sotto per poi passare a verificare la corrispondenza delle uscite alle specifiche assegnate, per mezzo di tools grafici Simulazione “
post-fit
”
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
Prof. Ferrari Claudio
CLB a grana fine Actel
Cos’è un PSoC
La sigla PSoC (
Programmable System On a Chip
) prodotto di microprocessore e vari moduli sia analogici identifica un componente,
Cypress
sia digitali indipendentemente , che integra un (così configurabili 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
I 2 C master, slave, and multi-master SPI master and slave Tx, Rx, and full-duplex UART Full-speed USB 2.0
ed inoltre, nei PSoc 3 e 5
Primitives like AND, OR, XOR, LUT, etc.
Quadrature encoder for motor control Communications Interfaces: CAN, I 2 S
e solamente nei PSoc 3 e 5 RTOS
Keil® RTX51Tiny™ Micrium® μc/OS-II™ Segger® embOS
Prof. Ferrari Claudio
Inoltre . . .
un PSoC mette a disposizione risorse per l’interfacciamento diretto a:
Prof. Ferrari Claudio
Tilt Pyroelectric Infrared (PIR) Light Voltage Temperature Inductive Gas Liquid level
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
Prof. Ferrari Claudio PSoC DESIGNER™
– Software per PSoC 1 – Chip level
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 utilizzabili per acquisire/generare segnali. Un
driver
drivers
, è 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 mettono in relazione con gli
input drivers transfer functions,
che li Literal code che scrivere : funzione di delay : che encoder linguaggio C Setpoint region permette alla quello precedente di : il l’uscita corrispondente di all’uscita ingresso in n zone un : più ingressi valore per combinazione funzione possibile sugli ingressi 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
Prof. Ferrari Claudio
Truth Table L 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
L’implementazione
Prof. Ferrari Claudio
La simulazione
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