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
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Progettazione Concettuale
-
Progettazione termotecnica
-
Domande con risposte Progettazione sistemi digitali, prof. Gorla
-
Progettazione di sistemi informativi