Diapositiva 1

Download Report

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