2 / 37 · Conceito
Sinais e portas: contratos de largura, direção e tempo
Leia interfaces e separe os critérios de verificação de saídas combinacionais e de estado.
As aulas podem ser lidas gratuitamente. Inscreva-se para salvar o progresso.
Leia as portas como um contrato do circuito
input logic [7:0] data é uma porta que transmite oito bits simultaneamente, não oito valores sucessivos. O tipo logic também não cria armazenamento por si só. O comportamento depende de ser acionado por uma atribuição combinacional ou por um bloco sequencial sensível à borda.
Além de largura e direção, confira quando o sinal é válido, quem o aciona e qual é seu valor após reset. Sem isso, módulos corretos isoladamente podem formar um sistema incorreto.
Um mesmo MUX pode ter duas classes de saída
Nas práticas, observamos o resultado de seleção y e sua cópia armazenada sampled_y.
A primeira equação é combinacional. A segunda modela idealmente a captura síncrona de y estável logo antes da borda. Comparar ambas as saídas diretamente com a entrada do instante atual pode fazer 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 correto parecer defeituoso.
assign y = sel ? b : a;
always_ff @(posedge clk) sampled_y <= y;O simulador ordena eventos mesmo dentro de uma mesma marca temporal. O dispositivo físico tem setupSetup Tempo mínimo durante o qual a entrada deve permanecer estável antes da borda de captura. Se for violado, o valor armazenado não é garantido. Saiba mais, hold e atraso clock-to-Q. As equações não eliminam essas diferenças; definem o instante de observação que inicia a verificação funcional.
As setas indicam dependências de dados. Quando a, b ou sel mudam, y muda primeiro; sampled_y só armazena um novo valor na borda 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.
- a · b · sel: Entradas aplicadas simultaneamente
- MUX → y: Calcule com a seleção atual
- DFF → sampled_y: Capture y na borda de subida
Perguntas de revisão
- sel é uma entrada 0/1 definida ou um sinal externo assíncrono?
- Após mudar y, a comparação com sampled_y acontece depois da próxima borda válida?
- O valor inicial de sampled_y é definido por 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 ou pela inicialização da ferramenta?
Os valores iniciais explícitos da prática permitem reproduzir um modelo 0/1. Eles não garantem o comportamento real do chip ao ligá-lo.
Experimente
a passa de 0 para 1 entre bordas e sel permanece em 0. Quando y e sampled_y mudam?
Ler a explicação
y muda após a avaliação ou propagação do caminho combinacional. sampled_y é atualizado na próxima borda de subida que capture esse valor. Uma entrada que muda perto da borda envolve setup/hold no hardware; este modelo simples não comprova sua segurança.