Conteúdos da cadeira

Circuitos sequenciais

Flip-flops D e T, registos, banco de registos, máquinas de estados finitas e o tempo mínimo de relógio.

Markdown

Perguntar sobre esta página

ChatGPTClaudePerplexityGeminiCopiar e abrir

Envia o link e pede à IA para ler a página. No Gemini, cola a pergunta copiada.

Ver pergunta para copiar
Nesta página

Há circuitos que um combinatório não consegue realizar: um contador precisa de se lembrar do valor anterior. Num circuito sequencial, a saída depende dos valores atuais das entradas e de todos os valores anteriores. A memória do passado vive em variáveis de estado binárias, guardadas em elementos de memória. Um circuito com NN variáveis de estado pode ter até 2N2^N estados.

Duas notas antes dos componentes. O estado atual nem sempre depende do estado anterior (há circuitos que ignoram parte da história). E, como o comportamento depende da sequência, precisamos de conhecer sempre o estado inicial para prever o que o circuito faz.

Flip-flops

O flip-flop do tipo D é o elemento de memória básico. Tem uma entrada de dados DD, uma entrada de relógio e duas saídas complementares, QQ e Qˉ\bar{Q}. Após a transição ativa do relógio (em geral a subida, de 0 para 1), a saída QQ passa a valer o que estava em DD. Entre transições, QQ mantém o valor guardado. Pode ter ainda uma entrada de habilitação (EN): com EN desativada, o flip-flop ignora o relógio e conserva o estado.

O flip-flop do tipo T troca de estado a cada ciclo de relógio: se está em 0 passa a 1, e vice-versa. É o bloco natural para contadores, onde cada bit muda quando o anterior completa uma volta.

O relógio não pode ser arbitrariamente rápido. Entre duas transições ativas, os sinais têm de atravessar a lógica combinatória e estabilizar antes da exigência de setup do flip-flop. O período mínimo é:

Ttsetup+tpmt+tpcT \geq t_{\text{setup}} + t_{\text{pmt}} + t_{\text{pc}}

onde tpmtt_{\text{pmt}} é o atraso máximo de propagação na lógica e tpct_{\text{pc}} o atraso do próprio elemento de memória. Encurtar o período abaixo disto significa amostrar valores ainda instáveis.

Registos

Um registo é um grupo de nn elementos de memória acedidos como uma entidade única: guarda uma palavra de nn bits e lê-se ou escreve-se de uma vez. Um banco de registos é um conjunto de registos com a mesma capacidade, em que cada registo individual se seleciona pelo seu número de ordem. É esta a estrutura que o processador usa para os operandos rápidos, como vais ver no capítulo do LEGv8.

Máquinas de estados finitas

Uma máquina de estados finitas (FSM, do inglês finite state machine) descreve um circuito sequencial como um conjunto de estados e transições entre eles. Para estar completamente especificada, é necessário que, para cada estado, se verifiquem duas condições:

  1. A soma lógica (OR) das expressões de transição seja 1, ou seja, há sempre uma transição definida para qualquer combinação de entradas.
  2. O produto lógico (AND) de cada par de expressões seja 0, ou seja, as transições são mutuamente exclusivas e nunca há ambiguidade sobre o próximo estado.

Um exemplo mínimo: um detetor que assinala quando vê dois uns seguidos. Tem dois estados, A (ainda não vi um 1) e B (vi um 1). Em A, a entrada 0 mantém o circuito em A e a entrada 1 leva a B. Em B, a entrada 1 assinala a deteção e mantém B, e a entrada 0 regressa a A. Verifica as condições: em A, as expressões são xˉ\bar{x} e xx, cuja soma é 1 e cujo produto é 0. Em B passa-se o mesmo. As máquinas de estados permitem guardar pequenas quantidades de dados, como a fase de um protocolo, sem recorrer a uma memória de acesso direto.

Ver o ficheiro no GitHub

À tua maneira

Escolhe como preferes ler.

Aparência
Ajustar cores e largura
Cor de destaque do tema FEUP
Tipo de letra

Álgebra, lógica e uma ideia de cada vez.

As tuas escolhas ficam guardadas neste navegador.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.