� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
��������������������������������
������� �������������������������������������
DesignDesignMethodologiesMethodologies
Jan M. RabaeyAnantha ChandrakasanBorivoje Nikolic
December 10, 2002
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
����������� ���������������� �����
Custom
Standard CellsCompiled Cells Macro Cells
Cell-based
Pre-diffused(Gate Arrays)
Pre-wired(FPGA's)
Array-based
Semicustom
Digital Circuit Implementation Approaches
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
����������������������������������������
Progettazione dedicata a tutti i livelli del sistema, dalla topologia del circuito fino al livello fisico.
� Elevati costi di progetto� Elevati tempi (Time to market)
La progettazione custom si realizza ormai solo per la progettazione di celle di libreria
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
��� ������������������ ���������������
Intel 4004
Courtesy Intel
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
������������������������������������������������
� L’idea di base è il riutilizzo di celle di libreria precedentemente progettate e ottimizzate
� Il costo della fase di progetto delle librerie viene ammortizzato grazie al riutilizzo
� Permette di sfruttare flussi automatici di progetto
� Gli approcci a celle si dividono in diverse classi a seconda della granularità delle celle
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
����������������������
� Le librerie di celle standard mettono a disposizione una vasta gamma di porte logiche (AND, NAND, OR, NOR, XOR, XNOR, flip-flop)
� Moduli più complessi: MUX, Full Adder, Coder, ecc.
� Il layout del circuito viene generato automaticamente da una descrizione del circuito a più alto livello.
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
�� ����������������������������������������������������������
Routing channel requirements arereduced by presenceof more interconnectlayers
Functionalmodule(RAM,multiplier, …)
Routingchannel
Logic cellFeedthrough cellR
ows
of c
ells
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
����������� �����������
� Le celle vanno riprogettate quando si migra verso una nuova tecnologia
� Spesso il layout e la caratterizzazione di una data libreria andrebbero modificati quando si effettuano ottimizzazioni nel processo all’interno della stessa tecnologia
� Esigenza di approcci automatici per la generazione automatica del layout a partire dalla rete di transistor
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
������� �������
� Sono celle più complesse� Moltiplicatori� Memorie� Microprocessori
Sono ottimizzate
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
�������������������������!����������������������������������������!���������������
Intel 4004 (Intel 4004 (‘‘71)71)Intel 8080Intel 8080 Intel 8085Intel 8085
Intel 8286Intel 8286 Intel 8486Intel 8486Courtesy Intel
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
�������� ����������� ���"" #$����#$����
[Brodersen92]
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
�������� ����������� ���%% ���&'�(��������&'�(�����
Cell-structurehidden underinterconnect layers
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
������������������ �����)��'�����)��'
HDLHDL
Logic SynthesisLogic Synthesis
FloorplanningFloorplanning
PlacementPlacement
RoutingRouting
Tape-out
Circuit ExtractionCircuit Extraction
Pre-Layout Simulation
Pre-Layout Simulation
Post-Layout Simulation
Post-Layout Simulation
StructuralStructural
PhysicalPhysical
BehavioralBehavioralDesign Capture
Des
ign
Itera
tion
Des
ign
Itera
tion
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
������������������������������������������������������
Le progettazioni Custom e Semi Custom (cell based) richiedono un processo di fabbricazione dedicato completo.
Un intero ciclo di processo dedicato è molto costoso a causa dell’elevato costo delle maschere litografiche
Esistono degli approcci diversi che non richiedono un ciclo completo del processo o che evitano del tutto un processo dedicato
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
Pre-diffused(Gate Arrays)
Pre-wired(FPGA's)
Array-based
��������*���������������*���������������
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
���������������������������� ����������������������������
� Gate array o sea-of-gates� Lotti di wafer che contengono matrici di celle
primitive o di transistor vengono fabbricati� Tutti i passi di fabbricazione necessari per
realizzare i transistor sono standardizzati e indipendenti dall’applicazione finale
� Le interconnessioni stabilite dal progettista finale determinano la funzionalità del chip, essa viene ottenuta con la deposizione dei metalli
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
(�������+�(�������+�"" �������,�,����������
rows of
cells
routing channel
uncommitted
VD D
GND
polysilicon
metal
possiblecontact
In1 In2 In3 In4
Out
UncommitedCell
CommittedCell(4-input NOR)
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
��������� ��������������������������� ��������������������������
� Chip che hanno subito l’intero processo di fabbricazione e non richiedono passi di processo dedicati alla particolare applicazione
� Programmabili in campo, senza ripassare dalla fonderia
� Fabbricazione e Implementazione sono due fasi completamente separate
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
���������������������������+����������������������������+�
x0 x1 x2
ANDplane
x0x1
x2
Product terms
ORplane
f0 f1
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
������ I5
I4
O0
I3
I2
I1
I0
O1
O2
O3
Programmable AND array
Programmable
OR array
Indicates programmable connection
Indicates fixed connection
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
#��������������#��������������
� PLA combinatori� PLA sequenziali (aggiunta di flip-flop)� Aggiunta di linee di retroazione
(feedback) dall’uscita verso l’array di porte AND di ingresso
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
�������������������������������� ����+����+������������I
5I
4
O0
I3
I2
I1
I0
O1
O2
O3
Programmable AND array
Fixed OR array
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
��� ����$���� ��� ����$����
From Smith97
programmable AND array (2 i 3 jk ) k macrocells
j -wide OR array
j
macrocell
productterms
D Q
A
1
j
BCLK
OUT
C i i inputs
i inputs, j minterms/macrocell, k macrocells
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
����������������
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
�������������!- �������������!-
O 0
I 3 I 2 I 1 I 0
O 1O 2O 3
Fixed AND array
Programmable
OR array
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
����� ����� ����$ ����$���������������������� ����������
����������
� Concetto di macrocella� Interconnessione programmabile di
macrocelle programmabili
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
��'�����'��� ����+�����+�
Classification of prewired arrays (or field-programmable devices):
� Based on Programming Technique� Fuse-based (program-once)� Non-volatile EPROM based� RAM based
� Programmable Logic Style� Mux� Look-up Table
� Programmable Interconnect Style� Channel-routing� Mesh networks
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
)��)����*����)�(�*����)�(�
antifuse polysilicon ONO dielectric
n+ antifuse diffusion
2 l
From Smith97
Open by default, closed by applying current pulse
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
������������������������������ �������,����������������,���������
����,��������,����
� Antifuse� Ridotta area occupata dai fusibili� Non ammette modifiche � Tolleranza all’esposizione a radiazioni
ionizzanti (applicazioni spaziali e militari)
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
������������������������������ �������,����������������,���������
����,��������,����
� Memoria non volatile (EEPROM)� La configurazione permane anche in
assenza di alimentazione� Riprogrammabilità� Tensioni elevate per la programmazione e
per la cancellazione� Speciali processi di fabbricazione per
introdurre questo tipo di memorie dentro il chip
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
������������������������������ �������,����������������,���������
����,��������,����
� Memoria volatile (SRAM)� La configurazione si perde in assenza di
alimentazione� Riprogrammabilità� Incidenza del tempo di configurazione� Con i processi CMOS standard si possono
facilmente includere le SRAM nel chip� Riconfigurazione parziale dinamica� Facile aggiornamento della configurazione
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
..��������������$��$
�������������������������/�������������������������/
FA 0
B
S
1
Configuration
A B S F=0 0 0 00 X 1 X0 Y 1 Y0 Y X XYX 0 YY 0 XY 1 X X + Y1 0 X1 0 Y1 1 1 1
XYXY
XY
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
���/���/����������*���������� ����������*���������� ��
Out
ln1 ln2
M e m o r y
In Out
00 0
01 1
10 1
11 0
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
�0��0���*���������� ��*���������� ��
Courtesy Xilinx
D4
C1....C4
xxxxxx
D3
D2
D1
F4
F3
F2
F1
Logicfunction
ofxxx
Logicfunction
ofxxx
Logicfunction
ofxxx
xx
xx
4
xxxxxx
xxxxxxxx
xxx
xxxx xxxx xxxx
HP
Bitscontrol
Bitscontrol
Multiplexer Controlledby Configuration Program
x
xx
x
xx
xxx xx
xxxx
x
xxxxxx
xx
x
xx
xxx
xx
Xilinx 4000 Series
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
����+����+��*����������������1����*����������������1����
Input/output pinProgrammed interconnection
InterconnectPoint
Horizontaltracks
Vertical tracks
Cell
M
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
�� �����������������&�'��/�������������&�'��/
Switch Box
Connect Box
InterconnectPoint
Courtesy Dehon and Wawrzyniek
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
2����������� ���&�'��/2����������� ���&�'��/
Use overlayed meshto support longer connections
Reduced fanout and reduced resistance
Courtesy Dehon and Wawrzyniek
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
���������� �3 �3
From Smith97
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
���������� �3������������������� �3�������������������
LAB2
PIA
LAB1
LAB6
tPIA
tPIA
row channelcolumn channel
LAB
Courtesy Altera
Array-based(MAX 3000-7000)
Mesh-based(MAX 9000)
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
!� !� �������)�(�������)�(��
Xilinx XC4000ex
Courtesy Xilinx
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
)�(��)�(����������������������
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
)�(��)�(��,�������,������� ��������
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
���������������������� �'�����'������������
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
���������������������� �'�����'������������
� � �� ��� �� �� � �� �� �� ��� � ��� � � � � �� �� � �� � � �� � �� �
�'�����'������$���$