Estratto del documento

PROGETTAZIONE DI SISTEMI DIGITALI

28/9

Programma

• Progetto del sistema digitale: conoscere il usso progettuale (passi da percorrere per arrivare al progetto) e le tecnologie che

abbiamo a disposizione

• Componenti digitali: prestazioni, come sono fatti, punti di forza di una soluzione tecnologica; voglio conoscere quindi le tecnologie,

le prestazioni e le caratteristiche

Componenti discreti

◦ Componenti programmabili in software o in hardware (la funzione è programmata all’interno del dispo in una fase speci ca del

◦ progetto del dispo stesso)

‣ Hardware: PAL, PLD, FPGA

ASIC

• Metodologia di progetto: scelte da fare

Metodologie corrette ed errate

◦ Strumenti di CAD

• Collaudo progetto e del circuito(veri ca che il circuito non abbia problemi di fabbricazione)

Libro di testo: Digital Design Principle & Practice di John Wakely della Ed Pearson

• Altro libro vecchio per gli ASIC: ASIC M. Smith

Esame: orale + progetto

Utilizzo grandezze digitali

Binario:

• (1) per le variabili di tipo logico(vero,falso) e (2) la rappresentazione dei numeri

Variabili logiche: sviluppo algoritmi logici, quindi applicazioni di controllo —> l’obiettivo è sviluppare delle funzioni logiche

◦ Rappresentazione dei numeri: applicazioni di calcolo inteso come calcolo aritmetico e inteso come elaborazioni di segnali (ci

◦ sono poi applicazioni di controllo nelle quali è necessario fare del calcolo aritmetico (il con ne non è così rigido)) —> da queste

due applicazioni voglio sviluppare delle funzioni aritmetiche

Speci che di un’applicazione

• Certe speci che sono di cili da de nire a priori —> le speci che diventano adattive in funzione delle decisioni progettuali che

prendo durante la realizzazione del progetto (per il progetto da fare le speci che saranno note)

Cosa signi ca fare il progetto di un sistema digitale —> valutazione delle scelte di progetto per partizionare la funzione complessa che

abbiamo in mente in blocchi funzionali più semplici partizionamento

• La chiave del progetto digitale, partendo dalle speci che, è il —> ovvero partizionare il problema complesso in

funzioni più semplici interallacciate tra di loro —> dopo aver fatto il partizionamento si e ettua iterativamente la stessa operazione

gerarchia

sul blocco già partizionamento una volta —> si parla infatti di

• Vado quindi a frazionare la funzione complessa che abbiamo in mente in funzioni più elementari (che a sua volta possono essere

PARTIZIONAMENTO GERARCHICO

nuovamente suddivise) —> prende il nome di Si fa questo perché la sommatoria delle di coltà di progetto dei singoli

blocchi elementari è molto minore della di coltà dell’intero progetto

preso come un unico blocco —> inoltre, mi consente di ricondurmi a

dei blocchi noti già sviluppati magari in altri blocchi ed è anche più

facile andare a veri care il corretto funzionamento dei vari blocchi

partizionati rispetto a veri care il sistema complessivo

In questo modo poi è più facile anche andare a veri care la funzionalità dei singoli blocchetti partizionati che poi mettiamo insieme

veri cando l’interfaccia tra un blocco e l’altro piuttosto che e ettuare la veri ca sull’intero sistema nella sua complessità

Quindi questo è un processo che è adattivo in senso orizzontale (si può declinare in tante soluzioni diverse) ma lo è anche in senso

verticale(la gerarchia può variare in relazione alle scelte che facciamo)

Da questa struttura deriva una organizzazione strutturata, cioè i blocchi funzionali diventano delle strutture —> a questi blocchi

corrispondono delle funzioni ma anche delle strutture che realizzano quelle funzioni

Il partizionamento dove si ferma? Fino a gli elementi primitivi (es la standard cell che realizza una certa funzione) che dipende dalla

tecnologia realizzativa

• Le primitive sono quindi degli elementi che corrispondono a componenti sici

In funzione della complessità (crescente) si parte da (1) componenti discreti, (2) componenti programmabili(PAL, FPGA), (3) ASIC e (4)

circuiti general purpose (miliardi di transistor su un unico chip)

• Per quanto riguarda i componenti programmabili e gli ASIC è possibile arrivare anche ad una complessità simile a quella del general

purpose

Gli strumenti di CAD sono indispensabili anche per compiere l’operazione di partizionamento gerarchico —> il passaggio da un livello

sintesi.

ad un livello successivo (partizionato) prende il nome di Gli strumenti CAD si distinguono quindi in

• Strumenti di CAD di sintesi

• Strumenti di CAD di veri ca • Lo strumento di cad di veri ca va a controllare

sn che il risultato della sintesi veri chi le speci che

che avevo prima di e ettuare la partizione

