·

Ciência da Computação ·

Sistemas Digitais

· 2022/1

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

Sistemas Digitais Aula 5-3 Registradores e Contadores Prof. Dr. Stefan Michael Blawid sblawid@cin.ufpe.br SD - §5 Circuitos Sequencias 2 Tópicos Registradores Multibit Deslocamento Contadores Síncronos Aplicações SD - §5 Circuitos Sequencias 3 Tópicos Registradores Multibit Deslocamento Contadores Síncronos Aplicações SD - §5 Circuitos Sequencias 4 Registradores Um flip-flop armazena 1 bit de informação Quando um conjunto de n flip-flops é usado para armazenar n bits de dados, esse conjunto é chamado de registrador A tarefa de registradores inclui: Armazenar a informação de saída de um circuito aritmético Armazenar informação de circuitos contadores Um sinal de clock comum é usado em cada flip-flop de um registrador SD - §5 Circuitos Sequencias 5 MSI 4-Bit Register (74x175) 0 1 1 1 SD - §5 Circuitos Sequencias 6 Registro Externo de uma MPU Uma instrução Assembly informa à MPU para transferir um número binário de um registro de armazenamento dentro da MPU para o registro externo X. Three steps: 1. Coloque o número nas linhas de saída de dados D0 a D3 2. Coloque o código de endereço nas linhas de saída A8 a A15 3. Gerar pulso de gravação WR SD - §5 Circuitos Sequencias 7 MSI Octal Latch (74x373) Latch: A saída segue a entrada quando C é afirmado Output Enable Latch-enable input “C” 0 1 1 0 0 1 1 1 SD - §5 Circuitos Sequencias 8 MSI Octal Register (74x374) Register: Acionado por borda 0 1 1 0 0 1 1 1 SD - §5 Circuitos Sequencias 9 Octal Register: Modelo RTL em Verilog SD - §5 Circuitos Sequencias 10 Registrador de Deslocamento Um registrador que tem a habilidade de deslocar seu conteúdo de um bit Pode ser para a direita ou esquerda (ou ambos) 0 SD - §5 Circuitos Sequencias 11 Registrador de Deslocamento Registro de vários bits que move os dados "lateralmente" para a esquerda / direita (1 bit / bloco) Shift Right Shift Left Para reorganizar bits ou Multiplicar / Dividir por 2 0 1 1 1 R 0 1 1 1 1 1 L R L SD - §5 Circuitos Sequencias 12 Exemplo Display para informação de histórico de temperatura O sensor fornece a temperatura como um número de 5 bits; O timer pulsa o sinal de clock a cada hora; A temperatura é armazenada a cada pulso e os três últimos valores guardados são mostrados; SD - §5 Circuitos Sequencias 13 4-Stage, 8-Bit Shift Register: Verilog Model SD - §5 Circuitos Sequencias 14 Registradores … … como agentes em um barramento de dados SD - §5 Circuitos Sequencias 15 Serial-In, Serial-Out Para manipular dados seriais, por exemplo, RS-232 Transmissão por modem, Ethernet links, SONET, etc. SD - §5 Circuitos Sequencias 16 Acesso Paralelo A transferência de dados em sistemas computacionais é uma tarefa comum Se a transferência é de n-bits a cada instante de tempo, a transferência é denominada de paralela Se a transferência é de 1 bit a cada instante de tempo, a transferência é denominada serial Para transferir dados de forma serial, a informação é carregada em um registrador em paralelo (em um ciclo de clock) e transferida bit a bit Conversão de dados paralela-serial Se os bits são recebidos de forma serial, após n ciclos de clock o conteúdo do registrador pode ser acessado de forma paralela como uma palavra de n bits: Conversão de dados serial-paralela SD - §5 Circuitos Sequencias 17 Conversão Serial-Paralelo Serial-In, Parallel-Out 
 shift register 1 0 0 1 1 Serial-in Parallel-out SD - §5 Circuitos Sequencias 18 Conversão Paralelo-Serial MUX 1 0 0 1 1 Serial-out Parallel-in Parallel-In, Serial-Out 
 shift register SD - §5 Circuitos Sequencias 19 Parallel-in, Parallel-out 1 0 0 1 1 Parallel-in Parallel-out Parallel-In, Parallel-Out 
 shift register SD - §5 Circuitos Sequencias 20 MSI “Universal” Shift Register (74x194) Shift left (10) Shift right (01) Load (11) Hold (00) SD - §5 Circuitos Sequencias 21 Visão Mais Próxima SD - §5 Circuitos Sequencias 22 Tabela de Estados do 74x194 Input Next State Function S1 S0 QA* QB* QC* QD* Hold 0 0 QA QB QC QD Shift Right 0 1 RIN QA QB QC Shift Left 1 0 QB QC QD LIN Load 1 1 A B C D SD - §5 Circuitos Sequencias 23 Tópicos Registradores Multibit Deslocamento Contadores Síncronos Aplicações SD - §5 Circuitos Sequencias 24 Contadores Circuitos aritméticos especiais utilizados para contar Circuitos que podem incrementar ou decrementar uma contagem de 1 unidade Circuitos contadores podem ser usados para: Contar as ocorrências de certos eventos Gerar intervalos de tempo para controlar várias tarefas em um sistema digital Acompanhar o tempo transcorrido entre certos eventos São freqüentemente construídos (mas não sempre) com flip-flops T, pois a característica de TOGGLE (chaveamento) é naturalmente adequada à implementação da operação de contagem SD - §5 Circuitos Sequencias 25 Exemplo: Incrementador Implementar um circuito com 8 LEDs. Os LEDs devem acender um de cada vez e ordenadamente Usar um contador de 3 bits para fazer a contagem de 0 a 7 Usar um decodificador 3-para-8 para acender o LED determinado SD - §5 Circuitos Sequencias 26 Outro Exemplo: Incrementador Implementar um conversor de freqüência de pulsos de clock. O sinal de clock de entrada tem 60 Hz e o de saída deve ter 1 Hz. Usar um contador de 6 bits Conta de 0 a 63 (6 bits) Criar um circuito simples que detecte o no. 59 (=63-4) Usar o clear para recomeçar a contagem SD - §5 Circuitos Sequencias 27 Diagrama de Estados Circuito sequencial com clock e diagrama de estado de ciclo único Contador de módulo m (= contador de divisão por m) Por exemplo, m = 6 EN EN EN EN EN EN S1 EN’ S2 EN’ S3 EN’ S4 EN’ RESET S5 EN’ S6 EN’ SD - §5 Circuitos Sequencias 28 Contador Síncrono Flip-flops enabled quando todos flip-flops menos significativos = 1: Serial Enable Logic Enable propaga-se serialmente e limita a velocidade. Requer: (n-1) Dt < TCLK Todas as saídas de flip-flops mudam simultaneamente tCQ depois CLK O tipo de contador mais frequentemente usado SD - §5 Circuitos Sequencias 29 Outro Tipo Lógica de enable com um único nível por flip-flop: Parallel enable logic Tipo de contador mais rápido e complexo. Requer: Dt < TCLK Todas as saídas mudam simultaneamente tCQ depois CLK SD - §5 Circuitos Sequencias 30 MSI 4-Bit Counter (74x163) RCO é assumido quando o contador chega em 1111 se ENT=1 SD - §5 Circuitos Sequencias 31 Binary Counter with Load: Verilog Model SD - §5 Circuitos Sequencias 32 MSI 4-Bit Counter (74x163) <latexit sha1_base64="oV Ied2mEqVXWwK/hKwmT0yj+dc4=">ACh3icfZFbS8MwGI bTeprzNPXSmw+H4onZquhuBMcmeDFkilNhHSXNshlMm5Kk wij7K/4o7/w3Zt0UneIHgZfnfb8cvgQxZ0o7zrtlT03PzM 7l5vMLi0vLK4XVtXslEklokwgu5GOAFeUsok3NKePsaQ4 Dh9CJ6rQ/hUrFRHSn+zFth7gXsS4jWBvkF15rfurJEC oDOIdtqIAXJxTDZ4wbcNdM7te8+uDLy9D1fqtIQewD56X 3wbY+S+4+4VGscvrxkTq8vrOEBHzRMHN512/ULRKTlZwW /hjkURjavhF968jiBJSCNOFaq5TqxbqdYakY4HeS9RNEY k2fcoy0jIxS1U6zOQ5gy5AOdIU0K9KQ0e8dKQ6V6oeBSYZ YP6lJbwj/8lqJ7pbKYviRNOIjA7qJhy0gOGnQIdJSjTvG 4GJZOauQJ6wxESbr8ubIbiT/4t7o9K7mnJvTkpXjceT 45+lF35ABuKvmc=</latexit>QBtpEO8hFZ+gCXaEGaiJiTVt71rF1Ys/bh/apXR5FbWvcs DA =A • LDL • CLR + (LDL • CLR) • (ENP • ENT ⊕ QA) SD - §5 Circuitos Sequencias 33 Contador de 4-bits (“Divida por 16”) SD - §5 Circuitos Sequencias 34 Aplicação #1 Sequência de contagem modificada Load 0101 (5) after Count = 15: 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 5, 6, … 1 0 1 0 “Divide-by-11” counter SD - §5 Circuitos Sequencias 35 Aplicação #2 Sequência de contagem modificada: Outra maneira Clear after Count = 10 (1010): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 1, … “Divide-by-11” or “Modulo-11” counter SD - §5 Circuitos Sequencias 36 Aplicação #3 Contando de 3 a 12 SD - §5 Circuitos Sequencias 37 Aplicação #4 Contador de 4 bits em cascata para obter um contador de 8 bits (até “Modulo-256”) RCO (ripple carry out) é afirmado no estado 15, se ENT é afirmado. SD - §5 Circuitos Sequencias 38 Sugestões de Leitura John F. Wakerly, “Digital Design: Principles and Practices”, Pearson Education, 2017 Capítulos 8.4, 8.5 Neal S. Widmer, Gregoy L. Moss, Ronald J. Tocci “Digital Systems: Principles and Applications”, Morgan Kaufmann, Pearson Education, 2018 Capítulos 5.17 - 5.19, 7.1-7.8, 7.15-17, 7.20-21 Jean-Pierre Deschamps, Elena Valderrama, and Lluís Terés, “Digital Systems: From Logic Gates to Processors”, Springer, 2017 Capítulos 4.6 Brock J. LaMeres, “Quick Start Guide to Verilog”, Springer, 2019 Capítulos: 7.2, 9 SD - §5 Circuitos Sequencias 39 Pequenos Projetos Tocci 5-27: (a) Desenhe um diagrama de circuitos para a transferência paralela síncrona de dados de um registrador de três bits para outro usando Flip-Flops J-K; (b) Repita para transferência paralela assíncrona. Tocci 5-29: Um número de três bits armazenado no registrador X é transferido serialmente para o registrador Y. Como o circuito pode ser modificado para que, ao final da operação de transferência, o número original armazenado em X esteja presente nos dois registradores? Tocci 5-36: Uma MPU possui uma linha de saída de dados de 4 bits D0 - D3, uma linha de saída de endereço de 8 bits A8 - A15 e uma saída de controle de 1 bit /WR. Projete um circuito que possa transferir um número binário da MPU para um registro externo de 4 bits acessível através do endereço 10110110. Todos os bits são transferidos de forma síncrona. SD - §5 Circuitos Sequencias 40 Pequenos Projetos Tocci 7-12: Desenhe o diagrama de circuito de um contador síncrono que emitirá um sinal de 60 kHz quando um relógio de 3 MHz for aplicado. Tocci 7-25: Consulte a folha de dados de um MSI 74x160 ou MSI 74x163 (contadores síncronos de 4 bits). Desenhe o diagrama de circuito de um contador Mod-6 usando o controle /CLR do contador MSI. Tocci 7-33: Projete um circuito divisor de frequência que produza as três frequências de sinal de saída a seguir: 1,5MHz, 150kHz e 100kHz. Use os chips de contador 74HC162 e 74HC163 e quaisquer portas necessárias. A frequência de entrada é de 12MHz. Tocci 7-34: Projete um circuito divisor de frequência que produza as três frequências de sinal de saída a seguir: 1 MHz, 800 kHz e 100 kHz. Use os chips de contador 74HC160 e 74HC161 e todos as portas necessários. A frequência de entrada é de 12 MHz. SD - §5 Circuitos Sequencias 41 Pequenos Projetos Tocci 7.85: Qual é a sequência de um contador Johnson MOD-10? Escreva uma descrição da Verilog de um contador Johnson MOD-10 auto-inicializável com um reset assíncrona ativa-HIGH. Simule o design. Tocci 7.86: Às vezes, um aplicativo digital pode precisar de um contador de anel que recicla um único zero em vez de um único um. O contador de anel teria então uma saída ativa-LOW em vez de uma saída ativa-HIGH. Projete um contador de anel MOD-8 com uma saída ativa-LOW usando Verilog. O contador de anel auto- inicial também deve ter um controle de retenção (hold) ativo-HIGH para desativar a contagem. Simule o design. SD - §5 Circuitos Sequencias 42 Pequenos Projetos Brock 7.2.3: Projete um modelo Verilog RTL de um registro síncrono de 32 bits. O diagrama de blocos para a definição de porta é mostrado na Figura. O registro tem uma ativação síncrona. O registro deve ser modelado usando um único bloco processual. Brock 7.2.4: Projete um modelo Verilog RTL de um registrador de deslocamento de 8 estágios e 16 bits. O diagrama de blocos para a definição das entradas e saídas é mostrado na Figura. Cada estágio do registro de deslocamento será fornecido como uma saída do sistema (A, B, C, D, E, F, G e H). O registro de deslocamento deve ser modelado usando um único bloco processual. SD - §5 Circuitos Sequencias 43 Pequenos Projetos Brock 7.2.5: Crie um modelo Verilog RTL da topologia de barramento multiponto na Figura. Cada um dos registradores de 16 bits (RegA, RegB, RegC e RegD) trava o conteúdo do barramento de dados de 16 bits se sua linha de ativação for declarada. Cada registro deve ser modelado usando um bloco processual individual. SD - §5 Circuitos Sequencias 44 Pequenos Projetos Brock 9.1.1 e 9.1.2: (a) Projete um modelo comportamental Verilog para um contador binário up de 16 bits usando um único bloco de procedimentos. O diagrama de blocos para a definição de porta é mostrado na Figura. (b) Modifique seu design para que o contador conte até 60000 e inicie novamente em 0. Brock 9.2.1 e 9.2.2: (a) Projete um modelo comportamental Verilog para um contador binário up de 16 bits com enable usando um único bloco processual. O diagrama de blocos para a definição de porta é mostrado na Figura. (b) Modifique seu design para adicionar entradas de carga, conforme indicado na segunda figura. SD - §5 Circuitos Sequencias 45 Pequenos Projetos Brock 9.2.3: Projete um modelo comportamental da Verilog para um contador binário para cima e baixo de 16 bits usando um único bloco de procedimento. O diagrama de blocos para a definição de porta é mostrado na Figura. Quando Up=1, o contador será incrementado. Quando Up=0, o contador diminui. »Wissen schafft Brücken.«