Síntese do datapath S.D. - e prossamento de informação unidade de prossamento (datapath) prossamento e comunicação de dados registos, ALUs, outros operadores dedicados (FUs), barramentos activa os elementos do datapath, define as operações a realizar FSMs, controladores microprogramados Control dominated sistemas onde predominam as estruturas de controlador de microondas, semáforos, microprossador,... Data flow dominated sistemas onde predomina o datapath, reduzido aplicações de DSP, unidades de cálculo dedicadas 128 Sistemas Digitais síncronos Sistema síncrono duas entidades separadas: 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 mux mux mux mux mux UFs + * / sqrt and or registos 129
Sistemas digitais síncronos Lógica combinacional entre registos entrada saída assíncrona entrada saída síncrona clock frequência de relógio T delay1 T delay2 T delay3 freq. clock < 1 / max(t delay1,t delay2,t delay3 ) do datapath também condiciona o desempenho clock datapath 130 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 é nessá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 clock enable síncrono é nessário garantir tempos de hold e setup dos flip-flops tratamento de entradas assíncronas Metaestabilidade, sincronização com o relógio, deboun circuitos CMOS consomem energia (quase apenas) nas comutações 131
Clock skew variação da fase do relógio em diferentes registos 1 2 1 2 atraso 1 1 a b c 2 x a b 1 1 a b c 2 x b c atraso 132 Clock skew Motivado por assimetria do circuito de relógio características físicas das ligações (comprimento, C) 1 2 1 diferente fanout 1 2 3 4 1 lógica combinatória no caminho do relógio 1 2 1 gated clock! 133
Gated clock Carregamento condicional de um registo solução errada: usar um AND para permitir ou não o clock solução correcta clock enable síncrono 0 1. flip-flops primitivos com clock enable. 1 a b 1 é carregado duas vezes! Só funciona se ocorrer antes de. 134 Gated clock Solução (mais) segura para um gated clock 1 2 g1 g 2 portas NAND com atrasos idênticos atrasos iguais de até cada NAND... e de cada NAND até aos buffers garante clock skew mínimo sinais gerados na unidade de unidade de síncrona com em FPGA requer routing cuidado g =. 135
Gated clock Outra solução: registar os sinais enable (en1 e en2) en1 en2 ens1 D Q g1 ens2 D Q g2 en ens g 136 Pipelining datapath síncrono (não-pipelined vs. pipelined) não-pipelined: uma operação por ciclo de relógio: f oper/s T delay di0 di1 di2 di3 di4 X do0 do1 do2 do3 do4 pipelined: partir o circuito combinacional e inserir registos di lógica combinatória T delay do reg0 reg1 Tp delay max di0 di1 di2 di3 di4 X d0 d1 d2 d3 d4 X X d0 d1 d2 d3 X X X do0 do1 do2 di lógica combinatória reg0 reg1 do Latência: 3 ciclos Tp delay max 137
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 maior do que para o circuito combinatório 3xTp 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 a aparer na saída é consumido um dado e produzido um resultado em cada aumento de desempenho para sequências de operações iguais mas não compensa para realizar uma única operação. 138 Entradas assíncronas E se uma entrada comuta e o também Flip-flops podem cair em estados meta-estáveis ao fim de um rto 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 (-to-setup) do flip-flop Como sincronizar entradas assíncronas Solução: usar um shift-register de dois andares (como funciona) Assynch_in D Q D Q synch_in clock 139
Múltiplos domínios de clock clock1 clock2 clock3 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 140