• Il fatto che il risultato di questi strumenti sia

sempre lo stesso lo analizzeremo più in là (è una

cosa molto complicata)

30/9

Flusso del progetto

Fase 1 (Design Entry):

• descrivere il progetto, cioè trovare degli strumenti che ci consentono di identi care i vari blocchi e descrivere

le loro funzionalità con degli strumenti che ci permettono di creare un database sul quale opera lo strumento di CAD —> si va a

descrivere cosa fanno i vari blocchi

Fase 2 (Design Processing):

• devo scendere lungo la gerarchia per arrivare no all’espansione completa in termini di primitive —> si

esprime il blocco funzionale in una forma e struttura che realizzi esattamente quella funzione —> si utilizzano degli strumenti di CAD

di sintesi che ci permettono di partizionare sempre di più verso le primitive. Alla ne di questa fase abbiamo un insieme di primitive

opportunamente interconnesse tra di loro. Il processing ci indica che dobbiamo tenere conto delle scelte della tecnologia e quindi, di

conseguenza, le primitive che abbiamo a disposizione

Fase 3 (Silicon Mapping — Mappatura su Silicio):

• le primitive de nite si spostano direttamente su pezzi reali di silicio (es

posizionare un componente discreto sulla board, se invece considero una cella standard la devo posizionare sicamente su silicio).

Alla ne di questa fase il design è stato trasferito su una certa struttura tecnologica

Fase 4 (Design Veri cation):

• si e ettua la veri ca nale (validazione nale) —> devo assicurarmi che il progetto svolga le funzioni

che volevo e che soddis tutte le speci che

La fase 4 non necessariamente è solo in fondo, si fanno delle operazioni di veri ca anche nelle altre fasi —> nella fase 1 ad esempio,

quando penso ad una soluzione conviene andare a veri care con un’analisi che la soluzione scelta sia valida e funzionale e che quindi

rispetti le speci che (le veri che si possono fare anche su un sottoblocco del progetto)

• Se con la veri ca scopro che alcune speci che non sono rispettate allora devo tornare alla fase precedente e riprogettare di

due

Silicon e es

sintesi sono

Design Design

Design dovuto

all'opera

Entry Verification

Processing percorso

Mapping di verifica

a

a v

a v

va

e

Quindi per realizzare un progetto digitale si compie una serie di iterazioni no alla realizzazione completa del progetto

È possibile poi che, una volta fatto il design entry, in maniera automatica si possa passare nelle varie fasi —> lo strumento di cad a

disposizione parte dalle descrizioni che abbiamo fatto e in maniera automatica va a generare il dispo nale (accade questo nei

dispositivi programmabili) —> è comoda come soluzione ma devo fare attenzione che il CAD faccia le scelte giuste

Vado ora a dettagliare in maniera più precisa i passi di ogni fase

DESIGN ENTRY: si fa un’esplorazione delle possibili soluzioni progettuali e prima veri ca (è la fase più complicata e lunga), ci sono 2

strade per compiere questa fase:

• Schematico: si lavora con un foglio di disegno sul quale posizioniamo le primitive secondo la struttura che abbiamo generato e si

rappresentano con un simbolo gra co —> si va a costruire un diagramma a blocchi interconnesso del sistema

• Testuale: invece che de nire una primitiva con un simbolo gra co si de nisce una primitiva in forma testuale con una certa sintassi

I Y Testuale A

Schematico v1 B

Y

Eff FILII

Gnome

di

libreria

Con lo schematico vado a descrivere la struttura del circuito, con la forma testuale invece posso andare a de nire la funzione

indipendentemente

(comportamento) del circuito dalla struttura

É Testuale

Schematico Y A B

1

1 I

La forma testuale è più comoda quando il sistema è complesso, dove la forma schematica sarebbe troppo complessa

strumento di sintesi automatica

Nota: lo è uno strumento che dato il comportamento estrae la struttura sica, cioè prende la

descrizione comportamentale fatta nel design entry e la sbriciola in un insieme di primitive opportunamente connesse. Questo

strumento ci consente di sempli care (velocizzare) le operazioni di sintesi e quindi e ettuare delle descrizioni esclusivamente

comportamentali

• Vantaggi: (1) ci consente di fare delle veri che ad alto livello (simulo solo l’operazione, cioè il comportamento) che ci comporta di

poter fare delle veri che precoci ed eventualmente cambiare le scelte fatte all’inizio della progettazione (senza questo strumento

magari me ne sarei accorto nelle fasi successive e avrei perso molto tempo). (2) Inoltre, con questo strumento posso simulare sistemi

più complessi e poi (3) si ha anche l’indipendenza dalla tecnologia (che andiamo dopo a de nire)

• Svantaggi: (1) potrei però avere delle descrizioni che non sono sintetizzabili, (2) inoltre con la forma testuale perdo il controllo sulla

