síntese de alto nível - paginas.fe.up.ptaja/psdi_200607-2s/slides/slides_psdi... · • uma...

17
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007 José Carlos Alves 117 Síntese de Alto Nível (behavioral synthesis) while (x<a) begin xl=x+dx; ul=u-(5*x*u*dx)-(3*y*dx); yl=y+(u*dx); x=xl; u=ul; y=yl; end unidade de controlo * + - R mux mux mux R R mux mux datapath descrição comportamental (algorítmica) estrutura RTL unidades funcionais registos muxs e barramentos FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007 José Carlos Alves 118 Síntese de alto nível medidas de qualidade Objectivos importantes simplificar o hardware e minimizar o tempo de execução minimizar tempo explorar paralelismo complicar hardware Medidas de qualidade da solução RTL avaliadas antes da implementação física, baseadas em estimações número e complexidade das unidades funcionais e registos número de ciclos de relógio, período de relógio complexidade da unidade de controlo espaço ocupado pelas interligações, barramentos e multiplexers potência consumida Compromissos área-rapidez grande espaço de soluções área 1/veloc.

Upload: dangdiep

Post on 23-Jan-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Síntese de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

117

Síntese de Alto Nível(behavioral synthesis)

while (x<a)beginxl=x+dx;ul=u-(5*x*u*dx)-(3*y*dx);yl=y+(u*dx);x=xl; u=ul; y=yl;

end

unidade decontrolo

* + -

R

mux mux mux

R R

mux mux

datapath

descrição comportamental(algorítmica)

estrutura RTL

unidadesfuncionais

registos

muxs e barramentos

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

118

Síntese de alto nívelmedidas de qualidade

• Objectivos importantes– simplificar o hardware e minimizar o tempo de execução– minimizar tempo ⇒ explorar paralelismo ⇒ complicar hardware

• Medidas de qualidade da solução RTL– avaliadas antes da implementação física, baseadas em estimações

• número e complexidade das unidades funcionais e registos• número de ciclos de relógio, período de relógio• complexidade da unidade de controlo• espaço ocupado pelas interligações, barramentos e multiplexers• potência consumida

• Compromissos área-rapidez– grande espaço de soluções

área

1/veloc.

Page 2: Síntese de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

119

Síntese de alto nível

y1=a+b;y2=x1+x2;y3=z+t;

y3

+

mux mux

R R Ry1 y2

a x1 z b x2 t

uma unidade funcional3 ciclos

+

R R Ry1 y2 y3

a x1 zb x2 t

++ +

3 unidades funcionais1 ciclo

espaço ocupado pelo datapath?complexidade da unidade de controlo?número de ciclos de relógio ?duração do ciclo de relógio ?potência consumida ?

Exemplo: 3 adições independentes - duas soluções alternativas:

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

120

Síntese de Alto Nível• transformações de alto nível

– semelhantes às realizadas pelos compiladores• propagação de constantes, simplificações algébricas, optimização de

ciclos

• sequenciamento (scheduling)– atribuição das operações a ciclos de execução (ciclos de relógio)

• minimizar o número de ciclos necessário para completar a operação• explorar o paralelismo natural do algoritmo

• alocação e “colagem” (allocation e binding)– selecção de registos e de um conjunto de unidades funcionais

• minimizar a complexidade do hardware• escolher entre diversos compromissos de unidades funcionais• Forte interligação com o sequenciamento

– “colagem” das operações a unidades funcionais que as realizem• uma operação pode demorar diferentes tempos em diferentes FUs

Page 3: Síntese de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

121

Representação internas• Compilação da descrição comportamental

– representação interna baseada em grafos• DFG (Data Flow Graph)

– representa as operações e as dependências entre dados e resultados

CFG (Control Flow Graph)– representa a sequência de controlo de blocos de operações

y=a+b;z=y*c;k=a+y;

+*

+k

cb a

y

z

if (a==b)z=y+c;

elsek=a+y;

a==b

z=y+c k=a+y

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

122

SequenciamentoASAP e ALAP

ASAP - As Soon As Possibleatribuir cada operação ao primeiro ciclo

* +

-

<+

* *

* *

-

1

2

3

4

*

ciclo

ALAP - As Late As Possibleatribuir cada operação ao último ciclo

*

+-

<+

*

*

*

*

-

1

2

3

4

*

ciclo

