• Nenhum resultado encontrado

Síntese do datapath. Sistemas Digitais síncronos

N/A
N/A
Protected

Academic year: 2021

Share "Síntese do datapath. Sistemas Digitais síncronos"

Copied!
15
0
0

Texto

(1)

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 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

?

?

?

?

(2)

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007

José Carlos Alves 130

Sistemas digitais síncronos

• Lógica combinacional entre registos

T

delay1

T

delay2

T

delay3

clock

freq. clock < 1 / max(T

delay1

,T

delay2

,T

delay3

)

– frequência de relógio

– controlo do datapath também condiciona o desempenho

controlo

datapath

clock

saída

assíncrona

saída

síncrona

entrada

entrada

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

(3)

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007

José 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/2007 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

R4

R1

R1

R2

clk

clk1

ce

gated clock!

(4)

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007

José 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

a

b

?

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

clk

ce

0

1

Gated clock

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

clk

clk

gclk1

gclk

2

ce1

ce2

controlo

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

(5)

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007

José Carlos Alves 136

• Outra solução: registar os sinais enable

(en1 e en2)

Gated clock

clk

en1

en2

controlo

D Q D Q

gclk1

gclk2

ens1

ens2

gclk

clk

en

ens

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007 137

Pipelining

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

– não-pipelined: uma operação por ciclo de relógio: f

clk

oper/s

– pipelined: “partir” o circuito combinacional e inserir registos

clk

di0

di1

di2

di3

di4

do0

do1

do2

do3

do4

X

reg in

reg out

T

delay

di

T

delay

clk

lógica combinatória

reg

in

reg

out do

di

Tp

delay max

clk

lógica combinatória

reg

in

reg

out do

reg1

reg0

clk

di0

di1

di2

di3

di4

d0

d1

d2

d3

d4

X

reg in

reg0

Tp

delay max

reg1

reg out

d0

d1

d2

d3

X

do0

do1

do2

X

X

X

X

(6)

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007

José Carlos Alves 138

Pipelining

• No circuito pipelined

– Tp

delay max

menor do que T

delay

• Tp

delay 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

– 3

x

Tp

delay max

maior do que T

delay

• 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.

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_in

D

Q

D

Q

clock

(7)

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007

José 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/2007 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

(8)

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007

José Carlos Alves 142

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

(9)

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007

José Carlos Alves 144

XC3S - redes básicas de relógio

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007 145

(10)

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007

José Carlos Alves 146

DLL – Delay-Locked Loop

(11)

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007

José Carlos Alves 148

DFS – Digital Frequency Synthesizer

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007 149

(12)

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007

José Carlos Alves 150

DCM - eliminando clock skew

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

(13)

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007

José Carlos Alves 152

FPGA

- fluxo de projecto

bloco lógico

configurável

interruptores

programáveis

interligações

bloco de

entrada/saída

A0 B0 A1 B1 S0 S1 S2

A0

B0

A1

B1

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 level

mapeamento tecnológico

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007 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

PLA

PLA

(14)

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007

José Carlos Alves 154

FPGAs

- arquitecturas de blocos

configuráveis

• Look-up tables

• multiplexers

• portas lógicas e muxs

• pares de transistores

• blocos PLA

mux

RAM

A B C D A B A B mu x mu x mu x

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

(15)

FEUP/DEEC : EEC0055 / Projecto de Sistemas Digitais, 2006/2007

José 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/2007 157

Spartan3

Datasheet:

Referências

Documentos relacionados

CARLOS HENRIQUE DOS SANTOS HIDROREPELL TINTAS/FME /BIKE POINT 106'. TIAGO DA SILVA PREFEITURA MUNICIPAL DE

zoneamento/uso do solo, legislação ambiental, IBAMA, INCRA, direitos e deveres constantes das especificações/convenções de condomínio, quando houver, débitos,

[r]

Quando o relógio não consegue exibir a hora ou a data correta, ou o submostrador, ou o ponteiro de indicação, não apontam para a posição correcta mesmo quando recebeu sinais GPS

H33c - Via Card: indicação de uma via de portagem em que o pagamento é feito exclusivamente com o cartão via card; H46 - Zona residencial ou de coexistência: indicação de

 Um sistema é dito causal se o valor atual do sinal de saída depender somente dos valores presentes e/ou passados do sinal de entrada, ou seja, o sinal de saída não pode depender

(apenas para RGB-PC) : Este botão serve para o ajuste automático da posição do ecrã, relógio efase. Esta função está disponível apenas para sinais analógicos... Posição:

 Compreende-se a limpeza de entrega do estande como sendo a primeira limpeza para a inauguração do evento, que no caso de estandes com decoração especial, deverá ser