Prof. Ferrari Claudio - · PDF fileQuicklogic Cypress Philips Altri

52
Prof. Ferrari Claudio

Transcript of Prof. Ferrari Claudio - · PDF fileQuicklogic Cypress Philips Altri

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 numerosiflip-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 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

TPTLPLY ⋅+⋅+⋅=

Descrizione strutturale

Descrizione dataflow

Prof. Ferrari Claudio

TPTLPLY ⋅+⋅+⋅=

Descrizione comportamentale

Prof. Ferrari Claudio

TPTLPLY ⋅+⋅+⋅=

Prof. Ferrari Claudio

Descrizione strutturale Descrizione dataflow Descrizi one 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 lacorrispondenza 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-intest (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 LogicBlock), 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 gainInstrumentationInvertingComparatorsHysteresisZero-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

RTOSKeil® 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 : FirstTouchsistemi 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