síntese do datapathaja/psd2006_07/slides/slidespsd_200607_128... · – fsms, controladores...

15
FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007 José 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 FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007 José 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 R mux mux clk controlo UFs registos ? ? ? ?

Upload: lamnhu

Post on 09-Dec-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Síntese do datapathaja/PSD2006_07/slides/SlidesPSD_200607_128... · – FSMs, controladores microprogramados

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

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

?

?

?

?

Page 2: Síntese do datapathaja/PSD2006_07/slides/SlidesPSD_200607_128... · – FSMs, controladores microprogramados

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

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• é 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, debounce

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

Page 3: Síntese do datapathaja/PSD2006_07/slides/SlidesPSD_200607_128... · – FSMs, controladores microprogramados

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

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!

Page 4: Síntese do datapathaja/PSD2006_07/slides/SlidesPSD_200607_128... · – FSMs, controladores microprogramados

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

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

Page 5: Síntese do datapathaja/PSD2006_07/slides/SlidesPSD_200607_128... · – FSMs, controladores microprogramados

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

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

Page 6: Síntese do datapathaja/PSD2006_07/slides/SlidesPSD_200607_128... · – FSMs, controladores microprogramados

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.

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

Page 7: Síntese do datapathaja/PSD2006_07/slides/SlidesPSD_200607_128... · – FSMs, controladores microprogramados

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

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

141

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

Page 8: Síntese do datapathaja/PSD2006_07/slides/SlidesPSD_200607_128... · – FSMs, controladores microprogramados

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

142

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

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

143

XC3S – localização física

Page 9: Síntese do datapathaja/PSD2006_07/slides/SlidesPSD_200607_128... · – FSMs, controladores microprogramados

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

144

XC3S - redes básicas de relógio

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

145

XC3S – Digital Clock Manager

Page 10: Síntese do datapathaja/PSD2006_07/slides/SlidesPSD_200607_128... · – FSMs, controladores microprogramados

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

146

DLL – Delay-Locked Loop

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

147

DLL - Atributos

Page 11: Síntese do datapathaja/PSD2006_07/slides/SlidesPSD_200607_128... · – FSMs, controladores microprogramados

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

148

DFS – Digital Frequency Synthesizer

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

149

DCM – gama de frequências

Page 12: Síntese do datapathaja/PSD2006_07/slides/SlidesPSD_200607_128... · – FSMs, controladores microprogramados

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

150

DCM - eliminando clock skew

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

151

FPGA - Field Programmable Gate Array

• 1985/86: Xilinx introduz nova família de PLDs– FPGA - Field Programmable Gate Array

• agregados regulares de blocos lógicos configuráveis (CLB para XILINX)– ligações programáveis entre os blocos lógicos

• blocos configuráveis de complexidade reduzida (dezenas de portas lógicas)– unidade básica: look-up table (LUT) de 4 entradas– elementos de memória: flip-flops, latches, blocos de RAM (inclui dual-port)– uma LUT de 4 entradas faz qualquer função lógica combinacional de 4 entradas

• configuração rápida por escrita em SRAM– configuração volátil, necessita EPROM auxiliar– configuração in-circuit e rápida (reconfiguração completa em milissegundos)– possibilidade de reconfiguração parcial

– Sistemas reconfiguráveis baseados em FPGAs• construídos uma vez, re-utilizáveis um número arbitrário de vezes• prototipagem, circuitos para aplicações específicas, computadores dedicados

Page 13: Síntese do datapathaja/PSD2006_07/slides/SlidesPSD_200607_128... · – FSMs, controladores microprogramados

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

152

FPGA - fluxo de projecto

bloco lógico configurável

interruptoresprogramáveis

interligações

bloco de entrada/saída

A0

B0

A1

B1

S0

S1

S2A0B0

A1B1

S1

S2

S0

...assign S0=A0 ^B0,

C1=A0&B0,S1=A1^B1^C1,S2=A1&B1|A1&C1|B1&C1;

...

síntese física- place&route- timing analysis- bitstream generation

síntese lógica- RTL > gate levelmapeamento tecnológico

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

153

FPGAs - características

• Programação eléctrica– anti-fuse (programador, definitiva)– EPROM, EEPROM (programador ou in-circuit, não volátil)– SRAM (in-circuit, volátil)

• Arquitecturas de FPGAs correntes

bloco lógico configurável

Xilinx Actel Algotronix Altera

PLA PLA

PLAPLA

Page 14: Síntese do datapathaja/PSD2006_07/slides/SlidesPSD_200607_128... · – FSMs, controladores microprogramados

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

154

FPGAs - arquitecturas de blocos configuráveis

• Look-up tables

• multiplexers

• portas lógicas e muxs

• pares de transistores

• blocos PLA

mux

RAMABCD

AB

AB

mux

mux

mux

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

155

FPGAs - aplicações

• circuitos para aplicações específicas (ASICs)– substituir um circuito integrado fabricado por medida

• emulação e prototipagem de hardware– acelerar processos de validação (3 a 5 ordens de magnitude)– emulação de sistemas mistos digital-analógico

• processadores dedicados (CCM - Custom Computing Machines)

– especificamente desenhados para acelerar partes de aplicações• paralelismo das operações• natureza das operações (por exemplo manipulação de bits)

– associados a processadores convencionais– uma plataforma reconfigurável (física) para diferentes processadores

• Sistemas reconfiguráveis dinamicamente– Hardware adaptado em run-time às necessidades de um aplicação

Page 15: Síntese do datapathaja/PSD2006_07/slides/SlidesPSD_200607_128... · – FSMs, controladores microprogramados

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

156

FPGAs XILINX (www.xilinx.com)• Introduzidas em 1985

– configuração por SRAM– blocos lógicos configuráveis baseados em LUTs– abundância de flip-flops– arquitectura do tipo array, canais de interligação abundantes– RAM distribuída– circuitos dedicados para operações aritméticas– interconexões hierárquicas– capacidade de readback (configuração e nós internos)

• Famílias actuais– Spartan, Spartan II, Spartan3, VirteII-Pro, Virtex4, Virtex5– Variadas versões: processadores embutidos, orientados para

DSP, reduzido consumo de energia

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

157

Spartan3

Datasheet:

http://direct.xilinx.com/bvdocs/publications/ds099.pdf