43 / 63 · Verificação
Verificação de projeto: latência, alinhamento e preservação das entradas
Confira direção, quantidade de movimentos válidos e referência de observação.
As aulas podem ser lidas gratuitamente. Inscreva-se para salvar o progresso.
Fixe como a latência é contada
Um registradorRegistrador Circuito que armazena vários bits de estado. Os registradores síncronos deste curso capturam a entrada especificada na borda de clock. Saiba mais de três bits executa q <= {q[1:0], din} somente com entrada válida e mantém q com valid=0. Partindo de 0 após resetReset Controle que retorna o estado a um valor inicial especificado. É preciso definir se é síncrono ou assíncrono e sua prioridade em relação a outros controles. Saiba mais, aplique em bordas de subidaBorda de subida Instante em que o clock passa de 0 para 1. É diferente do nível alto, que abrange todo o intervalo com CLK=1. Saiba mais distintas (valid,din) = (1,1), (0,0), (1,0), (1,1).
Há quatro bordas, mas somente três deslocamentos. Confira se a sequência de estados e a descrição de «latência em ciclos» são consistentes.
Cada coluna registra uma borda, com entrada anterior e estado «depois» atualizado; o alinhamento não mostra propagação físicaAtraso de propagação Tempo entre uma mudança de entrada e a estabilização da saída no valor correto. Equivalência lógica e comportamento temporal são propriedades distintas. Saiba mais. A segunda coluna, valid=0, mantém o estado. Não confunda a quantidade de colunas de clock com os movimentos de q.
Ver os dados da forma de onda
| Sinal | Forma de onda | Valores do barramento |
|---|---|---|
| borda | 2345 | E0 → E1 → E2 → E3 |
| valid | 101. | |
| din | 10.1 | |
| entradas aceitas | 2.34 | 1 → 2 → 3 |
| q depois | 2.34 | 001 → 010 → 101 |
Problema adicional
Ao ampliar para um pipelinePipeline Estrutura que divide o cálculo em estágios separados por registradores para processar várias entradas de forma sobreposta. Dados, valid e controles devem permanecer alinhados entre os estágios. Saiba mais com dados de oito bits por entrada, é incorreto colocar três estágios de dados e atrasar valid apenas um. Aplique as mesmas regras de avanço ou projete em conjunto aceitação e entrega de um buffer que possa parar.
Experimente
Se o circuito deslocar em cada borda independentemente de valid, como muda o q final da sequência?
Ler a explicação
Ele também armazena din=0 do ciclo inválido: 001 → 010 → 100 → 001. Termina em 001, diferente de 101 no projeto que move apenas entradas válidas. A implementação deve respeitar o contrato de ignorar dados inválidos.
Ao aplicar a sequência com valid descrita, quais são o q final e a quantidade real de deslocamentos?
Os estados são 000 → 001 → 001 → 010 → 101. A segunda borda tem valid=0 e mantém o estado. A resposta deve cumprir direção, condição de avanço e quantidade de movimentos.