4 multiplicadores1 subtractor1 somador6 unidades funcionais

2 multiplicadores2 subtractores1 somador5 unidades funcionais

* +

-

<

+

*

*

*

*

-

1

2

3

4

*

ciclo

2 multiplicadores1 subtractor1 somador4 unidades funcionais

ASAP com restrições,fixando o número e tipodas unidades funcionais

Page 4: Síntese de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

123

Sequenciamentoheurísticas

• Lista de prioridades (list scheduling)– operações ordenadas por função de prioridade

• caminho mais longo, número de sucessores, mobilidade das operações

– em cada iteração são sequenciadas as operações prontas• uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina a ordem de sequenciamento

• FDS - Force Directed Scheduling– distribui as operações de forma a balancear a utilização das Fus

• baseada na probabilidade de cada operação ser atribuída a cada ciclo

– requer o conhecimento de ASAP e ALAP: mobilidade– determina um sequenciamento num número fixo de ciclos

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

124

Alocação e “colagem”• Alocação (allocation)

– seleccionar um conjunto de unidades funcionais que realizem as operações

• nos ciclos de execução determinados pelo sequenciamento• em cada ciclo uma FU só pode realizar uma operação

• Formulação básica como um problema em grafos– Existe um ramo (não dirigido) entre 2 operações se:

• Puderem ser realizadas na mesma unidade funcional (mesmo tipo)• Não estiverem atribuídas a períodos de tempo sobrepostos

– determinação do número mínimo de sub-grafos completos• Um sub-grafo completo: operações compatíveis entre si

Page 5: Síntese de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

125

Alocação e colagem

• Grafo de compatibilidades

12

3

4

56FU1

FU3

FU2

operações 1 e 3 são compatíveis

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

126

Sequenciamento e alocaçãooptimização conjunta

• Programação Linear Inteira (PLI)– formulação básica baseada em variáveis inteiras binárias:

– restrições no número de ciclos ou de unidades funcionais – computacionalmente pesado, impraticável para problemas reais

• Métodos heurísticos– arrefecimento simulado (simulated annealing)

• flexibilidade para tratar restrições complexas associadas às FUs• necessário número elevado de iterações, soluções sub-óptimas• computacionalmente pesado

– algoritmos genéticos

xij = 1 se a operação i é atribuída ao ciclo j0 caso contrário

Page 6: Síntese de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

127

Elementos do datapath• Registos

– armazenam variáveis

• Barramentos– interligam componentes

• Multiplexers– agulham barramentos

• Unidades funcionais– modelo básico

• uma FU só faz um tipo de operação num ciclo– modelos realistas para unidades funcionais

• diferentes tipos de operações para a mesma unidade (ex. uma ALU)• durações dependentes do tipo de operação (vários ciclos de relógio)• diferentes implementações para a mesma operação (custo/desempenho)• diferentes operadores pipelined• unidades funcionais reconfiguráveis dinâmicamente

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

128

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 7: Síntese de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

129

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 : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

130

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 8: Síntese de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

131

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

– todos os registos têm o mesmo relógio• O sinal de relógio deve estar em fase em todos os flip-flops• são necessários 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, debounce

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

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

132

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 9: Síntese de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

133

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 : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

134

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 10: Síntese de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

135

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 : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

136

• Outra solução: registar os sinais enable (en1 e en2)

Gated clock

clk

en1

en2controlo

D Q

D Q gclk1

gclk2

ens1

ens2

gclk

clk

en

ens

Page 11: Síntese de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

137

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 : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

138

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 de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

139

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 : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

140

Múltiplos domínios de clock

• Problemas– 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

Page 13: Síntese de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

141

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

– 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 ISE da XILINX

– 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 : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

142

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

Page 14: Síntese de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

143

XC3S – localização física

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

144

XC3S - redes básicas de relógio

Page 15: Síntese de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

145

XC3S – Digital Clock Manager

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

146

DLL – Delay-Locked Loop

Page 16: Síntese de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

147

DLL - Atributos

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

148

DFS – Digital Frequency Synthesizer

Page 17: Síntese de Alto Nível - paginas.fe.up.ptaja/PSDI_200607-2S/slides/slides_PSDI... · • uma operação pronta tem todos os antecessores sequenciados • a lista de prioridades determina

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

149

DCM – gama de frequências

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007José Carlos Alves

150

DCM - eliminando clock skew