Síntese do datapathaja/PSD2005_06/slides/PSD_2005-06...•fios, buffers, multiplicadores/divisores...

12
FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006 José Carlos Alves 146 FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006 José Carlos Alves 147 Síntese do datapath S.D. - controlo e processamento de informação unidade de processamento (datapath) processamento e comunicação de dados registos, ALUs, outros operadores dedicados (FUs), barramentos – controlo activa os elementos do datapath, define as operações a realizar FSMs, controladores microprogramados Control dominated sistemas onde predominam as estruturas de controlo controlador de microondas, semáforos, microprocessador, ... Data flow dominated sistemas onde predomina o datapath, controlo reduzido aplicações de DSP, unidades de cálculo dedicadas

Transcript of Síntese do datapathaja/PSD2005_06/slides/PSD_2005-06...•fios, buffers, multiplicadores/divisores...

Page 1: Síntese do datapathaja/PSD2005_06/slides/PSD_2005-06...•fios, buffers, multiplicadores/divisores de relógio – Flip-flops com sinal de clock enable e set/reset assíncrono –

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

146

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

147

Síntese do datapath• S.D. - controlo e processamento de informação

– unidade de processamento (datapath)• processamento e comunicação de dados

– registos, ALUs, outros operadores dedicados (FUs), barramentos

– controlo• activa os elementos do datapath, define as operações a realizar

– FSMs, controladores microprogramados

• Control dominated– sistemas onde predominam as estruturas de controlo

• controlador de microondas, semáforos, microprocessador, ...

• Data flow dominated– sistemas onde predomina o datapath, controlo reduzido

• aplicações de DSP, unidades de cálculo dedicadas

Page 2: Síntese do datapathaja/PSD2005_06/slides/PSD_2005-06...•fios, buffers, multiplicadores/divisores de relógio – Flip-flops com sinal de clock enable e set/reset assíncrono –

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

148

Sistemas Digitais síncronos• Sistema síncrono

– duas entidades separadas: controlo e datapath– todos os registos têm o mesmo sinal de relógio– o datapath efectua operações de registo a registo

• transferências entre registos ocorrem na transição de relógio

– em cada ciclo de relógio o controlador define:• que registos são carregados• agulhamento de barramentos e multiplexers• operações a realizar pelas unidades funcionais

+ * / sqrt and or

R

mux mux mux

R Rmux mux

clkcontrolo

UFs

registos

?

?

?

?

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

149

Sistemas digitais síncronos• Lógica combinacional entre registos

Tdelay1 Tdelay2 Tdelay3

clock

freq. clock < 1 / max(Tdelay1,Tdelay2,Tdelay3)– frequência de relógio

– controlo do datapath também condiciona o desempenho

controlo datapathclock

saída assíncrona

saída síncronaentrada

entrada

Page 3: Síntese do datapathaja/PSD2005_06/slides/PSD_2005-06...•fios, buffers, multiplicadores/divisores de relógio – Flip-flops com sinal de clock enable e set/reset assíncrono –

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

150

Circuitos síncronos com relógio• Alguns problemas…

– todos os registos têm o mesmo relógio• O sinal de relógio deveria estar em fase em todos os flip-flops• é necessário buffers dedicados para distribuir o sinal de relógio

– clock skew: variação da fase do relógio em diferentes registos• atrasos introduzidos pelas interligações, só conhecidos após routing• circuitos dedicados para distribuir relógio (p.ex. em FPGAs)

– carregamento condicional de registos (habilitação ou enable)• não usar gated clocks (depende da tecnologia de implementação)• flip-flops com controlo clock enable síncrono• é necessário garantir tempos de hold e setup dos flip-flops

– tratamento de entradas assíncronas • metaestabilidade• sincronização com o relógio

– circuitos CMOS consomem energia (quase apenas) nas transições

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

151

Clock skew

• variação da fase do relógio em diferentes registos

atraso

R1 R2

clk clk1

clk

clk1

R1 b c

R2 b c

a

atraso

x

R1 R2

clk

clk

R1 b c

R2 a b

a

x

Page 4: Síntese do datapathaja/PSD2005_06/slides/PSD_2005-06...•fios, buffers, multiplicadores/divisores de relógio – Flip-flops com sinal de clock enable e set/reset assíncrono –

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

152

Clock skew• Motivado por assimetria do circuito de relógio

– características físicas das ligações (comprimento, RC)

– diferente fanout

– lógica combinatória no caminho do relógio

R1 R2

clk clk1

R1 R2

clk clk1

R3 R4R1

R1 R2

clk clk1ce gated clock!

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

153

Gated clock• Carregamento condicional de um registo

– solução errada: usar um AND para permitir ou não o clock

ce.clk

clk

R1 b ?a

ce

R1 é carregado duas vezes !Só funciona se ce ocorrer antes de clk.

R

clk ce.clk

ce

– clock enable síncrono

– flip-flops primitivos com controlo clock enable

– solução correcta

R

clkce

01

Page 5: Síntese do datapathaja/PSD2005_06/slides/PSD_2005-06...•fios, buffers, multiplicadores/divisores de relógio – Flip-flops com sinal de clock enable e set/reset assíncrono –

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

154

Gated clock

• Solução (mais) segura para um gated clock

clkclk

gclk1

gclk2

ce1

ce2controlo

gclk = ce.clk

clk

ce

clk

• portas NAND com atrasos idênticos• atrasos iguais de clk até cada NAND...• … e de cada NAND até aos buffers• garante clock skew mínimo

