Registradores de deslocamento (Shift Register) Um registrador de deslocamento é um registrador de n bits com a capacidade de deslocar em uma posição o valor armazenado, em cada ciclo de relógio. Registradores de deslocamento Um registrador de deslocamento com entrada e saída série possui apenas uma entrada (entrada) e uma saída(saida). Registradores de deslocamento Na entrada aplica-se um novo bit que será deslocado até à saída da cadeia de Flip-Flops, um Flip-Flop a cada ciclo do relógio. Registradores de deslocamento O bit aplicado na entrada surge na saída passados n ciclos do relógio 4 ciclos de relógio (clock) Bit ‘1’ Aplicado à entrada do registrador Bit ‘1 aparece na saída após 4 ciclos do relógio (clock) Registradores de deslocamento Um registrador de deslocamento com entrada e saída série, e com n bits, permite atrasar um sinal em n ciclos do relógio Registradores de deslocamento Um registrador de deslocamento com entrada e saída série, e com n bits, permite atrasar um sinal em n ciclos do relógio 1o. ciclo 2o. ciclo 3o. ciclo 4o. ciclo Registradores de deslocamento • Um registrador de deslocamento com entrada série e saída paralela possui uma saída para cada bit armazenado, colocando-os disponíveis de Q1 até Qn. • Os registradores deste tipo são utilizados para efetuar conversões de série para paralelo. Registradores de deslocamento • Um registrador de deslocamento com entrada série e saídas paralelas possui uma saída para cada bit armazenado, colocando-os disponíveis de Q1 até Qn. • Os registradores deste tipo são utilizados para efetuar conversões de série para paralelo. 1 0 1 0 0 1 0 1 Registradores de deslocamento • Um registrador de deslocamento com entradas paralelas e saída série proporciona a conversão de uma informação paralela para serial. São os chamados conversores paralelo serial. Registradores de deslocamento • 1 entrada serial (Es) • 4 entradas paralelo (E0, E1, E2, E3) • 1 entrada de relógio (clock) • 1 entrada de reset (CLRN) • 1 entrada para habilitação (habilita) Registradores de deslocamento • Converter o dado “1011” para serial Passos: 1) Fazer CLRN = ‘0’ => Zera todas as saídas dos Flip-Flops Registradores de deslocamento • Converter o dado “1011” para serial Passos: 2) Fazer CLRN = ‘1’ 3) Fazer habilita = ‘1’ 4) Fazer E3 = ‘1’ ; E2 = ‘0’; E1 = ‘1’ e E0 = ‘1’ 5) Fazer habilita = ‘0’ Registradores de deslocamento • Converter o dado “1011” para serial E3 = ‘1’; E2 = ‘0’ ; E1 = ‘1’; E0 = ‘1’ X X X X 1 1 0 1 Registradores de deslocamento - Aplicação • A comunicação entre dois microcomputadores através de suas portas seriais é baseada em registradores de deslocamento (conversão serial / paralelo – paralelo/ serial) • Em cada porta serial, um registrador de deslocamento transforma os dados do barramento interno do microcomputador (que estão em formato paralelo) no formato serial adequado para a transmissão através do cabo que interliga os dois computadores. Registradores de deslocamento - Aplicação • Circuito multiplicador (x2n) – Deslocamento para a esquerda Ex: n = 1 => 21 => Desloca 1 posição à esquerda - (x2) n = 2 => 22 => Desloca 2 posições à esquerda - (x4) n = 3 => 23 => Desloca 3 posições à esquerda - (x8) . . . Registradores de deslocamento - Aplicação • Circuito divisor (/2n) – Deslocamento para a direita 0110011010 410 Decimal n=1 0011001101 205 Decimal ‘0’ incluído bit perdido Contadores • Contadores são circuitos digitais que variam os seus estados, sob um comando de um clock (relógio), de acordo com uma sequencia predeterminada. • São utilizados principalmente para contagens diversas, divisão de frequencia, e tempo, geração de formas de onda e conversão de analógico para digital. • Basicamente, estes sistemas, são divididos em duas categorias: Contadores Assíncronos e Síncronos. Contadores • Um contador síncrono é caracterizado por possuir o mesmo clock acionando todos os flip-flops simultaneamente. • É construído a partir de flip-flops tipo T. • A saída Q de cada flip-flop só muda se as saídas Q dos flip-flops de menor ordem estiverem em ‘1’. Contador Síncrono Contador Síncrono Q3 Q2 Q1 Q0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 Contador Síncrono Q0.Q1 Q0.Q1.Q2 Contador Síncrono - Simulação Q0 = Q1 = Q2 = Q3 = 1 (15) Q0 = Q1 = Q2 = Q3 = 0 (0) Q0 = 1 Q1 = Q2 = Q3 = 0 (1) Contador Síncrono – VHDL – Exemplo 1 Contador Síncrono – VHDL – Exemplo 2 Contador Síncrono - Simulação Architecture Declarations SIGNAL contador : INTEGER; Start Contador Síncrono - Fluxograma d0 F clrn = '0' Concurrent Statements d1 T Sensitivity List clock, clrn F RISING_EDGE(clock) a0 contador <= 0; T a1 Process Declarations contador <= contador + 1; q <= contador; End