Dimensionamento de portas lógicas
João Canas Ferreira
Universidade do Porto Faculdade de Engenharia
Março de 2014
Assuntos
1 Modelização de portas lógicas
2 Cadeias de portas lógicas
Dimensões relativas de portas lógicas
I Uma porta lógica pode ser caraterizada por quatro grandezas
1 capacidade de entrada Cin
2 capacidade intrínseca de saída Cp
3 resistência depull-up Rup
4 resistência depull-down Rdn
I Para cada tipo de porta definir uma porta de referência (template)
1 capacidade de entrada Ct
2 capacidade de saída intrínseca Cpt
3 resistência de saída simétrica Rt= Rupt= Rdnt
I Para uma porta dimensionada (a×maior):
1 Cin= a×Ct
2 Rup= Rdn= Rout= Rt/a
3 Cp= a×Cpt
Modelo para o tempo de propagação (1)
I Tempo de propagação absoluto de uma porta lógica:
tpabs= 0,69 Rout(Cout+ Cp) = 0,69 RoutCout+ 0,69 RoutCp
Em termos da porta de referência:
tpabs= 0,69 Rt
a
CinCout Cin + 0,69
Rt a
(a×Cpt) tpabs= 0,69 RtCtf + 0,69 RtCpt
I Mapear numa equação da forma tpabs=τ(g·f + p)
I f = Cout/Cin
I τ= 0,69×R(inv)t C(inv)t (parâmetros do inversor de referência)
I g = RtCt R(inv)t C(inv)t
p = RtCpt
R(inv)t C(inv)t
I d = g·f + p tempo de propagação em unidades deτ
Modelo para o tempo de propagação (2)
Atraso de uma porta
d = h + p
h: atraso de esforço(effort delay) p: atraso intrínseco Esforço lógico
h = g×f g: esforço lógico f: fan-outefetivo
d = g×f + p
I Esforço lógico depende apenas da topologia, não das dimensões.
I Atraso intrínseco é constante para cada tipo de porta.
I Fan-out efetivo depende da relação entre carga e dimensão da porta.
I Por definição, ginv= 1.
I pinv=γ, a relação entre capacidade de saída e de entrada do inversor.
Definição de esforço lógico
As seguintes definições são equivalentes:
I Definição 1: O esforço lógico de uma porta define-se como o número de vezes que essa porta é pior a fornecer corrente que um inversor com a mesma capacidade de entrada.
I Definição 2: O esforço lógico de uma porta define-se como a razão entre a sua capacidade de entrada e a capacidade de entrada de um inversor capaz de fornecer a mesma corrente.
I Definição 3: O esforço lógico de uma porta define-se como o declive da curva de atraso vs. fan-outdividido pelo declive da curva correspondente para um inversor.
Esforço lógico de algumas portas simples
Esforço lógico é a razão entre a capacidade de entrada de uma porta e a capacidade de entrada de um inversor com a mesma corrente de saída.
2
a 1
x
2 2
2 2
x a
b
4 4
1 1 a
b
x
(a ) (b ) (c )
g=1 g=4/3 g=5/3
Esforço lógico de algumas portas simples: resumo
Número de entradas
1 2 3 n
inversor 1
nand 4/3 5/3 (n+2)/3
nor 5/3 7/3 (2n+1)/3
xor 4 12
Modelo gráfico
Fonte: [Sutherland99]
Estimação do atraso intrínseco
O atraso intrínseco da porta lógica é X vezes o atraso do inversor de referência pinv em que X é :
a razão entre a soma das áreas (larguras) de difusão (fontes ou drenos) ligadas ao nó de saída da porta em consideração e as correspondentes áreas do inversor de referência.
(Condição para obter a mesma corrente de saída que o inversor de referência)
p =
PW 1 +β
pinv com
β= (W/L)p (W/L)n
I Estimativa assume que todos os transístores têm o mesmo comprimento do canal.
I A estimativa é aproximada. Para melhores resultados, deve calibrar-se o modelo a partir de simulações.
Tabela de atrasos intrínsecos
Porta lógica Atraso intrínseco
Inversor pinv
NAND n entradas n×pinv
NOR n entradas n×pinv
xor, xnor de n entradas n×2(n–1)×pinv
Exemplos
I Determinar o atraso do inversor com FO4 (fan-out of 4) d = f×g + p = 1×4 + pinv= 4 + 1 = 5
I Determinar o atraso de uma porta NOR4 que ataca 10 portas idênticas d = f×g + p = 3×10 + 4×1 = 34
I Determinar a frequência de oscilação de um anel de N inversores idênticos Para cada inversor:
d = f×g + p = 1×1 + pinv= 2 Tempo de propagação à volta do anel:
T = N×d×τ A frequência de oscilação é:
F = 1
2×N×d×τ
Assuntos
1 Modelização de portas lógicas
2 Cadeias de portas lógicas
Esforço de ramificação
Problema: ao dimensionar um percurso lógico é preciso ter em conta as cargas impostas por portas lógicas que não fazem parte desse percurso.
Ci
Ctotal
Coff Con
a dimensionar
2 1
àAo dimensionar ao longo do percurso, a porta lógica 1 tem de ser de ser
dimensionada contando não apenas com a carga da porta 2, mas também com a carga de Coff(que não está a ser dimensionada).
Seja b, o esforço de ramificação:
b = Cpath+ Coff Cpath Então, ofan-out efetivo da porta 1 é dado por
f1= Cpath+ Coff
Cin = Cpath
Cin ×Cpath+ Coff
Cpath = fpercurso×b
Minimizar tempo de propagação de dois andares
Gate 1
Gate 2
C1 g1 p1 Input capacitance:
Logical effort:
Parasitic delay:
C2 g2 p2
C3
Fonte: [Sutherland99]
D = (g1f1+ p1) + (g2f2+ p2) f1= C2
C1 f2= C3
C2 f1f2= C3 C1 = F D = (g1f1+ p1) +
g2F f1 + p2
δD
δf1 = g1–g2F
f21 = 0 ⇒ g1f1= g2f2
I Atraso é minimizado quando cada andar exerce o mesmo esforço g×f.
I O resultado é independente das dimensões e dos atrasos intrínsecos;
é válido para qualquer número de andares e esforço de ramificação.
Tempo de propagação ótimo
Para uma cadeia de N portas:
I f1f2· · ·fN= BF com B = b1b2· · ·bN
I Esforço do caminho: H = (g1f1)(g2f2)· · ·(gNfN) = GBF com G = g1g2· · ·gN
I H não depende das dimensões dos circuitos
I O valor de H não é alterado pela inserção de inversores
àTodos os andares têm o mesmo esforço ótimoh: H =ˆ ˆh1/N ou ˆh = √N H àO tempo de atraso mínimo é:
ˆD =X
i
(ˆh + pi) = NH(1/N)+ P com P =X
i
pi
Número ótimo de andares
àCenário: caminho com n1andares e n2inversores, N = n1+ n2
àAssumir que se pode alterar n2, porque não altera o esforço do caminho (H) D = NHˆ (1/N)+
n1
X
i=1
pi
!
+ (N – n1)pinv δDˆ
δN = –H(1/N)ln(H(1/N)) + H(1/N)+ pinv= 0 àSeja ρo esforço para o número ótimo de andares:ρ= H(1/ˆN):
pinv+ρ(1 – ln(ρ)) = 0
àO valor deρque satisfaz a equação é o esforço de andar (h) ótimo para todos os andares do percurso: é independente das propriedades do caminho.
Aspetos pragmáticos
I Se pinv= 0 entãoρ= e = 2,718 I Aproximação:ρ≈0,71 pinv+ 2,82 I Para pinv= 1 temosρ≈3,59 I Outra aproximação:Nˆ≈log4(H) I Usar tabela:
ˆN1/√ˆN H + pinv
= (ˆN + 1)
1/(ˆN+1)√ H + pinv I Fan-outde cada andar: fi=ˆh/gi
I Se existir ramificação: fi= ˆh b gi
pinv
ˆN 0,0 0,6 0,8 1,0
1
4,0 5,13 5,48 5,83
2
11,4 17,7 20,0 22,3
3
31,6 59,4 70,4 82,2
4
86,7 196 245 300
5
237 647 848 1090
6
648 2130 2930 3920
7
1770 6980 10100 14200 8
4820 22900 34700 51000 9
13100 74900 120000 184000
Esforço do caminho H
Exemplo: otimização de um percurso
A
B
C z
y C
Fonte: [Sutherland99]
I G = g0g1g2= (4/3)3= 2,37 B = 1 F = 1
I H = 2,37 ⇒ ˆD = 3×2,371/3+3×2pinv= 10
I ˆh = 4/3
I z = C×(4/3)/(4/3) = C y = C
C
2 C
2
C 2
C 2
Fonte: [Sutherland99]
à Assumeβ = 2
Exemplo: implementação de função lógica
(a )
(b )
(c ) g=
p= 8 g= 1 p= 1
g= 1 p= 1 g= p= 2 g=
p= 2 g=
p= 2
g= p= 2 g= 2
p= 4
5 3
4 3
5 3
4 3 10
3
Fonte: [Sutherland99]
I D = N (FBG)1/N+ P
I (a) D = 2 (3,33 F)1/2+ 9
I (b) D = 2 (3,33 F)1/2+ 6
I (c) D = 4 (2,86 F)1/4+ 7
I F = 1: usar (b) D = 9,65
I F = 12: usar (c) D = 16,77
Esforço lógico: sumário
I Calcular o esforço do caminho: H = BFG
I Determinar o número ótimo de andares: N≈log4(H)
I Calcular o esforço por andar: h = √N H
I Fazer um esboço do percurso
I Determinar as capacidades de entrada: Cin= Cout b×g h
Referências
àAs figuras usadas provêm do seguinte livro:
Rabaey03 J. M. Rabaey et al,Digital Integrated Circuits, 2ª edição,Prentice Hall, 2003.
http://bwrc.eecs.berkeley.edu/icbook/
Sutherland99 I. Sutherland, B. Sproull and D. Harris,Logical Effort, Morgan Kaufmann Publishers, 1999.