• sinais ce gerados na unidade de controlo• unidade de controlo síncrona com clk• em FPGA requer routing cuidado

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

155

• Outra solução: registar os sinais enable

Gated clock

clk

en1

en2controlo

D Q

D Q gclk1

gclk2

ens1

ens2

gclk

clk

en

ens

Page 6: Síntese do datapathaja/PSD2005_06/slides/PSD_2005-06...•fios, buffers, multiplicadores/divisores de relógio – Flip-flops com sinal de clock enable e set/reset assíncrono –

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

156

Circuitos síncronos em FPGAs• Como são resolvidos esses problmas?

– as interligações programáveis introduzem atrasos importantes• transportar o sinal de relógio com os fios “normais” é fatal!!!• difícil (não impossível) equilibrar os atrasos de diferentes nets

– rede de interligações dedicadas para distribuir sinais de relógio• fios, buffers, multiplicadores/divisores de relógio

– Flip-flops com sinal de clock enable e set/reset assíncrono– família Spartan3 (consultar documentos ds099-2 e xapp462)

• 4 DCM ( Digital Clock Manager)• 8 entradas e buffers dedicados para sinais de relógio• multiplexers dedicados para sinais de relógio• no ambiente de projecto da XILINX (ISE)

– Os sinais de relógio são identificados no processo de síntese– O projectista deve definir em que PAD esse sinal deve ficar

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

157

XC3S - rede de distribuição de relógio

Page 7: Síntese do datapathaja/PSD2005_06/slides/PSD_2005-06...•fios, buffers, multiplicadores/divisores de relógio – Flip-flops com sinal de clock enable e set/reset assíncrono –

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

158

XC3S – localização física

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

159

XC3S - redes básicas de relógio

Page 8: Síntese do datapathaja/PSD2005_06/slides/PSD_2005-06...•fios, buffers, multiplicadores/divisores de relógio – Flip-flops com sinal de clock enable e set/reset assíncrono –

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

160

XC3S – Digital Clock Manager

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

161

DLL – Delay-Locked Loop

Page 9: Síntese do datapathaja/PSD2005_06/slides/PSD_2005-06...•fios, buffers, multiplicadores/divisores de relógio – Flip-flops com sinal de clock enable e set/reset assíncrono –

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

162

DLL - Atributos

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

163

DFS – Digital Frequency Synthesizer

Page 10: Síntese do datapathaja/PSD2005_06/slides/PSD_2005-06...•fios, buffers, multiplicadores/divisores de relógio – Flip-flops com sinal de clock enable e set/reset assíncrono –

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

164

DCM – gama de frequências

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

165

DCM - eliminando clock skew

Page 11: Síntese do datapathaja/PSD2005_06/slides/PSD_2005-06...•fios, buffers, multiplicadores/divisores de relógio – Flip-flops com sinal de clock enable e set/reset assíncrono –

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

166

Pipelining• datapath síncrono (não-pipelined vs. pipelined)

– não-pipelined: uma operação por ciclo de relógio: fclk oper/s

– pipelined: partir o circuito combinacional e inserir registos

clk

di0 di1 di2 di3 di4

do0 do1 do2 do3 do4X

reg inreg out

Tdelay

di

Tdelay

clk

lógica combinatória

reg

in

reg

out

do

di

Tpdelay max

clk

lógica combinatória

reg

in

reg

out

do

reg1

reg0

clk

di0 di1 di2 di3 di4

d0 d1 d2 d3 d4X

reg inreg0

Tpdelay max

reg1reg out

d0 d1 d2 d3X

do0 do1 do2X

X

X X

Latência: 3 ciclos clk

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

167

Síntese do datapath - pipelining

• No circuito pipelined– Tpdelay max menor do que Tdelay

• Tpdelay max é o maior atraso de uma partição do circuito combinatório• define uma frequência de clk maior do que para o circuito combinatório

– 3xTpdelay max maior do que Tdelay

• para além da lógica combinatória há atrasos introduzidos pelos registos• um resultado demora 3 períodos de clk a aparecer na saída

– é consumido um dado e produzido um resultado em cada clk• aumento de desempenho para sequências de operações iguais• mas não compensa para realizar uma única operação.

Page 12: Síntese do datapathaja/PSD2005_06/slides/PSD_2005-06...•fios, buffers, multiplicadores/divisores de relógio – Flip-flops com sinal de clock enable e set/reset assíncrono –

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

168

Entradas assíncronas• E se uma entrada comuta e o clk também?

– Flip-flops podem “cair” em estados meta-estáveis• ao fim de um certo tempo, é muito provável que transitem para 0 ou 1

– esse tempo é um dado do fabricante e da ordem de grandeza do tempo de propagação (clk-to-setup) do flip-flop

• Como sincronizar entradas assíncronas?– Solução: usar um shift-register de dois andares (como funciona?)

Circuito síncrono

Assynch_inD Q D Q

clock

synch_in

FEUP/DEEC, Projecto de Sistemas Digitais, 2005/2006José Carlos Alves

169

Múltiplos domínios de clock

• Problema– como gerar e distribuir os diferentes sinais de clock?– como sincronizar as transferências de dados entre os diferentes domínios?

• Soluções básicas– 3 sinais de clock independentes (derivados de uma mesma fonte)– um só clock (frequência mais elevada) e sinais de clock enable para cada bloco

Circuito síncrono

clock1

Circuito síncrono Circuito síncrono

clock2

clock3