struttura del progetto, cioè perdo il controllo della realizzazione sica (se ad es lascio il compito di realizzare la struttura al

sintetizzatore, questo potrebbe realizzare una soluzione che non rispetta le speci che (ad esempio perché è troppo lento))

DESIGN PROCESSING: si utilizzano degli strumenti di CAD di sintesi che ci permettono di partizionare sempre di più no ad arrivare

alle primitive —> alla ne di questa fase abbiamo un’insieme di primitive interconnesse tra di loro

• Questa fase ci dice anche che dobbiamo tenere di conto delle scelte di tecnologie e quindi le primitive che abbiamo a disposizione

(che possono essere diverse a seconda della tecnologia utilizzata)

• Cosa fa il design processing? Si compie la sintesi di tutte le descrizioni funzionali in strutture e poi fa una valutazione di come sono

netlist

queste strutture in termini di primitive —> no ad arrivare alla del circuito (la netlist descrive sia tutti i nodi che le

interconnessioni —> dalla netlist ho tutte le info necessarie per trasferire poi il circuito su silicio)

SILICON MAPPING: è la fase di mappatura su silicio, dove le primitive de nite si spostano direttamente su pezzetti di silicio reali —>

alla ne di questo processo abbiamo il design completo (il design è stato trasferito su una certa struttura tecnologica e ad esempio

possiamo avere la board con i componenti discreti, il layout del circuito integrato etc). Questa fase parte dalla netlist e poi si piazzano i

vari dispositivi sulla board e si e ettuano le interconnessioni —> questa fase dipende fortemente dalla tecnologia utilizzata (anche la

parte nale della sintesi dipende dalla tecnologia)

• Il mapping fa le operazioni di PLACEMENT(piazzamento) e ROUTING(interconnessioni) (es KiCAD)

• Per i circuiti programmabili, essendo dei circuiti integrati già preparati, può accadere che sia necessario utilizzare un certo numero

dei componenti (es ip op) maggiore di quelli presenti sul chip —> si deve quindi fare un’operazione di partizionamento (es utilizzo

device partitioning

tutti i ip- op di un chip e alcuni ip- op di un altro chip), si fa quindi il

DESIGN VERIFICATION: è la fase di veri ca nale che l’obbiettivo raggiunto sia corretto. In realtà per ogni passo di progetto devo

veri care che siano sempre veri cate le speci che —> si fa quindi il design veri cation a tutti i livelli del progetto (guardare percorsi in

verde e in rosso) —> allora il progetto digitale diventa una serie di iterazioni tra i vari blocchi no a dopo la veri ca nale. Alla ne di

questa fase il progetto è convalidato (il progetto può essere prodotto)

strumenti principali di veri ca

Gli sono i simulatori

• Cosa signi ca simulare un circuito elettronico? Utilizzo un modello per compiere l’operazione di simulazione (es un modello può

essere un insieme di equazioni) —> al modello poi aggiungo degli ingressi e poi vado vedere come risponde l’uscita. Problema: (1) la

