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.
vuoi
o PayPal
tutte le volte che vuoi
24/09/18
13a lezione
Accenni al VLSI, alla legge di Moore, allo sviluppo dei processi tecnologici:
- legge esponenziale che lega il n° di transistori
- sui wafer di silicio
Per realizzare ASIC si sfruttano componenti discreti o componenti off the shelf. Il costo di un sistema integrato dipende dalla quantità prodotta (costi ricorrenti) e infatti ci sono i costi manifatturieri. A questi vanno aggiunti i costi delle maschere, che vanno nella sottosezione dei costi non ricorrenti.
Cs = CI + CV + CL con N volume di produzione
- CV costi variabili
- CF costi fissi
- CT costo totale
ma CV = Cpackage + Ctest + Cprocesso
Cprocesso = Cwafer / (mC Vx)
dove mC è il n° di chip presenti sul wafer mentre Vx è la resa legata alla progettazioni di maschera - utilizzo degli stessi chip su wafer di silicio.
mC = Aw / AC = area del chip
e
Vx = e-ΛD dove D è il n° medio di difetti per cm2 (0.3 / 1.0 cm2)
Cprocesso = Cwafer Aw AC Λ D
I costi di processo dipendono dall’area dei chip.
Il costo totale è quindi dato da:
Cf + Ct/N + Cpackage + Ctest + Cvalex ΔEA-S
la scelta di componenti integrati o distribuiti dipende anche dalla scelta di pseudo mon, quindi di questi costi.
Le maschere definiscono l'insieme delle strutture che, una volta trasferite nel wafer di silicio, formano strato su strato i diversi elementi dei dispositivi elettronici e le inter connessioni. Affinché il circuito sia completamente funzionante è necessario che l'insieme di queste strutture sia conforme ad una serie di regole (note come regole di layout) e vincoli in termini di dimensioni e distanze reciproche Il package costituisce l'interfaccia tra il circuito imple mentato nel chip in silicio ed il mondo esterno; influen zando in modo determinante le prestazioni, l'affidabilità, il tempo di vita ed il costo del circuito integrato Cpackage è
Il costo fisso è indipendente dal volume di produzione e quindi dal numero di prodotti venduti. Una componente molto importante del costo fisso è lo sforzo nel tempo e le manodopera necessari per produrre il progetto Il costo di progetti azione → Il costo di progettazione è fortemente influenzato dalla complessità del design, dall'aggressività delle specifiche e dalla produttività del progettista
L'ASIC è un circuito integrato creato appositamente per risolvere un'applicazione di calcolo ben precisa. Hanno lo svantaggio di avere un costo elevato limitandone l'uso
Il livello RTL oltre ad essere simulabile è
anche sintetizzabile.
Esistono dei tool che verificano che la metlist
prodotta fornisca/implementi il file vhdl.
- Livello Transistor e Livello Layout
Il passaggio dalla metlist al layout è automatico se
si sfrutta la tecnologia cell-based.
Questa descrizione è di tipo top-down. Se le specifiche
non vengono rispettate si procede in verso opposto per cercare
di soddisfare vincoli funzionali/prestazionali. Quest'ultima
procedura è di tipo bottom-up. Procedere in verso opposto
permette di modificare il layout (cioè solo il layout) oppure
dal livello transistor in giù e così via, fin quando le specifiche
non vengono rispettate.
La progettazione gerarchica consiste nel dividere il problema
fin quando non si perviene ad elementi semplici.
Discorso analogo per tPLH ed tf, definiti nel seguente modo:
tPLH = t0 + I1tR + I2CL, tf = t0 + I1tR + I2CL
Si hanno quindi le incognite da "modellare" per minimizzare l'errore tra i dati simulati e quelli predetti usando queste formule del modello lineare. Purtroppo risultato poco accurato motivo per cui si sfrutta un modello non lineare.
tPLH = f(tr, Cl) tPLM = g(tF, CL) tr = f(tout, Cl) e
tRout = g1(tr, Cl)
Tali funzioni sono implementate tramite tabelle (si hanno dunque 4 tabelle nel caso in cui sto utilizzando un inverter).
Nel caso in cui non sono presenti nella tabella valori obiettivi si procede per interpolazione.
Cosa succede invece, se ho una AND a 2 ingressi?
AB Z = AB
Se B = 1 → A↑ e Z↑ (timing arise)
Si avranno 4 tabelle per tPHL e tPLH e 4 per tr e tf
Cioè 8 tabelle!
A B Z = AB 0 0 0 0 1 0 1 0 0 1 1 1
Se A = 1 → B↑ e Z↑ (timing arise)
B = 1 → A↑ e Z↑
A↑ e Z↑
S: implementa tramite CMOS:
Cout = c(ab) + ab
- 2 A B Cin: abc + abc C + abc + abcin + abCm
la C è difficile implementarla in CMOS, la funzione S risulta più semplice se espressa in funzione di Cout
S: Cout(ab + Cin) = abCin
- a b, Cout = c(ab) + ab
- a b A + B
- b Cin
- Cout O Cout
- funzione Cout già ottimizzata
per S posso ottenere un circuito anch'esso a specchio. Il circuito considerato è il seguente:
- A B Cm
- A B
- Cm
quale architettura associare all'entità.
Entità e architettura vengono descritti in un file di testo
(non è detto che il file sia lo stesso, si può avere un
file per l'entità ed uno per l'architettura) si consiglia
di usare lo stesso file di testo per la coppia
entità/architettura
Esempio:
entity comp2 is port ( en: in bit; A: in bit_vector (3 downto 0); out1, out2: out bit); end entity comp2; architecture esempio of comp2 is constant V1: bit_vector (3 downto 0) := "0110"; constant V2: bit_vector (3 downto 0) := "0011"; signal aux1, aux2: bit; --segnali interni begin out1 <= aux1 and en; out2 <= aux2 and en; aux1 <= 1 when (A=V1) else 0; aux2 <= 1 when (A=V2) else 0; end esempio; (o anche end architettura esempio)devo specificare il nome perchè per una
entità posso avere più architetture
Cioè S passa da 0 a 1 in un tempo pari a t = tt + tg.
ASSEGNAZIONE WITH SELECT
Esempio: MUX
- a3
- a2
- a1
- a0
Se S = 11 → y = a3
S = 10 → y = a2
S = 01 → y = a1
Selezione S = 00 → y = a0
L'entity è il mux mentre l'architettura è questa:
- library IEEE;
- use ieee.std_logic_1164.all;
- entity mux is
- port (a3, a2, a1, a0: in std_logic_vector (7 downto 0);
- s: in std_logic_vector (1 downto 0);
- y: out std_logic_vector (7 downto 0));
end entity mux;
architecture test of mux is
begin
with s select
y <= a3 when "11",
a2 when "10",
a1 when "01",
a0 when others;
end architecture test;
Ci sono 2 regole importanti da ricordare per l'assegnazione selezionata:
- casi elevati devono essere tutti mutualmente esclusivi, cioè non possono essere contemporaneamente veri;
- i casi elevati devono prevedere tutti i possibili valori