risposta della simulazione dipende dal modello della simulazione (ad es un modello può non tenere di conto di tutti i fenomeni in

gioco, (2) inoltre l’OUT dipende dalla sequenza degli ingressi che metto e se gli IN non stimolano correttamente tutto il circuito vado

a fare una simulazione non completa (voglio stimolare il circuito in tutti i modi di funzionamento)

• Il modello deve quindi essere a dabile, gli IN devono essere validi, cioè tali che stimolano il circuito in tutte le sue caratteristiche —>

in questo modo posso validare o no il circuito

• Le grandezze in gioco sono tensioni e correnti —> se voglio fare una simulazione accurata devo utilizzare un modello elettrico

circuitale —> la complessità con questo modello è elevata e i tempi di simulazione diventano troppo lunghi —> devo scalare il

modello da un modello elettrico ad un modello logico

del

nodi circuito

su che sono

A

Valige obbligato a

fare

modello

approx

logico se

e

Rappresento il circuito elettrico dell’invertitore con la sua

fa struttura logica (NOT) senza incorrere in errori signi cativi

ti ha semplificazione

_poi grande

si

vaffg.vn una

• Si fa una rappresentazione logica anche per l’uscita (come per la V (t))

A

Se faccio questo passaggio da ambiente elettrico a ambiente logico allora i modelli in gioco non sono più quelli dei transistori e quindi

non abbiamo più a che fare con grandezze continue ma sono livelli logici —> si sempli ca la complessità della simulazione

• Possiamo individuare un ritardo di propagazione in salita e in discesa: t e t —> sono i parametri di timing che caratterizzano la

PLH PHL

primitiva

Si fa quindi una simulazione logica: le grandezze sono logiche, che tipo di simulazioni logiche ci sono?

Simulazione funzionale:

• si vanno a stimolare tutti gli elementi (primitive, blocchi etc) con degli ingressi e si va a vedere come

rispondono le uscite, trascurando ogni indicazione relativa al timing della struttura —> si trascura il timing perché nché non si

conoscono la struttura e la tecnologia utilizzata non possiamo sapere nulla sul timing. Si fa questa simulazione (1) per capire se il

comportamento logico (funzionale) dell’oggetto è corretto oppure no a prescindere dal timing e (2) se riesce poi a validare scelte

progettuali

Non avere info sul timing rappresenta uno svantaggio —> in realtà infatti si fa una successione di simulazioni, si parte con la

◦ simulazione funzionale per scegliere l’architettura e dopo la mappatura su silicio si fa una simulazione timing

Simulazione timing:

• si ottengono delle informazioni sul timing delle primitive —> si evidenziano le evoluzioni temporali dei fronti

logici e si mettono eventualmente in evidenzia delle criticità timing che non si riescono a vedere con la simulazione funzionale

Immagino di avere una macchina a stati niti, cioè un circuito sequenziale sincrono (ricordo macchina di moore —> le OUT dipendono

solo dagli stati)

• La simulazione funzionale ci da l’andamento delle uscite in corrispondenza del fronte del ck (trascurando il timing) —> la simulazione

timing ci consente di vedere che le uscite variano con un certo ritardo rispetto al fronte di clock

CK Tipicamente nei simulatori timing il

modello prevede un ritardo minimo e

funzionale

Simulazione uno massimo e quindi si fanno delle

simulazioni timing in condizioni di

ritardo minimo e massimo

timing

Simulazione

ritardo tutti

dovuto

t etc

ta tempi dipropagaz

a rise

i

Considero un’uscita Q 1 Questo andamento dell’uscita può essere dovuto al fatto che due segnali in IN ad una porta

percorrono due strade diverse e quindi arrivano all’IN della porta in due tempi diversi oppure

può essere dovuto al problema dell’alea, cioè quando il segnale commuta momentaneamente

ad un valore per poi tornare allo stato di partenza

• In certi casi questo fenomeno può essere un problema, ad es quando questo segnale va in

IN ad un contatore

• Un errore di questo tipo non emerge nella simulazione funzionale —> quindi abbiamo

dimostrato che sono necessarie anche le simulazioni di timing

Scelta degli IN: è di cile trovare degli ingressi che soddisfano completamente tutte le richieste

• Si dovrebbero provare tutte le combinazioni logiche degli IN (collaudo esaustivo) ma se questi IN sono tanti (1024) diventa una

simulazione troppo lunga (oltre a tutte le combinazioni degli ingressi devo considerare tutte le combinazioni degli stati) —> questa

caratteristica (negativa) ci spinge a sfruttare il partizionamento gerarchico che ci sempli ca molto le simulazioni

Per quanto riguarda il modello ci diamo di quello che ci da il costruttore dei dispositivi —> il costruttore ci fornisce i modelli in

condizioni di timing minimo, tipico e massimo (anche il costruttore di componenti programmabili fornisce un modello timing)

Strumento CAD: ci consente di fare lo schematico, ci consente di utilizzare un linguaggio (VHDL/Verilog) e ci consente di e ettuare il

progetto con un

Anteprima
Vedrai una selezione di 10 pagine su 196
Progettazione di Sistemi Digitali Pag. 1 Progettazione di Sistemi Digitali Pag. 2
Anteprima di 10 pagg. su 196.
Scarica il documento per vederlo tutto.
Progettazione di Sistemi Digitali Pag. 6
Anteprima di 10 pagg. su 196.
Scarica il documento per vederlo tutto.
Progettazione di Sistemi Digitali Pag. 11
Anteprima di 10 pagg. su 196.
Scarica il documento per vederlo tutto.
Progettazione di Sistemi Digitali Pag. 16
Anteprima di 10 pagg. su 196.
Scarica il documento per vederlo tutto.
Progettazione di Sistemi Digitali Pag. 21
Anteprima di 10 pagg. su 196.
Scarica il documento per vederlo tutto.
Progettazione di Sistemi Digitali Pag. 26
Anteprima di 10 pagg. su 196.
Scarica il documento per vederlo tutto.
Progettazione di Sistemi Digitali Pag. 31
Anteprima di 10 pagg. su 196.
Scarica il documento per vederlo tutto.
Progettazione di Sistemi Digitali Pag. 36
Anteprima di 10 pagg. su 196.
Scarica il documento per vederlo tutto.
Progettazione di Sistemi Digitali Pag. 41
1 su 196
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher simonehouriya31 di informazioni apprese con la frequenza delle lezioni di Progettazione di Sistemi digitali e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Pisa o del prof Scienze matematiche Prof.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community